add components
This commit is contained in:
parent
f553c47bc8
commit
e08e104efc
25
src/app/components/main/main-menu/main-menu.component.html
Normal file
25
src/app/components/main/main-menu/main-menu.component.html
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<menu>
|
||||||
|
<div class="sk-search-panel">
|
||||||
|
<skirda-input [formControl]="search" size="l" placeholder="Quick search">
|
||||||
|
<skirda-icon name="search" size="16" role="left"></skirda-icon>
|
||||||
|
</skirda-input>
|
||||||
|
<button>
|
||||||
|
<skirda-icon name="menu-panel" color="var(--sk-accent)"></skirda-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="sk-sections">
|
||||||
|
<skirda-section class="active">
|
||||||
|
<skirda-icon name="server"></skirda-icon>
|
||||||
|
<skirda-heading size="6">Servers</skirda-heading>
|
||||||
|
</skirda-section>
|
||||||
|
<skirda-section>
|
||||||
|
<skirda-icon name="game"></skirda-icon>
|
||||||
|
<skirda-heading size="6">Games</skirda-heading>
|
||||||
|
</skirda-section>
|
||||||
|
<skirda-section>
|
||||||
|
<skirda-icon name="friends"></skirda-icon>
|
||||||
|
<skirda-heading size="6">Friends</skirda-heading>
|
||||||
|
</skirda-section>
|
||||||
|
</div>
|
||||||
|
<app-menu-sessions></app-menu-sessions>
|
||||||
|
</menu>
|
44
src/app/components/main/main-menu/main-menu.component.scss
Normal file
44
src/app/components/main/main-menu/main-menu.component.scss
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
width: 340px;
|
||||||
|
|
||||||
|
menu {
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(0,0,0,0.4);
|
||||||
|
padding: 2rem 0.5rem 0.5rem 0.5rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
backdrop-filter: blur(64px);
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
.sk-search-panel {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.625rem;
|
||||||
|
|
||||||
|
skirda-input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
height: 100%;
|
||||||
|
aspect-ratio: 1/1;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
outline: none;
|
||||||
|
appearance: none;
|
||||||
|
background: none;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sk-sections {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.1875rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MainMenuComponent } from './main-menu.component';
|
||||||
|
|
||||||
|
describe('MainMenuComponent', () => {
|
||||||
|
let component: MainMenuComponent;
|
||||||
|
let fixture: ComponentFixture<MainMenuComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ MainMenuComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(MainMenuComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
15
src/app/components/main/main-menu/main-menu.component.ts
Normal file
15
src/app/components/main/main-menu/main-menu.component.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { FormControl } from '@angular/forms';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-main-menu',
|
||||||
|
templateUrl: './main-menu.component.html',
|
||||||
|
styleUrls: ['./main-menu.component.scss'],
|
||||||
|
})
|
||||||
|
export class MainMenuComponent implements OnInit {
|
||||||
|
search = new FormControl<string>('');
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
ngOnInit(): void {}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
<skirda-section-label>
|
||||||
|
Active sessions <div class="count">3</div>
|
||||||
|
</skirda-section-label>
|
||||||
|
<div class="sessions">
|
||||||
|
<skirda-session [ngClass]="{'active': i == 1}" *ngFor="let session of sessions; index as i" [session]="session"></skirda-session>
|
||||||
|
</div>
|
@ -0,0 +1,9 @@
|
|||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
.sessions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 3px;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MenuSessionsComponent } from './menu-sessions.component';
|
||||||
|
|
||||||
|
describe('MenuSessionsComponent', () => {
|
||||||
|
let component: MenuSessionsComponent;
|
||||||
|
let fixture: ComponentFixture<MenuSessionsComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ MenuSessionsComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(MenuSessionsComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,35 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { Session } from 'projects/ui/src/lib/interfaces/session';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-menu-sessions',
|
||||||
|
templateUrl: './menu-sessions.component.html',
|
||||||
|
styleUrls: ['./menu-sessions.component.scss'],
|
||||||
|
})
|
||||||
|
export class MenuSessionsComponent implements OnInit {
|
||||||
|
sessions: Session[] = [
|
||||||
|
{
|
||||||
|
icon: '/assets/games-icons/gmod.png',
|
||||||
|
title: 'Minecraft',
|
||||||
|
version: '000',
|
||||||
|
status: 'text',
|
||||||
|
expires: new Date(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: '/assets/games-icons/openarena.jpg',
|
||||||
|
title: 'Minecraft 2',
|
||||||
|
version: '000',
|
||||||
|
expires: new Date(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: '/assets/games-icons/gmod.png',
|
||||||
|
title: 'Minecraft 3',
|
||||||
|
version: '000',
|
||||||
|
expires: new Date(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
ngOnInit(): void {}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
<div class="main-wrapper" [style.background-image]="'url(' + image + ')'">
|
||||||
|
<app-main-menu></app-main-menu>
|
||||||
|
<div class="content">
|
||||||
|
content will be here
|
||||||
|
</div>
|
||||||
|
</div>
|
20
src/app/components/main/main-root/main-root.component.scss
Normal file
20
src/app/components/main/main-root/main-root.component.scss
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
.main-wrapper {
|
||||||
|
display: flex;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
// background-image: url('https://images.unsplash.com/photo-1580234811497-9df7fd2f357e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2934&q=80');
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
flex: 1;
|
||||||
|
background-color: rgba(0,0,0,0.05);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
backdrop-filter: blur(1rem);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { MainRootComponent } from './main-root.component';
|
||||||
|
|
||||||
|
describe('MainRootComponent', () => {
|
||||||
|
let component: MainRootComponent;
|
||||||
|
let fixture: ComponentFixture<MainRootComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ MainRootComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(MainRootComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
24
src/app/components/main/main-root/main-root.component.ts
Normal file
24
src/app/components/main/main-root/main-root.component.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { FastAverageColor } from 'fast-average-color';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-main-root',
|
||||||
|
templateUrl: './main-root.component.html',
|
||||||
|
styleUrls: ['./main-root.component.scss'],
|
||||||
|
})
|
||||||
|
export class MainRootComponent implements OnInit {
|
||||||
|
image: string = 'assets/games-icons/gmod.png';
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.setColors();
|
||||||
|
}
|
||||||
|
|
||||||
|
setColors() {
|
||||||
|
// extractColors(this.image).then((value) => {
|
||||||
|
// console.log(value);
|
||||||
|
// });
|
||||||
|
console.log(FastAverageColor);
|
||||||
|
}
|
||||||
|
}
|
14
src/app/components/main/main.module.ts
Normal file
14
src/app/components/main/main.module.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { MainRootComponent } from './main-root/main-root.component';
|
||||||
|
import { MainMenuComponent } from './main-menu/main-menu.component';
|
||||||
|
import { UiModule } from 'projects/ui/src/lib/ui.module';
|
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
import { MenuSessionsComponent } from './main-menu/menu-sessions/menu-sessions.component';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [MainRootComponent, MainMenuComponent, MenuSessionsComponent],
|
||||||
|
imports: [CommonModule, UiModule, ReactiveFormsModule, FormsModule],
|
||||||
|
exports: [MainRootComponent, MainMenuComponent, MenuSessionsComponent],
|
||||||
|
})
|
||||||
|
export class MainModule {}
|
9
src/app/components/playground/playground.component.html
Normal file
9
src/app/components/playground/playground.component.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<tui-root>
|
||||||
|
Test (version: {{version}})
|
||||||
|
|
||||||
|
<button (click)="getVersion()">Get version</button>
|
||||||
|
<app-games-bar></app-games-bar>
|
||||||
|
<!-- <button (click)="RunGame()">Launch Open Arena</button> -->
|
||||||
|
<!-- <button (click)="launchGame2()">Launch Garry's Mod</button> -->
|
||||||
|
|
||||||
|
</tui-root>
|
3
src/app/components/playground/playground.component.scss
Normal file
3
src/app/components/playground/playground.component.scss
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
:host {
|
||||||
|
display: block;
|
||||||
|
}
|
23
src/app/components/playground/playground.component.spec.ts
Normal file
23
src/app/components/playground/playground.component.spec.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { PlaygroundComponent } from './playground.component';
|
||||||
|
|
||||||
|
describe('PlaygroundComponent', () => {
|
||||||
|
let component: PlaygroundComponent;
|
||||||
|
let fixture: ComponentFixture<PlaygroundComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ PlaygroundComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(PlaygroundComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
25
src/app/components/playground/playground.component.ts
Normal file
25
src/app/components/playground/playground.component.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-playground',
|
||||||
|
templateUrl: './playground.component.html',
|
||||||
|
styleUrls: ['./playground.component.scss'],
|
||||||
|
})
|
||||||
|
export class PlaygroundComponent implements OnInit {
|
||||||
|
title = 'go-web';
|
||||||
|
version: string | null = null;
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
getVersion() {
|
||||||
|
document.addEventListener('GetVersion_Callback', (event: Event): void => {
|
||||||
|
if (!(event instanceof CustomEvent<string>)) return;
|
||||||
|
this.version = event.detail;
|
||||||
|
});
|
||||||
|
//GetVersion();
|
||||||
|
}
|
||||||
|
}
|
12
src/app/components/playground/playground.module.ts
Normal file
12
src/app/components/playground/playground.module.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { PlaygroundComponent } from './playground.component';
|
||||||
|
import { GamesBarModule } from '../games-bar/games-bar.module';
|
||||||
|
import { TuiRootModule } from '@taiga-ui/core';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [PlaygroundComponent],
|
||||||
|
imports: [CommonModule, GamesBarModule, TuiRootModule],
|
||||||
|
exports: [PlaygroundComponent],
|
||||||
|
})
|
||||||
|
export class PlaygroundModule {}
|
22
src/app/components/sandbox/sandbox.component.html
Normal file
22
src/app/components/sandbox/sandbox.component.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<h3>Icon</h3>
|
||||||
|
<div class="line">
|
||||||
|
<skirda-icon [name]="'search'" [size]="16"></skirda-icon>
|
||||||
|
<skirda-icon [name]="'friends'" [size]="24" color="red"></skirda-icon>
|
||||||
|
<skirda-icon [name]="'server'" [size]="48"></skirda-icon>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h3>Input</h3>
|
||||||
|
<div>Single control</div>
|
||||||
|
<skirda-input [formControl]="control"></skirda-input>
|
||||||
|
|
||||||
|
<div>Form group</div>
|
||||||
|
<form [formGroup]="form">
|
||||||
|
<skirda-input formControlName="name" placeholder="Search" size="xl">
|
||||||
|
<skirda-icon name="search" role="left" [size]="16"></skirda-icon>
|
||||||
|
</skirda-input>
|
||||||
|
<skirda-input formControlName="age" placeholder="Age"></skirda-input>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<hr>
|
18
src/app/components/sandbox/sandbox.component.scss
Normal file
18
src/app/components/sandbox/sandbox.component.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
:host {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1rem;
|
||||||
|
padding: 2rem;
|
||||||
|
|
||||||
|
.line {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
}
|
23
src/app/components/sandbox/sandbox.component.spec.ts
Normal file
23
src/app/components/sandbox/sandbox.component.spec.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { SandboxComponent } from './sandbox.component';
|
||||||
|
|
||||||
|
describe('SandboxComponent', () => {
|
||||||
|
let component: SandboxComponent;
|
||||||
|
let fixture: ComponentFixture<SandboxComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
declarations: [ SandboxComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(SandboxComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
24
src/app/components/sandbox/sandbox.component.ts
Normal file
24
src/app/components/sandbox/sandbox.component.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { FormControl, FormGroup } from '@angular/forms';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-sandbox',
|
||||||
|
templateUrl: './sandbox.component.html',
|
||||||
|
styleUrls: ['./sandbox.component.scss'],
|
||||||
|
})
|
||||||
|
export class SandboxComponent implements OnInit {
|
||||||
|
control = new FormControl<string>('Sample text');
|
||||||
|
|
||||||
|
form = new FormGroup({
|
||||||
|
name: new FormControl<string>(''),
|
||||||
|
age: new FormControl<number>(0),
|
||||||
|
});
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
print() {
|
||||||
|
console.log(this.form);
|
||||||
|
}
|
||||||
|
}
|
12
src/app/components/sandbox/sandbox.module.ts
Normal file
12
src/app/components/sandbox/sandbox.module.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { SandboxComponent } from './sandbox.component';
|
||||||
|
import { UiModule } from 'projects/ui/src/lib/ui.module';
|
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [SandboxComponent],
|
||||||
|
imports: [CommonModule, FormsModule, ReactiveFormsModule, UiModule],
|
||||||
|
exports: [SandboxComponent],
|
||||||
|
})
|
||||||
|
export class SandboxModule {}
|
Loading…
Reference in New Issue
Block a user