UNPKG

angular-xml-editor

Version:
111 lines (110 loc) 10.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ export class Xml2htmlAttributeWorker { /** * @param {?} rules */ constructor(rules) { this.rules = rules; } /** * writes the given attributes to the html node in data-attribute-syntax * * @param {?} xmlElement * @param {?} htmlElement * @return {?} */ writeAllXmlAttributesToHtml(xmlElement, htmlElement) { /** @type {?} */ const attributes = xmlElement.attributes; for (let i = 0; i < attributes.length; ++i) { /** @type {?} */ const attr = attributes[i]; this.writeAttributeToHtml(htmlElement, attr.name, attr.value); } } /** * writes the given attribute value to the html node in data-attribute-syntax * * @param {?} htmlElement * @param {?} key * @param {?} value * @return {?} */ writeAttributeToHtml(htmlElement, key, value) { /** @type {?} */ const 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 * * @param {?} htmlElement * @param {?} key * @return {?} */ getAttributeValueFromHtml(htmlElement, key) { /** @type {?} */ const attributes = htmlElement.attributes; for (let 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) * * @param {?} htmlElement * @param {?} xmlElement * @return {?} */ writeAllHtmlAttributesToXml(htmlElement, xmlElement) { /** @type {?} */ const attributes = htmlElement.attributes; for (let i = 0; i < attributes.length; ++i) { /** @type {?} */ const 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 {?} */ updateAttributesDescriptionInHtmlElement(htmlElement) { /** @type {?} */ const attributes = htmlElement.attributes; /** @type {?} */ let allAttributes = ''; for (let i = 0; i < attributes.length; ++i) { /** @type {?} */ const 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-'; if (false) { /** @type {?} */ Xml2htmlAttributeWorker.DataAttribPraefix; /** @type {?} */ Xml2htmlAttributeWorker.prototype.rules; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXhtbC1lZGl0b3IvIiwic291cmNlcyI6WyJsaWIvY29kZS94bWwtaHRtbC1jb252ZXJ0ZXIveG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU07Ozs7SUFHSixZQUFtQixLQUFlO1FBQWYsVUFBSyxHQUFMLEtBQUssQ0FBVTtLQUFJOzs7Ozs7O0lBR3RDLDJCQUEyQixDQUFDLFVBQW1CLEVBQUUsV0FBb0I7O1FBQ25FLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7O1lBQzFDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9EO0tBQ0Y7Ozs7Ozs7O0lBR0Qsb0JBQW9CLENBQUMsV0FBb0IsRUFBRSxHQUFXLEVBQUUsS0FBYTs7UUFDbkUsTUFBTSxJQUFJLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QixXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM1RDs7Ozs7OztJQUdELHlCQUF5QixDQUFDLFdBQW9CLEVBQUUsR0FBVzs7UUFDekQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMxQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsRUFBRTtnQkFDL0UsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQzVCO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjs7Ozs7OztJQUdELDJCQUEyQixDQUFDLFdBQW9CLEVBQUUsVUFBbUI7O1FBQ25FLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7O1lBQzFDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ25FLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pHO1NBQ0Y7S0FDRjs7Ozs7O0lBR08sd0NBQXdDLENBQUMsV0FBb0I7O1FBQ25FLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7O1FBQzFDLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTs7WUFDMUMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDbkUsYUFBYSxHQUFHLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQzthQUMxSDtTQUNGO1FBQ0QsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixXQUFXLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxXQUFXLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEQ7Ozs0Q0E1RCtCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhtbFJ1bGVzIH0gZnJvbSAnLi4veG1sLXJ1bGVzLWNoZWNrL3htbFJ1bGVzLmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBYbWwyaHRtbEF0dHJpYnV0ZVdvcmtlciB7XHJcbiAgcHVibGljIHN0YXRpYyBEYXRhQXR0cmliUHJhZWZpeCA9ICdkYXRhLWF0dHJpYnV0ZS0nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcnVsZXM6IFhtbFJ1bGVzKSB7fVxyXG5cclxuICAvKiogd3JpdGVzIHRoZSBnaXZlbiBhdHRyaWJ1dGVzIHRvIHRoZSBodG1sIG5vZGUgaW4gZGF0YS1hdHRyaWJ1dGUtc3ludGF4ICoqL1xyXG4gIHdyaXRlQWxsWG1sQXR0cmlidXRlc1RvSHRtbCh4bWxFbGVtZW50OiBFbGVtZW50LCBodG1sRWxlbWVudDogRWxlbWVudCkge1xyXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IHhtbEVsZW1lbnQuYXR0cmlidXRlcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7ICsraSkge1xyXG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tpXTtcclxuICAgICAgdGhpcy53cml0ZUF0dHJpYnV0ZVRvSHRtbChodG1sRWxlbWVudCwgYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiB3cml0ZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZSB2YWx1ZSB0byB0aGUgaHRtbCBub2RlIGluIGRhdGEtYXR0cmlidXRlLXN5bnRheCAqKi9cclxuICB3cml0ZUF0dHJpYnV0ZVRvSHRtbChodG1sRWxlbWVudDogRWxlbWVudCwga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG5hbWUgPSBgJHtYbWwyaHRtbEF0dHJpYnV0ZVdvcmtlci5EYXRhQXR0cmliUHJhZWZpeH0ke2tleX1gO1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgaHRtbEVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGh0bWxFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlQXR0cmlidXRlc0Rlc2NyaXB0aW9uSW5IdG1sRWxlbWVudChodG1sRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICAvKiogd3JpdGVzIHRoZSBnaXZlbiBhdHRyaWJ1dGUgdmFsdWUgZnJvbSB0aGUgaHRtbCBub2RlIGRhdGEtYXR0cmlidXRlLXN5bnRheCAqKi9cclxuICBnZXRBdHRyaWJ1dGVWYWx1ZUZyb21IdG1sKGh0bWxFbGVtZW50OiBFbGVtZW50LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gaHRtbEVsZW1lbnQuYXR0cmlidXRlcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7ICsraSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlc1tpXS5uYW1lID09PSBgJHtYbWwyaHRtbEF0dHJpYnV0ZVdvcmtlci5EYXRhQXR0cmliUHJhZWZpeH0ke2tleX1gKSB7XHJcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXNbaV0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKiogd3JpdGVzIHRoZSBnaXZlbiBhdHRyaWJ1dGUgdmFsdWUgdG8gdGhlIHhtbCBub2RlIChhbmQgZ2V0cyBpdCBmcm9tIHRoZSBodG1sIG5vZGUgZnJvbSBkYXRhLWF0dHJpYnV0ZS1zeW50YXgpICoqL1xyXG4gIHdyaXRlQWxsSHRtbEF0dHJpYnV0ZXNUb1htbChodG1sRWxlbWVudDogRWxlbWVudCwgeG1sRWxlbWVudDogRWxlbWVudCkge1xyXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGh0bWxFbGVtZW50LmF0dHJpYnV0ZXM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZXNbaV07XHJcbiAgICAgIGlmIChhdHRyLm5hbWUuc3RhcnRzV2l0aChYbWwyaHRtbEF0dHJpYnV0ZVdvcmtlci5EYXRhQXR0cmliUHJhZWZpeCkpIHtcclxuICAgICAgICB4bWxFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUuc3Vic3RyKFhtbDJodG1sQXR0cmlidXRlV29ya2VyLkRhdGFBdHRyaWJQcmFlZml4Lmxlbmd0aCksIGF0dHIudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogdXBkYXRlcyB0aGUgJ2ZvciBodW1hbiBleWVzJyBvbmx5IGRlc2NyaXB0aW9uIG9mIHRoZSBhdHRyaWJ1dGVzIGluc2lkZSBhIGh0bWwgbm9kZSAqKi9cclxuICBwcml2YXRlIHVwZGF0ZUF0dHJpYnV0ZXNEZXNjcmlwdGlvbkluSHRtbEVsZW1lbnQoaHRtbEVsZW1lbnQ6IEVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBodG1sRWxlbWVudC5hdHRyaWJ1dGVzO1xyXG4gICAgbGV0IGFsbEF0dHJpYnV0ZXMgPSAnJztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7ICsraSkge1xyXG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tpXTtcclxuICAgICAgaWYgKGF0dHIubmFtZS5zdGFydHNXaXRoKFhtbDJodG1sQXR0cmlidXRlV29ya2VyLkRhdGFBdHRyaWJQcmFlZml4KSkge1xyXG4gICAgICAgIGFsbEF0dHJpYnV0ZXMgPSBgJHthbGxBdHRyaWJ1dGVzfSAke2F0dHIubmFtZS5zdWJzdHIoWG1sMmh0bWxBdHRyaWJ1dGVXb3JrZXIuRGF0YUF0dHJpYlByYWVmaXgubGVuZ3RoKX09XCIke2F0dHIudmFsdWV9XCJgO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYWxsQXR0cmlidXRlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1hdHRyaWJ1dGVzJywgYWxsQXR0cmlidXRlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodG1sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYXR0cmlidXRlcycpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=