@rxap/xml-parser
Version:
Provides a set of decorators and services for parsing and serializing XML documents into TypeScript classes. It simplifies the process of mapping XML elements and attributes to class properties, handling data validation, and serializing objects back into
105 lines • 3.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IconElement = void 0;
const tslib_1 = require("tslib");
const utilities_1 = require("@rxap/utilities");
const element_def_1 = require("../decorators/element-def");
const element_attribute_1 = require("../decorators/element-attribute");
const element_child_text_content_1 = require("../decorators/element-child-text-content");
const required_element_mixin_1 = require("../decorators/mixins/required-element.mixin");
/**
*
* ## Examples
*
* ### Svg icon
*
* ```xml
* <icon svg="true">
* <name>icon_name</name>
* <color>warn</color>
* <size>10px</size>
* <tooltip>tooltip</tooltip>
* <font-color>green</font-color>
* <font-set>font_set</font-set>
* <font-icon>font_icon</font-icon>
* </icon>
* ```
*
* ### Material icon
*
* ```xml
* <icon>
* <name>icon_name</name>
* <color>warn</color>
* <size>10px</size>
* <tooltip>tooltip</tooltip>
* <font-color>green</font-color>
* </icon>
* ```
*
*/
let IconElement = class IconElement {
getIconConfig() {
const icon = {
inline: this.inline,
color: this.color,
size: this.size,
tooltip: this.tooltip,
fontColor: this.fontColor,
};
if (this.svg) {
icon.svgIcon = this.name;
icon.fontSet = this.fontSet;
icon.fontIcon = this.fontIcon;
}
else {
icon.icon = this.name;
}
return (0, utilities_1.DeleteUndefinedProperties)(icon);
}
toValue() {
return this.getIconConfig();
}
};
exports.IconElement = IconElement;
tslib_1.__decorate([
(0, element_attribute_1.ElementAttribute)(),
tslib_1.__metadata("design:type", Boolean)
], IconElement.prototype, "svg", void 0);
tslib_1.__decorate([
(0, element_attribute_1.ElementAttribute)(),
tslib_1.__metadata("design:type", Boolean)
], IconElement.prototype, "inline", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", Object)
], IconElement.prototype, "color", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "size", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "tooltip", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "fontColor", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "fontSet", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "fontIcon", void 0);
tslib_1.__decorate([
(0, element_child_text_content_1.ElementChildTextContent)(),
(0, required_element_mixin_1.ElementRequired)(),
tslib_1.__metadata("design:type", String)
], IconElement.prototype, "name", void 0);
exports.IconElement = IconElement = tslib_1.__decorate([
(0, element_def_1.ElementDef)('icon')
], IconElement);
//# sourceMappingURL=icon.element.js.map