<html>
<head>
  <title>query-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="/res/common/js/common.js"></script>
  <script src="/res/imp/bower_components/wcstamp/src/stamp.js"></script>
  <script type="text/javascript" charset="utf-8">
    // Mock out sk.get() to return random numbers for matches.
    sk.get = function(url) {
      return new Promise(function (resolve, reject) {
        var n = Math.floor(Math.random() * 100);
        resolve('{"matches":' + n + '}');
        });
    };
  </script>
  <script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <link rel=import href="query.html">
  <style type="text/css" media="screen">
    query-sk {
      box-shadow: 10px 10px 17px -2px rgba(0,0,0,0.75);
      display: block;
      width: 100em;
      border: solid 1px lightgray;
      padding: 1em;
      border-radius: 10px;
    }
  </style>
</head>
<body>
  <h1>Query</h1>

  <query-sk showparams='["config", "type", "test"]' matches="/matches" id=basic></query-sk>
  <p>
    <b>Query String:</b> <code id=q></code>
  </p>

  <script type="text/javascript" charset="utf-8">
    var paramset = {
        "config": ["565", "8888"],
        "type": ["CPU", "GPU"],
        "units": ["ms", "bytes"],
        "test": [
          "DeferredSurfaceCopy_discardable",
          "DeferredSurfaceCopy_nonDiscardable",
          "GLInstancedArraysBench_instance",
          "GLInstancedArraysBench_one_0",
          "GLInstancedArraysBench_one_1",
          "GLInstancedArraysBench_one_2",
          "GLInstancedArraysBench_one_4",
          "GLInstancedArraysBench_one_8",
          "GLInstancedArraysBench_two_0",
          "GLInstancedArraysBench_two_1",
          "GLInstancedArraysBench_two_2",
          "GLInstancedArraysBench_two_4",
          "GLInstancedArraysBench_two_8",
          "GLVec4ScalarBench_scalar_1_stage",
          "GLVec4ScalarBench_scalar_2_stage",
                                    ],
      };
    $$$('#basic').setParamSet(paramset);
    setTimeout(function() {
      $$$('#basic').setSelections("config=565&type=GPU");
      $$$('#q').textContent = $$$('#basic').currentquery;
    }, 1);

    $$$('#basic').addEventListener('query-change', function(e){
      $$$('#q').textContent = e.detail;
    });

  </script>
</body>
</html>
