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

Unified Diff: polymer_1.0.4/bower_components/firebase-element/firebase-query-behavior.html

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 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: polymer_1.0.4/bower_components/firebase-element/firebase-query-behavior.html
diff --git a/polymer_1.0.4/bower_components/firebase-element/firebase-query-behavior.html b/polymer_1.0.4/bower_components/firebase-element/firebase-query-behavior.html
new file mode 100644
index 0000000000000000000000000000000000000000..57ab5a0413855cafb68aa123932abecf9dd259f5
--- /dev/null
+++ b/polymer_1.0.4/bower_components/firebase-element/firebase-query-behavior.html
@@ -0,0 +1,185 @@
+<!--
+@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
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="firebase.html">
+
+<script>
+ /** @polymerBehavior */
+ Polymer.FirebaseQueryBehavior = {
+ properties: {
+ /**
+ * A Firebase API location that references an accessible document.
+ */
+ location: {
+ type: String,
+ notify: true,
+ reflectToAttribute: true
+ },
+
+ /**
+ * Firebase Query object corresponding to `location`.
+ */
+ query: {
+ type: Object,
+ notify: true,
+ readOnly: true
+ },
+
+ /**
+ * If true, verbose debugging information will be printed to the console.
+ */
+ log: {
+ type: Boolean,
+ value: false,
+ reflectToAttribute: true
+ },
+
+ _receivingRemoteChanges: {
+ type: Boolean,
+ value: false
+ }
+ },
+
+ observers: [
+ '_dataChanged(data.*)'
+ ],
+
+ get dataAsObject() {
+ if (Array.isArray(this.data)) {
+ return this.data.reduce(function(object, value, index) {
+ object[index] = value;
+ }, {});
+ }
+
+ return this.data;
+ },
+
+ /**
+ * Disconnects the current Firebase Query instance.
+ */
+ disconnect: function() {
+ this.location = '';
+ },
+
+ _applyLocalDataChanges: function(changes) {
+ // Virtual..
+ },
+
+ _applyRemoteDataChange: function(applyChange) {
+ this._receivingRemoteChanges = true;
+ applyChange.call(this);
+ this._receivingRemoteChanges = false;
+ },
+
+ _dataChanged: function(changes) {
+ if (this._receivingRemoteChanges) {
+ return;
+ }
+
+ this._applyLocalDataChanges(changes);
+ },
+
+ _queryChanged: function(query, oldQuery) {
+ if (oldQuery) {
+ this._stopListeningToQuery(oldQuery);
+ }
+
+ if (query) {
+ this._listenToQuery(query);
+ }
+ },
+
+ _listenToQuery: function(query) {
+ this._log('Adding Firebase event handlers.');
+ query.on('value', this._onQueryValue, this._onQueryCancel, this);
+ query.on('child_added', this._onQueryChildAdded, this._onQueryCancel, this);
+ query.on('child_removed', this._onQueryChildRemoved, this._onQueryCancel, this);
+ query.on('child_changed', this._onQueryChildChanged, this._onQueryCancel, this);
+ query.on('child_moved', this._onQueryChildMoved, this._onQueryCancel, this);
+ },
+
+ _stopListeningToQuery: function(query) {
+ this._log('Removing Firebase event handlers');
+ query.off('value', this._onQueryValue, this);
+ query.off('child_added', this._onQueryChildAdded, this);
+ query.off('child_removed', this._onQueryChildRemoved, this);
+ query.off('child_changed', this._onQueryChildChanged, this);
+ query.off('child_moved', this._onQueryChildMoved, this);
+ },
+
+ _onQueryValue: function(snapshot) {
+ this._log('Firebase Event: "value"', snapshot);
+ this.fire('firebase-value', snapshot, { bubbles: false });
+ },
+
+ _onQueryChildAdded: function(childSnapshot, previousChildName) {
+ this._log('Firebase Event: "child_added"', childSnapshot, previousChildName);
+ this.fire('firebase-child-added', {
+ childSnapshot: childSnapshot,
+ previousChildName: previousChildName
+ }, { bubbles: false });
+ },
+
+ _onQueryChildRemoved: function(oldChildSnapshot) {
+ this._log('Firebase Event: "child_removed"', oldChildSnapshot);
+ this.fire('firebase-child-removed', {
+ oldChildSnapshot: oldChildSnapshot
+ }, { bubbles: false });
+ },
+
+ _onQueryChildChanged: function(childSnapshot, previousChildName) {
+ this._log('Firebase Event: "child_changed"', childSnapshot, previousChildName);
+ this.fire('firebase-child-changed', {
+ childSnapshot: childSnapshot,
+ previousChildName: previousChildName
+ }, { bubbles: false });
+ },
+
+ _onQueryChildMoved: function(childSnapshot, previousChildName) {
+ this._log('Firebase Event: "child_changed"', childSnapshot, previousChildName);
+ this.fire('firebase-child-moved', {
+ childSnapshot: childSnapshot,
+ previousChildName: previousChildName
+ }, { bubbles: false });
+ },
+
+ _onQueryCancel: function(error) {
+ if (error) {
+ this._error('Firebase Error', error);
+ }
+
+ this._log('Firebase query subscription cancelled.');
+ this.disconnect();
+ },
+
+ _log: function() {
+ var args;
+
+ if (this.log) {
+ args = Array.prototype.slice.call(arguments).map(function(arg) {
+ if (arg && typeof arg.val === 'function') {
+ return arg.val();
+ }
+
+ return arg;
+ });
+
+ console.log.apply(console, args);
+ }
+ },
+
+ _error: function() {
+ if (this.log) {
+ console.error.apply(console, arguments);
+ }
+ }
+ };
+</script>

Powered by Google App Engine
This is Rietveld 408576698