<html>
<head>
  <title>digest-details-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="../../node_modules/native-promise-only/npo.js"></script>
  <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="bower_components/d3/d3.js"></script>
  <script src="../common/js/common.js"></script>
  <script src="../js/gold.js"></script>
  <script src="testdata.js"></script>
  <script type="text/javascript" charset="utf-8">
    sk.app_config = {
      baseRepoURL: "https://skia.googlesource.com/skia",
      defaultCorpus: "gm",
      showBotProgress: true,
      title: "Skia Gold",
      isPublic: false
    };
  </script>

  <link rel="import" href="bower_components/polymer/polymer.html">
  <link rel="import" href="commits-dialog-sk.html">
  <link rel="import" href="digest-details-sk.html">

</head>
<body>
  <h1>digest-details-sk demo</h1>

  <dom-module id="main-document-element">
    <template>
      <h3>Mode: list</h3>
      <div>
        <digest-details-sk mode="list"
                           details="[[digestDetails]]"
                           commits="[[commits]]">
        </digest-details-sk>
      </div>
      <h3>Mode: detail</h3>
      <div>
        <digest-details-sk mode="detail"
                           details="[[digestDetails]]"
                           commits="[[commits]]">
        </digest-details-sk>
      </div>
      <h3>Mode: diff</h3>
      <div>
        <digest-details-sk mode="diff"
                           details="[[digestDetails]]"
                           commits="[[commits]]">
        </digest-details-sk>
      </div>
      <commits-dialog-sk></commits-dialog-sk>
    </template>

    <script>
      HTMLImports.whenReady(function () {
        Polymer({
          is: 'main-document-element',

          ready: function() {
            var digestDetails = JSON.parse(JSON.stringify(testdata.newSearchDetails[0]));
            this.set('digestDetails', digestDetails);
            this.set('commits', testdata.commits);
          }
        });
      });
    </script>
  </dom-module>

  <!-- Instantite the element defined above -->
  <main-document-element></main-document-element>

</body>
</html>
