@function add-if ($value1, $value2) {
@if $value1 == null or $value2 == null {
@return null;
}
@return $value1 + $value2;
}
@mixin treelist-ui-body (
$padding-left,
$padding-right,
$toolstrip-background-color: null,
$tool-float-indicator-color: null,
$tool-float-indicator-width: null,
$tool-selected-color: null,
$tool-selected-background-color: null,
$tool-indicator-selected-color: null,
$tool-indicator-selected-width: null,
$item-expanded-background-color: null,
$item-expanded-child-background-color: null,
$item-line-height : null,
$item-line-height-big: null,
$item-selected-background-color: null,
$item-icon-color: null,
$item-icon-over-color: null,
$item-icon-font-size: null,
$item-icon-font-size-big: null,
$item-icon-width: null,
$item-icon-width-big: null,
$item-expander-color: null,
$item-expander-over-color: null,
$item-expander-font-size: null,
$item-expander-font-size-big: null,
$item-expander-width: null,
$item-expander-width-big: null,
$item-expander-glyph: null,
$item-expander-expanded-glyph: null,
$item-text-color: null,
$item-text-icon-gap: null,
$item-text-over-color: null,
$item-text-font-size: null,
$item-text-overflow: null,
$item-icon-over-transition: null,
$item-text-over-transition: null,
$item-expander-over-transition: null,
$row-indicator-selected-color: null,
$row-indicator-selected-over-color: null,
$row-indicator-over-color: null,
$row-indicator-width: null,
$row-selected-background-color: null,
$row-selected-over-background-color: null,
$row-over-background-color: null
) {
.#{$prefix}treelist-toolstrip {
background-color: $toolstrip-background-color;
}
.#{$prefix}treelist-item-selected {
&.#{$prefix}treelist-item {
background-color: $item-selected-background-color;
}
&.#{$prefix}treelist-item-tool {
color: $tool-selected-color;
background-color: $tool-selected-background-color;
@if $tool-indicator-selected-width != null {
&:after {
height: $item-line-height;
@if $enable-big {
.x-big & {
height: $item-line-height-big;
}
}
position: absolute;
top: 0;
left: 0;
content: " ";
width: $tool-indicator-selected-width;
background-color: $tool-indicator-selected-color;
}
}
}
> .#{$prefix}treelist-row {
background-color: $row-selected-background-color;
}
> .#{$prefix}treelist-row-over {
background-color: $row-selected-over-background-color;
}
}
.#{$prefix}treelist-item-tool {
padding-left: $padding-left;
padding-right: $padding-right;
}
@if $tool-float-indicator-color != null and $tool-float-indicator-width != null {
.#{$prefix}treelist-item-tool-floated:after {
height: $item-line-height;
@if $enable-big {
.x-big & {
height: $item-line-height-big;
}
}
position: absolute;
top: 0;
left: 0;
content: " ";
width: $tool-float-indicator-width;
background-color: $tool-float-indicator-color;
}
}
.#{$prefix}treelist-item-icon:before,
.#{$prefix}treelist-item-tool:before,
.#{$prefix}treelist-item-expander {
line-height: $item-line-height;
@if $enable-big {
.x-big & {
line-height: $item-line-height-big;
}
}
}
.#{$prefix}treelist-item-icon,
.#{$prefix}treelist-item-tool,
.#{$prefix}treelist-item-expander {
text-align: center;
background-repeat: no-repeat;
background-position: 0 center;
}
.#{$prefix}treelist-item-loading .#{$prefix}treelist-item-icon {
background-image: theme-background-image('tree/loading', 'gif');
color: transparent;
}
.#{$prefix}treelist-item-icon,
.#{$prefix}treelist-item-tool {
color: $item-icon-color;
font-size: $item-icon-font-size;
width: $item-icon-width;
@if $enable-big {
.x-big & {
font-size: $item-icon-font-size-big;
width: $item-icon-width-big;
}
}
}
.#{$prefix}treelist-item-tool {
width: add-if($padding-left, add-if($padding-right, $item-icon-width));
@if $enable-big {
.x-big & {
width: add-if($padding-left, add-if($padding-right, $item-icon-width-big));
}
}
}
.#{$prefix}treelist-item-expander {
color: $item-expander-color;
font-size: $item-expander-font-size;
@if $enable-big {
.x-big & {
font-size: $item-expander-font-size-big;
}
}
width: $item-expander-width;
@if $enable-big {
.x-big & {
width: $item-expander-width-big;
}
}
}
.#{$prefix}treelist-item-expander:after {
@include font-icon($item-expander-glyph, $pseudo: false);
}
.#{$prefix}treelist-item-expanded > * > * > .#{$prefix}treelist-item-expander:after {
@include font-icon($item-expander-expanded-glyph, $pseudo: false);
}
$text-indent: $item-text-icon-gap;
@if $text-indent == null {
$text-indent: $treelist-item-text-icon-gap;
}
.#{$prefix}treelist-item-text {
color: $item-text-color;
margin-left: add-if($item-icon-width, $text-indent);;
margin-right: $item-expander-width;
font-size: $item-text-font-size;
line-height: $item-line-height;
@if $enable-big {
.x-big & {
margin-left: add-if($item-icon-width-big, $text-indent);;
line-height: $item-line-height-big;
margin-right: $item-expander-width-big;
}
}
text-overflow: $item-text-overflow;
}
.#{$prefix}treelist-row {
padding-left: $padding-left;
padding-right: $padding-right;
}
@if $row-indicator-width != null {
.#{$prefix}treelist-row-over:before,
.#{$prefix}treelist-item-selected > .#{$prefix}treelist-row:before {
content: " ";
position: absolute;
display: block;
left: 0;
top: 0;
width: $row-indicator-width;
height: 100%;
}
.#{$prefix}treelist-row-over:before {
background-color: $row-indicator-over-color;
}
.#{$prefix}treelist-item-selected > .#{$prefix}treelist-row-over:before {
background-color: $row-indicator-selected-over-color;
}
.#{$prefix}treelist-item-selected > .#{$prefix}treelist-row:before {
background-color: $row-indicator-selected-color;
}
}
.#{$prefix}treelist-item-floated {
.#{$prefix}treelist-container {
width: auto;
}
> .#{$prefix}treelist-row {
background-color: $toolstrip-background-color;
}
> .#{$prefix}treelist-container {
margin-left: -$item-icon-width;
@if $enable-big {
.x-big & {
margin-left: -$item-icon-width-big;
}
}
}
> * > * > .#{$prefix}treelist-item-text {
margin-left: 0;
}
> * .#{$prefix}treelist-row {
padding-left: 0;
}
.#{$prefix}treelist-row:before {
width: 0;
}
> .#{$prefix}treelist-row-over {
background-color: $toolstrip-background-color;
> * > .#{$prefix}treelist-item-text {
color: $item-text-color;
}
}
}
.#{$prefix}treelist-item-expanded {
background-color: $item-expanded-background-color;
& .#{$prefix}treelist-item {
background-color: $item-expanded-child-background-color;
}
& > .#{$prefix}treelist-item-expander:after {
@include font-icon($item-expander-expanded-glyph, $pseudo: false);
}
}
.#{$prefix}treelist-item-collapsed > * > .#{$prefix}treelist-item-expander:after {
@include font-icon($item-expander-glyph, $pseudo: false);
}
&.#{$prefix}treelist-highlight-path {
.#{$prefix}treelist-item-over > * > * {
> .#{$prefix}treelist-item-icon {
color: $item-icon-over-color;
transition: $item-icon-over-transition;
}
> .#{$prefix}treelist-item-text {
color: $item-text-over-color;
transition: $item-text-over-transition;
}
> .#{$prefix}treelist-item-expander {
color: $item-expander-over-color;
transition: $item-expander-over-transition;
}
}
}
.#{$prefix}treelist-row-over {
background-color: $row-over-background-color;
> * > .#{$prefix}treelist-item-icon {
color: $item-icon-over-color;
transition: $item-icon-over-transition;
}
> * > .#{$prefix}treelist-item-text {
color: $item-text-over-color;
transition: $item-text-over-transition;
}
> * > .#{$prefix}treelist-item-expander {
color: $item-expander-over-color;
transition: $item-expander-over-transition;
}
}
.#{$prefix}treelist-expander-first {
.#{$prefix}treelist-item-icon {
left: $item-expander-width;
@if $enable-big {
.x-big & {
left: $item-expander-width-big;
}
}
}
.#{$prefix}treelist-item-text {
margin-left: add-if($item-expander-width, add-if($item-icon-width, $text-indent));
@if $enable-big {
.x-big & {
margin-left: add-if($item-expander-width-big, add-if($item-icon-width-big, $text-indent));
}
}
margin-right: 0;
}
.#{$prefix}treelist-item-hide-icon > * > * > .#{$prefix}treelist-item-text {
margin-left: add-if($item-expander-width, $text-indent);
@if $enable-big {
.x-big & {
margin-left: add-if($item-expander-width-big, $text-indent);
}
}
}
}
.#{$prefix}treelist-item-hide-icon > * > * > .#{$prefix}treelist-item-text {
margin-left: $text-indent;
}
}
@mixin treelist-ui (
$ui,
$background-color: null,
$padding: null,
$toolstrip-background-color: null,
$tool-float-indicator-color: null,
$tool-float-indicator-width: null,
$tool-selected-color: null,
$tool-selected-background-color: null,
$tool-indicator-selected-color: null,
$tool-indicator-selected-width: null,
$item-expanded-background-color: null,
$item-expanded-child-background-color: null,
$item-line-height : null,
$item-line-height-big : null,
$item-selected-background-color: null,
$item-icon-color: null,
$item-icon-over-color: null,
$item-icon-font-size: null,
$item-icon-font-size-big: null,
$item-icon-width: null,
$item-icon-width-big: null,
$item-expander-color: null,
$item-expander-over-color: null,
$item-expander-font-size: null,
$item-expander-font-size-big: null,
$item-expander-width: null,
$item-expander-width-big: null,
$item-expander-glyph: null,
$item-expander-expanded-glyph: null,
$item-text-color: null,
$item-text-icon-gap: null,
$item-text-over-color: null,
$item-text-font-size: null,
$item-text-overflow: null,
$item-icon-over-transition: null,
$item-text-over-transition: null,
$item-expander-over-transition: null,
$row-indicator-selected-color: null,
$row-indicator-selected-over-color: null,
$row-indicator-over-color: null,
$row-indicator-width: null,
$row-selected-background-color: null,
$row-selected-over-background-color: null,
$row-over-background-color: null
) {
.#{$prefix}treelist-#{$ui} {
background-color: $background-color;
background-position: $item-icon-width 0%;
@if $enable-big {
.x-big & {
background-position: $item-icon-width-big 0%;
}
}
@if $padding != null {
padding: top($padding) 0 bottom($padding) 0;
}
@include treelist-ui-body(
$padding-left: if($padding == null, null, left($padding)),
$padding-right: if($padding == null, null, right($padding)),
$toolstrip-background-color: $toolstrip-background-color,
$tool-float-indicator-color: $tool-float-indicator-color,
$tool-float-indicator-width: $tool-float-indicator-width,
$tool-selected-color: $tool-selected-color,
$tool-selected-background-color: $tool-selected-background-color,
$tool-indicator-selected-color: $tool-indicator-selected-color,
$tool-indicator-selected-width: $tool-indicator-selected-width,
$item-expanded-background-color: $item-expanded-background-color,
$item-expanded-child-background-color: $item-expanded-child-background-color,
$item-line-height : $item-line-height,
$item-line-height-big: $item-line-height-big,
$item-selected-background-color: $item-selected-background-color,
$item-icon-color: $item-icon-color,
$item-icon-over-color: $item-icon-over-color,
$item-icon-font-size: $item-icon-font-size,
$item-icon-font-size-big: $item-icon-font-size-big,
$item-icon-width: $item-icon-width,
$item-icon-width-big: $item-icon-width-big,
$item-expander-color: $item-expander-color,
$item-expander-over-color: $item-expander-over-color,
$item-expander-font-size: $item-expander-font-size,
$item-expander-font-size-big: $item-expander-font-size-big,
$item-expander-width: $item-expander-width,
$item-expander-width-big: $item-expander-width-big,
$item-expander-glyph: $item-expander-glyph,
$item-expander-expanded-glyph: $item-expander-expanded-glyph,
$item-text-color: $item-text-color,
$item-text-icon-gap: $item-text-icon-gap,
$item-text-over-color: $item-text-over-color,
$item-text-font-size: $item-text-font-size,
$item-text-overflow: $item-text-overflow,
$item-icon-over-transition: $item-icon-over-transition,
$item-text-over-transition: $item-text-over-transition,
$item-expander-over-transition: $item-expander-over-transition,
$row-indicator-selected-color: $row-indicator-selected-color,
$row-indicator-selected-over-color: $row-indicator-selected-over-color,
$row-indicator-over-color: $row-indicator-over-color,
$row-indicator-width: $row-indicator-width,
$row-selected-background-color: $row-selected-background-color,
$row-selected-over-background-color: $row-selected-over-background-color,
$row-over-background-color: $row-over-background-color
);
}
}
.#{$prefix}treelist {
background-color: $treelist-background-color;
background-position: $treelist-item-icon-width 0%;
@if $enable-big {
.x-big & {
background-position: $treelist-item-icon-width-big 0%;
}
}
overflow: hidden;
padding: top($treelist-padding) 0 bottom($treelist-padding) 0;
}
.#{$prefix}treelist-container,
.#{$prefix}treelist-root-container {
width: 100%;
}
.#{$prefix}treelist-toolstrip {
display: none;
}
.#{$prefix}treelist-micro {
> .#{$prefix}treelist-toolstrip {
display: inline-block;
}
> .#{$prefix}treelist-root-container {
display: none;
}
}
.#{$prefix}treelist-item,
.#{$prefix}treelist-container,
.#{$prefix}treelist-root-container {
overflow: hidden;
list-style: none;
padding: 0;
margin: 0;
}
.#{$prefix}treelist-item-tool,
.#{$prefix}treelist-row,
.#{$prefix}treelist-item-wrap {
position: relative;
}
.#{$prefix}treelist-item-icon,
.#{$prefix}treelist-item-expander {
display: none;
position: absolute;
top: 0;
}
.#{$prefix}treelist-item-expander {
right: 0;
cursor: pointer;
}
.#{$prefix}treelist-expander-only .#{$prefix}treelist-item-expandable > * > .#{$prefix}treelist-item-wrap > * {
cursor: pointer;
}
.#{$prefix}treelist-item-text {
cursor: default;
white-space: nowrap;
overflow: hidden;
}
.#{$prefix}treelist-item-collapsed > .#{$prefix}treelist-container {
display: none;
}
.#{$prefix}treelist-item-expandable > * > * > .#{$prefix}treelist-item-expander,
.#{$prefix}treelist-item-icon {
display: block;
}
.#{$prefix}treelist-item-floated > * > * > .#{$prefix}treelist-item-expander,
.#{$prefix}treelist-item-floated > * > * > .#{$prefix}treelist-item-icon {
display: none;
}
.#{$prefix}treelist-expander-first .#{$prefix}treelist-item-expander {
left: 0;
right: auto;
}
@include treelist-ui-body(
$padding-left: left($treelist-padding),
$padding-right: right($treelist-padding),
$toolstrip-background-color: $treelist-toolstrip-background-color,
$tool-float-indicator-color: $treelist-tool-float-indicator-color,
$tool-float-indicator-width: $treelist-tool-float-indicator-width,
$tool-selected-color: $treelist-tool-selected-color,
$tool-selected-background-color: $treelist-tool-selected-background-color,
$tool-indicator-selected-color: $treelist-tool-indicator-selected-color,
$tool-indicator-selected-width: $treelist-tool-indicator-selected-width,
$item-expanded-background-color: $treelist-item-expanded-background-color,
$item-expanded-child-background-color: $treelist-item-expanded-child-background-color,
$item-line-height : $treelist-item-line-height,
$item-line-height-big: $treelist-item-line-height-big,
$item-icon-color: $treelist-item-icon-color,
$item-icon-over-color: $treelist-item-icon-over-color,
$item-icon-font-size: $treelist-item-icon-font-size,
$item-icon-font-size-big: $treelist-item-icon-font-size-big,
$item-icon-width: $treelist-item-icon-width,
$item-icon-width-big: $treelist-item-icon-width-big,
$item-expander-color: $treelist-item-expander-color,
$item-expander-over-color: $treelist-item-expander-over-color,
$item-expander-font-size: $treelist-item-expander-font-size,
$item-expander-font-size-big: $treelist-item-expander-font-size-big,
$item-expander-width: $treelist-item-expander-width,
$item-expander-width-big: $treelist-item-expander-width-big,
$item-expander-glyph: $treelist-item-expander-glyph,
$item-expander-expanded-glyph: $treelist-item-expander-expanded-glyph,
$item-text-color: $treelist-item-text-color,
$item-text-icon-gap: $treelist-item-text-icon-gap,
$item-text-over-color: $treelist-item-text-over-color,
$item-text-font-size: $treelist-item-text-font-size,
$item-text-overflow: $treelist-item-text-overflow,
$item-icon-over-transition: $item-icon-over-transition,
$item-text-over-transition: $item-text-over-transition,
$item-expander-over-transition: $item-expander-over-transition,
$row-indicator-selected-color: $treelist-row-indicator-selected-color,
$row-indicator-selected-over-color: $treelist-row-indicator-selected-over-color,
$row-indicator-over-color: $treelist-row-indicator-over-color,
$row-indicator-width: $treelist-row-indicator-width,
$row-selected-background-color: $treelist-row-selected-background-color,
$row-selected-over-background-color: $treelist-row-selected-over-background-color,
$row-over-background-color: $treelist-row-over-background-color
);