Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatMenuModule } from '@angular/material/menu';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
Expand Down Expand Up @@ -71,6 +71,7 @@ import { ColResizeDirective } from './directive/col-resize.directive';
AppRoutingModule,
BrowserAnimationsModule,
MaterialModule,
MatPaginatorModule,
MatDialogModule,
ReactiveFormsModule,
MatToolbarModule,
Expand Down
282 changes: 260 additions & 22 deletions src/app/pages/mapping/mapping.component.css
Original file line number Diff line number Diff line change
@@ -1,46 +1,284 @@
.content{
.page-root {
display: flex;
flex-direction: column;
width: 100%;
min-height: 0;
}

.actions-row {
.toolbar {
display: flex;
align-items: center;
align-items: flex-start;
gap: 16px;
margin: 0 20px;
padding: 16px 24px 12px;
}

.search-wrap {
flex: 1 1 360px;
min-width: 260px;
display: flex;
flex-direction: column;
gap: 6px;
}

.search-field { width: 100%; }

.search-field .mat-form-field-wrapper,
.search-field .mat-mdc-form-field-subscript-wrapper {
display: none !important;
}

.search-icon {
color: var(--text-secondary, #757575);
font-size: 18px;
margin-right: 4px;
}

.search-chip {
font-size: 0.76rem !important;
height: 22px !important;
background: rgba(255,255,255,0.1) !important;
color: var(--text-primary, #e0e0e0) !important;
border: 1px solid rgba(255,255,255,0.18) !important;
letter-spacing: 0.01em;
}
.search-chip .mat-chip-remove,
.search-chip button[matChipRemove] {
color: var(--text-secondary, #9e9e9e) !important;
opacity: 1 !important;
}

.clear-btn { color: var(--text-tertiary, #616161) !important; }
.clear-btn:hover { color: var(--text-secondary, #9e9e9e) !important; }

.search-status {
font-size: 0.76rem;
line-height: 1.4;
padding-left: 1px;
min-height: 18px;
}

.status-idle { color: var(--text-tertiary, #616161); }

.status-idle kbd {
display: inline-flex;
align-items: center;
padding: 0 4px;
border: 1px solid rgba(255,255,255,0.12);
border-radius: 3px;
font-family: inherit;
font-size: 0.72rem;
background: rgba(255,255,255,0.05);
color: var(--text-secondary, #9e9e9e);
vertical-align: middle;
}

.status-active {
color: var(--text-secondary, #9e9e9e);
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 4px;
}

.search-box {
flex: 1 1 320px;
min-width: 220px;
max-width: 400px;
.match-count {
font-weight: 600;
color: var(--accent-green, #4caf50);
}

.export-btn {
.term-list {
font-weight: 600;
color: var(--text-primary, #e0e0e0);
}

.clear-link {
background: none;
border: none;
padding: 0;
cursor: pointer;
font-size: inherit;
color: var(--text-tertiary, #616161);
text-decoration: underline;
text-underline-offset: 2px;
}
.clear-link:hover { color: var(--text-secondary, #9e9e9e); }

.toolbar-actions {
margin-left: auto;
min-width: 140px;
display: flex;
align-items: center;
align-self: flex-start;
margin-top: 4px;
}

.export-btn {
font-size: 0.82rem;
height: 36px;
gap: 4px;
background: var(--accent-green, #4caf50) !important;
color: #071a09 !important;
border-color: transparent !important;
}
.export-btn:not([disabled]):hover { background: #66bb6a !important; }
.export-btn[disabled] { opacity: 0.35; }

.table-wrap {
position: relative;
display: flex;
flex-direction: column;
margin: 0 24px 32px;
border-radius: 6px;
overflow: hidden;
border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
min-height: 200px;
flex: 1;
}

.matrix-table {
margin: 20px;
.loading-overlay {
position: absolute;
inset: 0;
z-index: 10;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14px;
background: var(--surface-00, rgba(28,28,28,0.9));
}
.loading-text {
font-size: 0.84rem;
color: var(--text-secondary, #9e9e9e);
}

.mat-cell, .mat-header-cell {
padding: 20px 10px;
width: 12.5%;
max-width: 12.5%;
word-wrap: break-word;
.mapping-table {
width: 100%;
table-layout: fixed;
}

.mapping-table .mat-column-dimension { width: 12%; }
.mapping-table .mat-column-subDimension { width: 15%; }
.mapping-table .mat-column-activityName { width: 26%; }
.mapping-table .mat-column-samm2 { width: 14%; }
.mapping-table .mat-column-ISO17 { width: 16%; }
.mapping-table .mat-column-ISO22 { width: 17%; }

.mat-header-cell {
font-size: 16px;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--text-tertiary, #757575);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
color: var(--text-tertiary, #757575);

Remove this as well, it is already implemented in dark mode and it breaks light mode

padding: 10px 12px;
background: var(--surface-01, #272727);
Copy link
Copy Markdown

@veenoise veenoise Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
background: var(--surface-01, #272727);

Remove this, it breaks the light mode and the color is already showing in dark mode so it is unnecessary

border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
white-space: nowrap;
}
.mat-sort-header-container { overflow: visible; }
.mat-header-cell .mat-sort-header-button { padding-right: 18px; }
.mat-sort-header[disabled] { cursor: default; pointer-events: none; }

.mat-cell {
padding: 11px 12px;
vertical-align: top;
font-size: 0.84rem;
line-height: 1.55;
color: var(--text-primary, #e0e0e0);
border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.05));
word-break: break-word;
}

.data-row { transition: background 80ms ease; }
.data-row:hover { background: rgba(255,255,255,0.04); }
.data-row:nth-child(even) { background: rgba(255,255,255,0.015); }
.data-row:nth-child(even):hover { background: rgba(255,255,255,0.045); }

.cell-dimension { color: var(--text-secondary, #9e9e9e); font-size: 0.80rem; }
.cell-subdimension { color: var(--text-secondary, #9e9e9e); font-size: 0.82rem; }

.activity-link {
display: block;
color: var(--accent-green, #4caf50);
text-decoration: none;
font-weight: 500;
font-size: 0.85rem;
line-height: 1.45;
}
.activity-link:hover {
text-decoration: underline;
text-underline-offset: 2px;
color: #6fcf73;
}

.level-pill {
display: inline-block;
margin-top: 3px;
font-size: 0.70rem;
letter-spacing: 0.04em;
color: var(--text-tertiary, #616161);
font-weight: 500;
}

.cell-refs { vertical-align: top; }
.refs-text {
font-size: 0.78rem;
color: var(--text-secondary, #9e9e9e);
line-height: 1.6;
}

.cell-empty {
color: var(--text-tertiary, #424242);
user-select: none;
font-size: 0.85rem;
}

.no-data-cell { border: none !important; padding: 0 !important; }

.no-data {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
padding: 60px 20px;
text-align: center;
}

.no-data mat-icon {
font-size: 2rem;
width: 2rem;
height: 2rem;
color: var(--text-tertiary, #424242);
}

.no-data p {
margin: 0;
font-size: 0.88rem;
color: var(--text-secondary, #9e9e9e);
}

.no-data button {
font-size: 0.80rem;
border-color: var(--border-subtle, rgba(255,255,255,0.12)) !important;
color: var(--text-secondary, #9e9e9e) !important;
}
.no-data button:hover {
border-color: rgba(255,255,255,0.25) !important;
color: var(--text-primary, #e0e0e0) !important;
}

mat-paginator {
background: var(--surface-01, #272727);
border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.07));
font-size: 0.80rem;
color: var(--text-secondary, #9e9e9e);
}

.content ::ng-deep .mat-form-field-wrapper {
padding-bottom: 0;
@media (max-width: 900px) {
.toolbar { flex-wrap: wrap; }
.toolbar-actions { margin-left: 0; align-self: flex-end; }
}

.hide{
display: none;
@media (max-width: 700px) {
.table-wrap { margin: 0 8px 24px; overflow-x: auto; }
.mapping-table { table-layout: auto; min-width: 680px; }
.export-btn { width: 100%; }
}
Loading
Loading