@gloww/gloww 0.9.0-beta.10

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 (308) hide show
  1. package/README.md +24 -0
  2. package/compute-version.js +117 -0
  3. package/esm2020/gloww-gloww.mjs +5 -0
  4. package/esm2020/lib/Components/code-editor/code-editor.component.mjs +59 -0
  5. package/esm2020/lib/Components/confirmation/confirmation.component.mjs +43 -0
  6. package/esm2020/lib/Components/display-objects/display-objects.component.mjs +499 -0
  7. package/esm2020/lib/Components/display-objects-configuration.mjs +2 -0
  8. package/esm2020/lib/Components/download-progress/download-progress.component.mjs +119 -0
  9. package/esm2020/lib/Components/folders/file-edit/file-edit.component.mjs +71 -0
  10. package/esm2020/lib/Components/folders/folders/folders.component.mjs +180 -0
  11. package/esm2020/lib/Components/header/header.component.mjs +14 -0
  12. package/esm2020/lib/Components/html-editor/html-editor.component.mjs +175 -0
  13. package/esm2020/lib/Components/menu-list-item/menu-list-item.component.mjs +101 -0
  14. package/esm2020/lib/Components/prompt/prompt.component.mjs +52 -0
  15. package/esm2020/lib/Components/result-table/result-table.component.mjs +21 -0
  16. package/esm2020/lib/Components/search-form/search-form.component.mjs +14 -0
  17. package/esm2020/lib/Components/secure-a/secure-a.component.mjs +31 -0
  18. package/esm2020/lib/Components/secure-img/secure-img.component.mjs +45 -0
  19. package/esm2020/lib/Components/upload-doc/upload-doc.component.mjs +95 -0
  20. package/esm2020/lib/Components/upload-file/upload-file.component.mjs +138 -0
  21. package/esm2020/lib/Directives/file-sink.directive.mjs +52 -0
  22. package/esm2020/lib/Models/nav-item.mjs +2 -0
  23. package/esm2020/lib/Pipes/html-format.pipe.mjs +23 -0
  24. package/esm2020/lib/Pipes/retry-with-delay.mjs +12 -0
  25. package/esm2020/lib/Pipes/safe-html.pipe.mjs +22 -0
  26. package/esm2020/lib/Pipes/secure.pipe.mjs +34 -0
  27. package/esm2020/lib/Services/dialog.service.mjs +29 -0
  28. package/esm2020/lib/Services/folder-service-config.mjs +21 -0
  29. package/esm2020/lib/Services/folder.service.mjs +50 -0
  30. package/esm2020/lib/Services/gloww.service.mjs +66 -0
  31. package/esm2020/lib/Services/nav.service.mjs +28 -0
  32. package/esm2020/lib/Services/version-check.service.mjs +81 -0
  33. package/esm2020/lib/Services/voice-recognition.service.mjs +55 -0
  34. package/esm2020/lib/gloww-security/Components/change-password-dlg/change-password-dlg.component.mjs +67 -0
  35. package/esm2020/lib/gloww-security/Components/login/login.component.mjs +173 -0
  36. package/esm2020/lib/gloww-security/Components/social-network/social-network.component.mjs +46 -0
  37. package/esm2020/lib/gloww-security/Components/social-network-dlg/social-network-dlg.component.mjs +52 -0
  38. package/esm2020/lib/gloww-security/Components/user-menu/user-menu.component.mjs +73 -0
  39. package/esm2020/lib/gloww-security/Helpers/administrator.guard.mjs +27 -0
  40. package/esm2020/lib/gloww-security/Helpers/auth.guard.mjs +57 -0
  41. package/esm2020/lib/gloww-security/Helpers/error.interceptor.mjs +29 -0
  42. package/esm2020/lib/gloww-security/Helpers/index.mjs +5 -0
  43. package/esm2020/lib/gloww-security/Helpers/jwt.interceptor.mjs +31 -0
  44. package/esm2020/lib/gloww-security/Helpers/staging.interceptor.mjs +24 -0
  45. package/esm2020/lib/gloww-security/Models/oauthassociation.mjs +6 -0
  46. package/esm2020/lib/gloww-security/Models/user.mjs +3 -0
  47. package/esm2020/lib/gloww-security/Services/authentication-service-config.mjs +25 -0
  48. package/esm2020/lib/gloww-security/Services/authentication.service.mjs +205 -0
  49. package/esm2020/lib/gloww-security/Services/gloww-security.service.mjs +14 -0
  50. package/esm2020/lib/gloww-security/gloww-security.module.mjs +171 -0
  51. package/esm2020/lib/gloww.module.mjs +220 -0
  52. package/esm2020/lib/injection-token.mjs +3 -0
  53. package/esm2020/public-api.mjs +32 -0
  54. package/fesm2015/gloww-gloww.mjs +3104 -0
  55. package/fesm2015/gloww-gloww.mjs.map +1 -0
  56. package/fesm2020/gloww-gloww.mjs +3065 -0
  57. package/fesm2020/gloww-gloww.mjs.map +1 -0
  58. package/gloww-assets/.gitkeep +0 -0
  59. package/gloww-assets/7SS_logo.svg +1 -0
  60. package/gloww-assets/7SS_wobl.svg +1 -0
  61. package/gloww-assets/7stars.png +0 -0
  62. package/gloww-assets/gloww.svg +316 -0
  63. package/gloww-assets/images/google_signin_buttons/Google_signin_button.sketch +0 -0
  64. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_disabled_hdpi.9.png +0 -0
  65. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_focus_hdpi.9.png +0 -0
  66. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_normal_hdpi.9.png +0 -0
  67. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_pressed_hdpi.9.png +0 -0
  68. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_disabled_hdpi.9.png +0 -0
  69. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_focus_hdpi.9.png +0 -0
  70. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_normal_hdpi.9.png +0 -0
  71. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_pressed_hdpi.9.png +0 -0
  72. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_disabled_hdpi.9.png +0 -0
  73. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_focus_hdpi.9.png +0 -0
  74. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_normal_hdpi.9.png +0 -0
  75. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_pressed_hdpi.9.png +0 -0
  76. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_disabled_hdpi.9.png +0 -0
  77. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_focus_hdpi.9.png +0 -0
  78. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_normal_hdpi.9.png +0 -0
  79. package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_pressed_hdpi.9.png +0 -0
  80. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_disabled_ldpi.9.png +0 -0
  81. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_focus_ldpi.9.png +0 -0
  82. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_normal_ldpi.9.png +0 -0
  83. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_pressed_ldpi.9.png +0 -0
  84. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_disabled_ldpi.9.png +0 -0
  85. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_focus_ldpi.9.png +0 -0
  86. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_normal_ldpi.9.png +0 -0
  87. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_pressed_ldpi.9.png +0 -0
  88. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_disabled_ldpi.9.png +0 -0
  89. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_focus_ldpi.9.png +0 -0
  90. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_normal_ldpi.9.png +0 -0
  91. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_pressed_ldpi.9.png +0 -0
  92. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_disabled_ldpi.9.png +0 -0
  93. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_focus_ldpi.9.png +0 -0
  94. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_normal_ldpi.9.png +0 -0
  95. package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_pressed_ldpi.9.png +0 -0
  96. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_disabled_mdpi.9.png +0 -0
  97. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_focus_mdpi.9.png +0 -0
  98. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_normal_mdpi.9.png +0 -0
  99. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_pressed_mdpi.9.png +0 -0
  100. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_disabled_mdpi.9.png +0 -0
  101. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_focus_mdpi.9.png +0 -0
  102. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_normal_mdpi.9.png +0 -0
  103. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_pressed_mdpi.9.png +0 -0
  104. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_disabled_mdpi.9.png +0 -0
  105. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_focus_mdpi.9.png +0 -0
  106. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_normal_mdpi.9.png +0 -0
  107. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_pressed_mdpi.9.png +0 -0
  108. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_disabled_mdpi.9.png +0 -0
  109. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_focus_mdpi.9.png +0 -0
  110. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_normal_mdpi.9.png +0 -0
  111. package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_pressed_mdpi.9.png +0 -0
  112. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_disabled_tvdpi.9.png +0 -0
  113. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_focus_tvdpi.9.png +0 -0
  114. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_normal_tvdpi.9.png +0 -0
  115. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_pressed_tvdpi.9.png +0 -0
  116. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_disabled_tvdpi.9.png +0 -0
  117. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_focus_tvdpi.9.png +0 -0
  118. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_normal_tvdpi.9.png +0 -0
  119. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_pressed_tvdpi.9.png +0 -0
  120. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_disabled_tvdpi.9.png +0 -0
  121. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_focus_tvdpi.9.png +0 -0
  122. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_normal_tvdpi.9.png +0 -0
  123. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_pressed_tvdpi.9.png +0 -0
  124. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_disabled_tvdpi.9.png +0 -0
  125. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_focus_tvdpi.9.png +0 -0
  126. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_normal_tvdpi.9.png +0 -0
  127. package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_pressed_tvdpi.9.png +0 -0
  128. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_disabled_xhdpi.9.png +0 -0
  129. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_focus_xhdpi.9.png +0 -0
  130. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_normal_xhdpi.9.png +0 -0
  131. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_pressed_xhdpi.9.png +0 -0
  132. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_disabled_xhdpi.9.png +0 -0
  133. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_focus_xhdpi.9.png +0 -0
  134. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_normal_xhdpi.9.png +0 -0
  135. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_pressed_xhdpi.9.png +0 -0
  136. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_disabled_xhdpi.9.png +0 -0
  137. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_focus_xhdpi.9.png +0 -0
  138. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_normal_xhdpi.9.png +0 -0
  139. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_pressed_xhdpi.9.png +0 -0
  140. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_disabled_xhdpi.9.png +0 -0
  141. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_focus_xhdpi.9.png +0 -0
  142. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_normal_xhdpi.9.png +0 -0
  143. package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_pressed_xhdpi.9.png +0 -0
  144. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_disabled_xxhdpi.9.png +0 -0
  145. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_focus_xxhdpi.9.png +0 -0
  146. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_normal_xxhdpi.9.png +0 -0
  147. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_pressed_xxhdpi.9.png +0 -0
  148. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_disabled_xxhdpi.9.png +0 -0
  149. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_focus_xxhdpi.9.png +0 -0
  150. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_normal_xxhdpi.9.png +0 -0
  151. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_pressed_xxhdpi.9.png +0 -0
  152. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_disabled_xxhdpi.9.png +0 -0
  153. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_focus_xxhdpi.9.png +0 -0
  154. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_normal_xxhdpi.9.png +0 -0
  155. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_pressed_xxhdpi.9.png +0 -0
  156. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_disabled_xxhdpi.9.png +0 -0
  157. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_focus_xxhdpi.9.png +0 -0
  158. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_normal_xxhdpi.9.png +0 -0
  159. package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_pressed_xxhdpi.9.png +0 -0
  160. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_disabled_xxxhdpi.9.png +0 -0
  161. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_focus_xxxhdpi.9.png +0 -0
  162. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_normal_xxxhdpi.9.png +0 -0
  163. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_pressed_xxxhdpi.9.png +0 -0
  164. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_disabled_xxxhdpi.9.png +0 -0
  165. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_focus_xxxhdpi.9.png +0 -0
  166. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_normal_xxxhdpi.9.png +0 -0
  167. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_pressed_xxxhdpi.9.png +0 -0
  168. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_disabled_xxxhdpi.9.png +0 -0
  169. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_focus_xxxhdpi.9.png +0 -0
  170. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_normal_xxxhdpi.9.png +0 -0
  171. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_pressed_xxxhdpi.9.png +0 -0
  172. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_disabled_xxxhdpi.9.png +0 -0
  173. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_focus_xxxhdpi.9.png +0 -0
  174. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_normal_xxxhdpi.9.png +0 -0
  175. package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_pressed_xxxhdpi.9.png +0 -0
  176. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_disabled_ios.png +0 -0
  177. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_focus_ios.png +0 -0
  178. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_normal_ios.png +0 -0
  179. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_pressed_ios.png +0 -0
  180. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_disabled_ios.png +0 -0
  181. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_focus_ios.png +0 -0
  182. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_normal_ios.png +0 -0
  183. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_pressed_ios.png +0 -0
  184. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_disabled_ios.png +0 -0
  185. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_focus_ios.png +0 -0
  186. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_normal_ios.png +0 -0
  187. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_pressed_ios.png +0 -0
  188. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_disabled_ios.png +0 -0
  189. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_focus_ios.png +0 -0
  190. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_normal_ios.png +0 -0
  191. package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_pressed_ios.png +0 -0
  192. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_disabled_ios@2x.png +0 -0
  193. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_focus_ios@2x.png +0 -0
  194. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_normal_ios@2x.png +0 -0
  195. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_pressed_ios@2x.png +0 -0
  196. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_disabled_ios@2x.png +0 -0
  197. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_focus_ios@2x.png +0 -0
  198. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_normal_ios@2x.png +0 -0
  199. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_pressed_ios@2x.png +0 -0
  200. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_disabled_ios@2x.png +0 -0
  201. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_focus_ios@2x.png +0 -0
  202. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_normal_ios@2x.png +0 -0
  203. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_pressed_ios@2x.png +0 -0
  204. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_disabled_ios@2x.png +0 -0
  205. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_focus_ios@2x.png +0 -0
  206. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_normal_ios@2x.png +0 -0
  207. package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_pressed_ios@2x.png +0 -0
  208. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_disabled_ios@3x.png +0 -0
  209. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_focus_ios@3x.png +0 -0
  210. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_normal_ios@3x.png +0 -0
  211. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_pressed_ios@3x.png +0 -0
  212. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_disabled_ios@3x.png +0 -0
  213. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_focus_ios@3x.png +0 -0
  214. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_normal_ios@3x.png +0 -0
  215. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_pressed_ios@3x.png +0 -0
  216. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_disabled_ios@3x.png +0 -0
  217. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_focus_ios@3x.png +0 -0
  218. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_normal_ios@3x.png +0 -0
  219. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_pressed_ios@3x.png +0 -0
  220. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_disabled_ios@3x.png +0 -0
  221. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_focus_ios@3x.png +0 -0
  222. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_normal_ios@3x.png +0 -0
  223. package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_pressed_ios@3x.png +0 -0
  224. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
  225. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_focus_web.png +0 -0
  226. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_normal_web.png +0 -0
  227. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
  228. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_disabled_web.png +0 -0
  229. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_focus_web.png +0 -0
  230. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_normal_web.png +0 -0
  231. package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_pressed_web.png +0 -0
  232. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
  233. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
  234. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
  235. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
  236. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
  237. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
  238. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
  239. package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
  240. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_disabled_ios.eps +814 -0
  241. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_disabled_ios.svg +24 -0
  242. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_focus_ios.eps +1866 -0
  243. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_focus_ios.svg +51 -0
  244. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_normal_ios.eps +1031 -0
  245. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_normal_ios.svg +50 -0
  246. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_pressed_ios.eps +1031 -0
  247. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_pressed_ios.svg +50 -0
  248. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_disabled_ios.eps +814 -0
  249. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_disabled_ios.svg +24 -0
  250. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_focus_ios.eps +1837 -0
  251. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_focus_ios.svg +44 -0
  252. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_normal_ios.eps +1002 -0
  253. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_normal_ios.svg +43 -0
  254. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_pressed_ios.eps +1002 -0
  255. package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_pressed_ios.svg +43 -0
  256. package/gloww-assets/swagger.svg +1 -0
  257. package/gloww-gloww.d.ts +5 -0
  258. package/lib/Components/code-editor/code-editor.component.d.ts +16 -0
  259. package/lib/Components/confirmation/confirmation.component.d.ts +20 -0
  260. package/lib/Components/display-objects/display-objects.component.d.ts +93 -0
  261. package/lib/Components/display-objects-configuration.d.ts +5 -0
  262. package/lib/Components/download-progress/download-progress.component.d.ts +30 -0
  263. package/lib/Components/folders/file-edit/file-edit.component.d.ts +31 -0
  264. package/lib/Components/folders/folders/folders.component.d.ts +33 -0
  265. package/lib/Components/header/header.component.d.ts +8 -0
  266. package/lib/Components/html-editor/html-editor.component.d.ts +36 -0
  267. package/lib/Components/menu-list-item/menu-list-item.component.d.ts +22 -0
  268. package/lib/Components/prompt/prompt.component.d.ts +25 -0
  269. package/lib/Components/result-table/result-table.component.d.ts +11 -0
  270. package/lib/Components/search-form/search-form.component.d.ts +8 -0
  271. package/lib/Components/secure-a/secure-a.component.d.ts +13 -0
  272. package/lib/Components/secure-img/secure-img.component.d.ts +17 -0
  273. package/lib/Components/upload-doc/upload-doc.component.d.ts +19 -0
  274. package/lib/Components/upload-file/upload-file.component.d.ts +34 -0
  275. package/lib/Directives/file-sink.directive.d.ts +11 -0
  276. package/lib/Models/nav-item.d.ts +8 -0
  277. package/lib/Pipes/html-format.pipe.d.ts +10 -0
  278. package/lib/Pipes/retry-with-delay.d.ts +2 -0
  279. package/lib/Pipes/safe-html.pipe.d.ts +10 -0
  280. package/lib/Pipes/secure.pipe.d.ts +13 -0
  281. package/lib/Services/dialog.service.d.ts +11 -0
  282. package/lib/Services/folder-service-config.d.ts +7 -0
  283. package/lib/Services/folder.service.d.ts +19 -0
  284. package/lib/Services/gloww.service.d.ts +23 -0
  285. package/lib/Services/nav.service.d.ts +13 -0
  286. package/lib/Services/version-check.service.d.ts +30 -0
  287. package/lib/Services/voice-recognition.service.d.ts +14 -0
  288. package/lib/gloww-security/Components/change-password-dlg/change-password-dlg.component.d.ts +19 -0
  289. package/lib/gloww-security/Components/login/login.component.d.ts +43 -0
  290. package/lib/gloww-security/Components/social-network/social-network.component.d.ts +25 -0
  291. package/lib/gloww-security/Components/social-network-dlg/social-network-dlg.component.d.ts +21 -0
  292. package/lib/gloww-security/Components/user-menu/user-menu.component.d.ts +24 -0
  293. package/lib/gloww-security/Helpers/administrator.guard.d.ts +14 -0
  294. package/lib/gloww-security/Helpers/auth.guard.d.ts +14 -0
  295. package/lib/gloww-security/Helpers/error.interceptor.d.ts +11 -0
  296. package/lib/gloww-security/Helpers/index.d.ts +4 -0
  297. package/lib/gloww-security/Helpers/jwt.interceptor.d.ts +11 -0
  298. package/lib/gloww-security/Helpers/staging.interceptor.d.ts +9 -0
  299. package/lib/gloww-security/Models/oauthassociation.d.ts +7 -0
  300. package/lib/gloww-security/Models/user.d.ts +9 -0
  301. package/lib/gloww-security/Services/authentication-service-config.d.ts +17 -0
  302. package/lib/gloww-security/Services/authentication.service.d.ts +40 -0
  303. package/lib/gloww-security/Services/gloww-security.service.d.ts +6 -0
  304. package/lib/gloww-security/gloww-security.module.d.ts +35 -0
  305. package/lib/gloww.module.d.ts +59 -0
  306. package/lib/injection-token.d.ts +2 -0
  307. package/package.json +40 -0
  308. package/public-api.d.ts +28 -0
