<link rel="import" href="../../../../packages/polymer/polymer.html">
<link rel="import" href="function_ref.html">
<link rel="import" href="nav_bar.html">
<link rel="import" href="eval_link.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="script_inset.html">
<link rel="import" href="script_ref.html">

<!-- TODO(turnidge): Use core-icon once core_elements work properly in
     devtools -->
<polymer-element name="icon-expand-less" noscript>
  <template>
    <svg width="24" height="24">
      <polygon points="12,8 6,14 7.4,15.4 12,10.8 16.6,15.4 18,14 "/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-expand-more" noscript>
  <template>
    <svg width="24" height="24">
      <polygon points="16.6,8.6 12,13.2 7.4,8.6 6,10 12,16 18,10 "/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-chevron-right" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-chevron-left" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-horizontal-three-dot" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-vertical-three-dot" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-info" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="icon-info-outline" noscript>
  <template>
    <svg width="24" height="24">
      <path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"/>
    </svg>
  </template>
</polymer-element>

<polymer-element name="debugger-page" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .container {
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }
      nav-bar {
        flex: 0 0 auto;
      }
      .stack {
        flex: 0 0 auto;
        overflow-y: auto;
      }
      .splitter {
        height: 0px;
        margin: 0px;
        font-size: 1px;
        border-bottom: 1px solid #888;
      }
      core-splitter {
        flex: 0 0 auto;
      }
      .console {
        flex: 1 1 auto;
        overflow-x: auto;
        overflow-y: auto;
      }
      .commandline {
        flex: 0 0 auto;
      }
    </style>

    <div class="container">
      <nav-bar id="navbarDiv" notifyOnPause="{{ false }}">
        <top-nav-menu></top-nav-menu>
	<vm-nav-menu vm="{{ isolate.vm }}"></vm-nav-menu>
        <isolate-nav-menu isolate="{{ isolate }}"></isolate-nav-menu>
        <nav-menu link="{{ makeLink('/debugger', isolate) }}" anchor="debugger" last="{{ true }}"></nav-menu>
      </nav-bar>
      <div id="stackDiv" class="stack">
        <debugger-stack id="stackElement" isolate="{{ isolate }}"></debugger-stack>
      </div>
      <!--
      <core-splitter direction="up" allowOverflow=true></core-splitter>
      -->
      <div id="splitterDiv"><hr class="splitter"></div>
      <div id="consoleDiv" class="console">
        <debugger-console id="console" isolate="{{ isolate }}"></debugger-console>
      </div>
      <div id="commandDiv" class="commandline">
        <debugger-input id="commandline" isolate="{{ isolate }}"></debugger-input>
      </div>
    </div>
  </template>
</polymer-element>

<polymer-element name="debugger-stack" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .sampledMessage {
        margin: 0px 20px 10px 20px;
        font: 400 14px 'Montserrat', sans-serif;
        line-height: 125%;
      }
      .splitter {
        height: 0px;
        margin: 0px;
        font-size: 1px;
        border-bottom: 1px dashed #888;
      }
      .noMessages, .noStack {
        margin: 10px 0px 10px 25px;
        font: bold 14px 'Montserrat', sans-serif;
        line-height: 125%;
      }
    </style>
    <template if="{{ isSampled }}">
      <div class="sampledMessage">
        The program is not paused.  The stack trace below may be out of date.<br>
        <br>
        <action-link label="Pause Isolate" callback="{{ doPauseIsolate }}">
        </action-link>
        <action-link label="Refresh Stack" callback="{{ doRefreshStack }}">
        </action-link>
        <br>
        <br>
        <hr class="splitter">
      </div>
    </template>
    <template if="{{ !hasStack }}">
      <div class="noStack">No stack</div>
    </template>
    <ul id="frameList" class="list-group">
      <!-- debugger-frame elements are added programmatically -->
    </ul>
    <hr>
    <template if="{{ !hasMessages }}">
      <div class="noMessages">No pending messages</div>
    </template>
    <ul id="messageList" class="list-group">
      <!-- debugger-message elements are added programmatically -->
    </ul>
  </template>
