From 59061692599a7a84feb7d3ab32740bdf97069ef9 Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 15:44:24 -0500 Subject: [PATCH 1/8] Add UI sliders for new options --- public/popup.css | 6 +++++ public/popup.html | 34 ++++++++++++++++++++++++++++ src/background/chrome/background.ts | 1 + src/background/edge/background.ts | 1 + src/background/firefox/background.ts | 1 + src/background/opera/background.ts | 1 + src/content.ts | 6 ++++- src/globals/config.ts | 1 + 8 files changed, 50 insertions(+), 1 deletion(-) diff --git a/public/popup.css b/public/popup.css index 2a08c5c..eabb555 100644 --- a/public/popup.css +++ b/public/popup.css @@ -224,3 +224,9 @@ h2 { min-height: 0; height: 0.8em; } + +.header-toggle { + display: grid; + grid-template-columns: 260px 100px; + align-items: center; +} diff --git a/public/popup.html b/public/popup.html index 84b9025..9784137 100644 --- a/public/popup.html +++ b/public/popup.html @@ -62,6 +62,40 @@

Breakout characters

+
+
+

Auto-parenthesize functions

+
+ + +
+
+
+
+

Enable shortcuts in subscripts

+
+ + +
+

diff --git a/src/background/chrome/background.ts b/src/background/chrome/background.ts index c1da6e2..be9c932 100644 --- a/src/background/chrome/background.ts +++ b/src/background/chrome/background.ts @@ -7,6 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", + autoParenthesizeFunctions: false, }); }); diff --git a/src/background/edge/background.ts b/src/background/edge/background.ts index c1da6e2..be9c932 100644 --- a/src/background/edge/background.ts +++ b/src/background/edge/background.ts @@ -7,6 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", + autoParenthesizeFunctions: false, }); }); diff --git a/src/background/firefox/background.ts b/src/background/firefox/background.ts index a8d1d5b..c172d6e 100644 --- a/src/background/firefox/background.ts +++ b/src/background/firefox/background.ts @@ -7,6 +7,7 @@ browser.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", + autoParenthesizeFunctions: false, }); }); diff --git a/src/background/opera/background.ts b/src/background/opera/background.ts index c1da6e2..be9c932 100644 --- a/src/background/opera/background.ts +++ b/src/background/opera/background.ts @@ -7,6 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", + autoParenthesizeFunctions: false, }); }); diff --git a/src/content.ts b/src/content.ts index 2891e5a..e5729d3 100644 --- a/src/content.ts +++ b/src/content.ts @@ -9,7 +9,11 @@ declare const cloneInto: ((toClone: MathQuillConfig, context: any) => MathQuillC async function updateConfig(changes?: browser.storage.ChangeDict) { let config: MathQuillConfig; if (typeof changes === "undefined") { - config = await browser.storage.local.get(["autoCommands", "charsThatBreakOutOfSupSub"]); + config = await browser.storage.local.get([ + "autoCommands", + "charsThatBreakOutOfSupSub", + "autoParenthesizeFunctions", + ]); } else { config = {}; Object.keys(changes).forEach((configOption) => (config[configOption] = changes[configOption].newValue)); diff --git a/src/globals/config.ts b/src/globals/config.ts index 93c579a..08087c9 100644 --- a/src/globals/config.ts +++ b/src/globals/config.ts @@ -1,4 +1,5 @@ export interface MathQuillConfig { autoCommands?: string; charsThatBreakOutOfSupSub?: string; + autoParenthesizeFunctions?: string; } From 93acf5acaa29b4fde670c3f822c91a205d98c6aa Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 17:01:06 -0500 Subject: [PATCH 2/8] Add functionality for auto-parenthesizing --- public/popup.html | 5 +- src/background/chrome/background.ts | 2 +- src/background/edge/background.ts | 2 +- src/background/firefox/background.ts | 2 +- src/background/opera/background.ts | 2 +- src/content.ts | 2 +- src/globals/config.ts | 3 +- src/popup.ts | 82 +++++++++++++++------------- src/script.ts | 29 ++++++++++ 9 files changed, 83 insertions(+), 46 deletions(-) diff --git a/public/popup.html b/public/popup.html index 9784137..70afa9c 100644 --- a/public/popup.html +++ b/public/popup.html @@ -63,7 +63,7 @@

Breakout characters


-
+

Auto-parenthesize functions

Auto-parenthesize functions

-
+

Enable shortcuts in subscripts

Enable shortcuts in subscripts

- diff --git a/src/background/chrome/background.ts b/src/background/chrome/background.ts index be9c932..c249bf6 100644 --- a/src/background/chrome/background.ts +++ b/src/background/chrome/background.ts @@ -7,7 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", - autoParenthesizeFunctions: false, + isAutoParenEnabled: false, }); }); diff --git a/src/background/edge/background.ts b/src/background/edge/background.ts index be9c932..c249bf6 100644 --- a/src/background/edge/background.ts +++ b/src/background/edge/background.ts @@ -7,7 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", - autoParenthesizeFunctions: false, + isAutoParenEnabled: false, }); }); diff --git a/src/background/firefox/background.ts b/src/background/firefox/background.ts index c172d6e..469e900 100644 --- a/src/background/firefox/background.ts +++ b/src/background/firefox/background.ts @@ -7,7 +7,7 @@ browser.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", - autoParenthesizeFunctions: false, + isAutoParenEnabled: false, }); }); diff --git a/src/background/opera/background.ts b/src/background/opera/background.ts index be9c932..c249bf6 100644 --- a/src/background/opera/background.ts +++ b/src/background/opera/background.ts @@ -7,7 +7,7 @@ chrome.runtime.onInstalled.addListener(function () { autoCommands: "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", - autoParenthesizeFunctions: false, + isAutoParenEnabled: false, }); }); diff --git a/src/content.ts b/src/content.ts index e5729d3..00695dd 100644 --- a/src/content.ts +++ b/src/content.ts @@ -12,7 +12,7 @@ async function updateConfig(changes?: browser.storage.ChangeDict) { config = await browser.storage.local.get([ "autoCommands", "charsThatBreakOutOfSupSub", - "autoParenthesizeFunctions", + "isAutoParenEnabled", ]); } else { config = {}; diff --git a/src/globals/config.ts b/src/globals/config.ts index 08087c9..0179298 100644 --- a/src/globals/config.ts +++ b/src/globals/config.ts @@ -1,5 +1,6 @@ export interface MathQuillConfig { autoCommands?: string; charsThatBreakOutOfSupSub?: string; - autoParenthesizeFunctions?: string; + isAutoParenEnabled?: boolean; + autoParenthesizedFunctions?: string; } diff --git a/src/popup.ts b/src/popup.ts index c7acfbf..87fbf6b 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -1,40 +1,50 @@ import { desmosDefualtAutoCommands, basicAutoCommands, advancedAutoCommands } from "./utils/autoCommands"; import { massSet, storeConfig, populateGrid } from "./utils/utils"; -const setToDefault = document.getElementById("set-to-default"); -const setToDesmosDefault = document.getElementById("set-to-desmos-default"); -const breakoutChars = document.querySelector("#breakout textarea"); -const setChars = document.getElementById("set-chars"); - -browser.storage.local - .get("charsThatBreakOutOfSupSub") - .then((stored) => (breakoutChars.value = stored.charsThatBreakOutOfSupSub.toString())); - -setToDefault.onclick = function () { - massSet( - Array.from(document.querySelectorAll("#desmos-default .latex-item, #basic .latex-item")) - .map((item) => item.id) - .filter(function (item) { - return item !== "ge" && item !== "le" && item !== "ne" && item !== "pm" && item !== "mp"; - }), - "autoCommands" - ); -}; - -setToDesmosDefault.onclick = function () { - massSet( - Array.from(document.querySelectorAll("#desmos-default .latex-item")).map((item) => item.id), - "autoCommands" - ); -}; - -setChars.onclick = function () { - browser.storage.local.set({ charsThatBreakOutOfSupSub: breakoutChars.value }); -}; - -// Add all the dynamically loaded nodes to the DOM using templates and give -// sliders their funcionality -async function initialize() { +document.addEventListener("DOMContentLoaded", async () => { + const setToDefault = document.getElementById("set-to-default"); + const setToDesmosDefault = document.getElementById("set-to-desmos-default"); + + setToDefault.onclick = function () { + massSet( + Array.from(document.querySelectorAll("#desmos-default .latex-item, #basic .latex-item")) + .map((item) => item.id) + .filter(function (item) { + return item !== "ge" && item !== "le" && item !== "ne" && item !== "pm" && item !== "mp"; + }), + "autoCommands" + ); + }; + + setToDesmosDefault.onclick = function () { + massSet( + Array.from(document.querySelectorAll("#desmos-default .latex-item")).map((item) => item.id), + "autoCommands" + ); + }; + + const breakoutChars = document.querySelector("#breakout textarea"); + const setChars = document.getElementById("set-chars"); + + browser.storage.local + .get("charsThatBreakOutOfSupSub") + .then((stored) => (breakoutChars.value = stored.charsThatBreakOutOfSupSub.toString())); + + setChars.onclick = function () { + browser.storage.local.set({ charsThatBreakOutOfSupSub: breakoutChars.value }); + }; + + const autoParen = document.querySelector("#auto-paren .onoffswitch .onoffswitch-checkbox"); + autoParen.addEventListener("click", async () => { + const stored = await browser.storage.local.get("isAutoParenEnabled"); + browser.storage.local.set({ isAutoParenEnabled: !stored.isAutoParenEnabled }); + }); + browser.storage.local.get("isAutoParenEnabled").then((stored) => { + autoParen.checked = stored.isAutoParenEnabled as boolean; + }); + + // Add all the dynamically loaded nodes to the DOM using templates and give + // sliders their funcionality const { autoCommands }: { autoCommands: string } = await browser.storage.local.get("autoCommands"); populateGrid("grid-item-template", "desmos-default", desmosDefualtAutoCommands, autoCommands); populateGrid("grid-item-template", "basic", basicAutoCommands, autoCommands); @@ -44,6 +54,4 @@ async function initialize() { document.querySelectorAll(".latex-item").forEach(function (item) { item.querySelector(".onoffswitch-checkbox").addEventListener("click", storeConfig); }); -} - -document.addEventListener("DOMContentLoaded", initialize); +}); diff --git a/src/script.ts b/src/script.ts index a386bf0..15ff257 100644 --- a/src/script.ts +++ b/src/script.ts @@ -6,9 +6,38 @@ import { MathQuillConfig } from "./globals/config"; const handler = (({ detail }: CustomEvent) => { // Have to wait for all the preload modifications to finish pollForValue(() => window.Desmos?.MathQuill?.config).then(() => { + // detail.isAutoParenEnabled could be undefined. We have to + // check if it is strictly true or false. Stay classy, JavaScript. + if (detail.isAutoParenEnabled === true) { + detail.autoParenthesizedFunctions = getAutoOperators(); + } else if (detail.isAutoParenEnabled === false) { + // The MathQuill API requires a space-delimited list + // of only letters. An empty string will throw an error. + // So we set the autoParenthesizedFunctions to this + // placeholder that is not even a function anyway (and + // is unlikely to ever be made one). + detail.autoParenthesizedFunctions = "THISISNOTAFUNCTION"; + } + delete detail.isAutoParenEnabled; window.Desmos.MathQuill.config(detail); document.removeEventListener("send-config", handler); }); }) as EventListener; document.addEventListener("send-config", handler); + +function getAutoOperators() { + // Get all the autoOperatorNames in the first editable field in the expression + // window. Then, filter out the ones that are not only letters, in order to comply + // with the MathQuill API. Then return the string of all these names. + // Another approach would be use window.require("main/mathquill-operators").getAutoOperators() + // and then remove the '|'s included in that string, but those operators returned by the + // require are the Desmos defaults. It's possible that someone might override those defaults + // (e.g. through DesModder). But then again, someone overriding the defaults might just do + // it by overriding the main/mathquill-operators module anyway 🤷. + return Object.keys( + window.Desmos.MathQuill(document.querySelector(".dcg-mq-editable-field")).__options.autoOperatorNames + ) + .filter((opName) => /^[a-zA-Z]+$/.test(opName)) + .join(" "); +} From b30b850bf96060634073419c97a5f1999af0ebc1 Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 17:07:56 -0500 Subject: [PATCH 3/8] Fix IDs in popup HTML --- public/popup.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/popup.html b/public/popup.html index 70afa9c..5af8d42 100644 --- a/public/popup.html +++ b/public/popup.html @@ -70,10 +70,10 @@

