@osovitny/anatoly 2.16.6 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm2022/lib/core/consts/settings.mjs +2 -1
  2. package/esm2022/lib/core/core.module.mjs +17 -15
  3. package/esm2022/lib/core/index.mjs +6 -4
  4. package/esm2022/lib/core/models/appcontext.service.mjs +17 -0
  5. package/esm2022/lib/core/notifications/services/notification-service.mjs +4 -155
  6. package/esm2022/lib/core/services/appcontext.service.mjs +5 -4
  7. package/esm2022/lib/core/services/starter.service.mjs +77 -0
  8. package/esm2022/lib/data/base/api.service.mjs +99 -0
  9. package/esm2022/lib/data/base/grid/grid-edit.service.mjs +83 -0
  10. package/esm2022/lib/data/base/grid/grid-read.service.mjs +64 -0
  11. package/esm2022/lib/data/data.module.mjs +2 -1
  12. package/esm2022/lib/data/index.mjs +7 -6
  13. package/esm2022/lib/data/services/core-api.service.mjs +6 -6
  14. package/esm2022/lib/data/services/emails-api.service.mjs +5 -5
  15. package/esm2022/lib/data/urls.mjs +22 -0
  16. package/esm2022/public-api.mjs +10 -10
  17. package/fesm2022/osovitny-anatoly.mjs +349 -466
  18. package/fesm2022/osovitny-anatoly.mjs.map +1 -1
  19. package/lib/core/consts/settings.d.ts +1 -0
  20. package/lib/core/index.d.ts +4 -3
  21. package/lib/core/models/appcontext.service.d.ts +6 -0
  22. package/lib/core/notifications/services/notification-service.d.ts +0 -12
  23. package/lib/core/services/appcontext.service.d.ts +2 -2
  24. package/lib/core/services/starter.service.d.ts +11 -0
  25. package/lib/data/base/{base-api.service.d.ts → api.service.d.ts} +3 -3
  26. package/lib/data/base/grid/{base-grid-edit.service.d.ts → grid-edit.service.d.ts} +4 -4
  27. package/lib/data/base/grid/{base-grid-read.service.d.ts → grid-read.service.d.ts} +3 -3
  28. package/lib/data/index.d.ts +4 -5
  29. package/lib/data/services/core-api.service.d.ts +2 -2
  30. package/lib/data/services/emails-api.service.d.ts +2 -2
  31. package/lib/data/urls.d.ts +4 -0
  32. package/package.json +1 -1
  33. package/esm2022/lib/core/consts/urls.mjs +0 -19
  34. package/esm2022/lib/data/base/base-api.service.mjs +0 -99
  35. package/esm2022/lib/data/base/grid/base-grid-edit.service.mjs +0 -83
  36. package/esm2022/lib/data/base/grid/base-grid-read.service.mjs +0 -65
  37. package/esm2022/lib/data/consts.mjs +0 -24
  38. package/esm2022/lib/data/services/notifications/notifications-api-service.mjs +0 -41
  39. package/lib/core/consts/urls.d.ts +0 -3
  40. package/lib/data/consts.d.ts +0 -5
  41. package/lib/data/services/notifications/notifications-api-service.d.ts +0 -12
@@ -19,4 +19,5 @@
19
19
  */
20
20
  export const AppName = document.getElementById('appName').getAttribute('data-appname');
21
21
  export const AppCoreSettings = JSON.parse((document.getElementById('appCoreSettings')).getAttribute('data-appcoresettings'));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBSSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBc0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RDLENBQ0MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUN0QixDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIEV4YW1wbGVzOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2Jsb2IvbWFpbi9zcmMvc2VydmVyL2VkaXRvclNlcnZpY2VzLnRzXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi9tYWluL3NyYy9jb21waWxlci9jb3JlLnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IEFwcE5hbWUgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcE5hbWUnKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXBwbmFtZScpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFwcENvcmVTZXR0aW5ncyA9IEpTT04ucGFyc2UoXHJcbiAgKChcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBDb3JlU2V0dGluZ3MnKVxyXG4gICkgYXMgSFRNTElucHV0RWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWFwcGNvcmVzZXR0aW5ncycpXHJcbik7XHJcbiJdfQ==
22
+ export const ApiUrl = `${AppCoreSettings.apiUrl}`;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBSSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBc0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RDLENBQ0MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUN0QixDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUM1RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIEV4YW1wbGVzOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2Jsb2IvbWFpbi9zcmMvc2VydmVyL2VkaXRvclNlcnZpY2VzLnRzXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi9tYWluL3NyYy9jb21waWxlci9jb3JlLnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IEFwcE5hbWUgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcE5hbWUnKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXBwbmFtZScpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFwcENvcmVTZXR0aW5ncyA9IEpTT04ucGFyc2UoXHJcbiAgKChcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBDb3JlU2V0dGluZ3MnKVxyXG4gICkgYXMgSFRNTElucHV0RWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWFwcGNvcmVzZXR0aW5ncycpXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgQXBpVXJsID0gYCR7QXBwQ29yZVNldHRpbmdzLmFwaVVybH1gO1xyXG4iXX0=
@@ -13,22 +13,24 @@
13
13
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
14
  </file>
15
15
  */
16
+ //Node
16
17
  import { NgModule, Optional, SkipSelf } from '@angular/core';
17
18
  import { CommonModule } from '@angular/common';
18
19
  import { ToastrModule } from 'ngx-toastr';
19
- //Logging
20
- import { LoggingService } from './logging/logging.service';
21
- //notifications
22
- import { NotificationService } from './notifications/services/notification-service';
20
+ //App
23
21
  //localization
24
22
  import { LocalizationModule } from './localization/localization.module';
25
23
  import { LocalizationSettingsModule } from './localization/localizationSettings.module';
26
24
  //Services
27
25
  import { AppContextService } from './services/appcontext.service';
28
- import { LoadingService } from './services/loading.service';
29
26
  import { DigitalMarketingService } from './services/dm.service';
30
27
  import { GoogleAnalyticsService } from './services/google-analytics.service';
28
+ import { LoadingService } from './services/loading.service';
31
29
  import { LocalStorageService, SessionStorageService } from './services/web-storage.service';
30
+ //Services: logging
31
+ import { LoggingService } from './logging/logging.service';
32
+ //Services: notifications
33
+ import { NotificationService } from './notifications/services/notification-service';
32
34
  import * as i0 from "@angular/core";
33
35
  import * as i1 from "ngx-toastr";
34
36
  export let InjectorInstance;
