@deenruv/admin-ui-plugin 1.0.3 → 1.0.5

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 CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  `npm install @deenruv/admin-ui-plugin`
4
4
 
5
- For documentation, see [docs.deenruv.io/reference/core-plugins/admin-ui-plugin/](https://docs.deenruv.io/reference/core-plugins/admin-ui-plugin/)
5
+ For documentation, see [docs.deenruv.com/reference/core-plugins/admin-ui-plugin/](https://docs.deenruv.com/reference/core-plugins/admin-ui-plugin/)
@@ -1 +1 @@
1
- {"version":3,"file":"625.dcebcb5d388a4c6b.js","mappings":"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","names":["i0","ctx_r0","imageCreatorUrl","imageCreator","imageUnsplashUrl","imageLocation","imageUrl","LoginComponent","constructor","authService","router","httpClient","localizationService","this","username","password","rememberMe","version","ADMIN_UI_VERSION","brand","getAppConfig","hideDeenruvBranding","customImageUrl","loginImageUrl","loadImage","ngOnInit","direction$","logIn","errorMessage","undefined","subscribe","result","__typename","redirect","getRedirectRoute","navigateByUrl","message","updateImage","res","user","location","urls","regular","name","links","html","redirectTo","re","RegExp","AUTH_REDIRECT_PARAM","redirectToParam","window","search","match","length","atob","decodeURIComponent","i1","i2","i3","selectors","decls","vars","consts","template","rf","ctx","LoginComponent_p_9_Template","LoginComponent_p_10_Template","LoginComponent_img_11_Template","$event","LoginComponent_img_35_Template","_c0","LoginGuard","canActivate","route","checkAuthenticatedStatus","pipe","map","authenticated","navigate","factory","ɵfac","providedIn","loginRoutes","path","component","pathMatch","LoginModule","SharedModule","RouterModule","forChild"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/lib/login/src/components/login/login.component.html","./src/lib/login/src/components/login/login.component.ts","./src/lib/login/src/providers/login.guard.ts","./src/lib/login/src/login.routes.ts","./src/lib/login/src/login.module.ts"],"sourcesContent":["<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\n <div class=\"login-wrapper-inner\">\n <div class=\"login-wrapper-image\">\n <div class=\"login-wrapper-image-content\">\n <div class=\"login-wrapper-image-title\">\n {{ 'common.login-image-title' | translate }}\n </div>\n <div class=\"login-wrapper-image-copyright\">\n <p *ngIf=\"imageCreator\" class=\"creator\">\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\n </p>\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\n </div>\n </div>\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\n </div>\n <div class=\"login-wrapper-form\">\n <p class=\"login-title\">\n {{ 'common.login-title' | translate: { brand: hideDeenruvBranding ? brand : 'Deenruv' } }}\n </p>\n <form class=\"login-form\">\n <div class=\"login-group\">\n <input\n class=\"username\"\n type=\"text\"\n name=\"username\"\n id=\"login_username\"\n [(ngModel)]=\"username\"\n [placeholder]=\"'common.username' | translate\"\n />\n <input\n class=\"password\"\n name=\"password\"\n type=\"password\"\n id=\"login_password\"\n [(ngModel)]=\"password\"\n [placeholder]=\"'common.password' | translate\"\n />\n <clr-alert\n [clrAlertType]=\"'danger'\"\n [clrAlertClosable]=\"false\"\n [class.visible]=\"errorMessage\"\n class=\"login-error\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ errorMessage }}\n </span>\n </clr-alert-item>\n </clr-alert>\n <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n id=\"rememberme\"\n name=\"rememberme\"\n [(ngModel)]=\"rememberMe\"\n />\n <label>{{ 'common.remember-me' | translate }}</label>\n </clr-checkbox-wrapper>\n <div>\n <button\n type=\"submit\"\n class=\"button primary login-button\"\n (click)=\"logIn()\"\n [disabled]=\"!username || !password\"\n >\n {{ 'common.login' | translate }}\n </button>\n </div>\n </div>\n </form>\n </div>\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideDeenruvBranding\" />\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n ADMIN_UI_VERSION,\n AuthService,\n AUTH_REDIRECT_PARAM,\n getAppConfig,\n LocalizationDirectionType,\n LocalizationService,\n} from '@deenruv/admin-ui/core';\n\n@Component({\n selector: 'vdr-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit {\n direction$: LocalizationDirectionType;\n\n username = '';\n password = '';\n rememberMe = false;\n version = ADMIN_UI_VERSION;\n errorMessage: string | undefined;\n brand = getAppConfig().brand;\n hideDeenruvBranding = getAppConfig().hideDeenruvBranding;\n customImageUrl = getAppConfig().loginImageUrl;\n imageUrl = '';\n imageUnsplashUrl = '';\n imageLocation = '';\n imageCreator = '';\n imageCreatorUrl = '';\n\n constructor(\n private authService: AuthService,\n private router: Router,\n private httpClient: HttpClient,\n private localizationService: LocalizationService,\n ) {\n if (this.customImageUrl) {\n this.imageUrl = this.customImageUrl;\n } else {\n this.loadImage();\n }\n }\n ngOnInit(): void {\n this.direction$ = this.localizationService.direction$;\n }\n\n logIn(): void {\n this.errorMessage = undefined;\n this.authService.logIn(this.username, this.password, this.rememberMe).subscribe(result => {\n switch (result.__typename) {\n case 'CurrentUser':\n const redirect = this.getRedirectRoute();\n this.router.navigateByUrl(redirect ? redirect : '/');\n break;\n case 'InvalidCredentialsError':\n case 'NativeAuthStrategyError':\n this.errorMessage = result.message;\n break;\n }\n });\n }\n\n loadImage() {\n // this.httpClient\n // .get('https://login-image.deenruv.io')\n // .toPromise()\n // .then(res => {\n // this.updateImage(res);\n // });\n }\n\n updateImage(res: any) {\n const user: any = (res as any).user;\n const location: any = (res as any).location;\n\n this.imageUrl = res.urls.regular;\n this.imageCreator = user.name;\n this.imageLocation = location.name;\n this.imageCreatorUrl = user.links.html;\n this.imageUnsplashUrl = res.links.html;\n }\n\n /**\n * Attempts to read a redirect param from the current url and parse it into a\n * route from which the user was redirected after a 401 error.\n */\n private getRedirectRoute(): string | undefined {\n let redirectTo: string | undefined;\n const re = new RegExp(`${AUTH_REDIRECT_PARAM}=(.*)`);\n try {\n const redirectToParam = window.location.search.match(re);\n if (redirectToParam && 1 < redirectToParam.length) {\n redirectTo = atob(decodeURIComponent(redirectToParam[1]));\n }\n } catch (e: any) {\n // ignore\n }\n return redirectTo;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { AuthService } from '@deenruv/admin-ui/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * This guard prevents loggen-in users from navigating to the login screen.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginGuard {\n constructor(\n private router: Router,\n private authService: AuthService,\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.authService.checkAuthenticatedStatus().pipe(\n map(authenticated => {\n if (authenticated) {\n this.router.navigate(['/']);\n }\n return !authenticated;\n }),\n );\n }\n}\n","import { Routes } from '@angular/router';\n\nimport { LoginComponent } from './components/login/login.component';\nimport { LoginGuard } from './providers/login.guard';\n\nexport const loginRoutes: Routes = [\n {\n path: '',\n component: LoginComponent,\n pathMatch: 'full',\n canActivate: [LoginGuard],\n },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@deenruv/admin-ui/core';\n\nimport { LoginComponent } from './components/login/login.component';\nimport { loginRoutes } from './login.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(loginRoutes)],\n exports: [],\n declarations: [LoginComponent],\n})\nexport class LoginModule {}\n"],"x_google_ignoreList":[]}
1
+ {"version":3,"file":"625.dcebcb5d388a4c6b.js","mappings":"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","names":["i0","ctx_r0","imageCreatorUrl","imageCreator","imageUnsplashUrl","imageLocation","imageUrl","LoginComponent","constructor","authService","router","httpClient","localizationService","this","username","password","rememberMe","version","ADMIN_UI_VERSION","brand","getAppConfig","hideDeenruvBranding","customImageUrl","loginImageUrl","loadImage","ngOnInit","direction$","logIn","errorMessage","undefined","subscribe","result","__typename","redirect","getRedirectRoute","navigateByUrl","message","updateImage","res","user","location","urls","regular","name","links","html","redirectTo","re","RegExp","AUTH_REDIRECT_PARAM","redirectToParam","window","search","match","length","atob","decodeURIComponent","i1","i2","i3","selectors","decls","vars","consts","template","rf","ctx","LoginComponent_p_9_Template","LoginComponent_p_10_Template","LoginComponent_img_11_Template","$event","LoginComponent_img_35_Template","_c0","LoginGuard","canActivate","route","checkAuthenticatedStatus","pipe","map","authenticated","navigate","factory","ɵfac","providedIn","loginRoutes","path","component","pathMatch","LoginModule","SharedModule","RouterModule","forChild"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/lib/login/src/components/login/login.component.html","./src/lib/login/src/components/login/login.component.ts","./src/lib/login/src/providers/login.guard.ts","./src/lib/login/src/login.routes.ts","./src/lib/login/src/login.module.ts"],"sourcesContent":["<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\n <div class=\"login-wrapper-inner\">\n <div class=\"login-wrapper-image\">\n <div class=\"login-wrapper-image-content\">\n <div class=\"login-wrapper-image-title\">\n {{ 'common.login-image-title' | translate }}\n </div>\n <div class=\"login-wrapper-image-copyright\">\n <p *ngIf=\"imageCreator\" class=\"creator\">\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\n </p>\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\n </div>\n </div>\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\n </div>\n <div class=\"login-wrapper-form\">\n <p class=\"login-title\">\n {{ 'common.login-title' | translate: { brand: hideDeenruvBranding ? brand : 'Deenruv' } }}\n </p>\n <form class=\"login-form\">\n <div class=\"login-group\">\n <input\n class=\"username\"\n type=\"text\"\n name=\"username\"\n id=\"login_username\"\n [(ngModel)]=\"username\"\n [placeholder]=\"'common.username' | translate\"\n />\n <input\n class=\"password\"\n name=\"password\"\n type=\"password\"\n id=\"login_password\"\n [(ngModel)]=\"password\"\n [placeholder]=\"'common.password' | translate\"\n />\n <clr-alert\n [clrAlertType]=\"'danger'\"\n [clrAlertClosable]=\"false\"\n [class.visible]=\"errorMessage\"\n class=\"login-error\"\n >\n <clr-alert-item>\n <span class=\"alert-text\">\n {{ errorMessage }}\n </span>\n </clr-alert-item>\n </clr-alert>\n <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n id=\"rememberme\"\n name=\"rememberme\"\n [(ngModel)]=\"rememberMe\"\n />\n <label>{{ 'common.remember-me' | translate }}</label>\n </clr-checkbox-wrapper>\n <div>\n <button\n type=\"submit\"\n class=\"button primary login-button\"\n (click)=\"logIn()\"\n [disabled]=\"!username || !password\"\n >\n {{ 'common.login' | translate }}\n </button>\n </div>\n </div>\n </form>\n </div>\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideDeenruvBranding\" />\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n ADMIN_UI_VERSION,\n AuthService,\n AUTH_REDIRECT_PARAM,\n getAppConfig,\n LocalizationDirectionType,\n LocalizationService,\n} from '@deenruv/admin-ui/core';\n\n@Component({\n selector: 'vdr-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss'],\n})\nexport class LoginComponent implements OnInit {\n direction$: LocalizationDirectionType;\n\n username = '';\n password = '';\n rememberMe = false;\n version = ADMIN_UI_VERSION;\n errorMessage: string | undefined;\n brand = getAppConfig().brand;\n hideDeenruvBranding = getAppConfig().hideDeenruvBranding;\n customImageUrl = getAppConfig().loginImageUrl;\n imageUrl = '';\n imageUnsplashUrl = '';\n imageLocation = '';\n imageCreator = '';\n imageCreatorUrl = '';\n\n constructor(\n private authService: AuthService,\n private router: Router,\n private httpClient: HttpClient,\n private localizationService: LocalizationService,\n ) {\n if (this.customImageUrl) {\n this.imageUrl = this.customImageUrl;\n } else {\n this.loadImage();\n }\n }\n ngOnInit(): void {\n this.direction$ = this.localizationService.direction$;\n }\n\n logIn(): void {\n this.errorMessage = undefined;\n this.authService.logIn(this.username, this.password, this.rememberMe).subscribe(result => {\n switch (result.__typename) {\n case 'CurrentUser':\n const redirect = this.getRedirectRoute();\n this.router.navigateByUrl(redirect ? redirect : '/');\n break;\n case 'InvalidCredentialsError':\n case 'NativeAuthStrategyError':\n this.errorMessage = result.message;\n break;\n }\n });\n }\n\n loadImage() {\n // this.httpClient\n // .get('https://login-image.deenruv.com')\n // .toPromise()\n // .then(res => {\n // this.updateImage(res);\n // });\n }\n\n updateImage(res: any) {\n const user: any = (res as any).user;\n const location: any = (res as any).location;\n\n this.imageUrl = res.urls.regular;\n this.imageCreator = user.name;\n this.imageLocation = location.name;\n this.imageCreatorUrl = user.links.html;\n this.imageUnsplashUrl = res.links.html;\n }\n\n /**\n * Attempts to read a redirect param from the current url and parse it into a\n * route from which the user was redirected after a 401 error.\n */\n private getRedirectRoute(): string | undefined {\n let redirectTo: string | undefined;\n const re = new RegExp(`${AUTH_REDIRECT_PARAM}=(.*)`);\n try {\n const redirectToParam = window.location.search.match(re);\n if (redirectToParam && 1 < redirectToParam.length) {\n redirectTo = atob(decodeURIComponent(redirectToParam[1]));\n }\n } catch (e: any) {\n // ignore\n }\n return redirectTo;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { AuthService } from '@deenruv/admin-ui/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * This guard prevents loggen-in users from navigating to the login screen.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginGuard {\n constructor(\n private router: Router,\n private authService: AuthService,\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean> {\n return this.authService.checkAuthenticatedStatus().pipe(\n map(authenticated => {\n if (authenticated) {\n this.router.navigate(['/']);\n }\n return !authenticated;\n }),\n );\n }\n}\n","import { Routes } from '@angular/router';\n\nimport { LoginComponent } from './components/login/login.component';\nimport { LoginGuard } from './providers/login.guard';\n\nexport const loginRoutes: Routes = [\n {\n path: '',\n component: LoginComponent,\n pathMatch: 'full',\n canActivate: [LoginGuard],\n },\n];\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@deenruv/admin-ui/core';\n\nimport { LoginComponent } from './components/login/login.component';\nimport { loginRoutes } from './login.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(loginRoutes)],\n exports: [],\n declarations: [LoginComponent],\n})\nexport class LoginModule {}\n"],"x_google_ignoreList":[]}
@@ -10,5 +10,5 @@
10
10
  <link rel="stylesheet" href="styles.2de83a2df5e76526.css"></head>
11
11
  <body>
12
12
  <vdr-root></vdr-root>
13
- <script src="runtime.a5cdb711a88cbe84.js" type="module"></script><script src="polyfills.1a17a424a4c33f9c.js" type="module"></script><script src="main.9475b52c2cd42c70.js" type="module"></script></body>
13
+ <script src="runtime.a5cdb711a88cbe84.js" type="module"></script><script src="polyfills.1a17a424a4c33f9c.js" type="module"></script><script src="main.a8f787a8acf953f0.js" type="module"></script></body>
14
14
  </html>