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 | 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 6x 6x 6x 2x 2x 1x 1x 2x 2x 2x 2x 1x 1x 1x 1x 1x 2x | import { Component } from "@angular/core"
import { MatDialog } from "@angular/material/dialog"
import { Export3DMapDialogComponent } from "./export3DMapDialog/export3DMapDialog.component"
import { State, Store } from "@ngrx/store"
import { CcState, ColorMode } from "../../codeCharta.model"
import { colorModeSelector } from "../../state/store/dynamicSettings/colorMode/colorMode.selector"
import { take } from "rxjs"
import { ErrorDialogComponent } from "../dialogs/errorDialog/errorDialog.component"
import { setColorMode } from "../../state/store/dynamicSettings/colorMode/colorMode.actions"
import { ActionIconComponent } from "../actionIcon/actionIcon.component"
@Component({
selector: "cc-export-3d-map-button",
templateUrl: "./export3DMapButton.component.html",
standalone: true,
imports: [ActionIconComponent]
})
export class Export3DMapButtonComponent {
constructor(
private dialog: MatDialog,
private state: State<CcState>,
private store: Store<CcState>
) {}
export3DMap() {
const colorMode: ColorMode = this.state.getValue().dynamicSettings.colorMode
if (colorMode !== ColorMode.absolute) {
this.dialog.open(ErrorDialogComponent, {
data: this.buildErrorDialog()
})
} else {
this.dialog.open(Export3DMapDialogComponent, {
panelClass: "cc-export-3D-map-dialog"
})
}
}
buildErrorDialog() {
const title = "Map could not be exported"
const message =
"<p>3D map can only be exported when <strong>color mode</strong> is set to <strong>absolute</strong>.<br>" +
'<i class="fa fa-info-circle"></i> You can change this under Color Metric Options ' +
'or use "Change and continue" to directly change the color mode and continue.<p>'
const resolveButtonText = "Change and continue"
const resolveErrorCallback = () => {
this.store.dispatch(setColorMode({ value: ColorMode.absolute }))
this.store
.select(colorModeSelector)
.pipe(take(1))
.subscribe(colorMode => {
if (colorMode === ColorMode.absolute) {
setTimeout(() => {
this.dialog.open(Export3DMapDialogComponent, {
panelClass: "cc-export-3D-map-dialog"
})
}, 100) //TODO: find a better way to wait for the colors to update without using setTimeout
}
})
}
return { title, message, resolveErrorData: { buttonText: resolveButtonText, onResolveErrorClick: resolveErrorCallback } }
}
}
|