UNPKG

@launchmenu/applet-dictionary

Version:
56 lines 4.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefinitions = void 0; const WitkionaryPage_1 = require("../WitkionaryPage"); const getListItems_1 = require("./getListItems"); /** * Retrieves the definitions from a definition html node * @param node The node to get the definitions from * @param wiktionary The wiktionary instance to use for synonyms * @returns The definitions */ function getDefinitions(node, wiki) { var _a; const text = (_a = [...node.childNodes].find(node => node instanceof HTMLParagraphElement)) !== null && _a !== void 0 ? _a : document.createElement("p"); const definitions = getListItems_1.getListItems(node, element => { // Get the definition text let text = element.querySelector(".use-with-mention"); if (!text) { const nodes = []; for (let child of element.children) { if (child.tagName == "dl") break; nodes.push(child); } text = document.createElement("span"); text.append(...nodes); } // Get the synonyms const synonymsNode = element.querySelector(".synonyms"); const synonyms = synonymsNode && getListItems_1.getListItems(synonymsNode, synonym => { const link = synonym.querySelector("a"); if (!link) return; return { word: link.textContent, url: link.href, getPage: () => { var _a; return new WitkionaryPage_1.WiktionaryPage(wiki, (_a = link.textContent) !== null && _a !== void 0 ? _a : ""); }, }; }).filter((item) => !!item); // Get usage examples const examples = [...element.querySelectorAll(".h-usage-example")]; // Return the definition return { text, synonyms: synonyms !== null && synonyms !== void 0 ? synonyms : [], examples, }; }); return { text, uses: definitions, }; } exports.getDefinitions = getDefinitions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2lrdGlvbmFyeS91dGlsL2dldERlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUFpRDtBQUlqRCxpREFBNEM7QUFFNUM7Ozs7O0dBS0c7QUFDSCxTQUFnQixjQUFjLENBQUMsSUFBVyxFQUFFLElBQWdCOztJQUN4RCxNQUFNLElBQUksU0FDTCxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksb0JBQW9CLENBQ3RCLG1DQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUQsTUFBTSxXQUFXLEdBQUcsMkJBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDN0MsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQWdCLEVBQUUsQ0FBQztZQUM5QixLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJO29CQUFFLE1BQU07Z0JBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckI7WUFDRCxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFFRCxtQkFBbUI7UUFDbkIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQ1YsWUFBWTtZQUNaLDJCQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBc0IsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLElBQUk7b0JBQUUsT0FBTztnQkFDbEIsT0FBTztvQkFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQ3RCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQUMsT0FBQSxJQUFJLCtCQUFjLENBQUMsSUFBSSxRQUFFLElBQUksQ0FBQyxXQUFXLG1DQUFJLEVBQUUsQ0FBQyxDQUFBLEVBQUE7aUJBQ2xFLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MscUJBQXFCO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRW5FLHdCQUF3QjtRQUN4QixPQUFPO1lBQ0gsSUFBSTtZQUNKLFFBQVEsRUFBRSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxFQUFFO1lBQ3hCLFFBQVE7U0FDWCxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0gsSUFBSTtRQUNKLElBQUksRUFBRSxXQUFXO0tBQ3BCLENBQUM7QUFDTixDQUFDO0FBaERELHdDQWdEQyJ9