@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 +0,0 @@
1
- {"version":3,"file":"osovitny-anatoly.js","sources":["../../../projects/anatoly/src/lib/core/consts/settings.ts","../../../projects/anatoly/src/lib/core/consts/urls.ts","../../../projects/anatoly/src/lib/core/go/base-go.service.ts","../../../projects/anatoly/src/lib/core/guards/once-import.guard.ts","../../../projects/anatoly/src/lib/core/services/loading.service.ts","../../../projects/anatoly/src/lib/core/logging/logging.service.ts","../../../projects/anatoly/src/lib/core/interceptors/httpInterceptor.ts","../../../projects/anatoly/src/lib/core/convert.ts","../../../projects/anatoly/src/lib/core/localization/localization.service.ts","../../../projects/anatoly/src/lib/core/localization/localize.pipe.ts","../../../projects/anatoly/src/lib/core/localization/localizationSettings.module.ts","../../../projects/anatoly/src/lib/core/localization/localization.module.ts","../../../projects/anatoly/src/lib/core/logging/globalErrorHandler.ts","../../../projects/anatoly/src/lib/core/localization/utils.ts","../../../projects/anatoly/src/lib/core/notifications/alerts.ts","../../../projects/anatoly/src/lib/core/notifications/interfaces/notification.ts","../../../projects/anatoly/src/lib/core/guid.ts","../../../projects/anatoly/src/lib/core/notifications/services/notification-service.ts","../../../projects/anatoly/src/lib/data/base/base-api.service.ts","../../../projects/anatoly/src/lib/core/services/web-storage.service.ts","../../../projects/anatoly/src/lib/core/services/appcontext.service.ts","../../../projects/anatoly/src/lib/core/services/idle.service.ts","../../../projects/anatoly/src/lib/core/services/dm.service.ts","../../../projects/anatoly/src/lib/core/services/google-analytics.service.ts","../../../projects/anatoly/src/lib/core/core.module.ts","../../../projects/anatoly/src/lib/core/subs.ts","../../../projects/anatoly/src/lib/core/utils.ts","../../../projects/anatoly/src/lib/data/base/grid/base-grid-read.service.ts","../../../projects/anatoly/src/lib/data/base/grid/base-grid-edit.service.ts","../../../projects/anatoly/src/lib/data/consts.ts","../../../projects/anatoly/src/lib/data/services/notifications/notifications-api-service.ts","../../../projects/anatoly/src/lib/data/services/billing-api.service.ts","../../../projects/anatoly/src/lib/data/data.module.ts","../../../projects/anatoly/src/lib/ui/components/base.component.ts","../../../projects/anatoly/src/lib/ui/components/base-edit.component.ts","../../../projects/anatoly/src/lib/ui/components/base.dialog.ts","../../../projects/anatoly/src/lib/ui/components/billing/buyaccess-button.component.ts","../../../projects/anatoly/src/lib/ui/components/billing/subscribe-plan-button.component.ts","../../../projects/anatoly/src/lib/ui/components/billing/upgrade-plan-button.component.ts","../../../projects/anatoly/src/lib/ui/components/content-header/content-header.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.defaultoptions.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/base-html-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/forms-html-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/html-editor/html-editor.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signin-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signout-button.component.ts","../../../projects/anatoly/src/lib/ui/components/identity/signup-button.component.ts","../../../projects/anatoly/src/lib/ui/components/loading/loading.component.ts","../../../projects/anatoly/src/lib/ui/components/spinner/spinner.component.ts","../../../projects/anatoly/src/lib/ui/directives/native-element.directive.ts","../../../projects/anatoly/src/lib/ui/pipes/replace-text.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/filesize.pipe.ts","../../../projects/anatoly/src/lib/ui/pipes/safeHtml.pipe.ts","../../../projects/anatoly/src/lib/ui/validation/validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/form-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/validation/item-validation-summary.component.ts","../../../projects/anatoly/src/lib/ui/ui.module.ts","../../../projects/anatoly/src/public-api.ts","../../../projects/anatoly/src/osovitny-anatoly.ts"],"sourcesContent":["/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const ContextInitState = JSON.parse(\r\n ((\r\n document.getElementById('contextInitState')\r\n ) as HTMLInputElement).getAttribute('data-contextinitstate')\r\n);\r\n\r\nexport const AppCoreSettings = JSON.parse(\r\n ((\r\n document.getElementById('appCoreSettings')\r\n ) as HTMLInputElement).getAttribute('data-appcoresettings')\r\n);\r\n","/*\r\n<file>\r\n Project:\r\n MICE\r\n\r\n Authors:\r\n Vadim Osovitny vaosovitny@deloitte.com\r\n\r\n Created:\r\n 5 May 2020\r\n\r\n Copyright (c) 2020 Deloitte Tax. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const Urls = {\r\n // SignalR Notifications\r\n notificationsSocketUrl: '/hubs/notifications'\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 17 Jun 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {Injectable} from '@angular/core';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\n\r\n@Injectable()\r\nexport class BaseGoService {\r\n constructor(protected route: ActivatedRoute, protected router: Router) {\r\n this.route = route;\r\n this.router = router;\r\n }\r\n\r\n locationReload() {\r\n (window as any).location.reload();\r\n }\r\n\r\n homeReload() {\r\n (window as any).location.href = \"/\";\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(\r\n `${moduleName} has already been loaded. Import ${moduleName} modules in the AppModule only.`\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n//RxJs\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LoadingService extends BehaviorSubject<boolean> {\r\n private counter = 0;\r\n\r\n //Public\r\n public isFreezed = false;\r\n\r\n constructor() {\r\n super(false);\r\n }\r\n\r\n show() {\r\n this.counter++;\r\n\r\n let that = this;\r\n setTimeout(() => {\r\n if (that.counter > 0) {\r\n that.next(true);\r\n }\r\n }, 500);\r\n }\r\n\r\n hide() {\r\n if (this.counter <= 0) {\r\n return;\r\n }\r\n\r\n this.counter--;\r\n\r\n if (this.counter == 0) {\r\n this.next(false);\r\n }\r\n }\r\n\r\n freeze(timeout: number = 1000) {\r\n this.isFreezed = true;\r\n\r\n let that = this;\r\n setTimeout(() => {\r\n this.isFreezed = false;\r\n }, timeout);\r\n }\r\n\r\n reset() {\r\n if (this.counter > 0) {\r\n this.next(false);\r\n }\r\n\r\n this.counter = 0;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LoggingService {\r\n constructor() {}\r\n\r\n logError(error) {\r\n console.error(error);\r\n }\r\n\r\n logInformation(info) {\r\n console.info(info);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 25 March 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\n\r\n// RxJS\r\nimport {tap} from 'rxjs/operators';\r\nimport {Observable} from 'rxjs';\r\n\r\n// App\r\nimport {AppCoreSettings} from '../consts/settings';\r\nimport {LoadingService} from '../services/loading.service';\r\nimport {LoggingService} from '../logging/logging.service';\r\n\r\n@Injectable()\r\nexport class AnatolyHttpInterceptor implements HttpInterceptor {\r\n protected longRunningExceptionsList = [];\r\n protected autoCDNSASTokenUrls = ['chunks', 'resources'];\r\n protected externalSiteUrls = ['azurewebsites.net'];\r\n\r\n constructor(protected loadingService: LoadingService, protected loggingService: LoggingService) {\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const isCDNEnabled = AppCoreSettings.IsCDNEnabled;\r\n const cdnSasToken = AppCoreSettings.CDNSASToken;\r\n\r\n const isLoadingFreezed = this.loadingService.isFreezed; \r\n const authorizationTokenRequired = true;\r\n const url = req.url.toLowerCase();\r\n const originalUrl = req.url;\r\n let isExternalSite = false;\r\n let loadingRequired = !isLoadingFreezed;\r\n\r\n if (!isLoadingFreezed) {\r\n for (const i of this.longRunningExceptionsList) {\r\n if (url.indexOf(this.longRunningExceptionsList[i]) >= 0) {\r\n loadingRequired = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (isCDNEnabled) {\r\n for (const i of this.autoCDNSASTokenUrls) {\r\n if (url.indexOf(this.autoCDNSASTokenUrls[i]) >= 0) {\r\n req = req.clone({ url: originalUrl + cdnSasToken });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (const i of this.externalSiteUrls) {\r\n if (url.indexOf(this.externalSiteUrls[i]) >= 0) {\r\n isExternalSite = true;\r\n break;\r\n }\r\n }\r\n\r\n // VadimOS: IE11-fix\r\n if (url.indexOf('/api/') > -1) {\r\n let newUrl = '';\r\n const t = new Date().getTime().toString();\r\n\r\n if (url.indexOf('?') > -1) {\r\n newUrl = originalUrl + '&t=' + t;\r\n } else {\r\n newUrl = originalUrl + '?t=' + t;\r\n }\r\n\r\n req = req.clone({ url: newUrl });\r\n }\r\n\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/json') });\r\n req = req.clone({ headers: req.headers.set('Accept', 'application/text') });\r\n\r\n this.onRequestStart(loadingRequired);\r\n\r\n return next.handle(req).pipe(\r\n tap(\r\n (event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.onRequestEnd(loadingRequired);\r\n }\r\n },\r\n (err: any) => {\r\n this.onRequestEnd(loadingRequired);\r\n this.loggingService.logError(err);\r\n }\r\n )\r\n );\r\n }\r\n\r\n onRequestStart(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.show();\r\n }\r\n }\r\n\r\n onRequestEnd(loadingRequired: boolean) {\r\n if (loadingRequired) {\r\n this.loadingService.hide();\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 29 June 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Convert {\r\n public static toLocalizedDateTime(value: Date): Date | null {\r\n if (value) {\r\n return new Date(\r\n Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(),\r\n value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds())\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static enumToString(enumeration, value) {\r\n for (var k in enumeration) if (enumeration[k] == value) return k;\r\n\r\n return null;\r\n }\r\n\r\n public static enumToArray(enumeration, notIncludes?) {\r\n const notIncludeFiler = (value) => {\r\n if (isNaN(Number(value))) {\r\n return false;\r\n }\r\n\r\n if (notIncludes) {\r\n for (var i in notIncludes) {\r\n if (notIncludes[i] == value)\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return Object.keys(enumeration)\r\n .filter(notIncludeFiler)\r\n .map(key => ({\r\n value: key,\r\n text: enumeration[key]\r\n }));\r\n }\r\n\r\n public static stringToArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n public static stringToIntArray(str: string, separator: string = ',') {\r\n if (str) {\r\n return str.split(separator).filter(element => element).map(value => parseInt(value));\r\n }\r\n\r\n return [];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 05 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n//Date fns\r\nimport { format, isValid, formatDistanceToNow, formatDistance } from 'date-fns';\r\nimport { utcToZonedTime } from 'date-fns-tz';\r\n\r\n// VadimOS: IE11-fix. DON'T change next imports!\r\n// Reason: https://github.com/date-fns/date-fns/issues/666\r\nimport enUS from 'date-fns/locale/en-US';\r\n\r\n// App\r\nimport {AppCoreSettings} from '../consts/settings';\r\nimport {Convert} from '../convert';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalizationService {\r\n dateFnsLocale: any;\r\n\r\n constructor(private translate: TranslateService) {\r\n this.setSupportedLanguages(['en']);\r\n }\r\n\r\n private format(str: string, args) {\r\n return str.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n };\r\n\r\n configureTranslationSettings(translate: TranslateService): string {\r\n const languageToSet = 'en';\r\n this.dateFnsLocale = { locale: enUS };\r\n\r\n translate.setDefaultLang(languageToSet);\r\n return languageToSet;\r\n }\r\n\r\n getBrowserLanguage(): string {\r\n return this.translate.getBrowserLang();\r\n }\r\n\r\n getDatefnsLocale(): any {\r\n let dfnLocale: any;\r\n\r\n switch (this.getBrowserLanguage()) {\r\n case 'en':\r\n dfnLocale = { locale: enUS };\r\n break;\r\n\r\n default:\r\n dfnLocale = { locale: enUS };\r\n }\r\n\r\n return dfnLocale;\r\n }\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n\r\n setSupportedLanguages(languages: string[]): void {\r\n this.translate.addLangs(languages);\r\n }\r\n\r\n updateLanguage(language: string): void {\r\n this.translate.use(language);\r\n }\r\n\r\n getLocalizedValue(key: string, params?: any[]): string {\r\n const value = this.translate.instant(key);\r\n\r\n if (!params || params.length === 0) {\r\n return value;\r\n }\r\n\r\n return this.format(value, params);\r\n }\r\n\r\n getLocalizedDate(key: string): string {\r\n if (isValid(new Date(key))) {\r\n return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);\r\n }\r\n\r\n return \"Invalid Date\";\r\n }\r\n\r\n getLocalizedDateTime(key: string) {\r\n let dateValue = new Date(key);\r\n if (isValid(dateValue)) {\r\n let localDate = Convert.toLocalizedDateTime(dateValue);\r\n return format(localDate, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);\r\n }\r\n\r\n return \"Invalid Date\";\r\n }\r\n\r\n getLocalizedDistanceInWords(endedDate: string, startedDate: string): string {\r\n if (isValid(new Date(endedDate)) && isValid(new Date(startedDate))) {\r\n return formatDistance(new Date(endedDate), new Date(startedDate), this.dateFnsLocale);\r\n }\r\n\r\n return \"Invalid Date\";\r\n }\r\n\r\n getLocalizedDistanceToNowInWords(date: string): string {\r\n if (isValid(new Date(date))) {\r\n return formatDistanceToNow(new Date(date), this.dateFnsLocale);\r\n }\r\n\r\n return \"Invalid Date\";\r\n }\r\n\r\n //UTC Operations --------------------------------------------------------------\r\n getUTCToLocalizedDate(key: string) {\r\n let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n if (key) {\r\n if (key.indexOf(\"T\") == -1) {\r\n key = key.replace(\" \", \"T\");\r\n }\r\n if (key.indexOf(\"Z\") == -1) {\r\n key = key + \"Z\";\r\n }\r\n }\r\n\r\n if (browserTimeZone) {\r\n let localDateTime = utcToZonedTime(key, browserTimeZone);\r\n return format(localDateTime, 'dd.MM.yyyy', this.dateFnsLocale);\r\n }\r\n else {\r\n return format(new Date(key), 'dd.MM.yyyy', this.dateFnsLocale);\r\n }\r\n }\r\n\r\n getUTCToLocalizedDateTime(key: string) {\r\n let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n if (key) {\r\n if (key.indexOf(\"T\") == -1) {\r\n key = key.replace(\" \", \"T\");\r\n }\r\n if (key.indexOf(\"Z\") == -1) {\r\n key = key + \"Z\";\r\n }\r\n }\r\n\r\n if (browserTimeZone) {\r\n let localDateTime = utcToZonedTime(key, browserTimeZone);\r\n return format(localDateTime, 'dd.MM.yyyy HH:mm', this.dateFnsLocale);\r\n }\r\n else {\r\n return format(new Date(key), 'dd.MM.yyyy HH:mm', this.dateFnsLocale);\r\n }\r\n }\r\n\r\n //https://date-fns.org/v1.30.1/docs/distanceInWords\r\n getUTCToLocalizedDistanceToNowInWords(date: string): string {\r\n date = this.safeUtcToZonedTime(date);\r\n\r\n if (isValid(new Date(date))) {\r\n return formatDistanceToNow(new Date(date), this.dateFnsLocale);\r\n }\r\n\r\n return \"Invalid Date\";\r\n }\r\n \r\n\r\n safeUtcToZonedTime(date): string {\r\n let result = date;\r\n\r\n try\r\n {\r\n if (date) {\r\n if (date.indexOf(\"T\") == -1) {\r\n date = date.replace(\" \", \"T\");\r\n }\r\n\r\n if (date.indexOf(\"Z\") == -1) {\r\n date = date + \"Z\";\r\n }\r\n }\r\n\r\n let browserTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n if (browserTimeZone) {\r\n result = utcToZonedTime(date, browserTimeZone).toString();\r\n }\r\n else {\r\n result = new Date(date).toString();\r\n }\r\n }\r\n catch\r\n {\r\n if (date) {\r\n console.log(\"UTC to Local conversion failed for :\" + date.toString())\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 10 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n//App\r\nimport { LocalizationService } from './localization.service';\r\n\r\n@Pipe({\r\n name: 'localize'\r\n})\r\nexport class LocalizePipe implements PipeTransform {\r\n constructor(private localizeService: LocalizationService) {\r\n }\r\n\r\n transform(inputData: string, type: string, param2?: string): string {\r\n if (!inputData) {\r\n return;\r\n }\r\n\r\n if (!type) {\r\n type = 'tr';\r\n }\r\n\r\n //Translate\r\n if (type === 'tr') {\r\n return this.localizeService.getLocalizedValue(inputData);\r\n }\r\n\r\n //Date\r\n if (type === 'd') {\r\n return this.localizeService.getLocalizedDate(inputData);\r\n }\r\n\r\n //DateTime\r\n if (type === 'dt') {\r\n return this.localizeService.getLocalizedDateTime(inputData);\r\n }\r\n\r\n //DistanceInWords\r\n if (type === 'dis') {\r\n return this.localizeService.getLocalizedDistanceInWords(inputData, param2);\r\n }\r\n\r\n //DistanceToNowInWords\r\n if (type === 'dis2now') {\r\n return this.localizeService.getLocalizedDistanceToNowInWords(inputData);\r\n }\r\n\r\n //UTC Operations --------------------------------------------------------------\r\n //UTC Date\r\n if (type === 'u2d') {\r\n return this.localizeService.getUTCToLocalizedDate(inputData);\r\n }\r\n\r\n //UTC DateTime\r\n if (type === 'u2dt') {\r\n return this.localizeService.getUTCToLocalizedDateTime(inputData);\r\n }\r\n\r\n //UTC DistanceToNowInWords\r\n if (type === 'u2dis2now') {\r\n return this.localizeService.getUTCToLocalizedDistanceToNowInWords(inputData);\r\n }\r\n\r\n return inputData;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 05 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule, Injector, APP_INITIALIZER } from '@angular/core';\r\nimport { LOCATION_INITIALIZED } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n\r\n//App\r\nimport { LocalizationService } from './localization.service';\r\nimport { AppCoreSettings } from '../consts/settings';\r\n\r\nexport function customTranslateLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http, AppCoreSettings.resourcesUrl + \"/\", '.json');\r\n}\r\n\r\nexport function localizationInitializerFactory(translate: TranslateService, localizationService: LocalizationService, injector: Injector) {\r\n return () => new Promise<any>((resolve: any) => {\r\n let locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\r\n locationInitialized.then(() => {\r\n let languageToSet = localizationService.configureTranslationSettings(translate);\r\n translate.use(languageToSet).subscribe(() => {\r\n },\r\n () => {\r\n resolve(null);\r\n },\r\n () => {\r\n resolve(null);\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport const TranslateModuleAtRoot = TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: customTranslateLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n});\r\n\r\nexport let LocalizationInjectorInstance: Injector; \r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModuleAtRoot\r\n ],\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: localizationInitializerFactory,\r\n deps: [TranslateService, LocalizationService, Injector],\r\n multi: true\r\n }\r\n ],\r\n exports: [\r\n ]\r\n})\r\nexport class LocalizationSettingsModule {\r\n constructor(private injector: Injector) {\r\n LocalizationInjectorInstance = this.injector;\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n// Pipes\r\nimport { LocalizePipe } from './localize.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule\r\n ],\r\n exports: [\r\n TranslateModule,\r\n LocalizePipe\r\n ],\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class LocalizationModule {\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n/*\r\n https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c\r\n https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4\r\n*/\r\n\r\n// Node\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\n\r\n// App\r\nimport { LoggingService } from \"./logging.service\";\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor(private injector: Injector) {}\r\n\r\n handleError(error) {\r\n const loggingService = this.injector.get(LoggingService);\r\n loggingService.logError(error);\r\n\r\n // IMPORTANT: Rethrow the error otherwise it gets swallowed\r\n throw error;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 2 July 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// App\r\nimport { LocalizationInjectorInstance } from './localizationSettings.module';\r\nimport { LocalizationService } from './localization.service';\r\n\r\nexport class L10nUtils {\r\n // @dynamic\r\n static get localizationService(): LocalizationService {\r\n const ns = LocalizationInjectorInstance.get<LocalizationService>(LocalizationService);\r\n return ns;\r\n }\r\n\r\n public static getLocalizedValue(key: string, params?: any[], defaultKey?: string) {\r\n // VadimOS: DON'T CHANGE THIS CODE. NEED TO BE REVIEWED AND APPROVED BY VADIMOS\r\n // defaultKey definition:\r\n // if key is empty and defaultKey is defined => get localization for defaultKey\r\n // Example: cancel()\r\n if (!key && defaultKey) {\r\n return this.localizationService.getLocalizedValue(defaultKey);\r\n }\r\n\r\n // VadimOS:\r\n // if key is not empty value MUST be in localization table, othewise we will return key\r\n if (key) {\r\n const value = this.localizationService.getLocalizedValue(key, params);\r\n return value;\r\n }\r\n\r\n return key;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 3 March 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport Swal from 'sweetalert2';\r\nimport { L10nUtils } from '../localization/utils';\r\n\r\nexport class Alerts {\r\n public static success(text?, params?: any[], title?, successAction?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Success');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'success',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Ok')\r\n })\r\n .then(() => {\r\n if (successAction) {\r\n successAction();\r\n }\r\n });\r\n }\r\n\r\n public static info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Info');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Ok')\r\n });\r\n }\r\n\r\n public static warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title, null, 'Warning');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Ok')\r\n });\r\n }\r\n\r\n public static error(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Error');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'error',\r\n confirmButtonText: L10nUtils.getLocalizedValue('Ok')\r\n });\r\n }\r\n\r\n public static cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title, null, 'Cancelled');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'info'\r\n })\r\n }\r\n\r\n public static notImplemented() {\r\n this.warning('Not Implemented Yet');\r\n };\r\n\r\n public static areYouSure(text, title?, confirmButtonText?, cancelButtonText?, successAction?, cancelAction?) {\r\n text = L10nUtils.getLocalizedValue(text);\r\n title = L10nUtils.getLocalizedValue(title, null, 'AreYouSure');\r\n confirmButtonText = L10nUtils.getLocalizedValue(confirmButtonText, null, 'AreYouSure-ConfirmButtonText');\r\n cancelButtonText = L10nUtils.getLocalizedValue(cancelButtonText, null, 'AreYouSure-CancelButtonText');\r\n\r\n Swal.fire({\r\n text,\r\n title,\r\n icon: 'warning',\r\n confirmButtonText,\r\n cancelButtonText,\r\n showCancelButton: true\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n if (successAction) {\r\n successAction();\r\n }\r\n }\r\n // result.dismiss can be 'cancel', 'overlay', 'close', and 'timer'\r\n else if (result.dismiss == Swal.DismissReason.cancel || result.dismiss == Swal.DismissReason.close) {\r\n if (cancelAction) {\r\n cancelAction();\r\n }\r\n }\r\n });\r\n };\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport interface INotification {\r\n id?: string;\r\n isNew: boolean;\r\n isSession: boolean;\r\n text?: string;\r\n type?: string;\r\n component?: string;\r\n operation?: string;\r\n createdDate?: string;\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport class Guid {\r\n public static newGuid() {\r\n return uuidv4();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 2 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Injectable} from '@angular/core';\r\nimport {ToastrService} from 'ngx-toastr';\r\n\r\n// RxJs\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\n// App\r\nimport { L10nUtils } from '../../localization/utils';\r\nimport { Guid } from '../../guid';\r\nimport { INotification } from '../interfaces/notification';\r\n\r\n// SignalR\r\n// import * as signalR from '@microsoft/signalr';\r\n// import { NotificationsApiService } from '../../../data/services/notifications/notifications-api-service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class NotificationService {\r\n // SignalR\r\n // private hubConnection: signalR.HubConnection;\r\n // private socketUrl: string;\r\n\r\n // Notifications\r\n private _sessionNotifications = new BehaviorSubject<INotification[]>([]);\r\n private _serverNotifications = new BehaviorSubject<INotification[]>([]);\r\n\r\n // Public\r\n readonly sessionNotifications$ = this._sessionNotifications.asObservable();\r\n readonly serverNotifications$ = this._serverNotifications.asObservable();\r\n\r\n constructor(private toastrService: ToastrService) {\r\n // this.onInit();\r\n }\r\n\r\n /*\r\n onInit() {\r\n if (AppCoreSettings.AzureAD) {\r\n this.authService.getAuthToken().subscribe((token: string) => {\r\n this.startSignalRConnection(token);\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.startSignalRConnection();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopSignalRConnection();\r\n }\r\n\r\n // SignalR\r\n private startSignalRConnection(accessToken?) {\r\n const cskii = AppCoreSettings.selectedClientID;\r\n // tslint:disable-next-line:variable-name\r\n const cskii_upn = AppCoreSettings.CSKII_UPN;\r\n // tslint:disable-next-line:variable-name\r\n const cli_sessionguid = AppCoreSettings.CLI_SessionGUID;\r\n\r\n const url = this.socketUrl + '?cskii=' + cskii + '&cskii_upn=' + cskii_upn + '&cli_sessionguid=' + cli_sessionguid;\r\n\r\n if (accessToken) {\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(url, {\r\n skipNegotiation: false,\r\n transport: signalR.HttpTransportType.WebSockets,\r\n accessTokenFactory: () => accessToken\r\n })\r\n .withAutomaticReconnect()\r\n .configureLogging(signalR.LogLevel.Debug)\r\n .build();\r\n }\r\n else {\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(this.socketUrl, {\r\n skipNegotiation: true,\r\n transport: signalR.HttpTransportType.WebSockets\r\n })\r\n .withAutomaticReconnect()\r\n .configureLogging(signalR.LogLevel.Debug)\r\n .build();\r\n }\r\n\r\n this.hubConnection\r\n .start()\r\n .then(() => this.signalRConnection_onSuccess())\r\n .catch(err => {\r\n console.error('Connection failed to SignalR Notification Hub')\r\n })\r\n }\r\n\r\n private signalRConnection_onSuccess() {\r\n this.addReceiveMessageDataListener();\r\n\r\n this.notificationsApiService.retrieveNotifications().subscribe(data => {\r\n this.serverNotifications = data;\r\n });\r\n }\r\n\r\n stopSignalRConnection() {\r\n if (this.hubConnection) {\r\n this.hubConnection.stop();\r\n this.hubConnection = null;\r\n }\r\n }\r\n\r\n private addReceiveMessageDataListener = () => {\r\n this.hubConnection.on('ReceiveMessage', (message) => {\r\n if (message) {\r\n if (message.type === 'error') {\r\n this.error(message.text, null, null, false);\r\n }\r\n else {\r\n this.success(message.text, null, null, false);\r\n }\r\n\r\n const notification = {\r\n id: message.id,\r\n isNew: message.isNew,\r\n isSession: true,\r\n text: message.text,\r\n type: message.type,\r\n createdDate: message.createdDate\r\n };\r\n\r\n this.addSessionNotificationToList(notification);\r\n }\r\n });\r\n }\r\n */\r\n\r\n private addSessionNotification(text: string, type: string) {\r\n const id = Guid.newGuid();\r\n const notification = { id, isNew: true, isSession: true, text, type, createdDate: new Date(Date.now()).toISOString() };\r\n\r\n this.addSessionNotificationToList(notification);\r\n }\r\n\r\n private addSessionNotificationToList(notification: INotification) {\r\n this.sessionNotifications = [\r\n notification,\r\n ...this.sessionNotifications,\r\n ];\r\n }\r\n\r\n // Public API\r\n removeNotification(id: string, isSession: boolean) {\r\n if (isSession) {\r\n this.sessionNotifications = this.sessionNotifications.filter(notifications => notifications.id !== id);\r\n }\r\n else {\r\n this.serverNotifications = this.serverNotifications.filter(notifications => notifications.id !== id);\r\n }\r\n }\r\n\r\n success(text?, params?: any[], title?, createSessionNotification: boolean = true) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'OperationSuccessFull');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.success(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n\r\n if (createSessionNotification) {\r\n this.addSessionNotification(text, 'success');\r\n }\r\n }\r\n\r\n info(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n warning(text, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params);\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.warning(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n error(text?, params?: any[], title?, createSessionNotification: boolean = true) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'ErrorOccured');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.error(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n\r\n if (createSessionNotification) {\r\n this.addSessionNotification(text, 'error');\r\n }\r\n }\r\n\r\n cancel(text?, params?: any[], title?) {\r\n text = L10nUtils.getLocalizedValue(text, params, 'OperationCancelled');\r\n title = L10nUtils.getLocalizedValue(title);\r\n\r\n this.toastrService.info(text, title, {\r\n timeOut: 3000,\r\n progressBar: true\r\n });\r\n }\r\n\r\n // SessionNotifications\r\n get sessionNotifications(): INotification[] {\r\n return this._sessionNotifications.getValue();\r\n }\r\n set sessionNotifications(val: INotification[]) {\r\n this._sessionNotifications.next(val);\r\n }\r\n\r\n // ServerNotifications\r\n get serverNotifications(): INotification[] {\r\n return this._serverNotifications.getValue();\r\n }\r\n set serverNotifications(val: INotification[]) {\r\n this._serverNotifications.next(val);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n// RxJs\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n//App\r\nimport { AppCoreSettings } from '../../core/consts/settings';\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class BaseApiService {\r\n protected baseUrl: string;\r\n\r\n constructor(protected http: HttpClient) {\r\n }\r\n\r\n private serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : '';\r\n }\r\n\r\n //api\r\n get<T>(action: string, data?: any, responseType?): Observable<T> {\r\n if (!responseType) {\r\n responseType = 'json';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.get<T>(url, { responseType: responseType }).pipe(\r\n map(res => <T>res)\r\n );\r\n }\r\n\r\n post(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}`;\r\n return this.http.post(url, data, { responseType: responseType });\r\n }\r\n\r\n postQS(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.post(url, null, { responseType: responseType });\r\n }\r\n\r\n delete(action: string, data?: any, responseType?): Observable<any> {\r\n if (!responseType) {\r\n responseType = 'text';\r\n }\r\n\r\n var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.delete(url, { responseType: responseType });\r\n }\r\n\r\n //gets\r\n getExternalTextFile(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n getExternalJsonFile(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n getJsonFile(fileName: string): Observable<any[]> {\r\n const jsonsUrl = AppCoreSettings.jsonsUrl;\r\n const jsonVersion = AppCoreSettings.jsonVersion;\r\n const isCDNEnabled = AppCoreSettings.isCDNEnabled;\r\n const cdnSasToken = AppCoreSettings.cdnSasToken;\r\n let url = \"\";\r\n\r\n if (isCDNEnabled) {\r\n url = jsonsUrl + \"/\" + fileName + cdnSasToken;\r\n }\r\n else {\r\n url = jsonsUrl + \"/\" + fileName + '?' + jsonVersion;\r\n } \r\n\r\n return this.http.get(url).pipe(\r\n map(res => <any[]>res)\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {Injectable} from '@angular/core';\r\n\r\n//App\r\nimport {AppCoreSettings} from '../consts/settings';\r\n\r\nclass WebStorageService {\r\n storage: any;\r\n\r\n constructor(storage: string) {\r\n this.storage =\r\n storage === 'local' || storage === 'localStorage'\r\n ? localStorage\r\n : sessionStorage;\r\n }\r\n\r\n setItem(key, value) {\r\n this.storage.setItem(key, value);\r\n }\r\n\r\n setObject(key, value) {\r\n this.storage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n getItem(key) {\r\n return this.storage.getItem(key);\r\n }\r\n\r\n getObject(key) {\r\n let value = this.storage.getItem(key);\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(value);\r\n }\r\n\r\n remove(key) {\r\n this.storage.removeItem(key);\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class LocalStorageService extends WebStorageService {\r\n constructor() {\r\n super('localStorage');\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class SessionStorageService extends WebStorageService {\r\n constructor() {\r\n super('sessionStorage');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 13 Nov 2017\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\n\r\n// App\r\nimport { ContextInitState } from '../consts/settings';\r\nimport { BaseApiService } from '../../data/base/base-api.service';\r\nimport { SessionStorageService } from './web-storage.service'\r\n\r\n@Injectable()\r\nexport class AppContextService extends BaseApiService {\r\n //Consts\r\n private storageKeyName = 'appContext';\r\n\r\n private subscription: Subscription = null;\r\n private successes = []; \r\n\r\n constructor(\r\n protected http: HttpClient, \r\n private sessionStorage: SessionStorageService) {\r\n super(http);\r\n this.baseUrl = '/api/appContext';\r\n }\r\n\r\n //Session\r\n private getCurrentFromSession() {\r\n return this.sessionStorage.getObject(this.storageKeyName);\r\n }\r\n\r\n public setCurrentFromSession(value: any) {\r\n this.sessionStorage.setObject(this.storageKeyName, value);\r\n }\r\n\r\n private updateCurrentIfExpired() {\r\n let context = this.getCurrentFromSession();\r\n\r\n if (!context) {\r\n return;\r\n }\r\n\r\n let lu = context.lastRequested;\r\n\r\n if (lu) {\r\n let now = new Date();\r\n let lastRequested = new Date(context.lastRequested);\r\n let in2Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(),\r\n lastRequested.getHours(), lastRequested.getMinutes() + 2, 0, 0);\r\n\r\n if (in2Mins.getTime() < now.getTime()) {\r\n this.updateCurrent();\r\n }\r\n } \r\n }\r\n\r\n private dataReceived(data) {\r\n this.current = data;\r\n\r\n for (let i = 0; i < this.successes.length; i++) {\r\n let success = this.successes[i];\r\n if (success) {\r\n success(data);\r\n } \r\n }\r\n\r\n this.successes = [];\r\n this.subscription.unsubscribe();\r\n this.subscription = null;\r\n }\r\n\r\n getCurrent(success: Function = null, getCachedIfExist: boolean = true) {\r\n let context = this.getCurrentFromSession();\r\n\r\n if (getCachedIfExist && context != null) { \r\n if (success) {\r\n success(context);\r\n } \r\n\r\n return; \r\n }\r\n\r\n if (success) {\r\n this.successes.push(success);\r\n } \r\n\r\n if (this.subscription != null) {\r\n return;\r\n }\r\n\r\n let now = new Date();\r\n console.log('Requesting a new AppContext at ' + now);\r\n\r\n this.subscription = this.get('getCurrentContext', null).subscribe(\r\n (data) => {\r\n this.dataReceived(data);\r\n },\r\n (e) => {\r\n }\r\n );\r\n }\r\n\r\n updateCurrent(success: Function = null) {\r\n this.getCurrent(success, false);\r\n }\r\n\r\n clearCurrent() {\r\n this.sessionStorage.remove(this.storageKeyName);\r\n }\r\n\r\n isUserSignedIn() {\r\n return ContextInitState.isUserSignedIn;\r\n }\r\n\r\n isUserAdmin() {\r\n return ContextInitState.isUserAdmin;\r\n }\r\n\r\n //Properties\r\n //current\r\n public get current() {\r\n this.updateCurrentIfExpired();\r\n return this.getCurrentFromSession();\r\n }\r\n public set current(value: any) {\r\n this.setCurrentFromSession(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from '@angular/core';\r\n\r\n//RxJs\r\nimport { Observable, fromEvent, merge, Subject, timer } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdleService {\r\n private idle$: Observable<any>;\r\n private timer$;\r\n private idleSubscription;\r\n\r\n //Dates/Timeouts\r\n private startDate;\r\n private timeOutSeconds: number;\r\n private timeOutMilliSeconds: number;\r\n\r\n public expired$: Subject<boolean> = new Subject<boolean>();\r\n\r\n //Private\r\n private resetTimeCounters(timeOutSeconds) {\r\n this.timeOutSeconds = timeOutSeconds;\r\n this.timeOutMilliSeconds = timeOutSeconds * 1000;\r\n this.startDate = new Date();\r\n }\r\n\r\n private startTimer() {\r\n this.timer$ = timer(this.timeOutMilliSeconds, 1 * 1000).subscribe((res) => {\r\n let nowDate = new Date();\r\n let exiredDate = new Date(this.startDate.getTime() + this.timeOutMilliSeconds);\r\n\r\n if (nowDate.getTime() >= exiredDate.getTime()) {\r\n //console.log(\"nowDate: \" + nowDate);\r\n //console.log(\"exiredDate: \" + exiredDate);\r\n\r\n this.expired$.next(true);\r\n }\r\n });\r\n }\r\n\r\n private resetTimer() {\r\n this.startDate = new Date();\r\n }\r\n\r\n //Public\r\n public startWatching(timeOutSeconds): Observable<any> {\r\n this.idle$ = merge(\r\n fromEvent(document, 'mousemove'),\r\n fromEvent(document, 'click'),\r\n fromEvent(document, 'mousedown'),\r\n fromEvent(document, 'keypress'),\r\n fromEvent(document, 'DOMMouseScroll'),\r\n fromEvent(document, 'mousewheel'),\r\n fromEvent(document, 'touchmove'),\r\n fromEvent(document, 'MSPointerMove'),\r\n fromEvent(window, 'mousemove'),\r\n fromEvent(window, 'resize'),\r\n );\r\n \r\n this.resetTimeCounters(timeOutSeconds);\r\n\r\n this.idleSubscription = this.idle$.subscribe((res) => {\r\n this.resetTimer();\r\n });\r\n\r\n this.startTimer();\r\n return this.expired$;\r\n }\r\n\r\n public stopWatching() {\r\n this.timer$.unsubscribe();\r\n this.idleSubscription.unsubscribe();\r\n }\r\n\r\n public restartIdleTimer(timeOutSeconds) {\r\n this.timer$.unsubscribe();\r\n\r\n this.resetTimeCounters(timeOutSeconds);\r\n this.startTimer();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 29 Щсе 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DigitalMarketingService {\r\n constructor(\r\n private title: Title,\r\n private meta: Meta,\r\n @Inject(DOCUMENT) private dom: any,\r\n ) {\r\n }\r\n\r\n updateTitle(title?: string) {\r\n this.title.setTitle(title);\r\n }\r\n\r\n updateDescription(desc?: string) {\r\n this.meta.updateTag({ name: 'description', content: desc });\r\n }\r\n\r\n updateKeywords(keywords?: any) {\r\n this.meta.updateTag({ name: 'keywords', content: keywords });\r\n }\r\n\r\n updateMetaTags(meta: MetaDefinition[]) {\r\n meta.forEach(m => this.meta.updateTag(m));\r\n }\r\n\r\n setCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const link: HTMLLinkElement = this.dom.createElement('link');\r\n link.setAttribute('rel', 'canonical');\r\n this.dom.head.appendChild(link);\r\n link.setAttribute('href', canUrl);\r\n }\r\n\r\n updateCanonicalUrl(url?: string) {\r\n const canUrl = url === undefined ? this.dom.URL : url;\r\n const head = this.dom.getElementsByTagName('head')[0];\r\n let link: HTMLLinkElement = this.dom.querySelector(`link[rel='canonical']`) || null;\r\n\r\n if (link == null) {\r\n link = this.dom.createElement('link') as HTMLLinkElement;\r\n head.appendChild(link);\r\n }\r\n\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', canUrl);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 29 Nov 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Injectable } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class GoogleAnalyticsService {\r\n private subscription: Subscription;\r\n\r\n constructor(private router: Router) { \r\n /*\r\n https://yashints.dev/blog/2019/02/12/angular-ga-tagmanager\r\n https://developers.google.com/analytics/devguides/collection/gtagjs/pages\r\n https://developers.google.com/analytics/devguides/collection/upgrade/analyticsjs\r\n */\r\n }\r\n\r\n public subscribe() {\r\n this.subscription = this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if ((<any>window).ga) {\r\n (<any>window).ga('set', 'page', event.urlAfterRedirects);\r\n (<any>window).ga('send', 'pageview');\r\n }\r\n }\r\n });\r\n }\r\n\r\n public unsubscribe() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import {Injector, NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\n//Logging\r\nimport {LoggingService} from './logging/logging.service';\r\n\r\n//Services\r\nimport { AppContextService } from './services/appcontext.service';\r\nimport { LoadingService } from './services/loading.service';\r\nimport { DigitalMarketingService } from './services/dm.service';\r\nimport { GoogleAnalyticsService } from './services/google-analytics.service';\r\nimport { LocalStorageService, SessionStorageService } from './services/web-storage.service';\r\n\r\n//notifications\r\nimport {NotificationService} from './notifications/services/notification-service';\r\n\r\n//Guards\r\nimport {throwIfAlreadyLoaded} from './guards/once-import.guard';\r\n\r\nexport let InjectorInstance: Injector;\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [],\r\n providers: [\r\n LoggingService,\r\n NotificationService,\r\n AppContextService,\r\n LoadingService,\r\n DigitalMarketingService,\r\n GoogleAnalyticsService,\r\n LocalStorageService,\r\n SessionStorageService\r\n ],\r\n})\r\nexport class AnatolyCoreModule {\r\n constructor(private injector: Injector, @Optional() @SkipSelf() parentModule: AnatolyCoreModule) {\r\n throwIfAlreadyLoaded(parentModule, 'AnatolyCoreModule');\r\n\r\n InjectorInstance = this.injector;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport {Subscription} from 'rxjs';\r\n\r\nexport class Subs {\r\n private subs: Subscription[] = [];\r\n\r\n constructor() {}\r\n\r\n add(...subscriptions: Subscription[]) {\r\n this.subs = this.subs.concat(subscriptions);\r\n }\r\n\r\n set sink(subscription: Subscription) {\r\n this.subs.push(subscription);\r\n }\r\n\r\n unsubscribe() {\r\n this.subs.forEach((sub) => sub && sub.unsubscribe());\r\n this.subs = [];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 19 March 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport class Utils {\r\n public static getValueByNameInQS(name) {\r\n return Utils.getValueByName(location.search, name);\r\n }\r\n\r\n public static getValueByName(url, name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n // tslint:disable-next-line:one-variable-per-declaration\r\n const regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)'),\r\n\r\n results = regex.exec(url);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n }\r\n\r\n public static copyToClipBoard(event: any, val: string) {\r\n event.preventDefault();\r\n\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public static downloadFile(name: string, url: string) {\r\n const link = document.createElement('a');\r\n link.download = name;\r\n link.href = url;\r\n link.click();\r\n }\r\n\r\n public static downloadBlobFile(value: Blob, fileName: string) {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(value, fileName);\r\n } else {\r\n const downloadURL = window.URL.createObjectURL(value);\r\n Utils.downloadFile(fileName, downloadURL);\r\n }\r\n }\r\n\r\n\r\n /*\r\n Author: \r\n https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1\r\n */\r\n public static slugify(text: string, prefix: string = '', postfix: string = '') {\r\n const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';\r\n const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';\r\n const p = new RegExp(a.split('').join('|'), 'g');\r\n\r\n /*\r\n https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/\r\n https://stackoverflow.com/questions/822452/strip-html-from-text-javascript\r\n */\r\n text = text.replace(/(<([^>]+)>)/gi, '');\r\n\r\n let result = text\r\n .toString()\r\n .toLowerCase()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\r\n .replace(/&/g, '-and-') // Replace & with 'and'\r\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word characters\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n .replace(/^-+/, '') // Trim - from start of text\r\n .replace(/-+$/, ''); // Trim - from end of text\r\n\r\n return prefix + result + postfix;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n//RxJs\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class BaseGridReadService extends BehaviorSubject<any[]> {\r\n protected data: any[] = []; \r\n protected baseReadUrl: string;\r\n protected savedReadParams: any; \r\n\r\n constructor(protected http: HttpClient) {\r\n super([]);\r\n }\r\n\r\n serializeParams(data?: any): string {\r\n return data ? ('?' + $.param(data)) : '';\r\n }\r\n\r\n read(params?: any, success?: Function, error?: Function) {\r\n if (this.data.length) {\r\n return super.next(this.data);\r\n }\r\n\r\n var url = this.baseReadUrl;\r\n\r\n if (typeof params === 'undefined') {\r\n params = this.savedReadParams;\r\n }\r\n\r\n if (params) {\r\n url = this.baseReadUrl + `${this.serializeParams(params)}`;\r\n this.savedReadParams = params;\r\n }\r\n\r\n this.http.get(url).pipe(map(res => <any[]>res)).subscribe(\r\n data => {\r\n super.next(data);\r\n if (success) success();\r\n },\r\n e => {\r\n if (error) error(e);\r\n },\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 29 Apr 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n//RxJs\r\nimport { Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\n//App\r\nimport { BaseGridReadService } from \"./base-grid-read.service\";\r\n\r\n@Injectable()\r\nexport class BaseGridEditService extends BaseGridReadService {\r\n protected baseUrl: string;\r\n\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n }\r\n\r\n private reset() {\r\n this.data = [];\r\n }\r\n\r\n resetItem(dataItem: any) {\r\n if (!dataItem) { return; }\r\n\r\n //find orignal data item\r\n const originalDataItem = this.data.find(item => item.Id === dataItem.Id);\r\n\r\n //revert changes\r\n Object.assign(originalDataItem, dataItem);\r\n super.next(this.data);\r\n }\r\n\r\n save(data: any, isNew: boolean, sucess?: Function) {\r\n const action = isNew ? 'add' : 'update';\r\n\r\n this.reset();\r\n this.post(action, data).subscribe(\r\n () => {\r\n },\r\n () => {\r\n this.read();\r\n },\r\n () => {\r\n this.read();\r\n if (sucess) sucess();\r\n }\r\n );\r\n }\r\n\r\n delete(data: any, sucess?: Function) {\r\n this.reset();\r\n\r\n const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;\r\n return this.http.delete(url).subscribe(\r\n () => {\r\n this.read();\r\n if (sucess) sucess();\r\n },\r\n () => {\r\n this.read();\r\n }\r\n );\r\n }\r\n\r\n post(action: any, data?: any): Observable<any[]> {\r\n const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;\r\n return this.http.post(url, data).pipe(\r\n map(res => <any[]>res)\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 30 April 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const consts = {\r\n billingApiPath: 'api/billing',\r\n\r\n // Notifications API\r\n notificationsApiPath: 'api/notifications',\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 30 April 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\n\r\n// RxJS\r\nimport {Observable} from 'rxjs';\r\n\r\n// App\r\nimport { INotification } from '../../../core/notifications/interfaces/notification';\r\nimport { BaseApiService } from '../../base/base-api.service';\r\nimport { consts } from '../../consts';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationsApiService extends BaseApiService {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = consts.notificationsApiPath;\r\n }\r\n\r\n retrieveNotifications(): Observable<INotification[]> {\r\n return this.get('retrieveNotifications');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Nov 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n//App\r\nimport { BaseApiService } from \"../base/base-api.service\";\r\nimport { consts } from '../consts';\r\n\r\n@Injectable()\r\nexport class BillingApiService extends BaseApiService {\r\n constructor(protected http: HttpClient) {\r\n super(http);\r\n this.baseUrl = consts.billingApiPath;\r\n }\r\n\r\n public requestNewSubscription(requestedPlan: Number, success?: Function, error?: Function) {\r\n this.postQS(\"requestNewSubscription\", { requestedPlan: requestedPlan }).subscribe(\r\n (data) => {\r\n if (success) success();\r\n },\r\n (e) => {\r\n if (error) error();\r\n }\r\n );\r\n }\r\n\r\n public cancelRequestedSubscription(success?: Function, error?: Function) {\r\n this.postQS(\"cancelRequestedSubscription\", null).subscribe(\r\n (data) => {\r\n if (success) success();\r\n },\r\n (e) => {\r\n if (error) error();\r\n }\r\n );\r\n }\r\n\r\n public buyAccess(requestedPlan: Number, success?: Function, error?: Function) {\r\n this.postQS(\"buyAccess\", { requestedPlan: requestedPlan }).subscribe(\r\n (data) => {\r\n if (success) success();\r\n },\r\n (e) => {\r\n if (error) error();\r\n }\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 4 Mar 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport {NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\n//App\r\nimport { BillingApiService } from './services/billing-api.service';\r\nimport { throwIfAlreadyLoaded } from '../core/guards/once-import.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n providers: [\r\n BillingApiService\r\n ],\r\n})\r\nexport class AnatolyDataModule {\r\n constructor(@Optional() @SkipSelf() parentModule: AnatolyDataModule) {\r\n throwIfAlreadyLoaded(parentModule, 'AnatolyDataModule');\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 28 Aug 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, OnDestroy } from \"@angular/core\";\r\n\r\n//App\r\nimport { Utils } from \"../../core/utils\";\r\nimport { Subs } from \"../../core/subs\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseComponent implements OnDestroy {\r\n protected subs: Subs = new Subs();\r\n\r\n getQSId() {\r\n var id = Utils.getValueByNameInQS(\"id\");\r\n if (typeof id === \"undefined\" || id == \"\") return null;\r\n\r\n return id;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 20 Nov 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\nimport {\r\n FormGroup,\r\n AbstractControl,\r\n FormControl,\r\n ValidatorFn,\r\n AbstractControlOptions,\r\n AsyncValidatorFn,\r\n} from \"@angular/forms\";\r\n\r\n//App\r\nimport { BaseComponent } from \"./base.component\";\r\nimport { Utils } from \"../../core/utils\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseEditComponent extends BaseComponent {\r\n @Input() formGroup: FormGroup;\r\n @Input() formSubmitted: boolean = false;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n isActionAdding() {\r\n var id = Utils.getValueByNameInQS(\"id\");\r\n if (typeof id === \"undefined\" || id == \"\") return true;\r\n\r\n return false;\r\n }\r\n\r\n getEntityId() {\r\n return this.getQSId();\r\n }\r\n\r\n isControlValid(name: string, frmGroup: FormGroup = null) {\r\n return !this.isControlInvalid(name, frmGroup);\r\n }\r\n\r\n isControlInvalid(name: string, frmGroup: FormGroup = null) {\r\n if (typeof name === \"undefined\" || name == \"\") {\r\n return false;\r\n }\r\n\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n if (!fg) {\r\n return false;\r\n }\r\n\r\n if (fg.get(name)) {\r\n return (\r\n (this.formSubmitted && fg.get(name).invalid) ||\r\n (fg.get(name).touched && fg.get(name).invalid)\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //FormGroup functions\r\n getFormValue(name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[name].value;\r\n }\r\n\r\n setFormValue(name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[name].setValue(value);\r\n }\r\n\r\n getFormGroupValue(groupName, name, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n return fg.controls[groupName].get(name).value;\r\n }\r\n\r\n setFormGroupValue(groupName, name, value, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.controls[groupName].get(name).setValue(value);\r\n }\r\n\r\n /**\r\n * Add control to form group\r\n * @param name\r\n * @param formControl\r\n * @param formGroup\r\n */\r\n addControl(\r\n name: string,\r\n formControl: AbstractControl,\r\n frmGroup: FormGroup = null\r\n ) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.addControl(name, formControl);\r\n }\r\n\r\n /**\r\n * Removes control from form group\r\n * @param name\r\n * @param formGroup\r\n */\r\n removeControl(name: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n\r\n if (fg.get(name)) {\r\n fg.removeControl(name);\r\n }\r\n }\r\n\r\n /**\r\n * return new form control\r\n * @param formState\r\n * @param validatorOrOpts\r\n * @param asyncValidator\r\n */\r\n createFormControl(\r\n formState?: any,\r\n validatorOrOpts?:\r\n | ValidatorFn\r\n | ValidatorFn[]\r\n | AbstractControlOptions\r\n | null,\r\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null\r\n ) {\r\n return new FormControl(formState, validatorOrOpts, asyncValidator);\r\n }\r\n\r\n /**\r\n * Set error to control\r\n * @param controlName formControl name\r\n * @param err error expect {erroname: boolean} format\r\n * @param formGroup Specific form group. default it will apply on this.formGroup property\r\n */\r\n setControlError(controlName: string, err: {}, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors(err);\r\n }\r\n\r\n /**\r\n * Set {invalid: true} for the specified form\r\n * @param controlName form control name\r\n * @param formGroup\r\n */\r\n setInValidError(controlName: string, frmGroup: FormGroup = null) {\r\n let fg = frmGroup ? frmGroup : this.formGroup;\r\n fg.get(controlName)?.setErrors({ invalid: true });\r\n }\r\n\r\n /**\r\n * returns formgroup controls.\r\n * main use case is used in html pages\r\n */\r\n get fc() {\r\n return this.formGroup.controls;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 24 Jan 2022\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n//App\r\nimport { BaseEditComponent } from \"./base-edit.component\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class BaseDialog extends BaseEditComponent {\r\n private _opened = false;\r\n\r\n @Input()\r\n get opened() {\r\n return this._opened;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n open() {\r\n this._opened = true;\r\n }\r\n \r\n close() {\r\n this._opened = false;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 14 Aug 2018\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Component, Input, OnInit} from '@angular/core';\r\n\r\n// App\r\nimport {AppContextService} from '../../../core/services/appcontext.service';\r\nimport {BillingApiService} from '../../../data/services/billing-api.service';\r\nimport {Alerts} from '../../../core/notifications/alerts';\r\n\r\n@Component({\r\n selector: 'anatoly-buyaccess-button',\r\n templateUrl: './buyaccess-button.component.html',\r\n})\r\nexport class BuyAccessButtonComponent implements OnInit {\r\n public contextUpdated = false;\r\n public isUserSignedIn = false;\r\n public currentPlan = 0;\r\n public currentPlanTitle = '';\r\n\r\n @Input() plan: number;\r\n @Input() plantitle: string;\r\n\r\n constructor(\r\n private appContext: AppContextService,\r\n private api: BillingApiService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.appContext.isUserSignedIn()) {\r\n this.contextUpdated = true;\r\n return;\r\n }\r\n\r\n this.appContext.getCurrent((current) => {\r\n this.isUserSignedIn = current.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n this.currentPlan = current.account.billingPlan;\r\n this.currentPlanTitle = current.account.billingPlanAsString;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n\r\n onBuyPlan() {\r\n const text = `Requested plan: ${this.plantitle} `;\r\n const that = this;\r\n\r\n Alerts.areYouSure(text, 'Buying access', 'Confirm change', 'Cancel', () => {\r\n that.api.buyAccess(that.plan, () => {\r\n Alerts.success('Access Granted', null, null,() => {\r\n (window as any).location.reload();\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 1 Jun 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n// Services\r\nimport { AppContextService } from \"../../../core/services/appcontext.service\";\r\n\r\n@Component({\r\n selector: \"anatoly-subscribe-plan-button\",\r\n templateUrl: \"./subscribe-plan-button.component.html\",\r\n})\r\nexport class SubscribePlanButtonComponent implements OnInit {\r\n public contextUpdated = false;\r\n public isUserSignedIn = false;\r\n public currentPlan = 0;\r\n public currentPlanTitle = \"\";\r\n public requestedPlan = 0;\r\n public requestedPlanTitle = \"\";\r\n\r\n @Input() plan: number;\r\n @Input() plantitle: string;\r\n\r\n constructor(private appcontext: AppContextService) {}\r\n\r\n ngOnInit() {\r\n if (!this.appcontext.isUserSignedIn()) {\r\n this.contextUpdated = true;\r\n return;\r\n }\r\n\r\n this.appcontext.getCurrent((current) => {\r\n this.isUserSignedIn = current.isUserSignedIn;\r\n\r\n if (this.isUserSignedIn) {\r\n this.currentPlan = current.account.billingPlan;\r\n this.currentPlanTitle = current.account.billingPlanAsString;\r\n this.requestedPlan = current.account.requestedBillingPlan;\r\n this.requestedPlanTitle = current.account.requestedBillingPlanAsString;\r\n }\r\n\r\n this.contextUpdated = true;\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Nov 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Component, Input} from '@angular/core';\r\nimport {BillingApiService} from '../../../data/services/billing-api.service';\r\nimport {Alerts} from '../../../core/notifications/alerts';\r\n\r\n// Services\r\n\r\n@Component({\r\n selector: 'anatoly-upgrade-plan-button',\r\n templateUrl: './upgrade-plan-button.component.html',\r\n})\r\nexport class UpgradePlanButtonComponent {\r\n @Input() currentplantitle: string;\r\n @Input() requestedplan: number;\r\n @Input() requestedplantitle: string;\r\n\r\n constructor(private api: BillingApiService) {}\r\n\r\n onUpgradePlan() {\r\n const text = `Current plan: ${this.currentplantitle} New plan: ${this.requestedplantitle}`;\r\n const that = this;\r\n\r\n Alerts.areYouSure(\r\n text,\r\n 'Change billing plan',\r\n 'Confirm change',\r\n 'Cancel',\r\n () => {\r\n that.api.requestNewSubscription(that.requestedplan, () => {\r\n Alerts.success(\r\n 'Your request for changing plan has been sent.',\r\n null,null,\r\n () => {\r\n (window as any).location.reload();\r\n }\r\n );\r\n });\r\n }\r\n );\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 23 Apr 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"anatoly-content-header\",\r\n templateUrl: \"./content-header.component.html\",\r\n})\r\nexport class ContentHeaderComponent implements OnInit {\r\n @Input() title?: string;\r\n\r\n ngOnInit() {\r\n if (this.title == null) {\r\n this.title = \"\";\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nexport const DefaultEditorOptions: Object = {\r\n placeholderText: \"Edit Your Content Here\",\r\n charCounterCount: true,\r\n heightMin: 100,\r\n toolbarInline: false,\r\n\r\n toolbarButtons: {\r\n moreText: {\r\n buttons: [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"strikeThrough\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"fontFamily\",\r\n \"fontSize\",\r\n \"textColor\",\r\n \"backgroundColor\",\r\n \"inlineClass\",\r\n \"inlineStyle\",\r\n ],\r\n },\r\n moreParagraph: {\r\n buttons: [\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"formatOLSimple\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"formatOL\",\r\n \"formatUL\",\r\n \"paragraphFormat\",\r\n \"paragraphStyle\",\r\n \"lineHeight\",\r\n \"outdent\",\r\n \"indent\",\r\n \"quote\",\r\n ],\r\n },\r\n moreRich: {\r\n buttons: [\r\n \"insertLink\",\r\n \"insertImage\",\r\n \"insertTable\",\r\n \"emoticons\",\r\n \"fontAwesome\",\r\n \"specialCharacters\",\r\n \"embedly\",\r\n ],\r\n },\r\n moreMisc: {\r\n buttons: [\r\n \"selectAll\",\r\n \"clearFormatting\",\r\n \"html\",\r\n \"undo\",\r\n \"redo\",\r\n \"fullscreen\",\r\n ],\r\n align: \"right\",\r\n },\r\n },\r\n\r\n /*\r\n Upload:\r\n https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload\r\n */\r\n imageUploadURL: \"/api/htmlEditor/uploadImage\",\r\n imageAllowedTypes: [\"jpeg\", \"jpg\", \"png\"],\r\n imageUploadParams: { uploadType: \"\", uploadParentId: \"\" },\r\n};\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { AfterViewInit, Component, Input, OnInit } from \"@angular/core\";\r\n\r\n// App\r\nimport { AppCoreSettings } from \"../../../core/consts/settings\";\r\nimport { BaseEditComponent } from \"../base-edit.component\";\r\nimport { DefaultEditorOptions } from \"./html-editor.defaultoptions\";\r\n\r\n@Component({\r\n template: \"\",\r\n})\r\nexport abstract class BaseHtmlEditorComponent extends BaseEditComponent implements OnInit, AfterViewInit\r\n{\r\n protected froalaEditor;\r\n\r\n // Public members\r\n public options;\r\n public froalaEditorInitialized = false;\r\n public afterInitializedActions = [];\r\n\r\n // Inputs\r\n @Input() editorLabelText = \"Html\";\r\n @Input() editorOptions: Object = {};\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n let opt = this.editorOptions;\r\n if (typeof this.editorOptions == \"string\") {\r\n opt = JSON.parse(this.editorOptions);\r\n }\r\n\r\n let newOptions: any = $.extend({}, DefaultEditorOptions, opt);\r\n const key = AppCoreSettings.froalaEditorKey;\r\n\r\n if (key) {\r\n newOptions = $.extend(\r\n {},\r\n newOptions,\r\n JSON.parse('{ \"key\": \"' + key + '\" }')\r\n );\r\n }\r\n\r\n if (newOptions.events && newOptions.events.initialized) {\r\n newOptions.events.initialized.overridden = false;\r\n }\r\n\r\n this.options = newOptions;\r\n }\r\n\r\n ngAfterViewInit() {\r\n const that = this;\r\n setTimeout(function () {\r\n that.froalaEditorInitialized = true;\r\n that.onInitialized();\r\n }, 300);\r\n }\r\n\r\n private onInitialized() {\r\n let actions = this.afterInitializedActions;\r\n\r\n // Clear actions\r\n this.afterInitializedActions = [];\r\n\r\n if (actions) {\r\n for (let i = 0; i < actions.length; i++) {\r\n actions[i]();\r\n }\r\n }\r\n }\r\n\r\n protected getEditor() {\r\n if (this.froalaEditor) return this.froalaEditor.getEditor();\r\n\r\n return null;\r\n }\r\n\r\n // Public Funcs\r\n public doAfterInitialized(action) {\r\n const that = this;\r\n\r\n if (!this.froalaEditorInitialized) {\r\n this.afterInitializedActions.push(() => {\r\n action(that);\r\n });\r\n } else {\r\n action(that);\r\n }\r\n }\r\n\r\n public initializeControl(control) {\r\n this.froalaEditor = control;\r\n this.froalaEditor.initialize();\r\n }\r\n\r\n public setUploadParams(uploadType, uploadParentId) {\r\n this.doAfterInitialized(function (that) {\r\n const editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.opts.imageUploadParams.uploadType = uploadType;\r\n editor.opts.imageUploadParams.uploadParentId = uploadParentId;\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n//Custom\r\nimport { BaseHtmlEditorComponent } from \"./base-html-editor.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-forms-html-editor\",\r\n templateUrl: \"./forms-html-editor.component.html\",\r\n})\r\nexport class FormsHtmlEditorComponent extends BaseHtmlEditorComponent {\r\n @Input() editorFormKey: string = \"html\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public setFormValueAfterInitialized(name, value) {\r\n this.doAfterInitialized(function (that) {\r\n that.setFormValue(name, value);\r\n });\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 12 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n//Custom\r\nimport { BaseHtmlEditorComponent } from \"./base-html-editor.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-html-editor\",\r\n templateUrl: \"./html-editor.component.html\",\r\n})\r\nexport class HtmlEditorComponent extends BaseHtmlEditorComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public setHtml(content) {\r\n this.doAfterInitialized(function (that) {\r\n var editor = that.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n editor.html.set(content);\r\n });\r\n }\r\n\r\n public getHtml() {\r\n var editor = this.getEditor();\r\n if (typeof editor == \"undefined\" || editor == null) {\r\n return;\r\n }\r\n\r\n return editor.html.get(false);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"anatoly-signin-button\",\r\n templateUrl: \"./signin-button.component.html\",\r\n})\r\nexport class SignInButtonComponent {\r\n @Input() classbtn: string;\r\n\r\n constructor() {}\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"anatoly-signout-button\",\r\n templateUrl: \"./signout-button.component.html\",\r\n})\r\nexport class SignOutButtonComponent {\r\n @Input() classbtn: string;\r\n\r\n constructor() {}\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 4 Jul 2018\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"anatoly-signup-button\",\r\n templateUrl: \"./signup-button.component.html\",\r\n})\r\nexport class SignUpButtonComponent {\r\n @Input() classbtn: string;\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 9 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Subs} from '../../../core/subs';\r\nimport {LoadingService} from '../../../core/services/loading.service';\r\n\r\n@Component({\r\n selector: 'anatoly-loading',\r\n templateUrl: './loading.component.html'\r\n})\r\nexport class LoadingComponent implements OnInit, OnDestroy {\r\n // Private\r\n private subs: Subs = new Subs();\r\n\r\n // Public\r\n show = false;\r\n\r\n constructor(private loadingService: LoadingService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subs.sink = this.loadingService.subscribe((state) => {\r\n this.show = state;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 16 May 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Component, Inject, Input, OnDestroy, ViewEncapsulation} from '@angular/core';\r\nimport {NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router} from '@angular/router';\r\nimport {DOCUMENT} from '@angular/common';\r\n\r\nconst SpinnerSpinKit = {\r\n spinnerLine: 'spinner-line-material',\r\n\r\n // ToDo\r\n ChasingDots: 'spinner-chasing-dots',\r\n CubeGrid: 'spinner-cube-grid',\r\n DoubleBounce: 'spinner-double-bounce',\r\n RotatingPlane: 'spinner-rotationg-plane',\r\n SpinnerPulse: 'spinner-spinner-pulse',\r\n ThreeBounce: 'spinner-three-bounce',\r\n WanderingCubes: 'spinner-wandering-cubes',\r\n Wave: 'spinner-wave'\r\n};\r\n\r\n@Component({\r\n selector: 'spinner',\r\n templateUrl: './spinner.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SpinnerComponent implements OnDestroy {\r\n isSpinnerVisible = true;\r\n spinnerSpinKit = SpinnerSpinKit;\r\n\r\n @Input() backgroundColor = '#007CB0';\r\n @Input() spinner = SpinnerSpinKit.spinnerLine;\r\n\r\n constructor(private router: Router, @Inject(DOCUMENT) private document: Document) {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n this.isSpinnerVisible = true;\r\n } else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\r\n this.isSpinnerVisible = false;\r\n }\r\n }, () => {\r\n this.isSpinnerVisible = false;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isSpinnerVisible = false;\r\n }\r\n}\r\n\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 28 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControl], [formControlName]'\r\n})\r\nexport class NativeElementDirective implements OnInit {\r\n constructor(private el: ElementRef<HTMLFormElement>, private control: NgControl) {\r\n }\r\n\r\n ngOnInit() {\r\n // sets the localization key to the control\r\n (this.control.control as any).nativeElement = this.el.nativeElement;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"replaceText\",\r\n})\r\nexport class ReplaceTextPipe implements PipeTransform {\r\n transform(inputData: string, search: string, replacement: string): string {\r\n if (inputData) {\r\n return inputData.replace(new RegExp(search, \"g\"), replacement);\r\n } else {\r\n return inputData;\r\n }\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filesize',\r\n})\r\nexport class FileSizePipe implements PipeTransform {\r\n private units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n\r\n transform(bytes: number = 0, precision: number = 0): string {\r\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '';\r\n\r\n let unit = 0;\r\n\r\n while (bytes >= 1024) {\r\n bytes /= 1024;\r\n unit++;\r\n }\r\n\r\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 27 Oct 2019\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n\r\n@Pipe({ name: 'safeHtml' })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) { }\r\n\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 8 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Component } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n//Custom\r\nimport { BaseEditComponent } from \"../components/base-edit.component\";\r\n\r\n@Component({\r\n template: \"\",\r\n})\r\nexport abstract class ValidationSummaryComponent extends BaseEditComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n getFormValidationMessages(): string[] {\r\n let messages: string[] = [];\r\n\r\n Object.keys(this.formGroup.controls).forEach((k) => {\r\n var control = this.formGroup.controls[k];\r\n\r\n if ((<FormGroup>control).controls != null) {\r\n Object.keys((<FormGroup>control).controls).forEach((k) => {\r\n var child = (<FormGroup>control).controls[k];\r\n this.getValidationMessages(\r\n child,\r\n this.getControlName(child, k)\r\n ).forEach((m) => messages.push(m));\r\n });\r\n } else {\r\n this.getValidationMessages(\r\n control,\r\n this.getControlName(control, k)\r\n ).forEach((m) => messages.push(m));\r\n }\r\n });\r\n\r\n return messages;\r\n }\r\n\r\n getValidationMessages(state: any, thingName?: string) {\r\n let thing: string = state.path || thingName;\r\n let messages: string[] = [];\r\n\r\n if (state.errors) {\r\n for (let errorName in state.errors) {\r\n if (state.errors.hasOwnProperty(errorName)) {\r\n switch (errorName) {\r\n case \"required\":\r\n messages.push(`${thing} is required`);\r\n break;\r\n\r\n case \"minlength\":\r\n messages.push(\r\n `${thing} must be at least ${state.errors[\"minlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"pattern\":\r\n messages.push(`${thing} contains illegal characters`);\r\n break;\r\n\r\n case \"format\":\r\n messages.push(`${thing} format mismatch`);\r\n break;\r\n\r\n case \"maxlength\":\r\n messages.push(\r\n `${thing} must have maximum ${state.errors[\"maxlength\"].requiredLength} characters`\r\n );\r\n break;\r\n\r\n case \"specialcharacters\":\r\n messages.push(`${thing} contains special characters`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n\r\n /**\r\n * Get Control Name\r\n * @param control\r\n * @param thingName\r\n */\r\n getControlName(control: any, thingName?: string) {\r\n let value = this.getControlTitle(control);\r\n return value ? value : thingName;\r\n }\r\n\r\n /**\r\n * Retrieve tilte of control\r\n * @param control\r\n */\r\n getControlTitle(control: any): string {\r\n if (control?.nativeElement) {\r\n let controlTitle = this.getTitleAttribute(control.nativeElement);\r\n if (controlTitle) {\r\n return controlTitle;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Return title attribute of form control\r\n */\r\n getTitleAttribute(nativeElement: HTMLFormElement): string {\r\n let title: string;\r\n\r\n switch (nativeElement.tagName) {\r\n // For Kendo time and date picker element title is assigned to the 4th child control.\r\n case \"KENDO-TIMEPICKER\":\r\n case \"KENDO-DATEPICKER\":\r\n title =\r\n nativeElement.children[0]?.children[0]?.children[0]?.children[0]?.getAttribute(\r\n \"title\"\r\n );\r\n break;\r\n\r\n // For Kendo numaric element title is assigned to the 2nd child control.\r\n case \"KENDO-NUMERICTEXTBOX\":\r\n title = nativeElement.children[0]?.children[0]?.getAttribute(\"title\");\r\n break;\r\n\r\n default:\r\n title = nativeElement.getAttribute(\"title\");\r\n break;\r\n }\r\n\r\n return title;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 7 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Component, Input } from \"@angular/core\";\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-form-validation-summary\",\r\n templateUrl: \"./form-validation-summary.component.html\",\r\n})\r\nexport class FormValidationSummaryComponent extends ValidationSummaryComponent {\r\n @Input() visible: boolean = false;\r\n @Input() customerrors: string[] = [];\r\n\r\n /*\r\n 0 - only FormValidation messages\r\n 1 - only Custom messages\r\n 2 - all\r\n */ \r\n @Input() viewtype: number = 0; \r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n getErrors() {\r\n if (this.viewtype == 1) {\r\n return this.customerrors;\r\n }\r\n\r\n let formValidationMessages = this.getFormValidationMessages();\r\n if (this.viewtype == 0) {\r\n return formValidationMessages;\r\n }\r\n\r\n var messages = [];\r\n if (formValidationMessages.length > 0) {\r\n messages.push(...formValidationMessages);\r\n }\r\n\r\n if (this.customerrors.length > 0) {\r\n messages.push(...this.customerrors);\r\n } \r\n\r\n return messages;\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 6 Dec 2017\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n// Node\r\nimport { Component, Input } from \"@angular/core\";\r\nimport { ValidationSummaryComponent } from \"./validation-summary.component\";\r\n\r\n@Component({\r\n selector: \"anatoly-item-validation-summary\",\r\n templateUrl: \"./item-validation-summary.component.html\",\r\n})\r\nexport class ItemValidationSummaryComponent extends ValidationSummaryComponent {\r\n @Input() controlName: string;\r\n @Input() controlTitle: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","/*\r\n<file>\r\n Project:\r\n @osovitny/anatoly\r\n\r\n Authors:\r\n Vadim Osovitny\r\n Anatoly Osovitny\r\n\r\n Created:\r\n 26 Jun 2020\r\n\r\n Version:\r\n 1.0\r\n\r\n Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.\r\n</file>\r\n*/\r\n\r\n//Node\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n//Froala\r\nimport { FroalaEditorModule, FroalaViewModule } from \"angular-froala-wysiwyg\";\r\nexport const FroalaEditorModuleWithProviders = FroalaEditorModule.forRoot();\r\nexport const FroalaViewModuleWithProviders = FroalaViewModule.forRoot();\r\n\r\n//Components\r\nimport { SubscribePlanButtonComponent } from \"./components/billing/subscribe-plan-button.component\";\r\nimport { UpgradePlanButtonComponent } from \"./components/billing/upgrade-plan-button.component\";\r\nimport { BuyAccessButtonComponent } from \"./components/billing/buyaccess-button.component\";\r\nimport { SignInButtonComponent } from \"./components/identity/signin-button.component\";\r\nimport { SignUpButtonComponent } from \"./components/identity/signup-button.component\";\r\nimport { SignOutButtonComponent } from \"./components/identity/signout-button.component\";\r\n\r\nimport { ContentHeaderComponent } from \"./components/content-header/content-header.component\";\r\nimport { SpinnerComponent } from \"./components/spinner/spinner.component\";\r\nimport { LoadingComponent } from \"./components/loading/loading.component\";\r\nimport { NativeElementDirective } from \"./directives/native-element.directive\";\r\n\r\n//Editor\r\nimport { HtmlEditorComponent } from \"./components/html-editor/html-editor.component\";\r\nimport { FormsHtmlEditorComponent } from \"./components/html-editor/forms-html-editor.component\";\r\n\r\n//Validation\r\nimport { FormValidationSummaryComponent } from \"./validation/form-validation-summary.component\";\r\nimport { ItemValidationSummaryComponent } from \"./validation/item-validation-summary.component\";\r\n\r\n//Pipes\r\nimport { SafeHtmlPipe } from \"./pipes/safeHtml.pipe\";\r\nimport { ReplaceTextPipe } from \"./pipes/replace-text.pipe\";\r\nimport { FileSizePipe } from \"./pipes/filesize.pipe\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n FroalaEditorModuleWithProviders,\r\n FroalaViewModuleWithProviders,\r\n ],\r\n exports: [\r\n SubscribePlanButtonComponent,\r\n UpgradePlanButtonComponent,\r\n BuyAccessButtonComponent,\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n ContentHeaderComponent,\r\n SpinnerComponent,\r\n LoadingComponent,\r\n NativeElementDirective,\r\n\r\n //Editor\r\n HtmlEditorComponent,\r\n FormsHtmlEditorComponent,\r\n\r\n //Validation\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent,\r\n\r\n //Pipe\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe,\r\n ],\r\n declarations: [\r\n SubscribePlanButtonComponent,\r\n UpgradePlanButtonComponent,\r\n BuyAccessButtonComponent,\r\n SignInButtonComponent,\r\n SignUpButtonComponent,\r\n SignOutButtonComponent,\r\n ContentHeaderComponent,\r\n SpinnerComponent,\r\n LoadingComponent,\r\n NativeElementDirective,\r\n\r\n //Editor\r\n HtmlEditorComponent,\r\n FormsHtmlEditorComponent,\r\n\r\n //Validation\r\n FormValidationSummaryComponent,\r\n ItemValidationSummaryComponent,\r\n\r\n //Pipe\r\n SafeHtmlPipe,\r\n ReplaceTextPipe,\r\n FileSizePipe,\r\n ]\r\n})\r\nexport class AnatolyUIModule {\r\n}\r\n","/*\r\n * Public API Surface of anatoly-lib\r\n */\r\n\r\n// Core\r\nexport * from './lib/core/consts/settings';\r\nexport * from './lib/core/consts/urls';\r\nexport * from './lib/core/go/base-go.service';\r\nexport * from './lib/core/guards/once-import.guard';\r\nexport * from './lib/core/interceptors/httpInterceptor';\r\nexport * from './lib/core/localization/localize.pipe';\r\nexport * from './lib/core/localization/localization.service';\r\nexport * from './lib/core/localization/localizationSettings.module';\r\nexport * from './lib/core/localization/localization.module';\r\nexport * from './lib/core/logging/globalErrorHandler';\r\nexport * from './lib/core/logging/logging.service';\r\nexport * from './lib/core/notifications/alerts';\r\nexport * from './lib/core/notifications/interfaces/notification';\r\nexport * from './lib/core/notifications/services/notification-service';\r\nexport * from './lib/core/services/appcontext.service';\r\nexport * from './lib/core/services/idle.service';\r\nexport * from './lib/core/services/loading.service';\r\nexport * from './lib/core/services/web-storage.service'\r\nexport * from './lib/core/services/dm.service'\r\nexport * from './lib/core/services/google-analytics.service'\r\nexport * from './lib/core/convert';\r\nexport * from './lib/core/core.module';\r\nexport * from './lib/core/guid';\r\nexport * from './lib/core/subs';\r\nexport * from './lib/core/utils';\r\n\r\n// Data\r\nexport * from './lib/data/base/grid/base-grid-edit.service';\r\nexport * from './lib/data/base/grid/base-grid-read.service';\r\nexport * from './lib/data/base/base-api.service';\r\nexport * from './lib/data/services/notifications/notifications-api-service';\r\nexport * from './lib/data/services/billing-api.service';\r\nexport * from './lib/data/data.module';\r\n\r\n// UI\r\nexport * from './lib/ui/components/base.component';\r\nexport * from './lib/ui/components/base-edit.component';\r\nexport * from './lib/ui/components/base.dialog';\r\nexport * from './lib/ui/components/billing/buyaccess-button.component';\r\nexport * from './lib/ui/components/billing/subscribe-plan-button.component';\r\nexport * from './lib/ui/components/billing/upgrade-plan-button.component';\r\nexport * from './lib/ui/components/content-header/content-header.component';\r\nexport * from './lib/ui/components/html-editor/html-editor.defaultoptions';\r\nexport * from './lib/ui/components/html-editor/base-html-editor.component';\r\nexport * from './lib/ui/components/html-editor/forms-html-editor.component';\r\nexport * from './lib/ui/components/html-editor/html-editor.component';\r\nexport * from './lib/ui/components/identity/signin-button.component';\r\nexport * from './lib/ui/components/identity/signout-button.component';\r\nexport * from './lib/ui/components/identity/signup-button.component';\r\nexport * from './lib/ui/components/loading/loading.component';\r\nexport * from './lib/ui/components/spinner/spinner.component';\r\n\r\nexport * from './lib/ui/directives/native-element.directive';\r\n\r\nexport * from './lib/ui/pipes/replace-text.pipe';\r\nexport * from './lib/ui/pipes/filesize.pipe';\r\nexport * from './lib/ui/pipes/safeHtml.pipe';\r\n\r\nexport * from './lib/ui/validation/form-validation-summary.component';\r\nexport * from './lib/ui/validation/item-validation-summary.component';\r\nexport * from './lib/ui/validation/validation-summary.component';\r\nexport * from './lib/ui/ui.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ContextInitState":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"parse"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"getElementById"},"arguments":["contextInitState"]},"member":"getAttribute"},"arguments":["data-contextinitstate"]}]},"AppCoreSettings":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"parse"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"document"},"member":"getElementById"},"arguments":["appCoreSettings"]},"member":"getAttribute"},"arguments":["data-appcoresettings"]}]},"Urls":{"notificationsSocketUrl":"/hubs/notifications"},"BaseGoService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":24,"character":31},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":24,"character":65}]}],"locationReload":[{"__symbolic":"method"}],"homeReload":[{"__symbolic":"method"}]}},"throwIfAlreadyLoaded":{"__symbolic":"function"},"AnatolyHttpInterceptor":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":32,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingService"},{"__symbolic":"reference","name":"LoggingService"}]}],"intercept":[{"__symbolic":"method"}],"onRequestStart":[{"__symbolic":"method"}],"onRequestEnd":[{"__symbolic":"method"}]}},"LocalizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":25,"character":1},"arguments":[{"name":"localize"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LocalizationService"}]}],"transform":[{"__symbolic":"method"}]}},"LocalizationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":41,"character":33}]}],"format":[{"__symbolic":"method"}],"configureTranslationSettings":[{"__symbolic":"method"}],"getBrowserLanguage":[{"__symbolic":"method"}],"getDatefnsLocale":[{"__symbolic":"method"}],"setDefaultLanguage":[{"__symbolic":"method"}],"setSupportedLanguages":[{"__symbolic":"method"}],"updateLanguage":[{"__symbolic":"method"}],"getLocalizedValue":[{"__symbolic":"method"}],"getLocalizedDate":[{"__symbolic":"method"}],"getLocalizedDateTime":[{"__symbolic":"method"}],"getLocalizedDistanceInWords":[{"__symbolic":"method"}],"getLocalizedDistanceToNowInWords":[{"__symbolic":"method"}],"getUTCToLocalizedDate":[{"__symbolic":"method"}],"getUTCToLocalizedDateTime":[{"__symbolic":"method"}],"getUTCToLocalizedDistanceToNowInWords":[{"__symbolic":"method"}],"safeUtcToZonedTime":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"customTranslateLoaderFactory":{"__symbolic":"function","parameters":["http"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@ngx-translate/http-loader","name":"TranslateHttpLoader","line":31,"character":13},"arguments":[{"__symbolic":"reference","name":"http"},{"__symbolic":"binop","operator":"+","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AppCoreSettings"},"member":"resourcesUrl"},"right":"/"},".json"]}},"localizationInitializerFactory":{"__symbolic":"function","parameters":["translate","localizationService","injector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":35,"character":9,"module":"./lib/core/localization/localizationSettings.module"}},"TranslateModuleAtRoot":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":51,"character":37},"member":"forRoot"},"arguments":[{"loader":{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":53,"character":13},"useFactory":{"__symbolic":"reference","name":"customTranslateLoaderFactory"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":55,"character":11}]}}]},"LocalizationInjectorInstance":{"__symbolic":"error","message":"Variable not initialized","line":59,"character":11,"module":"./lib/core/localization/localizationSettings.module"},"LocalizationSettingsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":61,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"TranslateModuleAtRoot"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":67,"character":15},"useFactory":{"__symbolic":"reference","name":"localizationInitializerFactory"},"deps":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":69,"character":13},{"__symbolic":"reference","name":"LocalizationService"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":69,"character":52}],"multi":true}],"exports":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":77,"character":32}]}]}},"LocalizationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":28,"character":4}],"exports":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":31,"character":4},{"__symbolic":"reference","name":"LocalizePipe"}],"declarations":[{"__symbolic":"reference","name":"LocalizePipe"}],"providers":[]}]}],"members":{}},"GlobalErrorHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":30,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":32,"character":32}]}],"handleError":[{"__symbolic":"method"}]}},"LoggingService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"logError":[{"__symbolic":"method"}],"logInformation":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Alerts":{"__symbolic":"class","members":{}},"INotification":{"__symbolic":"interface"},"NotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":35,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":49,"character":37}]}],"addSessionNotification":[{"__symbolic":"method"}],"addSessionNotificationToList":[{"__symbolic":"method"}],"removeNotification":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"warning":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"AppContextService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseApiService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":35,"character":20},{"__symbolic":"reference","name":"SessionStorageService"}]}],"getCurrentFromSession":[{"__symbolic":"method"}],"setCurrentFromSession":[{"__symbolic":"method"}],"updateCurrentIfExpired":[{"__symbolic":"method"}],"dataReceived":[{"__symbolic":"method"}],"getCurrent":[{"__symbolic":"method"}],"updateCurrent":[{"__symbolic":"method"}],"clearCurrent":[{"__symbolic":"method"}],"isUserSignedIn":[{"__symbolic":"method"}],"isUserAdmin":[{"__symbolic":"method"}]}},"IdleService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"resetTimeCounters":[{"__symbolic":"method"}],"startTimer":[{"__symbolic":"method"}],"resetTimer":[{"__symbolic":"method"}],"startWatching":[{"__symbolic":"method"}],"stopWatching":[{"__symbolic":"method"}],"restartIdleTimer":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LoadingService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":28,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"show":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"freeze":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LocalStorageService":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Reference to non-exported class","line":25,"character":0,"context":{"className":"WebStorageService"},"module":"./lib/core/services/web-storage.service"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":61,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"SessionStorageService":{"__symbolic":"class","extends":{"__symbolic":"error","message":"Reference to non-exported class","line":25,"character":0,"context":{"className":"WebStorageService"},"module":"./lib/core/services/web-storage.service"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":68,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"DigitalMarketingService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":24,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":31,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":29,"character":19},{"__symbolic":"reference","module":"@angular/platform-browser","name":"Meta","line":30,"character":18},{"__symbolic":"reference","name":"any"}]}],"updateTitle":[{"__symbolic":"method"}],"updateDescription":[{"__symbolic":"method"}],"updateKeywords":[{"__symbolic":"method"}],"updateMetaTags":[{"__symbolic":"method"}],"setCanonicalUrl":[{"__symbolic":"method"}],"updateCanonicalUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"GoogleAnalyticsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":24,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":28,"character":30}]}],"subscribe":[{"__symbolic":"method"}],"unsubscribe":[{"__symbolic":"method"}]}},"Convert":{"__symbolic":"class","members":{}},"InjectorInstance":{"__symbolic":"error","message":"Variable not initialized","line":19,"character":11,"module":"./lib/core/core.module"},"AnatolyCoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":21,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":22,"character":12}],"exports":[],"providers":[{"__symbolic":"reference","name":"LoggingService"},{"__symbolic":"reference","name":"NotificationService"},{"__symbolic":"reference","name":"AppContextService"},{"__symbolic":"reference","name":"LoadingService"},{"__symbolic":"reference","name":"DigitalMarketingService"},{"__symbolic":"reference","name":"GoogleAnalyticsService"},{"__symbolic":"reference","name":"LocalStorageService"},{"__symbolic":"reference","name":"SessionStorageService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":43}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":36,"character":55}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":36,"character":32},{"__symbolic":"reference","name":"AnatolyCoreModule"}]}]}},"Guid":{"__symbolic":"class","members":{},"statics":{"newGuid":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"uuid","name":"v4","line":23,"character":11}}}}},"Subs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"add":[{"__symbolic":"method"}],"unsubscribe":[{"__symbolic":"method"}]}},"Utils":{"__symbolic":"class","members":{},"statics":{"getValueByNameInQS":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Utils"},"member":"getValueByName"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"location"},"member":"search"},{"__symbolic":"reference","name":"name"}]}}}},"BaseGridEditService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseGridReadService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":30,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":34,"character":30}]}],"reset":[{"__symbolic":"method"}],"resetItem":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"post":[{"__symbolic":"method"}]}},"BaseGridReadService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":30,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":35,"character":30}]}],"serializeParams":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}]}},"BaseApiService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":32,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":36,"character":30}]}],"serializeParams":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"post":[{"__symbolic":"method"}],"postQS":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getExternalTextFile":[{"__symbolic":"method"}],"getExternalJsonFile":[{"__symbolic":"method"}],"getJsonFile":[{"__symbolic":"method"}]}},"NotificationsApiService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseApiService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":31,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":35,"character":30}]}],"retrieveNotifications":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"BillingApiService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseApiService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":29,"character":30}]}],"requestNewSubscription":[{"__symbolic":"method"}],"cancelRequestedSubscription":[{"__symbolic":"method"}],"buyAccess":[{"__symbolic":"method"}]}},"AnatolyDataModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":29,"character":4}],"providers":[{"__symbolic":"reference","name":"BillingApiService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":36,"character":27}}]],"parameters":[{"__symbolic":"reference","name":"AnatolyDataModule"}]}]}},"BaseComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"template":""}]}],"members":{"getQSId":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"BaseEditComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"template":""}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"formSubmitted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"isActionAdding":[{"__symbolic":"method"}],"getEntityId":[{"__symbolic":"method"}],"isControlValid":[{"__symbolic":"method"}],"isControlInvalid":[{"__symbolic":"method"}],"getFormValue":[{"__symbolic":"method"}],"setFormValue":[{"__symbolic":"method"}],"getFormGroupValue":[{"__symbolic":"method"}],"setFormGroupValue":[{"__symbolic":"method"}],"addControl":[{"__symbolic":"method"}],"removeControl":[{"__symbolic":"method"}],"createFormControl":[{"__symbolic":"method"}],"setControlError":[{"__symbolic":"method"}],"setInValidError":[{"__symbolic":"method"}]}},"BaseDialog":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseEditComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"template":""}]}],"members":{"opened":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"BuyAccessButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"anatoly-buyaccess-button","template":"<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlan && currentPlan == 1\" (click)=\"onBuyPlan()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n"}]}],"members":{"plan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"plantitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppContextService"},{"__symbolic":"reference","name":"BillingApiService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onBuyPlan":[{"__symbolic":"method"}]}},"SubscribePlanButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"anatoly-subscribe-plan-button","template":"<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"requestedPlan != null && requestedPlan != 0 && plan == requestedPlan\">\r\n Requested\r\n </button>\r\n\r\n <anatoly-upgrade-plan-button *ngIf=\"plan != currentPlan && plan != requestedPlan\"\r\n [currentplantitle]=\"currentPlanTitle\"\r\n [requestedplan]=plan\r\n [requestedplantitle]=\"plantitle\">\r\n </anatoly-upgrade-plan-button>\r\n </div>\r\n</div>\r\n"}]}],"members":{"plan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"plantitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppContextService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"UpgradePlanButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"anatoly-upgrade-plan-button","template":"<button class=\"btn btn-block btn-primary\" (click)=\"onUpgradePlan()\">\r\n Upgrade\r\n</button>\r\n"}]}],"members":{"currentplantitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"requestedplan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"requestedplantitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BillingApiService"}]}],"onUpgradePlan":[{"__symbolic":"method"}]}},"ContentHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"anatoly-content-header","template":"<h2 class=\"page-header\">\r\n {{title}}\r\n <!--<small>Optional {{title}}</small>-->\r\n</h2>\r\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"DefaultEditorOptions":{"placeholderText":"Edit Your Content Here","charCounterCount":true,"heightMin":100,"toolbarInline":false,"toolbarButtons":{"moreText":{"buttons":["bold","italic","underline","strikeThrough","subscript","superscript","fontFamily","fontSize","textColor","backgroundColor","inlineClass","inlineStyle"]},"moreParagraph":{"buttons":["alignLeft","alignCenter","formatOLSimple","alignRight","alignJustify","formatOL","formatUL","paragraphFormat","paragraphStyle","lineHeight","outdent","indent","quote"]},"moreRich":{"buttons":["insertLink","insertImage","insertTable","emoticons","fontAwesome","specialCharacters","embedly"]},"moreMisc":{"buttons":["selectAll","clearFormatting","html","undo","redo","fullscreen"],"align":"right"}},"imageUploadURL":"/api/htmlEditor/uploadImage","imageAllowedTypes":["jpeg","jpg","png"],"imageUploadParams":{"uploadType":"","uploadParentId":""}},"BaseHtmlEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseEditComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"template":""}]}],"members":{"editorLabelText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"editorOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onInitialized":[{"__symbolic":"method"}],"getEditor":[{"__symbolic":"method"}],"doAfterInitialized":[{"__symbolic":"method"}],"initializeControl":[{"__symbolic":"method"}],"setUploadParams":[{"__symbolic":"method"}]}},"FormsHtmlEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseHtmlEditorComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"anatoly-forms-html-editor","template":"<div [formGroup]=\"formGroup\">\r\n <div class=\"form-group\" [ngClass]=\"{'has-error': isControlInvalid(editorFormKey) }\">\r\n <label class=\"control-label\">{{ editorLabelText }}</label>\r\n <textarea [formControlName]=\"editorFormKey\"\r\n [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\">\r\n </textarea>\r\n <anatoly-item-validation-summary [formGroup]=\"formGroup\"\r\n [formSubmitted]=\"formSubmitted\"\r\n [controlName]=\"editorFormKey\"\r\n [controlTitle]=\"editorLabelText\">\r\n </anatoly-item-validation-summary>\r\n </div>\r\n</div>\r\n"}]}],"members":{"editorFormKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"setFormValueAfterInitialized":[{"__symbolic":"method"}]}},"HtmlEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseHtmlEditorComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"anatoly-html-editor","template":"<div>\r\n <label>{{ editorLabelText }}</label>\r\n <textarea [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\">\r\n </textarea>\r\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setHtml":[{"__symbolic":"method"}],"getHtml":[{"__symbolic":"method"}]}},"SignInButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"anatoly-signin-button","template":"<a href=\"identity/signIn\" class=\"{{classbtn}}\">Sign In</a>\r\n"}]}],"members":{"classbtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}]}},"SignOutButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"anatoly-signout-button","template":"<a href=\"identity/signOut\" class=\"{{classbtn}}\">Sign Out</a>\r\n"}]}],"members":{"classbtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}]}},"SignUpButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"anatoly-signup-button","template":"<a href=\"identity/signup\" class=\"{{classbtn}}\">Sign Up</a>\r\n"}]}],"members":{"classbtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}]}},"LoadingComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"anatoly-loading","template":"<div *ngIf=\"show\">\r\n <span id=\"pnlLoading\" class=\"k-icon k-i-loading\"></span>\r\n</div>\r\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SpinnerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"spinner","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":41,"character":17},"member":"None"},"template":"<div id=\"spinner-loader\" *ngIf=\"isSpinnerVisible\">\r\n <div class=\"loader-bg\">\r\n <div class=\"spinner-line-material\" [class.colored]=\"!backgroundColor\" *ngIf=\"spinner === spinnerSpinKit.spinnerLine\">\r\n <div class=\"spinner-child spinner-bounce1\" [style.background-color]='backgroundColor'></div>\r\n </div>\r\n </div>\r\n</div>\r\n"}]}],"members":{"backgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"spinner":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":50,"character":39},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":50,"character":46}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":50,"character":30},{"__symbolic":"error","message":"Could not resolve type","line":50,"character":74,"context":{"typeName":"Document"},"module":"./lib/ui/components/spinner/spinner.component"}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"NativeElementDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":23,"character":1},"arguments":[{"selector":"[formControl], [formControlName]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":27,"character":37,"context":{"typeName":"HTMLFormElement"},"module":"./lib/ui/directives/native-element.directive"}]},{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":27,"character":72}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ReplaceTextPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":22,"character":1},"arguments":[{"name":"replaceText"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"FileSizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":22,"character":1},"arguments":[{"name":"filesize"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"SafeHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":24,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":26,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"FormValidationSummaryComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ValidationSummaryComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"anatoly-form-validation-summary","template":"<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h6 class=\"box-title\">There are problems with the form</h6>\r\n <ul>\r\n <li *ngFor=\"let error of getErrors()\"><span>{{error}}</span></li>\r\n </ul>\r\n</div>\r\n\r\n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"customerrors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"viewtype":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"getErrors":[{"__symbolic":"method"}]}},"ItemValidationSummaryComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ValidationSummaryComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"anatoly-item-validation-summary","template":"<ul class=\"list-unstyled\" *ngIf=\"isControlInvalid(controlName)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.get(controlName), controlTitle)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>\r\n\r\n"}]}],"members":{"controlName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"controlTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}]}},"ValidationSummaryComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseEditComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"template":""}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"getFormValidationMessages":[{"__symbolic":"method"}],"getValidationMessages":[{"__symbolic":"method"}],"getControlName":[{"__symbolic":"method"}],"getControlTitle":[{"__symbolic":"method"}],"getTitleAttribute":[{"__symbolic":"method"}]}},"FroalaEditorModuleWithProviders":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaEditorModule","line":26,"character":47},"member":"forRoot"}},"FroalaViewModuleWithProviders":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaViewModule","line":27,"character":45},"member":"forRoot"}},"AnatolyUIModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":55,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":59,"character":4},{"__symbolic":"reference","name":"FroalaEditorModuleWithProviders"},{"__symbolic":"reference","name":"FroalaViewModuleWithProviders"}],"exports":[{"__symbolic":"reference","name":"SubscribePlanButtonComponent"},{"__symbolic":"reference","name":"UpgradePlanButtonComponent"},{"__symbolic":"reference","name":"BuyAccessButtonComponent"},{"__symbolic":"reference","name":"SignInButtonComponent"},{"__symbolic":"reference","name":"SignUpButtonComponent"},{"__symbolic":"reference","name":"SignOutButtonComponent"},{"__symbolic":"reference","name":"ContentHeaderComponent"},{"__symbolic":"reference","name":"SpinnerComponent"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"NativeElementDirective"},{"__symbolic":"reference","name":"HtmlEditorComponent"},{"__symbolic":"reference","name":"FormsHtmlEditorComponent"},{"__symbolic":"reference","name":"FormValidationSummaryComponent"},{"__symbolic":"reference","name":"ItemValidationSummaryComponent"},{"__symbolic":"reference","name":"SafeHtmlPipe"},{"__symbolic":"reference","name":"ReplaceTextPipe"},{"__symbolic":"reference","name":"FileSizePipe"}],"declarations":[{"__symbolic":"reference","name":"SubscribePlanButtonComponent"},{"__symbolic":"reference","name":"UpgradePlanButtonComponent"},{"__symbolic":"reference","name":"BuyAccessButtonComponent"},{"__symbolic":"reference","name":"SignInButtonComponent"},{"__symbolic":"reference","name":"SignUpButtonComponent"},{"__symbolic":"reference","name":"SignOutButtonComponent"},{"__symbolic":"reference","name":"ContentHeaderComponent"},{"__symbolic":"reference","name":"SpinnerComponent"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"NativeElementDirective"},{"__symbolic":"reference","name":"HtmlEditorComponent"},{"__symbolic":"reference","name":"FormsHtmlEditorComponent"},{"__symbolic":"reference","name":"FormValidationSummaryComponent"},{"__symbolic":"reference","name":"ItemValidationSummaryComponent"},{"__symbolic":"reference","name":"SafeHtmlPipe"},{"__symbolic":"reference","name":"ReplaceTextPipe"},{"__symbolic":"reference","name":"FileSizePipe"}]}]}],"members":{}}},"origins":{"ContextInitState":"./lib/core/consts/settings","AppCoreSettings":"./lib/core/consts/settings","Urls":"./lib/core/consts/urls","BaseGoService":"./lib/core/go/base-go.service","throwIfAlreadyLoaded":"./lib/core/guards/once-import.guard","AnatolyHttpInterceptor":"./lib/core/interceptors/httpInterceptor","LocalizePipe":"./lib/core/localization/localize.pipe","LocalizationService":"./lib/core/localization/localization.service","customTranslateLoaderFactory":"./lib/core/localization/localizationSettings.module","localizationInitializerFactory":"./lib/core/localization/localizationSettings.module","TranslateModuleAtRoot":"./lib/core/localization/localizationSettings.module","LocalizationInjectorInstance":"./lib/core/localization/localizationSettings.module","LocalizationSettingsModule":"./lib/core/localization/localizationSettings.module","LocalizationModule":"./lib/core/localization/localization.module","GlobalErrorHandler":"./lib/core/logging/globalErrorHandler","LoggingService":"./lib/core/logging/logging.service","Alerts":"./lib/core/notifications/alerts","INotification":"./lib/core/notifications/interfaces/notification","NotificationService":"./lib/core/notifications/services/notification-service","AppContextService":"./lib/core/services/appcontext.service","IdleService":"./lib/core/services/idle.service","LoadingService":"./lib/core/services/loading.service","LocalStorageService":"./lib/core/services/web-storage.service","SessionStorageService":"./lib/core/services/web-storage.service","DigitalMarketingService":"./lib/core/services/dm.service","GoogleAnalyticsService":"./lib/core/services/google-analytics.service","Convert":"./lib/core/convert","InjectorInstance":"./lib/core/core.module","AnatolyCoreModule":"./lib/core/core.module","Guid":"./lib/core/guid","Subs":"./lib/core/subs","Utils":"./lib/core/utils","BaseGridEditService":"./lib/data/base/grid/base-grid-edit.service","BaseGridReadService":"./lib/data/base/grid/base-grid-read.service","BaseApiService":"./lib/data/base/base-api.service","NotificationsApiService":"./lib/data/services/notifications/notifications-api-service","BillingApiService":"./lib/data/services/billing-api.service","AnatolyDataModule":"./lib/data/data.module","BaseComponent":"./lib/ui/components/base.component","BaseEditComponent":"./lib/ui/components/base-edit.component","BaseDialog":"./lib/ui/components/base.dialog","BuyAccessButtonComponent":"./lib/ui/components/billing/buyaccess-button.component","SubscribePlanButtonComponent":"./lib/ui/components/billing/subscribe-plan-button.component","UpgradePlanButtonComponent":"./lib/ui/components/billing/upgrade-plan-button.component","ContentHeaderComponent":"./lib/ui/components/content-header/content-header.component","DefaultEditorOptions":"./lib/ui/components/html-editor/html-editor.defaultoptions","BaseHtmlEditorComponent":"./lib/ui/components/html-editor/base-html-editor.component","FormsHtmlEditorComponent":"./lib/ui/components/html-editor/forms-html-editor.component","HtmlEditorComponent":"./lib/ui/components/html-editor/html-editor.component","SignInButtonComponent":"./lib/ui/components/identity/signin-button.component","SignOutButtonComponent":"./lib/ui/components/identity/signout-button.component","SignUpButtonComponent":"./lib/ui/components/identity/signup-button.component","LoadingComponent":"./lib/ui/components/loading/loading.component","SpinnerComponent":"./lib/ui/components/spinner/spinner.component","NativeElementDirective":"./lib/ui/directives/native-element.directive","ReplaceTextPipe":"./lib/ui/pipes/replace-text.pipe","FileSizePipe":"./lib/ui/pipes/filesize.pipe","SafeHtmlPipe":"./lib/ui/pipes/safeHtml.pipe","FormValidationSummaryComponent":"./lib/ui/validation/form-validation-summary.component","ItemValidationSummaryComponent":"./lib/ui/validation/item-validation-summary.component","ValidationSummaryComponent":"./lib/ui/validation/validation-summary.component","FroalaEditorModuleWithProviders":"./lib/ui/ui.module","FroalaViewModuleWithProviders":"./lib/ui/ui.module","AnatolyUIModule":"./lib/ui/ui.module"},"importAs":"@osovitny/anatoly"}