angular-xml-editor
Version:
XML editor component for Angular
99 lines (98 loc) • 7.52 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { XmlRuleElement } from './xmlRuleElement.class';
import { XmlEditRuleCheckTextInsert } from './xmlEditRuleCheckTextInsert.class';
import { XmlRules } from './xmlRules.class';
import { Xml2html } from '../xml-html-converter/xml2html.class';
var XmlRulesCreator = /** @class */ (function () {
function XmlRulesCreator(schema, _floatingElementNames) {
this.schema = schema;
this._floatingElementNames = _floatingElementNames;
this.rules = new XmlRules(this.getAllElementRuleNodes(Array.from(this.schema.xsdNodes.values())));
}
/**
* @param {?} node
* @return {?}
*/
XmlRulesCreator.prototype.findXsdNodeForHtmlNode = /**
* @param {?} node
* @return {?}
*/
function (node) {
/** @type {?} */
var tagName = Xml2html.getTagNameFromNode(node);
return this.schema.xsdNodes.get(tagName);
};
/**
* @param {?} xsdNodes
* @return {?}
*/
XmlRulesCreator.prototype.getAllElementRuleNodes = /**
* @param {?} xsdNodes
* @return {?}
*/
function (xsdNodes) {
var _this = this;
return new Map(xsdNodes.map(function (xsdNode) { return [xsdNode.attributes.getNamedItem('name').value, _this.getRuleElementForXsdNode(xsdNode)]; }));
};
/**
* @param {?} xsdNode
* @return {?}
*/
XmlRulesCreator.prototype.getRuleElementForXsdNode = /**
* @param {?} xsdNode
* @return {?}
*/
function (xsdNode) {
if (xsdNode) {
/** @type {?} */
var tagName = xsdNode.attributes.getNamedItem('name').value;
return new XmlRuleElement({
tagName: tagName,
floating: this.isFloating(tagName),
empty: this.isEmpty(xsdNode)
});
}
else {
return undefined;
}
};
/**
* @param {?} xsdNode
* @return {?}
*/
XmlRulesCreator.prototype.isEmpty = /**
* @param {?} xsdNode
* @return {?}
*/
function (xsdNode) {
if (new XmlEditRuleCheckTextInsert(this.schema.xsdNodes).isTextAllowedInThisElement(xsdNode) === true) {
return false;
}
return true;
};
/**
* @param {?} tagName
* @return {?}
*/
XmlRulesCreator.prototype.isFloating = /**
* @param {?} tagName
* @return {?}
*/
function (tagName) {
return this._floatingElementNames.includes(tagName);
};
return XmlRulesCreator;
}());
export { XmlRulesCreator };
if (false) {
/** @type {?} */
XmlRulesCreator.prototype.rules;
/** @type {?} */
XmlRulesCreator.prototype.schema;
/** @type {?} */
XmlRulesCreator.prototype._floatingElementNames;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sUnVsZXNDcmVhdG9yLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci14bWwtZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2NvZGUveG1sLXJ1bGVzLWNoZWNrL3htbFJ1bGVzQ3JlYXRvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFaEUsSUFBQTs2QkFHNkIsTUFBaUIsRUFBVSxxQkFBK0I7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBVTtRQUNuRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7Ozs7SUFHNUYsZ0RBQXNCOzs7O2NBQUMsSUFBVTs7UUFDdkMsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzs7Ozs7SUFHbkMsZ0RBQXNCOzs7O2NBQUMsUUFBbUI7O1FBQ2hELE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBMkIsVUFBQSxPQUFPLElBQUksT0FBQSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBdkYsQ0FBdUYsQ0FBQyxDQUFDLENBQUM7Ozs7OztJQUdySixrREFBd0I7Ozs7Y0FBQyxPQUFnQjtRQUMvQyxJQUFJLE9BQU8sRUFBRTs7WUFDWCxJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDOUQsT0FBTyxJQUFJLGNBQWMsQ0FBQztnQkFDeEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBRTdCLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjs7Ozs7O0lBR0ssaUNBQU87Ozs7Y0FBQyxPQUFhO1FBQzNCLElBQUksSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyRyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7Ozs7OztJQUdOLG9DQUFVOzs7O2NBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7OzBCQTVDeEQ7SUE4Q0MsQ0FBQTtBQXhDRCwyQkF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYbWxSdWxlRWxlbWVudCB9IGZyb20gJy4veG1sUnVsZUVsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBYbWxFZGl0UnVsZUNoZWNrVGV4dEluc2VydCB9IGZyb20gJy4veG1sRWRpdFJ1bGVDaGVja1RleHRJbnNlcnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBYbWxSdWxlcyB9IGZyb20gJy4veG1sUnVsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBYbWxTY2hlbWEgfSBmcm9tICcuL3htbFNjaGVtYS5jbGFzcyc7XHJcbmltcG9ydCB7IFhtbDJodG1sIH0gZnJvbSAnLi4veG1sLWh0bWwtY29udmVydGVyL3htbDJodG1sLmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBYbWxSdWxlc0NyZWF0b3Ige1xyXG4gIHB1YmxpYyBydWxlczogWG1sUnVsZXM7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjaGVtYTogWG1sU2NoZW1hLCBwcml2YXRlIF9mbG9hdGluZ0VsZW1lbnROYW1lczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMucnVsZXMgPSBuZXcgWG1sUnVsZXModGhpcy5nZXRBbGxFbGVtZW50UnVsZU5vZGVzKEFycmF5LmZyb20odGhpcy5zY2hlbWEueHNkTm9kZXMudmFsdWVzKCkpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRYc2ROb2RlRm9ySHRtbE5vZGUobm9kZTogTm9kZSk6IE5vZGUge1xyXG4gICAgY29uc3QgdGFnTmFtZSA9IFhtbDJodG1sLmdldFRhZ05hbWVGcm9tTm9kZShub2RlKTtcclxuICAgIHJldHVybiB0aGlzLnNjaGVtYS54c2ROb2Rlcy5nZXQodGFnTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsbEVsZW1lbnRSdWxlTm9kZXMoeHNkTm9kZXM6IEVsZW1lbnRbXSkge1xyXG4gICAgcmV0dXJuIG5ldyBNYXAoeHNkTm9kZXMubWFwPFtzdHJpbmcsIFhtbFJ1bGVFbGVtZW50XT4oeHNkTm9kZSA9PiBbeHNkTm9kZS5hdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgnbmFtZScpLnZhbHVlLCB0aGlzLmdldFJ1bGVFbGVtZW50Rm9yWHNkTm9kZSh4c2ROb2RlKV0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UnVsZUVsZW1lbnRGb3JYc2ROb2RlKHhzZE5vZGU6IEVsZW1lbnQpOiBYbWxSdWxlRWxlbWVudCB7XHJcbiAgICBpZiAoeHNkTm9kZSkge1xyXG4gICAgICBjb25zdCB0YWdOYW1lID0geHNkTm9kZS5hdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgnbmFtZScpLnZhbHVlO1xyXG4gICAgICByZXR1cm4gbmV3IFhtbFJ1bGVFbGVtZW50KHtcclxuICAgICAgICB0YWdOYW1lOiB0YWdOYW1lLFxyXG4gICAgICAgIGZsb2F0aW5nOiB0aGlzLmlzRmxvYXRpbmcodGFnTmFtZSksXHJcbiAgICAgICAgZW1wdHk6IHRoaXMuaXNFbXB0eSh4c2ROb2RlKVxyXG4gICAgICAgIC8vIHhzZFJhd05vZGU6IHhzZE5vZGUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFbXB0eSh4c2ROb2RlOiBOb2RlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAobmV3IFhtbEVkaXRSdWxlQ2hlY2tUZXh0SW5zZXJ0KHRoaXMuc2NoZW1hLnhzZE5vZGVzKS5pc1RleHRBbGxvd2VkSW5UaGlzRWxlbWVudCh4c2ROb2RlKSA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNGbG9hdGluZyh0YWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mbG9hdGluZ0VsZW1lbnROYW1lcy5pbmNsdWRlcyh0YWdOYW1lKTtcclxuICB9XHJcbn1cclxuIl19