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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 16x 16x 16x 16x 16x 16x 16x 27x 15x 3x 1x 12x 60x 4x 4x 1x 1x 1x | import { Component, Input, OnChanges, SimpleChanges, ViewChild } from "@angular/core"
import { CustomConfigHelper } from "../../../../util/customConfigHelper"
import { CustomConfigItemGroup } from "../../customConfigs.component"
import { ThreeCameraService } from "../../../codeMap/threeViewer/threeCamera.service"
import { ThreeMapControlsService } from "../../../codeMap/threeViewer/threeMapControls.service"
import { Store } from "@ngrx/store"
import { MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle } from "@angular/material/expansion"
import { ThreeRendererService } from "../../../codeMap/threeViewer/threeRenderer.service"
import { MatList, MatListItem } from "@angular/material/list"
import { MatDialogClose } from "@angular/material/dialog"
import { CustomConfigNoteDialogButtonComponent } from "../../customConfigNoteDialogButton/customConfigNoteDialogButton.component"
import { ApplyCustomConfigButtonComponent } from "./customConfigDescription/applyCustomConfigButton.component"
import { TitleCasePipe, KeyValuePipe } from "@angular/common"
import { TruncateTextPipe } from "../../../../util/pipes/truncateText.pipe"
import { CustomConfig2ApplicableMessage } from "./customConfig2ApplicableMessage.pipe"
import { FilterCustomConfigDataBySearchTermPipe } from "./customConfigDescription/filterCustomConfigDataBySearchTerm.pipe"
@Component({
selector: "cc-custom-config-item-group",
templateUrl: "./customConfigItemGroup.component.html",
styleUrls: ["./customConfigItemGroup.component.scss"],
standalone: true,
imports: [
MatExpansionPanel,
MatExpansionPanelHeader,
MatExpansionPanelTitle,
MatList,
MatListItem,
MatDialogClose,
CustomConfigNoteDialogButtonComponent,
ApplyCustomConfigButtonComponent,
TitleCasePipe,
KeyValuePipe,
TruncateTextPipe,
CustomConfig2ApplicableMessage,
FilterCustomConfigDataBySearchTermPipe
]
})
export class CustomConfigItemGroupComponent implements OnChanges {
@Input() customConfigItemGroups: Map<string, CustomConfigItemGroup>
@ViewChild("matExpansionPanel") matExpansionPanel: MatExpansionPanel
@Input() searchTerm = ""
expandedStates: { [key: string]: boolean } = {}
manuallyToggled: Set<string> = new Set()
constructor(
private store: Store,
private threeCameraService: ThreeCameraService,
private threeOrbitControlsService: ThreeMapControlsService,
private threeRendererService: ThreeRendererService
) {}
ngOnChanges(changes: SimpleChanges): void {
if (changes.searchTerm) {
if (changes.searchTerm.currentValue.length > 0) {
for (const groupKey of Object.keys(this.expandedStates)) {
this.expandedStates[groupKey] = true
}
} else {
for (const groupKey of Object.keys(this.expandedStates)) {
Iif (!this.manuallyToggled.has(groupKey)) {
this.expandedStates[groupKey] = false
}
}
}
}
}
isGroupExpanded(groupKey: string): boolean {
return this.searchTerm.length > 0
? !this.manuallyToggled.has(groupKey) || this.expandedStates[groupKey]
: this.expandedStates[groupKey] || false
}
toggleGroupExpansion(groupKey: string): void {
this.expandedStates[groupKey] = !this.isGroupExpanded(groupKey)
this.manuallyToggled.add(groupKey)
}
removeCustomConfig(configId: string, groupKey: string) {
CustomConfigHelper.deleteCustomConfig(configId)
this.expandedStates[groupKey] = true
}
applyCustomConfig(configId: string) {
CustomConfigHelper.applyCustomConfig(
configId,
this.store,
this.threeCameraService,
this.threeOrbitControlsService,
this.threeRendererService
)
}
}
|