@osovitny/anatoly 2.1.13 → 2.14.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.
Files changed (164) hide show
  1. package/assets/styles/alerts.less +182 -0
  2. package/assets/styles/spinner.less +64 -0
  3. package/assets/styles/toastr.less +192 -0
  4. package/esm2020/lib/core/convert.mjs +62 -0
  5. package/esm2020/lib/core/core.module.mjs +72 -0
  6. package/esm2020/lib/core/go/base-go.service.mjs +41 -0
  7. package/esm2020/lib/core/guid.mjs +22 -0
  8. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
  9. package/esm2020/lib/core/localization/localization.module.mjs +47 -0
  10. package/esm2020/lib/core/localization/localization.service.mjs +185 -0
  11. package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
  12. package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
  13. package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
  14. package/esm2020/lib/core/logging/logging.service.mjs +39 -0
  15. package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
  16. package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
  17. package/esm2020/lib/core/services/dm.service.mjs +72 -0
  18. package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
  19. package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +9 -7
  20. package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +9 -8
  21. package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
  22. package/esm2020/lib/core/subs.mjs +31 -0
  23. package/esm2020/lib/core/utils.mjs +82 -0
  24. package/esm2020/lib/data/base/base-api.service.mjs +89 -0
  25. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
  26. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
  27. package/esm2020/lib/data/data.module.mjs +51 -0
  28. package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
  29. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
  30. package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
  31. package/esm2020/lib/ui/components/base.component.mjs +47 -0
  32. package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
  33. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
  34. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
  35. package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +53 -0
  36. package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
  37. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
  38. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
  39. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
  40. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
  41. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
  42. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
  43. package/esm2020/lib/ui/components/loading/loading.component.mjs +48 -0
  44. package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
  45. package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
  46. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
  47. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
  48. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
  49. package/esm2020/lib/ui/ui.module.mjs +155 -0
  50. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +66 -0
  51. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +39 -0
  52. package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
  53. package/fesm2015/{osovitny-anatoly.js → osovitny-anatoly.mjs} +823 -765
  54. package/fesm2015/osovitny-anatoly.mjs.map +1 -0
  55. package/fesm2020/osovitny-anatoly.mjs +3496 -0
  56. package/fesm2020/osovitny-anatoly.mjs.map +1 -0
  57. package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
  58. package/lib/core/core.module.d.ts +5 -0
  59. package/lib/core/go/base-go.service.d.ts +3 -0
  60. package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
  61. package/lib/core/localization/localization.module.d.ts +6 -0
  62. package/lib/core/localization/localization.service.d.ts +3 -0
  63. package/lib/core/localization/localizationSettings.module.d.ts +5 -0
  64. package/lib/core/localization/localize.pipe.d.ts +3 -0
  65. package/lib/core/logging/globalErrorHandler.d.ts +3 -0
  66. package/lib/core/logging/logging.service.d.ts +3 -0
  67. package/lib/core/notifications/services/notification-service.d.ts +3 -0
  68. package/lib/core/services/appcontext.service.d.ts +5 -2
  69. package/lib/core/services/dm.service.d.ts +3 -0
  70. package/lib/core/services/google-analytics.service.d.ts +3 -0
  71. package/lib/core/services/idle.service.d.ts +3 -0
  72. package/lib/core/services/loading.service.d.ts +3 -0
  73. package/lib/core/services/web-storage.service.d.ts +5 -0
  74. package/lib/data/base/base-api.service.d.ts +3 -0
  75. package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
  76. package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
  77. package/lib/data/data.module.d.ts +5 -0
  78. package/lib/data/services/billing-api.service.d.ts +3 -0
  79. package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
  80. package/lib/ui/components/base-edit.component.d.ts +5 -2
  81. package/lib/ui/components/base.component.d.ts +3 -0
  82. package/lib/ui/components/base.dialog.d.ts +3 -0
  83. package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -0
  84. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +3 -0
  85. package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +3 -0
  86. package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
  87. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
  88. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
  89. package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
  90. package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
  91. package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
  92. package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
  93. package/lib/ui/components/loading/loading.component.d.ts +3 -0
  94. package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
  95. package/lib/ui/directives/native-element.directive.d.ts +3 -0
  96. package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
  97. package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
  98. package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
  99. package/lib/ui/ui.module.d.ts +24 -0
  100. package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
  101. package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
  102. package/lib/ui/validation/validation-summary.component.d.ts +3 -0
  103. package/package.json +23 -11
  104. package/bundles/osovitny-anatoly.umd.js +0 -3696
  105. package/bundles/osovitny-anatoly.umd.js.map +0 -1
  106. package/esm2015/lib/core/convert.js +0 -65
  107. package/esm2015/lib/core/core.module.js +0 -43
  108. package/esm2015/lib/core/go/base-go.service.js +0 -42
  109. package/esm2015/lib/core/guid.js +0 -25
  110. package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
  111. package/esm2015/lib/core/localization/localization.module.js +0 -41
  112. package/esm2015/lib/core/localization/localization.service.js +0 -187
  113. package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
  114. package/esm2015/lib/core/localization/localize.pipe.js +0 -78
  115. package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
  116. package/esm2015/lib/core/logging/logging.service.js +0 -38
  117. package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
  118. package/esm2015/lib/core/services/appcontext.service.js +0 -118
  119. package/esm2015/lib/core/services/dm.service.js +0 -74
  120. package/esm2015/lib/core/services/google-analytics.service.js +0 -53
  121. package/esm2015/lib/core/services/web-storage.service.js +0 -66
  122. package/esm2015/lib/core/subs.js +0 -34
  123. package/esm2015/lib/core/utils.js +0 -84
  124. package/esm2015/lib/data/base/base-api.service.js +0 -89
  125. package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
  126. package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
  127. package/esm2015/lib/data/data.module.js +0 -43
  128. package/esm2015/lib/data/services/billing-api.service.js +0 -65
  129. package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
  130. package/esm2015/lib/ui/components/base-edit.component.js +0 -142
  131. package/esm2015/lib/ui/components/base.component.js +0 -43
  132. package/esm2015/lib/ui/components/base.dialog.js +0 -47
  133. package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
  134. package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
  135. package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
  136. package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
  137. package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
  138. package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
  139. package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
  140. package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
  141. package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
  142. package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
  143. package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
  144. package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
  145. package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
  146. package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
  147. package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
  148. package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
  149. package/esm2015/lib/ui/ui.module.js +0 -105
  150. package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
  151. package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
  152. package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
  153. package/fesm2015/osovitny-anatoly.js.map +0 -1
  154. package/osovitny-anatoly.metadata.json +0 -1
  155. /package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +0 -0
  156. /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
  157. /package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +0 -0
  158. /package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +0 -0
  159. /package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +0 -0
  160. /package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +0 -0
  161. /package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +0 -0
  162. /package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +0 -0
  163. /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
  164. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -1,44 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 26 Jun 2020
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- /*
20
- https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c
21
- https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4
22
- */
23
- // Node
24
- import { Injectable, Injector } from "@angular/core";
25
- // App
26
- import { LoggingService } from "./logging.service";
27
- export class GlobalErrorHandler {
28
- constructor(injector) {
29
- this.injector = injector;
30
- }
31
- handleError(error) {
32
- const loggingService = this.injector.get(LoggingService);
33
- loggingService.logError(error);
34
- // IMPORTANT: Rethrow the error otherwise it gets swallowed
35
- throw error;
36
- }
37
- }
38
- GlobalErrorHandler.decorators = [
39
- { type: Injectable }
40
- ];
41
- GlobalErrorHandler.ctorParameters = () => [
42
- { type: Injector }
43
- ];
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsRXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUY7OztFQUdFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxNQUFNO0FBQ04sT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR25ELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFFMUMsV0FBVyxDQUFDLEtBQUs7UUFDZixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RCxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLDJEQUEyRDtRQUMzRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7OztZQVZGLFVBQVU7OztZQUx3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8qXHJcbiAgaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWNkbmwvZ2xvYmFsLWVycm9yLWhhbmRsaW5nLXdpdGgtYW5ndWxhcjItNmI5OTJiZGZiNTljXHJcbiAgaHR0cHM6Ly9tZWRpdW0uY29tL2FuZ3VsYXItaW4tZGVwdGgvZXhwZWN0aW5nLXRoZS11bmV4cGVjdGVkLWJlc3QtcHJhY3RpY2VzLWZvci1lcnJvci1oYW5kbGluZy1pbi1hbmd1bGFyLTIxYzM2NjJlZjllNFxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBMb2dnaW5nU2VydmljZSB9IGZyb20gXCIuL2xvZ2dpbmcuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsRXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3IpIHtcclxuICAgIGNvbnN0IGxvZ2dpbmdTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTG9nZ2luZ1NlcnZpY2UpO1xyXG4gICAgbG9nZ2luZ1NlcnZpY2UubG9nRXJyb3IoZXJyb3IpO1xyXG5cclxuICAgIC8vIElNUE9SVEFOVDogUmV0aHJvdyB0aGUgZXJyb3Igb3RoZXJ3aXNlIGl0IGdldHMgc3dhbGxvd2VkXHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,38 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 26 Jun 2020
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Injectable } from "@angular/core";
21
- import * as i0 from "@angular/core";
22
- export class LoggingService {
23
- constructor() { }
24
- logError(error) {
25
- console.error(error);
26
- }
27
- logInformation(info) {
28
- console.info(info);
29
- }
30
- }
31
- LoggingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggingService_Factory() { return new LoggingService(); }, token: LoggingService, providedIn: "root" });
32
- LoggingService.decorators = [
33
- { type: Injectable, args: [{
34
- providedIn: "root",
35
- },] }
36
- ];
37
- LoggingService.ctorParameters = () => [];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxDQUFDLEtBQUs7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBSTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7Ozs7WUFaRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2dpbmdTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGxvZ0Vycm9yKGVycm9yKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIGxvZ0luZm9ybWF0aW9uKGluZm8pIHtcclxuICAgIGNvbnNvbGUuaW5mbyhpbmZvKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,230 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 2 Jun 2020
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Injectable } from '@angular/core';
21
- import { ToastrService } from 'ngx-toastr';
22
- // RxJs
23
- import { BehaviorSubject } from 'rxjs';
24
- // App
25
- import { L10nUtils } from '../../localization/utils';
26
- import { Guid } from '../../guid';
27
- import * as i0 from "@angular/core";
28
- import * as i1 from "ngx-toastr";
29
- // SignalR
30
- // import * as signalR from '@microsoft/signalr';
31
- // import { NotificationsApiService } from '../../../data/services/notifications/notifications-api-service';
32
- export class NotificationService {
33
- constructor(toastrService) {
34
- this.toastrService = toastrService;
35
- // SignalR
36
- // private hubConnection: signalR.HubConnection;
37
- // private socketUrl: string;
38
- // Notifications
39
- this._sessionNotifications = new BehaviorSubject([]);
40
- this._serverNotifications = new BehaviorSubject([]);
41
- // Public
42
- this.sessionNotifications$ = this._sessionNotifications.asObservable();
43
- this.serverNotifications$ = this._serverNotifications.asObservable();
44
- // this.onInit();
45
- }
46
- /*
47
- onInit() {
48
- if (AppCoreSettings.AzureAD) {
49
- this.authService.getAuthToken().subscribe((token: string) => {
50
- this.startSignalRConnection(token);
51
- });
52
-
53
- return;
54
- }
55
-
56
- this.startSignalRConnection();
57
- }
58
-
59
- ngOnDestroy() {
60
- this.stopSignalRConnection();
61
- }
62
-
63
- // SignalR
64
- private startSignalRConnection(accessToken?) {
65
- const cskii = AppCoreSettings.selectedClientID;
66
- // tslint:disable-next-line:variable-name
67
- const cskii_upn = AppCoreSettings.CSKII_UPN;
68
- // tslint:disable-next-line:variable-name
69
- const cli_sessionguid = AppCoreSettings.CLI_SessionGUID;
70
-
71
- const url = this.socketUrl + '?cskii=' + cskii + '&cskii_upn=' + cskii_upn + '&cli_sessionguid=' + cli_sessionguid;
72
-
73
- if (accessToken) {
74
- this.hubConnection = new signalR.HubConnectionBuilder()
75
- .withUrl(url, {
76
- skipNegotiation: false,
77
- transport: signalR.HttpTransportType.WebSockets,
78
- accessTokenFactory: () => accessToken
79
- })
80
- .withAutomaticReconnect()
81
- .configureLogging(signalR.LogLevel.Debug)
82
- .build();
83
- }
84
- else {
85
- this.hubConnection = new signalR.HubConnectionBuilder()
86
- .withUrl(this.socketUrl, {
87
- skipNegotiation: true,
88
- transport: signalR.HttpTransportType.WebSockets
89
- })
90
- .withAutomaticReconnect()
91
- .configureLogging(signalR.LogLevel.Debug)
92
- .build();
93
- }
94
-
95
- this.hubConnection
96
- .start()
97
- .then(() => this.signalRConnection_onSuccess())
98
- .catch(err => {
99
- console.error('Connection failed to SignalR Notification Hub')
100
- })
101
- }
102
-
103
- private signalRConnection_onSuccess() {
104
- this.addReceiveMessageDataListener();
105
-
106
- this.notificationsApiService.retrieveNotifications().subscribe(data => {
107
- this.serverNotifications = data;
108
- });
109
- }
110
-
111
- stopSignalRConnection() {
112
- if (this.hubConnection) {
113
- this.hubConnection.stop();
114
- this.hubConnection = null;
115
- }
116
- }
117
-
118
- private addReceiveMessageDataListener = () => {
119
- this.hubConnection.on('ReceiveMessage', (message) => {
120
- if (message) {
121
- if (message.type === 'error') {
122
- this.error(message.text, null, null, false);
123
- }
124
- else {
125
- this.success(message.text, null, null, false);
126
- }
127
-
128
- const notification = {
129
- id: message.id,
130
- isNew: message.isNew,
131
- isSession: true,
132
- text: message.text,
133
- type: message.type,
134
- createdDate: message.createdDate
135
- };
136
-
137
- this.addSessionNotificationToList(notification);
138
- }
139
- });
140
- }
141
- */
142
- addSessionNotification(text, type) {
143
- const id = Guid.newGuid();
144
- const notification = { id, isNew: true, isSession: true, text, type, createdDate: new Date(Date.now()).toISOString() };
145
- this.addSessionNotificationToList(notification);
146
- }
147
- addSessionNotificationToList(notification) {
148
- this.sessionNotifications = [
149
- notification,
150
- ...this.sessionNotifications,
151
- ];
152
- }
153
- // Public API
154
- removeNotification(id, isSession) {
155
- if (isSession) {
156
- this.sessionNotifications = this.sessionNotifications.filter(notifications => notifications.id !== id);
157
- }
158
- else {
159
- this.serverNotifications = this.serverNotifications.filter(notifications => notifications.id !== id);
160
- }
161
- }
162
- success(text, params, title, createSessionNotification = true) {
163
- text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');
164
- title = L10nUtils.getLocalizedValue(title);
165
- this.toastrService.success(text, title, {
166
- timeOut: 3000,
167
- progressBar: true
168
- });
169
- if (createSessionNotification) {
170
- this.addSessionNotification(text, 'success');
171
- }
172
- }
173
- info(text, params, title) {
174
- text = L10nUtils.getLocalizedValue(text, params);
175
- title = L10nUtils.getLocalizedValue(title);
176
- this.toastrService.info(text, title, {
177
- timeOut: 3000,
178
- progressBar: true
179
- });
180
- }
181
- warning(text, params, title) {
182
- text = L10nUtils.getLocalizedValue(text, params);
183
- title = L10nUtils.getLocalizedValue(title);
184
- this.toastrService.warning(text, title, {
185
- timeOut: 3000,
186
- progressBar: true
187
- });
188
- }
189
- error(text, params, title, createSessionNotification = true) {
190
- text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');
191
- title = L10nUtils.getLocalizedValue(title);
192
- this.toastrService.error(text, title, {
193
- timeOut: 3000,
194
- progressBar: true
195
- });
196
- if (createSessionNotification) {
197
- this.addSessionNotification(text, 'error');
198
- }
199
- }
200
- cancel(text, params, title) {
201
- text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');
202
- title = L10nUtils.getLocalizedValue(title);
203
- this.toastrService.info(text, title, {
204
- timeOut: 3000,
205
- progressBar: true
206
- });
207
- }
208
- // SessionNotifications
209
- get sessionNotifications() {
210
- return this._sessionNotifications.getValue();
211
- }
212
- set sessionNotifications(val) {
213
- this._sessionNotifications.next(val);
214
- }
215
- // ServerNotifications
216
- get serverNotifications() {
217
- return this._serverNotifications.getValue();
218
- }
219
- set serverNotifications(val) {
220
- this._serverNotifications.next(val);
221
- }
222
- }
223
- NotificationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NotificationService_Factory() { return new NotificationService(i0.ɵɵinject(i1.ToastrService)); }, token: NotificationService, providedIn: "root" });
224
- NotificationService.decorators = [
225
- { type: Injectable, args: [{ providedIn: 'root' },] }
226
- ];
227
- NotificationService.ctorParameters = () => [
228
- { type: ToastrService }
229
- ];
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFekMsT0FBTztBQUNQLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckMsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHbEMsVUFBVTtBQUNWLGlEQUFpRDtBQUNqRCw0R0FBNEc7QUFHNUcsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVpoRCxVQUFVO1FBQ1YsZ0RBQWdEO1FBQ2hELDZCQUE2QjtRQUU3QixnQkFBZ0I7UUFDUiwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDakUseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLFNBQVM7UUFDQSwwQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBR3ZFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFtQixDQUFDLEdBQW9CO1FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7OztZQW5ORixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7WUFkeEIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbi8vIFJ4SnNcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IEwxMG5VdGlscyB9IGZyb20gJy4uLy4uL2xvY2FsaXphdGlvbi91dGlscyc7XHJcbmltcG9ydCB7IEd1aWQgfSBmcm9tICcuLi8uLi9ndWlkJztcclxuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcclxuXHJcbi8vIFNpZ25hbFJcclxuLy8gaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG4vLyBpbXBvcnQgeyBOb3RpZmljYXRpb25zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWFwaS1zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8gU2lnbmFsUlxyXG4gIC8vIHByaXZhdGUgaHViQ29ubmVjdGlvbjogc2lnbmFsUi5IdWJDb25uZWN0aW9uO1xyXG4gIC8vIHByaXZhdGUgc29ja2V0VXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIE5vdGlmaWNhdGlvbnNcclxuICBwcml2YXRlIF9zZXNzaW9uTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfc2VydmVyTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcblxyXG4gIC8vIFB1YmxpY1xyXG4gIHJlYWRvbmx5IHNlc3Npb25Ob3RpZmljYXRpb25zJCA9IHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHNlcnZlck5vdGlmaWNhdGlvbnMkID0gdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlKSB7XHJcbiAgICAvLyB0aGlzLm9uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBvbkluaXQoKSB7XHJcbiAgICBpZiAoQXBwQ29yZVNldHRpbmdzLkF6dXJlQUQpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoVG9rZW4oKS5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24odG9rZW4pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdG9wU2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIFNpZ25hbFJcclxuICBwcml2YXRlIHN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oYWNjZXNzVG9rZW4/KSB7XHJcbiAgICBjb25zdCBjc2tpaSA9IEFwcENvcmVTZXR0aW5ncy5zZWxlY3RlZENsaWVudElEO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICAgIGNvbnN0IGNza2lpX3VwbiA9IEFwcENvcmVTZXR0aW5ncy5DU0tJSV9VUE47XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gICAgY29uc3QgY2xpX3Nlc3Npb25ndWlkID0gQXBwQ29yZVNldHRpbmdzLkNMSV9TZXNzaW9uR1VJRDtcclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNvY2tldFVybCArICc/Y3NraWk9JyArIGNza2lpICsgJyZjc2tpaV91cG49JyArIGNza2lpX3VwbiArICcmY2xpX3Nlc3Npb25ndWlkPScgKyBjbGlfc2Vzc2lvbmd1aWQ7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh1cmwsIHtcclxuICAgICAgICAgIHNraXBOZWdvdGlhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICB0cmFuc3BvcnQ6IHNpZ25hbFIuSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyxcclxuICAgICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gYWNjZXNzVG9rZW5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh0aGlzLnNvY2tldFVybCwge1xyXG4gICAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHViQ29ubmVjdGlvblxyXG4gICAgICAuc3RhcnQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnNpZ25hbFJDb25uZWN0aW9uX29uU3VjY2VzcygpKVxyXG4gICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdDb25uZWN0aW9uIGZhaWxlZCB0byBTaWduYWxSIE5vdGlmaWNhdGlvbiBIdWInKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaWduYWxSQ29ubmVjdGlvbl9vblN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmFkZFJlY2VpdmVNZXNzYWdlRGF0YUxpc3RlbmVyKCk7XHJcblxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zQXBpU2VydmljZS5yZXRyaWV2ZU5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucyA9IGRhdGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3BTaWduYWxSQ29ubmVjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uLnN0b3AoKTtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUmVjZWl2ZU1lc3NhZ2VEYXRhTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmh1YkNvbm5lY3Rpb24ub24oJ1JlY2VpdmVNZXNzYWdlJywgKG1lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UudGV4dCwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhtZXNzYWdlLnRleHQsIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcclxuICAgICAgICAgIGlkOiBtZXNzYWdlLmlkLFxyXG4gICAgICAgICAgaXNOZXc6IG1lc3NhZ2UuaXNOZXcsXHJcbiAgICAgICAgICBpc1Nlc3Npb246IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBtZXNzYWdlLnRleHQsXHJcbiAgICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXHJcbiAgICAgICAgICBjcmVhdGVkRGF0ZTogbWVzc2FnZS5jcmVhdGVkRGF0ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb24pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgcHJpdmF0ZSBhZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpZCA9IEd1aWQubmV3R3VpZCgpO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0geyBpZCwgaXNOZXc6IHRydWUsIGlzU2Vzc2lvbjogdHJ1ZSwgdGV4dCwgdHlwZSwgY3JlYXRlZERhdGU6IG5ldyBEYXRlKERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCkgfTtcclxuXHJcbiAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb246IElOb3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMgPSBbXHJcbiAgICAgIG5vdGlmaWNhdGlvbixcclxuICAgICAgLi4udGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucyxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgQVBJXHJcbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcsIGlzU2Vzc2lvbjogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Ob3RpZmljYXRpb25zID0gdGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmlkICE9PSBpZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zID0gdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zLmZpbHRlcihub3RpZmljYXRpb25zID0+IG5vdGlmaWNhdGlvbnMuaWQgIT09IGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Y2Nlc3ModGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvblN1Y2Nlc3NGdWxsJyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3ModGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0LCAnc3VjY2VzcycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5mbyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLmluZm8odGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd2FybmluZyh0ZXh0LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IEwxMG5VdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLndhcm5pbmcodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IodGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ0Vycm9yT2NjdXJlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcih0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb24pIHtcclxuICAgICAgdGhpcy5hZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQsICdlcnJvcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsKHRleHQ/LCBwYXJhbXM/OiBhbnlbXSwgdGl0bGU/KSB7XHJcbiAgICB0ZXh0ID0gTDEwblV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvbkNhbmNlbGxlZCcpO1xyXG4gICAgdGl0bGUgPSBMMTBuVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5pbmZvKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFNlc3Npb25Ob3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKCk6IElOb3RpZmljYXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbk5vdGlmaWNhdGlvbnMuZ2V0VmFsdWUoKTtcclxuICB9XHJcbiAgc2V0IHNlc3Npb25Ob3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uTm90aWZpY2F0aW9ucy5uZXh0KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvLyBTZXJ2ZXJOb3RpZmljYXRpb25zXHJcbiAgZ2V0IHNlcnZlck5vdGlmaWNhdGlvbnMoKTogSU5vdGlmaWNhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLmdldFZhbHVlKCk7XHJcbiAgfVxyXG4gIHNldCBzZXJ2ZXJOb3RpZmljYXRpb25zKHZhbDogSU5vdGlmaWNhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9zZXJ2ZXJOb3RpZmljYXRpb25zLm5leHQodmFsKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,118 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 13 Nov 2017
12
-
13
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
14
- </file>
15
- */
16
- // Node
17
- import { Injectable } from '@angular/core';
18
- import { HttpClient } from '@angular/common/http';
19
- // App
20
- import { ContextInitState } from '../consts/settings';
21
- import { BaseApiService } from '../../data/base/base-api.service';
22
- import { SessionStorageService } from './web-storage.service';
23
- export class AppContextService extends BaseApiService {
24
- constructor(http, sessionStorage) {
25
- super(http);
26
- this.http = http;
27
- this.sessionStorage = sessionStorage;
28
- //Consts
29
- this.storageKeyName = 'appContext';
30
- this.subscription = null;
31
- this.successes = [];
32
- this.baseUrl = '/api/appContext';
33
- }
34
- //Session
35
- getCurrentFromSession() {
36
- return this.sessionStorage.getObject(this.storageKeyName);
37
- }
38
- setCurrentFromSession(value) {
39
- this.sessionStorage.setObject(this.storageKeyName, value);
40
- }
41
- updateCurrentIfExpired() {
42
- let context = this.getCurrentFromSession();
43
- if (!context) {
44
- return;
45
- }
46
- let lu = context.lastRequested;
47
- if (lu) {
48
- let now = new Date();
49
- let lastRequested = new Date(context.lastRequested);
50
- let in2Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 2, 0, 0);
51
- if (in2Mins.getTime() < now.getTime()) {
52
- this.updateCurrent();
53
- }
54
- }
55
- }
56
- dataReceived(data) {
57
- this.current = data;
58
- for (let i = 0; i < this.successes.length; i++) {
59
- let success = this.successes[i];
60
- if (success) {
61
- success(data);
62
- }
63
- }
64
- this.successes = [];
65
- this.subscription.unsubscribe();
66
- this.subscription = null;
67
- }
68
- getCurrent(success = null, getCachedIfExist = true) {
69
- let context = this.getCurrentFromSession();
70
- if (getCachedIfExist && context != null) {
71
- if (success) {
72
- success(context);
73
- }
74
- return;
75
- }
76
- if (success) {
77
- this.successes.push(success);
78
- }
79
- if (this.subscription != null) {
80
- return;
81
- }
82
- let now = new Date();
83
- console.log('Requesting a new AppContext at ' + now);
84
- this.subscription = this.get('getCurrentContext', null).subscribe((data) => {
85
- this.dataReceived(data);
86
- }, (e) => {
87
- });
88
- }
89
- updateCurrent(success = null) {
90
- this.getCurrent(success, false);
91
- }
92
- clearCurrent() {
93
- this.sessionStorage.remove(this.storageKeyName);
94
- }
95
- isUserSignedIn() {
96
- return ContextInitState.isUserSignedIn;
97
- }
98
- isUserAdmin() {
99
- return ContextInitState.isUserAdmin;
100
- }
101
- //Properties
102
- //current
103
- get current() {
104
- this.updateCurrentIfExpired();
105
- return this.getCurrentFromSession();
106
- }
107
- set current(value) {
108
- this.setCurrentFromSession(value);
109
- }
110
- }
111
- AppContextService.decorators = [
112
- { type: Injectable }
113
- ];
114
- AppContextService.ctorParameters = () => [
115
- { type: HttpClient },
116
- { type: SessionStorageService }
117
- ];
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE1BQU07QUFDTixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFPbkQsWUFDWSxJQUFnQixFQUNsQixjQUFxQztRQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFGRixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQVIvQyxRQUFRO1FBQ0EsbUJBQWMsR0FBRyxZQUFZLENBQUM7UUFFOUIsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFNckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUztJQUNELHFCQUFxQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtB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RCxjQUFjO1FBQ1osT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtJQUNaLFNBQVM7SUFDVCxJQUFXLE9BQU87UUFDaEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBbkhGLFVBQVU7OztZQVJGLFVBQVU7WUFNVixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMyBOb3YgMjAxN1xyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBDb250ZXh0SW5pdFN0YXRlIH0gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHsgQmFzZUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL2Jhc2UvYmFzZS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4vd2ViLXN0b3JhZ2Uuc2VydmljZSdcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcENvbnRleHRTZXJ2aWNlIGV4dGVuZHMgQmFzZUFwaVNlcnZpY2Uge1xyXG4gIC8vQ29uc3RzXHJcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5TmFtZSA9ICdhcHBDb250ZXh0JztcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdWNjZXNzZXMgPSBbXTsgIFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBcclxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSAnL2FwaS9hcHBDb250ZXh0JztcclxuICB9XHJcblxyXG4gIC8vU2Vzc2lvblxyXG4gIHByaXZhdGUgZ2V0Q3VycmVudEZyb21TZXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0T2JqZWN0KHRoaXMuc3RvcmFnZUtleU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEN1cnJlbnRGcm9tU2Vzc2lvbih2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKSB7XHJcbiAgICBsZXQgY29udGV4dCA9IHRoaXMuZ2V0Q3VycmVudEZyb21TZXNzaW9uKCk7XHJcblxyXG4gICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbHUgPSBjb250ZXh0Lmxhc3RSZXF1ZXN0ZWQ7XHJcblxyXG4gICAgaWYgKGx1KSB7XHJcbiAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBsZXQgbGFzdFJlcXVlc3RlZCA9IG5ldyBEYXRlKGNvbnRleHQubGFzdFJlcXVlc3RlZCk7XHJcbiAgICAgIGxldCBpbjJNaW5zID0gbmV3IERhdGUobGFzdFJlcXVlc3RlZC5nZXRGdWxsWWVhcigpLCBsYXN0UmVxdWVzdGVkLmdldE1vbnRoKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGxhc3RSZXF1ZXN0ZWQuZ2V0SG91cnMoKSwgbGFzdFJlcXVlc3RlZC5nZXRNaW51dGVzKCkgKyAyLCAwLCAwKTtcclxuXHJcbiAgICAgIGlmIChpbjJNaW5zLmdldFRpbWUoKSA8IG5vdy5nZXRUaW1lKCkpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnQoKTtcclxuICAgICAgfVxyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGF0YVJlY2VpdmVkKGRhdGEpIHtcclxuICAgIHRoaXMuY3VycmVudCA9IGRhdGE7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN1Y2Nlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgc3VjY2VzcyA9IHRoaXMuc3VjY2Vzc2VzW2ldO1xyXG4gICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIHN1Y2Nlc3MoZGF0YSk7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1Y2Nlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnQoc3VjY2VzczogRnVuY3Rpb24gPSBudWxsLCBnZXRDYWNoZWRJZkV4aXN0OiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgbGV0IGNvbnRleHQgPSB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG5cclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0ICYmIGNvbnRleHQgIT0gbnVsbCkgeyAgICBcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGNvbnRleHQpO1xyXG4gICAgICB9IFxyXG5cclxuICAgICAgcmV0dXJuOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuc3VjY2Vzc2VzLnB1c2goc3VjY2Vzcyk7XHJcbiAgICB9ICAgIFxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhUmVjZWl2ZWQoZGF0YSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlKSA9PiB7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCkge1xyXG4gICAgdGhpcy5nZXRDdXJyZW50KHN1Y2Nlc3MsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ3VycmVudCgpIHtcclxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlKHRoaXMuc3RvcmFnZUtleU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyU2lnbmVkSW4oKSB7XHJcbiAgICByZXR1cm4gQ29udGV4dEluaXRTdGF0ZS5pc1VzZXJTaWduZWRJbjtcclxuICB9XHJcblxyXG4gIGlzVXNlckFkbWluKCkge1xyXG4gICAgcmV0dXJuIENvbnRleHRJbml0U3RhdGUuaXNVc2VyQWRtaW47XHJcbiAgfVxyXG5cclxuICAvL1Byb3BlcnRpZXNcclxuICAvL2N1cnJlbnRcclxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRJZkV4cGlyZWQoKTtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRGcm9tU2Vzc2lvbigpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1cnJlbnQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50RnJvbVNlc3Npb24odmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,74 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 29 Щсе 2020
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Injectable, Inject } from '@angular/core';
21
- import { DOCUMENT } from '@angular/common';
22
- import { Title, Meta } from '@angular/platform-browser';
23
- import * as i0 from "@angular/core";
24
- import * as i1 from "@angular/platform-browser";
25
- import * as i2 from "@angular/common";
26
- export class DigitalMarketingService {
27
- constructor(title, meta, dom) {
28
- this.title = title;
29
- this.meta = meta;
30
- this.dom = dom;
31
- }
32
- updateTitle(title) {
33
- this.title.setTitle(title);
34
- }
35
- updateDescription(desc) {
36
- this.meta.updateTag({ name: 'description', content: desc });
37
- }
38
- updateKeywords(keywords) {
39
- this.meta.updateTag({ name: 'keywords', content: keywords });
40
- }
41
- updateMetaTags(meta) {
42
- meta.forEach(m => this.meta.updateTag(m));
43
- }
44
- setCanonicalUrl(url) {
45
- const canUrl = url === undefined ? this.dom.URL : url;
46
- const link = this.dom.createElement('link');
47
- link.setAttribute('rel', 'canonical');
48
- this.dom.head.appendChild(link);
49
- link.setAttribute('href', canUrl);
50
- }
51
- updateCanonicalUrl(url) {
52
- const canUrl = url === undefined ? this.dom.URL : url;
53
- const head = this.dom.getElementsByTagName('head')[0];
54
- let link = this.dom.querySelector(`link[rel='canonical']`) || null;
55
- if (link == null) {
56
- link = this.dom.createElement('link');
57
- head.appendChild(link);
58
- }
59
- link.setAttribute('rel', 'canonical');
60
- link.setAttribute('href', canUrl);
61
- }
62
- }
63
- DigitalMarketingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DigitalMarketingService_Factory() { return new DigitalMarketingService(i0.ɵɵinject(i1.Title), i0.ɵɵinject(i1.Meta), i0.ɵɵinject(i2.DOCUMENT)); }, token: DigitalMarketingService, providedIn: "root" });
64
- DigitalMarketingService.decorators = [
65
- { type: Injectable, args: [{
66
- providedIn: 'root'
67
- },] }
68
- ];
69
- DigitalMarketingService.ctorParameters = () => [
70
- { type: Title },
71
- { type: Meta },
72
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
73
- ];
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2RtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBa0IsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUt4RSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsS0FBWSxFQUNaLElBQVUsRUFDUSxHQUFRO1FBRjFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixTQUFJLEdBQUosSUFBSSxDQUFNO1FBQ1EsUUFBRyxHQUFILEdBQUcsQ0FBSztJQUVwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxjQUFjLENBQUMsUUFBYztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFzQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVk7UUFDMUIsTUFBTSxNQUFNLEdBQUcsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBb0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFZO1FBQzdCLE1BQU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksR0FBb0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLENBQUM7UUFFcEYsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQW9CLENBQUM7WUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7WUEvQ0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFKUSxLQUFLO1lBQUUsSUFBSTs0Q0FTZixNQUFNLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI5INCp0YHQtSAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRpdGxlLCBNZXRhLCBNZXRhRGVmaW5pdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlnaXRhbE1hcmtldGluZ1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0aXRsZTogVGl0bGUsXHJcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvbTogYW55LFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGl0bGUodGl0bGU/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGVzY3JpcHRpb24oZGVzYz86IHN0cmluZykge1xyXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2MgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVLZXl3b3JkcyhrZXl3b3Jkcz86IGFueSkge1xyXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdrZXl3b3JkcycsIGNvbnRlbnQ6IGtleXdvcmRzIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWV0YVRhZ3MobWV0YTogTWV0YURlZmluaXRpb25bXSkge1xyXG4gICAgbWV0YS5mb3JFYWNoKG0gPT4gdGhpcy5tZXRhLnVwZGF0ZVRhZyhtKSk7XHJcbiAgfVxyXG5cclxuICBzZXRDYW5vbmljYWxVcmwodXJsPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjYW5VcmwgPSB1cmwgPT09IHVuZGVmaW5lZCA/IHRoaXMuZG9tLlVSTCA6IHVybDtcclxuICAgIGNvbnN0IGxpbms6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMuZG9tLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCAnY2Fub25pY2FsJyk7XHJcbiAgICB0aGlzLmRvbS5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBjYW5VcmwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2Fub25pY2FsVXJsKHVybD86IHN0cmluZykge1xyXG4gICAgY29uc3QgY2FuVXJsID0gdXJsID09PSB1bmRlZmluZWQgPyB0aGlzLmRvbS5VUkwgOiB1cmw7XHJcbiAgICBjb25zdCBoZWFkID0gdGhpcy5kb20uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcclxuICAgIGxldCBsaW5rOiBIVE1MTGlua0VsZW1lbnQgPSB0aGlzLmRvbS5xdWVyeVNlbGVjdG9yKGBsaW5rW3JlbD0nY2Fub25pY2FsJ11gKSB8fCBudWxsO1xyXG5cclxuICAgIGlmIChsaW5rID09IG51bGwpIHtcclxuICAgICAgbGluayA9IHRoaXMuZG9tLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICB9XHJcblxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgY2FuVXJsKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,53 +0,0 @@
1
- /*
2
- <file>
3
- Project:
4
- @osovitny/anatoly
5
-
6
- Authors:
7
- Vadim Osovitny
8
- Anatoly Osovitny
9
-
10
- Created:
11
- 29 Nov 2020
12
-
13
- Version:
14
- 1.0
15
-
16
- Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
- </file>
18
- */
19
- // Node
20
- import { Injectable } from '@angular/core';
21
- import { Router, NavigationEnd } from '@angular/router';
22
- export class GoogleAnalyticsService {
23
- constructor(router) {
24
- this.router = router;
25
- /*
26
- https://yashints.dev/blog/2019/02/12/angular-ga-tagmanager
27
- https://developers.google.com/analytics/devguides/collection/gtagjs/pages
28
- https://developers.google.com/analytics/devguides/collection/upgrade/analyticsjs
29
- */
30
- }
31
- subscribe() {
32
- this.subscription = this.router.events.subscribe(event => {
33
- if (event instanceof NavigationEnd) {
34
- if (window.ga) {
35
- window.ga('set', 'page', event.urlAfterRedirects);
36
- window.ga('send', 'pageview');
37
- }
38
- }
39
- });
40
- }
41
- unsubscribe() {
42
- if (this.subscription) {
43
- this.subscription.unsubscribe();
44
- }
45
- }
46
- }
47
- GoogleAnalyticsService.decorators = [
48
- { type: Injectable }
49
- ];
50
- GoogleAnalyticsService.ctorParameters = () => [
51
- { type: Router }
52
- ];
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHeEQsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQzs7OztVQUlFO0lBQ0osQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RCxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7Z0JBQ2xDLElBQVUsTUFBTyxDQUFDLEVBQUUsRUFBRTtvQkFDZCxNQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ25ELE1BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUN0QzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7OztZQTNCRixVQUFVOzs7WUFGRixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjkgTm92IDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEdvb2dsZUFuYWx5dGljc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgXHJcbiAgICAvKlxyXG4gICAgICBodHRwczovL3lhc2hpbnRzLmRldi9ibG9nLzIwMTkvMDIvMTIvYW5ndWxhci1nYS10YWdtYW5hZ2VyXHJcbiAgICAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2FuYWx5dGljcy9kZXZndWlkZXMvY29sbGVjdGlvbi9ndGFnanMvcGFnZXNcclxuICAgICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vYW5hbHl0aWNzL2Rldmd1aWRlcy9jb2xsZWN0aW9uL3VwZ3JhZGUvYW5hbHl0aWNzanNcclxuICAgICovXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIGlmICgoPGFueT53aW5kb3cpLmdhKSB7XHJcbiAgICAgICAgICAoPGFueT53aW5kb3cpLmdhKCdzZXQnLCAncGFnZScsIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcclxuICAgICAgICAgICg8YW55PndpbmRvdykuZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==