Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 7x 7x 7x 7x 7x 1x 7x 11x 7x 11x 7x 4x 4x 4x 8x | import { Component } from "@angular/core" import { Store } from "@ngrx/store" import { combineLatest, map } from "rxjs" import { CcState, CodeMapNode, Node } from "../../../codeCharta.model" import { isEdgeMetricVisibleSelector } from "../../../state/store/appSettings/isEdgeMetricVisible/isEdgeMetricVisible.selector" import { setEdgeMetric } from "../../../state/store/dynamicSettings/edgeMetric/edgeMetric.actions" import { edgeMetricSelector } from "../../../state/store/dynamicSettings/edgeMetric/edgeMetric.selector" import { NodeSelectionService } from "../../metricChooser/nodeSelection.service" import { MetricChooserComponent } from "../../metricChooser/metricChooser.component" import { RoundedBoxComponent } from "../roundedBox/roundedBox.component" import { MetricChooserTypeComponent } from "../../metricChooser/metricChooserType/metricChooserType.component" import { AsyncPipe } from "@angular/common" @Component({ selector: "cc-edge-metric-chooser", templateUrl: "./edgeMetricChooser.component.html", styleUrls: ["./edgeMetricChooser.component.scss"], standalone: true, imports: [MetricChooserComponent, RoundedBoxComponent, MetricChooserTypeComponent, AsyncPipe] }) export class EdgeMetricChooserComponent { edgeValue$ = this.createEdgeValue() edgeMetric$ = this.store.select(edgeMetricSelector) isEdgeMetricVisible$ = this.store.select(isEdgeMetricVisibleSelector) constructor( private store: Store<CcState>, private nodeSelectionService: NodeSelectionService ) {} handleEdgeMetricChanged(value: string) { this.store.dispatch(setEdgeMetric({ value })) } private createEdgeValue() { return combineLatest([this.store.select(edgeMetricSelector), this.nodeSelectionService.createNodeObservable()]).pipe( map(([edgeMetric, node]) => { return this.formatHoveredEdgeValue(edgeMetric, node) }) ) } private formatHoveredEdgeValue = (edgeMetric: string, node: CodeMapNode | Node) => { if (!node) { return null } const edgeValues = node.edgeAttributes[edgeMetric] Iif (!edgeValues) { return null } return `${this.formatValue(edgeValues.incoming)} / ${this.formatValue(edgeValues.outgoing)}` } private formatValue = (x?: number) => (typeof x === "number" ? x.toLocaleString() : "-") } |