@osovitny/anatoly 2.15.11 → 2.16.0

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 (256) hide show
  1. package/esm2022/lib/anatoly.module.mjs +55 -0
  2. package/{esm2020 → esm2022}/lib/core/browser.mjs +23 -23
  3. package/{esm2020 → esm2022}/lib/core/consts/settings.mjs +16 -16
  4. package/{esm2020 → esm2022}/lib/core/consts/urls.mjs +18 -18
  5. package/{esm2020 → esm2022}/lib/core/converts/convert.mjs +104 -104
  6. package/{esm2020 → esm2022}/lib/core/converts/xmlFormatter.mjs +33 -33
  7. package/esm2022/lib/core/core.module.mjs +89 -0
  8. package/{esm2020 → esm2022}/lib/core/dom.mjs +152 -152
  9. package/esm2022/lib/core/go/base-go.service.mjs +50 -0
  10. package/{esm2020 → esm2022}/lib/core/guards/once-import.guard.mjs +20 -20
  11. package/{esm2020 → esm2022}/lib/core/guid.mjs +21 -21
  12. package/{esm2020 → esm2022}/lib/core/index.mjs +50 -50
  13. package/esm2022/lib/core/interceptors/httpInterceptor.mjs +107 -0
  14. package/esm2022/lib/core/localization/localization.module.mjs +44 -0
  15. package/esm2022/lib/core/localization/localization.service.mjs +184 -0
  16. package/esm2022/lib/core/localization/localizationSettings.module.mjs +90 -0
  17. package/esm2022/lib/core/localization/localize.pipe.mjs +76 -0
  18. package/{esm2020 → esm2022}/lib/core/localization/utils.mjs +41 -41
  19. package/esm2022/lib/core/logging/globalErrorHandler.mjs +42 -0
  20. package/esm2022/lib/core/logging/logging.service.mjs +36 -0
  21. package/{esm2020 → esm2022}/lib/core/notifications/alerts.mjs +105 -105
  22. package/{esm2020 → esm2022}/lib/core/notifications/interfaces/notification.mjs +16 -16
  23. package/esm2022/lib/core/notifications/services/notification-service.mjs +226 -0
  24. package/esm2022/lib/core/performance/stopwatch.mjs +55 -0
  25. package/esm2022/lib/core/services/appcontext.service.mjs +152 -0
  26. package/esm2022/lib/core/services/dm.service.mjs +72 -0
  27. package/esm2022/lib/core/services/google-analytics.service.mjs +55 -0
  28. package/esm2022/lib/core/services/idle.service.mjs +82 -0
  29. package/esm2022/lib/core/services/loading.service.mjs +68 -0
  30. package/esm2022/lib/core/services/web-storage.service.mjs +67 -0
  31. package/esm2022/lib/core/subs.mjs +30 -0
  32. package/{esm2020 → esm2022}/lib/core/utils.mjs +93 -93
  33. package/esm2022/lib/data/base/base-api.service.mjs +99 -0
  34. package/esm2022/lib/data/base/grid/base-grid-edit.service.mjs +83 -0
  35. package/esm2022/lib/data/base/grid/base-grid-read.service.mjs +65 -0
  36. package/{esm2020 → esm2022}/lib/data/consts.mjs +23 -23
  37. package/esm2022/lib/data/data.module.mjs +42 -0
  38. package/{esm2020 → esm2022}/lib/data/index.mjs +21 -21
  39. package/esm2022/lib/data/services/core-api.service.mjs +60 -0
  40. package/esm2022/lib/data/services/emails-api.service.mjs +48 -0
  41. package/esm2022/lib/data/services/notifications/notifications-api-service.mjs +41 -0
  42. package/esm2022/lib/ui/components/base/base-edit.component.mjs +135 -0
  43. package/esm2022/lib/ui/components/base/base.component.mjs +61 -0
  44. package/esm2022/lib/ui/components/base/base.dialog.mjs +67 -0
  45. package/esm2022/lib/ui/components/base/base.list.mjs +69 -0
  46. package/esm2022/lib/ui/components/base/base.page.mjs +31 -0
  47. package/esm2022/lib/ui/components/base/base.paged.page.mjs +66 -0
  48. package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +64 -0
  49. package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +68 -0
  50. package/esm2022/lib/ui/components/card/card-body.component.mjs +30 -0
  51. package/esm2022/lib/ui/components/card/card-footer.component.mjs +30 -0
  52. package/esm2022/lib/ui/components/card/card-header.component.mjs +34 -0
  53. package/esm2022/lib/ui/components/card/card.component.mjs +30 -0
  54. package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +33 -0
  55. package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +44 -0
  56. package/esm2022/lib/ui/components/datapager/datapager.component.mjs +85 -0
  57. package/esm2022/lib/ui/components/html-editor/base-html-editor.component.mjs +96 -0
  58. package/esm2022/lib/ui/components/html-editor/forms-html-editor.component.mjs +45 -0
  59. package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +49 -0
  60. package/{esm2020 → esm2022}/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +85 -85
  61. package/esm2022/lib/ui/components/identity/signin-button.component.mjs +31 -0
  62. package/esm2022/lib/ui/components/identity/signout-button.component.mjs +31 -0
  63. package/esm2022/lib/ui/components/identity/signup-button.component.mjs +30 -0
  64. package/{esm2020 → esm2022}/lib/ui/components/index.mjs +43 -43
  65. package/esm2022/lib/ui/components/nodata/nodata.component.mjs +46 -0
  66. package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +49 -0
  67. package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +62 -0
  68. package/{esm2020 → esm2022}/lib/ui/components/spinners/pagespinner/spinkits.mjs +11 -11
  69. package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +49 -0
  70. package/{esm2020 → esm2022}/lib/ui/dialogs/index.mjs +16 -16
  71. package/esm2022/lib/ui/directives/hover.directive.mjs +45 -0
  72. package/{esm2020 → esm2022}/lib/ui/directives/index.mjs +17 -17
  73. package/esm2022/lib/ui/directives/native-element.directive.mjs +40 -0
  74. package/esm2022/lib/ui/external/fa.module.mjs +45 -0
  75. package/esm2022/lib/ui/external/kendo.module.mjs +90 -0
  76. package/esm2022/lib/ui/forms/components/address/address.component.mjs +141 -0
  77. package/esm2022/lib/ui/forms/components/company/company.component.mjs +94 -0
  78. package/esm2022/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +74 -0
  79. package/esm2022/lib/ui/forms/components/urlslug/urlslug.component.mjs +98 -0
  80. package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +124 -0
  81. package/{esm2020 → esm2022}/lib/ui/forms/index.mjs +23 -23
  82. package/esm2022/lib/ui/pipes/filesize.pipe.mjs +40 -0
  83. package/{esm2020 → esm2022}/lib/ui/pipes/index.mjs +18 -18
  84. package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +37 -0
  85. package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +35 -0
  86. package/esm2022/lib/ui/ui.module.mjs +192 -0
  87. package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +64 -0
  88. package/{esm2020 → esm2022}/lib/ui/validation/index.mjs +18 -18
  89. package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +39 -0
  90. package/{esm2020 → esm2022}/lib/ui/validation/validation-summary.component.mjs +125 -125
  91. package/{esm2020 → esm2022}/osovitny-anatoly.mjs +4 -4
  92. package/{esm2020 → esm2022}/public-api.mjs +24 -24
  93. package/{fesm2015 → fesm2022}/osovitny-anatoly.mjs +5120 -5972
  94. package/fesm2022/osovitny-anatoly.mjs.map +1 -0
  95. package/index.d.ts +5 -5
  96. package/lib/anatoly.module.d.ts +10 -10
  97. package/lib/core/browser.d.ts +4 -4
  98. package/lib/core/consts/settings.d.ts +1 -1
  99. package/lib/core/consts/urls.d.ts +3 -3
  100. package/lib/core/converts/convert.d.ts +16 -16
  101. package/lib/core/converts/xmlFormatter.d.ts +4 -4
  102. package/lib/core/core.module.d.ts +14 -14
  103. package/lib/core/dom.d.ts +17 -17
  104. package/lib/core/go/base-go.service.d.ts +12 -12
  105. package/lib/core/guards/once-import.guard.d.ts +1 -1
  106. package/lib/core/guid.d.ts +3 -3
  107. package/lib/core/index.d.ts +28 -28
  108. package/lib/core/interceptors/httpInterceptor.d.ts +18 -18
  109. package/lib/core/localization/localization.module.d.ts +8 -8
  110. package/lib/core/localization/localization.service.d.ts +25 -25
  111. package/lib/core/localization/localizationSettings.module.d.ts +18 -18
  112. package/lib/core/localization/localize.pipe.d.ts +10 -10
  113. package/lib/core/localization/utils.d.ts +5 -5
  114. package/lib/core/logging/globalErrorHandler.d.ts +9 -9
  115. package/lib/core/logging/logging.service.d.ts +8 -8
  116. package/lib/core/notifications/alerts.d.ts +9 -9
  117. package/lib/core/notifications/interfaces/notification.d.ts +10 -10
  118. package/lib/core/notifications/services/notification-service.d.ts +25 -25
  119. package/lib/core/performance/stopwatch.d.ts +14 -14
  120. package/lib/core/services/appcontext.service.d.ts +31 -31
  121. package/lib/core/services/dm.service.d.ts +16 -16
  122. package/lib/core/services/google-analytics.service.d.ts +11 -11
  123. package/lib/core/services/idle.service.d.ts +19 -19
  124. package/lib/core/services/loading.service.d.ts +13 -13
  125. package/lib/core/services/web-storage.service.d.ts +22 -22
  126. package/lib/core/subs.d.ts +8 -8
  127. package/lib/core/utils.d.ts +11 -11
  128. package/lib/data/base/base-api.service.d.ts +18 -18
  129. package/lib/data/base/grid/base-grid-edit.service.d.ts +16 -16
  130. package/lib/data/base/grid/base-grid-read.service.d.ts +14 -14
  131. package/lib/data/consts.d.ts +5 -5
  132. package/lib/data/data.module.d.ts +7 -7
  133. package/lib/data/index.d.ts +6 -6
  134. package/lib/data/services/core-api.service.d.ts +12 -12
  135. package/lib/data/services/emails-api.service.d.ts +10 -10
  136. package/lib/data/services/notifications/notifications-api-service.d.ts +12 -12
  137. package/lib/ui/components/base/base-edit.component.d.ts +57 -57
  138. package/lib/ui/components/base/base.component.d.ts +17 -17
  139. package/lib/ui/components/base/base.dialog.d.ts +17 -17
  140. package/lib/ui/components/base/base.list.d.ts +19 -19
  141. package/lib/ui/components/base/base.page.d.ts +6 -6
  142. package/lib/ui/components/base/base.paged.page.d.ts +18 -18
  143. package/lib/ui/components/billing/buyaccess-button.component.d.ts +19 -19
  144. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +21 -21
  145. package/lib/ui/components/card/card-body.component.d.ts +6 -6
  146. package/lib/ui/components/card/card-footer.component.d.ts +6 -6
  147. package/lib/ui/components/card/card-header.component.d.ts +7 -7
  148. package/lib/ui/components/card/card.component.d.ts +6 -6
  149. package/lib/ui/components/check-icon/check-icon.component.d.ts +6 -6
  150. package/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.d.ts +8 -8
  151. package/lib/ui/components/datapager/datapager.component.d.ts +21 -21
  152. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +21 -21
  153. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +9 -9
  154. package/lib/ui/components/html-editor/html-editor.component.d.ts +9 -9
  155. package/lib/ui/components/html-editor/html-editor.defaultoptions.d.ts +1 -1
  156. package/lib/ui/components/identity/signin-button.component.d.ts +7 -7
  157. package/lib/ui/components/identity/signout-button.component.d.ts +7 -7
  158. package/lib/ui/components/identity/signup-button.component.d.ts +6 -6
  159. package/lib/ui/components/index.d.ts +25 -25
  160. package/lib/ui/components/nodata/nodata.component.d.ts +11 -11
  161. package/lib/ui/components/spinners/loading/loading.component.d.ts +13 -13
  162. package/lib/ui/components/spinners/pagespinner/pagespinner.component.d.ts +25 -25
  163. package/lib/ui/components/spinners/pagespinner/spinkits.d.ts +11 -11
  164. package/lib/ui/dialogs/contact-us/contact-us.dialog.d.ts +12 -12
  165. package/lib/ui/dialogs/index.d.ts +1 -1
  166. package/lib/ui/directives/hover.directive.d.ts +8 -8
  167. package/lib/ui/directives/index.d.ts +2 -2
  168. package/lib/ui/directives/native-element.directive.d.ts +11 -11
  169. package/lib/ui/external/fa.module.d.ts +10 -10
  170. package/lib/ui/external/kendo.module.d.ts +15 -15
  171. package/lib/ui/forms/components/address/address.component.d.ts +35 -35
  172. package/lib/ui/forms/components/company/company.component.d.ts +20 -20
  173. package/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.d.ts +26 -26
  174. package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +23 -23
  175. package/lib/ui/forms/contact-us/contact-us.d.ts +33 -33
  176. package/lib/ui/forms/index.d.ts +5 -5
  177. package/lib/ui/pipes/filesize.pipe.d.ts +8 -8
  178. package/lib/ui/pipes/index.d.ts +3 -3
  179. package/lib/ui/pipes/replace-text.pipe.d.ts +7 -7
  180. package/lib/ui/pipes/safeHtml.pipe.d.ts +10 -10
  181. package/lib/ui/ui.module.d.ts +43 -45
  182. package/lib/ui/validation/form-validation-summary.component.d.ts +11 -11
  183. package/lib/ui/validation/index.d.ts +3 -3
  184. package/lib/ui/validation/item-validation-summary.component.d.ts +9 -9
  185. package/lib/ui/validation/validation-summary.component.d.ts +24 -24
  186. package/package.json +10 -16
  187. package/public-api.d.ts +12 -12
  188. package/esm2020/lib/anatoly.module.mjs +0 -56
  189. package/esm2020/lib/core/core.module.mjs +0 -89
  190. package/esm2020/lib/core/go/base-go.service.mjs +0 -48
  191. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +0 -105
  192. package/esm2020/lib/core/localization/localization.module.mjs +0 -45
  193. package/esm2020/lib/core/localization/localization.service.mjs +0 -182
  194. package/esm2020/lib/core/localization/localizationSettings.module.mjs +0 -90
  195. package/esm2020/lib/core/localization/localize.pipe.mjs +0 -75
  196. package/esm2020/lib/core/logging/globalErrorHandler.mjs +0 -41
  197. package/esm2020/lib/core/logging/logging.service.mjs +0 -36
  198. package/esm2020/lib/core/notifications/services/notification-service.mjs +0 -225
  199. package/esm2020/lib/core/performance/stopwatch.mjs +0 -50
  200. package/esm2020/lib/core/services/appcontext.service.mjs +0 -149
  201. package/esm2020/lib/core/services/dm.service.mjs +0 -69
  202. package/esm2020/lib/core/services/google-analytics.service.mjs +0 -53
  203. package/esm2020/lib/core/services/idle.service.mjs +0 -77
  204. package/esm2020/lib/core/services/loading.service.mjs +0 -68
  205. package/esm2020/lib/core/services/web-storage.service.mjs +0 -66
  206. package/esm2020/lib/core/subs.mjs +0 -31
  207. package/esm2020/lib/data/base/base-api.service.mjs +0 -97
  208. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +0 -81
  209. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +0 -62
  210. package/esm2020/lib/data/data.module.mjs +0 -43
  211. package/esm2020/lib/data/services/core-api.service.mjs +0 -59
  212. package/esm2020/lib/data/services/emails-api.service.mjs +0 -47
  213. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +0 -40
  214. package/esm2020/lib/ui/components/base/base-edit.component.mjs +0 -134
  215. package/esm2020/lib/ui/components/base/base.component.mjs +0 -63
  216. package/esm2020/lib/ui/components/base/base.dialog.mjs +0 -67
  217. package/esm2020/lib/ui/components/base/base.list.mjs +0 -70
  218. package/esm2020/lib/ui/components/base/base.page.mjs +0 -31
  219. package/esm2020/lib/ui/components/base/base.paged.page.mjs +0 -67
  220. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +0 -106
  221. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +0 -118
  222. package/esm2020/lib/ui/components/card/card-body.component.mjs +0 -37
  223. package/esm2020/lib/ui/components/card/card-footer.component.mjs +0 -37
  224. package/esm2020/lib/ui/components/card/card-header.component.mjs +0 -52
  225. package/esm2020/lib/ui/components/card/card.component.mjs +0 -41
  226. package/esm2020/lib/ui/components/check-icon/check-icon.component.mjs +0 -42
  227. package/esm2020/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -51
  228. package/esm2020/lib/ui/components/datapager/datapager.component.mjs +0 -89
  229. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +0 -108
  230. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +0 -63
  231. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +0 -61
  232. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +0 -35
  233. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +0 -35
  234. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +0 -34
  235. package/esm2020/lib/ui/components/nodata/nodata.component.mjs +0 -67
  236. package/esm2020/lib/ui/components/spinners/loading/loading.component.mjs +0 -57
  237. package/esm2020/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -84
  238. package/esm2020/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
  239. package/esm2020/lib/ui/directives/hover.directive.mjs +0 -51
  240. package/esm2020/lib/ui/directives/native-element.directive.mjs +0 -38
  241. package/esm2020/lib/ui/external/fa.module.mjs +0 -46
  242. package/esm2020/lib/ui/external/kendo.module.mjs +0 -91
  243. package/esm2020/lib/ui/forms/components/address/address.component.mjs +0 -242
  244. package/esm2020/lib/ui/forms/components/company/company.component.mjs +0 -142
  245. package/esm2020/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -99
  246. package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +0 -136
  247. package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +0 -212
  248. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +0 -42
  249. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +0 -37
  250. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
  251. package/esm2020/lib/ui/ui.module.mjs +0 -193
  252. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +0 -89
  253. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +0 -59
  254. package/fesm2015/osovitny-anatoly.mjs.map +0 -1
  255. package/fesm2020/osovitny-anatoly.mjs +0 -5757
  256. package/fesm2020/osovitny-anatoly.mjs.map +0 -1
