aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/paper-progress/demo/index.html
blob: 6f7b02b12172e828b9a6d2ac38ee2bf94f805d24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<!doctype html>
<html>
<head>
  <title>paper-progress demo</title>

  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-capable" content="yes">

  <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
  <link rel="import" href="../../paper-styles/color.html">
  <link rel="import" href="../../iron-demo-helpers/demo-snippet.html">
  <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html">
  <link rel="import" href="../paper-progress.html">
  <link rel="import" href="../../paper-button/paper-button.html">

  <style is="custom-style" include="demo-pages-shared-styles">
    paper-progress {
      display: block;
      width: 100%;
      margin: 20px 0;
    }
    paper-button {
      display: inline-block;
      padding: 5px;
    }
  </style>

</head>
<body unresolved>
  <div class="vertical-section-container centered">
    <h3>paper-progress can be imperatively controlled</h3>
    <demo-snippet class="centered-demo">
      <template>
        <p>Once started, loops 5 times before stopping.
          <!-- View the source code to see the contents of startProgress() -->
          <paper-button raised onclick="startProgress();" id="start">Start</paper-button>
        </p>
        <paper-progress id="progress"></paper-progress>
      </template>
    </demo-snippet>

    <h3>paper-progress can be indeterminate with a custom duration</h3>
    <demo-snippet class="centered-demo">
      <template>
        <style is="custom-style">
          paper-progress.slow {
            --paper-progress-indeterminate-cycle-duration: 20s;
          }
        </style>
        <paper-progress indeterminate></paper-progress>
        <paper-progress indeterminate class="slow"></paper-progress>
      </template>
    </demo-snippet>

    <h3>It can be styled using custom properties</h3>
    <demo-snippet class="centered-demo">
      <template>
        <style is="custom-style">
          paper-progress.blue {
            --paper-progress-active-color: var(--paper-light-blue-500);
            --paper-progress-secondary-color: var(--paper-light-blue-100);
          }

          paper-progress.red {
            --paper-progress-active-color: var(--paper-red-500);
            --paper-progress-secondary-color: var(--paper-red-100);
          }

          paper-progress.green {
            --paper-progress-active-color: var(--paper-light-green-500);
            --paper-progress-secondary-color: var(--paper-light-green-100);
          }
        </style>
        <paper-progress value="800" min="100" max="1000" class="red"></paper-progress>
        <paper-progress value="60" class="green"></paper-progress>
        <paper-progress value="40" secondary-progress="80" class="blue"></paper-progress>
      </template>
    </demo-snippet>
  </div>

  <script>
    var progress, button;
    var repeat, maxRepeat = 5, animating = false;

    function nextProgress() {
      animating = true;
      if (progress.value < progress.max) {
        progress.value += (progress.step || 1);
      } else {
        if (++repeat >= maxRepeat) {
          animating = false;
          button.disabled = false;
          return;
        }
        progress.value = progress.min;
      }
      requestAnimationFrame(nextProgress);
    }

    function startProgress() {
      repeat = 0;
      progress.value = progress.min;
      button.disabled = true;
      if (!animating) {
        nextProgress();
      }
    }

    window.addEventListener('WebComponentsReady', function() {
      progress = document.querySelector('paper-progress');
      button = document.querySelector('paper-button');
    });

  </script>

</body>
</html>