// Tree tables must assume either full width of the View element, or, when necessary, must overflow
// They must not shrink wrap the width and only be as wide as their widest node's content.
.#{$prefix}autowidth-table table.#{$prefix}grid-table {
    table-layout: auto;
    width: auto !important;
}

.#{$prefix}tree-expander {
    cursor: pointer;
    position: relative;
    top: -2px;
}

//arrows
.#{$prefix}tree-arrows {
    .#{$prefix}tree-expander {
        background: theme-background-image('tree/arrows') no-repeat 0 0;
    }

    .#{$prefix}tree-expander-over .#{$prefix}tree-expander {
        background-position: -32px 0;
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander {
        background-position: -16px 0;
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander-over .#{$prefix}tree-expander {
        background-position: -48px 0;
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-expander {
            background: theme-background-image('tree/arrows-rtl') no-repeat -48px 0;
        }

        .#{$prefix}tree-expander-over .#{$prefix}rtl.#{$prefix}tree-expander {
            background-position: -16px 0;
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-expander {
            background-position: -32px 0;
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander-over .#{$prefix}rtl.#{$prefix}tree-expander {
            background-position: 0 0;
        }
    }
}

//elbows
.#{$prefix}tree-lines {
    .#{$prefix}tree-elbow {
        background-image: theme-background-image('tree/elbow');
    }

    .#{$prefix}tree-elbow-end {
        background-image: theme-background-image('tree/elbow-end');
    }

    .#{$prefix}tree-elbow-plus {
        background-image: theme-background-image('tree/elbow-plus');
    }

    .#{$prefix}tree-elbow-end-plus {
        background-image: theme-background-image('tree/elbow-end-plus');
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-elbow-plus {
        background-image: theme-background-image('tree/elbow-minus');
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-elbow-end-plus {
        background-image: theme-background-image('tree/elbow-end-minus');
    }

    .#{$prefix}tree-elbow-line {
        background-image: theme-background-image('tree/elbow-line');
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-elbow {
            background-image: theme-background-image('tree/elbow-rtl');
        }

        .#{$prefix}rtl.#{$prefix}tree-elbow-end {
            background-image: theme-background-image('tree/elbow-end-rtl');
        }

        .#{$prefix}rtl.#{$prefix}tree-elbow-plus {
            background-image: theme-background-image('tree/elbow-plus-rtl');
        }

        .#{$prefix}rtl.#{$prefix}tree-elbow-end-plus {
            background-image: theme-background-image('tree/elbow-end-plus-rtl');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-elbow-plus {
            background-image: theme-background-image('tree/elbow-minus-rtl');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-elbow-end-plus {
            background-image: theme-background-image('tree/elbow-end-minus-rtl');
        }

        .#{$prefix}rtl.#{$prefix}tree-elbow-line {
            background-image: theme-background-image('tree/elbow-line-rtl');
        }
    }
}

.#{$prefix}tree-no-lines {
    .#{$prefix}tree-expander {
        background-image: theme-background-image('tree/elbow-plus-nl');
    }

    .#{$prefix}grid-tree-node-expanded .#{$prefix}tree-expander {
        background-image: theme-background-image('tree/elbow-minus-nl');
    }

    @if $include-rtl {
        .#{$prefix}rtl.#{$prefix}tree-expander {
            background-image: theme-background-image('tree/elbow-plus-nl-rtl');
        }

        .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-expander {
            background-image: theme-background-image('tree/elbow-minus-nl-rtl');
        }
    }
}

.#{$prefix}tree-icon {
    margin: $tree-icon-margin;
    vertical-align: top;
    background-repeat: no-repeat;
}

@if $include-rtl {
    .#{$prefix}rtl.#{$prefix}tree-icon {
        margin: rtl($tree-icon-margin);
    }
}

.#{$prefix}tree-elbow,
.#{$prefix}tree-elbow-end,
.#{$prefix}tree-elbow-plus,
.#{$prefix}tree-elbow-end-plus,
.#{$prefix}tree-elbow-empty,
.#{$prefix}tree-elbow-line {
    height: $tree-elbow-height;
    width: $tree-elbow-width;
    vertical-align: top;
}

.#{$prefix}tree-icon-leaf {
    width: $tree-elbow-width;
    background-image: theme-background-image('tree/leaf');
}

@if $include-rtl {
    .#{$prefix}rtl.#{$prefix}tree-icon-leaf {
        background-image: theme-background-image('tree/leaf-rtl');
    }
}

.#{$prefix}tree-icon-parent {
    width: $tree-elbow-width;
    background-image: theme-background-image('tree/folder');
}

@if $include-rtl {
    .#{$prefix}rtl.#{$prefix}tree-icon-parent {
        background-image: theme-background-image('tree/folder-rtl');
    }
}

.#{$prefix}grid-tree-node-expanded .#{$prefix}tree-icon-parent {
    background-image: theme-background-image('tree/folder-open');
}

@if $include-rtl {
    .#{$prefix}grid-tree-node-expanded .#{$prefix}rtl.#{$prefix}tree-icon-parent {
        background-image: theme-background-image('tree/folder-open-rtl');
    }
}

.#{$prefix}tree-view {
    overflow: hidden;
}

.#{$prefix}tree-view .#{$prefix}grid-cell-inner {
    cursor: pointer;
    vertical-align: top;
    // Tree cell inners do not use top/bottom padding.
    // The elbow/line icon gives the element its height
    padding: 0 right($grid-cell-inner-padding) 0 left($grid-cell-inner-padding);
}

.#{$prefix}grid-cell-treecolumn .#{$prefix}grid-cell-inner {
    padding-left: 0;
    // Connector line images must flow between cells, overwriting borders
    overflow: visible;
}

.#{$prefix}tree-node-text {
    vertical-align: middle;
    line-height: $grid-row-height - $grid-cell-border-width;
}

@if $include-ie {
    .#{$prefix}ie .#{$prefix}tree-view {
        .#{$prefix}tree-elbow,
        .#{$prefix}tree-elbow-end,
        .#{$prefix}tree-elbow-plus,
        .#{$prefix}tree-elbow-end-plus,
        .#{$prefix}tree-elbow-empty,
        .#{$prefix}tree-elbow-line {
            // vertical alignment is necessary for IE to show the ellipsis in the right place.
            vertical-align: -6px;
        }
    }
}

.#{$prefix}tree-checkbox {
    margin: $tree-checkbox-margin;
    display: inline-block;
    vertical-align: top;

    width: $form-checkbox-size;
    height: $form-checkbox-size;
    background: no-repeat;
    background-image: theme-background-image($form-checkbox-image);

    overflow: hidden;
    padding: 0;
    border: 0;
    &::-moz-focus-inner {
        padding: 0;
        border: 0;
    }
}

@if $include-rtl {
    .#{$prefix}rtl.#{$prefix}tree-checkbox {
        margin: rtl($tree-checkbox-margin);
    }
}

.#{$prefix}tree-checkbox-checked {
    background-position: 0 (0 - $form-checkbox-size);
}

.#{$prefix}grid-tree-loading .#{$prefix}tree-icon {
    background-image: theme-background-image('tree/loading');
}

@if $include-rtl {
    .#{$prefix}grid-tree-loading .#{$prefix}rtl.#{$prefix}tree-icon {
        background-image: theme-background-image('tree/loading');
    }
}

.#{$prefix}grid-tree-loading span {
     font-style: italic;
     color: #444444;
}

.#{$prefix}tree-animator-wrap {
    overflow: hidden;
}