@dflat-core/web 1.0.0-beta → 1.0.1

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 (78) hide show
  1. package/README.md +54 -4
  2. package/assets/images/DFlat Finder 1000.png +0 -0
  3. package/assets/images/DFlat Finder 400.png +0 -0
  4. package/assets/images/DFlat Finder 600.png +0 -0
  5. package/assets/images/DFlat Finder Grand.png +0 -0
  6. package/assets/images/DFlatNew.png +0 -0
  7. package/assets/images/LogoDFlat.svg +1 -0
  8. package/assets/images/blue-camera.svg +2 -0
  9. package/assets/images/camera.svg +1 -0
  10. package/assets/images/checkout/amex.svg +14 -0
  11. package/assets/images/checkout/default.svg +1 -0
  12. package/assets/images/checkout/diners.svg +15 -0
  13. package/assets/images/checkout/maestro.svg +29 -0
  14. package/assets/images/checkout/mastercard.svg +31 -0
  15. package/assets/images/checkout/security.svg +8 -0
  16. package/assets/images/checkout/visa.svg +17 -0
  17. package/assets/images/heart-regular.svg +6 -0
  18. package/assets/images/heart-solid.svg +6 -0
  19. package/assets/images/image-spinner.gif +0 -0
  20. package/assets/images/map/blue/client.png +0 -0
  21. package/assets/images/map/blue/client.svg +1 -0
  22. package/assets/images/map/blue/deliveryman.png +0 -0
  23. package/assets/images/map/blue/deliveryman.svg +1 -0
  24. package/assets/images/map/blue/kezako.png +0 -0
  25. package/assets/images/map/blue/kezako.svg +1 -0
  26. package/assets/images/map/blue/store.png +0 -0
  27. package/assets/images/map/blue/store.svg +1 -0
  28. package/assets/images/map/main/client.png +0 -0
  29. package/assets/images/map/main/client.svg +1 -0
  30. package/assets/images/map/main/deliveryman.png +0 -0
  31. package/assets/images/map/main/deliveryman.svg +1 -0
  32. package/assets/images/map/main/kezako.png +0 -0
  33. package/assets/images/map/main/kezako.svg +1 -0
  34. package/assets/images/map/main/store.png +0 -0
  35. package/assets/images/map/main/store.svg +1 -0
  36. package/assets/images/map/primary/client.png +0 -0
  37. package/assets/images/map/primary/client.svg +1 -0
  38. package/assets/images/map/primary/deliveryman.png +0 -0
  39. package/assets/images/map/primary/deliveryman.svg +1 -0
  40. package/assets/images/map/primary/kezako.png +0 -0
  41. package/assets/images/map/primary/kezako.svg +1 -0
  42. package/assets/images/map/primary/store.png +0 -0
  43. package/assets/images/map/primary/store.svg +1 -0
  44. package/assets/images/paginator/first.svg +9 -0
  45. package/assets/images/paginator/last.svg +9 -0
  46. package/assets/images/paginator/next.svg +9 -0
  47. package/assets/images/paginator/previous.svg +9 -0
  48. package/assets/images/qlik.jpg +0 -0
  49. package/assets/images/qlik.png +0 -0
  50. package/assets/images/spinner.gif +0 -0
  51. package/assets/images/timeline-solid.svg +1 -0
  52. package/core/lib/global/EnvironmentBase.d.ts +15 -0
  53. package/fesm2022/dflat-core-web-core-services.mjs +3 -3
  54. package/fesm2022/dflat-core-web-core-services.mjs.map +1 -1
  55. package/fesm2022/dflat-core-web-core-ux.mjs +4 -4
  56. package/fesm2022/dflat-core-web-core-ux.mjs.map +1 -1
  57. package/fesm2022/dflat-core-web-core.mjs.map +1 -1
  58. package/fesm2022/dflat-core-web-system-ux.mjs +1034 -202
  59. package/fesm2022/dflat-core-web-system-ux.mjs.map +1 -1
  60. package/package.json +17 -13
  61. package/scss/dflat-app.scss +83 -0
  62. package/system-ux/index.d.ts +13 -0
  63. package/system-ux/lib/app/access-denied/access-denied.component.d.ts +9 -0
  64. package/system-ux/lib/app/dflat-app.module.d.ts +49 -0
  65. package/system-ux/lib/app/history/history.component.d.ts +16 -0
  66. package/system-ux/lib/app/homepage/homepage.component.d.ts +19 -0
  67. package/system-ux/lib/app/layout/dflat-layout.component.d.ts +38 -0
  68. package/system-ux/lib/app/search/search-result/search-result.component.d.ts +42 -0
  69. package/system-ux/lib/app/search/search.component.d.ts +68 -0
  70. package/system-ux/lib/app/services/dflat-app.service.d.ts +19 -0
  71. package/system-ux/lib/app/services/dflat-auth.interceptor.d.ts +16 -0
  72. package/system-ux/lib/app/services/dflat-permission.service.d.ts +7 -0
  73. package/system-ux/lib/app/spinner/dflat-spinner.component.d.ts +11 -0
  74. package/system-ux/lib/app/user-menu/user-menu.component.d.ts +56 -0
  75. package/system-ux/lib/app/user-profile/user-profile.component.d.ts +35 -0
  76. package/system-ux/lib/reset-password/reset-password.component.d.ts +1 -1
  77. package/system-ux/lib/system-ux.module.d.ts +92 -82
  78. package/assets/images/LogoMarsow.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dflat-core-web-core.mjs","sources":["../../core/src/lib/services/ensuremoduleloadedonceguard.ts","../../core/src/lib/core.module.ts","../../core/src/lib/services/utilities.service.ts","../../core/src/lib/nameof.function.ts","../../core/src/lib/array.function.ts","../../core/src/lib/global/EnvironmentBase.ts","../../core/src/dflat-core-web-core.ts"],"sourcesContent":["export class EnsureModuleLoadedOnceGuard {\r\n\r\n constructor(targetModule: any) {\r\n if (targetModule) {\r\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\r\n }\r\n }\r\n\r\n}","// IMPORTANT : DANS LE BUT DE FACILITER LES MERGE ET LA LECTURE DU CODE.\r\n\r\n// 1. TOUJOURS CONSERVER LE TRI SUR LES IMPORTS\r\n// UTILISER L'EXTENSION \"TypeScript Import Sorter\" DANS VSCODE.\r\n// CONFIGURER L'EXTENSION POUR ACTIVER LA MISE EN FORME AUTOMATIQUE A LA SAUVEGARDE \r\n\r\n// 2. UTILISER CTRL-SHIFT O POUR SUPPRIMER AUTOMATIQUEMENT LES IMPORTS INUTILES\r\n\r\n// 3. TRIER LES COMPOSANTS OU DEPENDANCES DANS LES DECLARATIONS (IMPORTS, EXPORTS)\r\n// SELECTION DU TEXTE PUIS CTRL-SHIFT P, \"Sort Lines Ascending\"\r\n// ON PEUT PARAMETRER DES RACCOURCIS CLAVIER DANS VSCODE\r\n// PAR EXEMPLE : CTRL-T UP (TRI CROISSANT) ou CTRL-T DOWN (TRI DECDROISSANT)\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { EnsureModuleLoadedOnceGuard } from './services/ensuremoduleloadedonceguard';\r\n\r\n@NgModule({ exports: [],\r\n declarations: [], imports: [CommonModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\n// Ensure that CoreModule is only loaded into AppModule\r\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\r\n\r\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\r\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\r\n super(parentModule);\r\n }\r\n}\r\n\r\n","import moment from 'moment';\r\n\r\nimport { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport const isArray = Array.isArray || ((x) => x && typeof x.length === 'number');\r\nexport function isNumeric(val) {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n // adding 1 corrects loss of precision from parseFloat (#15100)\r\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\r\n}\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n static delay(arg0: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse<any> | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static isNonEmptyString(str: string) {\r\n return str && str.length > 0;\r\n }\r\n\r\n public static isEmptyString(str: string) {\r\n return Utilities.IsNil(str) || str.length === 0;\r\n }\r\n\r\n public static areValuesEqual (a: any, b: any) : boolean {\r\n if (a === b) return true;\r\n\r\n if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n if (a?.valueOf && b?.valueOf) {\r\n return a.valueOf() === b.valueOf();\r\n }\r\n if (typeof a !== 'object' && typeof b !== 'object') {\r\n return a === b;\r\n }\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static IsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n }\r\n\r\n public static IsNil(value: any): boolean {\r\n return (value == null) || value === undefined || typeof value === 'undefined';\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date):Date {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(<any>date);\r\n }\r\n }\r\n }\r\n\r\n\r\n public static Format2Digits(n) {\r\n return n > 9 ? \"\" + n : \"0\" + n;\r\n }\r\n\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static isDateAEarlierThanDateB(dateA: Date, dateB: Date)\r\n {\r\n return dateA.getFullYear() < dateB.getFullYear()\r\n ||(dateA.getFullYear() == dateB.getFullYear() && dateA.getMonth() < dateB.getMonth())\r\n ||(dateA.getMonth() == dateB.getMonth() && dateA.getDate() < dateB.getDate())\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n\r\n public static isNumber(field: any) {\r\n return (typeof field === 'number' || field instanceof Number);\r\n }\r\n\r\n public static changeName(item: any): string {\r\n if (item)\r\n return item.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g, '');\r\n return item;\r\n }\r\n\r\n public static transform<T>(value: T, args: any[] = null): { key: keyof T, value: any }[] {\r\n return Object.keys(value).map(k => {\r\n return { key: k as keyof T, value: value[k] }\r\n });\r\n }\r\n\r\n public static GetChannel(entityTypeKey: string) {\r\n\r\n\r\n if ( this.IsNil(entityTypeKey))\r\n return entityTypeKey;\r\n\r\n let k: string = entityTypeKey.toLowerCase();\r\n\r\n switch (k) {\r\n case \"shipment\":\r\n return \"SHP\";\r\n case \"dataimport\":\r\n return \"INP\";\r\n case \"request\":\r\n return \"RQT\";\r\n case \"synchronizedcompany\":\r\n return \"CPY\";\r\n case \"sellingorder\":\r\n return \"ORD\";\r\n case \"purchaseorder\":\r\n return \"ORD\";\r\n default:\r\n return entityTypeKey;\r\n }\r\n }\r\n\r\n public static getProp<T, K extends keyof T>(object: T, property: K): T[K] {\r\n return object[property];\r\n }\r\n\r\n /**\r\n * static getCustomDvalue: stringate\r\n */\r\n public static getCustomDate(value: string) : Date {\r\n\r\n let m : moment.Moment;\r\n if (value.split(\"/\").length > 1)\r\n m = moment.utc(value, \"DD/MM/YYYY\");\r\n else\r\n m = moment.utc(value);\r\n\r\n let date = new Date(m.year(), m.month(), m.date());\r\n return isNaN(date.valueOf()) ? null : date;\r\n }\r\n\r\n public static isLowerThan(value1:string|Date,value2:string|Date): boolean{\r\n let d1,d2: Date;\r\n\r\n if(typeof value1 === 'string')\r\n d1= this.getCustomDate(value1)\r\n else\r\n d1 = value1;\r\n\r\n if(typeof value2 === 'string')\r\n d2= this.getCustomDate(value2)\r\n else d2 = value2;\r\n\r\n return d1 < d2;\r\n }\r\n\r\n public static getLogClass(log: string) {\r\n let regexInfo = /INFO/g;\r\n let regexData = /DATA/g;\r\n let regexError = /ERROR/g;\r\n let regexWarn = /WARNING/g;\r\n\r\n if (regexInfo.test(log)) {\r\n return \"log-info\";\r\n }\r\n\r\n if (regexData.test(log)) {\r\n return \"log-data\";\r\n }\r\n\r\n if (regexError.test(log)) {\r\n return \"log-error\";\r\n }\r\n\r\n if (regexWarn.test(log)) {\r\n return \"log-warning\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n public static deepCopy(obj) {\r\n var copy;\r\n\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = Utilities.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = Utilities.deepCopy(obj[attr]);\r\n }\r\n return copy;\r\n }\r\n\r\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\r\n }\r\n\r\n public static getCleanNumber(initial:string) : number {\r\n\r\n // Si la chaine est vide, on renvoie 0\r\n let value: string = initial.replace(',', '.');\r\n\r\n if( ! isNumeric(value) ) {\r\n // On supprime tous les caractères qui ne sont pas des chiffres.\r\n value = '';\r\n let hasSeparator: boolean = false;\r\n for (var i = 0; i < initial.length; i++) {\r\n let ch= initial[i];\r\n if ( isNumeric(ch) ) {\r\n value = value + ch;\r\n }\r\n else if (! hasSeparator && (ch == '.' || ch == ',')) {\r\n value = value + ch;\r\n hasSeparator = true;\r\n }\r\n }\r\n\r\n value = value.replace(',', '.');\r\n if ( ! isNumeric(value) )\r\n return 0;\r\n }\r\n\r\n let n = Number.parseFloat(value);\r\n return n;\r\n }\r\n\r\n public static addDays(date : Date, days : number) : Date{\r\n var date = new Date(date.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n public static getFormattedParams(params: any): any {\r\n\r\n // Dans le cas d'un tableau, parcours tous les éléments du tableau pour formatter les\r\n let result: any;\r\n\r\n\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number')\r\n return JSON.stringify(params);\r\n\r\n result = [];\r\n params.forEach(entity => {\r\n result.push(this.getFormattedParams(entity));\r\n });\r\n return JSON.stringify(result);\r\n }\r\n result = {};\r\n for (let key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n let val = params[key];\r\n if (val !== undefined && val !== null) {\r\n //Handle the Date javascript object\r\n if (val instanceof Date) {\r\n val = `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n result[key] = val;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n","export type valueOf<T> = T[keyof T];\r\nexport function nameof<T, V extends T[keyof T]>(f: (x: T) => V): valueOf<{ [K in keyof T]: T[K] extends V ? K : never }>;\r\nexport function nameof(f: (x: any) => any): keyof any {\r\n var p = new Proxy({}, {\r\n get: (target, key) => key\r\n })\r\n return f(p);\r\n}","// export function groupBy<TItem>(xs: TItem[], key: string) : {[key: string]: TItem[]}{\r\n// return xs.reduce(function(rv, x) {\r\n// (rv[x[key]] = rv[x[key]] || []).push(x);\r\n// return rv;\r\n// }, {});\r\n// };\r\n\r\n\r\n export function groupBy<TItem>(xs: TItem[], key: Extract<keyof TItem,string>) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n (rv[x[key]as any] = rv[x[key]as any] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function groupByFunc<TItem,TKey>(xs: TItem[], func:((i:TItem)=>string)) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n let k = func(x);\r\n (rv[k] = rv[k] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function sumOf<TItem>(xs:TItem[],func:((i:TItem)=>number)) : number{\r\n return xs.map(func).reduce((a,b)=>a+b);\r\n }\r\n\r\n // https://codereview.stackexchange.com/a/100843\r\n export function distinct(array:(number|string)[]) : (number|string)[]{\r\n return array.reduce(function(carry, item){\r\n if(item && !~carry.indexOf(item))\r\n carry.push(item);\r\n return carry;\r\n }, []);\r\n }\r\n ","export abstract class EnvironmentBase {\r\n abstract readonly production: boolean;\r\n abstract readonly fileUrl: string;\r\n abstract readonly baseUrl: string;\r\n abstract readonly apiUrl: string;\r\n abstract readonly hubUrl: string;\r\n\r\n \r\n\r\n \r\n};\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dflat-core-web-core.mjs","sources":["../../core/src/lib/services/ensuremoduleloadedonceguard.ts","../../core/src/lib/core.module.ts","../../core/src/lib/services/utilities.service.ts","../../core/src/lib/nameof.function.ts","../../core/src/lib/array.function.ts","../../core/src/lib/global/EnvironmentBase.ts","../../core/src/dflat-core-web-core.ts"],"sourcesContent":["export class EnsureModuleLoadedOnceGuard {\r\n\r\n constructor(targetModule: any) {\r\n if (targetModule) {\r\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\r\n }\r\n }\r\n\r\n}","// IMPORTANT : DANS LE BUT DE FACILITER LES MERGE ET LA LECTURE DU CODE.\r\n\r\n// 1. TOUJOURS CONSERVER LE TRI SUR LES IMPORTS\r\n// UTILISER L'EXTENSION \"TypeScript Import Sorter\" DANS VSCODE.\r\n// CONFIGURER L'EXTENSION POUR ACTIVER LA MISE EN FORME AUTOMATIQUE A LA SAUVEGARDE \r\n\r\n// 2. UTILISER CTRL-SHIFT O POUR SUPPRIMER AUTOMATIQUEMENT LES IMPORTS INUTILES\r\n\r\n// 3. TRIER LES COMPOSANTS OU DEPENDANCES DANS LES DECLARATIONS (IMPORTS, EXPORTS)\r\n// SELECTION DU TEXTE PUIS CTRL-SHIFT P, \"Sort Lines Ascending\"\r\n// ON PEUT PARAMETRER DES RACCOURCIS CLAVIER DANS VSCODE\r\n// PAR EXEMPLE : CTRL-T UP (TRI CROISSANT) ou CTRL-T DOWN (TRI DECDROISSANT)\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { EnsureModuleLoadedOnceGuard } from './services/ensuremoduleloadedonceguard';\r\n\r\n@NgModule({ exports: [],\r\n declarations: [], imports: [CommonModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\r\n// Ensure that CoreModule is only loaded into AppModule\r\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\r\n\r\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\r\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\r\n super(parentModule);\r\n }\r\n}\r\n\r\n","import moment from 'moment';\r\n\r\nimport { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport const isArray = Array.isArray || ((x) => x && typeof x.length === 'number');\r\nexport function isNumeric(val) {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n // adding 1 corrects loss of precision from parseFloat (#15100)\r\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\r\n}\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n static delay(arg0: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse<any> | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static isNonEmptyString(str: string) {\r\n return str && str.length > 0;\r\n }\r\n\r\n public static isEmptyString(str: string) {\r\n return Utilities.IsNil(str) || str.length === 0;\r\n }\r\n\r\n public static areValuesEqual (a: any, b: any) : boolean {\r\n if (a === b) return true;\r\n\r\n if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n if (a?.valueOf && b?.valueOf) {\r\n return a.valueOf() === b.valueOf();\r\n }\r\n if (typeof a !== 'object' && typeof b !== 'object') {\r\n return a === b;\r\n }\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static IsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n }\r\n\r\n public static IsNil(value: any): boolean {\r\n return (value == null) || value === undefined || typeof value === 'undefined';\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date):Date {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(<any>date);\r\n }\r\n }\r\n }\r\n\r\n\r\n public static Format2Digits(n) {\r\n return n > 9 ? \"\" + n : \"0\" + n;\r\n }\r\n\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static isDateAEarlierThanDateB(dateA: Date, dateB: Date)\r\n {\r\n return dateA.getFullYear() < dateB.getFullYear()\r\n ||(dateA.getFullYear() == dateB.getFullYear() && dateA.getMonth() < dateB.getMonth())\r\n ||(dateA.getMonth() == dateB.getMonth() && dateA.getDate() < dateB.getDate())\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n\r\n public static isNumber(field: any) {\r\n return (typeof field === 'number' || field instanceof Number);\r\n }\r\n\r\n public static changeName(item: any): string {\r\n if (item)\r\n return item.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g, '');\r\n return item;\r\n }\r\n\r\n public static transform<T>(value: T, args: any[] = null): { key: keyof T, value: any }[] {\r\n return Object.keys(value).map(k => {\r\n return { key: k as keyof T, value: value[k] }\r\n });\r\n }\r\n\r\n public static GetChannel(entityTypeKey: string) {\r\n\r\n\r\n if ( this.IsNil(entityTypeKey))\r\n return entityTypeKey;\r\n\r\n let k: string = entityTypeKey.toLowerCase();\r\n\r\n switch (k) {\r\n case \"shipment\":\r\n return \"SHP\";\r\n case \"dataimport\":\r\n return \"INP\";\r\n case \"request\":\r\n return \"RQT\";\r\n case \"synchronizedcompany\":\r\n return \"CPY\";\r\n case \"sellingorder\":\r\n return \"ORD\";\r\n case \"purchaseorder\":\r\n return \"ORD\";\r\n default:\r\n return entityTypeKey;\r\n }\r\n }\r\n\r\n public static getProp<T, K extends keyof T>(object: T, property: K): T[K] {\r\n return object[property];\r\n }\r\n\r\n /**\r\n * static getCustomDvalue: stringate\r\n */\r\n public static getCustomDate(value: string) : Date {\r\n\r\n let m : moment.Moment;\r\n if (value.split(\"/\").length > 1)\r\n m = moment.utc(value, \"DD/MM/YYYY\");\r\n else\r\n m = moment.utc(value);\r\n\r\n let date = new Date(m.year(), m.month(), m.date());\r\n return isNaN(date.valueOf()) ? null : date;\r\n }\r\n\r\n public static isLowerThan(value1:string|Date,value2:string|Date): boolean{\r\n let d1,d2: Date;\r\n\r\n if(typeof value1 === 'string')\r\n d1= this.getCustomDate(value1)\r\n else\r\n d1 = value1;\r\n\r\n if(typeof value2 === 'string')\r\n d2= this.getCustomDate(value2)\r\n else d2 = value2;\r\n\r\n return d1 < d2;\r\n }\r\n\r\n public static getLogClass(log: string) {\r\n let regexInfo = /INFO/g;\r\n let regexData = /DATA/g;\r\n let regexError = /ERROR/g;\r\n let regexWarn = /WARNING/g;\r\n\r\n if (regexInfo.test(log)) {\r\n return \"log-info\";\r\n }\r\n\r\n if (regexData.test(log)) {\r\n return \"log-data\";\r\n }\r\n\r\n if (regexError.test(log)) {\r\n return \"log-error\";\r\n }\r\n\r\n if (regexWarn.test(log)) {\r\n return \"log-warning\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n public static deepCopy(obj) {\r\n var copy;\r\n\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = Utilities.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = Utilities.deepCopy(obj[attr]);\r\n }\r\n return copy;\r\n }\r\n\r\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\r\n }\r\n\r\n public static getCleanNumber(initial:string) : number {\r\n\r\n // Si la chaine est vide, on renvoie 0\r\n let value: string = initial.replace(',', '.');\r\n\r\n if( ! isNumeric(value) ) {\r\n // On supprime tous les caractères qui ne sont pas des chiffres.\r\n value = '';\r\n let hasSeparator: boolean = false;\r\n for (var i = 0; i < initial.length; i++) {\r\n let ch= initial[i];\r\n if ( isNumeric(ch) ) {\r\n value = value + ch;\r\n }\r\n else if (! hasSeparator && (ch == '.' || ch == ',')) {\r\n value = value + ch;\r\n hasSeparator = true;\r\n }\r\n }\r\n\r\n value = value.replace(',', '.');\r\n if ( ! isNumeric(value) )\r\n return 0;\r\n }\r\n\r\n let n = Number.parseFloat(value);\r\n return n;\r\n }\r\n\r\n public static addDays(date : Date, days : number) : Date{\r\n var date = new Date(date.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n public static getFormattedParams(params: any): any {\r\n\r\n // Dans le cas d'un tableau, parcours tous les éléments du tableau pour formatter les\r\n let result: any;\r\n\r\n\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number')\r\n return JSON.stringify(params);\r\n\r\n result = [];\r\n params.forEach(entity => {\r\n result.push(this.getFormattedParams(entity));\r\n });\r\n return JSON.stringify(result);\r\n }\r\n result = {};\r\n for (let key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n let val = params[key];\r\n if (val !== undefined && val !== null) {\r\n //Handle the Date javascript object\r\n if (val instanceof Date) {\r\n val = `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n result[key] = val;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n","export type valueOf<T> = T[keyof T];\r\nexport function nameof<T, V extends T[keyof T]>(f: (x: T) => V): valueOf<{ [K in keyof T]: T[K] extends V ? K : never }>;\r\nexport function nameof(f: (x: any) => any): keyof any {\r\n var p = new Proxy({}, {\r\n get: (target, key) => key\r\n })\r\n return f(p);\r\n}","// export function groupBy<TItem>(xs: TItem[], key: string) : {[key: string]: TItem[]}{\r\n// return xs.reduce(function(rv, x) {\r\n// (rv[x[key]] = rv[x[key]] || []).push(x);\r\n// return rv;\r\n// }, {});\r\n// };\r\n\r\n\r\n export function groupBy<TItem>(xs: TItem[], key: Extract<keyof TItem,string>) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n (rv[x[key]as any] = rv[x[key]as any] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function groupByFunc<TItem,TKey>(xs: TItem[], func:((i:TItem)=>string)) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n let k = func(x);\r\n (rv[k] = rv[k] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function sumOf<TItem>(xs:TItem[],func:((i:TItem)=>number)) : number{\r\n return xs.map(func).reduce((a,b)=>a+b);\r\n }\r\n\r\n // https://codereview.stackexchange.com/a/100843\r\n export function distinct(array:(number|string)[]) : (number|string)[]{\r\n return array.reduce(function(carry, item){\r\n if(item && !~carry.indexOf(item))\r\n carry.push(item);\r\n return carry;\r\n }, []);\r\n }\r\n ","export abstract class EnvironmentBase {\n abstract readonly production: boolean;\n abstract readonly fileUrl: string;\n abstract readonly baseUrl: string;\n abstract readonly apiUrl: string;\n abstract readonly hubUrl: string;\n\n /**\n * Nom de l'application, affiché dans la barre supérieure et sur la page d'accueil.\n * \"DFlat\" par défaut.\n */\n readonly appName?: string;\n\n /**\n * Logo affiché à côté du nom de l'application.\n * \"assets/images/LogoDFlat.svg\" (fourni par le package) par défaut.\n */\n readonly appLogoUrl?: string;\n\n /**\n * Version affichée sur la page d'accueil, qui renvoie vers la page des nouveautés.\n * Masquée si elle n'est pas renseignée.\n */\n readonly appVersion?: string;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}