summaryrefslogtreecommitdiffstats
path: root/docusaurus/static/ajax/libs/wolfree/23.7.8/js
diff options
context:
space:
mode:
Diffstat (limited to 'docusaurus/static/ajax/libs/wolfree/23.7.8/js')
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/AJAX.js56
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/AppID.js57
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/Entrypoint.js26
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js69
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/Pods.js56
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js201
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js63
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/Preprocessor.js29
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/Processor.js54
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/SearchParams.js44
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/onload.js51
11 files changed, 0 insertions, 706 deletions
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AJAX.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AJAX.js
deleted file mode 100644
index 465787d..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AJAX.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import SearchParams from "./SearchParams.js";
-
-export default class AJAX {
- ajax = async ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- } = {}) => {
- try {
- const data = new SearchParams().getSearchParams({
- input,
- extraPodstates,
- i2d,
- });
-
- const options = {
- url: "https://api.wolframalpha.com/v2/query",
- dataType: "jsonp",
- traditional: true,
- data,
- };
-
- try {
- /**
- * https://www.npmjs.com/package/@types/jquery
- * @type {import('jQuery')}
- */
- const response = await jQuery.ajax(options);
- return (
- console.assert(response instanceof Object),
- console.assert(response.hasOwnProperty("queryresult")),
- { response }
- );
- } catch (error) {
- return (
- console.error(
- { error },
- "We encountered an issue while attempting to retrieve a response from the Wolfram Alpha API using the jQuery library."
- ),
- { error }
- );
- }
- } catch (error) {
- return console.error({ error }), { error };
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AppID.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AppID.js
deleted file mode 100644
index 070e4e1..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/AppID.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-// To generate a new AppID:
-// 1. Open Tor Browser and go to: https://products.wolframalpha.com/api/
-// 2. Click the orangish "Get API Access" button. You will go to: https://account.wolfram.com/login/oauth2/sign-in
-// 3. Click the reddish "Create one" hyperlink to create a new Wolfram ID. You will go to: https://account.wolfram.com/login/create
-// 4. Fill out the form using random alphanumeric characters.
-// 5. Click the reddish "Create Wolfram ID" button. You will go to: https://developer.wolframalpha.com/portal/myapps/index.html
-// 6. Click the orangish "Sign up to get your first AppID" button.
-// 7. Fill out the form using random alphanumeric characters.
-// 8. Click the orangish "Sign up" button.
-// 9. Click the orangish "Get an AppID" button.
-// 10. Fill out the form using random alphanumeric characters.
-// 11. Click the orangish "Get AppID" button.
-
-export default class AppID {
- appIDArray = Array();
-
- constructor(
- appIDArray = ["H9V325-HTALUWHKGK", "AKJTJT-LR5LL8WTG6", "LKY83U-XW6ATU9URU"]
- ) {
- (this.appIDArray = appIDArray),
- Array.from(this.appIDArray).forEach(
- (appID) => (
- console.assert(17 === appID.length),
- console.assert(/[0-9A-Z]{6}-[0-9A-Z]{10}/.test(appID))
- )
- );
- }
-
- getAppID = ({
- appID = this.appIDArray[this.getRandomInt() % this.appIDArray.length],
- } = {}) => {
- try {
- return appID;
- } catch (error) {
- return console.error({ error }), String();
- }
- };
-
- getRandomInt = ({
- randomInt = crypto.getRandomValues(new Uint32Array(1))[0],
- } = {}) => {
- try {
- return randomInt;
- } catch (error) {
- return console.error({ error }), Number();
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Entrypoint.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Entrypoint.js
deleted file mode 100644
index 0fe9d31..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Entrypoint.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import Processor from "./Processor.js";
-import Preprocessor from "./Preprocessor.js";
-import PostProcessor from "./PostProcessor.js";
-
-export default async ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
-} = {}) => {
- try {
- new Preprocessor().process();
- await new Processor().process({ input, i2d, extraPodstates });
- new PostProcessor().process({ input, i2d });
- } catch (error) {
- console.error({ error });
- }
-};
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js
deleted file mode 100644
index d5b45a6..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Placeholder.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-export default class Placeholder {
- className = "wolfree-placeholder";
-
- placeholderHTML = `
- <div class="${this.className}">
- <div>
- <div>
- <div><div></div></div>
- <div><div></div></div>
- <div><div></div></div>
- </div>
- </div>
- </div>
- `;
-
- insert = ({
- container = document.querySelector(
- "html > body > #__next > div > main > main > div:nth-of-type(1)"
- ),
- } = {}) => {
- try {
- return (
- container instanceof HTMLDivElement
- ? container.insertAdjacentHTML("afterend", this.placeholderHTML)
- : console.error({ container }),
- { container }
- );
- } catch (error) {
- return (
- console.error(
- { error },
- "Fail to insert the skeleton placeholder components."
- ),
- { error }
- );
- }
- };
-
- remove = ({
- allPlaceholders = document.querySelectorAll(
- `html > body > #__next > div > main > main > div.${this.className}`
- ),
- } = {}) => {
- try {
- return (
- console.assert(allPlaceholders.length === 1),
- allPlaceholders.forEach((placeholder) => placeholder.remove()),
- { allPlaceholders }
- );
- } catch (error) {
- return (
- console.error(
- { error },
- "Fail to remove the skeleton placeholder components."
- ),
- { error }
- );
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Pods.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Pods.js
deleted file mode 100644
index 7b31e48..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Pods.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-export default class Pods {
- insert = ({
- container = document.querySelector("main > div:nth-of-type(1)"),
- html = String(),
- } = {}) => {
- try {
- /**
- * https://www.npmjs.com/package/@types/dompurify
- * @type {import('DOMPurify')}
- */
- return (
- container instanceof HTMLDivElement
- ? container.insertAdjacentHTML(
- "afterend",
- globalThis.DOMPurify.sanitize(html)
- )
- : console.error({ container }),
- { container, html }
- );
- } catch (error) {
- return (
- console.error(
- { error },
- "Fail to insert the results of the calculation."
- ),
- { error }
- );
- }
- };
-
- remove = ({
- pods = document.querySelectorAll("main > div.wolfree-pods"),
- } = {}) => {
- try {
- pods.forEach((element) => {
- element.remove();
- });
- return { pods };
- } catch (error) {
- console.error(
- "Fail to remove the results of the previous calculation.",
- error
- );
- return { error };
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js
deleted file mode 100644
index bfb0ab0..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-export default class PodsParser {
- parse = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- response = { queryresult: { pods: Array() } },
- } = {}) => {
- try {
- return { html: this.buildHTML({ input, i2d, extraPodstates, response }) };
- } catch (error) {
- return console.error({ error }), { error };
- }
- };
-
- buildHTML = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- response = { queryresult: { pods: Array() } },
- } = {}) => {
- return `
- <div class="wolfree-pods">
- <div>
- <div>
- <section>
- ${this.parseQueryResult({ response })}
- ${this.buildTechnicalInfo({
- input,
- i2d,
- extraPodstates,
- response,
- })}
- </section>
- </div>
- </div>
- </div>
- `;
- };
-
- parseQueryResult = ({ response = { queryresult: { pods: Array() } } }) => {
- const { queryresult } = response;
- const { pods } = queryresult;
- if (pods) {
- return pods.map(this.parsePod).join("");
- }
- return "";
- };
-
- parsePod = (
- pod = {
- title: String(),
- states: Array(),
- subpods: Array(),
- }
- ) => {
- return `
- <section>
- ${this.buildPodHeader(pod)}
- <div></div>
- ${pod.subpods.map(this.buildSubpod).join("")}
- </section>
- `;
- };
-
- buildPodHeader = (pod = { title: String(), states: Array() }) => {
- return `
- <div>
- <h2>${this.escapeHTML(pod.title)}</h2>
- ${pod.states ? pod.states.map(this.buildSelectElement).join("") : ""}
- </div>
- `;
- };
-
- buildSubpod = (
- subpod = { img: { src: String(), alt: String() }, plaintext: String() }
- ) => {
- return `
- <div><div>
- <img
- src="${this.escapeHTML(subpod.img.src)}"
- alt="${this.escapeHTML(subpod.img.alt)}"
- >
- </div></div>
- <div style="font-family: monospace; overflow: auto;">
- <div><div>${this.buildSubpodDetails(subpod)}</div></div>
- </div>
- `;
- };
-
- buildSubpodDetails = (subpod = { plaintext: String() }) => {
- return `
- <details>
- <summary style="direction: rtl;"></summary>
- <div><pre>${this.escapeHTML(subpod.plaintext)}</pre></div>
- <br>
- </details>
- `;
- };
-
- buildSelectElement = (state = { value: String(), states: Array() }) => {
- if (state.states) {
- return `
- <select name="pod-states">
- <option>${this.escapeHTML(state.value)}</option>
- ${state.states.map(this.buildOption).join("")}
- </select>
- `;
- }
- return "";
- };
-
- buildOption = (state = { name: String() }) => {
- return `
- <option>${this.escapeHTML(state.name)}</option>
- `;
- };
-
- buildTechnicalInfo = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- response = { queryresult: { pods: Array() } },
- }) => {
- return `
- <section>
- <div><h2>Technical information</h2></div>
- <div></div>
- <div><div><div>${this.buildTechnicalInfoDetails({
- input,
- i2d,
- extraPodstates,
- response,
- })}</div></div></div>
- <div></div>
- </section>
- `;
- };
-
- buildTechnicalInfoDetails = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- response = { queryresult: { pods: Array() } },
- }) => {
- return `
- <details>
- <div>
- If you have programming knowledge, feel free to explore the technical information provided below:
- </div>
- ${this.buildTextarea({ input, i2d, extraPodstates, response })}
- </details>
- `;
- };
-
- buildTextarea = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- response = { queryresult: { pods: Array() } },
- }) => {
- return `
- <textarea name="technical-information">${this.escapeHTML(
- JSON.stringify(
- {
- document,
- input,
- i2d,
- extraPodstates,
- response,
- },
- null,
- 4
- )
- )}</textarea>
- `;
- };
-
- escapeHTML = (unsafe = String()) => {
- return unsafe
- .replace(/&/g, "&amp;")
- .replace(/</g, "&lt;")
- .replace(/>/g, "&gt;")
- .replace(/"/g, "&quot;")
- .replace(/'/g, "&#039;");
- };
-}
-
-// Can I escape HTML special chars in JavaScript? - Stack Overflow
-// https://stackoverflow.com/questions/6234773/can-i-escape-html-special-chars-in-javascript
-
-// test case:
-// https://www.wolframalpha.com/input?i=solve+%7By%27%28x%29+%3D+-2+y%2C+y%280%29%3D1%7D+from+0+to+10+using+r+k+f+algorithm
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js
deleted file mode 100644
index 1061d8a..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PostProcessor.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import Placeholder from "./Placeholder.js";
-import Entrypoint from "./Entrypoint.js";
-
-export default class PostProcessor {
- process = ({ input = String(), i2d = Boolean() } = {}) => {
- try {
- new Placeholder().remove();
-
- try {
- document
- .querySelectorAll(
- "html > body > div#__next > div > main > main > div.wolfree-pods > div > div > section > section > div > div > div > details > div"
- )
- .forEach((element = new HTMLElement()) =>
- element.setAttribute("contenteditable", "")
- );
- } catch (error) {
- console.error(
- "Fail to make the plaintext in details tags easy to copy.",
- error
- );
- }
-
- try {
- document
- .querySelectorAll(
- "html > body > div#__next > div > main > main > div.wolfree-pods > div > div > section > section > div:is(:first-child) > select"
- )
- .forEach((element = new HTMLSelectElement()) =>
- element.addEventListener(
- "change",
- async (event = new Event(String())) =>
- Entrypoint({
- input,
- i2d,
- extraPodstates: [
- event.target instanceof HTMLSelectElement
- ? event.target.value
- : (console.error({ event }), String()),
- ],
- })
- )
- );
- } catch (error) {
- console.error(
- "Fail to set up the drop-down menu for problem-solving strategies.",
- error
- );
- }
- } catch (error) {
- console.error({ error });
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Preprocessor.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Preprocessor.js
deleted file mode 100644
index 5d88bbc..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Preprocessor.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import Placeholder from "./Placeholder.js";
-import Pods from "./Pods.js";
-
-export default class Preprocessor {
- process = () => {
- try {
- try {
- window.scroll(0, 0);
- } catch (error) {
- console.error({ error }, "Fail to scroll to the top of the webpage.");
- }
-
- new Placeholder().insert();
-
- new Pods().remove();
- } catch (error) {
- console.error({ error });
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Processor.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Processor.js
deleted file mode 100644
index eaf9c2a..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/Processor.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import AJAX from "./AJAX.js";
-import PodsParser from "./PodsParser.js";
-import Pods from "./Pods.js";
-
-export default class Processor {
- process = async ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- } = {}) => {
- try {
- const { response } = await new AJAX().ajax({
- input,
- i2d,
- extraPodstates,
- });
-
- try {
- const { html } = new PodsParser().parse({
- input,
- i2d,
- extraPodstates,
- /** @type {any} */
- response,
- });
-
- try {
- new Pods().remove();
- } catch (error) {
- console.error(error);
- }
-
- try {
- new Pods().insert({ html });
- } catch (error) {
- console.error(error);
- }
- } catch (error) {
- console.error(error);
- }
- } catch (error) {
- console.error(error);
- }
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/SearchParams.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/SearchParams.js
deleted file mode 100644
index 828d06f..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/SearchParams.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-import AppID from "./AppID.js";
-
-export default class SearchParams {
- constructor({ getAppID = new AppID().getAppID } = {}) {
- this.getAppID = getAppID;
- }
-
- getSearchParams = ({
- input = String(),
- i2d = Boolean(),
- extraPodstates = Array(),
- } = {}) => {
- const appid = this.getAppID();
- return {
- ...(appid && { appid }),
- ...(input && { input }),
- ...(i2d && { i2d }),
- podstate: [
- "Step-by-step solution",
- "Step-by-step",
- "Show all steps",
- ...extraPodstates,
- // Note: extraPodstates must be the last item in the array.
- // Otherwise, the Wolfram Alpha API may ignore the pod states in extraPodstates.
- ],
- output: "json",
- reinterpret: true,
- podtimeout: 30,
- scantimeout: 30,
- parsetimeout: 30,
- totaltimeout: 30,
- formattimeout: 30,
- };
- };
-}
diff --git a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/onload.js b/docusaurus/static/ajax/libs/wolfree/23.7.8/js/onload.js
deleted file mode 100644
index 5767c4e..0000000
--- a/docusaurus/static/ajax/libs/wolfree/23.7.8/js/onload.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @license
- * SPDX-License-Identifier: AGPL-3.0-or-later
- * This file is part of Wolfree.
- * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- */
-
-// @ts-check
-
-export default addEventListener(
- "load",
- () => (
- setTimeout(
- () =>
- document
- .querySelectorAll(
- "html > body > #__next > div > main > main > div > div > section > form > div > div > input"
- )
- .forEach((input) =>
- input instanceof HTMLInputElement
- ? input.focus()
- : console.error({ input })
- ),
- 1000
- ),
- [
- () =>
- document
- .querySelectorAll(
- 'html > body > #__next > div > main > main > div > div > div > section > section > div:is(:first-child) > ul > li'
- )
- .forEach(
- (li) =>
- li.innerHTML.includes("Step-by-step") &&
- (li instanceof HTMLElement
- ? (li.style.display = "none")
- : console.error({ li }))
- ),
- () =>
- (document.title = document.title.replace(
- "- Wolfram|Alpha",
- "- Free Wolfram|Alpha Step-by-step Solution - Wolfree"
- )),
- ].forEach(
- (callback) => (
- setInterval(callback, 2000), addEventListener("click", callback)
- )
- ),
- scroll(0, 0)
- )
-);