@import "../core/index-noreset.scss"; @import "scss/variable"; @import "scss/mixin"; #{$tree-prefix} { @include box-sizing; &, &-child-tree { margin: 0; padding: 0; list-style: none; } &-node { white-space: nowrap; } &-node-inner { font-size: 0; outline: none; } &-node-label-wrapper { display: inline-block; margin: 0 $tree-node-title-margin; vertical-align: middle; } &-node-label { height: $tree-node-title-height; line-height: $tree-node-title-height; padding: 0 $tree-node-title-padding; border-radius: $tree-node-title-border-radius; font-size: $tree-node-title-font-size; } &-node-input.#{$css-prefix}input { margin: 0 $tree-node-title-margin; } &-switcher { position: relative; display: inline-block; vertical-align: middle; margin-right: $tree-switch-margint-right; } &-switcher.#{$css-prefix}noline { width: $tree-switch-arrow-size; height: $tree-switch-arrow-size; line-height: $tree-switch-arrow-size; cursor: pointer; #{$tree-prefix}-switcher-icon { @include icon-size($tree-switch-arrow-size); transition: transform $motion-duration-immediately $motion-linear; color: $tree-switch-arrow-color; } &.#{$css-prefix}close #{$tree-prefix}-switcher-icon { @include icon-size( $size: $tree-switch-arrow-size, $transform: rotate(-90deg) ); } &:not(.#{$css-prefix}disabled):hover #{$tree-prefix}-switcher-icon { color: $tree-switch-hover-arrow-color; } &.#{$css-prefix}disabled { cursor: not-allowed; #{$tree-prefix}-switcher-icon { color: $tree-node-disabled-color; } } } &-switcher.#{$css-prefix}noop-noline { width: $tree-switch-arrow-size; height: $tree-switch-arrow-size; } &-switcher.#{$css-prefix}line { width: $tree-switch-size; height: $tree-switch-size; line-height: $tree-switch-size - $tree-switch-border-width * 2; border: $tree-switch-border-width $line-solid $tree-switch-border-color; border-radius: $tree-switch-corner; background-color: $tree-switch-bg-color; cursor: pointer; #{$tree-prefix}-switcher-icon { @include icon-size($tree-switch-icon-size, ($tree-switch-size - $tree-switch-icon-size - $tree-switch-border-width * 2) / 2); color: $tree-switch-icon-color; } &:not(.#{$css-prefix}disabled):hover { border-color: $tree-switch-hover-border-color; background-color: $tree-switch-hover-bg-color; #{$tree-prefix}-switcher-icon { color: $tree-switch-hover-icon-color; } } &.#{$css-prefix}disabled { border-color: $color-line1-1; background-color: $color-white; cursor: not-allowed; #{$tree-prefix}-switcher-icon { color: $tree-node-disabled-color; } } } &-switcher.#{$css-prefix}noop-line { width: $tree-switch-size; height: $tree-switch-size; } &-switcher.#{$css-prefix}noop-line-noroot { height: 0; border-left: $tree-switch-border-width $line-solid $tree-line-color; border-bottom: $tree-line; #{$tree-prefix}-right-angle { bottom: -$tree-line-width; } } &-switcher.#{$css-prefix}loading { &.#{$css-prefix}loading-noline { width: $tree-switch-arrow-size; height: $tree-switch-arrow-size; line-height: $tree-switch-arrow-size; } &.#{$css-prefix}loading-line { width: $tree-switch-size; height: $tree-switch-size; line-height: $tree-switch-size - $tree-switch-border-width * 2; border: $tree-switch-border-width $line-solid $color-transparent; } #{$tree-prefix}-switcher-icon { @include icon-size($tree-switch-arrow-size); color: $color-brand1-6; } } &-right-angle { position: absolute; bottom: ($tree-switch-size - $tree-switch-border-width * 2 - $tree-line-width) / 2; left: - ($tree-child-indent-right + $tree-line-width + $tree-switch-border-width); display: block; width: $tree-child-indent-right + $tree-line-width; height: $tree-node-title-height + $tree-node-padding - $tree-line-width * 2; border-left: $tree-line; border-bottom: $tree-line; } &.#{$css-prefix}label-block { #{$tree-prefix}-node-inner { display: flex; align-items: center; outline: none; } #{$tree-prefix}-node-label-wrapper { flex: 1 1 auto; } } &.#{$css-prefix}node-indent { #{$tree-prefix}-node #{$tree-prefix}-node { margin-left: $tree-child-indent; } #{$tree-prefix}-node-inner { padding-top: $tree-node-padding / 2; padding-bottom: $tree-node-padding / 2; &:focus { #{$tree-prefix}-node-label { @include tree-node-state($tree-node-hover-color, $tree-node-hover-bg-color); } } } #{$tree-prefix}-node-label-wrapper { border-top: $line-2 solid $color-transparent; border-bottom: $line-2 solid $color-transparent; } #{$tree-prefix}-node-label { transition: color $motion-duration-immediately $motion-linear, background-color $motion-duration-immediately $motion-linear; cursor: default; @include tree-node-state($tree-node-normal-color, $tree-node-normal-background); } #{$tree-prefix}-node-label-selectable { cursor: pointer; } #{$tree-prefix}-node-label:hover { @include tree-node-state($tree-node-hover-color, $tree-node-hover-bg-color); } #{$tree-prefix}-node-inner.#{$css-prefix}selected #{$tree-prefix}-node-label { @include tree-node-state($tree-node-selected-color, $tree-node-selected-background); } #{$tree-prefix}-node-inner.#{$css-prefix}disabled #{$tree-prefix}-node-label, #{$tree-prefix}-node-inner.#{$css-prefix}disabled #{$tree-prefix}-node-label:hover { @include tree-node-state($tree-node-disabled-color, $tree-node-disabled-background); cursor: not-allowed; } #{$tree-prefix}-node-inner.#{$css-prefix}drag-over #{$tree-prefix}-node-label { background-color: $color-brand1-6; color: $color-white; opacity: .8; } #{$tree-prefix}-node-inner.#{$css-prefix}drag-over-gap-top #{$tree-prefix}-node-label-wrapper { border-top-color: $color-brand1-6; } #{$tree-prefix}-node-inner.#{$css-prefix}drag-over-gap-bottom #{$tree-prefix}-node-label-wrapper { border-bottom-color: $color-brand1-6; } } &.#{$css-prefix}node-block #{$tree-prefix}-node-inner { padding-top: $tree-node-padding; padding-bottom: $tree-node-padding; transition: color $motion-duration-immediately $motion-linear, background-color $motion-duration-immediately $motion-linear; cursor: pointer; @include tree-node-state($tree-node-normal-color, $tree-node-normal-background); &:hover, &:focus { @include tree-node-state($tree-node-hover-color, $tree-node-hover-bg-color); } &.#{$css-prefix}selected { @include tree-node-state($tree-node-selected-color, $tree-node-selected-background); } &.#{$css-prefix}disabled, &.#{$css-prefix}disabled:hover { @include tree-node-state($tree-node-disabled-color, $tree-node-disabled-background); cursor: not-allowed; } } &.#{$css-prefix}show-line &-node &-node:not(:last-child) { margin-left: $tree-child-indent-left; border-left: $tree-line; padding-left: $tree-child-indent-right; } &-node.#{$css-prefix}filtered > #{$tree-prefix}-node-inner #{$tree-prefix}-node-label { color: $color-brand1-6; &:hover { color: $color-brand1-6; } } } @import './rtl.scss';