@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,119 @@
1
+ import { HttpResponse } from '@angular/common/http';
2
+ import { Component, Inject } from '@angular/core';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import * as FileSaver from 'file-saver';
5
+ import * as JSZip from 'jszip';
6
+ import { filter, map } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/dialog";
9
+ import * as i2 from "@angular/common/http";
10
+ import * as i3 from "@angular/material/progress-bar";
11
+ import * as i4 from "@angular/common";
12
+ export class DownloadProgressComponent {
13
+ constructor(dialogRef, arg, httpClient) {
14
+ this.dialogRef = dialogRef;
15
+ this.httpClient = httpClient;
16
+ this.done = -1;
17
+ this.name = arg.name;
18
+ this.files = arg.files;
19
+ this.current = [];
20
+ this.message = "Donwload des fichiers";
21
+ this.percent = -1;
22
+ }
23
+ ngOnInit() {
24
+ if (this.name) {
25
+ this.downloadZip();
26
+ }
27
+ else {
28
+ this.download();
29
+ }
30
+ }
31
+ async getFile(url, callback) {
32
+ const httpOptions = {
33
+ observe: "events",
34
+ reportProgress: true,
35
+ responseType: "blob" //as 'json'
36
+ };
37
+ const res = await this.httpClient.get(url, httpOptions).pipe(map((event) => {
38
+ console.log(event);
39
+ /*if (event.type === HttpEventType.DownloadProgress) {
40
+ console.log(`download progress ${(event as HttpEventType.DownloadProgress).valueOf}`);
41
+ }
42
+ if (event.type === HttpEventType.Response) {
43
+ console.log("donwload completed");
44
+ }*/
45
+ if (event.type === 3) {
46
+ callback(url, event.loaded, event.total);
47
+ }
48
+ if (event instanceof HttpResponse) {
49
+ callback(url, -1, -1);
50
+ }
51
+ return event;
52
+ }), filter((event) => event instanceof HttpResponse)).toPromise().catch((err) => {
53
+ const error = err.error;
54
+ return error;
55
+ });
56
+ return res.body;
57
+ }
58
+ callback(url, loaded, total) {
59
+ const index = this.current.findIndex(c => c.url === url);
60
+ if (total === -1) {
61
+ this.done += 1;
62
+ this.current.splice(index, 1);
63
+ }
64
+ else {
65
+ if (index === -1) {
66
+ this.current.push({ url, loaded, total });
67
+ }
68
+ else {
69
+ this.current[index].loaded = loaded;
70
+ }
71
+ }
72
+ }
73
+ callback_zip(metadata) {
74
+ this.percent = metadata.percent;
75
+ }
76
+ async downloadZip() {
77
+ const zip = new JSZip();
78
+ // tslint:disable-next-line:prefer-for-of
79
+ this.done = 0;
80
+ await Promise.all(this.files.map(async (file) => {
81
+ let fileData;
82
+ fileData = await this.getFile(file.url, this.callback.bind(this));
83
+ const b = new Blob([fileData], { type: '' + fileData.type + '' });
84
+ zip.file(file.name, b);
85
+ }));
86
+ this.message = "Génération du fichier Zip";
87
+ this.done = -1;
88
+ await zip.generateAsync({ type: 'blob' }, this.callback_zip.bind(this)).then((content) => {
89
+ if (content) {
90
+ FileSaver.saveAs(content, this.name);
91
+ }
92
+ });
93
+ this.dialogRef.close();
94
+ }
95
+ async download() {
96
+ const zip = new JSZip();
97
+ // tslint:disable-next-line:prefer-for-of
98
+ this.done = 0;
99
+ await Promise.all(this.files.map(async (file) => {
100
+ let fileData;
101
+ fileData = await this.getFile(file.url, this.callback.bind(this));
102
+ const b = new Blob([fileData], { type: '' + fileData.type + '' });
103
+ FileSaver.saveAs(b, file.name);
104
+ }));
105
+ this.message = "Génération du fichier Zip";
106
+ this.done = -1;
107
+ this.dialogRef.close();
108
+ }
109
+ }
110
+ DownloadProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DownloadProgressComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
111
+ DownloadProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DownloadProgressComponent, selector: "gloww-download-progress", ngImport: i0, template: "<h2 mat-dialog-title>Progression Donwload</h2>\r\n\r\n<mat-dialog-content>\r\n <H3>{{message}}</H3>\r\n <mat-progress-bar [value]=\"percent\" *ngIf=\"percent>0\"></mat-progress-bar>\r\n <div *ngIf=\"done>=0\">\r\n <mat-progress-bar [value]=\"done*100/files.length\"></mat-progress-bar> {{done}}/{{files.length}}\r\n <br />\r\n <ul>\r\n <li *ngFor=\" let file of current; index as i\">\r\n <span id=\"file-label\">{{file.url}}</span>\r\n <mat-progress-bar [value]=\"file.loaded*100/file.total\"></mat-progress-bar>\r\n </li>\r\n </ul>\r\n </div>\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n <!--<button class=\"mat-raised-button\" (click)=\"cancel()\">Close</button>\r\n\t<button class=\"mat-raised-button mat-primary\" (click)=\"save()\">Save</button>-->\r\n</mat-dialog-actions>", styles: [""], components: [{ type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DownloadProgressComponent, decorators: [{
113
+ type: Component,
114
+ args: [{ selector: 'gloww-download-progress', template: "<h2 mat-dialog-title>Progression Donwload</h2>\r\n\r\n<mat-dialog-content>\r\n <H3>{{message}}</H3>\r\n <mat-progress-bar [value]=\"percent\" *ngIf=\"percent>0\"></mat-progress-bar>\r\n <div *ngIf=\"done>=0\">\r\n <mat-progress-bar [value]=\"done*100/files.length\"></mat-progress-bar> {{done}}/{{files.length}}\r\n <br />\r\n <ul>\r\n <li *ngFor=\" let file of current; index as i\">\r\n <span id=\"file-label\">{{file.url}}</span>\r\n <mat-progress-bar [value]=\"file.loaded*100/file.total\"></mat-progress-bar>\r\n </li>\r\n </ul>\r\n </div>\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n <!--<button class=\"mat-raised-button\" (click)=\"cancel()\">Close</button>\r\n\t<button class=\"mat-raised-button mat-primary\" (click)=\"save()\">Save</button>-->\r\n</mat-dialog-actions>", styles: [""] }]
115
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
116
+ type: Inject,
117
+ args: [MAT_DIALOG_DATA]
118
+ }] }, { type: i2.HttpClient }]; } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtcHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9Db21wb25lbnRzL2Rvd25sb2FkLXByb2dyZXNzL2Rvd25sb2FkLXByb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9kb3dubG9hZC1wcm9ncmVzcy9kb3dubG9hZC1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx5QkFBeUI7SUFRcEMsWUFBb0IsU0FBa0QsRUFBMkIsR0FBUSxFQUFTLFVBQXNCO1FBQXBILGNBQVMsR0FBVCxTQUFTLENBQXlDO1FBQTRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FB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Q2xCLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQyxHQUFRLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsMkJBQTJCLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFekIsQ0FBQzs7c0hBOUdVLHlCQUF5Qiw4Q0FRNEMsZUFBZTswR0FScEYseUJBQXlCLCtEQ1p0Qyw0M0JBcUJxQjsyRkRUUix5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCOzswQkFZc0MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlLCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0ICogYXMgSlNaaXAgZnJvbSAnanN6aXAnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ2xvd3ctZG93bmxvYWQtcHJvZ3Jlc3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZC1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG93bmxvYWQtcHJvZ3Jlc3MuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWRQcm9ncmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGRvbmU6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZmlsZXM6IHsgbmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZyB9W107XHJcbiAgY3VycmVudDogeyB1cmw6IHN0cmluZywgbG9hZGVkOiBudW1iZXIsIHRvdGFsOiBudW1iZXIgfVtdO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBwZXJjZW50OiBudW1iZXI7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEb3dubG9hZFByb2dyZXNzQ29tcG9uZW50PiwgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGFyZzogYW55LCBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCkge1xyXG4gICAgdGhpcy5kb25lID0gLTE7XHJcbiAgICB0aGlzLm5hbWUgPSBhcmcubmFtZTtcclxuICAgIHRoaXMuZmlsZXMgPSBhcmcuZmlsZXM7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBbXVxyXG4gICAgdGhpcy5tZXNzYWdlID0gXCJEb253bG9hZCBkZXMgZmljaGllcnNcIjtcclxuICAgIHRoaXMucGVyY2VudCA9IC0xO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uYW1lKSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRaaXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWQoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRGaWxlKHVybDogc3RyaW5nLCBjYWxsYmFjazogKHVybDogc3RyaW5nLCBsb2FkZWQ6IG51bWJlciwgdG90YWw6IG51bWJlcikgPT4gdm9pZCkge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIG9ic2VydmU6IFwiZXZlbnRzXCIsXHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYmxvYlwiIC8vYXMgJ2pzb24nXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIGh0dHBPcHRpb25zIGFzIGFueSkucGlwZShcclxuICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gICAgICAgIC8qaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coYGRvd25sb2FkIHByb2dyZXNzICR7KGV2ZW50IGFzIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcykudmFsdWVPZn1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZG9ud2xvYWQgY29tcGxldGVkXCIpO1xyXG4gICAgICAgIH0qL1xyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAzKSB7XHJcbiAgICAgICAgICBjYWxsYmFjayh1cmwsIGV2ZW50LmxvYWRlZCwgZXZlbnQudG90YWwpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgY2FsbGJhY2sodXJsLCAtMSwgLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaWx0ZXIoKGV2ZW50OiBhbnkpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSkudG9Qcm9taXNlKCkuY2F0Y2goKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IGVyci5lcnJvcjtcclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcy5ib2R5O1xyXG4gIH1cclxuXHJcbiAgY2FsbGJhY2sodXJsOiBzdHJpbmcsIGxvYWRlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudC5maW5kSW5kZXgoYyA9PiBjLnVybCA9PT0gdXJsKTtcclxuICAgIGlmICh0b3RhbCA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5kb25lICs9IDE7XHJcbiAgICAgIHRoaXMuY3VycmVudC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudC5wdXNoKHsgdXJsLCBsb2FkZWQsIHRvdGFsIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFtpbmRleF0ubG9hZGVkID0gbG9hZGVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsbGJhY2tfemlwKG1ldGFkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMucGVyY2VudCA9IG1ldGFkYXRhLnBlcmNlbnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkb3dubG9hZFppcCgpIHtcclxuICAgIGNvbnN0IHppcCA9IG5ldyBKU1ppcCgpO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgIHRoaXMuZG9uZSA9IDA7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmZpbGVzIS5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgbGV0IGZpbGVEYXRhOiBhbnk7XHJcbiAgICAgIGZpbGVEYXRhID0gYXdhaXQgdGhpcy5nZXRGaWxlKGZpbGUudXJsLCB0aGlzLmNhbGxiYWNrLmJpbmQodGhpcykpO1xyXG4gICAgICBjb25zdCBiOiBhbnkgPSBuZXcgQmxvYihbZmlsZURhdGFdLCB7IHR5cGU6ICcnICsgZmlsZURhdGEudHlwZSArICcnIH0pO1xyXG4gICAgICB6aXAuZmlsZShmaWxlLm5hbWUsIGIpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5tZXNzYWdlID0gXCJHw6luw6lyYXRpb24gZHUgZmljaGllciBaaXBcIjtcclxuICAgIHRoaXMuZG9uZSA9IC0xO1xyXG5cclxuICAgIGF3YWl0IHppcC5nZW5lcmF0ZUFzeW5jKHsgdHlwZTogJ2Jsb2InIH0sIHRoaXMuY2FsbGJhY2tfemlwLmJpbmQodGhpcykpLnRoZW4oKGNvbnRlbnQpID0+IHtcclxuICAgICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGNvbnRlbnQsIHRoaXMubmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRvd25sb2FkKCkge1xyXG4gICAgY29uc3QgemlwID0gbmV3IEpTWmlwKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxyXG4gICAgdGhpcy5kb25lID0gMDtcclxuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZmlsZXMhLm1hcChhc3luYyAoZmlsZSkgPT4ge1xyXG4gICAgICBsZXQgZmlsZURhdGE6IGFueTtcclxuICAgICAgZmlsZURhdGEgPSBhd2FpdCB0aGlzLmdldEZpbGUoZmlsZS51cmwsIHRoaXMuY2FsbGJhY2suYmluZCh0aGlzKSk7XHJcbiAgICAgIGNvbnN0IGI6IGFueSA9IG5ldyBCbG9iKFtmaWxlRGF0YV0sIHsgdHlwZTogJycgKyBmaWxlRGF0YS50eXBlICsgJycgfSk7XHJcbiAgICAgIEZpbGVTYXZlci5zYXZlQXMoYiwgZmlsZS5uYW1lKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMubWVzc2FnZSA9IFwiR8OpbsOpcmF0aW9uIGR1IGZpY2hpZXIgWmlwXCI7XHJcbiAgICB0aGlzLmRvbmUgPSAtMTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5Qcm9ncmVzc2lvbiBEb253bG9hZDwvaDI+XHJcblxyXG48bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPEgzPnt7bWVzc2FnZX19PC9IMz5cclxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJwZXJjZW50XCIgKm5nSWY9XCJwZXJjZW50PjBcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZG9uZT49MFwiPlxyXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJkb25lKjEwMC9maWxlcy5sZW5ndGhcIj48L21hdC1wcm9ncmVzcy1iYXI+IHt7ZG9uZX19L3t7ZmlsZXMubGVuZ3RofX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCIgbGV0IGZpbGUgb2YgY3VycmVudDsgaW5kZXggYXMgaVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJmaWxlLWxhYmVsXCI+e3tmaWxlLnVybH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cImZpbGUubG9hZGVkKjEwMC9maWxlLnRvdGFsXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcblxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgIDwhLS08YnV0dG9uIGNsYXNzPVwibWF0LXJhaXNlZC1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DbG9zZTwvYnV0dG9uPlxyXG5cdDxidXR0b24gY2xhc3M9XCJtYXQtcmFpc2VkLWJ1dHRvbiBtYXQtcHJpbWFyeVwiIChjbGljayk9XCJzYXZlKClcIj5TYXZlPC9idXR0b24+LS0+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/material/dialog";
7
+ import * as i3 from "@angular/material/form-field";
8
+ import * as i4 from "@ctrl/ngx-codemirror";
9
+ import * as i5 from "@angular/material/button";
10
+ import * as i6 from "@angular/material/input";
11
+ export class FileEditComponent {
12
+ constructor(formBuilder, dialogRef, definition) {
13
+ this.formBuilder = formBuilder;
14
+ this.dialogRef = dialogRef;
15
+ this.modes = {
16
+ ".txt": "null",
17
+ ".cs": "clike",
18
+ ".js": "javascript",
19
+ ".json": { name: "javascript", json: true },
20
+ ".css": "css",
21
+ ".scss": "scss",
22
+ ".htm": "html",
23
+ ".html": "html",
24
+ ".xml": "xml"
25
+ };
26
+ this.form = this.formBuilder.group({
27
+ path: [null, Validators.required],
28
+ content: [null]
29
+ });
30
+ if (definition) {
31
+ this.form.patchValue(definition);
32
+ try {
33
+ this.ext = definition.path.match(/\.(txt|js|json|ts|cs|css|scss|xml|html|htm)$/ig)[0];
34
+ }
35
+ catch {
36
+ this.ext = null;
37
+ }
38
+ }
39
+ }
40
+ getMode() {
41
+ try {
42
+ if (this.ext && this.modes[this.ext]) {
43
+ return this.modes[this.ext];
44
+ }
45
+ else {
46
+ return "null";
47
+ }
48
+ }
49
+ catch {
50
+ return "null";
51
+ }
52
+ }
53
+ ngOnInit() {
54
+ }
55
+ cancel() {
56
+ this.dialogRef.close();
57
+ }
58
+ save() {
59
+ this.dialogRef.close(this.form.value);
60
+ }
61
+ }
62
+ FileEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FileEditComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
63
+ FileEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: FileEditComponent, selector: "gloww-file-edit", ngImport: i0, template: "<h2 mat-dialog-title>Ajout/Edition d'un fichier</h2>\r\n\r\n<mat-dialog-content [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput [readonly]=\"true\" placeholder=\"Path\" formControlName=\"path\" style=\"width: calc(100% - 32px);\">\r\n </mat-form-field>\r\n <br />\r\n <ngx-codemirror formControlName=\"content\" [options]=\"{\r\n lineNumbers: true,\r\n theme: 'eclipse',\r\n\t\t\t\tindentWithTabs:true,\r\n\t\t\t\tindentUnit: 4,\r\n mode: getMode()\r\n }\"></ngx-codemirror>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancel()\">Close</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"save()\">Save</button>\r\n</mat-dialog-actions>\r\n", styles: [".cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat}\n"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { 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: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.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]" }] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FileEditComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'gloww-file-edit', template: "<h2 mat-dialog-title>Ajout/Edition d'un fichier</h2>\r\n\r\n<mat-dialog-content [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput [readonly]=\"true\" placeholder=\"Path\" formControlName=\"path\" style=\"width: calc(100% - 32px);\">\r\n </mat-form-field>\r\n <br />\r\n <ngx-codemirror formControlName=\"content\" [options]=\"{\r\n lineNumbers: true,\r\n theme: 'eclipse',\r\n\t\t\t\tindentWithTabs:true,\r\n\t\t\t\tindentUnit: 4,\r\n mode: getMode()\r\n }\"></ngx-codemirror>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancel()\">Close</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"save()\">Save</button>\r\n</mat-dialog-actions>\r\n", styles: [".cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat}\n"] }]
67
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: [MAT_DIALOG_DATA]
70
+ }] }]; } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9mb2xkZXJzL2ZpbGUtZWRpdC9maWxlLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9Db21wb25lbnRzL2ZvbGRlcnMvZmlsZS1lZGl0L2ZpbGUtZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFtQjVCLFlBQW9CLFdBQXdCLEVBQVUsU0FBMEMsRUFBMkIsVUFBVTtRQUFqSCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBYmhHLFVBQUssR0FBRztZQUNOLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLE9BQU87WUFDZCxLQUFLLEVBQUUsWUFBWTtZQUNuQixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDM0MsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsTUFBTTtZQUNmLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLE1BQU07WUFDZixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUM7UUFJQSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO1lBQUMsTUFBTTtnQkFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQzthQUNqQjtTQUlGO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJO1lBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUFDLE1BQU07WUFDTixPQUFPLE1BQU0sQ0FBQztTQUNmO0lBRUgsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OzhHQTFEVSxpQkFBaUIseUVBbUI4RSxlQUFlO2tHQW5COUcsaUJBQWlCLHVEQ1Q5QixteUJBb0JBOzJGRFhhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQXVCd0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dsb3d3LWZpbGUtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1lZGl0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIGV4dDogc3RyaW5nO1xyXG5cclxuICBtb2RlcyA9IHtcclxuICAgIFwiLnR4dFwiOiBcIm51bGxcIixcclxuICAgIFwiLmNzXCI6IFwiY2xpa2VcIixcclxuICAgIFwiLmpzXCI6IFwiamF2YXNjcmlwdFwiLFxyXG4gICAgXCIuanNvblwiOiB7IG5hbWU6IFwiamF2YXNjcmlwdFwiLCBqc29uOiB0cnVlIH0sXHJcbiAgICBcIi5jc3NcIjogXCJjc3NcIixcclxuICAgIFwiLnNjc3NcIjogXCJzY3NzXCIsXHJcbiAgICBcIi5odG1cIjogXCJodG1sXCIsXHJcbiAgICBcIi5odG1sXCI6IFwiaHRtbFwiLFxyXG4gICAgXCIueG1sXCI6IFwieG1sXCJcclxuICB9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RmlsZUVkaXRDb21wb25lbnQ+LCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGVmaW5pdGlvbikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHBhdGg6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY29udGVudDogW251bGxdXHJcbiAgICB9KTtcclxuICAgIGlmIChkZWZpbml0aW9uKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGRlZmluaXRpb24pO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuZXh0ID0gZGVmaW5pdGlvbi5wYXRoLm1hdGNoKC9cXC4odHh0fGpzfGpzb258dHN8Y3N8Y3NzfHNjc3N8eG1sfGh0bWx8aHRtKSQvaWcpWzBdO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICB0aGlzLmV4dCA9IG51bGw7XHJcbiAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE1vZGUoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5leHQgJiYgdGhpcy5tb2Rlc1t0aGlzLmV4dF0pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2Rlc1t0aGlzLmV4dF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwibnVsbFwiO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuIFwibnVsbFwiO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5Bam91dC9FZGl0aW9uIGQndW4gZmljaGllcjwvaDI+XHJcblxyXG48bWF0LWRpYWxvZy1jb250ZW50IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcmVhZG9ubHldPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiUGF0aFwiIGZvcm1Db250cm9sTmFtZT1cInBhdGhcIiBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTtcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8YnIgLz5cclxuICAgIDxuZ3gtY29kZW1pcnJvciBmb3JtQ29udHJvbE5hbWU9XCJjb250ZW50XCIgW29wdGlvbnNdPVwie1xyXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0aGVtZTogJ2VjbGlwc2UnLFxyXG5cdFx0XHRcdGluZGVudFdpdGhUYWJzOnRydWUsXHJcblx0XHRcdFx0aW5kZW50VW5pdDogNCxcclxuICAgICAgICAgICAgICAgIG1vZGU6IGdldE1vZGUoKVxyXG4gICAgICAgICAgICAgIH1cIj48L25neC1jb2RlbWlycm9yPlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPkNsb3NlPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlKClcIj5TYXZlPC9idXR0b24+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4iXX0=
@@ -0,0 +1,180 @@
1
+ import { HttpEventType } from '@angular/common/http';
2
+ import { Component } from '@angular/core';
3
+ import { MatDialogConfig } from '@angular/material/dialog';
4
+ import { NavigationEnd } from '@angular/router';
5
+ import { of } from 'rxjs';
6
+ import { map, catchError } from 'rxjs/operators';
7
+ import { PromptModel, PromptComponent } from '../../prompt/prompt.component';
8
+ import { UploadDocComponent } from '../../upload-doc/upload-doc.component';
9
+ import { FileEditComponent } from '../file-edit/file-edit.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../Services/folder.service";
12
+ import * as i2 from "@angular/router";
13
+ import * as i3 from "@angular/material/dialog";
14
+ import * as i4 from "@angular/material/progress-spinner";
15
+ import * as i5 from "@angular/common";
16
+ export class FoldersComponent {
17
+ constructor(folderService, router, route, dialog) {
18
+ //flowService.getDirectoryContent(route.snapshot.params.id).subscribe(r => this.directoryContent = r);
19
+ this.folderService = folderService;
20
+ this.router = router;
21
+ this.route = route;
22
+ this.dialog = dialog;
23
+ this.router.events.subscribe((event) => {
24
+ if (event instanceof NavigationEnd) {
25
+ const urlParts = event.url.split('/');
26
+ this.currentDir = urlParts.slice(2).join("/");
27
+ this.directoryContent = null;
28
+ folderService.getDirectoryContent(this.currentDir).subscribe(r => this.directoryContent = r);
29
+ }
30
+ });
31
+ }
32
+ ngOnInit() {
33
+ }
34
+ addFolder() {
35
+ const dialogConfig = new MatDialogConfig();
36
+ dialogConfig.disableClose = true;
37
+ dialogConfig.autoFocus = true;
38
+ dialogConfig.closeOnNavigation = false;
39
+ dialogConfig.data = new PromptModel("New Folder", "Please give the name of the folder to create", "", true);
40
+ this.dialog.open(PromptComponent, dialogConfig).afterClosed().subscribe(folder => {
41
+ if (folder) {
42
+ this.folderService.postDirectoryContent(this.currentDir + '/' + folder).subscribe(c => {
43
+ this.router.navigate(this.getRouterLink(folder)),
44
+ error => alert(error);
45
+ });
46
+ }
47
+ });
48
+ }
49
+ addFile() {
50
+ const dialogConfig = new MatDialogConfig();
51
+ dialogConfig.disableClose = true;
52
+ dialogConfig.autoFocus = true;
53
+ dialogConfig.closeOnNavigation = false;
54
+ dialogConfig.data = new PromptModel("New File", "Please give the name of the text file to create", "", true);
55
+ this.dialog.open(PromptComponent, dialogConfig).afterClosed().subscribe(fileName => {
56
+ if (fileName) {
57
+ this.Edit(fileName);
58
+ this.directoryContent = null;
59
+ this.folderService.getDirectoryContent(this.currentDir).subscribe(r => this.directoryContent = r);
60
+ }
61
+ });
62
+ }
63
+ addFileUpload() {
64
+ const dialogConfig = new MatDialogConfig();
65
+ dialogConfig.disableClose = true;
66
+ dialogConfig.autoFocus = true;
67
+ dialogConfig.closeOnNavigation = false;
68
+ dialogConfig.data = { acceptMime: 'image/*', multiple: true, allowAltFileName: true };
69
+ this.dialog.open(UploadDocComponent, dialogConfig).afterClosed().subscribe(files => {
70
+ if (files) {
71
+ files.forEach(file => {
72
+ const formData = new FormData();
73
+ formData.append('file', file.data);
74
+ this.UploadFile(this.currentDir + "/" + file.fileName, formData);
75
+ this.directoryContent = null;
76
+ this.folderService.getDirectoryContent(this.currentDir).subscribe(r => this.directoryContent = r);
77
+ });
78
+ }
79
+ });
80
+ }
81
+ getRouterLink(directory) {
82
+ if (!this.currentDir) {
83
+ return ['/folders', directory];
84
+ }
85
+ if (!directory) {
86
+ let res = ['/folders', ...this.currentDir.split("/")];
87
+ res.pop();
88
+ return res;
89
+ }
90
+ return ['/folders', ...this.currentDir.split("/"), directory];
91
+ }
92
+ getHref(f) {
93
+ if (!this.currentDir) {
94
+ return ['/FlowMgmt', 'folders', f].join('/');
95
+ }
96
+ return ['/FlowMgmt', 'folders', ...this.currentDir.split("/"), f].join('/');
97
+ }
98
+ dataURItoBlob(content) {
99
+ const byteString = content;
100
+ const arrayBuffer = new ArrayBuffer(byteString.length);
101
+ const int8Array = new Uint8Array(arrayBuffer);
102
+ for (let i = 0; i < byteString.length; i++) {
103
+ int8Array[i] = byteString.charCodeAt(i);
104
+ }
105
+ const blob = new Blob([int8Array], { type: 'text/plain' });
106
+ return blob;
107
+ }
108
+ isEditable(filename) {
109
+ return filename.match(/\.(txt|js|json|ts|cs|css|scss|xml|html|htm|exp|sh|pwsh)$/ig) != null;
110
+ }
111
+ UploadFile(fileName, formData) {
112
+ this.folderService.postFileContent(fileName, formData).pipe(map(event => {
113
+ switch (event.type) {
114
+ case HttpEventType.UploadProgress:
115
+ //file.progress = Math.round(event.loaded * 100 / event.total);
116
+ break;
117
+ case HttpEventType.Response:
118
+ return event.body;
119
+ }
120
+ }), catchError((error) => {
121
+ //file.inProgress = false;
122
+ return of(`${fileName} upload failed.`);
123
+ })).subscribe((event) => {
124
+ if (typeof (event) === 'object') {
125
+ //obj.Logo = event.Logo;
126
+ }
127
+ });
128
+ }
129
+ Edit(fileName) {
130
+ const dialogConfig = new MatDialogConfig();
131
+ dialogConfig.disableClose = true;
132
+ dialogConfig.autoFocus = true;
133
+ dialogConfig.closeOnNavigation = false;
134
+ let content;
135
+ this.folderService.getFileContent(this.currentDir + '/' + fileName).subscribe(c => {
136
+ dialogConfig.data = { path: this.currentDir + '/' + fileName, content: c };
137
+ this.dialog.open(FileEditComponent, dialogConfig).afterClosed().subscribe(data => {
138
+ if (data) {
139
+ const formData = new FormData();
140
+ const imageName = fileName;
141
+ const imageBlob = this.dataURItoBlob(data.content);
142
+ const file = new File([imageBlob], imageName, { type: 'text/plain' });
143
+ formData.append('file', file);
144
+ this.UploadFile(this.currentDir + '/' + fileName, formData);
145
+ //file.inProgress = true;
146
+ }
147
+ });
148
+ });
149
+ }
150
+ /*
151
+ this.http.get(`${environment.apiUrl}`, {
152
+ responseType: 'arraybuffer', headers: headers
153
+ }
154
+ ).subscribe(response => this.downLoadFile(response, "application/ms-excel"));*/
155
+ downloadFile(fileName) {
156
+ this.folderService.getFileContentBlob(this.currentDir + '/' + fileName).subscribe(blob => {
157
+ this.downLoadFile2(blob, blob.type);
158
+ });
159
+ }
160
+ /**
161
+ * Method is use to download file.
162
+ * @param data - Array Buffer data
163
+ * @param type - type of the document.
164
+ */
165
+ downLoadFile2(data, type) {
166
+ let blob = new Blob([data], { type: type });
167
+ let url = window.URL.createObjectURL(blob);
168
+ let pwa = window.open(url);
169
+ if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') {
170
+ alert('Please disable your Pop-up blocker and try again.');
171
+ }
172
+ }
173
+ }
174
+ FoldersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FoldersComponent, deps: [{ token: i1.FolderService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
175
+ FoldersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: FoldersComponent, selector: "gloww-folders", ngImport: i0, template: "<h1>\r\n <i class=\"fal fa-folder\" size=\"40px\"></i> /{{currentDir}}\r\n <i class=\"fal fa-level-up\" [routerLink]=\"getRouterLink()\" *ngIf=\"currentDir\"></i>\r\n</h1>\r\n<div *ngIf=\"directoryContent else Spinner\">\r\n <i class=\"fal fa-folder-plus\" (click)=\"addFolder()\" size=\"30px\"></i>\r\n <ul>\r\n <li *ngFor=\"let d of directoryContent.directories\">\r\n <i class=\"fal fa-folder\"></i><a [routerLink]=\"getRouterLink(d)\">{{d}}</a>\r\n </li>\r\n </ul>\r\n <i class=\"fal fa-file-plus\" (click)=\"addFile()\" size=\"30px\"></i>\r\n <i class=\"fal fa-file-upload\" (click)=\"addFileUpload()\" size=\"30px\"></i>\r\n <ul>\r\n <li *ngFor=\"let f of directoryContent.files\">\r\n <a (click)=\"Edit(f)\" href=\"javascript:void(0);\" *ngIf=\"isEditable(f); else notEditable\">\r\n <i class=\"fal fa-file\"></i> {{f}}\r\n </a>\r\n <ng-template #notEditable>\r\n <i class=\"fal fa-file fa-disabled\"></i> <a (click)=\"downloadFile(f)\" target=\"_blank\" href=\"javascript:void(0);\">{{f}}</a>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n</div>\r\n<ng-template #Spinner>\r\n <mat-spinner></mat-spinner>\r\n</ng-template>", styles: ["ul{list-style:none}.fa-disabled{opacity:.6;cursor:not-allowed}i{margin:5px;height:20px}\n"], components: [{ type: i4.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }] });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: FoldersComponent, decorators: [{
177
+ type: Component,
178
+ args: [{ selector: 'gloww-folders', template: "<h1>\r\n <i class=\"fal fa-folder\" size=\"40px\"></i> /{{currentDir}}\r\n <i class=\"fal fa-level-up\" [routerLink]=\"getRouterLink()\" *ngIf=\"currentDir\"></i>\r\n</h1>\r\n<div *ngIf=\"directoryContent else Spinner\">\r\n <i class=\"fal fa-folder-plus\" (click)=\"addFolder()\" size=\"30px\"></i>\r\n <ul>\r\n <li *ngFor=\"let d of directoryContent.directories\">\r\n <i class=\"fal fa-folder\"></i><a [routerLink]=\"getRouterLink(d)\">{{d}}</a>\r\n </li>\r\n </ul>\r\n <i class=\"fal fa-file-plus\" (click)=\"addFile()\" size=\"30px\"></i>\r\n <i class=\"fal fa-file-upload\" (click)=\"addFileUpload()\" size=\"30px\"></i>\r\n <ul>\r\n <li *ngFor=\"let f of directoryContent.files\">\r\n <a (click)=\"Edit(f)\" href=\"javascript:void(0);\" *ngIf=\"isEditable(f); else notEditable\">\r\n <i class=\"fal fa-file\"></i> {{f}}\r\n </a>\r\n <ng-template #notEditable>\r\n <i class=\"fal fa-file fa-disabled\"></i> <a (click)=\"downloadFile(f)\" target=\"_blank\" href=\"javascript:void(0);\">{{f}}</a>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n</div>\r\n<ng-template #Spinner>\r\n <mat-spinner></mat-spinner>\r\n</ng-template>", styles: ["ul{list-style:none}.fa-disabled{opacity:.6;cursor:not-allowed}i{margin:5px;height:20px}\n"] }]
179
+ }], ctorParameters: function () { return [{ type: i1.FolderService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.MatDialog }]; } });
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nbG93dy9zcmMvbGliL0NvbXBvbmVudHMvZm9sZGVycy9mb2xkZXJzL2ZvbGRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9Db21wb25lbnRzL2ZvbGRlcnMvZm9sZGVycy9mb2xkZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQU9yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQW9CLGFBQTRCLEVBQVUsTUFBYyxFQUFVLEtBQXFCLEVBQVUsTUFBaUI7UUFDaEksc0dBQXNHO1FBRHBGLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUdoSSxJQUFJLENB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SUFBSSxDQUFDLEVBQUU7WUFDdkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsSUFBUyxFQUFFLElBQVk7UUFDbkMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxXQUFXLEVBQUU7WUFDMUQsS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDOzs2R0E1TFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IscURDakI3QixzdkNBMEJjOzJGRFRELGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50VHlwZSwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGlyZWN0b3J5Q29udGVudCwgRm9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL2ZvbGRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0TW9kZWwsIFByb21wdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Byb21wdC9wcm9tcHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBsb2FkRG9jQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdXBsb2FkLWRvYy91cGxvYWQtZG9jLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZEZpbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uL2ZpbGUtZWRpdC9maWxlLWVkaXQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ2xvd3ctZm9sZGVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZvbGRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZvbGRlcnMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb2xkZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIGN1cnJlbnREaXI6IHN0cmluZztcclxuICBkaXJlY3RvcnlDb250ZW50OiBEaXJlY3RvcnlDb250ZW50O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb2xkZXJTZXJ2aWNlOiBGb2xkZXJTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgLy9mbG93U2VydmljZS5nZXREaXJlY3RvcnlDb250ZW50KHJvdXRlLnNuYXBzaG90LnBhcmFtcy5pZCkuc3Vic2NyaWJlKHIgPT4gdGhpcy5kaXJlY3RvcnlDb250ZW50ID0gcik7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIGNvbnN0IHVybFBhcnRzID0gZXZlbnQudXJsLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyID0gdXJsUGFydHMuc2xpY2UoMikuam9pbihcIi9cIik7XHJcbiAgICAgICAgdGhpcy5kaXJlY3RvcnlDb250ZW50ID0gbnVsbDtcclxuICAgICAgICBmb2xkZXJTZXJ2aWNlLmdldERpcmVjdG9yeUNvbnRlbnQodGhpcy5jdXJyZW50RGlyKS5zdWJzY3JpYmUociA9PiB0aGlzLmRpcmVjdG9yeUNvbnRlbnQgPSByKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgYWRkRm9sZGVyKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG5cclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gbmV3IFByb21wdE1vZGVsKFwiTmV3IEZvbGRlclwiLCBcIlBsZWFzZSBnaXZlIHRoZSBuYW1lIG9mIHRoZSBmb2xkZXIgdG8gY3JlYXRlXCIsIFwiXCIsIHRydWUpO1xyXG5cclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oUHJvbXB0Q29tcG9uZW50LCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGZvbGRlciA9PiB7XHJcbiAgICAgIGlmIChmb2xkZXIpIHtcclxuICAgICAgICB0aGlzLmZvbGRlclNlcnZpY2UucG9zdERpcmVjdG9yeUNvbnRlbnQodGhpcy5jdXJyZW50RGlyICsgJy8nICsgZm9sZGVyKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmdldFJvdXRlckxpbmsoZm9sZGVyKSksXHJcbiAgICAgICAgICAgIGVycm9yID0+IGFsZXJ0KGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG5cclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gbmV3IFByb21wdE1vZGVsKFwiTmV3IEZpbGVcIiwgXCJQbGVhc2UgZ2l2ZSB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIHRvIGNyZWF0ZVwiLCBcIlwiLCB0cnVlKTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFByb21wdENvbXBvbmVudCwgZGlhbG9nQ29uZmlnKS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShmaWxlTmFtZSA9PiB7XHJcbiAgICAgIGlmIChmaWxlTmFtZSkge1xyXG4gICAgICAgIHRoaXMuRWRpdChmaWxlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5kaXJlY3RvcnlDb250ZW50ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZvbGRlclNlcnZpY2UuZ2V0RGlyZWN0b3J5Q29udGVudCh0aGlzLmN1cnJlbnREaXIpLnN1YnNjcmliZShyID0+IHRoaXMuZGlyZWN0b3J5Q29udGVudCA9IHIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZEZpbGVVcGxvYWQoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcblxyXG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IGZhbHNlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7IGFjY2VwdE1pbWU6ICdpbWFnZS8qJywgbXVsdGlwbGU6IHRydWUsIGFsbG93QWx0RmlsZU5hbWU6IHRydWUgfTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZERvY0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShmaWxlcyA9PiB7XHJcbiAgICAgIGlmIChmaWxlcykge1xyXG4gICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZS5kYXRhKTtcclxuICAgICAgICAgIHRoaXMuVXBsb2FkRmlsZSh0aGlzLmN1cnJlbnREaXIgKyBcIi9cIiArIGZpbGUuZmlsZU5hbWUsIGZvcm1EYXRhKTtcclxuICAgICAgICAgIHRoaXMuZGlyZWN0b3J5Q29udGVudCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZvbGRlclNlcnZpY2UuZ2V0RGlyZWN0b3J5Q29udGVudCh0aGlzLmN1cnJlbnREaXIpLnN1YnNjcmliZShyID0+IHRoaXMuZGlyZWN0b3J5Q29udGVudCA9IHIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Um91dGVyTGluayhkaXJlY3Rvcnk/OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50RGlyKSB7XHJcbiAgICAgIHJldHVybiBbJy9mb2xkZXJzJywgZGlyZWN0b3J5XTtcclxuICAgIH1cclxuICAgIGlmICghZGlyZWN0b3J5KSB7XHJcbiAgICAgIGxldCByZXMgPSBbJy9mb2xkZXJzJywgLi4udGhpcy5jdXJyZW50RGlyLnNwbGl0KFwiL1wiKV07XHJcbiAgICAgIHJlcy5wb3AoKTtcclxuICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxuICAgIHJldHVybiBbJy9mb2xkZXJzJywgLi4udGhpcy5jdXJyZW50RGlyLnNwbGl0KFwiL1wiKSwgZGlyZWN0b3J5XVxyXG4gIH1cclxuICBnZXRIcmVmKGY6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnREaXIpIHtcclxuICAgICAgcmV0dXJuIFsnL0Zsb3dNZ210JywgJ2ZvbGRlcnMnLCBmXS5qb2luKCcvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFsnL0Zsb3dNZ210JywgJ2ZvbGRlcnMnLCAuLi50aGlzLmN1cnJlbnREaXIuc3BsaXQoXCIvXCIpLCBmXS5qb2luKCcvJyk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGRhdGFVUkl0b0Jsb2IoY29udGVudCkge1xyXG4gICAgY29uc3QgYnl0ZVN0cmluZyA9IGNvbnRlbnQ7XHJcbiAgICBjb25zdCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XHJcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaW50OEFycmF5W2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtpbnQ4QXJyYXldLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcclxuICAgIHJldHVybiBibG9iO1xyXG4gIH1cclxuXHJcbiAgaXNFZGl0YWJsZShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmlsZW5hbWUubWF0Y2goL1xcLih0eHR8anN8anNvbnx0c3xjc3xjc3N8c2Nzc3x4bWx8aHRtbHxodG18ZXhwfHNofHB3c2gpJC9pZykgIT0gbnVsbDtcclxuICB9XHJcblxyXG4gIFVwbG9hZEZpbGUoZmlsZU5hbWU6IHN0cmluZywgZm9ybURhdGE6IEZvcm1EYXRhKSB7XHJcbiAgICB0aGlzLmZvbGRlclNlcnZpY2UucG9zdEZpbGVDb250ZW50KGZpbGVOYW1lLCBmb3JtRGF0YSkucGlwZShcclxuICAgICAgbWFwKGV2ZW50ID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuICAgICAgICAgICAgLy9maWxlLnByb2dyZXNzID0gTWF0aC5yb3VuZChldmVudC5sb2FkZWQgKiAxMDAgLyBldmVudC50b3RhbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQuYm9keTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvL2ZpbGUuaW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBvZihgJHtmaWxlTmFtZX0gdXBsb2FkIGZhaWxlZC5gKTtcclxuICAgICAgfSkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKGV2ZW50KSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIC8vb2JqLkxvZ28gPSBldmVudC5Mb2dvO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEVkaXQoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG5cclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgY29udGVudDogc3RyaW5nO1xyXG4gICAgdGhpcy5mb2xkZXJTZXJ2aWNlLmdldEZpbGVDb250ZW50KHRoaXMuY3VycmVudERpciArICcvJyArIGZpbGVOYW1lKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0geyBwYXRoOiB0aGlzLmN1cnJlbnREaXIgKyAnLycgKyBmaWxlTmFtZSwgY29udGVudDogYyB9O1xyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKEZpbGVFZGl0Q29tcG9uZW50LCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgY29uc3QgaW1hZ2VOYW1lID0gZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBpbWFnZUJsb2IgPSB0aGlzLmRhdGFVUkl0b0Jsb2IoZGF0YS5jb250ZW50KTtcclxuICAgICAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbaW1hZ2VCbG9iXSwgaW1hZ2VOYW1lLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5VcGxvYWRGaWxlKHRoaXMuY3VycmVudERpciArICcvJyArIGZpbGVOYW1lLCBmb3JtRGF0YSk7XHJcbiAgICAgICAgICAvL2ZpbGUuaW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxudGhpcy5odHRwLmdldChgJHtlbnZpcm9ubWVudC5hcGlVcmx9YCwge1xyXG4gIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJywgaGVhZGVyczogaGVhZGVyc1xyXG59XHJcbikuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHRoaXMuZG93bkxvYWRGaWxlKHJlc3BvbnNlLCBcImFwcGxpY2F0aW9uL21zLWV4Y2VsXCIpKTsqL1xyXG5cclxuICBkb3dubG9hZEZpbGUoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5mb2xkZXJTZXJ2aWNlLmdldEZpbGVDb250ZW50QmxvYih0aGlzLmN1cnJlbnREaXIgKyAnLycgKyBmaWxlTmFtZSkuc3Vic2NyaWJlKGJsb2IgPT4ge1xyXG4gICAgICB0aGlzLmRvd25Mb2FkRmlsZTIoYmxvYiwgYmxvYi50eXBlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIGlzIHVzZSB0byBkb3dubG9hZCBmaWxlLlxyXG4gICAqIEBwYXJhbSBkYXRhIC0gQXJyYXkgQnVmZmVyIGRhdGFcclxuICAgKiBAcGFyYW0gdHlwZSAtIHR5cGUgb2YgdGhlIGRvY3VtZW50LlxyXG4gICAqL1xyXG4gIGRvd25Mb2FkRmlsZTIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IHR5cGUgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBsZXQgcHdhID0gd2luZG93Lm9wZW4odXJsKTtcclxuICAgIGlmICghcHdhIHx8IHB3YS5jbG9zZWQgfHwgdHlwZW9mIHB3YS5jbG9zZWQgPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgYWxlcnQoJ1BsZWFzZSBkaXNhYmxlIHlvdXIgUG9wLXVwIGJsb2NrZXIgYW5kIHRyeSBhZ2Fpbi4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxoMT5cclxuICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZvbGRlclwiIHNpemU9XCI0MHB4XCI+PC9pPiAve3tjdXJyZW50RGlyfX1cclxuICAgIDxpIGNsYXNzPVwiZmFsIGZhLWxldmVsLXVwXCIgW3JvdXRlckxpbmtdPVwiZ2V0Um91dGVyTGluaygpXCIgKm5nSWY9XCJjdXJyZW50RGlyXCI+PC9pPlxyXG48L2gxPlxyXG48ZGl2ICpuZ0lmPVwiZGlyZWN0b3J5Q29udGVudCBlbHNlIFNwaW5uZXJcIj5cclxuICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZvbGRlci1wbHVzXCIgKGNsaWNrKT1cImFkZEZvbGRlcigpXCIgc2l6ZT1cIjMwcHhcIj48L2k+XHJcbiAgICA8dWw+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkIG9mIGRpcmVjdG9yeUNvbnRlbnQuZGlyZWN0b3JpZXNcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtZm9sZGVyXCI+PC9pPjxhIFtyb3V0ZXJMaW5rXT1cImdldFJvdXRlckxpbmsoZClcIj57e2R9fTwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZpbGUtcGx1c1wiIChjbGljayk9XCJhZGRGaWxlKClcIiBzaXplPVwiMzBweFwiPjwvaT5cclxuICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZpbGUtdXBsb2FkXCIgKGNsaWNrKT1cImFkZEZpbGVVcGxvYWQoKVwiIHNpemU9XCIzMHB4XCI+PC9pPlxyXG4gICAgPHVsPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZiBvZiBkaXJlY3RvcnlDb250ZW50LmZpbGVzXCI+XHJcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJFZGl0KGYpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiAqbmdJZj1cImlzRWRpdGFibGUoZik7IGVsc2Ugbm90RWRpdGFibGVcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZpbGVcIj48L2k+IHt7Zn19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RFZGl0YWJsZT5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZpbGUgZmEtZGlzYWJsZWRcIj48L2k+IDxhIChjbGljayk9XCJkb3dubG9hZEZpbGUoZilcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiPnt7Zn19PC9hPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNTcGlubmVyPlxyXG4gICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,14 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HeaderComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: HeaderComponent, selector: "glw-header", ngImport: i0, template: "<ng-content></ng-content>", styles: [""] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HeaderComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'glw-header', template: "<ng-content></ng-content>", styles: [""] }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxlQUFlO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs0R0FMVyxlQUFlO2dHQUFmLGVBQWUsa0RDUDVCLDJCQUF5QjsyRkRPWixlQUFlO2tCQUwzQixTQUFTOytCQUNDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdnbHctaGVhZGVyJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+Il19