{"version":3,"file":"spryker-actions.mjs","sources":["../../../../libs/actions/src/lib/token.ts","../../../../libs/actions/src/lib/actions.module.ts","../../../../libs/actions/src/lib/actions.service.ts","../../../../libs/actions/src/spryker-actions.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { ActionTypesDeclaration } from './types';\n\nexport const ActionTypesToken = new InjectionToken<ActionTypesDeclaration[]>('ActionsToken');\n\nexport function provideActions(actions: ActionTypesDeclaration): Provider {\n    return {\n        provide: ActionTypesToken,\n        useValue: actions,\n        multi: true,\n    };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActionTypesDeclaration } from './types';\nimport { provideActions } from './token';\n\n@NgModule({\n    imports: [CommonModule],\n})\nexport class ActionsModule {\n    static withActions(actions: ActionTypesDeclaration): ModuleWithProviders<ActionsModule> {\n        return {\n            ngModule: ActionsModule,\n            providers: [provideActions(actions)],\n        };\n    }\n}\n","import { Inject, Injectable, Injector, Optional } from '@angular/core';\nimport { InjectionTokenType } from '@spryker/utils';\nimport { ActionTypesToken } from './token';\nimport {\n    ActionConfig,\n    ActionHandler,\n    ActionsRegistry,\n    ActionType,\n    ActionTypesDeclaration,\n    InferActionContext,\n    InferActionReturn,\n} from './types';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class ActionsService {\n    private actionHandlerTypes: Partial<ActionTypesDeclaration> =\n        this.actionHandlers?.reduce((actions, action) => ({ ...actions, ...action }), {}) || {};\n\n    constructor(\n        private injector: Injector,\n        @Optional()\n        @Inject(ActionTypesToken)\n        private actionHandlers?: InjectionTokenType<typeof ActionTypesToken>,\n    ) {}\n\n    trigger<C extends ActionConfig>(\n        injector: Injector,\n        config: C,\n        context: InferActionContext<C['type']>,\n    ): Observable<InferActionReturn<C['type']>> {\n        if (!this.isActionRegisteredType(config.type)) {\n            throw Error(`ActionsService: Unknown action type ${config.type}`);\n        }\n\n        const actionHandler: ActionHandler<\n            InferActionContext<C['type']>,\n            InferActionReturn<C['type']>\n        > = this.injector.get(this.actionHandlerTypes[config.type]);\n\n        return actionHandler.handleAction(injector, config, context);\n    }\n\n    isActionRegisteredType(type: ActionType): type is keyof ActionsRegistry {\n        return type in this.actionHandlerTypes;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}