@@ -41,14 +43,14 @@ export class AnatolyCoreModule {
41
43
  static ɵfac = function AnatolyCoreModule_Factory(t) { return new (t || AnatolyCoreModule)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(AnatolyCoreModule, 12)); };
42
44
  static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyCoreModule });
43
45
  static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
44
- LoggingService,
45
- NotificationService,
46
46
  AppContextService,
47
- LoadingService,
48
47
  DigitalMarketingService,
49
48
  GoogleAnalyticsService,
49
+ LoadingService,
50
50
  LocalStorageService,
51
- SessionStorageService
51
+ SessionStorageService,
52
+ LoggingService,
53
+ NotificationService
52
54
  ], imports: [CommonModule,
53
55
  ToastrModule.forRoot(),
54
56
  LocalizationSettingsModule,
@@ -69,15 +71,15 @@ export class AnatolyCoreModule {
69
71
  LocalizationModule,
70
72
  ],
71
73
  providers: [
72
- LoggingService,
73
- NotificationService,
74
74
  AppContextService,
75
- LoadingService,
76
75
  DigitalMarketingService,
77
76
  GoogleAnalyticsService,
77
+ LoadingService,
78
78
  LocalStorageService,
79
- SessionStorageService
80
- ],
79
+ SessionStorageService,
80
+ LoggingService,
81
+ NotificationService
82
+ ]
81
83
  }]
