@gloww/gloww 0.9.0-beta.2

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 +440 -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 +97 -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 +136 -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 +44 -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 +3018 -0
  55. package/fesm2015/gloww-gloww.mjs.map +1 -0
  56. package/fesm2020/gloww-gloww.mjs +2980 -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 +90 -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 +17 -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 +39 -0
  308. package/public-api.d.ts +28 -0
@@ -0,0 +1,44 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { HttpParams } from '@angular/common/http';
4
+ export const API_SERVER_URL = new InjectionToken('ApiServerUrl.config');
5
+ export const GLOWW_APPLI = new InjectionToken('GlowwAppli.config');
6
+ // @Injectable({
7
+ // providedIn: 'root'
8
+ // })
9
+ export class GlowwService {
10
+ constructor(http, BasePath, ApiServerUrl, platformLocation) {
11
+ this.platformLocation = platformLocation;
12
+ this.InternalBasePath = '???';
13
+ this.basePathChange = new Subject();
14
+ this.baseUrl = '/';
15
+ this.baseHref = platformLocation.getBaseHrefFromDOM();
16
+ this.InternalBasePath = BasePath;
17
+ if (ApiServerUrl) {
18
+ this.baseUrl = ApiServerUrl;
19
+ if (!this.baseUrl.endsWith('/')) {
20
+ this.baseUrl += '/';
21
+ }
22
+ }
23
+ }
24
+ get basePath() {
25
+ return this.InternalBasePath;
26
+ }
27
+ set basePath(value) {
28
+ this.InternalBasePath = value;
29
+ this.basePathChange.next(value);
30
+ }
31
+ getParams(obj) {
32
+ let params = new HttpParams();
33
+ if (!obj) {
34
+ return params;
35
+ }
36
+ Object.keys(obj).forEach(p => {
37
+ if (obj[p]) {
38
+ params = params.append(p.toString(), obj[p].toString());
39
+ }
40
+ });
41
+ return params;
42
+ }
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvd3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvU2VydmljZXMvZ2xvd3cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTlELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzNFLGdCQUFnQjtBQUNoQix1QkFBdUI7QUFDdkIsS0FBSztBQUNMLE1BQU0sT0FBTyxZQUFZO0lBWXZCLFlBQVksSUFBZ0IsRUFBRSxRQUFnQixFQUFFLFlBQW9CLEVBQVUsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWekcscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLG1CQUFjLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFRakQsWUFBTyxHQUFHLEdBQUcsQ0FBQztRQUVuQixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLFlBQVksRUFBRTtZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1lBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUFFLElBQUksQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDO2FBQUU7U0FBRTtJQUM5RyxDQUFDO0lBWkQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQU9NLFNBQVMsQ0FBQyxHQUFRO1FBQ3ZCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUFFLE9BQU8sTUFBTSxDQUFDO1NBQUU7UUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBBUElfU0VSVkVSX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBcGlTZXJ2ZXJVcmwuY29uZmlnJyk7XHJcbmV4cG9ydCBjb25zdCBHTE9XV19BUFBMSSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdHbG93d0FwcGxpLmNvbmZpZycpO1xyXG4vLyBASW5qZWN0YWJsZSh7XHJcbi8vICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbi8vIH0pXHJcbmV4cG9ydCBjbGFzcyBHbG93d1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBiYXNlSHJlZjogc3RyaW5nO1xyXG4gIHB1YmxpYyBJbnRlcm5hbEJhc2VQYXRoID0gJz8/Pyc7XHJcbiAgYmFzZVBhdGhDaGFuZ2U6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICBwdWJsaWMgZ2V0IGJhc2VQYXRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuSW50ZXJuYWxCYXNlUGF0aDtcclxuICB9XHJcbiAgcHVibGljIHNldCBiYXNlUGF0aCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkludGVybmFsQmFzZVBhdGggPSB2YWx1ZTtcclxuICAgIHRoaXMuYmFzZVBhdGhDaGFuZ2UubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBiYXNlVXJsID0gJy8nO1xyXG4gIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIEJhc2VQYXRoOiBzdHJpbmcsIEFwaVNlcnZlclVybDogc3RyaW5nLCBwcml2YXRlIHBsYXRmb3JtTG9jYXRpb246IFBsYXRmb3JtTG9jYXRpb24pIHtcclxuICAgIHRoaXMuYmFzZUhyZWYgPSBwbGF0Zm9ybUxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpO1xyXG4gICAgdGhpcy5JbnRlcm5hbEJhc2VQYXRoID0gQmFzZVBhdGg7XHJcbiAgICBpZiAoQXBpU2VydmVyVXJsKSB7IHRoaXMuYmFzZVVybCA9IEFwaVNlcnZlclVybDsgaWYgKCF0aGlzLmJhc2VVcmwuZW5kc1dpdGgoJy8nKSkgeyB0aGlzLmJhc2VVcmwgKz0gJy8nOyB9IH1cclxuICB9XHJcbiAgcHVibGljIGdldFBhcmFtcyhvYmo6IGFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICBpZiAoIW9iaikgeyByZXR1cm4gcGFyYW1zOyB9XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2gocCA9PiB7XHJcbiAgICAgIGlmIChvYmpbcF0pIHtcclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHAudG9TdHJpbmcoKSwgb2JqW3BdLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationEnd } from '@angular/router';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ export class NavService {
7
+ constructor(router) {
8
+ this.router = router;
9
+ this.currentUrl = new BehaviorSubject(undefined);
10
+ this.router.events.subscribe((event) => {
11
+ if (event instanceof NavigationEnd) {
12
+ this.currentUrl.next(event.urlAfterRedirects);
13
+ }
14
+ });
15
+ }
16
+ closeNav() {
17
+ this.appDrawer.close();
18
+ }
19
+ openNav() {
20
+ this.appDrawer.open();
21
+ }
22
+ }
23
+ NavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NavService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
24
+ NavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NavService });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: NavService, decorators: [{
26
+ type: Injectable
27
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL1NlcnZpY2VzL25hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBUyxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHdkMsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFGM0IsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBR3pELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQzVDLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDL0M7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7dUdBbEJVLFVBQVU7MkdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5hdlNlcnZpY2Uge1xyXG4gIHB1YmxpYyBhcHBEcmF3ZXI6IGFueTtcclxuICBwdWJsaWMgY3VycmVudFVybCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVybC5uZXh0KGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VOYXYoKSB7XHJcbiAgICB0aGlzLmFwcERyYXdlci5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5OYXYoKSB7XHJcbiAgICB0aGlzLmFwcERyYXdlci5vcGVuKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class VersionCheckService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ // this will be replaced by actual hash post-build.js
8
+ this.currentHash = '{{POST_BUILD_ENTERS_HASH_HERE}}';
9
+ }
10
+ /**
11
+ * Checks in every set frequency the version of frontend application
12
+ * @param url the url to test (default : /version.json)
13
+ * @param frequency - in milliseconds, defaults to 1 minutes
14
+ * @param callback - function to call when the version is different, default askReloadApplication
15
+ */
16
+ initVersionCheck(url = '/version.json', frequency = 1000 * 60, callback = this.askReloadApplication) {
17
+ this.callback = callback;
18
+ this.url = url;
19
+ this.checkVersion();
20
+ setInterval(() => {
21
+ this.checkVersion();
22
+ }, frequency);
23
+ }
24
+ askReloadApplication() {
25
+ console.log('askReload');
26
+ // ENTER YOUR CODE TO DO SOMETHING UPON VERSION CHANGE
27
+ if (confirm('Une nouvelle version est disponible sur le serveur. Il est nécessaire de recharger l\'application. Veuillez confirmer le rechargement de l\'application')) {
28
+ this.reloadApplication();
29
+ }
30
+ }
31
+ reloadApplication() {
32
+ console.log('reload');
33
+ let search = location.search;
34
+ if (search) {
35
+ search += '&';
36
+ }
37
+ search += '___t=' + new Date().getTime();
38
+ console.log(`Search ${search}`);
39
+ location.search = search;
40
+ }
41
+ checkVersion() {
42
+ // timestamp these requests to invalidate caches
43
+ this.http.get(this.url + '?t=' + new Date().getTime())
44
+ // .first()
45
+ .subscribe((response) => {
46
+ console.log('get version ok');
47
+ const hash = response.hash;
48
+ const hashChanged = this.hasHashChanged(this.currentHash, hash);
49
+ console.log(`HASH : Current : ${this.currentHash}, New : ${hash}, Changed ${hashChanged}`);
50
+ // If new version, do something
51
+ if (hashChanged) {
52
+ this.callback();
53
+ }
54
+ // store the new hash so we wouldn't trigger versionChange again
55
+ // only necessary in case you did not force refresh
56
+ this.currentHash = hash;
57
+ }, (err) => {
58
+ console.error(err, 'Could not get version');
59
+ });
60
+ }
61
+ /**
62
+ * Checks if hash has changed.
63
+ * This file has the JS hash, if it is a different one than in the version.json
64
+ * we are dealing with version change
65
+ * @param currentHash currenthash
66
+ * @param newHash newhash
67
+ * @returns the currenthash and newhash are different
68
+ */
69
+ hasHashChanged(currentHash, newHash) {
70
+ return currentHash !== newHash;
71
+ }
72
+ }
73
+ VersionCheckService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VersionCheckService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ VersionCheckService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VersionCheckService, providedIn: 'root' });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VersionCheckService, decorators: [{
76
+ type: Injectable,
77
+ args: [{
78
+ providedIn: 'root'
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jaGVjay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9TZXJ2aWNlcy92ZXJzaW9uLWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUxwQyxxREFBcUQ7UUFDN0MsZ0JBQVcsR0FBRyxpQ0FBaUMsQ0FBQztJQUloQixDQUFDO0lBRXpDOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLENBQUMsR0FBRyxHQUFHLGVBQWUsRUFBRSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQjtRQUN4RyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsc0RBQXNEO1FBQ3RELElBQUksT0FBTyxDQUFDLHlKQUF5SixDQUFDLEVBQUU7WUFDdEssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBQ00saUJBQWlCO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLE1BQU0sRUFBRTtZQUFFLE1BQU0sSUFBSSxHQUFHLENBQUM7U0FBRTtRQUM5QixNQUFNLElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVPLFlBQVk7UUFDbEIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsZUFBZTthQUNkLFNBQVMsQ0FDUixDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLENBQUMsV0FBVyxXQUFXLElBQUksYUFBYSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRTNGLCtCQUErQjtZQUMvQixJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakI7WUFDRCxnRUFBZ0U7WUFDaEUsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPO1FBQ3pDLE9BQU8sV0FBVyxLQUFLLE9BQU8sQ0FBQztJQUNqQyxDQUFDOztnSEExRVUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmVyc2lvbkNoZWNrU2VydmljZSB7XHJcbiAgLy8gdGhpcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IGFjdHVhbCBoYXNoIHBvc3QtYnVpbGQuanNcclxuICBwcml2YXRlIGN1cnJlbnRIYXNoID0gJ3t7UE9TVF9CVUlMRF9FTlRFUlNfSEFTSF9IRVJFfX0nO1xyXG4gIHByaXZhdGUgY2FsbGJhY2s7XHJcbiAgcHVibGljIHVybDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGluIGV2ZXJ5IHNldCBmcmVxdWVuY3kgdGhlIHZlcnNpb24gb2YgZnJvbnRlbmQgYXBwbGljYXRpb25cclxuICAgKiBAcGFyYW0gdXJsIHRoZSB1cmwgdG8gdGVzdCAoZGVmYXVsdCA6IC92ZXJzaW9uLmpzb24pXHJcbiAgICogQHBhcmFtIGZyZXF1ZW5jeSAtIGluIG1pbGxpc2Vjb25kcywgZGVmYXVsdHMgdG8gMSBtaW51dGVzXHJcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB2ZXJzaW9uIGlzIGRpZmZlcmVudCwgZGVmYXVsdCBhc2tSZWxvYWRBcHBsaWNhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0VmVyc2lvbkNoZWNrKHVybCA9ICcvdmVyc2lvbi5qc29uJywgZnJlcXVlbmN5ID0gMTAwMCAqIDYwLCBjYWxsYmFjayA9IHRoaXMuYXNrUmVsb2FkQXBwbGljYXRpb24pIHtcclxuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcclxuICAgIHRoaXMudXJsID0gdXJsO1xyXG4gICAgdGhpcy5jaGVja1ZlcnNpb24oKTtcclxuICAgIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgdGhpcy5jaGVja1ZlcnNpb24oKTtcclxuICAgIH0sIGZyZXF1ZW5jeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNrUmVsb2FkQXBwbGljYXRpb24oKSB7XHJcbiAgICBjb25zb2xlLmxvZygnYXNrUmVsb2FkJyk7XHJcbiAgICAvLyBFTlRFUiBZT1VSIENPREUgVE8gRE8gU09NRVRISU5HIFVQT04gVkVSU0lPTiBDSEFOR0VcclxuICAgIGlmIChjb25maXJtKCdVbmUgbm91dmVsbGUgdmVyc2lvbiBlc3QgZGlzcG9uaWJsZSBzdXIgbGUgc2VydmV1ci4gSWwgZXN0IG7DqWNlc3NhaXJlIGRlIHJlY2hhcmdlciBsXFwnYXBwbGljYXRpb24uIFZldWlsbGV6IGNvbmZpcm1lciBsZSByZWNoYXJnZW1lbnQgZGUgbFxcJ2FwcGxpY2F0aW9uJykpIHtcclxuICAgICAgdGhpcy5yZWxvYWRBcHBsaWNhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgcmVsb2FkQXBwbGljYXRpb24oKSB7XHJcbiAgICBjb25zb2xlLmxvZygncmVsb2FkJyk7XHJcbiAgICBsZXQgc2VhcmNoID0gbG9jYXRpb24uc2VhcmNoO1xyXG4gICAgaWYgKHNlYXJjaCkgeyBzZWFyY2ggKz0gJyYnOyB9XHJcbiAgICBzZWFyY2ggKz0gJ19fX3Q9JyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgY29uc29sZS5sb2coYFNlYXJjaCAke3NlYXJjaH1gKTtcclxuICAgIGxvY2F0aW9uLnNlYXJjaCA9IHNlYXJjaDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tWZXJzaW9uKCkge1xyXG4gICAgLy8gdGltZXN0YW1wIHRoZXNlIHJlcXVlc3RzIHRvIGludmFsaWRhdGUgY2FjaGVzXHJcbiAgICB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsICsgJz90PScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSlcclxuICAgICAgLy8gICAgIC5maXJzdCgpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdnZXQgdmVyc2lvbiBvaycpO1xyXG4gICAgICAgICAgY29uc3QgaGFzaCA9IHJlc3BvbnNlLmhhc2g7XHJcbiAgICAgICAgICBjb25zdCBoYXNoQ2hhbmdlZCA9IHRoaXMuaGFzSGFzaENoYW5nZWQodGhpcy5jdXJyZW50SGFzaCwgaGFzaCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhgSEFTSCA6IEN1cnJlbnQgOiAke3RoaXMuY3VycmVudEhhc2h9LCBOZXcgOiAke2hhc2h9LCBDaGFuZ2VkICR7aGFzaENoYW5nZWR9YCk7XHJcblxyXG4gICAgICAgICAgLy8gSWYgbmV3IHZlcnNpb24sIGRvIHNvbWV0aGluZ1xyXG4gICAgICAgICAgaWYgKGhhc2hDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIHN0b3JlIHRoZSBuZXcgaGFzaCBzbyB3ZSB3b3VsZG4ndCB0cmlnZ2VyIHZlcnNpb25DaGFuZ2UgYWdhaW5cclxuICAgICAgICAgIC8vIG9ubHkgbmVjZXNzYXJ5IGluIGNhc2UgeW91IGRpZCBub3QgZm9yY2UgcmVmcmVzaFxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50SGFzaCA9IGhhc2g7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVyciwgJ0NvdWxkIG5vdCBnZXQgdmVyc2lvbicpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiBoYXNoIGhhcyBjaGFuZ2VkLlxyXG4gICAqIFRoaXMgZmlsZSBoYXMgdGhlIEpTIGhhc2gsIGlmIGl0IGlzIGEgZGlmZmVyZW50IG9uZSB0aGFuIGluIHRoZSB2ZXJzaW9uLmpzb25cclxuICAgKiB3ZSBhcmUgZGVhbGluZyB3aXRoIHZlcnNpb24gY2hhbmdlXHJcbiAgICogQHBhcmFtIGN1cnJlbnRIYXNoIGN1cnJlbnRoYXNoXHJcbiAgICogQHBhcmFtIG5ld0hhc2ggbmV3aGFzaFxyXG4gICAqIEByZXR1cm5zIHRoZSBjdXJyZW50aGFzaCBhbmQgbmV3aGFzaCBhcmUgZGlmZmVyZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNIYXNoQ2hhbmdlZChjdXJyZW50SGFzaCwgbmV3SGFzaCkge1xyXG4gICAgcmV0dXJuIGN1cnJlbnRIYXNoICE9PSBuZXdIYXNoO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class VoiceRecognitionService {
4
+ constructor() {
5
+ this.recognition = new webkitSpeechRecognition();
6
+ this.isStoppedSpeechRecog = false;
7
+ this.text = '';
8
+ }
9
+ init() {
10
+ this.recognition.interimResults = true;
11
+ this.recognition.lang = 'fr-be';
12
+ this.recognition.addEventListener('result', (e) => {
13
+ const transcript = Array.from(e.results)
14
+ .map((result) => result[0])
15
+ .map((result) => result.transcript)
16
+ .join('');
17
+ this.tempWords = transcript;
18
+ console.log(transcript);
19
+ });
20
+ }
21
+ start() {
22
+ this.isStoppedSpeechRecog = false;
23
+ this.recognition.start();
24
+ console.log("Speech recognition started");
25
+ this.recognition.addEventListener('end', (condition) => {
26
+ if (this.isStoppedSpeechRecog) {
27
+ this.recognition.stop();
28
+ console.log("End speech recognition");
29
+ }
30
+ else {
31
+ this.wordConcat();
32
+ this.recognition.start();
33
+ }
34
+ });
35
+ }
36
+ stop() {
37
+ this.isStoppedSpeechRecog = true;
38
+ this.wordConcat();
39
+ this.recognition.stop();
40
+ console.log("End speech recognition");
41
+ }
42
+ wordConcat() {
43
+ this.text = this.text + ' ' + this.tempWords + '.';
44
+ this.tempWords = '';
45
+ }
46
+ }
47
+ VoiceRecognitionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
48
+ VoiceRecognitionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: VoiceRecognitionService, decorators: [{
50
+ type: Injectable,
51
+ args: [{
52
+ providedIn: 'root'
53
+ }]
54
+ }], ctorParameters: function () { return []; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pY2UtcmVjb2duaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvU2VydmljZXMvdm9pY2UtcmVjb2duaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQyxNQUFNLE9BQU8sdUJBQXVCO0lBT2xDO1FBTEEsZ0JBQVcsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDNUMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFNBQUksR0FBRyxFQUFFLENBQUM7SUFHRCxDQUFDO0lBRWpCLElBQUk7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBRWhDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUNyQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDL0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2lCQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBYyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTthQUN0QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O29IQWhEVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuZGVjbGFyZSB2YXIgd2Via2l0U3BlZWNoUmVjb2duaXRpb246IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZvaWNlUmVjb2duaXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgcmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTtcclxuICBpc1N0b3BwZWRTcGVlY2hSZWNvZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0ZXh0ID0gJyc7XHJcbiAgdGVtcFdvcmRzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IHRydWU7XHJcbiAgICB0aGlzLnJlY29nbml0aW9uLmxhbmcgPSAnZnItYmUnO1xyXG5cclxuICAgIHRoaXMucmVjb2duaXRpb24uYWRkRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB0cmFuc2NyaXB0ID0gQXJyYXkuZnJvbShlLnJlc3VsdHMpXHJcbiAgICAgICAgLm1hcCgocmVzdWx0OiBhbnkpID0+IHJlc3VsdFswXSlcclxuICAgICAgICAubWFwKChyZXN1bHQpID0+IHJlc3VsdC50cmFuc2NyaXB0KVxyXG4gICAgICAgIC5qb2luKCcnKTtcclxuICAgICAgdGhpcy50ZW1wV29yZHMgPSB0cmFuc2NyaXB0O1xyXG4gICAgICBjb25zb2xlLmxvZyh0cmFuc2NyaXB0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmlzU3RvcHBlZFNwZWVjaFJlY29nID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XHJcbiAgICBjb25zb2xlLmxvZyhcIlNwZWVjaCByZWNvZ25pdGlvbiBzdGFydGVkXCIpXHJcbiAgICB0aGlzLnJlY29nbml0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIChjb25kaXRpb246IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1N0b3BwZWRTcGVlY2hSZWNvZykge1xyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRW5kIHNwZWVjaCByZWNvZ25pdGlvblwiKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud29yZENvbmNhdCgpXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3RvcCgpIHtcclxuICAgIHRoaXMuaXNTdG9wcGVkU3BlZWNoUmVjb2cgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkQ29uY2F0KClcclxuICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xyXG4gICAgY29uc29sZS5sb2coXCJFbmQgc3BlZWNoIHJlY29nbml0aW9uXCIpXHJcbiAgfVxyXG5cclxuICB3b3JkQ29uY2F0KCkge1xyXG4gICAgdGhpcy50ZXh0ID0gdGhpcy50ZXh0ICsgJyAnICsgdGhpcy50ZW1wV29yZHMgKyAnLic7XHJcbiAgICB0aGlzLnRlbXBXb3JkcyA9ICcnO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Component } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/material/dialog";
6
+ import * as i3 from "../../Services/authentication.service";
7
+ import * as i4 from "@angular/material/form-field";
8
+ import * as i5 from "@angular/material/button";
9
+ import * as i6 from "@angular/flex-layout/flex";
10
+ import * as i7 from "@angular/material/input";
11
+ export class ChangePasswordDlgComponent {
12
+ constructor(formBuilder, dialogRef, authenticationService) {
13
+ this.formBuilder = formBuilder;
14
+ this.dialogRef = dialogRef;
15
+ this.authenticationService = authenticationService;
16
+ this.form = this.formBuilder.group({
17
+ oldpassword: ['', Validators.required],
18
+ newpassword: ['', Validators.required],
19
+ confirmationpassword: ['', Validators.required]
20
+ }, { validator: c => c.get('newpassword').value === c.get('confirmationpassword').value });
21
+ }
22
+ ngOnInit() {
23
+ }
24
+ resetError() {
25
+ this.error = '';
26
+ }
27
+ onSubmit() {
28
+ this.resetError();
29
+ if (this.form.invalid) {
30
+ return;
31
+ }
32
+ const user = this.authenticationService.currentUserValue;
33
+ this.authenticationService.changePassword('', user.username, this.form.value.oldpassword, this.form.value.newpassword).subscribe(r => this.dialogRef.close(true), error => {
34
+ switch (error.error?.Code) {
35
+ case 'COMPLEXITY':
36
+ this.error = 'Le mot de passe souhaitez n\'est pas suffisamment complexe. Veuillez utiliser un mot de passe long (8 caractères minimum) combinant des majuscules, minuscules, chiffres et caractères spéciaux.';
37
+ break;
38
+ case 'BADAUTH':
39
+ this.error = 'Utilisateur inconnu ou mauvais mot de passe. Veuillez vérifier vos identifiants.';
40
+ break;
41
+ case 'WEAKPASSWORD':
42
+ this.error = 'Le mot de passe que vous avez utilisez est trop faible. S\'il s\'agit effectivement de votre mot de passe, veuillez le réinitialiser au moyen de la fonctionnalité "Mot de passe oublié". ';
43
+ break;
44
+ case 'BLACKLISTEDIP':
45
+ this.error = `Trop de tentatives de connexion à partir de cette adresse IP (${error.error?.Params?.IP}). Vous ne pouvez plus vous connecter à partir de ce poste.`;
46
+ break;
47
+ case 'TOOMANYFROMIP':
48
+ this.error = `Trop de tentatives de connexion, à partir de cette adresse IP (${error.error?.Params?.IP}). Vous ne pouvez pas réessayer pendant ${error.error?.Params?.nbrMinutes} minutes.`;
49
+ break;
50
+ case 'TOOMANYFORUSERNAME':
51
+ this.error = `Trop de tentatives de connexion pour cet utilisateur (${error.error?.Params?.Username}). Vous ne pouvez pas réessayer pendant ${error.error?.Params?.nbrMinutes} minutes.`;
52
+ break;
53
+ }
54
+ this.error = error.error.Message;
55
+ });
56
+ }
57
+ cancel() {
58
+ this.dialogRef.close();
59
+ }
60
+ }
61
+ ChangePasswordDlgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ChangePasswordDlgComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MatDialogRef }, { token: i3.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
62
+ ChangePasswordDlgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ChangePasswordDlgComponent, selector: "gloww-change-password-dlg", ngImport: i0, template: "<h2 mat-dialog-title>Change Password</h2>\r\n<form class=\"example-form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <mat-dialog-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <div style=\"color:red; font-weight:bold;\" fxFlex=\"100%\">{{error}}</div>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"Old Password\" formControlName=\"oldpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"New Password\" formControlName=\"newpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"Confirmation\" formControlName=\"confirmationpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" type=\"submit\" [disabled]=\"form.invalid\">Change\r\n Password</button>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" (click)=\"cancel()\">Cancel</button>\r\n </mat-dialog-actions>\r\n</form>", styles: [""], components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ChangePasswordDlgComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'gloww-change-password-dlg', template: "<h2 mat-dialog-title>Change Password</h2>\r\n<form class=\"example-form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <mat-dialog-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <div style=\"color:red; font-weight:bold;\" fxFlex=\"100%\">{{error}}</div>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"Old Password\" formControlName=\"oldpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"New Password\" formControlName=\"newpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"100%\">\r\n <input matInput placeholder=\"Confirmation\" formControlName=\"confirmationpassword\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" type=\"submit\" [disabled]=\"form.invalid\">Change\r\n Password</button>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" (click)=\"cancel()\">Cancel</button>\r\n </mat-dialog-actions>\r\n</form>", styles: [""] }]
66
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MatDialogRef }, { type: i3.AuthenticationService }]; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLWRsZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL2dsb3d3LXNlY3VyaXR5L0NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkLWRsZy9jaGFuZ2UtcGFzc3dvcmQtZGxnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQtZGxnL2NoYW5nZS1wYXNzd29yZC1kbGcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFRcEUsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUFvQixXQUF3QixFQUFVLFNBQW1ELEVBQVUscUJBQTRDO1FBQTNJLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFBVSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzdKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNoRCxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO1FBQ3pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDMUIsS0FBSyxDQUFDLEVBQUU7WUFDTixRQUFRLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO2dCQUN6QixLQUFLLFlBQVk7b0JBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxrTUFBa00sQ0FBQztvQkFDaE4sTUFBTTtnQkFDUixLQUFLLFNBQVM7b0JBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxrRkFBa0YsQ0FBQztvQkFDaEcsTUFBTTtnQkFDUixLQUFLLGNBQWM7b0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsNExBQTRMLENBQUM7b0JBQzFNLE1BQU07Z0JBQ1IsS0FBSyxlQUFlO29CQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLGlFQUFpRSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLDZEQUE2RCxDQUFDO29CQUNuSyxNQUFNO2dCQUNSLEtBQUssZUFBZTtvQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxrRUFBa0UsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSwyQ0FBMkMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxXQUFXLENBQUE7b0JBQzNMLE1BQU07Z0JBQ1IsS0FBSyxvQkFBb0I7b0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcseURBQXlELEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsMkNBQTJDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsV0FBVyxDQUFBO29CQUN4TCxNQUFNO2FBRVQ7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ25DLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O3VIQXZEVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixpRUNWdkMsKzFDQXFCTzsyRkRYTSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dsb3d3LWNoYW5nZS1wYXNzd29yZC1kbGcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQtZGxnLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGFuZ2UtcGFzc3dvcmQtZGxnLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmREbGdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVycm9yOiBzdHJpbmc7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENoYW5nZVBhc3N3b3JkRGxnQ29tcG9uZW50PiwgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIG9sZHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBuZXdwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY29uZmlybWF0aW9ucGFzc3dvcmQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH0sIHsgdmFsaWRhdG9yOiBjID0+IGMuZ2V0KCduZXdwYXNzd29yZCcpLnZhbHVlID09PSBjLmdldCgnY29uZmlybWF0aW9ucGFzc3dvcmQnKS52YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcmVzZXRFcnJvcigpIHtcclxuICAgIHRoaXMuZXJyb3IgPSAnJztcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5yZXNldEVycm9yKCk7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWU7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jaGFuZ2VQYXNzd29yZCgnJywgdXNlci51c2VybmFtZSwgdGhpcy5mb3JtLnZhbHVlLm9sZHBhc3N3b3JkLCB0aGlzLmZvcm0udmFsdWUubmV3cGFzc3dvcmQpLnN1YnNjcmliZShyID0+XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpLFxyXG4gICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChlcnJvci5lcnJvcj8uQ29kZSkge1xyXG4gICAgICAgICAgY2FzZSAnQ09NUExFWElUWSc6XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSAnTGUgbW90IGRlIHBhc3NlIHNvdWhhaXRleiBuXFwnZXN0IHBhcyBzdWZmaXNhbW1lbnQgY29tcGxleGUuIFZldWlsbGV6IHV0aWxpc2VyIHVuIG1vdCBkZSBwYXNzZSBsb25nICg4IGNhcmFjdMOocmVzIG1pbmltdW0pIGNvbWJpbmFudCBkZXMgbWFqdXNjdWxlcywgbWludXNjdWxlcywgY2hpZmZyZXMgZXQgY2FyYWN0w6hyZXMgc3DDqWNpYXV4Lic7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnQkFEQVVUSCc6XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSAnVXRpbGlzYXRldXIgaW5jb25udSBvdSBtYXV2YWlzIG1vdCBkZSBwYXNzZS4gVmV1aWxsZXogdsOpcmlmaWVyIHZvcyBpZGVudGlmaWFudHMuJztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdXRUFLUEFTU1dPUkQnOlxyXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gJ0xlIG1vdCBkZSBwYXNzZSBxdWUgdm91cyBhdmV6IHV0aWxpc2V6IGVzdCB0cm9wIGZhaWJsZS4gU1xcJ2lsIHNcXCdhZ2l0IGVmZmVjdGl2ZW1lbnQgZGUgdm90cmUgbW90IGRlIHBhc3NlLCB2ZXVpbGxleiBsZSByw6lpbml0aWFsaXNlciBhdSBtb3llbiBkZSBsYSBmb25jdGlvbm5hbGl0w6kgXCJNb3QgZGUgcGFzc2Ugb3VibGnDqVwiLiAnO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ0JMQUNLTElTVEVESVAnOlxyXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gYFRyb3AgZGUgdGVudGF0aXZlcyBkZSBjb25uZXhpb24gw6AgcGFydGlyIGRlIGNldHRlIGFkcmVzc2UgSVAgKCR7ZXJyb3IuZXJyb3I/LlBhcmFtcz8uSVB9KS4gVm91cyBuZSBwb3V2ZXogcGx1cyB2b3VzIGNvbm5lY3RlciDDoCBwYXJ0aXIgZGUgY2UgcG9zdGUuYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdUT09NQU5ZRlJPTUlQJzpcclxuICAgICAgICAgICAgdGhpcy5lcnJvciA9IGBUcm9wIGRlIHRlbnRhdGl2ZXMgZGUgY29ubmV4aW9uLCDDoCBwYXJ0aXIgZGUgY2V0dGUgYWRyZXNzZSBJUCAoJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5JUH0pLiBWb3VzIG5lIHBvdXZleiBwYXMgcsOpZXNzYXllciBwZW5kYW50ICR7ZXJyb3IuZXJyb3I/LlBhcmFtcz8ubmJyTWludXRlc30gbWludXRlcy5gXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnVE9PTUFOWUZPUlVTRVJOQU1FJzpcclxuICAgICAgICAgICAgdGhpcy5lcnJvciA9IGBUcm9wIGRlIHRlbnRhdGl2ZXMgZGUgY29ubmV4aW9uIHBvdXIgY2V0IHV0aWxpc2F0ZXVyICgke2Vycm9yLmVycm9yPy5QYXJhbXM/LlVzZXJuYW1lfSkuIFZvdXMgbmUgcG91dmV6IHBhcyByw6llc3NheWVyIHBlbmRhbnQgJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5uYnJNaW51dGVzfSBtaW51dGVzLmBcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3IuZXJyb3IuTWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5DaGFuZ2UgUGFzc3dvcmQ8L2gyPlxyXG48Zm9ybSBjbGFzcz1cImV4YW1wbGUtZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6cmVkOyBmb250LXdlaWdodDpib2xkO1wiIGZ4RmxleD1cIjEwMCVcIj57e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIk9sZCBQYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cIm9sZHBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCIgKGNoYW5nZSk9XCJyZXNldEVycm9yKClcIj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIk5ldyBQYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cIm5ld3Bhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCIgKGNoYW5nZSk9XCJyZXNldEVycm9yKClcIj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkNvbmZpcm1hdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImNvbmZpcm1hdGlvbnBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCIgKGNoYW5nZSk9XCJyZXNldEVycm9yKClcIj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj5DaGFuZ2VcclxuICAgICAgUGFzc3dvcmQ8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9mb3JtPiJdfQ==