UNPKG

ng2-json-editor

Version:

Angular2 component for editing large json documents

63 lines 2.81 kB
/* * This file is part of ng2-json-editor. * Copyright (C) 2017 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 ListPageChangerService = (function () { function ListPageChangerService(pathUtilService) { this.pathUtilService = pathUtilService; this.pageChange$Map = {}; this.itemsPerPageMap = {}; } /** * Changes the page of the list so that requested item is visible on UI * It doesn't do anything if given path's parent is not paginated list. * * @param itemPath path to a list item */ ListPageChangerService.prototype.changePage = function (fieldPath) { var fieldPathArray = this.pathUtilService.toPathArray(fieldPath); var listPathArray = this.pathUtilService.getNearestOrRootArrayParentInPath(fieldPathArray, true); var listPath = this.pathUtilService.toPathString(listPathArray); if (this.pageChange$Map[listPath]) { var itemIndex = fieldPathArray[listPathArray.length]; var itemsPerPage = this.itemsPerPageMap[listPath]; var page = Math.floor((itemIndex / itemsPerPage) + 1); this.pageChange$Map[listPath].next(page); } }; ListPageChangerService.prototype.registerPaginatedList = function (listPath, itemsPerPage) { this.itemsPerPageMap[listPath] = itemsPerPage; this.pageChange$Map[listPath] = new ReplaySubject(1); return this.pageChange$Map[listPath]; }; return ListPageChangerService; }()); export { ListPageChangerService }; ListPageChangerService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ ListPageChangerService.ctorParameters = function () { return [ { type: PathUtilService, }, ]; }; //# sourceMappingURL=list-page-changer.service.js.map