@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,173 @@
|
|
|
1
|
+
import { Component, Optional } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { first } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
import * as i3 from "../../Services/authentication.service";
|
|
8
|
+
import * as i4 from "../../Services/authentication-service-config";
|
|
9
|
+
import * as i5 from "@angular/material/card";
|
|
10
|
+
import * as i6 from "@angular/material/form-field";
|
|
11
|
+
import * as i7 from "@angular/material/button";
|
|
12
|
+
import * as i8 from "../social-network/social-network.component";
|
|
13
|
+
import * as i9 from "@angular/flex-layout/flex";
|
|
14
|
+
import * as i10 from "@angular/common";
|
|
15
|
+
import * as i11 from "@angular/material/input";
|
|
16
|
+
export class LoginComponent {
|
|
17
|
+
constructor(formBuilder, route, router, authenticationService, config) {
|
|
18
|
+
this.formBuilder = formBuilder;
|
|
19
|
+
this.route = route;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.authenticationService = authenticationService;
|
|
22
|
+
this.loading = false;
|
|
23
|
+
this.submitted = false;
|
|
24
|
+
this.error = '';
|
|
25
|
+
this.showDomain = false;
|
|
26
|
+
this.state = 1;
|
|
27
|
+
// redirect to home if already logged in
|
|
28
|
+
if (this.authenticationService.currentUserValue) {
|
|
29
|
+
this.router.navigate(['/']);
|
|
30
|
+
}
|
|
31
|
+
this.config = config;
|
|
32
|
+
if (config && config.showDomain) {
|
|
33
|
+
this.showDomain = config.showDomain;
|
|
34
|
+
}
|
|
35
|
+
this.authenticationService.getOAuthProviders().subscribe(oap => this.oAuthProviders = oap);
|
|
36
|
+
}
|
|
37
|
+
MatchPassword(fg) {
|
|
38
|
+
if (!fg) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
return fg.get('newpassword')?.value === fg.get('confirmationPassword')?.value;
|
|
42
|
+
}
|
|
43
|
+
ngOnInit() {
|
|
44
|
+
const grp = {
|
|
45
|
+
username: ['', Validators.required],
|
|
46
|
+
password: ['', Validators.required]
|
|
47
|
+
};
|
|
48
|
+
const lostPwd = {
|
|
49
|
+
email: ['', Validators.required],
|
|
50
|
+
gsm: [''],
|
|
51
|
+
firstname: ['', Validators.required],
|
|
52
|
+
lastname: ['', Validators.required]
|
|
53
|
+
};
|
|
54
|
+
const resetPwd = {
|
|
55
|
+
email: ['', Validators.required],
|
|
56
|
+
code: ['', Validators.required],
|
|
57
|
+
newPassword: ['', Validators.required],
|
|
58
|
+
confirmationPassword: ['', Validators.required]
|
|
59
|
+
};
|
|
60
|
+
if (this.showDomain) {
|
|
61
|
+
grp.domain = [''];
|
|
62
|
+
}
|
|
63
|
+
this.loginForm = this.formBuilder.group(grp);
|
|
64
|
+
this.lostPasswordForm = this.formBuilder.group(lostPwd);
|
|
65
|
+
this.resetPasswordForm = this.formBuilder.group(resetPwd, { validator: this.MatchPassword });
|
|
66
|
+
// get return url from route parameters or default to '/'
|
|
67
|
+
this.returnUrl = this.route.snapshot.queryParams.returnUrl; //|| window.location.search;
|
|
68
|
+
this.application = this.route.snapshot.queryParams.application; //|| window.location.pathname;
|
|
69
|
+
console.log(`returnUrl : ${this.returnUrl}`);
|
|
70
|
+
console.log(`application : ${this.application}`);
|
|
71
|
+
this.idOauth = this.route.snapshot.queryParams.idOauth;
|
|
72
|
+
this.provider = this.route.snapshot.queryParams.provider;
|
|
73
|
+
this.name = this.route.snapshot.queryParams.name;
|
|
74
|
+
this.value = this.route.snapshot.queryParams.value;
|
|
75
|
+
if (this.idOauth) {
|
|
76
|
+
this.state = 4;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// convenience getter for easy access to form fields
|
|
80
|
+
get f() { return this.loginForm.controls; }
|
|
81
|
+
resetError() {
|
|
82
|
+
this.error = "";
|
|
83
|
+
}
|
|
84
|
+
onConnect() {
|
|
85
|
+
this.submitted = true;
|
|
86
|
+
this.error = "";
|
|
87
|
+
// stop here if form is invalid
|
|
88
|
+
if (this.loginForm.invalid) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this.loading = true;
|
|
92
|
+
let domain = '';
|
|
93
|
+
if (this.showDomain) {
|
|
94
|
+
domain = this.f.domain.value;
|
|
95
|
+
}
|
|
96
|
+
this.authenticationService.login(domain, this.f.username.value, this.f.password.value)
|
|
97
|
+
.pipe(first())
|
|
98
|
+
.subscribe(data => {
|
|
99
|
+
console.log(`navigate to ${this.returnUrl}`);
|
|
100
|
+
this.router.navigate([this.returnUrl]);
|
|
101
|
+
}, error => {
|
|
102
|
+
if (error.error?.Code) {
|
|
103
|
+
switch (error.error?.Code) {
|
|
104
|
+
case 'BADAUTH':
|
|
105
|
+
this.error = 'Utilisateur inconnu ou mauvais mot de passe. Veuillez vérifier vos identifiants.';
|
|
106
|
+
break;
|
|
107
|
+
case 'WEAKPASSWORD':
|
|
108
|
+
this.error = 'Le mot de passe que vous avez utilisez est trop faible. S\'il s\'agit effectivement de votre mot de passe, veuillez le réinitialiser au moyen de la fonctionnalité "Mot de passe oublié". ';
|
|
109
|
+
break;
|
|
110
|
+
case 'BLACKLISTEDIP':
|
|
111
|
+
this.error = `Trop de tentatives de connexion à partir de cette adresse IP(${error.error?.Params?.IP}).Vous ne pouvez plus vous connecter à partir de ce poste.`;
|
|
112
|
+
break;
|
|
113
|
+
case 'TOOMANYFROMIP':
|
|
114
|
+
this.error = `Trop de tentatives de connexion, à partir de cette adresse IP(${error.error?.Params?.IP}).Vous ne pouvez pas réessayer pendant ${error.error?.Params?.nbrMinutes} minutes.`;
|
|
115
|
+
break;
|
|
116
|
+
case 'TOOMANYFORUSERNAME':
|
|
117
|
+
this.error = `Trop de tentatives de connexion pour cet utilisateur(${error.error?.Params?.Username}).Vous ne pouvez pas réessayer pendant ${error.error?.Params?.nbrMinutes} minutes.`;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
if (!this.error)
|
|
121
|
+
this.error = error.error.Message;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.error = 'Impossible de se connecter. ';
|
|
125
|
+
}
|
|
126
|
+
this.loading = false;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
onAskResetPasswordCode() {
|
|
130
|
+
let gsm = this.lostPasswordForm.value.gsm;
|
|
131
|
+
if (!this.config?.askGSM) {
|
|
132
|
+
gsm = '--noGSM--';
|
|
133
|
+
}
|
|
134
|
+
this.authenticationService
|
|
135
|
+
.askResetPasswordCode('', this.lostPasswordForm.value.firstname, this.lostPasswordForm.value.lastname, this.lostPasswordForm.value.email, gsm)
|
|
136
|
+
.subscribe(d => { }, error => { });
|
|
137
|
+
this.state = 3;
|
|
138
|
+
}
|
|
139
|
+
onResetPassword() {
|
|
140
|
+
this.authenticationService
|
|
141
|
+
.resetPassword(this.resetPasswordForm.value.email, this.resetPasswordForm.value.code, this.resetPasswordForm.value.newPassword)
|
|
142
|
+
.subscribe(d => { }, error => { });
|
|
143
|
+
this.state = 1;
|
|
144
|
+
}
|
|
145
|
+
OAuthSignIn(provider) {
|
|
146
|
+
const url = `${window.location.origin}/admin/AuthUsers/OAuth/${provider}/${this.config.environment}?returnUrl=${encodeURI(this.returnUrl)}&application=${encodeURI(this.application)}&loginUrl=${encodeURI(window.location.pathname)}¤tUserVariableName=${this.authenticationService.currentUserVariableName}`;
|
|
147
|
+
window.location.href = url;
|
|
148
|
+
}
|
|
149
|
+
onOAuthAskCode() {
|
|
150
|
+
this.authenticationService
|
|
151
|
+
.OAuthAskCode(this.authenticationService.environment, this.resetPasswordForm.value.email, this.idOauth, this.provider, this.name, this.value)
|
|
152
|
+
.subscribe(d => {
|
|
153
|
+
this.state = 5;
|
|
154
|
+
}, error => { });
|
|
155
|
+
}
|
|
156
|
+
onOAuthAssociation() {
|
|
157
|
+
this.authenticationService
|
|
158
|
+
.OAuthAssociation(this.authenticationService.environment, this.resetPasswordForm.value.code, this.idOauth, this.provider, this.name, this.value)
|
|
159
|
+
.subscribe(user => {
|
|
160
|
+
console.log(user);
|
|
161
|
+
window.location.href = this.returnUrl;
|
|
162
|
+
}, error => { });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: LoginComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.AuthenticationService }, { token: i4.AuthenticationServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
166
|
+
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: LoginComponent, selector: "gloww-login", ngImport: i0, template: "<div class=\"login-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"center center\" style=\"height:100%\">\r\n\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Connexion</mat-card-title>\r\n </mat-card-header>\r\n\r\n <form class=\"example-form\" [formGroup]=\"loginForm\" (ngSubmit)=\"onConnect()\" *ngIf=\"state==1\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" *ngIf=\"showDomain\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Domain\" formControlName=\"domain\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Username\" formControlName=\"username\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Password\" formControlName=\"password\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"20px\">\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Me Connecter</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=2; resetError();\">Mot de passe\r\n oubli\u00E9</button>\r\n </div>\r\n <br />\r\n <gloww-social-network (callback)=\"OAuthSignIn($event)\" [oAuthProviders]=\"oAuthProviders\"></gloww-social-network>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"lostPasswordForm\" (ngSubmit)=\"onAskResetPasswordCode()\" *ngIf=\"state==2\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" *ngIf=\"showDomain\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Domain\" formControlName=\"domain\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Pr\u00E9nom\" formControlName=\"firstname\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Nom\" formControlName=\"lastname\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\" *ngIf=\"config?.askGSM\">\r\n <input matInput placeholder=\"Mobile\" formControlName=\"gsm\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Demande de\r\n r\u00E9initialisation</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=3\">J'ai un\r\n code</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onResetPassword()\" *ngIf=\"state==3\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Code\" formControlName=\"code\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Password\" formControlName=\"newPassword\" type=\"password\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Confirmation\" formControlName=\"confirmationPassword\" type=\"password\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">R\u00E9initialiser</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=1\">J'ai retrouv\u00E9 mon mot de\r\n passe</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onOAuthAskCode()\" *ngIf=\"state==4\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span fxFlex=\"100%\">Entrez l'adresse associ\u00E9e \u00E0 votre compte. Vous recevrez un code par email.</span>\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Obtenir code</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onOAuthAssociation()\" *ngIf=\"state==5\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span fxFlex=\"100%\">Faites un copier/coller du code re\u00E7u par mail</span>\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Code\" formControlName=\"code\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Associer</button>\r\n </form>\r\n </mat-card>\r\n</div>", styles: ["html,body{height:100%;margin:0;padding:0}body{background-image:url(https://lh4.googleusercontent.com/-XplyTa1Za-I/VMSgIyAYkHI/AAAAAAAADxM/oL-rD6VP4ts/w1184-h666/Android-Lollipop-wallpapers-Google-Now-Wallpaper-2.png);background-position:center;background-size:cover;background-repeat:no-repeat;min-height:100vh;font-family:Roboto,sans-serif}.app-header{justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:2;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.positronx{text-decoration:none;color:#fff}.box{position:relative;top:0;opacity:1;float:left;padding:60px 50px 40px;width:100%;background:#fff;border-radius:10px;transform:scale(1);-webkit-transform:scale(1);-ms-transform:scale(1);z-index:5;max-width:330px}.box.back{transform:scale(.95);-webkit-transform:scale(.95);-ms-transform:scale(.95);top:-20px;opacity:.8;z-index:-1}.box:before{content:\"\";width:100%;height:30px;border-radius:10px;position:absolute;top:-10px;background:rgba(255,255,255,.6);left:0;transform:scale(.95);-webkit-transform:scale(.95);-ms-transform:scale(.95);z-index:-1}.login-wrapper{height:100%}.login-wrapper mat-card-header{text-align:center;width:100%;display:block;font-weight:700}.login-wrapper mat-card-header mat-card-title{font-size:30px;margin:0}.login-wrapper .mat-card{padding:40px 70px 50px}.login-wrapper .mat-stroked-button{border:1px solid currentColor;background:#FFF7FA}.login-wrapper .mat-form-field-appearance-legacy .mat-form-field-infix{padding:.8375em 0}.SocialNetwork a{margin:10px}.SocialNetwork a i{border:1;padding:10px}\n"], components: [{ type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i5.MatCardHeader, selector: "mat-card-header" }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i7.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"] }, { type: i8.SocialNetworkComponent, selector: "gloww-social-network", inputs: ["oAuthProviders"], outputs: ["callback"] }], directives: [{ type: i9.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i9.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i9.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i11.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: i9.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }] });
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: LoginComponent, decorators: [{
|
|
168
|
+
type: Component,
|
|
169
|
+
args: [{ selector: 'gloww-login', template: "<div class=\"login-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"center center\" style=\"height:100%\">\r\n\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>Connexion</mat-card-title>\r\n </mat-card-header>\r\n\r\n <form class=\"example-form\" [formGroup]=\"loginForm\" (ngSubmit)=\"onConnect()\" *ngIf=\"state==1\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" *ngIf=\"showDomain\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Domain\" formControlName=\"domain\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Username\" formControlName=\"username\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Password\" formControlName=\"password\" type=\"password\" (change)=\"resetError()\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"20px\">\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Me Connecter</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=2; resetError();\">Mot de passe\r\n oubli\u00E9</button>\r\n </div>\r\n <br />\r\n <gloww-social-network (callback)=\"OAuthSignIn($event)\" [oAuthProviders]=\"oAuthProviders\"></gloww-social-network>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"lostPasswordForm\" (ngSubmit)=\"onAskResetPasswordCode()\" *ngIf=\"state==2\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" *ngIf=\"showDomain\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Domain\" formControlName=\"domain\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Pr\u00E9nom\" formControlName=\"firstname\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Nom\" formControlName=\"lastname\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\" *ngIf=\"config?.askGSM\">\r\n <input matInput placeholder=\"Mobile\" formControlName=\"gsm\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Demande de\r\n r\u00E9initialisation</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=3\">J'ai un\r\n code</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onResetPassword()\" *ngIf=\"state==3\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Code\" formControlName=\"code\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Password\" formControlName=\"newPassword\" type=\"password\">\r\n </mat-form-field>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Confirmation\" formControlName=\"confirmationPassword\" type=\"password\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">R\u00E9initialiser</button>\r\n <button mat-stroked-button color=\"primary\" class=\"btn-block\" (click)=\"state=1\">J'ai retrouv\u00E9 mon mot de\r\n passe</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onOAuthAskCode()\" *ngIf=\"state==4\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span fxFlex=\"100%\">Entrez l'adresse associ\u00E9e \u00E0 votre compte. Vous recevrez un code par email.</span>\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Obtenir code</button>\r\n </form>\r\n <form class=\"example-form\" [formGroup]=\"resetPasswordForm\" (ngSubmit)=\"onOAuthAssociation()\" *ngIf=\"state==5\">\r\n <mat-card-content>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\r\n <span fxFlex=\"100%\">Faites un copier/coller du code re\u00E7u par mail</span>\r\n <span style=\"color:red; font-weight:bold;\" *ngIf=\"error\" fxFlex=\"100%\">{{error}}</span>\r\n <mat-form-field class=\"example-full-width\" fxFlex=\"100%\">\r\n <input matInput placeholder=\"Code\" formControlName=\"code\">\r\n </mat-form-field>\r\n </div>\r\n </mat-card-content>\r\n <button mat-raised-button color=\"primary\" class=\"btn-block\" type=\"submit\">Associer</button>\r\n </form>\r\n </mat-card>\r\n</div>", styles: ["html,body{height:100%;margin:0;padding:0}body{background-image:url(https://lh4.googleusercontent.com/-XplyTa1Za-I/VMSgIyAYkHI/AAAAAAAADxM/oL-rD6VP4ts/w1184-h666/Android-Lollipop-wallpapers-Google-Now-Wallpaper-2.png);background-position:center;background-size:cover;background-repeat:no-repeat;min-height:100vh;font-family:Roboto,sans-serif}.app-header{justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:2;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.positronx{text-decoration:none;color:#fff}.box{position:relative;top:0;opacity:1;float:left;padding:60px 50px 40px;width:100%;background:#fff;border-radius:10px;transform:scale(1);-webkit-transform:scale(1);-ms-transform:scale(1);z-index:5;max-width:330px}.box.back{transform:scale(.95);-webkit-transform:scale(.95);-ms-transform:scale(.95);top:-20px;opacity:.8;z-index:-1}.box:before{content:\"\";width:100%;height:30px;border-radius:10px;position:absolute;top:-10px;background:rgba(255,255,255,.6);left:0;transform:scale(.95);-webkit-transform:scale(.95);-ms-transform:scale(.95);z-index:-1}.login-wrapper{height:100%}.login-wrapper mat-card-header{text-align:center;width:100%;display:block;font-weight:700}.login-wrapper mat-card-header mat-card-title{font-size:30px;margin:0}.login-wrapper .mat-card{padding:40px 70px 50px}.login-wrapper .mat-stroked-button{border:1px solid currentColor;background:#FFF7FA}.login-wrapper .mat-form-field-appearance-legacy .mat-form-field-infix{padding:.8375em 0}.SocialNetwork a{margin:10px}.SocialNetwork a i{border:1;padding:10px}\n"] }]
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.AuthenticationService }, { type: i4.AuthenticationServiceConfig, decorators: [{
|
|
171
|
+
type: Optional
|
|
172
|
+
}] }]; } });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9nbG93dy1zZWN1cml0eS9Db21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFwQyxNQUFNLE9BQU8sY0FBYztJQW9CNUIsWUFBb0IsV0FBd0IsRUFBVSxLQUFxQixFQUFVLE1BQWMsRUFBVSxxQkFBNEMsRUFBYyxNQUFvQztRQUF2TCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFoQnpKLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBV1Isd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxN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QVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQ2IsQ0FBQztJQUNOLENBQUM7OzJHQWxMYSxjQUFjOytGQUFkLGNBQWMsbURDWjlCLDZzT0F1R007MkZEM0ZVLGNBQWM7a0JBSjdCLFNBQVM7K0JBQ0UsYUFBYTs7MEJBdUJxSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9TZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24tc2VydmljZS1jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdnbG93dy1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICdsb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxyXG59KSBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBsb2dpbkZvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgbG9zdFBhc3N3b3JkRm9ybTogRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyByZXNldFBhc3N3b3JkRm9ybTogRm9ybUdyb3VwO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdWJtaXR0ZWQgPSBmYWxzZTtcclxuICByZXR1cm5Vcmw6IHN0cmluZztcclxuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xyXG4gIGVycm9yID0gJyc7XHJcbiAgc2hvd0RvbWFpbiA9IGZhbHNlO1xyXG4gIHN0YXRlID0gMTtcclxuICBjb25maWc6IEF1dGhlbnRpY2F0aW9uU2VydmljZUNvbmZpZztcclxuICBvQXV0aFByb3ZpZGVyczogc3RyaW5nW107XHJcblxyXG4gIGlkT2F1dGg/OiBudW1iZXI7XHJcbiAgcHJvdmlkZXI/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgY29uZmlnPzogQXV0aGVudGljYXRpb25TZXJ2aWNlQ29uZmlnKSB7XHJcbiAgICAvLyByZWRpcmVjdCB0byBob21lIGlmIGFscmVhZHkgbG9nZ2VkIGluXHJcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcclxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLnNob3dEb21haW4pIHtcclxuICAgICAgdGhpcy5zaG93RG9tYWluID0gY29uZmlnLnNob3dEb21haW47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0T0F1dGhQcm92aWRlcnMoKS5zdWJzY3JpYmUob2FwID0+IHRoaXMub0F1dGhQcm92aWRlcnMgPSBvYXApO1xyXG4gIH1cclxuXHJcbiAgTWF0Y2hQYXNzd29yZChmZzogRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAoIWZnKSB7IHJldHVybjsgfVxyXG4gICAgcmV0dXJuIGZnLmdldCgnbmV3cGFzc3dvcmQnKT8udmFsdWUgPT09IGZnLmdldCgnY29uZmlybWF0aW9uUGFzc3dvcmQnKT8udmFsdWU7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZ3JwOiBhbnkgPSB7XHJcbiAgICAgIHVzZXJuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGxvc3RQd2Q6IGFueSA9IHtcclxuICAgICAgZW1haWw6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGdzbTogWycnXSxcclxuICAgICAgZmlyc3RuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBsYXN0bmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc2V0UHdkOiBhbnkgPSB7XHJcbiAgICAgIGVtYWlsOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBuZXdQYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY29uZmlybWF0aW9uUGFzc3dvcmQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5zaG93RG9tYWluKSB7XHJcbiAgICAgIGdycC5kb21haW4gPSBbJyddO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKGdycCk7XHJcbiAgICB0aGlzLmxvc3RQYXNzd29yZEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKGxvc3RQd2QpO1xyXG4gICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAocmVzZXRQd2QsIHsgdmFsaWRhdG9yOiB0aGlzLk1hdGNoUGFzc3dvcmQgfSk7XHJcbiAgICAvLyBnZXQgcmV0dXJuIHVybCBmcm9tIHJvdXRlIHBhcmFtZXRlcnMgb3IgZGVmYXVsdCB0byAnLydcclxuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5yZXR1cm5Vcmw7Ly98fCB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xyXG4gICAgdGhpcy5hcHBsaWNhdGlvbiA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMuYXBwbGljYXRpb247Ly98fCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XHJcbiAgICBjb25zb2xlLmxvZyhgcmV0dXJuVXJsIDogJHt0aGlzLnJldHVyblVybH1gKTtcclxuICAgIGNvbnNvbGUubG9nKGBhcHBsaWNhdGlvbiA6ICR7dGhpcy5hcHBsaWNhdGlvbn1gKTtcclxuXHJcbiAgICB0aGlzLmlkT2F1dGggPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLmlkT2F1dGg7XHJcbiAgICB0aGlzLnByb3ZpZGVyID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5wcm92aWRlcjtcclxuICAgIHRoaXMubmFtZSA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMubmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaWRPYXV0aCkge1xyXG4gICAgICB0aGlzLnN0YXRlID0gNDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLyBjb252ZW5pZW5jZSBnZXR0ZXIgZm9yIGVhc3kgYWNjZXNzIHRvIGZvcm0gZmllbGRzXHJcbiAgZ2V0IGYoKSB7IHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9sczsgfVxyXG5cclxuICByZXNldEVycm9yKCkge1xyXG4gICAgdGhpcy5lcnJvciA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBvbkNvbm5lY3QoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLmVycm9yID0gXCJcIjtcclxuICAgIC8vIHN0b3AgaGVyZSBpZiBmb3JtIGlzIGludmFsaWRcclxuICAgIGlmICh0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgZG9tYWluID0gJyc7XHJcbiAgICBpZiAodGhpcy5zaG93RG9tYWluKSB7XHJcbiAgICAgIGRvbWFpbiA9IHRoaXMuZi5kb21haW4udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dpbihkb21haW4sIHRoaXMuZi51c2VybmFtZS52YWx1ZSwgdGhpcy5mLnBhc3N3b3JkLnZhbHVlKVxyXG4gICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBuYXZpZ2F0ZSB0byAke3RoaXMucmV0dXJuVXJsfWApO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJldHVyblVybF0pO1xyXG4gICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLmVycm9yPy5Db2RlKSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGVycm9yLmVycm9yPy5Db2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0JBREFVVEgnOlxyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSAnVXRpbGlzYXRldXIgaW5jb25udSBvdSBtYXV2YWlzIG1vdCBkZSBwYXNzZS4gVmV1aWxsZXogdsOpcmlmaWVyIHZvcyBpZGVudGlmaWFudHMuJztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnV0VBS1BBU1NXT1JEJzpcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gJ0xlIG1vdCBkZSBwYXNzZSBxdWUgdm91cyBhdmV6IHV0aWxpc2V6IGVzdCB0cm9wIGZhaWJsZS4gU1xcJ2lsIHNcXCdhZ2l0IGVmZmVjdGl2ZW1lbnQgZGUgdm90cmUgbW90IGRlIHBhc3NlLCB2ZXVpbGxleiBsZSByw6lpbml0aWFsaXNlciBhdSBtb3llbiBkZSBsYSBmb25jdGlvbm5hbGl0w6kgXCJNb3QgZGUgcGFzc2Ugb3VibGnDqVwiLiAnO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdCTEFDS0xJU1RFRElQJzpcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gYFRyb3AgZGUgdGVudGF0aXZlcyBkZSBjb25uZXhpb24gw6AgcGFydGlyIGRlIGNldHRlIGFkcmVzc2UgSVAoJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5JUH0pLlZvdXMgbmUgcG91dmV6IHBsdXMgdm91cyBjb25uZWN0ZXIgw6AgcGFydGlyIGRlIGNlIHBvc3RlLmA7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ1RPT01BTllGUk9NSVAnOlxyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBgVHJvcCBkZSB0ZW50YXRpdmVzIGRlIGNvbm5leGlvbiwgw6AgcGFydGlyIGRlIGNldHRlIGFkcmVzc2UgSVAoJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5JUH0pLlZvdXMgbmUgcG91dmV6IHBhcyByw6llc3NheWVyIHBlbmRhbnQgJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5uYnJNaW51dGVzfSBtaW51dGVzLmBcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnVE9PTUFOWUZPUlVTRVJOQU1FJzpcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gYFRyb3AgZGUgdGVudGF0aXZlcyBkZSBjb25uZXhpb24gcG91ciBjZXQgdXRpbGlzYXRldXIoJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5Vc2VybmFtZX0pLlZvdXMgbmUgcG91dmV6IHBhcyByw6llc3NheWVyIHBlbmRhbnQgJHtlcnJvci5lcnJvcj8uUGFyYW1zPy5uYnJNaW51dGVzfSBtaW51dGVzLmBcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZXJyb3IpIHRoaXMuZXJyb3IgPSBlcnJvci5lcnJvci5NZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnSW1wb3NzaWJsZSBkZSBzZSBjb25uZWN0ZXIuICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQXNrUmVzZXRQYXNzd29yZENvZGUoKSB7XHJcbiAgICBsZXQgZ3NtID0gdGhpcy5sb3N0UGFzc3dvcmRGb3JtLnZhbHVlLmdzbTtcclxuICAgIGlmICghdGhpcy5jb25maWc/LmFza0dTTSkge1xyXG4gICAgICBnc20gPSAnLS1ub0dTTS0tJztcclxuICAgIH1cclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlXHJcbiAgICAgIC5hc2tSZXNldFBhc3N3b3JkQ29kZSgnJywgdGhpcy5sb3N0UGFzc3dvcmRGb3JtLnZhbHVlLmZpcnN0bmFtZSwgdGhpcy5sb3N0UGFzc3dvcmRGb3JtLnZhbHVlLmxhc3RuYW1lLCB0aGlzLmxvc3RQYXNzd29yZEZvcm0udmFsdWUuZW1haWwsIGdzbSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICBkID0+IHsgfSxcclxuICAgICAgICBlcnJvciA9PiB7IH1cclxuICAgICAgKTtcclxuICAgIHRoaXMuc3RhdGUgPSAzO1xyXG4gIH1cclxuXHJcbiAgb25SZXNldFBhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2VcclxuICAgICAgLnJlc2V0UGFzc3dvcmQodGhpcy5yZXNldFBhc3N3b3JkRm9ybS52YWx1ZS5lbWFpbCwgdGhpcy5yZXNldFBhc3N3b3JkRm9ybS52YWx1ZS5jb2RlLCB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLnZhbHVlLm5ld1Bhc3N3b3JkKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIGQgPT4geyB9LFxyXG4gICAgICAgIGVycm9yID0+IHsgfVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zdGF0ZSA9IDE7XHJcbiAgfVxyXG5cclxuICBPQXV0aFNpZ25Jbihwcm92aWRlcjogU3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9hZG1pbi9BdXRoVXNlcnMvT0F1dGgvJHtwcm92aWRlcn0vJHt0aGlzLmNvbmZpZy5lbnZpcm9ubWVudH0/cmV0dXJuVXJsPSR7ZW5jb2RlVVJJKHRoaXMucmV0dXJuVXJsKX0mYXBwbGljYXRpb249JHtlbmNvZGVVUkkodGhpcy5hcHBsaWNhdGlvbil9JmxvZ2luVXJsPSR7ZW5jb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl9JmN1cnJlbnRVc2VyVmFyaWFibGVOYW1lPSR7dGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYXJpYWJsZU5hbWV9YDtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgb25PQXV0aEFza0NvZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZVxyXG4gICAgICAuT0F1dGhBc2tDb2RlKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmVudmlyb25tZW50LCB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLnZhbHVlLmVtYWlsLCB0aGlzLmlkT2F1dGgsIHRoaXMucHJvdmlkZXIsIHRoaXMubmFtZSwgdGhpcy52YWx1ZSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICBkID0+IHtcclxuICAgICAgICAgIHRoaXMuc3RhdGUgPSA1O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4geyB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIG9uT0F1dGhBc3NvY2lhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlXHJcbiAgICAgIC5PQXV0aEFzc29jaWF0aW9uKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmVudmlyb25tZW50LCB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLnZhbHVlLmNvZGUsIHRoaXMuaWRPYXV0aCwgdGhpcy5wcm92aWRlciwgdGhpcy5uYW1lLCB0aGlzLnZhbHVlKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIHVzZXIgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2codXNlcik7XHJcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMucmV0dXJuVXJsO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4geyB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OjEwMCVcIj5cclxuXHJcbiAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPkNvbm5leGlvbjwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcblxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZXhhbXBsZS1mb3JtXCIgW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwib25Db25uZWN0KClcIiAqbmdJZj1cInN0YXRlPT0xXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZWQ7IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nSWY9XCJlcnJvclwiIGZ4RmxleD1cIjEwMCVcIj57e2Vycm9yfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgKm5nSWY9XCJzaG93RG9tYWluXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJEb21haW5cIiBmb3JtQ29udHJvbE5hbWU9XCJkb21haW5cIiAoY2hhbmdlKT1cInJlc2V0RXJyb3IoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJVc2VybmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCIgKGNoYW5nZSk9XCJyZXNldEVycm9yKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiIChjaGFuZ2UpPVwicmVzZXRFcnJvcigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMjBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImJ0bi1ibG9ja1wiIHR5cGU9XCJzdWJtaXRcIj5NZSBDb25uZWN0ZXI8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgKGNsaWNrKT1cInN0YXRlPTI7IHJlc2V0RXJyb3IoKTtcIj5Nb3QgZGUgcGFzc2VcclxuICAgICAgICAgIG91Ymxpw6k8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICA8Z2xvd3ctc29jaWFsLW5ldHdvcmsgKGNhbGxiYWNrKT1cIk9BdXRoU2lnbkluKCRldmVudClcIiBbb0F1dGhQcm92aWRlcnNdPVwib0F1dGhQcm92aWRlcnNcIj48L2dsb3d3LXNvY2lhbC1uZXR3b3JrPlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8Zm9ybSBjbGFzcz1cImV4YW1wbGUtZm9ybVwiIFtmb3JtR3JvdXBdPVwibG9zdFBhc3N3b3JkRm9ybVwiIChuZ1N1Ym1pdCk9XCJvbkFza1Jlc2V0UGFzc3dvcmRDb2RlKClcIiAqbmdJZj1cInN0YXRlPT0yXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZWQ7IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nSWY9XCJlcnJvclwiIGZ4RmxleD1cIjEwMCVcIj57e2Vycm9yfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgKm5nSWY9XCJzaG93RG9tYWluXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJEb21haW5cIiBmb3JtQ29udHJvbE5hbWU9XCJkb21haW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiUHLDqW5vbVwiIGZvcm1Db250cm9sTmFtZT1cImZpcnN0bmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJOb21cIiBmb3JtQ29udHJvbE5hbWU9XCJsYXN0bmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGhcIiBmeEZsZXg9XCIxMDAlXCIgKm5nSWY9XCJjb25maWc/LmFza0dTTVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJNb2JpbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJnc21cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImJ0bi1ibG9ja1wiIHR5cGU9XCJzdWJtaXRcIj5EZW1hbmRlIGRlXHJcbiAgICAgICAgcsOpaW5pdGlhbGlzYXRpb248L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJidG4tYmxvY2tcIiAoY2xpY2spPVwic3RhdGU9M1wiPkonYWkgdW5cclxuICAgICAgICBjb2RlPC9idXR0b24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZXhhbXBsZS1mb3JtXCIgW2Zvcm1Hcm91cF09XCJyZXNldFBhc3N3b3JkRm9ybVwiIChuZ1N1Ym1pdCk9XCJvblJlc2V0UGFzc3dvcmQoKVwiICpuZ0lmPVwic3RhdGU9PTNcIj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJlZDsgZm9udC13ZWlnaHQ6Ym9sZDtcIiAqbmdJZj1cImVycm9yXCIgZnhGbGV4PVwiMTAwJVwiPnt7ZXJyb3J9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGhcIiBmeEZsZXg9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkVtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQ29kZVwiIGZvcm1Db250cm9sTmFtZT1cImNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImV4YW1wbGUtZnVsbC13aWR0aFwiIGZ4RmxleD1cIjEwMCVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJuZXdQYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJDb25maXJtYXRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtYXRpb25QYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgdHlwZT1cInN1Ym1pdFwiPlLDqWluaXRpYWxpc2VyPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgKGNsaWNrKT1cInN0YXRlPTFcIj5KJ2FpIHJldHJvdXbDqSBtb24gbW90IGRlXHJcbiAgICAgICAgcGFzc2U8L2J1dHRvbj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPGZvcm0gY2xhc3M9XCJleGFtcGxlLWZvcm1cIiBbZm9ybUdyb3VwXT1cInJlc2V0UGFzc3dvcmRGb3JtXCIgKG5nU3VibWl0KT1cIm9uT0F1dGhBc2tDb2RlKClcIiAqbmdJZj1cInN0YXRlPT00XCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZnhGbGV4PVwiMTAwJVwiPkVudHJleiBsJ2FkcmVzc2UgYXNzb2Npw6llIMOgIHZvdHJlIGNvbXB0ZS4gVm91cyByZWNldnJleiB1biBjb2RlIHBhciBlbWFpbC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjpyZWQ7IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nSWY9XCJlcnJvclwiIGZ4RmxleD1cIjEwMCVcIj57e2Vycm9yfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCIgZnhGbGV4PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJidG4tYmxvY2tcIiB0eXBlPVwic3VibWl0XCI+T2J0ZW5pciBjb2RlPC9idXR0b24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZXhhbXBsZS1mb3JtXCIgW2Zvcm1Hcm91cF09XCJyZXNldFBhc3N3b3JkRm9ybVwiIChuZ1N1Ym1pdCk9XCJvbk9BdXRoQXNzb2NpYXRpb24oKVwiICpuZ0lmPVwic3RhdGU9PTVcIj5cclxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmeEZsZXg9XCIxMDAlXCI+RmFpdGVzIHVuIGNvcGllci9jb2xsZXIgZHUgY29kZSByZcOndSBwYXIgbWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOnJlZDsgZm9udC13ZWlnaHQ6Ym9sZDtcIiAqbmdJZj1cImVycm9yXCIgZnhGbGV4PVwiMTAwJVwiPnt7ZXJyb3J9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGhcIiBmeEZsZXg9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkNvZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJidG4tYmxvY2tcIiB0eXBlPVwic3VibWl0XCI+QXNzb2NpZXI8L2J1dHRvbj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L21hdC1jYXJkPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../Services/authentication.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/flex-layout/flex";
|
|
6
|
+
import * as i4 from "@angular/flex-layout/extended";
|
|
7
|
+
export class SocialNetworkComponent {
|
|
8
|
+
// oAuthAssociations: string[];
|
|
9
|
+
// oAuthProviders: string[];
|
|
10
|
+
constructor(authenticationService) {
|
|
11
|
+
this.authenticationService = authenticationService;
|
|
12
|
+
this.callback = new EventEmitter();
|
|
13
|
+
this.icons = {
|
|
14
|
+
Google: "fa-brands fa-google",
|
|
15
|
+
LinkedIN: "fa-brands fa-linkedin",
|
|
16
|
+
Facebook: "fa-brands fa-facebook",
|
|
17
|
+
Github: "fa-brands fa-github",
|
|
18
|
+
Amazon: "fa-brands fa-amazon",
|
|
19
|
+
Apple: "fa-brands fa-apple",
|
|
20
|
+
Microsoft: "fa-brands fa-microsoft",
|
|
21
|
+
Twitter: "fa-brands fa-twitter",
|
|
22
|
+
VK: "fa-brands fa-vk",
|
|
23
|
+
};
|
|
24
|
+
// this.authenticationService.getOAuthProviders().subscribe(oap => this.oAuthProviders = oap);
|
|
25
|
+
// this.authenticationService.getOAuthAssociations().subscribe(oap => this.oAuthAssociations = oap);
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
}
|
|
29
|
+
execute(provider) {
|
|
30
|
+
this.callback.emit(provider);
|
|
31
|
+
}
|
|
32
|
+
writeobj(provider) {
|
|
33
|
+
console.log(provider);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
SocialNetworkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SocialNetworkComponent, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
SocialNetworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SocialNetworkComponent, selector: "gloww-social-network", inputs: { oAuthProviders: "oAuthProviders" }, outputs: { callback: "callback" }, ngImport: i0, template: "<div class=\"SocialNetwork\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" *ngIf=\"oAuthProviders\">\r\n <ng-container *ngFor=\"let provider of oAuthProviders\">\r\n <a (click)=\"execute(provider)\">\r\n <i [ngClass]=\"icons[provider.toString()]\"></i>\r\n </a>\r\n </ng-container>\r\n</div>\r\n", styles: [""], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SocialNetworkComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'gloww-social-network', template: "<div class=\"SocialNetwork\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" *ngIf=\"oAuthProviders\">\r\n <ng-container *ngFor=\"let provider of oAuthProviders\">\r\n <a (click)=\"execute(provider)\">\r\n <i [ngClass]=\"icons[provider.toString()]\"></i>\r\n </a>\r\n </ng-container>\r\n</div>\r\n", styles: [""] }]
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.AuthenticationService }]; }, propDecorators: { oAuthProviders: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], callback: [{
|
|
44
|
+
type: Output
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLW5ldHdvcmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2xvd3cvc3JjL2xpYi9nbG93dy1zZWN1cml0eS9Db21wb25lbnRzL3NvY2lhbC1uZXR3b3JrL3NvY2lhbC1uZXR3b3JrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy9zb2NpYWwtbmV0d29yay9zb2NpYWwtbmV0d29yay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRL0UsTUFBTSxPQUFPLHNCQUFzQjtJQWdCakMsZ0NBQWdDO0lBQ2hDLDZCQUE2QjtJQUU3QixZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQWpCdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELFVBQUssR0FBRztZQUNOLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFNBQVMsRUFBRSx3QkFBd0I7WUFDbkMsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixFQUFFLEVBQUUsaUJBQWlCO1NBQ3RCLENBQUM7UUFNQSxpR0FBaUc7UUFDakcsc0dBQXNHO0lBQ3hHLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFRO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFRO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QixDQUFDOzttSEFoQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsNklDUm5DLGtWQU9BOzJGRENhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxzQkFBc0I7NEdBS3ZCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dsb3d3LXNvY2lhbC1uZXR3b3JrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc29jaWFsLW5ldHdvcmsuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NvY2lhbC1uZXR3b3JrLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU29jaWFsTmV0d29ya0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgb0F1dGhQcm92aWRlcnM6IGFueVtdO1xyXG4gIEBPdXRwdXQoKSBjYWxsYmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGljb25zID0ge1xyXG4gICAgR29vZ2xlOiBcImZhLWJyYW5kcyBmYS1nb29nbGVcIixcclxuICAgIExpbmtlZElOOiBcImZhLWJyYW5kcyBmYS1saW5rZWRpblwiLFxyXG4gICAgRmFjZWJvb2s6IFwiZmEtYnJhbmRzIGZhLWZhY2Vib29rXCIsXHJcbiAgICBHaXRodWI6IFwiZmEtYnJhbmRzIGZhLWdpdGh1YlwiLFxyXG4gICAgQW1hem9uOiBcImZhLWJyYW5kcyBmYS1hbWF6b25cIixcclxuICAgIEFwcGxlOiBcImZhLWJyYW5kcyBmYS1hcHBsZVwiLFxyXG4gICAgTWljcm9zb2Z0OiBcImZhLWJyYW5kcyBmYS1taWNyb3NvZnRcIixcclxuICAgIFR3aXR0ZXI6IFwiZmEtYnJhbmRzIGZhLXR3aXR0ZXJcIixcclxuICAgIFZLOiBcImZhLWJyYW5kcyBmYS12a1wiLFxyXG4gIH07XHJcblxyXG4gIC8vICBvQXV0aEFzc29jaWF0aW9uczogc3RyaW5nW107XHJcbiAgLy8gIG9BdXRoUHJvdmlkZXJzOiBzdHJpbmdbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xyXG4gICAgLy8gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0T0F1dGhQcm92aWRlcnMoKS5zdWJzY3JpYmUob2FwID0+IHRoaXMub0F1dGhQcm92aWRlcnMgPSBvYXApO1xyXG4gICAgLy8gICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRPQXV0aEFzc29jaWF0aW9ucygpLnN1YnNjcmliZShvYXAgPT4gdGhpcy5vQXV0aEFzc29jaWF0aW9ucyA9IG9hcCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGV4ZWN1dGUocHJvdmlkZXIpIHtcclxuICAgIHRoaXMuY2FsbGJhY2suZW1pdChwcm92aWRlcik7XHJcbiAgfVxyXG4gIHdyaXRlb2JqKHByb3ZpZGVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyhwcm92aWRlcik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiU29jaWFsTmV0d29ya1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCIgKm5nSWY9XCJvQXV0aFByb3ZpZGVyc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvdmlkZXIgb2Ygb0F1dGhQcm92aWRlcnNcIj5cclxuICAgICAgICA8YSAoY2xpY2spPVwiZXhlY3V0ZShwcm92aWRlcilcIj5cclxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaWNvbnNbcHJvdmlkZXIudG9TdHJpbmcoKV1cIj48L2k+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/esm2020/lib/gloww-security/Components/social-network-dlg/social-network-dlg.component.mjs
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, Optional } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/dialog";
|
|
4
|
+
import * as i2 from "../../Services/authentication.service";
|
|
5
|
+
import * as i3 from "../../Services/authentication-service-config";
|
|
6
|
+
import * as i4 from "../social-network/social-network.component";
|
|
7
|
+
import * as i5 from "@angular/material/button";
|
|
8
|
+
export class SocialNetworkDlgComponent {
|
|
9
|
+
constructor(dialogRef, authenticationService, dialog, config) {
|
|
10
|
+
this.dialogRef = dialogRef;
|
|
11
|
+
this.authenticationService = authenticationService;
|
|
12
|
+
this.dialog = dialog;
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.authenticationService.getOAuthProviders().subscribe(oap => this.oAuthProviders = oap);
|
|
15
|
+
this.authenticationService.getOAuthAssociations().subscribe(oap => {
|
|
16
|
+
this.oAuthAssociations = oap; //oap.map(item => Object.assign(new Oauthassociation(), item));
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
}
|
|
21
|
+
OK() {
|
|
22
|
+
this.dialogRef.close();
|
|
23
|
+
}
|
|
24
|
+
OAuthAddAssociation(provider) {
|
|
25
|
+
const url = `${window.location.origin}/admin/AuthUsers/OAuth/${provider}/${this.config.environment}`;
|
|
26
|
+
window.location.href = url;
|
|
27
|
+
}
|
|
28
|
+
OAuthDeleteAssociation(association) {
|
|
29
|
+
this.authenticationService.OAuthDeleteAssociation(association.provider, association.idOAuth).subscribe(result => {
|
|
30
|
+
alert("Association supprimée");
|
|
31
|
+
const index = this.oAuthAssociations.indexOf(association, 0);
|
|
32
|
+
if (index >= 0) {
|
|
33
|
+
this.oAuthAssociations.splice(index, 1);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
alert("unable to delete item");
|
|
37
|
+
}
|
|
38
|
+
//this.oAuthAssociations.find(a => a === association
|
|
39
|
+
}, error => {
|
|
40
|
+
alert('Impossible d\'effacer l\'association');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
SocialNetworkDlgComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SocialNetworkDlgComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.AuthenticationService }, { token: i1.MatDialog }, { token: i3.AuthenticationServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
SocialNetworkDlgComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SocialNetworkDlgComponent, selector: "gloww-social-network-dlg", ngImport: i0, template: "<h2 mat-dialog-title>Gestion des identifications par r\u00E9seaux sociaux</h2>\r\n<mat-dialog-content>\r\n <h3>Associations \u00E9tablies</h3>\r\n <p>Choisissez l'association que vous souhaitez supprimer</p>\r\n <gloww-social-network (callback)=\"OAuthDeleteAssociation($event)\" [oAuthProviders]=\"oAuthAssociations\"></gloww-social-network>\r\n <h3>Nouvelle association</h3>\r\n <p>Choisissez le provider</p>\r\n <gloww-social-network (callback)=\"OAuthAddAssociation($event)\" [oAuthProviders]=\"oAuthProviders\"></gloww-social-network>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" (click)=\"OK() \">OK</button>\r\n</mat-dialog-actions>", styles: [""], components: [{ type: i4.SocialNetworkComponent, selector: "gloww-social-network", inputs: ["oAuthProviders"], outputs: ["callback"] }, { 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: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SocialNetworkDlgComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'gloww-social-network-dlg', template: "<h2 mat-dialog-title>Gestion des identifications par r\u00E9seaux sociaux</h2>\r\n<mat-dialog-content>\r\n <h3>Associations \u00E9tablies</h3>\r\n <p>Choisissez l'association que vous souhaitez supprimer</p>\r\n <gloww-social-network (callback)=\"OAuthDeleteAssociation($event)\" [oAuthProviders]=\"oAuthAssociations\"></gloww-social-network>\r\n <h3>Nouvelle association</h3>\r\n <p>Choisissez le provider</p>\r\n <gloww-social-network (callback)=\"OAuthAddAssociation($event)\" [oAuthProviders]=\"oAuthProviders\"></gloww-social-network>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-stroked-button color=\"accent\" class=\"btn-block\" (click)=\"OK() \">OK</button>\r\n</mat-dialog-actions>", styles: [""] }]
|
|
49
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.AuthenticationService }, { type: i1.MatDialog }, { type: i3.AuthenticationServiceConfig, decorators: [{
|
|
50
|
+
type: Optional
|
|
51
|
+
}] }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLW5ldHdvcmstZGxnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy9zb2NpYWwtbmV0d29yay1kbGcvc29jaWFsLW5ldHdvcmstZGxnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy9zb2NpYWwtbmV0d29yay1kbGcvc29jaWFsLW5ldHdvcmstZGxnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBVTVELE1BQU0sT0FBTyx5QkFBeUI7SUFNcEMsWUFBb0IsU0FBa0QsRUFBVSxxQkFBNEMsRUFBVSxNQUFpQixFQUFjLE1BQW9DO1FBQXJMLGNBQVMsR0FBVCxTQUFTLENBQXlDO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDckosSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxDQUFBLCtEQUErRDtRQUM5RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELEVBQUU7UUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFnQjtRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSwwQkFBMEIsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxXQUE2QjtRQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUNwRyxNQUFNLENBQUMsRUFBRTtZQUNQLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUNoQztZQUNELG9EQUFvRDtRQUN0RCxDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7WUFDTixLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBRUYsQ0FBQTtJQUVILENBQUM7O3NIQTNDVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixnRUNYdEMsOHRCQVdxQjsyRkRBUix5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMEJBQTBCOzswQkFVc0gsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9hdXRoYXNzb2NpYXRpb24gfSBmcm9tICcuLy4uLy4uL01vZGVscy9vYXV0aGFzc29jaWF0aW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24tc2VydmljZS1jb25maWcnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9TZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ2xvd3ctc29jaWFsLW5ldHdvcmstZGxnJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc29jaWFsLW5ldHdvcmstZGxnLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zb2NpYWwtbmV0d29yay1kbGcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb2NpYWxOZXR3b3JrRGxnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgb0F1dGhQcm92aWRlcnM6IHN0cmluZ1tdO1xyXG4gIG9BdXRoQXNzb2NpYXRpb25zOiBPYXV0aGFzc29jaWF0aW9uW107XHJcbiAgY29uZmlnOiBBdXRoZW50aWNhdGlvblNlcnZpY2VDb25maWc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U29jaWFsTmV0d29ya0RsZ0NvbXBvbmVudD4sIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIEBPcHRpb25hbCgpIGNvbmZpZz86IEF1dGhlbnRpY2F0aW9uU2VydmljZUNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRPQXV0aFByb3ZpZGVycygpLnN1YnNjcmliZShvYXAgPT4gdGhpcy5vQXV0aFByb3ZpZGVycyA9IG9hcCk7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRPQXV0aEFzc29jaWF0aW9ucygpLnN1YnNjcmliZShvYXAgPT4ge1xyXG4gICAgICB0aGlzLm9BdXRoQXNzb2NpYXRpb25zID0gb2FwOy8vb2FwLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24obmV3IE9hdXRoYXNzb2NpYXRpb24oKSwgaXRlbSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIE9LKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIE9BdXRoQWRkQXNzb2NpYXRpb24ocHJvdmlkZXI6IFN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXJsID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYWRtaW4vQXV0aFVzZXJzL09BdXRoLyR7cHJvdmlkZXJ9LyR7dGhpcy5jb25maWcuZW52aXJvbm1lbnR9YDtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuICBPQXV0aERlbGV0ZUFzc29jaWF0aW9uKGFzc29jaWF0aW9uOiBPYXV0aGFzc29jaWF0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5PQXV0aERlbGV0ZUFzc29jaWF0aW9uKGFzc29jaWF0aW9uLnByb3ZpZGVyLCBhc3NvY2lhdGlvbi5pZE9BdXRoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgYWxlcnQoXCJBc3NvY2lhdGlvbiBzdXBwcmltw6llXCIpO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vQXV0aEFzc29jaWF0aW9ucy5pbmRleE9mKGFzc29jaWF0aW9uLCAwKTtcclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5vQXV0aEFzc29jaWF0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhbGVydChcInVuYWJsZSB0byBkZWxldGUgaXRlbVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy90aGlzLm9BdXRoQXNzb2NpYXRpb25zLmZpbmQoYSA9PiBhID09PSBhc3NvY2lhdGlvblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgYWxlcnQoJ0ltcG9zc2libGUgZFxcJ2VmZmFjZXIgbFxcJ2Fzc29jaWF0aW9uJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICApXHJcblxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5HZXN0aW9uIGRlcyBpZGVudGlmaWNhdGlvbnMgcGFyIHLDqXNlYXV4IHNvY2lhdXg8L2gyPlxyXG48bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGgzPkFzc29jaWF0aW9ucyDDqXRhYmxpZXM8L2gzPlxyXG4gICAgPHA+Q2hvaXNpc3NleiBsJ2Fzc29jaWF0aW9uIHF1ZSB2b3VzIHNvdWhhaXRleiBzdXBwcmltZXI8L3A+XHJcbiAgICA8Z2xvd3ctc29jaWFsLW5ldHdvcmsgKGNhbGxiYWNrKT1cIk9BdXRoRGVsZXRlQXNzb2NpYXRpb24oJGV2ZW50KVwiIFtvQXV0aFByb3ZpZGVyc109XCJvQXV0aEFzc29jaWF0aW9uc1wiPjwvZ2xvd3ctc29jaWFsLW5ldHdvcms+XHJcbiAgICA8aDM+Tm91dmVsbGUgYXNzb2NpYXRpb248L2gzPlxyXG4gICAgPHA+Q2hvaXNpc3NleiBsZSBwcm92aWRlcjwvcD5cclxuICAgIDxnbG93dy1zb2NpYWwtbmV0d29yayAoY2FsbGJhY2spPVwiT0F1dGhBZGRBc3NvY2lhdGlvbigkZXZlbnQpXCIgW29BdXRoUHJvdmlkZXJzXT1cIm9BdXRoUHJvdmlkZXJzXCI+PC9nbG93dy1zb2NpYWwtbmV0d29yaz5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwiYnRuLWJsb2NrXCIgKGNsaWNrKT1cIk9LKCkgXCI+T0s8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { MatDialogConfig } from '@angular/material/dialog';
|
|
3
|
+
import { ChangePasswordDlgComponent } from '../change-password-dlg/change-password-dlg.component';
|
|
4
|
+
import { SocialNetworkDlgComponent } from '../social-network-dlg/social-network-dlg.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../Services/authentication.service";
|
|
7
|
+
import * as i2 from "@angular/material/dialog";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@angular/flex-layout/extended";
|
|
11
|
+
export class UserMenuComponent {
|
|
12
|
+
constructor(authenticationService, dialog, router) {
|
|
13
|
+
this.authenticationService = authenticationService;
|
|
14
|
+
this.dialog = dialog;
|
|
15
|
+
this.router = router;
|
|
16
|
+
this.size = '1x';
|
|
17
|
+
this.imageUser = null;
|
|
18
|
+
this.loginpage = '';
|
|
19
|
+
this.showMenuUser = false;
|
|
20
|
+
this.connected = false;
|
|
21
|
+
const person = this.authenticationService.currentUserValue;
|
|
22
|
+
if (person && person.UserInfo) {
|
|
23
|
+
this.connected = true;
|
|
24
|
+
if (person.UserInfo.Picture) {
|
|
25
|
+
this.imageUser = '/' + authenticationService.environment + '/' + person.UserInfo.Picture;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.authenticationService.getOAuthProviders().subscribe(oap => this.oAuthProviders = oap);
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
}
|
|
32
|
+
Logout() {
|
|
33
|
+
this.showMenuUser = false;
|
|
34
|
+
this.authenticationService.logout();
|
|
35
|
+
this.router.navigate(['/']);
|
|
36
|
+
}
|
|
37
|
+
ChangePassword() {
|
|
38
|
+
this.showMenuUser = true;
|
|
39
|
+
const dialogConfig = new MatDialogConfig();
|
|
40
|
+
dialogConfig.disableClose = true;
|
|
41
|
+
dialogConfig.autoFocus = true;
|
|
42
|
+
dialogConfig.closeOnNavigation = false;
|
|
43
|
+
this.dialog.open(ChangePasswordDlgComponent, dialogConfig).afterClosed().subscribe(result => {
|
|
44
|
+
if (result) {
|
|
45
|
+
alert('Password Changed');
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
toggleMenuUser() {
|
|
50
|
+
this.showMenuUser = !this.showMenuUser;
|
|
51
|
+
}
|
|
52
|
+
Configuration() {
|
|
53
|
+
const dialogConfig = new MatDialogConfig();
|
|
54
|
+
dialogConfig.disableClose = true;
|
|
55
|
+
dialogConfig.autoFocus = true;
|
|
56
|
+
dialogConfig.closeOnNavigation = false;
|
|
57
|
+
this.dialog.open(SocialNetworkDlgComponent, dialogConfig).afterClosed().subscribe(result => {
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
UserMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: UserMenuComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.MatDialog }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
UserMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: UserMenuComponent, selector: "gloww-user-menu", inputs: { size: "size", imageUser: "imageUser", loginpage: "loginpage" }, ngImport: i0, template: "<div *ngIf=\"connected\">\r\n <span (click)=\"toggleMenuUser()\">\r\n <img [src]=\"imageUser\" style=\"height:40px;float:left; padding-left:20px\" *ngIf=\"imageUser\" />\r\n <i [ngClass]=\"'fal fa-user '+size\" *ngIf=\"!imageUser\" style=\"float:left; padding-left:10px\">\r\n <!--[size]=\"size\"-->\r\n </i>\r\n </span>\r\n <div class=\"menuUser\" *ngIf=\"showMenuUser\">\r\n <ul class=\"menuSec\" style=\"border: solid lightgrey;\">\r\n <li (click)=\"ChangePassword()\">\r\n <i class=\"fal fa-key-skeleton\"></i>Change Password\r\n </li>\r\n <li (click)=\"Configuration()\" *ngIf=\"oAuthProviders && oAuthProviders.length\">\r\n <i class=\"fal fa-tools\"></i>Configuration\r\n </li>\r\n <li (click)=\"Logout()\">\r\n <i class=\"fal fa-sign-out\"></i>D\u00E9connexion\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!connected && loginpage\">\r\n <span style=\"height:40px;float:left; padding-left:20px\" [routerLink]=\"loginpage\">Connexion</span>\r\n</div>\r\n", styles: [".menuUser{position:relative}.menuUser ul{text-align:left;position:absolute;top:30px;left:-115px;width:150px;padding:10px;z-index:20;background-color:#fff;font-size:13px;color:#000}.menuUser ul li{height:30px;list-style-type:none}.menuUser ul li i{padding-right:10px;height:30px}ul.menuSec li{cursor:pointer}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }] });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: UserMenuComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'gloww-user-menu', template: "<div *ngIf=\"connected\">\r\n <span (click)=\"toggleMenuUser()\">\r\n <img [src]=\"imageUser\" style=\"height:40px;float:left; padding-left:20px\" *ngIf=\"imageUser\" />\r\n <i [ngClass]=\"'fal fa-user '+size\" *ngIf=\"!imageUser\" style=\"float:left; padding-left:10px\">\r\n <!--[size]=\"size\"-->\r\n </i>\r\n </span>\r\n <div class=\"menuUser\" *ngIf=\"showMenuUser\">\r\n <ul class=\"menuSec\" style=\"border: solid lightgrey;\">\r\n <li (click)=\"ChangePassword()\">\r\n <i class=\"fal fa-key-skeleton\"></i>Change Password\r\n </li>\r\n <li (click)=\"Configuration()\" *ngIf=\"oAuthProviders && oAuthProviders.length\">\r\n <i class=\"fal fa-tools\"></i>Configuration\r\n </li>\r\n <li (click)=\"Logout()\">\r\n <i class=\"fal fa-sign-out\"></i>D\u00E9connexion\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n<div *ngIf=\"!connected && loginpage\">\r\n <span style=\"height:40px;float:left; padding-left:20px\" [routerLink]=\"loginpage\">Connexion</span>\r\n</div>\r\n", styles: [".menuUser{position:relative}.menuUser ul{text-align:left;position:absolute;top:30px;left:-115px;width:150px;padding:10px;z-index:20;background-color:#fff;font-size:13px;color:#000}.menuUser ul li{height:30px;list-style-type:none}.menuUser ul li i{padding-right:10px;height:30px}ul.menuSec li{cursor:pointer}\n"] }]
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.MatDialog }, { type: i3.Router }]; }, propDecorators: { size: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], imageUser: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], loginpage: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvQ29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVsRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7OztBQU8vRixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQW9CLHFCQUE0QyxFQUFVLE1BQWlCLEVBQVUsTUFBYztRQUEvRiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFSMUcsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSWhCLE1BQU0sTUFBTSxHQUFRLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcscUJBQXFCLENBQUMsV0FBVyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzthQUFFO1NBQzNIO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFM0MsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDakMsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDOUIsWUFBWSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUV2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUYsSUFBSSxNQUFNLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFBRTtRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBRTNDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBRTNGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OEdBdkRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlJQ1o5QixzbUNBd0JBOzJGRFphLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxpQkFBaUI7eUpBTWxCLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmREbGdDb21wb25lbnQgfSBmcm9tICcuLi9jaGFuZ2UtcGFzc3dvcmQtZGxnL2NoYW5nZS1wYXNzd29yZC1kbGcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vU2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNvY2lhbE5ldHdvcmtEbGdDb21wb25lbnQgfSBmcm9tICcuLi9zb2NpYWwtbmV0d29yay1kbGcvc29jaWFsLW5ldHdvcmstZGxnLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dsb3d3LXVzZXItbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1tZW51LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgc2l6ZSA9ICcxeCc7XHJcbiAgQElucHV0KCkgaW1hZ2VVc2VyID0gbnVsbDtcclxuICBASW5wdXQoKSBsb2dpbnBhZ2UgPSAnJztcclxuXHJcbiAgc2hvd01lbnVVc2VyID0gZmFsc2U7XHJcbiAgY29ubmVjdGVkID0gZmFsc2U7XHJcbiAgb0F1dGhQcm92aWRlcnM6IHN0cmluZ1tdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICBjb25zdCBwZXJzb246IGFueSA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWU7XHJcbiAgICBpZiAocGVyc29uICYmIHBlcnNvbi5Vc2VySW5mbykge1xyXG4gICAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWU7XHJcbiAgICAgIGlmIChwZXJzb24uVXNlckluZm8uUGljdHVyZSkgeyB0aGlzLmltYWdlVXNlciA9ICcvJyArIGF1dGhlbnRpY2F0aW9uU2VydmljZS5lbnZpcm9ubWVudCArICcvJyArIHBlcnNvbi5Vc2VySW5mby5QaWN0dXJlOyB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRPQXV0aFByb3ZpZGVycygpLnN1YnNjcmliZShvYXAgPT4gdGhpcy5vQXV0aFByb3ZpZGVycyA9IG9hcCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIExvZ291dCgpIHtcclxuICAgIHRoaXMuc2hvd01lbnVVc2VyID0gZmFsc2U7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICB9XHJcblxyXG4gIENoYW5nZVBhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5zaG93TWVudVVzZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG5cclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKENoYW5nZVBhc3N3b3JkRGxnQ29tcG9uZW50LCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHsgYWxlcnQoJ1Bhc3N3b3JkIENoYW5nZWQnKTsgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVNZW51VXNlcigpIHtcclxuICAgIHRoaXMuc2hvd01lbnVVc2VyID0gIXRoaXMuc2hvd01lbnVVc2VyO1xyXG4gIH1cclxuXHJcbiAgQ29uZmlndXJhdGlvbigpIHtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuXHJcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kaWFsb2cub3BlbihTb2NpYWxOZXR3b3JrRGxnQ29tcG9uZW50LCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiY29ubmVjdGVkXCI+XHJcbiAgICA8c3BhbiAoY2xpY2spPVwidG9nZ2xlTWVudVVzZXIoKVwiPlxyXG4gICAgPGltZyBbc3JjXT1cImltYWdlVXNlclwiIHN0eWxlPVwiaGVpZ2h0OjQwcHg7ZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjIwcHhcIiAqbmdJZj1cImltYWdlVXNlclwiIC8+XHJcbiAgICA8aSBbbmdDbGFzc109XCInZmFsIGZhLXVzZXIgJytzaXplXCIgKm5nSWY9XCIhaW1hZ2VVc2VyXCIgc3R5bGU9XCJmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MTBweFwiPlxyXG4gICAgICA8IS0tW3NpemVdPVwic2l6ZVwiLS0+XHJcbiAgICA8L2k+XHJcbiAgPC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVVc2VyXCIgKm5nSWY9XCJzaG93TWVudVVzZXJcIj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJtZW51U2VjXCIgc3R5bGU9XCJib3JkZXI6IHNvbGlkIGxpZ2h0Z3JleTtcIj5cclxuICAgICAgICAgICAgPGxpIChjbGljayk9XCJDaGFuZ2VQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1rZXktc2tlbGV0b25cIj48L2k+Q2hhbmdlIFBhc3N3b3JkXHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAoY2xpY2spPVwiQ29uZmlndXJhdGlvbigpXCIgKm5nSWY9XCJvQXV0aFByb3ZpZGVycyAmJiBvQXV0aFByb3ZpZGVycy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXRvb2xzXCI+PC9pPkNvbmZpZ3VyYXRpb25cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIChjbGljayk9XCJMb2dvdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtc2lnbi1vdXRcIj48L2k+RMOpY29ubmV4aW9uXHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFjb25uZWN0ZWQgJiYgbG9naW5wYWdlXCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImhlaWdodDo0MHB4O2Zsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4XCIgW3JvdXRlckxpbmtdPVwibG9naW5wYWdlXCI+Q29ubmV4aW9uPC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "../gloww-security.module";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class AdministratorGuard {
|
|
7
|
+
constructor(router, authenticationService, platformLocation
|
|
8
|
+
//@Inject(APP_BASE_HREF) baseHref: string
|
|
9
|
+
) {
|
|
10
|
+
this.router = router;
|
|
11
|
+
this.authenticationService = authenticationService;
|
|
12
|
+
this.platformLocation = platformLocation;
|
|
13
|
+
}
|
|
14
|
+
canActivate(route, state) {
|
|
15
|
+
const currentUser = this.authenticationService.currentUserValue.UserInfo;
|
|
16
|
+
return currentUser.IsAdministrator || currentUser.isAdministrator;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
AdministratorGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AdministratorGuard, deps: [{ token: i1.Router }, { token: i2.AuthenticationService }, { token: i3.PlatformLocation }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
AdministratorGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AdministratorGuard, providedIn: 'root' });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AdministratorGuard, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{
|
|
24
|
+
providedIn: 'root'
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthenticationService }, { type: i3.PlatformLocation }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5pc3RyYXRvci5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvZ2xvd3ctc2VjdXJpdHkvSGVscGVycy9hZG1pbmlzdHJhdG9yLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFDVSxNQUFjLEVBQ2QscUJBQTRDLEVBQzVDLGdCQUFrQztJQUMxQyx5Q0FBeUM7O1FBSGpDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFJNUMsQ0FBQztJQUVELFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUMxQixNQUFNLFdBQVcsR0FBUyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQXdCLENBQUMsUUFBUSxDQUFDO1FBQ3ZGLE9BQU8sV0FBVyxDQUFDLGVBQWUsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQ3BFLENBQUM7OytHQWhCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9nbG93dy1zZWN1cml0eS5tb2R1bGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtaW5pc3RyYXRvckd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uXHJcbiAgICAvL0BJbmplY3QoQVBQX0JBU0VfSFJFRikgYmFzZUhyZWY6IHN0cmluZ1xyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XHJcbiAgICBjb25zdCBjdXJyZW50VXNlcjogYW55ID0gKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUgYXMgYW55KS5Vc2VySW5mbztcclxuICAgIHJldHVybiBjdXJyZW50VXNlci5Jc0FkbWluaXN0cmF0b3IgfHwgY3VycmVudFVzZXIuaXNBZG1pbmlzdHJhdG9yO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|