/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */
@import '../../modules/shared/variables';
:host {
  .log-message-container {
    display: block;
    margin: 0;
    padding: 0;

    .caret {
      margin-top: -3px;
      transition: transform 250ms;
      transform: rotate(-90deg);
    }
    &.log-message-container-open {
      .caret {
        transform: rotate(0deg);
      }
    }

    .log-message-content {
      max-height: calc(20em/14); // from Bootstrap
      overflow: hidden;
      padding-left: 1em;
      position: relative;
      word-wrap: break-word;
    }
    &.log-message-container-collapsible {
      .log-message-content {
        overflow: hidden;
        padding-left: 0;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
    }
    &.log-message-container-open .log-message-content {
      max-height: none;
      white-space: pre-wrap;
    }

    button, button:active {
      background: none transparent;
      border: none transparent;
      color: @base-font-color;
      cursor: pointer;
      float: left;
      height: 1em;
      outline: none;
      padding: 0 .15em;
    }
  }
}
