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 | 3x 3x 3x 3x 3x 3x 3x 3x 11x 11x 12x 4x 1x | import { Component } from "@angular/core"
import { map, Observable } from "rxjs"
import { KeyValue, AsyncPipe, KeyValuePipe } from "@angular/common"
import { legendMarkedPackagesSelector, MarkedPackagesMap } from "./legendMarkedPackages.selector"
import { markPackages } from "../../../state/store/fileSettings/markedPackages/markedPackages.actions"
import { Store } from "@ngrx/store"
import { CcState } from "../../../codeCharta.model"
import { LabelledColorPickerComponent } from "../../labelledColorPicker/labelledColorPicker.component"
type MarkedPackagesMapKeyValue = KeyValue<keyof MarkedPackagesMap, MarkedPackagesMap[keyof MarkedPackagesMap]>
@Component({
selector: "cc-legend-marked-packages",
templateUrl: "./legendMarkedPackages.component.html",
styleUrls: ["./legendMarkedPackages.component.scss"],
standalone: true,
imports: [LabelledColorPickerComponent, AsyncPipe, KeyValuePipe]
})
export class LegendMarkedPackagesComponent {
markedPackagesMap$: Observable<MarkedPackagesMap>
hasMarkedPackages$: Observable<boolean>
constructor(private store: Store<CcState>) {
this.markedPackagesMap$ = store.select(legendMarkedPackagesSelector)
this.hasMarkedPackages$ = this.markedPackagesMap$.pipe(map(markedPackagesMap => Object.keys(markedPackagesMap).length > 0))
}
handleColorChange(newHexColor: string, paths: string[]) {
this.store.dispatch(
markPackages({
packages: paths.map(path => ({ color: newHexColor, path }))
})
)
}
trackMarkedPackage(_: number, { value }: { value: string[] }) {
return value.join(",")
}
sortMarkedPackagesMap(kv1: MarkedPackagesMapKeyValue, kv2: MarkedPackagesMapKeyValue) {
return kv1.value[0].localeCompare(kv2.value[0])
}
}
|