@xui/charts
Version:
xUI Charts for Angular
51 lines • 6.26 kB
JavaScript
import { ApplicationRef, Injectable, signal } from '@angular/core';
import { connect } from 'echarts';
import * as i0 from "@angular/core";
export class AnalysisService {
get charts() {
return this._charts;
}
constructor(appRef) {
this.appRef = appRef;
this._eCharts = [];
this._isDragging = signal(false);
this._charts = [];
}
getChart(index) {
return this._charts?.[index]?.asReadonly();
}
addChart(position, trends) {
this._charts.splice(position, 0, signal(trends));
}
addTrend(chartPos, trend) {
const chart = this._charts[chartPos];
chart.update(x => [...x, trend]);
}
removeTrend(chartPos, trendPos) {
this._charts[chartPos].update(x => chart.splice(trendPos, 1));
const chart = this._charts[chartPos]();
if (!chart.length) {
this._charts.splice(chartPos, 1);
}
}
get isDragging() {
return this._isDragging.asReadonly();
}
dragStarted() {
this._isDragging.set(true);
this.appRef.tick(); // Not able to D'n'D metric unless ticked
}
dragEnded() {
this._isDragging.set(false);
}
connectChart(chart) {
this._eCharts.push(chart);
connect(this._eCharts);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnalysisService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnalysisService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnalysisService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i0.ApplicationRef }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHlzaXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2hhcnRzL3NyYy9hbmFseXNpcy9hbmFseXNpcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLFNBQVMsQ0FBQzs7QUFXM0MsTUFBTSxPQUFPLGVBQWU7SUFLMUIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFvQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVJsQyxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBNEIsRUFBRSxDQUFDO0lBTUQsQ0FBQztJQUU5QyxRQUFRLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCLEVBQUUsTUFBYTtRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxLQUFZO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7SUFDL0QsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQWpEVSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0YWJsZSwgU2lnbmFsLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHksIE1ldHJpYyB9IGZyb20gJy4vYW5hbHlzaXMudHlwZXMnO1xuaW1wb3J0IHsgY29ubmVjdCwgRUNoYXJ0cyB9IGZyb20gJ2VjaGFydHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyZW5kIHtcbiAgbWV0cmljOiBNZXRyaWM7XG4gIGVudGl0eTogRW50aXR5O1xuICAvLyBUT0RPOiBwb2xsZWQgZGF0YSwgZXRjLlxufVxuXG5leHBvcnQgdHlwZSBDaGFydCA9IFRyZW5kW107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmFseXNpc1NlcnZpY2Uge1xuICBwcml2YXRlIF9lQ2hhcnRzOiBFQ2hhcnRzW10gPSBbXTtcbiAgcHJpdmF0ZSBfaXNEcmFnZ2luZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgX2NoYXJ0czogV3JpdGFibGVTaWduYWw8Q2hhcnQ+W10gPSBbXTtcblxuICBnZXQgY2hhcnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGFydHM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cbiAgZ2V0Q2hhcnQoaW5kZXg6IG51bWJlcik6IFNpZ25hbDxDaGFydD4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFydHM/LltpbmRleF0/LmFzUmVhZG9ubHkoKTtcbiAgfVxuXG4gIGFkZENoYXJ0KHBvc2l0aW9uOiBudW1iZXIsIHRyZW5kczogQ2hhcnQpIHtcbiAgICB0aGlzLl9jaGFydHMuc3BsaWNlKHBvc2l0aW9uLCAwLCBzaWduYWwodHJlbmRzKSk7XG4gIH1cblxuICBhZGRUcmVuZChjaGFydFBvczogbnVtYmVyLCB0cmVuZDogVHJlbmQpIHtcbiAgICBjb25zdCBjaGFydCA9IHRoaXMuX2NoYXJ0c1tjaGFydFBvc107XG4gICAgY2hhcnQudXBkYXRlKHggPT4gWy4uLngsIHRyZW5kXSk7XG4gIH1cblxuICByZW1vdmVUcmVuZChjaGFydFBvczogbnVtYmVyLCB0cmVuZFBvczogbnVtYmVyKSB7XG4gICAgdGhpcy5fY2hhcnRzW2NoYXJ0UG9zXS51cGRhdGUoeCA9PiBjaGFydC5zcGxpY2UodHJlbmRQb3MsIDEpKTtcbiAgICBjb25zdCBjaGFydCA9IHRoaXMuX2NoYXJ0c1tjaGFydFBvc10oKTtcblxuICAgIGlmICghY2hhcnQubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9jaGFydHMuc3BsaWNlKGNoYXJ0UG9zLCAxKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEcmFnZ2luZygpIHtcbiAgICByZXR1cm4gdGhpcy5faXNEcmFnZ2luZy5hc1JlYWRvbmx5KCk7XG4gIH1cblxuICBkcmFnU3RhcnRlZCgpIHtcbiAgICB0aGlzLl9pc0RyYWdnaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7IC8vIE5vdCBhYmxlIHRvIEQnbidEIG1ldHJpYyB1bmxlc3MgdGlja2VkXG4gIH1cblxuICBkcmFnRW5kZWQoKSB7XG4gICAgdGhpcy5faXNEcmFnZ2luZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgY29ubmVjdENoYXJ0KGNoYXJ0OiBFQ2hhcnRzKSB7XG4gICAgdGhpcy5fZUNoYXJ0cy5wdXNoKGNoYXJ0KTtcbiAgICBjb25uZWN0KHRoaXMuX2VDaGFydHMpO1xuICB9XG59XG4iXX0=