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

Unified Diff: polymer_1.0.4/bower_components/firebase-element/firebase-document.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-document.html
diff --git a/polymer_1.0.4/bower_components/firebase-element/firebase-document.html b/polymer_1.0.4/bower_components/firebase-element/firebase-document.html
new file mode 100644
index 0000000000000000000000000000000000000000..afc5b74728eb3f13ddf16fe32b462d6e11c2c8f6
--- /dev/null
+++ b/polymer_1.0.4/bower_components/firebase-element/firebase-document.html
@@ -0,0 +1,110 @@
+<!--
+@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">
+<link rel="import" href="firebase-query-behavior.html">
+
+<!--
+An element wrapper for the Firebase API.
+
+A `<firebase-document>` is a reference to a remote document somewhere on
+Firebase. The element fetchs a document at a provided `location`, and exposes
+it as an Object that is suitable for deep two-way databinding.
+
+Example:
+
+ <firebase-document
+ location="https://dinosaur-facts.firebaseio.com/dinosaurs"
+ data="{{dinosaurs}}">
+
+In the above example, if the `dinosaurs` object is data-bound elsewhere via
+Polymer's data-binding system, changes to the document will be automatically
+reflected in the remote document and any other clients referencing that
+document.
+-->
+
+<script>
+ Polymer({
+ is: 'firebase-document',
+
+ behaviors: [
+ Polymer.FirebaseQueryBehavior
+ ],
+
+ properties: {
+
+ /**
+ * Firebase Query object corresponding to `location`.
+ */
+ query: {
+ type: Object,
+ notify: true,
+ computed: '_computeQuery(location)',
+ observer: '_queryChanged'
+ },
+
+ /**
+ * The `data` object mapped to `location`.
+ */
+ data: {
+ type: Object,
+ notify: true
+ }
+ },
+
+ listeners: {
+ 'firebase-value': '_onFirebaseValue'
+ },
+
+ _applyLocalDataChanges: function(change) {
+ var pathFragments = change.path.split('.');
+
+ if (pathFragments.length === 1) {
+ this._updateRemoteDocument();
+ return;
+ }
+
+ this._setRemoteDocumentChild(
+ pathFragments[1],
+ change.base[pathFragments[1]]
+ );
+ },
+
+ _onFirebaseValue: function(event) {
+ this._applyRemoteDataChange(function() {
+ this.set('data', event.detail.val());
+ });
+ },
+
+ _computeQuery: function(location) {
+ if (!location) {
+ return;
+ }
+
+ return new Firebase(location);
+ },
+
+ _updateRemoteDocument: function() {
+ this._log('Updating remote document');
+ this.query.update(this.dataAsObject);
+ },
+
+ _setRemoteDocumentChild: function(key, value) {
+ this._log('Setting child "' + key + '" to', value);
+ this.query.child(key).set(value);
+ },
+
+ _removeRemoteDocumentChild: function(key) {
+ this._log('Removing child "' + key + '"');
+ this.query.child(key).remove();
+ }
+ });
+</script>

Powered by Google App Engine
This is Rietveld 408576698