Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Unified Diff: third_party/polymer/v0_8/components/polymer/src/lib/collection.html

Issue 1162563004: Upgrade to 1.0 and switch clients to dom-repeat where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a layout import and remove the gzipped webanimation in reproduce.sh Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v0_8/components/polymer/src/lib/collection.html
diff --git a/third_party/polymer/v0_8/components/polymer/src/lib/collection.html b/third_party/polymer/v0_8/components/polymer/src/lib/collection.html
deleted file mode 100644
index 494a4f2eb5ddd546167e4be9fed855d9f3c0a851..0000000000000000000000000000000000000000
--- a/third_party/polymer/v0_8/components/polymer/src/lib/collection.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!--
-@license
-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
--->
-
-<link rel="import" href="array-observe.html">
-<link rel="import" href="debounce.html">
-
-<script>
-
- Polymer._collections = new WeakMap();
-
- Polymer.Collection = function(userArray, noObserve) {
- Polymer._collections.set(userArray, this);
- this.userArray = userArray;
- this.store = userArray.slice();
- this.callbacks = [];
- this.debounce = null;
- this.map = null;
- this.added = [];
- this.removed = [];
- if (!noObserve) {
- Polymer.ArrayObserve.observe(userArray, this.applySplices.bind(this));
- this.initMap();
- }
- };
-
- Polymer.Collection.prototype = {
- constructor: Polymer.Collection,
-
- initMap: function() {
- var map = this.map = new WeakMap();
- var s = this.store;
- var u = this.userArray;
- for (var i=0; i<s.length; i++) {
- var v = s[i];
- if (v) {
- switch (typeof v) {
- case 'string':
- v = s[i] = u[i]= new String(v);
- break;
- case 'number':
- v = s[i] = u[i]= new Number(v);
- break;
- case 'boolean':
- v = s[i] = u[i]= new Boolean(v);
- break;
- }
- map.set(v, i);
- }
- }
- },
-
- add: function(item, squelch) {
- var key = this.store.push(item) - 1;
- if (item != null && this.map) {
- this.map.set(item, key);
- }
- if (!squelch) {
- this.added.push(key);
- this.debounce = Polymer.Debounce(this.debounce, this.notify.bind(this));
- }
- return key;
- },
-
- removeKey: function(key) {
- if (this.map) {
- this.map.delete(this.store[key]);
- }
- delete this.store[key];
- this.removed.push(key);
- this.debounce = Polymer.Debounce(this.debounce, this.notify.bind(this));
- },
-
- remove: function(item, squelch) {
- var key = this.getKey(item);
- if (item != null && this.map) {
- this.map.delete(item);
- }
- delete this.store[key];
- if (!squelch) {
- this.removed.push(key);
- this.debounce = Polymer.Debounce(this.debounce, this.notify.bind(this));
- }
- return key;
- },
-
- notify: function(splices) {
- if (!splices) {
- splices = [{
- added: this.added,
- removed: this.removed
- }];
- this.added = [];
- this.removed = [];
- }
- this.callbacks.forEach(function(cb) {
- cb(splices);
- }, this);
- },
-
- observe: function(callback) {
- this.callbacks.push(callback);
- },
-
- unobserve: function(callback) {
- this.callbacks.splice(this.callbacks.indexOf(callback), 1);
- },
-
- getKey: function(item) {
- if (item != null && this.map) {
- return this.map.get(item);
- } else {
- return this.store.indexOf(item);
- }
- },
-
- getKeys: function() {
- return Object.keys(this.store);
- },
-
- setItem: function(key, value) {
- this.store[key] = value;
- },
-
- getItem: function(key) {
- return this.store[key];
- },
-
- getItems: function() {
- var items = [], store = this.store;
- for (var key in store) {
- items.push(store[key]);
- }
- return items;
- },
-
- applySplices: function(splices) {
- var map = this.map;
- var keySplices = [];
- for (var i=0; i<splices.length; i++) {
- var j, o, key, s = splices[i];
- // Removed keys
- var removed = [];
- for (j=0; j<s.removed.length; j++) {
- o = s.removed[j];
- key = this.remove(o, true);
- removed.push(key);
- }
- // Added keys
- var added = [];
- for (j=0; j<s.addedCount; j++) {
- o = this.userArray[s.index + j];
- key = this.add(o, true);
- added.push(key);
- }
- // Record splice
- keySplices.push({
- index: s.index,
- removed: removed,
- added: added
- });
- }
- this.notify(keySplices);
- }
-
- };
-
- Polymer.Collection.get = function(userArray, noObserve) {
- return Polymer._collections.get(userArray)
- || new Polymer.Collection(userArray, noObserve);
- };
-
-</script>

Powered by Google App Engine
This is Rietveld 408576698