angular-xml-editor
Version:
XML editor component for Angular
70 lines (69 loc) • 4.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { XmlEditorContext } from './code/xmlEditorContext.class';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
/**
* \@dynamic
*/
export class AngularXmlEditorService {
/**
* @param {?} _document
*/
constructor(_document) {
this._document = _document;
this.contexts = new Map();
}
/**
* @return {?}
*/
getNewEditorContextId() {
/** @type {?} */
let no = 0;
while (this.contexts.has(no.toString())) {
no++;
}
return no.toString();
}
/**
* @param {?} contextId
* @return {?}
*/
getEditorContext(contextId) {
/** @type {?} */
let context = this.contexts.get(contextId);
if (context === undefined) {
context = new XmlEditorContext(this._document);
this.contexts.set(contextId, context);
}
return context;
}
/**
* @param {?} contextId
* @return {?}
*/
disposeEditorContext(contextId) {
this.contexts.delete(contextId);
}
}
AngularXmlEditorService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
AngularXmlEditorService.ctorParameters = () => [
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
];
/** @nocollapse */ AngularXmlEditorService.ngInjectableDef = i0.defineInjectable({ factory: function AngularXmlEditorService_Factory() { return new AngularXmlEditorService(i0.inject(i1.DOCUMENT)); }, token: AngularXmlEditorService, providedIn: "root" });
if (false) {
/** @type {?} */
AngularXmlEditorService.prototype.contexts;
/** @type {?} */
AngularXmlEditorService.prototype._document;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci14bWwtZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXhtbC1lZGl0b3IvIiwic291cmNlcyI6WyJsaWIvYW5ndWxhci14bWwtZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBTWpFLE1BQU07Ozs7SUFHSixZQUFzQyxTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO3dCQUZ0QyxJQUFJLEdBQUcsRUFBNEI7S0FFTzs7OztJQUU3RCxxQkFBcUI7O1FBQ25CLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUU7WUFDdkMsRUFBRSxFQUFFLENBQUM7U0FDTjtRQUNELE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3RCOzs7OztJQUVELGdCQUFnQixDQUFDLFNBQWlCOztRQUNoQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sT0FBTyxDQUFDO0tBQ2hCOzs7OztJQUVELG9CQUFvQixDQUFDLFNBQWlCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2pDOzs7WUEzQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBSWtELFFBQVEsdUJBQTVDLE1BQU0sU0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWG1sRWRpdG9yQ29udGV4dCB9IGZyb20gJy4vY29kZS94bWxFZGl0b3JDb250ZXh0LmNsYXNzJztcclxuXHJcbi8qKiBAZHluYW1pYyAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyWG1sRWRpdG9yU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb250ZXh0cyA9IG5ldyBNYXA8c3RyaW5nLCBYbWxFZGl0b3JDb250ZXh0PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQpIHt9XHJcblxyXG4gIGdldE5ld0VkaXRvckNvbnRleHRJZCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IG5vID0gMDtcclxuICAgIHdoaWxlICh0aGlzLmNvbnRleHRzLmhhcyhuby50b1N0cmluZygpKSkge1xyXG4gICAgICBubysrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0b3JDb250ZXh0KGNvbnRleHRJZDogc3RyaW5nKTogWG1sRWRpdG9yQ29udGV4dCB7XHJcbiAgICBsZXQgY29udGV4dCA9IHRoaXMuY29udGV4dHMuZ2V0KGNvbnRleHRJZCk7XHJcbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnRleHQgPSBuZXcgWG1sRWRpdG9yQ29udGV4dCh0aGlzLl9kb2N1bWVudCk7XHJcbiAgICAgIHRoaXMuY29udGV4dHMuc2V0KGNvbnRleHRJZCwgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIGRpc3Bvc2VFZGl0b3JDb250ZXh0KGNvbnRleHRJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbnRleHRzLmRlbGV0ZShjb250ZXh0SWQpO1xyXG4gIH1cclxufVxyXG4iXX0=