UNPKG

woltlab-compiler

Version:

A compiler for WoltLab-Package Archives and WoltLab-Package Components

56 lines 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("util"); const XMLEditor_1 = require("../../Serialization/XMLEditor"); const NamedObjectDeletionFileCompiler_1 = require("../NamedObjectDeletionFileCompiler"); /** * Provides the functionality to compile emoji-files. */ class EmojiFileCompiler extends NamedObjectDeletionFileCompiler_1.NamedObjectDeletionFileCompiler { /** * Initializes a new instance of the `EmojiFileCompiler` class. * * @param item * The item to compile. */ constructor(item) { super(item); } /** * @inheritdoc */ get SchemaLocation() { return "https://www.woltlab.com/XSD/tornado/smiley.xsd"; } /** * @inheritdoc */ get ObjectTagName() { return "smiley"; } /** * @inheritdoc */ CreateImport() { let editor = new XMLEditor_1.XMLEditor(super.CreateImport()); for (let emoji of this.Item.Emojis) { editor.AddElement("smiley", (smiley) => { smiley.SetAttribute("name", `:${emoji.Name}:`); smiley.AddTextElement("title", emoji.DisplayName); if (emoji.Aliases.length > 0) { smiley.AddCDATAElement("aliases", emoji.Aliases.map((alias) => `:${alias}:`).join("\n")); } if (!util_1.isNullOrUndefined(emoji.ShowOrder)) { smiley.AddTextElement("showorder", emoji.ShowOrder.toString()); } smiley.AddTextElement("path", emoji.FileName); if (!util_1.isNullOrUndefined(emoji.HighResFileName)) { smiley.AddTextElement("path2x", emoji.HighResFileName); } }); } return editor.Element; } } exports.EmojiFileCompiler = EmojiFileCompiler; //# sourceMappingURL=EmojiFileCompiler.js.map