@muraai/mnl-commons 0.1.0 → 0.2.0-alpha-3a3a286

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.
Files changed (106) hide show
  1. package/esm2022/lib/commons.module.mjs +136 -0
  2. package/esm2022/lib/components/header/header.component.mjs +31 -0
  3. package/esm2022/lib/components/highlighter/highlighter.component.mjs +23 -0
  4. package/esm2022/lib/components/language-menu/language-menu.component.mjs +36 -0
  5. package/esm2022/lib/components/login/login.component.mjs +55 -0
  6. package/esm2022/lib/components/menu/menu.component.mjs +67 -0
  7. package/esm2022/lib/components/profile/profile.component.mjs +42 -0
  8. package/esm2022/lib/material.module.mjs +60 -0
  9. package/esm2022/lib/model/log-levels.model.mjs +17 -0
  10. package/esm2022/lib/model/menu-data.model.mjs +2 -0
  11. package/esm2022/lib/model/translation-resource.mjs +14 -0
  12. package/esm2022/lib/model/user-model.mjs +2 -0
  13. package/esm2022/lib/pipes/app-config-pipe.mjs +20 -0
  14. package/esm2022/lib/pipes/time-ago-pipe.mjs +43 -0
  15. package/esm2022/lib/pipes/user-fullname-pipe.mjs +34 -0
  16. package/esm2022/lib/pipes/user-initials-pipe.mjs +48 -0
  17. package/esm2022/lib/services/app.config.service.mjs +41 -0
  18. package/esm2022/lib/services/local-storage.service.mjs +48 -0
  19. package/esm2022/lib/services/locale.service.mjs +89 -0
  20. package/esm2022/lib/services/log.service.mjs +89 -0
  21. package/esm2022/lib/services/user-profile.service.mjs +36 -0
  22. package/esm2022/lib/utils/object-utils.mjs +46 -0
  23. package/esm2022/muraai-mnl-commons.mjs +5 -0
  24. package/esm2022/public-api.mjs +25 -0
  25. package/fesm2022/muraai-mnl-commons.mjs +905 -0
  26. package/fesm2022/muraai-mnl-commons.mjs.map +1 -0
  27. package/index.d.ts +5 -0
  28. package/lib/commons.module.d.ts +21 -0
  29. package/lib/components/header/header.component.d.ts +5 -0
  30. package/lib/components/highlighter/highlighter.component.d.ts +3 -0
  31. package/lib/components/language-menu/language-menu.component.d.ts +6 -1
  32. package/lib/components/login/login.component.d.ts +5 -2
  33. package/lib/components/menu/menu.component.d.ts +3 -0
  34. package/lib/components/profile/profile.component.d.ts +8 -2
  35. package/lib/material.module.d.ts +14 -2
  36. package/lib/model/menu-data.model.d.ts +1 -0
  37. package/lib/pipes/app-config-pipe.d.ts +3 -0
  38. package/lib/pipes/time-ago-pipe.d.ts +4 -1
  39. package/lib/pipes/user-fullname-pipe.d.ts +4 -0
  40. package/lib/pipes/user-initials-pipe.d.ts +6 -0
  41. package/lib/services/app.config.service.d.ts +3 -0
  42. package/lib/services/local-storage.service.d.ts +7 -0
  43. package/lib/services/locale.service.d.ts +4 -0
  44. package/lib/services/log.service.d.ts +4 -1
  45. package/lib/services/user-profile.service.d.ts +3 -0
  46. package/package.json +18 -14
  47. package/public-api.d.ts +1 -0
  48. package/theming.scss +6 -5186
  49. package/bundles/muraai-mnl-commons.umd.js +0 -1087
  50. package/bundles/muraai-mnl-commons.umd.js.map +0 -1
  51. package/bundles/muraai-mnl-commons.umd.min.js +0 -16
  52. package/bundles/muraai-mnl-commons.umd.min.js.map +0 -1
  53. package/esm2015/lib/commons.module.js +0 -89
  54. package/esm2015/lib/components/header/header.component.js +0 -26
  55. package/esm2015/lib/components/highlighter/highlighter.component.js +0 -27
  56. package/esm2015/lib/components/language-menu/language-menu.component.js +0 -29
  57. package/esm2015/lib/components/login/login.component.js +0 -58
  58. package/esm2015/lib/components/menu/menu.component.js +0 -66
  59. package/esm2015/lib/components/profile/profile.component.js +0 -29
  60. package/esm2015/lib/material.module.js +0 -33
  61. package/esm2015/lib/model/log-levels.model.js +0 -17
  62. package/esm2015/lib/model/menu-data.model.js +0 -1
  63. package/esm2015/lib/model/translation-resource.js +0 -14
  64. package/esm2015/lib/model/user-model.js +0 -1
  65. package/esm2015/lib/pipes/app-config-pipe.js +0 -21
  66. package/esm2015/lib/pipes/time-ago-pipe.js +0 -46
  67. package/esm2015/lib/pipes/user-fullname-pipe.js +0 -27
  68. package/esm2015/lib/pipes/user-initials-pipe.js +0 -27
  69. package/esm2015/lib/services/app.config.service.js +0 -45
  70. package/esm2015/lib/services/local-storage.service.js +0 -19
  71. package/esm2015/lib/services/locale.service.js +0 -93
  72. package/esm2015/lib/services/log.service.js +0 -93
  73. package/esm2015/lib/services/user-profile.service.js +0 -43
  74. package/esm2015/lib/utils/object-utils.js +0 -46
  75. package/esm2015/muraai-mnl-commons.js +0 -6
  76. package/esm2015/public-api.js +0 -22
  77. package/esm5/lib/commons.module.js +0 -92
  78. package/esm5/lib/components/header/header.component.js +0 -27
  79. package/esm5/lib/components/highlighter/highlighter.component.js +0 -28
  80. package/esm5/lib/components/language-menu/language-menu.component.js +0 -30
  81. package/esm5/lib/components/login/login.component.js +0 -59
  82. package/esm5/lib/components/menu/menu.component.js +0 -78
  83. package/esm5/lib/components/profile/profile.component.js +0 -30
  84. package/esm5/lib/material.module.js +0 -36
  85. package/esm5/lib/model/log-levels.model.js +0 -24
  86. package/esm5/lib/model/menu-data.model.js +0 -1
  87. package/esm5/lib/model/translation-resource.js +0 -14
  88. package/esm5/lib/model/user-model.js +0 -1
  89. package/esm5/lib/pipes/app-config-pipe.js +0 -22
  90. package/esm5/lib/pipes/time-ago-pipe.js +0 -48
  91. package/esm5/lib/pipes/user-fullname-pipe.js +0 -30
  92. package/esm5/lib/pipes/user-initials-pipe.js +0 -30
  93. package/esm5/lib/services/app.config.service.js +0 -57
  94. package/esm5/lib/services/local-storage.service.js +0 -22
  95. package/esm5/lib/services/locale.service.js +0 -96
  96. package/esm5/lib/services/log.service.js +0 -130
  97. package/esm5/lib/services/user-profile.service.js +0 -45
  98. package/esm5/lib/utils/object-utils.js +0 -54
  99. package/esm5/muraai-mnl-commons.js +0 -6
  100. package/esm5/public-api.js +0 -22
  101. package/fesm2015/muraai-mnl-commons.js +0 -762
  102. package/fesm2015/muraai-mnl-commons.js.map +0 -1
  103. package/fesm5/muraai-mnl-commons.js +0 -863
  104. package/fesm5/muraai-mnl-commons.js.map +0 -1
  105. package/muraai-mnl-commons.d.ts +0 -5
  106. package/muraai-mnl-commons.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"muraai-mnl-commons.js","sources":["ng://@muraai/mnl-commons/lib/material.module.ts","ng://@muraai/mnl-commons/lib/components/header/header.component.ts","ng://@muraai/mnl-commons/lib/components/menu/menu.component.ts","ng://@muraai/mnl-commons/lib/utils/object-utils.ts","ng://@muraai/mnl-commons/lib/services/app.config.service.ts","ng://@muraai/mnl-commons/lib/pipes/app-config-pipe.ts","ng://@muraai/mnl-commons/lib/model/log-levels.model.ts","ng://@muraai/mnl-commons/lib/services/log.service.ts","ng://@muraai/mnl-commons/lib/services/local-storage.service.ts","ng://@muraai/mnl-commons/lib/services/user-profile.service.ts","ng://@muraai/mnl-commons/lib/services/locale.service.ts","ng://@muraai/mnl-commons/lib/components/language-menu/language-menu.component.ts","ng://@muraai/mnl-commons/lib/components/login/login.component.ts","ng://@muraai/mnl-commons/lib/components/profile/profile.component.ts","ng://@muraai/mnl-commons/lib/pipes/user-initials-pipe.ts","ng://@muraai/mnl-commons/lib/pipes/time-ago-pipe.ts","ng://@muraai/mnl-commons/lib/pipes/user-fullname-pipe.ts","ng://@muraai/mnl-commons/lib/components/highlighter/highlighter.component.ts","ng://@muraai/mnl-commons/lib/model/translation-resource.ts","ng://@muraai/mnl-commons/lib/commons.module.ts","ng://@muraai/mnl-commons/public-api.ts","ng://@muraai/mnl-commons/muraai-mnl-commons.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatMenuModule } from '@angular/material/menu';\nexport function modules() {\n return [\n MatButtonModule,\n MatCardModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n FormsModule,\n ReactiveFormsModule,\n MatMenuModule,\n ];\n}\n@NgModule({\n imports: modules(),\n exports: modules()\n})\nexport class MaterialModule {}\n","import { Component, Input, ViewEncapsulation, Output, EventEmitter, } from '@angular/core';\n\n@Component({\n selector: 'mnl-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class HeaderComponent {\n\n @Input()\n header: any;\n\n @Output()\n menuButonClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n menuClick(event) {\n this.menuButonClickEvent.emit(event);\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { MenuModel } from '../../model/menu-data.model';\n\n@Component({\n selector: 'mnl-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class MenuComponent {\n @Input()\n menuData: Array<MenuModel>;\n\n @Output()\n menuClick: EventEmitter<any> = new EventEmitter<any>();\n\n onMenuClick(menu: MenuModel) {\n if (this.hasSubMenu(menu)) {\n this.openMenu(menu);\n this.onSubMenuClick(menu.subMenus[0], menu);\n } else {\n this.deSelectMenus(this.menuData);\n this.selectMenu(menu);\n this.menuClick.emit(menu);\n }\n }\n\n onSubMenuClick(subMenu: MenuModel, menu: MenuModel) {\n this.deSelectMenus(this.menuData);\n this.selectMenu(menu);\n this.selectMenu(subMenu);\n this.menuClick.emit(subMenu);\n }\n\n deSelectMenus(menus: MenuModel[]) {\n if (menus) {\n for (const menu of menus) {\n if (menu.selected) {\n menu.selected = false;\n }\n this.deSelectMenus(menu.subMenus);\n }\n }\n }\n\n private selectMenu(menu: MenuModel) {\n if (menu) {\n menu.selected = true;\n }\n }\n\n private hasSubMenu(menu: MenuModel) {\n return menu.subMenus && menu.subMenus.length > 0;\n }\n\n toggleMenu(menu: MenuModel, event: Event) {\n menu.expanded = !menu.expanded;\n\n if (event) {\n event.stopPropagation();\n }\n }\n\n private openMenu(menu: MenuModel) {\n menu.expanded = true;\n }\n}\n","export class ObjectUtils {\n /**\n * Gets a value from an object by composed key\n * ObjectUtils.getValue({ item: { nodeType: 'cm:folder' }}, 'item.nodeType') ==> 'cm:folder'\n */\n static getValue(target: any, key: string): any {\n\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (value !== undefined && (typeof value === 'object' || !keys.length)) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n }\n\n static merge(...objects): any {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n if (prop in result && Array.isArray(result[prop])) {\n result[prop] = result[prop].concat(source[prop]);\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = ObjectUtils.merge(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n });\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ObjectUtils } from '../utils/object-utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppConfigService {\n private config: object = null;\n\n constructor(private http: HttpClient) {}\n\n /**\n * Use to get the data found in the file (config file)\n */\n public get<T>(key: string, defaultValue?: any): T {\n const result: any = ObjectUtils.getValue(this.config, key);\n return (result === undefined ? defaultValue : result) as T;\n }\n\n /**\n * This method:\n * Loads \"config.json\" to get all variables (e.g.: 'app.config.json')\n */\n load(): Promise<any> {\n return new Promise(async (resolve) => {\n const configUrl = `assets/app.config.json`;\n await this.http.get(configUrl).subscribe(\n (data: any) => {\n this.config = Object.assign({}, this.config, data || {});\n resolve(this.config);\n },\n () => {\n resolve(this.config);\n }\n );\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AppConfigService } from '../services/app.config.service';\n\n@Pipe({\n name: 'mnlAppConfig'\n})\nexport class AppConfigPipe implements PipeTransform {\n constructor(private config: AppConfigService) {}\n\n transform(value: string, defaultValue?: any): any {\n return this.config.get(value) || defaultValue || '';\n }\n}\n","export class LogLevelsEnum extends Number {\n static TRACE = 5;\n static DEBUG = 1;\n static INFO = 2;\n static WARN = 3;\n static ERROR = 4;\n static SILENT = 0;\n}\n\nexport let logLevels: any[] = [\n {level: LogLevelsEnum.TRACE, name: 'TRACE'},\n {level: LogLevelsEnum.DEBUG, name: 'DEBUG'},\n {level: LogLevelsEnum.INFO, name: 'INFO'},\n {level: LogLevelsEnum.WARN, name: 'WARN'},\n {level: LogLevelsEnum.ERROR, name: 'ERROR'},\n {level: LogLevelsEnum.SILENT, name: 'SILENT'}\n];\n","import { Injectable } from '@angular/core';\nimport { AppConfigService } from './app.config.service';\nimport { logLevels, LogLevelsEnum } from '../model/log-levels.model';\nimport { Subject } from 'rxjs';\n// tslint:disable: no-console\n@Injectable({\n providedIn: 'root'\n})\nexport class LogService {\n\n onMessage: Subject<any>;\n constructor(private appConfigService: AppConfigService) {\n this.onMessage = new Subject();\n }\n get currentLogLevel() {\n const configLevel: string = this.appConfigService.get('logLevel');\n\n if (configLevel) {\n return this.getLogLevel(configLevel);\n }\n\n return LogLevelsEnum.ERROR;\n }\n\n error(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.ERROR) {\n\n this.messageBus(message, 'ERROR');\n\n console.error(message, ...optionalParams);\n }\n }\n\n debug(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.DEBUG) {\n\n this.messageBus(message, 'DEBUG');\n\n console.debug(message, ...optionalParams);\n }\n }\n\n info(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.INFO) {\n\n this.messageBus(message, 'INFO');\n\n console.info(message, ...optionalParams);\n }\n }\n\n log(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.TRACE) {\n\n this.messageBus(message, 'LOG');\n\n console.log(message, ...optionalParams);\n }\n }\n\n trace(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.TRACE) {\n\n this.messageBus(message, 'TRACE');\n\n console.trace(message, ...optionalParams);\n }\n }\n\n warn(message?: any, ...optionalParams: any[]) {\n if (this.currentLogLevel >= LogLevelsEnum.WARN) {\n\n this.messageBus(message, 'WARN');\n\n console.warn(message, ...optionalParams);\n }\n }\n\n assert(test?: boolean, message?: string, ...optionalParams: any[]) {\n if (this.currentLogLevel !== LogLevelsEnum.SILENT) {\n\n this.messageBus(message, 'ASSERT');\n\n console.assert(test, message, ...optionalParams);\n }\n }\n\n group(groupTitle?: string, ...optionalParams: any[]) {\n if (this.currentLogLevel !== LogLevelsEnum.SILENT) {\n console.group(groupTitle, ...optionalParams);\n }\n }\n\n groupEnd() {\n if (this.currentLogLevel !== LogLevelsEnum.SILENT) {\n console.groupEnd();\n }\n }\n getLogLevel(level: string): LogLevelsEnum {\n const referencedLevel = logLevels.find((currentLevel: any) => {\n return currentLevel.name.toLocaleLowerCase() === level.toLocaleLowerCase();\n });\n\n return referencedLevel ? referencedLevel.level : 4;\n }\n\n messageBus(message: string, logLevel: string) {\n this.onMessage.next({ text: message, type: logLevel });\n }\n}\n","import { Injectable } from '@angular/core';\n@Injectable({\n providedIn: 'root'\n })\nexport class LocalStorageService {\n set(key, value) {\n localStorage.setItem(key, value);\n }\n get(key): string {\n return localStorage.getItem(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {AppConfigService} from './app.config.service';\nimport {LocalStorageService} from './local-storage.service';\n@Injectable({\n providedIn: 'root'\n })\nexport class UserProfileService {\n static LOCALE_PREFIX = '____locale';\n userPrefix = '';\n constructor(private appConfigService: AppConfigService, private localStorageService: LocalStorageService) {}\n getApplicationId(): string {\n return this.appConfigService.get('applicationId') ? this.appConfigService.get('applicationId') : '';\n }\n setUserPrefix(userPrefix) {\n this.userPrefix = userPrefix;\n }\n getUserPrefix(): string {\n return this.userPrefix ? this.userPrefix : '';\n }\n setLocale(locale) {\n this.localStorageService.set( this.getApplicationId() + this.userPrefix + UserProfileService.LOCALE_PREFIX , locale);\n }\n getLocale(): string {\n return this.localStorageService.get(this.getApplicationId() + this.userPrefix + UserProfileService.LOCALE_PREFIX);\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { AppConfigService } from './app.config.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserProfileService } from './user-profile.service';\nimport { DOCUMENT } from '@angular/common';\nimport { Direction } from '@angular/cdk/bidi';\n\n/** @dynamic */\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleService {\n locale: string;\n languages: Array<LanguageItem> = [];\n constructor(\n private config: AppConfigService,\n private translate: TranslateService,\n private userProfileService: UserProfileService,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n setTextOrientation(direction) {\n document.body.setAttribute('dir', direction);\n }\n\n getTextOrientation(): string {\n return document.body.getAttribute('dir');\n }\n\n getLanguages(): Array<LanguageItem> {\n this.languages = this.config.get('languages');\n if (!this.languages) {\n this.languages = [\n {\n key: 'fr',\n label: 'French',\n direction: 'ltr',\n },\n {\n key: 'de',\n label: 'German',\n direction: 'ltr',\n },\n {\n key: 'en',\n label: 'English',\n direction: 'ltr',\n },\n {\n key: 'ar',\n label: 'Arabic',\n direction: 'rtl',\n },\n ];\n }\n return this.languages;\n }\n getDefaultLocale(): LanguageItem {\n this.locale = this.userProfileService.getLocale();\n if (!this.locale) {\n this.locale = this.config.get('locale')\n ? this.config.get('locale')\n : this.translate.getBrowserLang()\n ? this.translate.getBrowserLang()\n : 'en';\n }\n return this.languages.find((e) => e.key === this.locale);\n }\n\n getActiveLocale(): LanguageItem {\n if (this.userProfileService.getLocale()) {\n return this.languages.find(\n (e) => e.key === this.userProfileService.getLocale()\n );\n }\n }\n\n setActiveLocale(locale: LanguageItem) {\n if (locale) {\n this.translate.use(locale.key);\n this.setTextOrientation(locale.direction);\n this.userProfileService.setLocale(locale.key);\n }\n }\n}\nexport interface LanguageItem {\n key: string;\n label: string;\n direction?: Direction;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { LocaleService, LanguageItem } from '../../services/locale.service';\n\n@Component({\n selector: 'mnl-language-menu',\n templateUrl: './language-menu.component.html',\n styleUrls: ['./language-menu.component.scss']\n})\nexport class LanguageMenuComponent implements OnInit {\n languages: Array<LanguageItem> = [];\n locale: LanguageItem;\n constructor(private localeService: LocaleService) { }\n\n ngOnInit() {\n this.languages = this.localeService.getLanguages();\n this.locale = this.localeService.getDefaultLocale();\n this.localeService.setActiveLocale(this.locale);\n}\n\n onChangeLanguage(language: LanguageItem) {\n this.localeService.setActiveLocale(language);\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { UserModel } from '../../model/user-model';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n@Component({\n selector: 'mnl-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n\n formGroup: FormGroup;\n\n @Input()\n title = '';\n\n @Input()\n logoImageUrl = './assets/images/logo.png';\n\n @Input()\n backgroundImageUrl = './assets/images/background.jpg';\n\n @Input()\n disabled = false;\n\n @Output()\n login = new EventEmitter<UserModel>();\n\n constructor(private sanitizer: DomSanitizer) {\n\n }\n ngOnInit() {\n this.initForm();\n }\n\n private initForm() {\n this.formGroup = new FormGroup({\n username: new FormControl('', [Validators.required]),\n password: new FormControl('', [Validators.required])\n });\n }\n onSubmit() {\n if (this.formGroup.valid) {\n this.login .emit(this.formGroup.value);\n }\n }\n getBackgroundImageUrl(): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(`url(${this.backgroundImageUrl})`);\n}\n\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { UserModel } from '../../model/user-model';\n\n@Component({\n selector: 'mnl-user-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css'],\n})\nexport class ProfileComponent {\n @Input()\n userProfileDetails: UserModel;\n\n @Output()\n userInitialClick: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n profileMenuClick: EventEmitter<any> = new EventEmitter<any>();\n\n onUserInitialClick(event: any) {\n this.userInitialClick.emit(event);\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { UserModel } from '../model/user-model';\n\n@Pipe({\n name: 'mnlUserInitialPipe'\n})\nexport class UserInitialPipe implements PipeTransform {\n\n transform(value: UserModel) {\n let userInitials = '';\n if (value.firstName && value.lastName) {\n userInitials = value.firstName.substring(0, 1).toUpperCase() + value.lastName.substring(0, 1).toUpperCase();\n } else if (!value.firstName && value.lastName) {\n userInitials = value.lastName.substring(0, 1).toUpperCase();\n } else if (value.firstName && !value.lastName) {\n userInitials = value.firstName.substring(0, 1).toUpperCase();\n } else if (!value.firstName && !value.lastName) {\n userInitials = value.email.substring(0, 1).toUpperCase();\n }\n return userInitials;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport * as moment from 'moment';\nimport { UserProfileService } from '../services/user-profile.service';\nimport { AppConfigService } from '../services/app.config.service';\n\n@Pipe({\n name: 'mnlTimeAgo'\n})\nexport class TimeAgoPipe implements PipeTransform {\n\n static DEFAULT_LOCALE = 'en-US';\n static DEFAULT_DATE_TIME_FORMAT = 'dd/MM/yyyy HH:mm';\n\n defaultLocale: string;\n defaultDateTimeFormat: string;\n\n constructor(private appConfigService: AppConfigService, private userProfileService: UserProfileService) {\n this.defaultLocale = TimeAgoPipe.DEFAULT_LOCALE;\n this.defaultDateTimeFormat = TimeAgoPipe.DEFAULT_DATE_TIME_FORMAT;\n }\n\n transform(value: Date, dateTimeFormat?: string, locale?: string) {\n if (value) {\n const currentLocale = this.userProfileService.getLocale();\n const currentDateTimeFormat = this.appConfigService.get('dateTimeFormat') as string;\n const requiredLocale = locale || currentLocale || this.defaultLocale;\n const requiredDateTimeFormat = dateTimeFormat || currentDateTimeFormat || this.defaultDateTimeFormat;\n const then = moment(value);\n const diff = moment().locale(requiredLocale).diff(then, 'days');\n if (diff > 7) {\n const datePipe: DatePipe = new DatePipe(requiredLocale);\n return datePipe.transform(value, requiredDateTimeFormat);\n } else {\n return then.locale(requiredLocale).fromNow();\n }\n }\n return '';\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { UserModel } from '../model/user-model';\n\n@Pipe({\n name: 'mnlUserFullName'\n})\nexport class UserFullnamePipe implements PipeTransform {\n\n transform(value: UserModel): any {\n let fullName = '';\n if (value.firstName && value.lastName) {\n fullName = value.firstName + ' ' + value.lastName;\n } else if (!value.firstName && value.lastName) {\n fullName = value.lastName;\n } else if (value.firstName && !value.lastName) {\n fullName = value.firstName;\n } else if (!value.firstName && !value.lastName) {\n fullName = value.email;\n }\n return fullName;\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mnl-highlighter',\n templateUrl: './highlighter.component.html',\n styleUrls: ['./highlighter.component.scss'],\n})\nexport class HighlighterComponent {\n @Input()\n height = '40px';\n\n @Input()\n width = '4px';\n\n @Input()\n enabled = true;\n}\n","import {\n ITranslationResource,\n MultiTranslateHttpLoader,\n} from 'ngx-translate-multi-http-loader';\nimport { InjectionToken } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nexport const MNL_TRANSLATION_RESOURCE = new InjectionToken<ITranslationResource>('Translation Resource');\n\nexport function translationLoaderFactory(http: HttpClient, resources: ITranslationResource[]) {\n if (!resources) {\n resources = [];\n } else if (!resources.length) {\n resources = [resources as any];\n }\n\n resources.push({ prefix: './assets/mnl-commons/i18n/', suffix: '.json' });\n\n return new MultiTranslateHttpLoader(http, resources);\n}\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { HeaderComponent } from './components/header/header.component';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MenuComponent } from './components/menu/menu.component';\nimport { AppConfigService } from './services/app.config.service';\nimport { AppConfigPipe } from './pipes/app-config-pipe';\nimport { LogService } from './services/log.service';\nimport { LocalStorageService } from './services/local-storage.service';\nimport { LanguageMenuComponent } from './components/language-menu/language-menu.component';\nimport { TranslateModule, TranslateService, TranslateLoader } from '@ngx-translate/core';\nimport { UserProfileService } from './services/user-profile.service';\nimport { LocaleService } from './services/locale.service';\nimport { LoginComponent } from './components/login/login.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { UserInitialPipe } from './pipes/user-initials-pipe';\nimport { TimeAgoPipe } from './pipes/time-ago-pipe';\nimport { MaterialModule } from './material.module';\nimport { UserFullnamePipe } from './pipes/user-fullname-pipe';\nimport { HighlighterComponent } from './components/highlighter/highlighter.component';\nimport { HttpClient } from '@angular/common/http';\nimport { translationLoaderFactory, MNL_TRANSLATION_RESOURCE } from './model/translation-resource';\n@NgModule({\n declarations: [\n HeaderComponent,\n MenuComponent,\n HighlighterComponent,\n AppConfigPipe,\n LoginComponent,\n LanguageMenuComponent,\n ProfileComponent,\n UserInitialPipe,\n TimeAgoPipe,\n UserFullnamePipe,\n ],\n imports: [\n CommonModule,\n MatToolbarModule,\n FlexLayoutModule,\n MaterialModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: translationLoaderFactory,\n deps: [HttpClient, MNL_TRANSLATION_RESOURCE],\n },\n })\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: loadConfig,\n deps: [\n AppConfigService,\n UserProfileService,\n LocalStorageService,\n LogService,\n LocaleService,\n ],\n multi: true,\n },\n ],\n exports: [\n HeaderComponent,\n MenuComponent,\n HighlighterComponent,\n AppConfigPipe,\n LanguageMenuComponent,\n LoginComponent,\n ProfileComponent,\n UserInitialPipe,\n TimeAgoPipe,\n UserFullnamePipe\n ],\n})\nexport class CommonsModule {}\n\nexport function loadConfig(config: AppConfigService) {\n const conf = () => config.load();\n return conf;\n}\n","/*\n * Public API Surface of mnl-commons\n */\nexport * from './lib/material.module';\nexport * from './lib/commons.module';\nexport * from './lib/components/menu/menu.component';\nexport * from './lib/components/header/header.component';\nexport * from './lib/services/app.config.service';\nexport * from './lib/pipes/app-config-pipe';\nexport * from './lib/services/log.service';\nexport * from './lib/model/log-levels.model';\nexport * from './lib/services/user-profile.service';\nexport * from './lib/services/local-storage.service';\nexport * from './lib/components/language-menu/language-menu.component';\nexport * from './lib/services/locale.service';\nexport * from './lib/components/login/login.component';\nexport * from './lib/model/user-model';\nexport * from './lib/pipes/user-initials-pipe';\nexport * from './lib/pipes/time-ago-pipe';\nexport * from './lib/pipes/user-fullname-pipe';\nexport * from './lib/model/menu-data.model';\nexport * from './lib/components/highlighter/highlighter.component';\nexport * from './lib/model/translation-resource';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ProfileComponent as ɵa} from './lib/components/profile/profile.component';"],"names":[],"mappings":"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"}