UNPKG

@manuth/woltlab-compiler

Version:

A compiler for generating WoltLab-Package `.tar` Archives and other WoltLab-Package Components

55 lines 1.85 kB
import { XMLEditor } from "../../Serialization/XMLEditor.js"; import { NamedObjectDeletionFileCompiler } from "../NamedObjectDeletionFileCompiler.js"; /** * Provides the functionality to compile emoji-files. */ export class EmojiFileCompiler extends NamedObjectDeletionFileCompiler { /** * Initializes a new instance of the {@link EmojiFileCompiler `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 * * @returns * The serialized import. */ CreateImport() { let editor = new XMLEditor(super.CreateImport()); for (let emoji of this.Item.Emojis) { let smileyNode = editor.CreateElement("smiley"); editor.Add(smileyNode); smileyNode.SetAttribute("name", `:${emoji.Name}:`); smileyNode.Add(smileyNode.CreateTextElement("title", emoji.DisplayName)); if (emoji.Aliases.length > 0) { smileyNode.Add(smileyNode.CreateCDATAElement("aliases", emoji.Aliases.map((alias) => `:${alias}:`).join("\n"))); } if (emoji.ShowOrder) { smileyNode.Add(smileyNode.CreateTextElement("showorder", emoji.ShowOrder.toString())); } smileyNode.Add(smileyNode.CreateTextElement("path", emoji.FileName)); if (emoji.HighResFileName) { smileyNode.Add(smileyNode.CreateTextElement("path2x", emoji.HighResFileName)); } } return editor.Element; } } //# sourceMappingURL=EmojiFileCompiler.js.map