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

Unified Diff: polymer_1.0.4/bower_components/google-signin/google-signin.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/google-signin/google-signin.html
diff --git a/polymer_1.0.4/bower_components/google-signin/google-signin.html b/polymer_1.0.4/bower_components/google-signin/google-signin.html
new file mode 100644
index 0000000000000000000000000000000000000000..5bf7f958ce969abc2797613130750ee5c3f712c3
--- /dev/null
+++ b/polymer_1.0.4/bower_components/google-signin/google-signin.html
@@ -0,0 +1,490 @@
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="google-signin-aware.html">
+<link rel="import" href="../iron-icon/iron-icon.html">
+<link rel="import" href="../iron-icons/iron-icons.html">
+<link rel="import" href="../font-roboto/roboto.html">
+<link rel="import" href="../google-apis/google-js-api.html">
+<link rel="import" href="../paper-ripple/paper-ripple.html">
+<link rel="import" href="../paper-material/paper-material.html">
+<link rel="import" href="../iron-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="google-icons.html">
+
+<dom-module id="google-signin">
+ <link rel="import" type="css" href="google-signin.css">
+ <template>
+ <google-signin-aware id="aware"
+ app-package-name="{{appPackageName}}"
+ client-id="{{clientId}}"
+ cookie-policy="{{cookiePolicy}}"
+ request-visible-actions="{{requestVisibleActions}}"
+ scopes="{{scopes}}"
+ signed-in="{{signedIn}}"
+ is-authorized="{{isAuthorized}}"
+ need-additional-auth="{{needAdditionalAuth}}"
+ has-plus-scopes="{{hasPlusScopes}}"></google-signin-aware>
+ <template is="dom-if" if="{{raised}}">
+ <paper-material id="shadow" class="fit" elevation="2" animated></paper-material>
+ </template>
+ <div id="button"
+ class$="[[_computeButtonClass(height, width, theme, signedIn, _brand, needAdditionalAuth)]]">
+
+ <paper-ripple id="ripple" class="fit"></paper-ripple>
+ <!-- this div is needed to position the ripple behind text content -->
+ <div relative layout horizontal center-center>
+ <template is="dom-if" if="{{_computeButtonIsSignIn(signedIn, needAdditionalAuth)}}">
+ <div class="button-content signIn" tabindex="0"
+ on-click="signIn" on-keydown="_signInKeyPress">
+ <span class="icon"><iron-icon icon="[[_brandIcon]]"></iron-icon></span>
+ <span class="buttonText">{{_labelSignin}}</span>
+ </div>
+ </template>
+ <template is="dom-if" if="{{_computeButtonIsSignOut(signedIn, needAdditionalAuth) }}">
+ <div class="button-content signOut" tabindex="0"
+ on-click="signOut" on-keydown="_signOutKeyPress">
+ <span class="icon"><iron-icon icon="[[_brandIcon]]"></iron-icon></span>
+ <span class="buttonText">{{labelSignout}}</span>
+ </div>
+ </template>
+ <template is="dom-if" if="{{_computeButtonIsSignOutAddl(signedIn, needAdditionalAuth) }}">
+ <div class="button-content signIn" tabindex="0"
+ on-click="signIn" on-keydown="_signInKeyPress">
+ <span class="icon"><iron-icon icon="[[_brandIcon]]"></iron-icon></span>
+ <span class="buttonText">{{labelAdditional}}</span>
+ </div>
+ </template>
+ </div>
+
+ </div>
+ </template>
+</dom-module>
+<script>
+ (function() {
+
+ /**
+ * Enum brand values.
+ * @readonly
+ * @enum {string}
+ */
+ var BrandValue = {
+ GOOGLE: 'google',
+ PLUS: 'google-plus'
+ };
+
+ /**
+ * Enum height values.
+ * @readonly
+ * @enum {string}
+ */
+ var HeightValue = {
+ SHORT: 'short',
+ STANDARD: 'standard',
+ TALL: 'tall'
+ };
+
+ /**
+ * Enum button label default values.
+ * @readonly
+ * @enum {string}
+ */
+ var LabelValue = {
+ STANDARD: 'Sign in',
+ WIDE: 'Sign in with Google',
+ WIDE_PLUS: 'Sign in with Google+'
+ };
+
+ /**
+ * Enum theme values.
+ * @readonly
+ * @enum {string}
+ */
+ var ThemeValue = {
+ LIGHT: 'light',
+ DARK: 'dark'
+ };
+
+ /**
+ * Enum width values.
+ * @readonly
+ * @enum {string}
+ */
+ var WidthValue = {
+ ICON_ONLY: 'iconOnly',
+ STANDARD: 'standard',
+ WIDE: 'wide'
+ };
+
+/**
+&lt;google-signin&gt; is used to authenticate with Google, allowing you to interact
+with other Google APIs such as Drive and Google+.
+
+<img style="max-width:100%;" src="https://cloud.githubusercontent.com/assets/107076/6791176/5c868822-d16a-11e4-918c-ec9b84a2db45.png"/>
+
+If you do not need to show the button, use companion `<google-signin-aware>` element to declare scopes, check authentication state.
+
+#### Examples
+
+ <google-signin client-id="..." scopes="https://www.googleapis.com/auth/drive"></google-signin>
+
+ <google-signin label-signin="Sign-in" client-id="..." scopes="https://www.googleapis.com/auth/drive"></google-signin>
+
+ <google-signin theme="dark" width="iconOnly" client-id="..." scopes="https://www.googleapis.com/auth/drive"></google-signin>
+
+
+#### Notes
+
+The attribute `clientId` is provided in your Google Developers Console
+(https://console.developers.google.com).
+
+The `scopes` attribute allows you to specify which scope permissions are required
+(e.g do you want to allow interaction with the Google Drive API). Many APIs also
+need to be enabled in the Google Developers Console before you can use them.
+
+The `requestVisibleActions` attribute is necessary if you want to write app
+activities (https://developers.google.com/+/web/app-activities/) on behalf of
+the user. Please note that this attribute is only valid in combination with the
+plus.login scope (https://www.googleapis.com/auth/plus.login).
+
+Use label properties to customize prompts.
+
+The button can be styled in using the `height`, `width`, and `theme` attributes.
+These attributes help you follow the Google+ Sign-In button branding guidelines
+(https://developers.google.com/+/branding-guidelines).
+
+The `google-signin-success` event is triggered when a user successfully authenticates
+and `google-signed-out` is triggered when user signeds out.
+You can also use `isAuthorized` attribute to observe user's authentication state.
+
+Additional events, such as `google-signout-attempted` are
+triggered when the user attempts to sign-out and successfully signs out.
+
+The `google-signin-necessary` event is fired when scopes requested via
+google-signin-aware elements require additional user permissions.
+
+#### Testing
+
+By default, the demo accompanying this element is setup to work on localhost with
+port 8080. That said, you *should* update the `clientId` to your own one for
+any apps you're building. See the Google Developers Console
+(https://console.developers.google.com) for more info.
+
+@demo
+*/
+
+ Polymer({
+
+ is: 'google-signin',
+
+ /**
+ * Fired when user is signed in.
+ * You can use auth2 api to retrieve current user: `gapi.auth2.getAuthInstance().currentUser.get();`
+ * @event google-signin-success
+ */
+
+ /**
+ * Fired when the user is signed-out.
+ * @event google-signed-out
+ */
+
+ /**
+ * Fired if user requires additional authorization
+ * @event google-signin-necessary
+ */
+
+ /**
+ * Fired when signed in, and scope has been authorized
+ * @param {Object} result Authorization result.
+ * @event google-signin-aware-success
+ */
+
+ /**
+ * Fired when this scope is not authorized
+ * @event google-signin-aware-signed-out
+ */
+ properties: {
+ /**
+ * App package name for android over-the-air installs.
+ * See the relevant [docs](https://developers.google.com/+/web/signin/android-app-installs)
+ */
+ appPackageName: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * The brand being used for logo and styling.
+ *
+ * @default 'google'
+ */
+ brand: {
+ type: String,
+ value: ''
+ },
+
+ /** @private */
+ _brand: {
+ type: String,
+ computed: '_computeBrand(brand, hasPlusScopes)'
+ },
+
+ /**
+ * a Google Developers clientId reference
+ */
+ clientId: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * The cookie policy defines what URIs have access to the session cookie
+ * remembering the user's sign-in state.
+ * See the relevant [docs](https://developers.google.com/+/web/signin/reference#determining_a_value_for_cookie_policy) for more information.
+ *
+ * @default 'single_host_origin'
+ */
+ cookiePolicy: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * The height to use for the button.
+ *
+ * Available options: short, standard, tall.
+ *
+ * @type {HeightValue}
+ */
+ height: {
+ type: String,
+ value: 'standard'
+ },
+
+ /**
+ * By default the ripple expands to fill the button. Set this to true to
+ * constrain the ripple to a circle within the button.
+ */
+ fill: {
+ type: Boolean,
+ value: true
+ },
+
+ /**
+ * An optional label for the button for additional permissions.
+ */
+ labelAdditional: {
+ type: String,
+ value: 'Additional permissions required'
+ },
+
+ /**
+ * An optional label for the sign-in button.
+ */
+ labelSignin: {
+ type: String,
+ value: ''
+ },
+
+ _labelSignin: {
+ type: String,
+ computed: '_computeSigninLabel(labelSignin, width, _brand)'
+ },
+ /**
+ * An optional label for the sign-out button.
+ */
+ labelSignout: {
+ type: String,
+ value: 'Sign out'
+ },
+
+ /**
+ * If true, the button will be styled with a shadow.
+ */
+ raised: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * The app activity types you want to write on behalf of the user
+ * (e.g http://schemas.google.com/AddActivity)
+ */
+ requestVisibleActions: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * The scopes to provide access to (e.g https://www.googleapis.com/auth/drive)
+ * and should be space-delimited.
+ */
+ scopes: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * The theme to use for the button.
+ *
+ * Available options: light, dark.
+ *
+ * @attribute theme
+ * @type {ThemeValue}
+ * @default 'dark'
+ */
+ theme: {
+ type: String,
+ value: 'dark'
+ },
+
+ /**
+ * The width to use for the button.
+ *
+ * Available options: iconOnly, standard, wide.
+ *
+ * @type {WidthValue}
+ */
+ width: {
+ type: String,
+ value: 'standard'
+ },
+
+ _brandIcon: {
+ type: String,
+ computed: '_computeIcon(_brand)'
+ },
+
+ /**
+ * True if *any* element has google+ scopes
+ */
+ hasPlusScopes: {
+ type: Boolean,
+ notify: true,
+ value: false
+ },
+
+ /**
+ * True if additional authorization required globally
+ */
+ needAdditionalAuth: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * Is user signed in?
+ */
+ signedIn: {
+ type: Boolean,
+ notify: true,
+ value: false,
+ observer: '_observeSignedIn'
+ },
+
+ /**
+ * True if authorizations for *this* element have been granted
+ */
+ isAuthorized: {
+ type: Boolean,
+ notify: true,
+ value: false
+ }
+
+ },
+
+ _computeButtonClass: function(height, width, theme, signedIn, brand, needAdditionalAuth) {
+ return "height-" + height + " width-" + width + " theme-" + theme + " signedIn-" + signedIn + " brand-" + brand + " additionalAuth-" + needAdditionalAuth;
+ },
+
+ _computeIcon: function(brand) {
+ return "google:" + brand;
+ },
+
+ /* Button state computed */
+ _computeButtonIsSignIn: function(signedIn, additionalAuth) {
+ return !signedIn;
+ },
+
+ _computeButtonIsSignOut: function(signedIn, additionalAuth) {
+ return signedIn && !additionalAuth;
+ },
+
+ _computeButtonIsSignOutAddl: function(signedIn, additionalAuth) {
+ return signedIn && additionalAuth;
+ },
+
+ _computeBrand: function(attrBrand, hasPlusScopes) {
+ var newBrand;
+ if (attrBrand) {
+ newBrand = attrBrand;
+ } else if (hasPlusScopes) {
+ newBrand = BrandValue.PLUS;
+ } else {
+ newBrand = BrandValue.GOOGLE;
+ };
+ return newBrand;
+ },
+
+ _observeSignedIn: function(newVal, oldVal) {
+ if (newVal) {
+ if (this.needAdditionalAuth)
+ this.fire('google-signin-necessary');
+ this.fire('google-signin-success');
+ }
+ else
+ this.fire('google-signed-out');
+ },
+
+ /**
+ * Determines the proper label based on the attributes.
+ */
+ _computeSigninLabel: function(labelSignin, width, _brand) {
+ if (labelSignin) {
+ return labelSignin;
+ } else {
+ switch(width) {
+
+ case WidthValue.WIDE:
+ return (_brand == BrandValue.PLUS) ?
+ LabelValue.WIDE_PLUS : LabelValue.WIDE;
+
+ case WidthValue.STANDARD:
+ return LabelValue.STANDARD;
+
+ case WidthValue.ICON_ONLY:
+ return '';
+
+ default:
+ console.warn("bad width value: ", width);
+ return LabelValue.STANDARD;
+ }
+ }
+ },
+
+ /** Sign in user. Opens the authorization dialog for signing in.
+ * The dialog will be blocked by a popup blocker unless called inside click handler.
+ */
+ signIn: function () {
+ this.$.aware.signIn();
+ },
+
+ _signInKeyPress: function (e) {
+ if (e.which == 13 || e.keyCode == 13 || e.which == 32 || e.keyCode == 32) {
+ e.preventDefault();
+ this.signIn();
+ }
+ },
+
+ /** Sign out the user */
+ signOut: function () {
+ this.fire('google-signout-attempted');
+ this.$.aware.signOut();
+ },
+
+ _signOutKeyPress: function (e) {
+ if (e.which == 13 || e.keyCode == 13 || e.which == 32 || e.keyCode == 32) {
+ e.preventDefault();
+ this.signOut();
+ }
+ }
+ });
+ }());
+</script>

Powered by Google App Engine
This is Rietveld 408576698