Auto-parenthesize functions

type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" - id="switch-#shortcut#" + id="switch-auto-paren" tabindex="0" /> -

+ diff --git a/src/background/chrome/background.ts b/src/background/chrome/background.ts index c249bf6..874887b 100644 --- a/src/background/chrome/background.ts +++ b/src/background/chrome/background.ts @@ -8,6 +8,7 @@ chrome.runtime.onInstalled.addListener(function () { "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", isAutoParenEnabled: false, + disableAutoSubstitutionInSubscripts: true, }); }); diff --git a/src/background/edge/background.ts b/src/background/edge/background.ts index c249bf6..874887b 100644 --- a/src/background/edge/background.ts +++ b/src/background/edge/background.ts @@ -8,6 +8,7 @@ chrome.runtime.onInstalled.addListener(function () { "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", isAutoParenEnabled: false, + disableAutoSubstitutionInSubscripts: true, }); }); diff --git a/src/background/firefox/background.ts b/src/background/firefox/background.ts index 469e900..21d88b8 100644 --- a/src/background/firefox/background.ts +++ b/src/background/firefox/background.ts @@ -8,6 +8,7 @@ browser.runtime.onInstalled.addListener(function () { "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", isAutoParenEnabled: false, + disableAutoSubstitutionInSubscripts: true, }); }); diff --git a/src/background/opera/background.ts b/src/background/opera/background.ts index c249bf6..874887b 100644 --- a/src/background/opera/background.ts +++ b/src/background/opera/background.ts @@ -8,6 +8,7 @@ chrome.runtime.onInstalled.addListener(function () { "keepmeKEEPME alpha beta sqrt theta Theta phi Phi pi Pi tau nthroot cbrt sum prod int ans percent infinity infty gamma Gamma delta Delta epsilon epsiv zeta eta kappa lambda Lambda mu xi Xi rho sigma Sigma chi Psi omega Omega digamma iota nu upsilon Upsilon Psi square mid parallel nparallel perp times div approx", charsThatBreakOutOfSupSub: "+-=<>*", isAutoParenEnabled: false, + disableAutoSubstitutionInSubscripts: true, }); }); diff --git a/src/content.ts b/src/content.ts index 00695dd..4b849bb 100644 --- a/src/content.ts +++ b/src/content.ts @@ -13,6 +13,7 @@ async function updateConfig(changes?: browser.storage.ChangeDict) { "autoCommands", "charsThatBreakOutOfSupSub", "isAutoParenEnabled", + "disableAutoSubstitutionInSubscripts" ]); } else { config = {}; diff --git a/src/globals/config.ts b/src/globals/config.ts index 0179298..4759182 100644 --- a/src/globals/config.ts +++ b/src/globals/config.ts @@ -3,4 +3,5 @@ export interface MathQuillConfig { charsThatBreakOutOfSupSub?: string; isAutoParenEnabled?: boolean; autoParenthesizedFunctions?: string; + disableAutoSubstitutionInSubscripts?: string; } diff --git a/src/popup.ts b/src/popup.ts index 87fbf6b..48ae8f3 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -43,6 +43,20 @@ document.addEventListener("DOMContentLoaded", async () => { autoParen.checked = stored.isAutoParenEnabled as boolean; }); + const subscriptShortcuts = document.querySelector( + "#shortcuts-in-subscripts .onoffswitch .onoffswitch-checkbox" + ); + subscriptShortcuts.addEventListener("click", async () => { + const stored = await browser.storage.local.get("disableAutoSubstitutionInSubscripts"); + browser.storage.local.set({ disableAutoSubstitutionInSubscripts: !stored.disableAutoSubstitutionInSubscripts }); + }); + browser.storage.local.get("disableAutoSubstitutionInSubscripts").then((stored) => { + // Note that in the UI we represent the option as "Enable shortcuts in subscripts" + // (toggle on means shortcuts enabled), while the MathQuill API has it reversed + // (disableAutoSubstitutionInSubscripts === true means shortcuts disabled). + subscriptShortcuts.checked = !stored.disableAutoSubstitutionInSubscripts as boolean; + }); + // Add all the dynamically loaded nodes to the DOM using templates and give // sliders their funcionality const { autoCommands }: { autoCommands: string } = await browser.storage.local.get("autoCommands"); From 4b0c0e73b21912a8374bec1289da54436a544f53 Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 18:38:10 -0500 Subject: [PATCH 5/8] Remove rimraf when in dev builds --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 034a3e0..0f36789 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,13 @@ "code:prettier": "prettier --write '**/**/*.{ts,js,html,css,json}'", "code:check": "./node_modules/.bin/tsc --noEmit && prettier --check '**/**/*.{ts,js,html,css,json}' && eslint '**/**/*.ts'", "app:chrome": "rimraf dist && cross-env BROWSER='chrome' webpack --config webpack/webpack.prod.js", - "app:chrome-dev": "rimraf dist && cross-env BROWSER='chrome' webpack --config webpack/webpack.dev.js --watch", + "app:chrome-dev": "cross-env BROWSER='chrome' webpack --config webpack/webpack.dev.js --watch", "app:edge": "rimraf dist && cross-env BROWSER='edge' webpack --config webpack/webpack.prod.js", - "app:edge-dev": "rimraf dist && cross-env BROWSER='edge' webpack --config webpack/webpack.dev.js --watch", + "app:edge-dev": "cross-env BROWSER='edge' webpack --config webpack/webpack.dev.js --watch", "app:opera": "rimraf dist && cross-env BROWSER='opera' webpack --config webpack/webpack.prod.js", - "app:opera-dev": "rimraf dist && cross-env BROWSER='opera' webpack --config webpack/webpack.dev.js --watch", + "app:opera-dev": "cross-env BROWSER='opera' webpack --config webpack/webpack.dev.js --watch", "app:firefox": "rimraf dist && cross-env BROWSER='firefox' webpack --config webpack/webpack.prod.js", - "app:firefox-dev": "rimraf dist && cross-env BROWSER='firefox' webpack --config webpack/webpack.dev.js --watch" + "app:firefox-dev": "cross-env BROWSER='firefox' webpack --config webpack/webpack.dev.js --watch" }, "repository": { "type": "git", From 682a2ead54c99cab297695b088766c28fb4681df Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 18:51:10 -0500 Subject: [PATCH 6/8] Update set to default functionality --- src/popup.ts | 56 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/src/popup.ts b/src/popup.ts index 48ae8f3..ad5fbfe 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -2,27 +2,6 @@ import { desmosDefualtAutoCommands, basicAutoCommands, advancedAutoCommands } fr import { massSet, storeConfig, populateGrid } from "./utils/utils"; document.addEventListener("DOMContentLoaded", async () => { - const setToDefault = document.getElementById("set-to-default"); - const setToDesmosDefault = document.getElementById("set-to-desmos-default"); - - setToDefault.onclick = function () { - massSet( - Array.from(document.querySelectorAll("#desmos-default .latex-item, #basic .latex-item")) - .map((item) => item.id) - .filter(function (item) { - return item !== "ge" && item !== "le" && item !== "ne" && item !== "pm" && item !== "mp"; - }), - "autoCommands" - ); - }; - - setToDesmosDefault.onclick = function () { - massSet( - Array.from(document.querySelectorAll("#desmos-default .latex-item")).map((item) => item.id), - "autoCommands" - ); - }; - const breakoutChars = document.querySelector("#breakout textarea"); const setChars = document.getElementById("set-chars"); @@ -57,6 +36,41 @@ document.addEventListener("DOMContentLoaded", async () => { subscriptShortcuts.checked = !stored.disableAutoSubstitutionInSubscripts as boolean; }); + const setToDefault = document.getElementById("set-to-default"); + const setToDesmosDefault = document.getElementById("set-to-desmos-default"); + + const setToDefaultCommon = () => { + if (autoParen.checked) { + autoParen.click(); + } + if (subscriptShortcuts.checked) { + subscriptShortcuts.click(); + } + breakoutChars.value = "+-=<>*"; + setChars.click(); + + }; + + setToDefault.onclick = function () { + massSet( + Array.from(document.querySelectorAll("#desmos-default .latex-item, #basic .latex-item")) + .map((item) => item.id) + .filter(function (item) { + return item !== "ge" && item !== "le" && item !== "ne" && item !== "pm" && item !== "mp"; + }), + "autoCommands" + ); + setToDefaultCommon(); + }; + + setToDesmosDefault.onclick = function () { + massSet( + Array.from(document.querySelectorAll("#desmos-default .latex-item")).map((item) => item.id), + "autoCommands" + ); + setToDefaultCommon(); + }; + // Add all the dynamically loaded nodes to the DOM using templates and give // sliders their funcionality const { autoCommands }: { autoCommands: string } = await browser.storage.local.get("autoCommands"); From f05a09d70b37013b1bbd74835ea25eeea1362b82 Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 20:36:07 -0500 Subject: [PATCH 7/8] Run prettier --- src/content.ts | 2 +- src/popup.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/content.ts b/src/content.ts index 4b849bb..e0a00cf 100644 --- a/src/content.ts +++ b/src/content.ts @@ -13,7 +13,7 @@ async function updateConfig(changes?: browser.storage.ChangeDict) { "autoCommands", "charsThatBreakOutOfSupSub", "isAutoParenEnabled", - "disableAutoSubstitutionInSubscripts" + "disableAutoSubstitutionInSubscripts", ]); } else { config = {}; diff --git a/src/popup.ts b/src/popup.ts index ad5fbfe..31d3e21 100644 --- a/src/popup.ts +++ b/src/popup.ts @@ -48,7 +48,6 @@ document.addEventListener("DOMContentLoaded", async () => { } breakoutChars.value = "+-=<>*"; setChars.click(); - }; setToDefault.onclick = function () { From d62ad402e2ce391eac29fdb5ba8c6e9b1439ac8a Mon Sep 17 00:00:00 2001 From: SinclaM Date: Tue, 19 Jul 2022 20:40:22 -0500 Subject: [PATCH 8/8] Update manifests to 1.0.7 --- package-lock.json | 4 ++-- package.json | 2 +- public/chrome_manifest.json | 2 +- public/edge_manifest.json | 2 +- public/firefox_manifest.json | 2 +- public/opera_manifest.json | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index e959fba..e20323d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "desmos-unlocked", - "version": "1.0.6", + "version": "1.0.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "desmos-unlocked", - "version": "1.0.6", + "version": "1.0.7", "license": "MIT", "dependencies": { "git-hooks-plus": "^1.0.1", diff --git a/package.json b/package.json index 0f36789..1a0ce59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "desmos-unlocked", - "version": "1.0.6", + "version": "1.0.7", "description": "Browser extension for better user control of the Desmos graphing calculator configuration ", "main": "background.js", "scripts": { diff --git a/public/chrome_manifest.json b/public/chrome_manifest.json index a8ae77b..7ebd509 100644 --- a/public/chrome_manifest.json +++ b/public/chrome_manifest.json @@ -1,6 +1,6 @@ { "name": "Desmos Unlocked", - "version": "1.0.6", + "version": "1.0.7", "description": "Browser extension for better user control of the Desmos graphing calculator configuration", "permissions": ["storage", "declarativeNetRequest", "declarativeNetRequestWithHostAccess", "webRequest"], "manifest_version": 3, diff --git a/public/edge_manifest.json b/public/edge_manifest.json index a8ae77b..7ebd509 100644 --- a/public/edge_manifest.json +++ b/public/edge_manifest.json @@ -1,6 +1,6 @@ { "name": "Desmos Unlocked", - "version": "1.0.6", + "version": "1.0.7", "description": "Browser extension for better user control of the Desmos graphing calculator configuration", "permissions": ["storage", "declarativeNetRequest", "declarativeNetRequestWithHostAccess", "webRequest"], "manifest_version": 3, diff --git a/public/firefox_manifest.json b/public/firefox_manifest.json index 25359b9..c3aad97 100644 --- a/public/firefox_manifest.json +++ b/public/firefox_manifest.json @@ -1,6 +1,6 @@ { "name": "Desmos Unlocked", - "version": "1.0.6", + "version": "1.0.7", "description": "Browser extension for better user control of the Desmos graphing calculator configuration", "permissions": ["https://*.desmos.com/*", "storage", "webRequest", "webRequestBlocking"], "manifest_version": 2, diff --git a/public/opera_manifest.json b/public/opera_manifest.json index a8ae77b..7ebd509 100644 --- a/public/opera_manifest.json +++ b/public/opera_manifest.json @@ -1,6 +1,6 @@ { "name": "Desmos Unlocked", - "version": "1.0.6", + "version": "1.0.7", "description": "Browser extension for better user control of the Desmos graphing calculator configuration", "permissions": ["storage", "declarativeNetRequest", "declarativeNetRequestWithHostAccess", "webRequest"], "manifest_version": 3,