</polymer-element>


<polymer-element name="debugger-frame" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .frameOuter {
        position: relative;
        padding: 5px;
        border: 1px solid white;
      }
      .frameOuter:hover {
        border: 1px solid #e0e0e0;
      }
      .shadow {
        box-shadow:  0 2px 10px 0 rgba(0, 0, 0, 0.16),
                     0 2px 5px 0 rgba(0, 0, 0, 0.26);
      }
      .current {
        box-shadow:  0 2px 10px 0 rgba(0, 0, 0, 0.26),
                     0 2px 5px 0 rgba(0, 0, 0, 0.46);
        border: 1px solid #444;
      }
      .frameSummaryText {
        display: inline-block;
        padding: 5px;
      }
      .frameId {
        display: inline-block;
        width: 60px;
      }
      .frameOuter .frameExpander {
        position: absolute;
        right: 5px;
        top: 5px;
        display: none;
      }
      .frameOuter:hover .frameExpander{
        display: inline-block;
      }
      .frameContractor {
        position: absolute;
        right: 5px;
        bottom: 5px;
        display: inline-block;
      }
      .flex-item-script {
        flex-grow: 1;
        flex-shrink: 1;
        flex-basis: 765px;
      }
      .flex-item-vars {
        flex-grow: 5;
        flex-shrink: 0;
        flex-basis: 250px;
        overflow-x: hidden;
      }
      #vars {
        position: relative;
        top: 5px;
        padding-left:2em;
        padding-bottom: 5px;
      }
    </style>
    <div id="frameOuter" class="frameOuter">
      <a on-click="{{ toggleExpand }}">
        <div class="frameSummary">
          <div class="frameSummaryText">
            <div class="frameId"><b>frame {{ frame.index }}</b></div>
            <function-ref ref="{{ frame.function }}"></function-ref>
            ( <source-link location="{{ frame.location }}"></source-link> )
          </div>
          <template if="{{ !expanded }}">
            <div class="frameExpander">
              <icon-expand-more></icon-expand-more>
            </div>
          </template>
        </div>
      </a>

      <template if="{{expanded}}">
        <div class="frameDetails">
          <div class="flex-row-wrap">
            <div class="flex-item-script">
              <source-inset height="{{ scriptHeight }}"
                            location="{{ frame.function.location }}"
                            currentPos="{{ frame.location.tokenPos }}"
                            inDebuggerContext="{{ true }}"
                            scroller="{{ scroller }}"
                            variables="{{ frame.variables }}">
              </source-inset>
            </div>
            <div class="flex-item-vars">
              <div id="vars" class="memberList">
                <template repeat="{{ v in properLocals }}">
                  {{ v['name']}}&nbsp;:&nbsp;
                  <any-service-ref ref="{{ v['value'] }}"
                                   expandKey="{{ makeExpandKey(v['name']) }}"
                                   asValue="{{ true }}">
                  </any-service-ref><br>
                </template>
              </div>
            </div>
          </div>
          <!-- TODO(turnidge): Add eval box here? -->
          <div class="frameContractor">
            <template if="{{expanded}}">
              <a on-click="{{ toggleExpand }}">
                <icon-expand-less></icon-expand-less>
              </a>
            </template>
          </div>
        </div>
      </template>
    </div>
  </template>
</polymer-element>

