Compare commits

...

3 Commits

Author SHA1 Message Date
4e457268d5 angular 2022-10-17 21:48:33 +03:00
e9a1dcdb50 create games info with launch buttons 2022-10-17 21:48:28 +03:00
299b87d9ec taiga 2022-10-17 21:48:03 +03:00
21 changed files with 118 additions and 65 deletions

View File

@ -27,6 +27,11 @@
"assets": [ "assets": [
"src/favicon.ico", "src/favicon.ico",
"src/assets", "src/assets",
{
"glob": "**/*",
"input": "node_modules/@taiga-ui/icons/src",
"output": "assets/taiga-ui/icons"
},
{ {
"glob": "**/*", "glob": "**/*",
"input": "node_modules/@taiga-ui/icons/src", "input": "node_modules/@taiga-ui/icons/src",

88
package-lock.json generated
View File

@ -32,6 +32,7 @@
"@angular-devkit/build-angular": "^14.1.3", "@angular-devkit/build-angular": "^14.1.3",
"@angular/cli": "~14.1.3", "@angular/cli": "~14.1.3",
"@angular/compiler-cli": "^14.1.0", "@angular/compiler-cli": "^14.1.0",
"@schematics/angular": "^14.2.6",
"@types/dompurify": "2.2.3", "@types/dompurify": "2.2.3",
"@types/jasmine": "~4.0.0", "@types/jasmine": "~4.0.0",
"jasmine-core": "~4.2.0", "jasmine-core": "~4.2.0",
@ -461,6 +462,22 @@
} }
} }
}, },
"node_modules/@angular/cli/node_modules/@schematics/angular": {
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.3.tgz",
"integrity": "sha512-hhH4MGfBD1oxrd9PFZwgaqXAT9dYTK/6AtoIcr40OwEbnS5ZoZwzrgb0OOT2NW3bmL0dg3YeJei3Sf89hlI5eg==",
"dev": true,
"dependencies": {
"@angular-devkit/core": "14.1.3",
"@angular-devkit/schematics": "14.1.3",
"jsonc-parser": "3.1.0"
},
"engines": {
"node": "^14.15.0 || >=16.10.0",
"npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular/cli/node_modules/rxjs": { "node_modules/@angular/cli/node_modules/rxjs": {
"version": "6.6.7", "version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
@ -2842,13 +2859,13 @@
} }
}, },
"node_modules/@schematics/angular": { "node_modules/@schematics/angular": {
"version": "14.1.3", "version": "14.2.6",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.3.tgz", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.6.tgz",
"integrity": "sha512-hhH4MGfBD1oxrd9PFZwgaqXAT9dYTK/6AtoIcr40OwEbnS5ZoZwzrgb0OOT2NW3bmL0dg3YeJei3Sf89hlI5eg==", "integrity": "sha512-oeyMAQr3Q9nvAX+5FRgXcTMX9lqqenElBmAuwfqqdB0qD1jmkJ8TpWRuvYVA/931njpIwhfyLrzmzeNnJb23Sg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@angular-devkit/core": "14.1.3", "@angular-devkit/core": "14.2.6",
"@angular-devkit/schematics": "14.1.3", "@angular-devkit/schematics": "14.2.6",
"jsonc-parser": "3.1.0" "jsonc-parser": "3.1.0"
}, },
"engines": { "engines": {
@ -2857,30 +2874,22 @@
"yarn": ">= 1.13.0" "yarn": ">= 1.13.0"
} }
}, },
"node_modules/@schematics/angular/node_modules/@angular-devkit/core": { "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": {
"version": "14.1.3", "version": "14.2.6",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.3.tgz", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.6.tgz",
"integrity": "sha512-YBxhRl7hKgirjcKeurfejVrIgmw31GcfKKCyQiIudoLCYjonnSMdDEx2y8BNMANvxe5YmuZsIYJtgVlqp3mMDg==", "integrity": "sha512-mSFtc4M49mWrYsgJx/P6bA6SzXb8SeZqmppKRMoEQxiXI1bwFdGLNWzAmzEsGvS96h/nPIaOfcX5cKJSp++4FA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"ajv": "8.11.0", "@angular-devkit/core": "14.2.6",
"ajv-formats": "2.1.1",
"jsonc-parser": "3.1.0", "jsonc-parser": "3.1.0",
"rxjs": "6.6.7", "magic-string": "0.26.2",
"source-map": "0.7.4" "ora": "5.4.1",
"rxjs": "6.6.7"
}, },
"engines": { "engines": {
"node": "^14.15.0 || >=16.10.0", "node": "^14.15.0 || >=16.10.0",
"npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
"yarn": ">= 1.13.0" "yarn": ">= 1.13.0"
},
"peerDependencies": {
"chokidar": "^3.5.2"
},
"peerDependenciesMeta": {
"chokidar": {
"optional": true
}
} }
}, },
"node_modules/@schematics/angular/node_modules/rxjs": { "node_modules/@schematics/angular/node_modules/rxjs": {
@ -12052,6 +12061,17 @@
"source-map": "0.7.4" "source-map": "0.7.4"
} }
}, },
"@schematics/angular": {
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.3.tgz",
"integrity": "sha512-hhH4MGfBD1oxrd9PFZwgaqXAT9dYTK/6AtoIcr40OwEbnS5ZoZwzrgb0OOT2NW3bmL0dg3YeJei3Sf89hlI5eg==",
"dev": true,
"requires": {
"@angular-devkit/core": "14.1.3",
"@angular-devkit/schematics": "14.1.3",
"jsonc-parser": "3.1.0"
}
},
"rxjs": { "rxjs": {
"version": "6.6.7", "version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
@ -13611,27 +13631,27 @@
} }
}, },
"@schematics/angular": { "@schematics/angular": {
"version": "14.1.3", "version": "14.2.6",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.3.tgz", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.6.tgz",
"integrity": "sha512-hhH4MGfBD1oxrd9PFZwgaqXAT9dYTK/6AtoIcr40OwEbnS5ZoZwzrgb0OOT2NW3bmL0dg3YeJei3Sf89hlI5eg==", "integrity": "sha512-oeyMAQr3Q9nvAX+5FRgXcTMX9lqqenElBmAuwfqqdB0qD1jmkJ8TpWRuvYVA/931njpIwhfyLrzmzeNnJb23Sg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@angular-devkit/core": "14.1.3", "@angular-devkit/core": "14.2.6",
"@angular-devkit/schematics": "14.1.3", "@angular-devkit/schematics": "14.2.6",
"jsonc-parser": "3.1.0" "jsonc-parser": "3.1.0"
}, },
"dependencies": { "dependencies": {
"@angular-devkit/core": { "@angular-devkit/schematics": {
"version": "14.1.3", "version": "14.2.6",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.3.tgz", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.6.tgz",
"integrity": "sha512-YBxhRl7hKgirjcKeurfejVrIgmw31GcfKKCyQiIudoLCYjonnSMdDEx2y8BNMANvxe5YmuZsIYJtgVlqp3mMDg==", "integrity": "sha512-mSFtc4M49mWrYsgJx/P6bA6SzXb8SeZqmppKRMoEQxiXI1bwFdGLNWzAmzEsGvS96h/nPIaOfcX5cKJSp++4FA==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "8.11.0", "@angular-devkit/core": "14.2.6",
"ajv-formats": "2.1.1",
"jsonc-parser": "3.1.0", "jsonc-parser": "3.1.0",
"rxjs": "6.6.7", "magic-string": "0.26.2",
"source-map": "0.7.4" "ora": "5.4.1",
"rxjs": "6.6.7"
} }
}, },
"rxjs": { "rxjs": {

View File

@ -35,6 +35,7 @@
"@angular/cli": "~14.1.3", "@angular/cli": "~14.1.3",
"@angular/compiler-cli": "^14.1.0", "@angular/compiler-cli": "^14.1.0",
"@schematics/angular": "^14.2.6", "@schematics/angular": "^14.2.6",
"@types/dompurify": "2.2.3",
"@types/jasmine": "~4.0.0", "@types/jasmine": "~4.0.0",
"jasmine-core": "~4.2.0", "jasmine-core": "~4.2.0",
"karma": "~6.4.0", "karma": "~6.4.0",

View File

@ -1,5 +1,4 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { GetVersion, GetVersionCallbackDetail, RunGame } from './services/go';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
@ -17,10 +16,10 @@ export class AppComponent {
if (!(event instanceof CustomEvent<string>)) return; if (!(event instanceof CustomEvent<string>)) return;
this.version = event.detail; this.version = event.detail;
}); });
GetVersion(); //GetVersion();
} }
RunGame() { RunGame() {
RunGame(); //RunGame();
} }
} }

