<html>
<head>
  <title>dot-legend-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="../common/js/common.js"></script>

  <link rel="import" href="bower_components/polymer/polymer.html">
  <link rel="import" href="dot-legend-sk.html">

</head>
<body>
  <h1>dot-legend-sk demo</h1>

  <dom-module id="main-document-element">
    <template>
      <dot-legend-sk test="{{testName}}" digests="{{digests}}">
      </dot-legend-sk>
    </template>

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

          properties: {
            testName: "test-name-1",
            digests: {
              type: Array,
              value: function() { return [
                  {
                    "digest": "0444d7180dac4bf7a6b1d2487811b131",
                    "status": "untriaged"
                  },
                  {
                    "digest": "c977dacbf4693c63f4b507b4cbb44e17",
                    "status": "positive"
                  },
                  {
                    "digest": "b84cb8597a425e73344ffe47befd26eb",
                    "status": "untriaged"
                  }
                ];
              }
            }
          }
        });
      });

    </script>
  </dom-module>

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

</body>
</html>
