@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.
- package/README.md +24 -0
- package/compute-version.js +117 -0
- package/esm2020/gloww-gloww.mjs +5 -0
- package/esm2020/lib/Components/code-editor/code-editor.component.mjs +59 -0
- package/esm2020/lib/Components/confirmation/confirmation.component.mjs +43 -0
- package/esm2020/lib/Components/display-objects/display-objects.component.mjs +440 -0
- package/esm2020/lib/Components/display-objects-configuration.mjs +2 -0
- package/esm2020/lib/Components/download-progress/download-progress.component.mjs +119 -0
- package/esm2020/lib/Components/folders/file-edit/file-edit.component.mjs +71 -0
- package/esm2020/lib/Components/folders/folders/folders.component.mjs +180 -0
- package/esm2020/lib/Components/header/header.component.mjs +14 -0
- package/esm2020/lib/Components/html-editor/html-editor.component.mjs +175 -0
- package/esm2020/lib/Components/menu-list-item/menu-list-item.component.mjs +97 -0
- package/esm2020/lib/Components/prompt/prompt.component.mjs +52 -0
- package/esm2020/lib/Components/result-table/result-table.component.mjs +21 -0
- package/esm2020/lib/Components/search-form/search-form.component.mjs +14 -0
- package/esm2020/lib/Components/secure-a/secure-a.component.mjs +31 -0
- package/esm2020/lib/Components/secure-img/secure-img.component.mjs +45 -0
- package/esm2020/lib/Components/upload-doc/upload-doc.component.mjs +95 -0
- package/esm2020/lib/Components/upload-file/upload-file.component.mjs +136 -0
- package/esm2020/lib/Directives/file-sink.directive.mjs +52 -0
- package/esm2020/lib/Models/nav-item.mjs +2 -0
- package/esm2020/lib/Pipes/html-format.pipe.mjs +23 -0
- package/esm2020/lib/Pipes/retry-with-delay.mjs +12 -0
- package/esm2020/lib/Pipes/safe-html.pipe.mjs +22 -0
- package/esm2020/lib/Pipes/secure.pipe.mjs +34 -0
- package/esm2020/lib/Services/dialog.service.mjs +29 -0
- package/esm2020/lib/Services/folder-service-config.mjs +21 -0
- package/esm2020/lib/Services/folder.service.mjs +50 -0
- package/esm2020/lib/Services/gloww.service.mjs +44 -0
- package/esm2020/lib/Services/nav.service.mjs +28 -0
- package/esm2020/lib/Services/version-check.service.mjs +81 -0
- package/esm2020/lib/Services/voice-recognition.service.mjs +55 -0
- package/esm2020/lib/gloww-security/Components/change-password-dlg/change-password-dlg.component.mjs +67 -0
- package/esm2020/lib/gloww-security/Components/login/login.component.mjs +173 -0
- package/esm2020/lib/gloww-security/Components/social-network/social-network.component.mjs +46 -0
- package/esm2020/lib/gloww-security/Components/social-network-dlg/social-network-dlg.component.mjs +52 -0
- package/esm2020/lib/gloww-security/Components/user-menu/user-menu.component.mjs +73 -0
- package/esm2020/lib/gloww-security/Helpers/administrator.guard.mjs +27 -0
- package/esm2020/lib/gloww-security/Helpers/auth.guard.mjs +57 -0
- package/esm2020/lib/gloww-security/Helpers/error.interceptor.mjs +29 -0
- package/esm2020/lib/gloww-security/Helpers/index.mjs +5 -0
- package/esm2020/lib/gloww-security/Helpers/jwt.interceptor.mjs +31 -0
- package/esm2020/lib/gloww-security/Helpers/staging.interceptor.mjs +24 -0
- package/esm2020/lib/gloww-security/Models/oauthassociation.mjs +6 -0
- package/esm2020/lib/gloww-security/Models/user.mjs +3 -0
- package/esm2020/lib/gloww-security/Services/authentication-service-config.mjs +25 -0
- package/esm2020/lib/gloww-security/Services/authentication.service.mjs +205 -0
- package/esm2020/lib/gloww-security/Services/gloww-security.service.mjs +14 -0
- package/esm2020/lib/gloww-security/gloww-security.module.mjs +171 -0
- package/esm2020/lib/gloww.module.mjs +220 -0
- package/esm2020/lib/injection-token.mjs +3 -0
- package/esm2020/public-api.mjs +32 -0
- package/fesm2015/gloww-gloww.mjs +3018 -0
- package/fesm2015/gloww-gloww.mjs.map +1 -0
- package/fesm2020/gloww-gloww.mjs +2980 -0
- package/fesm2020/gloww-gloww.mjs.map +1 -0
- package/gloww-assets/.gitkeep +0 -0
- package/gloww-assets/7SS_logo.svg +1 -0
- package/gloww-assets/7SS_wobl.svg +1 -0
- package/gloww-assets/7stars.png +0 -0
- package/gloww-assets/gloww.svg +316 -0
- package/gloww-assets/images/google_signin_buttons/Google_signin_button.sketch +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_disabled_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_focus_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_normal_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_dark_pressed_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_disabled_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_focus_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_normal_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_light_pressed_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_disabled_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_focus_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_normal_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_dark_pressed_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_disabled_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_focus_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_normal_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/hdpi/btn_google_signin_light_pressed_hdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_disabled_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_focus_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_normal_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_dark_pressed_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_disabled_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_focus_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_normal_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_light_pressed_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_disabled_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_focus_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_normal_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_dark_pressed_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_disabled_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_focus_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_normal_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/ldpi/btn_google_signin_light_pressed_ldpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_disabled_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_focus_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_normal_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_dark_pressed_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_disabled_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_focus_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_normal_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_light_pressed_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_disabled_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_focus_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_normal_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_dark_pressed_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_disabled_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_focus_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_normal_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/mdpi/btn_google_signin_light_pressed_mdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_disabled_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_focus_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_normal_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_dark_pressed_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_disabled_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_focus_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_normal_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_light_pressed_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_disabled_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_focus_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_normal_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_dark_pressed_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_disabled_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_focus_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_normal_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/tvdpi/btn_google_signin_light_pressed_tvdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_disabled_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_focus_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_normal_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_dark_pressed_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_disabled_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_focus_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_normal_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_light_pressed_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_disabled_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_focus_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_normal_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_dark_pressed_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_disabled_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_focus_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_normal_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xhdpi/btn_google_signin_light_pressed_xhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_disabled_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_focus_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_normal_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_dark_pressed_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_disabled_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_focus_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_normal_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_light_pressed_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_disabled_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_focus_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_normal_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_dark_pressed_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_disabled_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_focus_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_normal_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxhdpi/btn_google_signin_light_pressed_xxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_disabled_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_focus_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_normal_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_dark_pressed_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_disabled_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_focus_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_normal_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_light_pressed_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_disabled_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_focus_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_normal_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_dark_pressed_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_disabled_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_focus_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_normal_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/android/xxxhdpi/btn_google_signin_light_pressed_xxxhdpi.9.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_disabled_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_focus_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_normal_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_dark_pressed_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_disabled_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_focus_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_normal_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_light_pressed_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_disabled_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_focus_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_normal_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_dark_pressed_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_disabled_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_focus_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_normal_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/1x/btn_google_signin_light_pressed_ios.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_disabled_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_focus_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_normal_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_dark_pressed_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_disabled_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_focus_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_normal_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_light_pressed_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_disabled_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_focus_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_normal_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_dark_pressed_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_disabled_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_focus_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_normal_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/2x/btn_google_signin_light_pressed_ios@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_disabled_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_focus_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_normal_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_dark_pressed_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_disabled_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_focus_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_normal_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_light_pressed_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_disabled_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_focus_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_normal_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_dark_pressed_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_disabled_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_focus_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_normal_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/ios/3x/btn_google_signin_light_pressed_ios@3x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_focus_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_normal_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_disabled_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_focus_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_normal_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/1x/btn_google_signin_light_pressed_web.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_disabled_ios.eps +814 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_disabled_ios.svg +24 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_focus_ios.eps +1866 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_focus_ios.svg +51 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_normal_ios.eps +1031 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_normal_ios.svg +50 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_pressed_ios.eps +1031 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_dark_pressed_ios.svg +50 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_disabled_ios.eps +814 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_disabled_ios.svg +24 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_focus_ios.eps +1837 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_focus_ios.svg +44 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_normal_ios.eps +1002 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_normal_ios.svg +43 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_pressed_ios.eps +1002 -0
- package/gloww-assets/images/google_signin_buttons/web/vector/btn_google_light_pressed_ios.svg +43 -0
- package/gloww-assets/swagger.svg +1 -0
- package/gloww-gloww.d.ts +5 -0
- package/lib/Components/code-editor/code-editor.component.d.ts +16 -0
- package/lib/Components/confirmation/confirmation.component.d.ts +20 -0
- package/lib/Components/display-objects/display-objects.component.d.ts +90 -0
- package/lib/Components/display-objects-configuration.d.ts +5 -0
- package/lib/Components/download-progress/download-progress.component.d.ts +30 -0
- package/lib/Components/folders/file-edit/file-edit.component.d.ts +31 -0
- package/lib/Components/folders/folders/folders.component.d.ts +33 -0
- package/lib/Components/header/header.component.d.ts +8 -0
- package/lib/Components/html-editor/html-editor.component.d.ts +36 -0
- package/lib/Components/menu-list-item/menu-list-item.component.d.ts +22 -0
- package/lib/Components/prompt/prompt.component.d.ts +25 -0
- package/lib/Components/result-table/result-table.component.d.ts +11 -0
- package/lib/Components/search-form/search-form.component.d.ts +8 -0
- package/lib/Components/secure-a/secure-a.component.d.ts +13 -0
- package/lib/Components/secure-img/secure-img.component.d.ts +17 -0
- package/lib/Components/upload-doc/upload-doc.component.d.ts +19 -0
- package/lib/Components/upload-file/upload-file.component.d.ts +34 -0
- package/lib/Directives/file-sink.directive.d.ts +11 -0
- package/lib/Models/nav-item.d.ts +8 -0
- package/lib/Pipes/html-format.pipe.d.ts +10 -0
- package/lib/Pipes/retry-with-delay.d.ts +2 -0
- package/lib/Pipes/safe-html.pipe.d.ts +10 -0
- package/lib/Pipes/secure.pipe.d.ts +13 -0
- package/lib/Services/dialog.service.d.ts +11 -0
- package/lib/Services/folder-service-config.d.ts +7 -0
- package/lib/Services/folder.service.d.ts +19 -0
- package/lib/Services/gloww.service.d.ts +17 -0
- package/lib/Services/nav.service.d.ts +13 -0
- package/lib/Services/version-check.service.d.ts +30 -0
- package/lib/Services/voice-recognition.service.d.ts +14 -0
- package/lib/gloww-security/Components/change-password-dlg/change-password-dlg.component.d.ts +19 -0
- package/lib/gloww-security/Components/login/login.component.d.ts +43 -0
- package/lib/gloww-security/Components/social-network/social-network.component.d.ts +25 -0
- package/lib/gloww-security/Components/social-network-dlg/social-network-dlg.component.d.ts +21 -0
- package/lib/gloww-security/Components/user-menu/user-menu.component.d.ts +24 -0
- package/lib/gloww-security/Helpers/administrator.guard.d.ts +14 -0
- package/lib/gloww-security/Helpers/auth.guard.d.ts +14 -0
- package/lib/gloww-security/Helpers/error.interceptor.d.ts +11 -0
- package/lib/gloww-security/Helpers/index.d.ts +4 -0
- package/lib/gloww-security/Helpers/jwt.interceptor.d.ts +11 -0
- package/lib/gloww-security/Helpers/staging.interceptor.d.ts +9 -0
- package/lib/gloww-security/Models/oauthassociation.d.ts +7 -0
- package/lib/gloww-security/Models/user.d.ts +9 -0
- package/lib/gloww-security/Services/authentication-service-config.d.ts +17 -0
- package/lib/gloww-security/Services/authentication.service.d.ts +40 -0
- package/lib/gloww-security/Services/gloww-security.service.d.ts +6 -0
- package/lib/gloww-security/gloww-security.module.d.ts +35 -0
- package/lib/gloww.module.d.ts +59 -0
- package/lib/injection-token.d.ts +2 -0
- package/package.json +39 -0
- 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
|