/*
 * Copyright (c) 2008-2016 Haulmont.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

@mixin halo-tree($primary-stylename: v-tree8) {
  .#{$primary-stylename} {
    @include user-select(none);
  }

  .#{$primary-stylename}-row-selected > .#{$primary-stylename}-cell {
    $font-color: valo-font-color($v-selection-color, 0.9);
    color: $font-color;
  }

  .c-tree-composition {
    font-size: 0;
    & > * {
      font-size: $v-font-size;
    }

    &:focus {
      outline: none;
    }
  }

  .c-tree-composition .c-tree-wrapper {
    @if $cuba-show-tree-border == true {
      padding: round($v-unit-size/4);
      border: valo-border();
    }
    display: inherit;
  }

  .c-tree-composition.has-top-panel {
    display: flex;
    flex-direction: column;

    .c-tree-top {
      flex-shrink: 0;
      overflow-x: hidden;
      min-height: $v-unit-size;
    }

    // The caption of ButtonsPanel inside of Tree will be ignored
    .v-caption-c-buttons-panel {
      display: none;
    }

    .v-ie11 &,
    .v-edge & {
      .c-tree-top {
        overflow-y: hidden;
      }

      .c-buttons-panel {
        overflow-x: hidden
      }
    }
  }

  @if $cuba-buttonspanel-flow == false {
    .c-tree-composition {
      .v-csslayout.c-flowlayout {
        white-space: nowrap;
      }

      .v-csslayout.c-flowlayout > * {
        float: none;
      }
    }

    .c-tree-composition.has-top-panel {
      $top-panel-height: $v-unit-size + ceil($v-layout-spacing-vertical);

      display: block;
      padding-top: $top-panel-height;

      .c-tree-top {
        margin-top: -1 * $top-panel-height;
      }
    }
  }
}