@@ -0,0 +1,57 @@
1
+ import { Injectable } from '@angular/core';
2
+ import jwt_decode from 'jwt-decode';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "../Services/authentication.service";
6
+ import * as i3 from "@angular/common";
7
+ export class AuthGuard {
8
+ constructor(router, authenticationService, platformLocation
9
+ //@Inject(APP_BASE_HREF) baseHref: string
10
+ ) {
11
+ this.router = router;
12
+ this.authenticationService = authenticationService;
13
+ this.platformLocation = platformLocation;
14
+ this.baseHref = null;
15
+ this.baseHref = platformLocation.getBaseHrefFromDOM();
16
+ }
17
+ canActivate(route, state) {
18
+ const currentUser = this.authenticationService.currentUserValue;
19
+ if (currentUser) {
20
+ // logged in so return true
21
+ const jwtToken = jwt_decode(currentUser.Token);
22
+ if (Date.now() < jwtToken.exp * 1000) {
23
+ return true;
24
+ }
25
+ else {
26
+ this.authenticationService.logout();
27
+ }
28
+ }
29
+ const vd = window.location.pathname;
30
+ if (vd.endsWith("/login")) {
31
+ return true;
32
+ }
33
+ console.log(window.location);
34
+ console.log(route);
35
+ console.log(state);
36
+ console.log(state.url);
37
+ console.log(window.location.search);
38
+ console.log(window.location.pathname);
39
+ const returnUrl = window.location.pathname.substr(this.baseHref.length);
40
+ //let application = window.location.pathname.substr(0, window.location.pathname.length - state.url.length);
41
+ /*if (state.url === '/') {
42
+ application = window.location.pathname.endsWith("/") ? application.substr(0, window.location.pathname.length - 1) : window.location.pathname;
43
+ }
44
+ if (!application) { application = '/'; }
45
+ console.log(application);*/
46
+ // not logged in so redirect to login page with the return url
47
+ this.router.navigate(['/login'], { queryParams: { returnUrl: `${returnUrl}${window.location.search}`, application: `${this.baseHref}` } });
48
+ return false;
49
+ }
50
+ }
51
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthenticationService }, { token: i3.PlatformLocation }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthGuard, providedIn: 'root' });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthGuard, decorators: [{
54
+ type: Injectable,
55
+ args: [{ providedIn: 'root' }]
56
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthenticationService }, { type: i3.PlatformLocation }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvSGVscGVycy9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7OztBQUtwQyxNQUFNLE9BQU8sU0FBUztJQUdwQixZQUNVLE1BQWMsRUFDZCxxQkFBNEMsRUFDNUMsZ0JBQWtDO0lBQzFDLHlDQUF5Qzs7UUFIakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUpwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBT3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO1FBQ2hFLElBQUksV0FBVyxFQUFFO1lBQ2YsMkJBQTJCO1lBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBTSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUU7Z0JBQ3BDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQTtRQUNuQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztTQUFFO1FBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLDJHQUEyRztRQUMzRzs7OzttQ0FJMkI7UUFDM0IsOERBQThEO1FBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0ksT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztzR0EzQ1UsU0FBUzswR0FBVCxTQUFTLGNBREksTUFBTTsyRkFDbkIsU0FBUztrQkFEckIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfQkFTRV9IUkVGLCBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgand0X2RlY29kZSBmcm9tICdqd3QtZGVjb2RlJztcclxuXHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuXHJcbiAgcHJpdmF0ZSBiYXNlSHJlZiA9IG51bGw7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvblxyXG4gICAgLy9ASW5qZWN0KEFQUF9CQVNFX0hSRUYpIGJhc2VIcmVmOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuYmFzZUhyZWYgPSBwbGF0Zm9ybUxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWU7XHJcbiAgICBpZiAoY3VycmVudFVzZXIpIHtcclxuICAgICAgLy8gbG9nZ2VkIGluIHNvIHJldHVybiB0cnVlXHJcbiAgICAgIGNvbnN0IGp3dFRva2VuID0gand0X2RlY29kZTxhbnk+KGN1cnJlbnRVc2VyLlRva2VuKTtcclxuICAgICAgaWYgKERhdGUubm93KCkgPCBqd3RUb2tlbi5leHAgKiAxMDAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHZkID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lXHJcbiAgICBpZiAodmQuZW5kc1dpdGgoXCIvbG9naW5cIikpIHsgcmV0dXJuIHRydWU7IH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyh3aW5kb3cubG9jYXRpb24pO1xyXG4gICAgY29uc29sZS5sb2cocm91dGUpO1xyXG4gICAgY29uc29sZS5sb2coc3RhdGUpO1xyXG4gICAgY29uc29sZS5sb2coc3RhdGUudXJsKTtcclxuICAgIGNvbnNvbGUubG9nKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgY29uc29sZS5sb2cod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcclxuXHJcbiAgICBjb25zdCByZXR1cm5VcmwgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyKHRoaXMuYmFzZUhyZWYubGVuZ3RoKTtcclxuICAgIC8vbGV0IGFwcGxpY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cigwLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubGVuZ3RoIC0gc3RhdGUudXJsLmxlbmd0aCk7XHJcbiAgICAvKmlmIChzdGF0ZS51cmwgPT09ICcvJykge1xyXG4gICAgICBhcHBsaWNhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChcIi9cIikgPyBhcHBsaWNhdGlvbi5zdWJzdHIoMCwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmxlbmd0aCAtIDEpIDogd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKCFhcHBsaWNhdGlvbikgeyBhcHBsaWNhdGlvbiA9ICcvJzsgfVxyXG4gICAgY29uc29sZS5sb2coYXBwbGljYXRpb24pOyovXHJcbiAgICAvLyBub3QgbG9nZ2VkIGluIHNvIHJlZGlyZWN0IHRvIGxvZ2luIHBhZ2Ugd2l0aCB0aGUgcmV0dXJuIHVybFxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSwgeyBxdWVyeVBhcmFtczogeyByZXR1cm5Vcmw6IGAke3JldHVyblVybH0ke3dpbmRvdy5sb2NhdGlvbi5zZWFyY2h9YCwgYXBwbGljYXRpb246IGAke3RoaXMuYmFzZUhyZWZ9YCB9IH0pO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { throwError } from 'rxjs';
3
+ import { catchError } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../Services/authentication.service";
6
+ export class ErrorInterceptor {
7
+ constructor(authenticationService) {
8
+ this.authenticationService = authenticationService;
9
+ }
10
+ intercept(request, next) {
11
+ return next.handle(request).pipe(catchError(err => {
12
+ if (err.status === 401) {
13
+ // auto logout if 401 response returned from api
14
+ this.authenticationService.logout();
15
+ location.reload();
16
+ }
17
+ const error = err.error ? (err.error.message || err.StatusText) : err.statusText;
18
+ if (console)
19
+ console.log(err);
20
+ return throwError(err);
21
+ }));
22
+ }
23
+ }
24
+ ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
25
+ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ErrorInterceptor });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ErrorInterceptor, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: function () { return [{ type: i1.AuthenticationService }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL2dsb3d3LXNlY3VyaXR5L0hlbHBlcnMvZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzVDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFBSSxDQUFDO0lBRXJFLFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3RCLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDbkI7WUFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNqRixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7NkdBZlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgLy8gYXV0byBsb2dvdXQgaWYgNDAxIHJlc3BvbnNlIHJldHVybmVkIGZyb20gYXBpXHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGVycm9yID0gZXJyLmVycm9yID8gKGVyci5lcnJvci5tZXNzYWdlIHx8IGVyci5TdGF0dXNUZXh0KSA6IGVyci5zdGF0dXNUZXh0O1xyXG4gICAgICBpZiAoY29uc29sZSkgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './auth.guard';
2
+ export * from './administrator.guard';
3
+ export * from './error.interceptor';
4
+ export * from './jwt.interceptor';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL2dsb3d3LXNlY3VyaXR5L0hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FkbWluaXN0cmF0b3IuZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLmludGVyY2VwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9qd3QuaW50ZXJjZXB0b3InO1xyXG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../Services/authentication.service";
4
+ export class JwtInterceptor {
5
+ constructor(authenticationService) {
6
+ this.authenticationService = authenticationService;
7
+ }
8
+ intercept(request, next) {
9
+ // add authorization header with jwt token if available
10
+ try {
11
+ const currentUser = this.authenticationService.currentUserValue;
12
+ if (currentUser && currentUser.Token) {
13
+ request = request.clone({
14
+ setHeaders: {
15
+ Authorization: `Bearer ${currentUser.Token}`
16
+ }
17
+ });
18
+ }
19
+ }
20
+ catch (e) {
21
+ console.log(`jwt interceptor ${e}`);
22
+ }
23
+ return next.handle(request);
24
+ }
25
+ }
26
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: JwtInterceptor });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: JwtInterceptor, decorators: [{
29
+ type: Injectable
30
+ }], ctorParameters: function () { return [{ type: i1.AuthenticationService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9nbG93dy1zZWN1cml0eS9IZWxwZXJzL2p3dC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLGNBQWM7SUFDMUIsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFBSSxDQUFDO0lBRXJFLFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3JELHVEQUF1RDtRQUN2RCxJQUFJO1lBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO1lBQ2hFLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUN2QixVQUFVLEVBQUU7d0JBQ1gsYUFBYSxFQUFFLFVBQVUsV0FBVyxDQUFDLEtBQUssRUFBRTtxQkFDNUM7aUJBQ0QsQ0FBQyxDQUFDO2FBQ0g7U0FDRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDOzsyR0FuQlcsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlciwgSHR0cEV2ZW50LCBIdHRwSW50ZXJjZXB0b3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSnd0SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuXHRpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcblx0XHQvLyBhZGQgYXV0aG9yaXphdGlvbiBoZWFkZXIgd2l0aCBqd3QgdG9rZW4gaWYgYXZhaWxhYmxlXHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWU7XHJcblx0XHRcdGlmIChjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci5Ub2tlbikge1xyXG5cdFx0XHRcdHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcclxuXHRcdFx0XHRcdHNldEhlYWRlcnM6IHtcclxuXHRcdFx0XHRcdFx0QXV0aG9yaXphdGlvbjogYEJlYXJlciAke2N1cnJlbnRVc2VyLlRva2VufWBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhgand0IGludGVyY2VwdG9yICR7ZX1gKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class StagingInterceptor {
4
+ constructor() { }
5
+ intercept(request, next) {
6
+ // add authorization header with jwt token if available
7
+ try {
8
+ if (!request.url.match(/version\.json(\?|$)/ig)) {
9
+ console.log(`Replace ${request.url}`);
10
+ return next.handle(request.clone({ url: request.url.replace("__Staging", "") }));
11
+ }
12
+ }
13
+ catch (e) {
14
+ console.log(`staging interceptor ${e}`);
15
+ }
16
+ return next.handle(request);
17
+ }
18
+ }
19
+ StagingInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: StagingInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ StagingInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: StagingInterceptor });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: StagingInterceptor, decorators: [{
22
+ type: Injectable
23
+ }], ctorParameters: function () { return []; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2luZy5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvSGVscGVycy9zdGFnaW5nLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZ0JBQWdCLENBQUM7SUFFakIsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsdURBQXVEO1FBQ3ZELElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRTtnQkFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEY7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDOzsrR0FmVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdGFnaW5nSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIC8vIGFkZCBhdXRob3JpemF0aW9uIGhlYWRlciB3aXRoIGp3dCB0b2tlbiBpZiBhdmFpbGFibGVcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghcmVxdWVzdC51cmwubWF0Y2goL3ZlcnNpb25cXC5qc29uKFxcP3wkKS9pZykpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhgUmVwbGFjZSAke3JlcXVlc3QudXJsfWApO1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0LmNsb25lKHsgdXJsOiByZXF1ZXN0LnVybC5yZXBsYWNlKFwiX19TdGFnaW5nXCIsIFwiXCIpIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgc3RhZ2luZyBpbnRlcmNlcHRvciAke2V9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export class Oauthassociation {
2
+ toString() {
3
+ return this.provider;
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGhhc3NvY2lhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvTW9kZWxzL29hdXRoYXNzb2NpYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGdCQUFnQjtJQU1wQixRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBPYXV0aGFzc29jaWF0aW9uIHtcclxuICBwdWJsaWMgaWRPQXV0aDogbnVtYmVyO1xyXG4gIHB1YmxpYyBwcm92aWRlcjogc3RyaW5nO1xyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcclxuICAgIHJldHVybiB0aGlzLnByb3ZpZGVyO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class User {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvTW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLElBQUk7Q0FRaEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlciB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgdXNlcm5hbWU6IHN0cmluZztcclxuICAgIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcclxuICAgIGxhc3ROYW1lOiBzdHJpbmc7XHJcblx0XHRUb2tlbj86IHN0cmluZztcclxuXHRcdGRvbWFpbjogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AuthenticationServiceConfig {
4
+ constructor() {
5
+ this.currentUserVariableName = 'currentuser';
6
+ this.authenticationUrl = `/admin/authusers/authenticate`;
7
+ this.changePasswordUrl = `/admin/authusers/changePassword`;
8
+ this.askResetPasswordCodeUrl = `/admin/authusers/askResetPasswordCode`;
9
+ this.resetPassworUrl = `/admin/authusers/resetPassword`;
10
+ this.environment = '__GlowwSecurity__';
11
+ this.showDomain = false;
12
+ this.askGSM = false;
13
+ this.googleClientId = '';
14
+ this.facebookClientId = '';
15
+ this.amazonClientId = '';
16
+ this.microsoftClientId = '';
17
+ }
18
+ }
19
+ AuthenticationServiceConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationServiceConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ AuthenticationServiceConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationServiceConfig, providedIn: 'root' });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationServiceConfig, decorators: [{
22
+ type: Injectable,
23
+ args: [{ providedIn: 'root' }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tc2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL2dsb3d3LXNlY3VyaXR5L1NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLXNlcnZpY2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTywyQkFBMkI7SUFEeEM7UUFFRSw0QkFBdUIsR0FBRyxhQUFhLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsK0JBQStCLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsaUNBQWlDLENBQUM7UUFDdEQsNEJBQXVCLEdBQUcsdUNBQXVDLENBQUM7UUFDbEUsb0JBQWUsR0FBRyxnQ0FBZ0MsQ0FBQztRQUNuRCxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixzQkFBaUIsR0FBRyxFQUFFLENBQUM7S0FDeEI7O3dIQWJZLDJCQUEyQjs0SEFBM0IsMkJBQTJCLGNBRGQsTUFBTTsyRkFDbkIsMkJBQTJCO2tCQUR2QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2VDb25maWcge1xyXG4gIGN1cnJlbnRVc2VyVmFyaWFibGVOYW1lPz0gJ2N1cnJlbnR1c2VyJztcclxuICBhdXRoZW50aWNhdGlvblVybD89IGAvYWRtaW4vYXV0aHVzZXJzL2F1dGhlbnRpY2F0ZWA7XHJcbiAgY2hhbmdlUGFzc3dvcmRVcmw/PSBgL2FkbWluL2F1dGh1c2Vycy9jaGFuZ2VQYXNzd29yZGA7XHJcbiAgYXNrUmVzZXRQYXNzd29yZENvZGVVcmw/PSBgL2FkbWluL2F1dGh1c2Vycy9hc2tSZXNldFBhc3N3b3JkQ29kZWA7XHJcbiAgcmVzZXRQYXNzd29yVXJsPz0gYC9hZG1pbi9hdXRodXNlcnMvcmVzZXRQYXNzd29yZGA7XHJcbiAgZW52aXJvbm1lbnQ/PSAnX19HbG93d1NlY3VyaXR5X18nO1xyXG4gIHNob3dEb21haW4/PSBmYWxzZTtcclxuICBhc2tHU00/PSBmYWxzZTtcclxuICBnb29nbGVDbGllbnRJZD89ICcnO1xyXG4gIGZhY2Vib29rQ2xpZW50SWQ/PSAnJztcclxuICBhbWF6b25DbGllbnRJZD89ICcnO1xyXG4gIG1pY3Jvc29mdENsaWVudElkPz0gJyc7XHJcbn1cclxuIl19
@@ -0,0 +1,205 @@
1
+ import { Oauthassociation } from './../Models/oauthassociation';
2
+ import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
3
+ import { HttpParams } from '@angular/common/http';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { map, tap } from 'rxjs/operators';
6
+ import { isPlatformBrowser } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "./authentication-service-config";
10
+ export class AuthenticationService {
11
+ constructor(http, platformId, config) {
12
+ this.http = http;
13
+ this.platformId = platformId;
14
+ this.hasLocalStorage = false;
15
+ this.hasLocalStorage = isPlatformBrowser(this.platformId);
16
+ if (config && config.currentUserVariableName) {
17
+ this.currentUserVariableName = config.currentUserVariableName;
18
+ }
19
+ else {
20
+ this.currentUserVariableName = 'currentUser';
21
+ }
22
+ if (config && config.authenticationUrl) {
23
+ this.authenticationUrl = config.authenticationUrl;
24
+ }
25
+ else {
26
+ this.authenticationUrl = `/admin/authusers/authenticate`;
27
+ }
28
+ if (config && config.changePasswordUrl) {
29
+ this.changePasswordUrl = config.changePasswordUrl;
30
+ }
31
+ else {
32
+ this.changePasswordUrl = this.authenticationUrl.replace('authenticate', 'changePassword');
33
+ }
34
+ if (config && config.askResetPasswordCodeUrl) {
35
+ this.askResetPasswordCodeUrl = config.askResetPasswordCodeUrl;
36
+ }
37
+ else {
38
+ this.askResetPasswordCodeUrl = this.authenticationUrl.replace('authenticate', 'askResetPasswordCode');
39
+ }
40
+ if (config && config.resetPassworUrl) {
41
+ this.resetPasswordUrl = config.resetPassworUrl;
42
+ }
43
+ else {
44
+ this.resetPasswordUrl = this.authenticationUrl.replace('authenticate', 'resetPassword');
45
+ }
46
+ this.OAuthGetProvidersUrl = this.authenticationUrl.replace('authenticate', 'OAuthGetProviders');
47
+ this.OAuthAskCodeUrl = this.authenticationUrl.replace('authenticate', 'OAuthAskCode');
48
+ this.OAuthAssociationUrl = this.authenticationUrl.replace('authenticate', 'OAuthAssociation');
49
+ this.OAuthGetAssociationsUrl = this.authenticationUrl.replace('authenticate', 'OAuthGetAssociations');
50
+ this.OAuthDeleteAssociationUrl = this.authenticationUrl.replace('authenticate', 'OAuthDeleteAssociation');
51
+ if (config && config.environment) {
52
+ this.environment = config.environment;
53
+ }
54
+ if (config && config.showDomain) {
55
+ this.showdomain = config.showDomain;
56
+ }
57
+ if (this.hasLocalStorage) { // Angular Universal
58
+ this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem(this.currentUserVariableName)));
59
+ this.currentUser = this.currentUserSubject.asObservable();
60
+ }
61
+ }
62
+ get currentUserValue() {
63
+ if (!this.currentUserSubject) {
64
+ return null;
65
+ } // Angular Universsal
66
+ return this.currentUserSubject.value;
67
+ }
68
+ get isConnected() {
69
+ if (!this.currentUserSubject) {
70
+ return null;
71
+ } // Angular Universsal
72
+ return this.currentUserSubject.value !== null;
73
+ }
74
+ login(domain, username, password) {
75
+ const formData = new FormData();
76
+ if (this.showdomain) {
77
+ formData.set('domain', domain);
78
+ }
79
+ formData.set('environment', this.environment);
80
+ formData.set('username', username);
81
+ formData.set('password', password);
82
+ return this.http.post(this.authenticationUrl, formData, { observe: 'response' })
83
+ .pipe(map(resp => {
84
+ // store user details and jwt token in local storage to keep user logged in between page refreshes
85
+ const user = resp.body;
86
+ if (this.hasLocalStorage) {
87
+ localStorage.setItem(this.currentUserVariableName, JSON.stringify(user));
88
+ }
89
+ this.currentUserSubject.next(user);
90
+ return user;
91
+ }));
92
+ }
93
+ changePassword(domain, username, oldpassword, newpassword) {
94
+ const params = new HttpParams({
95
+ fromObject: {
96
+ domain: this.currentUserValue.domain ?? '',
97
+ username: this.currentUserValue.username,
98
+ newpassword,
99
+ oldpassword,
100
+ environment: this.environment
101
+ }
102
+ });
103
+ return this.http.get(this.changePasswordUrl, { params });
104
+ }
105
+ logout() {
106
+ // remove user from local storage to log user out
107
+ if (this.hasLocalStorage) {
108
+ localStorage.removeItem(this.currentUserVariableName);
109
+ }
110
+ this.currentUserSubject.next(null);
111
+ }
112
+ askResetPasswordCode(domain, firstname, lastname, email, gsm) {
113
+ const params = new HttpParams({
114
+ fromObject: {
115
+ domain: '',
116
+ firstname,
117
+ lastname,
118
+ email,
119
+ gsm,
120
+ environment: this.environment
121
+ }
122
+ });
123
+ return this.http.get(this.askResetPasswordCodeUrl, { params });
124
+ }
125
+ resetPassword(email, code, password) {
126
+ const params = new HttpParams({
127
+ fromObject: {
128
+ email,
129
+ code,
130
+ password,
131
+ environment: this.environment
132
+ }
133
+ });
134
+ return this.http.get(this.resetPasswordUrl, { params });
135
+ }
136
+ getOAuthProviders() {
137
+ return this.http.get(this.OAuthGetProvidersUrl);
138
+ }
139
+ OAuthAskCode(environment, login, idOauth, provider, name, value) {
140
+ const params = new HttpParams({
141
+ fromObject: {
142
+ environment,
143
+ login,
144
+ idOauth,
145
+ provider,
146
+ name,
147
+ value
148
+ }
149
+ });
150
+ return this.http.get(this.OAuthAskCodeUrl, { params });
151
+ }
152
+ OAuthAssociation(environment, code, idOauth, provider, name, value) {
153
+ const params = new HttpParams({
154
+ fromObject: {
155
+ environment,
156
+ code,
157
+ idOauth,
158
+ provider,
159
+ name,
160
+ value
161
+ }
162
+ });
163
+ return this.http.get(this.OAuthAssociationUrl, { params }).pipe(map(resp => {
164
+ // store user details and jwt token in local storage to keep user logged in between page refreshes
165
+ console.log("OAuthAuthentication");
166
+ console.log(resp);
167
+ const user = resp;
168
+ if (this.hasLocalStorage) {
169
+ localStorage.setItem(this.currentUserVariableName, JSON.stringify(user));
170
+ }
171
+ this.currentUserSubject.next(user);
172
+ return user;
173
+ }));
174
+ }
175
+ getOAuthAssociations() {
176
+ const params = new HttpParams({
177
+ fromObject: {
178
+ environment: this.environment
179
+ }
180
+ });
181
+ return this.http.get(this.OAuthGetAssociationsUrl, { params }).pipe(tap((value) => console.log(value)), map((value) => value.map(item => Object.assign(new Oauthassociation(), item))), tap((value) => console.log(value)));
182
+ }
183
+ OAuthDeleteAssociation(provider, idOAuth) {
184
+ const params = new HttpParams({
185
+ fromObject: {
186
+ environment: this.environment,
187
+ provider,
188
+ idOAuth
189
+ }
190
+ });
191
+ return this.http.get(this.OAuthDeleteAssociationUrl, { params });
192
+ }
193
+ }
194
+ AuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationService, deps: [{ token: i1.HttpClient }, { token: PLATFORM_ID }, { token: i2.AuthenticationServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
195
+ AuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AuthenticationService, decorators: [{
197
+ type: Injectable,
198
+ args: [{ providedIn: 'root' }]
199
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
200
+ type: Inject,
201
+ args: [PLATFORM_ID]
202
+ }] }, { type: i2.AuthenticationServiceConfig, decorators: [{
203
+ type: Optional
204
+ }] }]; } });
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvU2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFHcEQsTUFBTSxPQUFPLHFCQUFxQjtJQWlCaEMsWUFBb0IsSUFBZ0IsRUFBK0IsVUFBZSxFQUFjLE1BQW9DO1FBQWhILFNBQUksR0FBSixJQUFJLENBQVk7UUFBK0IsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUYzRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUc3QixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsdUJBQXVCLEVBQUU7WUFBRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDO1NBQUU7YUFBTTtZQUFFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxhQUFhLENBQUM7U0FBRTtRQUN2SyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxJQUFJLENBQUMs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QUFHLElBQUksVUFBVSxDQUFDO1lBQzVCLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFFBQVE7Z0JBQ1IsT0FBTzthQUNSO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7O2tIQTNLVSxxQkFBcUIsNENBaUJjLFdBQVc7c0hBakI5QyxxQkFBcUIsY0FEUixNQUFNOzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFrQk8sTUFBTTsyQkFBQyxXQUFXOzswQkFBNEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9hdXRoYXNzb2NpYXRpb24gfSBmcm9tICcuLy4uL01vZGVscy9vYXV0aGFzc29jaWF0aW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL01vZGVscy91c2VyJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbi1zZXJ2aWNlLWNvbmZpZyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY3VycmVudFVzZXJTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8VXNlcj47XHJcbiAgcHVibGljIGN1cnJlbnRVc2VyOiBPYnNlcnZhYmxlPFVzZXI+O1xyXG4gIHB1YmxpYyBjdXJyZW50VXNlclZhcmlhYmxlTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBhdXRoZW50aWNhdGlvblVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyBjaGFuZ2VQYXNzd29yZFVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyBhc2tSZXNldFBhc3N3b3JkQ29kZVVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyByZXNldFBhc3N3b3JkVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIE9BdXRoR2V0UHJvdmlkZXJzVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIE9BdXRoQXNrQ29kZVVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyBPQXV0aEFzc29jaWF0aW9uVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIE9BdXRoR2V0QXNzb2NpYXRpb25zVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIE9BdXRoRGVsZXRlQXNzb2NpYXRpb25Vcmw6IHN0cmluZztcclxuICBwdWJsaWMgZW52aXJvbm1lbnQ6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd2RvbWFpbjogYm9vbGVhbjtcclxuICBwdWJsaWMgaGFzTG9jYWxTdG9yYWdlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksIEBPcHRpb25hbCgpIGNvbmZpZz86IEF1dGhlbnRpY2F0aW9uU2VydmljZUNvbmZpZykge1xyXG4gICAgdGhpcy5oYXNMb2NhbFN0b3JhZ2UgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuY3VycmVudFVzZXJWYXJpYWJsZU5hbWUpIHsgdGhpcy5jdXJyZW50VXNlclZhcmlhYmxlTmFtZSA9IGNvbmZpZy5jdXJyZW50VXNlclZhcmlhYmxlTmFtZTsgfSBlbHNlIHsgdGhpcy5jdXJyZW50VXNlclZhcmlhYmxlTmFtZSA9ICdjdXJyZW50VXNlcic7IH1cclxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLmF1dGhlbnRpY2F0aW9uVXJsKSB7IHRoaXMuYXV0aGVudGljYXRpb25VcmwgPSBjb25maWcuYXV0aGVudGljYXRpb25Vcmw7IH0gZWxzZSB7IHRoaXMuYXV0aGVudGljYXRpb25VcmwgPSBgL2FkbWluL2F1dGh1c2Vycy9hdXRoZW50aWNhdGVgOyB9XHJcbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5jaGFuZ2VQYXNzd29yZFVybCkgeyB0aGlzLmNoYW5nZVBhc3N3b3JkVXJsID0gY29uZmlnLmNoYW5nZVBhc3N3b3JkVXJsOyB9IGVsc2UgeyB0aGlzLmNoYW5nZVBhc3N3b3JkVXJsID0gdGhpcy5hdXRoZW50aWNhdGlvblVybC5yZXBsYWNlKCdhdXRoZW50aWNhdGUnLCAnY2hhbmdlUGFzc3dvcmQnKTsgfVxyXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuYXNrUmVzZXRQYXNzd29yZENvZGVVcmwpIHsgdGhpcy5hc2tSZXNldFBhc3N3b3JkQ29kZVVybCA9IGNvbmZpZy5hc2tSZXNldFBhc3N3b3JkQ29kZVVybDsgfSBlbHNlIHsgdGhpcy5hc2tSZXNldFBhc3N3b3JkQ29kZVVybCA9IHRoaXMuYXV0aGVudGljYXRpb25VcmwucmVwbGFjZSgnYXV0aGVudGljYXRlJywgJ2Fza1Jlc2V0UGFzc3dvcmRDb2RlJyk7IH1cclxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLnJlc2V0UGFzc3dvclVybCkgeyB0aGlzLnJlc2V0UGFzc3dvcmRVcmwgPSBjb25maWcucmVzZXRQYXNzd29yVXJsOyB9IGVsc2UgeyB0aGlzLnJlc2V0UGFzc3dvcmRVcmwgPSB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsLnJlcGxhY2UoJ2F1dGhlbnRpY2F0ZScsICdyZXNldFBhc3N3b3JkJyk7IH1cclxuICAgIHRoaXMuT0F1dGhHZXRQcm92aWRlcnNVcmwgPSB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsLnJlcGxhY2UoJ2F1dGhlbnRpY2F0ZScsICdPQXV0aEdldFByb3ZpZGVycycpO1xyXG4gICAgdGhpcy5PQXV0aEFza0NvZGVVcmwgPSB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsLnJlcGxhY2UoJ2F1dGhlbnRpY2F0ZScsICdPQXV0aEFza0NvZGUnKTtcclxuICAgIHRoaXMuT0F1dGhBc3NvY2lhdGlvblVybCA9IHRoaXMuYXV0aGVudGljYXRpb25VcmwucmVwbGFjZSgnYXV0aGVudGljYXRlJywgJ09BdXRoQXNzb2NpYXRpb24nKTtcclxuICAgIHRoaXMuT0F1dGhHZXRBc3NvY2lhdGlvbnNVcmwgPSB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsLnJlcGxhY2UoJ2F1dGhlbnRpY2F0ZScsICdPQXV0aEdldEFzc29jaWF0aW9ucycpO1xyXG4gICAgdGhpcy5PQXV0aERlbGV0ZUFzc29jaWF0aW9uVXJsID0gdGhpcy5hdXRoZW50aWNhdGlvblVybC5yZXBsYWNlKCdhdXRoZW50aWNhdGUnLCAnT0F1dGhEZWxldGVBc3NvY2lhdGlvbicpO1xyXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuZW52aXJvbm1lbnQpIHsgdGhpcy5lbnZpcm9ubWVudCA9IGNvbmZpZy5lbnZpcm9ubWVudDsgfVxyXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuc2hvd0RvbWFpbikgeyB0aGlzLnNob3dkb21haW4gPSBjb25maWcuc2hvd0RvbWFpbjsgfVxyXG4gICAgaWYgKHRoaXMuaGFzTG9jYWxTdG9yYWdlKSB7IC8vIEFuZ3VsYXIgVW5pdmVyc2FsXHJcbiAgICAgIHRoaXMuY3VycmVudFVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVc2VyPihKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuY3VycmVudFVzZXJWYXJpYWJsZU5hbWUpKSk7XHJcbiAgICAgIHRoaXMuY3VycmVudFVzZXIgPSB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFVzZXJWYWx1ZSgpOiBVc2VyIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50VXNlclN1YmplY3QpIHsgcmV0dXJuIG51bGw7IH0gLy8gQW5ndWxhciBVbml2ZXJzc2FsXHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlclN1YmplY3QudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzQ29ubmVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRVc2VyU3ViamVjdCkgeyByZXR1cm4gbnVsbDsgfSAvLyBBbmd1bGFyIFVuaXZlcnNzYWxcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC52YWx1ZSAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIGxvZ2luKGRvbWFpbjogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKHRoaXMuc2hvd2RvbWFpbikgeyBmb3JtRGF0YS5zZXQoJ2RvbWFpbicsIGRvbWFpbik7IH1cclxuICAgIGZvcm1EYXRhLnNldCgnZW52aXJvbm1lbnQnLCB0aGlzLmVudmlyb25tZW50KTtcclxuICAgIGZvcm1EYXRhLnNldCgndXNlcm5hbWUnLCB1c2VybmFtZSk7XHJcbiAgICBmb3JtRGF0YS5zZXQoJ3Bhc3N3b3JkJywgcGFzc3dvcmQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5hdXRoZW50aWNhdGlvblVybCwgZm9ybURhdGEsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyB9KVxyXG4gICAgICAucGlwZShtYXAocmVzcCA9PiB7XHJcbiAgICAgICAgLy8gc3RvcmUgdXNlciBkZXRhaWxzIGFuZCBqd3QgdG9rZW4gaW4gbG9jYWwgc3RvcmFnZSB0byBrZWVwIHVzZXIgbG9nZ2VkIGluIGJldHdlZW4gcGFnZSByZWZyZXNoZXNcclxuICAgICAgICBjb25zdCB1c2VyOiBhbnkgPSByZXNwLmJvZHk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzTG9jYWxTdG9yYWdlKSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuY3VycmVudFVzZXJWYXJpYWJsZU5hbWUsIEpTT04uc3RyaW5naWZ5KHVzZXIpKTsgfVxyXG4gICAgICAgIHRoaXMuY3VycmVudFVzZXJTdWJqZWN0Lm5leHQodXNlcik7XHJcbiAgICAgICAgcmV0dXJuIHVzZXI7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhc3N3b3JkKGRvbWFpbjogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBvbGRwYXNzd29yZDogc3RyaW5nLCBuZXdwYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBkb21haW46IHRoaXMuY3VycmVudFVzZXJWYWx1ZS5kb21haW4gPz8gJycsXHJcbiAgICAgICAgdXNlcm5hbWU6IHRoaXMuY3VycmVudFVzZXJWYWx1ZS51c2VybmFtZSxcclxuICAgICAgICBuZXdwYXNzd29yZCxcclxuICAgICAgICBvbGRwYXNzd29yZCxcclxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5jaGFuZ2VQYXNzd29yZFVybCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICAvLyByZW1vdmUgdXNlciBmcm9tIGxvY2FsIHN0b3JhZ2UgdG8gbG9nIHVzZXIgb3V0XHJcbiAgICBpZiAodGhpcy5oYXNMb2NhbFN0b3JhZ2UpIHsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5jdXJyZW50VXNlclZhcmlhYmxlTmFtZSk7IH1cclxuICAgIHRoaXMuY3VycmVudFVzZXJTdWJqZWN0Lm5leHQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBhc2tSZXNldFBhc3N3b3JkQ29kZShkb21haW46IHN0cmluZywgZmlyc3RuYW1lOiBzdHJpbmcsIGxhc3RuYW1lOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcsIGdzbTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBkb21haW46ICcnLFxyXG4gICAgICAgIGZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZSxcclxuICAgICAgICBlbWFpbCxcclxuICAgICAgICBnc20sXHJcbiAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuYXNrUmVzZXRQYXNzd29yZENvZGVVcmwsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRQYXNzd29yZChlbWFpbDogc3RyaW5nLCBjb2RlOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIGVtYWlsLFxyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMucmVzZXRQYXNzd29yZFVybCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRPQXV0aFByb3ZpZGVycygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPih0aGlzLk9BdXRoR2V0UHJvdmlkZXJzVXJsKTtcclxuICB9XHJcblxyXG4gIE9BdXRoQXNrQ29kZShlbnZpcm9ubWVudDogc3RyaW5nLCBsb2dpbjogc3RyaW5nLCBpZE9hdXRoOiBudW1iZXIsIHByb3ZpZGVyOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgZW52aXJvbm1lbnQsXHJcbiAgICAgICAgbG9naW4sXHJcbiAgICAgICAgaWRPYXV0aCxcclxuICAgICAgICBwcm92aWRlcixcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLk9BdXRoQXNrQ29kZVVybCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBPQXV0aEFzc29jaWF0aW9uKGVudmlyb25tZW50OiBzdHJpbmcsIGNvZGU6IHN0cmluZywgaWRPYXV0aDogbnVtYmVyLCBwcm92aWRlcjogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIGVudmlyb25tZW50LFxyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgaWRPYXV0aCxcclxuICAgICAgICBwcm92aWRlcixcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLk9BdXRoQXNzb2NpYXRpb25VcmwsIHsgcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwID0+IHtcclxuICAgICAgICAvLyBzdG9yZSB1c2VyIGRldGFpbHMgYW5kIGp3dCB0b2tlbiBpbiBsb2NhbCBzdG9yYWdlIHRvIGtlZXAgdXNlciBsb2dnZWQgaW4gYmV0d2VlbiBwYWdlIHJlZnJlc2hlc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiT0F1dGhBdXRoZW50aWNhdGlvblwiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXNwKTtcclxuICAgICAgICBjb25zdCB1c2VyOiBhbnkgPSByZXNwO1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0xvY2FsU3RvcmFnZSkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmN1cnJlbnRVc2VyVmFyaWFibGVOYW1lLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7IH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5uZXh0KHVzZXIpO1xyXG4gICAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0T0F1dGhBc3NvY2lhdGlvbnMoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9hdXRoYXNzb2NpYXRpb25bXT4odGhpcy5PQXV0aEdldEFzc29jaWF0aW9uc1VybCwgeyBwYXJhbXMgfSkucGlwZShcclxuICAgICAgdGFwKCh2YWx1ZSkgPT4gY29uc29sZS5sb2codmFsdWUpKSxcclxuICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUubWFwKGl0ZW0gPT4gT2JqZWN0LmFzc2lnbihuZXcgT2F1dGhhc3NvY2lhdGlvbigpLCBpdGVtKSkpLFxyXG4gICAgICB0YXAoKHZhbHVlKSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgT0F1dGhEZWxldGVBc3NvY2lhdGlvbihwcm92aWRlcjogc3RyaW5nLCBpZE9BdXRoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxyXG4gICAgICAgIHByb3ZpZGVyLFxyXG4gICAgICAgIGlkT0F1dGhcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLk9BdXRoRGVsZXRlQXNzb2NpYXRpb25VcmwsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GlowwSecurityService {
4
+ constructor() { }
5
+ }
6
+ GlowwSecurityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: GlowwSecurityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ GlowwSecurityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: GlowwSecurityService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: GlowwSecurityService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvd3ctc2VjdXJpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvU2VydmljZXMvZ2xvd3ctc2VjdXJpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLGdCQUFnQixDQUFDOztpSEFGTixvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHbG93d1NlY3VyaXR5U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19