blob: 6f7b02b12172e828b9a6d2ac38ee2bf94f805d24 [file] [log] [blame]
<!--
@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>