View File

@ -10,16 +10,15 @@ import {
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './modules/app-routing.module';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { GamesBarComponent } from './games-bar/games-bar.component';
import { GameButtonComponent } from './games-bar/game-button/game-button.component';
import { TuiAvatarModule } from "@taiga-ui/kit"; import { TuiAvatarModule } from "@taiga-ui/kit";
import { GamesBarModule } from "./components/games-bar/games-bar.module";
@NgModule({ @NgModule({
declarations: [AppComponent, GamesBarComponent, GameButtonComponent], declarations: [AppComponent],
imports: [BrowserModule, AppRoutingModule, BrowserAnimationsModule, TuiRootModule, TuiDialogModule, TuiAlertModule, TuiButtonModule, TuiAvatarModule], imports: [BrowserModule, AppRoutingModule, BrowserAnimationsModule, TuiRootModule, TuiDialogModule, TuiAlertModule, TuiButtonModule, TuiAvatarModule, GamesBarModule],
providers: [ providers: [
{ provide: APP_BASE_HREF, useValue: '/' }, { provide: APP_BASE_HREF, useValue: '/' },
{ provide: LocationStrategy, useClass: HashLocationStrategy }, { provide: LocationStrategy, useClass: HashLocationStrategy },

View File

@ -1,2 +1,20 @@
<h1>{{game.title}}</h1> <h1>{{game.title}}</h1>
<p>{{game.description}}</p> <p>{{game.description}}</p>
<ng-template #icon>
<tui-avatar
size="xs"
[rounded]="true"
[avatarUrl]="'http://jpg.jpg'"
></tui-avatar>
</ng-template>
<button
tuiButton
type="button"
appearance="primary"
[icon]="icon"
class="tui-space_right-3 tui-space_bottom-3"
(click)= "runGame()"
>
<ng-content></ng-content>
</button>

View File

@ -1,5 +1,7 @@
import { Component, Input, OnInit } from '@angular/core'; import { Component, Input, OnInit } from '@angular/core';
import { Game } from 'src/app/interfaces/game.interface'; import { Game } from 'src/app/interfaces/game.interface';
import {TuiButtonModule} from '@taiga-ui/core';
import { LauncherService } from 'src/app/services/launcher.service';
@Component({ @Component({
selector: 'app-game-info[game]', selector: 'app-game-info[game]',
@ -9,7 +11,12 @@ import { Game } from 'src/app/interfaces/game.interface';
export class GameInfoComponent implements OnInit { export class GameInfoComponent implements OnInit {
@Input() game!: Game; @Input() game!: Game;
constructor() {} constructor(private launcher: LauncherService) {}
ngOnInit(): void {} ngOnInit(): void {}
runGame(){
//console.log("hello")
this.launcher.RunGame(this.game)
}
} }

View File

@ -21,6 +21,9 @@ export class GamesBarComponent implements OnInit {
GetGames().then((value) => { GetGames().then((value) => {
console.log(value); console.log(value);
this.games = value; this.games = value;
if (this.games.length > 0){
this.activeGame = 0
}
}); });
} }
} }

View File

@ -3,10 +3,12 @@ import { CommonModule } from '@angular/common';
import { GamesBarComponent } from './games-bar.component'; import { GamesBarComponent } from './games-bar.component';
import { GameItemComponent } from './game-item/game-item.component'; import { GameItemComponent } from './game-item/game-item.component';
import { GameInfoComponent } from './game-info/game-info.component'; import { GameInfoComponent } from './game-info/game-info.component';
import {TuiButtonModule} from '@taiga-ui/core';
import { TuiAvatarComponent, TuiAvatarModule } from '@taiga-ui/kit';
@NgModule({ @NgModule({
declarations: [GamesBarComponent, GameItemComponent, GameInfoComponent], declarations: [GamesBarComponent, GameItemComponent, GameInfoComponent],
imports: [CommonModule], imports: [CommonModule,TuiButtonModule, TuiAvatarModule],
exports: [GamesBarComponent, GameItemComponent, GameInfoComponent], exports: [GamesBarComponent, GameItemComponent, GameInfoComponent],
}) })
export class GamesBarModule {} export class GamesBarModule {}

View File

@ -4,3 +4,4 @@ export interface Game {
image: string; image: string;
description: string; description: string;
} }

View File

@ -2,13 +2,14 @@ import { Game } from '../interfaces/game.interface';
export interface Go extends Window { export interface Go extends Window {
GetGames: () => Promise<Game[]>; GetGames: () => Promise<Game[]>;
GoRunGame: (gameId: number) => void;
} }
export interface GoCallback extends Window { export interface GoCallback extends Window {
SetVersion: (value: string) => void; SetVersion: (value: string) => void;
} }
let { GetGames } = window as unknown as Go; let { GetGames, GoRunGame } = window as unknown as Go;
let { SetVersion } = window as unknown as GoCallback; let { SetVersion } = window as unknown as GoCallback;
let w = window as unknown as GoCallback; let w = window as unknown as GoCallback;
@ -29,4 +30,4 @@ let w = window as unknown as GoCallback;
// document.dispatchEvent(event); // document.dispatchEvent(event);
// }; // };
export { GetGames, SetVersion }; export { GetGames, SetVersion, GoRunGame };

View File

@ -1,5 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Game } from './oxana.service'; import { Game } from '../interfaces/game.interface';
import { GoRunGame } from './go';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
@ -7,13 +8,13 @@ export class LauncherService {
constructor() { } constructor() { }
public GetGames(): Game[]{ // public GetGames(): Game[]{
var currentGames :Game[] = [ // var currentGames :Game[]
{ name: "ad", icon: "string", id: "string"}, // return currentGames
{ name: "qwet", icon: "string", id: "string"}, // }
{ name: "1233", icon: "string", id: "string"},
{ name: "ghjghj", icon: "string", id: "string"} public RunGame(game: Game){
] //console.log(game)
return currentGames GoRunGame(game.id)
} }
} }

View File

@ -1,5 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { LauncherService } from './launcher.service'; import { LauncherService } from './launcher.service';
import { Game } from '../interfaces/game.interface';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -16,8 +17,3 @@ export class OxanaService {
// } // }
} }
export interface Game {
name: string
icon: string
id: string
}