2
0

restore backup and add opencode support

This commit is contained in:
2025-09-23 12:02:03 +02:00
parent b99d2ff835
commit c295660631
72 changed files with 7035 additions and 7198 deletions

View File

@@ -0,0 +1,72 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Copyright (C) 2018 Michael Czechowski <mail@dailysh.it>
* This program 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; version 2.
*
* This program 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
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import { Injectable } from '@angular/core';
import { NlsMathService } from './math.service';
import { NlsHistoryService } from './history.service';
export class NlsAnimationService {
/**
* @param {?} math
* @param {?} historyService
*/
constructor(math, historyService) {
this.math = math;
this.historyService = historyService;
}
/**
* @param {?} initialGraph
* @return {?}
*/
animate(initialGraph) {
/** @type {?} */
const newGraph = Object.assign({}, initialGraph);
/** @type {?} */
const indexMiddle = Math.floor(newGraph.nodes.length * 0.5);
/** @type {?} */
const pointMiddle = newGraph.nodes[indexMiddle];
newGraph.nodes.splice(indexMiddle, 1, {
x: pointMiddle.x - 2,
y: pointMiddle.y + 2,
});
return newGraph;
// });
}
}
NlsAnimationService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
NlsAnimationService.ctorParameters = () => [
{ type: NlsMathService },
{ type: NlsHistoryService }
];
function NlsAnimationService_tsickle_Closure_declarations() {
/** @type {?} */
NlsAnimationService.prototype.graphs;
/** @type {?} */
NlsAnimationService.prototype.speed;
/** @type {?} */
NlsAnimationService.prototype.range;
/** @type {?} */
NlsAnimationService.prototype.math;
/** @type {?} */
NlsAnimationService.prototype.historyService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9ubHMtZ3VpbGxvY2hlLyIsInNvdXJjZXMiOlsibmxzL3NlcnZpY2VzL2FuaW1hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsT0FBTyxFQUFVLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFLeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3RELE1BQU07Ozs7O0lBU0osWUFDVSxNQUNBO1FBREEsU0FBSSxHQUFKLElBQUk7UUFDSixtQkFBYyxHQUFkLGNBQWM7S0FFdkI7Ozs7O0lBR00sT0FBTyxDQUFDLFlBQW1COztRQUs5QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQzs7UUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQzs7UUFDNUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVoRCxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO1lBQ3BDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDcEIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsUUFBUSxDQUFDOzs7OztZQS9CckIsVUFBVTs7OztZQUhGLGNBQWM7WUFDZCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoQykgMjAxOCBNaWNoYWVsIEN6ZWNob3dza2kgPG1haWxAZGFpbHlzaC5pdD5cbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZVxuICogU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVFxuICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3JcbiAqIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoXG4gKiB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTFcbiAqIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFNlbGVjdGlvbiBmcm9tICdkMy1zZWxlY3Rpb24nO1xuXG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gJy4uL21vZGVscy9ncmFwaC5tb2RlbCc7XG5pbXBvcnQgeyBObHNNYXRoU2VydmljZSB9IGZyb20gJy4vbWF0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE5sc0hpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmxzQW5pbWF0aW9uU2VydmljZSB7XG5cbiAgcHVibGljIGdyYXBoczogR3JhcGhbXTtcbiAgcHVibGljIHNwZWVkOiBudW1iZXI7XG4gIHB1YmxpYyByYW5nZTogbnVtYmVyO1xuICAvLyBwdWJsaWMgZ2VuQW5pbWF0aW9uOiBhbnk7XG4gIC8vIHByaXZhdGUgdGltZXI6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgLy8gcHJpdmF0ZSBzdWJzY3JpYnRpb246IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hdGg6IE5sc01hdGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGlzdG9yeVNlcnZpY2U6IE5sc0hpc3RvcnlTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIC8vIHB1YmxpYyBhbmltYXRlKGluaXRpYWxHcmFwaHM6IEdyYXBoW10pIHtcbiAgcHVibGljIGFuaW1hdGUoaW5pdGlhbEdyYXBoOiBHcmFwaCkge1xuICAgIC8vIGNvbnN0IG5ld0dyYXBocyA9IGluaXRpYWxHcmFwaHMuc2xpY2UoKTtcblxuICAgIC8vIHJldHVybiBuZXdHcmFwaHMubWFwKGdyYXBoID0+IHtcblxuICAgICAgY29uc3QgbmV3R3JhcGggPSBPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsR3JhcGgpO1xuICAgICAgY29uc3QgaW5kZXhNaWRkbGUgPSBNYXRoLmZsb29yKG5ld0dyYXBoLm5vZGVzLmxlbmd0aCAqIDAuNSk7XG4gICAgICBjb25zdCBwb2ludE1pZGRsZSA9IG5ld0dyYXBoLm5vZGVzW2luZGV4TWlkZGxlXTtcblxuICAgICAgbmV3R3JhcGgubm9kZXMuc3BsaWNlKGluZGV4TWlkZGxlLCAxLCB7XG4gICAgICAgIHg6IHBvaW50TWlkZGxlLnggLSAyLFxuICAgICAgICB5OiBwb2ludE1pZGRsZS55ICsgMixcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbmV3R3JhcGg7XG4gIC8vICAgfSk7XG4gIH1cbn1cblxuIl19

View File

@@ -0,0 +1,68 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Copyright (C) 2018 Michael Czechowski <mail@dailysh.it>
* This program 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; version 2.
*
* This program 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
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import { Injectable, RendererFactory2 } from '@angular/core';
export class NlsCanvasService {
/**
* @param {?} rendererFactory
*/
constructor(rendererFactory) {
this.rendererFactory = rendererFactory;
this.renderer = rendererFactory.createRenderer(null, null);
}
/**
* @return {?}
*/
get get() {
return this.canvas;
}
/**
* @param {?} el
* @return {?}
*/
set(el) {
this.canvas = el;
}
/**
* @return {?}
*/
adjustToWindow() {
if (this.canvas) {
this.renderer.setStyle(this.canvas, 'width', this.canvas.innerWidth);
this.renderer.setStyle(this.canvas, 'height', this.canvas.innerHeight);
}
}
}
NlsCanvasService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
NlsCanvasService.ctorParameters = () => [
{ type: RendererFactory2 }
];
function NlsCanvasService_tsickle_Closure_declarations() {
/** @type {?} */
NlsCanvasService.prototype.renderer;
/** @type {?} */
NlsCanvasService.prototype.canvas;
/** @type {?} */
NlsCanvasService.prototype.rendererFactory;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9ubHMtZ3VpbGxvY2hlLyIsInNvdXJjZXMiOlsibmxzL3NlcnZpY2VzL2NhbnZhcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsT0FBTyxFQUFVLFVBQVUsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUloRixNQUFNOzs7O0lBS0osWUFDVTtRQUFBLG9CQUFlLEdBQWYsZUFBZTtRQUV2QixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVEOzs7O1FBRVUsR0FBRztRQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7SUFHZCxHQUFHLENBQUMsRUFBRTtRQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDOzs7OztJQUdaLGNBQWM7UUFDbkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQ1gsT0FBTyxFQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQ1gsUUFBUSxFQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUN4QixDQUFDO1NBQ0g7Ozs7WUFoQ0osVUFBVTs7OztZQUg2QixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoQykgMjAxOCBNaWNoYWVsIEN6ZWNob3dza2kgPG1haWxAZGFpbHlzaC5pdD5cbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0XG4gKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZVxuICogU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVFxuICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3JcbiAqIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoXG4gKiB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTFcbiAqIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBTZWxlY3Rpb24gZnJvbSAnZDMtc2VsZWN0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5sc0NhbnZhc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgcHVibGljIGNhbnZhczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5jYW52YXM7XG4gIH1cblxuICBwdWJsaWMgc2V0KGVsKSB7XG4gICAgdGhpcy5jYW52YXMgPSBlbDtcbiAgfVxuXG4gIHB1YmxpYyBhZGp1c3RUb1dpbmRvdygpIHtcbiAgICBpZiAodGhpcy5jYW52YXMpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuY2FudmFzLFxuICAgICAgICAnd2lkdGgnLFxuICAgICAgICB0aGlzLmNhbnZhcy5pbm5lcldpZHRoXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5jYW52YXMsXG4gICAgICAgICdoZWlnaHQnLFxuICAgICAgICB0aGlzLmNhbnZhcy5pbm5lckhlaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

View File

@@ -0,0 +1,94 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Injectable } from '@angular/core';
import { NlsMathService } from './math.service';
export class NlsGraphService {
/**
* @param {?} math
*/
constructor(math) {
this.math = math;
}
/**
* @return {?}
*/
get() {
return this.graphs;
}
/**
* @param {?} newGraphs
* @return {?}
*/
set(newGraphs) {
this.graphs = newGraphs;
}
/**
* @return {?}
*/
get isAnimated() {
return this.animation;
}
/**
* @return {?}
*/
startAnimation() {
this.animation = true;
}
/**
* @return {?}
*/
stopAnimation() {
this.animation = false;
}
/**
* @param {?} start
* @param {?} spacing
* @return {?}
*/
*spreadOrthogonal(start, spacing) {
/** @type {?} */
const sign = this.math.flipSign();
/** @type {?} */
let currentPoint = start;
/** @type {?} */
let i = 0;
while (true) {
/** @type {?} */
const currentSpacing = sign.next().value * spacing * i;
currentPoint = this.shiftPoint(currentPoint, start.ascent, currentSpacing);
yield currentPoint;
i++;
}
}
/**
* @param {?} point
* @param {?} radians
* @param {?} spacing
* @return {?}
*/
shiftPoint(point, radians, spacing) {
return {
x: Math.sin(radians * Math.PI) * spacing + point.x,
y: Math.cos(radians * Math.PI) * spacing + point.y
};
}
}
NlsGraphService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
NlsGraphService.ctorParameters = () => [
{ type: NlsMathService }
];
function NlsGraphService_tsickle_Closure_declarations() {
/** @type {?} */
NlsGraphService.prototype.graphs;
/** @type {?} */
NlsGraphService.prototype.animation;
/** @type {?} */
NlsGraphService.prototype.math;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25scy1ndWlsbG9jaGUvIiwic291cmNlcyI6WyJubHMvc2VydmljZXMvZ3JhcGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBaUJBLE9BQU8sRUFBVSxVQUFVLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRCxNQUFNOzs7O0lBSUosWUFDVTtRQUFBLFNBQUksR0FBSixJQUFJO0tBQ1Y7Ozs7SUFFRyxHQUFHO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7OztJQUdkLEdBQUcsQ0FBQyxTQUFrQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQzs7Ozs7UUFHZixVQUFVO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7OztJQUdqQixjQUFjO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDOzs7OztJQUdqQixhQUFhO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDOzs7Ozs7O0tBR2pCLGdCQUFnQixDQUFDLEtBQVksRUFBRSxPQUFlOztRQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDOztRQUNsQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7O1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVWLE9BQU8sSUFBSSxFQUFFLENBQUM7O1lBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRTNFLE1BQU0sWUFBWSxDQUFDO1lBRW5CLENBQUMsRUFBRSxDQUFDO1NBQ0w7Ozs7Ozs7O0lBR0ksVUFBVSxDQUFDLEtBQVksRUFBRSxPQUFlLEVBQUUsT0FBZTtRQUM5RCxNQUFNLENBQUM7WUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNuRCxDQUFDOzs7O1lBaERMLFVBQVU7Ozs7WUFKRixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE4IE1pY2hhZWwgQ3plY2hvd3NraSA8bWFpbEBkYWlseXNoLml0PlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlXG4gKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUXG4gKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3JcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvclxuICogbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGhcbiAqIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MVxuICogRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFNlbGVjdGlvbiBmcm9tICdkMy1zZWxlY3Rpb24nO1xuXG5pbXBvcnQgeyBObHNNYXRoU2VydmljZSB9IGZyb20gJy4vbWF0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi8uLi9tb2RlbHMvZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLy4uL21vZGVscy9wb2ludC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBObHNHcmFwaFNlcnZpY2Uge1xuICBwcml2YXRlIGdyYXBoczogR3JhcGhbXTtcbiAgcHJpdmF0ZSBhbmltYXRpb246IGJvb2xlYW4gfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWF0aDogTmxzTWF0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhzO1xuICB9XG5cbiAgcHVibGljIHNldChuZXdHcmFwaHM6IEdyYXBoW10pIHtcbiAgICB0aGlzLmdyYXBocyA9IG5ld0dyYXBocztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNBbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hbmltYXRpb247XG4gIH1cblxuICBwdWJsaWMgc3RhcnRBbmltYXRpb24oKSB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0b3BBbmltYXRpb24oKSB7XG4gICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyAqc3ByZWFkT3J0aG9nb25hbChzdGFydDogUG9pbnQsIHNwYWNpbmc6IG51bWJlcikge1xuICAgIGNvbnN0IHNpZ24gPSB0aGlzLm1hdGguZmxpcFNpZ24oKTtcbiAgICBsZXQgY3VycmVudFBvaW50ID0gc3RhcnQ7XG4gICAgbGV0IGkgPSAwO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTcGFjaW5nID0gc2lnbi5uZXh0KCkudmFsdWUgKiBzcGFjaW5nICogaTtcbiAgICAgIGN1cnJlbnRQb2ludCA9IHRoaXMuc2hpZnRQb2ludChjdXJyZW50UG9pbnQsIHN0YXJ0LmFzY2VudCwgY3VycmVudFNwYWNpbmcpO1xuXG4gICAgICB5aWVsZCBjdXJyZW50UG9pbnQ7XG5cbiAgICAgIGkrKztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hpZnRQb2ludChwb2ludDogUG9pbnQsIHJhZGlhbnM6IG51bWJlciwgc3BhY2luZzogbnVtYmVyKTogUG9pbnQge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBNYXRoLnNpbihyYWRpYW5zICogTWF0aC5QSSkgKiBzcGFjaW5nICsgcG9pbnQueCxcbiAgICAgIHk6IE1hdGguY29zKHJhZGlhbnMgKiBNYXRoLlBJKSAqIHNwYWNpbmcgKyBwb2ludC55XG4gICAgfTtcbiAgfVxufVxuIl19

View File

@@ -0,0 +1,62 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Copyright (C) 2018 Michael Czechowski <mail@dailysh.it>
* This program 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; version 2.
*
* This program 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
* this program; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import { Injectable } from '@angular/core';
export class NlsHistoryService {
constructor() {
this.history = [];
}
/**
* @param {?} graphs
* @param {?} config
* @return {?}
*/
save(graphs, config) {
this.history.push({
date: new Date(),
graphs: graphs,
config: config,
hash: this.hash(graphs)
});
}
/**
* @param {?} graphs
* @return {?}
*/
hash(graphs) {
return btoa(JSON.stringify(graphs));
}
/**
* @return {?}
*/
list() {
return this.history;
}
}
NlsHistoryService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
NlsHistoryService.ctorParameters = () => [];
function NlsHistoryService_tsickle_Closure_declarations() {
/** @type {?} */
NlsHistoryService.prototype.history;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmxzLWd1aWxsb2NoZS8iLCJzb3VyY2VzIjpbIm5scy9zZXJ2aWNlcy9oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxPQUFPLEVBQVUsVUFBVSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQU14RSxNQUFNO0lBSUo7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztLQUNuQjs7Ozs7O0lBRU0sSUFBSSxDQUFDLE1BQWUsRUFBRSxNQUFNO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3hCLENBQUMsQ0FBQzs7Ozs7O0lBR0UsSUFBSSxDQUFDLE1BQU07UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Ozs7O0lBRy9CLElBQUk7UUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs7OztZQXZCdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE4IE1pY2hhZWwgQ3plY2hvd3NraSA8bWFpbEBkYWlseXNoLml0PlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlXG4gKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUXG4gKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3JcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvclxuICogbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGhcbiAqIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MVxuICogRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBTZWxlY3Rpb24gZnJvbSAnZDMtc2VsZWN0aW9uJztcblxuaW1wb3J0IHsgR3JhcGggfSBmcm9tICcuLi9tb2RlbHMvZ3JhcGgubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmxzSGlzdG9yeVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBoaXN0b3J5OiBhbnlbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhpc3RvcnkgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKGdyYXBoczogR3JhcGhbXSwgY29uZmlnKSB7XG4gICAgdGhpcy5oaXN0b3J5LnB1c2goe1xuICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIGdyYXBoczogZ3JhcGhzLFxuICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICBoYXNoOiB0aGlzLmhhc2goZ3JhcGhzKVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc2goZ3JhcGhzKSB7XG4gICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkoZ3JhcGhzKSk7XG4gIH1cblxuICBwdWJsaWMgbGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5O1xuICB9XG59XG5cbiJdfQ==

File diff suppressed because one or more lines are too long