From 09dc13b4f87d21fde6fe64b11c17b79b231c22aa Mon Sep 17 00:00:00 2001 From: silas Date: Thu, 22 Apr 2021 15:36:46 +0200 Subject: [PATCH] new design(?) --- config.xml | 2 +- package.json | 56 +- src/client/globals.d.ts | 8 - src/client/html/sites/impressum.html | 6 +- src/client/html/sites/settingsSite.html | 20 +- src/client/index.html | 2 +- ...gment.js => WordRotatorSettingFragment.ts} | 16 +- .../Sites/{ContactSite.js => ContactSite.ts} | 5 +- src/client/js/Sites/CreditsSite.js | 19 - src/client/js/Sites/CreditsSite.ts | 13 + ...{DeleteWordsSite.js => DeleteWordsSite.ts} | 15 +- src/client/js/Sites/EndSite.js | 14 - src/client/js/Sites/EndSite.ts | 8 + .../{ImpressumSite.js => ImpressumSite.ts} | 9 +- .../js/Sites/{LevelSite.js => LevelSite.ts} | 67 +- .../{MainMenuSite.js => MainMenuSite.ts} | 259 ++++---- ...vacyPolicySite.js => PrivacyPolicySite.ts} | 9 +- ...{SelectWordsSite.js => SelectWordsSite.ts} | 14 +- .../{SettingsSite.js => SettingsSite.ts} | 5 +- src/client/js/Sites/WordRotatorBaseSite.js | 12 - src/client/js/model/LevelPlayed.ts | 7 +- .../Level/{LevelHelper.js => LevelHelper.ts} | 36 +- src/client/sass/_mainMenu.scss | 0 src/client/sass/_navbarOverride.scss | 44 ++ src/client/sass/_themeBlue.scss | 88 +++ src/client/sass/_wordRotator_old.scss | 394 ----------- src/client/sass/_wordrotatorTheme.scss | 35 +- src/client/sass/foundation.scss | 67 -- src/client/sass/index.scss | 9 +- src/client/sass/lib/_actionBar.scss | 250 ------- src/client/sass/lib/_core.scss | 4 +- src/client/sass/lib/_form.scss | 86 --- src/client/sass/lib/_foundationSettings.scss | 621 ------------------ src/client/sass/lib/_listjs.scss | 54 -- src/client/sass/lib/_modal.scss | 91 --- src/client/sass/lib/_pwaAssets.scss | 7 - src/client/sass/lib/_settingsSite.scss | 45 +- src/client/sass/wordRotator.scss | 37 +- src/client/translations/de.json | 5 +- src/server/public/config.xml | 2 +- src/server/public/service-worker.js.map | 2 +- src/server/public/wordRotator.apk | Bin 6485429 -> 6485429 bytes tests/setup.js | 2 +- tests/specs/shared/playLevels.js | 6 +- tests/wdio.config.browser.js | 3 +- tsconfig.json | 7 +- 46 files changed, 508 insertions(+), 1953 deletions(-) delete mode 100644 src/client/globals.d.ts rename src/client/js/Fragment/{WordRotatorSettingFragment.js => WordRotatorSettingFragment.ts} (92%) rename src/client/js/Sites/{ContactSite.js => ContactSite.ts} (93%) delete mode 100644 src/client/js/Sites/CreditsSite.js create mode 100644 src/client/js/Sites/CreditsSite.ts rename src/client/js/Sites/{DeleteWordsSite.js => DeleteWordsSite.ts} (88%) delete mode 100644 src/client/js/Sites/EndSite.js create mode 100644 src/client/js/Sites/EndSite.ts rename src/client/js/Sites/{ImpressumSite.js => ImpressumSite.ts} (55%) rename src/client/js/Sites/{LevelSite.js => LevelSite.ts} (91%) rename src/client/js/Sites/{MainMenuSite.js => MainMenuSite.ts} (70%) rename src/client/js/Sites/{PrivacyPolicySite.js => PrivacyPolicySite.ts} (82%) rename src/client/js/Sites/{SelectWordsSite.js => SelectWordsSite.ts} (90%) rename src/client/js/Sites/{SettingsSite.js => SettingsSite.ts} (88%) delete mode 100644 src/client/js/Sites/WordRotatorBaseSite.js rename src/client/js/wordrotator/Level/{LevelHelper.js => LevelHelper.ts} (72%) delete mode 100644 src/client/sass/_mainMenu.scss create mode 100644 src/client/sass/_navbarOverride.scss create mode 100644 src/client/sass/_themeBlue.scss delete mode 100644 src/client/sass/_wordRotator_old.scss delete mode 100644 src/client/sass/foundation.scss delete mode 100644 src/client/sass/lib/_actionBar.scss delete mode 100644 src/client/sass/lib/_form.scss delete mode 100644 src/client/sass/lib/_foundationSettings.scss delete mode 100644 src/client/sass/lib/_listjs.scss delete mode 100644 src/client/sass/lib/_modal.scss delete mode 100644 src/client/sass/lib/_pwaAssets.scss diff --git a/config.xml b/config.xml index 852344f..7cd6608 100644 --- a/config.xml +++ b/config.xml @@ -1,5 +1,5 @@ - + WordRotator A word-game diff --git a/package.json b/package.json index 8e9a019..6d20ba0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "wordrotator", "displayName": "WordRotator", - "version": "1.2.0", + "version": "1.3.0", "main": "index.js", "scripts": { "server": "ts-node src/server/index.ts", @@ -17,13 +17,12 @@ "typeorm": "ts-node ./node_modules/typeorm/cli -f ./ormconfig.ts" }, "dependencies": { - "@types/node": "^14.11.8", + "@types/node": "^14.14.27", "body-parser": "^1.19.0", "cordova-android": "^9.0.0", "cordova-browser": "^6.0.0", "cordova-ios": "^6.1.1", - "cordova-plugin-share": "^0.1.3", - "cordova-sites": "git+https://github.com/Ainias/cordova-sites.git#0.6.5", + "cordova-sites": "git+https://github.com/Ainias/cordova-sites.git#0.7.10", "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-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", "dotenv": "^8.2.0", "express": "^4.17.1", - "foundation-sites": "^6.6.3", - "js-helper": "git+https://github.com/Ainias/js-helper.git#0.4.1", + "js-helper": "git+https://github.com/Ainias/js-helper.git#0.6.6", "jsonwebtoken": "^8.5.1", - "localforage": "^1.9.0", "mysql": "^2.18.1", "nodemailer": "^6.4.14", - "sql.js": "1.3.2", - "ts-node": "9.0.0", - "typeorm": "^0.2.28", - "ts-loader": "^8.0.5", - "typescript": "^4.0.3" + "ts-node": "9.1.1", + "typeorm": "^0.2.31", + "typescript": "^4.1.5" }, "devDependencies": { - "@babel/core": "^7.12.1", - "@babel/plugin-transform-runtime": "^7.12.1", + "@babel/core": "^7.13.15", + "@babel/plugin-transform-runtime": "^7.13.15", "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@wdio/appium-service": "^6.6.3", - "@wdio/cli": "^6.6.6", - "@wdio/jasmine-framework": "^6.6.6", - "@wdio/local-runner": "^6.6.6", - "@wdio/selenium-standalone-service": "^6.6.5", - "@wdio/spec-reporter": "^6.6.6", - "appium": "1.15.1", - "appium-doctor": "^1.15.3", - "autoprefixer": "^10.0.1", + "@babel/preset-env": "^7.13.15", + "@wdio/appium-service": "^7.4.2", + "@wdio/cli": "^7.4.6", + "@wdio/jasmine-framework": "^7.4.6", + "@wdio/local-runner": "^7.4.6", + "@wdio/selenium-standalone-service": "^7.4.2", + "@wdio/spec-reporter": "^7.4.3", + "appium": "1.20.2", + "appium-doctor": "^1.16.0", + "autoprefixer": "^10.2.5", "babel-loader": "^8.1.0", "babel-preset-env": "^1.7.0", "clean-webpack-plugin": "^3.0.0", @@ -64,6 +59,7 @@ "cordova-plugin-device": "^2.0.3", "cordova-plugin-file": "^6.0.2", "cordova-plugin-nativestorage": "^2.3.2", + "cordova-plugin-share": "^0.1.3", "cordova-plugin-tts": "^0.2.3", "cordova-plugin-webpack": "^1.0.5", "cordova-plugin-whitelist": "^1.3.4", @@ -71,14 +67,18 @@ "css-loader": "^5.0.0", "extract-loader": "^5.1.0", "file-loader": "^6.1.1", + "foundation-sites": "^6.6.3", "html-loader": "^1.3.2", "html-webpack-plugin": "^4.5.0", - "jasmine": "^3.6.2", - "node-sass": "^4.14.1", - "postcss-loader": "^4.0.4", + "jasmine": "^3.7.0", + "localforage": "^1.9.0", + "node-sass": "^5.0.0", + "postcss-loader": "^5.2.0", "sass-loader": "^10.0.3", + "sql.js": "1.3.2", "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-dev-server": "^3.11.0", "workbox-precaching": "^5.1.4", diff --git a/src/client/globals.d.ts b/src/client/globals.d.ts deleted file mode 100644 index 71a1a90..0000000 --- a/src/client/globals.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare var require: { - (path: string): T; - (paths: string[], callback: (...modules: any[]) => void): void; - ensure: ( - paths: string[], - callback: (require: (path: string) => T) => void - ) => void; -}; \ No newline at end of file diff --git a/src/client/html/sites/impressum.html b/src/client/html/sites/impressum.html index 2bcaa05..8741fb0 100644 --- a/src/client/html/sites/impressum.html +++ b/src/client/html/sites/impressum.html @@ -5,7 +5,7 @@ 52064 Aachen
Deutschland

-

E-Mail: wordRotator@silas.link
- Kontaktformular +

E-Mail: wordRotator@silas.link
+ Kontaktformular

- \ No newline at end of file + diff --git a/src/client/html/sites/settingsSite.html b/src/client/html/sites/settingsSite.html index 773c83b..3e7f084 100644 --- a/src/client/html/sites/settingsSite.html +++ b/src/client/html/sites/settingsSite.html @@ -1,17 +1,3 @@ -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file +
+
+
diff --git a/src/client/index.html b/src/client/index.html index a58de46..3134a46 100644 --- a/src/client/index.html +++ b/src/client/index.html @@ -22,7 +22,7 @@ - +
diff --git a/src/client/js/Fragment/WordRotatorSettingFragment.js b/src/client/js/Fragment/WordRotatorSettingFragment.ts similarity index 92% rename from src/client/js/Fragment/WordRotatorSettingFragment.js rename to src/client/js/Fragment/WordRotatorSettingFragment.ts index 683cd60..e205b50 100644 --- a/src/client/js/Fragment/WordRotatorSettingFragment.js +++ b/src/client/js/Fragment/WordRotatorSettingFragment.ts @@ -1,14 +1,13 @@ +const view = require("../../html/fragment/settings.html"); + import {CreditsSite} from "../Sites/CreditsSite"; import {PrivacyPolicySite} from "../Sites/PrivacyPolicySite"; import {ImpressumSite} from "../Sites/ImpressumSite"; import {NativeStoragePromise} from "cordova-sites/dist/client/js/NativeStoragePromise"; import {AbstractFragment} from "cordova-sites/dist/client/js/Context/AbstractFragment"; - -import view from "../../html/fragment/settings.html"; import {LevelData} from "../../../shared/model/LevelData"; import {LastSyncDates} from "cordova-sites-easy-sync/dist/client/LastSyncDates"; 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 {LevelPlayed} from "../model/LevelPlayed"; 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")) { - this.findBy("#reset-levels").classList.remove("hidden"); + // this.findBy("#reset-levels").classList.remove("hidden"); } let playMusicButton = this.findBy("#play-music"); @@ -79,13 +78,14 @@ export class WordRotatorSettingFragment extends AbstractFragment { this.findBy("#impressum-button").addEventListener("click", () => { this.getSite().startSite(ImpressumSite); }); - this.findBy("#version-info").innerText = window["version"]; + // @ts-ignore + this.findBy("#version-info").innerText = __VERSION__; return res; } - onStart() { + onStart(args) { Matomo.update("Settings Sites"); - super.onStart(); + return super.onStart(args); } -} \ No newline at end of file +} diff --git a/src/client/js/Sites/ContactSite.js b/src/client/js/Sites/ContactSite.ts similarity index 93% rename from src/client/js/Sites/ContactSite.js rename to src/client/js/Sites/ContactSite.ts index e9e3fee..5cd97c3 100644 --- a/src/client/js/Sites/ContactSite.js +++ b/src/client/js/Sites/ContactSite.ts @@ -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 {Form} from "cordova-sites/dist/client/js/Form"; import {DataManager} from "cordova-sites/dist/client/js/DataManager"; @@ -15,6 +15,7 @@ export class ContactSite extends MenuSite { onViewLoaded() { let res = super.onViewLoaded(); + // @ts-ignore this.findBy("#contactText").appendChild(Translator.makePersistentTranslation("contact text", [__CONTACT_EMAIL__])) new Form(this.findBy("#contact-form"), async values => { @@ -38,4 +39,4 @@ export class ContactSite extends MenuSite { App.addInitialization((app) => { app.addDeepLink("contact", ContactSite); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/CreditsSite.js b/src/client/js/Sites/CreditsSite.js deleted file mode 100644 index 1656613..0000000 --- a/src/client/js/Sites/CreditsSite.js +++ /dev/null @@ -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); -}); \ No newline at end of file diff --git a/src/client/js/Sites/CreditsSite.ts b/src/client/js/Sites/CreditsSite.ts new file mode 100644 index 0000000..0aa10bc --- /dev/null +++ b/src/client/js/Sites/CreditsSite.ts @@ -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); +}); diff --git a/src/client/js/Sites/DeleteWordsSite.js b/src/client/js/Sites/DeleteWordsSite.ts similarity index 88% rename from src/client/js/Sites/DeleteWordsSite.js rename to src/client/js/Sites/DeleteWordsSite.ts index a5f4545..7082fce 100644 --- a/src/client/js/Sites/DeleteWordsSite.js +++ b/src/client/js/Sites/DeleteWordsSite.ts @@ -1,13 +1,15 @@ import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client"; -import view from "../../html/sites/deleteLevels.html" -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; +const view = require("../../html/sites/deleteLevels.html"); import {App} from "cordova-sites/dist/client/js/App"; import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment"; 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) { super(siteManager, view); this.addDelegate(new UserSite(this, "admin")) @@ -16,11 +18,12 @@ export class DeleteWordsSite extends WordRotatorBaseSite { async onConstruct(args) { let res = super.onConstruct(args); this.words = (await DataManager.load("getDoubleUsedWordsAction"))["result"]; + console.log("word", this.words); return res; } onViewLoaded() { - super.onViewLoaded(); + const res = super.onViewLoaded(); let levelTemplate = this.findBy("#level-template"); let wordTemplate = this.findBy("#word-template"); @@ -54,6 +57,8 @@ export class DeleteWordsSite extends WordRotatorBaseSite { } wordContainer.appendChild(wordElem); } + + return res; } } @@ -61,4 +66,4 @@ App.addInitialization(app => { NavbarFragment.defaultActions.push(new UserMenuAction("delete-levels", "admin", () => { app.startSite(DeleteWordsSite); })); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/EndSite.js b/src/client/js/Sites/EndSite.js deleted file mode 100644 index 2bcc2ad..0000000 --- a/src/client/js/Sites/EndSite.js +++ /dev/null @@ -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); - } -} \ No newline at end of file diff --git a/src/client/js/Sites/EndSite.ts b/src/client/js/Sites/EndSite.ts new file mode 100644 index 0000000..13c84e5 --- /dev/null +++ b/src/client/js/Sites/EndSite.ts @@ -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); + } +} diff --git a/src/client/js/Sites/ImpressumSite.js b/src/client/js/Sites/ImpressumSite.ts similarity index 55% rename from src/client/js/Sites/ImpressumSite.js rename to src/client/js/Sites/ImpressumSite.ts index 22df41e..a9b54d6 100644 --- a/src/client/js/Sites/ImpressumSite.js +++ b/src/client/js/Sites/ImpressumSite.ts @@ -1,9 +1,8 @@ -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; - -import view from "../../html/sites/impressum.html" +const view = require("../../html/sites/impressum.html"); 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) { super(siteManager, view); } @@ -11,4 +10,4 @@ export class ImpressumSite extends WordRotatorBaseSite{ App.addInitialization(app => { app.addDeepLink("impressum", ImpressumSite); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/LevelSite.js b/src/client/js/Sites/LevelSite.ts similarity index 91% rename from src/client/js/Sites/LevelSite.js rename to src/client/js/Sites/LevelSite.ts index 7f0e0ca..0ddc59c 100644 --- a/src/client/js/Sites/LevelSite.js +++ b/src/client/js/Sites/LevelSite.ts @@ -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 {LevelHelper} from "../wordrotator/Level/LevelHelper"; import {EndSite} from "./EndSite"; -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; - -import helpIcon from "../../img/help.png"; import { MenuAction, @@ -13,19 +16,40 @@ import { NativeStoragePromise, } from "cordova-sites/dist/client"; -import view from "../../html/sites/level.html" import {Helper} from "js-helper/dist/shared/Helper"; import {LevelData} from "../../../shared/model/LevelData"; import {LevelPlayed} from "../model/LevelPlayed"; 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 {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; + private continueButtonScaler: () => Promise; + private wonTextScaler: () => Promise; + private wonText: HTMLElement; + private templateContainer: TemplateContainer; + private coinTemplate: HTMLElement; + private coinContainer: HTMLElement; + private level: Level; -export class LevelSite extends WordRotatorBaseSite { constructor(siteManager) { super(siteManager, view); - this._navbarFragment.setBackgroundImage(null); + // this.getNavbarFragment().setBackgroundImage(null); } async onCreateMenu(navbar) { @@ -34,7 +58,7 @@ export class LevelSite extends WordRotatorBaseSite { let coinAction = new MenuAction(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0"), () => { }, MenuAction.SHOW_ALWAYS, 900); coinAction._shouldTranslate = false; - coinAction._liClass = "coin-counter"; + coinAction.setLiClass("coin-counter img"); navbar.addAction(coinAction); this.coinAction = coinAction; @@ -70,7 +94,7 @@ export class LevelSite extends WordRotatorBaseSite { let soundManager = SoundManager.getInstance(); soundManager.set({ audio: coinSound, - muted: (NativeStoragePromise.getItem("play-sound", "1") !== "1"), + muted: ((await NativeStoragePromise.getItem("play-sound", "1")) !== "1"), volume: 0.7 }, 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.level = level; - // let res = this.tutorial(); Matomo.push(["trackEvent", "LevelSite", "LoadLastLevel"]); this.level.checkHasWon(); return; @@ -250,6 +273,8 @@ export class LevelSite extends WordRotatorBaseSite { } async onStart(args) { + this.setTitle("WR"); + Matomo.update("Level Sites"); let res = super.onStart(args); @@ -300,7 +325,7 @@ export class LevelSite extends WordRotatorBaseSite { coinsBefore = parseInt(Helper.nonNull(await NativeStoragePromise.getItem("coins"), "0")); await NativeStoragePromise.setItem("coins", coinsBefore + parseInt(coinsPerLevel)); }).then(async () => { - return Promise.all([new Promise((r) => { + return Promise.all([new Promise((r) => { setTimeout(() => { //TODO animationen einbauen continueButton.style.opacity = 1; @@ -316,26 +341,26 @@ export class LevelSite extends WordRotatorBaseSite { this.wonParams.aborted = false; for (let i = 0; i < coinsPerLevel; i++) { - let coinElem = this.coinTemplate.cloneNode(true); + let coinElem = this.coinTemplate.cloneNode(true); this.coinContainer.appendChild(coinElem); this.coinPromise = this.coinPromise.then(() => { - return new Promise(r => { + return new Promise(r => { let timeout = 350; if (!this.wonParams.aborted) { //TODO animationen einbauen - coinElem.style.opacity = 1; - // coinElem.fadeIn(timeout / 1000); + + coinElem.style.opacity = "1"; soundManager.play(SoundManager.CHANNELS.SOUND); this.wonParams.coinCounterTimer = setTimeout(() => { if (!this.wonParams.aborted) { this.coinAction.setName(++coinsBefore); - // this.coinAction.redraw(); } }, timeout / 2); } else { r(); } + //Always do the next promise for garbage collection setTimeout(r, timeout); }) @@ -414,7 +439,7 @@ export class LevelSite extends WordRotatorBaseSite { let textElem = this.findBy(".tutorial-text .step-1"); await this.levelScaler(); - scaleHelper.scaleToFull(textElem, textElem.parentElement, null, true, 1, 2); + scaleHelper.scaleTo(0.4, textElem, textElem.parentElement, null, true, 2, 2); 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 -}; \ No newline at end of file diff --git a/src/client/js/Sites/MainMenuSite.js b/src/client/js/Sites/MainMenuSite.ts similarity index 70% rename from src/client/js/Sites/MainMenuSite.js rename to src/client/js/Sites/MainMenuSite.ts index beb6d87..db249b5 100644 --- a/src/client/js/Sites/MainMenuSite.js +++ b/src/client/js/Sites/MainMenuSite.ts @@ -1,10 +1,11 @@ -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; -import {App, Toast, DataManager, ScaleHelper} from "cordova-sites/dist/client"; +const settingsIcon = require("../../img/settings.png").default; +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 {LevelSite} from "./LevelSite"; import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer"; import {MainMenuLevel} from "../wordrotator/Level/MainMenuLevel"; -import view from "../../html/sites/menu.html" import {NativeStoragePromise} from "cordova-sites/dist/client"; import {ViewHelper} from "js-helper/dist/client/ViewHelper"; 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 {SettingsSite} from "./SettingsSite"; -import settingsIcon from "../../img/settings.png"; +export class MainMenuSite extends MenuSite { + static app: App; + + private loadLevelPromise: Promise; + private listener: () => void; + private templateContainer: TemplateContainer; + private randomRotateTimeout; -export class MainMenuSite extends WordRotatorBaseSite { constructor(siteManager) { super(siteManager, view); this.loadLevelPromise = new SyncJob().sync([LevelData]).catch(e => console.error(e)); this.listener = null; - this._navbarFragment.setCanGoBack(false); + this.getNavbarFragment().setCanGoBack(false); } onCreateMenu(navbar) { @@ -36,6 +42,73 @@ export class MainMenuSite extends WordRotatorBaseSite { 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) { // Matomo.update("Menu Sites"); let res = super.onStart(args); @@ -120,7 +193,7 @@ export class MainMenuSite extends WordRotatorBaseSite { async startLevelSite() { SoundManager.getInstance().resumeContext(); - this.startSite(LevelSite, Promise.race([this.loadLevelPromise, new Promise(async resolve => { + this.startSite(LevelSite, Promise.race([this.loadLevelPromise, new Promise(async resolve => { let levelData = await LevelPlayed.getNextLevelData(LevelSite.RENDERER_TYPES); if (levelData !== null) { resolve(); @@ -128,130 +201,64 @@ export class MainMenuSite extends WordRotatorBaseSite { })])); } - async onFirstStart() { - 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) { + onPause() { clearTimeout(this.randomRotateTimeout); window.removeEventListener("resize", this.listener); - return super.onPause(args); + return super.onPause(); } - async loadLevels() { - try { - const db = await WordRotatorDb.getInstance(); - const dateLastSync = Helper.nonNull(await db.loadDateLastSync(), 0); - // const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0); - - // let numberLevels = db.countLevels(); - let newLastSync = null; - let maxRuns = 1; - let levelPromises = []; - for (let run = 0; run < maxRuns; run++) { - let res = await DataManager.load("wordRotator/levels" + DataManager.buildQuery({ - "currentRun": run, - "dateLastSync": dateLastSync - })); - if (!res["success"]) { - if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) { - new Toast("sync-error", 6000).show(); - } - newLastSync = null; - break; - } - res = res["result"]; - newLastSync = Helper.nonNull(newLastSync, res["currentSyncDate"]); - maxRuns = res["maxRuns"]; - - let levels = res["levels"]; - for (let i = 0; i < levels.length; i++) { - let currentLevel = levels[i]; - levelPromises.push(db.loadLevel(levels[i]["id"]).then(level => { - currentLevel["played"] = (Helper.nonNull(Helper.nonNull(level, {}).played, false)); - return currentLevel; - })); - } - } - let levels = await Promise.all(levelPromises); - await db.saveManyLevels(levels); - - if (newLastSync != null && newLastSync !== "null") { - await NativeStoragePromise.setItem("date-last-sync", newLastSync); - db.saveDateLastSync(newLastSync); - } - } - catch(e){ - // if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) { - new Toast("sync-error", 6000); - // } - console.error(e); - } - } + // async loadLevels() { + // try { + // const db = await WordRotatorDb.getInstance(); + // const dateLastSync = Helper.nonNull(await db.loadDateLastSync(), 0); + // // const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0); + // + // // let numberLevels = db.countLevels(); + // let newLastSync = null; + // let maxRuns = 1; + // let levelPromises = []; + // for (let run = 0; run < maxRuns; run++) { + // let res = await DataManager.load("wordRotator/levels" + DataManager.buildQuery({ + // "currentRun": run, + // "dateLastSync": dateLastSync + // })); + // if (!res["success"]) { + // if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) { + // new Toast("sync-error", 6000).show(); + // } + // newLastSync = null; + // break; + // } + // res = res["result"]; + // newLastSync = Helper.nonNull(newLastSync, res["currentSyncDate"]); + // maxRuns = res["maxRuns"]; + // + // let levels = res["levels"]; + // for (let i = 0; i < levels.length; i++) { + // let currentLevel = levels[i]; + // levelPromises.push(db.loadLevel(levels[i]["id"]).then(level => { + // currentLevel["played"] = (Helper.nonNull(Helper.nonNull(level, {}).played, false)); + // return currentLevel; + // })); + // } + // } + // let levels = await Promise.all(levelPromises); + // await db.saveManyLevels(levels); + // + // if (newLastSync != null && newLastSync !== "null") { + // await NativeStoragePromise.setItem("date-last-sync", newLastSync); + // db.saveDateLastSync(newLastSync); + // } + // } + // catch(e){ + // // if (await db.loadNextLevel(LevelSite.RENDERER_TYPES) === null) { + // new Toast("sync-error", 6000); + // // } + // console.error(e); + // } + // } } -MainMenuSite.app = null; App.addInitialization(app => { MainMenuSite.app = app; -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/PrivacyPolicySite.js b/src/client/js/Sites/PrivacyPolicySite.ts similarity index 82% rename from src/client/js/Sites/PrivacyPolicySite.js rename to src/client/js/Sites/PrivacyPolicySite.ts index 9abb4d6..748fdd3 100644 --- a/src/client/js/Sites/PrivacyPolicySite.js +++ b/src/client/js/Sites/PrivacyPolicySite.ts @@ -1,10 +1,9 @@ -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; - -import view from "../../html/sites/privacyPolicy.html" +const view = require("../../html/sites/privacyPolicy.html"); import {App} from "cordova-sites/dist/client/js/App"; 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) { super(siteManager,view); } @@ -31,4 +30,4 @@ export class PrivacyPolicySite extends WordRotatorBaseSite { App.addInitialization(app => { app.addDeepLink("privacyPolicy", PrivacyPolicySite); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/SelectWordsSite.js b/src/client/js/Sites/SelectWordsSite.ts similarity index 90% rename from src/client/js/Sites/SelectWordsSite.js rename to src/client/js/Sites/SelectWordsSite.ts index 45abf5e..f6b90d1 100644 --- a/src/client/js/Sites/SelectWordsSite.js +++ b/src/client/js/Sites/SelectWordsSite.ts @@ -1,17 +1,19 @@ -import view from "../../html/sites/selectWords.html" -import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; +const view = require("../../html/sites/selectWords.html"); import {UserMenuAction, UserSite} from "cordova-sites-user-management/dist/client"; import {NavbarFragment} from "cordova-sites/dist/client/js/Context/Menu/NavbarFragment"; 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 {MenuSite} from "cordova-sites/dist/client"; -export class SelectWordsSite extends WordRotatorBaseSite{ +export class SelectWordsSite extends MenuSite{ + private stats: any; + private words: any; constructor(siteManager) { super(siteManager, view); - this.addDelegate(new UserSite("select-words")) + this.addDelegate(new UserSite(this, "select-words")) } async onConstruct(args) { @@ -80,4 +82,4 @@ App.addInitialization(app => { NavbarFragment.defaultActions.push(new UserMenuAction("select-words", "select-words", () => { app.startSite(SelectWordsSite); })); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/SettingsSite.js b/src/client/js/Sites/SettingsSite.ts similarity index 88% rename from src/client/js/Sites/SettingsSite.js rename to src/client/js/Sites/SettingsSite.ts index 289923c..b2f723b 100644 --- a/src/client/js/Sites/SettingsSite.js +++ b/src/client/js/Sites/SettingsSite.ts @@ -1,5 +1,4 @@ - -import view from "../../html/sites/settingsSite.html" +const view = require("../../html/sites/settingsSite.html"); import {MenuSite} from "cordova-sites/dist/client/js/Context/MenuSite"; import {WordRotatorSettingFragment} from "../Fragment/WordRotatorSettingFragment"; import {App} from "cordova-sites/dist/client/js/App"; @@ -14,4 +13,4 @@ export class SettingsSite extends MenuSite { App.addInitialization((app) => { app.addDeepLink("settings", SettingsSite); -}); \ No newline at end of file +}); diff --git a/src/client/js/Sites/WordRotatorBaseSite.js b/src/client/js/Sites/WordRotatorBaseSite.js deleted file mode 100644 index a959d2a..0000000 --- a/src/client/js/Sites/WordRotatorBaseSite.js +++ /dev/null @@ -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(){} -} \ No newline at end of file diff --git a/src/client/js/model/LevelPlayed.ts b/src/client/js/model/LevelPlayed.ts index 959b23d..73721da 100644 --- a/src/client/js/model/LevelPlayed.ts +++ b/src/client/js/model/LevelPlayed.ts @@ -2,6 +2,7 @@ import {BaseModel} from "cordova-sites-database/dist/BaseModel"; import {BaseDatabase} from "cordova-sites-database/dist/cordova-sites-database"; import {LevelData} from "../../../shared/model/LevelData"; import {Helper} from "js-helper/dist/shared/Helper"; +import {QueryBuilder, SelectQueryBuilder} from "typeorm"; export class LevelPlayed extends BaseModel { @@ -35,7 +36,7 @@ export class LevelPlayed extends BaseModel { } static async getNextLevelData(renderer){ - let qb = await this._database.createQueryBuilder(LevelData); + let qb = >await this._database.createQueryBuilder(LevelData); qb = qb.select("COUNT(*) as count, difficulty") .leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id") @@ -61,7 +62,7 @@ export class LevelPlayed extends BaseModel { return null; } - qb = await this._database.createQueryBuilder(LevelData); + qb = >await this._database.createQueryBuilder(LevelData); qb = qb .leftJoin(LevelPlayed, "levelPlayed", "levelPlayed.levelData = LevelData.id") .where("(deleted = 0 OR deleted = 'false')") @@ -75,4 +76,4 @@ export class LevelPlayed extends BaseModel { return await qb.getOne(); } } -BaseDatabase.addModel(LevelPlayed); \ No newline at end of file +BaseDatabase.addModel(LevelPlayed); diff --git a/src/client/js/wordrotator/Level/LevelHelper.js b/src/client/js/wordrotator/Level/LevelHelper.ts similarity index 72% rename from src/client/js/wordrotator/Level/LevelHelper.js rename to src/client/js/wordrotator/Level/LevelHelper.ts index 7a3fdba..8eb0b09 100644 --- a/src/client/js/wordrotator/Level/LevelHelper.js +++ b/src/client/js/wordrotator/Level/LevelHelper.ts @@ -12,8 +12,25 @@ import {SimpleFourWordsLevel10_3} from "./SimpleFourWordsLevel10_3"; import {TwoSegmentFourWordsLevel10_0_3} from "./TwoSegmentFourWordsLevel10_0_3"; import {TwoSegmentFourWordsLevel10_1_3} from "./TwoSegmentFourWordsLevel10_1_3"; import {TwoSegmentFourWordsLevel10_0_2} from "./TwoSegmentFourWordsLevel10_0_2"; +import {Level} from "./Level"; 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) { LevelHelper.types[typeId] = level; } @@ -22,7 +39,7 @@ export class LevelHelper { return LevelHelper.types[type]; } - static inflateLevel(levelData, templateContainer) { + static inflateLevel(levelData, templateContainer): Level { let level = new (LevelHelper.types[levelData["renderer"]])(templateContainer); level.setWords(JSON.parse(levelData["words"].replace(/"/g, '"'))); level.setId(levelData["id"]); @@ -39,20 +56,3 @@ export class LevelHelper { 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, -}; \ No newline at end of file diff --git a/src/client/sass/_mainMenu.scss b/src/client/sass/_mainMenu.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/client/sass/_navbarOverride.scss b/src/client/sass/_navbarOverride.scss new file mode 100644 index 0000000..9d6e83a --- /dev/null +++ b/src/client/sass/_navbarOverride.scss @@ -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; + } + } + +} diff --git a/src/client/sass/_themeBlue.scss b/src/client/sass/_themeBlue.scss new file mode 100644 index 0000000..348bcc4 --- /dev/null +++ b/src/client/sass/_themeBlue.scss @@ -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; + } + } + +} diff --git a/src/client/sass/_wordRotator_old.scss b/src/client/sass/_wordRotator_old.scss deleted file mode 100644 index 347de71..0000000 --- a/src/client/sass/_wordRotator_old.scss +++ /dev/null @@ -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; -} diff --git a/src/client/sass/_wordrotatorTheme.scss b/src/client/sass/_wordrotatorTheme.scss index 656451c..eff7096 100644 --- a/src/client/sass/_wordrotatorTheme.scss +++ b/src/client/sass/_wordrotatorTheme.scss @@ -73,9 +73,16 @@ body { } &.default { - background: url('../img/background.png'); - background-size: cover; - background-position: center; + //background: #07076d; + background: #0f0f49; + //background: #1c1c44; + color: white; + * { + color: white; + } + //background: url('../img/background.png'); + //background-size: cover; + //background-position: center; #level-number-container { &.in-main-menu { @@ -144,17 +151,13 @@ body { } } - label { - font-size: 1em !important; - } - - .setting-row:not(.hidden) { - line-height: 1; - padding-top: 0.5em; - padding-bottom: 0.5em; - width: 100%; - cursor: pointer; - background: rgba(195, 195, 195, 0.13); - //display: inline-block; - } + //.setting-row:not(.hidden) { + // line-height: 1; + // padding-top: 0.5em; + // padding-bottom: 0.5em; + // width: 100%; + // cursor: pointer; + // background: rgba(195, 195, 195, 0.13); + // //display: inline-block; + //} } diff --git a/src/client/sass/foundation.scss b/src/client/sass/foundation.scss deleted file mode 100644 index b9570fa..0000000 --- a/src/client/sass/foundation.scss +++ /dev/null @@ -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; - } -} \ No newline at end of file diff --git a/src/client/sass/index.scss b/src/client/sass/index.scss index e4fce1d..3e048f9 100644 --- a/src/client/sass/index.scss +++ b/src/client/sass/index.scss @@ -1,8 +1,7 @@ @import "../../../node_modules/foundation-sites/scss/foundation"; //Settings nach foundation für mixins in settings -@import "wordRotator"; -@import "animations"; +@import "settings"; //Include foundation before other styles, so that other one can override foundation @include foundation-everything; @@ -12,6 +11,10 @@ @import "../../../node_modules/cordova-sites-user-management/cordova-sites-user-management"; //Anderes nach Settings, damit Settings bereits angewendet werden +@import "wordRotator"; +@import "animations"; +@import "navbarOverride"; +@import "themeBlue"; .translation{} @@ -189,4 +192,4 @@ a.hidden-link { body{ //background-image: url("../img/background.png"); -} \ No newline at end of file +} diff --git a/src/client/sass/lib/_actionBar.scss b/src/client/sass/lib/_actionBar.scss deleted file mode 100644 index 917fa2d..0000000 --- a/src/client/sass/lib/_actionBar.scss +++ /dev/null @@ -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; -} \ No newline at end of file diff --git a/src/client/sass/lib/_core.scss b/src/client/sass/lib/_core.scss index 03ea1ac..6f588c2 100644 --- a/src/client/sass/lib/_core.scss +++ b/src/client/sass/lib/_core.scss @@ -8,7 +8,7 @@ html { min-height: 100%; width: 100%; height: 100%; - font-size: 18px; + //font-size: 18px; letter-spacing: 1px; } @@ -364,4 +364,4 @@ img.back-button { .no-margin-bottom { margin-bottom: 0; -} \ No newline at end of file +} diff --git a/src/client/sass/lib/_form.scss b/src/client/sass/lib/_form.scss deleted file mode 100644 index 8518925..0000000 --- a/src/client/sass/lib/_form.scss +++ /dev/null @@ -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; - } -} diff --git a/src/client/sass/lib/_foundationSettings.scss b/src/client/sass/lib/_foundationSettings.scss deleted file mode 100644 index e122f0f..0000000 --- a/src/client/sass/lib/_foundationSettings.scss +++ /dev/null @@ -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; diff --git a/src/client/sass/lib/_listjs.scss b/src/client/sass/lib/_listjs.scss deleted file mode 100644 index 4ce14ee..0000000 --- a/src/client/sass/lib/_listjs.scss +++ /dev/null @@ -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 { - - } - } - } -} \ No newline at end of file diff --git a/src/client/sass/lib/_modal.scss b/src/client/sass/lib/_modal.scss deleted file mode 100644 index 1a84c9d..0000000 --- a/src/client/sass/lib/_modal.scss +++ /dev/null @@ -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; - } - } - } - } -} diff --git a/src/client/sass/lib/_pwaAssets.scss b/src/client/sass/lib/_pwaAssets.scss deleted file mode 100644 index 4dd9dfc..0000000 --- a/src/client/sass/lib/_pwaAssets.scss +++ /dev/null @@ -1,7 +0,0 @@ - -.no-transition{ - transition: none !important; - * { - transition: none !important; - } -} \ No newline at end of file diff --git a/src/client/sass/lib/_settingsSite.scss b/src/client/sass/lib/_settingsSite.scss index 154e04c..ece4580 100644 --- a/src/client/sass/lib/_settingsSite.scss +++ b/src/client/sass/lib/_settingsSite.scss @@ -13,6 +13,7 @@ #settings-fragments { > * { display: none; + &.active { display: block; } @@ -24,26 +25,31 @@ .switch { position: relative; display: inline-block; + height: initial; - @include breakpoint(small down){ + @include breakpoint(small down) { font-size: 0.6em; } - @include breakpoint(smedium down){ + @include breakpoint(smedium down) { font-size: 0.7em; } + input { display: none; - &:checked + .slider{ + + &:checked + .slider { //background-color: #2196F3; - &:before{ + &:before { transform: translateX(1.5em); } } - &:focus + .slider{ + + &:focus + .slider { //box-shadow: 0 0 1px #2196F3; } } + .slider { display: inline-block; position: relative; @@ -55,7 +61,8 @@ transition: .4s; margin-bottom: 0; margin-top: 0; - &:before{ + + &:before { position: absolute; content: ""; height: 1.1em; @@ -67,30 +74,38 @@ border-radius: 50%; } } - img, svg{ + + img, svg { width: 1.4em; display: inline; vertical-align: initial; - path{ + + path { stroke-color: inherit; } } } -label{ + +label { font-size: 1em !important; } -.setting-row:not(.hidden){ + +.setting-row:not(.hidden) { line-height: 1; - padding-top: 0.5em; - padding-bottom: 0.5em; + display: flex; + padding: 0.5rem 0.4rem; + align-items: center; + width: 100%; cursor: pointer; background: rgba(195, 195, 195, 0.13); - //display: inline-block; - input[type=checkbox] - { + > * { + flex: 1; + } + + input[type=checkbox] { margin: 0; } } diff --git a/src/client/sass/wordRotator.scss b/src/client/sass/wordRotator.scss index 8f1e8e6..660050f 100644 --- a/src/client/sass/wordRotator.scss +++ b/src/client/sass/wordRotator.scss @@ -1,11 +1,9 @@ -@import "settings"; -@import "lib/_rotate.scss"; +//@import "lib/_rotate.scss"; @import "lib/_share.scss"; -@import "lib/_tabs.scss"; +//@import "lib/_tabs.scss"; @import "lib/_core.scss"; -@import "lib/_flashMessenger.scss"; -@import "lib/_framework.scss"; -@import "lib/_pwaAssets.scss"; +//@import "lib/_flashMessenger.scss"; +//@import "lib/_framework.scss"; @import "lib/_settingsSite.scss"; @import "lib/_style.scss"; @import "lib/_theme.scss"; @@ -13,19 +11,14 @@ @import "wordrotatorTheme"; -$text-shadow: /* - 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; - - +$text-shadow: 0 0.2rem 0.2rem #464646, 0.6rem 0.8rem 0.4rem #00000090; +.no-transition{ + transition: none !important; + * { + transition: none !important; + } +} //ActionBar nav.top-bar.title-bar { @@ -355,7 +348,7 @@ $coinTowerDimension: 28px; top: 0; left: 0; - text-shadow: $text-shadow; + //text-shadow: $text-shadow; } } @@ -405,7 +398,7 @@ $coinTowerDimension: 28px; display: none; } - #won-text{ + #won-text { text-shadow: $text-shadow; } @@ -425,7 +418,7 @@ $coinTowerDimension: 28px; #play-button { @include breakpoint(small down) { - margin-bottom: 2px; + margin-bottom: 0.5rem; } } @@ -482,4 +475,4 @@ svg { .fill-background { fill: white; } -} \ No newline at end of file +} diff --git a/src/client/translations/de.json b/src/client/translations/de.json index 7cab480..39035c1 100644 --- a/src/client/translations/de.json +++ b/src/client/translations/de.json @@ -48,5 +48,6 @@ "privacy policy accepted": " akzeptiert", "message": "Nachricht", "send": "Senden", - "the message was sent": "Die Nachricht wurde gesendet." -} \ No newline at end of file + "the message was sent": "Die Nachricht wurde gesendet.", + "wr": "WR" +} diff --git a/src/server/public/config.xml b/src/server/public/config.xml index 5d7407a..0b0dab0 100644 --- a/src/server/public/config.xml +++ b/src/server/public/config.xml @@ -1,5 +1,5 @@ - + WordRotator A word-game diff --git a/src/server/public/service-worker.js.map b/src/server/public/service-worker.js.map index 78622f8..374c953 100644 --- a/src/server/public/service-worker.js.map +++ b/src/server/public/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/c18028f2f290fd8fb18eae91b1e278f8/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/silas/Projekte/web/wordRotator/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"autobundle.js\",\n \"revision\": \"13c52d778d9424443ebc2f01ea905320\"\n },\n {\n \"url\": \"autohtml/abstractWindowTemplate.html\",\n \"revision\": \"6c3ea1af1622920ddbc5bf4b548792f1\"\n },\n {\n \"url\": \"autohtml/alphabeticListFragment.html\",\n \"revision\": \"17b160c9c961ee83eced3a2c7d5f7749\"\n },\n {\n \"url\": \"autohtml/changeUserSite.html\",\n \"revision\": \"32ca48dd5c17c3ca7259a192c6ad3e5f\"\n },\n {\n \"url\": \"autohtml/chooseDialog.html\",\n \"revision\": \"1e4a0cfb29c721b64799c342f7586ad6\"\n },\n {\n \"url\": \"autohtml/contactSite.html\",\n \"revision\": \"2cdee4e20c1728e1f8e03110cbfcbd4c\"\n },\n {\n \"url\": \"autohtml/container.html\",\n \"revision\": \"7c9ef0046546b6535e2197845804df3d\"\n },\n {\n \"url\": \"autohtml/credits.html\",\n \"revision\": \"7ad14642353efd449a3890122bb73b1e\"\n },\n {\n \"url\": \"autohtml/end.html\",\n \"revision\": \"162cd57d50145eb4dbf51ca7bc97256a\"\n },\n {\n \"url\": \"autohtml/forgotPasswordSite.html\",\n \"revision\": \"ef290b527ae9e6ecf6e2ec31ecc99b87\"\n },\n {\n \"url\": \"autohtml/impressum.html\",\n \"revision\": \"1533d5dba0bd88309b004d65bc59c5f1\"\n },\n {\n \"url\": \"autohtml/level.html\",\n \"revision\": \"05cef7e7e823c25ed8bb735da3cf585b\"\n },\n {\n \"url\": \"autohtml/loginSite.html\",\n \"revision\": \"28536b28261bdd966784e32ef8e8bda2\"\n },\n {\n \"url\": \"autohtml/menu.html\",\n \"revision\": \"a356869e90f07077cc3a07dd36c238c5\"\n },\n {\n \"url\": \"autohtml/menuSite.html\",\n \"revision\": \"926a7a940ae8741445644f16132a9f20\"\n },\n {\n \"url\": \"autohtml/navbar.html\",\n \"revision\": \"04c4cb0adaa4e69cb43fb35cc8482b0a\"\n },\n {\n \"url\": \"autohtml/notAllowedSite.html\",\n \"revision\": \"da6b73654dccd61eebe8f4f1ba06e340\"\n },\n {\n \"url\": \"autohtml/privacyPolicy.html\",\n \"revision\": \"7319848c6b090b0af30ac56492101ee8\"\n },\n {\n \"url\": \"autohtml/registrationSite.html\",\n \"revision\": \"0911eeabc518befa874ea1661b64c3d7\"\n },\n {\n \"url\": \"autohtml/selectUserDialog.html\",\n \"revision\": \"23ae55ef46c250f2ab2528f4422a14d6\"\n },\n {\n \"url\": \"autohtml/settings.html\",\n \"revision\": \"d8a6ead5c9f8dd6f6319b61caab9d359\"\n },\n {\n \"url\": \"autohtml/settingsSite.html\",\n \"revision\": \"06f47ad4321d3ede658035e0411df0b0\"\n },\n {\n \"url\": \"autohtml/shareDialog.html\",\n \"revision\": \"cc8b45e9c7f6264e7b61d6da3e6210c6\"\n },\n {\n \"url\": \"autohtml/swipeFragment.html\",\n \"revision\": \"553c580ff0a282c49a2efe35dabad809\"\n },\n {\n \"url\": \"autohtml/tabFragment.html\",\n \"revision\": \"ca8c3b2c4a353a0ee7900aef656cc958\"\n },\n {\n \"url\": \"autoimg/arrowLeft.svg\",\n \"revision\": \"6bbb4f0e313bb88cd0cc80c2b3cd36fc\"\n },\n {\n \"url\": \"autoimg/background.png\",\n \"revision\": \"be3db85ac9a143f4bcac7db7f5a4856e\"\n },\n {\n \"url\": \"autoimg/brightAndBeautifull__.mp3\",\n \"revision\": \"2b40fd6c076d254cf639f8f46819d5ca\"\n },\n {\n \"url\": \"autoimg/coin.png\",\n \"revision\": \"5b380862ff8349f6b4b8d5241893f508\"\n },\n {\n \"url\": \"autoimg/coinTower.png\",\n \"revision\": \"50cef0780a1affcd301c2c4be09ccb25\"\n },\n {\n \"url\": \"autoimg/errorIcon.png\",\n \"revision\": \"b48a01a1871b83b30c317f0fc4aed555\"\n },\n {\n \"url\": \"autoimg/help.png\",\n \"revision\": \"45a8dc0493279dc37f72f8026af5bc10\"\n },\n {\n \"url\": \"autoimg/logo.png\",\n \"revision\": \"5246599497de18a878951e1e98083493\"\n },\n {\n \"url\": \"autoimg/music.svg\",\n \"revision\": \"ce36074e94a8d19dfa383f98bd66a1f4\"\n },\n {\n \"url\": \"autoimg/settings.png\",\n \"revision\": \"c44ce577ac56632e53208833ff78e67f\"\n },\n {\n \"url\": \"autoimg/share.svg\",\n \"revision\": \"ac8fc0221ee400fc843090a834df7c9d\"\n },\n {\n \"url\": \"autoimg/single_coin_fall_on_concrete_.mp3\",\n \"revision\": \"7f0de4f503644a7fc14de7e307bbf722\"\n },\n {\n \"url\": \"autoimg/speaker.svg\",\n \"revision\": \"0d926850f1558dd431e1c6b10fe0c2ef\"\n },\n {\n \"url\": \"autoimg/telegram.svg\",\n \"revision\": \"e366fed4603e06142a2d6b8221be51b8\"\n },\n {\n \"url\": \"autoimg/whatsapp.svg\",\n \"revision\": \"0fa4092ac1f91a5390e74a3c2c03d5e3\"\n },\n {\n \"url\": \"autoindex.css\",\n \"revision\": \"57dd368ab96459de433a2a3cbacc765d\"\n },\n {\n \"url\": \"autoindex.html\",\n \"revision\": \"d9da26b18b24767c7bedb06a44bc31ce\"\n },\n {\n \"url\": \"autoscripts/localforage.js\",\n \"revision\": \"7ae08028a75fed2acce92b8e75fbe08c\"\n },\n {\n \"url\": \"autoscripts/sql-wasm.js\",\n \"revision\": \"b34648b4b4c89ba52bcd7468fa035583\"\n },\n {\n \"url\": \"autosql-wasm.wasm\",\n \"revision\": \"bff856e0a3429d33cfb88d20b7f9fcff\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"0yBAmBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,mCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gDACK,oCAEd,KACS,gDACK,oCAEd,KACS,wCACK,oCAEd,KACS,sCACK,oCAEd,KACS,qCACK,oCAEd,KACS,mCACK,oCAEd,KACS,iCACK,oCAEd,KACS,6BACK,oCAEd,KACS,4CACK,oCAEd,KACS,mCACK,oCAEd,KACS,+BACK,oCAEd,KACS,mCACK,oCAEd,KACS,8BACK,oCAEd,KACS,kCACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,0CACK,oCAEd,KACS,0CACK,oCAEd,KACS,kCACK,oCAEd,KACS,sCACK,oCAEd,KACS,qCACK,oCAEd,KACS,uCACK,oCAEd,KACS,qCACK,oCAEd,KACS,iCACK,oCAEd,KACS,kCACK,oCAEd,KACS,6CACK,oCAEd,KACS,4BACK,oCAEd,KACS,iCACK,oCAEd,KACS,iCACK,oCAEd,KACS,4BACK,oCAEd,KACS,4BACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,6BACK,oCAEd,KACS,qDACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,0BACK,oCAEd,KACS,sCACK,oCAEd,KACS,mCACK,oCAEd,KACS,6BACK,qCAEb"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/e3f29bc3b67803fdffb5ae8cb8dc01fe/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/silas/Projekte/web/wordRotator/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"autobundle.js\",\n \"revision\": \"13c52d778d9424443ebc2f01ea905320\"\n },\n {\n \"url\": \"autohtml/abstractWindowTemplate.html\",\n \"revision\": \"6c3ea1af1622920ddbc5bf4b548792f1\"\n },\n {\n \"url\": \"autohtml/alphabeticListFragment.html\",\n \"revision\": \"17b160c9c961ee83eced3a2c7d5f7749\"\n },\n {\n \"url\": \"autohtml/changeUserSite.html\",\n \"revision\": \"32ca48dd5c17c3ca7259a192c6ad3e5f\"\n },\n {\n \"url\": \"autohtml/chooseDialog.html\",\n \"revision\": \"1e4a0cfb29c721b64799c342f7586ad6\"\n },\n {\n \"url\": \"autohtml/contactSite.html\",\n \"revision\": \"2cdee4e20c1728e1f8e03110cbfcbd4c\"\n },\n {\n \"url\": \"autohtml/container.html\",\n \"revision\": \"7c9ef0046546b6535e2197845804df3d\"\n },\n {\n \"url\": \"autohtml/credits.html\",\n \"revision\": \"7ad14642353efd449a3890122bb73b1e\"\n },\n {\n \"url\": \"autohtml/end.html\",\n \"revision\": \"162cd57d50145eb4dbf51ca7bc97256a\"\n },\n {\n \"url\": \"autohtml/forgotPasswordSite.html\",\n \"revision\": \"ef290b527ae9e6ecf6e2ec31ecc99b87\"\n },\n {\n \"url\": \"autohtml/impressum.html\",\n \"revision\": \"1533d5dba0bd88309b004d65bc59c5f1\"\n },\n {\n \"url\": \"autohtml/level.html\",\n \"revision\": \"05cef7e7e823c25ed8bb735da3cf585b\"\n },\n {\n \"url\": \"autohtml/loginSite.html\",\n \"revision\": \"28536b28261bdd966784e32ef8e8bda2\"\n },\n {\n \"url\": \"autohtml/menu.html\",\n \"revision\": \"a356869e90f07077cc3a07dd36c238c5\"\n },\n {\n \"url\": \"autohtml/menuSite.html\",\n \"revision\": \"926a7a940ae8741445644f16132a9f20\"\n },\n {\n \"url\": \"autohtml/navbar.html\",\n \"revision\": \"04c4cb0adaa4e69cb43fb35cc8482b0a\"\n },\n {\n \"url\": \"autohtml/notAllowedSite.html\",\n \"revision\": \"da6b73654dccd61eebe8f4f1ba06e340\"\n },\n {\n \"url\": \"autohtml/privacyPolicy.html\",\n \"revision\": \"7319848c6b090b0af30ac56492101ee8\"\n },\n {\n \"url\": \"autohtml/registrationSite.html\",\n \"revision\": \"0911eeabc518befa874ea1661b64c3d7\"\n },\n {\n \"url\": \"autohtml/selectUserDialog.html\",\n \"revision\": \"23ae55ef46c250f2ab2528f4422a14d6\"\n },\n {\n \"url\": \"autohtml/settings.html\",\n \"revision\": \"d8a6ead5c9f8dd6f6319b61caab9d359\"\n },\n {\n \"url\": \"autohtml/settingsSite.html\",\n \"revision\": \"06f47ad4321d3ede658035e0411df0b0\"\n },\n {\n \"url\": \"autohtml/shareDialog.html\",\n \"revision\": \"cc8b45e9c7f6264e7b61d6da3e6210c6\"\n },\n {\n \"url\": \"autohtml/swipeFragment.html\",\n \"revision\": \"553c580ff0a282c49a2efe35dabad809\"\n },\n {\n \"url\": \"autohtml/tabFragment.html\",\n \"revision\": \"ca8c3b2c4a353a0ee7900aef656cc958\"\n },\n {\n \"url\": \"autoimg/arrowLeft.svg\",\n \"revision\": \"6bbb4f0e313bb88cd0cc80c2b3cd36fc\"\n },\n {\n \"url\": \"autoimg/background.png\",\n \"revision\": \"be3db85ac9a143f4bcac7db7f5a4856e\"\n },\n {\n \"url\": \"autoimg/brightAndBeautifull__.mp3\",\n \"revision\": \"2b40fd6c076d254cf639f8f46819d5ca\"\n },\n {\n \"url\": \"autoimg/coin.png\",\n \"revision\": \"5b380862ff8349f6b4b8d5241893f508\"\n },\n {\n \"url\": \"autoimg/coinTower.png\",\n \"revision\": \"50cef0780a1affcd301c2c4be09ccb25\"\n },\n {\n \"url\": \"autoimg/errorIcon.png\",\n \"revision\": \"b48a01a1871b83b30c317f0fc4aed555\"\n },\n {\n \"url\": \"autoimg/help.png\",\n \"revision\": \"45a8dc0493279dc37f72f8026af5bc10\"\n },\n {\n \"url\": \"autoimg/logo.png\",\n \"revision\": \"5246599497de18a878951e1e98083493\"\n },\n {\n \"url\": \"autoimg/music.svg\",\n \"revision\": \"ce36074e94a8d19dfa383f98bd66a1f4\"\n },\n {\n \"url\": \"autoimg/settings.png\",\n \"revision\": \"c44ce577ac56632e53208833ff78e67f\"\n },\n {\n \"url\": \"autoimg/share.svg\",\n \"revision\": \"ac8fc0221ee400fc843090a834df7c9d\"\n },\n {\n \"url\": \"autoimg/single_coin_fall_on_concrete_.mp3\",\n \"revision\": \"7f0de4f503644a7fc14de7e307bbf722\"\n },\n {\n \"url\": \"autoimg/speaker.svg\",\n \"revision\": \"0d926850f1558dd431e1c6b10fe0c2ef\"\n },\n {\n \"url\": \"autoimg/telegram.svg\",\n \"revision\": \"e366fed4603e06142a2d6b8221be51b8\"\n },\n {\n \"url\": \"autoimg/whatsapp.svg\",\n \"revision\": \"0fa4092ac1f91a5390e74a3c2c03d5e3\"\n },\n {\n \"url\": \"autoindex.css\",\n \"revision\": \"57dd368ab96459de433a2a3cbacc765d\"\n },\n {\n \"url\": \"autoindex.html\",\n \"revision\": \"d9da26b18b24767c7bedb06a44bc31ce\"\n },\n {\n \"url\": \"autoscripts/localforage.js\",\n \"revision\": \"7ae08028a75fed2acce92b8e75fbe08c\"\n },\n {\n \"url\": \"autoscripts/sql-wasm.js\",\n \"revision\": \"b34648b4b4c89ba52bcd7468fa035583\"\n },\n {\n \"url\": \"autosql-wasm.wasm\",\n \"revision\": \"bff856e0a3429d33cfb88d20b7f9fcff\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"0yBAmBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,mCAY2B,CAClC,KACS,yBACK,oCAEd,KACS,gDACK,oCAEd,KACS,gDACK,oCAEd,KACS,wCACK,oCAEd,KACS,sCACK,oCAEd,KACS,qCACK,oCAEd,KACS,mCACK,oCAEd,KACS,iCACK,oCAEd,KACS,6BACK,oCAEd,KACS,4CACK,oCAEd,KACS,mCACK,oCAEd,KACS,+BACK,oCAEd,KACS,mCACK,oCAEd,KACS,8BACK,oCAEd,KACS,kCACK,oCAEd,KACS,gCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,0CACK,oCAEd,KACS,0CACK,oCAEd,KACS,kCACK,oCAEd,KACS,sCACK,oCAEd,KACS,qCACK,oCAEd,KACS,uCACK,oCAEd,KACS,qCACK,oCAEd,KACS,iCACK,oCAEd,KACS,kCACK,oCAEd,KACS,6CACK,oCAEd,KACS,4BACK,oCAEd,KACS,iCACK,oCAEd,KACS,iCACK,oCAEd,KACS,4BACK,oCAEd,KACS,4BACK,oCAEd,KACS,6BACK,oCAEd,KACS,gCACK,oCAEd,KACS,6BACK,oCAEd,KACS,qDACK,oCAEd,KACS,+BACK,oCAEd,KACS,gCACK,oCAEd,KACS,gCACK,oCAEd,KACS,yBACK,oCAEd,KACS,0BACK,oCAEd,KACS,sCACK,oCAEd,KACS,mCACK,oCAEd,KACS,6BACK,qCAEb"} \ No newline at end of file diff --git a/src/server/public/wordRotator.apk b/src/server/public/wordRotator.apk index 189423dff4f94860b61640833474d655675100a4..39b87a1e4eac4bf000587edce284d6d6625bcec7 100644 GIT binary patch delta 80772 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

hMtU9H^p77cdNSx@;c^_Fe4 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 { - console.log("[SERVER]", data); + console.log("[SERVER]", data); if (data.indexOf("Server started on Port: ") !== -1){ resolve(); } diff --git a/tests/specs/shared/playLevels.js b/tests/specs/shared/playLevels.js index 8cc8030..a376736 100644 --- a/tests/specs/shared/playLevels.js +++ b/tests/specs/shared/playLevels.js @@ -5,7 +5,7 @@ const functions = require("../../lib/functions.js"); async function solveLevel() { await functions.pause(500); - await browser.executeAsync(async (delayFactor, done) => { + await browser.executeAsync((delayFactor, done) => { const delay = 100*delayFactor; let promise = Promise.resolve(); @@ -69,7 +69,6 @@ describe("fsj suite", () => { let baseUrl = null; beforeAll(async () => { - if (browser.config.baseUrl.trim() !== "") { baseUrl = browser.config.baseUrl; } else { @@ -82,7 +81,6 @@ describe("fsj suite", () => { }); beforeEach(async function () { - await browser.url(baseUrl); await browser.waitUntil(async () => { @@ -107,4 +105,4 @@ describe("fsj suite", () => { // await functions.pause(5000); }); -}); \ No newline at end of file +}); diff --git a/tests/wdio.config.browser.js b/tests/wdio.config.browser.js index 3497dd7..4fd5ead 100644 --- a/tests/wdio.config.browser.js +++ b/tests/wdio.config.browser.js @@ -58,6 +58,7 @@ exports.config = { maxInstances: 1, }], onPrepare: async function(){ + console.log("on prepare"); await Service.setup(); }, onComplete: async function(){ @@ -65,4 +66,4 @@ exports.config = { await Service.tearDown(); console.log("teared down!"); } -}; \ No newline at end of file +}; diff --git a/tsconfig.json b/tsconfig.json index 4cffd06..d11d3eb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,15 +11,10 @@ "allowJs": true }, "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/shared/**/*" ], "exclude": [], "emitDecoratorMetadata": true, "experimentalDecorators": true -} \ No newline at end of file +}