@import './animation.scss'; @import './variables.scss'; @import './mixin.scss'; @import './operationPanel.scss'; $module: #{$prefix}-table; .#{$module} { width: 100%; text-align: left; border-collapse: separate; border-spacing: 0; font-size: inherit; display: table; &-wrapper { zoom: 1; position: relative; clear: both; box-sizing: border-box; margin: 0; padding: 0; @include font-size-regular; color: $color-table-text-default; width: 100%; &[data-column-fixed='true'] { z-index: 1; } } &-middle { .#{$module}-tbody > .#{$module}-row > .#{$module}-row-cell { padding-top: $spacing-table_middle-paddingY; padding-bottom: $spacing-table_middle-paddingY; } } &-small { .#{$module}-tbody > .#{$module}-row > .#{$module}-row-cell { padding-top: $spacing-table_small-paddingY; padding-bottom: $spacing-table_small-paddingY; } } &-title { position: relative; padding-top: $spacing-table_title-paddingY; padding-bottom: $spacing-table_title-paddingY; padding-left: $spacing-table_title-paddingX; padding-right: $spacing-table_title-paddingX; } &-container { position: relative; } &-header { overflow: hidden; &::-webkit-scrollbar { background-color: transparent; border-bottom: $width-table_header_border $border-table_base-borderStyle $color-table_th-border-default; } scrollbar-base-color: transparent; &-sticky { position: sticky; z-index: $z-table_fixed_column + 1; .semi-table-thead > .semi-table-row > .semi-table-row-head { background-color: $color-table-bg-default; } } } &-body { overflow: auto; width: 100%; box-sizing: border-box; } &-colgroup { display: table-column-group; .#{$module}-col { display: table-column; } .#{$module}-column { &-expand, &-selection { width: $width-table_column_selection; } } } &-thead { & > .#{$module}-row { & > .#{$module}-row-head { background-color: $color-table_th-bg-default; color: $color-table_th-text-default; font-weight: $font-weight-bold; text-align: left; border-bottom: $width-table_header_border $border-table_base-borderStyle $color-table_th-border-default; padding-left: $spacing-table_row_head-paddingX; padding-right: $spacing-table_row_head-paddingX; padding-top: $spacing-table_row_head-paddingY; padding-bottom: $spacing-table_row_head-paddingY; vertical-align: middle; word-break: break-all; word-wrap: break-word; position: relative; &.#{$module}-cell-fixed { &-left, &-right { z-index: $z-table_fixed_column; position: sticky; background-color: $color-table-bg-default; &::before { background-color: $color-table_th-bg-default; content: ''; position: absolute; left: 0; top: 0; right: 0; bottom: 0; display: block; z-index: -1; } } &-left-last { border-right: $width-table_cell_fixed_left_last solid $color-table_shadow-border-default; box-shadow: #{$shadow-table_right}; &.resizing { @include genResizing(); } } &-right-first { border-left: $width-table_cell_fixed_right_first solid $color-table_shadow-border-default; box-shadow: #{$shadow-table_left}; &.resizing { @include genResizing(); } // scroll-bar 列无需有box-shadow &[x-type='column-scrollbar'] { box-shadow: none; border-left: transparent; } } } &.#{$module}-column-selection { text-align: center; } &[colspan]:not([colspan='1']) { text-align: center; } .#{$module}-header-column { display: inline-flex; align-items: center; } } .react-resizable { position: relative; background-clip: padding-box; } .resizing { @include genResizing(); } .react-resizable-handle { position: absolute; width: $width-table_react_resizable_handle; height: calc(100% - #{$spacing-table_resizable-offset-y} * 2); background-color: $color-table-border-default; bottom: $spacing-table_resizable-bottom; right: $spacing-table_react_resizable_handle-right; cursor: col-resize; z-index: 0; &:hover { background-color: $color-table_resizer-bg-default; } } } } &-tbody { display: table-row-group; & > .#{$module}-row { display: table-row; &:hover { & > .#{$module}-row-cell { background-color: $color-table_body-bg-hover; &.#{$module}-cell-fixed { &-left, &-right { background-color: $color-table_body-bg-default; &::before { background-color: $color-table_body-bg-hover; content: ''; position: absolute; left: 0; top: 0; right: 0; bottom: 0; display: block; z-index: -1; } } } } } & > .#{$module}-row-cell { display: table-cell; word-wrap: break-word; word-break: break-all; border-left: none; border-right: none; border-bottom: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; padding: $spacing-table_tbody_rowCell-padding; box-sizing: border-box; position: relative; vertical-align: middle; &.resizing { border-right: $width-table_resizer_border solid $color-table_resizer-bg-default; } } &.#{$module}-row { &-expand { & > .#{$module}-row-cell { background-color: $color-table_row_expanded-bg-default; } } } & > .#{$module}-cell-fixed { &-left, &-right { z-index: $z-table_fixed_column; position: sticky; background-color: $color-table-bg-default; } &-left-last { border-right: $width-table_cell_fixed_left_last solid $color-table_shadow-border-default; box-shadow: #{$shadow-table_right}; } &-right-first { border-left: $width-table_cell_fixed_right_first solid $color-table_shadow-border-default; box-shadow: #{$shadow-table_left}; } & > * { transition: background-color $transition_duration-table_body-bg $transition_function-table_body-bg $transition_delay-table_body-bg; } } & > * { transition: background-color $transition_duration-table_body-bg $transition_function-table_body-bg $transition_delay-table_body-bg; } } & > .#{$module}-row-section { display: table-row; & > .#{$module}-row-cell { background-color: $color-table_selection-bg-default; border-bottom: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } & > .#{$module}-row-cell:not(.#{$module}-column-selection) { padding: $spacing-table_tbody_rowSelection_rowCell_notSelection-paddingY $spacing-table_tbody_rowSelection_rowCell_notSelection-paddingX; } .#{$module}-section-inner { display: inline-flex; align-items: center; } } } &-virtualized .#{$module}-tbody { display: block; & > .#{$module}-row { display: flex; & > .#{$module}-row-cell { word-wrap: unset; word-break: unset; white-space: nowrap; display: inline-flex; align-items: center; overflow: hidden; } &-section { & > .#{$module}-row-cell { padding-top: $spacing-table-paddingY; padding-bottom: $spacing-table-paddingY; display: flex; } } &-expand { & > .#{$module}-row-cell { padding: 0; overflow: unset; } } } } &-footer { background-color: $color-table_footer-bg-default; padding: $spacing-table_footer-padding; margin: 0; position: relative; } .#{$module}-selection { &-wrap { // inline-flex vertical-align baseline 会导致父元素高度异常 display: inline-flex; vertical-align: bottom; } &-disabled { cursor: not-allowed; & > .#{$prefix}-checkbox { pointer-events: none; } } } .#{$module}-column { &-hidden { display: none; } &-selection { text-align: center; // width: $width-table_column_selection; .#{$prefix}-checkbox-inner-display { .#{$prefix}-icon { left: 0; top: 0; } } } &-expand { .#{$module}-expand-icon { transform: translateY(2px); &:last-child { margin-right: 0; } } } &-sorter { margin-left: $spacing-table_column_sorter-marginLeft; display: inline-block; width: $width-table_column_sorter-icon; height: $height-table_column_sorter-icon; vertical-align: middle; text-align: center; &-wrapper { display: inline-flex; align-items: center; cursor: pointer; } &-up, &-down { height: 0; display: block; color: $color-table_sorter-text-default; &:hover .anticon { color: $color-table_sorter-text-hover; } svg { width: $width-table_column_sorter-icon; height: $height-table_column_sorter-icon; } &.on { .#{$prefix}-icon-caretup, .#{$prefix}-icon-caretdown { color: $color-table_sorter_on-text-default; } } } } &-filter { margin-left: $spacing-table_column_filter-marginLeft; display: inline-flex; cursor: pointer; color: $color-table_filter-text-default; // vertical-align: middle; align-items: center; svg { width: $width-table_column_filter-icon; height: $height-table_column_filter-icon; } &.on { color: $color-table_filter_on-text-default; } } } &-bordered { .#{$module}-title { padding-left: $spacing-table_bordered_titler-paddingLeft; padding-right: $spacing-table_bordered_titler-paddingRight; border-top: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-right: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-left: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } .#{$module}-container { border: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-right: 0; border-bottom: 0; } .#{$module}-header { &::-webkit-scrollbar { border-right: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } } .#{$module}-footer { border-left: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-right: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-bottom: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } .#{$module}-thead > .#{$module}-row > .#{$module}-row-head { .react-resizable-handle { background-color: transparent; } } .#{$module}-thead > .#{$module}-row > .#{$module}-row-head, .#{$module}-tbody > .#{$module}-row > .#{$module}-row-cell { border-right: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } .#{$module}-placeholder { border-right: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; } } &-placeholder { position: relative; z-index: 1; padding: #{$spacing-table-paddingY} #{$spacing-table-paddingX}; color: $color-table_placeholder-text-default; font-size: #{$font-table_base-fontSize}; text-align: center; background: $color-table_pl-bg-default; border-bottom: $width-table_base_border $border-table_base-borderStyle $color-table-border-default; border-radius: 0 0 #{$radius-table_base} #{$radius-table_base}; } &-fixed { table-layout: fixed; min-width: 100%; & > .#{$module}-tbody { & > .#{$module}-row-expand > .#{$module}-row-cell > .#{$module}-expand-inner, & > .#{$module}-row-section > .#{$module}-row-cell > .#{$module}-section-inner { position: sticky; overflow: auto; left: 0; margin-left: -$spacing-table_expand_row-paddingLeft; margin-right: -$spacing-table_expand_row-paddingRight; padding-left: $spacing-table_expand_row-paddingLeft; padding-right: $spacing-table_expand_row-paddingRight; height: 100%; display: flex; align-items: center; } } // when header is fixed, table should use `table-layout: fixed` to avoid align bug &-header { table { table-layout: fixed; } } } &-scroll { &-position { &-left { .#{$module}-tbody, .#{$module}-thead { & > .#{$module}-row > .#{$module}-cell-fixed-left-last { box-shadow: none; } } } &-right { .#{$module}-tbody, .#{$module}-thead { & > .#{$module}-row > .#{$module}-cell-fixed-right-first { box-shadow: none; } } } } } &-pagination-outer { color: $color-table_page-text-default; min-height: $height-table_pagination_outer_min; } } .#{$module}-expand-icon { color: $color-table_expanded_icon-default; cursor: pointer; display: inline-flex; align-items: center; user-select: none; background: $color-table_expanded-bg-default; position: relative; margin-right: $spacing-table_expand_icon-marginRight; &-cell { display: inline-flex; align-items: center; justify-content: center; } .#{$module}-expandedIcon-show{ transition: transform 150ms cubic-bezier(0.62, 0.05, 0.36, 0.95); transform: rotate(90deg); } .#{$module}-expandedIcon-hide{ transition: transform 150ms cubic-bezier(0.62, 0.05, 0.36, 0.95); transform: rotate(0deg); } } @import './rtl.scss';