Index: polymer_0.5.0/bower_components/core-list/demo.html |
diff --git a/polymer_0.5.0/bower_components/core-list/demo.html b/polymer_0.5.0/bower_components/core-list/demo.html |
new file mode 100755 |
index 0000000000000000000000000000000000000000..9eb367df87a2d6b899485612efa5bf66bd0b42b4 |
--- /dev/null |
+++ b/polymer_0.5.0/bower_components/core-list/demo.html |
@@ -0,0 +1,236 @@ |
+<!doctype html> |
+<!-- |
+Copyright (c) 2014 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>core-list</title> |
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> |
+ <script src="../webcomponentsjs/webcomponents.js"></script> |
+ <link rel="import" href="../polymer/polymer.html"> |
+ <link rel="import" href="core-list.html"> |
+ <style> |
+ html, body { |
+ margin: 0; |
+ -webkit-tap-highlight-color: transparent; |
+ overflow: hidden; |
+ } |
+ |
+ list-test { |
+ display: block; |
+ height: 100%; |
+ margin: 0 auto; |
+ } |
+ |
+ .stuff { |
+ min-height: 60px; |
+ background: red !important; |
+ border-bottom: 1px solid black; |
+ } |
+ </style> |
+</head> |
+<body fit> |
+ |
+<list-test></list-test> |
+ |
+<polymer-element name="list-test" layout vertical> |
+<template> |
+ <style> |
+ .item { |
+ box-sizing: border-box; |
+ height: 80px; |
+ border-bottom: 1px solid #ddd; |
+ padding: 4px; |
+ cursor: default; |
+ background-color: white; |
+ overflow: hidden; |
+ } |
+ |
+ .selected { |
+ background: silver; |
+ } |
+ |
+ .message { |
+ padding-left: 77px; |
+ line-height: 167%; |
+ background-repeat: no-repeat; |
+ background-position: 10px 10px; |
+ background-size: 60px; |
+ } |
+ |
+ .from { |
+ display: inline; |
+ font-weight: bold; |
+ } |
+ |
+ .timestamp { |
+ margin-left: 10px; |
+ font-size: 12px; |
+ opacity: 0.8; |
+ } |
+ |
+ .body { |
+ font-size: 12px; |
+ } |
+ |
+ .spaced { |
+ margin: 10px; |
+ } |
+ |
+ .selection-display { |
+ background: lightgray; |
+ padding: 0 5px; |
+ margin: 0 5px; |
+ } |
+ |
+ .narrow { |
+ width: 40px; |
+ } |
+ |
+ </style> |
+ |
+ <div class="spaced"> |
+ <button on-tap="{{addRecord}}">Add row at index:</button> |
+ <input value="{{addIdx}}" class="narrow" type="number"> |
+ <br> |
+ <button on-tap="{{deleteRecord}}">Delete row at index:</button> |
+ <input value="{{deleteIdx}}" class="narrow" type="number"> |
+ <br> |
+ <button on-tap="{{deleteAll}}">Delete all</button> |
+ <button on-tap="{{deleteArray}}">Delete data array</button> |
+ <button on-tap="{{initArrayEmpty}}">Init empty array</button> |
+ <button on-tap="{{initArrayFull}}">Init full array</button> |
+ <br> |
+ <label><input type="checkbox" checked="{{selectionEnabled}}">Selection enabled</label> |
+ <label><input type="checkbox" checked="{{multi}}">Multiple selection</label> |
+ <br> |
+ <button on-tap="{{clearSelection}}">Clear selection</button> |
+ <button on-tap="{{deleteSelection}}">Delete selection</button> |
+ </div> |
+ <div layout horizontal wrap class="spaced"> |
+ Selected values: |
+ <template repeat="{{multi ? selection: [selection]}}"> |
+ <div class="selection-display">Id {{id}}: {{checked}} {{value}} {{['a','b','c'][type]}}</div> |
+ </template> |
+ </div> |
+ <core-list id="list" data="{{data}}" selectionEnabled="{{selectionEnabled}}" |
+ selection="{{selection}}" height="80" flex multi?={{multi}}> |
+ <template> |
+ <div class="item {{ {selected: selected} | tokenList }}"> |
+ <div class="message" style="background-image: url(images/{{model.image}}.png);"> |
+ <span class="from">{{model.name}}</span> |
+ <div class="subject">Row: {{index}}, Record ID: {{model.id}}</div> |
+ <input type="checkbox" checked="{{model.checked}}"> |
+ <input type="number" value="{{model.value}}" class="narrow"> |
+ <select selectedIndex="{{model.type}}"><option>a</option><option>b</option><option>c</option></select> |
+ <span class="body">{{model.details}}</span> |
+ </div> |
+ </div> |
+ </template> |
+ </core-list> |
+ |
+</template> |
+<script> |
+(function() { |
+ var strings = [ |
+ "PARKOUR!", |
+ "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...", |
+ "Lorem Ipsum is simply dummy text of the printing and typesetting industry." |
+ ]; |
+ |
+ var namegen = { |
+ generateString: function(inLength) { |
+ var s = ''; |
+ for (var i=0; i<inLength; i++) { |
+ s += String.fromCharCode(Math.floor(Math.random() * 26) + 97); |
+ } |
+ return s; |
+ }, |
+ generateName: function(inMin, inMax) { |
+ return this.generateString(Math.floor(Math.random() * (inMax - inMin + 1) + inMin)); |
+ } |
+ }; |
+ |
+ Polymer('list-test', { |
+ addIdx: 0, |
+ deleteIdx: 0, |
+ count: 50000, |
+ ready: function() { |
+ this.initArrayFull(); |
+ window.list = this.$.list; |
+ }, |
+ generateData: function() { |
+ var names = [], data = []; |
+ for (var i=0; i<this.count; i++) { |
+ names.push(namegen.generateName(4, 8)); |
+ } |
+ names.sort(); |
+ for (i=0; i<this.count; i++) { |
+ data.push({ |
+ id: i, |
+ name: names[i], |
+ details: strings[i % 3], |
+ image: i % 4, |
+ value: 0, |
+ type: 0, |
+ checked: false |
+ }); |
+ } |
+ return data; |
+ }, |
+ addRecord: function() { |
+ this.data.splice(this.addIdx, 0, { |
+ id: ++this.count, |
+ name: namegen.generateName(4, 8), |
+ details: strings[this.count % 3], |
+ image: this.count % 4, |
+ value: 0, |
+ type: 0, |
+ checked: false |
+ }); |
+ }, |
+ deleteRecord: function() { |
+ this.data.splice(this.deleteIdx, 1); |
+ }, |
+ deleteSelection: function() { |
+ var i, idx; |
+ if (this.multi) { |
+ if (this.selection.length) { |
+ for (i=0; i<this.selection.length; i++) { |
+ idx = this.data.indexOf(this.selection[i]); |
+ this.data.splice(idx, 1); |
+ } |
+ } |
+ } else { |
+ idx = this.data.indexOf(this.selection); |
+ this.data.splice(idx, 1); |
+ } |
+ }, |
+ clearSelection: function() { |
+ this.$.list.clearSelection(); |
+ }, |
+ deleteAll: function() { |
+ this.data.splice(0,this.data.length); |
+ // this.data.length = 0; |
+ }, |
+ deleteArray: function() { |
+ this.data = null; |
+ }, |
+ initArrayEmpty: function() { |
+ this.data = []; |
+ }, |
+ initArrayFull: function() { |
+ this.data = this.generateData(); |
+ } |
+ }); |
+})(); |
+</script> |
+</polymer-element> |
+ |
+</body> |
+</html> |