82
84
  }], function () { return [{ type: i0.Injector }, { type: AnatolyCoreModule, decorators: [{
83
85
  type: Optional
@@ -87,4 +89,4 @@ export class AnatolyCoreModule {
87
89
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyCoreModule, { imports: [CommonModule, i1.ToastrModule, LocalizationSettingsModule,
88
90
  LocalizationModule], exports: [LocalizationSettingsModule,
89
91
  LocalizationModule] }); })();
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBWSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxTQUFTO0FBQ1QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELGVBQWU7QUFDZixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVwRixjQUFjO0FBQ2QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFLeEYsVUFBVTtBQUNWLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRTVGLE1BQU0sQ0FBQyxJQUFJLGdCQUEwQixDQUFDO0FBd0J0QyxNQUFNLE9BQU8saUJBQWlCO0lBQ1I7SUFBcEIsWUFBb0IsUUFBa0IsRUFBMEIsWUFBK0I7UUFBM0UsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7MkVBSFUsaUJBQWlCOzREQUFqQixpQkFBaUI7aUVBWGpCO1lBQ1QsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLHFCQUFxQjtTQUN0QixZQWxCQyxZQUFZO1lBQ1osWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN0QiwwQkFBMEI7WUFDMUIsa0JBQWtCLEVBR2xCLDBCQUEwQjtZQUMxQixrQkFBa0I7O3VGQWFULGlCQUFpQjtjQXRCN0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFlBQVksQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLDBCQUEwQjtvQkFDMUIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsMEJBQTBCO29CQUMxQixrQkFBa0I7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxjQUFjO29CQUNkLG1CQUFtQjtvQkFDbkIsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0QixtQkFBbUI7b0JBQ25CLHFCQUFxQjtpQkFDdEI7YUFDRjs7c0JBRTBDLFFBQVE7O3NCQUFJLFFBQVE7O3dGQURsRCxpQkFBaUIsY0FwQjFCLFlBQVksbUJBRVosMEJBQTBCO1FBQzFCLGtCQUFrQixhQUdsQiwwQkFBMEI7UUFDMUIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5IEp1bmUgMjAyMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuLy9Mb2dnaW5nXHJcbmltcG9ydCB7IExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL25vdGlmaWNhdGlvbnNcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSc7XHJcblxyXG4vL2xvY2FsaXphdGlvblxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2V0dGluZ3NNb2R1bGUgfSBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb25TZXR0aW5ncy5tb2R1bGUnO1xyXG5cclxuLy9HdWFyZHNcclxuaW1wb3J0IHsgdGhyb3dJZkFscmVhZHlMb2FkZWQgfSBmcm9tICcuL2d1YXJkcy9vbmNlLWltcG9ydC5ndWFyZCc7XHJcblxyXG4vL1NlcnZpY2VzXHJcbmltcG9ydCB7IEFwcENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlnaXRhbE1hcmtldGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHb29nbGVBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGxldCBJbmplY3Rvckluc3RhbmNlOiBJbmplY3RvcjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIExvY2FsaXphdGlvblNldHRpbmdzTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBMb2NhbGl6YXRpb25TZXR0aW5nc01vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTG9nZ2luZ1NlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgQXBwQ29udGV4dFNlcnZpY2UsXHJcbiAgICBMb2FkaW5nU2VydmljZSxcclxuICAgIERpZ2l0YWxNYXJrZXRpbmdTZXJ2aWNlLFxyXG4gICAgR29vZ2xlQW5hbHl0aWNzU2VydmljZSxcclxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUNvcmVNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFuYXRvbHlDb3JlTW9kdWxlKSB7XHJcbiAgICBJbmplY3Rvckluc3RhbmNlID0gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUMsS0FBSztBQUNMLGNBQWM7QUFDZCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RixVQUFVO0FBQ1YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTVGLG1CQUFtQjtBQUNuQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0QseUJBQXlCO0FBQ3pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7QUFFcEYsTUFBTSxDQUFDLElBQUksZ0JBQTBCLENBQUM7QUF5QnRDLE1BQU0sT0FBTyxpQkFBaUI7SUFDUjtJQUFwQixZQUFvQixRQUFrQixFQUEwQixZQUErQjtRQUEzRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQzsyRUFIVSxpQkFBaUI7NERBQWpCLGlCQUFpQjtpRUFaakI7WUFDVCxpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUVyQixjQUFjO1lBQ2QsbUJBQW1CO1NBQ3BCLFlBbkJDLFlBQVk7WUFDWixZQUFZLENBQUMsT0FBTyxFQUFFO1lBQ3RCLDBCQUEwQjtZQUMxQixrQkFBa0IsRUFHbEIsMEJBQTBCO1lBQzFCLGtCQUFrQjs7dUZBY1QsaUJBQWlCO2NBdkI3QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWSxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsMEJBQTBCO29CQUMxQixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtvQkFDakIsdUJBQXVCO29CQUN2QixzQkFBc0I7b0JBQ3RCLGNBQWM7b0JBQ2QsbUJBQW1CO29CQUNuQixxQkFBcUI7b0JBRXJCLGNBQWM7b0JBQ2QsbUJBQW1CO2lCQUNwQjthQUNGOztzQkFFMEMsUUFBUTs7c0JBQUksUUFBUTs7d0ZBRGxELGlCQUFpQixjQXJCMUIsWUFBWSxtQkFFWiwwQkFBMEI7UUFDMUIsa0JBQWtCLGFBR2xCLDBCQUEwQjtRQUMxQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgSnVuZSAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuLy9BcHBcclxuLy9sb2NhbGl6YXRpb25cclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uU2V0dGluZ3MubW9kdWxlJztcclxuXHJcbi8vU2VydmljZXNcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERpZ2l0YWxNYXJrZXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR29vZ2xlQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd2ViLXN0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG4vL1NlcnZpY2VzOiBsb2dnaW5nXHJcbmltcG9ydCB7IExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL1NlcnZpY2VzOiBub3RpZmljYXRpb25zXHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGxldCBJbmplY3Rvckluc3RhbmNlOiBJbmplY3RvcjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIExvY2FsaXphdGlvblNldHRpbmdzTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBMb2NhbGl6YXRpb25TZXR0aW5nc01vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQXBwQ29udGV4dFNlcnZpY2UsXHJcbiAgICBEaWdpdGFsTWFya2V0aW5nU2VydmljZSxcclxuICAgIEdvb2dsZUFuYWx5dGljc1NlcnZpY2UsXHJcbiAgICBMb2FkaW5nU2VydmljZSxcclxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXHJcblxyXG4gICAgTG9nZ2luZ1NlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUNvcmVNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFuYXRvbHlDb3JlTW9kdWxlKSB7XHJcbiAgICBJbmplY3Rvckluc3RhbmNlID0gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
@@ -15,7 +15,6 @@
15
15
  */
16
16
  //consts
17
17
  export * from './consts/settings';
18
- export * from './consts/urls';
19
18
  //converts
20
19
  export * from './converts/convert';
21
20
  export * from './converts/xmlFormatter';
@@ -30,6 +29,8 @@ export * from './localization/localization.module';
30
29
  //logging
31
30
  export * from './logging/globalErrorHandler';
32
31
  export * from './logging/logging.service';
32
+ //models
33
+ export * from './models/appcontext.service';
33
34
  //notifications
34
35
  export * from './notifications/alerts';
35
36
  export * from './notifications/interfaces/notification';
@@ -38,14 +39,15 @@ export * from './notifications/services/notification-service';
38
39
  export * from './performance/stopwatch';
39
40
  //services
40
41
  export * from './services/appcontext.service';
42
+ export * from './services/dm.service';
43
+ export * from './services/google-analytics.service';
41
44
  export * from './services/idle.service';
42
45
  export * from './services/loading.service';
46
+ export * from './services/starter.service';
43
47
  export * from './services/web-storage.service';
44
- export * from './services/dm.service';
45
- export * from './services/google-analytics.service';
46
48
  export * from './browser';
47
49
  export * from './dom';
48
50
  export * from './guid';
49
51
  export * from './subs';
50
52
  export * from './utils';
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLFFBQVE7QUFDUixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYztBQUNkLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsU0FBUztBQUNULGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxlQUFlO0FBQ2YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFFOUQsYUFBYTtBQUNiLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsVUFBVTtBQUNWLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHFDQUFxQyxDQUFBO0FBRW5ELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgQXVnIDIwMjJcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL2NvbnN0c1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cy9zZXR0aW5ncyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RzL3VybHMnO1xyXG5cclxuLy9jb252ZXJ0c1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnRzL2NvbnZlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnRzL3htbEZvcm1hdHRlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2dvL2Jhc2UtZ28uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL29uY2UtaW1wb3J0Lmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmNlcHRvcnMvaHR0cEludGVyY2VwdG9yJztcclxuXHJcbi8vbG9jYWxpemF0aW9uXHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXplLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvblNldHRpbmdzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5cclxuLy9sb2dnaW5nXHJcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dpbmcvbG9nZ2luZy5zZXJ2aWNlJztcclxuXHJcbi8vbm90aWZpY2F0aW9uc1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvYWxlcnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbi8vcGVyZm9ybWFuY2VcclxuZXhwb3J0ICogZnJvbSAnLi9wZXJmb3JtYW5jZS9zdG9wd2F0Y2gnO1xyXG5cclxuLy9zZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaWRsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZG0uc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2Jyb3dzZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ3VpZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vicyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xyXG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLFFBQVE7QUFDUixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYztBQUNkLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsU0FBUztBQUNULGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxRQUFRO0FBQ1IsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxlQUFlO0FBQ2YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFFOUQsYUFBYTtBQUNiLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsVUFBVTtBQUNWLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUE7QUFFOUMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMiBBdWcgMjAyMlxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vY29uc3RzXHJcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RzL3NldHRpbmdzJztcclxuXHJcbi8vY29udmVydHNcclxuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJ0cy9jb252ZXJ0JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJ0cy94bWxGb3JtYXR0ZXInO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9nby9iYXNlLWdvLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9vbmNlLWltcG9ydC5ndWFyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzL2h0dHBJbnRlcmNlcHRvcic7XHJcblxyXG4vL2xvY2FsaXphdGlvblxyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb25TZXR0aW5ncy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuXHJcbi8vbG9nZ2luZ1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dpbmcvZ2xvYmFsRXJyb3JIYW5kbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL21vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuLy9ub3RpZmljYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xyXG5cclxuLy9wZXJmb3JtYW5jZVxyXG5leHBvcnQgKiBmcm9tICcuL3BlcmZvcm1hbmNlL3N0b3B3YXRjaCc7XHJcblxyXG4vL3NlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kbS5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pZGxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc3RhcnRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy93ZWItc3RvcmFnZS5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9icm93c2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9kb20nO1xyXG5leHBvcnQgKiBmcm9tICcuL2d1aWQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N1YnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuIl19
@@ -0,0 +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
+ 11 Nov 2023
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbW9kZWxzL2FwcGNvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMSBOb3YgMjAyM1xyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwcENvbnRleHRTZXJ2aWNlIHtcclxuICBjdXJyZW50O1xyXG5cclxuICBpbml0KGNvbnRleHQpO1xyXG4gIGxvYWRSZXF1aXJlZEpzb25GaWxlcygpO1xyXG4gIGxvYWRSZXF1aXJlZEl0ZW1zKCk7XHJcbn1cclxuIl19
@@ -13,149 +13,18 @@
13
13
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
14
  </file>
15
15
  */
16
- // Node
16
+ //Node
17
17
  import { Injectable } from '@angular/core';
18
- // RxJs
19
- import { BehaviorSubject } from 'rxjs';
20
- // App
18
+ //App
21
19
  import { L10nUtils } from '../../localization/utils';
22
- import { Guid } from '../../guid';
23
20
  import * as i0 from "@angular/core";
24
21
  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
22
  export class NotificationService {
29
23
  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
24
  constructor(toastrService) {
40
25
  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
26
  }
27
+ //Public
159
28
  success(text, params, title, createSessionNotification = true) {
160
29
  text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
161
30
  title = L10nUtils.getLocalizedValue(title);
@@ -163,9 +32,6 @@ export class NotificationService {
163
32
  timeOut: 3000,
164
33
  progressBar: true
165
34
  });
166
- if (createSessionNotification) {
167
- this.addSessionNotification(text, 'success');
168
- }
169
35
  }
170
36
  info(text, params, title) {
171
37
  text = L10nUtils.getLocalizedValue(text, params);
@@ -190,9 +56,6 @@ export class NotificationService {
190
56
  timeOut: 3000,
191
57
  progressBar: true
192
58
  });
193
- if (createSessionNotification) {
194
- this.addSessionNotification(text, 'error');
195
- }
196
59
  }
197
60
  cancel(text, params, title) {
198
61
  text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
@@ -202,20 +65,6 @@ export class NotificationService {
202
65
  progressBar: true
203
66
  });
204
67
  }
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
68
  static ɵfac = function NotificationService_Factory(t) { return new (t || NotificationService)(i0.ɵɵinject(i1.ToastrService)); };
220
69
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationService, factory: NotificationService.ɵfac, providedIn: 'root' });
221
70
  }
