summaryrefslogtreecommitdiffstats
path: root/docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js
diff options
context:
space:
mode:
Diffstat (limited to 'docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js')
-rw-r--r--docusaurus/static/ajax/libs/wolfree/23.7.8/js/PodsParser.js201
1 files changed, 0 insertions, 201 deletions
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