{ "version": 3, "sources": ["libs/crm/static/src/lib/i18n/translate-by-object-type/translate-by-object-type.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivityType, ObjectType } from '../../tokens-and-interfaces';\n\n/*\n this reference tracks which translation keys are object-specific\n while we could just assume a convention of `objectType.KEY` for all object-specific keys\n this book-keeping provides some safety around the completeness of the translation files\n*/\nconst objectSpecificTranslationKeys: string[] = [\n 'TITLE',\n 'ADD_OBJECT_BUTTON',\n 'PROSPECT_OBJECT_BUTTON',\n 'RECORD_CHANGE_ACTIVITY.CREATED',\n 'RECORD_CHANGE_ACTIVITY.CREATED_VIA',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_NOT_ASSIGNED',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_UNKNOWN',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.IMAGE_ALT',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HEADER',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HINT',\n 'LIST_OBJECTS_TABLE.ACTIONS.EDIT.TITLE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ACTION',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.TITLE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CANCEL',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRM',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRMATION_MESSAGE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.SUCCESS',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ERROR',\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ACTION`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.TITLE`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CANCEL`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRM`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRMATION_MESSAGE`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.SUCCESS`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ERROR`,\n 'LIST_OBJECTS_TABLE.SELECT_ALL.SELECT_ALL_OBJECTS',\n 'LIST_OBJECTS_TABLE.SELECT_ALL.TOTAL_SELECTED',\n 'LIST_OBJECTS_TABLE.SELECT_ALL.CLEAR_SELECTION',\n 'CREATE_PAGE.TITLE',\n 'EDIT_PAGE.TITLE',\n 'EDIT_PAGE.SAVE.SUCCESS',\n 'CREATE_PAGE.SAVE.SUCCESS',\n 'CREATE_PAGE.SAVE.ERROR',\n 'CREATE_PAGE.LOAD.ERROR',\n 'TABLE_FILTERS.HEADER',\n 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.ENFORCED',\n 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.WARNING',\n 'PROFILE_PAGE.EDIT',\n 'PROFILE_PAGE.TITLE',\n 'PROFILE_PAGE.ABOUT_TAB',\n 'PROFILE_PAGE.ACTIVITIES_TIMELINE_TAB',\n 'PROFILE_PAGE.ASSOCIATIONS_TAB',\n 'PROFILE_PAGE.PREVIOUS_PAGE_TITLE',\n 'VIEW_OBJECT',\n 'SELECT_MODAL.ONE_SELECTED',\n 'SELECT_MODAL.MORE_SELECTED',\n 'SELECT_MODAL.NO_SELECTED',\n];\n\n@Injectable()\nexport class TranslateByObjectTypeService {\n constructor(private readonly translateService: TranslateService) {}\n\n private getTranslationKeyByObjectType(objectType: ObjectType | ActivityType, partialTranslationKey: string): string {\n if (!objectSpecificTranslationKeys.includes(partialTranslationKey)) {\n console.warn(`Translation key ${partialTranslationKey} is not supported for object type ${objectType}`);\n return `PARTIAL.${partialTranslationKey}`;\n }\n return `${objectType.toUpperCase()}.${partialTranslationKey}`;\n }\n\n getTranslationByObjectType(\n objectType: ObjectType | ActivityType,\n partialTranslationKey: string,\n // eslint-disable-next-line @typescript-eslint/ban-types\n interpolateParams?: Object,\n ): string {\n const translationKey = this.getTranslationKeyByObjectType(objectType, partialTranslationKey);\n const translation = this.translateService.instant(translationKey, interpolateParams);\n if (translationKey === translation) {\n console.warn(`Missing translation for object specific key ${translationKey}`);\n }\n return translation;\n }\n}\n"], "mappings": "yFASA,IAAMA,EAA0C,CAC9C,QACA,oBACA,yBACA,iCACA,qCACA,iDACA,6DACA,0EACA,qEACA,2CACA,wCACA,sCACA,wCACA,2CACA,0CACA,2CACA,4CACA,yDACA,4CACA,0CACA,oDACA,mDACA,oDACA,qDACA,kEACA,qDACA,mDACA,mDACA,+CACA,gDACA,oBACA,kBACA,yBACA,2BACA,yBACA,yBACA,uBACA,mDACA,kDACA,oBACA,qBACA,yBACA,uCACA,gCACA,mCACA,cACA,4BACA,6BACA,0BAA0B,EAIfC,GAA4B,IAAA,CAAnC,IAAOA,EAAP,MAAOA,CAA4B,CACvCC,YAA6BC,EAAkC,CAAlC,KAAAA,iBAAAA,CAAqC,CAE1DC,8BAA8BC,EAAuCC,EAA6B,CACxG,OAAKN,EAA8BO,SAASD,CAAqB,EAI1D,GAAGD,EAAWG,YAAW,CAAE,IAAIF,CAAqB,IAHzDG,QAAQC,KAAK,mBAAmBJ,CAAqB,qCAAqCD,CAAU,EAAE,EAC/F,WAAWC,CAAqB,GAG3C,CAEAK,2BACEN,EACAC,EAEAM,EAA0B,CAE1B,IAAMC,EAAiB,KAAKT,8BAA8BC,EAAYC,CAAqB,EACrFQ,EAAc,KAAKX,iBAAiBY,QAAQF,EAAgBD,CAAiB,EACnF,OAAIC,IAAmBC,GACrBL,QAAQC,KAAK,+CAA+CG,CAAc,EAAE,EAEvEC,CACT,yCAvBWb,GAA4Be,EAAAC,CAAA,CAAA,CAAA,wBAA5BhB,EAA4BiB,QAA5BjB,EAA4BkB,SAAA,CAAA,EAAnC,IAAOlB,EAAPmB,SAAOnB,CAA4B,GAAA", "names": ["objectSpecificTranslationKeys", "TranslateByObjectTypeService", "constructor", "translateService", "getTranslationKeyByObjectType", "objectType", "partialTranslationKey", "includes", "toUpperCase", "console", "warn", "getTranslationByObjectType", "interpolateParams", "translationKey", "translation", "instant", "\u0275\u0275inject", "TranslateService", "factory", "\u0275fac", "_TranslateByObjectTypeService"] }