UNPKG

@launchmenu/applet-dictionary

Version:
85 lines 6.75 kB
"use strict"; 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==