angular-xml-editor
Version:
XML editor component for Angular
68 lines (67 loc) • 5.74 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component } from '@angular/core';
export class DomBreakcrumbComponent {
constructor() {
this.nodes = [];
}
/**
* @return {?}
*/
ngOnInit() { }
/**
* @param {?} selection
* @return {?}
*/
showSelection(selection) {
if (selection === undefined) {
this.nodes = ['none'];
}
else {
/** @type {?} */
const collectNodes = [];
/** @type {?} */
let node = selection.focusNode;
/** @type {?} */
let reachedTop = node === undefined || node === null;
while (!reachedTop) {
switch (node.nodeType) {
case Node.ELEMENT_NODE: // element node
/** @type {?} */
const asElement = /** @type {?} */ (node);
if (asElement !== undefined) {
/** @type {?} */
const name = asElement.getAttribute('data-tagname');
if (asElement.className === 'sws-xml-editor-textarea') {
reachedTop = true;
}
else {
collectNodes.unshift(name);
}
}
}
node = node.parentElement;
if (node === undefined || node == null) {
reachedTop = true;
}
}
this.nodes = collectNodes;
}
}
}
DomBreakcrumbComponent.decorators = [
{ type: Component, args: [{
selector: 'axed-dom-breakcrumb',
template: "<ul>\r\n <li *ngFor=\"let element of nodes\">\r\n {{ element }}\r\n </li>\r\n</ul>\r\n",
styles: ["ul{list-style-type:none;margin:0;padding:0}ul li{display:inline-block;zoom:1;padding-right:10px}ul li::before{content:'>';color:#d3d3d3}"]
}] }
];
/** @nocollapse */
DomBreakcrumbComponent.ctorParameters = () => [];
if (false) {
/** @type {?} */
DomBreakcrumbComponent.prototype.nodes;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWJyZWFrY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci14bWwtZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZG9tLWJyZWFrY3J1bWIvZG9tLWJyZWFrY3J1bWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT2xELE1BQU07SUFHSjtxQkFGa0IsRUFBRTtLQUVKOzs7O0lBRWhCLFFBQVEsTUFBSzs7Ozs7SUFFYixhQUFhLENBQUMsU0FBb0I7UUFDaEMsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QjthQUFNOztZQUNMLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQzs7WUFDeEIsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQzs7WUFDL0IsSUFBSSxVQUFVLEdBQUcsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xCLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDckIsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLGVBQWU7O3dCQUNyQyxNQUFNLFNBQVMscUJBQUcsSUFBZSxFQUFDO3dCQUNsQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7OzRCQUMzQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDOzRCQUNwRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUsseUJBQXlCLEVBQUU7Z0NBQ3JELFVBQVUsR0FBRyxJQUFJLENBQUM7NkJBQ25CO2lDQUFNO2dDQUNMLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7NkJBQzVCO3lCQUNGO2lCQUNKO2dCQUNELElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUMxQixJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtvQkFDdEMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDbkI7YUFDRjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1NBQzNCO0tBQ0Y7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsdUdBQThDOzthQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4ZWQtZG9tLWJyZWFrY3J1bWInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kb20tYnJlYWtjcnVtYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9tLWJyZWFrY3J1bWIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb21CcmVha2NydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBub2Rlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHNob3dTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb24pIHtcclxuICAgIGlmIChzZWxlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLm5vZGVzID0gWydub25lJ107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjb2xsZWN0Tm9kZXMgPSBbXTtcclxuICAgICAgbGV0IG5vZGUgPSBzZWxlY3Rpb24uZm9jdXNOb2RlO1xyXG4gICAgICBsZXQgcmVhY2hlZFRvcCA9IG5vZGUgPT09IHVuZGVmaW5lZCB8fCBub2RlID09PSBudWxsO1xyXG4gICAgICB3aGlsZSAoIXJlYWNoZWRUb3ApIHtcclxuICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6IC8vIGVsZW1lbnQgbm9kZVxyXG4gICAgICAgICAgICBjb25zdCBhc0VsZW1lbnQgPSBub2RlIGFzIEVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChhc0VsZW1lbnQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBhc0VsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRhZ25hbWUnKTtcclxuICAgICAgICAgICAgICBpZiAoYXNFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ3N3cy14bWwtZWRpdG9yLXRleHRhcmVhJykge1xyXG4gICAgICAgICAgICAgICAgcmVhY2hlZFRvcCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbGxlY3ROb2Rlcy51bnNoaWZ0KG5hbWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQgfHwgbm9kZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICByZWFjaGVkVG9wID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlcyA9IGNvbGxlY3ROb2RlcztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19