<polymer-element name="debugger-message" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .messageOuter {
        position: relative;
        padding: 5px;
        border: 1px solid white;
      }
      .messageOuter:hover {
        border: 1px solid #e0e0e0;
      }
      .shadow {
        box-shadow:  0 2px 10px 0 rgba(0, 0, 0, 0.16),
        0 2px 5px 0 rgba(0, 0, 0, 0.26);
      }
      .current {
        box-shadow:  0 2px 10px 0 rgba(0, 0, 0, 0.26),
        0 2px 5px 0 rgba(0, 0, 0, 0.46);
        border: 1px solid #444;
      }
      .messageSummaryText {
        display: inline-block;
        padding: 5px;
      }
      .messageId {
        display: inline-block;
        width: 100px;
      }
      .messageOuter .messageExpander {
        position: absolute;
        right: 5px;
        top: 5px;
        display: none;
      }
      .messageOuter:hover .messageExpander {
        display: inline-block;
      }
      .messageContractor {
        position: absolute;
        right: 5px;
        bottom: 5px;
        display: inline-block;
      }
      .flex-item-script {
        flex-grow: 1;
        flex-shrink: 1;
        flex-basis: 765px;
      }
      .flex-item-vars {
        flex-grow: 5;
        flex-shrink: 0;
        flex-basis: 225px;
      }
    </style>
    <div id="messageOuter" class="messageOuter">
      <a on-click="{{ toggleExpand }}">
        <div class="messageSummary">
          <div class="messageSummaryText">
            <div class="messageId"><b>message {{ message.index }}</b></div>
            <function-ref ref="{{ message.handler }}"></function-ref>
            ( <source-link location="{{ message.location }}">
            </source-link> )
          </div>
          <template if="{{ !expanded }}">
            <div class="messageExpander">
              <icon-expand-more></icon-expand-more>
            </div>
          </template>
        </div>
      </a>

      <template if="{{expanded}}">
        <div class="messageDetails">
          <div class="flex-row-wrap">
            <div class="flex-item-script">
              <template if="{{ message.handler != null }}">
              <source-inset height="{{ scriptHeight }}"
                            location="{{ message.handler.location }}"
                            inDebuggerContext="{{ true }}">
              </source-inset>
              </template>
            </div>
            <div class="flex-item-vars">
              <div class="memberItem">
                <div class="memberName"></div>
                <div class="memberValue">
                  <eval-link callback="{{ previewMessage }}" label="[preview]" result="{{ preview }}"></eval-link>
                </div>
              </div>
            </div>
          </div>
          <div class="messageContractor">
            <template if="{{expanded}}">
              <a on-click="{{ toggleExpand }}">
                <icon-expand-less></icon-expand-less>
              </a>
            </template>
          </div>
        </div>
      </template>
    </div>
  </template>
</polymer-element>

<polymer-element name="debugger-console" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .console {
        margin: 0px 20px 10px 20px;
      }
      .normal {
        font: normal 14px consolas, courier, monospace;
        white-space: pre;
        line-height: 125%;
      }
      .bold {
        font: bold 14px consolas, courier, monospace;
        white-space: pre;
        line-height: 125%;
      }
      .red {
        font: normal 14px consolas, courier, monospace;
        white-space: pre;
        line-height: 125%;
        color: red;
      }
      .green {
        font: normal 14px consolas, courier, monospace;
        white-space: pre;
        line-height: 125%;
        color: green;
      }
      .spacer {
        height: 20px;
      }
    </style>
    <div id="consoleText" class="console">
      <!-- Console output is added programmatically -->
    </div>
  </template>
</polymer-element>

<polymer-element name="debugger-input" extends="observatory-element">
  <template>
    <link rel="stylesheet" href="css/shared.css">
    <style>
      .container {
        height: 100%;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
      }
      .textBox {
        flex: 1 1 auto;
        margin: 20px;
        padding: 5px;
        font: 400 16px consolas, courier, monospace;
        width: 95%;
      }
      .modalPrompt {
        flex: 0 0 auto;
        margin-top: 20px;
        margin-left: 20px;
        padding: 5px;
        font: 400 16px consolas, courier, monospace;
        color: red;
      }
    </style>
    <div class="container">
      <template if="{{ modalPrompt != null }}">
        <div class="modalPrompt">{{ modalPrompt }}</div>
      </template>
      <input id="textBox" class="textBox" type="text" value="{{ text }}" autofocus>
    </div>
  </template>
</polymer-element>

<script type="application/dart" src="debugger.dart"></script>
