@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
|
@@ -1,225 +0,0 @@
|
|
|
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 Jun 2020
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
// Node
|
|
17
|
-
import { Injectable } from '@angular/core';
|
|
18
|
-
// RxJs
|
|
19
|
-
import { BehaviorSubject } from 'rxjs';
|
|
20
|
-
// App
|
|
21
|
-
import { L10nUtils } from '../../localization/utils';
|
|
22
|
-
import { Guid } from '../../guid';
|
|
23
|
-
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "ngx-toastr";
|
|
25
|
-
// SignalR
|
|
26
|
-
// import * as signalR from '@microsoft/signalr';
|
|
27
|
-
// import { NotificationsApiService } from '../../../data/services/notifications/notifications-api-service';
|
|
28
|
-
export class NotificationService {
|
|
29
|
-
constructor(toastrService) {
|
|
30
|
-
this.toastrService = toastrService;
|
|
31
|
-
// SignalR
|
|
32
|
-
// private hubConnection: signalR.HubConnection;
|
|
33
|
-
// private socketUrl: string;
|
|
34
|
-
// Notifications
|
|
35
|
-
this._sessionNotifications = new BehaviorSubject([]);
|
|
36
|
-
this._serverNotifications = new BehaviorSubject([]);
|
|
37
|
-
// Public
|
|
38
|
-
this.sessionNotifications$ = this._sessionNotifications.asObservable();
|
|
39
|
-
this.serverNotifications$ = this._serverNotifications.asObservable();
|
|
40
|
-
// this.onInit();
|
|
41
|
-
}
|
|
42
|
-
/*
|
|
43
|
-
onInit() {
|
|
44
|
-
if (AppCoreSettings.AzureAD) {
|
|
45
|
-
this.authService.getAuthToken().subscribe((token: string) => {
|
|
46
|
-
this.startSignalRConnection(token);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
this.startSignalRConnection();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
ngOnDestroy() {
|
|
56
|
-
this.stopSignalRConnection();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// SignalR
|
|
60
|
-
private startSignalRConnection(accessToken?) {
|
|
61
|
-
const cskii = AppCoreSettings.selectedClientID;
|
|
62
|
-
// tslint:disable-next-line:variable-name
|
|
63
|
-
const cskii_upn = AppCoreSettings.CSKII_UPN;
|
|
64
|
-
// tslint:disable-next-line:variable-name
|
|
65
|
-
const cli_sessionguid = AppCoreSettings.CLI_SessionGUID;
|
|
66
|
-
|
|
67
|
-
const url = this.socketUrl + '?cskii=' + cskii + '&cskii_upn=' + cskii_upn + '&cli_sessionguid=' + cli_sessionguid;
|
|
68
|
-
|
|
69
|
-
if (accessToken) {
|
|
70
|
-
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
71
|
-
.withUrl(url, {
|
|
72
|
-
skipNegotiation: false,
|
|
73
|
-
transport: signalR.HttpTransportType.WebSockets,
|
|
74
|
-
accessTokenFactory: () => accessToken
|
|
75
|
-
})
|
|
76
|
-
.withAutomaticReconnect()
|
|
77
|
-
.configureLogging(signalR.LogLevel.Debug)
|
|
78
|
-
.build();
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
82
|
-
.withUrl(this.socketUrl, {
|
|
83
|
-
skipNegotiation: true,
|
|
84
|
-
transport: signalR.HttpTransportType.WebSockets
|
|
85
|
-
})
|
|
86
|
-
.withAutomaticReconnect()
|
|
87
|
-
.configureLogging(signalR.LogLevel.Debug)
|
|
88
|
-
.build();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
this.hubConnection
|
|
92
|
-
.start()
|
|
93
|
-
.then(() => this.signalRConnection_onSuccess())
|
|
94
|
-
.catch(err => {
|
|
95
|
-
console.error('Connection failed to SignalR Notification Hub')
|
|
96
|
-
})
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
private signalRConnection_onSuccess() {
|
|
100
|
-
this.addReceiveMessageDataListener();
|
|
101
|
-
|
|
102
|
-
this.notificationsApiService.retrieveNotifications().subscribe(data => {
|
|
103
|
-
this.serverNotifications = data;
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
stopSignalRConnection() {
|
|
108
|
-
if (this.hubConnection) {
|
|
109
|
-
this.hubConnection.stop();
|
|
110
|
-
this.hubConnection = null;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
private addReceiveMessageDataListener = () => {
|
|
115
|
-
this.hubConnection.on('ReceiveMessage', (message) => {
|
|
116
|
-
if (message) {
|
|
117
|
-
if (message.type === 'error') {
|
|
118
|
-
this.error(message.text, null, null, false);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
this.success(message.text, null, null, false);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const notification = {
|
|
125
|
-
id: message.id,
|
|
126
|
-
isNew: message.isNew,
|
|
127
|
-
isSession: true,
|
|
128
|
-
text: message.text,
|
|
129
|
-
type: message.type,
|
|
130
|
-
createdDate: message.createdDate
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
this.addSessionNotificationToList(notification);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
*/
|
|
138
|
-
addSessionNotification(text, type) {
|
|
139
|
-
const id = Guid.newGuid();
|
|
140
|
-
const notification = { id, isNew: true, isSession: true, text, type, createdDate: new Date(Date.now()).toISOString() };
|
|
141
|
-
this.addSessionNotificationToList(notification);
|
|
142
|
-
}
|
|
143
|
-
addSessionNotificationToList(notification) {
|
|
144
|
-
this.sessionNotifications = [
|
|
145
|
-
notification,
|
|
146
|
-
...this.sessionNotifications,
|
|
147
|
-
];
|
|
148
|
-
}
|
|
149
|
-
// Public API
|
|
150
|
-
removeNotification(id, isSession) {
|
|
151
|
-
if (isSession) {
|
|
152
|
-
this.sessionNotifications = this.sessionNotifications.filter(notifications => notifications.id !== id);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
this.serverNotifications = this.serverNotifications.filter(notifications => notifications.id !== id);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
success(text, params, title, createSessionNotification = true) {
|
|
159
|
-
text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
|
|
160
|
-
title = L10nUtils.getLocalizedValue(title);
|
|
161
|
-
this.toastrService.success(text, title, {
|
|
162
|
-
timeOut: 3000,
|
|
163
|
-
progressBar: true
|
|
164
|
-
});
|
|
165
|
-
if (createSessionNotification) {
|
|
166
|
-
this.addSessionNotification(text, 'success');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
info(text, params, title) {
|
|
170
|
-
text = L10nUtils.getLocalizedValue(text, params);
|
|
171
|
-
title = L10nUtils.getLocalizedValue(title);
|
|
172
|
-
this.toastrService.info(text, title, {
|
|
173
|
-
timeOut: 3000,
|
|
174
|
-
progressBar: true
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
warning(text, params, title) {
|
|
178
|
-
text = L10nUtils.getLocalizedValue(text, params);
|
|
179
|
-
title = L10nUtils.getLocalizedValue(title);
|
|
180
|
-
this.toastrService.warning(text, title, {
|
|
181
|
-
timeOut: 3000,
|
|
182
|
-
progressBar: true
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
error(text, params, title, createSessionNotification = true) {
|
|
186
|
-
text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');
|
|
187
|
-
title = L10nUtils.getLocalizedValue(title);
|
|
188
|
-
this.toastrService.error(text, title, {
|
|
189
|
-
timeOut: 3000,
|
|
190
|
-
progressBar: true
|
|
191
|
-
});
|
|
192
|
-
if (createSessionNotification) {
|
|
193
|
-
this.addSessionNotification(text, 'error');
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
cancel(text, params, title) {
|
|
197
|
-
text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
|
|
198
|
-
title = L10nUtils.getLocalizedValue(title);
|
|
199
|
-
this.toastrService.info(text, title, {
|
|
200
|
-
timeOut: 3000,
|
|
201
|
-
progressBar: true
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
// SessionNotifications
|
|
205
|
-
get sessionNotifications() {
|
|
206
|
-
return this._sessionNotifications.getValue();
|
|
207
|
-
}
|
|
208
|
-
set sessionNotifications(val) {
|
|
209
|
-
this._sessionNotifications.next(val);
|
|
210
|
-
}
|
|
211
|
-
// ServerNotifications
|
|
212
|
-
get serverNotifications() {
|
|
213
|
-
return this._serverNotifications.getValue();
|
|
214
|
-
}
|
|
215
|
-
set serverNotifications(val) {
|
|
216
|
-
this._serverNotifications.next(val);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
NotificationService.ɵfac = function NotificationService_Factory(t) { return new (t || NotificationService)(i0.ɵɵinject(i1.ToastrService)); };
|
|
220
|
-
NotificationService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationService, factory: NotificationService.ɵfac, providedIn: 'root' });
|
|
221
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationService, [{
|
|
222
|
-
type: Injectable,
|
|
223
|
-
args: [{ providedIn: 'root' }]
|
|
224
|
-
}], function () { return [{ type: i1.ToastrService }]; }, null); })();
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTztBQUNQLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHbEMsVUFBVTtBQUNWLGlEQUFpRDtBQUNqRCw0R0FBNEc7QUFHNUcsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVpoRCxVQUFVO1FBQ1YsZ0RBQWdEO1FBQ2hELDZCQUE2QjtRQUU3QixnQkFBZ0I7UUFDUiwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDakUseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLFNBQVM7UUFDQSwwQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBR3ZFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7c0ZBbE5VLG1CQUFtQjt5RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFEUCxNQUFNO3VGQUNsQixtQkFBbUI7Y0FEL0IsVUFBVTtlQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEp1biAyMDIwIFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG4vLyBSeEpzXHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBMMTBuVXRpbHMgfSBmcm9tICcuLi8uLi9sb2NhbGl6YXRpb24vdXRpbHMnO1xyXG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnLi4vLi4vZ3VpZCc7XHJcbmltcG9ydCB7IElOb3RpZmljYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbic7XHJcblxyXG4vLyBTaWduYWxSXHJcbi8vIGltcG9ydCAqIGFzIHNpZ25hbFIgZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuLy8gaW1wb3J0IHsgTm90aWZpY2F0aW9uc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1hcGktc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gIC8vIFNpZ25hbFJcclxuICAvLyBwcml2YXRlIGh1YkNvbm5lY3Rpb246IHNpZ25hbFIuSHViQ29ubmVjdGlvbjtcclxuICAvLyBwcml2YXRlIHNvY2tldFVybDogc3RyaW5nO1xyXG5cclxuICAvLyBOb3RpZmljYXRpb25zXHJcbiAgcHJpdmF0ZSBfc2Vzc2lvbk5vdGlmaWNhdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElOb3RpZmljYXRpb25bXT4oW10pO1xyXG4gIHByaXZhdGUgX3NlcnZlck5vdGlmaWNhdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElOb3RpZmljYXRpb25bXT4oW10pO1xyXG5cclxuICAvLyBQdWJsaWNcclxuICByZWFkb25seSBzZXNzaW9uTm90aWZpY2F0aW9ucyQgPSB0aGlzLl9zZXNzaW9uTm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBzZXJ2ZXJOb3RpZmljYXRpb25zJCA9IHRoaXMuX3NlcnZlck5vdGlmaWNhdGlvbnMuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSkge1xyXG4gICAgLy8gdGhpcy5vbkluaXQoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgb25Jbml0KCkge1xyXG4gICAgaWYgKEFwcENvcmVTZXR0aW5ncy5BenVyZUFEKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aFRva2VuKCkuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGFydFNpZ25hbFJDb25uZWN0aW9uKHRva2VuKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGFydFNpZ25hbFJDb25uZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RvcFNpZ25hbFJDb25uZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvLyBTaWduYWxSXHJcbiAgcHJpdmF0ZSBzdGFydFNpZ25hbFJDb25uZWN0aW9uKGFjY2Vzc1Rva2VuPykge1xyXG4gICAgY29uc3QgY3NraWkgPSBBcHBDb3JlU2V0dGluZ3Muc2VsZWN0ZWRDbGllbnRJRDtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXHJcbiAgICBjb25zdCBjc2tpaV91cG4gPSBBcHBDb3JlU2V0dGluZ3MuQ1NLSUlfVVBOO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICAgIGNvbnN0IGNsaV9zZXNzaW9uZ3VpZCA9IEFwcENvcmVTZXR0aW5ncy5DTElfU2Vzc2lvbkdVSUQ7XHJcblxyXG4gICAgY29uc3QgdXJsID0gdGhpcy5zb2NrZXRVcmwgKyAnP2Nza2lpPScgKyBjc2tpaSArICcmY3NraWlfdXBuPScgKyBjc2tpaV91cG4gKyAnJmNsaV9zZXNzaW9uZ3VpZD0nICsgY2xpX3Nlc3Npb25ndWlkO1xyXG5cclxuICAgIGlmIChhY2Nlc3NUb2tlbikge1xyXG4gICAgICB0aGlzLmh1YkNvbm5lY3Rpb24gPSBuZXcgc2lnbmFsUi5IdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgICAgLndpdGhVcmwodXJsLCB7XHJcbiAgICAgICAgICBza2lwTmVnb3RpYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHMsXHJcbiAgICAgICAgICBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IGFjY2Vzc1Rva2VuXHJcbiAgICAgICAgfSlcclxuICAgICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpXHJcbiAgICAgICAgLmNvbmZpZ3VyZUxvZ2dpbmcoc2lnbmFsUi5Mb2dMZXZlbC5EZWJ1ZylcclxuICAgICAgICAuYnVpbGQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmh1YkNvbm5lY3Rpb24gPSBuZXcgc2lnbmFsUi5IdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgICAgLndpdGhVcmwodGhpcy5zb2NrZXRVcmwsIHtcclxuICAgICAgICAgIHNraXBOZWdvdGlhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgIHRyYW5zcG9ydDogc2lnbmFsUi5IdHRwVHJhbnNwb3J0VHlwZS5XZWJTb2NrZXRzXHJcbiAgICAgICAgfSlcclxuICAgICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpXHJcbiAgICAgICAgLmNvbmZpZ3VyZUxvZ2dpbmcoc2lnbmFsUi5Mb2dMZXZlbC5EZWJ1ZylcclxuICAgICAgICAuYnVpbGQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmh1YkNvbm5lY3Rpb25cclxuICAgICAgLnN0YXJ0KClcclxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5zaWduYWxSQ29ubmVjdGlvbl9vblN1Y2Nlc3MoKSlcclxuICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignQ29ubmVjdGlvbiBmYWlsZWQgdG8gU2lnbmFsUiBOb3RpZmljYXRpb24gSHViJylcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2lnbmFsUkNvbm5lY3Rpb25fb25TdWNjZXNzKCkge1xyXG4gICAgdGhpcy5hZGRSZWNlaXZlTWVzc2FnZURhdGFMaXN0ZW5lcigpO1xyXG5cclxuICAgIHRoaXMubm90aWZpY2F0aW9uc0FwaVNlcnZpY2UucmV0cmlldmVOb3RpZmljYXRpb25zKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICB0aGlzLnNlcnZlck5vdGlmaWNhdGlvbnMgPSBkYXRhO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wU2lnbmFsUkNvbm5lY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5odWJDb25uZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbi5zdG9wKCk7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFJlY2VpdmVNZXNzYWdlRGF0YUxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5odWJDb25uZWN0aW9uLm9uKCdSZWNlaXZlTWVzc2FnZScsIChtZXNzYWdlKSA9PiB7XHJcbiAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvcihtZXNzYWdlLnRleHQsIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3MobWVzc2FnZS50ZXh0LCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBub3RpZmljYXRpb24gPSB7XHJcbiAgICAgICAgICBpZDogbWVzc2FnZS5pZCxcclxuICAgICAgICAgIGlzTmV3OiBtZXNzYWdlLmlzTmV3LFxyXG4gICAgICAgICAgaXNTZXNzaW9uOiB0cnVlLFxyXG4gICAgICAgICAgdGV4dDogbWVzc2FnZS50ZXh0LFxyXG4gICAgICAgICAgdHlwZTogbWVzc2FnZS50eXBlLFxyXG4gICAgICAgICAgY3JlYXRlZERhdGU6IG1lc3NhZ2UuY3JlYXRlZERhdGVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gICovXHJcblxyXG4gIHByaXZhdGUgYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0OiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgaWQgPSBHdWlkLm5ld0d1aWQoKTtcclxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHsgaWQsIGlzTmV3OiB0cnVlLCBpc1Nlc3Npb246IHRydWUsIHRleHQsIHR5cGUsIGNyZWF0ZWREYXRlOiBuZXcgRGF0ZShEYXRlLm5vdygpKS50b0lTT1N0cmluZygpIH07XHJcblxyXG4gICAgdGhpcy5hZGRTZXNzaW9uTm90aWZpY2F0aW9uVG9MaXN0KG5vdGlmaWNhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uKSB7XHJcbiAgICB0aGlzLnNlc3Npb25Ob3RpZmljYXRpb25zID0gW1xyXG4gICAgICBub3RpZmljYXRpb24sXHJcbiAgICAgIC4uLnRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMsXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgLy8gUHVibGljIEFQSVxyXG4gIHJlbW92ZU5vdGlmaWNhdGlvbihpZDogc3RyaW5nLCBpc1Nlc3Npb246IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc1Nlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucyA9IHRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMuZmlsdGVyKG5vdGlmaWNhdGlvbnMgPT4gbm90aWZpY2F0aW9ucy5pZCAhPT0gaWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucyA9IHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmlkICE9PSBpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdWNjZXNzKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/LCBjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMsICdPcGVyYXRpb25TdWNjZXNzRnVsbCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoY3JlYXRlU2Vzc2lvbk5vdGlmaWNhdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb24odGV4dCwgJ3N1Y2Nlc3MnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZm8odGV4dCwgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5pbmZvKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHdhcm5pbmcodGV4dCwgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS53YXJuaW5nKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGVycm9yKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/LCBjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMsICdFcnJvck9jY3VyZWQnKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0LCAnZXJyb3InKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbCh0ZXh0PywgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMsICdPcGVyYXRpb25DYW5jZWxsZWQnKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuaW5mbyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBTZXNzaW9uTm90aWZpY2F0aW9uc1xyXG4gIGdldCBzZXNzaW9uTm90aWZpY2F0aW9ucygpOiBJTm90aWZpY2F0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLmdldFZhbHVlKCk7XHJcbiAgfVxyXG4gIHNldCBzZXNzaW9uTm90aWZpY2F0aW9ucyh2YWw6IElOb3RpZmljYXRpb25bXSkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbk5vdGlmaWNhdGlvbnMubmV4dCh2YWwpO1xyXG4gIH1cclxuXHJcbiAgLy8gU2VydmVyTm90aWZpY2F0aW9uc1xyXG4gIGdldCBzZXJ2ZXJOb3RpZmljYXRpb25zKCk6IElOb3RpZmljYXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuICBzZXQgc2VydmVyTm90aWZpY2F0aW9ucyh2YWw6IElOb3RpZmljYXRpb25bXSkge1xyXG4gICAgdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5uZXh0KHZhbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,50 +0,0 @@
|
|
|
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
|
-
17 Apr 2023
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
export class Stopwatch {
|
|
17
|
-
constructor(name) {
|
|
18
|
-
this.name = name;
|
|
19
|
-
this.startTime = 0;
|
|
20
|
-
this.stopTime = 0;
|
|
21
|
-
this.running = false;
|
|
22
|
-
this.performance = !!window.performance;
|
|
23
|
-
console.log(this.name + ' started.');
|
|
24
|
-
}
|
|
25
|
-
currentTime() {
|
|
26
|
-
return this.performance ? window.performance.now() : new Date().getTime();
|
|
27
|
-
}
|
|
28
|
-
start() {
|
|
29
|
-
this.startTime = this.currentTime();
|
|
30
|
-
this.running = true;
|
|
31
|
-
}
|
|
32
|
-
stop() {
|
|
33
|
-
this.stopTime = this.currentTime();
|
|
34
|
-
this.running = false;
|
|
35
|
-
}
|
|
36
|
-
getElapsedMilliseconds() {
|
|
37
|
-
if (this.running) {
|
|
38
|
-
this.stopTime = this.currentTime();
|
|
39
|
-
}
|
|
40
|
-
return this.stopTime - this.startTime;
|
|
41
|
-
}
|
|
42
|
-
getElapsedSeconds() {
|
|
43
|
-
return this.getElapsedMilliseconds() / 1000;
|
|
44
|
-
}
|
|
45
|
-
printElapsedAsMilliseconds() {
|
|
46
|
-
let elapsed = this.getElapsedMilliseconds();
|
|
47
|
-
console.log(`${this.name} stopped. Execution time: ${elapsed} ms`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcHdhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvcGVyZm9ybWFuY2Uvc3RvcHdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTSxPQUFPLFNBQVM7SUFPcEIsWUFBWSxJQUFJO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV4QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTcgQXByIDIwMjNcclxuIFxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIFN0b3B3YXRjaCB7XHJcbiAgcHJpdmF0ZSBuYW1lO1xyXG4gIHByaXZhdGUgc3RhcnRUaW1lO1xyXG4gIHByaXZhdGUgc3RvcFRpbWU7XHJcbiAgcHJpdmF0ZSBydW5uaW5nO1xyXG4gIHByaXZhdGUgcGVyZm9ybWFuY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XHJcbiAgICB0aGlzLnN0b3BUaW1lID0gMDtcclxuICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJmb3JtYW5jZSA9ICEhd2luZG93LnBlcmZvcm1hbmNlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMubmFtZSArICcgc3RhcnRlZC4nKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3VycmVudFRpbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtYW5jZSA/IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA6IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKSB7XHJcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucnVubmluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdG9wKCkge1xyXG4gICAgdGhpcy5zdG9wVGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxhcHNlZE1pbGxpc2Vjb25kcygpIHtcclxuICAgIGlmICh0aGlzLnJ1bm5pbmcpIHtcclxuICAgICAgdGhpcy5zdG9wVGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdG9wVGltZSAtIHRoaXMuc3RhcnRUaW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxhcHNlZFNlY29uZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbGFwc2VkTWlsbGlzZWNvbmRzKCkgLyAxMDAwO1xyXG4gIH1cclxuXHJcbiAgcHJpbnRFbGFwc2VkQXNNaWxsaXNlY29uZHMoKSB7XHJcbiAgICBsZXQgZWxhcHNlZCA9IHRoaXMuZ2V0RWxhcHNlZE1pbGxpc2Vjb25kcygpO1xyXG4gICAgY29uc29sZS5sb2coYCR7dGhpcy5uYW1lfSBzdG9wcGVkLiBFeGVjdXRpb24gdGltZTogJHtlbGFwc2VkfSBtc2ApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,149 +0,0 @@
|
|
|
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
|
-
13 Nov 2017
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
//Node
|
|
17
|
-
import { Injectable } from '@angular/core';
|
|
18
|
-
import { Subject } from 'rxjs';
|
|
19
|
-
//App
|
|
20
|
-
import { BaseApiService } from '../../data/base/base-api.service';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/common/http";
|
|
23
|
-
import * as i2 from "./web-storage.service";
|
|
24
|
-
export class AppContextService extends BaseApiService {
|
|
25
|
-
constructor(http, localStorage, sessionStorage) {
|
|
26
|
-
super(http);
|
|
27
|
-
this.http = http;
|
|
28
|
-
this.localStorage = localStorage;
|
|
29
|
-
this.sessionStorage = sessionStorage;
|
|
30
|
-
//Consts
|
|
31
|
-
this.storageKeyName = 'appContext';
|
|
32
|
-
this.subscription = null;
|
|
33
|
-
this.successes = [];
|
|
34
|
-
//Private Streams
|
|
35
|
-
this._updated = new Subject();
|
|
36
|
-
//Public Streams
|
|
37
|
-
this.updated$ = this._updated.asObservable();
|
|
38
|
-
this.baseUrl = '/api/appContext';
|
|
39
|
-
}
|
|
40
|
-
//Session
|
|
41
|
-
getCurrentFromSession() {
|
|
42
|
-
return this.sessionStorage.getObject(this.storageKeyName);
|
|
43
|
-
}
|
|
44
|
-
setCurrentFromSession(value) {
|
|
45
|
-
this.sessionStorage.setObject(this.storageKeyName, value);
|
|
46
|
-
}
|
|
47
|
-
updateCurrentIfExpired() {
|
|
48
|
-
let context = this.getCurrentFromSession();
|
|
49
|
-
if (!context) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
let shouldBeUpdated = false;
|
|
53
|
-
let lr = context.lastRequested;
|
|
54
|
-
if (lr) {
|
|
55
|
-
let now = new Date();
|
|
56
|
-
let lastRequested = new Date(context.lastRequested);
|
|
57
|
-
let in3Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 3, 0, 0);
|
|
58
|
-
if (in3Mins.getTime() < now.getTime()) {
|
|
59
|
-
shouldBeUpdated = true;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
shouldBeUpdated = true;
|
|
64
|
-
}
|
|
65
|
-
if (shouldBeUpdated) {
|
|
66
|
-
this.updateCurrent();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
dataReceived(data) {
|
|
70
|
-
this.current = data;
|
|
71
|
-
for (let i = 0; i < this.successes.length; i++) {
|
|
72
|
-
let success = this.successes[i];
|
|
73
|
-
if (success) {
|
|
74
|
-
success(data);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
this.successes = [];
|
|
78
|
-
this.subscription.unsubscribe();
|
|
79
|
-
this.subscription = null;
|
|
80
|
-
if (data) {
|
|
81
|
-
let now = new Date();
|
|
82
|
-
console.log('AppContext has been updated at ' + now);
|
|
83
|
-
this._updated.next(data);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
getCurrentPrivate(success = null, getCachedIfExist = true) {
|
|
87
|
-
if (getCachedIfExist) {
|
|
88
|
-
let context = this.getCurrentFromSession();
|
|
89
|
-
if (context != null) {
|
|
90
|
-
if (success)
|
|
91
|
-
success(context);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (success) {
|
|
96
|
-
this.successes.push(success);
|
|
97
|
-
}
|
|
98
|
-
if (this.subscription != null) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
let now = new Date();
|
|
102
|
-
console.log('Requesting a new AppContext at ' + now);
|
|
103
|
-
this.subscription = this.get('getCurrentContext', null).subscribe({
|
|
104
|
-
next: (data) => {
|
|
105
|
-
this.dataReceived(data);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
//Public
|
|
110
|
-
getLatestCurrent(success = null) {
|
|
111
|
-
this.getCurrentPrivate(success, false);
|
|
112
|
-
}
|
|
113
|
-
getCurrent(success = null) {
|
|
114
|
-
this.getCurrentPrivate(success, true);
|
|
115
|
-
}
|
|
116
|
-
updateCurrent(success = null) {
|
|
117
|
-
//VadimOS: make dropping current & isAdmin throw 403
|
|
118
|
-
//this.clearCurrent();
|
|
119
|
-
this.getLatestCurrent(success);
|
|
120
|
-
}
|
|
121
|
-
clearCurrent() {
|
|
122
|
-
this.sessionStorage.remove(this.storageKeyName);
|
|
123
|
-
}
|
|
124
|
-
//Storage
|
|
125
|
-
clearLocalStorage() {
|
|
126
|
-
this.localStorage.clear();
|
|
127
|
-
}
|
|
128
|
-
clearSessionStorage() {
|
|
129
|
-
this.sessionStorage.clear();
|
|
130
|
-
}
|
|
131
|
-
clearWebStorage() {
|
|
132
|
-
this.clearLocalStorage();
|
|
133
|
-
this.clearSessionStorage();
|
|
134
|
-
}
|
|
135
|
-
//Properties
|
|
136
|
-
get current() {
|
|
137
|
-
this.updateCurrentIfExpired();
|
|
138
|
-
return this.getCurrentFromSession();
|
|
139
|
-
}
|
|
140
|
-
set current(value) {
|
|
141
|
-
this.setCurrentFromSession(value);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
AppContextService.ɵfac = function AppContextService_Factory(t) { return new (t || AppContextService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LocalStorageService), i0.ɵɵinject(i2.SessionStorageService)); };
|
|
145
|
-
AppContextService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AppContextService, factory: AppContextService.ɵfac });
|
|
146
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppContextService, [{
|
|
147
|
-
type: Injectable
|
|
148
|
-
}], function () { return [{ type: i1.HttpClient }, { type: i2.LocalStorageService }, { type: i2.SessionStorageService }]; }, null); })();
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsS0FBSztBQUNMLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUlsRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQWFuRCxZQUNZLElBQWdCLEVBQ2hCLFlBQWlDLEVBQ2pDLGNBQXFDO1FBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUhGLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQWZqRCxRQUFRO1FBQ0EsbUJBQWMsR0FBRyxZQUFZLENBQUM7UUFFOUIsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFdkIsaUJBQWlCO1FBQ1QsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFdEMsZ0JBQWdCO1FBQ1AsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFPL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUztJQUNELHFCQUFxQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8scUJBQXFCLENBQUMs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LENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7a0ZBckpVLGlCQUFpQjt1RUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTMgTm92IDIwMTdcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEJhc2VBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2Jhc2UtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3dlYi1zdG9yYWdlLnNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcHBDb250ZXh0U2VydmljZSBleHRlbmRzIEJhc2VBcGlTZXJ2aWNlIHtcclxuICAvL0NvbnN0c1xyXG4gIHByaXZhdGUgc3RvcmFnZUtleU5hbWUgPSAnYXBwQ29udGV4dCc7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gIHByaXZhdGUgc3VjY2Vzc2VzID0gW107XHJcblxyXG4gIC8vUHJpdmF0ZSBTdHJlYW1zXHJcbiAgcHJpdmF0ZSBfdXBkYXRlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgLy9QdWJsaWMgU3RyZWFtc1xyXG4gIHJlYWRvbmx5IHVwZGF0ZWQkID0gdGhpcy5fdXBkYXRlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgc2Vzc2lvblN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSAnL2FwaS9hcHBDb250ZXh0JztcclxuICB9XHJcblxyXG4gIC8vU2Vzc2lvblxyXG4gIHByaXZhdGUgZ2V0Q3VycmVudEZyb21TZXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRPYmplY3QodGhpcy5zdG9yYWdlS2V5TmFtZSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW50SWZFeHBpcmVkKCkge1xyXG4gICAgbGV0IGNvbnRleHQgPSB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG5cclxuICAgIGlmICghY29udGV4dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNob3VsZEJlVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgbGV0IGxyID0gY29udGV4dC5sYXN0UmVxdWVzdGVkO1xyXG5cclxuICAgIGlmIChscikge1xyXG4gICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgbGV0IGxhc3RSZXF1ZXN0ZWQgPSBuZXcgRGF0ZShjb250ZXh0Lmxhc3RSZXF1ZXN0ZWQpO1xyXG4gICAgICBsZXQgaW4zTWlucyA9IG5ldyBEYXRlKGxhc3RSZXF1ZXN0ZWQuZ2V0RnVsbFllYXIoKSwgbGFzdFJlcXVlc3RlZC5nZXRNb250aCgpLCBsYXN0UmVxdWVzdGVkLmdldERhdGUoKSxcclxuICAgICAgICBsYXN0UmVxdWVzdGVkLmdldEhvdXJzKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TWludXRlcygpICsgMywgMCwgMCk7XHJcblxyXG4gICAgICBpZiAoaW4zTWlucy5nZXRUaW1lKCkgPCBub3cuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgc2hvdWxkQmVVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHNob3VsZEJlVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNob3VsZEJlVXBkYXRlZCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGF0YVJlY2VpdmVkKGRhdGEpIHtcclxuICAgIHRoaXMuY3VycmVudCA9IGRhdGE7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN1Y2Nlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgc3VjY2VzcyA9IHRoaXMuc3VjY2Vzc2VzW2ldO1xyXG4gICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIHN1Y2Nlc3MoZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1Y2Nlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgY29uc29sZS5sb2coJ0FwcENvbnRleHQgaGFzIGJlZW4gdXBkYXRlZCBhdCAnICsgbm93KTtcclxuXHJcbiAgICAgIHRoaXMuX3VwZGF0ZWQubmV4dChkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzczogRnVuY3Rpb24gPSBudWxsLCBnZXRDYWNoZWRJZkV4aXN0OiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKGdldENhY2hlZElmRXhpc3QpIHtcclxuICAgICAgbGV0IGNvbnRleHQgPSB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG5cclxuICAgICAgaWYgKGNvbnRleHQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChzdWNjZXNzKSBzdWNjZXNzKGNvbnRleHQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuc3VjY2Vzc2VzLnB1c2goc3VjY2Vzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc29sZS5sb2coJ1JlcXVlc3RpbmcgYSBuZXcgQXBwQ29udGV4dCBhdCAnICsgbm93KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0KCdnZXRDdXJyZW50Q29udGV4dCcsIG51bGwpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhUmVjZWl2ZWQoZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9QdWJsaWNcclxuICBnZXRMYXRlc3RDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgdGhpcy5nZXRDdXJyZW50UHJpdmF0ZShzdWNjZXNzLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgdGhpcy5nZXRDdXJyZW50UHJpdmF0ZShzdWNjZXNzLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUN1cnJlbnQoc3VjY2VzczogRnVuY3Rpb24gPSBudWxsKSB7XHJcbiAgICAvL1ZhZGltT1M6IG1ha2UgZHJvcHBpbmcgY3VycmVudCAmIGlzQWRtaW4gdGhyb3cgNDAzXHJcbiAgICAvL3RoaXMuY2xlYXJDdXJyZW50KCk7XHJcbiAgICB0aGlzLmdldExhdGVzdEN1cnJlbnQoc3VjY2Vzcyk7XHJcbiAgfVxyXG5cclxuICBjbGVhckN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZSh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIC8vU3RvcmFnZVxyXG4gIGNsZWFyTG9jYWxTdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyU2Vzc2lvblN0b3JhZ2UoKSB7XHJcblx0XHR0aGlzLnNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuICBjbGVhcldlYlN0b3JhZ2UoKSB7XHJcblx0XHR0aGlzLmNsZWFyTG9jYWxTdG9yYWdlKCk7XHJcblx0XHR0aGlzLmNsZWFyU2Vzc2lvblN0b3JhZ2UoKTtcdFx0XHJcblx0fVxyXG5cclxuICAvL1Byb3BlcnRpZXNcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
29 Nov 2020
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
// Node
|
|
17
|
-
import { Injectable, Inject } from '@angular/core';
|
|
18
|
-
import { DOCUMENT } from '@angular/common';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/platform-browser";
|
|
21
|
-
export class DigitalMarketingService {
|
|
22
|
-
constructor(title, meta, dom) {
|
|
23
|
-
this.title = title;
|
|
24
|
-
this.meta = meta;
|
|
25
|
-
this.dom = dom;
|
|
26
|
-
}
|
|
27
|
-
updateTitle(title) {
|
|
28
|
-
this.title.setTitle(title);
|
|
29
|
-
}
|
|
30
|
-
updateDescription(desc) {
|
|
31
|
-
this.meta.updateTag({ name: 'description', content: desc });
|
|
32
|
-
}
|
|
33
|
-
updateKeywords(keywords) {
|
|
34
|
-
this.meta.updateTag({ name: 'keywords', content: keywords });
|
|
35
|
-
}
|
|
36
|
-
updateMetaTags(meta) {
|
|
37
|
-
meta.forEach(m => this.meta.updateTag(m));
|
|
38
|
-
}
|
|
39
|
-
setCanonicalUrl(url) {
|
|
40
|
-
const canUrl = url === undefined ? this.dom.URL : url;
|
|
41
|
-
const link = this.dom.createElement('link');
|
|
42
|
-
link.setAttribute('rel', 'canonical');
|
|
43
|
-
this.dom.head.appendChild(link);
|
|
44
|
-
link.setAttribute('href', canUrl);
|
|
45
|
-
}
|
|
46
|
-
updateCanonicalUrl(url) {
|
|
47
|
-
const canUrl = url === undefined ? this.dom.URL : url;
|
|
48
|
-
const head = this.dom.getElementsByTagName('head')[0];
|
|
49
|
-
let link = this.dom.querySelector(`link[rel='canonical']`) || null;
|
|
50
|
-
if (link == null) {
|
|
51
|
-
link = this.dom.createElement('link');
|
|
52
|
-
head.appendChild(link);
|
|
53
|
-
}
|
|
54
|
-
link.setAttribute('rel', 'canonical');
|
|
55
|
-
link.setAttribute('href', canUrl);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
DigitalMarketingService.ɵfac = function DigitalMarketingService_Factory(t) { return new (t || DigitalMarketingService)(i0.ɵɵinject(i1.Title), i0.ɵɵinject(i1.Meta), i0.ɵɵinject(DOCUMENT)); };
|
|
59
|
-
DigitalMarketingService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DigitalMarketingService, factory: DigitalMarketingService.ɵfac, providedIn: 'root' });
|
|
60
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DigitalMarketingService, [{
|
|
61
|
-
type: Injectable,
|
|
62
|
-
args: [{
|
|
63
|
-
providedIn: 'root'
|
|
64
|
-
}]
|
|
65
|
-
}], function () { return [{ type: i1.Title }, { type: i1.Meta }, { type: undefined, decorators: [{
|
|
66
|
-
type: Inject,
|
|
67
|
-
args: [DOCUMENT]
|
|
68
|
-
}] }]; }, null); })();
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2RtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNVLEtBQVksRUFDWixJQUFVLEVBQ1EsR0FBUTtRQUYxQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBTTtRQUNRLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFFcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFhO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBc0I7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFZO1FBQzFCLE1BQU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBWTtRQUM3QixNQUFNLE1BQU0sR0FBRyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLEdBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksSUFBSSxDQUFDO1FBRXBGLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNoQixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFvQixDQUFDO1lBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs4RkE1Q1UsdUJBQXVCLDJEQUl4QixRQUFROzZFQUpQLHVCQUF1QixXQUF2Qix1QkFBdUIsbUJBRnRCLE1BQU07dUZBRVAsdUJBQXVCO2NBSG5DLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBS0ksTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IE5vdiAyMDIwXHJcbiBcclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGl0bGUsIE1ldGEsIE1ldGFEZWZpbml0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWdpdGFsTWFya2V0aW5nU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcclxuICAgIHByaXZhdGUgbWV0YTogTWV0YSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9tOiBhbnksXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaXRsZSh0aXRsZT86IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEZXNjcmlwdGlvbihkZXNjPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogZGVzYyB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUtleXdvcmRzKGtleXdvcmRzPzogYW55KSB7XHJcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2tleXdvcmRzJywgY29udGVudDoga2V5d29yZHMgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNZXRhVGFncyhtZXRhOiBNZXRhRGVmaW5pdGlvbltdKSB7XHJcbiAgICBtZXRhLmZvckVhY2gobSA9PiB0aGlzLm1ldGEudXBkYXRlVGFnKG0pKTtcclxuICB9XHJcblxyXG4gIHNldENhbm9uaWNhbFVybCh1cmw/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNhblVybCA9IHVybCA9PT0gdW5kZWZpbmVkID8gdGhpcy5kb20uVVJMIDogdXJsO1xyXG4gICAgY29uc3QgbGluazogSFRNTExpbmtFbGVtZW50ID0gdGhpcy5kb20uY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcclxuICAgIHRoaXMuZG9tLmhlYWQuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhblVybCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDYW5vbmljYWxVcmwodXJsPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjYW5VcmwgPSB1cmwgPT09IHVuZGVmaW5lZCA/IHRoaXMuZG9tLlVSTCA6IHVybDtcclxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLmRvbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgbGV0IGxpbms6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMuZG9tLnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPSdjYW5vbmljYWwnXWApIHx8IG51bGw7XHJcblxyXG4gICAgaWYgKGxpbmsgPT0gbnVsbCkge1xyXG4gICAgICBsaW5rID0gdGhpcy5kb20uY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIH1cclxuXHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBjYW5VcmwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,53 +0,0 @@
|
|
|
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
|
-
29 Nov 2020
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
// Node
|
|
17
|
-
import { Injectable } from '@angular/core';
|
|
18
|
-
import { NavigationEnd } from '@angular/router';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/router";
|
|
21
|
-
export class GoogleAnalyticsService {
|
|
22
|
-
constructor(router) {
|
|
23
|
-
this.router = router;
|
|
24
|
-
/*
|
|
25
|
-
https://yashints.dev/blog/2019/02/12/angular-ga-tagmanager
|
|
26
|
-
https://developers.google.com/analytics/devguides/collection/gtagjs/pages
|
|
27
|
-
https://developers.google.com/analytics/devguides/collection/upgrade/analyticsjs
|
|
28
|
-
*/
|
|
29
|
-
}
|
|
30
|
-
subscribe() {
|
|
31
|
-
this.subscription = this.router.events.subscribe({
|
|
32
|
-
next: (event) => {
|
|
33
|
-
if (event instanceof NavigationEnd) {
|
|
34
|
-
if (window.ga) {
|
|
35
|
-
window.ga('set', 'page', event.urlAfterRedirects);
|
|
36
|
-
window.ga('send', 'pageview');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
unsubscribe() {
|
|
43
|
-
if (this.subscription) {
|
|
44
|
-
this.subscription.unsubscribe();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
GoogleAnalyticsService.ɵfac = function GoogleAnalyticsService_Factory(t) { return new (t || GoogleAnalyticsService)(i0.ɵɵinject(i1.Router)); };
|
|
49
|
-
GoogleAnalyticsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GoogleAnalyticsService, factory: GoogleAnalyticsService.ɵfac });
|
|
50
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GoogleAnalyticsService, [{
|
|
51
|
-
type: Injectable
|
|
52
|
-
}], function () { return [{ type: i1.Router }]; }, null); })();
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFVLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFHeEQsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQzs7OztVQUlFO0lBQ0osQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUMvQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7b0JBQ2xDLElBQVUsTUFBTyxDQUFDLEVBQUUsRUFBRTt3QkFDZCxNQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7d0JBQ25ELE1BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjtZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7OzRGQTVCVSxzQkFBc0I7NEVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7dUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IE5vdiAyMDIwIFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEdvb2dsZUFuYWx5dGljc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIC8qXHJcbiAgICAgIGh0dHBzOi8veWFzaGludHMuZGV2L2Jsb2cvMjAxOS8wMi8xMi9hbmd1bGFyLWdhLXRhZ21hbmFnZXJcclxuICAgICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL2d0YWdqcy9wYWdlc1xyXG4gICAgICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9hbmFseXRpY3MvZGV2Z3VpZGVzL2NvbGxlY3Rpb24vdXBncmFkZS9hbmFseXRpY3Nqc1xyXG4gICAgKi9cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgICBpZiAoKDxhbnk+d2luZG93KS5nYSkge1xyXG4gICAgICAgICAgICAoPGFueT53aW5kb3cpLmdhKCdzZXQnLCAncGFnZScsIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcclxuICAgICAgICAgICAgKDxhbnk+d2luZG93KS5nYSgnc2VuZCcsICdwYWdldmlldycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|