@launchmenu/applet-dictionary
Version:
An applet to find dictionary definitions
85 lines • 6.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WiktionaryPage = void 0;
const WikiPage_1 = require("../wiki/WikiPage");
const WikiSection_1 = require("../wiki/WikiSection");
const WiktionaryReferences_1 = require("./baseSections/WiktionaryReferences");
const WiktionarySeeAlso_1 = require("./baseSections/WiktionarySeeAlso");
const WiktionaryUsageNotes_1 = require("./baseSections/WiktionaryUsageNotes");
const WiktionaryLanguage_1 = require("./WiktionaryLanguage");
const WiktionaryAdjective_1 = require("./definitionWordType/WiktionaryAdjective");
const WiktionaryAdverb_1 = require("./definitionWordType/WiktionaryAdverb");
const WiktionaryDeterminer_1 = require("./definitionWordType/WiktionaryDeterminer");
const WiktionaryNoun_1 = require("./definitionWordType/WiktionaryNoun");
const WiktionaryVerb_1 = require("./definitionWordType/WiktionaryVerb");
const WiktionaryPronoun_1 = require("./definitionWordType/WiktionaryPronoun");
const WiktionaryDefinition_1 = require("./WiktionaryDefinition");
class WiktionaryPage extends WikiPage_1.WikiPage {
/** @override */
createSection(data) {
return new WiktionaryLanguage_1.WiktionaryLanguage(this, data, data.childList.map(section => this.createDefinitionSection(section)));
}
/**
* Creates a section using the appropriate class given the section data
* @param data The data of the section
* @returns The created section
*/
createDefinitionSection(data) {
let Class = WikiSection_1.WikiSection;
// Select an appropriate class given the section name
const name = data.name.toLowerCase();
if (name.match(/etymology\s*[0-9]+/))
Class = WiktionaryDefinition_1.WiktionaryDefinition;
else if (name == "pronunciation")
Class = WikiSection_1.WikiSection;
else if (name == "antonyms")
Class = WikiSection_1.WikiSection;
else if (name == "references")
Class = WiktionaryReferences_1.WiktionaryReferences;
else if (name == "see also")
Class = WiktionarySeeAlso_1.WiktionarySeeAlso;
// Word definition sections
else if (name == "verb")
Class = WiktionaryVerb_1.WiktionaryVerb;
else if (name == "adverb")
Class = WiktionaryAdverb_1.WiktionaryAdverb;
else if (name == "adjective")
Class = WiktionaryAdjective_1.WiktionaryAdjective;
else if (name == "noun")
Class = WiktionaryNoun_1.WiktionaryNoun;
else if (name == "pronoun")
Class = WiktionaryPronoun_1.WiktionaryPronoun;
else if (name == "determiner")
Class = WiktionaryDeterminer_1.WiktionaryDeterminer;
// Extra per word type
else if (name == "derived terms")
Class = WikiSection_1.WikiSection;
else if (name == "related terms")
Class = WikiSection_1.WikiSection;
else if (name == "usage notes")
Class = WiktionaryUsageNotes_1.WiktionaryUsageNotes;
// Instantiate the class
return new Class(this, data, data.childList.map(section => this.createDefinitionSection(section)));
}
/**
* Retrieves all the languages and the word's definitions in this language
* @param hook The hook to subscribe to changes
* @returns All the languages that have a definition for this word
*/
getLanguages(hook) {
return this.getSectionList(hook);
}
/**
* Retrieves the definition of the word for the given language
* @param language The language to get the definition for
* @param hook The hook to subscribe to changes
* @returns The language section if it exists
*/
getLanguage(language, hook) {
var _a;
language = language.toLowerCase();
return ((_a = this.getLanguages(hook).find(section => section.getLanguage() == language)) !== null && _a !== void 0 ? _a : null);
}
}
exports.WiktionaryPage = WiktionaryPage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2l0a2lvbmFyeVBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2lrdGlvbmFyeS9XaXRraW9uYXJ5UGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBMEM7QUFDMUMscURBQWdEO0FBRWhELDhFQUF5RTtBQUN6RSx3RUFBbUU7QUFDbkUsOEVBQXlFO0FBQ3pFLDZEQUF3RDtBQUN4RCxrRkFBNkU7QUFDN0UsNEVBQXVFO0FBQ3ZFLG9GQUErRTtBQUMvRSx3RUFBbUU7QUFDbkUsd0VBQW1FO0FBQ25FLDhFQUF5RTtBQUN6RSxpRUFBNEQ7QUFFNUQsTUFBYSxjQUFlLFNBQVEsbUJBQTRCO0lBQzVELGdCQUFnQjtJQUNOLGFBQWEsQ0FBQyxJQUFrQjtRQUN0QyxPQUFPLElBQUksdUNBQWtCLENBQ3pCLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sdUJBQXVCLENBQUMsSUFBa0I7UUFDaEQsSUFBSSxLQUFLLEdBTUwseUJBQVcsQ0FBQztRQUVoQixxREFBcUQ7UUFDckQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFBRSxLQUFLLEdBQUcsMkNBQW9CLENBQUM7YUFDOUQsSUFBSSxJQUFJLElBQUksZUFBZTtZQUFFLEtBQUssR0FBRyx5QkFBVyxDQUFDO2FBQ2pELElBQUksSUFBSSxJQUFJLFVBQVU7WUFBRSxLQUFLLEdBQUcseUJBQVcsQ0FBQzthQUM1QyxJQUFJLElBQUksSUFBSSxZQUFZO1lBQUUsS0FBSyxHQUFHLDJDQUFvQixDQUFDO2FBQ3ZELElBQUksSUFBSSxJQUFJLFVBQVU7WUFBRSxLQUFLLEdBQUcscUNBQWlCLENBQUM7UUFDdkQsMkJBQTJCO2FBQ3RCLElBQUksSUFBSSxJQUFJLE1BQU07WUFBRSxLQUFLLEdBQUcsK0JBQWMsQ0FBQzthQUMzQyxJQUFJLElBQUksSUFBSSxRQUFRO1lBQUUsS0FBSyxHQUFHLG1DQUFnQixDQUFDO2FBQy9DLElBQUksSUFBSSxJQUFJLFdBQVc7WUFBRSxLQUFLLEdBQUcseUNBQW1CLENBQUM7YUFDckQsSUFBSSxJQUFJLElBQUksTUFBTTtZQUFFLEtBQUssR0FBRywrQkFBYyxDQUFDO2FBQzNDLElBQUksSUFBSSxJQUFJLFNBQVM7WUFBRSxLQUFLLEdBQUcscUNBQWlCLENBQUM7YUFDakQsSUFBSSxJQUFJLElBQUksWUFBWTtZQUFFLEtBQUssR0FBRywyQ0FBb0IsQ0FBQztRQUM1RCxzQkFBc0I7YUFDakIsSUFBSSxJQUFJLElBQUksZUFBZTtZQUFFLEtBQUssR0FBRyx5QkFBVyxDQUFDO2FBQ2pELElBQUksSUFBSSxJQUFJLGVBQWU7WUFBRSxLQUFLLEdBQUcseUJBQVcsQ0FBQzthQUNqRCxJQUFJLElBQUksSUFBSSxhQUFhO1lBQUUsS0FBSyxHQUFHLDJDQUFvQixDQUFDO1FBRTdELHdCQUF3QjtRQUN4QixPQUFPLElBQUksS0FBSyxDQUNaLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLElBQWdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxJQUFnQjs7UUFDakQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE9BQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksUUFBUSxDQUFDLG1DQUMxRSxJQUFJLENBQ1AsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXpFRCx3Q0F5RUMifQ==