@alauda-fe/common
Version:
Alauda frontend team common codes.
127 lines • 13.8 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
import { Observable, Subject, combineLatest, filter, takeUntil } from 'rxjs';
import { ObservableInput } from '../../../core/public-api';
import { ContextChartService } from '../../chart.service';
import * as i0 from "@angular/core";
import * as i1 from "../../chart.service";
import * as i2 from "@angular/common";
const _c0 = ["aclYPlotLines", ""];
function YPlotLinesComponent__svg_circle_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵnamespaceSVG();
i0.ɵɵelement(0, "circle");
} if (rf & 2) {
const point_r1 = ctx.$implicit;
i0.ɵɵattribute("r", 2.5)("stroke", point_r1.color)("stroke-width", 1)("fill", point_r1.color)("cx", point_r1.cx)("cy", point_r1.cy < 0 ? 0 : point_r1.cy || 0)("visibility", point_r1.visibility);
} }
export class YPlotLinesComponent {
get dasharray() {
return this.dashType === 'dash' ? [3, 2] : [0, 0];
}
get view() {
return this.context.chartView;
}
constructor(context, cdr) {
this.context = context;
this.cdr = cdr;
this.dashType = 'dash';
this.hide = false;
this.path = '';
this.circleValue = [];
this.destroy$$ = new Subject();
}
ngOnInit() {
combineLatest([this.value$, this.context.seriesData$])
.pipe(filter(([value]) => !!value && !!value.length), takeUntil(this.destroy$$))
.subscribe(() => {
const x = this.context.x(this.value[0].x);
if (x && this.view.height) {
this.path = `M${x},0 L${x} ${this.view.height}`;
this.circleValue = this.value.map(item => ({
color: item.color,
cx: this.context.x(item.x),
cy: this.context.y(item.y),
visibility: this.context.disabledLegend.has(item.name)
? 'hidden'
: '',
name: item.name,
}));
}
this.cdr.detectChanges();
});
this.context.legendChange$$
.pipe(takeUntil(this.destroy$$))
.subscribe(() => {
this.circleValue = this.circleValue.map(item => ({
...item,
visibility: this.context.disabledLegend.has(item.name)
? 'hidden'
: '',
}));
this.cdr.detectChanges();
});
}
ngOnDestroy() {
this.destroy$$.next();
this.destroy$$.complete();
}
static { this.ɵfac = function YPlotLinesComponent_Factory(t) { return new (t || YPlotLinesComponent)(i0.ɵɵdirectiveInject(i1.ContextChartService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: YPlotLinesComponent, selectors: [["g", "aclYPlotLines", ""]], inputs: { value: "value", color: "color", dashType: "dashType", width: "width", hide: "hide" }, attrs: _c0, decls: 3, vars: 6, consts: [["fill", "none"], [4, "ngFor", "ngForOf"]], template: function YPlotLinesComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵnamespaceSVG();
i0.ɵɵelementStart(0, "g");
i0.ɵɵelement(1, "path", 0);
i0.ɵɵtemplate(2, YPlotLinesComponent__svg_circle_2_Template, 1, 7, "circle", 1);
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵattribute("visibility", ctx.hide ? "hidden" : "");
i0.ɵɵadvance();
i0.ɵɵattribute("d", ctx.path)("stroke-width", ctx.width || 1)("stroke", ctx.color || "#ccc")("stroke-dasharray", ctx.dasharray);
i0.ɵɵadvance();
i0.ɵɵproperty("ngForOf", ctx.circleValue);
} }, dependencies: [i2.NgForOf], encapsulation: 2, changeDetection: 0 }); }
}
__decorate([
ObservableInput(),
__metadata("design:type", Observable)
], YPlotLinesComponent.prototype, "value$", void 0);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YPlotLinesComponent, [{
type: Component,
args: [{
// eslint-disable-next-line @angular-eslint/component-selector
selector: 'g[aclYPlotLines]',
template: `
<svg:g [attr.visibility]="hide ? 'hidden' : ''">
<path
[attr.d]="path"
fill="none"
[attr.stroke-width]="width || 1"
[attr.stroke]="color || '#ccc'"
[attr.stroke-dasharray]="dasharray"
/>
<circle
*ngFor="let point of circleValue"
[attr.r]="2.5"
[attr.stroke]="point.color"
[attr.stroke-width]="1"
[attr.fill]="point.color"
[attr.cx]="point.cx"
[attr.cy]="point.cy < 0 ? 0 : point.cy || 0"
[attr.visibility]="point.visibility"
></circle>
</svg:g>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], () => [{ type: i1.ContextChartService }, { type: i0.ChangeDetectorRef }], { value: [{
type: Input
}], value$: [], color: [{
type: Input
}], dashType: [{
type: Input
}], width: [{
type: Input
}], hide: [{
type: Input
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(YPlotLinesComponent, { className: "YPlotLinesComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieS1wbG90LWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jaGFydC9jb21tb24vYXhpcy95LXBsb3QtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztJQWdCcEQseUJBU1U7Ozs7O0FBS2hCLE1BQU0sT0FBTyxtQkFBbUI7SUF1QjlCLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBSUQsWUFDa0IsT0FBNEIsRUFDM0IsR0FBc0I7UUFEdkIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE1QmhDLGFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBSXBDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFdEIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLGdCQUFXLEdBTU4sRUFBRSxDQUFDO1FBVVMsY0FBUyxHQUFHLElBQUksT0FB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O2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO29GQUVVLEtBQUs7a0JBQWIsS0FBSztZQUVOLE1BQU0sTUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxRQUFRO2tCQUFoQixLQUFLO1lBRUcsS0FBSztrQkFBYixLQUFLO1lBRUcsSUFBSTtrQkFBWixLQUFLOztrRkFYSyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb250ZXh0Q2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2hhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDb250ZXh0SXRlbSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdnW2FjbFlQbG90TGluZXNdJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3ZnOmcgW2F0dHIudmlzaWJpbGl0eV09XCJoaWRlID8gJ2hpZGRlbicgOiAnJ1wiPlxuICAgICAgPHBhdGhcbiAgICAgICAgW2F0dHIuZF09XCJwYXRoXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBbYXR0ci5zdHJva2Utd2lkdGhdPVwid2lkdGggfHwgMVwiXG4gICAgICAgIFthdHRyLnN0cm9rZV09XCJjb2xvciB8fCAnI2NjYydcIlxuICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cImRhc2hhcnJheVwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZVxuICAgICAgICAqbmdGb3I9XCJsZXQgcG9pbnQgb2YgY2lyY2xlVmFsdWVcIlxuICAgICAgICBbYXR0ci5yXT1cIjIuNVwiXG4gICAgICAgIFthdHRyLnN0cm9rZV09XCJwb2ludC5jb2xvclwiXG4gICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCIxXCJcbiAgICAgICAgW2F0dHIuZmlsbF09XCJwb2ludC5jb2xvclwiXG4gICAgICAgIFthdHRyLmN4XT1cInBvaW50LmN4XCJcbiAgICAgICAgW2F0dHIuY3ldPVwicG9pbnQuY3kgPCAwID8gMCA6IHBvaW50LmN5IHx8IDBcIlxuICAgICAgICBbYXR0ci52aXNpYmlsaXR5XT1cInBvaW50LnZpc2liaWxpdHlcIlxuICAgICAgPjwvY2lyY2xlPlxuICAgIDwvc3ZnOmc+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBZUGxvdExpbmVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB2YWx1ZTogQ29udGV4dEl0ZW1bXTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHZhbHVlJCE6IE9ic2VydmFibGU8Q29udGV4dEl0ZW1bXT47XG5cbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBASW5wdXQoKSBkYXNoVHlwZTogJ3NvbGlkJyB8ICdkYXNoJyA9ICdkYXNoJztcblxuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGhpZGUgPSBmYWxzZTtcblxuICBwYXRoID0gJyc7XG5cbiAgY2lyY2xlVmFsdWU6IEFycmF5PHtcbiAgICBjb2xvcjogc3RyaW5nO1xuICAgIGN4OiBudW1iZXI7XG4gICAgY3k6IG51bWJlcjtcbiAgICB2aXNpYmlsaXR5OiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9PiA9IFtdO1xuXG4gIGdldCBkYXNoYXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGFzaFR5cGUgPT09ICdkYXNoJyA/IFszLCAyXSA6IFswLCAwXTtcbiAgfVxuXG4gIGdldCB2aWV3KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuY2hhcnRWaWV3O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBDb250ZXh0Q2hhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmFsdWUkLCB0aGlzLmNvbnRleHQuc2VyaWVzRGF0YSRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoW3ZhbHVlXSkgPT4gISF2YWx1ZSAmJiAhIXZhbHVlLmxlbmd0aCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgeCA9IHRoaXMuY29udGV4dC54KHRoaXMudmFsdWVbMF0ueCBhcyBUaWNrVmFsdWUpO1xuICAgICAgICBpZiAoeCAmJiB0aGlzLnZpZXcuaGVpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5wYXRoID0gYE0ke3h9LDAgTCR7eH0gJHt0aGlzLnZpZXcuaGVpZ2h0fWA7XG4gICAgICAgICAgdGhpcy5jaXJjbGVWYWx1ZSA9IHRoaXMudmFsdWUubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxuICAgICAgICAgICAgY3g6IHRoaXMuY29udGV4dC54KGl0ZW0ueCBhcyBUaWNrVmFsdWUpLFxuICAgICAgICAgICAgY3k6IHRoaXMuY29udGV4dC55KGl0ZW0ueSksXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0aGlzLmNvbnRleHQuZGlzYWJsZWRMZWdlbmQuaGFzKGl0ZW0ubmFtZSlcbiAgICAgICAgICAgICAgPyAnaGlkZGVuJ1xuICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuY29udGV4dC5sZWdlbmRDaGFuZ2UkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNpcmNsZVZhbHVlID0gdGhpcy5jaXJjbGVWYWx1ZS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgdmlzaWJpbGl0eTogdGhpcy5jb250ZXh0LmRpc2FibGVkTGVnZW5kLmhhcyhpdGVtLm5hbWUpXG4gICAgICAgICAgICA/ICdoaWRkZW4nXG4gICAgICAgICAgICA6ICcnLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==