Index: polymer_1.0.4/bower_components/google-hangout-button/google-hangout-button.html |
diff --git a/polymer_1.0.4/bower_components/google-hangout-button/google-hangout-button.html b/polymer_1.0.4/bower_components/google-hangout-button/google-hangout-button.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f8854ab4a354e9a8a9a4ab70082298c555068851 |
--- /dev/null |
+++ b/polymer_1.0.4/bower_components/google-hangout-button/google-hangout-button.html |
@@ -0,0 +1,142 @@ |
+<link rel="import" href="../polymer/polymer.html"> |
+ |
+<link rel="import" href="../google-apis/google-plusone-api.html"> |
+ |
+<!-- |
+Element providing a button to start a Google Hangout. |
+ |
+##### Example |
+ |
+ <google-hangout-button></google-hangout-button> |
+ |
+@demo |
+--> |
+<dom-module id="google-hangout-button"> |
+ <style> |
+ :host, span { |
+ display: inline-block; |
+ } |
+ </style> |
+ <template> |
+ <google-plusone-api id="plusone" on-api-load="_load"></google-plusone-api> |
+ <span id="container"></span> |
+ </template> |
+</dom-module> |
+<script> |
+ Polymer({ |
+ is: 'google-hangout-button', |
+ |
+ /** |
+ * Fired when the hangout api is loaded but before rendering the button. |
+ * |
+ * @event google-hangout-button-pregame |
+ * @param {Object} e Event parameters. |
+ */ |
+ |
+ /** |
+ * Fired when the button is rendered and ready to use. |
+ * |
+ * @event google-hangout-button-ready |
+ * @param {Object} e Event parameters. |
+ */ |
+ |
+ properties: { |
+ |
+ /** |
+ * Specifies what type of Hangout should be started. |
+ * Valid values are 'normal', 'onair', 'party' and 'moderated' |
+ * |
+ * See the [Hangout button parameter reference](https://developers.google.com/+/hangouts/button#hangout_button_parameters) |
+ * for more details. |
+ */ |
+ type: { |
+ type: String, |
+ value: 'normal' |
+ }, |
+ |
+ /** |
+ * Specifies the Google+ Hangout apps to launch when a user clicks the |
+ * Hangout button. Invalid objects and parameters are ignored. |
+ * |
+ * See the [Initial app parameters reference](https://developers.google.com/+/hangouts/button#initial_app_parameters) |
+ * for more details. |
+ */ |
+ apps: { |
+ type: Array, |
+ value: function() { return []; } |
+ }, |
+ |
+ /** |
+ * Specifies the list of people to invite when the user clicks the |
+ * Hangout button. Invalid objects and parameters are ignored. |
+ * |
+ * See the [Invite parameters reference](https://developers.google.com/+/hangouts/button#invite_parameters) |
+ * for more details. |
+ */ |
+ invites: { |
+ type: Array, |
+ value: function() { return []; } |
+ }, |
+ |
+ /** |
+ * Pre-populates the topic field for Hangouts on Air. Note that users can |
+ * change the topic of the Hangout after they have joined. |
+ */ |
+ topic: { |
+ type: String, |
+ value: null |
+ }, |
+ |
+ /** |
+ * Specifies the width of the button. |
+ */ |
+ width: { |
+ type: Number, |
+ value: 136 |
+ }, |
+ |
+ _loaded: { |
+ type: Boolean, |
+ value: false |
+ } |
+ }, |
+ |
+ _load: function() { |
+ // TODO(sjmiles): pre/post shenanigans required because gapi.hangout.render |
+ // throws if not rendered into main document light-dom |
+ var container = this._pregame(); |
+ this.$.plusone.api.hangout.render(container, { |
+ 'render': 'createhangout', |
+ 'hangout_type': this.type, |
+ 'initial_apps': this.apps, |
+ 'invites': this.invites, |
+ 'topic': this.topic, |
+ 'widget_size': this.width |
+ }); |
+ this._postgame(container); |
+ }, |
+ _pregame: function() { |
+ var object = document.createElement('span'); |
+ document.body.appendChild(object); |
+ this.fire('google-hangout-button-pregame'); |
+ return object; |
+ }, |
+ _postgame: function(object) { |
+ // when the iframe finishes it's dirty business, snarf it into the shadow-root |
+ var iframe = object.firstElementChild; |
+ iframe.addEventListener('load', function() { |
+ if (!this._loaded) { |
+ // TODO(sjmiles): appending directly to shadowRoot not working under polyfill |
+ //this.shadowRoot.appendChild(object); |
+ this.$.container.appendChild(object); |
+ this._loaded = true; |
+ this.fire('google-hangout-button-ready'); |
+ } |
+ }.bind(this)); |
+ }, |
+ ready: function () { |
+ this.apps = this.apps || []; |
+ this.invites = this.invites || []; |
+ } |
+ }); |
+</script> |