@acorex/platform 20.6.0-next.8 → 20.6.0
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/common/index.d.ts +9 -2
- package/core/index.d.ts +209 -55
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +225 -24
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +49 -4
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +39 -118
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1011 -257
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +2 -2
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +9318 -4439
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +30 -24
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +4 -8
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs} +2 -2
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs} +2 -2
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +2194 -1242
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +79 -3
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs +136 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs +1543 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +124 -21
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs +55 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +15 -110
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +658 -45
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +6 -33
- package/layout/components/index.d.ts +301 -60
- package/layout/designer/index.d.ts +1 -1
- package/layout/entity/index.d.ts +650 -86
- package/layout/views/index.d.ts +5 -58
- package/layout/widget-core/index.d.ts +24 -26
- package/layout/widgets/README.md +0 -1
- package/layout/widgets/index.d.ts +139 -84
- package/package.json +9 -9
- package/runtime/index.d.ts +36 -8
- package/themes/default/index.d.ts +29 -73
- package/themes/shared/index.d.ts +1 -39
- package/workflow/index.d.ts +401 -90
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs +0 -52
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs +0 -115
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs +0 -803
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-runtime.mjs","sources":["../tmp-esm2022/runtime/lib/commands/command.middleware.js","../tmp-esm2022/runtime/lib/commands/command.registry.js","../tmp-esm2022/runtime/lib/commands/command.extension.token.js","../tmp-esm2022/runtime/lib/commands/command.executor.js","../tmp-esm2022/runtime/lib/commands/command.service.js","../tmp-esm2022/runtime/lib/commands/provide-command-setups.js","../tmp-esm2022/runtime/lib/commands/provide-command-middleware.js","../tmp-esm2022/runtime/lib/queries/query.middleware.js","../tmp-esm2022/runtime/lib/queries/query.registry.js","../tmp-esm2022/runtime/lib/queries/query.extension.token.js","../tmp-esm2022/runtime/lib/queries/query.executor.js","../tmp-esm2022/runtime/lib/queries/query.service.js","../tmp-esm2022/runtime/lib/queries/provide-query-setups.js","../tmp-esm2022/runtime/lib/queries/provide-query-middleware.js","../tmp-esm2022/runtime/lib/views/view.middleware.js","../tmp-esm2022/runtime/lib/views/view.registry.js","../tmp-esm2022/runtime/lib/views/view.extension.token.js","../tmp-esm2022/runtime/lib/views/view.executor.js","../tmp-esm2022/runtime/lib/views/view.service.js","../tmp-esm2022/runtime/lib/views/provide-view-setups.js","../tmp-esm2022/runtime/lib/policy/policy.middleware.js","../tmp-esm2022/runtime/lib/policy/policy.interface.js","../tmp-esm2022/runtime/lib/policy/policy.extension.token.js","../tmp-esm2022/runtime/lib/policy/policy.registry.js","../tmp-esm2022/runtime/lib/policy/policy.service.js","../tmp-esm2022/runtime/lib/policy/policy.directive.js","../tmp-esm2022/runtime/lib/policy/policy-middleware-provider.js","../tmp-esm2022/runtime/lib/views/provide-view-middleware.js","../tmp-esm2022/runtime/lib/runtime.module.js","../tmp-esm2022/runtime/index.js","../tmp-esm2022/runtime/acorex-platform-runtime.js"],"sourcesContent":["export function composeCommandMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvY29tbWFuZHMvY29tbWFuZC5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sVUFBVSx5QkFBeUIsQ0FDckMsV0FBb0Q7SUFFcEQsT0FBTyxDQUFDLE9BQTRDLEVBQUUsRUFBRTtRQUNwRCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUV0QixRQUFRLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBWFBDb21tYW5kTWlkZGxld2FyZTxUSW5wdXQgPSBhbnksIFRSZXN1bHQgPSBhbnk+ID0gKFxuICAgIGlucHV0OiBUSW5wdXQsXG4gICAgbmV4dDogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD5cbikgPT4gUHJvbWlzZTxUUmVzdWx0PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VDb21tYW5kTWlkZGxld2FyZXM8VElucHV0LCBUUmVzdWx0PihcbiAgICBtaWRkbGV3YXJlczogQVhQQ29tbWFuZE1pZGRsZXdhcmU8VElucHV0LCBUUmVzdWx0PltdXG4pOiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD4pID0+IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICByZXR1cm4gKGhhbmRsZXI6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+KSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL2NvbW1hbmQucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVZLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUN4RCxnQkFBVyxHQUEyQixFQUFFLENBQUM7S0FrQ3BEO0lBaENHLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBaUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBZ0M7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBbkNRLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kTWlkZGxld2FyZSB9IGZyb20gJy4vY29tbWFuZC5taWRkbGV3YXJlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tYW5kUmVnaXN0cnkge1xuICAgIHByaXZhdGUgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxBWFBDb21tYW5kPj4oKTtcbiAgICBwcml2YXRlIG1pZGRsZXdhcmVzOiBBWFBDb21tYW5kTWlkZGxld2FyZVtdID0gW107XG5cbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLnB1c2gobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldExvYWRlcihrZXk6IHN0cmluZyk6ICgoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldChrZXkpO1xuICAgIH1cblxuICAgIGdldE1pZGRsZXdhcmVzKCk6IHJlYWRvbmx5IEFYUENvbW1hbmRNaWRkbGV3YXJlW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMubWlkZGxld2FyZXNdO1xuICAgIH1cblxuICAgIGdldFJlZ2lzdGVyZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZWdpc3RyeS5rZXlzKCkpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMubGVuZ3RoID0gMDtcbiAgICB9XG59XG4iXX0=","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_COMMAND_EXTENSION = new InjectionToken('AXP_COMMAND_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5leHRlbnNpb24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9jb21tYW5kcy9jb21tYW5kLmV4dGVuc2lvbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHBsdWdpbnMvY29tbWFuZC5leHRlbnNpb24udG9rZW4udHNcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kTWlkZGxld2FyZSB9IGZyb20gJy4vY29tbWFuZC5taWRkbGV3YXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21tYW5kRXh0ZW5zaW9uIHtcbiAgICB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDtcbiAgICBtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9DT01NQU5EX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBDb21tYW5kRXh0ZW5zaW9uW10+KCdBWFBfQ09NTUFORF9FWFRFTlNJT04nKTtcbiJdfQ==","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { composeCommandMiddlewares } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPCommandRegistry);\n this.extensions = inject(AXP_COMMAND_EXTENSION, { optional: true });\n }\n async execute(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n throw new Error(`Command '${key}' is not registered`);\n }\n const command = await loader();\n const handler = (i) => command.execute(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeCommandMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL2NvbW1hbmQuZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUF3Qix5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUdsRSxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBZ0NuRjtJQTlCRyxLQUFLLENBQUMsT0FBTyxDQUNULEdBQVcsRUFDWCxLQUFhO1FBRWIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFekQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyRixPQUFPLENBQUMsS0FBYSxFQUFFLElBQXlDLEVBQUUsRUFBRSxDQUNoRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUdPLG9CQUFvQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxJQUFJLENBQUMsVUFBVTtZQUNsQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUM7YUFDeEYsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDOytHQWxDUSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRNaWRkbGV3YXJlLCBjb21wb3NlQ29tbWFuZE1pZGRsZXdhcmVzIH0gZnJvbSAnLi9jb21tYW5kLm1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFJlZ2lzdHJ5IH0gZnJvbSAnLi9jb21tYW5kLnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUF9DT01NQU5EX0VYVEVOU0lPTiB9IGZyb20gJy4vY29tbWFuZC5leHRlbnNpb24udG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUENvbW1hbmRFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9DT01NQU5EX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGFzeW5jIGV4ZWN1dGU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMucmVnaXN0cnkuZ2V0TG9hZGVyKGtleSk7XG4gICAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbW1hbmQgJyR7a2V5fScgaXMgbm90IHJlZ2lzdGVyZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBhd2FpdCBsb2FkZXIoKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChpOiBUSW5wdXQpID0+IGNvbW1hbmQuZXhlY3V0ZShpKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5NaWRkbGV3YXJlcyA9IHRoaXMuZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5KTtcbiAgICAgICAgY29uc3QgZ2xvYmFsTWlkZGxld2FyZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldE1pZGRsZXdhcmVzKCk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE1pZGRsZXdhcmVzID0gWy4uLmdsb2JhbE1pZGRsZXdhcmVzLCAuLi5wbHVnaW5NaWRkbGV3YXJlc10ubWFwKG1pZGRsZXdhcmUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChpbnB1dDogVElucHV0LCBuZXh0OiAoaW5wdXQ6IFRJbnB1dCkgPT4gUHJvbWlzZTxUUmVzdWx0PikgPT5cbiAgICAgICAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gbWlkZGxld2FyZShpbnB1dCwgbmV4dCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjb21wb3NlZCA9IGNvbXBvc2VDb21tYW5kTWlkZGxld2FyZXMod3JhcHBlZE1pZGRsZXdhcmVzKShoYW5kbGVyKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvc2VkKGlucHV0KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5OiBzdHJpbmcpOiBBWFBDb21tYW5kTWlkZGxld2FyZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgICAgICAgPy5maWx0ZXIoZXh0ID0+IGV4dC50YXJnZXQgaW5zdGFuY2VvZiBSZWdFeHAgPyBleHQudGFyZ2V0LnRlc3Qoa2V5KSA6IGV4dC50YXJnZXQgPT09IGtleSlcbiAgICAgICAgICAgIC5tYXAoZXh0ID0+IGV4dC5taWRkbGV3YXJlKSA/PyBbXTtcbiAgICB9XG59ICJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandExecutor } from './command.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandService {\n constructor() {\n this.registry = inject(AXPCommandRegistry);\n this.executor = inject(AXPCommandExecutor);\n }\n // Registry methods\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n // Executor methods\n async execute(key, input) {\n return this.executor.execute(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvY29tbWFuZHMvY29tbWFuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUd4RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FrQzFEO0lBaENHLG1CQUFtQjtJQUNuQixRQUFRLENBQUMsR0FBVyxFQUFFLE1BQWlDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQWdDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQ1QsR0FBVyxFQUNYLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFrQixHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzsrR0FuQ1EsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZE1pZGRsZXdhcmUgfSBmcm9tICcuL2NvbW1hbmQubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kUmVnaXN0cnkgfSBmcm9tICcuL2NvbW1hbmQucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQQ29tbWFuZEV4ZWN1dG9yIH0gZnJvbSAnLi9jb21tYW5kLmV4ZWN1dG9yJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tYW5kU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBDb21tYW5kUmVnaXN0cnkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0b3IgPSBpbmplY3QoQVhQQ29tbWFuZEV4ZWN1dG9yKTtcblxuICAgIC8vIFJlZ2lzdHJ5IG1ldGhvZHNcbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoa2V5LCBsb2FkZXIpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXIoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkudW5yZWdpc3RlcihrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnVzZShtaWRkbGV3YXJlKTtcbiAgICB9XG5cbiAgICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZXhpc3RzKGtleSk7XG4gICAgfVxuXG4gICAgZ2V0UmVnaXN0ZXJlZEtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5nZXRSZWdpc3RlcmVkS2V5cygpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0b3IgbWV0aG9kc1xuICAgIGFzeW5jIGV4ZWN1dGU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmV4ZWN1dGU8VElucHV0LCBUUmVzdWx0PihrZXksIGlucHV0KTtcbiAgICB9XG59ICJdfQ==","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders, runInInjectionContext } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nexport const AXP_COMMAND_SETUP = new InjectionToken('AXP_COMMAND_SETUP');\nexport function provideCommandSetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_COMMAND_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.command();\n // Try to get from DI first, if fails create new instance\n try {\n return injector.get(CommandType);\n }\n catch (e) {\n // If not in DI (e.g., for activities), create new instance\n return runInInjectionContext(injector, () => new CommandType());\n }\n });\n }\n return true;\n },\n multi: true\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb21tYW5kLXNldHVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL3Byb3ZpZGUtY29tbWFuZC1zZXR1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFZLHFCQUFxQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ25LLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFPLG1CQUFtQixDQUFDLENBQUM7QUFTL0UsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQTJCO0lBRTVELE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyx5REFBeUQ7d0JBQ3pELElBQUksQ0FBQzs0QkFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLENBQUM7d0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzs0QkFDVCwyREFBMkQ7NEJBQzNELE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQzt3QkFDcEUsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsIFByb3ZpZGVyLCBydW5JbkluamVjdGlvbkNvbnRleHQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRSZWdpc3RyeSB9IGZyb20gJy4vY29tbWFuZC5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGNvbnN0IEFYUF9DT01NQU5EX1NFVFVQID0gbmV3IEluamVjdGlvblRva2VuPHZvaWQ+KCdBWFBfQ09NTUFORF9TRVRVUCcpO1xuXG5cbnR5cGUgQVhQQ29tbWFuZExvYWRlciA9IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBjb21tYW5kOiAoKSA9PiBUeXBlPEFYUENvbW1hbmQ+IHwgUHJvbWlzZTxUeXBlPEFYUENvbW1hbmQ+Pjtcbn07XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb21tYW5kU2V0dXBzKGVudHJpZXM6IEFYUENvbW1hbmRMb2FkZXJbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfQ09NTUFORF9TRVRVUCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyeSA9IGluamVjdChBWFBDb21tYW5kUmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGVudHJ5LmtleSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tbWFuZFR5cGUgPSBhd2FpdCBlbnRyeS5jb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gZ2V0IGZyb20gREkgZmlyc3QsIGlmIGZhaWxzIGNyZWF0ZSBuZXcgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluamVjdG9yLmdldChDb21tYW5kVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm90IGluIERJIChlLmcuLCBmb3IgYWN0aXZpdGllcyksIGNyZWF0ZSBuZXcgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiBuZXcgQ29tbWFuZFR5cGUoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdKTtcbn1cblxuXG4iXX0=","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nexport const AXP_COMMAND_MIDDLEWARE_SETUP = new InjectionToken('AXP_COMMAND_MIDDLEWARE_SETUP');\nexport function provideCommandMiddleware(entries) {\n const global = [];\n const extensions = [];\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n }\n else {\n extensions.push(entry);\n }\n }\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_COMMAND_EXTENSION,\n useValue: ext,\n multi: true\n })),\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_COMMAND_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb21tYW5kLW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9jb21tYW5kcy9wcm92aWRlLWNvbW1hbmQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsTUFBTSxFQUNOLGNBQWMsRUFDZCx3QkFBd0IsRUFDM0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQU8sOEJBQThCLENBQUMsQ0FBQztBQUtyRyxNQUFNLFVBQVUsd0JBQXdCLENBQ3BDLE9BQWtDO0lBRWxDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxVQUFVLEdBQW9FLEVBQUUsQ0FBQztJQUV2RixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDO1FBQzVCLDRCQUE0QjtRQUM1QixHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUNyRDtZQUNJLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDNUMsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1NBQ0o7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFJlZ2lzdHJ5IH0gZnJvbSAnLi9jb21tYW5kLnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUENvbW1hbmRNaWRkbGV3YXJlIH0gZnJvbSAnLi9jb21tYW5kLm1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQX0NPTU1BTkRfRVhURU5TSU9OIH0gZnJvbSAnLi9jb21tYW5kLmV4dGVuc2lvbi50b2tlbic7XG5cbmV4cG9ydCBjb25zdCBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQID0gbmV3IEluamVjdGlvblRva2VuPHZvaWQ+KCdBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQJyk7XG5cbnR5cGUgQVhQQ29tbWFuZE1pZGRsZXdhcmVFbnRyeSA9XG4gICAgKEFYUENvbW1hbmRNaWRkbGV3YXJlIHwgeyB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDsgbWlkZGxld2FyZTogQVhQQ29tbWFuZE1pZGRsZXdhcmUgfSlbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb21tYW5kTWlkZGxld2FyZShcbiAgICBlbnRyaWVzOiBBWFBDb21tYW5kTWlkZGxld2FyZUVudHJ5XG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgY29uc3QgZ2xvYmFsOiBBWFBDb21tYW5kTWlkZGxld2FyZVtdID0gW107XG4gICAgY29uc3QgZXh0ZW5zaW9uczogeyB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDsgbWlkZGxld2FyZTogQVhQQ29tbWFuZE1pZGRsZXdhcmUgfVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZ2xvYmFsLnB1c2goZW50cnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXh0ZW5zaW9ucy5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAvLyBQbHVnaW4gbWlkZGxld2FyZSBlbnRyaWVzXG4gICAgICAgIC4uLmV4dGVuc2lvbnMubWFwKGV4dCA9PiAoe1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX0NPTU1BTkRfRVhURU5TSU9OLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGV4dCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0pKSxcblxuICAgICAgICAvLyBHbG9iYWwgbWlkZGxld2FyZSBzZXR1cCAodHJpZ2dlcmVkIHZpYSB0aGlzIHRva2VuKVxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtdyBvZiBnbG9iYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkudXNlKG13KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdKTtcbn0iXX0=","export function composeQueryMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3F1ZXJpZXMvcXVlcnkubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFVBQVUsdUJBQXVCLENBQ25DLFdBQWtEO0lBRWxELE9BQU8sQ0FBQyxPQUE0QyxFQUFFLEVBQUU7UUFDcEQsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXZCLEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7WUFFdEIsUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcXVlcmllcy9xdWVyeS5taWRkbGV3YXJlLnRzXG5leHBvcnQgdHlwZSBBWFBRdWVyeU1pZGRsZXdhcmU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PiA9IChcbiAgICBpbnB1dDogVElucHV0LFxuICAgIG5leHQ6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+XG4pID0+IFByb21pc2U8VFJlc3VsdD47XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlUXVlcnlNaWRkbGV3YXJlczxUSW5wdXQsIFRSZXN1bHQ+KFxuICAgIG1pZGRsZXdhcmVzOiBBWFBRdWVyeU1pZGRsZXdhcmU8VElucHV0LCBUUmVzdWx0PltdXG4pOiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD4pID0+IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICByZXR1cm4gKGhhbmRsZXI6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+KSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn1cbiJdfQ==","// queries/query.registry.ts\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkucmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3F1ZXJ5LnJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVksYUFBUSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ3RELGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztLQWtDbEQ7SUFoQ0csUUFBUSxDQUFDLEdBQVcsRUFBRSxNQUErQjtRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEdBQUcsQ0FBQyxVQUE4QjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQzsrR0FuQ1EsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHF1ZXJpZXMvcXVlcnkucmVnaXN0cnkudHNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlIH0gZnJvbSAnLi9xdWVyeS5taWRkbGV3YXJlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeVJlZ2lzdHJ5IHtcbiAgICBwcml2YXRlIHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsICgpID0+IFByb21pc2U8QVhQUXVlcnk+PigpO1xuICAgIHByaXZhdGUgbWlkZGxld2FyZXM6IEFYUFF1ZXJ5TWlkZGxld2FyZVtdID0gW107XG5cbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUFF1ZXJ5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnNldChrZXksIGxvYWRlcik7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlcihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5kZWxldGUoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMucHVzaChtaWRkbGV3YXJlKTtcbiAgICB9XG5cbiAgICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuaGFzKGtleSk7XG4gICAgfVxuXG4gICAgZ2V0TG9hZGVyKGtleTogc3RyaW5nKTogKCgpID0+IFByb21pc2U8QVhQUXVlcnk+KSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldChrZXkpO1xuICAgIH1cblxuICAgIGdldE1pZGRsZXdhcmVzKCk6IHJlYWRvbmx5IEFYUFF1ZXJ5TWlkZGxld2FyZVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLm1pZGRsZXdhcmVzXTtcbiAgICB9XG5cbiAgICBnZXRSZWdpc3RlcmVkS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucmVnaXN0cnkua2V5cygpKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS5jbGVhcigpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLmxlbmd0aCA9IDA7XG4gICAgfVxufVxuIl19","// plugins/query.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_QUERY_EXTENSION = new InjectionToken('AXP_QUERY_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZXh0ZW5zaW9uLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcXVlcmllcy9xdWVyeS5leHRlbnNpb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwbHVnaW5zL3F1ZXJ5LmV4dGVuc2lvbi50b2tlbi50c1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5TWlkZGxld2FyZSB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUXVlcnlFeHRlbnNpb24ge1xuICAgIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICAgIG1pZGRsZXdhcmU6IEFYUFF1ZXJ5TWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9RVUVSWV9FWFRFTlNJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQUXVlcnlFeHRlbnNpb25bXT4oJ0FYUF9RVUVSWV9FWFRFTlNJT04nKTtcbiJdfQ==","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { composeQueryMiddlewares } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPQueryRegistry);\n this.extensions = inject(AXP_QUERY_EXTENSION, { optional: true });\n }\n async fetch(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n const query = await loader();\n const handler = (i) => query.fetch(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeQueryMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3F1ZXJ5LmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBc0IsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVxQixhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQStCakY7SUE3QkcsS0FBSyxDQUFDLEtBQUssQ0FDUCxHQUFXLEVBQ1gsS0FBYTtRQUViLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JGLE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBeUMsRUFBRSxFQUFFLENBQ2hFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsR0FBVztRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVO1lBQ2xCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQzthQUN4RixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBakNRLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlLCBjb21wb3NlUXVlcnlNaWRkbGV3YXJlcyB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlZ2lzdHJ5IH0gZnJvbSAnLi9xdWVyeS5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBfUVVFUllfRVhURU5TSU9OIH0gZnJvbSAnLi9xdWVyeS5leHRlbnNpb24udG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFF1ZXJ5RXhlY3V0b3Ige1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBRdWVyeVJlZ2lzdHJ5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4dGVuc2lvbnMgPSBpbmplY3QoQVhQX1FVRVJZX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGFzeW5jIGZldGNoPFRJbnB1dCA9IGFueSwgVFJlc3VsdCA9IGFueT4oXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICBpbnB1dDogVElucHV0XG4gICAgKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnJlZ2lzdHJ5LmdldExvYWRlcihrZXkpO1xuICAgICAgICBpZiAoIWxvYWRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGxvYWRlcigpO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGk6IFRJbnB1dCkgPT4gcXVlcnkuZmV0Y2goaSk7XG5cbiAgICAgICAgY29uc3QgcGx1Z2luTWlkZGxld2FyZXMgPSB0aGlzLmdldFBsdWdpbk1pZGRsZXdhcmVzKGtleSk7XG4gICAgICAgIGNvbnN0IGdsb2JhbE1pZGRsZXdhcmVzID0gdGhpcy5yZWdpc3RyeS5nZXRNaWRkbGV3YXJlcygpO1xuXG4gICAgICAgIGNvbnN0IHdyYXBwZWRNaWRkbGV3YXJlcyA9IFsuLi5nbG9iYWxNaWRkbGV3YXJlcywgLi4ucGx1Z2luTWlkZGxld2FyZXNdLm1hcChtaWRkbGV3YXJlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoaW5wdXQ6IFRJbnB1dCwgbmV4dDogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoaW5wdXQsIG5leHQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9zZWQgPSBjb21wb3NlUXVlcnlNaWRkbGV3YXJlcyh3cmFwcGVkTWlkZGxld2FyZXMpKGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gY29tcG9zZWQoaW5wdXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5OiBzdHJpbmcpOiBBWFBRdWVyeU1pZGRsZXdhcmVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnNcbiAgICAgICAgICAgID8uZmlsdGVyKGV4dCA9PiBleHQudGFyZ2V0IGluc3RhbmNlb2YgUmVnRXhwID8gZXh0LnRhcmdldC50ZXN0KGtleSkgOiBleHQudGFyZ2V0ID09PSBrZXkpXG4gICAgICAgICAgICAubWFwKGV4dCA9PiBleHQubWlkZGxld2FyZSkgPz8gW107XG4gICAgfVxufSAiXX0=","import { Injectable, inject } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryExecutor } from './query.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryService {\n constructor() {\n this.registry = inject(AXPQueryRegistry);\n this.executor = inject(AXPQueryExecutor);\n }\n // Registry methods\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n // Executor methods\n async fetch(key, input) {\n return this.executor.fetch(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3F1ZXJpZXMvcXVlcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQWtDeEQ7SUFoQ0csbUJBQW1CO0lBQ25CLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBK0I7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBOEI7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsS0FBSyxDQUFDLEtBQUssQ0FDUCxHQUFXLEVBQ1gsS0FBYTtRQUViLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWtCLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQW5DUSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlIH0gZnJvbSAnLi9xdWVyeS5taWRkbGV3YXJlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVnaXN0cnkgfSBmcm9tICcuL3F1ZXJ5LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFF1ZXJ5RXhlY3V0b3IgfSBmcm9tICcuL3F1ZXJ5LmV4ZWN1dG9yJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cnkgPSBpbmplY3QoQVhQUXVlcnlSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRvciA9IGluamVjdChBWFBRdWVyeUV4ZWN1dG9yKTtcblxuICAgIC8vIFJlZ2lzdHJ5IG1ldGhvZHNcbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUFF1ZXJ5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LnVucmVnaXN0ZXIoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkudXNlKG1pZGRsZXdhcmUpO1xuICAgIH1cblxuICAgIGV4aXN0cyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5leGlzdHMoa2V5KTtcbiAgICB9XG5cbiAgICBnZXRSZWdpc3RlcmVkS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldFJlZ2lzdGVyZWRLZXlzKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRvciBtZXRob2RzXG4gICAgYXN5bmMgZmV0Y2g8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmZldGNoPFRJbnB1dCwgVFJlc3VsdD4oa2V5LCBpbnB1dCk7XG4gICAgfVxufSAiXX0=","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nexport const AXP_QUERY_SETUP = new InjectionToken('AXP_QUERY_SETUP');\nexport function provideQuerySetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_QUERY_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.loader();\n return injector.get(CommandType);\n });\n }\n return true;\n },\n multi: true\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1xdWVyeS1zZXR1cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3Byb3ZpZGUtcXVlcnktc2V0dXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFPLGlCQUFpQixDQUFDLENBQUM7QUFPM0UsTUFBTSxVQUFVLGtCQUFrQixDQUM5QixPQUE4QjtJQUU5QixPQUFPLHdCQUF3QixDQUFDO1FBQzVCO1lBQ0ksT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDMUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBRTdDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQzFCLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTt3QkFDcEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ3pDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnlSZWdpc3RyeSB9IGZyb20gJy4vcXVlcnkucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQUXVlcnkgfSBmcm9tICcuL3F1ZXJ5LmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBfUVVFUllfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9RVUVSWV9TRVRVUCcpO1xuXG50eXBlIEFYUFF1ZXJ5TG9hZGVyRW50cnkgPSB7XG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9hZGVyOiAoKSA9PiBUeXBlPEFYUFF1ZXJ5PiB8IFByb21pc2U8VHlwZTxBWFBRdWVyeT4+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVRdWVyeVNldHVwcyhcbiAgICBlbnRyaWVzOiBBWFBRdWVyeUxvYWRlckVudHJ5W11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1FVRVJZX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFF1ZXJ5UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGVudHJ5LmtleSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tbWFuZFR5cGUgPSBhd2FpdCBlbnRyeS5sb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoQ29tbWFuZFR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59ICJdfQ==","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\nexport const AXP_QUERY_MIDDLEWARE_SETUP = new InjectionToken('AXP_QUERY_MIDDLEWARE_SETUP');\nexport function provideQueryMiddleware(entries) {\n const global = [];\n const extensions = [];\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n }\n else {\n extensions.push(entry);\n }\n }\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_QUERY_EXTENSION,\n useValue: ext,\n multi: true\n })),\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_QUERY_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1xdWVyeS1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcXVlcmllcy9wcm92aWRlLXF1ZXJ5LW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILE1BQU0sRUFDTixjQUFjLEVBQ2Qsd0JBQXdCLEVBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFPLDRCQUE0QixDQUFDLENBQUM7QUFLakcsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxPQUFnQztJQUVoQyxNQUFNLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFzRCxFQUFFLENBQUM7SUFFekUsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1Qiw0QkFBNEI7UUFDNUIsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQ7WUFDSSxPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzFDLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztTQUNKO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVnaXN0cnkgfSBmcm9tICcuL3F1ZXJ5LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFF1ZXJ5TWlkZGxld2FyZSB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBfUVVFUllfRVhURU5TSU9OIH0gZnJvbSAnLi9xdWVyeS5leHRlbnNpb24udG9rZW4nO1xuXG5leHBvcnQgY29uc3QgQVhQX1FVRVJZX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQJyk7XG5cbnR5cGUgQVhQUXVlcnlNaWRkbGV3YXJlRW50cnkgPVxuICAgIChBWFBRdWVyeU1pZGRsZXdhcmUgfCB7IGtleTogc3RyaW5nOyBtaWRkbGV3YXJlOiBBWFBRdWVyeU1pZGRsZXdhcmUgfSlbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVRdWVyeU1pZGRsZXdhcmUoXG4gICAgZW50cmllczogQVhQUXVlcnlNaWRkbGV3YXJlRW50cnlcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICBjb25zdCBnbG9iYWw6IEFYUFF1ZXJ5TWlkZGxld2FyZVtdID0gW107XG4gICAgY29uc3QgZXh0ZW5zaW9uczogeyBrZXk6IHN0cmluZzsgbWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlIH1bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW50cnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGdsb2JhbC5wdXNoKGVudHJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4dGVuc2lvbnMucHVzaChlbnRyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAgLy8gUGx1Z2luIG1pZGRsZXdhcmUgZW50cmllc1xuICAgICAgICAuLi5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUF9RVUVSWV9FWFRFTlNJT04sXG4gICAgICAgICAgICB1c2VWYWx1ZTogZXh0LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSkpLFxuXG4gICAgICAgIC8vIEdsb2JhbCBtaWRkbGV3YXJlIHNldHVwICh0cmlnZ2VyZWQgdmlhIHRoaXMgdG9rZW4pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFF1ZXJ5UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXcgb2YgZ2xvYmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnVzZShtdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXSk7XG59ICJdfQ==","export function composeViewMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvdmlld3Mvdmlldy5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsV0FBd0M7SUFFeEMsT0FBTyxDQUFDLE9BQXNELEVBQUUsRUFBRTtRQUM5RCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUV0QixRQUFRLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWaWV3RGVmaW5pdGlvbiB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgQVhQVmlld01pZGRsZXdhcmU8VElucHV0ID0gYW55PiA9IChcbiAgICBpbnB1dDogVElucHV0LFxuICAgIG5leHQ6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uPlxuKSA9PiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VWaWV3TWlkZGxld2FyZXM8VElucHV0PihcbiAgICBtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmU8VElucHV0PltdXG4pOiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24+KSA9PiAoaW5wdXQ6IFRJbnB1dCkgPT4gUHJvbWlzZTxBWFBWaWV3RGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24+KSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn0gIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3ZpZXcucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTBDLENBQUM7UUFDN0QsZ0JBQVcsR0FBd0IsRUFBRSxDQUFDO0tBa0NqRDtJQWhDRyxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQXNDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQTZCO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDOytHQW5DUSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBWaWV3UHJvdmlkZXIgfSBmcm9tICcuL3ZpZXcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFZpZXdSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPEFYUFZpZXdQcm92aWRlcj4+KCk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmVbXSA9IFtdO1xuXG4gICAgcmVnaXN0ZXIoa2V5OiBzdHJpbmcsIGxvYWRlcjogKCkgPT4gUHJvbWlzZTxBWFBWaWV3UHJvdmlkZXI+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBWaWV3TWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLnB1c2gobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldExvYWRlcihrZXk6IHN0cmluZyk6ICgoKSA9PiBQcm9taXNlPEFYUFZpZXdQcm92aWRlcj4pIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgZ2V0TWlkZGxld2FyZXMoKTogcmVhZG9ubHkgQVhQVmlld01pZGRsZXdhcmVbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5taWRkbGV3YXJlc107XG4gICAgfVxuXG4gICAgZ2V0UmVnaXN0ZXJlZEtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LmtleXMoKSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlcy5sZW5ndGggPSAwO1xuICAgIH1cbn0gIl19","import { InjectionToken } from '@angular/core';\nexport const AXP_VIEW_EXTENSION = new InjectionToken('AXP_VIEW_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5leHRlbnNpb24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi92aWV3cy92aWV3LmV4dGVuc2lvbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZpZXdFeHRlbnNpb24ge1xuICAgIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICAgIG1pZGRsZXdhcmU6IEFYUFZpZXdNaWRkbGV3YXJlO1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1ZJRVdfRVhURU5TSU9OID0gbmV3IEluamVjdGlvblRva2VuPEFYUFZpZXdFeHRlbnNpb25bXT4oJ0FYUF9WSUVXX0VYVEVOU0lPTicpOyAiXX0=","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { composeViewMiddlewares } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXP_VIEW_EXTENSION } from './view.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPViewRegistry);\n this.extensions = inject(AXP_VIEW_EXTENSION, { optional: true });\n }\n async provide(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n const provider = await loader();\n const handler = (i) => provider.provide(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeViewMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3ZpZXcuZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJNUQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBK0JoRjtJQTdCRyxLQUFLLENBQUMsT0FBTyxDQUNULEdBQVcsRUFDWCxLQUFhO1FBRWIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckYsT0FBTyxDQUFDLEtBQWEsRUFBRSxJQUFtRCxFQUFFLEVBQUUsQ0FDMUUscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVU7WUFDbEIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDO2FBQ3hGLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0FqQ1EsZUFBZTttSEFBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlLCBjb21wb3NlVmlld01pZGRsZXdhcmVzIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQVmlld1JlZ2lzdHJ5IH0gZnJvbSAnLi92aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUF9WSUVXX0VYVEVOU0lPTiB9IGZyb20gJy4vdmlldy5leHRlbnNpb24udG9rZW4nO1xuaW1wb3J0IHsgQVhQVmlld0RlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFZpZXdFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9WSUVXX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGFzeW5jIHByb3ZpZGU8VElucHV0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnJlZ2lzdHJ5LmdldExvYWRlcihrZXkpO1xuICAgICAgICBpZiAoIWxvYWRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGxvYWRlcigpO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGk6IFRJbnB1dCkgPT4gcHJvdmlkZXIucHJvdmlkZShpKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5NaWRkbGV3YXJlcyA9IHRoaXMuZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5KTtcbiAgICAgICAgY29uc3QgZ2xvYmFsTWlkZGxld2FyZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldE1pZGRsZXdhcmVzKCk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE1pZGRsZXdhcmVzID0gWy4uLmdsb2JhbE1pZGRsZXdhcmVzLCAuLi5wbHVnaW5NaWRkbGV3YXJlc10ubWFwKG1pZGRsZXdhcmUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChpbnB1dDogVElucHV0LCBuZXh0OiAoaW5wdXQ6IFRJbnB1dCkgPT4gUHJvbWlzZTxBWFBWaWV3RGVmaW5pdGlvbj4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoaW5wdXQsIG5leHQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9zZWQgPSBjb21wb3NlVmlld01pZGRsZXdhcmVzKHdyYXBwZWRNaWRkbGV3YXJlcykoaGFuZGxlcik7XG4gICAgICAgIHJldHVybiBjb21wb3NlZChpbnB1dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQbHVnaW5NaWRkbGV3YXJlcyhrZXk6IHN0cmluZyk6IEFYUFZpZXdNaWRkbGV3YXJlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlbnNpb25zXG4gICAgICAgICAgICA/LmZpbHRlcihleHQgPT4gZXh0LnRhcmdldCBpbnN0YW5jZW9mIFJlZ0V4cCA/IGV4dC50YXJnZXQudGVzdChrZXkpIDogZXh0LnRhcmdldCA9PT0ga2V5KVxuICAgICAgICAgICAgLm1hcChleHQgPT4gZXh0Lm1pZGRsZXdhcmUpID8/IFtdO1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewExecutor } from './view.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewService {\n constructor() {\n this.registry = inject(AXPViewRegistry);\n this.executor = inject(AXPViewExecutor);\n }\n //#region ---- Registry Methods ----\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n //#endregion\n //#region ---- Executor Methods ----\n async provide(key, input) {\n return this.executor.provide(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvdmlld3Mvdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSWxELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQXdDdkQ7SUF0Q0csd0NBQXdDO0lBRXhDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBc0M7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBNkI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZO0lBRVosd0NBQXdDO0lBRXhDLEtBQUssQ0FBQyxPQUFPLENBQ1QsR0FBVyxFQUNYLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQXZDUSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdQcm92aWRlciB9IGZyb20gJy4vdmlldy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQVmlld01pZGRsZXdhcmUgfSBmcm9tICcuL3ZpZXcubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBWaWV3UmVnaXN0cnkgfSBmcm9tICcuL3ZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQVmlld0V4ZWN1dG9yIH0gZnJvbSAnLi92aWV3LmV4ZWN1dG9yJztcbmltcG9ydCB7IEFYUFZpZXdEZWZpbml0aW9uIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBWaWV3U2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBWaWV3UmVnaXN0cnkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0b3IgPSBpbmplY3QoQVhQVmlld0V4ZWN1dG9yKTtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUmVnaXN0cnkgTWV0aG9kcyAgIC0tLS1cblxuICAgIHJlZ2lzdGVyKGtleTogc3RyaW5nLCBsb2FkZXI6ICgpID0+IFByb21pc2U8QVhQVmlld1Byb3ZpZGVyPik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LnVucmVnaXN0ZXIoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQVmlld01pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS51c2UobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmV4aXN0cyhrZXkpO1xuICAgIH1cblxuICAgIGdldFJlZ2lzdGVyZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0UmVnaXN0ZXJlZEtleXMoKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS5jbGVhcigpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBFeGVjdXRvciBNZXRob2RzICAgLS0tLVxuXG4gICAgYXN5bmMgcHJvdmlkZTxUSW5wdXQgPSBhbnk+KFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgaW5wdXQ6IFRJbnB1dFxuICAgICk6IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLnByb3ZpZGU8VElucHV0PihrZXksIGlucHV0KTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn0gIl19","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nexport const AXP_VIEW_SETUP = new InjectionToken('AXP_VIEW_SETUP');\nexport function provideViewSetups(providers) {\n return makeEnvironmentProviders([\n ...providers,\n {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n // Setup will be handled by the provided registration functions\n return;\n },\n multi: true\n }\n ]);\n}\nexport function provideViewSetup(key, loader) {\n return {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.register(key, loader);\n return;\n },\n multi: true\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12aWV3LXNldHVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3Byb3ZpZGUtdmlldy1zZXR1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsU0FBcUI7SUFDbkQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QixHQUFHLFNBQVM7UUFDWjtZQUNJLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUV6QywrREFBK0Q7Z0JBQy9ELE9BQU87WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLEdBQVcsRUFDWCxNQUFzQztJQUV0QyxPQUFPO1FBQ0gsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNiLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6QyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPO1FBQ1gsQ0FBQztRQUNELEtBQUssRUFBRSxJQUFJO0tBQ2QsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQVmlld1JlZ2lzdHJ5IH0gZnJvbSAnLi92aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFZpZXdQcm92aWRlciB9IGZyb20gJy4vdmlldy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgQVhQX1ZJRVdfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9WSUVXX1NFVFVQJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld1NldHVwcyhwcm92aWRlcnM6IFByb3ZpZGVyW10pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfU0VUVVAsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQVhQVmlld1JlZ2lzdHJ5KTtcblxuICAgICAgICAgICAgICAgIC8vIFNldHVwIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcHJvdmlkZWQgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld1NldHVwKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGxvYWRlcjogKCkgPT4gUHJvbWlzZTxBWFBWaWV3UHJvdmlkZXI+XG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfU0VUVVAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlcihrZXksIGxvYWRlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfTtcbn0gIl19","export function composePolicyEngineMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context) => mw(context, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5Lm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxVQUFVLDhCQUE4QixDQUMxQyxXQUF3QztJQUV4QyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLEdBQUcsQ0FBQyxPQUErQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lQ29udGV4dCB9IGZyb20gXCIuL3BvbGljeS5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IHR5cGUgQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZSA9IChcbiAgICBjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0LFxuICAgIG5leHQ6IChjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+LFxuKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzKFxuICAgIG1pZGRsZXdhcmVzOiBBWFBQb2xpY3lFbmdpbmVNaWRkbGV3YXJlW11cbik6IChoYW5kbGVyOiAoY29udGV4dDogQVhQUG9saWN5RW5naW5lQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPikgPT4gKGNvbnRleHQ6IEFYUFBvbGljeUVuZ2luZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoaGFuZGxlcikgPT4ge1xuICAgICAgICBsZXQgY29tcG9zZWQgPSBoYW5kbGVyO1xuICAgICAgICBmb3IgKGxldCBpID0gbWlkZGxld2FyZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG13ID0gbWlkZGxld2FyZXNbaV07XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gY29tcG9zZWQ7XG4gICAgICAgICAgICBjb21wb3NlZCA9IChjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KSA9PiBtdyhjb250ZXh0LCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn0gIl19","export class AXPPolicyEngineContext {\n constructor(options) {\n this._visible = true;\n this._enabled = true;\n this._id = options.id;\n this._sender = options.sender;\n }\n get sender() {\n return this._sender;\n }\n get id() {\n return this._id;\n }\n get visible() {\n return this._visible;\n }\n get enabled() {\n return this._enabled;\n }\n setVisible(visible) {\n this._visible = visible;\n return this;\n }\n setEnabled(enabled) {\n this._enabled = enabled;\n return this;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFBWSxPQUF5QjtRQUg3QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0I7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFnQjtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBQb2xpY3lPcHRpb25zIH0gZnJvbSBcIi4vcG9saWN5LnR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUG9saWN5IHtcbiAgICBhcHBseShjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQUG9saWN5RW5naW5lQ29udGV4dCB7XG5cbiAgICBwcml2YXRlIF9pZDogc3RyaW5nO1xuICAgIHByaXZhdGUgX3NlbmRlcjogQVhQUG9saWN5T3B0aW9uc1snc2VuZGVyJ107XG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBWFBQb2xpY3lPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX2lkID0gb3B0aW9ucy5pZDtcbiAgICAgICAgdGhpcy5fc2VuZGVyID0gb3B0aW9ucy5zZW5kZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZW5kZXIoKTogQVhQUG9saWN5T3B0aW9uc1snc2VuZGVyJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VuZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZpc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgc2V0RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2VuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59ICAgICAgIFxuIl19","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_POLICY_EXTENSION = new InjectionToken('AXP_POLICY_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmV4dGVuc2lvbi50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuZXh0ZW5zaW9uLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUF1QixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcGx1Z2lucy9jb21tYW5kLmV4dGVuc2lvbi50b2tlbi50c1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZU1pZGRsZXdhcmUgfSBmcm9tICcuL3BvbGljeS5taWRkbGV3YXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBQb2xpY3lFeHRlbnNpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIG1pZGRsZXdhcmU6IEFYUFBvbGljeUVuZ2luZU1pZGRsZXdhcmU7XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfUE9MSUNZX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBQb2xpY3lFeHRlbnNpb25bXT4oJ0FYUF9QT0xJQ1lfRVhURU5TSU9OJyk7XG4iXX0=","import { EnvironmentInjector, inject, Injectable, runInInjectionContext } from '@angular/core';\nimport { composePolicyEngineMiddlewares } from './policy.middleware';\nimport { AXPPolicyEngineContext } from './policy.interface';\nimport { AXP_POLICY_EXTENSION } from './policy.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n this.extensions = inject(AXP_POLICY_EXTENSION, { optional: true });\n this.injector = inject(EnvironmentInjector);\n }\n use(mw) {\n this.middlewares.push(mw);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getPolicies() {\n return Array.from(this.registry.keys());\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.key === key)\n .map(ext => ext.middleware) ?? [];\n }\n async execute(policy, instance) {\n const loader = this.registry.get(policy);\n if (!loader) {\n throw new Error(`${policy} not implemented`);\n }\n const context = new AXPPolicyEngineContext(instance);\n const applier = await loader();\n const handler = (i) => applier.apply(i);\n const pluginMws = this.getPluginMiddlewares(policy);\n const wrappedMws = [...this.middlewares, ...pluginMws].map(mw => {\n return (input, next) => runInInjectionContext(this.injector, () => mw(input, next));\n });\n const composed = composePolicyEngineMiddlewares(wrappedMws)(handler);\n await composed(context);\n return context;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcG9saWN5L3BvbGljeS5yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBWSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQTZCLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7UUFDdkQsZ0JBQVcsR0FBZ0MsRUFBRSxDQUFDO1FBQzlDLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5RCxhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FtRGxEO0lBaERHLEdBQUcsQ0FBQyxFQUE2QjtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxNQUFnQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUdPLG9CQUFvQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxJQUFJLENBQUMsVUFBVTtZQUNsQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUlELEtBQUssQ0FBQyxPQUFPLENBQ1QsTUFBYyxFQUNkLFFBQTBCO1FBRTFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQXlCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVELE9BQU8sQ0FBQyxLQUE2QixFQUFFLElBQXNELEVBQUUsRUFBRSxDQUM3RixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLDhCQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7K0dBdkRRLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs7NEZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZSwgY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzIH0gZnJvbSAnLi9wb2xpY3kubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBQb2xpY3lFbmdpbmVDb250ZXh0IH0gZnJvbSAnLi9wb2xpY3kuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUFBvbGljeU9wdGlvbnMgfSBmcm9tICcuL3BvbGljeS50eXBlcyc7XG5pbXBvcnQgeyBBWFBQb2xpY3kgfSBmcm9tICcuL3BvbGljeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQX1BPTElDWV9FWFRFTlNJT04gfSBmcm9tICcuL3BvbGljeS5leHRlbnNpb24udG9rZW4nO1xuaW1wb3J0IHsgQVhQUG9saWN5RXh0ZW5zaW9uIH0gZnJvbSAnLi9wb2xpY3kuZXh0ZW5zaW9uLnRva2VuJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPEFYUFBvbGljeT4+KCk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlczogQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZVtdID0gW107XG4gICAgcHJpdmF0ZSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9QT0xJQ1lfRVhURU5TSU9OLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuXG4gICAgdXNlKG13OiBBWFBQb2xpY3lFbmdpbmVNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMucHVzaChtdyk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldFBvbGljaWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZWdpc3RyeS5rZXlzKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyKGtleTogc3RyaW5nLCBsb2FkZXI6ICgpID0+IFByb21pc2U8QVhQUG9saWN5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnNldChrZXksIGxvYWRlcik7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGdldFBsdWdpbk1pZGRsZXdhcmVzKGtleTogc3RyaW5nKTogQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgICAgICAgPy5maWx0ZXIoZXh0ID0+IGV4dC5rZXkgPT09IGtleSlcbiAgICAgICAgICAgIC5tYXAoZXh0ID0+IGV4dC5taWRkbGV3YXJlKSA/PyBbXTtcbiAgICB9XG5cblxuXG4gICAgYXN5bmMgZXhlY3V0ZShcbiAgICAgICAgcG9saWN5OiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBBWFBQb2xpY3lPcHRpb25zXG4gICAgKTogUHJvbWlzZTxBWFBQb2xpY3lFbmdpbmVDb250ZXh0PiB7XG4gICAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMucmVnaXN0cnkuZ2V0KHBvbGljeSk7XG4gICAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cG9saWN5fSBub3QgaW1wbGVtZW50ZWRgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFBvbGljeUVuZ2luZUNvbnRleHQoaW5zdGFuY2UpO1xuICAgICAgICBjb25zdCBhcHBsaWVyID0gYXdhaXQgbG9hZGVyKCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoaTogQVhQUG9saWN5RW5naW5lQ29udGV4dCkgPT4gYXBwbGllci5hcHBseShpKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5Nd3MgPSB0aGlzLmdldFBsdWdpbk1pZGRsZXdhcmVzKHBvbGljeSk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE13cyA9IFsuLi50aGlzLm1pZGRsZXdhcmVzLCAuLi5wbHVnaW5Nd3NdLm1hcChtdyA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGlucHV0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0LCBuZXh0OiAoaW5wdXQ6IEFYUFBvbGljeUVuZ2luZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG13KGlucHV0LCBuZXh0KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvc2VkID0gY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzKHdyYXBwZWRNd3MpKGhhbmRsZXIpO1xuICAgICAgICBhd2FpdCBjb21wb3NlZChjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxufSAiXX0=","import { inject, Injectable } from \"@angular/core\";\nimport { AXPPolicyEngineRegistry } from \"./policy.registry\";\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineService {\n constructor() {\n this.registry = inject(AXPPolicyEngineRegistry);\n }\n async apply(options) {\n const allPolicies = this.registry.getPolicies().filter(p => (options.policies?.length ?? 0) == 0 || options.policies?.includes(p));\n await Promise.all(allPolicies.map(async (policy) => {\n const context = await this.registry.execute(policy, options);\n return context;\n }));\n //\n // if (instance instanceof HTMLElement) {\n // if (context.visible === false) {\n // instance.style.display = 'none';\n // } else {\n // instance.style.display = '';\n // }\n // }\n // //\n // if (instance instanceof MXBaseComponent) {\n // if (context.visible === false) {\n // instance.getHostElement().style.display = 'none';\n // } else {\n // instance.getHostElement().style.display = '';\n // }\n // }\n // // Handle disabled state for interactive components\n // if (instance instanceof MXInteractiveComponent) {\n // if (context.enabled === false) {\n // instance.disabled = true;\n // } else {\n // instance.disabled = false;\n // }\n // }\n // // TODO: Handle object properties \n // if (instance instanceof Object) {\n // if (context.visible === false) {\n // set(instance, 'visible', false);\n // }\n // if (context.enabled === false) {\n // set(instance, 'disabled', true);\n // }\n // }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTTVELE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJWSxhQUFRLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FtRHREO0lBL0NHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBeUI7UUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5JLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3RCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSUosRUFBRTtRQUNGLHlDQUF5QztRQUN6Qyx1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLGVBQWU7UUFDZix1Q0FBdUM7UUFDdkMsUUFBUTtRQUNSLElBQUk7UUFDSixLQUFLO1FBQ0wsNkNBQTZDO1FBQzdDLHVDQUF1QztRQUN2Qyw0REFBNEQ7UUFDNUQsZUFBZTtRQUNmLHdEQUF3RDtRQUN4RCxRQUFRO1FBQ1IsSUFBSTtRQUNKLHNEQUFzRDtRQUN0RCxvREFBb0Q7UUFDcEQsdUNBQXVDO1FBQ3ZDLG9DQUFvQztRQUNwQyxlQUFlO1FBQ2YscUNBQXFDO1FBQ3JDLFFBQVE7UUFDUixJQUFJO1FBQ0osdUNBQXVDO1FBQ3ZDLG9DQUFvQztRQUNwQyx1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLFFBQVE7UUFDUix1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLFFBQVE7UUFDUixJQUFJO0lBQ1IsQ0FBQzsrR0FoRFEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSB9IGZyb20gXCIuL3BvbGljeS5yZWdpc3RyeVwiO1xuaW1wb3J0IHsgQVhQUG9saWN5T3B0aW9ucyB9IGZyb20gXCIuL3BvbGljeS50eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUFBvbGljeUVuZ2luZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVnaXN0cnkgPSBpbmplY3QoQVhQUG9saWN5RW5naW5lUmVnaXN0cnkpO1xuXG5cblxuICAgIGFzeW5jIGFwcGx5KG9wdGlvbnM6IEFYUFBvbGljeU9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYWxsUG9saWNpZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldFBvbGljaWVzKCkuZmlsdGVyKHAgPT4gKG9wdGlvbnMucG9saWNpZXM/Lmxlbmd0aCA/PyAwKSA9PSAwIHx8IG9wdGlvbnMucG9saWNpZXM/LmluY2x1ZGVzKHApKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChhbGxQb2xpY2llcy5tYXAoYXN5bmMgcG9saWN5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCB0aGlzLnJlZ2lzdHJ5LmV4ZWN1dGUocG9saWN5LCBvcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgICAgICB9KSk7XG5cblxuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vICAgICBpZiAoY29udGV4dC52aXNpYmxlID09PSBmYWxzZSkge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICAvLyAvL1xuICAgICAgICAvLyBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBNWEJhc2VDb21wb25lbnQpIHtcbiAgICAgICAgLy8gICAgIGlmIChjb250ZXh0LnZpc2libGUgPT09IGZhbHNlKSB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFuY2UuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YW5jZS5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICAvLyAvLyBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgZm9yIGludGVyYWN0aXZlIGNvbXBvbmVudHNcbiAgICAgICAgLy8gaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCkge1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YW5jZS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gLy8gVE9ETzogSGFuZGxlIG9iamVjdCBwcm9wZXJ0aWVzICAgXG4gICAgICAgIC8vIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQudmlzaWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBzZXQoaW5zdGFuY2UsICd2aXNpYmxlJywgZmFsc2UpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBzZXQoaW5zdGFuY2UsICdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgfVxuXG5cblxufVxuIl19","import { Directive, ElementRef, input, effect, inject } from '@angular/core';\nimport { AXPPolicyEngineService } from './policy.service';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineDirective {\n constructor() {\n this.policy = input.required(...(ngDevMode ? [{ debugName: \"policy\", alias: 'axp-apply-policy' }] : [{ alias: 'axp-apply-policy' }]));\n this.service = inject(AXPPolicyEngineService);\n this.elementRef = inject((ElementRef));\n this.#eff = effect(async () => {\n const policy = this.policy();\n if (!policy) {\n return;\n }\n await this.service.apply({\n id: this.elementRef.nativeElement.id,\n policies: castArray(policy),\n sender: this.elementRef.nativeElement\n });\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPPolicyEngineDirective, isStandalone: true, selector: \"[axp-apply-policy]\", inputs: { policy: { classPropertyName: \"policy\", publicName: \"axp-apply-policy\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-apply-policy]',\n standalone: true\n }]\n }], propDecorators: { policy: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-apply-policy\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTXRDLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLSSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEseUNBQThCLEtBQUssRUFBRSxrQkFBa0IsT0FBM0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsR0FBQyxDQUFDO1FBQzFFLFlBQU8sR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFHckQsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3BDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2FBQ3hDLENBQUMsQ0FBQztRQUNQLENBQUMsZ0RBQUMsQ0FBQztLQUVOO0lBWkcsSUFBSSxDQVVEOytHQWhCTSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lU2VydmljZSB9IGZyb20gJy4vcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWFwcGx5LXBvbGljeV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQUG9saWN5RW5naW5lRGlyZWN0aXZlIHtcbiAgICBwb2xpY3kgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPih7IGFsaWFzOiAnYXhwLWFwcGx5LXBvbGljeScgfSk7XG4gICAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYUFBvbGljeUVuZ2luZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblxuICAgICNlZmYgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBwb2xpY3kgPSB0aGlzLnBvbGljeSgpO1xuICAgICAgICBpZiAoIXBvbGljeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hcHBseSh7XG4gICAgICAgICAgICBpZDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaWQsXG4gICAgICAgICAgICBwb2xpY2llczogY2FzdEFycmF5KHBvbGljeSksXG4gICAgICAgICAgICBzZW5kZXI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG59XG4iXX0=","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPPolicyEngineRegistry } from './policy.registry';\nexport const AXP_POLICY_ENGINE_MIDDLEWARE_SETUP = new InjectionToken('AXP_POLICY_ENGINE_MIDDLEWARE_SETUP');\nexport function providePolicySetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_POLICY_ENGINE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPPolicyEngineRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const PolicyType = await entry.policy();\n return injector.get(PolicyType);\n });\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LW1pZGRsZXdhcmUtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5LW1pZGRsZXdhcmUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFPLG9DQUFvQyxDQUFDLENBQUM7QUFVakgsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQTBCO0lBQzFELE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUsa0NBQWtDO1lBQzNDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ2pELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ3BDLE1BQU0sVUFBVSxHQUFHLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztTQUNKO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZVJlZ2lzdHJ5IH0gZnJvbSAnLi9wb2xpY3kucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQUG9saWN5IH0gZnJvbSAnLi9wb2xpY3kuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEFYUF9QT0xJQ1lfRU5HSU5FX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9QT0xJQ1lfRU5HSU5FX01JRERMRVdBUkVfU0VUVVAnKTtcblxuXG5cbnR5cGUgQVhQUG9saWN5TG9hZGVyID0ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHBvbGljeTogKCkgPT4gVHlwZTxBWFBQb2xpY3k+IHwgUHJvbWlzZTxUeXBlPEFYUFBvbGljeT4+O1xufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBvbGljeVNldHVwcyhlbnRyaWVzOiBBWFBQb2xpY3lMb2FkZXJbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1BPTElDWV9FTkdJTkVfTUlERExFV0FSRV9TRVRVUCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyeSA9IGluamVjdChBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoZW50cnkua2V5LCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2xpY3lUeXBlID0gYXdhaXQgZW50cnkucG9saWN5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KFBvbGljeVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF0pO1xufSJdfQ==","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nexport const AXP_VIEW_MIDDLEWARE_SETUP = new InjectionToken('AXP_VIEW_MIDDLEWARE_SETUP');\nexport function provideViewMiddleware(middlewares) {\n return makeEnvironmentProviders([\n {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n middlewares.forEach(middleware => registry.use(middleware));\n return;\n },\n multi: true\n }\n ]);\n}\nexport function provideViewMiddlewareSetup(middleware) {\n return {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.use(middleware);\n return;\n },\n multi: true\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12aWV3LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi92aWV3cy9wcm92aWRlLXZpZXctbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLE1BQU0sRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFPLDJCQUEyQixDQUFDLENBQUM7QUFFL0YsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFdBQWdDO0lBQ2xFLE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN6QyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPO1lBQ1gsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxVQUE2QjtJQUU3QixPQUFPO1FBQ0gsT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFDRCxLQUFLLEVBQUUsSUFBSTtLQUNkLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdSZWdpc3RyeSB9IGZyb20gJy4vdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBWaWV3TWlkZGxld2FyZSB9IGZyb20gJy4vdmlldy5taWRkbGV3YXJlJztcblxuZXhwb3J0IGNvbnN0IEFYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWaWV3TWlkZGxld2FyZShtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmVbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfTUlERExFV0FSRV9TRVRVUCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyeSA9IGluamVjdChBWFBWaWV3UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVzLmZvckVhY2gobWlkZGxld2FyZSA9PiByZWdpc3RyeS51c2UobWlkZGxld2FyZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld01pZGRsZXdhcmVTZXR1cChcbiAgICBtaWRkbGV3YXJlOiBBWFBWaWV3TWlkZGxld2FyZVxuKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgICAgICAgICByZWdpc3RyeS51c2UobWlkZGxld2FyZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfTtcbn0gIl19","import { NgModule, isDevMode, inject } from \"@angular/core\";\nimport { AXP_COMMAND_SETUP } from \"./commands/provide-command-setups\";\nimport { AXP_COMMAND_MIDDLEWARE_SETUP } from \"./commands/provide-command-middleware\";\nimport { AXP_QUERY_SETUP } from \"./queries/provide-query-setups\";\nimport { AXP_QUERY_MIDDLEWARE_SETUP } from \"./queries/provide-query-middleware\";\nimport { AXP_VIEW_SETUP } from \"./views/provide-view-setups\";\nimport { AXP_VIEW_MIDDLEWARE_SETUP } from \"./views/provide-view-middleware\";\nimport { AXP_POLICY_ENGINE_MIDDLEWARE_SETUP } from \"./policy/policy-middleware-provider\";\nimport * as i0 from \"@angular/core\";\nexport class AXPRuntimeModule {\n constructor() {\n this._commandSetup = inject(AXP_COMMAND_SETUP, { optional: true });\n this._commandMiddlewareSetup = inject(AXP_COMMAND_MIDDLEWARE_SETUP, { optional: true });\n this._querySetup = inject(AXP_QUERY_SETUP, { optional: true });\n this._queryMiddlewareSetup = inject(AXP_QUERY_MIDDLEWARE_SETUP, { optional: true });\n this._viewSetup = inject(AXP_VIEW_SETUP, { optional: true });\n this._viewMiddlewareSetup = inject(AXP_VIEW_MIDDLEWARE_SETUP, { optional: true });\n this._policyEngineSetup = inject(AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, { optional: true });\n if (isDevMode() && false) {\n console.log('[AXPRuntimeModule] Command Setup:', this._commandSetup);\n console.log('[AXPRuntimeModule] Command Middleware Setup:', this._commandMiddlewareSetup);\n console.log('[AXPRuntimeModule] Query Setup:', this._querySetup);\n console.log('[AXPRuntimeModule] Query Middleware Setup:', this._queryMiddlewareSetup);\n console.log('[AXPRuntimeModule] View Setup:', this._viewSetup);\n console.log('[AXPRuntimeModule] View Middleware Setup:', this._viewMiddlewareSetup);\n console.log('[AXPRuntimeModule] Policy Engine Setup:', this._policyEngineSetup);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule, decorators: [{\n type: NgModule\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9ydW50aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFHekYsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QjtRQVhRLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkYsZ0JBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFL0UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RCx5QkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd4RixJQUFJLFNBQVMsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDMUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNMLENBQUM7K0dBdkJRLGdCQUFnQjtnSEFBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0LCBpc0Rldk1vZGUsIE9wdGlvbmFsLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQX0NPTU1BTkRfU0VUVVAgfSBmcm9tIFwiLi9jb21tYW5kcy9wcm92aWRlLWNvbW1hbmQtc2V0dXBzXCI7XG5pbXBvcnQgeyBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vY29tbWFuZHMvcHJvdmlkZS1jb21tYW5kLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IEFYUF9RVUVSWV9TRVRVUCB9IGZyb20gXCIuL3F1ZXJpZXMvcHJvdmlkZS1xdWVyeS1zZXR1cHNcIjtcbmltcG9ydCB7IEFYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vcXVlcmllcy9wcm92aWRlLXF1ZXJ5LW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IEFYUF9WSUVXX1NFVFVQIH0gZnJvbSBcIi4vdmlld3MvcHJvdmlkZS12aWV3LXNldHVwc1wiO1xuaW1wb3J0IHsgQVhQX1ZJRVdfTUlERExFV0FSRV9TRVRVUCB9IGZyb20gXCIuL3ZpZXdzL3Byb3ZpZGUtdmlldy1taWRkbGV3YXJlXCI7XG5pbXBvcnQgeyBBWFBfUE9MSUNZX0VOR0lORV9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vcG9saWN5L3BvbGljeS1taWRkbGV3YXJlLXByb3ZpZGVyXCI7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgQVhQUnVudGltZU1vZHVsZSB7XG5cbiAgICBwcml2YXRlIF9jb21tYW5kU2V0dXAgPSBpbmplY3QoQVhQX0NPTU1BTkRfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfY29tbWFuZE1pZGRsZXdhcmVTZXR1cCA9IGluamVjdChBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBfcXVlcnlTZXR1cCA9IGluamVjdChBWFBfUVVFUllfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfcXVlcnlNaWRkbGV3YXJlU2V0dXAgPSBpbmplY3QoQVhQX1FVRVJZX01JRERMRVdBUkVfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIF92aWV3U2V0dXAgPSBpbmplY3QoQVhQX1ZJRVdfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfdmlld01pZGRsZXdhcmVTZXR1cCA9IGluamVjdChBWFBfVklFV19NSURETEVXQVJFX1NFVFVQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBfcG9saWN5RW5naW5lU2V0dXAgPSBpbmplY3QoQVhQX1BPTElDWV9FTkdJTkVfTUlERExFV0FSRV9TRVRVUCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkgJiYgZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbQVhQUnVudGltZU1vZHVsZV0gQ29tbWFuZCBTZXR1cDonLCB0aGlzLl9jb21tYW5kU2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBDb21tYW5kIE1pZGRsZXdhcmUgU2V0dXA6JywgdGhpcy5fY29tbWFuZE1pZGRsZXdhcmVTZXR1cCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0FYUFJ1bnRpbWVNb2R1bGVdIFF1ZXJ5IFNldHVwOicsIHRoaXMuX3F1ZXJ5U2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBRdWVyeSBNaWRkbGV3YXJlIFNldHVwOicsIHRoaXMuX3F1ZXJ5TWlkZGxld2FyZVNldHVwKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbQVhQUnVudGltZU1vZHVsZV0gVmlldyBTZXR1cDonLCB0aGlzLl92aWV3U2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBWaWV3IE1pZGRsZXdhcmUgU2V0dXA6JywgdGhpcy5fdmlld01pZGRsZXdhcmVTZXR1cCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0FYUFJ1bnRpbWVNb2R1bGVdIFBvbGljeSBFbmdpbmUgU2V0dXA6JywgdGhpcy5fcG9saWN5RW5naW5lU2V0dXApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19","// Commands\nexport * from './lib/commands';\n// Queries\nexport * from './lib/queries';\n// Views\nexport * from './lib/views';\n// Policy\nexport * from './lib/policy';\n// Runtime\nexport * from './lib/runtime.module';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixRQUFRO0FBQ1IsY0FBYyxhQUFhLENBQUM7QUFFNUIsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLFVBQVU7QUFDVixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tbWFuZHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1hbmRzJztcblxuLy8gUXVlcmllc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcmllcyc7XG5cbi8vIFZpZXdzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cyc7XG5cbi8vIFBvbGljeVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9saWN5JztcblxuLy8gUnVudGltZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcnVudGltZS5tb2R1bGUnO1xuXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLXJ1bnRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-runtime.mjs","sources":["../tmp-esm2022/runtime/lib/commands/command.middleware.js","../tmp-esm2022/runtime/lib/commands/command.registry.js","../tmp-esm2022/runtime/lib/commands/command.extension.token.js","../tmp-esm2022/runtime/lib/commands/command-events.service.js","../tmp-esm2022/runtime/lib/commands/command.executor.js","../tmp-esm2022/runtime/lib/commands/command.service.js","../tmp-esm2022/runtime/lib/commands/provide-command-setups.js","../tmp-esm2022/runtime/lib/commands/provide-command-middleware.js","../tmp-esm2022/runtime/lib/queries/query.middleware.js","../tmp-esm2022/runtime/lib/queries/query.registry.js","../tmp-esm2022/runtime/lib/queries/query.extension.token.js","../tmp-esm2022/runtime/lib/queries/query.executor.js","../tmp-esm2022/runtime/lib/queries/query.service.js","../tmp-esm2022/runtime/lib/queries/provide-query-setups.js","../tmp-esm2022/runtime/lib/queries/provide-query-middleware.js","../tmp-esm2022/runtime/lib/views/view.middleware.js","../tmp-esm2022/runtime/lib/views/view.registry.js","../tmp-esm2022/runtime/lib/views/view.extension.token.js","../tmp-esm2022/runtime/lib/views/view.executor.js","../tmp-esm2022/runtime/lib/views/view.service.js","../tmp-esm2022/runtime/lib/views/provide-view-setups.js","../tmp-esm2022/runtime/lib/policy/policy.middleware.js","../tmp-esm2022/runtime/lib/policy/policy.interface.js","../tmp-esm2022/runtime/lib/policy/policy.extension.token.js","../tmp-esm2022/runtime/lib/policy/policy.registry.js","../tmp-esm2022/runtime/lib/policy/policy.service.js","../tmp-esm2022/runtime/lib/policy/policy.directive.js","../tmp-esm2022/runtime/lib/policy/policy-middleware-provider.js","../tmp-esm2022/runtime/lib/views/provide-view-middleware.js","../tmp-esm2022/runtime/lib/runtime.module.js","../tmp-esm2022/runtime/index.js","../tmp-esm2022/runtime/acorex-platform-runtime.js"],"sourcesContent":["//#endregion\n//#region ---- Middleware Composition ----\n/**\n * Creates a composed handler by chaining the provided command middlewares.\n */\nexport function composeCommandMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvY29tbWFuZHMvY29tbWFuZC5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLFlBQVk7QUFFWiw4Q0FBOEM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLFdBQW9EO0lBSXBELE9BQU8sQ0FDSCxPQUFxRSxFQUN2RSxFQUFFO1FBQ0EsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXZCLEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7WUFFdEIsUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuLy8jcmVnaW9uIC0tLS0gICBNaWRkbGV3YXJlIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtaWRkbGV3YXJlIGZ1bmN0aW9uIGluIHRoZSBjb21tYW5kIGV4ZWN1dGlvbiBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZE1pZGRsZXdhcmU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PiA9IChcbiAgICBpbnB1dDogVElucHV0LFxuICAgIG5leHQ6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFRSZXN1bHQ+PlxuKSA9PiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFRSZXN1bHQ+PjtcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgTWlkZGxld2FyZSBDb21wb3NpdGlvbiAgIC0tLS1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY29tcG9zZWQgaGFuZGxlciBieSBjaGFpbmluZyB0aGUgcHJvdmlkZWQgY29tbWFuZCBtaWRkbGV3YXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VDb21tYW5kTWlkZGxld2FyZXM8VElucHV0LCBUUmVzdWx0PihcbiAgICBtaWRkbGV3YXJlczogQVhQQ29tbWFuZE1pZGRsZXdhcmU8VElucHV0LCBUUmVzdWx0PltdXG4pOiAoXG4gICAgaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VFJlc3VsdD4+XG4pID0+IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFRSZXN1bHQ+PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VFJlc3VsdD4+XG4gICAgKSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn1cblxuLy8jZW5kcmVnaW9uXG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL2NvbW1hbmQucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVZLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUN4RCxnQkFBVyxHQUEyQixFQUFFLENBQUM7S0FrQ3BEO0lBaENHLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBaUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBZ0M7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBbkNRLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kTWlkZGxld2FyZSB9IGZyb20gJy4vY29tbWFuZC5taWRkbGV3YXJlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tYW5kUmVnaXN0cnkge1xuICAgIHByaXZhdGUgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxBWFBDb21tYW5kPj4oKTtcbiAgICBwcml2YXRlIG1pZGRsZXdhcmVzOiBBWFBDb21tYW5kTWlkZGxld2FyZVtdID0gW107XG5cbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLnB1c2gobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldExvYWRlcihrZXk6IHN0cmluZyk6ICgoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldChrZXkpO1xuICAgIH1cblxuICAgIGdldE1pZGRsZXdhcmVzKCk6IHJlYWRvbmx5IEFYUENvbW1hbmRNaWRkbGV3YXJlW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMubWlkZGxld2FyZXNdO1xuICAgIH1cblxuICAgIGdldFJlZ2lzdGVyZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZWdpc3RyeS5rZXlzKCkpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMubGVuZ3RoID0gMDtcbiAgICB9XG59XG4iXX0=","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_COMMAND_EXTENSION = new InjectionToken('AXP_COMMAND_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5leHRlbnNpb24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9jb21tYW5kcy9jb21tYW5kLmV4dGVuc2lvbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHBsdWdpbnMvY29tbWFuZC5leHRlbnNpb24udG9rZW4udHNcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kTWlkZGxld2FyZSB9IGZyb20gJy4vY29tbWFuZC5taWRkbGV3YXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21tYW5kRXh0ZW5zaW9uIHtcbiAgICB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDtcbiAgICBtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9DT01NQU5EX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBDb21tYW5kRXh0ZW5zaW9uW10+KCdBWFBfQ09NTUFORF9FWFRFTlNJT04nKTtcbiJdfQ==","//#region ---- Imports ----\nimport { inject, Injectable } from '@angular/core';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPDistributedEventListenerService } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\n//#endregion\nconst COMMAND_EXECUTION_EVENT_KEY = '@commands:execution';\nexport class AXPCommandEventsService {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.broadcast = inject(AXPBroadcastEventService);\n this.distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });\n }\n //#endregion\n //#region ---- Public API ----\n listen(handler) {\n const subscription = this.broadcast\n .listen(COMMAND_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => handler(data));\n return () => subscription.unsubscribe();\n }\n async emit(event) {\n this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, event);\n await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandEventsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandEventsService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL2NvbW1hbmQtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQW1CM0UsWUFBWTtBQUVaLE1BQU0sMkJBQTJCLEdBQUcscUJBQXFCLENBQUM7QUFHMUQsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVJLCtDQUErQztRQUU5QixjQUFTLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDN0Msc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0F3QnZHO0lBdEJHLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEMsTUFBTSxDQUNGLE9BQWlEO1FBRWpELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTO2FBQzlCLE1BQU0sQ0FBNEMsMkJBQTJCLENBQUM7YUFDOUUsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQ04sS0FBZ0Q7UUFFaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBekJRLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs7NEZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBUeXBlcyAgIC0tLS1cblxuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZEV4ZWN1dGlvblN0YWdlID0gJ2JlZm9yZScgfCAnYWZ0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1hbmRFeGVjdXRpb25FdmVudDxUSW5wdXQgPSB1bmtub3duLCBUUmVzdWx0ID0gdW5rbm93bj4ge1xuICAgIHN0YWdlOiBBWFBDb21tYW5kRXhlY3V0aW9uU3RhZ2U7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgaW5wdXQ6IFRJbnB1dDtcbiAgICBzdWNjZXNzPzogYm9vbGVhbjtcbiAgICByZXN1bHQ/OiBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDxUUmVzdWx0PiB8IG51bGw7XG4gICAgZXJyb3I/OiB1bmtub3duO1xufVxuXG50eXBlIENvbW1hbmRFeGVjdXRpb25IYW5kbGVyPFRJbnB1dCwgVFJlc3VsdD4gPSAoZXZlbnQ6IEFYUENvbW1hbmRFeGVjdXRpb25FdmVudDxUSW5wdXQsIFRSZXN1bHQ+KSA9PiB2b2lkO1xuXG4vLyNlbmRyZWdpb25cblxuY29uc3QgQ09NTUFORF9FWEVDVVRJT05fRVZFTlRfS0VZID0gJ0Bjb21tYW5kczpleGVjdXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUENvbW1hbmRFdmVudHNTZXJ2aWNlIHtcbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBicm9hZGNhc3QgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpc3RyaWJ1dGVkRXZlbnRzID0gaW5qZWN0KEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIEFQSSAgIC0tLS1cblxuICAgIGxpc3RlbjxUSW5wdXQgPSB1bmtub3duLCBUUmVzdWx0ID0gdW5rbm93bj4oXG4gICAgICAgIGhhbmRsZXI6IENvbW1hbmRFeGVjdXRpb25IYW5kbGVyPFRJbnB1dCwgVFJlc3VsdD4sXG4gICAgKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuYnJvYWRjYXN0XG4gICAgICAgICAgICAubGlzdGVuPEFYUENvbW1hbmRFeGVjdXRpb25FdmVudDxUSW5wdXQsIFRSZXN1bHQ+PihDT01NQU5EX0VYRUNVVElPTl9FVkVOVF9LRVkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGRhdGEgfSkgPT4gaGFuZGxlcihkYXRhKSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIGVtaXQ8VElucHV0ID0gdW5rbm93biwgVFJlc3VsdCA9IHVua25vd24+KFxuICAgICAgICBldmVudDogQVhQQ29tbWFuZEV4ZWN1dGlvbkV2ZW50PFRJbnB1dCwgVFJlc3VsdD4sXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuYnJvYWRjYXN0LnB1Ymxpc2goQ09NTUFORF9FWEVDVVRJT05fRVZFTlRfS0VZLCBldmVudCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlzdHJpYnV0ZWRFdmVudHM/LmRpc3BhdGNoKENPTU1BTkRfRVhFQ1VUSU9OX0VWRU5UX0tFWSwgZXZlbnQpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","import { EnvironmentInjector, Injectable, inject, runInInjectionContext } from '@angular/core';\nimport { composeCommandMiddlewares } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nimport { AXPCommandEventsService } from './command-events.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPCommandRegistry);\n this.extensions = inject(AXP_COMMAND_EXTENSION, { optional: true });\n this.commandEvents = inject(AXPCommandEventsService);\n }\n async execute(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n throw new Error(`Command '${key}' is not registered`);\n }\n const command = await loader();\n const handler = (i) => command.execute(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [\n ...globalMiddlewares,\n ...pluginMiddlewares,\n ].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeCommandMiddlewares(wrappedMiddlewares)(handler);\n const beforeEvent = {\n stage: 'before',\n key,\n input,\n };\n await this.commandEvents.emit(beforeEvent);\n try {\n const result = await composed(input);\n const afterEvent = {\n stage: 'after',\n key,\n input,\n success: true,\n result,\n };\n await this.commandEvents.emit(afterEvent);\n return result;\n }\n catch (error) {\n const afterEvent = {\n stage: 'after',\n key,\n input,\n success: false,\n error,\n };\n await this.commandEvents.emit(afterEvent);\n throw error;\n }\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL2NvbW1hbmQuZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUF3Qix5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBNEIsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHN0YsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVxQixhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBcUVwRTtJQW5FRyxLQUFLLENBQUMsT0FBTyxDQUNULEdBQVcsRUFDWCxLQUFhO1FBRWIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQThDLENBQUM7UUFFL0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpELE1BQU0sa0JBQWtCLEdBQTRDO1lBQ2hFLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsaUJBQWlCO1NBQ3ZCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEtBQWEsRUFBRSxJQUFrRSxFQUFFLEVBQUUsQ0FDekYscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBa0Isa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6RixNQUFNLFdBQVcsR0FBRztZQUNoQixLQUFLLEVBQUUsUUFBaUI7WUFDeEIsR0FBRztZQUNILEtBQUs7U0FDbUMsQ0FBQztRQUU3QyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLE1BQU0sVUFBVSxHQUFHO2dCQUNmLEtBQUssRUFBRSxPQUFnQjtnQkFDdkIsR0FBRztnQkFDSCxLQUFLO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU07YUFDMkMsQ0FBQztZQUV0RCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTFDLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxVQUFVLEdBQUc7Z0JBQ2YsS0FBSyxFQUFFLE9BQWdCO2dCQUN2QixHQUFHO2dCQUNILEtBQUs7Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsS0FBSzthQUM0QyxDQUFDO1lBRXRELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUMsTUFBTSxLQUFLLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVU7WUFDbEIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDO2FBQ3hGLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0F4RVEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGFibGUsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kTWlkZGxld2FyZSwgY29tcG9zZUNvbW1hbmRNaWRkbGV3YXJlcyB9IGZyb20gJy4vY29tbWFuZC5taWRkbGV3YXJlJztcbmltcG9ydCB7IEFYUENvbW1hbmRSZWdpc3RyeSB9IGZyb20gJy4vY29tbWFuZC5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBfQ09NTUFORF9FWFRFTlNJT04gfSBmcm9tICcuL2NvbW1hbmQuZXh0ZW5zaW9uLnRva2VuJztcbmltcG9ydCB7IEFYUENvbW1hbmRFdmVudHNTZXJ2aWNlLCBBWFBDb21tYW5kRXhlY3V0aW9uRXZlbnQgfSBmcm9tICcuL2NvbW1hbmQtZXZlbnRzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUENvbW1hbmRFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9DT01NQU5EX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRFdmVudHMgPSBpbmplY3QoQVhQQ29tbWFuZEV2ZW50c1NlcnZpY2UpO1xuXG4gICAgYXN5bmMgZXhlY3V0ZTxUSW5wdXQgPSBhbnksIFRSZXN1bHQgPSBhbnk+KFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgaW5wdXQ6IFRJbnB1dFxuICAgICk6IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VFJlc3VsdD4gfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMucmVnaXN0cnkuZ2V0TG9hZGVyKGtleSk7XG4gICAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbW1hbmQgJyR7a2V5fScgaXMgbm90IHJlZ2lzdGVyZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBhd2FpdCBsb2FkZXIoKTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChpOiBUSW5wdXQpID0+IGNvbW1hbmQuZXhlY3V0ZShpKSBhcyBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFRSZXN1bHQ+PjtcblxuICAgICAgICBjb25zdCBwbHVnaW5NaWRkbGV3YXJlcyA9IHRoaXMuZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5KTtcbiAgICAgICAgY29uc3QgZ2xvYmFsTWlkZGxld2FyZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldE1pZGRsZXdhcmVzKCk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE1pZGRsZXdhcmVzOiBBWFBDb21tYW5kTWlkZGxld2FyZTxUSW5wdXQsIFRSZXN1bHQ+W10gPSBbXG4gICAgICAgICAgICAuLi5nbG9iYWxNaWRkbGV3YXJlcyxcbiAgICAgICAgICAgIC4uLnBsdWdpbk1pZGRsZXdhcmVzLFxuICAgICAgICBdLm1hcChtaWRkbGV3YXJlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoaW5wdXQ6IFRJbnB1dCwgbmV4dDogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VFJlc3VsdD4+KSA9PlxuICAgICAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBtaWRkbGV3YXJlKGlucHV0LCBuZXh0KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvc2VkID0gY29tcG9zZUNvbW1hbmRNaWRkbGV3YXJlczxUSW5wdXQsIFRSZXN1bHQ+KHdyYXBwZWRNaWRkbGV3YXJlcykoaGFuZGxlcik7XG5cbiAgICAgICAgY29uc3QgYmVmb3JlRXZlbnQgPSB7XG4gICAgICAgICAgICBzdGFnZTogJ2JlZm9yZScgYXMgY29uc3QsXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgfSBzYXRpc2ZpZXMgQVhQQ29tbWFuZEV4ZWN1dGlvbkV2ZW50PFRJbnB1dD47XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jb21tYW5kRXZlbnRzLmVtaXQoYmVmb3JlRXZlbnQpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb21wb3NlZChpbnB1dCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFmdGVyRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgc3RhZ2U6ICdhZnRlcicgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgQVhQQ29tbWFuZEV4ZWN1dGlvbkV2ZW50PFRJbnB1dCwgVFJlc3VsdD47XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWFuZEV2ZW50cy5lbWl0KGFmdGVyRXZlbnQpO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXJFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBzdGFnZTogJ2FmdGVyJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBBWFBDb21tYW5kRXhlY3V0aW9uRXZlbnQ8VElucHV0LCBUUmVzdWx0PjtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb21tYW5kRXZlbnRzLmVtaXQoYWZ0ZXJFdmVudCk7XG5cbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQbHVnaW5NaWRkbGV3YXJlcyhrZXk6IHN0cmluZyk6IEFYUENvbW1hbmRNaWRkbGV3YXJlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlbnNpb25zXG4gICAgICAgICAgICA/LmZpbHRlcihleHQgPT4gZXh0LnRhcmdldCBpbnN0YW5jZW9mIFJlZ0V4cCA/IGV4dC50YXJnZXQudGVzdChrZXkpIDogZXh0LnRhcmdldCA9PT0ga2V5KVxuICAgICAgICAgICAgLm1hcChleHQgPT4gZXh0Lm1pZGRsZXdhcmUpID8/IFtdO1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandExecutor } from './command.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPCommandService {\n constructor() {\n this.registry = inject(AXPCommandRegistry);\n this.executor = inject(AXPCommandExecutor);\n }\n // Registry methods\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n // Executor methods\n async execute(key, input) {\n return this.executor.execute(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommandService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvY29tbWFuZHMvY29tbWFuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUd4RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FrQzFEO0lBaENHLG1CQUFtQjtJQUNuQixRQUFRLENBQUMsR0FBVyxFQUFFLE1BQWlDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQWdDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQ1QsR0FBVyxFQUNYLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFrQixHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzsrR0FuQ1EsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZE1pZGRsZXdhcmUgfSBmcm9tICcuL2NvbW1hbmQubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kUmVnaXN0cnkgfSBmcm9tICcuL2NvbW1hbmQucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQQ29tbWFuZEV4ZWN1dG9yIH0gZnJvbSAnLi9jb21tYW5kLmV4ZWN1dG9yJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tYW5kU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBDb21tYW5kUmVnaXN0cnkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0b3IgPSBpbmplY3QoQVhQQ29tbWFuZEV4ZWN1dG9yKTtcblxuICAgIC8vIFJlZ2lzdHJ5IG1ldGhvZHNcbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUENvbW1hbmQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoa2V5LCBsb2FkZXIpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXIoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkudW5yZWdpc3RlcihrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBDb21tYW5kTWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnVzZShtaWRkbGV3YXJlKTtcbiAgICB9XG5cbiAgICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZXhpc3RzKGtleSk7XG4gICAgfVxuXG4gICAgZ2V0UmVnaXN0ZXJlZEtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5nZXRSZWdpc3RlcmVkS2V5cygpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0b3IgbWV0aG9kc1xuICAgIGFzeW5jIGV4ZWN1dGU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFRSZXN1bHQ+IHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRvci5leGVjdXRlPFRJbnB1dCwgVFJlc3VsdD4oa2V5LCBpbnB1dCk7XG4gICAgfVxufSAiXX0=","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders, runInInjectionContext } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nexport const AXP_COMMAND_SETUP = new InjectionToken('AXP_COMMAND_SETUP');\nexport function provideCommandSetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_COMMAND_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.command();\n // Try to get from DI first, if fails create new instance\n try {\n return injector.get(CommandType);\n }\n catch (e) {\n // If not in DI (e.g., for activities), create new instance\n return runInInjectionContext(injector, () => new CommandType());\n }\n });\n }\n return true;\n },\n multi: true\n }\n ]);\n}\nexport function provideCommand(key, loader) {\n return provideCommandSetups([\n {\n key,\n command: loader\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb21tYW5kLXNldHVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL2NvbW1hbmRzL3Byb3ZpZGUtY29tbWFuZC1zZXR1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFPLG1CQUFtQixDQUFDLENBQUM7QUFTL0UsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQTJCO0lBRTVELE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyx5REFBeUQ7d0JBQ3pELElBQUksQ0FBQzs0QkFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLENBQUM7d0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzs0QkFDVCwyREFBMkQ7NEJBQzNELE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQzt3QkFDcEUsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUdELE1BQU0sVUFBVSxjQUFjLENBQzFCLEdBQVcsRUFDWCxNQUEwRDtJQUUxRCxPQUFPLG9CQUFvQixDQUFDO1FBQ3hCO1lBQ0ksR0FBRztZQUNILE9BQU8sRUFBRSxNQUFNO1NBQ2xCO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFJlZ2lzdHJ5IH0gZnJvbSAnLi9jb21tYW5kLnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmQuaW50ZXJmYWNlJztcblxuXG5leHBvcnQgY29uc3QgQVhQX0NPTU1BTkRfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9DT01NQU5EX1NFVFVQJyk7XG5cblxudHlwZSBBWFBDb21tYW5kTG9hZGVyID0ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGNvbW1hbmQ6ICgpID0+IFR5cGU8QVhQQ29tbWFuZD4gfCBQcm9taXNlPFR5cGU8QVhQQ29tbWFuZD4+O1xufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbW1hbmRTZXR1cHMoZW50cmllczogQVhQQ29tbWFuZExvYWRlcltdKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuXG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUF9DT01NQU5EX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoZW50cnkua2V5LCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21tYW5kVHlwZSA9IGF3YWl0IGVudHJ5LmNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBnZXQgZnJvbSBESSBmaXJzdCwgaWYgZmFpbHMgY3JlYXRlIG5ldyBpbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KENvbW1hbmRUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBub3QgaW4gREkgKGUuZy4sIGZvciBhY3Rpdml0aWVzKSwgY3JlYXRlIG5ldyBpbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IG5ldyBDb21tYW5kVHlwZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0pO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29tbWFuZChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBsb2FkZXI6ICgpID0+IFR5cGU8QVhQQ29tbWFuZD4gfCBQcm9taXNlPFR5cGU8QVhQQ29tbWFuZD4+XG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHByb3ZpZGVDb21tYW5kU2V0dXBzKFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY29tbWFuZDogbG9hZGVyXG4gICAgICAgIH1cbiAgICBdKTtcbn1cblxuXG4iXX0=","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nexport const AXP_COMMAND_MIDDLEWARE_SETUP = new InjectionToken('AXP_COMMAND_MIDDLEWARE_SETUP');\nexport function provideCommandMiddleware(entries) {\n const global = [];\n const extensions = [];\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n }\n else {\n extensions.push(entry);\n }\n }\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_COMMAND_EXTENSION,\n useValue: ext,\n multi: true\n })),\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_COMMAND_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb21tYW5kLW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9jb21tYW5kcy9wcm92aWRlLWNvbW1hbmQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsTUFBTSxFQUNOLGNBQWMsRUFDZCx3QkFBd0IsRUFDM0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQU8sOEJBQThCLENBQUMsQ0FBQztBQUtyRyxNQUFNLFVBQVUsd0JBQXdCLENBQ3BDLE9BQWtDO0lBRWxDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxVQUFVLEdBQW9FLEVBQUUsQ0FBQztJQUV2RixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDO1FBQzVCLDRCQUE0QjtRQUM1QixHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUNyRDtZQUNJLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDNUMsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1NBQ0o7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFJlZ2lzdHJ5IH0gZnJvbSAnLi9jb21tYW5kLnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUENvbW1hbmRNaWRkbGV3YXJlIH0gZnJvbSAnLi9jb21tYW5kLm1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQX0NPTU1BTkRfRVhURU5TSU9OIH0gZnJvbSAnLi9jb21tYW5kLmV4dGVuc2lvbi50b2tlbic7XG5cbmV4cG9ydCBjb25zdCBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQID0gbmV3IEluamVjdGlvblRva2VuPHZvaWQ+KCdBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQJyk7XG5cbnR5cGUgQVhQQ29tbWFuZE1pZGRsZXdhcmVFbnRyeSA9XG4gICAgKEFYUENvbW1hbmRNaWRkbGV3YXJlIHwgeyB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDsgbWlkZGxld2FyZTogQVhQQ29tbWFuZE1pZGRsZXdhcmUgfSlbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb21tYW5kTWlkZGxld2FyZShcbiAgICBlbnRyaWVzOiBBWFBDb21tYW5kTWlkZGxld2FyZUVudHJ5XG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgY29uc3QgZ2xvYmFsOiBBWFBDb21tYW5kTWlkZGxld2FyZVtdID0gW107XG4gICAgY29uc3QgZXh0ZW5zaW9uczogeyB0YXJnZXQ6IHN0cmluZyB8IFJlZ0V4cDsgbWlkZGxld2FyZTogQVhQQ29tbWFuZE1pZGRsZXdhcmUgfVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZ2xvYmFsLnB1c2goZW50cnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXh0ZW5zaW9ucy5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAvLyBQbHVnaW4gbWlkZGxld2FyZSBlbnRyaWVzXG4gICAgICAgIC4uLmV4dGVuc2lvbnMubWFwKGV4dCA9PiAoe1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX0NPTU1BTkRfRVhURU5TSU9OLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGV4dCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0pKSxcblxuICAgICAgICAvLyBHbG9iYWwgbWlkZGxld2FyZSBzZXR1cCAodHJpZ2dlcmVkIHZpYSB0aGlzIHRva2VuKVxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtdyBvZiBnbG9iYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkudXNlKG13KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdKTtcbn0iXX0=","export function composeQueryMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3F1ZXJpZXMvcXVlcnkubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFVBQVUsdUJBQXVCLENBQ25DLFdBQWtEO0lBRWxELE9BQU8sQ0FBQyxPQUE0QyxFQUFFLEVBQUU7UUFDcEQsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXZCLEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7WUFFdEIsUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcXVlcmllcy9xdWVyeS5taWRkbGV3YXJlLnRzXG5leHBvcnQgdHlwZSBBWFBRdWVyeU1pZGRsZXdhcmU8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PiA9IChcbiAgICBpbnB1dDogVElucHV0LFxuICAgIG5leHQ6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+XG4pID0+IFByb21pc2U8VFJlc3VsdD47XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlUXVlcnlNaWRkbGV3YXJlczxUSW5wdXQsIFRSZXN1bHQ+KFxuICAgIG1pZGRsZXdhcmVzOiBBWFBRdWVyeU1pZGRsZXdhcmU8VElucHV0LCBUUmVzdWx0PltdXG4pOiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD4pID0+IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICByZXR1cm4gKGhhbmRsZXI6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPFRSZXN1bHQ+KSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn1cbiJdfQ==","// queries/query.registry.ts\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkucmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3F1ZXJ5LnJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVksYUFBUSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ3RELGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztLQWtDbEQ7SUFoQ0csUUFBUSxDQUFDLEdBQVcsRUFBRSxNQUErQjtRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEdBQUcsQ0FBQyxVQUE4QjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUI7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQzsrR0FuQ1EsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHF1ZXJpZXMvcXVlcnkucmVnaXN0cnkudHNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlIH0gZnJvbSAnLi9xdWVyeS5taWRkbGV3YXJlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeVJlZ2lzdHJ5IHtcbiAgICBwcml2YXRlIHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsICgpID0+IFByb21pc2U8QVhQUXVlcnk+PigpO1xuICAgIHByaXZhdGUgbWlkZGxld2FyZXM6IEFYUFF1ZXJ5TWlkZGxld2FyZVtdID0gW107XG5cbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUFF1ZXJ5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnNldChrZXksIGxvYWRlcik7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlcihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5kZWxldGUoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMucHVzaChtaWRkbGV3YXJlKTtcbiAgICB9XG5cbiAgICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuaGFzKGtleSk7XG4gICAgfVxuXG4gICAgZ2V0TG9hZGVyKGtleTogc3RyaW5nKTogKCgpID0+IFByb21pc2U8QVhQUXVlcnk+KSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldChrZXkpO1xuICAgIH1cblxuICAgIGdldE1pZGRsZXdhcmVzKCk6IHJlYWRvbmx5IEFYUFF1ZXJ5TWlkZGxld2FyZVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLm1pZGRsZXdhcmVzXTtcbiAgICB9XG5cbiAgICBnZXRSZWdpc3RlcmVkS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucmVnaXN0cnkua2V5cygpKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS5jbGVhcigpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLmxlbmd0aCA9IDA7XG4gICAgfVxufVxuIl19","// plugins/query.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_QUERY_EXTENSION = new InjectionToken('AXP_QUERY_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZXh0ZW5zaW9uLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcXVlcmllcy9xdWVyeS5leHRlbnNpb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwbHVnaW5zL3F1ZXJ5LmV4dGVuc2lvbi50b2tlbi50c1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5TWlkZGxld2FyZSB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUXVlcnlFeHRlbnNpb24ge1xuICAgIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICAgIG1pZGRsZXdhcmU6IEFYUFF1ZXJ5TWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9RVUVSWV9FWFRFTlNJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQUXVlcnlFeHRlbnNpb25bXT4oJ0FYUF9RVUVSWV9FWFRFTlNJT04nKTtcbiJdfQ==","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { composeQueryMiddlewares } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPQueryRegistry);\n this.extensions = inject(AXP_QUERY_EXTENSION, { optional: true });\n }\n async fetch(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n const query = await loader();\n const handler = (i) => query.fetch(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeQueryMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3F1ZXJ5LmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBc0IsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVxQixhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQStCakY7SUE3QkcsS0FBSyxDQUFDLEtBQUssQ0FDUCxHQUFXLEVBQ1gsS0FBYTtRQUViLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JGLE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBeUMsRUFBRSxFQUFFLENBQ2hFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsR0FBVztRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVO1lBQ2xCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQzthQUN4RixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBakNRLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlLCBjb21wb3NlUXVlcnlNaWRkbGV3YXJlcyB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlZ2lzdHJ5IH0gZnJvbSAnLi9xdWVyeS5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBfUVVFUllfRVhURU5TSU9OIH0gZnJvbSAnLi9xdWVyeS5leHRlbnNpb24udG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFF1ZXJ5RXhlY3V0b3Ige1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBRdWVyeVJlZ2lzdHJ5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4dGVuc2lvbnMgPSBpbmplY3QoQVhQX1FVRVJZX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGFzeW5jIGZldGNoPFRJbnB1dCA9IGFueSwgVFJlc3VsdCA9IGFueT4oXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICBpbnB1dDogVElucHV0XG4gICAgKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnJlZ2lzdHJ5LmdldExvYWRlcihrZXkpO1xuICAgICAgICBpZiAoIWxvYWRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGxvYWRlcigpO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGk6IFRJbnB1dCkgPT4gcXVlcnkuZmV0Y2goaSk7XG5cbiAgICAgICAgY29uc3QgcGx1Z2luTWlkZGxld2FyZXMgPSB0aGlzLmdldFBsdWdpbk1pZGRsZXdhcmVzKGtleSk7XG4gICAgICAgIGNvbnN0IGdsb2JhbE1pZGRsZXdhcmVzID0gdGhpcy5yZWdpc3RyeS5nZXRNaWRkbGV3YXJlcygpO1xuXG4gICAgICAgIGNvbnN0IHdyYXBwZWRNaWRkbGV3YXJlcyA9IFsuLi5nbG9iYWxNaWRkbGV3YXJlcywgLi4ucGx1Z2luTWlkZGxld2FyZXNdLm1hcChtaWRkbGV3YXJlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoaW5wdXQ6IFRJbnB1dCwgbmV4dDogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8VFJlc3VsdD4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoaW5wdXQsIG5leHQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9zZWQgPSBjb21wb3NlUXVlcnlNaWRkbGV3YXJlcyh3cmFwcGVkTWlkZGxld2FyZXMpKGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gY29tcG9zZWQoaW5wdXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5OiBzdHJpbmcpOiBBWFBRdWVyeU1pZGRsZXdhcmVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnNcbiAgICAgICAgICAgID8uZmlsdGVyKGV4dCA9PiBleHQudGFyZ2V0IGluc3RhbmNlb2YgUmVnRXhwID8gZXh0LnRhcmdldC50ZXN0KGtleSkgOiBleHQudGFyZ2V0ID09PSBrZXkpXG4gICAgICAgICAgICAubWFwKGV4dCA9PiBleHQubWlkZGxld2FyZSkgPz8gW107XG4gICAgfVxufSAiXX0=","import { Injectable, inject } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryExecutor } from './query.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPQueryService {\n constructor() {\n this.registry = inject(AXPQueryRegistry);\n this.executor = inject(AXPQueryExecutor);\n }\n // Registry methods\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n // Executor methods\n async fetch(key, input) {\n return this.executor.fetch(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPQueryService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3F1ZXJpZXMvcXVlcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQWtDeEQ7SUFoQ0csbUJBQW1CO0lBQ25CLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBK0I7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBOEI7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsS0FBSyxDQUFDLEtBQUssQ0FDUCxHQUFXLEVBQ1gsS0FBYTtRQUViLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWtCLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQW5DUSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQUXVlcnlNaWRkbGV3YXJlIH0gZnJvbSAnLi9xdWVyeS5taWRkbGV3YXJlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVnaXN0cnkgfSBmcm9tICcuL3F1ZXJ5LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFF1ZXJ5RXhlY3V0b3IgfSBmcm9tICcuL3F1ZXJ5LmV4ZWN1dG9yJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cnkgPSBpbmplY3QoQVhQUXVlcnlSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRvciA9IGluamVjdChBWFBRdWVyeUV4ZWN1dG9yKTtcblxuICAgIC8vIFJlZ2lzdHJ5IG1ldGhvZHNcbiAgICByZWdpc3RlcihrZXk6IHN0cmluZywgbG9hZGVyOiAoKSA9PiBQcm9taXNlPEFYUFF1ZXJ5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LnVucmVnaXN0ZXIoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkudXNlKG1pZGRsZXdhcmUpO1xuICAgIH1cblxuICAgIGV4aXN0cyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5leGlzdHMoa2V5KTtcbiAgICB9XG5cbiAgICBnZXRSZWdpc3RlcmVkS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldFJlZ2lzdGVyZWRLZXlzKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRvciBtZXRob2RzXG4gICAgYXN5bmMgZmV0Y2g8VElucHV0ID0gYW55LCBUUmVzdWx0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmZldGNoPFRJbnB1dCwgVFJlc3VsdD4oa2V5LCBpbnB1dCk7XG4gICAgfVxufSAiXX0=","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nexport const AXP_QUERY_SETUP = new InjectionToken('AXP_QUERY_SETUP');\nexport function provideQuerySetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_QUERY_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.loader();\n return injector.get(CommandType);\n });\n }\n return true;\n },\n multi: true\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1xdWVyeS1zZXR1cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9xdWVyaWVzL3Byb3ZpZGUtcXVlcnktc2V0dXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFPLGlCQUFpQixDQUFDLENBQUM7QUFPM0UsTUFBTSxVQUFVLGtCQUFrQixDQUM5QixPQUE4QjtJQUU5QixPQUFPLHdCQUF3QixDQUFDO1FBQzVCO1lBQ0ksT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDMUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBRTdDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQzFCLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTt3QkFDcEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ3pDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnlSZWdpc3RyeSB9IGZyb20gJy4vcXVlcnkucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQUXVlcnkgfSBmcm9tICcuL3F1ZXJ5LmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBfUVVFUllfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9RVUVSWV9TRVRVUCcpO1xuXG50eXBlIEFYUFF1ZXJ5TG9hZGVyRW50cnkgPSB7XG4gICAga2V5OiBzdHJpbmcsXG4gICAgbG9hZGVyOiAoKSA9PiBUeXBlPEFYUFF1ZXJ5PiB8IFByb21pc2U8VHlwZTxBWFBRdWVyeT4+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVRdWVyeVNldHVwcyhcbiAgICBlbnRyaWVzOiBBWFBRdWVyeUxvYWRlckVudHJ5W11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1FVRVJZX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFF1ZXJ5UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGVudHJ5LmtleSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tbWFuZFR5cGUgPSBhd2FpdCBlbnRyeS5sb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoQ29tbWFuZFR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59ICJdfQ==","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\nexport const AXP_QUERY_MIDDLEWARE_SETUP = new InjectionToken('AXP_QUERY_MIDDLEWARE_SETUP');\nexport function provideQueryMiddleware(entries) {\n const global = [];\n const extensions = [];\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n }\n else {\n extensions.push(entry);\n }\n }\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_QUERY_EXTENSION,\n useValue: ext,\n multi: true\n })),\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_QUERY_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1xdWVyeS1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcXVlcmllcy9wcm92aWRlLXF1ZXJ5LW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILE1BQU0sRUFDTixjQUFjLEVBQ2Qsd0JBQXdCLEVBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFPLDRCQUE0QixDQUFDLENBQUM7QUFLakcsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxPQUFnQztJQUVoQyxNQUFNLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFzRCxFQUFFLENBQUM7SUFFekUsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1Qiw0QkFBNEI7UUFDNUIsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQ7WUFDSSxPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzFDLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztTQUNKO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVnaXN0cnkgfSBmcm9tICcuL3F1ZXJ5LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFF1ZXJ5TWlkZGxld2FyZSB9IGZyb20gJy4vcXVlcnkubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBfUVVFUllfRVhURU5TSU9OIH0gZnJvbSAnLi9xdWVyeS5leHRlbnNpb24udG9rZW4nO1xuXG5leHBvcnQgY29uc3QgQVhQX1FVRVJZX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQJyk7XG5cbnR5cGUgQVhQUXVlcnlNaWRkbGV3YXJlRW50cnkgPVxuICAgIChBWFBRdWVyeU1pZGRsZXdhcmUgfCB7IGtleTogc3RyaW5nOyBtaWRkbGV3YXJlOiBBWFBRdWVyeU1pZGRsZXdhcmUgfSlbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVRdWVyeU1pZGRsZXdhcmUoXG4gICAgZW50cmllczogQVhQUXVlcnlNaWRkbGV3YXJlRW50cnlcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICBjb25zdCBnbG9iYWw6IEFYUFF1ZXJ5TWlkZGxld2FyZVtdID0gW107XG4gICAgY29uc3QgZXh0ZW5zaW9uczogeyBrZXk6IHN0cmluZzsgbWlkZGxld2FyZTogQVhQUXVlcnlNaWRkbGV3YXJlIH1bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW50cnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGdsb2JhbC5wdXNoKGVudHJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4dGVuc2lvbnMucHVzaChlbnRyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAgLy8gUGx1Z2luIG1pZGRsZXdhcmUgZW50cmllc1xuICAgICAgICAuLi5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUF9RVUVSWV9FWFRFTlNJT04sXG4gICAgICAgICAgICB1c2VWYWx1ZTogZXh0LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSkpLFxuXG4gICAgICAgIC8vIEdsb2JhbCBtaWRkbGV3YXJlIHNldHVwICh0cmlnZ2VyZWQgdmlhIHRoaXMgdG9rZW4pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFF1ZXJ5UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXcgb2YgZ2xvYmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnVzZShtdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXSk7XG59ICJdfQ==","export function composeViewMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (input) => mw(input, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvdmlld3Mvdmlldy5taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsV0FBd0M7SUFFeEMsT0FBTyxDQUFDLE9BQXNELEVBQUUsRUFBRTtRQUM5RCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUV0QixRQUFRLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWaWV3RGVmaW5pdGlvbiB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgQVhQVmlld01pZGRsZXdhcmU8VElucHV0ID0gYW55PiA9IChcbiAgICBpbnB1dDogVElucHV0LFxuICAgIG5leHQ6IChpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uPlxuKSA9PiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VWaWV3TWlkZGxld2FyZXM8VElucHV0PihcbiAgICBtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmU8VElucHV0PltdXG4pOiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24+KSA9PiAoaW5wdXQ6IFRJbnB1dCkgPT4gUHJvbWlzZTxBWFBWaWV3RGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiAoaGFuZGxlcjogKGlucHV0OiBUSW5wdXQpID0+IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24+KSA9PiB7XG4gICAgICAgIGxldCBjb21wb3NlZCA9IGhhbmRsZXI7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtdyA9IG1pZGRsZXdhcmVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbXBvc2VkO1xuXG4gICAgICAgICAgICBjb21wb3NlZCA9IChpbnB1dDogVElucHV0KSA9PiBtdyhpbnB1dCwgbmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn0gIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n unregister(key) {\n return this.registry.delete(key);\n }\n use(middleware) {\n this.middlewares.push(middleware);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getLoader(key) {\n return this.registry.get(key);\n }\n getMiddlewares() {\n return [...this.middlewares];\n }\n getRegisteredKeys() {\n return Array.from(this.registry.keys());\n }\n clear() {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3ZpZXcucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTBDLENBQUM7UUFDN0QsZ0JBQVcsR0FBd0IsRUFBRSxDQUFDO0tBa0NqRDtJQWhDRyxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQXNDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQTZCO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDOytHQW5DUSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBWaWV3UHJvdmlkZXIgfSBmcm9tICcuL3ZpZXcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFZpZXdSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPEFYUFZpZXdQcm92aWRlcj4+KCk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmVbXSA9IFtdO1xuXG4gICAgcmVnaXN0ZXIoa2V5OiBzdHJpbmcsIGxvYWRlcjogKCkgPT4gUHJvbWlzZTxBWFBWaWV3UHJvdmlkZXI+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHVzZShtaWRkbGV3YXJlOiBBWFBWaWV3TWlkZGxld2FyZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLnB1c2gobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldExvYWRlcihrZXk6IHN0cmluZyk6ICgoKSA9PiBQcm9taXNlPEFYUFZpZXdQcm92aWRlcj4pIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgZ2V0TWlkZGxld2FyZXMoKTogcmVhZG9ubHkgQVhQVmlld01pZGRsZXdhcmVbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5taWRkbGV3YXJlc107XG4gICAgfVxuXG4gICAgZ2V0UmVnaXN0ZXJlZEtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LmtleXMoKSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0cnkuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlcy5sZW5ndGggPSAwO1xuICAgIH1cbn0gIl19","import { InjectionToken } from '@angular/core';\nexport const AXP_VIEW_EXTENSION = new InjectionToken('AXP_VIEW_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5leHRlbnNpb24udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi92aWV3cy92aWV3LmV4dGVuc2lvbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZpZXdFeHRlbnNpb24ge1xuICAgIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICAgIG1pZGRsZXdhcmU6IEFYUFZpZXdNaWRkbGV3YXJlO1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1ZJRVdfRVhURU5TSU9OID0gbmV3IEluamVjdGlvblRva2VuPEFYUFZpZXdFeHRlbnNpb25bXT4oJ0FYUF9WSUVXX0VYVEVOU0lPTicpOyAiXX0=","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { composeViewMiddlewares } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXP_VIEW_EXTENSION } from './view.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewExecutor {\n constructor() {\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPViewRegistry);\n this.extensions = inject(AXP_VIEW_EXTENSION, { optional: true });\n }\n async provide(key, input) {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n const provider = await loader();\n const handler = (i) => provider.provide(i);\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input, next) => runInInjectionContext(this.injector, () => middleware(input, next));\n });\n const composed = composeViewMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3ZpZXcuZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJNUQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBK0JoRjtJQTdCRyxLQUFLLENBQUMsT0FBTyxDQUNULEdBQVcsRUFDWCxLQUFhO1FBRWIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckYsT0FBTyxDQUFDLEtBQWEsRUFBRSxJQUFtRCxFQUFFLEVBQUUsQ0FDMUUscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFXO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVU7WUFDbEIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDO2FBQ3hGLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0FqQ1EsZUFBZTttSEFBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdNaWRkbGV3YXJlLCBjb21wb3NlVmlld01pZGRsZXdhcmVzIH0gZnJvbSAnLi92aWV3Lm1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQVmlld1JlZ2lzdHJ5IH0gZnJvbSAnLi92aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUF9WSUVXX0VYVEVOU0lPTiB9IGZyb20gJy4vdmlldy5leHRlbnNpb24udG9rZW4nO1xuaW1wb3J0IHsgQVhQVmlld0RlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFZpZXdFeGVjdXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9WSUVXX0VYVEVOU0lPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGFzeW5jIHByb3ZpZGU8VElucHV0ID0gYW55PihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGlucHV0OiBUSW5wdXRcbiAgICApOiBQcm9taXNlPEFYUFZpZXdEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLnJlZ2lzdHJ5LmdldExvYWRlcihrZXkpO1xuICAgICAgICBpZiAoIWxvYWRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGxvYWRlcigpO1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGk6IFRJbnB1dCkgPT4gcHJvdmlkZXIucHJvdmlkZShpKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5NaWRkbGV3YXJlcyA9IHRoaXMuZ2V0UGx1Z2luTWlkZGxld2FyZXMoa2V5KTtcbiAgICAgICAgY29uc3QgZ2xvYmFsTWlkZGxld2FyZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldE1pZGRsZXdhcmVzKCk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE1pZGRsZXdhcmVzID0gWy4uLmdsb2JhbE1pZGRsZXdhcmVzLCAuLi5wbHVnaW5NaWRkbGV3YXJlc10ubWFwKG1pZGRsZXdhcmUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChpbnB1dDogVElucHV0LCBuZXh0OiAoaW5wdXQ6IFRJbnB1dCkgPT4gUHJvbWlzZTxBWFBWaWV3RGVmaW5pdGlvbj4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoaW5wdXQsIG5leHQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY29tcG9zZWQgPSBjb21wb3NlVmlld01pZGRsZXdhcmVzKHdyYXBwZWRNaWRkbGV3YXJlcykoaGFuZGxlcik7XG4gICAgICAgIHJldHVybiBjb21wb3NlZChpbnB1dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQbHVnaW5NaWRkbGV3YXJlcyhrZXk6IHN0cmluZyk6IEFYUFZpZXdNaWRkbGV3YXJlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlbnNpb25zXG4gICAgICAgICAgICA/LmZpbHRlcihleHQgPT4gZXh0LnRhcmdldCBpbnN0YW5jZW9mIFJlZ0V4cCA/IGV4dC50YXJnZXQudGVzdChrZXkpIDogZXh0LnRhcmdldCA9PT0ga2V5KVxuICAgICAgICAgICAgLm1hcChleHQgPT4gZXh0Lm1pZGRsZXdhcmUpID8/IFtdO1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewExecutor } from './view.executor';\nimport * as i0 from \"@angular/core\";\nexport class AXPViewService {\n constructor() {\n this.registry = inject(AXPViewRegistry);\n this.executor = inject(AXPViewExecutor);\n }\n //#region ---- Registry Methods ----\n register(key, loader) {\n this.registry.register(key, loader);\n }\n unregister(key) {\n return this.registry.unregister(key);\n }\n use(middleware) {\n this.registry.use(middleware);\n }\n exists(key) {\n return this.registry.exists(key);\n }\n getRegisteredKeys() {\n return this.registry.getRegisteredKeys();\n }\n clear() {\n this.registry.clear();\n }\n //#endregion\n //#region ---- Executor Methods ----\n async provide(key, input) {\n return this.executor.provide(key, input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPViewService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvdmlld3Mvdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSWxELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQXdDdkQ7SUF0Q0csd0NBQXdDO0lBRXhDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBc0M7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBNkI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZO0lBRVosd0NBQXdDO0lBRXhDLEtBQUssQ0FBQyxPQUFPLENBQ1QsR0FBVyxFQUNYLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQXZDUSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdQcm92aWRlciB9IGZyb20gJy4vdmlldy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQVmlld01pZGRsZXdhcmUgfSBmcm9tICcuL3ZpZXcubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBWaWV3UmVnaXN0cnkgfSBmcm9tICcuL3ZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQVmlld0V4ZWN1dG9yIH0gZnJvbSAnLi92aWV3LmV4ZWN1dG9yJztcbmltcG9ydCB7IEFYUFZpZXdEZWZpbml0aW9uIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBWaWV3U2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBWFBWaWV3UmVnaXN0cnkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0b3IgPSBpbmplY3QoQVhQVmlld0V4ZWN1dG9yKTtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUmVnaXN0cnkgTWV0aG9kcyAgIC0tLS1cblxuICAgIHJlZ2lzdGVyKGtleTogc3RyaW5nLCBsb2FkZXI6ICgpID0+IFByb21pc2U8QVhQVmlld1Byb3ZpZGVyPik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgbG9hZGVyKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LnVucmVnaXN0ZXIoa2V5KTtcbiAgICB9XG5cbiAgICB1c2UobWlkZGxld2FyZTogQVhQVmlld01pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS51c2UobWlkZGxld2FyZSk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmV4aXN0cyhrZXkpO1xuICAgIH1cblxuICAgIGdldFJlZ2lzdGVyZWRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0UmVnaXN0ZXJlZEtleXMoKTtcbiAgICB9XG5cbiAgICBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RyeS5jbGVhcigpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBFeGVjdXRvciBNZXRob2RzICAgLS0tLVxuXG4gICAgYXN5bmMgcHJvdmlkZTxUSW5wdXQgPSBhbnk+KFxuICAgICAgICBrZXk6IHN0cmluZyxcbiAgICAgICAgaW5wdXQ6IFRJbnB1dFxuICAgICk6IFByb21pc2U8QVhQVmlld0RlZmluaXRpb24gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLnByb3ZpZGU8VElucHV0PihrZXksIGlucHV0KTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn0gIl19","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nexport const AXP_VIEW_SETUP = new InjectionToken('AXP_VIEW_SETUP');\nexport function provideViewSetups(providers) {\n return makeEnvironmentProviders([\n ...providers,\n {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n // Setup will be handled by the provided registration functions\n return;\n },\n multi: true\n }\n ]);\n}\nexport function provideViewSetup(key, loader) {\n return {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.register(key, loader);\n return;\n },\n multi: true\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12aWV3LXNldHVwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3ZpZXdzL3Byb3ZpZGUtdmlldy1zZXR1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsU0FBcUI7SUFDbkQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QixHQUFHLFNBQVM7UUFDWjtZQUNJLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUV6QywrREFBK0Q7Z0JBQy9ELE9BQU87WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLEdBQVcsRUFDWCxNQUFzQztJQUV0QyxPQUFPO1FBQ0gsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNiLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6QyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPO1FBQ1gsQ0FBQztRQUNELEtBQUssRUFBRSxJQUFJO0tBQ2QsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQVmlld1JlZ2lzdHJ5IH0gZnJvbSAnLi92aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7IEFYUFZpZXdQcm92aWRlciB9IGZyb20gJy4vdmlldy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgQVhQX1ZJRVdfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9WSUVXX1NFVFVQJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld1NldHVwcyhwcm92aWRlcnM6IFByb3ZpZGVyW10pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfU0VUVVAsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQVhQVmlld1JlZ2lzdHJ5KTtcblxuICAgICAgICAgICAgICAgIC8vIFNldHVwIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgcHJvdmlkZWQgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld1NldHVwKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGxvYWRlcjogKCkgPT4gUHJvbWlzZTxBWFBWaWV3UHJvdmlkZXI+XG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfU0VUVVAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlcihrZXksIGxvYWRlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfTtcbn0gIl19","export function composePolicyEngineMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context) => mw(context, next);\n }\n return composed;\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5Lm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxVQUFVLDhCQUE4QixDQUMxQyxXQUF3QztJQUV4QyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLEdBQUcsQ0FBQyxPQUErQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lQ29udGV4dCB9IGZyb20gXCIuL3BvbGljeS5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IHR5cGUgQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZSA9IChcbiAgICBjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0LFxuICAgIG5leHQ6IChjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KSA9PiBQcm9taXNlPHZvaWQ+LFxuKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzKFxuICAgIG1pZGRsZXdhcmVzOiBBWFBQb2xpY3lFbmdpbmVNaWRkbGV3YXJlW11cbik6IChoYW5kbGVyOiAoY29udGV4dDogQVhQUG9saWN5RW5naW5lQ29udGV4dCkgPT4gUHJvbWlzZTx2b2lkPikgPT4gKGNvbnRleHQ6IEFYUFBvbGljeUVuZ2luZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoaGFuZGxlcikgPT4ge1xuICAgICAgICBsZXQgY29tcG9zZWQgPSBoYW5kbGVyO1xuICAgICAgICBmb3IgKGxldCBpID0gbWlkZGxld2FyZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG13ID0gbWlkZGxld2FyZXNbaV07XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gY29tcG9zZWQ7XG4gICAgICAgICAgICBjb21wb3NlZCA9IChjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KSA9PiBtdyhjb250ZXh0LCBuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29tcG9zZWQ7XG4gICAgfTtcbn0gIl19","export class AXPPolicyEngineContext {\n constructor(options) {\n this._visible = true;\n this._enabled = true;\n this._id = options.id;\n this._sender = options.sender;\n }\n get sender() {\n return this._sender;\n }\n get id() {\n return this._id;\n }\n get visible() {\n return this._visible;\n }\n get enabled() {\n return this._enabled;\n }\n setVisible(visible) {\n this._visible = visible;\n return this;\n }\n setEnabled(enabled) {\n this._enabled = enabled;\n return this;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFBWSxPQUF5QjtRQUg3QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0I7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFnQjtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBQb2xpY3lPcHRpb25zIH0gZnJvbSBcIi4vcG9saWN5LnR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUG9saWN5IHtcbiAgICBhcHBseShjb250ZXh0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQUG9saWN5RW5naW5lQ29udGV4dCB7XG5cbiAgICBwcml2YXRlIF9pZDogc3RyaW5nO1xuICAgIHByaXZhdGUgX3NlbmRlcjogQVhQUG9saWN5T3B0aW9uc1snc2VuZGVyJ107XG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBWFBQb2xpY3lPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX2lkID0gb3B0aW9ucy5pZDtcbiAgICAgICAgdGhpcy5fc2VuZGVyID0gb3B0aW9ucy5zZW5kZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZW5kZXIoKTogQVhQUG9saWN5T3B0aW9uc1snc2VuZGVyJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VuZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZpc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgc2V0RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2VuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59ICAgICAgIFxuIl19","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nexport const AXP_POLICY_EXTENSION = new InjectionToken('AXP_POLICY_EXTENSION');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmV4dGVuc2lvbi50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuZXh0ZW5zaW9uLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUF1QixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcGx1Z2lucy9jb21tYW5kLmV4dGVuc2lvbi50b2tlbi50c1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZU1pZGRsZXdhcmUgfSBmcm9tICcuL3BvbGljeS5taWRkbGV3YXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBQb2xpY3lFeHRlbnNpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIG1pZGRsZXdhcmU6IEFYUFBvbGljeUVuZ2luZU1pZGRsZXdhcmU7XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfUE9MSUNZX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBQb2xpY3lFeHRlbnNpb25bXT4oJ0FYUF9QT0xJQ1lfRVhURU5TSU9OJyk7XG4iXX0=","import { EnvironmentInjector, inject, Injectable, runInInjectionContext } from '@angular/core';\nimport { composePolicyEngineMiddlewares } from './policy.middleware';\nimport { AXPPolicyEngineContext } from './policy.interface';\nimport { AXP_POLICY_EXTENSION } from './policy.extension.token';\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineRegistry {\n constructor() {\n this.registry = new Map();\n this.middlewares = [];\n this.extensions = inject(AXP_POLICY_EXTENSION, { optional: true });\n this.injector = inject(EnvironmentInjector);\n }\n use(mw) {\n this.middlewares.push(mw);\n }\n exists(key) {\n return this.registry.has(key);\n }\n getPolicies() {\n return Array.from(this.registry.keys());\n }\n register(key, loader) {\n this.registry.set(key, loader);\n }\n getPluginMiddlewares(key) {\n return this.extensions\n ?.filter(ext => ext.key === key)\n .map(ext => ext.middleware) ?? [];\n }\n async execute(policy, instance) {\n const loader = this.registry.get(policy);\n if (!loader) {\n throw new Error(`${policy} not implemented`);\n }\n const context = new AXPPolicyEngineContext(instance);\n const applier = await loader();\n const handler = (i) => applier.apply(i);\n const pluginMws = this.getPluginMiddlewares(policy);\n const wrappedMws = [...this.middlewares, ...pluginMws].map(mw => {\n return (input, next) => runInInjectionContext(this.injector, () => mw(input, next));\n });\n const composed = composePolicyEngineMiddlewares(wrappedMws)(handler);\n await composed(context);\n return context;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9ydW50aW1lL3NyYy9saWIvcG9saWN5L3BvbGljeS5yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBWSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQTZCLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7UUFDdkQsZ0JBQVcsR0FBZ0MsRUFBRSxDQUFDO1FBQzlDLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5RCxhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FtRGxEO0lBaERHLEdBQUcsQ0FBQyxFQUE2QjtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxNQUFnQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUdPLG9CQUFvQixDQUFDLEdBQVc7UUFDcEMsT0FBTyxJQUFJLENBQUMsVUFBVTtZQUNsQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUlELEtBQUssQ0FBQyxPQUFPLENBQ1QsTUFBYyxFQUNkLFFBQTBCO1FBRTFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQXlCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVELE9BQU8sQ0FBQyxLQUE2QixFQUFFLElBQXNELEVBQUUsRUFBRSxDQUM3RixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLDhCQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7K0dBdkRRLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs7NEZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZSwgY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzIH0gZnJvbSAnLi9wb2xpY3kubWlkZGxld2FyZSc7XG5pbXBvcnQgeyBBWFBQb2xpY3lFbmdpbmVDb250ZXh0IH0gZnJvbSAnLi9wb2xpY3kuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUFBvbGljeU9wdGlvbnMgfSBmcm9tICcuL3BvbGljeS50eXBlcyc7XG5pbXBvcnQgeyBBWFBQb2xpY3kgfSBmcm9tICcuL3BvbGljeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQVhQX1BPTElDWV9FWFRFTlNJT04gfSBmcm9tICcuL3BvbGljeS5leHRlbnNpb24udG9rZW4nO1xuaW1wb3J0IHsgQVhQUG9saWN5RXh0ZW5zaW9uIH0gZnJvbSAnLi9wb2xpY3kuZXh0ZW5zaW9uLnRva2VuJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPEFYUFBvbGljeT4+KCk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlczogQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZVtdID0gW107XG4gICAgcHJpdmF0ZSBleHRlbnNpb25zID0gaW5qZWN0KEFYUF9QT0xJQ1lfRVhURU5TSU9OLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuXG4gICAgdXNlKG13OiBBWFBQb2xpY3lFbmdpbmVNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZXMucHVzaChtdyk7XG4gICAgfVxuXG4gICAgZXhpc3RzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmhhcyhrZXkpO1xuICAgIH1cblxuICAgIGdldFBvbGljaWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5yZWdpc3RyeS5rZXlzKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyKGtleTogc3RyaW5nLCBsb2FkZXI6ICgpID0+IFByb21pc2U8QVhQUG9saWN5Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnNldChrZXksIGxvYWRlcik7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGdldFBsdWdpbk1pZGRsZXdhcmVzKGtleTogc3RyaW5nKTogQVhQUG9saWN5RW5naW5lTWlkZGxld2FyZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgICAgICAgPy5maWx0ZXIoZXh0ID0+IGV4dC5rZXkgPT09IGtleSlcbiAgICAgICAgICAgIC5tYXAoZXh0ID0+IGV4dC5taWRkbGV3YXJlKSA/PyBbXTtcbiAgICB9XG5cblxuXG4gICAgYXN5bmMgZXhlY3V0ZShcbiAgICAgICAgcG9saWN5OiBzdHJpbmcsXG4gICAgICAgIGluc3RhbmNlOiBBWFBQb2xpY3lPcHRpb25zXG4gICAgKTogUHJvbWlzZTxBWFBQb2xpY3lFbmdpbmVDb250ZXh0PiB7XG4gICAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMucmVnaXN0cnkuZ2V0KHBvbGljeSk7XG4gICAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cG9saWN5fSBub3QgaW1wbGVtZW50ZWRgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFBvbGljeUVuZ2luZUNvbnRleHQoaW5zdGFuY2UpO1xuICAgICAgICBjb25zdCBhcHBsaWVyID0gYXdhaXQgbG9hZGVyKCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoaTogQVhQUG9saWN5RW5naW5lQ29udGV4dCkgPT4gYXBwbGllci5hcHBseShpKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5Nd3MgPSB0aGlzLmdldFBsdWdpbk1pZGRsZXdhcmVzKHBvbGljeSk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlZE13cyA9IFsuLi50aGlzLm1pZGRsZXdhcmVzLCAuLi5wbHVnaW5Nd3NdLm1hcChtdyA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGlucHV0OiBBWFBQb2xpY3lFbmdpbmVDb250ZXh0LCBuZXh0OiAoaW5wdXQ6IEFYUFBvbGljeUVuZ2luZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD4pID0+XG4gICAgICAgICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG13KGlucHV0LCBuZXh0KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvc2VkID0gY29tcG9zZVBvbGljeUVuZ2luZU1pZGRsZXdhcmVzKHdyYXBwZWRNd3MpKGhhbmRsZXIpO1xuICAgICAgICBhd2FpdCBjb21wb3NlZChjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxufSAiXX0=","import { inject, Injectable } from \"@angular/core\";\nimport { AXPPolicyEngineRegistry } from \"./policy.registry\";\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineService {\n constructor() {\n this.registry = inject(AXPPolicyEngineRegistry);\n }\n async apply(options) {\n const allPolicies = this.registry.getPolicies().filter(p => (options.policies?.length ?? 0) == 0 || options.policies?.includes(p));\n await Promise.all(allPolicies.map(async (policy) => {\n const context = await this.registry.execute(policy, options);\n return context;\n }));\n //\n // if (instance instanceof HTMLElement) {\n // if (context.visible === false) {\n // instance.style.display = 'none';\n // } else {\n // instance.style.display = '';\n // }\n // }\n // //\n // if (instance instanceof MXBaseComponent) {\n // if (context.visible === false) {\n // instance.getHostElement().style.display = 'none';\n // } else {\n // instance.getHostElement().style.display = '';\n // }\n // }\n // // Handle disabled state for interactive components\n // if (instance instanceof MXInteractiveComponent) {\n // if (context.enabled === false) {\n // instance.disabled = true;\n // } else {\n // instance.disabled = false;\n // }\n // }\n // // TODO: Handle object properties \n // if (instance instanceof Object) {\n // if (context.visible === false) {\n // set(instance, 'visible', false);\n // }\n // if (context.enabled === false) {\n // set(instance, 'disabled', true);\n // }\n // }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTTVELE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJWSxhQUFRLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FtRHREO0lBL0NHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBeUI7UUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5JLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxNQUFNLEVBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3RCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSUosRUFBRTtRQUNGLHlDQUF5QztRQUN6Qyx1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLGVBQWU7UUFDZix1Q0FBdUM7UUFDdkMsUUFBUTtRQUNSLElBQUk7UUFDSixLQUFLO1FBQ0wsNkNBQTZDO1FBQzdDLHVDQUF1QztRQUN2Qyw0REFBNEQ7UUFDNUQsZUFBZTtRQUNmLHdEQUF3RDtRQUN4RCxRQUFRO1FBQ1IsSUFBSTtRQUNKLHNEQUFzRDtRQUN0RCxvREFBb0Q7UUFDcEQsdUNBQXVDO1FBQ3ZDLG9DQUFvQztRQUNwQyxlQUFlO1FBQ2YscUNBQXFDO1FBQ3JDLFFBQVE7UUFDUixJQUFJO1FBQ0osdUNBQXVDO1FBQ3ZDLG9DQUFvQztRQUNwQyx1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLFFBQVE7UUFDUix1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLFFBQVE7UUFDUixJQUFJO0lBQ1IsQ0FBQzsrR0FoRFEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSB9IGZyb20gXCIuL3BvbGljeS5yZWdpc3RyeVwiO1xuaW1wb3J0IHsgQVhQUG9saWN5T3B0aW9ucyB9IGZyb20gXCIuL3BvbGljeS50eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUFBvbGljeUVuZ2luZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVnaXN0cnkgPSBpbmplY3QoQVhQUG9saWN5RW5naW5lUmVnaXN0cnkpO1xuXG5cblxuICAgIGFzeW5jIGFwcGx5KG9wdGlvbnM6IEFYUFBvbGljeU9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYWxsUG9saWNpZXMgPSB0aGlzLnJlZ2lzdHJ5LmdldFBvbGljaWVzKCkuZmlsdGVyKHAgPT4gKG9wdGlvbnMucG9saWNpZXM/Lmxlbmd0aCA/PyAwKSA9PSAwIHx8IG9wdGlvbnMucG9saWNpZXM/LmluY2x1ZGVzKHApKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChhbGxQb2xpY2llcy5tYXAoYXN5bmMgcG9saWN5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCB0aGlzLnJlZ2lzdHJ5LmV4ZWN1dGUocG9saWN5LCBvcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgICAgICB9KSk7XG5cblxuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vICAgICBpZiAoY29udGV4dC52aXNpYmxlID09PSBmYWxzZSkge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICAvLyAvL1xuICAgICAgICAvLyBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBNWEJhc2VDb21wb25lbnQpIHtcbiAgICAgICAgLy8gICAgIGlmIChjb250ZXh0LnZpc2libGUgPT09IGZhbHNlKSB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFuY2UuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YW5jZS5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICAvLyAvLyBIYW5kbGUgZGlzYWJsZWQgc3RhdGUgZm9yIGludGVyYWN0aXZlIGNvbXBvbmVudHNcbiAgICAgICAgLy8gaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCkge1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YW5jZS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbmNlLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gLy8gVE9ETzogSGFuZGxlIG9iamVjdCBwcm9wZXJ0aWVzICAgXG4gICAgICAgIC8vIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQudmlzaWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBzZXQoaW5zdGFuY2UsICd2aXNpYmxlJywgZmFsc2UpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyAgICAgaWYgKGNvbnRleHQuZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBzZXQoaW5zdGFuY2UsICdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgfVxuXG5cblxufVxuIl19","import { Directive, ElementRef, input, effect, inject } from '@angular/core';\nimport { AXPPolicyEngineService } from './policy.service';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPPolicyEngineDirective {\n constructor() {\n this.policy = input.required(...(ngDevMode ? [{ debugName: \"policy\", alias: 'axp-apply-policy' }] : [{ alias: 'axp-apply-policy' }]));\n this.service = inject(AXPPolicyEngineService);\n this.elementRef = inject((ElementRef));\n this.#eff = effect(async () => {\n const policy = this.policy();\n if (!policy) {\n return;\n }\n await this.service.apply({\n id: this.elementRef.nativeElement.id,\n policies: castArray(policy),\n sender: this.elementRef.nativeElement\n });\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPPolicyEngineDirective, isStandalone: true, selector: \"[axp-apply-policy]\", inputs: { policy: { classPropertyName: \"policy\", publicName: \"axp-apply-policy\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPPolicyEngineDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-apply-policy]',\n standalone: true\n }]\n }], propDecorators: { policy: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-apply-policy\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vcnVudGltZS9zcmMvbGliL3BvbGljeS9wb2xpY3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTXRDLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLSSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEseUNBQThCLEtBQUssRUFBRSxrQkFBa0IsT0FBM0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsR0FBQyxDQUFDO1FBQzFFLFlBQU8sR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFHckQsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBQ0QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3BDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2FBQ3hDLENBQUMsQ0FBQztRQUNQLENBQUMsZ0RBQUMsQ0FBQztLQUVOO0lBWkcsSUFBSSxDQVVEOytHQWhCTSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUG9saWN5RW5naW5lU2VydmljZSB9IGZyb20gJy4vcG9saWN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWFwcGx5LXBvbGljeV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQUG9saWN5RW5naW5lRGlyZWN0aXZlIHtcbiAgICBwb2xpY3kgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPih7IGFsaWFzOiAnYXhwLWFwcGx5LXBvbGljeScgfSk7XG4gICAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYUFBvbGljeUVuZ2luZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblxuICAgICNlZmYgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBwb2xpY3kgPSB0aGlzLnBvbGljeSgpO1xuICAgICAgICBpZiAoIXBvbGljeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hcHBseSh7XG4gICAgICAgICAgICBpZDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaWQsXG4gICAgICAgICAgICBwb2xpY2llczogY2FzdEFycmF5KHBvbGljeSksXG4gICAgICAgICAgICBzZW5kZXI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG59XG4iXX0=","import { EnvironmentInjector, inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPPolicyEngineRegistry } from './policy.registry';\nexport const AXP_POLICY_ENGINE_MIDDLEWARE_SETUP = new InjectionToken('AXP_POLICY_ENGINE_MIDDLEWARE_SETUP');\nexport function providePolicySetups(entries) {\n return makeEnvironmentProviders([\n {\n provide: AXP_POLICY_ENGINE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPPolicyEngineRegistry);\n const injector = inject(EnvironmentInjector);\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const PolicyType = await entry.policy();\n return injector.get(PolicyType);\n });\n }\n return true;\n }\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LW1pZGRsZXdhcmUtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9wb2xpY3kvcG9saWN5LW1pZGRsZXdhcmUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFPLG9DQUFvQyxDQUFDLENBQUM7QUFVakgsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQTBCO0lBQzFELE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUsa0NBQWtDO1lBQzNDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ2pELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMxQixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ3BDLE1BQU0sVUFBVSxHQUFHLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztTQUNKO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZVJlZ2lzdHJ5IH0gZnJvbSAnLi9wb2xpY3kucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQUG9saWN5IH0gZnJvbSAnLi9wb2xpY3kuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEFYUF9QT0xJQ1lfRU5HSU5FX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9QT0xJQ1lfRU5HSU5FX01JRERMRVdBUkVfU0VUVVAnKTtcblxuXG5cbnR5cGUgQVhQUG9saWN5TG9hZGVyID0ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHBvbGljeTogKCkgPT4gVHlwZTxBWFBQb2xpY3k+IHwgUHJvbWlzZTxUeXBlPEFYUFBvbGljeT4+O1xufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBvbGljeVNldHVwcyhlbnRyaWVzOiBBWFBQb2xpY3lMb2FkZXJbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1BPTElDWV9FTkdJTkVfTUlERExFV0FSRV9TRVRVUCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyeSA9IGluamVjdChBWFBQb2xpY3lFbmdpbmVSZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoZW50cnkua2V5LCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2xpY3lUeXBlID0gYXdhaXQgZW50cnkucG9saWN5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KFBvbGljeVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF0pO1xufSJdfQ==","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nexport const AXP_VIEW_MIDDLEWARE_SETUP = new InjectionToken('AXP_VIEW_MIDDLEWARE_SETUP');\nexport function provideViewMiddleware(middlewares) {\n return makeEnvironmentProviders([\n {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n middlewares.forEach(middleware => registry.use(middleware));\n return;\n },\n multi: true\n }\n ]);\n}\nexport function provideViewMiddlewareSetup(middleware) {\n return {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.use(middleware);\n return;\n },\n multi: true\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12aWV3LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi92aWV3cy9wcm92aWRlLXZpZXctbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLE1BQU0sRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFPLDJCQUEyQixDQUFDLENBQUM7QUFFL0YsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFdBQWdDO0lBQ2xFLE9BQU8sd0JBQXdCLENBQUM7UUFDNUI7WUFDSSxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN6QyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPO1lBQ1gsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxVQUE2QjtJQUU3QixPQUFPO1FBQ0gsT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekIsT0FBTztRQUNYLENBQUM7UUFDRCxLQUFLLEVBQUUsSUFBSTtLQUNkLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFZpZXdSZWdpc3RyeSB9IGZyb20gJy4vdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBWaWV3TWlkZGxld2FyZSB9IGZyb20gJy4vdmlldy5taWRkbGV3YXJlJztcblxuZXhwb3J0IGNvbnN0IEFYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oJ0FYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWaWV3TWlkZGxld2FyZShtaWRkbGV3YXJlczogQVhQVmlld01pZGRsZXdhcmVbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1ZJRVdfTUlERExFV0FSRV9TRVRVUCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyeSA9IGluamVjdChBWFBWaWV3UmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVzLmZvckVhY2gobWlkZGxld2FyZSA9PiByZWdpc3RyeS51c2UobWlkZGxld2FyZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVmlld01pZGRsZXdhcmVTZXR1cChcbiAgICBtaWRkbGV3YXJlOiBBWFBWaWV3TWlkZGxld2FyZVxuKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFYUF9WSUVXX01JRERMRVdBUkVfU0VUVVAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFZpZXdSZWdpc3RyeSk7XG4gICAgICAgICAgICByZWdpc3RyeS51c2UobWlkZGxld2FyZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfTtcbn0gIl19","import { NgModule, isDevMode, inject } from \"@angular/core\";\nimport { AXP_COMMAND_SETUP } from \"./commands/provide-command-setups\";\nimport { AXP_COMMAND_MIDDLEWARE_SETUP } from \"./commands/provide-command-middleware\";\nimport { AXP_QUERY_SETUP } from \"./queries/provide-query-setups\";\nimport { AXP_QUERY_MIDDLEWARE_SETUP } from \"./queries/provide-query-middleware\";\nimport { AXP_VIEW_SETUP } from \"./views/provide-view-setups\";\nimport { AXP_VIEW_MIDDLEWARE_SETUP } from \"./views/provide-view-middleware\";\nimport { AXP_POLICY_ENGINE_MIDDLEWARE_SETUP } from \"./policy/policy-middleware-provider\";\nimport * as i0 from \"@angular/core\";\nexport class AXPRuntimeModule {\n constructor() {\n this._commandSetup = inject(AXP_COMMAND_SETUP, { optional: true });\n this._commandMiddlewareSetup = inject(AXP_COMMAND_MIDDLEWARE_SETUP, { optional: true });\n this._querySetup = inject(AXP_QUERY_SETUP, { optional: true });\n this._queryMiddlewareSetup = inject(AXP_QUERY_MIDDLEWARE_SETUP, { optional: true });\n this._viewSetup = inject(AXP_VIEW_SETUP, { optional: true });\n this._viewMiddlewareSetup = inject(AXP_VIEW_MIDDLEWARE_SETUP, { optional: true });\n this._policyEngineSetup = inject(AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, { optional: true });\n if (isDevMode() && false) {\n console.log('[AXPRuntimeModule] Command Setup:', this._commandSetup);\n console.log('[AXPRuntimeModule] Command Middleware Setup:', this._commandMiddlewareSetup);\n console.log('[AXPRuntimeModule] Query Setup:', this._querySetup);\n console.log('[AXPRuntimeModule] Query Middleware Setup:', this._queryMiddlewareSetup);\n console.log('[AXPRuntimeModule] View Setup:', this._viewSetup);\n console.log('[AXPRuntimeModule] View Middleware Setup:', this._viewMiddlewareSetup);\n console.log('[AXPRuntimeModule] Policy Engine Setup:', this._policyEngineSetup);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPRuntimeModule, decorators: [{\n type: NgModule\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2xpYi9ydW50aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFHekYsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QjtRQVhRLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkYsZ0JBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFL0UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RCx5QkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd4RixJQUFJLFNBQVMsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDMUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNMLENBQUM7K0dBdkJRLGdCQUFnQjtnSEFBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0LCBpc0Rldk1vZGUsIE9wdGlvbmFsLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQX0NPTU1BTkRfU0VUVVAgfSBmcm9tIFwiLi9jb21tYW5kcy9wcm92aWRlLWNvbW1hbmQtc2V0dXBzXCI7XG5pbXBvcnQgeyBBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vY29tbWFuZHMvcHJvdmlkZS1jb21tYW5kLW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IEFYUF9RVUVSWV9TRVRVUCB9IGZyb20gXCIuL3F1ZXJpZXMvcHJvdmlkZS1xdWVyeS1zZXR1cHNcIjtcbmltcG9ydCB7IEFYUF9RVUVSWV9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vcXVlcmllcy9wcm92aWRlLXF1ZXJ5LW1pZGRsZXdhcmVcIjtcbmltcG9ydCB7IEFYUF9WSUVXX1NFVFVQIH0gZnJvbSBcIi4vdmlld3MvcHJvdmlkZS12aWV3LXNldHVwc1wiO1xuaW1wb3J0IHsgQVhQX1ZJRVdfTUlERExFV0FSRV9TRVRVUCB9IGZyb20gXCIuL3ZpZXdzL3Byb3ZpZGUtdmlldy1taWRkbGV3YXJlXCI7XG5pbXBvcnQgeyBBWFBfUE9MSUNZX0VOR0lORV9NSURETEVXQVJFX1NFVFVQIH0gZnJvbSBcIi4vcG9saWN5L3BvbGljeS1taWRkbGV3YXJlLXByb3ZpZGVyXCI7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgQVhQUnVudGltZU1vZHVsZSB7XG5cbiAgICBwcml2YXRlIF9jb21tYW5kU2V0dXAgPSBpbmplY3QoQVhQX0NPTU1BTkRfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfY29tbWFuZE1pZGRsZXdhcmVTZXR1cCA9IGluamVjdChBWFBfQ09NTUFORF9NSURETEVXQVJFX1NFVFVQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBfcXVlcnlTZXR1cCA9IGluamVjdChBWFBfUVVFUllfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfcXVlcnlNaWRkbGV3YXJlU2V0dXAgPSBpbmplY3QoQVhQX1FVRVJZX01JRERMRVdBUkVfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIF92aWV3U2V0dXAgPSBpbmplY3QoQVhQX1ZJRVdfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBfdmlld01pZGRsZXdhcmVTZXR1cCA9IGluamVjdChBWFBfVklFV19NSURETEVXQVJFX1NFVFVQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSBfcG9saWN5RW5naW5lU2V0dXAgPSBpbmplY3QoQVhQX1BPTElDWV9FTkdJTkVfTUlERExFV0FSRV9TRVRVUCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkgJiYgZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbQVhQUnVudGltZU1vZHVsZV0gQ29tbWFuZCBTZXR1cDonLCB0aGlzLl9jb21tYW5kU2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBDb21tYW5kIE1pZGRsZXdhcmUgU2V0dXA6JywgdGhpcy5fY29tbWFuZE1pZGRsZXdhcmVTZXR1cCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0FYUFJ1bnRpbWVNb2R1bGVdIFF1ZXJ5IFNldHVwOicsIHRoaXMuX3F1ZXJ5U2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBRdWVyeSBNaWRkbGV3YXJlIFNldHVwOicsIHRoaXMuX3F1ZXJ5TWlkZGxld2FyZVNldHVwKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbQVhQUnVudGltZU1vZHVsZV0gVmlldyBTZXR1cDonLCB0aGlzLl92aWV3U2V0dXApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tBWFBSdW50aW1lTW9kdWxlXSBWaWV3IE1pZGRsZXdhcmUgU2V0dXA6JywgdGhpcy5fdmlld01pZGRsZXdhcmVTZXR1cCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0FYUFJ1bnRpbWVNb2R1bGVdIFBvbGljeSBFbmdpbmUgU2V0dXA6JywgdGhpcy5fcG9saWN5RW5naW5lU2V0dXApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19","// Commands\nexport * from './lib/commands';\n// Queries\nexport * from './lib/queries';\n// Views\nexport * from './lib/views';\n// Policy\nexport * from './lib/policy';\n// Runtime\nexport * from './lib/runtime.module';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixRQUFRO0FBQ1IsY0FBYyxhQUFhLENBQUM7QUFFNUIsU0FBUztBQUNULGNBQWMsY0FBYyxDQUFDO0FBRTdCLFVBQVU7QUFDVixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tbWFuZHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1hbmRzJztcblxuLy8gUXVlcmllc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcmllcyc7XG5cbi8vIFZpZXdzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cyc7XG5cbi8vIFBvbGljeVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9saWN5JztcblxuLy8gUnVudGltZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcnVudGltZS5tb2R1bGUnO1xuXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLXJ1bnRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3J1bnRpbWUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|