UNPKG

angular-xml-editor

Version:
99 lines (98 loc) 7.52 kB
/** * @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