// Copyright (C) 2019 The Android Open Source Project
//
// 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.

.handle {
  background-color: hsl(215, 1%, 95%);
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom: none;
  cursor: row-resize;
  // Disable user selection since this handle is draggable to resize the
  // bottom panels.
  user-select: none;
  display: flex;

  .tabs {
    display: flex;
    overflow: hidden;
    flex: 1;

    .tab {
      font-family: "Roboto Condensed", sans-serif;
      color: #3c4b5d;
      padding: 4px;
      margin-top: 3px;
      align-items: center;
      cursor: pointer;
      font-size: 13px;
      border-radius: 3px 3px 0 0;
      background-color: #0000000f;
      border-right: solid 1px hsla(0, 0%, 75%, 1);
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
      z-index: 5;
      box-shadow: #0000003b 0px 0px 3px 1px;
      display: flex;
      align-items: baseline;
      gap: 2px;

      &:hover {
        background-color: hsla(0, 0%, 85%, 1);
      }

      &[active] {
        background-color: white;
        cursor: default;
      }

      &:nth-child(1) {
        margin-left: 3px;
      }

      .pf-tab-title {
        margin: 0px 4px;
        overflow: hidden;

        .pf-nocontent {
          font-weight: lighter;
        }
      }
    }
  }

  .buttons {
    font-size: 24px;
    grid-area: buttons;
    display: flex;
    align-items: baseline;
    margin: 1px;
  }

  .handle-title {
    font-family: "Roboto Condensed", sans-serif;
    font-weight: 300;
    color: #3c4b5d;
    margin-left: 5px;
    padding: 5px;
    font-size: 13px;
  }
}

.details-panel {
  @include bottom-panel-font;

  // This is required to position locally-scoped (i.e. non-full-screen) modal
  // dialogs within the panel, as they use position: absolute.
  position: relative;

  .material-icons {
    @include transition(0.3s);
    font-size: 16px;
    margin-left: 5px;
    &:hover {
      cursor: pointer;
    }
    &.grey {
      border-radius: 3px;
      border: 1px solid transparent;
      background-color: #e8e8e8;
      &:hover {
        border: #475566 solid 1px;
      }
    }
  }

  .details-panel-heading {
    padding: 10px 0 5px 0;
    position: sticky;
    top: 0;

    // Relative/absolute/etc.. (non static) elements stack on top of this sticky
    // header, so setting the z-index here to 1 forces this header to render
    // over the top of other elements in the underlying panels.
    z-index: 1;

    display: flex;
    background: white;
    &.aggregation {
      padding-top: 5px;
      display: grid;
      grid-template-areas:
        "description range"
        "heading heading";
      grid-template-columns: 1fr auto;
      .states {
        font-size: 11px;
        margin: 0 10px 2px 10px;
        display: flex;
        overflow: hidden;
        .state {
          height: 20px;
          line-height: 20px;
          padding-left: 3px;
          padding-right: 3px;
          border-left: white 1px solid;
          &:hover {
            min-width: fit-content;
          }
        }
      }
      .time-range {
        text-align: right;
        font-size: 11px;
        font-weight: 400;
        margin-right: 5px;
      }
      table {
        grid-area: heading;
      }
      th {
        cursor: pointer;
        .material-icons {
          margin-left: 2px;
          font-size: 18px;
        }
      }
    }
    h2 {
      font-size: 16px;
      font-weight: 400;
      padding: 0 10px;
      &.split {
        width: 50%;
      }
    }
  }

  table {
    @include transition(0.1s);
    @include table-font-size;
    width: 100%;
    // Aggregation panel uses multiple table elements that need to be aligned,
    // which is done by using fixed table layout.
    table-layout: fixed;
    word-wrap: break-word;
    padding: 0 10px;
    tr:hover {
      td,
      th {
        background-color: $table-hover-color;

        &.no-highlight {
          background-color: white;
        }
      }
    }
    th {
      text-align: left;
      width: 30%;
      font-weight: normal;
      vertical-align: top;
    }
    td.value {
      white-space: pre-wrap;
    }
    td.padding {
      min-width: 10px;
    }
    .array-index {
      text-align: right;
    }
  }

  .auto-layout {
    table-layout: auto;
  }
}

.slice-details-latency-panel {
  // This panel is set to relative to make this panel a positioned element
  // This is to allow the absolute text panels below to be positioned relative
  // to this panel and not our parent.
  position: relative;
  user-select: text;

  .text-detail {
    font-size: smaller;
  }

  .slice-details-wakeup-text {
    position: absolute;
    left: 40px;
    top: 20px;
  }

  .slice-details-latency-text {
    position: absolute;
    left: 106px;
    top: 90px;
  }

  .slice-details-image {
    user-select: none;
    width: 180px;
    height: 150px;
  }
}

.details-table-multicolumn {
  display: flex;
  user-select: "text";
}

