poker-html-client
Version:
HTML client for online poker
102 lines (90 loc) • 3.63 kB
text/typescript
import ko = require("knockout");
import { App } from "./app";
import { registerBindings } from "./bindings";
import { registerComponents } from "./components/registration";
import { debugSettings } from "./debugsettings";
import { registerExtenders } from "./extenders";
import { _ } from "./languagemanager";
import { ActionBlock } from "./table/actionBlock";
import { TableView } from "./table/tableview";
import { updateDefaultMessages } from "./validationConfiguration";
// import { ChipItem } from "./table/chipItem";
declare const host: string;
declare const appInsights: Client;
function isStandaloneSupported() {
return ("standalone" in window.navigator);
}
function isRunningStandalone() {
return (window.matchMedia("(display-mode: standalone)").matches
// tslint:disable-next-line:no-string-literal
|| ("standalone" in window.navigator && window.navigator["standalone"] === true));
}
function bootstrap() {
if (typeof host === "undefined") {
// tslint:disable-next-line:no-console
console.error("File environment.js is missing");
return;
}
const baseUrl = host;
const apiHost = baseUrl + "/api/rest/v1";
const app = new App();
$.connection.hub.url = baseUrl + "/signalr";
$.connection.hub.logging = false;
OnlinePoker.Commanding.API.logging = false;
// GameActionsQueue.waitDisabled = true;
// tslint:disable-next-line:no-string-literal
const numericTextHandler: any = ko.bindingHandlers["numericText"];
numericTextHandler.defaultPositions = 0;
numericTextHandler.separator = ",";
// tslint:disable-next-line:no-string-literal
window["moment"].locale("ru");
// This function prevents the rotation from
function shouldRotateToOrientation(interfaceOrientation) {
return app.shouldRotateToOrientation(interfaceOrientation);
}
exposeCardsConstants();
// tslint:disable:no-string-literal
window["shouldRotateToOrientation"] = shouldRotateToOrientation;
window["app"] = app;
window["authToken"] = null;
window["apiHost"] = apiHost;
window["baseUrl"] = baseUrl;
window["debugSettings"] = debugSettings;
window["_"] = _;
// tslint:enable:no-string-literal
window.onerror = function (message, url, lineNumber, colno, error) {
console.log("Error: " + message + " in " + url + " at line " + lineNumber);
if (error != null) {
console.log(error);
}
// tslint:disable-next-line:no-string-literal
window["appInsights"].trackException(error, "window.onerror");
};
window.addEventListener("unhandledrejection", function (event: any) {
// tslint:disable-next-line:no-string-literal
window["appInsights"].trackException(event.reason, "Promise");
});
ko.onError = function (error) {
// tslint:disable-next-line:no-string-literal
window["appInsights"].trackException(error, "Knockout");
};
app.bindEvents();
// tslint:disable-next-line:no-string-literal
if (window["cordova"] === undefined) {
app.onDeviceReady();
if (isStandaloneSupported() && !isRunningStandalone()) {
// Show splash screen.
$("#install_prompt").show();
}
}
}
// tslint:disable:no-string-literal
window["ko"] = ko;
window["TableView"] = TableView;
window["ActionBlock"] = ActionBlock;
// tslint:enable:no-string-literal
registerBindings();
registerExtenders();
registerComponents();
updateDefaultMessages();
bootstrap();