.#{$ns}Table { position: relative; background: $Table-bg; border: $Table-borderWidth solid $Table-borderColor; border-radius: $Table-borderRadius; margin-bottom: $gap-md; .#{$ns}Form-control > & { margin-bottom: $gap-sm; } &-fixedLeft, &-fixedRight { position: absolute; background: $Table-bg; z-index: 5; top: -999999px; &.in { top: auto; } } &-fixedLeft { box-shadow: $Table-fixedLeft-boxShadow; left: 0; } &-fixedRight { box-shadow: $Table-fixedRight-boxShadow; right: 0; .#{$ns}Table-table > thead > tr > th:first-child, .#{$ns}Table-table > tbody > tr > td:first-child { padding-left: $TableCell-paddingX; } } &-fixedTop { position: absolute; background: $Table-bg; z-index: -1; opacity: 0; box-shadow: $Table-fixedTop-boxShadow; &.in { position: fixed; opacity: 1; z-index: $zindex-affix; } > .#{$ns}Table-fixedLeft, > .#{$ns}Table-fixedRight { z-index: $zindex-affix + 10; // box-shadow: none; background: transparent; border-top: $Table-borderWidth solid $Table-borderColor; > table { margin-bottom: px2rem(5px); } } > .#{$ns}Table-heading { border-bottom: none; } > .#{$ns}Table-wrapper { border-top: $Table-borderWidth solid $Table-borderColor; } &.is-fakeHide { > .#{$ns}Table-fixedLeft, > .#{$ns}Table-fixedRight, > .#{$ns}Table-wrapper { visibility: hidden; position: absolute; } } } &-heading { background: $Table-heading-bg; border-bottom: $Table-borderWidth solid $Table-borderColor; padding: ($Table-heading-height - $Table-fontSize * $lineHeightBase) / 2 $Table-toolbar-paddingX; } &--unsaved &-heading { background: $Table--unsaved-heading-bg; color: $Table--unsaved-heading-color; } &-wrapper { overflow: hidden; } &-placeholder { color: $text--muted-color; text-align: center; height: $Table-placeholder-height; background-color: transparent !important; &:hover { color: $text--muted-color; background-color: transparent !important; } > td { vertical-align: middle !important; text-align: center; } } &-header { padding: $Table-toolbar-paddingY $Table-toolbar-paddingX; > * + .#{$ns}Button, > * + .#{$ns}ButtonGroup, > * + .#{$ns}ButtonToolbar { margin-left: $Crud-toolbar-gap; } } &-toolbar { @include clearfix(); display: flex; padding: $Table-toolbar-paddingY $Table-toolbar-paddingX; flex-wrap: wrap; .#{$ns}DropDown { &-menuItem { height: auto; .#{$ns}Checkbox { display: flex; align-items: center; } } } } &-header + &-toolbar { padding-top: 0; } &-contentWrap { position: relative; } &-header + &-contentWrap, &-toolbar + &-contentWrap { border-top: $Table-borderWidth solid $Table-borderColor; } &-footToolbar { border-top: $Table-borderWidth solid $Table-borderColor; } &-actions { display: inline-block; > * { margin-right: $Crud-toolbar-gap; } } &-content { min-height: 0.01%; overflow-x: auto; transform: translateZ(0); } &-table { width: 100%; max-width: 100%; margin-bottom: 0; font-size: $Table-fontSize; color: $Table-color; background-color: $Table-bg; border-spacing: 0; border-collapse: collapse; &--withCombine { > thead > tr > th, > tbody > tr > td { &:first-child { padding-left: $TableCell-paddingX !important; } &:last-child { padding-right: $TableCell-paddingX !important; } } // reset > tbody > tr { @if $Table-strip-bg !=transparent { &.#{$ns}Table-tr--odd { background-color: transparent; } } &:hover { background-color: transparent; } > td { vertical-align: middle; } > td:not(:last-child) { border-right: $Table-borderWidth solid $Table-borderColor; } } } > thead > tr { > th { background-color: $Table-thead-bg; &[colspan] { text-align: center; } padding: $TableCell-paddingY $TableCell-paddingX; &:first-child { padding-left: $TableCell--edge-paddingX; } &:last-child { padding-right: $TableCell--edge-paddingX; } &:not(:last-child) { border-right: $Table-thead-borderWidth solid $Table-thead-borderColor; } border-bottom: $Table-thead-borderWidth solid $Table-thead-borderColor; font-size: $Table-thead-fontSize; color: $Table-thead-color; font-weight: $fontWeightNormal; white-space: nowrap; .#{$ns}TableCell--title { display: flex; align-items: center; } .#{$ns}Remark { margin-left: $gap-xs; } } } > thead > tr + tr { border-top: $Table-borderWidth solid $Table-borderColor; } > thead > tr { border-bottom: $Table-borderWidth solid $Table-borderColor; } > tbody > tr { & + tr { border-top: $Table-borderWidth solid $Table-borderColor; > th { border-top: $Table-thead-borderWidth solid $Table-thead-borderColor; } } > th { background-color: $Table-thead-bg; // font-size: $Table-thead-fontSize; color: $Table-thead-color; font-weight: $fontWeightNormal; white-space: nowrap; border-right: $Table-thead-borderWidth solid $Table-thead-borderColor; } > td, > th { padding: $TableCell-paddingY $TableCell-paddingX; vertical-align: top; &:first-child { padding-left: $TableCell--edge-paddingX; } &:last-child { padding-right: $TableCell--edge-paddingX; } } @if $Table-strip-bg !=transparent { background-color: transparent; &.#{$ns}Table-tr--odd { background-color: $Table-strip-bg; } } &:hover, &.is-hovered { background-color: $Table-onHover-bg; border-color: $Table-onHover-borderColor; color: $Table-onHover-color; & + tr { border-color: $Table-onHover-borderColor; } } &.is-checked { background-color: $Table-onChecked-bg; border-color: $Table-onChecked-borderColor; color: $Table-onChecked-color; & + tr { border-color: $Table-onChecked-borderColor; } } &.is-moved, &.is-modified { background-color: $Table-onModified-bg; border-color: $Table-onModified-borderColor; color: $Table-onModified-color; & + tr { border-color: $Table-onModified-borderColor; } } &.bg-light { @include color-variant($light, 2%, 3%, 3%, 5%); color: $text-color; } &.bg-dark { @include color-variant($dark, 5%, 10%, 5%, 10%); @include font-variant($dark); } &.bg-black { @include color-variant($black, 5%, 10%, 5%, 10%); @include font-variant($black); } &.bg-primary { @include color-variant($primary, 5%, 10%, 5%, 10%); @include font-variant($primary); } &.bg-success { @include color-variant($success, 5%, 10%, 5%, 10%); @include font-variant($success); } &.bg-info { @include color-variant($info, 5%, 10%, 5%, 10%); @include font-variant($info); } &.bg-warning { @include color-variant($warning, 5%, 10%, 5%, 10%); @include font-variant($warning); } &.bg-danger { @include color-variant($danger, 5%, 10%, 5%, 10%); @include font-variant($danger); } &.is-dragging { opacity: $Table-onDragging-opacity; } } @for $i from 2 through 10 { tr.#{$ns}Table-tr--#{$i}th.is-expanded { .#{$ns}Table-expandCell:before { right: px2rem(7px) + px2rem(-20px) * ($i - 1); } } tr.#{$ns}Table-tr--#{$i}th { .#{$ns}Table-expandBtn { position: relative; right: -(px2rem(20px)) * ($i - 1); } .#{$ns}Table-expandCell + td { position: relative; &::before { content: ''; position: absolute; width: px2rem(1px); top: 0; bottom: 0; left: px2rem(-8px) + px2rem(20px) * ($i - 2); height: auto; background-color: $Table-tree-borderColor; } &::after { content: ''; position: absolute; height: px2rem(1px); top: px2rem(18px); left: px2rem(-8px) + px2rem(20px) * ($i - 2); width: px2rem(10px); background-color: $Table-tree-borderColor; } padding-left: px2rem(20px) * $i - px2rem(20px); } } tr.#{$ns}Table-tr--#{$i}th.is-expandable { .#{$ns}Table-expandCell + td { padding-left: px2rem(20px) * ($i - 1); } } tr.#{$ns}Table-tr--#{$i}th.is-last:not(.is-expanded) { .#{$ns}Table-expandCell + td { &::before { height: px2rem(18px); bottom: auto; } } } } > thead > tr > th.#{$ns}Table-checkCell, > tbody > tr > td.#{$ns}Table-checkCell { border-right: 0; width: px2rem(1px); .#{$ns}Checkbox { margin: 0; } } > thead > tr > th.#{$ns}Table-expandCell, > tbody > tr > td.#{$ns}Table-expandCell { border-right: 0; width: px2rem(1px); padding-right: 0; } > thead > tr > th.#{$ns}Table-dragCell, > tbody > tr > td.#{$ns}Table-dragCell { border-right: 0; width: px2rem(1px); padding-right: 0; cursor: move; } > tbody > tr > td.#{$ns}Table-expandCell { position: relative; @for $i from 1 through 7 { .#{$ns}Table-divider-#{$i} { position: absolute; width: px2rem(1px); top: 0; bottom: 0; height: 100%; background-color: $Table-tree-borderColor; right: px2rem(7px) + px2rem(-20px) * ($i - 1); } } } > tbody > tr.is-expanded > td.#{$ns}Table-expandCell { // position: relative; &::before { content: ''; position: absolute; width: px2rem(1px); top: px2rem(28px); bottom: 0; right: px2rem(7px); height: auto; background-color: $Table-tree-borderColor; } } > thead > tr > th.#{$ns}TableCell--sortable { padding-right: $TableCell-paddingX + $TableCell-sortBtn-width; position: relative; } > thead > tr > th.#{$ns}TableCell--searchable { padding-right: $TableCell-paddingX + $TableCell-searchBtn-width; position: relative; } > thead > tr > th.#{$ns}TableCell--filterable { padding-right: $TableCell-paddingX + $TableCell-filterBtn-width; position: relative; } } &Cell-sortBtn { cursor: pointer; width: $TableCell-sortBtn-width; height: px2rem(20px); display: flex; flex-direction: column; justify-content: center; align-items: center; position: absolute; right: $TableCell-paddingX - $TableCell-sortBtn-width / 2; top: 50%; transform: translateY(-50%); color: $icon-color; &:hover { color: $icon-onHover-color; } &--up > svg, &--down > svg, &--default > svg { color: inherit; width: 12x; height: 12px; } &--up, &--down, &--default { display: none; position: absolute; z-index: 2; font-style: normal; &.is-active { display: inline-block; } } &--default { &.is-active { color: $text--muted-color; &:hover { color: $text-color; } } } &--up, &--down { &.is-active { color: $TableCell-sortBtn--onActive-color; } } } &Cell-searchBtn { cursor: pointer; // width: $TableCell-searchBtn-width; position: absolute; right: px2rem(5px); top: 50%; transform: translateY(-50%); color: $text--muted-color; svg.icon { width: 12px; height: 12px; } &:hover { color: $text-color; } &.is-active { color: $TableCell-searchBtn--onActive-color; } } &Cell-searchPopOver { border: none; min-width: px2rem(320px); max-width: px2rem(640px); .#{$ns}Panel { margin: 0; } } &Cell-filterBtn { cursor: pointer; width: $TableCell-filterBtn-width; position: absolute; right: $TableCell-paddingX - $TableCell-filterBtn-width / 2; top: 50%; transform: translateY(-50%); color: $text--muted-color; svg.icon { width: 12px; height: 12px; } &:hover { color: $text-color; } &.is-active { color: $TableCell-filterBtn--onActive-color; } .#{$ns}Remark { display: inline; } } &Cell-filterPopOver { border: none; width: px2rem(160px); .#{$ns}DropDown-menu { margin: 0; padding: 0; border-radius: 0; .#{$ns}DropDown-divider { height: $TableCell-filterPopOver-dropDownItem-height; line-height: $TableCell-filterPopOver-dropDownItem-height; padding: $TableCell-filterPopOver-dropDownItem-padding; background-color: $white; margin: 0; &:hover { background-color: $light; color: $primary; } &.is-selected { background-color: $light; color: $primary; } .#{$ns}Checkbox { width: 100%; margin: 0; } } } } &-itemActions-wrap { position: absolute; width: 100%; left: 0; top: 0; min-height: 30px; pointer-events: none; box-shadow: $Table-onHover-boxShadow; } &-itemActions { pointer-events: all; position: absolute; // background: $Table-onHover-bg; background: linear-gradient( 90deg, rgba($Table-onHover-bg, 0) 0%, rgba($Table-onHover-bg, 1) 20%, rgba($Table-onHover-bg, 1) 100% ); top: $Table-borderWidth; bottom: 0; right: 0; padding-left: px2rem(50px); padding-right: $TableCell-paddingX; display: flex; align-items: center; a { cursor: pointer; padding: $gap-xs $gap-sm; color: $link-color; text-decoration: $link-decoration; &:hover { color: $link-onHover-color; text-decoration: $link-onHover-decoration; } &.is-disabled { pointer-events: none; opacity: $Button-onDisabled-opacity; color: $text--muted-color; } } } &-dragTip { color: $text--loud-color; clear: both; margin-top: $gap-xs; width: 100%; color: $info; } &-footTable { position: relative; width: 100%; border-spacing: 0; border-collapse: collapse; margin-bottom: 0; background: transparent; > tbody > tr > th { width: px2rem(120px); text-align: right; padding: $TableCell-paddingY $TableCell-paddingX; } > tbody > tr > td { word-break: break-all; padding: $TableCell-paddingY $TableCell-paddingX; } > tbody > tr:not(:first-child) { border-top: $Table-borderWidth solid lighten($Table-thead-borderColor, 2.5%); } } &-expandBtn { position: relative; z-index: 1; color: $Table-expandBtn-color; display: inline-flex; justify-content: center; align-items: center; width: px2rem(14px); line-height: 1; height: 16px; > svg { display: inline-block; text-align: center; cursor: pointer; transition: transform ease-in-out 0.2s, top ease-in-out 0.2s; position: relative; transform-origin: 50% 50%; } &.is-active > svg { transform: rotate(90deg); } &:hover { text-decoration: none; } } &-dragBtn { margin-right: $gap-xs; display: inline-block; visibility: hidden; cursor: move; color: $icon-color; &:hover { text-decoration: none; color: $icon-onHover-color; } } &-table > tbody > tr:hover .#{$ns}Table-dragBtn, &-table > tbody > tr.is-dragging .#{$ns}Table-dragBtn, &-table > tbody > tr.is-drop-allowed .#{$ns}Table-dragBtn { visibility: visible; } .fake-hide { visibility: hidden; position: absolute; } } .#{$ns}OperationField { margin: px2rem(-3px); > .#{$ns}Button, > .#{$ns}Button--disabled-wrap > .#{$ns}Button { margin: px2rem(3px); } > .#{$ns}Button--link { padding: 0; margin-right: px2rem(10px); } }