@use "sass:color";
@use "colors" as *;
@use "../colors" as *;
@use "sizes" as *;
@use "../sizes" as *;
@use "../_sizes" as *;
@use "../../base/treeView" as *;
@use "../../base/icons" as *;
@use "../checkBox/colors" as *;

// adduse


$generic-treeview-search-editor-height: round($generic-base-line-height * $generic-base-font-size) + $generic-base-inline-borderedwidget-top-padding + $generic-base-inline-borderedwidget-bottom-padding + 2 * $generic-base-border-width;
$generic-treeview-toggle-item-visibility-offset: -4px;

.dx-treeview-node-loadindicator {
  top: $generic-treeview-loadincicator-offset-top;
  left: $generic-treeview-loadincicator-offset-left;
  width: $generic-treeview-loadincicator-size;
  height: $generic-treeview-loadincicator-size;
}

.dx-treeview {
  &.dx-rtl {
    @include dx-treeview-make-rtl($generic-treeview-container-with-border-offset, $generic-treeview-node-offset, $generic-treeview-item-with-checkbox-offset, $generic-treeview-checkbox-offset, $generic-select-all-text-offset, $generic-select-all-item-left-padding, $generic-treeview-border-padding);

    .dx-treeview-toggle-item-visibility,
    .dx-treeview-custom-expand-icon,
    .dx-treeview-custom-collapse-icon {
      right: $generic-treeview-toggle-item-visibility-offset;
    }

    .dx-treeview-item-with-checkbox .dx-checkbox {
      overflow: visible;
    }

    .dx-treeview-custom-expander-icon-item-container {
      padding-right: -$generic-treeview-toggle-item-visibility-offset;
    }
  }
}


.dx-treeview-search {
  margin-bottom: $generic-treeview-searchbox-margin-bottom;
}

.dx-treeview-with-search > .dx-scrollable {
  height: calc(100% - #{round($generic-treeview-search-editor-height + $generic-treeview-searchbox-margin-bottom)});
}

.dx-treeview-border-visible {
  border: 1px solid $treeview-border-color;

  .dx-treeview-select-all-item {
    padding-left: $generic-select-all-item-left-padding;
  }

  .dx-scrollable-content {
    > .dx-treeview-node-container {
      padding: $generic-treeview-container-padding;
    }
  }
}

.dx-treeview-select-all-item {
  margin: 0 0 $generic-treeview-container-with-border-offset 0;
  border-bottom: 1px solid $treeview-border-color;
  padding: $generic-select-all-item-padding;

  .dx-checkbox-text {
    padding-left: $generic-select-all-text-offset;
  }
}

.dx-treeview-node {
  padding-left: $generic-treeview-node-offset;
}

.dx-state-selected {
  > .dx-treeview-item {
    color: $treeview-item-selected-color;
  }
}

.dx-treeview-item-with-checkbox {
  &.dx-treeview-item-with-custom-expander-icon {
    padding-left: $generic-treeview-custom-expander-icon-offset;

    .dx-checkbox {
      padding-left: 10px;
    }

    .dx-treeview-item {
      padding-left: $generic-treeview-item-with-checkbox-offset + $generic-treeview-item-side-padding;
    }
  }

  .dx-treeview-item {
    color: $base-text-color;
    padding-left: $generic-treeview-item-with-checkbox-offset;
  }

  .dx-checkbox {
    top: 5px;
    left: $generic-treeview-checkbox-offset;
  }

  &.dx-state-focused {
    > .dx-checkbox .dx-checkbox-icon {
      border: 1px solid $checkbox-focused-borderd-color;
    }
  }
}

.dx-treeview-item-without-checkbox {
  &.dx-treeview-item-with-custom-expander-icon {
    padding-left: $generic-treeview-custom-expander-icon-offset;
  }

  &.dx-treeview-item-with-custom-expander-icon > .dx-treeview-item {
    padding-left: $generic-treeview-item-side-padding * 2;
  }

  &.dx-state-selected {
    > .dx-treeview-item {
      color: $treeview-item-selected-color;
      background-color: $treeview-item-selected-bg;
    }

    &:not(.dx-state-focused) {
      > .dx-treeview-item {
        &.dx-state-hover {
          background-color: $treeview-item-selected-hover-bg;
        }
      }
    }
  }

  &.dx-state-focused {
    > .dx-treeview-item {
      background-color: $treeview-focused-bg;
      color: $treeview-focus-color;
    }
  }
}

.dx-treeview-item {
  padding: $generic-treeview-item-padding;
  min-height: $generic-treeview-min-item-height;

  .dx-treeview-item-content > .dx-icon {
    @include dx-icon-sizing($generic-base-icon-size);
  }

  &.dx-state-hover {
    background-color: $treeview-hover-bg;
    color: $treeview-item-hover-color;
  }
}

.dx-treeview-custom-expand-icon,
.dx-treeview-custom-collapse-icon {
  @include dx-icon-sizing($generic-base-icon-size);

  top: 7px;
}

.dx-treeview-toggle-item-visibility {
  @include dx-icon(spinright);
  @include dx-icon-font-centered-sizing($generic-treeview-arrow-icon-size);

  color: $treeview-spin-icon-color;
  width: $generic-treeview-toggle-item-width;
  height: $generic-treeview-min-item-height;
  top: 0;
  left: $generic-treeview-toggle-item-visibility-offset;

  &.dx-treeview-toggle-item-visibility-opened {
    @include dx-icon(spindown);
    @include dx-icon-font-centered-sizing($generic-treeview-arrow-icon-size);
  }
}
