woltlab-compiler
Version:
A compiler for WoltLab-Package Archives and WoltLab-Package Components
56 lines • 1.98 kB
JavaScript
;
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