{"version":3,"file":"o3r-localization-rules-engine.mjs","sources":["../../src/rules-engine/localization.interfaces.ts","../../src/rules-engine/localization.handler-action.ts","../../src/rules-engine/localization.rules-engine.module.ts","../../src/rules-engine/o3r-localization-rules-engine.ts"],"sourcesContent":["import type {\n  RulesEngineAction,\n} from '@o3r/core';\n\n/** ActionUpdateLocalisationBlock  */\nexport const RULES_ENGINE_LOCALISATION_UPDATE_ACTION_TYPE = 'UPDATE_LOCALISATION';\n\n/**\n * Content of action that updates localization\n */\nexport interface ActionUpdateLocalisationBlock extends RulesEngineAction {\n  actionType: typeof RULES_ENGINE_LOCALISATION_UPDATE_ACTION_TYPE;\n  key: string;\n  value: string;\n}\n","import {\n  Injectable,\n} from '@angular/core';\nimport {\n  Store,\n} from '@ngrx/store';\nimport type {\n  RulesEngineActionHandler,\n} from '@o3r/core';\nimport {\n  ActionUpdateLocalisationBlock,\n  RULES_ENGINE_LOCALISATION_UPDATE_ACTION_TYPE,\n} from './localization.interfaces';\nimport {\n  LocalizationOverrideStore,\n  setLocalizationOverride,\n} from '@o3r/localization';\n\n/**\n * Service to handle async Localization actions\n */\n@Injectable()\nexport class LocalizationRulesEngineActionHandler implements RulesEngineActionHandler<ActionUpdateLocalisationBlock> {\n  /** @inheritdoc */\n  public readonly supportingActions = [RULES_ENGINE_LOCALISATION_UPDATE_ACTION_TYPE] as const;\n\n  constructor(private readonly store: Store<LocalizationOverrideStore>) {}\n\n  /** @inheritdoc */\n  public executeActions(actions: ActionUpdateLocalisationBlock[]): void | Promise<void> {\n    const localizationOverrides = actions.reduce<Record<string, string>>((acc, { key, value }) => {\n      acc[key] = value;\n      return acc;\n    }, {});\n\n    this.store.dispatch(setLocalizationOverride({ state: { localizationOverrides } }));\n  }\n}\n","import {\n  NgModule,\n} from '@angular/core';\nimport {\n  LocalizationRulesEngineActionHandler,\n} from './localization.handler-action';\nimport {\n  LocalizationOverrideStoreModule,\n} from '@o3r/localization';\n\n@NgModule({\n  imports: [\n    LocalizationOverrideStoreModule\n  ],\n  providers: [\n    LocalizationRulesEngineActionHandler\n  ]\n})\nexport class LocalizationRulesEngineActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAIA;AACO,MAAM,4CAA4C,GAAG;;ACa5D;;AAEG;MAEU,oCAAoC,CAAA;AAI/C,IAAA,WAAA,CAA6B,KAAuC,EAAA;QAAvC,IAAK,CAAA,KAAA,GAAL,KAAK;;AAFlB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,4CAA4C,CAAU;;;AAKpF,IAAA,cAAc,CAAC,OAAwC,EAAA;AAC5D,QAAA,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAI;AAC3F,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,YAAA,OAAO,GAAG;SACX,EAAE,EAAE,CAAC;AAEN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;;iIAbzE,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAApC,oCAAoC,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD;;;MCHY,mCAAmC,CAAA;iIAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,YAN5C,+BAA+B,CAAA,EAAA,CAAA,CAAA;AAMtB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,EAJnC,SAAA,EAAA;YACT;AACD,SAAA,EAAA,OAAA,EAAA,CAJC,+BAA+B,CAAA,EAAA,CAAA,CAAA;;2FAMtB,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAR/C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT;AACD;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}