.flow-link:hover {
  cursor: pointer;
  text-decoration: underline;
}

.flow-info i.material-icons {
  color: rgb(60, 86, 136);
}

.warning {
  position: relative;
  font-size: 13px;
  color: hsl(45, 100%, 48%);
}

.warning i.material-icons {
  font-size: 13px;
}

.warning .tooltip {
  visibility: hidden;

  background-color: white;
  color: #3f4040;
  box-shadow: 1px 3px 15px rgba(23, 32, 44, 0.3);

  padding: 4px;
  border-radius: 4px;

  text-align: center;
  white-space: nowrap;

  position: absolute;
  z-index: 1;
  top: -5px;
  left: 105%;
}

.warning:hover .tooltip {
  visibility: visible;
}

.flow-button {
  color: rgb(60, 86, 136);
}

.half-width-panel {
  max-width: 50%;
  flex-grow: 1;
  height: fit-content;
}

.notes-editor-panel {
  padding: 10px;
  display: flex;
  flex-direction: column;
  height: 100%;
  font-family: "Roboto Condensed", sans-serif;
  font-weight: 300;
  color: #3c4b5d;

  .notes-editor-panel-heading-bar {
    display: flex;
    padding-bottom: 8px;
    font-size: 14px;
    .notes-editor-panel-heading {
      padding-top: 3px;
    }
    input {
      vertical-align: middle;
    }
  }

  input[type="text"] {
    flex-grow: 1;
    border-radius: 4px;
    border: 1px solid #dcdcdc;
    padding: 3px;
    margin: 0 10px;
    &:focus {
      outline: none;
      box-shadow: 1px 1px 1px rgba(23, 32, 44, 0.3);
    }
  }
}

.sum {
  font-weight: bolder;
  font-size: 12px;
  .sum-data {
    border-bottom: 1px solid $table-border-color;
  }
}

.log-panel {
  display: contents;

  header {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
    background-color: white;
    color: #3c4b5d;
    padding: 5px;
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
  }

  .log-rows-label {
    display: flex;
    align-items: center;
  }

  .log-filters {
    display: flex;
    margin-right: 5px;
    align-items: center;

    .log-label {
      padding-right: 0.35rem;
    }

    .tag-container {
      height: auto;
      min-height: 34px;
      padding: 2px;
      margin: 2px;
      cursor: text;
      border-radius: 3px;
      display: flex;
      align-items: center;

      .chips .chip {
        display: inline-block;
        width: auto;
        float: left;

        background-color: #0878b2;
        color: #fff;
        border-radius: 3px;
        margin: 2px;
        overflow: hidden;

        .chip-button {
          padding: 4px;
          cursor: pointer;
          background-color: #054570;
          display: inline-block;
        }

        .chip-text {
          padding: 4px;
          display: inline-block;
          pointer-events: none;
        }
      }

      .chip-input {
        margin-left: 5px;
      }
    }

    .filter-widget {
      user-select: none;
      cursor: pointer;
      position: relative;
      display: inline-block;
    }

    .filter-widget .tooltip {
      visibility: hidden;
      width: 120px;
      background-color: black;
      color: #fff;
      text-align: center;
      border-radius: 6px;
      padding: 5px 0;

      /* Position the tooltip */
      position: absolute;
      z-index: 1;
      top: 130%;
      right: 50%;
    }

    .filter-widget:hover .tooltip {
      visibility: visible;
    }
  }

  header.stale {
    color: grey;
  }
}

.pf-ftrace-explorer {
  height: 100%;
  font-size: 11px;
  font-family: var(--monospace-font);

  .pf-ftrace-namebox {
    display: flex;
    align-items: center;

    .pf-ftrace-colorbox {
      display: inline-block;
      height: 10px;
      width: 10px;
      margin-right: 4px;
    }
  }
}

.pf-android-logs-table {
  height: 100%;
  font-size: 11px;
  font-family: var(--monospace-font);

  .D {
    color: hsl(122, 20%, 40%);
  }
  .V {
    color: hsl(122, 20%, 30%);
  }
  .I {
    color: hsl(0, 0%, 20%);
  }
  .W {
    color: hsl(45, 60%, 45%);
  }
  .E {
    color: hsl(4, 90%, 58%);
  }
  .F {
    color: hsl(291, 64%, 42%);
  }
  .pf-highlighted {
    background: #d2efe0;
  }
}

.pf-details-table {
  margin: 10px;
}

.screenshot-panel {
  height: 100%;
  img {
    max-height: 100%;
  }
}

.pf-noselection {
  height: 100%;
}

.flamegraph-profile {
  height: 100%;
  // This is required to position locally-scoped (i.e. non-full-screen) modal
  // dialogs within the panel, as they use position: absolute.
  position: relative;

  .time {
    justify-self: end;
    margin-right: 10px;
  }
  .selected {
    justify-self: end;
    margin-right: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 200px;
  }
}
