UNPKG

ng2-json-editor

Version:

Angular2 component for editing large json documents

74 lines 3.2 kB
/* * This file is part of ng2-json-editor. * Copyright (C) 2016 CERN. * * ng2-json-editor is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * ng2-json-editor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ng2-json-editor; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * In applying this license, CERN does not * waive the privileges and immunities granted to it by virtue of its status * as an Intergovernmental Organization or submit itself to any jurisdiction. */ import { Injectable } from '@angular/core'; import { ReplaySubject } from 'rxjs/ReplaySubject'; import { PathUtilService } from './path-util.service'; var TabsUtilService = (function () { function TabsUtilService(pathUtilService) { this.pathUtilService = pathUtilService; this.activeTabName$ = new ReplaySubject(1); } TabsUtilService.prototype.getTabNames = function (tabsConfig) { var tabNames = tabsConfig.tabs.map(function (tab) { return tab.name; }); // insert default tab name at the beginning return [tabsConfig.defaultTabName] .concat(tabNames); }; TabsUtilService.prototype.getSchemaKeyToTabName = function (tabsConfig, schema) { if (!this.schemaKeyToTabName) { // set tab.name for configured keys var keyToTabName_1 = tabsConfig.tabs .map(function (tab) { var keysWithTabName = {}; tab.properties.forEach(function (key) { keysWithTabName[key] = tab.name; }); return keysWithTabName; }).reduce(function (pre, cur) { return Object.assign(pre, cur); }); // set defaultTabName for all other keys in the schema Object.keys(schema.properties) .filter(function (key) { return !keyToTabName_1[key]; }) .forEach(function (key) { keyToTabName_1[key] = tabsConfig.defaultTabName; }); this.schemaKeyToTabName = keyToTabName_1; } return this.schemaKeyToTabName; }; // TODO: maybe this could be a decorator TabsUtilService.prototype.selectTabIfNeeded = function (path) { if (this.schemaKeyToTabName && path !== '') { var tabName = this.schemaKeyToTabName[this.pathUtilService.toPathArray(path)[0]]; this.activeTabName$.next(tabName); } }; return TabsUtilService; }()); export { TabsUtilService }; TabsUtilService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ TabsUtilService.ctorParameters = function () { return [ { type: PathUtilService, }, ]; }; //# sourceMappingURL=tabs-util.service.js.map