{"version":3,"file":"ngx-material-translate.mjs","sources":["../../../projects/ngx-material-translate/src/lib/models/language/language.enum.ts","../../../projects/ngx-material-translate/src/lib/models/response/response.enum.ts","../../../projects/ngx-material-translate/src/lib/models/language/language.model.ts","../../../projects/ngx-material-translate/src/lib/state/language/language.actions.ts","../../../projects/ngx-material-translate/src/lib/state/language/language.reducer.ts","../../../projects/ngx-material-translate/src/lib/state/translate/translate.actions.ts","../../../projects/ngx-material-translate/src/lib/state/translate/translate.reducer.ts","../../../projects/ngx-material-translate/src/lib/state/index.ts","../../../projects/ngx-material-translate/src/lib/constants/injection.constants.ts","../../../projects/ngx-material-translate/src/lib/state/language/language.selectors.ts","../../../projects/ngx-material-translate/src/lib/models/custom-error/custom-error.model.ts","../../../projects/ngx-material-translate/src/lib/models/response/response.model.ts","../../../projects/ngx-material-translate/src/lib/services/translation-loader/translation-loader.service.ts","../../../projects/ngx-material-translate/src/lib/constants/language.constants.ts","../../../projects/ngx-material-translate/src/lib/constants/translate.constants.ts","../../../projects/ngx-material-translate/src/lib/models/configs/translate-config.model.ts","../../../projects/ngx-material-translate/src/lib/services/language/language.service.ts","../../../projects/ngx-material-translate/src/lib/state/translate/translate.selectors.ts","../../../projects/ngx-material-translate/src/lib/services/translate/translate.service.ts","../../../projects/ngx-material-translate/src/lib/directives/translate/translate.directive.ts","../../../projects/ngx-material-translate/src/lib/components/language/language.component.ts","../../../projects/ngx-material-translate/src/lib/components/language/language.component.html","../../../projects/ngx-material-translate/src/lib/pipes/translate/translate.pipe.ts","../../../projects/ngx-material-translate/src/lib/state/language/language.effects.ts","../../../projects/ngx-material-translate/src/lib/state/translate/translate.effects.ts","../../../projects/ngx-material-translate/src/lib/ngx-material-translate.module.ts","../../../projects/ngx-material-translate/src/public-api.ts","../../../projects/ngx-material-translate/src/ngx-material-translate.ts"],"sourcesContent":["export enum LanguageCode {\r\n  Undefined = '',\r\n\r\n  Albanian = 'sq',\r\n  Arabic = 'ar',\r\n  Bengali = 'bn',\r\n  Chinese = 'zh',\r\n  English = 'en',\r\n  French = 'fr',\r\n  German = 'de',\r\n  Hindi = 'hi',\r\n  Indonesian = 'id',\r\n  Italian = 'it',\r\n  Lahnda = 'lah',\r\n  Japanese = 'ja',\r\n  Portuguese = 'pt',\r\n  Russian = 'ru',\r\n  Spanish = 'es',\r\n  Turkish = 'tr',\r\n  Urdu = 'ur'\r\n}\r\n","export enum ResponseType {\r\n  Undefined = 0,\r\n  Loading = 1,\r\n  Success = 2,\r\n  Failure = 3\r\n}\r\n","import { ResponseType } from '../response/response.enum';\r\nimport { LanguageCode } from './language.enum';\r\nimport {\r\n  Language as LanguageInterface,\r\n  LanguageDTO,\r\n  LanguageTranslation as LanguageTranslationInterface,\r\n} from './language.interface';\r\n\r\nexport class Language implements LanguageInterface {\r\n  id: number;\r\n  name: string;\r\n  code: LanguageCode;\r\n  flag: string;\r\n\r\n\r\n  constructor(languageDTO?: LanguageDTO, public status = ResponseType.Success, public error: string | null = null) {\r\n    languageDTO = languageDTO || { id: 0, n: '', c: LanguageCode.Undefined, f: '' };\r\n\r\n    this.id = languageDTO.id;\r\n    this.name = languageDTO.n;\r\n    this.code = languageDTO.c;\r\n    this.flag = languageDTO.f;\r\n  }\r\n}\r\n\r\nexport class LanguageTranslation implements LanguageTranslationInterface {\r\n  translations: { [languageCode: string]: string; };\r\n\r\n  constructor(languageCode: LanguageCode, public language: Language) {\r\n    this.translations = {\r\n      [languageCode]: language.name\r\n    };\r\n  }\r\n}\r\n","import { UpdateStr } from '@ngrx/entity/src/models';\r\nimport { createAction, props } from '@ngrx/store';\r\n\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { Language } from '../../models/language/language.interface';\r\nimport { LanguageTranslation } from '../../models/language/language.model';\r\n\r\n\r\nexport const loadLanguages = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] LOAD', props<{ path: string, languageCode: LanguageCode }>());\r\nexport const loadLanguagesSuccess = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] LOAD_SUCCESS', props<{ languageCode: LanguageCode, languages: Language[] }>());\r\nexport const loadLanguagesFailure = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] LOAD_FAILURE', props<{ languageCode: LanguageCode, error: string }>());\r\n\r\nexport const translateLanguages = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] TRANSLATE', props<{ path: string, languageCode: LanguageCode }>());\r\nexport const translateLanguagesSuccess = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] TRANSLATE_SUCCESS', props<{ languageCode: LanguageCode, translations: UpdateStr<LanguageTranslation>[] }>());\r\nexport const translateLanguagesFailure = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] TRANSLATE_FAILURE', props<{ languageCode: LanguageCode, error: string }>());\r\n\r\nexport const selectFakeLanguage = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] SELECT_FAKE', props<{ languageCode: LanguageCode, language: Language }>());\r\nexport const selectLanguage = createAction('[NGX_MATERIAL_TRANSLATE_LANGUAGE] SELECT', props<{ languageCode: LanguageCode }>());\r\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\r\nimport { UpdateStr } from '@ngrx/entity/src/models';\r\nimport { Action, createReducer, on } from '@ngrx/store';\r\n\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { LanguageTranslation as LanguageTranslationInterface } from '../../models/language/language.interface';\r\nimport { Language, LanguageTranslation } from '../../models/language/language.model';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport * as LanguageActions from './language.actions';\r\n\r\nexport interface State extends EntityState<LanguageTranslationInterface> {\r\n  active: LanguageCode;\r\n  lastActive: LanguageCode;\r\n  status: {\r\n    [languageCode: string]: ResponseType\r\n  };\r\n  error: string | null;\r\n}\r\n\r\nexport function selectId(languageTranslation: LanguageTranslationInterface): LanguageCode {\r\n  return languageTranslation.language.code;\r\n}\r\n\r\nexport function sortByName(aLanguageTranslation: LanguageTranslationInterface, bLanguageTranslation: LanguageTranslationInterface): number {\r\n  return aLanguageTranslation.language.id - bLanguageTranslation.language.id\r\n  // return aLanguage.name.localeCompare(bLanguage.name);\r\n}\r\n\r\nexport const adapter: EntityAdapter<LanguageTranslationInterface> = createEntityAdapter<LanguageTranslationInterface>({\r\n  selectId: selectId,\r\n  sortComparer: sortByName\r\n});\r\n\r\nconst initialState: State = adapter.getInitialState({\r\n  ids: ['en'],\r\n  entities: {\r\n    en: new LanguageTranslation(LanguageCode.English, new Language({ id: 0, n: 'English', c: LanguageCode.English, f: 'us' }))\r\n  },\r\n  active: LanguageCode.English,\r\n  lastActive: LanguageCode.English,\r\n  status: {\r\n    en: ResponseType.Undefined\r\n  },\r\n  error: null\r\n});\r\n\r\nconst languageReducer = createReducer(initialState,\r\n  on(LanguageActions.loadLanguages, (state: State, { languageCode }) => {\r\n    const copyState = { ...state, error: null };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Loading;\r\n\r\n    return copyState;\r\n  }),\r\n  on(LanguageActions.loadLanguagesSuccess, (state: State, { languageCode, languages }) => {\r\n    const copyState = adapter.setAll(languages.map(language => new LanguageTranslation(languageCode, language)), { ...state, error: null });\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Success;\r\n\r\n    return copyState;\r\n  }),\r\n  on(LanguageActions.loadLanguagesFailure, (state: State, { languageCode, error }) => {\r\n    const copyState = { ...state, error };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Failure;\r\n\r\n    return copyState;\r\n  }),\r\n\r\n  on(LanguageActions.translateLanguages, (state: State, { languageCode }) => {\r\n    const copyState = { ...state, error: null };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Loading;\r\n\r\n    return copyState;\r\n  }),\r\n  on(LanguageActions.translateLanguagesSuccess, (state: State, { languageCode, translations }) => {\r\n    const updates: UpdateStr<LanguageTranslation>[] = [];\r\n\r\n    for (const languageTranslation of translations) {\r\n      const entity = { ...state.entities[languageTranslation.id] };\r\n      const update = { ...languageTranslation };\r\n\r\n      update.changes = { ...languageTranslation.changes };\r\n      update.changes.translations = { ...languageTranslation.changes.translations, ...entity.translations }\r\n\r\n      updates.push(update);\r\n    }\r\n\r\n    const copyState = adapter.updateMany(updates, state);\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Success;\r\n\r\n    return copyState;\r\n  }),\r\n  on(LanguageActions.translateLanguagesFailure, (state: State, { languageCode, error }) => {\r\n    const copyState = { ...state, error };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Failure;\r\n\r\n    return copyState;\r\n  }),\r\n\r\n  on(LanguageActions.selectFakeLanguage, (state: State, { languageCode, language }) => {\r\n    const copyState = adapter.addOne(new LanguageTranslation(languageCode, language), { ...state, lastActive: language.code, active: language.code, error: null });\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[languageCode] = ResponseType.Undefined;\r\n\r\n    return copyState;\r\n  }),\r\n\r\n  on(LanguageActions.selectLanguage, (state: State, { languageCode }) => {\r\n    return { ...state, lastActive: state.active, active: languageCode };\r\n  }));\r\n\r\nexport function reducer(state: State | undefined, action: Action) {\r\n  return languageReducer(state, action);\r\n}\r\n\r\nexport const featureKey = 'language';\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nimport { KeyValue } from '../../models/key-value/key-value.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\n\r\nexport const loadTranslations = createAction('[NGX_MATERIAL_TRANSLATE_TRANSLATION] LOAD',\r\n  props<{ feature: string, languageCode: LanguageCode, path: string }>());\r\nexport const loadTranslationsSuccess = createAction('[NGX_MATERIAL_TRANSLATE_TRANSLATION] LOAD_SUCCESS',\r\n  props<{ feature: string, languageCode: LanguageCode, translationData: KeyValue<string | KeyValue<string>> }>());\r\nexport const loadTranslationsFailure = createAction('[NGX_MATERIAL_TRANSLATE_TRANSLATION] LOAD_FAILURE',\r\n  props<{ feature: string, languageCode: LanguageCode, error: string }>());\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\n\r\nimport { KeyValue } from '../../models/key-value/key-value.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport * as TranslationActions from './translate.actions';\r\n\r\nexport interface State {\r\n  defaultLanguage: LanguageCode | null;\r\n  translations: {\r\n    [feature: string]: { [languageCode: string]: KeyValue<string | KeyValue<string>> }\r\n  };\r\n  status: {\r\n    [feature: string]: { [languageCode: string]: ResponseType }\r\n  };\r\n  error: string | null\r\n}\r\n\r\nconst initialState: State = {\r\n  defaultLanguage: null,\r\n  translations: {},\r\n  status: {},\r\n  error: null\r\n};\r\n\r\nexport const translateReducer = createReducer(\r\n  initialState,\r\n\r\n  on(TranslationActions.loadTranslations, (state: State, { feature, languageCode }) => {\r\n    const copyState = { ...state, error: null };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[feature] = { ...copyState.status[feature] }\r\n    copyState.status[feature][languageCode] = ResponseType.Loading;\r\n\r\n    return copyState;\r\n  }),\r\n  on(TranslationActions.loadTranslationsSuccess, (state, { feature, languageCode, translationData }) => {\r\n    const copyState = { ...state, error: null };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[feature] = { ...copyState.status[feature] }\r\n    copyState.status[feature][languageCode] = ResponseType.Success;\r\n\r\n    copyState.translations = { ...copyState.translations };\r\n    copyState.translations[feature] = { ...copyState.translations[feature] }\r\n    copyState.translations[feature][languageCode] = { ...copyState.translations[feature][languageCode] }\r\n    copyState.translations[feature][languageCode] = translationData;\r\n\r\n    return copyState;\r\n  }),\r\n  on(TranslationActions.loadTranslationsFailure, (state: State, { feature, languageCode, error }) => {\r\n    const copyState = { ...state, error };\r\n\r\n    copyState.status = { ...copyState.status };\r\n    copyState.status[feature] = { ...copyState.status[feature] }\r\n    copyState.status[feature][languageCode] = ResponseType.Failure;\r\n\r\n    return copyState;\r\n  })\r\n);\r\n\r\nexport function reducer(state: State | undefined, action: Action) {\r\n  return translateReducer(state, action);\r\n}\r\n\r\nexport const featureKey = 'translate';\r\n","import { Action, ActionReducerMap, createFeatureSelector } from '@ngrx/store';\r\n\r\nimport * as fromLanguageReducer from './language/language.reducer';\r\nimport * as fromTranslateReducer from './translate/translate.reducer';\r\n\r\nexport interface State {\r\n  [fromLanguageReducer.featureKey]: fromLanguageReducer.State,\r\n  [fromTranslateReducer.featureKey]: fromTranslateReducer.State\r\n}\r\n\r\nexport const reducers: ActionReducerMap<State, Action> = {\r\n  [fromLanguageReducer.featureKey]: fromLanguageReducer.reducer,\r\n  [fromTranslateReducer.featureKey]: fromTranslateReducer.reducer\r\n};\r\n\r\nexport const featureKey = 'ngx-material-translation';\r\n\r\nexport const selectTranslationState = createFeatureSelector<State>(featureKey);\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { TranslateConfig } from '../models/configs/translate-config.interface';\r\nimport { HTTPLoader } from '../models/loader/loader.interface';\r\n\r\nexport const TRANSLATE_CONFIG = new InjectionToken<TranslateConfig>('translateConfig');\r\nexport const TRANSLATE_LOADER = new InjectionToken<{ get: HTTPLoader }>('translateLoader');\r\n","import { Dictionary } from '@ngrx/entity';\r\nimport { createSelector } from '@ngrx/store';\r\n\r\nimport { selectTranslationState, State } from '..';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { Language, LanguageTranslation } from '../../models/language/language.interface';\r\nimport { adapter, State as LanguageState } from './language.reducer';\r\n\r\nexport const selectLanguageState = createSelector(selectTranslationState, (state: State) => {\r\n  return state.language\r\n});\r\n\r\nconst {\r\n  selectEntities,\r\n  selectAll\r\n} = adapter.getSelectors(selectLanguageState);\r\n\r\nexport const selectLanguages = createSelector(\r\n  selectLanguageState,\r\n  selectAll,\r\n  (state: LanguageState, languageTranslations: LanguageTranslation[]): (Language | null)[] => languageTranslations.map(languageTranslation => {\r\n    const translation = languageTranslation.translations[state.active];\r\n\r\n    if (!translation) {\r\n      return null;\r\n    }\r\n\r\n    return { ...languageTranslation.language, name: translation }\r\n  })\r\n);\r\n\r\nexport const selectLanguage = (languageCode: LanguageCode) => createSelector(\r\n  selectEntities,\r\n  (languageTranslations: Dictionary<LanguageTranslation>): Language | null => {\r\n    if (!languageTranslations) {\r\n      return null;\r\n    }\r\n\r\n    const languageTranslation = languageTranslations[languageCode];\r\n\r\n    if (!languageTranslation) {\r\n      return null;\r\n    }\r\n\r\n    return { ...languageTranslation.language, name: languageTranslation.translations[languageCode] };\r\n  }\r\n);\r\n\r\nexport const selectActiveLanguageCode = createSelector(\r\n  selectLanguageState,\r\n  (state: LanguageState) => state.active\r\n);\r\n\r\nexport const selectStatus = createSelector(\r\n  selectLanguageState,\r\n  (state: LanguageState) => {\r\n    if (state.status[state.active]) {\r\n      return state.status[state.active]\r\n    }\r\n\r\n    return null;\r\n  }\r\n);\r\n\r\nexport const selectLanguageEntities = createSelector(\r\n  selectLanguageState,\r\n  selectEntities,\r\n  (state: LanguageState, languageTranslations: Dictionary<LanguageTranslation>): { [key: string]: Language } => {\r\n    const languages: { [key: string]: Language } = {};\r\n\r\n    for (const languageCode in languageTranslations) {\r\n      const languageTranslation = languageTranslations[languageCode];\r\n\r\n      if (languageTranslation) {\r\n        languages[languageCode] = { ...languageTranslation.language, name: languageTranslation.translations[state.active] };\r\n      }\r\n    }\r\n\r\n    return languages;\r\n  }\r\n);\r\n\r\nexport const selectActiveLanguage = createSelector(\r\n  selectLanguageState,\r\n  selectEntities,\r\n  (state: LanguageState, languageTranslations: Dictionary<LanguageTranslation>): Language | null => {\r\n    const languageTranslation = languageTranslations[state.active];\r\n\r\n    if (!languageTranslation) {\r\n      return null;\r\n    }\r\n\r\n    return { ...languageTranslation.language, name: languageTranslation.translations[state.active] };\r\n  }\r\n);\r\n\r\nexport const selectLastActiveLanguageCode = createSelector(\r\n  selectLanguageState,\r\n  (state: LanguageState): LanguageCode => state.lastActive\r\n);\r\n\r\n\r\n","import { CustomError as CustomErrorInterface } from './custom-error.interface';\r\n\r\nexport class CustomError<T> implements CustomErrorInterface<T> {\r\n  constructor(public message: string, public append: T) { }\r\n}\r\n","import { ResponseType } from './response.enum';\r\nimport { Response as ResponseInterface } from './response.interface';\r\n\r\nexport class Response<T> implements ResponseInterface {\r\n  constructor(public data: T, public status: ResponseType, public error: string | null) { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { TRANSLATE_LOADER } from '../../constants/injection.constants';\r\nimport { CustomError } from '../../models/custom-error/custom-error.model';\r\nimport { HTTPLoader, Loader } from '../../models/loader/loader.interface';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport { Response } from '../../models/response/response.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslationLoaderService implements Loader {\r\n  constructor(@Inject(TRANSLATE_LOADER) private httpLoader: HTTPLoader) { }\r\n\r\n  get<T, U>(url: string, options: Object, append: U): Observable<{ append: U, data: T }> {\r\n    return this.httpLoader.get<T>(url, options).pipe(\r\n      catchError((error: { message: string }) => {\r\n        throw new CustomError<U>(error.message, append);\r\n      }),\r\n      map(responseSerialized => {\r\n        const response = new Response<T>(responseSerialized, ResponseType.Success, null);\r\n        return { append, data: response.data }\r\n      }));\r\n  }\r\n}\r\n","const languagePath = '/assets/i18n/material-translate/language';\r\nconst flagPath = '/assets/images/svg/flags';\r\n\r\nexport const LANGUAGE_PATH = languagePath;\r\nexport const FLAG_PATH = flagPath;\r\n","const defaultFeature = 'app';\r\nconst internalFeature = 'material-translate';\r\n\r\nconst path = '/assets/i18n';\r\n\r\nexport const DEFAULT_FEATURE = defaultFeature;\r\nexport const INTERNAL_FEATURE = internalFeature;\r\n\r\nexport const PATH = path;\r\n","import { Provider } from '@angular/core';\r\n\r\nimport { FLAG_PATH, LANGUAGE_PATH } from '../../constants/language.constants';\r\nimport { PATH } from '../../constants/translate.constants';\r\nimport { LanguageCode } from '../language/language.enum';\r\nimport { LanguageDTO } from '../language/language.interface';\r\nimport { Language } from '../language/language.model';\r\nimport { LanguageConverterFn, TranslateConfig as TranslateConfigInterface } from './translate-config.interface';\r\n\r\nexport class TranslateConfig implements TranslateConfigInterface {\r\n  loader: Provider | null;\r\n  defaultLanguage: LanguageCode;\r\n  path: string;\r\n  languagesPath: string;\r\n  languagesTranslatePath: string;\r\n  flagsPath: string;\r\n  translationLoadingClass: string;\r\n  translationSuccessClass: string;\r\n  languageConverter: LanguageConverterFn<LanguageDTO>\r\n\r\n  constructor(configs?: TranslateConfigInterface) {\r\n    configs = configs || {};\r\n\r\n    this.loader = configs.loader ? configs.loader : null;\r\n    this.defaultLanguage = configs.defaultLanguage || LanguageCode.Undefined;\r\n    this.path = configs.path || PATH;\r\n    this.languagesPath = configs.languagesPath || LANGUAGE_PATH;\r\n    this.languagesTranslatePath = configs.languagesTranslatePath || this.languagesPath;\r\n    this.flagsPath = configs.flagsPath || FLAG_PATH;\r\n    this.translationLoadingClass = configs.translationLoadingClass ? configs.translationLoadingClass : '';\r\n    this.translationSuccessClass = configs.translationSuccessClass ? configs.translationSuccessClass : '';\r\n\r\n    if(configs.languageConverter) {\r\n      this.languageConverter = configs.languageConverter;\r\n    } else {\r\n      this.languageConverter = (languageDTOs: LanguageDTO[]) => {\r\n        return languageDTOs.map(languageDTO => new Language(languageDTO));\r\n      };\r\n    }\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { take } from 'rxjs';\r\n\r\nimport { TRANSLATE_CONFIG } from '../../constants/injection.constants';\r\nimport { TranslateConfig } from '../../models/configs/translate-config.model';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { Language as LanguageInterface, LanguageDTO } from '../../models/language/language.interface';\r\nimport { Language } from '../../models/language/language.model';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport * as LanguageActions from '../../state/language/language.actions';\r\nimport * as fromLanguageReducer from '../../state/language/language.reducer';\r\nimport * as LanguageSelectors from '../../state/language/language.selectors';\r\nimport { TranslationLoaderService } from '../translation-loader/translation-loader.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LanguageService {\r\n  model = this.getModel();\r\n  business = this.getBusiness();\r\n  request = this.getRequest();\r\n\r\n  constructor(@Inject(TRANSLATE_CONFIG) private translateConfigs: TranslateConfig,\r\n    private store: Store<fromLanguageReducer.State>,\r\n    private translationLoaderService: TranslationLoaderService) { }\r\n\r\n  private getModel() {\r\n    return {\r\n      state$: this.store.select(LanguageSelectors.selectLanguageState),\r\n      activeLanguageCode$: this.store.select(LanguageSelectors.selectActiveLanguageCode),\r\n      activeLanguage$: this.store.select(LanguageSelectors.selectActiveLanguage),\r\n      lastActiveLanguageCode$: this.store.select(LanguageSelectors.selectLastActiveLanguageCode),\r\n      status$: this.store.select(LanguageSelectors.selectStatus),\r\n      languages$: this.store.select(LanguageSelectors.selectLanguages),\r\n      languageEntities$: this.store.select(LanguageSelectors.selectLanguageEntities),\r\n      language: (languageCode: LanguageCode) => {\r\n        return this.store.select(LanguageSelectors.selectLanguage(languageCode));\r\n      }\r\n    }\r\n  }\r\n\r\n  private getBusiness() {\r\n    const self = this;\r\n\r\n    return {\r\n      convertDTOs: this.translateConfigs.languageConverter,\r\n      getActiveLanguage(): LanguageInterface | null {\r\n        let language: LanguageInterface | null = null;\r\n\r\n        self.model.activeLanguage$.pipe(take(1)).subscribe(activeLanguage => language = activeLanguage);\r\n\r\n        return language;\r\n      },\r\n      getActiveLanguageCode(): LanguageCode {\r\n        let active = LanguageCode.Undefined;\r\n\r\n        self.model.activeLanguageCode$.pipe(take(1)).subscribe(activeCode => active = activeCode);\r\n\r\n        return active;\r\n      },\r\n      getLastActiveLanguageCode(): LanguageCode {\r\n        let active = LanguageCode.Undefined;\r\n\r\n        self.model.lastActiveLanguageCode$.pipe(take(1)).subscribe(lastActive => active = lastActive);\r\n\r\n        return active;\r\n      },\r\n      getLanguageEntities(): { [key: string]: Language } {\r\n        let languages = {};\r\n\r\n        self.model.languageEntities$.pipe(take(1)).subscribe(entities => languages = entities);\r\n\r\n        return languages;\r\n      },\r\n      selectLanguage: (languageCode: LanguageCode) => {\r\n        const availableLanguages = Object.values(LanguageCode).filter(key => key !== LanguageCode.Undefined);\r\n\r\n        if (!availableLanguages.includes(languageCode)) {\r\n          throw new Error('Can not set an unknown language code');\r\n        }\r\n\r\n        self.model.language(languageCode).pipe(take(1)).subscribe(language => {\r\n          if (!language) {\r\n            const newLanguage = new Language({ id: 0, n: '', c: languageCode, f: '' }, ResponseType.Loading);\r\n            self.store.dispatch(LanguageActions.selectFakeLanguage({ languageCode, language: newLanguage }));\r\n          } else {\r\n            self.store.dispatch(LanguageActions.selectLanguage({ languageCode }));\r\n          }\r\n        })\r\n      },\r\n      loadLanguages: (path?: string, force: boolean = false) => {\r\n        self.model.status$.pipe(take(1)).subscribe(responseType => {\r\n          if (!force && responseType === ResponseType.Success) {\r\n            return;\r\n          }\r\n\r\n          const languageCode = self.business.getActiveLanguageCode();\r\n\r\n          if (!languageCode) {\r\n            throw new Error('Cannot load languages without setting an initial language!')\r\n          }\r\n\r\n          path = path || this.translateConfigs.languagesPath;\r\n\r\n          self.store.dispatch(LanguageActions.loadLanguages({ path: `${path}/${languageCode}.json`, languageCode }));\r\n        });\r\n      },\r\n      addLanguages: (languages: Language[]) => {\r\n        const languageCode = self.business.getActiveLanguageCode();\r\n\r\n        if (!languageCode) {\r\n          throw new Error('Cannot load languages without setting an initial language!')\r\n        }\r\n\r\n        self.store.dispatch(LanguageActions.loadLanguagesSuccess({ languageCode, languages }));\r\n      },\r\n      translateLanguages: (path?: string, force: boolean = false) => {\r\n        self.model.status$.pipe(take(1)).subscribe(responseType => {\r\n          if (!force && responseType === ResponseType.Success) {\r\n            return;\r\n          }\r\n\r\n          const languageCode = self.business.getActiveLanguageCode();\r\n\r\n          if (!languageCode) {\r\n            throw new Error('Cannot translate languages without setting a default language!')\r\n          }\r\n\r\n          path = path || this.translateConfigs.languagesTranslatePath;\r\n\r\n          self.store.dispatch(LanguageActions.translateLanguages({ path: `${path}/${languageCode}.json`, languageCode }));\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  private getRequest() {\r\n    const self = this;\r\n\r\n    return {\r\n      loadLanguages: (path: string, languageCode: LanguageCode) => {\r\n        return self.translationLoaderService.get<LanguageDTO[], { languageCode: LanguageCode }>\r\n          (path, {}, { languageCode });\r\n      },\r\n      translateLanguages: (path: string, languageCode: LanguageCode) => {\r\n        return self.translationLoaderService.get<LanguageDTO[], { languageCode: LanguageCode }>\r\n          (path, {}, { languageCode });\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport { selectTranslationState, State } from '..';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { State as LanguageState } from './translate.reducer';\r\n\r\nexport const selectTranslateState = createSelector(selectTranslationState, (state: State) => {\r\n  return state.translate\r\n});\r\n\r\nexport const selectTranslations = createSelector(\r\n  selectTranslateState,\r\n  (state: LanguageState) => state.translations\r\n);\r\n\r\nexport const selectDefaultTranslations = (feature: string) => createSelector(\r\n  selectTranslateState,\r\n  (state: LanguageState) => {\r\n    if (state.defaultLanguage && state.translations[feature]) {\r\n      if (state.translations[feature][state.defaultLanguage]) {\r\n        return state.translations[feature][state.defaultLanguage]\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n);\r\n\r\nexport const selectFeatureTranslations = (feature: string) => createSelector(\r\n  selectTranslateState,\r\n  (state: LanguageState) => {\r\n    if (state.translations[feature]) {\r\n      return state.translations[feature]\r\n    }\r\n\r\n    return null;\r\n  }\r\n);\r\n\r\nexport const selectLanguageTranslations = (feature: string, languageCode: LanguageCode) => createSelector(\r\n  selectTranslateState,\r\n  (state: LanguageState) => {\r\n    if (state.translations[feature]) {\r\n      if (state.translations[feature][languageCode]) {\r\n        return state.translations[feature][languageCode]\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n);\r\n\r\nexport const selectStatus = (feature: string, languageCode: LanguageCode) => createSelector(\r\n  selectTranslateState,\r\n  (state: LanguageState) => {\r\n    if (state.status[feature]) {\r\n      if (state.status[feature][languageCode]) {\r\n        return state.status[feature][languageCode]\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n);\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { take } from 'rxjs';\r\n\r\nimport { TRANSLATE_CONFIG } from '../../constants/injection.constants';\r\nimport { DEFAULT_FEATURE } from '../../constants/translate.constants';\r\nimport { TranslateConfig } from '../../models/configs/translate-config.interface';\r\nimport { KeyValue } from '../../models/key-value/key-value.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport * as TranslateActions from '../../state/translate/translate.actions';\r\nimport * as fromTranslateReducer from '../../state/translate/translate.reducer';\r\nimport * as TranslateSelectors from '../../state/translate/translate.selectors';\r\nimport { LanguageService } from '../language/language.service';\r\nimport { TranslationLoaderService } from '../translation-loader/translation-loader.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslateService {\r\n  model = this.getModel();\r\n  business = this.getBusiness();\r\n  request = this.getRequest();\r\n\r\n  constructor(@Inject(TRANSLATE_CONFIG) private translateConfigs: TranslateConfig,\r\n    private store: Store<fromTranslateReducer.State>,\r\n    private translationLoaderService: TranslationLoaderService,\r\n    private languageService: LanguageService) { }\r\n\r\n  private getModel() {\r\n    return {\r\n      state$: this.store.select(TranslateSelectors.selectTranslateState),\r\n      translations$: this.store.select(TranslateSelectors.selectTranslations),\r\n      defaultTranslations: (feature: string) => {\r\n        return this.store.select(TranslateSelectors.selectDefaultTranslations(feature));\r\n      },\r\n      featureTranslations: (feature: string) => {\r\n        return this.store.select(TranslateSelectors.selectFeatureTranslations(feature));\r\n      },\r\n      languageTranslations: (feature: string) => {\r\n        const languageCode = this.languageService.business.getActiveLanguageCode();\r\n\r\n        if (!languageCode) {\r\n          throw new Error('There is no active language');\r\n        }\r\n\r\n        return this.store.select(TranslateSelectors.selectLanguageTranslations(feature, languageCode));\r\n      },\r\n      status: (feature: string) => {\r\n        const languageCode = this.languageService.business.getActiveLanguageCode();\r\n\r\n        if (!languageCode) {\r\n          throw new Error('There is no active language');\r\n        }\r\n\r\n        return this.store.select(TranslateSelectors.selectStatus(feature, languageCode));\r\n      }\r\n    }\r\n  }\r\n\r\n  private getBusiness() {\r\n    const self = this;\r\n\r\n    return {\r\n      addTranslations: (translationData: KeyValue<string | KeyValue<string>>, feature: string = DEFAULT_FEATURE) => {\r\n        const languageCode = self.languageService.business.getActiveLanguageCode();\r\n\r\n        if (!languageCode) {\r\n          throw new Error('Cannot load translations before selecting an initial language');\r\n        }\r\n\r\n        self.store.dispatch(TranslateActions.loadTranslationsSuccess({ feature, languageCode, translationData }));\r\n      },\r\n      loadTranslations: (feature: string = DEFAULT_FEATURE, path?: string, force: boolean = false) => {\r\n        self.model.status(feature).pipe(take(1)).subscribe(responseType => {\r\n          if (!force && responseType === ResponseType.Success) {\r\n            return;\r\n          }\r\n\r\n          const languageCode = self.languageService.business.getActiveLanguageCode();\r\n\r\n          if (!languageCode) {\r\n            throw new Error('Cannot load translations before selecting an initial language');\r\n          }\r\n\r\n          path = path || `${this.translateConfigs.path}/${feature}`;\r\n\r\n          self.store.dispatch(TranslateActions.loadTranslations({ path: `${path}/${languageCode}.json`, feature, languageCode }));\r\n        })\r\n      },\r\n      getDefaultTranslations: (feature: string) => {\r\n        let languageTranslations: KeyValue<string | KeyValue<string>> | null = null;\r\n        self.model.defaultTranslations(feature).pipe(take(1)).subscribe(translations => languageTranslations = translations);\r\n\r\n        return languageTranslations;\r\n      },\r\n      getTranslation: (feature: string, translateKey: string): string | null => {\r\n        let translate: string | null = null;\r\n\r\n        self.model.languageTranslations(feature).pipe(take(1)).subscribe(languageTranslations => {\r\n          if (!languageTranslations) {\r\n            languageTranslations = this.business.getDefaultTranslations(feature);\r\n          }\r\n\r\n          if (languageTranslations) {\r\n            let languageTranslation = languageTranslations[translateKey];\r\n\r\n            if (typeof languageTranslation === 'string') {\r\n              translate = languageTranslation;\r\n            } else {\r\n              const translateKeys = translateKey.split('.');\r\n\r\n              if (translateKeys.length === 2) {\r\n                let nestedTranslation = languageTranslations[translateKeys[0]];\r\n\r\n                if (nestedTranslation) {\r\n                  if (typeof nestedTranslation === 'string') {\r\n                    translate = nestedTranslation;\r\n                  } else {\r\n                    let nestedValue = nestedTranslation[translateKeys[1]];\r\n\r\n                    if (nestedValue) {\r\n                      translate = nestedValue;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        });\r\n\r\n        return translate;\r\n      }\r\n    }\r\n  }\r\n\r\n  private getRequest() {\r\n    const self = this;\r\n\r\n    return {\r\n      loadTranslations: (path: string, feature: string, languageCode: LanguageCode) => {\r\n        return self.translationLoaderService.get<KeyValue<string | KeyValue<string>>, { feature: string, languageCode: LanguageCode }>\r\n          (path, {}, { feature, languageCode });\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef, Inject, Input, OnChanges, OnInit, Renderer2, SimpleChanges } from '@angular/core';\r\nimport { filter, Subscription, take } from 'rxjs';\r\nimport { TRANSLATE_CONFIG } from '../../constants/injection.constants';\r\n\r\nimport { DEFAULT_FEATURE } from '../../constants/translate.constants';\r\nimport { TranslateConfig } from '../../models/configs/translate-config.model';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport { LanguageService } from '../../services/language/language.service';\r\nimport { TranslateService } from '../../services/translate/translate.service';\r\n\r\n@Directive({\r\n  selector: '[translate]'\r\n})\r\nexport class TranslateDirective implements OnInit, OnChanges {\r\n  @Input() translate?: string;\r\n  @Input() translateFeature?: string;\r\n  @Input() translateParams?: string;\r\n\r\n  private value: string | null;\r\n\r\n  private translatedValue: string | null;\r\n\r\n  private subscriptions: Subscription[];\r\n\r\n  constructor(\r\n    @Inject(TRANSLATE_CONFIG) private translateConfig: TranslateConfig,\r\n    private elementRef: ElementRef,\r\n    private renderer2: Renderer2,\r\n    private translateService: TranslateService,\r\n    private languageService: LanguageService) {\r\n    this.value = null;\r\n\r\n    this.translatedValue = null;\r\n\r\n    this.subscriptions = [];\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.translate) {\r\n      throw new Error(`translate directive, translate value is required`);\r\n    }\r\n\r\n    if (!this.translateFeature) {\r\n      this.translateFeature = DEFAULT_FEATURE;\r\n    }\r\n\r\n    this.value = this.translate;\r\n\r\n    this.subscriptions.push(this.languageService.model.activeLanguageCode$.subscribe(languageCode => {\r\n      const lastActiveLanguageCode = this.languageService.business.getLastActiveLanguageCode();\r\n\r\n      const firstLoad = languageCode === lastActiveLanguageCode;\r\n\r\n      if (!this.translateFeature) {\r\n        return;\r\n      }\r\n\r\n      if (!firstLoad && this.translateConfig.translationLoadingClass && this.translatedValue) {\r\n        this.renderer2.setProperty(this.elementRef.nativeElement, 'innerHTML', `<span class=\"${this.translateConfig.translationLoadingClass}\">${this.translatedValue}</span>`);\r\n      }\r\n\r\n      this.translateService.model.status(this.translateFeature).pipe(\r\n        filter(status => status === ResponseType.Success), take(1)\r\n      ).subscribe(() => this.translateValue(firstLoad))\r\n    }));\r\n  }\r\n\r\n  ngOnChanges(_changes: SimpleChanges): void {\r\n    if (!this.translate) {\r\n      throw new Error(`translate directive, translate value is required`);\r\n    }\r\n\r\n    if (!this.translateFeature) {\r\n      this.translateFeature = DEFAULT_FEATURE;\r\n    }\r\n\r\n    if (!this.hasChanges()) {\r\n      return;\r\n    }\r\n\r\n    this.value = this.translate;\r\n\r\n    this.translateValue(true);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n  }\r\n\r\n  private translateValue(firstLoad: boolean) {\r\n    if (this.translate && this.translateFeature) {\r\n      const translatedValue = this.translateService.business.getTranslation(this.translateFeature, this.translate);\r\n\r\n      if (translatedValue) {\r\n        this.translatedValue = translatedValue;\r\n      } else {\r\n        this.translatedValue = this.translate;\r\n      }\r\n\r\n      if (!firstLoad && this.translateConfig.translationSuccessClass) {\r\n        this.renderer2.setProperty(this.elementRef.nativeElement, 'innerHTML', `<span class=\"${this.translateConfig.translationSuccessClass}\">${this.translatedValue}</span>`);\r\n      } else {\r\n        this.renderer2.setProperty(this.elementRef.nativeElement, 'innerHTML', this.translatedValue);\r\n      }\r\n    }\r\n  }\r\n\r\n  private hasChanges() {\r\n    return this.translate !== this.value;\r\n  }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Component, Inject, Input, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { TRANSLATE_CONFIG } from '../../constants/injection.constants';\r\nimport { TranslateConfig } from '../../models/configs/translate-config.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport { LanguageService } from '../../services/language/language.service';\r\n\r\n@Component({\r\n  selector: 'mat-language',\r\n  templateUrl: './language.component.html',\r\n  styleUrls: ['./language.component.scss']\r\n})\r\n/*Displays the languages loaded or configured.*/\r\nexport class LanguageComponent implements OnInit, OnDestroy {\r\n  @Input() classList?: string;\r\n  responseStatus: typeof ResponseType;\r\n  selectedLanguage: LanguageCode;\r\n\r\n  private subscriptions: Subscription[];\r\n\r\n  constructor(\r\n    @Inject(PLATFORM_ID) private platformId: Object,\r\n    @Inject(TRANSLATE_CONFIG) private configs: TranslateConfig,\r\n    private matIconRegistry: MatIconRegistry,\r\n    private domSanitizer: DomSanitizer,\r\n    public languageService: LanguageService) {\r\n    this.subscriptions = [];\r\n\r\n    this.responseStatus = ResponseType;\r\n    this.selectedLanguage = LanguageCode.Undefined;\r\n  }\r\n\r\n  isBrowser() {\r\n    return isPlatformBrowser(this.platformId);\r\n  }\r\n\r\n  onLanguageSet() {\r\n    this.languageService.business.selectLanguage(this.selectedLanguage);\r\n  }\r\n\r\n  ngOnInit() {\r\n    if(!this.classList) {\r\n      this.classList = '';\r\n    }\r\n\r\n    this.subscriptions.push(this.languageService.model.activeLanguageCode$.subscribe(languageCode => this.selectedLanguage = languageCode));\r\n\r\n    this.subscriptions.push(this.languageService.model.languages$.subscribe(languages => {\r\n      for (const language of languages) {\r\n        if (this.isBrowser() && language && language.flag) {\r\n          this.matIconRegistry.addSvgIconInNamespace('flag', language.flag,\r\n            this.domSanitizer.bypassSecurityTrustResourceUrl(`${this.configs.flagsPath}/${language.flag}.svg`))\r\n        }\r\n      }\r\n    }));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n  }\r\n}\r\n","<mat-form-field appearance=\"fill\">\r\n  <mat-label translate=\"language\" translateFeature=\"material-translate\"></mat-label>\r\n\r\n  <mat-select [(value)]=\"selectedLanguage\" (selectionChange)=\"onLanguageSet()\" [panelClass]=\"classList + ''\">\r\n    <ng-container *ngFor=\"let language of languageService.model.languages$ | async\">\r\n      <mat-option *ngIf=\"language && language.status === responseStatus.Success\" [value]=\"language.code\">\r\n        <mat-icon *ngIf=\"isBrowser()\" [svgIcon]=\"'flag:' + language.flag\" class=\"icon\"></mat-icon>\r\n        {{ language.name }}\r\n      </mat-option>\r\n    </ng-container>\r\n  </mat-select>\r\n</mat-form-field>\r\n","import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { filter, Subscription, take } from 'rxjs';\r\n\r\nimport { DEFAULT_FEATURE } from '../../constants/translate.constants';\r\nimport { ResponseType } from '../../models/response/response.enum';\r\nimport { LanguageService } from '../../services/language/language.service';\r\nimport { TranslateService } from '../../services/translate/translate.service';\r\n\r\n@Pipe({\r\n  name: 'translate',\r\n  pure: false\r\n})\r\nexport class TranslatePipe implements PipeTransform, OnDestroy {\r\n  oldValue: string | null;\r\n  oldParams: string | null;\r\n  translatedValue: string | null;\r\n  params: string[];\r\n\r\n  private subscriptions: Subscription[];\r\n\r\n  constructor(\r\n    private languageService: LanguageService,\r\n    private translateService: TranslateService) {\r\n    this.oldValue = null;\r\n    this.oldParams = null;\r\n    this.translatedValue = null;\r\n    this.params = [];\r\n\r\n    this.subscriptions = [];\r\n  }\r\n\r\n  transform(value: string, feature = DEFAULT_FEATURE, params: string | null = null): string {\r\n    if (!value || typeof value !== 'string') {\r\n      throw new Error('Translate pipe requires a string value')\r\n    }\r\n\r\n    if (value !== this.oldValue || params !== this.oldParams) {\r\n      this.translatedValue = null;\r\n    }\r\n\r\n    if (this.translatedValue) {\r\n      return this.translatedValue;\r\n    }\r\n\r\n    if (params) {\r\n      this.params = params.split(',');\r\n\r\n      for (let i = 0; i < this.params.length; i++) {\r\n        this.params[i] = this.params[i].trim();\r\n      }\r\n    }\r\n\r\n    this.subscriptions.push(this.languageService.model.activeLanguageCode$.subscribe(() => {\r\n      this.translateService.model.status(feature).pipe(\r\n        filter(status => status === ResponseType.Success), take(1)\r\n      ).subscribe(() => {\r\n        const translatedValue = this.translateService.business.getTranslation(feature, value);\r\n\r\n        if (translatedValue) {\r\n          this.translatedValue = translatedValue;\r\n        } else {\r\n          this.translatedValue = value;\r\n        }\r\n      })\r\n    }))\r\n\r\n    if (!this.translatedValue) {\r\n      this.translatedValue = value;\r\n    }\r\n\r\n    this.oldValue = value;\r\n    this.oldParams = params;\r\n\r\n    return this.translatedValue;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { UpdateStr } from '@ngrx/entity/src/models';\r\nimport { Store } from '@ngrx/store';\r\nimport { catchError, map, switchMap } from 'rxjs';\r\n\r\nimport { CustomError } from '../../models/custom-error/custom-error.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { LanguageTranslation } from '../../models/language/language.model';\r\nimport { LanguageService } from '../../services/language/language.service';\r\nimport * as LanguageActions from './language.actions';\r\nimport * as fromLanguageReducer from './language.reducer';\r\n\r\n@Injectable()\r\nexport class LanguageEffects {\r\n  loadLanguages$ = createEffect(() => this.actions$.pipe(\r\n    ofType(LanguageActions.loadLanguages),\r\n    switchMap(action => {\r\n      return this.languageService.request.loadLanguages(action.path, action.languageCode);\r\n    }),\r\n    catchError((error: CustomError<{ languageCode: LanguageCode }>, caught) => {\r\n      this.store.dispatch(LanguageActions.loadLanguagesFailure({ languageCode: error.append.languageCode, error: error.message }));\r\n      return caught;\r\n    }),\r\n    map(response => {\r\n      const languages = this.languageService.business.convertDTOs(response.data);\r\n      return LanguageActions.loadLanguagesSuccess({ languageCode: response.append.languageCode, languages });\r\n    })\r\n  ));\r\n\r\n  translateLanguages$ = createEffect(() => this.actions$.pipe(\r\n    ofType(LanguageActions.translateLanguages),\r\n    switchMap(action => {\r\n      return this.languageService.request.translateLanguages(action.path, action.languageCode);\r\n    }),\r\n    catchError((error: CustomError<{ languageCode: LanguageCode }>, caught) => {\r\n      this.store.dispatch(LanguageActions.translateLanguagesFailure({ languageCode: error.append.languageCode, error: error.message }));\r\n      return caught;\r\n    }),\r\n    map(response => {\r\n      const languages = this.languageService.business.convertDTOs(response.data);\r\n      const translations: UpdateStr<LanguageTranslation>[] = languages.map(language => ({\r\n        id: language.code, changes: {\r\n          translations: {\r\n            [response.append.languageCode]: language.name\r\n          }\r\n        }\r\n      }));\r\n\r\n      return LanguageActions.translateLanguagesSuccess({ languageCode: response.append.languageCode, translations });\r\n    })\r\n  ));\r\n\r\n  constructor(private actions$: Actions, private store: Store<fromLanguageReducer.State>, private languageService: LanguageService) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\nimport { catchError, map, mergeMap } from 'rxjs/operators';\r\n\r\nimport { CustomError } from '../../models/custom-error/custom-error.interface';\r\nimport { LanguageCode } from '../../models/language/language.enum';\r\nimport { TranslateService } from '../../services/translate/translate.service';\r\nimport * as TranslateActions from './translate.actions';\r\nimport * as fromTranslateReducer from './translate.reducer';\r\n\r\n\r\n@Injectable()\r\nexport class TranslateEffects {\r\n  loadTranslation$ = createEffect(() => this.actions$.pipe(\r\n    ofType(TranslateActions.loadTranslations),\r\n    mergeMap(action => {\r\n      return this.translateService.request.loadTranslations(action.path, action.feature, action.languageCode);\r\n    }),\r\n    catchError((error: CustomError<{ languageCode: LanguageCode, feature: string }>, caught) => {\r\n      this.store.dispatch(TranslateActions.loadTranslationsFailure({  languageCode: error.append.languageCode, feature: error.append.feature,  error: error.message }));\r\n      return caught;\r\n    }),\r\n    map(response => {\r\n      return TranslateActions.loadTranslationsSuccess({ feature: response.append.feature, languageCode: response.append.languageCode, translationData: response.data });\r\n    })\r\n  ));\r\n\r\n\r\n  constructor(private actions$: Actions, private store: Store<fromTranslateReducer.State>, private translateService: TranslateService) {}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\n\r\nimport { LanguageComponent } from './components/language/language.component';\r\nimport { TRANSLATE_CONFIG } from './constants/injection.constants';\r\nimport { TranslateDirective } from './directives/translate/translate.directive';\r\nimport { TranslateConfig as TranslateConfigInterface } from './models/configs/translate-config.interface';\r\nimport { TranslateConfig } from './models/configs/translate-config.model';\r\nimport { TranslatePipe } from './pipes/translate/translate.pipe';\r\nimport { TranslationLoaderService } from './services/translation-loader/translation-loader.service';\r\nimport { featureKey, reducers } from './state';\r\nimport { LanguageEffects } from './state/language/language.effects';\r\nimport { TranslateEffects } from './state/translate/translate.effects';\r\n\r\nconst materialModules = [\r\n  MatIconModule,\r\n  MatSelectModule\r\n];\r\n\r\n@NgModule({\r\n  declarations: [\r\n    LanguageComponent,\r\n    TranslatePipe,\r\n    TranslateDirective\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    EffectsModule.forFeature([LanguageEffects, TranslateEffects]),\r\n    materialModules,\r\n    StoreModule.forFeature(featureKey, reducers)\r\n  ],\r\n  exports: [\r\n    LanguageComponent,\r\n    TranslatePipe,\r\n    TranslateDirective\r\n  ]\r\n})\r\nexport class MaterialTranslateModule {\r\n  static forRoot(config?: TranslateConfigInterface): ModuleWithProviders<MaterialTranslateModule> {\r\n    config = new TranslateConfig(config);\r\n\r\n    return {\r\n      ngModule: MaterialTranslateModule,\r\n      providers: [\r\n        { provide: TRANSLATE_CONFIG, useValue: config },\r\n        config.loader || {\r\n          provide: TranslationLoaderService, useFactory: () => ({\r\n            get: () => of({})\r\n          })\r\n        }\r\n      ]\r\n    }\r\n  }\r\n\r\n  static forChild(config?: TranslateConfigInterface): ModuleWithProviders<MaterialTranslateModule> {\r\n    config = new TranslateConfig(config);\r\n\r\n    return {\r\n      ngModule: MaterialTranslateModule,\r\n      providers: [\r\n        { provide: TRANSLATE_CONFIG, useValue: config },\r\n        config.loader || {\r\n          provide: TranslationLoaderService, useFactory: () => ({\r\n            get: () => of({})\r\n          })\r\n        }\r\n      ]\r\n    }\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ngx-material-translate\r\n */\r\nimport { LanguageCode } from './lib/models/language/language.enum';\r\nimport { Language } from './lib/models/language/language.model';\r\nimport { ResponseType } from './lib/models/response/response.enum';\r\nimport { featureKey } from './lib/state';\r\nimport * as fromLanguageReducer from './lib/state/language/language.reducer';\r\n\r\nexport { MaterialTranslateModule } from './lib/ngx-material-translate.module';\r\n\r\nexport { LanguageComponent } from './lib/components/language/language.component';\r\n\r\nexport { TRANSLATE_CONFIG } from './lib/constants/injection.constants'\r\nexport { INTERNAL_FEATURE } from './lib/constants/translate.constants';\r\n\r\nexport { TranslateDirective } from './lib/directives/translate/translate.directive';\r\n\r\nexport { KeyValue } from './lib/models/key-value/key-value.interface';\r\nexport { TranslateConfig as TranslateConfigInterface } from './lib/models/configs/translate-config.interface';\r\nexport { Language as LanguageInterface, LanguageDTO } from './lib/models/language/language.interface';\r\nexport { Loader } from './lib/models/loader/loader.interface';\r\n\r\nexport { CustomError } from './lib/models/custom-error/custom-error.model';\r\nexport { Response } from './lib/models/response/response.model';\r\nexport { Language } from './lib/models/language/language.model';\r\n\r\nexport { ResponseType } from './lib/models/response/response.enum';\r\nexport { LanguageCode } from './lib/models/language/language.enum';\r\n\r\nexport { TranslatePipe } from './lib/pipes/translate/translate.pipe';\r\n\r\nexport { LanguageService } from './lib/services/language/language.service';\r\nexport { TranslateService } from './lib/services/translate/translate.service';\r\nexport { TranslationLoaderService } from './lib/services/translation-loader/translation-loader.service';\r\n\r\nexport function mockState() {\r\n  return {\r\n    [featureKey]: {\r\n      [fromLanguageReducer.featureKey]: {\r\n        ids: ['en'],\r\n        entities: {\r\n          en: {\r\n            translations: { en: 'English' },\r\n            language: new Language({ id: 0, n: 'English', c: LanguageCode.English, f: 'us' })\r\n          }\r\n        },\r\n        active: LanguageCode.English,\r\n        lastActive: LanguageCode.English,\r\n        status: {\r\n          en: ResponseType.Undefined\r\n        },\r\n        error: null\r\n      }\r\n    }\r\n  };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["selectLanguage","initialState","LanguageActions.loadLanguages","LanguageActions.loadLanguagesSuccess","LanguageActions.loadLanguagesFailure","LanguageActions.translateLanguages","LanguageActions.translateLanguagesSuccess","LanguageActions.translateLanguagesFailure","LanguageActions.selectFakeLanguage","LanguageActions.selectLanguage","reducer","featureKey","TranslationActions.loadTranslations","TranslationActions.loadTranslationsSuccess","TranslationActions.loadTranslationsFailure","fromLanguageReducer.featureKey","fromLanguageReducer.reducer","fromTranslateReducer.featureKey","fromTranslateReducer.reducer","selectStatus","LanguageSelectors.selectLanguageState","LanguageSelectors.selectActiveLanguageCode","LanguageSelectors.selectActiveLanguage","LanguageSelectors.selectLastActiveLanguageCode","LanguageSelectors.selectStatus","LanguageSelectors.selectLanguages","LanguageSelectors.selectLanguageEntities","LanguageSelectors.selectLanguage","i1","i2.TranslationLoaderService","TranslateSelectors.selectTranslateState","TranslateSelectors.selectTranslations","TranslateSelectors.selectDefaultTranslations","TranslateSelectors.selectFeatureTranslations","TranslateSelectors.selectLanguageTranslations","TranslateSelectors.selectStatus","TranslateActions.loadTranslationsSuccess","TranslateActions.loadTranslations","i3.LanguageService","i1.TranslateService","i2.LanguageService","i2","i8.TranslateDirective","i1.LanguageService","i2.TranslateService","catchError","map","TranslateActions.loadTranslationsFailure","i3.TranslateService"],"mappings":"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"}