@@ -223,4 +72,4 @@ export class NotificationService {
223
72
  type: Injectable,
224
73
  args: [{ providedIn: 'root' }]
225
74
  }], function () { return [{ type: i1.ToastrService }]; }, null); })();
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTztBQUNQLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHbEMsVUFBVTtBQUNWLGlEQUFpRDtBQUNqRCw0R0FBNEc7QUFHNUcsTUFBTSxPQUFPLG1CQUFtQjtJQWFWO0lBWnBCLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsNkJBQTZCO0lBRTdCLGdCQUFnQjtJQUNSLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztJQUNqRSxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7SUFFeEUsU0FBUztJQUNBLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFekUsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUMsaUJBQWlCO0lBQ25CLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDOzZFQWxOVSxtQkFBbUI7Z0VBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRFAsTUFBTTs7dUZBQ2xCLG1CQUFtQjtjQUQvQixVQUFVO2VBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgSnVuIDIwMjAgXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbi8vIFJ4SnNcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IEwxMG5VdGlscyB9IGZyb20gJy4uLy4uL2xvY2FsaXphdGlvbi91dGlscyc7XHJcbmltcG9ydCB7IEd1aWQgfSBmcm9tICcuLi8uLi9ndWlkJztcclxuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcclxuXHJcbi8vIFNpZ25hbFJcclxuLy8gaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG4vLyBpbXBvcnQgeyBOb3RpZmljYXRpb25zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWFwaS1zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8gU2lnbmFsUlxyXG4gIC8vIHByaXZhdGUgaHViQ29ubmVjdGlvbjogc2lnbmFsUi5IdWJDb25uZWN0aW9uO1xyXG4gIC8vIHByaXZhdGUgc29ja2V0VXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIE5vdGlmaWNhdGlvbnNcclxuICBwcml2YXRlIF9zZXNzaW9uTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfc2VydmVyTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcblxyXG4gIC8vIFB1YmxpY1xyXG4gIHJlYWRvbmx5IHNlc3Npb25Ob3RpZmljYXRpb25zJCA9IHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHNlcnZlck5vdGlmaWNhdGlvbnMkID0gdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlKSB7XHJcbiAgICAvLyB0aGlzLm9uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBvbkluaXQoKSB7XHJcbiAgICBpZiAoQXBwQ29yZVNldHRpbmdzLkF6dXJlQUQpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoVG9rZW4oKS5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24odG9rZW4pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdG9wU2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIFNpZ25hbFJcclxuICBwcml2YXRlIHN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oYWNjZXNzVG9rZW4/KSB7XHJcbiAgICBjb25zdCBjc2tpaSA9IEFwcENvcmVTZXR0aW5ncy5zZWxlY3RlZENsaWVudElEO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICAgIGNvbnN0IGNza2lpX3VwbiA9IEFwcENvcmVTZXR0aW5ncy5DU0tJSV9VUE47XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gICAgY29uc3QgY2xpX3Nlc3Npb25ndWlkID0gQXBwQ29yZVNldHRpbmdzLkNMSV9TZXNzaW9uR1VJRDtcclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNvY2tldFVybCArICc/Y3NraWk9JyArIGNza2lpICsgJyZjc2tpaV91cG49JyArIGNza2lpX3VwbiArICcmY2xpX3Nlc3Npb25ndWlkPScgKyBjbGlfc2Vzc2lvbmd1aWQ7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh1cmwsIHtcclxuICAgICAgICAgIHNraXBOZWdvdGlhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICB0cmFuc3BvcnQ6IHNpZ25hbFIuSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyxcclxuICAgICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gYWNjZXNzVG9rZW5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh0aGlzLnNvY2tldFVybCwge1xyXG4gICAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHViQ29ubmVjdGlvblxyXG4gICAgICAuc3RhcnQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnNpZ25hbFJDb25uZWN0aW9uX29uU3VjY2VzcygpKVxyXG4gICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdDb25uZWN0aW9uIGZhaWxlZCB0byBTaWduYWxSIE5vdGlmaWNhdGlvbiBIdWInKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaWduYWxSQ29ubmVjdGlvbl9vblN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmFkZFJlY2VpdmVNZXNzYWdlRGF0YUxpc3RlbmVyKCk7XHJcblxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zQXBpU2VydmljZS5yZXRyaWV2ZU5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucyA9IGRhdGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3BTaWduYWxSQ29ubmVjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uLnN0b3AoKTtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUmVjZWl2ZU1lc3NhZ2VEYXRhTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmh1YkNvbm5lY3Rpb24ub24oJ1JlY2VpdmVNZXNzYWdlJywgKG1lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UudGV4dCwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhtZXNzYWdlLnRleHQsIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcclxuICAgICAgICAgIGlkOiBtZXNzYWdlLmlkLFxyXG4gICAgICAgICAgaXNOZXc6IG1lc3NhZ2UuaXNOZXcsXHJcbiAgICAgICAgICBpc1Nlc3Npb246IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBtZXNzYWdlLnRleHQsXHJcbiAgICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXHJcbiAgICAgICAgICBjcmVhdGVkRGF0ZTogbWVzc2FnZS5jcmVhdGVkRGF0ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb24pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgcHJpdmF0ZSBhZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpZCA9IEd1aWQubmV3R3VpZCgpO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0geyBpZCwgaXNOZXc6IHRydWUsIGlzU2Vzc2lvbjogdHJ1ZSwgdGV4dCwgdHlwZSwgY3JlYXRlZERhdGU6IG5ldyBEYXRlKERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCkgfTtcclxuXHJcbiAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb246IElOb3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMgPSBbXHJcbiAgICAgIG5vdGlmaWNhdGlvbixcclxuICAgICAgLi4udGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucyxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgQVBJXHJcbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcsIGlzU2Vzc2lvbjogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Ob3RpZmljYXRpb25zID0gdGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmlkICE9PSBpZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zID0gdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zLmZpbHRlcihub3RpZmljYXRpb25zID0+IG5vdGlmaWNhdGlvbnMuaWQgIT09IGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Y2Nlc3ModGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvblN1Y2Nlc3NGdWxsJyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3ModGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0LCAnc3VjY2VzcycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5mbyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLmluZm8odGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd2FybmluZyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLndhcm5pbmcodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IodGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ0Vycm9yT2NjdXJlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcih0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb24pIHtcclxuICAgICAgdGhpcy5hZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQsICdlcnJvcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvbkNhbmNlbGxlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5pbmZvKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFNlc3Npb25Ob3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKCk6IElOb3RpZmljYXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbk5vdGlmaWNhdGlvbnMuZ2V0VmFsdWUoKTtcclxuICB9XHJcbiAgc2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uTm90aWZpY2F0aW9ucy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvLyBTZXJ2ZXJOb3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlcnZlck5vdGlmaWNhdGlvbnMoKTogSU5vdGlmaWNhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLmdldFZhbHVlKCk7XHJcbiAgfVxyXG4gIHNldCBzZXJ2ZXJOb3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLm5leHQodmFsKTtcclxuICB9XHJcbn1cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsS0FBSztBQUNMLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR3JELE1BQU0sT0FBTyxtQkFBbUI7SUFDVjtJQUFwQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNoRCxDQUFDO0lBRUQsUUFBUTtJQUNSLE9BQU8sQ0FBQyxJQUFLLEVBQUUsTUFBYyxFQUFFLEtBQU0sRUFBRSw0QkFBcUMsSUFBSTtRQUM5RSxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDdEMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUMvQixJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDbkMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUNsQyxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDdEMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUssRUFBRSxNQUFjLEVBQUUsS0FBTSxFQUFFLDRCQUFxQyxJQUFJO1FBQzVFLElBQUksR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNqRSxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDcEMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUssRUFBRSxNQUFjLEVBQUUsS0FBTTtRQUNsQyxJQUFJLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN2RSxLQUFLLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDbkMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDOzZFQXJEVSxtQkFBbUI7Z0VBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRFAsTUFBTTs7dUZBQ2xCLG1CQUFtQjtjQUQvQixVQUFVO2VBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgSnVuIDIwMjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBMMTBuVXRpbHMgfSBmcm9tICcuLi8uLi9sb2NhbGl6YXRpb24vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgc3VjY2Vzcyh0ZXh0PywgcGFyYW1zPzogYW55W10sIHRpdGxlPywgY3JlYXRlU2Vzc2lvbk5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRleHQgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zLCAnT3BlcmF0aW9uU3VjY2Vzc0Z1bGwnKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2Vzcyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbmZvKHRleHQsIHBhcmFtcz86IGFueVtdLCB0aXRsZT8pIHtcclxuICAgIHRleHQgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuaW5mbyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3YXJuaW5nKHRleHQsIHBhcmFtcz86IGFueVtdLCB0aXRsZT8pIHtcclxuICAgIHRleHQgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uud2FybmluZyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlcnJvcih0ZXh0PywgcGFyYW1zPzogYW55W10sIHRpdGxlPywgY3JlYXRlU2Vzc2lvbk5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRleHQgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zLCAnRXJyb3JPY2N1cmVkJyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCh0ZXh0PywgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMsICdPcGVyYXRpb25DYW5jZWxsZWQnKTtcclxuICAgIHRpdGxlID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuaW5mbyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -17,11 +17,12 @@
17
17
  import { Injectable } from '@angular/core';
