Implement menu container and mat-drawer for visualizing scriptaccount overview
This commit is contained in:
parent
c0288ee445
commit
9505f5a0a4
@ -30,13 +30,13 @@
|
|||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
"tsConfig": "src/tsconfig.app.json",
|
"tsConfig": "src/tsconfig.app.json",
|
||||||
"polyfills": "src/polyfills.ts",
|
"polyfills": "src/polyfills.ts",
|
||||||
"inlineStyleLanguage": "scss",
|
"inlineStyleLanguage": "css",
|
||||||
"assets": [
|
"assets": [
|
||||||
"src/favicon.ico",
|
"src/favicon.ico",
|
||||||
"src/assets"
|
"src/assets"
|
||||||
],
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"src/styles.scss"
|
"src/styles.css"
|
||||||
],
|
],
|
||||||
"scripts": [],
|
"scripts": [],
|
||||||
"customWebpackConfig": {
|
"customWebpackConfig": {
|
||||||
|
@ -1,3 +1,103 @@
|
|||||||
.background {
|
.full-height-container {
|
||||||
|
height: 99vh;
|
||||||
|
background-color: #2b2d30;
|
||||||
|
width: 40px;
|
||||||
|
|
||||||
|
border-right: #b9b9b9;
|
||||||
|
border-right-style: solid;
|
||||||
|
border-right-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-icon-button {
|
||||||
|
width: 28px !important;
|
||||||
|
height: 28px !important;
|
||||||
|
padding: 0px !important;
|
||||||
|
display: inline-flex !important;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
& > *[role=img] {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
font-size: 20px;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-mdc-button-touch-target {
|
||||||
|
width: 24px !important;
|
||||||
|
height: 24px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-icon-button mat-icon {
|
||||||
|
color: whitesmoke;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected {
|
||||||
|
background-color: #4e5157;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-sidenav-content {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-sidenav {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Adjust the vertical alignment of the icon within the button */
|
||||||
|
.mat-button-wrapper {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
border: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidenav-header {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-sidenav-btn {
|
||||||
|
margin-top: 5px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidenav-header:hover + .close-sidenav-btn {
|
||||||
|
display: block;
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app-editor {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-form {
|
||||||
|
min-width: 150px;
|
||||||
|
max-width: 500px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-full-width {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
@ -1 +1,32 @@
|
|||||||
<mat-icon>add</mat-icon>
|
<div class="container">
|
||||||
|
<div class="full-height-container">
|
||||||
|
<button mat-icon-button class="small-icon-button" [ngClass]="openContent === ModelComponentType.SCRIPTACCOUNT ? 'selected':''"
|
||||||
|
(click)="openScriptAccountsOverview()"><mat-icon>inventory_2</mat-icon></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<mat-drawer-container class="example-container" autosize>
|
||||||
|
<mat-drawer #drawer class="example-sidenav" mode="side">
|
||||||
|
<div class="sidenav-header">
|
||||||
|
<button mat-button [matMenuTriggerFor]="contentMenu">
|
||||||
|
<span class="mat-button-wrapper">{{ModelComponentTypeUtillities.toString(openContent)}}
|
||||||
|
<mat-icon class="mat-icon">expand_more</mat-icon>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button mat-icon-button class="small-icon-button close-sidenav-btn" (click)="closeContentOverview()"><mat-icon>close</mat-icon></button>
|
||||||
|
<mat-menu #contentMenu="matMenu">
|
||||||
|
<button mat-menu-item (click)="openScriptAccountsOverview()">{{ModelComponentTypeUtillities.toString(ModelComponentType.SCRIPTACCOUNT)}}</button>
|
||||||
|
</mat-menu>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</mat-drawer>
|
||||||
|
|
||||||
|
<div class="example-sidenav-content">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</mat-drawer-container>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
import { Component } from '@angular/core';
|
import {Component, ViewChild} from '@angular/core';
|
||||||
import { ElectronService } from './core/services';
|
import {ElectronService} from './core/services';
|
||||||
import { APP_CONFIG } from '../environments/environment';
|
import {APP_CONFIG} from '../environments/environment';
|
||||||
|
import {ModelComponentType} from "./game-model/ModelComponentType";
|
||||||
|
import {MatDrawerContainer} from "@angular/material/sidenav";
|
||||||
|
import {ModelComponentTypeUtillities} from "./game-model/ModelComponentTypeUtillities";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
@ -8,6 +11,10 @@ import { APP_CONFIG } from '../environments/environment';
|
|||||||
styleUrls: ['./app.component.css']
|
styleUrls: ['./app.component.css']
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
|
|
||||||
|
openContent : ModelComponentType | undefined = undefined;
|
||||||
|
@ViewChild('drawer') drawer: MatDrawerContainer|undefined
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private electronService: ElectronService,
|
private electronService: ElectronService,
|
||||||
) {
|
) {
|
||||||
@ -22,4 +29,18 @@ export class AppComponent {
|
|||||||
console.log('Run in browser');
|
console.log('Run in browser');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
openScriptAccountsOverview() {
|
||||||
|
this.openContent = ModelComponentType.SCRIPTACCOUNT
|
||||||
|
this.drawer!.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected readonly ModelComponentType = ModelComponentType;
|
||||||
|
|
||||||
|
closeContentOverview() {
|
||||||
|
this.drawer!.close();
|
||||||
|
this.openContent = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected readonly ModelComponentTypeUtillities = ModelComponentTypeUtillities;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,12 @@ import {CoreModule} from "./core/core.module";
|
|||||||
import {SharedModule} from "./shared/shared.module";
|
import {SharedModule} from "./shared/shared.module";
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
import {MatIcon} from "@angular/material/icon";
|
import {MatIcon} from "@angular/material/icon";
|
||||||
|
import {MatToolbar} from "@angular/material/toolbar";
|
||||||
|
import {MatButton, MatIconButton} from "@angular/material/button";
|
||||||
|
import {MatFormField} from "@angular/material/form-field";
|
||||||
|
import {MatInput} from "@angular/material/input";
|
||||||
|
import {MatDrawer, MatDrawerContainer} from "@angular/material/sidenav";
|
||||||
|
import {MatMenu, MatMenuItem, MatMenuTrigger} from "@angular/material/menu";
|
||||||
|
|
||||||
// AoT requires an exported function for factories
|
// AoT requires an exported function for factories
|
||||||
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
||||||
@ -32,7 +38,17 @@ const httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => new Transl
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
BrowserAnimationsModule,
|
BrowserAnimationsModule,
|
||||||
MatIcon
|
MatIcon,
|
||||||
|
MatToolbar,
|
||||||
|
MatButton,
|
||||||
|
MatFormField,
|
||||||
|
MatInput,
|
||||||
|
MatDrawerContainer,
|
||||||
|
MatDrawer,
|
||||||
|
MatIconButton,
|
||||||
|
MatMenuTrigger,
|
||||||
|
MatMenu,
|
||||||
|
MatMenuItem
|
||||||
],
|
],
|
||||||
providers: [],
|
providers: [],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
export enum ModelComponentType {
|
export enum ModelComponentType {
|
||||||
SCRIPTACCOUNT
|
SCRIPTACCOUNT
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
10
src/app/game-model/ModelComponentTypeUtillities.ts
Normal file
10
src/app/game-model/ModelComponentTypeUtillities.ts
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import {ModelComponentType} from "./ModelComponentType";
|
||||||
|
|
||||||
|
export class ModelComponentTypeUtillities {
|
||||||
|
static toString(modelComponentType: ModelComponentType | undefined): string {
|
||||||
|
switch (modelComponentType) {
|
||||||
|
case ModelComponentType.SCRIPTACCOUNT: return "ScriptAccounts";
|
||||||
|
default: return "Undefined";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,50 +0,0 @@
|
|||||||
/* You can add global styles to this file, and also import other style files */
|
|
||||||
html, body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
height: 100%;
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* CAN (MUST) BE REMOVED ! Sample Global style */
|
|
||||||
.container {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
background: url(./assets/background.jpg) no-repeat center fixed;
|
|
||||||
-webkit-background-size: cover; /* pour anciens Chrome et Safari */
|
|
||||||
background-size: cover; /* version standardisée */
|
|
||||||
|
|
||||||
.title {
|
|
||||||
color: white;
|
|
||||||
margin: 0;
|
|
||||||
padding: 50px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #fff !important;
|
|
||||||
text-transform: uppercase;
|
|
||||||
text-decoration: none;
|
|
||||||
background: #ed3330;
|
|
||||||
padding: 20px;
|
|
||||||
border-radius: 5px;
|
|
||||||
display: inline-block;
|
|
||||||
border: none;
|
|
||||||
transition: all 0.4s ease 0s;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #fff;
|
|
||||||
color: #ed3330 !important;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
-webkit-box-shadow: 0px 5px 40px -10px rgba(0,0,0,0.57);
|
|
||||||
-moz-box-shadow: 0px 5px 40px -10px rgba(0,0,0,0.57);
|
|
||||||
box-shadow: 5px 40px -10px rgba(0,0,0,0.57);
|
|
||||||
transition: all 0.4s ease 0s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user