@@ -0,0 +1,107 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 25 March 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ // Node
17
+ import { HttpResponse } from '@angular/common/http';
18
+ import { Injectable } from '@angular/core';
19
+ // RxJS
20
+ import { tap } from 'rxjs/operators';
21
+ // App
22
+ import { AppCoreSettings } from '../consts/settings';
23
+ import * as i0 from "@angular/core";
24
+ import * as i1 from "../services/loading.service";
25
+ import * as i2 from "../logging/logging.service";
26
+ export class AnatolyHttpInterceptor {
27
+ loadingService;
28
+ loggingService;
29
+ longRunningExceptionsList = [];
30
+ autoCDNSASTokenUrls = ['chunks', 'resources'];
31
+ externalSiteUrls = ['azurewebsites.net'];
32
+ constructor(loadingService, loggingService) {
33
+ this.loadingService = loadingService;
34
+ this.loggingService = loggingService;
35
+ }
36
+ intercept(req, next) {
37
+ const isCDNEnabled = AppCoreSettings.IsCDNEnabled;
38
+ const cdnSasToken = AppCoreSettings.CDNSASToken;
39
+ const isLoadingFreezed = this.loadingService.isFreezed;
40
+ const authorizationTokenRequired = true;
41
+ const url = req.url.toLowerCase();
42
+ const originalUrl = req.url;
43
+ let isExternalSite = false;
44
+ let loadingRequired = !isLoadingFreezed;
45
+ if (!isLoadingFreezed) {
46
+ for (const i of this.longRunningExceptionsList) {
47
+ if (url.indexOf(this.longRunningExceptionsList[i]) >= 0) {
48
+ loadingRequired = false;
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ if (isCDNEnabled) {
54
+ for (const i of this.autoCDNSASTokenUrls) {
55
+ if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {
56
+ req = req.clone({ url: originalUrl + cdnSasToken });
57
+ break;
58
+ }
59
+ }
60
+ }
61
+ for (const i of this.externalSiteUrls) {
62
+ if (url.indexOf(this.externalSiteUrls[i]) >= 0) {
63
+ isExternalSite = true;
64
+ break;
65
+ }
66
+ }
67
+ // VadimOS: IE11-fix
68
+ if (url.indexOf('/api/') > -1) {
69
+ let newUrl = '';
70
+ const t = new Date().getTime().toString();
71
+ if (url.indexOf('?') > -1) {
72
+ newUrl = originalUrl + '&t=' + t;
73
+ }
74
+ else {
75
+ newUrl = originalUrl + '?t=' + t;
76
+ }
77
+ req = req.clone({ url: newUrl });
78
+ }
79
+ req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
80
+ req = req.clone({ headers: req.headers.set('Accept', 'application/text') });
81
+ this.onRequestStart(loadingRequired);
82
+ return next.handle(req).pipe(tap((event) => {
83
+ if (event instanceof HttpResponse) {
84
+ this.onRequestEnd(loadingRequired);
85
+ }
86
+ }, (err) => {
87
+ this.onRequestEnd(loadingRequired);
88
+ this.loggingService.logError(err);
89
+ }));
90
+ }
91
+ onRequestStart(loadingRequired) {
92
+ if (loadingRequired) {
93
+ this.loadingService.show();
94
+ }
95
+ }
96
+ onRequestEnd(loadingRequired) {
97
+ if (loadingRequired) {
98
+ this.loadingService.hide();
99
+ }
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AnatolyHttpInterceptor, deps: [{ token: i1.LoadingService }, { token: i2.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
102
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AnatolyHttpInterceptor });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AnatolyHttpInterceptor, decorators: [{
105
+ type: Injectable
106
+ }], ctorParameters: function () { return [{ type: i1.LoadingService }, { type: i2.LoggingService }]; } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQXVELFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTztBQUNQLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxNQUFNO0FBQ04sT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBS25ELE1BQU0sT0FBTyxzQkFBc0I7SUFLWDtJQUEwQztJQUp0RCx5QkFBeUIsR0FBRyxFQUFFLENBQUM7SUFDL0IsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsZ0JBQWdCLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5ELFlBQXNCLGNBQThCLEVBQVksY0FBOEI7UUFBeEUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzlGLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNoRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFFaEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUN2RCxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFD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Y0FBYyxDQUFDLGVBQXdCO1FBQ3JDLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLGVBQXdCO1FBQ25DLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO3VHQXhGVSxzQkFBc0I7MkdBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNSBNYXJjaCAyMDIwXHJcbiBcclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vIFJ4SlNcclxuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQge0FwcENvcmVTZXR0aW5nc30gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHtMb2FkaW5nU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2dnaW5nU2VydmljZX0gZnJvbSAnLi4vbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUh0dHBJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHJvdGVjdGVkIGxvbmdSdW5uaW5nRXhjZXB0aW9uc0xpc3QgPSBbXTtcclxuICBwcm90ZWN0ZWQgYXV0b0NETlNBU1Rva2VuVXJscyA9IFsnY2h1bmtzJywgJ3Jlc291cmNlcyddO1xyXG4gIHByb3RlY3RlZCBleHRlcm5hbFNpdGVVcmxzID0gWydhenVyZXdlYnNpdGVzLm5ldCddO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLCBwcm90ZWN0ZWQgbG9nZ2luZ1NlcnZpY2U6IExvZ2dpbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGNvbnN0IGlzQ0RORW5hYmxlZCA9IEFwcENvcmVTZXR0aW5ncy5Jc0NETkVuYWJsZWQ7XHJcbiAgICBjb25zdCBjZG5TYXNUb2tlbiA9IEFwcENvcmVTZXR0aW5ncy5DRE5TQVNUb2tlbjtcclxuXHJcbiAgICBjb25zdCBpc0xvYWRpbmdGcmVlemVkID0gdGhpcy5sb2FkaW5nU2VydmljZS5pc0ZyZWV6ZWQ7XHJcbiAgICBjb25zdCBhdXRob3JpemF0aW9uVG9rZW5SZXF1aXJlZCA9IHRydWU7XHJcbiAgICBjb25zdCB1cmwgPSByZXEudXJsLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBvcmlnaW5hbFVybCA9IHJlcS51cmw7XHJcbiAgICBsZXQgaXNFeHRlcm5hbFNpdGUgPSBmYWxzZTtcclxuICAgIGxldCBsb2FkaW5nUmVxdWlyZWQgPSAhaXNMb2FkaW5nRnJlZXplZDtcclxuXHJcbiAgICBpZiAoIWlzTG9hZGluZ0ZyZWV6ZWQpIHtcclxuICAgICAgZm9yIChjb25zdCBpIG9mIHRoaXMubG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdCkge1xyXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZih0aGlzLmxvbmdSdW5uaW5nRXhjZXB0aW9uc0xpc3RbaV0pID49IDApIHtcclxuICAgICAgICAgIGxvYWRpbmdSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzQ0RORW5hYmxlZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5hdXRvQ0ROU0FTVG9rZW5VcmxzKSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHRoaXMuYXV0b0NETlNBU1Rva2VuVXJsc1tpXSkgPj0gMCkge1xyXG4gICAgICAgICAgcmVxID0gcmVxLmNsb25lKHsgdXJsOiBvcmlnaW5hbFVybCArIGNkblNhc1Rva2VuIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuZXh0ZXJuYWxTaXRlVXJscykge1xyXG4gICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5leHRlcm5hbFNpdGVVcmxzW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgaXNFeHRlcm5hbFNpdGUgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFkaW1PUzogSUUxMS1maXhcclxuICAgIGlmICh1cmwuaW5kZXhPZignL2FwaS8nKSA+IC0xKSB7XHJcbiAgICAgIGxldCBuZXdVcmwgPSAnJztcclxuICAgICAgY29uc3QgdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IC0xKSB7XHJcbiAgICAgICAgbmV3VXJsID0gb3JpZ2luYWxVcmwgKyAnJnQ9JyArIHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3VXJsID0gb3JpZ2luYWxVcmwgKyAnP3Q9JyArIHQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7IHVybDogbmV3VXJsIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKSB9KTtcclxuICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL3RleHQnKSB9KTtcclxuXHJcbiAgICB0aGlzLm9uUmVxdWVzdFN0YXJ0KGxvYWRpbmdSZXF1aXJlZCk7XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcclxuICAgICAgdGFwKFxyXG4gICAgICAgIChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5sb2dnaW5nU2VydmljZS5sb2dFcnJvcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uUmVxdWVzdFN0YXJ0KGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGxvYWRpbmdSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVxdWVzdEVuZChsb2FkaW5nUmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChsb2FkaW5nUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 12 May 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ // Node
17
+ import { NgModule } from '@angular/core';
18
+ import { TranslateModule } from '@ngx-translate/core';
19
+ // Pipes
20
+ import { LocalizePipe } from './localize.pipe';
21
+ import * as i0 from "@angular/core";
22
+ export class LocalizationModule {
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: LocalizationModule, declarations: [LocalizePipe], imports: [TranslateModule], exports: [TranslateModule,
25
+ LocalizePipe] });
26
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationModule, imports: [TranslateModule, TranslateModule] });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ imports: [
32
+ TranslateModule
33
+ ],
34
+ exports: [
35
+ TranslateModule,
36
+ LocalizePipe
37
+ ],
38
+ declarations: [
39
+ LocalizePipe
40
+ ],
41
+ providers: []
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELFFBQVE7QUFDUixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBZ0IvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFMM0IsWUFBWSxhQVBaLGVBQWUsYUFHZixlQUFlO1lBQ2YsWUFBWTt3R0FRSCxrQkFBa0IsWUFaM0IsZUFBZSxFQUdmLGVBQWU7OzJGQVNOLGtCQUFrQjtrQkFkOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUUsRUFDVjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAgMTIgTWF5IDIwMjBcclxuIFxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8vIFBpcGVzXHJcbmltcG9ydCB7IExvY2FsaXplUGlwZSB9IGZyb20gJy4vbG9jYWxpemUucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIFRyYW5zbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTG9jYWxpemVQaXBlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExvY2FsaXplUGlwZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,184 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 05 May 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { Injectable } from '@angular/core';
18
+ //Date fns
19
+ import { format, isValid, formatDistanceToNow, formatDistance } from 'date-fns';
20
+ import { utcToZonedTime } from 'date-fns-tz';
21
+ // VadimOS: IE11-fix. DON'T change next imports!
22
+ // Reason: https://github.com/date-fns/date-fns/issues/666
23
+ import enUS from 'date-fns/locale/en-US';
24
+ import { Convert } from '../converts/convert';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@ngx-translate/core";
27
+ export class LocalizationService {
28
+ translate;
29
+ dateFnsLocale;
30
+ constructor(translate) {
31
+ this.translate = translate;
32
+ this.setSupportedLanguages(['en']);
33
+ }
34
+ format(str, args) {
35
+ return str.replace(/{(\d+)}/g, function (match, number) {
36
+ return typeof args[number] != 'undefined'
37
+ ? args[number]
38
+ : match;
39
+ });
40
+ }
41
+ ;
42
+ configureTranslationSettings(translate) {
43
+ const languageToSet = 'en';
44
+ this.dateFnsLocale = { locale: enUS };
45
+ translate.setDefaultLang(languageToSet);
46
+ return languageToSet;
47
+ }
48
+ getBrowserLanguage() {
49
+ return this.translate.getBrowserLang();
50
+ }
51
+ getDatefnsLocale() {
52
+ let dfnLocale;
53
+ switch (this.getBrowserLanguage()) {
54
+ case 'en':
55
+ dfnLocale = { locale: enUS };
56
+ break;
57
+ default:
58
+ dfnLocale = { locale: enUS };
59
+ }
60
+ return dfnLocale;
61
+ }
62
+ setDefaultLanguage(lang) {
63
+ this.translate.setDefaultLang(lang);
64
+ }
65
+ setSupportedLanguages(languages) {
66
+ this.translate.addLangs(languages);
67
+ }
68
+ updateLanguage(language) {
69
+ this.translate.use(language);
70
+ }
71
+ getLocalizedValue(key, params) {
72
+ const value = this.translate.instant(key);
73
+ if (!params || params.length === 0) {
74
+ return value;
75
+ }
76
+ return this.format(value, params);
77
+ }
78
+ getLocalizedDate(key) {
79
+ if (isValid(new Date(key))) {
80
+ return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);
81
+ }
82
+ return "Invalid Date";
83
+ }
84
+ getLocalizedDateTime(key) {
85
+ let dateValue = new Date(key);
86
+ if (isValid(dateValue)) {
87
+ let localDate = Convert.toLocalizedDateTime(dateValue);
88
+ return format(localDate, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
89
+ }
90
+ return "Invalid Date";
91
+ }
92
+ getLocalizedDistanceInWords(endedDate, startedDate) {
93
+ if (isValid(new Date(endedDate)) && isValid(new Date(startedDate))) {
94
+ return formatDistance(new Date(endedDate), new Date(startedDate), this.dateFnsLocale);
95
+ }
96
+ return "Invalid Date";
97
+ }
98
+ getLocalizedDistanceToNowInWords(date) {
99
+ if (isValid(new Date(date))) {
100
+ return formatDistanceToNow(new Date(date), this.dateFnsLocale);
101
+ }
102
+ return "Invalid Date";
103
+ }
104
+ //UTC Operations --------------------------------------------------------------
105
+ getUTCToLocalizedDate(key) {
106
+ let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
107
+ if (key) {
108
+ if (key.indexOf("T") == -1) {
109
+ key = key.replace(" ", "T");
110
+ }
111
+ if (key.indexOf("Z") == -1) {
112
+ key = key + "Z";
113
+ }
114
+ }
115
+ if (browserTimeZone) {
116
+ let localDateTime = utcToZonedTime(key, browserTimeZone);
117
+ return format(localDateTime, 'dd.MM.yyyy', this.dateFnsLocale);
118
+ }
119
+ else {
120
+ return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);
121
+ }
122
+ }
123
+ getUTCToLocalizedDateTime(key) {
124
+ let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
125
+ if (key) {
126
+ if (key.indexOf("T") == -1) {
127
+ key = key.replace(" ", "T");
128
+ }
129
+ if (key.indexOf("Z") == -1) {
130
+ key = key + "Z";
131
+ }
132
+ }
133
+ if (browserTimeZone) {
134
+ let localDateTime = utcToZonedTime(key, browserTimeZone);
135
+ return format(localDateTime, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
136
+ }
137
+ else {
138
+ return format(new Date(key), 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
139
+ }
140
+ }
141
+ //https://date-fns.org/v1.30.1/docs/distanceInWords
142
+ getUTCToLocalizedDistanceToNowInWords(date) {
143
+ date = this.safeUtcToZonedTime(date);
144
+ if (isValid(new Date(date))) {
145
+ return formatDistanceToNow(new Date(date), this.dateFnsLocale);
146
+ }
147
+ return "Invalid Date";
148
+ }
149
+ safeUtcToZonedTime(date) {
150
+ let result = date;
151
+ try {
152
+ if (date) {
153
+ if (date.indexOf("T") == -1) {
154
+ date = date.replace(" ", "T");
155
+ }
156
+ if (date.indexOf("Z") == -1) {
157
+ date = date + "Z";
158
+ }
159
+ }
160
+ let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
161
+ if (browserTimeZone) {
162
+ result = utcToZonedTime(date, browserTimeZone).toString();
163
+ }
164
+ else {
165
+ result = new Date(date).toString();
166
+ }
167
+ }
168
+ catch {
169
+ if (date) {
170
+ console.log("UTC to Local conversion failed for :" + date.toString());
171
+ }
172
+ }
173
+ return result;
174
+ }
175
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
176
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationService, providedIn: 'root' });
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationService, decorators: [{
179
+ type: Injectable,
180
+ args: [{
181
+ providedIn: 'root'
182
+ }]
183
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsZ0RBQWdEO0FBQ2hELDBEQUEwRDtBQUMxRCxPQUFPLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQUl6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sbUJBQW1CO0lBR1Y7SUFGcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBSTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsS0FBSyxFQUFFLE1BQU07WUFDcEQsT0FBTyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXO2dCQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDZCxDQUFDLENBQUMsS0FBSyxDQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUEsQ0FBQztJQUVGLDRCQUE0QixDQUFDLFNBQTJCO1FBQ3RELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRXRDLFNBQVMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksU0FBYyxDQUFDO1FBRW5CLFFBQVEsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDakMsS0FBSyxJQUFJO2dCQUNQLFNBQVMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsTUFBTTtZQUVSO2dCQUNFLFNBQVMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxTQUFtQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNoRTtRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFXO1FBQzlCLElBQUksU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RCLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQWlCLEVBQUUsV0FBbUI7UUFDaEUsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtZQUNsRSxPQUFPLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0NBQWdDLENBQUMsSUFBWTtRQUMzQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNCLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxxQkFBcUIsQ0FBQyxHQUFXO1FBQy9CLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFdkUsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQzFCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM3QjtZQUNELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDMUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDakI7U0FDRjtRQUVELElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksYUFBYSxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDekQsT0FBTyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEU7YUFDSTtZQUNILE9BQU8sTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsR0FBVztRQUNuQyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBRXZFLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUMxQixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDN0I7WUFDRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQzFCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO2FBQ2pCO1NBQ0Y7UUFFRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sTUFBTSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEU7YUFDSTtZQUNILE9BQU8sTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUM7SUFFRCxtREFBbUQ7SUFDbkQscUNBQXFDLENBQUMsSUFBWTtRQUNoRCxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBR0Qsa0JBQWtCLENBQUMsSUFBSTtRQUNyQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbEIsSUFDQTtZQUNFLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUMvQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQzNCLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO2lCQUNuQjthQUNGO1lBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN2RSxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsTUFBTSxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDM0Q7aUJBQ0k7Z0JBQ0gsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3BDO1NBQ0Y7UUFDRCxNQUNBO1lBQ0UsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTthQUN0RTtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt1R0F6TFUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwNSBNYXkgMjAyMFxyXG4gXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG4vL0RhdGUgZm5zXHJcbmltcG9ydCB7IGZvcm1hdCwgaXNWYWxpZCwgZm9ybWF0RGlzdGFuY2VUb05vdywgZm9ybWF0RGlzdGFuY2UgfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7IHV0Y1RvWm9uZWRUaW1lIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xyXG5cclxuLy8gVmFkaW1PUzogSUUxMS1maXguIERPTidUIGNoYW5nZSBuZXh0IGltcG9ydHMhXHJcbi8vIFJlYXNvbjogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy82NjZcclxuaW1wb3J0IGVuVVMgZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VuLVVTJztcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBBcHBDb3JlU2V0dGluZ3MgfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBDb252ZXJ0IH0gZnJvbSAnLi4vY29udmVydHMvY29udmVydCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICBkYXRlRm5zTG9jYWxlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnNldFN1cHBvcnRlZExhbmd1YWdlcyhbJ2VuJ10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXQoc3RyOiBzdHJpbmcsIGFyZ3MpIHtcclxuICAgIHJldHVybiBzdHIucmVwbGFjZSgveyhcXGQrKX0vZywgZnVuY3Rpb24gKG1hdGNoLCBudW1iZXIpIHtcclxuICAgICAgcmV0dXJuIHR5cGVvZiBhcmdzW251bWJlcl0gIT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICA/IGFyZ3NbbnVtYmVyXVxyXG4gICAgICAgIDogbWF0Y2hcclxuICAgICAgICA7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBjb25maWd1cmVUcmFuc2xhdGlvblNldHRpbmdzKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsYW5ndWFnZVRvU2V0ID0gJ2VuJztcclxuICAgIHRoaXMuZGF0ZUZuc0xvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcblxyXG4gICAgdHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKGxhbmd1YWdlVG9TZXQpO1xyXG4gICAgcmV0dXJuIGxhbmd1YWdlVG9TZXQ7XHJcbiAgfVxyXG5cclxuICBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyTGFuZygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZWZuc0xvY2FsZSgpOiBhbnkge1xyXG4gICAgbGV0IGRmbkxvY2FsZTogYW55O1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5nZXRCcm93c2VyTGFuZ3VhZ2UoKSkge1xyXG4gICAgICBjYXNlICdlbic6XHJcbiAgICAgICAgZGZuTG9jYWxlID0geyBsb2NhbGU6IGVuVVMgfTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgZGZuTG9jYWxlID0geyBsb2NhbGU6IGVuVVMgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGZuTG9jYWxlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZyk7XHJcbiAgfVxyXG5cclxuICBzZXRTdXBwb3J0ZWRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuYWRkTGFuZ3MobGFuZ3VhZ2VzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWRWYWx1ZShrZXk6IHN0cmluZywgcGFyYW1zPzogYW55W10pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSk7XHJcblxyXG4gICAgaWYgKCFwYXJhbXMgfHwgcGFyYW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0KHZhbHVlLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShrZXkpKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0KG5ldyBEYXRlKGtleSksICdkZC5NTS55eXl5JywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERhdGVUaW1lKGtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZGF0ZVZhbHVlID0gbmV3IERhdGUoa2V5KTtcclxuICAgIGlmIChpc1ZhbGlkKGRhdGVWYWx1ZSkpIHtcclxuICAgICAgbGV0IGxvY2FsRGF0ZSA9IENvbnZlcnQudG9Mb2NhbGl6ZWREYXRlVGltZShkYXRlVmFsdWUpO1xyXG4gICAgICByZXR1cm4gZm9ybWF0KGxvY2FsRGF0ZSwgJ2RkLk1NLnl5eXkgSEg6bW0nLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VJbldvcmRzKGVuZGVkRGF0ZTogc3RyaW5nLCBzdGFydGVkRGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChpc1ZhbGlkKG5ldyBEYXRlKGVuZGVkRGF0ZSkpICYmIGlzVmFsaWQobmV3IERhdGUoc3RhcnRlZERhdGUpKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0RGlzdGFuY2UobmV3IERhdGUoZW5kZWREYXRlKSwgbmV3IERhdGUoc3RhcnRlZERhdGUpLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHMoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChpc1ZhbGlkKG5ldyBEYXRlKGRhdGUpKSkge1xyXG4gICAgICByZXR1cm4gZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShkYXRlKSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICB9XHJcblxyXG4gIC8vVVRDIE9wZXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBnZXRVVENUb0xvY2FsaXplZERhdGUoa2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCBicm93c2VyVGltZVpvbmUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XHJcblxyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJUXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoXCIgXCIsIFwiVFwiKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJaXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5ICsgXCJaXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoYnJvd3NlclRpbWVab25lKSB7XHJcbiAgICAgIGxldCBsb2NhbERhdGVUaW1lID0gdXRjVG9ab25lZFRpbWUoa2V5LCBicm93c2VyVGltZVpvbmUpO1xyXG4gICAgICByZXR1cm4gZm9ybWF0KGxvY2FsRGF0ZVRpbWUsICdkZC5NTS55eXl5JywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZm9ybWF0KG5ldyBEYXRlKGtleSksICdkZC5NTS55eXl5JywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGF0ZVRpbWUoa2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCBicm93c2VyVGltZVpvbmUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XHJcblxyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJUXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoXCIgXCIsIFwiVFwiKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoa2V5LmluZGV4T2YoXCJaXCIpID09IC0xKSB7XHJcbiAgICAgICAga2V5ID0ga2V5ICsgXCJaXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoYnJvd3NlclRpbWVab25lKSB7XHJcbiAgICAgIGxldCBsb2NhbERhdGVUaW1lID0gdXRjVG9ab25lZFRpbWUoa2V5LCBicm93c2VyVGltZVpvbmUpO1xyXG4gICAgICByZXR1cm4gZm9ybWF0KGxvY2FsRGF0ZVRpbWUsICdkZC5NTS55eXl5IEhIOm1tJywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZm9ybWF0KG5ldyBEYXRlKGtleSksICdkZC5NTS55eXl5IEhIOm1tJywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vaHR0cHM6Ly9kYXRlLWZucy5vcmcvdjEuMzAuMS9kb2NzL2Rpc3RhbmNlSW5Xb3Jkc1xyXG4gIGdldFVUQ1RvTG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHMoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGRhdGUgPSB0aGlzLnNhZmVVdGNUb1pvbmVkVGltZShkYXRlKTtcclxuXHJcbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShkYXRlKSkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUoZGF0ZSksIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2FmZVV0Y1RvWm9uZWRUaW1lKGRhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IGRhdGU7XHJcblxyXG4gICAgdHJ5XHJcbiAgICB7XHJcbiAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlRcIikgPT0gLTEpIHtcclxuICAgICAgICAgIGRhdGUgPSBkYXRlLnJlcGxhY2UoXCIgXCIsIFwiVFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRlLmluZGV4T2YoXCJaXCIpID09IC0xKSB7XHJcbiAgICAgICAgICBkYXRlID0gZGF0ZSArIFwiWlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGJyb3dzZXJUaW1lWm9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuICAgICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICAgIHJlc3VsdCA9IHV0Y1RvWm9uZWRUaW1lKGRhdGUsIGJyb3dzZXJUaW1lWm9uZSkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaFxyXG4gICAge1xyXG4gICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVVRDIHRvIExvY2FsIGNvbnZlcnNpb24gZmFpbGVkIGZvciA6XCIgKyBkYXRlLnRvU3RyaW5nKCkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -0,0 +1,90 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 05 May 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { NgModule, Injector, APP_INITIALIZER } from '@angular/core';
18
+ import { LOCATION_INITIALIZED } from '@angular/common';
19
+ import { HttpClient } from '@angular/common/http';
20
+ import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
21
+ import { TranslateHttpLoader } from '@ngx-translate/http-loader';
22
+ //App
23
+ import { LocalizationService } from './localization.service';
24
+ import { AppCoreSettings } from '../consts/settings';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@ngx-translate/core";
27
+ export function customTranslateLoaderFactory(http) {
28
+ return new TranslateHttpLoader(http, AppCoreSettings.resourcesUrl + "/", '.json');
29
+ }
30
+ export function localizationInitializerFactory(translate, localizationService, injector) {
31
+ return () => new Promise((resolve) => {
32
+ let locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));
33
+ locationInitialized.then(() => {
34
+ let languageToSet = localizationService.configureTranslationSettings(translate);
35
+ translate.use(languageToSet).subscribe({
36
+ next: (data) => {
37
+ },
38
+ error: (e) => {
39
+ resolve(null);
40
+ },
41
+ complete: () => {
42
+ resolve(null);
43
+ }
44
+ });
45
+ });
46
+ });
47
+ }
48
+ export const TranslateModuleAtRoot = TranslateModule.forRoot({
49
+ loader: {
50
+ provide: TranslateLoader,
51
+ useFactory: customTranslateLoaderFactory,
52
+ deps: [HttpClient]
53
+ }
54
+ });
55
+ export let LocalizationInjectorInstance;
56
+ export class LocalizationSettingsModule {
57
+ injector;
58
+ constructor(injector) {
59
+ this.injector = injector;
60
+ LocalizationInjectorInstance = this.injector;
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationSettingsModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
63
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: LocalizationSettingsModule, imports: [i1.TranslateModule] });
64
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationSettingsModule, providers: [
65
+ {
66
+ provide: APP_INITIALIZER,
67
+ useFactory: localizationInitializerFactory,
68
+ deps: [TranslateService, LocalizationService, Injector],
69
+ multi: true
70
+ }
71
+ ], imports: [TranslateModuleAtRoot] });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizationSettingsModule, decorators: [{
74
+ type: NgModule,
75
+ args: [{
76
+ imports: [
77
+ TranslateModuleAtRoot
78
+ ],
79
+ providers: [
80
+ {
81
+ provide: APP_INITIALIZER,
82
+ useFactory: localizationInitializerFactory,
83
+ deps: [TranslateService, LocalizationService, Injector],
84
+ multi: true
85
+ }
86
+ ],
87
+ exports: []
88
+ }]
89
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uU2V0dGluZ3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvblNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsS0FBSztBQUNMLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXJELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFnQjtJQUMzRCxPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQUMsU0FBMkIsRUFBRSxtQkFBd0MsRUFBRSxRQUFrQjtJQUN0SSxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFNLENBQUMsT0FBWSxFQUFFLEVBQUU7UUFDN0MsSUFBSSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksYUFBYSxHQUFHLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hGLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDZixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUMzRCxNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxJQUFJLDRCQUFzQyxDQUFDO0FBaUJsRCxNQUFNLE9BQU8sMEJBQTBCO0lBQ2pCO0lBQXBCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO3VHQUhVLDBCQUEwQjt3R0FBMUIsMEJBQTBCO3dHQUExQiwwQkFBMEIsYUFYMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsVUFBVSxFQUFFLDhCQUE4QjtnQkFDMUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFUQyxxQkFBcUI7OzJGQWFaLDBCQUEwQjtrQkFmdEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN0QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSw4QkFBOEI7NEJBQzFDLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgIDA1IE1heSAyMDIwIFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0b3IsIEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMT0NBVElPTl9JTklUSUFMSVpFRCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9odHRwLWxvYWRlcic7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvcmVTZXR0aW5ncyB9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tVHJhbnNsYXRlTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgcmV0dXJuIG5ldyBUcmFuc2xhdGVIdHRwTG9hZGVyKGh0dHAsIEFwcENvcmVTZXR0aW5ncy5yZXNvdXJjZXNVcmwgKyBcIi9cIiwgJy5qc29uJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGl6YXRpb25Jbml0aWFsaXplckZhY3RvcnkodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICByZXR1cm4gKCkgPT4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZTogYW55KSA9PiB7XHJcbiAgICBsZXQgbG9jYXRpb25Jbml0aWFsaXplZCA9IGluamVjdG9yLmdldChMT0NBVElPTl9JTklUSUFMSVpFRCwgUHJvbWlzZS5yZXNvbHZlKG51bGwpKTtcclxuICAgIGxvY2F0aW9uSW5pdGlhbGl6ZWQudGhlbigoKSA9PiB7XHJcbiAgICAgIGxldCBsYW5ndWFnZVRvU2V0ID0gbG9jYWxpemF0aW9uU2VydmljZS5jb25maWd1cmVUcmFuc2xhdGlvblNldHRpbmdzKHRyYW5zbGF0ZSk7XHJcbiAgICAgIHRyYW5zbGF0ZS51c2UobGFuZ3VhZ2VUb1NldCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVHJhbnNsYXRlTW9kdWxlQXRSb290ID0gVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xyXG4gIGxvYWRlcjoge1xyXG4gICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxyXG4gICAgdXNlRmFjdG9yeTogY3VzdG9tVHJhbnNsYXRlTG9hZGVyRmFjdG9yeSxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50XVxyXG4gIH1cclxufSk7XHJcblxyXG5leHBvcnQgbGV0IExvY2FsaXphdGlvbkluamVjdG9ySW5zdGFuY2U6IEluamVjdG9yO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVBdFJvb3RcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsaXphdGlvbkluaXRpYWxpemVyRmFjdG9yeSxcclxuICAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIEluamVjdG9yXSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXR0aW5nc01vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIExvY2FsaXphdGlvbkluamVjdG9ySW5zdGFuY2UgPSB0aGlzLmluamVjdG9yO1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -0,0 +1,76 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 10 May 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { Pipe } from '@angular/core';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "./localization.service";
20
+ export class LocalizePipe {
21
+ localizeService;
22
+ constructor(localizeService) {
23
+ this.localizeService = localizeService;
24
+ }
25
+ transform(inputData, type, param2) {
26
+ if (!inputData) {
27
+ return;
28
+ }
29
+ if (!type) {
30
+ type = 'tr';
31
+ }
32
+ //Translate
33
+ if (type === 'tr') {
34
+ return this.localizeService.getLocalizedValue(inputData);
35
+ }
36
+ //Date
37
+ if (type === 'd') {
38
+ return this.localizeService.getLocalizedDate(inputData);
39
+ }
40
+ //DateTime
41
+ if (type === 'dt') {
42
+ return this.localizeService.getLocalizedDateTime(inputData);
43
+ }
44
+ //DistanceInWords
45
+ if (type === 'dis') {
46
+ return this.localizeService.getLocalizedDistanceInWords(inputData, param2);
47
+ }
48
+ //DistanceToNowInWords
49
+ if (type === 'dis2now') {
50
+ return this.localizeService.getLocalizedDistanceToNowInWords(inputData);
51
+ }
52
+ //UTC Operations --------------------------------------------------------------
53
+ //UTC Date
54
+ if (type === 'u2d') {
55
+ return this.localizeService.getUTCToLocalizedDate(inputData);
56
+ }
57
+ //UTC DateTime
58
+ if (type === 'u2dt') {
59
+ return this.localizeService.getUTCToLocalizedDateTime(inputData);
60
+ }
61
+ //UTC DistanceToNowInWords
62
+ if (type === 'u2dis2now') {
63
+ return this.localizeService.getUTCToLocalizedDistanceToNowInWords(inputData);
64
+ }
65
+ return inputData;
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizePipe, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
68
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: LocalizePipe, name: "localize" });
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: LocalizePipe, decorators: [{
71
+ type: Pipe,
72
+ args: [{
73
+ name: 'localize'
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFRcEQsTUFBTSxPQUFPLFlBQVk7SUFDSDtJQUFwQixZQUFvQixlQUFvQztRQUFwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7SUFDeEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQixFQUFFLElBQVksRUFBRSxNQUFlO1FBQ3hELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNiO1FBRUQsV0FBVztRQUNYLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxNQUFNO1FBQ04sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6RDtRQUVELFVBQVU7UUFDVixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVFO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDekU7UUFFRCwrRUFBK0U7UUFDL0UsVUFBVTtRQUNWLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxjQUFjO1FBQ2QsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNsRTtRQUVELDBCQUEwQjtRQUMxQixJQUFJLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHFDQUFxQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzt1R0F2RFUsWUFBWTtxR0FBWixZQUFZOzsyRkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAgMTAgTWF5IDIwMjBcclxuICAgICBcclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2xvY2FsaXplJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbGl6ZVNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybShpbnB1dERhdGE6IHN0cmluZywgdHlwZTogc3RyaW5nLCBwYXJhbTI/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFpbnB1dERhdGEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdHlwZSkge1xyXG4gICAgICB0eXBlID0gJ3RyJztcclxuICAgIH1cclxuXHJcbiAgICAvL1RyYW5zbGF0ZVxyXG4gICAgaWYgKHR5cGUgPT09ICd0cicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVTZXJ2aWNlLmdldExvY2FsaXplZFZhbHVlKGlucHV0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EYXRlXHJcbiAgICBpZiAodHlwZSA9PT0gJ2QnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRMb2NhbGl6ZWREYXRlKGlucHV0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EYXRlVGltZVxyXG4gICAgaWYgKHR5cGUgPT09ICdkdCcpIHtcclxuICAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRMb2NhbGl6ZWREYXRlVGltZShpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRGlzdGFuY2VJbldvcmRzXHJcbiAgICBpZiAodHlwZSA9PT0gJ2RpcycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVTZXJ2aWNlLmdldExvY2FsaXplZERpc3RhbmNlSW5Xb3JkcyhpbnB1dERhdGEsIHBhcmFtMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy9EaXN0YW5jZVRvTm93SW5Xb3Jkc1xyXG4gICAgaWYgKHR5cGUgPT09ICdkaXMybm93Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZVNlcnZpY2UuZ2V0TG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHMoaW5wdXREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1VUQyBPcGVyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvL1VUQyBEYXRlXHJcbiAgICBpZiAodHlwZSA9PT0gJ3UyZCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVTZXJ2aWNlLmdldFVUQ1RvTG9jYWxpemVkRGF0ZShpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVVRDIERhdGVUaW1lXHJcbiAgICBpZiAodHlwZSA9PT0gJ3UyZHQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRVVENUb0xvY2FsaXplZERhdGVUaW1lKGlucHV0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9VVEMgRGlzdGFuY2VUb05vd0luV29yZHNcclxuICAgIGlmICh0eXBlID09PSAndTJkaXMybm93Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZVNlcnZpY2UuZ2V0VVRDVG9Mb2NhbGl6ZWREaXN0YW5jZVRvTm93SW5Xb3JkcyhpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnB1dERhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,42 +1,42 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny vadim@osovitny.com
8
- Anatoly Osovitny anatoly@osovitny.com
9
-
10
- Created:
11
- 2 July 2020
12
-
13
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- // App
17
- import { LocalizationInjectorInstance } from './localizationSettings.module';
18
- import { LocalizationService } from './localization.service';
19
- export class L10nUtils {
20
- // @dynamic
21
- static get localizationService() {
22
- const ns = LocalizationInjectorInstance.get(LocalizationService);
23
- return ns;
24
- }
25
- static getLocalizedValue(key, params, defaultKey) {
26
- // VadimOS: DON'T CHANGE THIS CODE. NEED TO BE REVIEWED AND APPROVED BY VADIMOS
27
- // defaultKey definition:
28
- // if key is empty and defaultKey is defined => get localization for defaultKey
29
- // Example: cancel()
30
- if (!key && defaultKey) {
31
- return this.localizationService.getLocalizedValue(defaultKey);
32
- }
33
- // VadimOS:
34
- // if key is not empty value MUST be in localization table, othewise we will return key
35
- if (key) {
36
- const value = this.localizationService.getLocalizedValue(key, params);
37
- return value;
38
- }
39
- return key;
40
- }
41
- }
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny vadim@osovitny.com
8
+ Anatoly Osovitny anatoly@osovitny.com
9
+
10
+ Created:
11
+ 2 July 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ // App
17
+ import { LocalizationInjectorInstance } from './localizationSettings.module';
18
+ import { LocalizationService } from './localization.service';
19
+ export class L10nUtils {
20
+ // @dynamic
21
+ static get localizationService() {
22
+ const ns = LocalizationInjectorInstance.get(LocalizationService);
23
+ return ns;
24
+ }
25
+ static getLocalizedValue(key, params, defaultKey) {
26
+ // VadimOS: DON'T CHANGE THIS CODE. NEED TO BE REVIEWED AND APPROVED BY VADIMOS
27
+ // defaultKey definition:
28
+ // if key is empty and defaultKey is defined => get localization for defaultKey
29
+ // Example: cancel()
30
+ if (!key && defaultKey) {
31
+ return this.localizationService.getLocalizedValue(defaultKey);
32
+ }
33
+ // VadimOS:
34
+ // if key is not empty value MUST be in localization table, othewise we will return key
35
+ if (key) {
36
+ const value = this.localizationService.getLocalizedValue(key, params);
37
+ return value;
38
+ }
39
+ return key;
40
+ }
41
+ }
42
42
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsTUFBTSxPQUFPLFNBQVM7SUFDcEIsV0FBVztJQUNYLE1BQU0sS0FBSyxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLEdBQUcsNEJBQTRCLENBQUMsR0FBRyxDQUFzQixtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsTUFBYyxFQUFFLFVBQW1CO1FBQzlFLCtFQUErRTtRQUMvRSx5QkFBeUI7UUFDekIsK0VBQStFO1FBQy9FLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMvRDtRQUVELFdBQVc7UUFDWCx1RkFBdUY7UUFDdkYsSUFBSSxHQUFHLEVBQUU7WUFDUCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEp1bHkgMjAyMFxyXG4gXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBBcHBcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uSW5qZWN0b3JJbnN0YW5jZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uU2V0dGluZ3MubW9kdWxlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEwxMG5VdGlscyB7XHJcbiAgLy8gQGR5bmFtaWNcclxuICBzdGF0aWMgZ2V0IGxvY2FsaXphdGlvblNlcnZpY2UoKTogTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgICBjb25zdCBucyA9IExvY2FsaXphdGlvbkluamVjdG9ySW5zdGFuY2UuZ2V0PExvY2FsaXphdGlvblNlcnZpY2U+KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gICAgcmV0dXJuIG5zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGl6ZWRWYWx1ZShrZXk6IHN0cmluZywgcGFyYW1zPzogYW55W10sIGRlZmF1bHRLZXk/OiBzdHJpbmcpIHtcclxuICAgIC8vIFZhZGltT1M6IERPTidUIENIQU5HRSBUSElTIENPREUuIE5FRUQgVE8gQkUgUkVWSUVXRUQgQU5EIEFQUFJPVkVEIEJZIFZBRElNT1NcclxuICAgIC8vIGRlZmF1bHRLZXkgZGVmaW5pdGlvbjpcclxuICAgIC8vIGlmIGtleSBpcyBlbXB0eSBhbmQgZGVmYXVsdEtleSBpcyBkZWZpbmVkID0+IGdldCBsb2NhbGl6YXRpb24gZm9yIGRlZmF1bHRLZXlcclxuICAgIC8vIEV4YW1wbGU6IGNhbmNlbCgpXHJcbiAgICBpZiAoIWtleSAmJiBkZWZhdWx0S2V5KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZ2V0TG9jYWxpemVkVmFsdWUoZGVmYXVsdEtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFkaW1PUzpcclxuICAgIC8vIGlmIGtleSBpcyBub3QgZW1wdHkgdmFsdWUgTVVTVCBiZSBpbiBsb2NhbGl6YXRpb24gdGFibGUsIG90aGV3aXNlIHdlIHdpbGwgcmV0dXJuIGtleVxyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRMb2NhbGl6ZWRWYWx1ZShrZXksIHBhcmFtcyk7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ga2V5O1xyXG4gIH1cclxufVxyXG4iXX0=