@osovitny/anatoly 2.15.12 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/anatoly.module.mjs +55 -0
- package/{esm2020 → esm2022}/lib/core/browser.mjs +23 -23
- package/{esm2020 → esm2022}/lib/core/consts/settings.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/consts/urls.mjs +18 -18
- package/{esm2020 → esm2022}/lib/core/converts/convert.mjs +104 -104
- package/{esm2020 → esm2022}/lib/core/converts/xmlFormatter.mjs +33 -33
- package/esm2022/lib/core/core.module.mjs +89 -0
- package/{esm2020 → esm2022}/lib/core/dom.mjs +152 -152
- package/esm2022/lib/core/go/base-go.service.mjs +50 -0
- package/{esm2020 → esm2022}/lib/core/guards/once-import.guard.mjs +20 -20
- package/{esm2020 → esm2022}/lib/core/guid.mjs +21 -21
- package/{esm2020 → esm2022}/lib/core/index.mjs +50 -50
- package/esm2022/lib/core/interceptors/httpInterceptor.mjs +107 -0
- package/esm2022/lib/core/localization/localization.module.mjs +44 -0
- package/esm2022/lib/core/localization/localization.service.mjs +184 -0
- package/esm2022/lib/core/localization/localizationSettings.module.mjs +90 -0
- package/esm2022/lib/core/localization/localize.pipe.mjs +76 -0
- package/{esm2020 → esm2022}/lib/core/localization/utils.mjs +41 -41
- package/esm2022/lib/core/logging/globalErrorHandler.mjs +42 -0
- package/esm2022/lib/core/logging/logging.service.mjs +36 -0
- package/{esm2020 → esm2022}/lib/core/notifications/alerts.mjs +105 -105
- package/{esm2020 → esm2022}/lib/core/notifications/interfaces/notification.mjs +16 -16
- package/esm2022/lib/core/notifications/services/notification-service.mjs +226 -0
- package/esm2022/lib/core/performance/stopwatch.mjs +55 -0
- package/esm2022/lib/core/services/appcontext.service.mjs +152 -0
- package/esm2022/lib/core/services/dm.service.mjs +72 -0
- package/esm2022/lib/core/services/google-analytics.service.mjs +55 -0
- package/esm2022/lib/core/services/idle.service.mjs +82 -0
- package/esm2022/lib/core/services/loading.service.mjs +68 -0
- package/esm2022/lib/core/services/web-storage.service.mjs +67 -0
- package/esm2022/lib/core/subs.mjs +30 -0
- package/{esm2020 → esm2022}/lib/core/utils.mjs +93 -93
- package/esm2022/lib/data/base/base-api.service.mjs +99 -0
- package/esm2022/lib/data/base/grid/base-grid-edit.service.mjs +83 -0
- package/esm2022/lib/data/base/grid/base-grid-read.service.mjs +65 -0
- package/{esm2020 → esm2022}/lib/data/consts.mjs +23 -23
- package/esm2022/lib/data/data.module.mjs +42 -0
- package/{esm2020 → esm2022}/lib/data/index.mjs +21 -21
- package/esm2022/lib/data/services/core-api.service.mjs +60 -0
- package/esm2022/lib/data/services/emails-api.service.mjs +48 -0
- package/esm2022/lib/data/services/notifications/notifications-api-service.mjs +41 -0
- package/esm2022/lib/ui/components/base/base-edit.component.mjs +135 -0
- package/esm2022/lib/ui/components/base/base.component.mjs +61 -0
- package/esm2022/lib/ui/components/base/base.dialog.mjs +67 -0
- package/esm2022/lib/ui/components/base/base.list.mjs +69 -0
- package/esm2022/lib/ui/components/base/base.page.mjs +31 -0
- package/esm2022/lib/ui/components/base/base.paged.page.mjs +66 -0
- package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +64 -0
- package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +68 -0
- package/esm2022/lib/ui/components/card/card-body.component.mjs +30 -0
- package/esm2022/lib/ui/components/card/card-footer.component.mjs +30 -0
- package/esm2022/lib/ui/components/card/card-header.component.mjs +34 -0
- package/esm2022/lib/ui/components/card/card.component.mjs +30 -0
- package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +33 -0
- package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +44 -0
- package/esm2022/lib/ui/components/datapager/datapager.component.mjs +85 -0
- package/esm2022/lib/ui/components/html-editor/base-html-editor.component.mjs +96 -0
- package/esm2022/lib/ui/components/html-editor/forms-html-editor.component.mjs +45 -0
- package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +85 -85
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +31 -0
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +31 -0
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/ui/components/index.mjs +43 -43
- package/esm2022/lib/ui/components/nodata/nodata.component.mjs +46 -0
- package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +49 -0
- package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/ui/components/spinners/pagespinner/spinkits.mjs +11 -11
- package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +49 -0
- package/{esm2020 → esm2022}/lib/ui/dialogs/index.mjs +16 -16
- package/esm2022/lib/ui/directives/hover.directive.mjs +45 -0
- package/{esm2020 → esm2022}/lib/ui/directives/index.mjs +17 -17
- package/esm2022/lib/ui/directives/native-element.directive.mjs +40 -0
- package/esm2022/lib/ui/external/fa.module.mjs +45 -0
- package/esm2022/lib/ui/external/kendo.module.mjs +90 -0
- package/esm2022/lib/ui/forms/components/address/address.component.mjs +141 -0
- package/esm2022/lib/ui/forms/components/company/company.component.mjs +94 -0
- package/esm2022/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +74 -0
- package/esm2022/lib/ui/forms/components/urlslug/urlslug.component.mjs +98 -0
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +124 -0
- package/{esm2020 → esm2022}/lib/ui/forms/index.mjs +23 -23
- package/esm2022/lib/ui/pipes/filesize.pipe.mjs +40 -0
- package/{esm2020 → esm2022}/lib/ui/pipes/index.mjs +18 -18
- package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +37 -0
- package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +35 -0
- package/esm2022/lib/ui/ui.module.mjs +192 -0
- package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +64 -0
- package/{esm2020 → esm2022}/lib/ui/validation/index.mjs +18 -18
- package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +39 -0
- package/{esm2020 → esm2022}/lib/ui/validation/validation-summary.component.mjs +125 -125
- package/{esm2020 → esm2022}/osovitny-anatoly.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +24 -24
- package/{fesm2015 → fesm2022}/osovitny-anatoly.mjs +5119 -5974
- package/fesm2022/osovitny-anatoly.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/anatoly.module.d.ts +10 -10
- package/lib/core/browser.d.ts +4 -4
- package/lib/core/consts/settings.d.ts +1 -1
- package/lib/core/consts/urls.d.ts +3 -3
- package/lib/core/converts/convert.d.ts +16 -16
- package/lib/core/converts/xmlFormatter.d.ts +4 -4
- package/lib/core/core.module.d.ts +14 -14
- package/lib/core/dom.d.ts +17 -17
- package/lib/core/go/base-go.service.d.ts +12 -12
- package/lib/core/guards/once-import.guard.d.ts +1 -1
- package/lib/core/guid.d.ts +3 -3
- package/lib/core/index.d.ts +28 -28
- package/lib/core/interceptors/httpInterceptor.d.ts +18 -18
- package/lib/core/localization/localization.module.d.ts +8 -8
- package/lib/core/localization/localization.service.d.ts +25 -25
- package/lib/core/localization/localizationSettings.module.d.ts +18 -18
- package/lib/core/localization/localize.pipe.d.ts +10 -10
- package/lib/core/localization/utils.d.ts +5 -5
- package/lib/core/logging/globalErrorHandler.d.ts +9 -9
- package/lib/core/logging/logging.service.d.ts +8 -8
- package/lib/core/notifications/alerts.d.ts +9 -9
- package/lib/core/notifications/interfaces/notification.d.ts +10 -10
- package/lib/core/notifications/services/notification-service.d.ts +25 -25
- package/lib/core/performance/stopwatch.d.ts +14 -14
- package/lib/core/services/appcontext.service.d.ts +31 -31
- package/lib/core/services/dm.service.d.ts +16 -16
- package/lib/core/services/google-analytics.service.d.ts +11 -11
- package/lib/core/services/idle.service.d.ts +19 -19
- package/lib/core/services/loading.service.d.ts +13 -13
- package/lib/core/services/web-storage.service.d.ts +22 -22
- package/lib/core/subs.d.ts +8 -8
- package/lib/core/utils.d.ts +11 -11
- package/lib/data/base/base-api.service.d.ts +18 -18
- package/lib/data/base/grid/base-grid-edit.service.d.ts +16 -16
- package/lib/data/base/grid/base-grid-read.service.d.ts +14 -14
- package/lib/data/consts.d.ts +5 -5
- package/lib/data/data.module.d.ts +7 -7
- package/lib/data/index.d.ts +6 -6
- package/lib/data/services/core-api.service.d.ts +12 -12
- package/lib/data/services/emails-api.service.d.ts +10 -10
- package/lib/data/services/notifications/notifications-api-service.d.ts +12 -12
- package/lib/ui/components/base/base-edit.component.d.ts +57 -57
- package/lib/ui/components/base/base.component.d.ts +17 -17
- package/lib/ui/components/base/base.dialog.d.ts +17 -17
- package/lib/ui/components/base/base.list.d.ts +19 -19
- package/lib/ui/components/base/base.page.d.ts +6 -6
- package/lib/ui/components/base/base.paged.page.d.ts +18 -18
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +19 -19
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +21 -21
- package/lib/ui/components/card/card-body.component.d.ts +6 -6
- package/lib/ui/components/card/card-footer.component.d.ts +6 -6
- package/lib/ui/components/card/card-header.component.d.ts +7 -7
- package/lib/ui/components/card/card.component.d.ts +6 -6
- package/lib/ui/components/check-icon/check-icon.component.d.ts +6 -6
- package/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.d.ts +8 -8
- package/lib/ui/components/datapager/datapager.component.d.ts +21 -21
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +21 -21
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +9 -9
- package/lib/ui/components/html-editor/html-editor.component.d.ts +9 -9
- package/lib/ui/components/html-editor/html-editor.defaultoptions.d.ts +1 -1
- package/lib/ui/components/identity/signin-button.component.d.ts +7 -7
- package/lib/ui/components/identity/signout-button.component.d.ts +7 -7
- package/lib/ui/components/identity/signup-button.component.d.ts +6 -6
- package/lib/ui/components/index.d.ts +25 -25
- package/lib/ui/components/nodata/nodata.component.d.ts +11 -11
- package/lib/ui/components/spinners/loading/loading.component.d.ts +13 -13
- package/lib/ui/components/spinners/pagespinner/pagespinner.component.d.ts +25 -25
- package/lib/ui/components/spinners/pagespinner/spinkits.d.ts +11 -11
- package/lib/ui/dialogs/contact-us/contact-us.dialog.d.ts +12 -12
- package/lib/ui/dialogs/index.d.ts +1 -1
- package/lib/ui/directives/hover.directive.d.ts +8 -8
- package/lib/ui/directives/index.d.ts +2 -2
- package/lib/ui/directives/native-element.directive.d.ts +11 -11
- package/lib/ui/external/fa.module.d.ts +10 -10
- package/lib/ui/external/kendo.module.d.ts +15 -15
- package/lib/ui/forms/components/address/address.component.d.ts +35 -35
- package/lib/ui/forms/components/company/company.component.d.ts +20 -20
- package/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.d.ts +26 -26
- package/lib/ui/forms/components/urlslug/urlslug.component.d.ts +23 -23
- package/lib/ui/forms/contact-us/contact-us.d.ts +33 -33
- package/lib/ui/forms/index.d.ts +5 -5
- package/lib/ui/pipes/filesize.pipe.d.ts +8 -8
- package/lib/ui/pipes/index.d.ts +3 -3
- package/lib/ui/pipes/replace-text.pipe.d.ts +7 -7
- package/lib/ui/pipes/safeHtml.pipe.d.ts +10 -10
- package/lib/ui/ui.module.d.ts +43 -46
- package/lib/ui/validation/form-validation-summary.component.d.ts +11 -11
- package/lib/ui/validation/index.d.ts +3 -3
- package/lib/ui/validation/item-validation-summary.component.d.ts +9 -9
- package/lib/ui/validation/validation-summary.component.d.ts +24 -24
- package/package.json +11 -17
- package/public-api.d.ts +12 -12
- package/esm2020/lib/anatoly.module.mjs +0 -56
- package/esm2020/lib/core/core.module.mjs +0 -89
- package/esm2020/lib/core/go/base-go.service.mjs +0 -48
- package/esm2020/lib/core/interceptors/httpInterceptor.mjs +0 -105
- package/esm2020/lib/core/localization/localization.module.mjs +0 -45
- package/esm2020/lib/core/localization/localization.service.mjs +0 -182
- package/esm2020/lib/core/localization/localizationSettings.module.mjs +0 -90
- package/esm2020/lib/core/localization/localize.pipe.mjs +0 -75
- package/esm2020/lib/core/logging/globalErrorHandler.mjs +0 -41
- package/esm2020/lib/core/logging/logging.service.mjs +0 -36
- package/esm2020/lib/core/notifications/services/notification-service.mjs +0 -225
- package/esm2020/lib/core/performance/stopwatch.mjs +0 -50
- package/esm2020/lib/core/services/appcontext.service.mjs +0 -149
- package/esm2020/lib/core/services/dm.service.mjs +0 -69
- package/esm2020/lib/core/services/google-analytics.service.mjs +0 -53
- package/esm2020/lib/core/services/idle.service.mjs +0 -77
- package/esm2020/lib/core/services/loading.service.mjs +0 -68
- package/esm2020/lib/core/services/web-storage.service.mjs +0 -66
- package/esm2020/lib/core/subs.mjs +0 -31
- package/esm2020/lib/data/base/base-api.service.mjs +0 -97
- package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +0 -81
- package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +0 -62
- package/esm2020/lib/data/data.module.mjs +0 -43
- package/esm2020/lib/data/services/core-api.service.mjs +0 -59
- package/esm2020/lib/data/services/emails-api.service.mjs +0 -47
- package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +0 -40
- package/esm2020/lib/ui/components/base/base-edit.component.mjs +0 -134
- package/esm2020/lib/ui/components/base/base.component.mjs +0 -63
- package/esm2020/lib/ui/components/base/base.dialog.mjs +0 -67
- package/esm2020/lib/ui/components/base/base.list.mjs +0 -70
- package/esm2020/lib/ui/components/base/base.page.mjs +0 -31
- package/esm2020/lib/ui/components/base/base.paged.page.mjs +0 -67
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +0 -106
- package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +0 -118
- package/esm2020/lib/ui/components/card/card-body.component.mjs +0 -37
- package/esm2020/lib/ui/components/card/card-footer.component.mjs +0 -37
- package/esm2020/lib/ui/components/card/card-header.component.mjs +0 -52
- package/esm2020/lib/ui/components/card/card.component.mjs +0 -41
- package/esm2020/lib/ui/components/check-icon/check-icon.component.mjs +0 -42
- package/esm2020/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -51
- package/esm2020/lib/ui/components/datapager/datapager.component.mjs +0 -89
- package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +0 -108
- package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +0 -63
- package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +0 -61
- package/esm2020/lib/ui/components/identity/signin-button.component.mjs +0 -36
- package/esm2020/lib/ui/components/identity/signout-button.component.mjs +0 -36
- package/esm2020/lib/ui/components/identity/signup-button.component.mjs +0 -35
- package/esm2020/lib/ui/components/nodata/nodata.component.mjs +0 -67
- package/esm2020/lib/ui/components/spinners/loading/loading.component.mjs +0 -57
- package/esm2020/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -84
- package/esm2020/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
- package/esm2020/lib/ui/directives/hover.directive.mjs +0 -51
- package/esm2020/lib/ui/directives/native-element.directive.mjs +0 -38
- package/esm2020/lib/ui/external/fa.module.mjs +0 -46
- package/esm2020/lib/ui/external/kendo.module.mjs +0 -91
- package/esm2020/lib/ui/forms/components/address/address.component.mjs +0 -242
- package/esm2020/lib/ui/forms/components/company/company.component.mjs +0 -142
- package/esm2020/lib/ui/forms/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -99
- package/esm2020/lib/ui/forms/components/urlslug/urlslug.component.mjs +0 -136
- package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +0 -212
- package/esm2020/lib/ui/pipes/filesize.pipe.mjs +0 -42
- package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +0 -37
- package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
- package/esm2020/lib/ui/ui.module.mjs +0 -197
- package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +0 -89
- package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +0 -59
- package/fesm2015/osovitny-anatoly.mjs.map +0 -1
- package/fesm2020/osovitny-anatoly.mjs +0 -5760
- package/fesm2020/osovitny-anatoly.mjs.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny vadim@osovitny.com
|
|
8
|
+
Anatoly Osovitny anatoly@osovitny.com
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
+
</file>
|
|
15
|
+
*/
|
|
16
|
+
/*
|
|
17
|
+
https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c
|
|
18
|
+
https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4
|
|
19
|
+
*/
|
|
20
|
+
// Node
|
|
21
|
+
import { Injectable } from "@angular/core";
|
|
22
|
+
// App
|
|
23
|
+
import { LoggingService } from "./logging.service";
|
|
24
|
+
import * as i0 from "@angular/core";
|
|
25
|
+
export class GlobalErrorHandler {
|
|
26
|
+
injector;
|
|
27
|
+
constructor(injector) {
|
|
28
|
+
this.injector = injector;
|
|
29
|
+
}
|
|
30
|
+
handleError(error) {
|
|
31
|
+
const loggingService = this.injector.get(LoggingService);
|
|
32
|
+
loggingService.logError(error);
|
|
33
|
+
// IMPORTANT: Rethrow the error otherwise it gets swallowed
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: GlobalErrorHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: GlobalErrorHandler });
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: GlobalErrorHandler, decorators: [{
|
|
40
|
+
type: Injectable
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsRXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRjs7O0VBR0U7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFnQixVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFbkUsTUFBTTtBQUNOLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUNUO0lBQXBCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLFdBQVcsQ0FBQyxLQUFLO1FBQ2YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQiwyREFBMkQ7UUFDM0QsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO3VHQVRVLGtCQUFrQjsyR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwIFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8qXHJcbiAgaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWNkbmwvZ2xvYmFsLWVycm9yLWhhbmRsaW5nLXdpdGgtYW5ndWxhcjItNmI5OTJiZGZiNTljXHJcbiAgaHR0cHM6Ly9tZWRpdW0uY29tL2FuZ3VsYXItaW4tZGVwdGgvZXhwZWN0aW5nLXRoZS11bmV4cGVjdGVkLWJlc3QtcHJhY3RpY2VzLWZvci1lcnJvci1oYW5kbGluZy1pbi1hbmd1bGFyLTIxYzM2NjJlZjllNFxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBMb2dnaW5nU2VydmljZSB9IGZyb20gXCIuL2xvZ2dpbmcuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsRXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3IpIHtcclxuICAgIGNvbnN0IGxvZ2dpbmdTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTG9nZ2luZ1NlcnZpY2UpO1xyXG4gICAgbG9nZ2luZ1NlcnZpY2UubG9nRXJyb3IoZXJyb3IpO1xyXG5cclxuICAgIC8vIElNUE9SVEFOVDogUmV0aHJvdyB0aGUgZXJyb3Igb3RoZXJ3aXNlIGl0IGdldHMgc3dhbGxvd2VkXHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
26 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
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
export class LoggingService {
|
|
20
|
+
constructor() { }
|
|
21
|
+
logError(error) {
|
|
22
|
+
console.error(error);
|
|
23
|
+
}
|
|
24
|
+
logInformation(info) {
|
|
25
|
+
console.info(info);
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: LoggingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: LoggingService, providedIn: "root" });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: LoggingService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: "root",
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return []; } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLENBQUMsS0FBSztRQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQzt1R0FUVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMCBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nZ2luZ1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbG9nRXJyb3IoZXJyb3IpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgbG9nSW5mb3JtYXRpb24oaW5mbykge1xyXG4gICAgY29uc29sZS5pbmZvKGluZm8pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,106 +1,106 @@
|
|
|
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
|
-
3 March 2020
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
import Swal from 'sweetalert2';
|
|
17
|
-
import { L10nUtils } from '../localization/utils';
|
|
18
|
-
export class Alerts {
|
|
19
|
-
static success(text, params, title, successAction) {
|
|
20
|
-
text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
|
|
21
|
-
title = L10nUtils.getLocalizedValue(title, null, 'Success');
|
|
22
|
-
Swal.fire({
|
|
23
|
-
text,
|
|
24
|
-
title,
|
|
25
|
-
icon: 'success',
|
|
26
|
-
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
27
|
-
})
|
|
28
|
-
.then(() => {
|
|
29
|
-
if (successAction) {
|
|
30
|
-
successAction();
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
static info(text, params, title) {
|
|
35
|
-
text = L10nUtils.getLocalizedValue(text, params);
|
|
36
|
-
title = L10nUtils.getLocalizedValue(title, null, 'Info');
|
|
37
|
-
Swal.fire({
|
|
38
|
-
text,
|
|
39
|
-
title,
|
|
40
|
-
icon: 'info',
|
|
41
|
-
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
static warning(text, params, title) {
|
|
45
|
-
text = L10nUtils.getLocalizedValue(text, params);
|
|
46
|
-
title = L10nUtils.getLocalizedValue(title, null, 'Warning');
|
|
47
|
-
Swal.fire({
|
|
48
|
-
text,
|
|
49
|
-
title,
|
|
50
|
-
icon: 'warning',
|
|
51
|
-
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
static error(text, params, title) {
|
|
55
|
-
text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');
|
|
56
|
-
title = L10nUtils.getLocalizedValue(title, null, 'Error');
|
|
57
|
-
Swal.fire({
|
|
58
|
-
text,
|
|
59
|
-
title,
|
|
60
|
-
icon: 'error',
|
|
61
|
-
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
static cancel(text, params, title) {
|
|
65
|
-
text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
|
|
66
|
-
title = L10nUtils.getLocalizedValue(title, null, 'Cancelled');
|
|
67
|
-
Swal.fire({
|
|
68
|
-
text,
|
|
69
|
-
title,
|
|
70
|
-
icon: 'info'
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
static notImplemented() {
|
|
74
|
-
this.warning('Not Implemented Yet');
|
|
75
|
-
}
|
|
76
|
-
;
|
|
77
|
-
static areYouSure(text, title, confirmButtonText, cancelButtonText, successAction, cancelAction) {
|
|
78
|
-
text = L10nUtils.getLocalizedValue(text);
|
|
79
|
-
title = L10nUtils.getLocalizedValue(title, null, 'AreYouSure');
|
|
80
|
-
confirmButtonText = L10nUtils.getLocalizedValue(confirmButtonText, null, 'AreYouSure-ConfirmButtonText');
|
|
81
|
-
cancelButtonText = L10nUtils.getLocalizedValue(cancelButtonText, null, 'AreYouSure-CancelButtonText');
|
|
82
|
-
Swal.fire({
|
|
83
|
-
text,
|
|
84
|
-
title,
|
|
85
|
-
icon: 'warning',
|
|
86
|
-
confirmButtonText,
|
|
87
|
-
cancelButtonText,
|
|
88
|
-
showCancelButton: true
|
|
89
|
-
})
|
|
90
|
-
.then((result) => {
|
|
91
|
-
if (result.value) {
|
|
92
|
-
if (successAction) {
|
|
93
|
-
successAction();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// result.dismiss can be 'cancel', 'overlay', 'close', and 'timer'
|
|
97
|
-
else if (result.dismiss == Swal.DismissReason.cancel || result.dismiss == Swal.DismissReason.close) {
|
|
98
|
-
if (cancelAction) {
|
|
99
|
-
cancelAction();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
;
|
|
105
|
-
}
|
|
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
|
+
3 March 2020
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
|
|
14
|
+
</file>
|
|
15
|
+
*/
|
|
16
|
+
import Swal from 'sweetalert2';
|
|
17
|
+
import { L10nUtils } from '../localization/utils';
|
|
18
|
+
export class Alerts {
|
|
19
|
+
static success(text, params, title, successAction) {
|
|
20
|
+
text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
|
|
21
|
+
title = L10nUtils.getLocalizedValue(title, null, 'Success');
|
|
22
|
+
Swal.fire({
|
|
23
|
+
text,
|
|
24
|
+
title,
|
|
25
|
+
icon: 'success',
|
|
26
|
+
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
27
|
+
})
|
|
28
|
+
.then(() => {
|
|
29
|
+
if (successAction) {
|
|
30
|
+
successAction();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
static info(text, params, title) {
|
|
35
|
+
text = L10nUtils.getLocalizedValue(text, params);
|
|
36
|
+
title = L10nUtils.getLocalizedValue(title, null, 'Info');
|
|
37
|
+
Swal.fire({
|
|
38
|
+
text,
|
|
39
|
+
title,
|
|
40
|
+
icon: 'info',
|
|
41
|
+
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
static warning(text, params, title) {
|
|
45
|
+
text = L10nUtils.getLocalizedValue(text, params);
|
|
46
|
+
title = L10nUtils.getLocalizedValue(title, null, 'Warning');
|
|
47
|
+
Swal.fire({
|
|
48
|
+
text,
|
|
49
|
+
title,
|
|
50
|
+
icon: 'warning',
|
|
51
|
+
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
static error(text, params, title) {
|
|
55
|
+
text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');
|
|
56
|
+
title = L10nUtils.getLocalizedValue(title, null, 'Error');
|
|
57
|
+
Swal.fire({
|
|
58
|
+
text,
|
|
59
|
+
title,
|
|
60
|
+
icon: 'error',
|
|
61
|
+
confirmButtonText: L10nUtils.getLocalizedValue('Ok')
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
static cancel(text, params, title) {
|
|
65
|
+
text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
|
|
66
|
+
title = L10nUtils.getLocalizedValue(title, null, 'Cancelled');
|
|
67
|
+
Swal.fire({
|
|
68
|
+
text,
|
|
69
|
+
title,
|
|
70
|
+
icon: 'info'
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
static notImplemented() {
|
|
74
|
+
this.warning('Not Implemented Yet');
|
|
75
|
+
}
|
|
76
|
+
;
|
|
77
|
+
static areYouSure(text, title, confirmButtonText, cancelButtonText, successAction, cancelAction) {
|
|
78
|
+
text = L10nUtils.getLocalizedValue(text);
|
|
79
|
+
title = L10nUtils.getLocalizedValue(title, null, 'AreYouSure');
|
|
80
|
+
confirmButtonText = L10nUtils.getLocalizedValue(confirmButtonText, null, 'AreYouSure-ConfirmButtonText');
|
|
81
|
+
cancelButtonText = L10nUtils.getLocalizedValue(cancelButtonText, null, 'AreYouSure-CancelButtonText');
|
|
82
|
+
Swal.fire({
|
|
83
|
+
text,
|
|
84
|
+
title,
|
|
85
|
+
icon: 'warning',
|
|
86
|
+
confirmButtonText,
|
|
87
|
+
cancelButtonText,
|
|
88
|
+
showCancelButton: true
|
|
89
|
+
})
|
|
90
|
+
.then((result) => {
|
|
91
|
+
if (result.value) {
|
|
92
|
+
if (successAction) {
|
|
93
|
+
successAction();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// result.dismiss can be 'cancel', 'overlay', 'close', and 'timer'
|
|
97
|
+
else if (result.dismiss == Swal.DismissReason.cancel || result.dismiss == Swal.DismissReason.close) {
|
|
98
|
+
if (cancelAction) {
|
|
99
|
+
cancelAction();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
;
|
|
105
|
+
}
|
|
106
106
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbm90aWZpY2F0aW9ucy9hbGVydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE1BQU0sT0FBTyxNQUFNO0lBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFLLEVBQUUsTUFBYyxFQUFFLEtBQU0sRUFBRSxhQUFjO1FBQ2pFLElBQUksR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pFLEtBQUssR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsSUFBSTtZQUNKLEtBQUs7WUFDTCxJQUFJLEVBQUUsU0FBUztZQUNmLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7U0FDckQsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLGFBQWEsRUFBRTtnQkFDakIsYUFBYSxFQUFFLENBQUM7YUFDakI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUM3QyxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNSLElBQUk7WUFDSixLQUFLO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixpQkFBaUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUNoRCxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNSLElBQUk7WUFDSixLQUFLO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixpQkFBaUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUssRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUMvQyxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDakUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJO1lBQ0osS0FBSztZQUNMLElBQUksRUFBRSxPQUFPO1lBQ2IsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFLLEVBQUUsTUFBYyxFQUFFLEtBQU07UUFDaEQsSUFBSSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdkUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJO1lBQ0osS0FBSztZQUNMLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQUEsQ0FBQztJQUVLLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQU0sRUFBRSxpQkFBa0IsRUFBRSxnQkFBaUIsRUFBRSxhQUFjLEVBQUUsWUFBYTtRQUN6RyxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLEtBQUssR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvRCxpQkFBaUIsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDekcsZ0JBQWdCLEdBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRXZHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJO1lBQ0osS0FBSztZQUNMLElBQUksRUFBRSxTQUFTO1lBQ2YsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDaEIsSUFBSSxhQUFhLEVBQUU7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDO2lCQUNqQjthQUNGO1lBQ0Qsa0VBQWtFO2lCQUM3RCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDbEcsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLFlBQVksRUFBRSxDQUFDO2lCQUNoQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUEsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDMgTWFyY2ggMjAyMFxyXG4gICAgXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEwxMG5VdGlscyB9IGZyb20gJy4uL2xvY2FsaXphdGlvbi91dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQWxlcnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHN1Y2Nlc3ModGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIHN1Y2Nlc3NBY3Rpb24/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvblN1Y2Nlc3NGdWxsJyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSwgbnVsbCwgJ1N1Y2Nlc3MnKTtcclxuXHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICB0ZXh0LFxyXG4gICAgICB0aXRsZSxcclxuICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKCdPaycpXHJcbiAgICB9KVxyXG4gICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAoc3VjY2Vzc0FjdGlvbikge1xyXG4gICAgICAgIHN1Y2Nlc3NBY3Rpb24oKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGluZm8odGV4dCwgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUsIG51bGwsICdJbmZvJyk7XHJcblxyXG4gICAgU3dhbC5maXJlKHtcclxuICAgICAgdGV4dCxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIGljb246ICdpbmZvJyxcclxuICAgICAgY29uZmlybUJ1dHRvblRleHQ6IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSgnT2snKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHdhcm5pbmcodGV4dCwgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUsIG51bGwsICdXYXJuaW5nJyk7XHJcblxyXG4gICAgU3dhbC5maXJlKHtcclxuICAgICAgdGV4dCxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIGljb246ICd3YXJuaW5nJyxcclxuICAgICAgY29uZmlybUJ1dHRvblRleHQ6IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSgnT2snKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGVycm9yKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ0Vycm9yT2NjdXJlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUsIG51bGwsICdFcnJvcicpO1xyXG5cclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgIHRleHQsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKCdPaycpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2FuY2VsKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvbkNhbmNlbGxlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUsIG51bGwsICdDYW5jZWxsZWQnKTtcclxuXHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICB0ZXh0LFxyXG4gICAgICB0aXRsZSxcclxuICAgICAgaWNvbjogJ2luZm8nXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBub3RJbXBsZW1lbnRlZCgpIHtcclxuICAgIHRoaXMud2FybmluZygnTm90IEltcGxlbWVudGVkIFlldCcpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXJlWW91U3VyZSh0ZXh0LCB0aXRsZT8sIGNvbmZpcm1CdXR0b25UZXh0PywgY2FuY2VsQnV0dG9uVGV4dD8sIHN1Y2Nlc3NBY3Rpb24/LCBjYW5jZWxBY3Rpb24/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUsIG51bGwsICdBcmVZb3VTdXJlJyk7XHJcbiAgICBjb25maXJtQnV0dG9uVGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZShjb25maXJtQnV0dG9uVGV4dCwgbnVsbCwgJ0FyZVlvdVN1cmUtQ29uZmlybUJ1dHRvblRleHQnKTtcclxuICAgIGNhbmNlbEJ1dHRvblRleHQgID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKGNhbmNlbEJ1dHRvblRleHQsIG51bGwsICdBcmVZb3VTdXJlLUNhbmNlbEJ1dHRvblRleHQnKTtcclxuXHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICB0ZXh0LFxyXG4gICAgICB0aXRsZSxcclxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxyXG4gICAgICBjb25maXJtQnV0dG9uVGV4dCxcclxuICAgICAgY2FuY2VsQnV0dG9uVGV4dCxcclxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZVxyXG4gICAgfSlcclxuICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdC52YWx1ZSkge1xyXG4gICAgICAgIGlmIChzdWNjZXNzQWN0aW9uKSB7XHJcbiAgICAgICAgICBzdWNjZXNzQWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIHJlc3VsdC5kaXNtaXNzIGNhbiBiZSAnY2FuY2VsJywgJ292ZXJsYXknLCAnY2xvc2UnLCBhbmQgJ3RpbWVyJ1xyXG4gICAgICBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PSBTd2FsLkRpc21pc3NSZWFzb24uY2FuY2VsIHx8IHJlc3VsdC5kaXNtaXNzID09IFN3YWwuRGlzbWlzc1JlYXNvbi5jbG9zZSkge1xyXG4gICAgICAgIGlmIChjYW5jZWxBY3Rpb24pIHtcclxuICAgICAgICAgIGNhbmNlbEFjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
@@ -1,17 +1,17 @@
|
|
|
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
|
-
export {};
|
|
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
|
+
export {};
|
|
17
17
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEp1biAyMDIwIFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5vdGlmaWNhdGlvbiB7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgaXNOZXc6IGJvb2xlYW47XHJcbiAgaXNTZXNzaW9uOiBib29sZWFuO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBjb21wb25lbnQ/OiBzdHJpbmc7XHJcbiAgb3BlcmF0aW9uPzogc3RyaW5nO1xyXG4gIGNyZWF0ZWREYXRlPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,226 @@
|
|
|
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
|
+
toastrService;
|
|
30
|
+
// SignalR
|
|
31
|
+
// private hubConnection: signalR.HubConnection;
|
|
32
|
+
// private socketUrl: string;
|
|
33
|
+
// Notifications
|
|
34
|
+
_sessionNotifications = new BehaviorSubject([]);
|
|
35
|
+
_serverNotifications = new BehaviorSubject([]);
|
|
36
|
+
// Public
|
|
37
|
+
sessionNotifications$ = this._sessionNotifications.asObservable();
|
|
38
|
+
serverNotifications$ = this._serverNotifications.asObservable();
|
|
39
|
+
constructor(toastrService) {
|
|
40
|
+
this.toastrService = toastrService;
|
|
41
|
+
// this.onInit();
|
|
42
|
+
}
|
|
43
|
+
/*
|
|
44
|
+
onInit() {
|
|
45
|
+
if (AppCoreSettings.AzureAD) {
|
|
46
|
+
this.authService.getAuthToken().subscribe((token: string) => {
|
|
47
|
+
this.startSignalRConnection(token);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
this.startSignalRConnection();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
ngOnDestroy() {
|
|
57
|
+
this.stopSignalRConnection();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// SignalR
|
|
61
|
+
private startSignalRConnection(accessToken?) {
|
|
62
|
+
const cskii = AppCoreSettings.selectedClientID;
|
|
63
|
+
// tslint:disable-next-line:variable-name
|
|
64
|
+
const cskii_upn = AppCoreSettings.CSKII_UPN;
|
|
65
|
+
// tslint:disable-next-line:variable-name
|
|
66
|
+
const cli_sessionguid = AppCoreSettings.CLI_SessionGUID;
|
|
67
|
+
|
|
68
|
+
const url = this.socketUrl + '?cskii=' + cskii + '&cskii_upn=' + cskii_upn + '&cli_sessionguid=' + cli_sessionguid;
|
|
69
|
+
|
|
70
|
+
if (accessToken) {
|
|
71
|
+
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
72
|
+
.withUrl(url, {
|
|
73
|
+
skipNegotiation: false,
|
|
74
|
+
transport: signalR.HttpTransportType.WebSockets,
|
|
75
|
+
accessTokenFactory: () => accessToken
|
|
76
|
+
})
|
|
77
|
+
.withAutomaticReconnect()
|
|
78
|
+
.configureLogging(signalR.LogLevel.Debug)
|
|
79
|
+
.build();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
83
|
+
.withUrl(this.socketUrl, {
|
|
84
|
+
skipNegotiation: true,
|
|
85
|
+
transport: signalR.HttpTransportType.WebSockets
|
|
86
|
+
})
|
|
87
|
+
.withAutomaticReconnect()
|
|
88
|
+
.configureLogging(signalR.LogLevel.Debug)
|
|
89
|
+
.build();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
this.hubConnection
|
|
93
|
+
.start()
|
|
94
|
+
.then(() => this.signalRConnection_onSuccess())
|
|
95
|
+
.catch(err => {
|
|
96
|
+
console.error('Connection failed to SignalR Notification Hub')
|
|
97
|
+
})
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private signalRConnection_onSuccess() {
|
|
101
|
+
this.addReceiveMessageDataListener();
|
|
102
|
+
|
|
103
|
+
this.notificationsApiService.retrieveNotifications().subscribe(data => {
|
|
104
|
+
this.serverNotifications = data;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
stopSignalRConnection() {
|
|
109
|
+
if (this.hubConnection) {
|
|
110
|
+
this.hubConnection.stop();
|
|
111
|
+
this.hubConnection = null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private addReceiveMessageDataListener = () => {
|
|
116
|
+
this.hubConnection.on('ReceiveMessage', (message) => {
|
|
117
|
+
if (message) {
|
|
118
|
+
if (message.type === 'error') {
|
|
119
|
+
this.error(message.text, null, null, false);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.success(message.text, null, null, false);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const notification = {
|
|
126
|
+
id: message.id,
|
|
127
|
+
isNew: message.isNew,
|
|
128
|
+
isSession: true,
|
|
129
|
+
text: message.text,
|
|
130
|
+
type: message.type,
|
|
131
|
+
createdDate: message.createdDate
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
this.addSessionNotificationToList(notification);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
*/
|
|
139
|
+
addSessionNotification(text, type) {
|
|
140
|
+
const id = Guid.newGuid();
|
|
141
|
+
const notification = { id, isNew: true, isSession: true, text, type, createdDate: new Date(Date.now()).toISOString() };
|
|
142
|
+
this.addSessionNotificationToList(notification);
|
|
143
|
+
}
|
|
144
|
+
addSessionNotificationToList(notification) {
|
|
145
|
+
this.sessionNotifications = [
|
|
146
|
+
notification,
|
|
147
|
+
...this.sessionNotifications,
|
|
148
|
+
];
|
|
149
|
+
}
|
|
150
|
+
// Public API
|
|
151
|
+
removeNotification(id, isSession) {
|
|
152
|
+
if (isSession) {
|
|
153
|
+
this.sessionNotifications = this.sessionNotifications.filter(notifications => notifications.id !== id);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.serverNotifications = this.serverNotifications.filter(notifications => notifications.id !== id);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
success(text, params, title, createSessionNotification = true) {
|
|
160
|
+
text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
|
|
161
|
+
title = L10nUtils.getLocalizedValue(title);
|
|
162
|
+
this.toastrService.success(text, title, {
|
|
163
|
+
timeOut: 3000,
|
|
164
|
+
progressBar: true
|
|
165
|
+
});
|
|
166
|
+
if (createSessionNotification) {
|
|
167
|
+
this.addSessionNotification(text, 'success');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
info(text, params, title) {
|
|
171
|
+
text = L10nUtils.getLocalizedValue(text, params);
|
|
172
|
+
title = L10nUtils.getLocalizedValue(title);
|
|
173
|
+
this.toastrService.info(text, title, {
|
|
174
|
+
timeOut: 3000,
|
|
175
|
+
progressBar: true
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
warning(text, params, title) {
|
|
179
|
+
text = L10nUtils.getLocalizedValue(text, params);
|
|
180
|
+
title = L10nUtils.getLocalizedValue(title);
|
|
181
|
+
this.toastrService.warning(text, title, {
|
|
182
|
+
timeOut: 3000,
|
|
183
|
+
progressBar: true
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
error(text, params, title, createSessionNotification = true) {
|
|
187
|
+
text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');
|
|
188
|
+
title = L10nUtils.getLocalizedValue(title);
|
|
189
|
+
this.toastrService.error(text, title, {
|
|
190
|
+
timeOut: 3000,
|
|
191
|
+
progressBar: true
|
|
192
|
+
});
|
|
193
|
+
if (createSessionNotification) {
|
|
194
|
+
this.addSessionNotification(text, 'error');
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
cancel(text, params, title) {
|
|
198
|
+
text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
|
|
199
|
+
title = L10nUtils.getLocalizedValue(title);
|
|
200
|
+
this.toastrService.info(text, title, {
|
|
201
|
+
timeOut: 3000,
|
|
202
|
+
progressBar: true
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// SessionNotifications
|
|
206
|
+
get sessionNotifications() {
|
|
207
|
+
return this._sessionNotifications.getValue();
|
|
208
|
+
}
|
|
209
|
+
set sessionNotifications(val) {
|
|
210
|
+
this._sessionNotifications.next(val);
|
|
211
|
+
}
|
|
212
|
+
// ServerNotifications
|
|
213
|
+
get serverNotifications() {
|
|
214
|
+
return this._serverNotifications.getValue();
|
|
215
|
+
}
|
|
216
|
+
set serverNotifications(val) {
|
|
217
|
+
this._serverNotifications.next(val);
|
|
218
|
+
}
|
|
219
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationService, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
220
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationService, providedIn: 'root' });
|
|
221
|
+
}
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationService, decorators: [{
|
|
223
|
+
type: Injectable,
|
|
224
|
+
args: [{ providedIn: 'root' }]
|
|
225
|
+
}], ctorParameters: function () { return [{ type: i1.ToastrService }]; } });
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTztBQUNQLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHbEMsVUFBVTtBQUNWLGlEQUFpRDtBQUNqRCw0R0FBNEc7QUFHNUcsTUFBTSxPQUFPLG1CQUFtQjtJQWFWO0lBWnBCLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsNkJBQTZCO0lBRTdCLGdCQUFnQjtJQUNSLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztJQUNqRSxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7SUFFeEUsU0FBUztJQUNBLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFekUsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUMsaUJBQWlCO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO3VHQWxOVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQURQLE1BQU07OzJGQUNsQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgSnVuIDIwMjAgXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbi8vIFJ4SnNcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IEwxMG5VdGlscyB9IGZyb20gJy4uLy4uL2xvY2FsaXphdGlvbi91dGlscyc7XHJcbmltcG9ydCB7IEd1aWQgfSBmcm9tICcuLi8uLi9ndWlkJztcclxuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcclxuXHJcbi8vIFNpZ25hbFJcclxuLy8gaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG4vLyBpbXBvcnQgeyBOb3RpZmljYXRpb25zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWFwaS1zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8gU2lnbmFsUlxyXG4gIC8vIHByaXZhdGUgaHViQ29ubmVjdGlvbjogc2lnbmFsUi5IdWJDb25uZWN0aW9uO1xyXG4gIC8vIHByaXZhdGUgc29ja2V0VXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIE5vdGlmaWNhdGlvbnNcclxuICBwcml2YXRlIF9zZXNzaW9uTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfc2VydmVyTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcblxyXG4gIC8vIFB1YmxpY1xyXG4gIHJlYWRvbmx5IHNlc3Npb25Ob3RpZmljYXRpb25zJCA9IHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHNlcnZlck5vdGlmaWNhdGlvbnMkID0gdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlKSB7XHJcbiAgICAvLyB0aGlzLm9uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBvbkluaXQoKSB7XHJcbiAgICBpZiAoQXBwQ29yZVNldHRpbmdzLkF6dXJlQUQpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoVG9rZW4oKS5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24odG9rZW4pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdG9wU2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIFNpZ25hbFJcclxuICBwcml2YXRlIHN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oYWNjZXNzVG9rZW4/KSB7XHJcbiAgICBjb25zdCBjc2tpaSA9IEFwcENvcmVTZXR0aW5ncy5zZWxlY3RlZENsaWVudElEO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICAgIGNvbnN0IGNza2lpX3VwbiA9IEFwcENvcmVTZXR0aW5ncy5DU0tJSV9VUE47XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gICAgY29uc3QgY2xpX3Nlc3Npb25ndWlkID0gQXBwQ29yZVNldHRpbmdzLkNMSV9TZXNzaW9uR1VJRDtcclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNvY2tldFVybCArICc/Y3NraWk9JyArIGNza2lpICsgJyZjc2tpaV91cG49JyArIGNza2lpX3VwbiArICcmY2xpX3Nlc3Npb25ndWlkPScgKyBjbGlfc2Vzc2lvbmd1aWQ7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh1cmwsIHtcclxuICAgICAgICAgIHNraXBOZWdvdGlhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICB0cmFuc3BvcnQ6IHNpZ25hbFIuSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyxcclxuICAgICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gYWNjZXNzVG9rZW5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh0aGlzLnNvY2tldFVybCwge1xyXG4gICAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHViQ29ubmVjdGlvblxyXG4gICAgICAuc3RhcnQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnNpZ25hbFJDb25uZWN0aW9uX29uU3VjY2VzcygpKVxyXG4gICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdDb25uZWN0aW9uIGZhaWxlZCB0byBTaWduYWxSIE5vdGlmaWNhdGlvbiBIdWInKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaWduYWxSQ29ubmVjdGlvbl9vblN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmFkZFJlY2VpdmVNZXNzYWdlRGF0YUxpc3RlbmVyKCk7XHJcblxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zQXBpU2VydmljZS5yZXRyaWV2ZU5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucyA9IGRhdGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3BTaWduYWxSQ29ubmVjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uLnN0b3AoKTtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUmVjZWl2ZU1lc3NhZ2VEYXRhTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmh1YkNvbm5lY3Rpb24ub24oJ1JlY2VpdmVNZXNzYWdlJywgKG1lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UudGV4dCwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhtZXNzYWdlLnRleHQsIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcclxuICAgICAgICAgIGlkOiBtZXNzYWdlLmlkLFxyXG4gICAgICAgICAgaXNOZXc6IG1lc3NhZ2UuaXNOZXcsXHJcbiAgICAgICAgICBpc1Nlc3Npb246IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBtZXNzYWdlLnRleHQsXHJcbiAgICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXHJcbiAgICAgICAgICBjcmVhdGVkRGF0ZTogbWVzc2FnZS5jcmVhdGVkRGF0ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb24pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgcHJpdmF0ZSBhZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpZCA9IEd1aWQubmV3R3VpZCgpO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0geyBpZCwgaXNOZXc6IHRydWUsIGlzU2Vzc2lvbjogdHJ1ZSwgdGV4dCwgdHlwZSwgY3JlYXRlZERhdGU6IG5ldyBEYXRlKERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCkgfTtcclxuXHJcbiAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb246IElOb3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMgPSBbXHJcbiAgICAgIG5vdGlmaWNhdGlvbixcclxuICAgICAgLi4udGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucyxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgQVBJXHJcbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcsIGlzU2Vzc2lvbjogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Ob3RpZmljYXRpb25zID0gdGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmlkICE9PSBpZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zID0gdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zLmZpbHRlcihub3RpZmljYXRpb25zID0+IG5vdGlmaWNhdGlvbnMuaWQgIT09IGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Y2Nlc3ModGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvblN1Y2Nlc3NGdWxsJyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3ModGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0LCAnc3VjY2VzcycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5mbyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLmluZm8odGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd2FybmluZyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLndhcm5pbmcodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IodGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ0Vycm9yT2NjdXJlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcih0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb24pIHtcclxuICAgICAgdGhpcy5hZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQsICdlcnJvcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvbkNhbmNlbGxlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5pbmZvKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFNlc3Npb25Ob3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKCk6IElOb3RpZmljYXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbk5vdGlmaWNhdGlvbnMuZ2V0VmFsdWUoKTtcclxuICB9XHJcbiAgc2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uTm90aWZpY2F0aW9ucy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvLyBTZXJ2ZXJOb3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlcnZlck5vdGlmaWNhdGlvbnMoKTogSU5vdGlmaWNhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLmdldFZhbHVlKCk7XHJcbiAgfVxyXG4gIHNldCBzZXJ2ZXJOb3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLm5leHQodmFsKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
name;
|
|
18
|
+
startTime;
|
|
19
|
+
stopTime;
|
|
20
|
+
running;
|
|
21
|
+
performance;
|
|
22
|
+
constructor(name) {
|
|
23
|
+
this.name = name;
|
|
24
|
+
this.startTime = 0;
|
|
25
|
+
this.stopTime = 0;
|
|
26
|
+
this.running = false;
|
|
27
|
+
this.performance = !!window.performance;
|
|
28
|
+
console.log(this.name + ' started.');
|
|
29
|
+
}
|
|
30
|
+
currentTime() {
|
|
31
|
+
return this.performance ? window.performance.now() : new Date().getTime();
|
|
32
|
+
}
|
|
33
|
+
start() {
|
|
34
|
+
this.startTime = this.currentTime();
|
|
35
|
+
this.running = true;
|
|
36
|
+
}
|
|
37
|
+
stop() {
|
|
38
|
+
this.stopTime = this.currentTime();
|
|
39
|
+
this.running = false;
|
|
40
|
+
}
|
|
41
|
+
getElapsedMilliseconds() {
|
|
42
|
+
if (this.running) {
|
|
43
|
+
this.stopTime = this.currentTime();
|
|
44
|
+
}
|
|
45
|
+
return this.stopTime - this.startTime;
|
|
46
|
+
}
|
|
47
|
+
getElapsedSeconds() {
|
|
48
|
+
return this.getElapsedMilliseconds() / 1000;
|
|
49
|
+
}
|
|
50
|
+
printElapsedAsMilliseconds() {
|
|
51
|
+
let elapsed = this.getElapsedMilliseconds();
|
|
52
|
+
console.log(`${this.name} stopped. Execution time: ${elapsed} ms`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcHdhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvcGVyZm9ybWFuY2Uvc3RvcHdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTSxPQUFPLFNBQVM7SUFDWixJQUFJLENBQUM7SUFDTCxTQUFTLENBQUM7SUFDVixRQUFRLENBQUM7SUFDVCxPQUFPLENBQUM7SUFDUixXQUFXLENBQUM7SUFFcEIsWUFBWSxJQUFJO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV4QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTcgQXByIDIwMjNcclxuIFxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIFN0b3B3YXRjaCB7XHJcbiAgcHJpdmF0ZSBuYW1lO1xyXG4gIHByaXZhdGUgc3RhcnRUaW1lO1xyXG4gIHByaXZhdGUgc3RvcFRpbWU7XHJcbiAgcHJpdmF0ZSBydW5uaW5nO1xyXG4gIHByaXZhdGUgcGVyZm9ybWFuY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XHJcbiAgICB0aGlzLnN0b3BUaW1lID0gMDtcclxuICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJmb3JtYW5jZSA9ICEhd2luZG93LnBlcmZvcm1hbmNlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMubmFtZSArICcgc3RhcnRlZC4nKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3VycmVudFRpbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtYW5jZSA/IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSA6IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKSB7XHJcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucnVubmluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdG9wKCkge1xyXG4gICAgdGhpcy5zdG9wVGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxhcHNlZE1pbGxpc2Vjb25kcygpIHtcclxuICAgIGlmICh0aGlzLnJ1bm5pbmcpIHtcclxuICAgICAgdGhpcy5zdG9wVGltZSA9IHRoaXMuY3VycmVudFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdG9wVGltZSAtIHRoaXMuc3RhcnRUaW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxhcHNlZFNlY29uZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbGFwc2VkTWlsbGlzZWNvbmRzKCkgLyAxMDAwO1xyXG4gIH1cclxuXHJcbiAgcHJpbnRFbGFwc2VkQXNNaWxsaXNlY29uZHMoKSB7XHJcbiAgICBsZXQgZWxhcHNlZCA9IHRoaXMuZ2V0RWxhcHNlZE1pbGxpc2Vjb25kcygpO1xyXG4gICAgY29uc29sZS5sb2coYCR7dGhpcy5uYW1lfSBzdG9wcGVkLiBFeGVjdXRpb24gdGltZTogJHtlbGFwc2VkfSBtc2ApO1xyXG4gIH1cclxufVxyXG4iXX0=
|