311 lines
7.8 KiB
TypeScript
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'
|
|
);
|
|
}
|
|
}
|