2022-08-29 08:15:51 +00:00

311 lines
7.8 KiB
TypeScript

import {
ChangeDetectorRef,
Component,
Input,
OnInit,
ViewEncapsulation,
} from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { CompComposeComponent } from 'app/modules/beteran/compose/compose/comp-compose.component';
import { CustomerComposeComponent } from 'app/modules/beteran/compose/compose/customer-compose.component';
import { DepositComposeComponent } from 'app/modules/beteran/compose/compose/deposit-compose.component';
import { DepositHistoryComposeComponent } from 'app/modules/beteran/compose/compose/deposit-history-compose.component';
import { NoticeComposeComponent } from 'app/modules/beteran/compose/compose/notice-compose.component';
import { SignInComposeComponent } from 'app/modules/beteran/compose/compose/sign-in-compose.component';
import { SignUpComposeComponent } from 'app/modules/beteran/compose/compose/sign-up-compose.component';
import { WithdrawComposeComponent } from 'app/modules/beteran/compose/compose/withdraw-compose.component';
import { WithdrawHistoryComposeComponent } from 'app/modules/beteran/compose/compose/withdraw-history-compose.component';
import { VendorService } from 'app/modules/polyglot/api/services/vendor.service';
import { Vendor } from 'app/modules/proto/models/api/vendor_pb';
export enum ComposeMenuType {
signIn = 'signIn',
signup = 'signup',
signOut = 'signOut',
deposit = 'Deposit',
withdraw = 'Withdraw',
notice = 'Notice',
comp = 'Comp',
customer = 'Customer',
depositHistory = 'DepositHistory',
withdrawHistory = 'WithdrawHistory',
}
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
encapsulation: ViewEncapsulation.None,
})
export class HomeComponent implements OnInit {
@Input()
loggedIn: boolean = false;
composeMenuType = ComposeMenuType;
liveCasinos!: Vendor[];
hotelCasinos!: Vendor[];
slotGames!: Vendor[];
components = [
{
id: 'ag(1)',
name: '에볼루션',
summary: 'Evolution',
exampleSpecs: {
prefix: 'autocomplete-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-autocomplete-testing.html',
},
],
},
{
id: 'allbet',
name: '프라그메틱',
summary: 'PragmaticPlay.',
exampleSpecs: {
prefix: 'badge-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-badge-testing.html',
},
],
},
{
id: 'elysium',
name: '드림게이밍',
summary: 'DreamGaming',
exampleSpecs: {
prefix: 'bottom-sheet-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-bottom-sheet-testing.html',
},
],
},
{
id: 'elysium',
name: '마이크로게이밍',
summary: 'MicroGaming',
exampleSpecs: {
prefix: 'button-',
exclude: ['button-toggle-'],
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-button-testing.html',
},
],
},
{
id: 'evolution',
name: '오리엔탈플러스',
summary: 'OrientalPlus',
exampleSpecs: {
prefix: 'button-toggle-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-button-toggle-testing.html',
},
],
},
{
id: 'ezugi',
name: '아시안게이밍',
summary: 'AsiaGaming',
exampleSpecs: {
prefix: 'card-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-card-testing.html',
},
],
},
{
id: 'ezugi',
name: 'CQ9LIVE',
summary: 'CQ9LIVE',
exampleSpecs: {
prefix: 'checkbox-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-checkbox-testing.html',
},
],
},
{
id: 'ezugi',
name: '이주기',
summary: 'Ezugi',
exampleSpecs: {
prefix: 'chips-',
},
additionalApiDocs: [
{
name: 'Testing',
path: 'material-chips-testing.html',
},
],
},
// {
// id: 'ezugi',
// name: '비보카지노',
// summary: 'VIVO',
// exampleSpecs: {
// prefix: 'core-',
// },
// additionalApiDocs: [
// {
// name: 'Testing',
// path: 'material-core-testing.html',
// },
// ],
// },
];
data = {
schedule: {
today: [
{
title: '계좌 등록 안내',
time: '2022-06-08',
},
{
title: '오토프로그램 이용 안냐',
time: '2022-06-08',
},
{
title: '입출금 규정 안내',
time: '2022-06-08',
},
{
title: '원피(가상계좌)사용 안내',
time: '2022-06-08',
},
{
title: '입금문의 안내(필독)',
time: '2022-06-08',
},
],
},
};
/**
* Constructor
*/
constructor(
private _changeDetectorRef: ChangeDetectorRef,
private _router: Router,
private _matDialog: MatDialog,
private _vendorService: VendorService
) {}
ngOnInit(): void {
this._vendorService.listVendors().then((result) => {
this.liveCasinos = result
.getVendorsList()
.filter((v) => v.getCategory() === 'casino');
this.hotelCasinos = result
.getVendorsList()
.filter((v) => v.getCategory() === 'casino');
this.slotGames = result
.getVendorsList()
.filter((v) => v.getCategory() === 'slot');
this._changeDetectorRef.markForCheck();
});
}
/**
* Track by function for ngFor loops
*
* @param index
* @param item
*/
trackByFn(index: number, item: any): any {
return item.id || index;
}
/**
* @param composeMenuType
*/
__onClickCompose(composeMenuType: ComposeMenuType): void {
let selectType: any;
if (
!this.loggedIn &&
composeMenuType !== ComposeMenuType.signIn &&
composeMenuType !== ComposeMenuType.signup
) {
alert('로그인 후 이용해주세요.');
return;
}
switch (composeMenuType) {
case ComposeMenuType.signOut:
// selectType = SignInComposeComponent;
return;
break;
case ComposeMenuType.signIn:
selectType = SignInComposeComponent;
break;
case ComposeMenuType.signup:
selectType = SignUpComposeComponent;
break;
case ComposeMenuType.deposit:
selectType = DepositComposeComponent;
break;
case ComposeMenuType.withdraw:
selectType = WithdrawComposeComponent;
break;
case ComposeMenuType.notice:
selectType = NoticeComposeComponent;
break;
case ComposeMenuType.comp:
selectType = CompComposeComponent;
break;
case ComposeMenuType.customer:
selectType = CustomerComposeComponent;
break;
case ComposeMenuType.depositHistory:
selectType = DepositHistoryComposeComponent;
break;
case ComposeMenuType.withdrawHistory:
selectType = WithdrawHistoryComposeComponent;
break;
}
const dialogRef = this._matDialog.open(selectType);
dialogRef.afterClosed().subscribe((result) => {
if (ComposeMenuType.signIn === composeMenuType && !!result.choice) {
this._router.navigate(['game']);
}
console.log('Compose dialog was closed!');
});
}
onClickGame(game: Vendor): void {
console.log(game.toString());
window.open(
'/game/?vendor_key=pragmatic_casino&game_key=101',
'gamepopup',
'width=1400, height=900, toolbar=no, menubar=no, scrollbars=no, resizable=yes'
);
}
}