new design(?)
This commit is contained in:
parent
cc6d60951c
commit
09dc13b4f8
@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<widget android-versionCode="1" id="link.silas.wordrotator" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
<widget android-versionCode="17" id="link.silas.wordrotator" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||||
<name>WordRotator</name>
|
<name>WordRotator</name>
|
||||||
<description>
|
<description>
|
||||||
A word-game
|
A word-game
|
||||||
|
|||||||
56
package.json
56
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "wordrotator",
|
"name": "wordrotator",
|
||||||
"displayName": "WordRotator",
|
"displayName": "WordRotator",
|
||||||
"version": "1.2.0",
|
"version": "1.3.0",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"server": "ts-node src/server/index.ts",
|
"server": "ts-node src/server/index.ts",
|
||||||
@ -17,13 +17,12 @@
|
|||||||
"typeorm": "ts-node ./node_modules/typeorm/cli -f ./ormconfig.ts"
|
"typeorm": "ts-node ./node_modules/typeorm/cli -f ./ormconfig.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "^14.11.8",
|
"@types/node": "^14.14.27",
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"cordova-android": "^9.0.0",
|
"cordova-android": "^9.0.0",
|
||||||
"cordova-browser": "^6.0.0",
|
"cordova-browser": "^6.0.0",
|
||||||
"cordova-ios": "^6.1.1",
|
"cordova-ios": "^6.1.1",
|
||||||
"cordova-plugin-share": "^0.1.3",
|
"cordova-sites": "git+https://github.com/Ainias/cordova-sites.git#0.7.10",
|
||||||
"cordova-sites": "git+https://github.com/Ainias/cordova-sites.git#0.6.5",
|
|
||||||
"cordova-sites-database": "git+https://github.com/Ainias/cordova-sites-database.git#0.4.4",
|
"cordova-sites-database": "git+https://github.com/Ainias/cordova-sites-database.git#0.4.4",
|
||||||
"cordova-sites-easy-sync": "git+https://github.com/Ainias/cordova-sites-easy-sync.git#0.6.7",
|
"cordova-sites-easy-sync": "git+https://github.com/Ainias/cordova-sites-easy-sync.git#0.6.7",
|
||||||
"cordova-sites-user-management": "git+https://github.com/Ainias/cordova-sites-user-management.git#0.5.4",
|
"cordova-sites-user-management": "git+https://github.com/Ainias/cordova-sites-user-management.git#0.5.4",
|
||||||
@ -31,32 +30,28 @@
|
|||||||
"cs-event-manager": "git+https://git@github.com/Ainias/event-manager.git#0.2",
|
"cs-event-manager": "git+https://git@github.com/Ainias/event-manager.git#0.2",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"foundation-sites": "^6.6.3",
|
"js-helper": "git+https://github.com/Ainias/js-helper.git#0.6.6",
|
||||||
"js-helper": "git+https://github.com/Ainias/js-helper.git#0.4.1",
|
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
"localforage": "^1.9.0",
|
|
||||||
"mysql": "^2.18.1",
|
"mysql": "^2.18.1",
|
||||||
"nodemailer": "^6.4.14",
|
"nodemailer": "^6.4.14",
|
||||||
"sql.js": "1.3.2",
|
"ts-node": "9.1.1",
|
||||||
"ts-node": "9.0.0",
|
"typeorm": "^0.2.31",
|
||||||
"typeorm": "^0.2.28",
|
"typescript": "^4.1.5"
|
||||||
"ts-loader": "^8.0.5",
|
|
||||||
"typescript": "^4.0.3"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.1",
|
"@babel/core": "^7.13.15",
|
||||||
"@babel/plugin-transform-runtime": "^7.12.1",
|
"@babel/plugin-transform-runtime": "^7.13.15",
|
||||||
"@babel/polyfill": "^7.12.1",
|
"@babel/polyfill": "^7.12.1",
|
||||||
"@babel/preset-env": "^7.12.1",
|
"@babel/preset-env": "^7.13.15",
|
||||||
"@wdio/appium-service": "^6.6.3",
|
"@wdio/appium-service": "^7.4.2",
|
||||||
"@wdio/cli": "^6.6.6",
|
"@wdio/cli": "^7.4.6",
|
||||||
"@wdio/jasmine-framework": "^6.6.6",
|
"@wdio/jasmine-framework": "^7.4.6",
|
||||||
"@wdio/local-runner": "^6.6.6",
|
"@wdio/local-runner": "^7.4.6",
|
||||||
"@wdio/selenium-standalone-service": "^6.6.5",
|
"@wdio/selenium-standalone-service": "^7.4.2",
|
||||||
"@wdio/spec-reporter": "^6.6.6",
|
"@wdio/spec-reporter": "^7.4.3",
|
||||||
"appium": "1.15.1",
|
"appium": "1.20.2",
|
||||||
"appium-doctor": "^1.15.3",
|
"appium-doctor": "^1.16.0",
|
||||||
"autoprefixer": "^10.0.1",
|
"autoprefixer": "^10.2.5",
|
||||||
"babel-loader": "^8.1.0",
|
"babel-loader": "^8.1.0",
|
||||||
"babel-preset-env": "^1.7.0",
|
"babel-preset-env": "^1.7.0",
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
@ -64,6 +59,7 @@
|
|||||||
"cordova-plugin-device": "^2.0.3",
|
"cordova-plugin-device": "^2.0.3",
|
||||||
"cordova-plugin-file": "^6.0.2",
|
"cordova-plugin-file": "^6.0.2",
|
||||||
"cordova-plugin-nativestorage": "^2.3.2",
|
"cordova-plugin-nativestorage": "^2.3.2",
|
||||||
|
"cordova-plugin-share": "^0.1.3",
|
||||||
"cordova-plugin-tts": "^0.2.3",
|
"cordova-plugin-tts": "^0.2.3",
|
||||||
"cordova-plugin-webpack": "^1.0.5",
|
"cordova-plugin-webpack": "^1.0.5",
|
||||||
"cordova-plugin-whitelist": "^1.3.4",
|
"cordova-plugin-whitelist": "^1.3.4",
|
||||||
@ -71,14 +67,18 @@
|
|||||||
"css-loader": "^5.0.0",
|
"css-loader": "^5.0.0",
|
||||||
"extract-loader": "^5.1.0",
|
"extract-loader": "^5.1.0",
|
||||||
"file-loader": "^6.1.1",
|
"file-loader": "^6.1.1",
|
||||||
|
"foundation-sites": "^6.6.3",
|
||||||
"html-loader": "^1.3.2",
|
"html-loader": "^1.3.2",
|
||||||
"html-webpack-plugin": "^4.5.0",
|
"html-webpack-plugin": "^4.5.0",
|
||||||
"jasmine": "^3.6.2",
|
"jasmine": "^3.7.0",
|
||||||
"node-sass": "^4.14.1",
|
"localforage": "^1.9.0",
|
||||||
"postcss-loader": "^4.0.4",
|
"node-sass": "^5.0.0",
|
||||||
|
"postcss-loader": "^5.2.0",
|
||||||
"sass-loader": "^10.0.3",
|
"sass-loader": "^10.0.3",
|
||||||
|
"sql.js": "1.3.2",
|
||||||
"terser-webpack-plugin": "^5.0.0",
|
"terser-webpack-plugin": "^5.0.0",
|
||||||
"webpack": "^5.1.2",
|
"ts-loader": "^8.0.17",
|
||||||
|
"webpack": "^4.46.0",
|
||||||
"webpack-cli": "^3.3.12",
|
"webpack-cli": "^3.3.12",
|
||||||
"webpack-dev-server": "^3.11.0",
|
"webpack-dev-server": "^3.11.0",
|
||||||
"workbox-precaching": "^5.1.4",
|
"workbox-precaching": "^5.1.4",
|
||||||
|
|||||||
8
src/client/globals.d.ts
vendored
8
src/client/globals.d.ts
vendored
@ -1,8 +0,0 @@
|
|||||||
declare var require: {
|
|
||||||
<T>(path: string): T;
|
|
||||||
(paths: string[], callback: (...modules: any[]) => void): void;
|
|
||||||
ensure: (
|
|
||||||
paths: string[],
|
|
||||||
callback: (require: <T>(path: string) => T) => void
|
|
||||||
) => void;
|
|
||||||
};
|
|
||||||
@ -5,7 +5,7 @@
|
|||||||
52064 Aachen<br/>
|
52064 Aachen<br/>
|
||||||
Deutschland
|
Deutschland
|
||||||
</p>
|
</p>
|
||||||
<p>E-Mail: <a href="mailto:wordRotator@silas.link">wordRotator@silas.link</a><br />
|
<p>E-Mail: <a href="mailto:wordRotator@silas.link">wordRotator@silas.link</a><br/>
|
||||||
<a href = "?s=contact" class = "link" target="_blank">Kontaktformular</a>
|
<a href = "?s=contact" class = "link">Kontaktformular</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,17 +1,3 @@
|
|||||||
<div>
|
<div class="height-100">
|
||||||
<br/>
|
<div id = "wordRotatorSettings" class="height-100" ></div>
|
||||||
<br/>
|
</div>
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<div id = "wordRotatorSettings"></div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<script src="scripts/sql-wasm.js"></script>
|
<script src="scripts/sql-wasm.js"></script>
|
||||||
<script src="scripts/localforage.js"></script>
|
<script src="scripts/localforage.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body class="default">
|
<body class="theme-blue">
|
||||||
<div id="toast-container">
|
<div id="toast-container">
|
||||||
<div class='toast toast-template' style="opacity: 0">
|
<div class='toast toast-template' style="opacity: 0">
|
||||||
<span class='message'></span>
|
<span class='message'></span>
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
|
const view = require("../../html/fragment/settings.html");
|
||||||
|
|
||||||
import {CreditsSite} from "../Sites/CreditsSite";
|
import {CreditsSite} from "../Sites/CreditsSite";
|
||||||
import {PrivacyPolicySite} from "../Sites/PrivacyPolicySite";
|
import {PrivacyPolicySite} from "../Sites/PrivacyPolicySite";
|
||||||
import {ImpressumSite} from "../Sites/ImpressumSite";
|
import {ImpressumSite} from "../Sites/ImpressumSite";
|
||||||
import {NativeStoragePromise} from "cordova-sites/dist/client/js/NativeStoragePromise";
|
import {NativeStoragePromise} from "cordova-sites/dist/client/js/NativeStoragePromise";
|
||||||
import {AbstractFragment} from "cordova-sites/dist/client/js/Context/AbstractFragment";
|
import {AbstractFragment} from "cordova-sites/dist/client/js/Context/AbstractFragment";
|
||||||
|
|
||||||
import view from "../../html/fragment/settings.html";
|
|
||||||
import {LevelData} from "../../../shared/model/LevelData";
|
import {LevelData} from "../../../shared/model/LevelData";
|
||||||
import {LastSyncDates} from "cordova-sites-easy-sync/dist/client/LastSyncDates";
|
import {LastSyncDates} from "cordova-sites-easy-sync/dist/client/LastSyncDates";
|
||||||
import {SoundManager} from "cordova-sites/dist/client/js/Sound/SoundManager";
|
import {SoundManager} from "cordova-sites/dist/client/js/Sound/SoundManager";
|
||||||
import {Toast} from "cordova-sites/dist/client/js/Toast/Toast";
|
|
||||||
import {Matomo} from "cordova-sites/dist/client/js/Legacy/Matomo";
|
import {Matomo} from "cordova-sites/dist/client/js/Legacy/Matomo";
|
||||||
import {LevelPlayed} from "../model/LevelPlayed";
|
import {LevelPlayed} from "../model/LevelPlayed";
|
||||||
import {ContactSite} from "../Sites/ContactSite";
|
import {ContactSite} from "../Sites/ContactSite";
|
||||||
@ -32,7 +31,7 @@ export class WordRotatorSettingFragment extends AbstractFragment {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (location.hostname.includes("beta") || location.hostname.includes("127.0.0.1") || location.hostname.includes("localhost")) {
|
if (location.hostname.includes("beta") || location.hostname.includes("127.0.0.1") || location.hostname.includes("localhost")) {
|
||||||
this.findBy("#reset-levels").classList.remove("hidden");
|
// this.findBy("#reset-levels").classList.remove("hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
let playMusicButton = this.findBy("#play-music");
|
let playMusicButton = this.findBy("#play-music");
|
||||||
@ -79,13 +78,14 @@ export class WordRotatorSettingFragment extends AbstractFragment {
|
|||||||
this.findBy("#impressum-button").addEventListener("click", () => {
|
this.findBy("#impressum-button").addEventListener("click", () => {
|
||||||
this.getSite().startSite(ImpressumSite);
|
this.getSite().startSite(ImpressumSite);
|
||||||
});
|
});
|
||||||
this.findBy("#version-info").innerText = window["version"];
|
// @ts-ignore
|
||||||
|
this.findBy("#version-info").innerText = __VERSION__;
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
onStart() {
|
onStart(args) {
|
||||||
Matomo.update("Settings Sites");
|
Matomo.update("Settings Sites");
|
||||||
super.onStart();
|
return super.onStart(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
|
const view = require("../../html/sites/contactSite.html");
|
||||||
|
|
||||||
import view from "../../html/sites/contactSite.html"
|
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
import {Form} from "cordova-sites/dist/client/js/Form";
|
import {Form} from "cordova-sites/dist/client/js/Form";
|
||||||
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
|
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
|
||||||
@ -15,6 +15,7 @@ export class ContactSite extends MenuSite {
|
|||||||
onViewLoaded() {
|
onViewLoaded() {
|
||||||
let res = super.onViewLoaded();
|
let res = super.onViewLoaded();
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
this.findBy("#contactText").appendChild(Translator.makePersistentTranslation("contact text", [__CONTACT_EMAIL__]))
|
this.findBy("#contactText").appendChild(Translator.makePersistentTranslation("contact text", [__CONTACT_EMAIL__]))
|
||||||
|
|
||||||
new Form(this.findBy("#contact-form"), async values => {
|
new Form(this.findBy("#contact-form"), async values => {
|
||||||
@ -38,4 +39,4 @@ export class ContactSite extends MenuSite {
|
|||||||
|
|
||||||
App.addInitialization((app) => {
|
App.addInitialization((app) => {
|
||||||
app.addDeepLink("contact", ContactSite);
|
app.addDeepLink("contact", ContactSite);
|
||||||
});
|
});
|
||||||
@ -1,19 +0,0 @@
|
|||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
|
||||||
|
|
||||||
import view from "../../html/sites/credits.html"
|
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
|
||||||
|
|
||||||
export class CreditsSite extends WordRotatorBaseSite{
|
|
||||||
constructor(siteManager) {
|
|
||||||
super(siteManager, view);
|
|
||||||
}
|
|
||||||
|
|
||||||
onStart(args) {
|
|
||||||
// Matomo.update("Credits Sites");
|
|
||||||
return super.onStart(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
App.addInitialization(app => {
|
|
||||||
app.addDeepLink("credits", CreditsSite);
|
|
||||||
});
|
|
||||||
13
src/client/js/Sites/CreditsSite.ts
Normal file
13
src/client/js/Sites/CreditsSite.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
const view = require("../../html/sites/credits.html");
|
||||||
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
|
export class CreditsSite extends MenuSite{
|
||||||
|
constructor(siteManager) {
|
||||||
|
super(siteManager, view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
App.addInitialization(app => {
|
||||||
|
app.addDeepLink("credits", CreditsSite);
|
||||||
|
});
|
||||||
@ -1,13 +1,15 @@
|
|||||||
import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client";
|
import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client";
|
||||||
|
|
||||||
import view from "../../html/sites/deleteLevels.html"
|
const view = require("../../html/sites/deleteLevels.html");
|
||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment";
|
import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment";
|
||||||
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
|
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
|
|
||||||
export class DeleteWordsSite extends WordRotatorBaseSite {
|
export class DeleteWordsSite extends MenuSite {
|
||||||
|
private words: any;
|
||||||
|
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, view);
|
super(siteManager, view);
|
||||||
this.addDelegate(new UserSite(this, "admin"))
|
this.addDelegate(new UserSite(this, "admin"))
|
||||||
@ -16,11 +18,12 @@ export class DeleteWordsSite extends WordRotatorBaseSite {
|
|||||||
async onConstruct(args) {
|
async onConstruct(args) {
|
||||||
let res = super.onConstruct(args);
|
let res = super.onConstruct(args);
|
||||||
this.words = (await DataManager.load("getDoubleUsedWordsAction"))["result"];
|
this.words = (await DataManager.load("getDoubleUsedWordsAction"))["result"];
|
||||||
|
console.log("word", this.words);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
onViewLoaded() {
|
onViewLoaded() {
|
||||||
super.onViewLoaded();
|
const res = super.onViewLoaded();
|
||||||
|
|
||||||
let levelTemplate = this.findBy("#level-template");
|
let levelTemplate = this.findBy("#level-template");
|
||||||
let wordTemplate = this.findBy("#word-template");
|
let wordTemplate = this.findBy("#word-template");
|
||||||
@ -54,6 +57,8 @@ export class DeleteWordsSite extends WordRotatorBaseSite {
|
|||||||
}
|
}
|
||||||
wordContainer.appendChild(wordElem);
|
wordContainer.appendChild(wordElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,4 +66,4 @@ App.addInitialization(app => {
|
|||||||
NavbarFragment.defaultActions.push(new UserMenuAction("delete-levels", "admin", () => {
|
NavbarFragment.defaultActions.push(new UserMenuAction("delete-levels", "admin", () => {
|
||||||
app.startSite(DeleteWordsSite);
|
app.startSite(DeleteWordsSite);
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
@ -1,14 +0,0 @@
|
|||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
|
||||||
|
|
||||||
import view from "../../html/sites/end.html"
|
|
||||||
|
|
||||||
export class EndSite extends WordRotatorBaseSite{
|
|
||||||
constructor(siteManager) {
|
|
||||||
super(siteManager, view);
|
|
||||||
}
|
|
||||||
|
|
||||||
onStart(args) {
|
|
||||||
// Matomo.update("End Sites");
|
|
||||||
return super.onStart(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
8
src/client/js/Sites/EndSite.ts
Normal file
8
src/client/js/Sites/EndSite.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const view = require("../../html/sites/end.html");
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
|
export class EndSite extends MenuSite{
|
||||||
|
constructor(siteManager) {
|
||||||
|
super(siteManager, view);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +1,8 @@
|
|||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
const view = require("../../html/sites/impressum.html");
|
||||||
|
|
||||||
import view from "../../html/sites/impressum.html"
|
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
export class ImpressumSite extends WordRotatorBaseSite{
|
export class ImpressumSite extends MenuSite{
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, view);
|
super(siteManager, view);
|
||||||
}
|
}
|
||||||
@ -11,4 +10,4 @@ export class ImpressumSite extends WordRotatorBaseSite{
|
|||||||
|
|
||||||
App.addInitialization(app => {
|
App.addInitialization(app => {
|
||||||
app.addDeepLink("impressum", ImpressumSite);
|
app.addDeepLink("impressum", ImpressumSite);
|
||||||
});
|
});
|
||||||
@ -1,9 +1,12 @@
|
|||||||
|
import {Level} from "../wordrotator/Level/Level";
|
||||||
|
|
||||||
|
const helpIcon = require("../../img/help.png").default;
|
||||||
|
const view = require("../../html/sites/level.html");
|
||||||
|
const coinSound = require("../../sound/single_coin_fall_on_concrete_.mp3").default;
|
||||||
|
|
||||||
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
||||||
import {LevelHelper} from "../wordrotator/Level/LevelHelper";
|
import {LevelHelper} from "../wordrotator/Level/LevelHelper";
|
||||||
import {EndSite} from "./EndSite";
|
import {EndSite} from "./EndSite";
|
||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
|
||||||
|
|
||||||
import helpIcon from "../../img/help.png";
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
MenuAction,
|
MenuAction,
|
||||||
@ -13,19 +16,40 @@ import {
|
|||||||
NativeStoragePromise,
|
NativeStoragePromise,
|
||||||
} from "cordova-sites/dist/client";
|
} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
import view from "../../html/sites/level.html"
|
|
||||||
import {Helper} from "js-helper/dist/shared/Helper";
|
import {Helper} from "js-helper/dist/shared/Helper";
|
||||||
import {LevelData} from "../../../shared/model/LevelData";
|
import {LevelData} from "../../../shared/model/LevelData";
|
||||||
import {LevelPlayed} from "../model/LevelPlayed";
|
import {LevelPlayed} from "../model/LevelPlayed";
|
||||||
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
||||||
|
|
||||||
import coinSound from "../../sound/single_coin_fall_on_concrete_.mp3";
|
|
||||||
import {SoundManager} from "cordova-sites/dist/client/js/Sound/SoundManager";
|
import {SoundManager} from "cordova-sites/dist/client/js/Sound/SoundManager";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client/js/Context/MenuSite";
|
||||||
|
|
||||||
|
export class LevelSite extends MenuSite {
|
||||||
|
|
||||||
|
public static readonly RENDERER_TYPES = [20, 40, 60, 80, 81, 82, 83, 100, 110, 111, 112, 120, 140, 160];
|
||||||
|
public static readonly TUTORIAL = {
|
||||||
|
FIRST_LEVEL: 67,
|
||||||
|
SECOND_LEVEL: 15,
|
||||||
|
BIG_SEGMENT_LEVEL: 1921
|
||||||
|
};
|
||||||
|
|
||||||
|
private coinAction: MenuAction;
|
||||||
|
private levelCounterAction: MenuAction;
|
||||||
|
private levelCounter: number;
|
||||||
|
private levelScaler: () => void;
|
||||||
|
private wonParams: { aborted: boolean; coinCounterTimer: any };
|
||||||
|
private coinPromise: Promise<any>;
|
||||||
|
private continueButtonScaler: () => Promise<unknown>;
|
||||||
|
private wonTextScaler: () => Promise<unknown>;
|
||||||
|
private wonText: HTMLElement;
|
||||||
|
private templateContainer: TemplateContainer;
|
||||||
|
private coinTemplate: HTMLElement;
|
||||||
|
private coinContainer: HTMLElement;
|
||||||
|
private level: Level;
|
||||||
|
|
||||||
export class LevelSite extends WordRotatorBaseSite {
|
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, view);
|
super(siteManager, view);
|
||||||
this._navbarFragment.setBackgroundImage(null);
|
// this.getNavbarFragment().setBackgroundImage(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
async onCreateMenu(navbar) {
|
async onCreateMenu(navbar) {
|
||||||
@ -34,7 +58,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
let coinAction = new MenuAction(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"), () => {
|
let coinAction = new MenuAction(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"), () => {
|
||||||
}, MenuAction.SHOW_ALWAYS, 900);
|
}, MenuAction.SHOW_ALWAYS, 900);
|
||||||
coinAction._shouldTranslate = false;
|
coinAction._shouldTranslate = false;
|
||||||
coinAction._liClass = "coin-counter";
|
coinAction.setLiClass("coin-counter img");
|
||||||
navbar.addAction(coinAction);
|
navbar.addAction(coinAction);
|
||||||
this.coinAction = coinAction;
|
this.coinAction = coinAction;
|
||||||
|
|
||||||
@ -70,7 +94,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
let soundManager = SoundManager.getInstance();
|
let soundManager = SoundManager.getInstance();
|
||||||
soundManager.set({
|
soundManager.set({
|
||||||
audio: coinSound,
|
audio: coinSound,
|
||||||
muted: (NativeStoragePromise.getItem("play-sound", "1") !== "1"),
|
muted: ((await NativeStoragePromise.getItem("play-sound", "1")) !== "1"),
|
||||||
volume: 0.7
|
volume: 0.7
|
||||||
}, SoundManager.CHANNELS.SOUND);
|
}, SoundManager.CHANNELS.SOUND);
|
||||||
|
|
||||||
@ -159,7 +183,6 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
this.levelScaler = await scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0);
|
this.levelScaler = await scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0);
|
||||||
|
|
||||||
this.level = level;
|
this.level = level;
|
||||||
// let res = this.tutorial();
|
|
||||||
Matomo.push(["trackEvent", "LevelSite", "LoadLastLevel"]);
|
Matomo.push(["trackEvent", "LevelSite", "LoadLastLevel"]);
|
||||||
this.level.checkHasWon();
|
this.level.checkHasWon();
|
||||||
return;
|
return;
|
||||||
@ -250,6 +273,8 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async onStart(args) {
|
async onStart(args) {
|
||||||
|
this.setTitle("WR");
|
||||||
|
|
||||||
Matomo.update("Level Sites");
|
Matomo.update("Level Sites");
|
||||||
let res = super.onStart(args);
|
let res = super.onStart(args);
|
||||||
|
|
||||||
@ -300,7 +325,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
coinsBefore = parseInt(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"));
|
coinsBefore = parseInt(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"));
|
||||||
await NativeStoragePromise.setItem("coins", coinsBefore + parseInt(coinsPerLevel));
|
await NativeStoragePromise.setItem("coins", coinsBefore + parseInt(coinsPerLevel));
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
return Promise.all([new Promise((r) => {
|
return Promise.all([new Promise<void>((r) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
//TODO animationen einbauen
|
//TODO animationen einbauen
|
||||||
continueButton.style.opacity = 1;
|
continueButton.style.opacity = 1;
|
||||||
@ -316,26 +341,26 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
this.wonParams.aborted = false;
|
this.wonParams.aborted = false;
|
||||||
|
|
||||||
for (let i = 0; i < coinsPerLevel; i++) {
|
for (let i = 0; i < coinsPerLevel; i++) {
|
||||||
let coinElem = this.coinTemplate.cloneNode(true);
|
let coinElem = <HTMLElement>this.coinTemplate.cloneNode(true);
|
||||||
this.coinContainer.appendChild(coinElem);
|
this.coinContainer.appendChild(coinElem);
|
||||||
this.coinPromise = this.coinPromise.then(() => {
|
this.coinPromise = this.coinPromise.then(() => {
|
||||||
return new Promise(r => {
|
return new Promise<void>(r => {
|
||||||
let timeout = 350;
|
let timeout = 350;
|
||||||
if (!this.wonParams.aborted) {
|
if (!this.wonParams.aborted) {
|
||||||
//TODO animationen einbauen
|
//TODO animationen einbauen
|
||||||
coinElem.style.opacity = 1;
|
|
||||||
// coinElem.fadeIn(timeout / 1000);
|
coinElem.style.opacity = "1";
|
||||||
soundManager.play(SoundManager.CHANNELS.SOUND);
|
soundManager.play(SoundManager.CHANNELS.SOUND);
|
||||||
|
|
||||||
this.wonParams.coinCounterTimer = setTimeout(() => {
|
this.wonParams.coinCounterTimer = setTimeout(() => {
|
||||||
if (!this.wonParams.aborted) {
|
if (!this.wonParams.aborted) {
|
||||||
this.coinAction.setName(++coinsBefore);
|
this.coinAction.setName(++coinsBefore);
|
||||||
// this.coinAction.redraw();
|
|
||||||
}
|
}
|
||||||
}, timeout / 2);
|
}, timeout / 2);
|
||||||
} else {
|
} else {
|
||||||
r();
|
r();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Always do the next promise for garbage collection
|
//Always do the next promise for garbage collection
|
||||||
setTimeout(r, timeout);
|
setTimeout(r, timeout);
|
||||||
})
|
})
|
||||||
@ -414,7 +439,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
let textElem = this.findBy(".tutorial-text .step-1");
|
let textElem = this.findBy(".tutorial-text .step-1");
|
||||||
|
|
||||||
await this.levelScaler();
|
await this.levelScaler();
|
||||||
scaleHelper.scaleToFull(textElem, textElem.parentElement, null, true, 1, 2);
|
scaleHelper.scaleTo(0.4, textElem, textElem.parentElement, null, true, 2, 2);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -514,11 +539,3 @@ export class LevelSite extends WordRotatorBaseSite {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LevelSite.RENDERER_TYPES = [20, 40, 60, 80, 81, 82, 83, 100, 110, 111, 112, 120, 140, 160];
|
|
||||||
// LevelSite.RENDERER_TYPES = [120, 140, 160];
|
|
||||||
LevelSite.TUTORIAL = {
|
|
||||||
FIRST_LEVEL: 67,
|
|
||||||
SECOND_LEVEL: 15,
|
|
||||||
BIG_SEGMENT_LEVEL: 1921
|
|
||||||
};
|
|
||||||
@ -1,10 +1,11 @@
|
|||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
const settingsIcon = require("../../img/settings.png").default;
|
||||||
import {App, Toast, DataManager, ScaleHelper} from "cordova-sites/dist/client";
|
const view = require("../../html/sites/menu.html");
|
||||||
|
|
||||||
|
import {App, Toast, DataManager, ScaleHelper, MenuSite} from "cordova-sites/dist/client";
|
||||||
import {Helper} from "js-helper/dist/shared";
|
import {Helper} from "js-helper/dist/shared";
|
||||||
import {LevelSite} from "./LevelSite";
|
import {LevelSite} from "./LevelSite";
|
||||||
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
||||||
import {MainMenuLevel} from "../wordrotator/Level/MainMenuLevel";
|
import {MainMenuLevel} from "../wordrotator/Level/MainMenuLevel";
|
||||||
import view from "../../html/sites/menu.html"
|
|
||||||
import {NativeStoragePromise} from "cordova-sites/dist/client";
|
import {NativeStoragePromise} from "cordova-sites/dist/client";
|
||||||
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
||||||
import {LevelPlayed} from "../model/LevelPlayed";
|
import {LevelPlayed} from "../model/LevelPlayed";
|
||||||
@ -17,14 +18,19 @@ import {Matomo} from "cordova-sites/dist/client/js/Legacy/Matomo";
|
|||||||
import {MenuAction} from "cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction";
|
import {MenuAction} from "cordova-sites/dist/client/js/Context/Menu/MenuAction/MenuAction";
|
||||||
import {SettingsSite} from "./SettingsSite";
|
import {SettingsSite} from "./SettingsSite";
|
||||||
|
|
||||||
import settingsIcon from "../../img/settings.png";
|
export class MainMenuSite extends MenuSite {
|
||||||
|
static app: App;
|
||||||
|
|
||||||
|
private loadLevelPromise: Promise<any>;
|
||||||
|
private listener: () => void;
|
||||||
|
private templateContainer: TemplateContainer;
|
||||||
|
private randomRotateTimeout;
|
||||||
|
|
||||||
export class MainMenuSite extends WordRotatorBaseSite {
|
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, view);
|
super(siteManager, view);
|
||||||
this.loadLevelPromise = new SyncJob().sync([LevelData]).catch(e => console.error(e));
|
this.loadLevelPromise = new SyncJob().sync([LevelData]).catch(e => console.error(e));
|
||||||
this.listener = null;
|
this.listener = null;
|
||||||
this._navbarFragment.setCanGoBack(false);
|
this.getNavbarFragment().setCanGoBack(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
onCreateMenu(navbar) {
|
onCreateMenu(navbar) {
|
||||||
@ -36,6 +42,73 @@ export class MainMenuSite extends WordRotatorBaseSite {
|
|||||||
return navbar;
|
return navbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async onViewLoaded() {
|
||||||
|
const res = super.onViewLoaded();
|
||||||
|
|
||||||
|
let playButton = this.findBy("#play-button");
|
||||||
|
playButton.addEventListener("click", () => {
|
||||||
|
// Matomo.push(["trackEvent", "MainMenu", "startButton"]);
|
||||||
|
this.startLevelSite();
|
||||||
|
});
|
||||||
|
|
||||||
|
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
||||||
|
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
||||||
|
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
||||||
|
let triangleTemplate = this.findBy("#segment-triangle-template");
|
||||||
|
|
||||||
|
leafSegmentTemplate.id = null;
|
||||||
|
parentSegmentTemplate.id = null;
|
||||||
|
rowSegmentTemplate.id = null;
|
||||||
|
triangleTemplate.id = null;
|
||||||
|
|
||||||
|
leafSegmentTemplate.remove();
|
||||||
|
parentSegmentTemplate.remove();
|
||||||
|
rowSegmentTemplate.remove();
|
||||||
|
triangleTemplate.remove();
|
||||||
|
|
||||||
|
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
||||||
|
|
||||||
|
//TODO?
|
||||||
|
// if (Helper.nonNull(MainMenuSite.app._cookieClosePromise)) {
|
||||||
|
// MainMenuSite.app._cookieClosePromise.then(() => {
|
||||||
|
// if (this.listener) {
|
||||||
|
// this.listener();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
let soundManager = SoundManager.getInstance();
|
||||||
|
|
||||||
|
let playMusicButton = this.findBy("#play-music");
|
||||||
|
playMusicButton.checked = (await NativeStoragePromise.getItem("play-music", "1") === "1");
|
||||||
|
playMusicButton.addEventListener("change", async () => {
|
||||||
|
await NativeStoragePromise.setItem("play-music", (playMusicButton.checked) ? "1" : "0");
|
||||||
|
soundManager.set({muted: !playMusicButton.checked}, SoundManager.CHANNELS.MUSIC);
|
||||||
|
if (playMusicButton.checked) {
|
||||||
|
await soundManager.play(SoundManager.CHANNELS.MUSIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO [MIG] Matomo
|
||||||
|
Matomo.push(["trackEvent", "MainMenu", "PlayMusic", "Play Music", (playMusicButton.checked) ? 1 : 0]);
|
||||||
|
});
|
||||||
|
|
||||||
|
let playSoundButton = this.findBy("#play-sound");
|
||||||
|
playSoundButton.checked = (await NativeStoragePromise.getItem("play-sound", "1") === "1");
|
||||||
|
playSoundButton.addEventListener("change", async () => {
|
||||||
|
await NativeStoragePromise.setItem("play-sound", (playSoundButton.checked) ? "1" : "0");
|
||||||
|
soundManager.set({muted: !playSoundButton.checked}, SoundManager.CHANNELS.SOUND);
|
||||||
|
|
||||||
|
//TODO [MIG] Matomo
|
||||||
|
Matomo.push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", (playSoundButton.checked) ? 1 : 0]);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.findBy("#share-button").addEventListener("click", () => {
|
||||||
|
new ShareManager().share(Translator.getInstance().translate("share-text", [window.location]));
|
||||||
|
});
|
||||||
|
return res;
|
||||||
|
// this.findBy("#share-buttons").appendChild(ShareManager.generateDefaultShareElement("https://wordrotator.silas.link"));
|
||||||
|
}
|
||||||
|
|
||||||
async onStart(args) {
|
async onStart(args) {
|
||||||
// Matomo.update("Menu Sites");
|
// Matomo.update("Menu Sites");
|
||||||
let res = super.onStart(args);
|
let res = super.onStart(args);
|
||||||
@ -120,7 +193,7 @@ export class MainMenuSite extends WordRotatorBaseSite {
|
|||||||
async startLevelSite() {
|
async startLevelSite() {
|
||||||
SoundManager.getInstance().resumeContext();
|
SoundManager.getInstance().resumeContext();
|
||||||
|
|
||||||
this.startSite(LevelSite, Promise.race([this.loadLevelPromise, new Promise(async resolve => {
|
this.startSite(LevelSite, Promise.race([this.loadLevelPromise, new Promise<void>(async resolve => {
|
||||||
let levelData = await LevelPlayed.getNextLevelData(LevelSite.RENDERER_TYPES);
|
let levelData = await LevelPlayed.getNextLevelData(LevelSite.RENDERER_TYPES);
|
||||||
if (levelData !== null) {
|
if (levelData !== null) {
|
||||||
resolve();
|
resolve();
|
||||||
@ -128,130 +201,64 @@ export class MainMenuSite extends WordRotatorBaseSite {
|
|||||||
})]));
|
})]));
|
||||||
}
|
}
|
||||||
|
|
||||||
async onFirstStart() {
|
onPause() {
|
||||||
super.onFirstStart();
|
|
||||||
|
|
||||||
let playButton = this.findBy("#play-button");
|
|
||||||
playButton.addEventListener("click", () => {
|
|
||||||
// Matomo.push(["trackEvent", "MainMenu", "startButton"]);
|
|
||||||
this.startLevelSite();
|
|
||||||
});
|
|
||||||
|
|
||||||
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
|
||||||
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
|
||||||
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
|
||||||
let triangleTemplate = this.findBy("#segment-triangle-template");
|
|
||||||
|
|
||||||
leafSegmentTemplate.id = null;
|
|
||||||
parentSegmentTemplate.id = null;
|
|
||||||
rowSegmentTemplate.id = null;
|
|
||||||
triangleTemplate.id = null;
|
|
||||||
|
|
||||||
leafSegmentTemplate.remove();
|
|
||||||
parentSegmentTemplate.remove();
|
|
||||||
rowSegmentTemplate.remove();
|
|
||||||
triangleTemplate.remove();
|
|
||||||
|
|
||||||
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
|
||||||
|
|
||||||
if (Helper.nonNull(MainMenuSite.app._cookieClosePromise)) {
|
|
||||||
MainMenuSite.app._cookieClosePromise.then(() => {
|
|
||||||
if (this.listener) {
|
|
||||||
this.listener();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let soundManager = SoundManager.getInstance();
|
|
||||||
|
|
||||||
let playMusicButton = this.findBy("#play-music");
|
|
||||||
playMusicButton.checked = (await NativeStoragePromise.getItem("play-music", "1") === "1");
|
|
||||||
playMusicButton.addEventListener("change", async () => {
|
|
||||||
await NativeStoragePromise.setItem("play-music", (playMusicButton.checked) ? "1" : "0");
|
|
||||||
soundManager.set({muted: !playMusicButton.checked}, SoundManager.CHANNELS.MUSIC);
|
|
||||||
if (playMusicButton.checked) {
|
|
||||||
soundManager.play(SoundManager.CHANNELS.MUSIC);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO [MIG] Matomo
|
|
||||||
Matomo.push(["trackEvent", "MainMenu", "PlayMusic", "Play Music", (playMusicButton.checked) ? 1 : 0]);
|
|
||||||
});
|
|
||||||
|
|
||||||
let playSoundButton = this.findBy("#play-sound");
|
|
||||||
playSoundButton.checked = (await NativeStoragePromise.getItem("play-sound", "1") === "1");
|
|
||||||
playSoundButton.addEventListener("change", async () => {
|
|
||||||
await NativeStoragePromise.setItem("play-sound", (playSoundButton.checked) ? "1" : "0");
|
|
||||||
soundManager.set({muted: !playSoundButton.checked}, SoundManager.CHANNELS.SOUND);
|
|
||||||
|
|
||||||
//TODO [MIG] Matomo
|
|
||||||
Matomo.push(["trackEvent", "MainMenu", "PlaySound", "Play Sound", (playSoundButton.checked) ? 1 : 0]);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.findBy("#share-button").addEventListener("click", () => {
|
|
||||||
new ShareManager().share(Translator.getInstance().translate("share-text", [window.location]));
|
|
||||||
});
|
|
||||||
// this.findBy("#share-buttons").appendChild(ShareManager.generateDefaultShareElement("https://wordrotator.silas.link"));
|
|
||||||
}
|
|
||||||
|
|
||||||
onPause(args) {
|
|
||||||
clearTimeout(this.randomRotateTimeout);
|
clearTimeout(this.randomRotateTimeout);
|
||||||
window.removeEventListener("resize", this.listener);
|
window.removeEventListener("resize", this.listener);
|
||||||
return super.onPause(args);
|
return super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadLevels() {
|
// async loadLevels() {
|
||||||
try {
|
// try {
|
||||||
const db = await WordRotatorDb.getInstance();
|
// const db = await WordRotatorDb.getInstance();
|
||||||
const dateLastSync = Helper.nonNull(await db.loadDateLastSync(), 0);
|
// const dateLastSync = Helper.nonNull(await db.loadDateLastSync(), 0);
|
||||||
// const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0);
|
// // const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0);
|
||||||
|
//
|
||||||
// let numberLevels = db.countLevels();
|
// // let numberLevels = db.countLevels();
|
||||||
let newLastSync = null;
|
// let newLastSync = null;
|
||||||
let maxRuns = 1;
|
// let maxRuns = 1;
|
||||||
let levelPromises = [];
|
// let levelPromises = [];
|
||||||
for (let run = 0; run < maxRuns; run++) {
|
// for (let run = 0; run < maxRuns; run++) {
|
||||||
let res = await DataManager.load("wordRotator/levels" + DataManager.buildQuery({
|
// let res = await DataManager.load("wordRotator/levels" + DataManager.buildQuery({
|
||||||
"currentRun": run,
|
// "currentRun": run,
|
||||||
"dateLastSync": dateLastSync
|
// "dateLastSync": dateLastSync
|
||||||
}));
|
// }));
|
||||||
if (!res["success"]) {
|
// if (!res["success"]) {
|
||||||
if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) {
|
// if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) {
|
||||||
new Toast("sync-error", 6000).show();
|
// new Toast("sync-error", 6000).show();
|
||||||
}
|
// }
|
||||||
newLastSync = null;
|
// newLastSync = null;
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
res = res["result"];
|
// res = res["result"];
|
||||||
newLastSync = Helper.nonNull(newLastSync, res["currentSyncDate"]);
|
// newLastSync = Helper.nonNull(newLastSync, res["currentSyncDate"]);
|
||||||
maxRuns = res["maxRuns"];
|
// maxRuns = res["maxRuns"];
|
||||||
|
//
|
||||||
let levels = res["levels"];
|
// let levels = res["levels"];
|
||||||
for (let i = 0; i < levels.length; i++) {
|
// for (let i = 0; i < levels.length; i++) {
|
||||||
let currentLevel = levels[i];
|
// let currentLevel = levels[i];
|
||||||
levelPromises.push(db.loadLevel(levels[i]["id"]).then(level => {
|
// levelPromises.push(db.loadLevel(levels[i]["id"]).then(level => {
|
||||||
currentLevel["played"] = (Helper.nonNull(Helper.nonNull(level, {}).played, false));
|
// currentLevel["played"] = (Helper.nonNull(Helper.nonNull(level, {}).played, false));
|
||||||
return currentLevel;
|
// return currentLevel;
|
||||||
}));
|
// }));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
let levels = await Promise.all(levelPromises);
|
// let levels = await Promise.all(levelPromises);
|
||||||
await db.saveManyLevels(levels);
|
// await db.saveManyLevels(levels);
|
||||||
|
//
|
||||||
if (newLastSync != null && newLastSync !== "null") {
|
// if (newLastSync != null && newLastSync !== "null") {
|
||||||
await NativeStoragePromise.setItem("date-last-sync", newLastSync);
|
// await NativeStoragePromise.setItem("date-last-sync", newLastSync);
|
||||||
db.saveDateLastSync(newLastSync);
|
// db.saveDateLastSync(newLastSync);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
catch(e){
|
// catch(e){
|
||||||
// if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) {
|
// // if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) {
|
||||||
new Toast("sync-error", 6000);
|
// new Toast("sync-error", 6000);
|
||||||
// }
|
// // }
|
||||||
console.error(e);
|
// console.error(e);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
MainMenuSite.app = null;
|
|
||||||
App.addInitialization(app => {
|
App.addInitialization(app => {
|
||||||
MainMenuSite.app = app;
|
MainMenuSite.app = app;
|
||||||
});
|
});
|
||||||
@ -1,10 +1,9 @@
|
|||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
const view = require("../../html/sites/privacyPolicy.html");
|
||||||
|
|
||||||
import view from "../../html/sites/privacyPolicy.html"
|
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
import {Matomo} from "cordova-sites/dist/client/js/Legacy/Matomo";
|
import {Matomo} from "cordova-sites/dist/client/js/Legacy/Matomo";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
export class PrivacyPolicySite extends WordRotatorBaseSite {
|
export class PrivacyPolicySite extends MenuSite {
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager,view);
|
super(siteManager,view);
|
||||||
}
|
}
|
||||||
@ -31,4 +30,4 @@ export class PrivacyPolicySite extends WordRotatorBaseSite {
|
|||||||
|
|
||||||
App.addInitialization(app => {
|
App.addInitialization(app => {
|
||||||
app.addDeepLink("privacyPolicy", PrivacyPolicySite);
|
app.addDeepLink("privacyPolicy", PrivacyPolicySite);
|
||||||
});
|
});
|
||||||
@ -1,17 +1,19 @@
|
|||||||
|
|
||||||
import view from "../../html/sites/selectWords.html"
|
const view = require("../../html/sites/selectWords.html");
|
||||||
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
|
||||||
import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client";
|
import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client";
|
||||||
import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment";
|
import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment";
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
import {DataManager} from "cordova-sites/dist/dist/client/js/DataManager";
|
import {DataManager} from "cordova-sites/dist/client/js/DataManager";
|
||||||
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
import {ViewHelper} from "js-helper/dist/client/ViewHelper";
|
||||||
|
import {MenuSite} from "cordova-sites/dist/client";
|
||||||
|
|
||||||
export class SelectWordsSite extends WordRotatorBaseSite{
|
export class SelectWordsSite extends MenuSite{
|
||||||
|
private stats: any;
|
||||||
|
private words: any;
|
||||||
|
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, view);
|
super(siteManager, view);
|
||||||
this.addDelegate(new UserSite("select-words"))
|
this.addDelegate(new UserSite(this, "select-words"))
|
||||||
}
|
}
|
||||||
|
|
||||||
async onConstruct(args) {
|
async onConstruct(args) {
|
||||||
@ -80,4 +82,4 @@ App.addInitialization(app => {
|
|||||||
NavbarFragment.defaultActions.push(new UserMenuAction("select-words", "select-words", () => {
|
NavbarFragment.defaultActions.push(new UserMenuAction("select-words", "select-words", () => {
|
||||||
app.startSite(SelectWordsSite);
|
app.startSite(SelectWordsSite);
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
@ -1,5 +1,4 @@
|
|||||||
|
const view = require("../../html/sites/settingsSite.html");
|
||||||
import view from "../../html/sites/settingsSite.html"
|
|
||||||
import {MenuSite} from "cordova-sites/dist/client/js/Context/MenuSite";
|
import {MenuSite} from "cordova-sites/dist/client/js/Context/MenuSite";
|
||||||
import {WordRotatorSettingFragment} from "../Fragment/WordRotatorSettingFragment";
|
import {WordRotatorSettingFragment} from "../Fragment/WordRotatorSettingFragment";
|
||||||
import {App} from "cordova-sites/dist/client/js/App";
|
import {App} from "cordova-sites/dist/client/js/App";
|
||||||
@ -14,4 +13,4 @@ export class SettingsSite extends MenuSite {
|
|||||||
|
|
||||||
App.addInitialization((app) => {
|
App.addInitialization((app) => {
|
||||||
app.addDeepLink("settings", SettingsSite);
|
app.addDeepLink("settings", SettingsSite);
|
||||||
});
|
});
|
||||||
@ -1,12 +0,0 @@
|
|||||||
import {MenuSite} from "cordova-sites/dist/client";
|
|
||||||
|
|
||||||
export class WordRotatorBaseSite extends MenuSite {
|
|
||||||
|
|
||||||
async onViewLoaded() {
|
|
||||||
let res = super.onViewLoaded();
|
|
||||||
await this.onFirstStart();
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
async onFirstStart(){}
|
|
||||||
}
|
|
||||||
@ -2,6 +2,7 @@ import {BaseModel} from "cordova-sites-database/dist/BaseModel";
|
|||||||
import {BaseDatabase} from "cordova-sites-database/dist/cordova-sites-database";
|
import {BaseDatabase} from "cordova-sites-database/dist/cordova-sites-database";
|
||||||
import {LevelData} from "../../../shared/model/LevelData";
|
import {LevelData} from "../../../shared/model/LevelData";
|
||||||
import {Helper} from "js-helper/dist/shared/Helper";
|
import {Helper} from "js-helper/dist/shared/Helper";
|
||||||
|
import {QueryBuilder, SelectQueryBuilder} from "typeorm";
|
||||||
|
|
||||||
export class LevelPlayed extends BaseModel {
|
export class LevelPlayed extends BaseModel {
|
||||||
|
|
||||||
@ -35,7 +36,7 @@ export class LevelPlayed extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async getNextLevelData(renderer){
|
static async getNextLevelData(renderer){
|
||||||
let qb = await this._database.createQueryBuilder(LevelData);
|
let qb = <SelectQueryBuilder<LevelData>>await this._database.createQueryBuilder(LevelData);
|
||||||
|
|
||||||
qb = qb.select("COUNT(*) as count, difficulty")
|
qb = qb.select("COUNT(*) as count, difficulty")
|
||||||
.leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id")
|
.leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id")
|
||||||
@ -61,7 +62,7 @@ export class LevelPlayed extends BaseModel {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
qb = await this._database.createQueryBuilder(LevelData);
|
qb = <SelectQueryBuilder<LevelData>>await this._database.createQueryBuilder(LevelData);
|
||||||
qb = qb
|
qb = qb
|
||||||
.leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id")
|
.leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id")
|
||||||
.where("(deleted = 0 OR deleted = 'false')")
|
.where("(deleted = 0 OR deleted = 'false')")
|
||||||
@ -75,4 +76,4 @@ export class LevelPlayed extends BaseModel {
|
|||||||
return await qb.getOne();
|
return await qb.getOne();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BaseDatabase.addModel(LevelPlayed);
|
BaseDatabase.addModel(LevelPlayed);
|
||||||
|
|||||||
@ -12,8 +12,25 @@ import {SimpleFourWordsLevel10_3} from "./SimpleFourWordsLevel10_3";
|
|||||||
import {TwoSegmentFourWordsLevel10_0_3} from "./TwoSegmentFourWordsLevel10_0_3";
|
import {TwoSegmentFourWordsLevel10_0_3} from "./TwoSegmentFourWordsLevel10_0_3";
|
||||||
import {TwoSegmentFourWordsLevel10_1_3} from "./TwoSegmentFourWordsLevel10_1_3";
|
import {TwoSegmentFourWordsLevel10_1_3} from "./TwoSegmentFourWordsLevel10_1_3";
|
||||||
import {TwoSegmentFourWordsLevel10_0_2} from "./TwoSegmentFourWordsLevel10_0_2";
|
import {TwoSegmentFourWordsLevel10_0_2} from "./TwoSegmentFourWordsLevel10_0_2";
|
||||||
|
import {Level} from "./Level";
|
||||||
|
|
||||||
export class LevelHelper {
|
export class LevelHelper {
|
||||||
|
public static readonly types = {
|
||||||
|
20: SimpleLevel,
|
||||||
|
40: RowLevel8,
|
||||||
|
60: RowLevel10,
|
||||||
|
80: SimpleFourWordsLevel10_0,
|
||||||
|
81: SimpleFourWordsLevel10_1,
|
||||||
|
82: SimpleFourWordsLevel10_2,
|
||||||
|
83: SimpleFourWordsLevel10_3,
|
||||||
|
100: SixWordsRowLevel8,
|
||||||
|
110: TwoSegmentFourWordsLevel10_0_3,
|
||||||
|
111: TwoSegmentFourWordsLevel10_1_3,
|
||||||
|
112: TwoSegmentFourWordsLevel10_0_2,
|
||||||
|
120: FourWordsLevel8,
|
||||||
|
140: SixWordsRowLevel12,
|
||||||
|
160: FourWordsLevel12,
|
||||||
|
};
|
||||||
static setLevelType(typeId, level) {
|
static setLevelType(typeId, level) {
|
||||||
LevelHelper.types[typeId] = level;
|
LevelHelper.types[typeId] = level;
|
||||||
}
|
}
|
||||||
@ -22,7 +39,7 @@ export class LevelHelper {
|
|||||||
return LevelHelper.types[type];
|
return LevelHelper.types[type];
|
||||||
}
|
}
|
||||||
|
|
||||||
static inflateLevel(levelData, templateContainer) {
|
static inflateLevel(levelData, templateContainer): Level {
|
||||||
let level = new (LevelHelper.types[levelData["renderer"]])(templateContainer);
|
let level = new (LevelHelper.types[levelData["renderer"]])(templateContainer);
|
||||||
level.setWords(JSON.parse(levelData["words"].replace(/"/g, '"')));
|
level.setWords(JSON.parse(levelData["words"].replace(/"/g, '"')));
|
||||||
level.setId(levelData["id"]);
|
level.setId(levelData["id"]);
|
||||||
@ -39,20 +56,3 @@ export class LevelHelper {
|
|||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LevelHelper.types = {
|
|
||||||
20: SimpleLevel,
|
|
||||||
40: RowLevel8,
|
|
||||||
60: RowLevel10,
|
|
||||||
80: SimpleFourWordsLevel10_0,
|
|
||||||
81: SimpleFourWordsLevel10_1,
|
|
||||||
82: SimpleFourWordsLevel10_2,
|
|
||||||
83: SimpleFourWordsLevel10_3,
|
|
||||||
100: SixWordsRowLevel8,
|
|
||||||
110: TwoSegmentFourWordsLevel10_0_3,
|
|
||||||
111: TwoSegmentFourWordsLevel10_1_3,
|
|
||||||
112: TwoSegmentFourWordsLevel10_0_2,
|
|
||||||
120: FourWordsLevel8,
|
|
||||||
140: SixWordsRowLevel12,
|
|
||||||
160: FourWordsLevel12,
|
|
||||||
};
|
|
||||||
44
src/client/sass/_navbarOverride.scss
Normal file
44
src/client/sass/_navbarOverride.scss
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
nav.top-bar {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
@each $breakpoint, $value in $margins {
|
||||||
|
@include breakpoint($breakpoint) {
|
||||||
|
margin-left: -$value;
|
||||||
|
margin-right: -$value;
|
||||||
|
//width: calc(100% + #{4*$value});
|
||||||
|
//max-width: calc(100% + #{4*$value});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.with-image .background-img {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.background-img {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .grid-container {
|
||||||
|
background: inherit;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
> .grid-padding-x {
|
||||||
|
display: block;
|
||||||
|
padding: 0.5rem;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul > li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
&.level-counter {
|
||||||
|
margin-top: 0.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
88
src/client/sass/_themeBlue.scss
Normal file
88
src/client/sass/_themeBlue.scss
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
|
||||||
|
// Blue
|
||||||
|
//$primaryColor: #427081;
|
||||||
|
//$secondaryColor: #4d575a;
|
||||||
|
//$accentColor: #e3ab6e;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: black;
|
||||||
|
|
||||||
|
// Blue different Accent
|
||||||
|
//$primaryColor: #427081;
|
||||||
|
//$secondaryColor: #4d575a;
|
||||||
|
//$accentColor: #d3e7eb;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: black;
|
||||||
|
|
||||||
|
// Blau Invers
|
||||||
|
//$primaryColor: #4d575a;
|
||||||
|
//$secondaryColor: #427081;
|
||||||
|
//$accentColor: #e3ab6e;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: black;
|
||||||
|
|
||||||
|
// Grün
|
||||||
|
$primaryColor: #6b8778;
|
||||||
|
$secondaryColor: #012f25;
|
||||||
|
$accentColor: #b8acaa;
|
||||||
|
$textColor: white;
|
||||||
|
$svgColor: black;
|
||||||
|
|
||||||
|
// Grün 2
|
||||||
|
//$primaryColor: #234c42;
|
||||||
|
//$secondaryColor: #012f25;
|
||||||
|
//$accentColor: #b8acaa;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: black;
|
||||||
|
|
||||||
|
// Grün invers
|
||||||
|
//$primaryColor: #012f25;
|
||||||
|
//$secondaryColor: #234c42;
|
||||||
|
//$accentColor: #b8acaa;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: white;
|
||||||
|
|
||||||
|
// Grün invers andere Accent
|
||||||
|
//$primaryColor: #012f25;
|
||||||
|
//$secondaryColor: #234c42;
|
||||||
|
//$accentColor: #6b8778;
|
||||||
|
//$textColor: white;
|
||||||
|
//$svgColor: white;
|
||||||
|
|
||||||
|
body.theme-blue{
|
||||||
|
background: $primaryColor;
|
||||||
|
color: $textColor;
|
||||||
|
|
||||||
|
.toast .message{
|
||||||
|
background: $secondaryColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.top-bar, nav.top-bar.with-image, nav.top-bar.with-image.solid{
|
||||||
|
background: $secondaryColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button{
|
||||||
|
background: $secondaryColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.switch input:checked + .slider{
|
||||||
|
background: $accentColor;
|
||||||
|
}
|
||||||
|
#level-number-container{
|
||||||
|
background: $primaryColor;
|
||||||
|
}
|
||||||
|
svg {
|
||||||
|
color: $svgColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.menu li a {
|
||||||
|
color: $textColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: $accentColor;
|
||||||
|
&.hidden-link{
|
||||||
|
color: $textColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,394 +0,0 @@
|
|||||||
@import "settings";
|
|
||||||
@import "lib/_actionBar.scss";
|
|
||||||
@import "lib/_form.scss";
|
|
||||||
@import "lib/_listjs.scss";
|
|
||||||
@import "lib/_modal.scss";
|
|
||||||
@import "lib/_rotate.scss";
|
|
||||||
@import "lib/_share.scss";
|
|
||||||
@import "lib/_tabs.scss";
|
|
||||||
@import "lib/_core.scss";
|
|
||||||
@import "lib/_flashMessenger.scss";
|
|
||||||
@import "lib/_framework.scss";
|
|
||||||
@import "lib/_pwaAssets.scss";
|
|
||||||
@import "lib/_settingsSite.scss";
|
|
||||||
@import "lib/_style.scss";
|
|
||||||
@import "lib/_theme.scss";
|
|
||||||
|
|
||||||
@import "tutorial";
|
|
||||||
@import "wordrotatorTheme";
|
|
||||||
|
|
||||||
//ActionBar
|
|
||||||
nav.top-bar.title-bar {
|
|
||||||
padding: 0.3rem 0.6rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
max-width: 2rem;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#action-bar .top-bar-right .menu .action.img a {
|
|
||||||
padding-bottom: 0;
|
|
||||||
img {
|
|
||||||
max-height: 1.8rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu, .dropdown.menu {
|
|
||||||
a {
|
|
||||||
padding: 0.2rem 0.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#level-number-container {
|
|
||||||
z-index: 1;
|
|
||||||
transition: none;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
border: 3px solid white;
|
|
||||||
border-radius: 50%;
|
|
||||||
visibility: hidden;
|
|
||||||
display: table-cell;
|
|
||||||
|
|
||||||
height: 35px;
|
|
||||||
width: 35px;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
|
|
||||||
&.visible {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
&.in-main-menu {
|
|
||||||
background: white;
|
|
||||||
border-color: black;
|
|
||||||
|
|
||||||
height: 1em;
|
|
||||||
width: 1em;
|
|
||||||
min-height: 1em;
|
|
||||||
min-width: 1em;
|
|
||||||
max-height: 1em;
|
|
||||||
max-width: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#level-number {
|
|
||||||
transition: none;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$coinTowerDimension: 28px;
|
|
||||||
//coin element
|
|
||||||
.coin-counter {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
font-size: 1.6rem;
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
:after {
|
|
||||||
background-image: url('../img/coinTower.png');
|
|
||||||
background-size: $coinTowerDimension $coinTowerDimension;
|
|
||||||
width: $coinTowerDimension;
|
|
||||||
height: $coinTowerDimension;
|
|
||||||
display: inline-block;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#coin-container {
|
|
||||||
line-height: 1;
|
|
||||||
.coin {
|
|
||||||
margin-left: 3px;
|
|
||||||
margin-right: 3px;
|
|
||||||
max-width: 20px;
|
|
||||||
display: inline-block;
|
|
||||||
@include breakpoint(smedium) {
|
|
||||||
max-width: 25px;
|
|
||||||
}
|
|
||||||
@include breakpoint(medium) {
|
|
||||||
max-width: 30px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Segments
|
|
||||||
|
|
||||||
@for $i from 1 through length($rotationDegrees) {
|
|
||||||
$startDegree: ((nth($rotationDegrees, $i)+270)%360);
|
|
||||||
|
|
||||||
@keyframes rotate-#{nth($rotationDegrees, $i)} {
|
|
||||||
0% {
|
|
||||||
//transform: rotate(#{$startDegree}deg);
|
|
||||||
transform: #{map-get($degreeMatrix, $startDegree)};
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
//transform: rotate(#{nth($rotationDegrees, $i)}deg);
|
|
||||||
transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i))};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes rotate-reverse-#{nth($rotationDegrees, $i)} {
|
|
||||||
0% {
|
|
||||||
//transform: rotate(#{(nth($rotationDegrees, $i))+90}deg);
|
|
||||||
transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i)+90)}
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
//transform: rotate(#{$startDegree+90}deg);
|
|
||||||
transform: #{map-get($degreeMatrix, $startDegree+90)};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.segment:not(.segment-row):not(.segment-triangle) {
|
|
||||||
&.rotating {
|
|
||||||
z-index: 10 !important;
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
@for $i from 1 through length($rotationDegrees) {
|
|
||||||
&.rotate-#{nth($rotationDegrees, $i)} {
|
|
||||||
animation-name: rotate-#{nth($rotationDegrees, $i)};
|
|
||||||
animation-duration: $animationDuration;
|
|
||||||
animation-fill-mode: forwards;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
|
|
||||||
> .child-container {
|
|
||||||
> .segment {
|
|
||||||
animation-name: rotate-#{450- nth($rotationDegrees, $i)};
|
|
||||||
animation-duration: $animationDuration;
|
|
||||||
animation-fill-mode: forwards;
|
|
||||||
animation-direction: reverse;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
|
|
||||||
@for $j from 1 through length($rotationDegrees) {
|
|
||||||
$animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360)+90;
|
|
||||||
&.rotate-#{nth($rotationDegrees, $j)} {
|
|
||||||
animation-name: rotate-#{$animationName};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.reverse {
|
|
||||||
//animation-name: rotate-reverse-#{(nth($rotationDegrees, $i))%360+90};
|
|
||||||
animation-name: rotate-reverse-#{nth($rotationDegrees, $i)};
|
|
||||||
> .child-container {
|
|
||||||
> .segment {
|
|
||||||
//animation-name: rotate-reverse-#{360- (nth($rotationDegrees, $i)%360)};
|
|
||||||
animation-name: rotate-reverse-#{(540- nth($rotationDegrees, $i))%360+90};
|
|
||||||
@for $j from 1 through length($rotationDegrees) {
|
|
||||||
$animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360)+90;
|
|
||||||
&.rotate-#{nth($rotationDegrees, $j)} {
|
|
||||||
animation-name: rotate-reverse-#{($animationName+90)%360+90};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(.rotating) {
|
|
||||||
@for $i from 1 through length($rotationDegrees) {
|
|
||||||
&.rotate-#{nth($rotationDegrees, $i)} {
|
|
||||||
transform: rotate(#{nth($rotationDegrees, $i)}deg);
|
|
||||||
background-color: inherit;
|
|
||||||
z-index: 1;
|
|
||||||
> .child-container {
|
|
||||||
> .segment {
|
|
||||||
transform: rotate(#{360- nth($rotationDegrees, $i)}deg);
|
|
||||||
background-color: inherit;
|
|
||||||
z-index: 1;
|
|
||||||
|
|
||||||
@for $j from 1 through length($rotationDegrees) {
|
|
||||||
$animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360);
|
|
||||||
@if $animationName==0 {
|
|
||||||
$animationName: 360;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.rotate-#{nth($rotationDegrees, $j)} {
|
|
||||||
transform: rotate(#{$animationName}deg);
|
|
||||||
background-color: inherit;
|
|
||||||
z-index: 1;
|
|
||||||
|
|
||||||
&.rotating {
|
|
||||||
animation-name: rotate-#{$animationName};
|
|
||||||
animation-duration: $animationDuration;
|
|
||||||
animation-fill-mode: forwards;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
|
|
||||||
&.reverse {
|
|
||||||
animation-name: rotate-reverse-#{$animationName};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#level {
|
|
||||||
user-select: none;
|
|
||||||
white-space: nowrap;
|
|
||||||
transition: none;
|
|
||||||
max-width: 100%;
|
|
||||||
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
|
|
||||||
//width: 100%;
|
|
||||||
|
|
||||||
* {
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
overflow-y: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
.segment {
|
|
||||||
vertical-align: top;
|
|
||||||
white-space: initial;
|
|
||||||
cursor: pointer;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
position: relative;
|
|
||||||
transition: none;
|
|
||||||
user-select: none;
|
|
||||||
z-index: 1;
|
|
||||||
background-color: inherit;
|
|
||||||
line-height: 0;
|
|
||||||
|
|
||||||
&.segment-row {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
animation: none !important;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.segment-leaf {
|
|
||||||
background-color: transparent !important;
|
|
||||||
min-width: 1em;
|
|
||||||
padding: 0.8em;
|
|
||||||
&:before {
|
|
||||||
content: " ";
|
|
||||||
display: block;
|
|
||||||
padding-top: 100%;
|
|
||||||
}
|
|
||||||
.leaf-element {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
line-height: 1.5em;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.segment-parent {
|
|
||||||
border: solid 1px #a9a9a9;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 1px;
|
|
||||||
|
|
||||||
&.layer-2 {
|
|
||||||
border: solid 3px #000000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.segment-triangle {
|
|
||||||
> .child-container {
|
|
||||||
> .segment-parent {
|
|
||||||
//border: solid 3px #000000;
|
|
||||||
//position: relative;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Won-screen
|
|
||||||
#site-content > :not(.won) {
|
|
||||||
.show-when-won {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.level-container {
|
|
||||||
//flex: 1;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.won {
|
|
||||||
.level-container {
|
|
||||||
//height: 60%;
|
|
||||||
}
|
|
||||||
.show-when-won {
|
|
||||||
//visibility: initial;
|
|
||||||
}
|
|
||||||
.show-while-playing {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#continue-button {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
margin-bottom: 0;
|
|
||||||
padding: 0.3em .6em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#play-button {
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#help-button {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0.4em 0.4em;
|
|
||||||
max-width: 3em;
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
padding: 0.2em 0.2em;
|
|
||||||
max-width: 2em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.line-height-1 {
|
|
||||||
line-height: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
overscroll-behavior: contain;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site-content {
|
|
||||||
overflow: visible;
|
|
||||||
}
|
|
||||||
div.mainContainer{
|
|
||||||
overflow-x: hidden;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//#img-sound:before {
|
|
||||||
// content: "";
|
|
||||||
// max-width: 1.4em;
|
|
||||||
// background: url('../img/speaker.svg')
|
|
||||||
//}
|
|
||||||
|
|
||||||
.clickable{
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#share-button svg{
|
|
||||||
cursor: pointer;
|
|
||||||
max-width: 1.5rem;
|
|
||||||
}
|
|
||||||
@ -73,9 +73,16 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.default {
|
&.default {
|
||||||
background: url('../img/background.png');
|
//background: #07076d;
|
||||||
background-size: cover;
|
background: #0f0f49;
|
||||||
background-position: center;
|
//background: #1c1c44;
|
||||||
|
color: white;
|
||||||
|
* {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
//background: url('../img/background.png');
|
||||||
|
//background-size: cover;
|
||||||
|
//background-position: center;
|
||||||
|
|
||||||
#level-number-container {
|
#level-number-container {
|
||||||
&.in-main-menu {
|
&.in-main-menu {
|
||||||
@ -144,17 +151,13 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
label {
|
//.setting-row:not(.hidden) {
|
||||||
font-size: 1em !important;
|
// line-height: 1;
|
||||||
}
|
// padding-top: 0.5em;
|
||||||
|
// padding-bottom: 0.5em;
|
||||||
.setting-row:not(.hidden) {
|
// width: 100%;
|
||||||
line-height: 1;
|
// cursor: pointer;
|
||||||
padding-top: 0.5em;
|
// background: rgba(195, 195, 195, 0.13);
|
||||||
padding-bottom: 0.5em;
|
// //display: inline-block;
|
||||||
width: 100%;
|
//}
|
||||||
cursor: pointer;
|
|
||||||
background: rgba(195, 195, 195, 0.13);
|
|
||||||
//display: inline-block;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
67
src/client/sass/foundation.scss
vendored
67
src/client/sass/foundation.scss
vendored
@ -1,67 +0,0 @@
|
|||||||
@import "../../node_modules/foundation-sites/scss/foundation";
|
|
||||||
@import "settings";
|
|
||||||
|
|
||||||
@include foundation-global-styles;
|
|
||||||
@include foundation-visibility-classes;
|
|
||||||
@include foundation-grid;
|
|
||||||
@include foundation-forms;
|
|
||||||
//@include foundation-flex-grid;
|
|
||||||
//@include foundation-flex-classes;
|
|
||||||
@include foundation-button;
|
|
||||||
@include foundation-top-bar;
|
|
||||||
|
|
||||||
@include foundation-menu;
|
|
||||||
@include foundation-menu-icon;
|
|
||||||
|
|
||||||
@include foundation-prototype-overflow;
|
|
||||||
|
|
||||||
@include foundation-dropdown;
|
|
||||||
@include foundation-dropdown-menu;
|
|
||||||
@include foundation-accordion;
|
|
||||||
@include foundation-accordion-menu;
|
|
||||||
|
|
||||||
@include foundation-prototype-spacing;
|
|
||||||
|
|
||||||
//@include foundation-everything;
|
|
||||||
|
|
||||||
.top-bar-title {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row:not(.expanded) .row {
|
|
||||||
max-width: 100%;
|
|
||||||
margin-right: 0;
|
|
||||||
margin-left: 0;
|
|
||||||
.column, .columns {
|
|
||||||
&.no-padding-left {
|
|
||||||
padding-left: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.no-padding-right {
|
|
||||||
padding-right: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $size in $breakpoints {
|
|
||||||
&.#{nth($size, 1)}-first {
|
|
||||||
@include breakpoint(nth($size, 1)) {
|
|
||||||
padding-left: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.#{nth($size, 1)}-last {
|
|
||||||
@include breakpoint(nth($size, 1)) {
|
|
||||||
padding-right: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.row.low-padding {
|
|
||||||
.column, .columns {
|
|
||||||
//&:not(:first-child)
|
|
||||||
//{
|
|
||||||
//}
|
|
||||||
padding-left: 0.15rem;
|
|
||||||
padding-right: 0.15rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,8 +1,7 @@
|
|||||||
@import "../../../node_modules/foundation-sites/scss/foundation";
|
@import "../../../node_modules/foundation-sites/scss/foundation";
|
||||||
|
|
||||||
//Settings nach foundation für mixins in settings
|
//Settings nach foundation für mixins in settings
|
||||||
@import "wordRotator";
|
@import "settings";
|
||||||
@import "animations";
|
|
||||||
|
|
||||||
//Include foundation before other styles, so that other one can override foundation
|
//Include foundation before other styles, so that other one can override foundation
|
||||||
@include foundation-everything;
|
@include foundation-everything;
|
||||||
@ -12,6 +11,10 @@
|
|||||||
@import "../../../node_modules/cordova-sites-user-management/cordova-sites-user-management";
|
@import "../../../node_modules/cordova-sites-user-management/cordova-sites-user-management";
|
||||||
|
|
||||||
//Anderes nach Settings, damit Settings bereits angewendet werden
|
//Anderes nach Settings, damit Settings bereits angewendet werden
|
||||||
|
@import "wordRotator";
|
||||||
|
@import "animations";
|
||||||
|
@import "navbarOverride";
|
||||||
|
@import "themeBlue";
|
||||||
|
|
||||||
.translation{}
|
.translation{}
|
||||||
|
|
||||||
@ -189,4 +192,4 @@ a.hidden-link {
|
|||||||
|
|
||||||
body{
|
body{
|
||||||
//background-image: url("../img/background.png");
|
//background-image: url("../img/background.png");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,250 +0,0 @@
|
|||||||
@import "../../../node_modules/foundation-sites/scss/foundation";
|
|
||||||
|
|
||||||
nav.top-bar.title-bar {
|
|
||||||
padding: 0.3rem 0.6rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
max-width: 2rem;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu, .dropdown.menu {
|
|
||||||
a {
|
|
||||||
padding: 0.2rem 0.5rem;
|
|
||||||
}
|
|
||||||
> li > a {
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 0.2rem 0.7rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-bar-title
|
|
||||||
{
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
#action-bar {
|
|
||||||
.close-listener {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: transparent;
|
|
||||||
z-index: 9000;
|
|
||||||
}
|
|
||||||
#responsive-menu {
|
|
||||||
.top-bar-right {
|
|
||||||
position: relative;
|
|
||||||
text-align: right;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
.top-bar-right {
|
|
||||||
width: auto;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.menu {
|
|
||||||
&.action-bar {
|
|
||||||
a {
|
|
||||||
img + span {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.action {
|
|
||||||
position: relative;
|
|
||||||
z-index: 9000;
|
|
||||||
&.is-dropdown-submenu-parent{
|
|
||||||
z-index: 9001;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
&.smedium {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
li {
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
&.medium {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(medium down) {
|
|
||||||
&.large {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.never {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.hidden {
|
|
||||||
display: inline-block;
|
|
||||||
//float: right;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 9000;
|
|
||||||
border: 1px solid rgb(202, 202, 202);
|
|
||||||
padding: 0.2rem;
|
|
||||||
transform: translateX(-100%);
|
|
||||||
text-align: left;
|
|
||||||
|
|
||||||
.action {
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
&.is-dropdown-submenu-parent {
|
|
||||||
z-index: 9001;
|
|
||||||
ul.is-dropdown-submenu {
|
|
||||||
top: auto;
|
|
||||||
> li.action, > .close-listener {
|
|
||||||
z-index: 9001;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
> a:after {
|
|
||||||
display: block;
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border: 6px inset;
|
|
||||||
content: "";
|
|
||||||
border-bottom-width: 0;
|
|
||||||
border-top-style: solid;
|
|
||||||
border-color: #ffffff transparent transparent;
|
|
||||||
right: 5px;
|
|
||||||
left: auto;
|
|
||||||
margin-top: -3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
white-space: nowrap;
|
|
||||||
img {
|
|
||||||
display: none;
|
|
||||||
+ span {
|
|
||||||
display: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(medium) {
|
|
||||||
&.medium {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(smedium) {
|
|
||||||
&.smedium {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(large) {
|
|
||||||
&.large {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
&.smedium {
|
|
||||||
display: block;
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
&.medium {
|
|
||||||
display: block;
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(medium down) {
|
|
||||||
&.large {
|
|
||||||
display: block;
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.never {
|
|
||||||
display: block;
|
|
||||||
&.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.always {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.action {
|
|
||||||
z-index: 100;
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
a {
|
|
||||||
width: 100%;
|
|
||||||
//text-align: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
a {
|
|
||||||
padding-left: 0.68rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
a {
|
|
||||||
padding-left: 0.236rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(.is-dropdown-submenu-parent) {
|
|
||||||
@include breakpoint(smedium down) {
|
|
||||||
a {
|
|
||||||
padding-right: 0.68rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
a {
|
|
||||||
padding-right: 0.236rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.img a {
|
|
||||||
padding-top: 0;
|
|
||||||
padding-bottom: 0;
|
|
||||||
img {
|
|
||||||
vertical-align: inherit;
|
|
||||||
max-height: 1.8rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
> li > ul.is-dropdown-submenu {
|
|
||||||
min-width: 0;
|
|
||||||
.action {
|
|
||||||
display: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
> li.opens-right > ul.is-dropdown-submenu {
|
|
||||||
right: auto;
|
|
||||||
left: auto;
|
|
||||||
a {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown.menu > li.is-dropdown-submenu-parent > a:after {
|
|
||||||
border-color: #ffffff transparent transparent;
|
|
||||||
}
|
|
||||||
@ -8,7 +8,7 @@ html {
|
|||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
font-size: 18px;
|
//font-size: 18px;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,4 +364,4 @@ img.back-button {
|
|||||||
|
|
||||||
.no-margin-bottom {
|
.no-margin-bottom {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,86 +0,0 @@
|
|||||||
|
|
||||||
form {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sending {
|
|
||||||
.sending-loader {
|
|
||||||
position: absolute;
|
|
||||||
background-color: rgba(125, 125, 125, 0.3);
|
|
||||||
display: block;
|
|
||||||
pointer-events: all;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 10;
|
|
||||||
.loader {
|
|
||||||
position: absolute
|
|
||||||
}
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sending-loader {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
//input.notEmpty:invalid {
|
|
||||||
// background-color: lightcoral;
|
|
||||||
//}
|
|
||||||
|
|
||||||
label {
|
|
||||||
position: relative;
|
|
||||||
[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'], textarea, input[type=text], input:not([type]) {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
height: 2.4375rem;
|
|
||||||
padding: 0.5rem;
|
|
||||||
box-shadow: none !important;
|
|
||||||
font-size: 1rem;
|
|
||||||
font-weight: normal;
|
|
||||||
line-height: 1.5;
|
|
||||||
border: none;
|
|
||||||
//border-bottom: solid black;
|
|
||||||
outline: 0;
|
|
||||||
margin: 0 0 15px;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
border: none;
|
|
||||||
box-shadow: none !important;
|
|
||||||
//border-bottom: solid black;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:focus, &.notEmpty:not(:focus) {
|
|
||||||
~ span {
|
|
||||||
top: -11px;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
font-size: 11px;
|
|
||||||
opacity: 1;
|
|
||||||
//color: black;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
~ span {
|
|
||||||
position: absolute;
|
|
||||||
pointer-events: none;
|
|
||||||
left: 10px;
|
|
||||||
bottom: 10px;
|
|
||||||
top: 7px;
|
|
||||||
transition: 0.2s ease all;
|
|
||||||
//color: #626262;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
textarea {
|
|
||||||
height: 10rem;
|
|
||||||
//border: 1px solid rgba(136, 136, 136, 0.31);
|
|
||||||
//box-shadow: 0 0 3px 2px hsla(0, 0%, 53%, .31) !important;
|
|
||||||
border-top-right-radius: 3px;
|
|
||||||
border-top-left-radius: 3px;
|
|
||||||
}
|
|
||||||
[type="checkbox"].before-text {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,621 +0,0 @@
|
|||||||
// Foundation for Sites Settings
|
|
||||||
// -----------------------------
|
|
||||||
//
|
|
||||||
// Table of Contents:
|
|
||||||
//
|
|
||||||
// 1. Global
|
|
||||||
// 2. Breakpoints
|
|
||||||
// 3. The Grid
|
|
||||||
// 4. Base Typography
|
|
||||||
// 5. Typography Helpers
|
|
||||||
// 6. Abide
|
|
||||||
// 7. Accordion
|
|
||||||
// 8. Accordion Menu
|
|
||||||
// 9. Badge
|
|
||||||
// 10. Breadcrumbs
|
|
||||||
// 11. Button
|
|
||||||
// 12. Button Group
|
|
||||||
// 13. Callout
|
|
||||||
// 14. Card
|
|
||||||
// 15. Close Button
|
|
||||||
// 16. Drilldown
|
|
||||||
// 17. Dropdown
|
|
||||||
// 18. Dropdown Menu
|
|
||||||
// 19. Forms
|
|
||||||
// 20. Label
|
|
||||||
// 21. Media Object
|
|
||||||
// 22. Menu
|
|
||||||
// 23. Meter
|
|
||||||
// 24. Off-canvas
|
|
||||||
// 25. Orbit
|
|
||||||
// 26. Pagination
|
|
||||||
// 27. Progress Bar
|
|
||||||
// 28. Responsive Embed
|
|
||||||
// 29. Reveal
|
|
||||||
// 30. Slider
|
|
||||||
// 31. Switch
|
|
||||||
// 32. Table
|
|
||||||
// 33. Tabs
|
|
||||||
// 34. Thumbnail
|
|
||||||
// 35. Title Bar
|
|
||||||
// 36. Tooltip
|
|
||||||
// 37. Top Bar
|
|
||||||
|
|
||||||
@import '../../../node_modules/foundation-sites/scss/util/util';
|
|
||||||
|
|
||||||
// 1. Global
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$global-font-size: 100%;
|
|
||||||
$global-width: rem-calc(1200);
|
|
||||||
$global-lineheight: 1.5;
|
|
||||||
$foundation-palette: (
|
|
||||||
primary: #1779ba,
|
|
||||||
secondary: #767676,
|
|
||||||
success: #3adb76,
|
|
||||||
warning: #ffae00,
|
|
||||||
alert: #cc4b37,
|
|
||||||
);
|
|
||||||
$light-gray: #e6e6e6;
|
|
||||||
$medium-gray: #cacaca;
|
|
||||||
$dark-gray: #8a8a8a;
|
|
||||||
$black: #0a0a0a;
|
|
||||||
$white: #fefefe;
|
|
||||||
$body-background: $white;
|
|
||||||
$body-font-color: $black;
|
|
||||||
$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
|
|
||||||
$body-antialiased: true;
|
|
||||||
$global-margin: 1rem;
|
|
||||||
$global-padding: 1rem;
|
|
||||||
$global-weight-normal: normal;
|
|
||||||
$global-weight-bold: bold;
|
|
||||||
$global-radius: 0;
|
|
||||||
$global-text-direction: ltr;
|
|
||||||
$global-flexbox: false;
|
|
||||||
$print-transparent-backgrounds: true;
|
|
||||||
|
|
||||||
@include add-foundation-colors;
|
|
||||||
|
|
||||||
// 2. Breakpoints
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
$breakpoints: (
|
|
||||||
small:0,
|
|
||||||
smedium: 400px,
|
|
||||||
medium: 640px,
|
|
||||||
large: 1024px,
|
|
||||||
xlarge: 1200px,
|
|
||||||
xxlarge: 1440px,
|
|
||||||
);
|
|
||||||
$print-breakpoint: large;
|
|
||||||
$breakpoint-classes: (small smedium medium large);
|
|
||||||
|
|
||||||
// 3. The Grid
|
|
||||||
// -----------
|
|
||||||
|
|
||||||
$grid-row-width: $global-width;
|
|
||||||
$grid-column-count: 12;
|
|
||||||
$grid-column-gutter: (
|
|
||||||
small: 20px,
|
|
||||||
medium: 30px,
|
|
||||||
);
|
|
||||||
$grid-column-align-edge: true;
|
|
||||||
$block-grid-max: 8;
|
|
||||||
|
|
||||||
// 4. Base Typography
|
|
||||||
// ------------------
|
|
||||||
|
|
||||||
$header-font-family: $body-font-family;
|
|
||||||
$header-font-weight: $global-weight-normal;
|
|
||||||
$header-font-style: normal;
|
|
||||||
$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace;
|
|
||||||
$header-color: inherit;
|
|
||||||
$header-lineheight: 1.4;
|
|
||||||
$header-margin-bottom: 0.5rem;
|
|
||||||
$header-styles: (
|
|
||||||
small: (
|
|
||||||
'h1': ('font-size': 24),
|
|
||||||
'h2': ('font-size': 20),
|
|
||||||
'h3': ('font-size': 19),
|
|
||||||
'h4': ('font-size': 18),
|
|
||||||
'h5': ('font-size': 17),
|
|
||||||
'h6': ('font-size': 16),
|
|
||||||
),
|
|
||||||
medium: (
|
|
||||||
'h1': ('font-size': 48),
|
|
||||||
'h2': ('font-size': 40),
|
|
||||||
'h3': ('font-size': 31),
|
|
||||||
'h4': ('font-size': 25),
|
|
||||||
'h5': ('font-size': 20),
|
|
||||||
'h6': ('font-size': 16),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
$header-text-rendering: optimizeLegibility;
|
|
||||||
$small-font-size: 80%;
|
|
||||||
$header-small-font-color: $medium-gray;
|
|
||||||
$paragraph-lineheight: 1.6;
|
|
||||||
$paragraph-margin-bottom: 1rem;
|
|
||||||
$paragraph-text-rendering: optimizeLegibility;
|
|
||||||
$code-color: $black;
|
|
||||||
$code-font-family: $font-family-monospace;
|
|
||||||
$code-font-weight: $global-weight-normal;
|
|
||||||
$code-background: $light-gray;
|
|
||||||
$code-border: 1px solid $medium-gray;
|
|
||||||
$code-padding: rem-calc(2 5 1);
|
|
||||||
$anchor-color: $primary-color;
|
|
||||||
$anchor-color-hover: scale-color($anchor-color, $lightness: -14%);
|
|
||||||
$anchor-text-decoration: none;
|
|
||||||
$anchor-text-decoration-hover: none;
|
|
||||||
$hr-width: $global-width;
|
|
||||||
$hr-border: 1px solid $medium-gray;
|
|
||||||
$hr-margin: rem-calc(20) auto;
|
|
||||||
$list-lineheight: $paragraph-lineheight;
|
|
||||||
$list-margin-bottom: $paragraph-margin-bottom;
|
|
||||||
$list-style-type: disc;
|
|
||||||
$list-style-position: outside;
|
|
||||||
$list-side-margin: 1.25rem;
|
|
||||||
$list-nested-side-margin: 1.25rem;
|
|
||||||
$defnlist-margin-bottom: 1rem;
|
|
||||||
$defnlist-term-weight: $global-weight-bold;
|
|
||||||
$defnlist-term-margin-bottom: 0.3rem;
|
|
||||||
$blockquote-color: $dark-gray;
|
|
||||||
$blockquote-padding: rem-calc(9 20 0 19);
|
|
||||||
$blockquote-border: 1px solid $medium-gray;
|
|
||||||
$cite-font-size: rem-calc(13);
|
|
||||||
$cite-color: $dark-gray;
|
|
||||||
$cite-pseudo-content: '\2014 \0020';
|
|
||||||
$keystroke-font: $font-family-monospace;
|
|
||||||
$keystroke-color: $black;
|
|
||||||
$keystroke-background: $light-gray;
|
|
||||||
$keystroke-padding: rem-calc(2 4 0);
|
|
||||||
$keystroke-radius: $global-radius;
|
|
||||||
$abbr-underline: 1px dotted $black;
|
|
||||||
|
|
||||||
// 5. Typography Helpers
|
|
||||||
// ---------------------
|
|
||||||
|
|
||||||
$lead-font-size: $global-font-size * 1.25;
|
|
||||||
$lead-lineheight: 1.6;
|
|
||||||
$subheader-lineheight: 1.4;
|
|
||||||
$subheader-color: $dark-gray;
|
|
||||||
$subheader-font-weight: $global-weight-normal;
|
|
||||||
$subheader-margin-top: 0.2rem;
|
|
||||||
$subheader-margin-bottom: 0.5rem;
|
|
||||||
$stat-font-size: 2.5rem;
|
|
||||||
|
|
||||||
// 6. Abide
|
|
||||||
// --------
|
|
||||||
|
|
||||||
$abide-inputs: true;
|
|
||||||
$abide-labels: true;
|
|
||||||
$input-background-invalid: get-color(alert);
|
|
||||||
$form-label-color-invalid: get-color(alert);
|
|
||||||
$input-error-color: get-color(alert);
|
|
||||||
$input-error-font-size: rem-calc(12);
|
|
||||||
$input-error-font-weight: $global-weight-bold;
|
|
||||||
|
|
||||||
// 7. Accordion
|
|
||||||
// ------------
|
|
||||||
|
|
||||||
$accordion-background: $white;
|
|
||||||
$accordion-plusminus: true;
|
|
||||||
$accordion-title-font-size: rem-calc(12);
|
|
||||||
$accordion-item-color: $primary-color;
|
|
||||||
$accordion-item-background-hover: $light-gray;
|
|
||||||
$accordion-item-padding: 1.25rem 1rem;
|
|
||||||
$accordion-content-background: $white;
|
|
||||||
$accordion-content-border: 1px solid $light-gray;
|
|
||||||
$accordion-content-color: $body-font-color;
|
|
||||||
$accordion-content-padding: 1rem;
|
|
||||||
|
|
||||||
// 8. Accordion Menu
|
|
||||||
// -----------------
|
|
||||||
|
|
||||||
$accordionmenu-arrows: true;
|
|
||||||
$accordionmenu-arrow-color: $primary-color;
|
|
||||||
$accordionmenu-arrow-size: 6px;
|
|
||||||
|
|
||||||
// 9. Badge
|
|
||||||
// --------
|
|
||||||
|
|
||||||
$badge-background: $primary-color;
|
|
||||||
$badge-color: $white;
|
|
||||||
$badge-color-alt: $black;
|
|
||||||
$badge-palette: $foundation-palette;
|
|
||||||
$badge-padding: 0.3em;
|
|
||||||
$badge-minwidth: 2.1em;
|
|
||||||
$badge-font-size: 0.6rem;
|
|
||||||
|
|
||||||
// 10. Breadcrumbs
|
|
||||||
// ---------------
|
|
||||||
|
|
||||||
$breadcrumbs-margin: 0 0 $global-margin 0;
|
|
||||||
$breadcrumbs-item-font-size: rem-calc(11);
|
|
||||||
$breadcrumbs-item-color: $primary-color;
|
|
||||||
$breadcrumbs-item-color-current: $black;
|
|
||||||
$breadcrumbs-item-color-disabled: $medium-gray;
|
|
||||||
$breadcrumbs-item-margin: 0.75rem;
|
|
||||||
$breadcrumbs-item-uppercase: true;
|
|
||||||
$breadcrumbs-item-slash: true;
|
|
||||||
|
|
||||||
// 11. Button
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
$button-padding: 0.85em 1em;
|
|
||||||
$button-margin: 0 0 $global-margin 0;
|
|
||||||
$button-fill: solid;
|
|
||||||
$button-background: $primary-color;
|
|
||||||
$button-background-hover: scale-color($button-background, $lightness: -15%);
|
|
||||||
$button-color: $white;
|
|
||||||
$button-color-alt: $black;
|
|
||||||
$button-radius: $global-radius;
|
|
||||||
$button-sizes: (
|
|
||||||
tiny: 0.6rem,
|
|
||||||
small: 0.75rem,
|
|
||||||
default: 0.9rem,
|
|
||||||
large: 1.25rem,
|
|
||||||
);
|
|
||||||
$button-palette: $foundation-palette;
|
|
||||||
$button-opacity-disabled: 0.25;
|
|
||||||
$button-background-hover-lightness: -20%;
|
|
||||||
$button-hollow-hover-lightness: -50%;
|
|
||||||
$button-transition: background-color 0.25s ease-out, color 0.25s ease-out;
|
|
||||||
|
|
||||||
// 12. Button Group
|
|
||||||
// ----------------
|
|
||||||
|
|
||||||
$buttongroup-margin: 1rem;
|
|
||||||
$buttongroup-spacing: 1px;
|
|
||||||
$buttongroup-child-selector: '.button';
|
|
||||||
$buttongroup-expand-max: 6;
|
|
||||||
$buttongroup-radius-on-each: true;
|
|
||||||
|
|
||||||
// 13. Callout
|
|
||||||
// -----------
|
|
||||||
|
|
||||||
$callout-background: $white;
|
|
||||||
$callout-background-fade: 85%;
|
|
||||||
$callout-border: 1px solid rgba($black, 0.25);
|
|
||||||
$callout-margin: 0 0 1rem 0;
|
|
||||||
$callout-padding: 1rem;
|
|
||||||
$callout-font-color: $body-font-color;
|
|
||||||
$callout-font-color-alt: $body-background;
|
|
||||||
$callout-radius: $global-radius;
|
|
||||||
$callout-link-tint: 30%;
|
|
||||||
|
|
||||||
// 14. Card
|
|
||||||
// --------
|
|
||||||
|
|
||||||
$card-background: $white;
|
|
||||||
$card-font-color: $body-font-color;
|
|
||||||
$card-divider-background: $light-gray;
|
|
||||||
$card-border: 1px solid $light-gray;
|
|
||||||
$card-shadow: none;
|
|
||||||
$card-border-radius: $global-radius;
|
|
||||||
$card-padding: $global-padding;
|
|
||||||
$card-margin: $global-margin;
|
|
||||||
|
|
||||||
// 15. Close Button
|
|
||||||
// ----------------
|
|
||||||
|
|
||||||
$closebutton-position: right top;
|
|
||||||
$closebutton-offset-horizontal: (
|
|
||||||
small: 0.66rem,
|
|
||||||
medium: 1rem,
|
|
||||||
);
|
|
||||||
$closebutton-offset-vertical: (
|
|
||||||
small: 0.33em,
|
|
||||||
medium: 0.5rem,
|
|
||||||
);
|
|
||||||
$closebutton-size: (
|
|
||||||
small: 1.5em,
|
|
||||||
medium: 2em,
|
|
||||||
);
|
|
||||||
$closebutton-lineheight: 1;
|
|
||||||
$closebutton-color: $dark-gray;
|
|
||||||
$closebutton-color-hover: $black;
|
|
||||||
|
|
||||||
// 16. Drilldown
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
$drilldown-transition: transform 0.15s linear;
|
|
||||||
$drilldown-arrows: true;
|
|
||||||
$drilldown-arrow-color: $primary-color;
|
|
||||||
$drilldown-arrow-size: 6px;
|
|
||||||
$drilldown-background: $white;
|
|
||||||
|
|
||||||
// 17. Dropdown
|
|
||||||
// ------------
|
|
||||||
|
|
||||||
$dropdown-padding: 1rem;
|
|
||||||
$dropdown-background: $body-background;
|
|
||||||
$dropdown-border: 1px solid $medium-gray;
|
|
||||||
$dropdown-font-size: 1rem;
|
|
||||||
$dropdown-width: 300px;
|
|
||||||
$dropdown-radius: $global-radius;
|
|
||||||
$dropdown-sizes: (
|
|
||||||
tiny: 100px,
|
|
||||||
small: 200px,
|
|
||||||
large: 400px,
|
|
||||||
);
|
|
||||||
|
|
||||||
// 18. Dropdown Menu
|
|
||||||
// -----------------
|
|
||||||
|
|
||||||
$dropdownmenu-arrows: true;
|
|
||||||
$dropdownmenu-arrow-color: $anchor-color;
|
|
||||||
$dropdownmenu-arrow-size: 6px;
|
|
||||||
$dropdownmenu-min-width: 200px;
|
|
||||||
$dropdownmenu-background: $white;
|
|
||||||
$dropdownmenu-border: 1px solid $medium-gray;
|
|
||||||
|
|
||||||
// 19. Forms
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$fieldset-border: 1px solid $medium-gray;
|
|
||||||
$fieldset-padding: rem-calc(20);
|
|
||||||
$fieldset-margin: rem-calc(18 0);
|
|
||||||
$legend-padding: rem-calc(0 3);
|
|
||||||
$form-spacing: rem-calc(16);
|
|
||||||
$helptext-color: $black;
|
|
||||||
$helptext-font-size: rem-calc(13);
|
|
||||||
$helptext-font-style: italic;
|
|
||||||
$input-prefix-color: $black;
|
|
||||||
$input-prefix-background: $light-gray;
|
|
||||||
$input-prefix-border: 1px solid $medium-gray;
|
|
||||||
$input-prefix-padding: 1rem;
|
|
||||||
$form-label-color: $black;
|
|
||||||
$form-label-font-size: rem-calc(14);
|
|
||||||
$form-label-font-weight: $global-weight-normal;
|
|
||||||
$form-label-line-height: 1.8;
|
|
||||||
$select-background: $white;
|
|
||||||
$select-triangle-color: $dark-gray;
|
|
||||||
$select-radius: $global-radius;
|
|
||||||
$input-color: $black;
|
|
||||||
$input-placeholder-color: $medium-gray;
|
|
||||||
$input-font-family: inherit;
|
|
||||||
$input-font-size: rem-calc(16);
|
|
||||||
$input-font-weight: $global-weight-normal;
|
|
||||||
$input-background: $white;
|
|
||||||
$input-background-focus: $white;
|
|
||||||
$input-background-disabled: $light-gray;
|
|
||||||
$input-border: 1px solid $medium-gray;
|
|
||||||
$input-border-focus: 1px solid $dark-gray;
|
|
||||||
$input-shadow: inset 0 1px 2px rgba($black, 0.1);
|
|
||||||
$input-shadow-focus: 0 0 5px $medium-gray;
|
|
||||||
$input-cursor-disabled: not-allowed;
|
|
||||||
$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
|
|
||||||
$input-number-spinners: true;
|
|
||||||
$input-radius: $global-radius;
|
|
||||||
$form-button-radius: $global-radius;
|
|
||||||
|
|
||||||
// 20. Label
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$label-background: $primary-color;
|
|
||||||
$label-color: $white;
|
|
||||||
$label-color-alt: $black;
|
|
||||||
$label-palette: $foundation-palette;
|
|
||||||
$label-font-size: 0.8rem;
|
|
||||||
$label-padding: 0.33333rem 0.5rem;
|
|
||||||
$label-radius: $global-radius;
|
|
||||||
|
|
||||||
// 21. Media Object
|
|
||||||
// ----------------
|
|
||||||
|
|
||||||
$mediaobject-margin-bottom: $global-margin;
|
|
||||||
$mediaobject-section-padding: $global-padding;
|
|
||||||
$mediaobject-image-width-stacked: 100%;
|
|
||||||
|
|
||||||
// 22. Menu
|
|
||||||
// --------
|
|
||||||
|
|
||||||
$menu-margin: 0;
|
|
||||||
$menu-margin-nested: 1rem;
|
|
||||||
$menu-item-padding: 0.7rem 1rem;
|
|
||||||
$menu-item-color-active: $white;
|
|
||||||
$menu-item-background-active: get-color(primary);
|
|
||||||
$menu-icon-spacing: 0.25rem;
|
|
||||||
$menu-item-background-hover: $light-gray;
|
|
||||||
$menu-border: $light-gray;
|
|
||||||
|
|
||||||
// 23. Meter
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$meter-height: 1rem;
|
|
||||||
$meter-radius: $global-radius;
|
|
||||||
$meter-background: $medium-gray;
|
|
||||||
$meter-fill-good: $success-color;
|
|
||||||
$meter-fill-medium: $warning-color;
|
|
||||||
$meter-fill-bad: $alert-color;
|
|
||||||
|
|
||||||
// 24. Off-canvas
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
$offcanvas-size: 250px;
|
|
||||||
$offcanvas-vertical-size: 250px;
|
|
||||||
$offcanvas-background: $light-gray;
|
|
||||||
$offcanvas-shadow: 0 0 10px rgba($black, 0.7);
|
|
||||||
$offcanvas-push-zindex: 1;
|
|
||||||
$offcanvas-overlap-zindex: 10;
|
|
||||||
$offcanvas-reveal-zindex: 1;
|
|
||||||
$offcanvas-transition-length: 0.5s;
|
|
||||||
$offcanvas-transition-timing: ease;
|
|
||||||
$offcanvas-fixed-reveal: true;
|
|
||||||
$offcanvas-exit-background: rgba($white, 0.25);
|
|
||||||
$maincontent-class: 'off-canvas-content';
|
|
||||||
|
|
||||||
// 25. Orbit
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$orbit-bullet-background: $medium-gray;
|
|
||||||
$orbit-bullet-background-active: $dark-gray;
|
|
||||||
$orbit-bullet-diameter: 1.2rem;
|
|
||||||
$orbit-bullet-margin: 0.1rem;
|
|
||||||
$orbit-bullet-margin-top: 0.8rem;
|
|
||||||
$orbit-bullet-margin-bottom: 0.8rem;
|
|
||||||
$orbit-caption-background: rgba($black, 0.5);
|
|
||||||
$orbit-caption-padding: 1rem;
|
|
||||||
$orbit-control-background-hover: rgba($black, 0.5);
|
|
||||||
$orbit-control-padding: 1rem;
|
|
||||||
$orbit-control-zindex: 10;
|
|
||||||
|
|
||||||
// 26. Pagination
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
$pagination-font-size: rem-calc(14);
|
|
||||||
$pagination-margin-bottom: $global-margin;
|
|
||||||
$pagination-item-color: $black;
|
|
||||||
$pagination-item-padding: rem-calc(3 10);
|
|
||||||
$pagination-item-spacing: rem-calc(1);
|
|
||||||
$pagination-radius: $global-radius;
|
|
||||||
$pagination-item-background-hover: $light-gray;
|
|
||||||
$pagination-item-background-current: $primary-color;
|
|
||||||
$pagination-item-color-current: $white;
|
|
||||||
$pagination-item-color-disabled: $medium-gray;
|
|
||||||
$pagination-ellipsis-color: $black;
|
|
||||||
$pagination-mobile-items: false;
|
|
||||||
$pagination-mobile-current-item: false;
|
|
||||||
$pagination-arrows: true;
|
|
||||||
|
|
||||||
// 27. Progress Bar
|
|
||||||
// ----------------
|
|
||||||
|
|
||||||
$progress-height: 1rem;
|
|
||||||
$progress-background: $medium-gray;
|
|
||||||
$progress-margin-bottom: $global-margin;
|
|
||||||
$progress-meter-background: $primary-color;
|
|
||||||
$progress-radius: $global-radius;
|
|
||||||
|
|
||||||
// 28. Responsive Embed
|
|
||||||
// --------------------
|
|
||||||
|
|
||||||
$responsive-embed-margin-bottom: rem-calc(16);
|
|
||||||
$responsive-embed-ratios: (
|
|
||||||
default: 4 by 3,
|
|
||||||
widescreen: 16 by 9,
|
|
||||||
);
|
|
||||||
|
|
||||||
// 29. Reveal
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
$reveal-background: $white;
|
|
||||||
$reveal-width: 600px;
|
|
||||||
$reveal-max-width: $global-width;
|
|
||||||
$reveal-padding: $global-padding;
|
|
||||||
$reveal-border: 1px solid $medium-gray;
|
|
||||||
$reveal-radius: $global-radius;
|
|
||||||
$reveal-zindex: 1005;
|
|
||||||
$reveal-overlay-background: rgba($black, 0.45);
|
|
||||||
|
|
||||||
// 30. Slider
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
$slider-width-vertical: 0.5rem;
|
|
||||||
$slider-transition: all 0.2s ease-in-out;
|
|
||||||
$slider-height: 0.5rem;
|
|
||||||
$slider-background: $light-gray;
|
|
||||||
$slider-fill-background: $medium-gray;
|
|
||||||
$slider-handle-height: 1.4rem;
|
|
||||||
$slider-handle-width: 1.4rem;
|
|
||||||
$slider-handle-background: $primary-color;
|
|
||||||
$slider-opacity-disabled: 0.25;
|
|
||||||
$slider-radius: $global-radius;
|
|
||||||
|
|
||||||
// 31. Switch
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
$switch-background: $medium-gray;
|
|
||||||
$switch-background-active: $primary-color;
|
|
||||||
$switch-height: 2rem;
|
|
||||||
$switch-height-tiny: 1.5rem;
|
|
||||||
$switch-height-small: 1.75rem;
|
|
||||||
$switch-height-large: 2.5rem;
|
|
||||||
$switch-radius: $global-radius;
|
|
||||||
$switch-margin: $global-margin;
|
|
||||||
$switch-paddle-background: $white;
|
|
||||||
$switch-paddle-offset: 0.25rem;
|
|
||||||
$switch-paddle-radius: $global-radius;
|
|
||||||
$switch-paddle-transition: all 0.25s ease-out;
|
|
||||||
|
|
||||||
// 32. Table
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
$table-background: $white;
|
|
||||||
$table-color-scale: 5%;
|
|
||||||
$table-border: 1px solid smart-scale($table-background, $table-color-scale);
|
|
||||||
$table-padding: rem-calc(8 10 10);
|
|
||||||
$table-hover-scale: 2%;
|
|
||||||
$table-row-hover: darken($table-background, $table-hover-scale);
|
|
||||||
$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale);
|
|
||||||
$table-is-striped: true;
|
|
||||||
$table-striped-background: smart-scale($table-background, $table-color-scale);
|
|
||||||
$table-stripe: even;
|
|
||||||
$table-head-background: smart-scale($table-background, $table-color-scale / 2);
|
|
||||||
$table-head-row-hover: darken($table-head-background, $table-hover-scale);
|
|
||||||
$table-foot-background: smart-scale($table-background, $table-color-scale);
|
|
||||||
$table-foot-row-hover: darken($table-foot-background, $table-hover-scale);
|
|
||||||
$table-head-font-color: $body-font-color;
|
|
||||||
$table-foot-font-color: $body-font-color;
|
|
||||||
$show-header-for-stacked: false;
|
|
||||||
|
|
||||||
// 33. Tabs
|
|
||||||
// --------
|
|
||||||
|
|
||||||
$tab-margin: 0;
|
|
||||||
$tab-background: $white;
|
|
||||||
$tab-color: $primary-color;
|
|
||||||
$tab-background-active: $light-gray;
|
|
||||||
$tab-active-color: $primary-color;
|
|
||||||
$tab-item-font-size: rem-calc(12);
|
|
||||||
$tab-item-background-hover: $white;
|
|
||||||
$tab-item-padding: 1.25rem 1.5rem;
|
|
||||||
$tab-expand-max: 6;
|
|
||||||
$tab-content-background: $white;
|
|
||||||
$tab-content-border: $light-gray;
|
|
||||||
$tab-content-color: $body-font-color;
|
|
||||||
$tab-content-padding: 1rem;
|
|
||||||
|
|
||||||
// 34. Thumbnail
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
$thumbnail-border: solid 4px $white;
|
|
||||||
$thumbnail-margin-bottom: $global-margin;
|
|
||||||
$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
|
|
||||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
|
||||||
$thumbnail-transition: box-shadow 200ms ease-out;
|
|
||||||
$thumbnail-radius: $global-radius;
|
|
||||||
|
|
||||||
// 35. Title Bar
|
|
||||||
// -------------
|
|
||||||
|
|
||||||
$titlebar-background: $black;
|
|
||||||
$titlebar-color: $white;
|
|
||||||
$titlebar-padding: 0.5rem;
|
|
||||||
$titlebar-text-font-weight: bold;
|
|
||||||
$titlebar-icon-color: $white;
|
|
||||||
$titlebar-icon-color-hover: $medium-gray;
|
|
||||||
$titlebar-icon-spacing: 0.25rem;
|
|
||||||
|
|
||||||
// 36. Tooltip
|
|
||||||
// -----------
|
|
||||||
|
|
||||||
$has-tip-font-weight: $global-weight-bold;
|
|
||||||
$has-tip-border-bottom: dotted 1px $dark-gray;
|
|
||||||
$tooltip-background-color: $black;
|
|
||||||
$tooltip-color: $white;
|
|
||||||
$tooltip-padding: 0.75rem;
|
|
||||||
$tooltip-font-size: $small-font-size;
|
|
||||||
$tooltip-pip-width: 0.75rem;
|
|
||||||
$tooltip-pip-height: $tooltip-pip-width * 0.866;
|
|
||||||
$tooltip-radius: $global-radius;
|
|
||||||
|
|
||||||
// 37. Top Bar
|
|
||||||
// -----------
|
|
||||||
|
|
||||||
$topbar-padding: 0.5rem;
|
|
||||||
$topbar-background: $light-gray;
|
|
||||||
$topbar-submenu-background: $topbar-background;
|
|
||||||
$topbar-title-spacing: 0.5rem 1rem 0.5rem 0;
|
|
||||||
$topbar-input-width: 200px;
|
|
||||||
$topbar-unstack-breakpoint: medium;
|
|
||||||
@ -1,54 +0,0 @@
|
|||||||
.listjs {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
label {
|
|
||||||
display: inline-block;
|
|
||||||
input {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
thead, tfoot {
|
|
||||||
tr th {
|
|
||||||
text-align: left;
|
|
||||||
&.sort{
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tbody.list {
|
|
||||||
tr:first-child td {
|
|
||||||
border-top: solid 1px #696969;
|
|
||||||
}
|
|
||||||
tr:last-child td {
|
|
||||||
border-bottom: solid 1px #696969;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr td {
|
|
||||||
border-top: solid 1px #c8c8c8;
|
|
||||||
padding: 0.3rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ul.pagination {
|
|
||||||
float: right;
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0;
|
|
||||||
li {
|
|
||||||
display: inline-block;
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
text-decoration: underline;
|
|
||||||
|
|
||||||
&.active, &.disabled {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.page {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,91 +0,0 @@
|
|||||||
|
|
||||||
.background {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 1000000;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
//background-color: rgb(0, 0, 0); /* Fallback color */
|
|
||||||
background-color: rgba(55, 55, 55, 0.6);
|
|
||||||
|
|
||||||
.modal {
|
|
||||||
position: relative;
|
|
||||||
top: 50%;
|
|
||||||
//left: 10%;
|
|
||||||
//right: 10%;
|
|
||||||
margin: auto;
|
|
||||||
width: 80%;
|
|
||||||
|
|
||||||
//background-color: #fefefe;
|
|
||||||
|
|
||||||
transform: translateY(-50%);
|
|
||||||
padding: 0.5rem;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
max-height: 80%;
|
|
||||||
max-width: nth(nth($breakpoints, 4),2);
|
|
||||||
|
|
||||||
&.small-margin {
|
|
||||||
@include breakpoint(medium down) {
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
width: 95%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $size in $breakpoints
|
|
||||||
{
|
|
||||||
&.max-#{nth($size, 1)}
|
|
||||||
{
|
|
||||||
max-width: nth($size, 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
font-weight: bold;
|
|
||||||
padding-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-container {
|
|
||||||
overflow-y: auto;
|
|
||||||
max-height: 100%;
|
|
||||||
|
|
||||||
.loader{
|
|
||||||
position:static;
|
|
||||||
transform: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
text-align: right;
|
|
||||||
//color: #aaa;
|
|
||||||
float: right;
|
|
||||||
font-size: 28px;
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
//color: black;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-button-container {
|
|
||||||
padding-top: 0.5rem;
|
|
||||||
.button {
|
|
||||||
margin-left: 0.2rem;
|
|
||||||
margin-bottom: 0 !important;
|
|
||||||
padding: 0.6em 0.8em;
|
|
||||||
@include breakpoint(small down) {
|
|
||||||
margin-left: 0.1rem;
|
|
||||||
padding: 0.3em 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
.no-transition{
|
|
||||||
transition: none !important;
|
|
||||||
* {
|
|
||||||
transition: none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -13,6 +13,7 @@
|
|||||||
#settings-fragments {
|
#settings-fragments {
|
||||||
> * {
|
> * {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@ -24,26 +25,31 @@
|
|||||||
.switch {
|
.switch {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
height: initial;
|
||||||
|
|
||||||
@include breakpoint(small down){
|
@include breakpoint(small down) {
|
||||||
font-size: 0.6em;
|
font-size: 0.6em;
|
||||||
}
|
}
|
||||||
@include breakpoint(smedium down){
|
@include breakpoint(smedium down) {
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
|
|
||||||
display: none;
|
display: none;
|
||||||
&:checked + .slider{
|
|
||||||
|
&:checked + .slider {
|
||||||
//background-color: #2196F3;
|
//background-color: #2196F3;
|
||||||
&:before{
|
&:before {
|
||||||
transform: translateX(1.5em);
|
transform: translateX(1.5em);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&:focus + .slider{
|
|
||||||
|
&:focus + .slider {
|
||||||
//box-shadow: 0 0 1px #2196F3;
|
//box-shadow: 0 0 1px #2196F3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.slider {
|
.slider {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
@ -55,7 +61,8 @@
|
|||||||
transition: .4s;
|
transition: .4s;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
&:before{
|
|
||||||
|
&:before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
content: "";
|
content: "";
|
||||||
height: 1.1em;
|
height: 1.1em;
|
||||||
@ -67,30 +74,38 @@
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
img, svg{
|
|
||||||
|
img, svg {
|
||||||
width: 1.4em;
|
width: 1.4em;
|
||||||
display: inline;
|
display: inline;
|
||||||
vertical-align: initial;
|
vertical-align: initial;
|
||||||
path{
|
|
||||||
|
path {
|
||||||
stroke-color: inherit;
|
stroke-color: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
label{
|
|
||||||
|
label {
|
||||||
font-size: 1em !important;
|
font-size: 1em !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
.setting-row:not(.hidden){
|
|
||||||
|
.setting-row:not(.hidden) {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
padding-top: 0.5em;
|
display: flex;
|
||||||
padding-bottom: 0.5em;
|
padding: 0.5rem 0.4rem;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: rgba(195, 195, 195, 0.13);
|
background: rgba(195, 195, 195, 0.13);
|
||||||
//display: inline-block;
|
|
||||||
|
|
||||||
input[type=checkbox]
|
> * {
|
||||||
{
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=checkbox] {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
@import "settings";
|
//@import "lib/_rotate.scss";
|
||||||
@import "lib/_rotate.scss";
|
|
||||||
@import "lib/_share.scss";
|
@import "lib/_share.scss";
|
||||||
@import "lib/_tabs.scss";
|
//@import "lib/_tabs.scss";
|
||||||
@import "lib/_core.scss";
|
@import "lib/_core.scss";
|
||||||
@import "lib/_flashMessenger.scss";
|
//@import "lib/_flashMessenger.scss";
|
||||||
@import "lib/_framework.scss";
|
//@import "lib/_framework.scss";
|
||||||
@import "lib/_pwaAssets.scss";
|
|
||||||
@import "lib/_settingsSite.scss";
|
@import "lib/_settingsSite.scss";
|
||||||
@import "lib/_style.scss";
|
@import "lib/_style.scss";
|
||||||
@import "lib/_theme.scss";
|
@import "lib/_theme.scss";
|
||||||
@ -13,19 +11,14 @@
|
|||||||
@import "wordrotatorTheme";
|
@import "wordrotatorTheme";
|
||||||
|
|
||||||
|
|
||||||
$text-shadow: /*
|
$text-shadow: 0 0.2rem 0.2rem #464646, 0.6rem 0.8rem 0.4rem #00000090;
|
||||||
0 0 3px #787878,
|
|
||||||
0 0 10px #000000;
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
0 3px 3px #787878,
|
|
||||||
15px 15px 8px #000000
|
|
||||||
*/
|
|
||||||
0 0.2rem 0.2rem #464646, 0.6rem 0.8rem 0.4rem #00000090;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.no-transition{
|
||||||
|
transition: none !important;
|
||||||
|
* {
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//ActionBar
|
//ActionBar
|
||||||
nav.top-bar.title-bar {
|
nav.top-bar.title-bar {
|
||||||
@ -355,7 +348,7 @@ $coinTowerDimension: 28px;
|
|||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
||||||
text-shadow: $text-shadow;
|
//text-shadow: $text-shadow;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -405,7 +398,7 @@ $coinTowerDimension: 28px;
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#won-text{
|
#won-text {
|
||||||
text-shadow: $text-shadow;
|
text-shadow: $text-shadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -425,7 +418,7 @@ $coinTowerDimension: 28px;
|
|||||||
|
|
||||||
#play-button {
|
#play-button {
|
||||||
@include breakpoint(small down) {
|
@include breakpoint(small down) {
|
||||||
margin-bottom: 2px;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,4 +475,4 @@ svg {
|
|||||||
.fill-background {
|
.fill-background {
|
||||||
fill: white;
|
fill: white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,5 +48,6 @@
|
|||||||
"privacy policy accepted": " akzeptiert",
|
"privacy policy accepted": " akzeptiert",
|
||||||
"message": "Nachricht",
|
"message": "Nachricht",
|
||||||
"send": "Senden",
|
"send": "Senden",
|
||||||
"the message was sent": "Die Nachricht wurde gesendet."
|
"the message was sent": "Die Nachricht wurde gesendet.",
|
||||||
}
|
"wr": "WR"
|
||||||
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<widget android-versionCode="1" id="link.silas.wordrotator" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
<widget android-versionCode="17" id="link.silas.wordrotator" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||||
<name>WordRotator</name>
|
<name>WordRotator</name>
|
||||||
<description>
|
<description>
|
||||||
A word-game
|
A word-game
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -39,7 +39,7 @@ async function startTestServer() {
|
|||||||
stdio: "pipe"
|
stdio: "pipe"
|
||||||
}, reject);
|
}, reject);
|
||||||
child.stdout.on("data", data => {
|
child.stdout.on("data", data => {
|
||||||
console.log("[SERVER]", data);
|
console.log("[SERVER]", data);
|
||||||
if (data.indexOf("Server started on Port: ") !== -1){
|
if (data.indexOf("Server started on Port: ") !== -1){
|
||||||
resolve();
|
resolve();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ const functions = require("../../lib/functions.js");
|
|||||||
|
|
||||||
async function solveLevel() {
|
async function solveLevel() {
|
||||||
await functions.pause(500);
|
await functions.pause(500);
|
||||||
await browser.executeAsync(async (delayFactor, done) => {
|
await browser.executeAsync((delayFactor, done) => {
|
||||||
const delay = 100*delayFactor;
|
const delay = 100*delayFactor;
|
||||||
|
|
||||||
let promise = Promise.resolve();
|
let promise = Promise.resolve();
|
||||||
@ -69,7 +69,6 @@ describe("fsj suite", () => {
|
|||||||
|
|
||||||
let baseUrl = null;
|
let baseUrl = null;
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
|
|
||||||
if (browser.config.baseUrl.trim() !== "") {
|
if (browser.config.baseUrl.trim() !== "") {
|
||||||
baseUrl = browser.config.baseUrl;
|
baseUrl = browser.config.baseUrl;
|
||||||
} else {
|
} else {
|
||||||
@ -82,7 +81,6 @@ describe("fsj suite", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
|
|
||||||
await browser.url(baseUrl);
|
await browser.url(baseUrl);
|
||||||
|
|
||||||
await browser.waitUntil(async () => {
|
await browser.waitUntil(async () => {
|
||||||
@ -107,4 +105,4 @@ describe("fsj suite", () => {
|
|||||||
// await functions.pause(5000);
|
// await functions.pause(5000);
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -58,6 +58,7 @@ exports.config = {
|
|||||||
maxInstances: 1,
|
maxInstances: 1,
|
||||||
}],
|
}],
|
||||||
onPrepare: async function(){
|
onPrepare: async function(){
|
||||||
|
console.log("on prepare");
|
||||||
await Service.setup();
|
await Service.setup();
|
||||||
},
|
},
|
||||||
onComplete: async function(){
|
onComplete: async function(){
|
||||||
@ -65,4 +66,4 @@ exports.config = {
|
|||||||
await Service.tearDown();
|
await Service.tearDown();
|
||||||
console.log("teared down!");
|
console.log("teared down!");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -11,15 +11,10 @@
|
|||||||
"allowJs": true
|
"allowJs": true
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
// "./node_modules/cordova-sites/**/*",
|
|
||||||
// "./node_modules/cordova-sites-database/**/*",
|
|
||||||
// "./node_modules/cordova-sites-easy-sync/**/*",
|
|
||||||
// "./node_modules/cordova-sites-user-management/**/*",
|
|
||||||
// "./node_modules/js-helper/**/*",
|
|
||||||
"./src/client/**/*",
|
"./src/client/**/*",
|
||||||
"./src/shared/**/*"
|
"./src/shared/**/*"
|
||||||
],
|
],
|
||||||
"exclude": [],
|
"exclude": [],
|
||||||
"emitDecoratorMetadata": true,
|
"emitDecoratorMetadata": true,
|
||||||
"experimentalDecorators": true
|
"experimentalDecorators": true
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user