@mixin adf-datatable-theme($theme) { $foreground: map-get($theme, foreground); $background: map-get($theme, background); $primary: map-get($theme, primary); $data-table-font-size: 14px !default; $data-table-header-font-size: 12px !default; $data-table-header-sort-icon-size: 16px !default; $data-table-header-color: mat-color($foreground, text) !default; $data-table-header-sorted-color: mat-color($foreground, text) !default; $data-table-header-sorted-icon-hover-color: mat-color($foreground, disabled-text) !default; $data-table-divider-color: mat-color($foreground, text, 0.07) !default; $data-table-hover-color: mat-color($background, 'hover') !default; $data-table-selection-color: mat-color($background, 'selected-button') !default; $data-table-dividers: 1px solid $data-table-divider-color !default; $data-table-row-height: 56px !default; $data-table-column-spacing: 36px !default; $data-table-column-padding: $data-table-column-spacing / 2; $data-table-card-padding: 24px !default; $data-table-cell-top: $data-table-card-padding / 2; $data-table-drag-border: 1px dashed rgb(68, 138, 255); $data-table-thumbnail-width: 50px !default; .adf-datatable-card { border: 1px solid mat-color($foreground, divider); .adf-datatable-body { flex-flow: row wrap; display: flex; width: 100%; justify-content: space-evenly; align-content: flex-start; align-items: flex-start; .adf-datatable-row { transition: all 0.3s ease; position: relative; display: flex; flex-direction: column; flex: 0 1 24%; width: 288px !important; max-width: 288px !important; min-width: 288px !important; height: 200px; overflow: hidden !important; margin: 6px; padding: 15px; @include mat-elevation-transition; @include mat-overridable-elevation(2); } .adf-datatable-row-empty-card { height: 0 !important; padding-top: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0; } .adf-is-selected { background: mat-color($primary, 100); padding-bottom: 31px; } .adf-datatable-card-permission { width: 100%; min-height: 250px; .adf-datatable-cell { height: 240px !important; } } .adf-datatable-card-loading { width: 100%; min-height: 250px; .adf-datatable-cell { height: 240px !important; } } .adf-datatable-card-empty { width: 100%; min-height: 380px; .adf-datatable-cell { height: 370px !important; } } .adf-datatable-cell { text-align: left; flex: 0 1 24%; height: 136px !important; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; outline: none; &::before { margin-left: 10px; text-align: left; content: attr(title); color: mat-color($foreground, text, 0.4); float: left; width: 140px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } } .adf-datatable__actions-cell { position: absolute; height: 42px !important; width: 42px !important; right: 0; } .adf-image-table-cell { margin: 8px; padding: 4px; overflow: visible; border-bottom-color: mat-color($foreground, divider); border-bottom-width: 1px; border-bottom-style: solid; .adf-datatable-cell-container { float: left; width: 42px; } &::after { margin: 2px; content: attr(filename); float: left; width: 140px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } } .adf-datatable-checkbox { margin: 8px; } } .adf-datatable-header { margin-right: 18px; float: right; } } .adf-datatable-list { display: flex; flex-direction: column; background-color: mat-color($background, card); border: $data-table-dividers; .adf-datatable-header { display: flex; flex-direction: column; } .adf-datatable-body { display: flex; flex-direction: column; .adf-datatable-row { @include material-animation-default(0.28s); transition-property: background-color; border-top: $data-table-dividers; min-height: $data-table-row-height; cursor: pointer; @include adf-no-select; &:hover { background-color: $data-table-hover-color; } &.adf-is-selected, &.adf-is-selected:hover { background-color: $data-table-selection-color; } &:last-child { border-bottom: $data-table-dividers; } } } .adf-datatable-row { display: flex; align-items: center; padding-left: 20px; padding-right: 20px; .adf-datatable-checkbox { max-width: $data-table-thumbnail-width; width: $data-table-thumbnail-width; } } .adf-datatable-cell, .adf-datatable-cell-header { text-align: left; box-sizing: border-box; &--text { text-align: left; position: relative; } &--date { text-align: left; } &--number { text-align: right; } &--image { padding-left: 24px; padding-right: 24px; width: $data-table-thumbnail-width; min-width: $data-table-thumbnail-width; text-align: left; } &:focus { outline-width: 0; } } .adf-datatable-cell-header { @include adf-no-select; cursor: pointer; position: relative; vertical-align: bottom; text-overflow: ellipsis; font-weight: bold; line-height: 24px; letter-spacing: 0; min-height: $data-table-row-height !important; font-size: $data-table-header-font-size; color: $data-table-header-color; padding-bottom: 8px; box-sizing: border-box; &:focus { outline-offset: -1px; outline-width: 1px; outline-color: rgb(68, 138, 255); outline-style: solid; } &.adf-sortable { @include adf-no-select; &:hover { cursor: pointer; } padding-top: 12px; display: flex; align-items: center; } &.adf-datatable__header--sorted-asc, &.adf-datatable__header--sorted-desc { color: $data-table-header-sorted-color; &::before { @include typo-icon; font-size: $data-table-header-sort-icon-size; content: '\e5d8'; left: 5px; position: relative; vertical-align: sub; } } &.adf-datatable__header--sorted-desc::before { content: '\e5db'; } &.adf-datatable-checkbox { display: flex; align-items: center; } } .adf-datatable-cell-header.adf-expand-cell-1, .adf-datatable-cell.adf-expand-cell-1 { flex-grow: 1; } .adf-datatable-cell-header.adf-expand-cell-2, .adf-datatable-cell.adf-expand-cell-2 { flex-grow: 2; } .adf-datatable-cell-header.adf-expand-cell-3, .adf-datatable-cell.adf-expand-cell-3 { flex-grow: 3; } .adf-datatable-cell-header.adf-expand-cell-4, .adf-datatable-cell.adf-expand-cell-4 { flex-grow: 4; } .adf-datatable-cell-header.adf-expand-cell-5, .adf-datatable-cell.adf-expand-cell-5 { flex-grow: 5; } .adf-datatable-cell-header.adf-no-grow-cell, .adf-datatable-cell.adf-no-grow-cell { flex-grow: 0; min-width: 100px; } .adf-datatable-cell, .adf-datatable-cell-header { flex: 1; padding: 0; align-items: center; display: flex; min-height: inherit; .adf-datatable-cell-container { overflow: hidden; min-height: inherit; align-items: center; display: flex; } .adf-datatable-cell-value { word-break: break-word; padding: 10px; display: block; } &:focus { outline-offset: -1px; outline: #448aff solid 1px; } } .adf-cell-value { display: flex; min-height: inherit; align-items: center; word-break: break-all; } .adf-datatable__actions-cell, .adf-datatable-cell--image { max-width: $data-table-thumbnail-width; display: flex; } .adf-datatable-cell--image { max-width: $data-table-thumbnail-width; } .adf-location-cell { a { text-decoration: none; color: mat-color($foreground, text); &:hover { color: #2196f3; text-decoration: underline; } } } /* [Accessibility] For screen reader only */ .adf-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .adf-is-selected { background: mat-color($primary, 100); } .adf-datatable-link { text-decoration: none; color: mat-color($foreground, text); &:hover { color: #2196f3; text-decoration: underline; } } .adf-ellipsis-cell { position: sticky; text-overflow: ellipsis; white-space: nowrap; &.adf-datatable-cell-header, .adf-datatable-content-cell { max-width: calc(100% - 0.1px); overflow: hidden; text-overflow: ellipsis; .adf-datatable-cell-value { overflow: hidden; text-overflow: ellipsis; } } .adf-datatable-content-cell { position: absolute; } /* query for Microsoft IE 11*/ @media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) { .adf-cell-value { top: 100%; } } /* cell stretching content */ & > div::after { content: attr(title); overflow: hidden; height: 0; display: block; } } /* Empty folder */ .adf-no-content-container { padding: 0 !important; border: none !important; width: 100%; & > img { width: 100%; } } /* Loading folder */ .adf-loading-content-container { padding: 0 !important; width: 100%; & > img { width: 100%; } } .adf-no-permission { &__row:hover { cursor: default; background-color: inherit; } &__cell { padding: 0 !important; } } /* Utils */ .adf-hidden { display: none; } /* mobile phone */ @media all and (max-width: 768px) { .adf-desktop-only { display: none !important; } } @media (max-device-width: 768px) { .adf-desktop-only { display: none !important; } } } /* [Accessibility] Material checkbox labels */ .adf-checkbox-sr-only .mat-checkbox-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .adf-sticky-header { border-top: 0; height: 100%; .adf-datatable-header { display: block; margin-right: 0; border-top: $data-table-dividers; border-bottom: $data-table-dividers; } .adf-datatable-body { display: block; flex: 1; overflow-y: scroll; margin-top: -1px; } } .adf-upload__dragging { & > div { border-top: $data-table-drag-border !important; border-bottom: $data-table-drag-border !important; border-color: $data-table-drag-border; &:first-child { border-left: $data-table-drag-border; border-color: $data-table-drag-border; } &:last-child { border-right: $data-table-drag-border !important; border-color: $data-table-drag-border; } } } .adf-datatable--empty { @include flex-column; justify-content: center; align-items: center; height: inherit; .adf-datatable-body { .adf-datatable-row { background-color: mat-color($background, card); border: none !important; &:hover, &:focus { background-color: unset; cursor: default; } } } } .adf-datatable-copy-tooltip { position: absolute; background: mat-color($primary); color: mat-color($primary, default-contrast) !important; padding: 5px 10px; border-radius: 5px; bottom: 94%; left:0; z-index: 20; } }