angular-xml-editor
Version:
XML editor component for Angular
144 lines (143 loc) • 12.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var Xml2htmlAttributeWorker = /** @class */ (function () {
function Xml2htmlAttributeWorker(rules) {
this.rules = rules;
}
/** writes the given attributes to the html node in data-attribute-syntax **/
/**
* writes the given attributes to the html node in data-attribute-syntax *
* @param {?} xmlElement
* @param {?} htmlElement
* @return {?}
*/
Xml2htmlAttributeWorker.prototype.writeAllXmlAttributesToHtml = /**
* writes the given attributes to the html node in data-attribute-syntax *
* @param {?} xmlElement
* @param {?} htmlElement
* @return {?}
*/
function (xmlElement, htmlElement) {
/** @type {?} */
var attributes = xmlElement.attributes;
for (var i = 0; i < attributes.length; ++i) {
/** @type {?} */
var attr = attributes[i];
this.writeAttributeToHtml(htmlElement, attr.name, attr.value);
}
};
/** writes the given attribute value to the html node in data-attribute-syntax **/
/**
* writes the given attribute value to the html node in data-attribute-syntax *
* @param {?} htmlElement
* @param {?} key
* @param {?} value
* @return {?}
*/
Xml2htmlAttributeWorker.prototype.writeAttributeToHtml = /**
* writes the given attribute value to the html node in data-attribute-syntax *
* @param {?} htmlElement
* @param {?} key
* @param {?} value
* @return {?}
*/
function (htmlElement, key, value) {
/** @type {?} */
var name = "" + Xml2htmlAttributeWorker.DataAttribPraefix + key;
if (value && value.length > 0) {
htmlElement.setAttribute(name, value);
}
else {
htmlElement.removeAttribute(name);
}
this.updateAttributesDescriptionInHtmlElement(htmlElement);
};
/** writes the given attribute value from the html node data-attribute-syntax **/
/**
* writes the given attribute value from the html node data-attribute-syntax *
* @param {?} htmlElement
* @param {?} key
* @return {?}
*/
Xml2htmlAttributeWorker.prototype.getAttributeValueFromHtml = /**
* writes the given attribute value from the html node data-attribute-syntax *
* @param {?} htmlElement
* @param {?} key
* @return {?}
*/
function (htmlElement, key) {
/** @type {?} */
var attributes = htmlElement.attributes;
for (var i = 0; i < attributes.length; ++i) {
if (attributes[i].name === "" + Xml2htmlAttributeWorker.DataAttribPraefix + key) {
return attributes[i].value;
}
}
return undefined;
};
/** writes the given attribute value to the xml node (and gets it from the html node from data-attribute-syntax) **/
/**
* writes the given attribute value to the xml node (and gets it from the html node from data-attribute-syntax) *
* @param {?} htmlElement
* @param {?} xmlElement
* @return {?}
*/
Xml2htmlAttributeWorker.prototype.writeAllHtmlAttributesToXml = /**
* writes the given attribute value to the xml node (and gets it from the html node from data-attribute-syntax) *
* @param {?} htmlElement
* @param {?} xmlElement
* @return {?}
*/
function (htmlElement, xmlElement) {
/** @type {?} */
var attributes = htmlElement.attributes;
for (var i = 0; i < attributes.length; ++i) {
/** @type {?} */
var attr = attributes[i];
if (attr.name.startsWith(Xml2htmlAttributeWorker.DataAttribPraefix)) {
xmlElement.setAttribute(attr.name.substr(Xml2htmlAttributeWorker.DataAttribPraefix.length), attr.value);
}
}
};
/**
* updates the 'for human eyes' only description of the attributes inside a html node *
* @param {?} htmlElement
* @return {?}
*/
Xml2htmlAttributeWorker.prototype.updateAttributesDescriptionInHtmlElement = /**
* updates the 'for human eyes' only description of the attributes inside a html node *
* @param {?} htmlElement
* @return {?}
*/
function (htmlElement) {
/** @type {?} */
var attributes = htmlElement.attributes;
/** @type {?} */
var allAttributes = '';
for (var i = 0; i < attributes.length; ++i) {
/** @type {?} */
var attr = attributes[i];
if (attr.name.startsWith(Xml2htmlAttributeWorker.DataAttribPraefix)) {
allAttributes = allAttributes + " " + attr.name.substr(Xml2htmlAttributeWorker.DataAttribPraefix.length) + "=\"" + attr.value + "\"";
}
}
if (allAttributes.length > 0) {
htmlElement.setAttribute('data-attributes', allAttributes);
}
else {
htmlElement.removeAttribute('data-attributes');
}
};
Xml2htmlAttributeWorker.DataAttribPraefix = 'data-attribute-';
return Xml2htmlAttributeWorker;
}());
export { Xml2htmlAttributeWorker };
if (false) {
/** @type {?} */
Xml2htmlAttributeWorker.DataAttribPraefix;
/** @type {?} */
Xml2htmlAttributeWorker.prototype.rules;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXhtbC1lZGl0b3IvIiwic291cmNlcyI6WyJsaWIvY29kZS94bWwtaHRtbC1jb252ZXJ0ZXIveG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7SUFLRSxpQ0FBbUIsS0FBZTtRQUFmLFVBQUssR0FBTCxLQUFLLENBQVU7S0FBSTtJQUV0Qyw2RUFBNkU7Ozs7Ozs7SUFDN0UsNkRBQTJCOzs7Ozs7SUFBM0IsVUFBNEIsVUFBbUIsRUFBRSxXQUFvQjs7UUFDbkUsSUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTs7WUFDMUMsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0Q7S0FDRjtJQUVELGtGQUFrRjs7Ozs7Ozs7SUFDbEYsc0RBQW9COzs7Ozs7O0lBQXBCLFVBQXFCLFdBQW9CLEVBQUUsR0FBVyxFQUFFLEtBQWE7O1FBQ25FLElBQU0sSUFBSSxHQUFHLEtBQUcsdUJBQXVCLENBQUMsaUJBQWlCLEdBQUcsR0FBSyxDQUFDO1FBQ2xFLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQzVEO0lBRUQsaUZBQWlGOzs7Ozs7O0lBQ2pGLDJEQUF5Qjs7Ozs7O0lBQXpCLFVBQTBCLFdBQW9CLEVBQUUsR0FBVzs7UUFDekQsSUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMxQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBRyx1QkFBdUIsQ0FBQyxpQkFBaUIsR0FBRyxHQUFLLEVBQUU7Z0JBQy9FLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM1QjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxvSEFBb0g7Ozs7Ozs7SUFDcEgsNkRBQTJCOzs7Ozs7SUFBM0IsVUFBNEIsV0FBb0IsRUFBRSxVQUFtQjs7UUFDbkUsSUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTs7WUFDMUMsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDbkUsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekc7U0FDRjtLQUNGOzs7Ozs7SUFHTywwRUFBd0M7Ozs7O2NBQUMsV0FBb0I7O1FBQ25FLElBQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7O1FBQzFDLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTs7WUFDMUMsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDbkUsYUFBYSxHQUFNLGFBQWEsU0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBSyxJQUFJLENBQUMsS0FBSyxPQUFHLENBQUM7YUFDMUg7U0FDRjtRQUNELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUIsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0wsV0FBVyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2hEOztnREE1RCtCLGlCQUFpQjtrQ0FIckQ7O1NBRWEsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWG1sUnVsZXMgfSBmcm9tICcuLi94bWwtcnVsZXMtY2hlY2sveG1sUnVsZXMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFhtbDJodG1sQXR0cmlidXRlV29ya2VyIHtcclxuICBwdWJsaWMgc3RhdGljIERhdGFBdHRyaWJQcmFlZml4ID0gJ2RhdGEtYXR0cmlidXRlLSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBydWxlczogWG1sUnVsZXMpIHt9XHJcblxyXG4gIC8qKiB3cml0ZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZXMgdG8gdGhlIGh0bWwgbm9kZSBpbiBkYXRhLWF0dHJpYnV0ZS1zeW50YXggKiovXHJcbiAgd3JpdGVBbGxYbWxBdHRyaWJ1dGVzVG9IdG1sKHhtbEVsZW1lbnQ6IEVsZW1lbnQsIGh0bWxFbGVtZW50OiBFbGVtZW50KSB7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0geG1sRWxlbWVudC5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzW2ldO1xyXG4gICAgICB0aGlzLndyaXRlQXR0cmlidXRlVG9IdG1sKGh0bWxFbGVtZW50LCBhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIHdyaXRlcyB0aGUgZ2l2ZW4gYXR0cmlidXRlIHZhbHVlIHRvIHRoZSBodG1sIG5vZGUgaW4gZGF0YS1hdHRyaWJ1dGUtc3ludGF4ICoqL1xyXG4gIHdyaXRlQXR0cmlidXRlVG9IdG1sKGh0bWxFbGVtZW50OiBFbGVtZW50LCBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgbmFtZSA9IGAke1htbDJodG1sQXR0cmlidXRlV29ya2VyLkRhdGFBdHRyaWJQcmFlZml4fSR7a2V5fWA7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICBodG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaHRtbEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVBdHRyaWJ1dGVzRGVzY3JpcHRpb25Jbkh0bWxFbGVtZW50KGh0bWxFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIC8qKiB3cml0ZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIHRoZSBodG1sIG5vZGUgZGF0YS1hdHRyaWJ1dGUtc3ludGF4ICoqL1xyXG4gIGdldEF0dHJpYnV0ZVZhbHVlRnJvbUh0bWwoaHRtbEVsZW1lbnQ6IEVsZW1lbnQsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBodG1sRWxlbWVudC5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgIGlmIChhdHRyaWJ1dGVzW2ldLm5hbWUgPT09IGAke1htbDJodG1sQXR0cmlidXRlV29ya2VyLkRhdGFBdHRyaWJQcmFlZml4fSR7a2V5fWApIHtcclxuICAgICAgICByZXR1cm4gYXR0cmlidXRlc1tpXS52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKiB3cml0ZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZSB2YWx1ZSB0byB0aGUgeG1sIG5vZGUgKGFuZCBnZXRzIGl0IGZyb20gdGhlIGh0bWwgbm9kZSBmcm9tIGRhdGEtYXR0cmlidXRlLXN5bnRheCkgKiovXHJcbiAgd3JpdGVBbGxIdG1sQXR0cmlidXRlc1RvWG1sKGh0bWxFbGVtZW50OiBFbGVtZW50LCB4bWxFbGVtZW50OiBFbGVtZW50KSB7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gaHRtbEVsZW1lbnQuYXR0cmlidXRlcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7ICsraSkge1xyXG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tpXTtcclxuICAgICAgaWYgKGF0dHIubmFtZS5zdGFydHNXaXRoKFhtbDJodG1sQXR0cmlidXRlV29ya2VyLkRhdGFBdHRyaWJQcmFlZml4KSkge1xyXG4gICAgICAgIHhtbEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZS5zdWJzdHIoWG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuRGF0YUF0dHJpYlByYWVmaXgubGVuZ3RoKSwgYXR0ci52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiB1cGRhdGVzIHRoZSAnZm9yIGh1bWFuIGV5ZXMnIG9ubHkgZGVzY3JpcHRpb24gb2YgdGhlIGF0dHJpYnV0ZXMgaW5zaWRlIGEgaHRtbCBub2RlICoqL1xyXG4gIHByaXZhdGUgdXBkYXRlQXR0cmlidXRlc0Rlc2NyaXB0aW9uSW5IdG1sRWxlbWVudChodG1sRWxlbWVudDogRWxlbWVudCkge1xyXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGh0bWxFbGVtZW50LmF0dHJpYnV0ZXM7XHJcbiAgICBsZXQgYWxsQXR0cmlidXRlcyA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzW2ldO1xyXG4gICAgICBpZiAoYXR0ci5uYW1lLnN0YXJ0c1dpdGgoWG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuRGF0YUF0dHJpYlByYWVmaXgpKSB7XHJcbiAgICAgICAgYWxsQXR0cmlidXRlcyA9IGAke2FsbEF0dHJpYnV0ZXN9ICR7YXR0ci5uYW1lLnN1YnN0cihYbWwyaHRtbEF0dHJpYnV0ZVdvcmtlci5EYXRhQXR0cmliUHJhZWZpeC5sZW5ndGgpfT1cIiR7YXR0ci52YWx1ZX1cImA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChhbGxBdHRyaWJ1dGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaHRtbEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWF0dHJpYnV0ZXMnLCBhbGxBdHRyaWJ1dGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGh0bWxFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hdHRyaWJ1dGVzJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==