feat(map): add operational Cesium workspace

This commit is contained in:
DCCONSTRUCTIONS
2026-07-29 16:45:21 +03:00
parent 66f8d7a1fa
commit 8e3710b493
11 changed files with 1719 additions and 13 deletions
+187
View File
@@ -0,0 +1,187 @@
.mission-map {
min-width: 0;
}
.mission-map__lead {
align-items: center;
}
.mission-map__lead-actions {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 0.62rem;
}
.mission-map__stage {
position: relative;
min-width: 0;
height: min(var(--mission-map-height), calc(100vh - 19rem));
min-height: 20rem;
overflow: hidden;
border-radius: var(--nodedc-radius-card);
background: var(--nodedc-canvas);
isolation: isolate;
}
.mission-map__cesium,
.mission-map__cesium .cesium-viewer,
.mission-map__cesium .cesium-viewer-cesiumWidgetContainer,
.mission-map__cesium .cesium-widget,
.mission-map__cesium canvas {
width: 100%;
height: 100%;
}
.mission-map__cesium .cesium-widget-credits {
right: 0.7rem;
bottom: 0.45rem;
max-width: min(58%, 42rem);
}
.mission-map__toolbar {
position: absolute;
z-index: 4;
right: 50%;
bottom: 1rem;
left: auto;
transform: translateX(50%);
}
.mission-map__layers {
position: absolute;
z-index: 5;
top: 1rem;
right: 1rem;
display: grid;
width: min(23rem, calc(100% - 2rem));
gap: 0.42rem;
padding: 0.72rem;
border-radius: var(--nodedc-radius-card);
}
.mission-map__overlay-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 0.2rem 0.2rem 0.5rem;
}
.mission-map__overlay-head > div {
display: grid;
gap: 0.34rem;
}
.mission-map__overlay-head strong {
color: var(--nodedc-map-glass-text);
font-size: 0.92rem;
}
.mission-map__layers .section-eyebrow {
color: var(--nodedc-map-glass-text-muted);
}
.mission-map__layer-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 0.55rem;
}
.mission-map__layer-row .nodedc-checker {
min-width: 0;
}
.mission-map__blocking {
position: absolute;
z-index: 6;
top: 50%;
left: 50%;
display: grid;
width: min(22rem, calc(100% - 2rem));
justify-items: start;
gap: 0.5rem;
padding: 1rem;
border-radius: var(--nodedc-radius-card);
transform: translate(-50%, -50%);
}
.mission-map__blocking strong {
color: var(--nodedc-map-glass-text);
font-size: 0.9rem;
}
.mission-map__blocking > span {
color: var(--nodedc-map-glass-text-muted);
font-size: 0.68rem;
line-height: 1.45;
}
.mission-map__save-error {
display: flex;
align-items: center;
gap: 0.62rem;
color: var(--nodedc-text-muted);
font-size: 0.68rem;
}
.mission-map-inspector .nodedc-window__body {
padding: 0.75rem;
}
.mission-map__inspector-controls {
display: grid;
gap: 0.48rem;
}
.mission-map__cache-health {
display: grid;
gap: 0.5rem;
margin: 0;
padding-top: 0.3rem;
}
.mission-map__cache-health > div {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 0.65rem;
}
.mission-map__cache-health dt,
.mission-map__cache-health dd {
margin: 0;
font-size: 0.68rem;
}
.mission-map__cache-health dt {
color: var(--nodedc-text-muted);
}
.mission-map__cache-health dd {
color: var(--nodedc-text-secondary);
text-align: right;
}
@media (max-width: 760px) {
.mission-map__lead {
align-items: flex-start;
}
.mission-map__lead-actions {
width: 100%;
justify-content: space-between;
}
.mission-map__stage {
height: min(var(--mission-map-height), calc(100vh - 21rem));
min-height: 20rem;
}
.mission-map__layers {
top: 0.65rem;
right: 0.65rem;
width: calc(100% - 1.3rem);
}
}