18
18
  import { Subject } from 'rxjs';
19
19
  //App
20
- import { BaseApiService } from '../../data/base/base-api.service';
20
+ import { ApiUrl } from '../consts/settings';
21
+ import { ApiServiceBase } from '../../data/base/api.service';
21
22
  import * as i0 from "@angular/core";
22
23
  import * as i1 from "@angular/common/http";
23
24
  import * as i2 from "./web-storage.service";
24
- export class AppContextService extends BaseApiService {
25
+ export class AppContextService extends ApiServiceBase {
25
26
  http;
26
27
  localStorage;
27
28
  sessionStorage;
@@ -38,7 +39,7 @@ export class AppContextService extends BaseApiService {
38
39
  this.http = http;
39
40
  this.localStorage = localStorage;
40
41
  this.sessionStorage = sessionStorage;
41
- this.baseUrl = '/api/appContext';
42
+ this.baseUrl = `${ApiUrl}/appContext`;
42
43
  }
43
44
  //Session
44
45
  getCurrentFromSession() {
@@ -152,4 +153,4 @@ export class AppContextService extends BaseApiService {
152
153
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppContextService, [{
153
154
  type: Injectable
154
155
  }], function () { return [{ type: i1.HttpClient }, { type: i2.LocalStorageService }, { type: i2.SessionStorageService }]; }, null); })();
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsS0FBSztBQUNMLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUlsRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsY0FBYztJQWN2QztJQUNBO0lBQ0E7SUFmWixRQUFRO0lBQ0EsY0FBYyxHQUFHLFlBQVksQ0FBQztJQUU5QixZQUFZLEdBQWlCLElBQUksQ0FBQztJQUNsQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBRXZCLGlCQUFpQjtJQUNULFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBRXRDLGdCQUFnQjtJQUNQLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWpELFlBQ1ksSUFBZ0IsRUFDaEIsWUFBaUMsRUFDakMsY0FBcUM7UUFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBSEYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBRS9DLElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUM7SUFDbkMsQ0FBQztJQUVELFNBQVM7SUFDRCxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVU7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUvQixJQUFJLEVBQUUsRUFBRTtZQUNOLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUNuRyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbEUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQ3hCO1NBQ0Y7YUFDSTtZQUNILGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQUk7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7U0FDRjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsVUFBb0IsSUFBSSxFQUFFLG1CQUE0QixJQUFJO1FBQ2xGLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFFM0MsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUNuQixJQUFJLE9BQU87b0JBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsSUFBSSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUEsZ0JBQWdCLENBQUMsVUFBb0IsSUFBSTtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBb0IsSUFBSTtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBb0IsSUFBSTtRQUNwQyxvREFBb0Q7UUFDcEQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUztJQUNULGlCQUFpQjtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxtQkFBbUI7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUEsZUFBZTtRQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFQSxZQUFZO0lBQ1osSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7MkVBekpVLGlCQUFpQjtnRUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBCYXNlQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9iYXNlLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi93ZWItc3RvcmFnZS5zZXJ2aWNlJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwQ29udGV4dFNlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XHJcbiAgLy9Db25zdHNcclxuICBwcml2YXRlIHN0b3JhZ2VLZXlOYW1lID0gJ2FwcENvbnRleHQnO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICBwcml2YXRlIHN1Y2Nlc3NlcyA9IFtdO1xyXG5cclxuICAvL1ByaXZhdGUgU3RyZWFtc1xyXG4gIHByaXZhdGUgX3VwZGF0ZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIC8vUHVibGljIFN0cmVhbXNcclxuICByZWFkb25seSB1cGRhdGVkJCA9IHRoaXMuX3VwZGF0ZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gICAgdGhpcy5iYXNlVXJsID0gJy9hcGkvYXBwQ29udGV4dCc7XHJcbiAgfVxyXG5cclxuICAvL1Nlc3Npb25cclxuICBwcml2YXRlIGdldEN1cnJlbnRGcm9tU2Vzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdG9yYWdlLmdldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudEZyb21TZXNzaW9uKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudElmRXhwaXJlZCgpIHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzaG91bGRCZVVwZGF0ZWQgPSBmYWxzZTtcclxuICAgIGxldCBsciA9IGNvbnRleHQubGFzdFJlcXVlc3RlZDtcclxuXHJcbiAgICBpZiAobHIpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGxldCBsYXN0UmVxdWVzdGVkID0gbmV3IERhdGUoY29udGV4dC5sYXN0UmVxdWVzdGVkKTtcclxuICAgICAgbGV0IGluM01pbnMgPSBuZXcgRGF0ZShsYXN0UmVxdWVzdGVkLmdldEZ1bGxZZWFyKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TW9udGgoKSwgbGFzdFJlcXVlc3RlZC5nZXREYXRlKCksXHJcbiAgICAgICAgbGFzdFJlcXVlc3RlZC5nZXRIb3VycygpLCBsYXN0UmVxdWVzdGVkLmdldE1pbnV0ZXMoKSArIDMsIDAsIDApO1xyXG5cclxuICAgICAgaWYgKGluM01pbnMuZ2V0VGltZSgpIDwgbm93LmdldFRpbWUoKSkge1xyXG4gICAgICAgIHNob3VsZEJlVXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBzaG91bGRCZVVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRCZVVwZGF0ZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDdXJyZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFSZWNlaXZlZChkYXRhKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBkYXRhO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdWNjZXNzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHN1Y2Nlc3MgPSB0aGlzLnN1Y2Nlc3Nlc1tpXTtcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdBcHBDb250ZXh0IGhhcyBiZWVuIHVwZGF0ZWQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgICB0aGlzLl91cGRhdGVkLm5leHQoZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1cnJlbnRQcml2YXRlKHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCwgZ2V0Q2FjaGVkSWZFeGlzdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0KSB7XHJcbiAgICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICAgIGlmIChjb250ZXh0ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAoc3VjY2Vzcykgc3VjY2Vzcyhjb250ZXh0KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3Nlcy5wdXNoKHN1Y2Nlc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVJlY2VpdmVkKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgaW5pdChjb250ZXh0KSB7XHJcblx0XHR0aGlzLmN1cnJlbnQgPSBjb250ZXh0O1xyXG5cdH1cclxuXHJcbiAgZ2V0TGF0ZXN0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgLy9WYWRpbU9TOiBtYWtlIGRyb3BwaW5nIGN1cnJlbnQgJiBpc0FkbWluIHRocm93IDQwM1xyXG4gICAgLy90aGlzLmNsZWFyQ3VycmVudCgpO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RDdXJyZW50KHN1Y2Nlc3MpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDdXJyZW50KCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlS2V5TmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1N0b3JhZ2VcclxuICBjbGVhckxvY2FsU3RvcmFnZSgpIHtcclxuXHRcdHRoaXMubG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHRjbGVhclNlc3Npb25TdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG5cdH1cclxuXHJcbiAgY2xlYXJXZWJTdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5jbGVhckxvY2FsU3RvcmFnZSgpO1xyXG5cdFx0dGhpcy5jbGVhclNlc3Npb25TdG9yYWdlKCk7XHJcblx0fVxyXG5cclxuICAvL1Byb3BlcnRpZXNcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFN0MsS0FBSztBQUNMLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFJN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFjdkM7SUFDQTtJQUNBO0lBZlosUUFBUTtJQUNBLGNBQWMsR0FBRyxZQUFZLENBQUM7SUFFOUIsWUFBWSxHQUFpQixJQUFJLENBQUM7SUFDbEMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV2QixpQkFBaUI7SUFDVCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUV0QyxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVqRCxZQUNZLElBQWdCLEVBQ2hCLFlBQWlDLEVBQ2pDLGNBQXFDO1FBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUhGLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUUvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7SUFDRCxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFD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QzVCLENBQUM7SUFFQSxZQUFZO0lBQ1osSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7MkVBekpVLGlCQUFpQjtnRUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcGlVcmwgfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlQmFzZSB9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vd2ViLXN0b3JhZ2Uuc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcENvbnRleHRTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2Uge1xyXG4gIC8vQ29uc3RzXHJcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5TmFtZSA9ICdhcHBDb250ZXh0JztcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdWNjZXNzZXMgPSBbXTtcclxuXHJcbiAgLy9Qcml2YXRlIFN0cmVhbXNcclxuICBwcml2YXRlIF91cGRhdGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICAvL1B1YmxpYyBTdHJlYW1zXHJcbiAgcmVhZG9ubHkgdXBkYXRlZCQgPSB0aGlzLl91cGRhdGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IGAke0FwaVVybH0vYXBwQ29udGV4dGA7XHJcbiAgfVxyXG5cclxuICAvL1Nlc3Npb25cclxuICBwcml2YXRlIGdldEN1cnJlbnRGcm9tU2Vzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdG9yYWdlLmdldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudEZyb21TZXNzaW9uKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudElmRXhwaXJlZCgpIHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzaG91bGRCZVVwZGF0ZWQgPSBmYWxzZTtcclxuICAgIGxldCBsciA9IGNvbnRleHQubGFzdFJlcXVlc3RlZDtcclxuXHJcbiAgICBpZiAobHIpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGxldCBsYXN0UmVxdWVzdGVkID0gbmV3IERhdGUoY29udGV4dC5sYXN0UmVxdWVzdGVkKTtcclxuICAgICAgbGV0IGluM01pbnMgPSBuZXcgRGF0ZShsYXN0UmVxdWVzdGVkLmdldEZ1bGxZZWFyKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TW9udGgoKSwgbGFzdFJlcXVlc3RlZC5nZXREYXRlKCksXHJcbiAgICAgICAgbGFzdFJlcXVlc3RlZC5nZXRIb3VycygpLCBsYXN0UmVxdWVzdGVkLmdldE1pbnV0ZXMoKSArIDMsIDAsIDApO1xyXG5cclxuICAgICAgaWYgKGluM01pbnMuZ2V0VGltZSgpIDwgbm93LmdldFRpbWUoKSkge1xyXG4gICAgICAgIHNob3VsZEJlVXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBzaG91bGRCZVVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRCZVVwZGF0ZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVDdXJyZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFSZWNlaXZlZChkYXRhKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBkYXRhO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdWNjZXNzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHN1Y2Nlc3MgPSB0aGlzLnN1Y2Nlc3Nlc1tpXTtcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdBcHBDb250ZXh0IGhhcyBiZWVuIHVwZGF0ZWQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgICB0aGlzLl91cGRhdGVkLm5leHQoZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEN1cnJlbnRQcml2YXRlKHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCwgZ2V0Q2FjaGVkSWZFeGlzdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0KSB7XHJcbiAgICAgIGxldCBjb250ZXh0ID0gdGhpcy5nZXRDdXJyZW50RnJvbVNlc3Npb24oKTtcclxuXHJcbiAgICAgIGlmIChjb250ZXh0ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAoc3VjY2Vzcykgc3VjY2Vzcyhjb250ZXh0KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3Nlcy5wdXNoKHN1Y2Nlc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVJlY2VpdmVkKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vUHVibGljXHJcbiAgaW5pdChjb250ZXh0KSB7XHJcblx0XHR0aGlzLmN1cnJlbnQgPSBjb250ZXh0O1xyXG5cdH1cclxuXHJcbiAgZ2V0TGF0ZXN0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudFByaXZhdGUoc3VjY2VzcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgLy9WYWRpbU9TOiBtYWtlIGRyb3BwaW5nIGN1cnJlbnQgJiBpc0FkbWluIHRocm93IDQwM1xyXG4gICAgLy90aGlzLmNsZWFyQ3VycmVudCgpO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RDdXJyZW50KHN1Y2Nlc3MpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDdXJyZW50KCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlS2V5TmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1N0b3JhZ2VcclxuICBjbGVhckxvY2FsU3RvcmFnZSgpIHtcclxuXHRcdHRoaXMubG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHRjbGVhclNlc3Npb25TdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG5cdH1cclxuXHJcbiAgY2xlYXJXZWJTdG9yYWdlKCkge1xyXG5cdFx0dGhpcy5jbGVhckxvY2FsU3RvcmFnZSgpO1xyXG5cdFx0dGhpcy5jbGVhclNlc3Npb25TdG9yYWdlKCk7XHJcblx0fVxyXG5cclxuICAvL1Byb3BlcnRpZXNcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,77 @@
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
+ 15 Nov 2023
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ import { of, forkJoin, merge } from 'rxjs';
17
+ import { map } from 'rxjs/operators';
18
+ //App
19
+ import { ApiUrl } from '../consts/settings';
20
+ import { ApiServiceBase } from '../../data/base/api.service';
21
+ import { Utils } from '../utils';
22
+ import { Stopwatch } from '../performance/stopwatch';
23
+ export class StarterServiceBase extends ApiServiceBase {
24
+ http;
25
+ appContext;
26
+ constructor(http, appContext) {
27
+ super(http);
28
+ this.http = http;
29
+ this.appContext = appContext;
30
+ this.baseUrl = ApiUrl;
31
+ }
32
+ applicationStarting() {
33
+ let context = this.appContext.current;
34
+ if (!Utils.isObjectNullOrEmpty(context)) {
35
+ this.appContext.init(context);
36
+ return of(context);
37
+ }
38
+ //Log
39
+ let stopwatch = new Stopwatch("applicationStarting");
40
+ stopwatch.start();
41
+ this.baseUrl = `${this.baseUrl}/appContext`;
42
+ return this.get('applicationStarting').pipe(map(data => {
43
+ //Log
44
+ stopwatch.stop();
45
+ stopwatch.printElapsedAsMilliseconds();
46
+ this.appContext.init(data);
47
+ }));
48
+ }
49
+ ensureApplicationStarted() {
50
+ //1. Application Starting
51
+ let applicationStarting$ = this.applicationStarting();
52
+ //2. Load json files
53
+ let jsonFiles$ = this.appContext.loadRequiredJsonFiles();
54
+ //3. Load required items, like settings
55
+ let requiredItems$ = this.appContext.loadRequiredItems();
56
+ //Tasks to execute
57
+ let parallelTasks = [];
58
+ if (jsonFiles$)
59
+ parallelTasks.push(jsonFiles$);
60
+ if (requiredItems$)
61
+ parallelTasks.push(requiredItems$);
62
+ let parallelTasks$ = merge(...parallelTasks);
63
+ let tasks$ = forkJoin([applicationStarting$, parallelTasks$]);
64
+ //VadimOS:
65
+ //concat is NOT wokring here, no idea why. Just executing first task
66
+ //let tasks$ = concat(applicationStarting$, parallelTasks$);
67
+ //Log
68
+ let stopwatch = new Stopwatch("ensureApplicationStarted");
69
+ stopwatch.start();
70
+ return tasks$.pipe(map(() => {
71
+ //Log
72
+ stopwatch.stop();
73
+ stopwatch.printElapsedAsMilliseconds();
74
+ }));
75
+ }
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvc3RhcnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBSUYsT0FBTyxFQUFjLEVBQUUsRUFBVSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGNBQWM7SUFDdkM7SUFBNEI7SUFBbEQsWUFBc0IsSUFBZ0IsRUFBWSxVQUE4QjtRQUM5RSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsS0FBSztRQUNMLElBQUksU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckQsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxhQUFhLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFNLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxLQUFLO1lBQ0wsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBRXZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLHlCQUF5QjtRQUN6QixJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXRELG9CQUFvQjtRQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFekQsdUNBQXVDO1FBQ3ZDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6RCxrQkFBa0I7UUFDbEIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksVUFBVTtZQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxjQUFjO1lBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTlELFVBQVU7UUFDVixvRUFBb0U7UUFDcEUsNERBQTREO1FBRTVELEtBQUs7UUFDTCxJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzFELFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixLQUFLO1lBQ0wsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTUgTm92IDIwMjNcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGNvbmNhdCwgZm9ya0pvaW4sIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwaVVybCB9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IFN0b3B3YXRjaCB9IGZyb20gJy4uL3BlcmZvcm1hbmNlL3N0b3B3YXRjaCc7XHJcbmltcG9ydCB7IElBcHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL21vZGVscy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXJ0ZXJTZXJ2aWNlQmFzZSBleHRlbmRzIEFwaVNlcnZpY2VCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCwgcHJvdGVjdGVkIGFwcENvbnRleHQ6IElBcHBDb250ZXh0U2VydmljZSkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBBcGlVcmw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGxpY2F0aW9uU3RhcnRpbmcoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBjb250ZXh0ID0gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnQ7XHJcbiAgICBpZiAoIVV0aWxzLmlzT2JqZWN0TnVsbE9yRW1wdHkoY29udGV4dCkpIHtcclxuICAgICAgdGhpcy5hcHBDb250ZXh0LmluaXQoY29udGV4dCk7XHJcbiAgICAgIHJldHVybiBvZihjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICAvL0xvZ1xyXG4gICAgbGV0IHN0b3B3YXRjaCA9IG5ldyBTdG9wd2F0Y2goXCJhcHBsaWNhdGlvblN0YXJ0aW5nXCIpO1xyXG4gICAgc3RvcHdhdGNoLnN0YXJ0KCk7XHJcblxyXG4gICAgdGhpcy5iYXNlVXJsID0gYCR7dGhpcy5iYXNlVXJsfS9hcHBDb250ZXh0YDtcclxuICAgIHJldHVybiB0aGlzLmdldDxhbnk+KCdhcHBsaWNhdGlvblN0YXJ0aW5nJykucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgIC8vTG9nXHJcbiAgICAgIHN0b3B3YXRjaC5zdG9wKCk7XHJcbiAgICAgIHN0b3B3YXRjaC5wcmludEVsYXBzZWRBc01pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgdGhpcy5hcHBDb250ZXh0LmluaXQoZGF0YSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBlbnN1cmVBcHBsaWNhdGlvblN0YXJ0ZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vMS4gQXBwbGljYXRpb24gU3RhcnRpbmdcclxuICAgIGxldCBhcHBsaWNhdGlvblN0YXJ0aW5nJCA9IHRoaXMuYXBwbGljYXRpb25TdGFydGluZygpO1xyXG5cclxuICAgIC8vMi4gTG9hZCBqc29uIGZpbGVzXHJcbiAgICBsZXQganNvbkZpbGVzJCA9IHRoaXMuYXBwQ29udGV4dC5sb2FkUmVxdWlyZWRKc29uRmlsZXMoKTtcclxuXHJcbiAgICAvLzMuIExvYWQgcmVxdWlyZWQgaXRlbXMsIGxpa2Ugc2V0dGluZ3NcclxuICAgIGxldCByZXF1aXJlZEl0ZW1zJCA9IHRoaXMuYXBwQ29udGV4dC5sb2FkUmVxdWlyZWRJdGVtcygpO1xyXG5cclxuICAgIC8vVGFza3MgdG8gZXhlY3V0ZVxyXG4gICAgbGV0IHBhcmFsbGVsVGFza3MgPSBbXTtcclxuXHJcbiAgICBpZiAoanNvbkZpbGVzJCkgcGFyYWxsZWxUYXNrcy5wdXNoKGpzb25GaWxlcyQpO1xyXG4gICAgaWYgKHJlcXVpcmVkSXRlbXMkKSBwYXJhbGxlbFRhc2tzLnB1c2gocmVxdWlyZWRJdGVtcyQpO1xyXG5cclxuICAgIGxldCBwYXJhbGxlbFRhc2tzJCA9IG1lcmdlKC4uLnBhcmFsbGVsVGFza3MpO1xyXG4gICAgbGV0IHRhc2tzJCA9IGZvcmtKb2luKFthcHBsaWNhdGlvblN0YXJ0aW5nJCwgcGFyYWxsZWxUYXNrcyRdKTtcclxuXHJcbiAgICAvL1ZhZGltT1M6XHJcbiAgICAvL2NvbmNhdCBpcyBOT1Qgd29rcmluZyBoZXJlLCBubyBpZGVhIHdoeS4gSnVzdCBleGVjdXRpbmcgZmlyc3QgdGFza1xyXG4gICAgLy9sZXQgdGFza3MkID0gY29uY2F0KGFwcGxpY2F0aW9uU3RhcnRpbmckLCBwYXJhbGxlbFRhc2tzJCk7XHJcblxyXG4gICAgLy9Mb2dcclxuICAgIGxldCBzdG9wd2F0Y2ggPSBuZXcgU3RvcHdhdGNoKFwiZW5zdXJlQXBwbGljYXRpb25TdGFydGVkXCIpO1xyXG4gICAgc3RvcHdhdGNoLnN0YXJ0KCk7XHJcblxyXG4gICAgcmV0dXJuIHRhc2tzJC5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgICAgLy9Mb2dcclxuICAgICAgICBzdG9wd2F0Y2guc3RvcCgpO1xyXG4gICAgICAgIHN0b3B3YXRjaC5wcmludEVsYXBzZWRBc01pbGxpc2Vjb25kcygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==