@osovitny/anatoly 2.15.12 → 2.16.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.
- package/esm2022/lib/anatoly.module.mjs +55 -0
- package/{esm2020 → esm2022}/lib/core/browser.mjs +23 -23
- package/{esm2020 → esm2022}/lib/core/consts/settings.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/consts/urls.mjs +18 -18
- package/{esm2020 → esm2022}/lib/core/converts/convert.mjs +104 -104
- package/{esm2020 → esm2022}/lib/core/converts/xmlFormatter.mjs +33 -33
- package/esm2022/lib/core/core.module.mjs +89 -0
- package/{esm2020 → esm2022}/lib/core/dom.mjs +152 -152
- package/esm2022/lib/core/go/base-go.service.mjs +50 -0
- package/{esm2020 → esm2022}/lib/core/guards/once-import.guard.mjs +20 -20
- package/{esm2020 → esm2022}/lib/core/guid.mjs +21 -21
- package/{esm2020 → esm2022}/lib/core/index.mjs +50 -50
- package/esm2022/lib/core/interceptors/httpInterceptor.mjs +107 -0
- package/esm2022/lib/core/localization/localization.module.mjs +44 -0
- package/esm2022/lib/core/localization/localization.service.mjs +184 -0
- package/esm2022/lib/core/localization/localizationSettings.module.mjs +90 -0
- package/esm2022/lib/core/localization/localize.pipe.mjs +76 -0
- package/{esm2020 → esm2022}/lib/core/localization/utils.mjs +41 -41
- package/esm2022/lib/core/logging/globalErrorHandler.mjs +42 -0
- package/esm2022/lib/core/logging/logging.service.mjs +36 -0
- package/{esm2020 → esm2022}/lib/core/notifications/alerts.mjs +105 -105
- package/{esm2020 → esm2022}/lib/core/notifications/interfaces/notification.mjs +16 -16
- package/esm2022/lib/core/notifications/services/notification-service.mjs +226 -0
- package/esm2022/lib/core/performance/stopwatch.mjs +55 -0
- package/esm2022/lib/core/services/appcontext.service.mjs +152 -0
- package/esm2022/lib/core/services/dm.service.mjs +72 -0
- package/esm2022/lib/core/services/google-analytics.service.mjs +55 -0
- package/esm2022/lib/core/services/idle.service.mjs +82 -0
- package/esm2022/lib/core/services/loading.service.mjs +68 -0
- package/esm2022/lib/core/services/web-storage.service.mjs +67 -0
- package/esm2022/lib/core/subs.mjs +30 -0
- package/{esm2020 → esm2022}/lib/core/utils.mjs +93 -93
- package/esm2022/lib/data/base/base-api.service.mjs +99 -0
- package/esm2022/lib/data/base/grid/base-grid-edit.service.mjs +83 -0
- package/esm2022/lib/data/base/grid/base-grid-read.service.mjs +65 -0
- package/{esm2020 → esm2022}/lib/data/consts.mjs +23 -23
- package/esm2022/lib/data/data.module.mjs +42 -0
- package/{esm2020 → esm2022}/lib/data/index.mjs +21 -21
- package/esm2022/lib/data/services/core-api.service.mjs +60 -0
- package/esm2022/lib/data/services/emails-api.service.mjs +48 -0
- package/esm2022/lib/data/services/notifications/notifications-api-service.mjs +41 -0
- package/esm2022/lib/ui/components/base/base-edit.component.mjs +135 -0
- package/esm2022/lib/ui/components/base/base.component.mjs +61 -0
- package/esm2022/lib/ui/components/base/base.dialog.mjs +67 -0
- package/esm2022/lib/ui/components/base/base.list.mjs +69 -0
- package/esm2022/lib/ui/components/base/base.page.mjs +31 -0
- package/esm2022/lib/ui/components/base/base.paged.page.mjs +66 -0
- package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +64 -0
- package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +68 -0
- package/esm2022/lib/ui/components/card/card-body.component.mjs +30 -0
- package/esm2022/lib/ui/components/card/card-footer.component.mjs +30 -0
- package/esm2022/lib/ui/components/card/card-header.component.mjs +34 -0
- package/esm2022/lib/ui/components/card/card.component.mjs +30 -0
- package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +33 -0
- package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +44 -0
- package/esm2022/lib/ui/components/datapager/datapager.component.mjs +85 -0
- package/esm2022/lib/ui/components/html-editor/base-html-editor.component.mjs +96 -0
- package/esm2022/lib/ui/components/html-editor/forms-html-editor.component.mjs +45 -0
- package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +85 -85
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +31 -0
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +31 -0
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/ui/components/index.mjs +43 -43
- package/esm2022/lib/ui/components/nodata/nodata.component.mjs +46 -0
- package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +49 -0
- package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/ui/components/spinners/pagespinner/spinkits.mjs +11 -11
- package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +49 -0
- package/{esm2020 → esm2022}/lib/ui/dialogs/index.mjs +16 -16
- package/esm2022/lib/ui/directives/hover.directive.mjs +45 -0
- package/{esm2020 → esm2022}/lib/ui/directives/index.mjs +17 -17
- package/esm2022/lib/ui/directives/native-element.directive.mjs +40 -0
- package/esm2022/lib/ui/external/fa.module.mjs +45 -0
- package/esm2022/lib/ui/external/kendo.module.mjs +90 -0
- package/esm2022/lib/ui/forms/components/address/address.component.mjs +141 -0
- package/esm2022/lib/ui/forms/components/company/company.component.mjs +94 -0
- package/esm2022/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +74 -0
- package/esm2022/lib/ui/forms/components/urlslug/urlslug.component.mjs +98 -0
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +124 -0
- package/{esm2020 → esm2022}/lib/ui/forms/index.mjs +23 -23
- package/esm2022/lib/ui/pipes/filesize.pipe.mjs +40 -0
- package/{esm2020 → esm2022}/lib/ui/pipes/index.mjs +18 -18
- package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +37 -0
- package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +35 -0
- package/esm2022/lib/ui/ui.module.mjs +192 -0
- package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +64 -0
- package/{esm2020 → esm2022}/lib/ui/validation/index.mjs +18 -18
- package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/ui/validation/validation-summary.component.mjs +125 -125
- package/{esm2020 → esm2022}/osovitny-anatoly.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +24 -24
- package/{fesm2015 → fesm2022}/osovitny-anatoly.mjs +5119 -5974
- package/fesm2022/osovitny-anatoly.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/anatoly.module.d.ts +10 -10
- package/lib/core/browser.d.ts +4 -4
- package/lib/core/consts/settings.d.ts +1 -1
- package/lib/core/consts/urls.d.ts +3 -3
- package/lib/core/converts/convert.d.ts +16 -16
- package/lib/core/converts/xmlFormatter.d.ts +4 -4
- package/lib/core/core.module.d.ts +14 -14
- package/lib/core/dom.d.ts +17 -17
- package/lib/core/go/base-go.service.d.ts +12 -12
- package/lib/core/guards/once-import.guard.d.ts +1 -1
- package/lib/core/guid.d.ts +3 -3
- package/lib/core/index.d.ts +28 -28
- package/lib/core/interceptors/httpInterceptor.d.ts +18 -18
- package/lib/core/localization/localization.module.d.ts +8 -8
- package/lib/core/localization/localization.service.d.ts +25 -25
- package/lib/core/localization/localizationSettings.module.d.ts +18 -18
- package/lib/core/localization/localize.pipe.d.ts +10 -10
- package/lib/core/localization/utils.d.ts +5 -5
- package/lib/core/logging/globalErrorHandler.d.ts +9 -9
- package/lib/core/logging/logging.service.d.ts +8 -8
- package/lib/core/notifications/alerts.d.ts +9 -9
- package/lib/core/notifications/interfaces/notification.d.ts +10 -10
- package/lib/core/notifications/services/notification-service.d.ts +25 -25
- package/lib/core/performance/stopwatch.d.ts +14 -14
- package/lib/core/services/appcontext.service.d.ts +31 -31
- package/lib/core/services/dm.service.d.ts +16 -16
- package/lib/core/services/google-analytics.service.d.ts +11 -11
- package/lib/core/services/idle.service.d.ts +19 -19
- package/lib/core/services/loading.service.d.ts +13 -13
- package/lib/core/services/web-storage.service.d.ts +22 -22
- package/lib/core/subs.d.ts +8 -8
- package/lib/core/utils.d.ts +11 -11
- package/lib/data/base/base-api.service.d.ts +18 -18
- package/lib/data/base/grid/base-grid-edit.service.d.ts +16 -16
- package/lib/data/base/grid/base-grid-read.service.d.ts +14 -14
- package/lib/data/consts.d.ts +5 -5
- package/lib/data/data.module.d.ts +7 -7
- package/lib/data/index.d.ts +6 -6
- package/lib/data/services/core-api.service.d.ts +12 -12
- package/lib/data/services/emails-api.service.d.ts +10 -10
- package/lib/data/services/notifications/notifications-api-service.d.ts +12 -12
- package/lib/ui/components/base/base-edit.component.d.ts +57 -57
- package/lib/ui/components/base/base.component.d.ts +17 -17
- package/lib/ui/components/base/base.dialog.d.ts +17 -17
- package/lib/ui/components/base/base.list.d.ts +19 -19
- package/lib/ui/components/base/base.page.d.ts +6 -6
- package/lib/ui/components/base/base.paged.page.d.ts +18 -18
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +19 -19
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +21 -21
- package/lib/ui/components/card/card-body.component.d.ts +6 -6
- package/lib/ui/components/card/card-footer.component.d.ts +6 -6
- package/lib/ui/components/card/card-header.component.d.ts +7 -7
- package/lib/ui/components/card/card.component.d.ts +6 -6
- package/lib/ui/components/check-icon/check-icon.component.d.ts +6 -6
- package/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.d.ts +8 -8
- package/lib/ui/components/datapager/datapager.component.d.ts +21 -21
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +21 -21
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +9 -9
- package/lib/ui/components/html-editor/html-editor.component.d.ts +9 -9
- package/lib/ui/components/html-editor/html-editor.defaultoptions.d.ts +1 -1
- package/lib/ui/components/identity/signin-button.component.d.ts +7 -7
- package/lib/ui/components/identity/signout-button.component.d.ts +7 -7
- package/lib/ui/components/identity/signup-button.component.d.ts +6 -6
- package/lib/ui/components/index.d.ts +25 -25
- package/lib/ui/components/nodata/nodata.component.d.ts +11 -11
- package/lib/ui/components/spinners/loading/loading.component.d.ts +13 -13
- package/lib/ui/components/spinners/pagespinner/pagespinner.component.d.ts +25 -25
- package/lib/ui/components/spinners/pagespinner/spinkits.d.ts +11 -11
- package/lib/ui/dialogs/contact-us/contact-us.dialog.d.ts +12 -12
- package/lib/ui/dialogs/index.d.ts +1 -1
- package/lib/ui/directives/hover.directive.d.ts +8 -8
- package/lib/ui/directives/index.d.ts +2 -2
- package/lib/ui/directives/native-element.directive.d.ts +11 -11
- package/lib/ui/external/fa.module.d.ts +10 -10
- package/lib/ui/external/kendo.module.d.ts +15 -15
- package/lib/ui/forms/components/address/address.component.d.ts +35 -35
- package/lib/ui/forms/components/company/company.component.d.ts +20 -20
- package/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.d.ts +26 -26
- package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +23 -23
- package/lib/ui/forms/contact-us/contact-us.d.ts +33 -33
- package/lib/ui/forms/index.d.ts +5 -5
- package/lib/ui/pipes/filesize.pipe.d.ts +8 -8
- package/lib/ui/pipes/index.d.ts +3 -3
- package/lib/ui/pipes/replace-text.pipe.d.ts +7 -7
- package/lib/ui/pipes/safeHtml.pipe.d.ts +10 -10
- package/lib/ui/ui.module.d.ts +43 -46
- package/lib/ui/validation/form-validation-summary.component.d.ts +11 -11
- package/lib/ui/validation/index.d.ts +3 -3
- package/lib/ui/validation/item-validation-summary.component.d.ts +9 -9
- package/lib/ui/validation/validation-summary.component.d.ts +24 -24
- package/package.json +11 -17
- package/public-api.d.ts +12 -12
- package/esm2020/lib/anatoly.module.mjs +0 -56
- package/esm2020/lib/core/core.module.mjs +0 -89
- package/esm2020/lib/core/go/base-go.service.mjs +0 -48
- package/esm2020/lib/core/interceptors/httpInterceptor.mjs +0 -105
- package/esm2020/lib/core/localization/localization.module.mjs +0 -45
- package/esm2020/lib/core/localization/localization.service.mjs +0 -182
- package/esm2020/lib/core/localization/localizationSettings.module.mjs +0 -90
- package/esm2020/lib/core/localization/localize.pipe.mjs +0 -75
- package/esm2020/lib/core/logging/globalErrorHandler.mjs +0 -41
- package/esm2020/lib/core/logging/logging.service.mjs +0 -36
- package/esm2020/lib/core/notifications/services/notification-service.mjs +0 -225
- package/esm2020/lib/core/performance/stopwatch.mjs +0 -50
- package/esm2020/lib/core/services/appcontext.service.mjs +0 -149
- package/esm2020/lib/core/services/dm.service.mjs +0 -69
- package/esm2020/lib/core/services/google-analytics.service.mjs +0 -53
- package/esm2020/lib/core/services/idle.service.mjs +0 -77
- package/esm2020/lib/core/services/loading.service.mjs +0 -68
- package/esm2020/lib/core/services/web-storage.service.mjs +0 -66
- package/esm2020/lib/core/subs.mjs +0 -31
- package/esm2020/lib/data/base/base-api.service.mjs +0 -97
- package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +0 -81
- package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +0 -62
- package/esm2020/lib/data/data.module.mjs +0 -43
- package/esm2020/lib/data/services/core-api.service.mjs +0 -59
- package/esm2020/lib/data/services/emails-api.service.mjs +0 -47
- package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +0 -40
- package/esm2020/lib/ui/components/base/base-edit.component.mjs +0 -134
- package/esm2020/lib/ui/components/base/base.component.mjs +0 -63
- package/esm2020/lib/ui/components/base/base.dialog.mjs +0 -67
- package/esm2020/lib/ui/components/base/base.list.mjs +0 -70
- package/esm2020/lib/ui/components/base/base.page.mjs +0 -31
- package/esm2020/lib/ui/components/base/base.paged.page.mjs +0 -67
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +0 -106
- package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +0 -118
- package/esm2020/lib/ui/components/card/card-body.component.mjs +0 -37
- package/esm2020/lib/ui/components/card/card-footer.component.mjs +0 -37
- package/esm2020/lib/ui/components/card/card-header.component.mjs +0 -52
- package/esm2020/lib/ui/components/card/card.component.mjs +0 -41
- package/esm2020/lib/ui/components/check-icon/check-icon.component.mjs +0 -42
- package/esm2020/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -51
- package/esm2020/lib/ui/components/datapager/datapager.component.mjs +0 -89
- package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +0 -108
- package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +0 -63
- package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +0 -61
- package/esm2020/lib/ui/components/identity/signin-button.component.mjs +0 -36
- package/esm2020/lib/ui/components/identity/signout-button.component.mjs +0 -36
- package/esm2020/lib/ui/components/identity/signup-button.component.mjs +0 -35
- package/esm2020/lib/ui/components/nodata/nodata.component.mjs +0 -67
- package/esm2020/lib/ui/components/spinners/loading/loading.component.mjs +0 -57
- package/esm2020/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -84
- package/esm2020/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
- package/esm2020/lib/ui/directives/hover.directive.mjs +0 -51
- package/esm2020/lib/ui/directives/native-element.directive.mjs +0 -38
- package/esm2020/lib/ui/external/fa.module.mjs +0 -46
- package/esm2020/lib/ui/external/kendo.module.mjs +0 -91
- package/esm2020/lib/ui/forms/components/address/address.component.mjs +0 -242
- package/esm2020/lib/ui/forms/components/company/company.component.mjs +0 -142
- package/esm2020/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -99
- package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +0 -136
- package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +0 -212
- package/esm2020/lib/ui/pipes/filesize.pipe.mjs +0 -42
- package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +0 -37
- package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
- package/esm2020/lib/ui/ui.module.mjs +0 -197
- package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +0 -89
- package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +0 -59
- package/fesm2015/osovitny-anatoly.mjs.map +0 -1
- package/fesm2020/osovitny-anatoly.mjs +0 -5760
- 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.7", 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.7", ngImport: i0, type: AnatolyHttpInterceptor });
|
|
103
|
+
}
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", 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.7", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: LocalizationModule, declarations: [LocalizePipe], imports: [TranslateModule], exports: [TranslateModule,
|
|
25
|
+
LocalizePipe] });
|
|
26
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: LocalizationModule, imports: [TranslateModule, TranslateModule] });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", 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.7", ngImport: i0, type: LocalizationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
176
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: LocalizationService, providedIn: 'root' });
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsZ0RBQWdEO0FBQ2hELDBEQUEwRDtBQUMxRCxPQUFPLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQUl6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sbUJBQW1CO0lBR1Y7SUFGcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBSTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsS0FBSyxFQUFFLE1BQU07WUFDcEQsT0FBTyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXO2dCQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDZCxDQUFDLENBQUMsS0FBSyxDQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUEsQ0FBQztJQUVGLDRCQUE0QixDQUFDLFNBQTJC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QjtnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQzNCLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO2lCQUNuQjthQUNGO1lBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN2RSxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsTUFBTSxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDM0Q7aUJBQ0k7Z0JBQ0gsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3BDO1NBQ0Y7UUFDRCxNQUNBO1lBQ0UsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTthQUN0RTtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt1R0F6TFUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwNSBNYXkgMjAyMFxyXG4gXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+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.7", ngImport: i0, type: LocalizationSettingsModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
63
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: LocalizationSettingsModule, imports: [i1.TranslateModule] });
|
|
64
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", 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.7", 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.7", ngImport: i0, type: LocalizePipe, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
68
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: LocalizePipe, name: "localize" });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", 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=
|