@osovitny/anatoly 2.1.14 → 2.14.2
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/assets/styles/alerts.less +182 -0
- package/assets/styles/spinner.less +64 -0
- package/assets/styles/toastr.less +192 -0
- package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +2 -2
- package/{esm2015/lib/core/convert.js → esm2020/lib/core/convert.mjs} +2 -2
- package/esm2020/lib/core/core.module.mjs +72 -0
- package/esm2020/lib/core/go/base-go.service.mjs +41 -0
- package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +2 -2
- package/{esm2015/lib/core/guid.js → esm2020/lib/core/guid.mjs} +2 -2
- package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
- package/esm2020/lib/core/localization/localization.module.mjs +47 -0
- package/esm2020/lib/core/localization/localization.service.mjs +185 -0
- package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
- package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
- package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +2 -2
- package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
- package/esm2020/lib/core/logging/logging.service.mjs +39 -0
- package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +2 -2
- package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +2 -2
- package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
- package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
- package/esm2020/lib/core/services/dm.service.mjs +72 -0
- package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
- package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +10 -8
- package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +10 -9
- package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
- package/{esm2015/lib/core/subs.js → esm2020/lib/core/subs.mjs} +2 -2
- package/esm2020/lib/core/utils.mjs +82 -0
- package/esm2020/lib/data/base/base-api.service.mjs +89 -0
- package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
- package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
- package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +2 -2
- package/esm2020/lib/data/data.module.mjs +51 -0
- package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
- package/esm2020/lib/data/services/emails-api.service.mjs +42 -0
- package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
- package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
- package/esm2020/lib/ui/components/base.component.mjs +47 -0
- package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
- package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
- package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +52 -0
- package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
- package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
- package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
- package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
- package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +2 -2
- package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
- package/esm2020/lib/ui/components/loading/loading.component.mjs +49 -0
- package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
- package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
- package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +120 -0
- package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
- package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
- package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
- package/esm2020/lib/ui/ui.module.mjs +167 -0
- package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +67 -0
- package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +40 -0
- package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
- package/esm2020/public-api.mjs +68 -0
- package/fesm2015/osovitny-anatoly.mjs +3650 -0
- package/fesm2015/osovitny-anatoly.mjs.map +1 -0
- package/fesm2020/osovitny-anatoly.mjs +3658 -0
- package/fesm2020/osovitny-anatoly.mjs.map +1 -0
- package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
- package/lib/core/core.module.d.ts +5 -0
- package/lib/core/go/base-go.service.d.ts +3 -0
- package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
- package/lib/core/localization/localization.module.d.ts +6 -0
- package/lib/core/localization/localization.service.d.ts +3 -0
- package/lib/core/localization/localizationSettings.module.d.ts +5 -0
- package/lib/core/localization/localize.pipe.d.ts +3 -0
- package/lib/core/logging/globalErrorHandler.d.ts +3 -0
- package/lib/core/logging/logging.service.d.ts +3 -0
- package/lib/core/notifications/services/notification-service.d.ts +3 -0
- package/lib/core/services/appcontext.service.d.ts +3 -0
- package/lib/core/services/dm.service.d.ts +3 -0
- package/lib/core/services/google-analytics.service.d.ts +3 -0
- package/lib/core/services/idle.service.d.ts +3 -0
- package/lib/core/services/loading.service.d.ts +3 -0
- package/lib/core/services/web-storage.service.d.ts +5 -0
- package/lib/data/base/base-api.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
- package/lib/data/data.module.d.ts +5 -0
- package/lib/data/services/billing-api.service.d.ts +3 -0
- package/lib/data/services/emails-api.service.d.ts +10 -0
- package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
- package/lib/ui/components/base-edit.component.d.ts +5 -2
- package/lib/ui/components/base.component.d.ts +4 -1
- package/lib/ui/components/base.dialog.d.ts +3 -0
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +5 -2
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +4 -1
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +4 -1
- package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
- package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
- package/lib/ui/components/loading/loading.component.d.ts +4 -1
- package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
- package/lib/ui/directives/native-element.directive.d.ts +3 -0
- package/lib/ui/forms/contact-us/contact-us.d.ts +33 -0
- package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
- package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
- package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
- package/lib/ui/ui.module.d.ts +26 -0
- package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/validation-summary.component.d.ts +3 -0
- package/package.json +23 -11
- package/public-api.d.ts +3 -2
- package/bundles/osovitny-anatoly.umd.js +0 -3700
- package/bundles/osovitny-anatoly.umd.js.map +0 -1
- package/esm2015/lib/core/core.module.js +0 -58
- package/esm2015/lib/core/go/base-go.service.js +0 -42
- package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
- package/esm2015/lib/core/localization/localization.module.js +0 -41
- package/esm2015/lib/core/localization/localization.service.js +0 -187
- package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
- package/esm2015/lib/core/localization/localize.pipe.js +0 -78
- package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
- package/esm2015/lib/core/logging/logging.service.js +0 -38
- package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
- package/esm2015/lib/core/services/appcontext.service.js +0 -119
- package/esm2015/lib/core/services/dm.service.js +0 -74
- package/esm2015/lib/core/services/google-analytics.service.js +0 -53
- package/esm2015/lib/core/services/web-storage.service.js +0 -66
- package/esm2015/lib/core/utils.js +0 -81
- package/esm2015/lib/data/base/base-api.service.js +0 -89
- package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
- package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
- package/esm2015/lib/data/data.module.js +0 -43
- package/esm2015/lib/data/services/billing-api.service.js +0 -65
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
- package/esm2015/lib/ui/components/base-edit.component.js +0 -142
- package/esm2015/lib/ui/components/base.component.js +0 -43
- package/esm2015/lib/ui/components/base.dialog.js +0 -47
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
- package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
- package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
- package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
- package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
- package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
- package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
- package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
- package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
- package/esm2015/lib/ui/ui.module.js +0 -105
- package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
- package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
- package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
- package/esm2015/public-api.js +0 -62
- package/fesm2015/osovitny-anatoly.js +0 -3434
- package/fesm2015/osovitny-anatoly.js.map +0 -1
- package/osovitny-anatoly.metadata.json +0 -1
- /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
- /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
25 March 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { HttpResponse } from '@angular/common/http';
|
|
21
|
+
import { Injectable } from '@angular/core';
|
|
22
|
+
// RxJS
|
|
23
|
+
import { tap } from 'rxjs/operators';
|
|
24
|
+
// App
|
|
25
|
+
import { AppCoreSettings } from '../consts/settings';
|
|
26
|
+
import * as i0 from "@angular/core";
|
|
27
|
+
import * as i1 from "../services/loading.service";
|
|
28
|
+
import * as i2 from "../logging/logging.service";
|
|
29
|
+
export class AnatolyHttpInterceptor {
|
|
30
|
+
constructor(loadingService, loggingService) {
|
|
31
|
+
this.loadingService = loadingService;
|
|
32
|
+
this.loggingService = loggingService;
|
|
33
|
+
this.longRunningExceptionsList = [];
|
|
34
|
+
this.autoCDNSASTokenUrls = ['chunks', 'resources'];
|
|
35
|
+
this.externalSiteUrls = ['azurewebsites.net'];
|
|
36
|
+
}
|
|
37
|
+
intercept(req, next) {
|
|
38
|
+
const isCDNEnabled = AppCoreSettings.IsCDNEnabled;
|
|
39
|
+
const cdnSasToken = AppCoreSettings.CDNSASToken;
|
|
40
|
+
const isLoadingFreezed = this.loadingService.isFreezed;
|
|
41
|
+
const authorizationTokenRequired = true;
|
|
42
|
+
const url = req.url.toLowerCase();
|
|
43
|
+
const originalUrl = req.url;
|
|
44
|
+
let isExternalSite = false;
|
|
45
|
+
let loadingRequired = !isLoadingFreezed;
|
|
46
|
+
if (!isLoadingFreezed) {
|
|
47
|
+
for (const i of this.longRunningExceptionsList) {
|
|
48
|
+
if (url.indexOf(this.longRunningExceptionsList[i]) >= 0) {
|
|
49
|
+
loadingRequired = false;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (isCDNEnabled) {
|
|
55
|
+
for (const i of this.autoCDNSASTokenUrls) {
|
|
56
|
+
if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {
|
|
57
|
+
req = req.clone({ url: originalUrl + cdnSasToken });
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const i of this.externalSiteUrls) {
|
|
63
|
+
if (url.indexOf(this.externalSiteUrls[i]) >= 0) {
|
|
64
|
+
isExternalSite = true;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// VadimOS: IE11-fix
|
|
69
|
+
if (url.indexOf('/api/') > -1) {
|
|
70
|
+
let newUrl = '';
|
|
71
|
+
const t = new Date().getTime().toString();
|
|
72
|
+
if (url.indexOf('?') > -1) {
|
|
73
|
+
newUrl = originalUrl + '&t=' + t;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
newUrl = originalUrl + '?t=' + t;
|
|
77
|
+
}
|
|
78
|
+
req = req.clone({ url: newUrl });
|
|
79
|
+
}
|
|
80
|
+
req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
|
|
81
|
+
req = req.clone({ headers: req.headers.set('Accept', 'application/text') });
|
|
82
|
+
this.onRequestStart(loadingRequired);
|
|
83
|
+
return next.handle(req).pipe(tap((event) => {
|
|
84
|
+
if (event instanceof HttpResponse) {
|
|
85
|
+
this.onRequestEnd(loadingRequired);
|
|
86
|
+
}
|
|
87
|
+
}, (err) => {
|
|
88
|
+
this.onRequestEnd(loadingRequired);
|
|
89
|
+
this.loggingService.logError(err);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
onRequestStart(loadingRequired) {
|
|
93
|
+
if (loadingRequired) {
|
|
94
|
+
this.loadingService.show();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
onRequestEnd(loadingRequired) {
|
|
98
|
+
if (loadingRequired) {
|
|
99
|
+
this.loadingService.hide();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
AnatolyHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyHttpInterceptor, deps: [{ token: i1.LoadingService }, { token: i2.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
+
AnatolyHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyHttpInterceptor });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyHttpInterceptor, decorators: [{
|
|
106
|
+
type: Injectable
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.LoadingService }, { type: i2.LoggingService }]; } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUF1RCxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU87QUFDUCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsTUFBTTtBQUNOLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUtuRCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQXNCLGNBQThCLEVBQVksY0FBOEI7UUFBeEUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSnBGLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFHbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUVoRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3ZELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMs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QUMsZUFBd0I7UUFDckMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsZUFBd0I7UUFDbkMsSUFBSSxlQUFlLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7O21IQXhGVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjUgTWFyY2ggMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gUnhKU1xyXG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29yZVNldHRpbmdzfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvZ2dpbmdTZXJ2aWNlfSBmcm9tICcuLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBbmF0b2x5SHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBwcm90ZWN0ZWQgbG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdCA9IFtdO1xyXG4gIHByb3RlY3RlZCBhdXRvQ0ROU0FTVG9rZW5VcmxzID0gWydjaHVua3MnLCAncmVzb3VyY2VzJ107XHJcbiAgcHJvdGVjdGVkIGV4dGVybmFsU2l0ZVVybHMgPSBbJ2F6dXJld2Vic2l0ZXMubmV0J107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UsIHByb3RlY3RlZCBsb2dnaW5nU2VydmljZTogTG9nZ2luZ1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgY29uc3QgaXNDRE5FbmFibGVkID0gQXBwQ29yZVNldHRpbmdzLklzQ0RORW5hYmxlZDtcclxuICAgIGNvbnN0IGNkblNhc1Rva2VuID0gQXBwQ29yZVNldHRpbmdzLkNETlNBU1Rva2VuO1xyXG5cclxuICAgIGNvbnN0IGlzTG9hZGluZ0ZyZWV6ZWQgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzRnJlZXplZDsgICBcclxuICAgIGNvbnN0IGF1dGhvcml6YXRpb25Ub2tlblJlcXVpcmVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHVybCA9IHJlcS51cmwudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gcmVxLnVybDtcclxuICAgIGxldCBpc0V4dGVybmFsU2l0ZSA9IGZhbHNlO1xyXG4gICAgbGV0IGxvYWRpbmdSZXF1aXJlZCA9ICFpc0xvYWRpbmdGcmVlemVkO1xyXG5cclxuICAgIGlmICghaXNMb2FkaW5nRnJlZXplZCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5sb25nUnVubmluZ0V4Y2VwdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHRoaXMubG9uZ1J1bm5pbmdFeGNlcHRpb25zTGlzdFtpXSkgPj0gMCkge1xyXG4gICAgICAgICAgbG9hZGluZ1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNDRE5FbmFibGVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaSBvZiB0aGlzLmF1dG9DRE5TQVNUb2tlblVybHMpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YodGhpcy5hdXRvQ0ROU0FTVG9rZW5VcmxzW2ldKSA+PSAwKSB7XHJcbiAgICAgICAgICByZXEgPSByZXEuY2xvbmUoeyB1cmw6IG9yaWdpbmFsVXJsICsgY2RuU2FzVG9rZW4gfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5leHRlcm5hbFNpdGVVcmxzKSB7XHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZih0aGlzLmV4dGVybmFsU2l0ZVVybHNbaV0pID49IDApIHtcclxuICAgICAgICBpc0V4dGVybmFsU2l0ZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWRpbU9TOiBJRTExLWZpeFxyXG4gICAgaWYgKHVybC5pbmRleE9mKCcvYXBpLycpID4gLTEpIHtcclxuICAgICAgbGV0IG5ld1VybCA9ICcnO1xyXG4gICAgICBjb25zdCB0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID4gLTEpIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICcmdD0nICsgdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdVcmwgPSBvcmlnaW5hbFVybCArICc/dD0nICsgdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVxID0gcmVxLmNsb25lKHsgdXJsOiBuZXdVcmwgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpIH0pO1xyXG4gICAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vdGV4dCcpIH0pO1xyXG5cclxuICAgIHRoaXMub25SZXF1ZXN0U3RhcnQobG9hZGluZ1JlcXVpcmVkKTtcclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICB0YXAoXHJcbiAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMub25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dpbmdTZXJ2aWNlLmxvZ0Vycm9yKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25SZXF1ZXN0U3RhcnQobG9hZGluZ1JlcXVpcmVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAobG9hZGluZ1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZXF1ZXN0RW5kKGxvYWRpbmdSZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGxvYWRpbmdSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
12 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { NgModule } from '@angular/core';
|
|
21
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
22
|
+
// Pipes
|
|
23
|
+
import { LocalizePipe } from './localize.pipe';
|
|
24
|
+
import * as i0 from "@angular/core";
|
|
25
|
+
export class LocalizationModule {
|
|
26
|
+
}
|
|
27
|
+
LocalizationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
28
|
+
LocalizationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: LocalizationModule, declarations: [LocalizePipe], imports: [TranslateModule], exports: [TranslateModule,
|
|
29
|
+
LocalizePipe] });
|
|
30
|
+
LocalizationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationModule, imports: [TranslateModule, TranslateModule] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
imports: [
|
|
35
|
+
TranslateModule
|
|
36
|
+
],
|
|
37
|
+
exports: [
|
|
38
|
+
TranslateModule,
|
|
39
|
+
LocalizePipe
|
|
40
|
+
],
|
|
41
|
+
declarations: [
|
|
42
|
+
LocalizePipe
|
|
43
|
+
],
|
|
44
|
+
providers: []
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWdCL0MsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUwzQixZQUFZLGFBUFosZUFBZSxhQUdmLGVBQWU7UUFDZixZQUFZO2dIQVFILGtCQUFrQixZQVozQixlQUFlLEVBR2YsZUFBZTsyRkFTTixrQkFBa0I7a0JBZDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLFlBQVk7cUJBQ2I7b0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAgMTIgTWF5IDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG4vLyBQaXBlc1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuL2xvY2FsaXplLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIExvY2FsaXplUGlwZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBMb2NhbGl6ZVBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbk1vZHVsZSB7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
05 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
//Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
//Date fns
|
|
22
|
+
import { format, isValid, formatDistanceToNow, formatDistance } from 'date-fns';
|
|
23
|
+
import { utcToZonedTime } from 'date-fns-tz';
|
|
24
|
+
// VadimOS: IE11-fix. DON'T change next imports!
|
|
25
|
+
// Reason: https://github.com/date-fns/date-fns/issues/666
|
|
26
|
+
import enUS from 'date-fns/locale/en-US';
|
|
27
|
+
import { Convert } from '../convert';
|
|
28
|
+
import * as i0 from "@angular/core";
|
|
29
|
+
import * as i1 from "@ngx-translate/core";
|
|
30
|
+
export class LocalizationService {
|
|
31
|
+
constructor(translate) {
|
|
32
|
+
this.translate = translate;
|
|
33
|
+
this.setSupportedLanguages(['en']);
|
|
34
|
+
}
|
|
35
|
+
format(str, args) {
|
|
36
|
+
return str.replace(/{(\d+)}/g, function (match, number) {
|
|
37
|
+
return typeof args[number] != 'undefined'
|
|
38
|
+
? args[number]
|
|
39
|
+
: match;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
;
|
|
43
|
+
configureTranslationSettings(translate) {
|
|
44
|
+
const languageToSet = 'en';
|
|
45
|
+
this.dateFnsLocale = { locale: enUS };
|
|
46
|
+
translate.setDefaultLang(languageToSet);
|
|
47
|
+
return languageToSet;
|
|
48
|
+
}
|
|
49
|
+
getBrowserLanguage() {
|
|
50
|
+
return this.translate.getBrowserLang();
|
|
51
|
+
}
|
|
52
|
+
getDatefnsLocale() {
|
|
53
|
+
let dfnLocale;
|
|
54
|
+
switch (this.getBrowserLanguage()) {
|
|
55
|
+
case 'en':
|
|
56
|
+
dfnLocale = { locale: enUS };
|
|
57
|
+
break;
|
|
58
|
+
default:
|
|
59
|
+
dfnLocale = { locale: enUS };
|
|
60
|
+
}
|
|
61
|
+
return dfnLocale;
|
|
62
|
+
}
|
|
63
|
+
setDefaultLanguage(lang) {
|
|
64
|
+
this.translate.setDefaultLang(lang);
|
|
65
|
+
}
|
|
66
|
+
setSupportedLanguages(languages) {
|
|
67
|
+
this.translate.addLangs(languages);
|
|
68
|
+
}
|
|
69
|
+
updateLanguage(language) {
|
|
70
|
+
this.translate.use(language);
|
|
71
|
+
}
|
|
72
|
+
getLocalizedValue(key, params) {
|
|
73
|
+
const value = this.translate.instant(key);
|
|
74
|
+
if (!params || params.length === 0) {
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
return this.format(value, params);
|
|
78
|
+
}
|
|
79
|
+
getLocalizedDate(key) {
|
|
80
|
+
if (isValid(new Date(key))) {
|
|
81
|
+
return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);
|
|
82
|
+
}
|
|
83
|
+
return "Invalid Date";
|
|
84
|
+
}
|
|
85
|
+
getLocalizedDateTime(key) {
|
|
86
|
+
let dateValue = new Date(key);
|
|
87
|
+
if (isValid(dateValue)) {
|
|
88
|
+
let localDate = Convert.toLocalizedDateTime(dateValue);
|
|
89
|
+
return format(localDate, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
|
|
90
|
+
}
|
|
91
|
+
return "Invalid Date";
|
|
92
|
+
}
|
|
93
|
+
getLocalizedDistanceInWords(endedDate, startedDate) {
|
|
94
|
+
if (isValid(new Date(endedDate)) && isValid(new Date(startedDate))) {
|
|
95
|
+
return formatDistance(new Date(endedDate), new Date(startedDate), this.dateFnsLocale);
|
|
96
|
+
}
|
|
97
|
+
return "Invalid Date";
|
|
98
|
+
}
|
|
99
|
+
getLocalizedDistanceToNowInWords(date) {
|
|
100
|
+
if (isValid(new Date(date))) {
|
|
101
|
+
return formatDistanceToNow(new Date(date), this.dateFnsLocale);
|
|
102
|
+
}
|
|
103
|
+
return "Invalid Date";
|
|
104
|
+
}
|
|
105
|
+
//UTC Operations --------------------------------------------------------------
|
|
106
|
+
getUTCToLocalizedDate(key) {
|
|
107
|
+
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
108
|
+
if (key) {
|
|
109
|
+
if (key.indexOf("T") == -1) {
|
|
110
|
+
key = key.replace(" ", "T");
|
|
111
|
+
}
|
|
112
|
+
if (key.indexOf("Z") == -1) {
|
|
113
|
+
key = key + "Z";
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (browserTimeZone) {
|
|
117
|
+
let localDateTime = utcToZonedTime(key, browserTimeZone);
|
|
118
|
+
return format(localDateTime, 'dd.MM.yyyy', this.dateFnsLocale);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
getUTCToLocalizedDateTime(key) {
|
|
125
|
+
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
126
|
+
if (key) {
|
|
127
|
+
if (key.indexOf("T") == -1) {
|
|
128
|
+
key = key.replace(" ", "T");
|
|
129
|
+
}
|
|
130
|
+
if (key.indexOf("Z") == -1) {
|
|
131
|
+
key = key + "Z";
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (browserTimeZone) {
|
|
135
|
+
let localDateTime = utcToZonedTime(key, browserTimeZone);
|
|
136
|
+
return format(localDateTime, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return format(new Date(key), 'dd.MM.yyyy HH:mm', this.dateFnsLocale);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//https://date-fns.org/v1.30.1/docs/distanceInWords
|
|
143
|
+
getUTCToLocalizedDistanceToNowInWords(date) {
|
|
144
|
+
date = this.safeUtcToZonedTime(date);
|
|
145
|
+
if (isValid(new Date(date))) {
|
|
146
|
+
return formatDistanceToNow(new Date(date), this.dateFnsLocale);
|
|
147
|
+
}
|
|
148
|
+
return "Invalid Date";
|
|
149
|
+
}
|
|
150
|
+
safeUtcToZonedTime(date) {
|
|
151
|
+
let result = date;
|
|
152
|
+
try {
|
|
153
|
+
if (date) {
|
|
154
|
+
if (date.indexOf("T") == -1) {
|
|
155
|
+
date = date.replace(" ", "T");
|
|
156
|
+
}
|
|
157
|
+
if (date.indexOf("Z") == -1) {
|
|
158
|
+
date = date + "Z";
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
162
|
+
if (browserTimeZone) {
|
|
163
|
+
result = utcToZonedTime(date, browserTimeZone).toString();
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
result = new Date(date).toString();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
if (date) {
|
|
171
|
+
console.log("UTC to Local conversion failed for :" + date.toString());
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
LocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
178
|
+
LocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationService, providedIn: 'root' });
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationService, decorators: [{
|
|
180
|
+
type: Injectable,
|
|
181
|
+
args: [{
|
|
182
|
+
providedIn: 'root'
|
|
183
|
+
}]
|
|
184
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLGdEQUFnRDtBQUNoRCwwREFBMEQ7QUFDMUQsT0FBTyxJQUFJLE1BQU0sdUJBQXVCLENBQUM7QUFJekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQzs7O0FBS25DLE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLEdBQVcsRUFBRSxJQUFJO1FBQzlCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxLQUFLLEVBQUUsTUFBTTtZQUNwRCxPQUFPLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVc7Z0JBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxLQUFLLENBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQSxDQUFDO0lBRUYsNEJBQTRCLENBQUMsU0FBMkI7UUFDdEQsTUFBTSxhQUFhLEdB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QUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7aUJBQ25CO2FBQ0Y7WUFFRCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ3ZFLElBQUksZUFBZSxFQUFFO2dCQUNuQixNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUMzRDtpQkFDSTtnQkFDSCxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDcEM7U0FDRjtRQUNELE1BQ0E7WUFDRSxJQUFJLElBQUksRUFBRTtnQkFDUixPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO2FBQ3RFO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztnSEF6TFUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDUgTWF5IDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbi8vRGF0ZSBmbnNcclxuaW1wb3J0IHsgZm9ybWF0LCBpc1ZhbGlkLCBmb3JtYXREaXN0YW5jZVRvTm93LCBmb3JtYXREaXN0YW5jZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdXRjVG9ab25lZFRpbWUgfSBmcm9tICdkYXRlLWZucy10eic7XHJcblxyXG4vLyBWYWRpbU9TOiBJRTExLWZpeC4gRE9OJ1QgY2hhbmdlIG5leHQgaW1wb3J0cyFcclxuLy8gUmVhc29uOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzY2NlxyXG5pbXBvcnQgZW5VUyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW4tVVMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29yZVNldHRpbmdzfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQge0NvbnZlcnR9IGZyb20gJy4uL2NvbnZlcnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgZGF0ZUZuc0xvY2FsZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5zZXRTdXBwb3J0ZWRMYW5ndWFnZXMoWydlbiddKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0KHN0cjogc3RyaW5nLCBhcmdzKSB7XHJcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uIChtYXRjaCwgbnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1iZXJdICE9ICd1bmRlZmluZWQnXHJcbiAgICAgICAgPyBhcmdzW251bWJlcl1cclxuICAgICAgICA6IG1hdGNoXHJcbiAgICAgICAgO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uZmlndXJlVHJhbnNsYXRpb25TZXR0aW5ncyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VUb1NldCA9ICdlbic7XHJcbiAgICB0aGlzLmRhdGVGbnNMb2NhbGUgPSB7IGxvY2FsZTogZW5VUyB9O1xyXG5cclxuICAgIHRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyhsYW5ndWFnZVRvU2V0KTtcclxuICAgIHJldHVybiBsYW5ndWFnZVRvU2V0O1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcclxuICB9XHJcblxyXG4gIGdldERhdGVmbnNMb2NhbGUoKTogYW55IHtcclxuICAgIGxldCBkZm5Mb2NhbGU6IGFueTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuZ2V0QnJvd3Nlckxhbmd1YWdlKCkpIHtcclxuICAgICAgY2FzZSAnZW4nOlxyXG4gICAgICAgIGRmbkxvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGRmbkxvY2FsZSA9IHsgbG9jYWxlOiBlblVTIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRmbkxvY2FsZTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKGxhbmcpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3VwcG9ydGVkTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKGxhbmd1YWdlcyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxpemVkVmFsdWUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueVtdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXkpO1xyXG5cclxuICAgIGlmICghcGFyYW1zIHx8IHBhcmFtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2YWx1ZSwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoa2V5KSkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdChuZXcgRGF0ZShrZXkpLCAnZGQuTU0ueXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGl6ZWREYXRlVGltZShrZXk6IHN0cmluZykge1xyXG4gICAgbGV0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGtleSk7XHJcbiAgICBpZiAoaXNWYWxpZChkYXRlVmFsdWUpKSB7XHJcbiAgICAgIGxldCBsb2NhbERhdGUgPSBDb252ZXJ0LnRvTG9jYWxpemVkRGF0ZVRpbWUoZGF0ZVZhbHVlKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGUsICdkZC5NTS55eXl5IEhIOm1tJywgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERpc3RhbmNlSW5Xb3JkcyhlbmRlZERhdGU6IHN0cmluZywgc3RhcnRlZERhdGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShlbmRlZERhdGUpKSAmJiBpc1ZhbGlkKG5ldyBEYXRlKHN0YXJ0ZWREYXRlKSkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlKG5ldyBEYXRlKGVuZGVkRGF0ZSksIG5ldyBEYXRlKHN0YXJ0ZWREYXRlKSwgdGhpcy5kYXRlRm5zTG9jYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJJbnZhbGlkIERhdGVcIjtcclxuICB9XHJcblxyXG4gIGdldExvY2FsaXplZERpc3RhbmNlVG9Ob3dJbldvcmRzKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShkYXRlKSkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUoZGF0ZSksIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiSW52YWxpZCBEYXRlXCI7XHJcbiAgfVxyXG5cclxuICAvL1VUQyBPcGVyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgZ2V0VVRDVG9Mb2NhbGl6ZWREYXRlKGtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgaWYgKGtleS5pbmRleE9mKFwiVFwiKSA9PSAtMSkge1xyXG4gICAgICAgIGtleSA9IGtleS5yZXBsYWNlKFwiIFwiLCBcIlRcIik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGtleS5pbmRleE9mKFwiWlwiKSA9PSAtMSkge1xyXG4gICAgICAgIGtleSA9IGtleSArIFwiWlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICBsZXQgbG9jYWxEYXRlVGltZSA9IHV0Y1RvWm9uZWRUaW1lKGtleSwgYnJvd3NlclRpbWVab25lKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGVUaW1lLCAnZGQuTU0ueXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdChuZXcgRGF0ZShrZXkpLCAnZGQuTU0ueXl5eScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVVENUb0xvY2FsaXplZERhdGVUaW1lKGtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgYnJvd3NlclRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG5cclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgaWYgKGtleS5pbmRleE9mKFwiVFwiKSA9PSAtMSkge1xyXG4gICAgICAgIGtleSA9IGtleS5yZXBsYWNlKFwiIFwiLCBcIlRcIik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGtleS5pbmRleE9mKFwiWlwiKSA9PSAtMSkge1xyXG4gICAgICAgIGtleSA9IGtleSArIFwiWlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICBsZXQgbG9jYWxEYXRlVGltZSA9IHV0Y1RvWm9uZWRUaW1lKGtleSwgYnJvd3NlclRpbWVab25lKTtcclxuICAgICAgcmV0dXJuIGZvcm1hdChsb2NhbERhdGVUaW1lLCAnZGQuTU0ueXl5eSBISDptbScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdChuZXcgRGF0ZShrZXkpLCAnZGQuTU0ueXl5eSBISDptbScsIHRoaXMuZGF0ZUZuc0xvY2FsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL2h0dHBzOi8vZGF0ZS1mbnMub3JnL3YxLjMwLjEvZG9jcy9kaXN0YW5jZUluV29yZHNcclxuICBnZXRVVENUb0xvY2FsaXplZERpc3RhbmNlVG9Ob3dJbldvcmRzKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBkYXRlID0gdGhpcy5zYWZlVXRjVG9ab25lZFRpbWUoZGF0ZSk7XHJcblxyXG4gICAgaWYgKGlzVmFsaWQobmV3IERhdGUoZGF0ZSkpKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKGRhdGUpLCB0aGlzLmRhdGVGbnNMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIkludmFsaWQgRGF0ZVwiO1xyXG4gIH1cclxuICBcclxuXHJcbiAgc2FmZVV0Y1RvWm9uZWRUaW1lKGRhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IGRhdGU7XHJcblxyXG4gICAgdHJ5XHJcbiAgICB7XHJcbiAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUuaW5kZXhPZihcIlRcIikgPT0gLTEpIHtcclxuICAgICAgICAgIGRhdGUgPSBkYXRlLnJlcGxhY2UoXCIgXCIsIFwiVFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRlLmluZGV4T2YoXCJaXCIpID09IC0xKSB7XHJcbiAgICAgICAgICBkYXRlID0gZGF0ZSArIFwiWlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGJyb3dzZXJUaW1lWm9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuICAgICAgaWYgKGJyb3dzZXJUaW1lWm9uZSkge1xyXG4gICAgICAgIHJlc3VsdCA9IHV0Y1RvWm9uZWRUaW1lKGRhdGUsIGJyb3dzZXJUaW1lWm9uZSkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaFxyXG4gICAge1xyXG4gICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVVRDIHRvIExvY2FsIGNvbnZlcnNpb24gZmFpbGVkIGZvciA6XCIgKyBkYXRlLnRvU3RyaW5nKCkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
05 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
//Node
|
|
20
|
+
import { NgModule, Injector, APP_INITIALIZER } from '@angular/core';
|
|
21
|
+
import { LOCATION_INITIALIZED } from '@angular/common';
|
|
22
|
+
import { HttpClient } from '@angular/common/http';
|
|
23
|
+
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
24
|
+
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
25
|
+
//App
|
|
26
|
+
import { LocalizationService } from './localization.service';
|
|
27
|
+
import { AppCoreSettings } from '../consts/settings';
|
|
28
|
+
import * as i0 from "@angular/core";
|
|
29
|
+
import * as i1 from "@ngx-translate/core";
|
|
30
|
+
export function customTranslateLoaderFactory(http) {
|
|
31
|
+
return new TranslateHttpLoader(http, AppCoreSettings.resourcesUrl + "/", '.json');
|
|
32
|
+
}
|
|
33
|
+
export function localizationInitializerFactory(translate, localizationService, injector) {
|
|
34
|
+
return () => new Promise((resolve) => {
|
|
35
|
+
let locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));
|
|
36
|
+
locationInitialized.then(() => {
|
|
37
|
+
let languageToSet = localizationService.configureTranslationSettings(translate);
|
|
38
|
+
translate.use(languageToSet).subscribe(() => {
|
|
39
|
+
}, () => {
|
|
40
|
+
resolve(null);
|
|
41
|
+
}, () => {
|
|
42
|
+
resolve(null);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export const TranslateModuleAtRoot = TranslateModule.forRoot({
|
|
48
|
+
loader: {
|
|
49
|
+
provide: TranslateLoader,
|
|
50
|
+
useFactory: customTranslateLoaderFactory,
|
|
51
|
+
deps: [HttpClient]
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
export let LocalizationInjectorInstance;
|
|
55
|
+
export class LocalizationSettingsModule {
|
|
56
|
+
constructor(injector) {
|
|
57
|
+
this.injector = injector;
|
|
58
|
+
LocalizationInjectorInstance = this.injector;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
LocalizationSettingsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationSettingsModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
62
|
+
LocalizationSettingsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: LocalizationSettingsModule, imports: [i1.TranslateModule] });
|
|
63
|
+
LocalizationSettingsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationSettingsModule, providers: [
|
|
64
|
+
{
|
|
65
|
+
provide: APP_INITIALIZER,
|
|
66
|
+
useFactory: localizationInitializerFactory,
|
|
67
|
+
deps: [TranslateService, LocalizationService, Injector],
|
|
68
|
+
multi: true
|
|
69
|
+
}
|
|
70
|
+
], imports: [TranslateModuleAtRoot] });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizationSettingsModule, decorators: [{
|
|
72
|
+
type: NgModule,
|
|
73
|
+
args: [{
|
|
74
|
+
imports: [
|
|
75
|
+
TranslateModuleAtRoot
|
|
76
|
+
],
|
|
77
|
+
providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: APP_INITIALIZER,
|
|
80
|
+
useFactory: localizationInitializerFactory,
|
|
81
|
+
deps: [TranslateService, LocalizationService, Injector],
|
|
82
|
+
multi: true
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
exports: []
|
|
86
|
+
}]
|
|
87
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uU2V0dGluZ3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvblNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLEtBQUs7QUFDTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVyRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsSUFBZ0I7SUFDM0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLFNBQTJCLEVBQUUsbUJBQXdDLEVBQUUsUUFBa0I7SUFDdEksT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQVksRUFBRSxFQUFFO1FBQzdDLElBQUksbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEYsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRixTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsQ0FBQyxFQUNDLEdBQUcsRUFBRTtnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxFQUNELEdBQUcsRUFBRTtnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDM0QsTUFBTSxFQUFFO1FBQ04sT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLDRCQUE0QjtRQUN4QyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDbkI7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsSUFBSSw0QkFBc0MsQ0FBQztBQWlCbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQzs7dUhBSFUsMEJBQTBCO3dIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixhQVgxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLDhCQUE4QjtZQUMxQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUM7WUFDdkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLFlBVEMscUJBQXFCOzJGQWFaLDBCQUEwQjtrQkFmdEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN0QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSw4QkFBOEI7NEJBQzFDLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAgMDUgTWF5IDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0b3IsIEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMT0NBVElPTl9JTklUSUFMSVpFRCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9odHRwLWxvYWRlcic7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvcmVTZXR0aW5ncyB9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tVHJhbnNsYXRlTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgcmV0dXJuIG5ldyBUcmFuc2xhdGVIdHRwTG9hZGVyKGh0dHAsIEFwcENvcmVTZXR0aW5ncy5yZXNvdXJjZXNVcmwgKyBcIi9cIiwgJy5qc29uJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGl6YXRpb25Jbml0aWFsaXplckZhY3RvcnkodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICByZXR1cm4gKCkgPT4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZTogYW55KSA9PiB7XHJcbiAgICBsZXQgbG9jYXRpb25Jbml0aWFsaXplZCA9IGluamVjdG9yLmdldChMT0NBVElPTl9JTklUSUFMSVpFRCwgUHJvbWlzZS5yZXNvbHZlKG51bGwpKTtcclxuICAgIGxvY2F0aW9uSW5pdGlhbGl6ZWQudGhlbigoKSA9PiB7XHJcbiAgICAgIGxldCBsYW5ndWFnZVRvU2V0ID0gbG9jYWxpemF0aW9uU2VydmljZS5jb25maWd1cmVUcmFuc2xhdGlvblNldHRpbmdzKHRyYW5zbGF0ZSk7XHJcbiAgICAgIHRyYW5zbGF0ZS51c2UobGFuZ3VhZ2VUb1NldCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVHJhbnNsYXRlTW9kdWxlQXRSb290ID0gVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xyXG4gIGxvYWRlcjoge1xyXG4gICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxyXG4gICAgdXNlRmFjdG9yeTogY3VzdG9tVHJhbnNsYXRlTG9hZGVyRmFjdG9yeSxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50XVxyXG4gIH1cclxufSk7XHJcblxyXG5leHBvcnQgbGV0IExvY2FsaXphdGlvbkluamVjdG9ySW5zdGFuY2U6IEluamVjdG9yOyBcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlTW9kdWxlQXRSb290XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICB1c2VGYWN0b3J5OiBsb2NhbGl6YXRpb25Jbml0aWFsaXplckZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlLCBJbmplY3Rvcl0sXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2V0dGluZ3NNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBMb2NhbGl6YXRpb25JbmplY3Rvckluc3RhbmNlID0gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
10 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
//Node
|
|
20
|
+
import { Pipe } from '@angular/core';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "./localization.service";
|
|
23
|
+
export class LocalizePipe {
|
|
24
|
+
constructor(localizeService) {
|
|
25
|
+
this.localizeService = localizeService;
|
|
26
|
+
}
|
|
27
|
+
transform(inputData, type, param2) {
|
|
28
|
+
if (!inputData) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!type) {
|
|
32
|
+
type = 'tr';
|
|
33
|
+
}
|
|
34
|
+
//Translate
|
|
35
|
+
if (type === 'tr') {
|
|
36
|
+
return this.localizeService.getLocalizedValue(inputData);
|
|
37
|
+
}
|
|
38
|
+
//Date
|
|
39
|
+
if (type === 'd') {
|
|
40
|
+
return this.localizeService.getLocalizedDate(inputData);
|
|
41
|
+
}
|
|
42
|
+
//DateTime
|
|
43
|
+
if (type === 'dt') {
|
|
44
|
+
return this.localizeService.getLocalizedDateTime(inputData);
|
|
45
|
+
}
|
|
46
|
+
//DistanceInWords
|
|
47
|
+
if (type === 'dis') {
|
|
48
|
+
return this.localizeService.getLocalizedDistanceInWords(inputData, param2);
|
|
49
|
+
}
|
|
50
|
+
//DistanceToNowInWords
|
|
51
|
+
if (type === 'dis2now') {
|
|
52
|
+
return this.localizeService.getLocalizedDistanceToNowInWords(inputData);
|
|
53
|
+
}
|
|
54
|
+
//UTC Operations --------------------------------------------------------------
|
|
55
|
+
//UTC Date
|
|
56
|
+
if (type === 'u2d') {
|
|
57
|
+
return this.localizeService.getUTCToLocalizedDate(inputData);
|
|
58
|
+
}
|
|
59
|
+
//UTC DateTime
|
|
60
|
+
if (type === 'u2dt') {
|
|
61
|
+
return this.localizeService.getUTCToLocalizedDateTime(inputData);
|
|
62
|
+
}
|
|
63
|
+
//UTC DistanceToNowInWords
|
|
64
|
+
if (type === 'u2dis2now') {
|
|
65
|
+
return this.localizeService.getUTCToLocalizedDistanceToNowInWords(inputData);
|
|
66
|
+
}
|
|
67
|
+
return inputData;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
LocalizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizePipe, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
71
|
+
LocalizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: LocalizePipe, name: "localize" });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LocalizePipe, decorators: [{
|
|
73
|
+
type: Pipe,
|
|
74
|
+
args: [{
|
|
75
|
+
name: 'localize'
|
|
76
|
+
}]
|
|
77
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLGVBQW9DO1FBQXBDLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBWSxFQUFFLE1BQWU7UUFDeEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2I7UUFFRCxXQUFXO1FBQ1gsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxRDtRQUVELE1BQU07UUFDTixJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsVUFBVTtRQUNWLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDNUU7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6RTtRQUVELCtFQUErRTtRQUMvRSxVQUFVO1FBQ1YsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5RDtRQUVELGNBQWM7UUFDZCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMscUNBQXFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUU7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt5R0F2RFUsWUFBWTt1R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgIDEwIE1heSAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdsb2NhbGl6ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxpemVTZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0oaW5wdXREYXRhOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgcGFyYW0yPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghaW5wdXREYXRhKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXR5cGUpIHtcclxuICAgICAgdHlwZSA9ICd0cic7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UcmFuc2xhdGVcclxuICAgIGlmICh0eXBlID09PSAndHInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRMb2NhbGl6ZWRWYWx1ZShpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRGF0ZVxyXG4gICAgaWYgKHR5cGUgPT09ICdkJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZVNlcnZpY2UuZ2V0TG9jYWxpemVkRGF0ZShpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRGF0ZVRpbWVcclxuICAgIGlmICh0eXBlID09PSAnZHQnKSB7XHJcbiAgICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZVNlcnZpY2UuZ2V0TG9jYWxpemVkRGF0ZVRpbWUoaW5wdXREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0Rpc3RhbmNlSW5Xb3Jkc1xyXG4gICAgaWYgKHR5cGUgPT09ICdkaXMnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRMb2NhbGl6ZWREaXN0YW5jZUluV29yZHMoaW5wdXREYXRhLCBwYXJhbTIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRGlzdGFuY2VUb05vd0luV29yZHNcclxuICAgIGlmICh0eXBlID09PSAnZGlzMm5vdycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVTZXJ2aWNlLmdldExvY2FsaXplZERpc3RhbmNlVG9Ob3dJbldvcmRzKGlucHV0RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9VVEMgT3BlcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy9VVEMgRGF0ZVxyXG4gICAgaWYgKHR5cGUgPT09ICd1MmQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplU2VydmljZS5nZXRVVENUb0xvY2FsaXplZERhdGUoaW5wdXREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1VUQyBEYXRlVGltZVxyXG4gICAgaWYgKHR5cGUgPT09ICd1MmR0Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZVNlcnZpY2UuZ2V0VVRDVG9Mb2NhbGl6ZWREYXRlVGltZShpbnB1dERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVVRDIERpc3RhbmNlVG9Ob3dJbldvcmRzXHJcbiAgICBpZiAodHlwZSA9PT0gJ3UyZGlzMm5vdycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVTZXJ2aWNlLmdldFVUQ1RvTG9jYWxpemVkRGlzdGFuY2VUb05vd0luV29yZHMoaW5wdXREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXREYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Version:
|
|
14
14
|
1.0
|
|
15
15
|
|
|
16
|
-
Copyright (c) 2016-
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// App
|
|
@@ -42,4 +42,4 @@ export class L10nUtils {
|
|
|
42
42
|
return key;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFdBQVc7SUFDWCxNQUFNLEtBQUssbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBc0IsbUJBQW1CLENBQUMsQ0FBQztRQUN0RixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBVyxFQUFFLE1BQWMsRUFBRSxVQUFtQjtRQUM5RSwrRUFBK0U7UUFDL0UseUJBQXlCO1FBQ3pCLCtFQUErRTtRQUMvRSxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxXQUFXO1FBQ1gsdUZBQXVGO1FBQ3ZGLElBQUksR0FBRyxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEp1bHkgMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IExvY2FsaXphdGlvbkluamVjdG9ySW5zdGFuY2UgfSBmcm9tICcuL2xvY2FsaXphdGlvblNldHRpbmdzLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMMTBuVXRpbHMge1xyXG4gIC8vIEBkeW5hbWljXHJcbiAgc3RhdGljIGdldCBsb2NhbGl6YXRpb25TZXJ2aWNlKCk6IExvY2FsaXphdGlvblNlcnZpY2Uge1xyXG4gICAgY29uc3QgbnMgPSBMb2NhbGl6YXRpb25JbmplY3Rvckluc3RhbmNlLmdldDxMb2NhbGl6YXRpb25TZXJ2aWNlPihMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgIHJldHVybiBucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxpemVkVmFsdWUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueVtdLCBkZWZhdWx0S2V5Pzogc3RyaW5nKSB7XHJcbiAgICAvLyBWYWRpbU9TOiBET04nVCBDSEFOR0UgVEhJUyBDT0RFLiBORUVEIFRPIEJFIFJFVklFV0VEIEFORCBBUFBST1ZFRCBCWSBWQURJTU9TXHJcbiAgICAvLyBkZWZhdWx0S2V5IGRlZmluaXRpb246XHJcbiAgICAvLyBpZiBrZXkgaXMgZW1wdHkgYW5kIGRlZmF1bHRLZXkgaXMgZGVmaW5lZCA9PiBnZXQgbG9jYWxpemF0aW9uIGZvciBkZWZhdWx0S2V5XHJcbiAgICAvLyBFeGFtcGxlOiBjYW5jZWwoKVxyXG4gICAgaWYgKCFrZXkgJiYgZGVmYXVsdEtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldExvY2FsaXplZFZhbHVlKGRlZmF1bHRLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhZGltT1M6XHJcbiAgICAvLyBpZiBrZXkgaXMgbm90IGVtcHR5IHZhbHVlIE1VU1QgYmUgaW4gbG9jYWxpemF0aW9uIHRhYmxlLCBvdGhld2lzZSB3ZSB3aWxsIHJldHVybiBrZXlcclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZ2V0TG9jYWxpemVkVmFsdWUoa2V5LCBwYXJhbXMpO1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
/*
|
|
20
|
+
https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c
|
|
21
|
+
https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4
|
|
22
|
+
*/
|
|
23
|
+
// Node
|
|
24
|
+
import { Injectable } from "@angular/core";
|
|
25
|
+
// App
|
|
26
|
+
import { LoggingService } from "./logging.service";
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
export class GlobalErrorHandler {
|
|
29
|
+
constructor(injector) {
|
|
30
|
+
this.injector = injector;
|
|
31
|
+
}
|
|
32
|
+
handleError(error) {
|
|
33
|
+
const loggingService = this.injector.get(LoggingService);
|
|
34
|
+
loggingService.logError(error);
|
|
35
|
+
// IMPORTANT: Rethrow the error otherwise it gets swallowed
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
GlobalErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GlobalErrorHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
GlobalErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GlobalErrorHandler });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GlobalErrorHandler, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsRXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUY7OztFQUdFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBZ0IsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE1BQU07QUFDTixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBR25ELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFFMUMsV0FBVyxDQUFDLEtBQUs7UUFDZixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RCxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLDJEQUEyRDtRQUMzRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7OytHQVRVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLypcclxuICBodHRwczovL21lZGl1bS5jb20vQGFtY2RubC9nbG9iYWwtZXJyb3ItaGFuZGxpbmctd2l0aC1hbmd1bGFyMi02Yjk5MmJkZmI1OWNcclxuICBodHRwczovL21lZGl1bS5jb20vYW5ndWxhci1pbi1kZXB0aC9leHBlY3RpbmctdGhlLXVuZXhwZWN0ZWQtYmVzdC1wcmFjdGljZXMtZm9yLWVycm9yLWhhbmRsaW5nLWluLWFuZ3VsYXItMjFjMzY2MmVmOWU0XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vbG9nZ2luZy5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxyXG5cclxuICBoYW5kbGVFcnJvcihlcnJvcikge1xyXG4gICAgY29uc3QgbG9nZ2luZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChMb2dnaW5nU2VydmljZSk7XHJcbiAgICBsb2dnaW5nU2VydmljZS5sb2dFcnJvcihlcnJvcik7XHJcblxyXG4gICAgLy8gSU1QT1JUQU5UOiBSZXRocm93IHRoZSBlcnJvciBvdGhlcndpc2UgaXQgZ2V0cyBzd2FsbG93ZWRcclxuICAgIHRocm93IGVycm9yO1xyXG4gIH1cclxufVxyXG4iXX0=
|