UNPKG

spincycle

Version:

A reactive message router and object manager that lets clients subscribe to object property changes on the server

127 lines (118 loc) 3.99 kB
<!doctype html> <!-- @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 --> <html> <head> <title>iron-location</title> <script src="../../webcomponentsjs/webcomponents-lite.js"></script> <link rel="import" href="../../polymer/polymer.html"> <link rel="import" href="../iron-location.html"> <link rel="import" href="../../paper-styles/typography.html"> <link rel="import" href="../../iron-flex-layout/iron-flex-layout.html"> <link rel="import" href="../../paper-input/paper-input.html"> <link rel="import" href="../../paper-slider/paper-slider.html"> <link rel="import" href="../../iron-demo-helpers/url-bar.html"> <link rel="stylesheet" href="../../paper-styles/demo.css"> </head> <body> <url-bar></url-bar> <dom-module id="iron-location-demo"> <template> <style> div.inputs { margin-bottom: 15px; } label { display: inline-block; width: 100px; } h3 { padding: 0; margin: 0; } .inputs, .history_entries { @apply(--layout-vertical); @apply(--layout-flex); padding: 20px; max-width: 500px; } .container { @apply(--layout-horizontal); } </style> <iron-location path="{{path}}" hash="{{hash}}" query="{{query}}" dwell-time="{{dwellTime}}"> </iron-location> <div class="container"> <div class="inputs"> <h3>URL</h3> <paper-input label="path" value="{{path}}" always-float-label> </paper-input> <paper-input label="hash" value="{{hash}}" always-float-label> </paper-input> <paper-input label='query' value='{{query}}' always-float-label> </paper-input> </div> <div class="history_entries"> <h3>Dwell Time</h3> <p> iron-location won't add extraneous entries to the browser's history when changes come in quick succession. </p> <p> A new history entry will only be added if iron-location stays in the same state longer than dwellTime. </p> <div> <label>History added: </label> {{historyElementsAdded}} entries </div> <div> <label>Dwell time:</label> {{inSeconds(dwellTime)}}s </div> <paper-slider min="-1" max="5000" value="2000" step="100" immediate-value="{{dwellTime}}"> </paper-slider> </div> </div> </template> <script> window.addEventListener('WebComponentsReady', function() { Polymer({ is: 'iron-location-demo', properties: { historyElementsAdded: { type: Number } }, observers: [ 'checkHistorySize(path, hash, query, startingHistoryLength)' ], ready: function() { this.startingHistoryLength = window.history.length; }, checkHistorySize: function() { this.historyElementsAdded = window.history.length - this.startingHistoryLength; }, inSeconds: function(dwellTime) { if (dwellTime === -1) { return -1; } return (Math.round(dwellTime / 100) / 10) } }); }); </script> </dom-module> <iron-location-demo></iron-location-demo> </body> </html>