@use 'variables' as *;
@include export-module('splitter-layout') {
  .e-splitter {
    &.e-splitter-horizontal,
    &.e-splitter-vertical {
      border-width: $splitbar-border-width;
      display: flex;
      overflow: hidden;
      position: relative;
      touch-action: none;
      width: 100%;

      .e-pane {
        flex: 1 1 auto;
        font-family: $splitpane-font-family;
        font-size: $splitpane-font-size;
        font-weight: $splitpane-font-weight;

        &.e-scrollable {
          overflow: auto;
        }

        &.e-static-pane {
          flex-grow: 0;
          flex-shrink: 0;
        }

        &.e-pane-horizontal {
          overflow: auto;

          &.e-pane-hidden {
            flex-basis: 0 !important; /* stylelint-disable-line declaration-no-important */
            overflow: hidden !important; /* stylelint-disable-line declaration-no-important */
          }
        }
      }
    }

    &.e-splitter-horizontal {
      flex-direction: row;

      &.e-pane {
        &.e-scrollable {
          overflow: hidden;
        }
      }

      &.e-rtl {
        flex-direction: row-reverse;

        .e-split-bar {
          &.e-split-bar-horizontal {
            flex-direction: row-reverse;

            .e-navigate-arrow:not(.e-arrow-right)::before,
            .e-navigate-arrow:not(.e-arrow-right)::after {
              right: auto;
            }
          }
        }
      }
    }

    &.e-splitter-vertical {
      flex-direction: column;

      &.e-reverse {
        flex-direction: column-reverse;
      }

      &.e-pane {
        &.e-scrollable {
          overflow: hidden;
        }
      }

      .e-pane-vertical {
        overflow: auto;

        &.e-pane-hidden {
          flex-basis: 0 !important; /* stylelint-disable-line declaration-no-important */
          overflow: hidden !important; /* stylelint-disable-line declaration-no-important */
        }
      }

      &.e-rtl {
        .e-split-bar {
          &.e-split-bar-vertical {
            .e-navigate-arrow:not(.e-arrow-down)::before,
            .e-navigate-arrow:not(.e-arrow-down)::after {
              right: auto;
            }

            .e-navigate-arrow {
              &:not(.e-arrow-down) {
                border-radius: $splitbar-arrow-border-radius;
                bottom: $splitter-vertical-navigate-arrow-topbottom;
                right: $splitter-vertical-navigate-arrow-left;
              }

              &.e-arrow-down {
                border-radius: $splitbar-arrow-border-radius;
                left: $splitter-vertical-navigate-arrow-left;
                right: auto;
                top: $splitter-vertical-navigate-arrow-topbottom;

                &::after {
                  right: auto;
                }
              }
            }
          }
        }
      }
    }

    .e-split-bar {
      &.e-split-bar-horizontal {
        align-items: center;
        display: flex;
        flex: 0 0 auto;
        justify-content: center;
        min-width: 1px;
        z-index: 15;

        .e-icon-hidden {
          visibility: hidden;
        }

        &.e-resizable-split-bar {
          cursor: col-resize;
        }

        &.e-resizable-split-bar::after {
          content: '';
          cursor: col-resize;
          display: block;
          height: $splitbar-resizable-height;
          position: absolute;
          width: 16px;
          z-index: 10;
        }

        .e-resize-handler {
          align-items: center;
          display: flex;
          height: $splitbar-icon-height;
          justify-content: center;
          position: relative;
          width: 1px;

          &.e-hide-handler {
            visibility: hidden;
          }
        }

        .e-navigate-arrow:not(.e-arrow-right)::before,
        .e-navigate-arrow:not(.e-arrow-right)::after {
          left: $splitter-navigate-right-arrow-left;
          right: $splitter-navigate-right-arrow-right;
        }

        .e-navigate-arrow {
          border-image: none;
          border-width: $splitbar-border-width;
          cursor: pointer;
          display: flex;
          height: $splitbar-arrow-height;
          padding: $split-bar-horizontal-navigate-arrow-padding;
          position: relative;

          &::before,
          &::after {
            border-radius: $splitbar-arrow-segment-radius;
            content: '';
            height: $splitbar-arrow-segment-height;
            position: absolute;
            transform: rotate(0deg);
            width: $splitter-navigate-arrow-width;
          }

          &::before {
            top: $splitter-navigate-arrow-top-before;
            transform-origin: $splitter-navigate-arrow-transform-origin-before;
          }

          &::after {
            top: $splitter-navigate-arrow-top-after;
            transform-origin: $splitter-navigate-arrow-transform-origin-after;
          }

          &:not(.e-arrow-right) {
            border-radius: $splitbar-arrow-border-radius;
            right: $splitter-navigate-arrow-left;
          }

          &.e-arrow-right {
            border-radius: $splitbar-arrow-border-radius;
            left: $splitter-navigate-arrow-right;
          }

          &.e-arrow-right::before,
          &.e-arrow-right::after {
            right: $splitter-horizontal-navigate-arrow-right;
          }
        }

        &.e-last-bar:not(.e-resizable-split-bar) {
          margin: $splitbar-horizontal-last-bar-margin;
        }

        &:not(.e-resizable-split-bar) {
          margin: $splitbar-horizontal-bar-margin;
        }
      }

      &.e-split-bar-vertical {
        align-items: center;
        border-left: $split-bar-border-left;
        border-right: $split-bar-border-right;
        display: flex;
        flex: 0 0 auto;
        justify-content: center;
        min-height: 1px;

        .e-icon-hidden {
          visibility: hidden;
        }

        &.e-resizable-split-bar {
          cursor: row-resize;
        }

        &.e-resizable-split-bar::after {
          content: '';
          cursor: row-resize;
          display: block;
          height: $splitbar-vertical-resizable-height;
          position: absolute;
          width: 100%;
          z-index: 12;
        }

        .e-resize-handler {
          align-items: center;
          display: flex;
          height: $splitbar-vertical-handler-height;
          justify-content: center;
          width: $splitbar-icon-gap;

          &.e-hide-handler {
            visibility: hidden;
          }
        }

        .e-navigate-arrow:not(.e-arrow-down)::before,
        .e-navigate-arrow:not(.e-arrow-down)::after {
          left: $splitter-vertical-navarrow-up-left;
        }

        .e-navigate-arrow {
          border-image: none;
          border-width: $splitter-border-none;
          cursor: pointer;
          display: flex;
          height: $splitbar-arrow-height;
          padding: $split-bar-vertical-navigate-arrow-padding;
          position: relative;
          width: $splitter-vertical-nav-arrow-width;

          &::before,
          &::after {
            border-radius: $splitbar-arrow-segment-radius;
            content: '';
            height: $splitbar-arrow-segment-height;
            position: absolute;
            transform: rotate(90deg);
            width: $splitter-navigate-arrow-width;
          }

          &:not(.e-arrow-down) {
            &::before {
              top: $splitter-vertical-navigate-arrow-up-top-before;
              transform-origin: $splitter-vertical-navigate-arrow-up-transform-origin-before;
            }
          }

          &:not(.e-arrow-down) {
            &::after {
              left: $splitter-vertical-navarrow-up-left-after;
              top: $splitter-vertical-navigate-arrow-up-top-after;
              transform-origin: $splitter-vertical-navigate-arrow-up-transform-origin-after;
            }
          }

          &.e-arrow-down {
            &::before {
              left: $splitter-vertical-navigate-arrow-down-left-before;
              top: $splitter-vertical-navigate-arrow-down-top-before;
              transform-origin: $splitter-vertical-navarrow-transform-origin-before;
            }
          }

          &.e-arrow-down {
            &::after {
              left: $splitter-vertical-navigate-arrow-down-left-after;
              top: $splitter-vertical-navigate-arrow-down-top-after;
              transform-origin: $splitter-vertical-navarrow-transform-origin-after;
            }
          }

          &:not(.e-arrow-down) {
            border-radius: $splitbar-arrow-border-radius;
            bottom: $splitter-vertical-navigate-arrow-topbottom;
            left: $splitter-vertical-navigate-arrow-left;
          }

          &.e-arrow-down {
            border-radius: $splitbar-arrow-border-radius;
            right: $splitter-vertical-navigate-arrow-left;
            top: $splitter-vertical-navigate-arrow-topbottom;
          }

          &.e-arrow-down::before,
          &.e-arrow-down::after {
            right: 10px;
          }
        }

        &.e-last-bar:not(.e-resizable-split-bar) {
          margin: $splitbar-vertical-last-bar-margin;
        }

        &:not(.e-resizable-split-bar) {
          margin: $splitbar-vertical-bar-margin;
        }
      }
      .e-navigate-arrow {
        border-style: solid;
      }
    }
  }

  .e-rtl .e-splitter {
    &.e-splitter-horizontal {
      flex-direction: row-reverse;
    }
  }

  .e-content-placeholder.e-splitter.e-placeholder-splitter {
    background-size: 100px 110px;
    min-height: 110px;
  }

  .e-splitter.e-ie .e-navigate-arrow.e-arrow-left {
    margin-left: $split-bar-horizontal-navigate-arrow-left-margin-left;
  }

  .e-splitter.e-ie .e-split-bar-horizontal .e-resize-handler {
    flex-direction: column;
  }
}
