|
|
|
|
@ -18,12 +18,12 @@ import * as UI from "./ui";
|
|
|
|
|
import * as CommandlineLists from "./commandline-lists";
|
|
|
|
|
import * as BackgroundFilter from "./custom-background-filter";
|
|
|
|
|
|
|
|
|
|
export let cookieConfig = null;
|
|
|
|
|
export let localStorageConfig = null;
|
|
|
|
|
export let dbConfigLoaded = false;
|
|
|
|
|
export let changedBeforeDb = false;
|
|
|
|
|
|
|
|
|
|
export function setCookieConfig(val) {
|
|
|
|
|
cookieConfig = val;
|
|
|
|
|
export function setLocalStorageConfig(val) {
|
|
|
|
|
localStorageConfig = val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setDbConfigLoaded(val) {
|
|
|
|
|
@ -131,7 +131,7 @@ let config = {
|
|
|
|
|
...defaultConfig,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export async function saveToCookie(noDbCheck = false) {
|
|
|
|
|
export async function saveToLocalStorage(noDbCheck = false) {
|
|
|
|
|
if (!dbConfigLoaded && !noDbCheck) {
|
|
|
|
|
setChangedBeforeDb(true);
|
|
|
|
|
}
|
|
|
|
|
@ -143,7 +143,7 @@ export async function saveToCookie(noDbCheck = false) {
|
|
|
|
|
// });
|
|
|
|
|
let save = config;
|
|
|
|
|
delete save.resultFilters;
|
|
|
|
|
Misc.setCookie("config", JSON.stringify(save), 365);
|
|
|
|
|
window.localStorage.setItem("config", JSON.stringify(save));
|
|
|
|
|
// restartCount = 0;
|
|
|
|
|
if (!noDbCheck) await DB.saveConfig(save);
|
|
|
|
|
}
|
|
|
|
|
@ -159,7 +159,7 @@ export function setNumbers(numb, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
$("#top .config .numbersMode .text-button").addClass("active");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleNumbers() {
|
|
|
|
|
@ -172,7 +172,7 @@ export function toggleNumbers() {
|
|
|
|
|
} else {
|
|
|
|
|
$("#top .config .numbersMode .text-button").removeClass("active");
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//punctuation
|
|
|
|
|
@ -186,7 +186,7 @@ export function setPunctuation(punc, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
$("#top .config .punctuationMode .text-button").addClass("active");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function togglePunctuation() {
|
|
|
|
|
@ -199,7 +199,7 @@ export function togglePunctuation() {
|
|
|
|
|
} else {
|
|
|
|
|
$("#top .config .punctuationMode .text-button").removeClass("active");
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setMode(mode, nosave) {
|
|
|
|
|
@ -273,7 +273,7 @@ export function setMode(mode, nosave) {
|
|
|
|
|
}
|
|
|
|
|
// setPaceCaret("off", true);
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setPlaySoundOnError(val, nosave) {
|
|
|
|
|
@ -281,7 +281,7 @@ export function setPlaySoundOnError(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.playSoundOnError = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setPlaySoundOnClick(val, nosave) {
|
|
|
|
|
@ -290,7 +290,7 @@ export function setPlaySoundOnClick(val, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.playSoundOnClick = val;
|
|
|
|
|
if (config.playSoundOnClick !== "off") Sound.init();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function togglePlaySoundOnError() {
|
|
|
|
|
@ -311,14 +311,14 @@ export function setDifficulty(diff, nosave) {
|
|
|
|
|
config.difficulty = diff;
|
|
|
|
|
if (!nosave) TestLogic.restart(false, nosave);
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//set fav themes
|
|
|
|
|
export function setFavThemes(themes, nosave) {
|
|
|
|
|
config.favThemes = themes;
|
|
|
|
|
if (!nosave) {
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -330,7 +330,7 @@ export function toggleBlindMode() {
|
|
|
|
|
}
|
|
|
|
|
config.blindMode = blind;
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setBlindMode(blind, nosave) {
|
|
|
|
|
@ -339,7 +339,7 @@ export function setBlindMode(blind, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.blindMode = blind;
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function updateChartAccuracy() {
|
|
|
|
|
@ -367,7 +367,7 @@ export function toggleChartAccuracy() {
|
|
|
|
|
config.chartAccuracy = true;
|
|
|
|
|
}
|
|
|
|
|
updateChartAccuracy();
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setChartAccuracy(chartAccuracy, nosave) {
|
|
|
|
|
@ -376,7 +376,7 @@ export function setChartAccuracy(chartAccuracy, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.chartAccuracy = chartAccuracy;
|
|
|
|
|
updateChartAccuracy();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleChartStyle() {
|
|
|
|
|
@ -386,7 +386,7 @@ export function toggleChartStyle() {
|
|
|
|
|
config.chartStyle = "scatter";
|
|
|
|
|
}
|
|
|
|
|
updateChartStyle();
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setChartStyle(chartStyle, nosave) {
|
|
|
|
|
@ -395,7 +395,7 @@ export function setChartStyle(chartStyle, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.chartStyle = chartStyle;
|
|
|
|
|
updateChartStyle();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setStopOnError(soe, nosave) {
|
|
|
|
|
@ -407,13 +407,13 @@ export function setStopOnError(soe, nosave) {
|
|
|
|
|
config.confidenceMode = "off";
|
|
|
|
|
}
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//alwaysshowdecimal
|
|
|
|
|
export function toggleAlwaysShowDecimalPlaces() {
|
|
|
|
|
config.alwaysShowDecimalPlaces = !config.alwaysShowDecimalPlaces;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setAlwaysShowDecimalPlaces(val, nosave) {
|
|
|
|
|
@ -421,12 +421,12 @@ export function setAlwaysShowDecimalPlaces(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.alwaysShowDecimalPlaces = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleAlwaysShowCPM() {
|
|
|
|
|
config.alwaysShowCPM = !config.alwaysShowCPM;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setAlwaysShowCPM(val, nosave) {
|
|
|
|
|
@ -434,7 +434,7 @@ export function setAlwaysShowCPM(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.alwaysShowCPM = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//show out of focus warning
|
|
|
|
|
@ -443,7 +443,7 @@ export function toggleShowOutOfFocusWarning() {
|
|
|
|
|
if (!config.showOutOfFocusWarning) {
|
|
|
|
|
OutOfFocus.hide();
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setShowOutOfFocusWarning(val, nosave) {
|
|
|
|
|
@ -454,13 +454,13 @@ export function setShowOutOfFocusWarning(val, nosave) {
|
|
|
|
|
if (!config.showOutOfFocusWarning) {
|
|
|
|
|
OutOfFocus.hide();
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//swap esc and tab
|
|
|
|
|
export function toggleSwapEscAndTab() {
|
|
|
|
|
config.swapEscAndTab = !config.swapEscAndTab;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
UI.updateKeytips();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -470,7 +470,7 @@ export function setSwapEscAndTab(val, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.swapEscAndTab = val;
|
|
|
|
|
UI.updateKeytips();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//pace caret
|
|
|
|
|
@ -491,7 +491,7 @@ export function setPaceCaret(val, nosave) {
|
|
|
|
|
config.paceCaret = val;
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
PaceCaret.init(nosave);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setPaceCaretCustomSpeed(val, nosave) {
|
|
|
|
|
@ -499,7 +499,7 @@ export function setPaceCaretCustomSpeed(val, nosave) {
|
|
|
|
|
val = 100;
|
|
|
|
|
}
|
|
|
|
|
config.paceCaretCustomSpeed = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//min wpm
|
|
|
|
|
@ -509,7 +509,7 @@ export function setMinWpm(minwpm, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.minWpm = minwpm;
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setMinWpmCustomSpeed(val, nosave) {
|
|
|
|
|
@ -517,7 +517,7 @@ export function setMinWpmCustomSpeed(val, nosave) {
|
|
|
|
|
val = 100;
|
|
|
|
|
}
|
|
|
|
|
config.minWpmCustomSpeed = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//min acc
|
|
|
|
|
@ -527,7 +527,7 @@ export function setMinAcc(min, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.minAcc = min;
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setMinAccCustom(val, nosave) {
|
|
|
|
|
@ -535,7 +535,7 @@ export function setMinAccCustom(val, nosave) {
|
|
|
|
|
val = 90;
|
|
|
|
|
}
|
|
|
|
|
config.minAccCustom = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//always show words history
|
|
|
|
|
@ -544,7 +544,7 @@ export function setAlwaysShowWordsHistory(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.alwaysShowWordsHistory = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleAlwaysShowWordsHistory() {
|
|
|
|
|
@ -553,14 +553,14 @@ export function toggleAlwaysShowWordsHistory() {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.alwaysShowWordsHistory = val;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//single list command line
|
|
|
|
|
export function setSingleListCommandLine(option, nosave) {
|
|
|
|
|
if (!option) option = "manual";
|
|
|
|
|
config.singleListCommandLine = option;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//show all lines
|
|
|
|
|
@ -571,7 +571,7 @@ export function toggleShowAllLines() {
|
|
|
|
|
}
|
|
|
|
|
config.showAllLines = sal;
|
|
|
|
|
TestLogic.restart();
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setShowAllLines(sal, nosave) {
|
|
|
|
|
@ -580,7 +580,7 @@ export function setShowAllLines(sal, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.showAllLines = sal;
|
|
|
|
|
if (!nosave) {
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
TestLogic.restart();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -592,7 +592,7 @@ export function toggleQuickEnd() {
|
|
|
|
|
qe = false;
|
|
|
|
|
}
|
|
|
|
|
config.quickEnd = qe;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setQuickEnd(qe, nosave) {
|
|
|
|
|
@ -600,7 +600,7 @@ export function setQuickEnd(qe, nosave) {
|
|
|
|
|
qe = false;
|
|
|
|
|
}
|
|
|
|
|
config.quickEnd = qe;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setEnableAds(val, nosave) {
|
|
|
|
|
@ -608,7 +608,7 @@ export function setEnableAds(val, nosave) {
|
|
|
|
|
val = "off";
|
|
|
|
|
}
|
|
|
|
|
config.enableAds = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setRepeatQuotes(val, nosave) {
|
|
|
|
|
@ -616,7 +616,7 @@ export function setRepeatQuotes(val, nosave) {
|
|
|
|
|
val = "off";
|
|
|
|
|
}
|
|
|
|
|
config.repeatQuotes = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//flip colors
|
|
|
|
|
@ -626,13 +626,13 @@ export function setFlipTestColors(flip, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.flipTestColors = flip;
|
|
|
|
|
TestUI.flipColors(flip);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleFlipTestColors() {
|
|
|
|
|
config.flipTestColors = !config.flipTestColors;
|
|
|
|
|
TestUI.flipColors(config.flipTestColors);
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//extra color
|
|
|
|
|
@ -642,13 +642,13 @@ export function setColorfulMode(extra, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.colorfulMode = extra;
|
|
|
|
|
TestUI.colorful(extra);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleColorfulMode() {
|
|
|
|
|
config.colorfulMode = !config.colorfulMode;
|
|
|
|
|
TestUI.colorful(config.colorfulMode);
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//strict space
|
|
|
|
|
@ -657,12 +657,12 @@ export function setStrictSpace(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.strictSpace = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleStrictSpace() {
|
|
|
|
|
config.strictSpace = !config.strictSpace;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//opposite shift space
|
|
|
|
|
@ -671,7 +671,7 @@ export function setOppositeShiftMode(val, nosave) {
|
|
|
|
|
val = "off";
|
|
|
|
|
}
|
|
|
|
|
config.oppositeShiftMode = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setPageWidth(val, nosave) {
|
|
|
|
|
@ -687,7 +687,7 @@ export function setPageWidth(val, nosave) {
|
|
|
|
|
if (val !== "100") {
|
|
|
|
|
$("#centerContent").addClass("wide" + val);
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCaretStyle(caretStyle, nosave) {
|
|
|
|
|
@ -717,7 +717,7 @@ export function setCaretStyle(caretStyle, nosave) {
|
|
|
|
|
} else if (caretStyle == "banana") {
|
|
|
|
|
$("#caret").addClass("banana");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setPaceCaretStyle(caretStyle, nosave) {
|
|
|
|
|
@ -742,7 +742,7 @@ export function setPaceCaretStyle(caretStyle, nosave) {
|
|
|
|
|
} else if (caretStyle == "underline") {
|
|
|
|
|
$("#paceCaret").addClass("underline");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setShowTimerProgress(timer, nosave) {
|
|
|
|
|
@ -755,7 +755,7 @@ export function setShowTimerProgress(timer, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
TimerProgress.hide();
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleShowTimerProgress() {
|
|
|
|
|
@ -765,7 +765,7 @@ export function toggleShowTimerProgress() {
|
|
|
|
|
} else {
|
|
|
|
|
TimerProgress.hide();
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setShowLiveWpm(live, nosave) {
|
|
|
|
|
@ -778,7 +778,7 @@ export function setShowLiveWpm(live, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
LiveWpm.hide();
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleShowLiveWpm() {
|
|
|
|
|
@ -788,7 +788,7 @@ export function toggleShowLiveWpm() {
|
|
|
|
|
} else {
|
|
|
|
|
LiveWpm.hide();
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setShowLiveAcc(live, nosave) {
|
|
|
|
|
@ -801,7 +801,7 @@ export function setShowLiveAcc(live, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
LiveAcc.hide();
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleLiveAcc() {
|
|
|
|
|
@ -811,7 +811,7 @@ export function toggleLiveAcc() {
|
|
|
|
|
} else {
|
|
|
|
|
LiveAcc.hide();
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setHighlightMode(mode, nosave) {
|
|
|
|
|
@ -829,7 +829,7 @@ export function setHighlightMode(mode, nosave) {
|
|
|
|
|
mode = "letter";
|
|
|
|
|
}
|
|
|
|
|
config.highlightMode = mode;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setHideExtraLetters(val, nosave) {
|
|
|
|
|
@ -837,12 +837,12 @@ export function setHideExtraLetters(val, nosave) {
|
|
|
|
|
val = false;
|
|
|
|
|
}
|
|
|
|
|
config.hideExtraLetters = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleHideExtraLetters() {
|
|
|
|
|
config.hideExtraLetters = !config.hideExtraLetters;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setTimerStyle(style, nosave) {
|
|
|
|
|
@ -850,7 +850,7 @@ export function setTimerStyle(style, nosave) {
|
|
|
|
|
style = "mini";
|
|
|
|
|
}
|
|
|
|
|
config.timerStyle = style;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setTimerColor(color, nosave) {
|
|
|
|
|
@ -892,14 +892,14 @@ export function setTimerColor(color, nosave) {
|
|
|
|
|
$("#miniTimerAndLiveWpm").addClass("timerText");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
export function setTimerOpacity(opacity, nosave) {
|
|
|
|
|
if (opacity == null || opacity == undefined) {
|
|
|
|
|
opacity = 0.25;
|
|
|
|
|
}
|
|
|
|
|
config.timerOpacity = opacity;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//key tips
|
|
|
|
|
@ -910,7 +910,7 @@ export function setKeyTips(keyTips, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
$("#bottom .keyTips").addClass("hidden");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleKeyTips() {
|
|
|
|
|
@ -920,7 +920,7 @@ export function toggleKeyTips() {
|
|
|
|
|
} else {
|
|
|
|
|
$("#bottom .keyTips").addClass("hidden");
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//mode
|
|
|
|
|
@ -938,7 +938,7 @@ export function setTimeConfig(time, nosave) {
|
|
|
|
|
$("#top .config .time .text-button[timeConfig='" + time + "']").addClass(
|
|
|
|
|
"active"
|
|
|
|
|
);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//quote length
|
|
|
|
|
@ -966,7 +966,7 @@ export function setQuoteLength(len, nosave, multipleMode) {
|
|
|
|
|
"#top .config .quoteLength .text-button[quoteLength='" + ql + "']"
|
|
|
|
|
).addClass("active");
|
|
|
|
|
});
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setWordCount(wordCount, nosave) {
|
|
|
|
|
@ -983,13 +983,13 @@ export function setWordCount(wordCount, nosave) {
|
|
|
|
|
$(
|
|
|
|
|
"#top .config .wordCount .text-button[wordCount='" + wordCount + "']"
|
|
|
|
|
).addClass("active");
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//caret
|
|
|
|
|
export function setSmoothCaret(mode, nosave) {
|
|
|
|
|
config.smoothCaret = mode;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
if (mode) {
|
|
|
|
|
$("#caret").css("animation-name", "caretFlashSmooth");
|
|
|
|
|
} else {
|
|
|
|
|
@ -999,7 +999,7 @@ export function setSmoothCaret(mode, nosave) {
|
|
|
|
|
|
|
|
|
|
export function toggleSmoothCaret() {
|
|
|
|
|
config.smoothCaret = !config.smoothCaret;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
if (config.smoothCaret) {
|
|
|
|
|
$("#caret").css("animation-name", "caretFlashSmooth");
|
|
|
|
|
} else {
|
|
|
|
|
@ -1010,23 +1010,23 @@ export function toggleSmoothCaret() {
|
|
|
|
|
//startgraphsatzero
|
|
|
|
|
export function toggleStartGraphsAtZero() {
|
|
|
|
|
config.startGraphsAtZero = !config.startGraphsAtZero;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setStartGraphsAtZero(mode, nosave) {
|
|
|
|
|
config.startGraphsAtZero = mode;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//linescroll
|
|
|
|
|
export function setSmoothLineScroll(mode, nosave) {
|
|
|
|
|
config.smoothLineScroll = mode;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleSmoothLineScroll() {
|
|
|
|
|
config.smoothLineScroll = !config.smoothLineScroll;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//quick tab
|
|
|
|
|
@ -1043,7 +1043,7 @@ export function setQuickTabMode(mode, nosave) {
|
|
|
|
|
$("#bottom .keyTips").html(`<key>tab</key> - restart test<br>
|
|
|
|
|
<key>esc</key> - command line`);
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleQuickTabMode() {
|
|
|
|
|
@ -1059,7 +1059,7 @@ export function toggleQuickTabMode() {
|
|
|
|
|
$("#bottom .keyTips").html(`<key>tab</key> - restart test<br>
|
|
|
|
|
<key>esc</key> - command line`);
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function previewFontFamily(font) {
|
|
|
|
|
@ -1098,7 +1098,7 @@ export function setFontFamily(font, nosave) {
|
|
|
|
|
'"' + font.replace(/_/g, " ") + '"'
|
|
|
|
|
);
|
|
|
|
|
ChartController.setDefaultFontFamily(font);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//freedom
|
|
|
|
|
@ -1110,7 +1110,7 @@ export function setFreedomMode(freedom, nosave) {
|
|
|
|
|
if (config.freedomMode && config.confidenceMode !== "off") {
|
|
|
|
|
config.confidenceMode = "off";
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleFreedomMode() {
|
|
|
|
|
@ -1118,7 +1118,7 @@ export function toggleFreedomMode() {
|
|
|
|
|
if (config.freedomMode && config.confidenceMode !== "off") {
|
|
|
|
|
config.confidenceMode = false;
|
|
|
|
|
}
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setConfidenceMode(cm, nosave) {
|
|
|
|
|
@ -1132,7 +1132,7 @@ export function setConfidenceMode(cm, nosave) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TestUI.updateModesNotice();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleIndicateTypos() {
|
|
|
|
|
@ -1141,7 +1141,7 @@ export function toggleIndicateTypos() {
|
|
|
|
|
it = false;
|
|
|
|
|
}
|
|
|
|
|
config.indicateTypos = it;
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setIndicateTypos(it, nosave) {
|
|
|
|
|
@ -1149,7 +1149,7 @@ export function setIndicateTypos(it, nosave) {
|
|
|
|
|
it = false;
|
|
|
|
|
}
|
|
|
|
|
config.indicateTypos = it;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCustomTheme(boolean, nosave) {
|
|
|
|
|
@ -1159,14 +1159,14 @@ export function setCustomTheme(boolean, nosave) {
|
|
|
|
|
} else if (!boolean && !nosave) {
|
|
|
|
|
ThemeController.set(config.theme);
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setTheme(name, nosave) {
|
|
|
|
|
config.theme = name;
|
|
|
|
|
setCustomTheme(false, true, true);
|
|
|
|
|
ThemeController.set(config.theme);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setRandomTheme(val, nosave) {
|
|
|
|
|
@ -1177,7 +1177,7 @@ export function setRandomTheme(val, nosave) {
|
|
|
|
|
ThemeController.clearRandom();
|
|
|
|
|
}
|
|
|
|
|
config.randomTheme = val;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleCustomTheme(nosave) {
|
|
|
|
|
@ -1188,7 +1188,7 @@ export function toggleCustomTheme(nosave) {
|
|
|
|
|
setCustomTheme(true);
|
|
|
|
|
ThemeController.set("custom");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCustomThemeColors(colors, nosave) {
|
|
|
|
|
@ -1197,7 +1197,7 @@ export function setCustomThemeColors(colors, nosave) {
|
|
|
|
|
// ThemeController.set("custom");
|
|
|
|
|
// applyCustomThemeColors();
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setLanguage(language, nosave) {
|
|
|
|
|
@ -1212,7 +1212,7 @@ export function setLanguage(language, nosave) {
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.log("Analytics unavailable");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleMonkey(nosave) {
|
|
|
|
|
@ -1222,7 +1222,7 @@ export function toggleMonkey(nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
$("#monkey").addClass("hidden");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setMonkey(monkey, nosave) {
|
|
|
|
|
@ -1235,7 +1235,7 @@ export function setMonkey(monkey, nosave) {
|
|
|
|
|
} else {
|
|
|
|
|
$("#monkey").addClass("hidden");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCapsLockBackspace(capsLockBackspace, nosave) {
|
|
|
|
|
@ -1243,7 +1243,7 @@ export function setCapsLockBackspace(capsLockBackspace, nosave) {
|
|
|
|
|
capsLockBackspace = false;
|
|
|
|
|
}
|
|
|
|
|
config.capsLockBackspace = capsLockBackspace;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function toggleCapsLockBackspace() {
|
|
|
|
|
@ -1258,7 +1258,7 @@ export function setKeymapMode(mode, nosave) {
|
|
|
|
|
$(".keymap-key").attr("style", "");
|
|
|
|
|
config.keymapMode = mode;
|
|
|
|
|
if (!nosave) TestLogic.restart(false, nosave);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setKeymapLegendStyle(style, nosave) {
|
|
|
|
|
@ -1286,7 +1286,7 @@ export function setKeymapLegendStyle(style, nosave) {
|
|
|
|
|
// Update and save to cookie for persistence
|
|
|
|
|
$(".keymapLegendStyle").addClass(style);
|
|
|
|
|
config.keymapLegendStyle = style;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setKeymapStyle(style, nosave) {
|
|
|
|
|
@ -1297,7 +1297,7 @@ export function setKeymapStyle(style, nosave) {
|
|
|
|
|
|
|
|
|
|
$(".keymap").addClass(style);
|
|
|
|
|
config.keymapStyle = style;
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setKeymapLayout(layout, nosave) {
|
|
|
|
|
@ -1306,7 +1306,7 @@ export function setKeymapLayout(layout, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.keymapLayout = layout;
|
|
|
|
|
Keymap.refreshKeys(layout, setKeymapLayout);
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setLayout(layout, nosave) {
|
|
|
|
|
@ -1318,7 +1318,7 @@ export function setLayout(layout, nosave) {
|
|
|
|
|
if (config.keymapLayout === "overrideSync") {
|
|
|
|
|
Keymap.refreshKeys(config.keymapLayout, setKeymapLayout);
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// export function setSavedLayout(layout, nosave) {
|
|
|
|
|
@ -1365,7 +1365,7 @@ export function setFontSize(fontSize, nosave) {
|
|
|
|
|
$("#caret, #paceCaret").addClass("size3");
|
|
|
|
|
$("#miniTimerAndLiveWpm").addClass("size3");
|
|
|
|
|
}
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCustomBackground(value, nosave) {
|
|
|
|
|
@ -1384,7 +1384,7 @@ export function setCustomBackground(value, nosave) {
|
|
|
|
|
(command) => command.id == "changeCustomBackground"
|
|
|
|
|
)[0].defaultValue = value;
|
|
|
|
|
ThemeController.applyCustomBackground();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
} else {
|
|
|
|
|
Notifications.add("Invalid custom background URL", 0);
|
|
|
|
|
}
|
|
|
|
|
@ -1396,14 +1396,14 @@ export function setCustomBackgroundSize(value, nosave) {
|
|
|
|
|
}
|
|
|
|
|
config.customBackgroundSize = value;
|
|
|
|
|
ThemeController.applyCustomBackgroundSize();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setCustomBackgroundFilter(array, nosave) {
|
|
|
|
|
config.customBackgroundFilter = array;
|
|
|
|
|
BackgroundFilter.loadConfig(config.customBackgroundFilter);
|
|
|
|
|
BackgroundFilter.apply();
|
|
|
|
|
if (!nosave) saveToCookie();
|
|
|
|
|
if (!nosave) saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function apply(configObj) {
|
|
|
|
|
@ -1676,24 +1676,24 @@ export function reset() {
|
|
|
|
|
...defaultConfig,
|
|
|
|
|
};
|
|
|
|
|
apply();
|
|
|
|
|
saveToCookie();
|
|
|
|
|
saveToLocalStorage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function loadFromCookie() {
|
|
|
|
|
console.log("loading cookie config");
|
|
|
|
|
export function loadFromLocalStorage() {
|
|
|
|
|
console.log("loading localStorage config");
|
|
|
|
|
// let newConfig = $.cookie("config");
|
|
|
|
|
let newConfig = Misc.getCookie("config");
|
|
|
|
|
if (newConfig !== undefined && newConfig !== "") {
|
|
|
|
|
let newConfig = window.localStorage.getItem("config");
|
|
|
|
|
if (newConfig !== undefined && newConfig !== null && newConfig !== "") {
|
|
|
|
|
try {
|
|
|
|
|
newConfig = JSON.parse(newConfig);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
newConfig = {};
|
|
|
|
|
}
|
|
|
|
|
apply(newConfig);
|
|
|
|
|
console.log("applying cookie config");
|
|
|
|
|
cookieConfig = newConfig;
|
|
|
|
|
saveToCookie(true);
|
|
|
|
|
console.log("saving cookie config");
|
|
|
|
|
console.log("applying localStorage config");
|
|
|
|
|
localStorageConfig = newConfig;
|
|
|
|
|
saveToLocalStorage(true);
|
|
|
|
|
console.log("saving localStorage config");
|
|
|
|
|
}
|
|
|
|
|
TestLogic.restart(false, true);
|
|
|
|
|
loadDone();
|
|
|
|
|
|