-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathangular-gapi.min.js
18 lines (17 loc) · 6.87 KB
/
angular-gapi.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// angular-gapi
// https://github.com/andryfailli/angular-gapi
//
// Copyright 2016 Andrea Failli
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
!function(){angular.module("angular-gapi",[])}(),function(){function e(e){function n(e,n){var r="ngGapiScript_";if(window.ngGapiInitSemaphore||(window.ngGapiInitSemaphore=0),!document.getElementById(r+e)){window.ngGapiInitSemaphore++;var t=document.createElement("script");t.setAttribute("src",n+"?onload=ngGapiInit"),t.setAttribute("id",r+e);var i=document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0];i.appendChild(t)}}window.ngGapiInit=function(){window.ngGapiInitSemaphore--,0==window.ngGapiInitSemaphore&&gapi.load("auth",function(){e.setGapi(window.gapi)})},n("jsapi","https://apis.google.com/js/platform.js"),n("client","https://apis.google.com/js/client:platform.js")}e.$inject=["GapiProvider"],angular.module("angular-gapi").config(e)}(),function(){function e(e,n){return{create:function(){var r=e.defer();return e.all([n.load("picker"),n.auth$promise()]).then(function(){var e=(new google.picker.PickerBuilder).setOAuthToken(n.token()).setDeveloperKey(n.apiKey());r.resolve(e)}),r.promise}}}e.$inject=["$q","Gapi"],angular.module("angular-gapi").service("GapiPicker",e)}(),function(){function e(e,n){return function(r){function t(e,u,a){var a=a?a:[];if(a.splice(0,a.length),a.$nextPageToken=u?u.nextPageToken:null,a.$limit=u?u.limit:null,a.$next=function(){var t=angular.extend(u?u:{},{});t[r.pageTokenFieldName]=a.$nextPageToken,t[r.limitFieldName]=a.$limit;var c=r.resourceType?r.resourceType.toLowerCase()+"."+e:e,s=i.exec(c,t),l=[];s.$promise.then(null,null,function(){if(!a.$resolved){for(var e=0;e<l.length;e++)a.splice(a.indexOf(l[e]),1);if(l.splice(0,l.length),angular.isArray(s[r.itemsFiledName]))for(var e=0;e<s[r.itemsFiledName].length;e++)a.push(o(s[r.itemsFiledName][e])),l.push(o(s[r.itemsFiledName][e]));a.$nextPageToken=s[r.nextPageTokenFieldName]}});var f=n.defer();a.$promise=f.promise;var g=a.$resolved;return a.$resolved=!1,a.$resolving=!0,s.$promise.then(function(){for(var e=0;e<l.length;e++)a.splice(a.indexOf(l[e]),1);if(l.splice(0,l.length),angular.isArray(s[r.itemsFiledName]))for(var e=0;e<s[r.itemsFiledName].length;e++)a.push(o(s[r.itemsFiledName][e]));a.$nextPageToken=s[r.nextPageTokenFieldName],a.$resolved=!0,a.$resolving=!1,f.resolve(a)})["catch"](function(e){a.$resolved=!!angular.isDefined(g)&&g,a.$resolving=!1,f.reject(e)}),a},a.$exec=function(e,n){return t(e,n,a)},a.$execList=function(e,n){return t(e,n,a)},angular.isObject(r.resourcesListMethods))for(var c in r.resourcesListMethods)a[c]=function(e){return function(){return r.resourcesListMethods[e].apply(a,arguments)}}(c);return a.$next()}var i=e.client(r.clientName),o=function(e){var n={};if(angular.isObject(e)&&angular.extend(n,e),n.$exec=function(e,n){var t=r.resourceType?r.resourceType.toLowerCase()+"."+e:e;return i.exec(t,n,this)},angular.isObject(r.resourceMethods))for(var t in r.resourceMethods)n[t]=function(e){return function(){return r.resourceMethods[e].apply(n,arguments)}}(t);return n};if(o.$execList=function(e,n){return t(e,n)},o.$exec=function(e,n){n=angular.isObject(n)?n:{id:n};var r=o(n);return r.$exec(e,r)},angular.isObject(r.resourceConstructorMethods))for(var u in r.resourceConstructorMethods)o[u]=function(e){return function(){return r.resourceConstructorMethods[e].apply(o,arguments)}}(u);return o.$constructor=o,o.$resourceType=r.resourceType,o}}e.$inject=["Gapi","$q"],angular.module("angular-gapi").service("GapiResourceFactory",e)}(),function(){function e(){function e(e){h=e,b.resolve(h)}function n(e){v=e}function r(e){$=e}function t(e){j=e}function i(e){O=e}function o(e){if(!k[e]){var n=y.defer();k[e]=n.promise,b.promise.then(function(){h.load(e,{callback:function(){n.resolve(e)}})})}return k[e]}function u(e,n,r){if(!T[e]){var t=y.defer();T[e]=t.promise,G[e]=d(e),b.promise.then(function(){h.client.load(e,n,function(){G[e]=angular.extend(G[e],h.client[e]),t.resolve(G[e])},r)})}return T[e]}function a(e){N=y.defer();var n=y.defer();return b.promise.then(function(){var r={client_id:v,scope:"object"==typeof j?j.join(" "):j,cookiepolicy:"single_host_origin",immediate:e};h.auth.authorize(r,function(e){e&&e.error?n.reject(e.error):(x=e.access_token,n.resolve(e),N.resolve(e))})}),n.promise}function c(){N&&(h.auth.signOut(),N.reject("logout"),N=null)}function s(e,n){for(var r=n.split("."),t=0;t<r.length;t++){if(!angular.isObject(e))return;e=e[r[t]]}return e}function l(e,n){for(var r in e)"$"!=r[0]&&("undefined"==typeof n[r]?delete e[r]:angular.isObject(e[r])&&l(e[r],n[r]))}function f(e){if(angular.isObject(e))for(var n in e)"$"==n[0]?delete e[n]:angular.isObject(e[n])&&f(e[n])}function g(e,n){for(var r=0;r<F.length;r++){var t=angular.isString(F[r])?w.get(F[r]):F[r];n=t[e](n)}return n}function p(e,n,r,t){r=g("request",r),r=angular.copy(r),f(r);var i=y.defer(),o=m(i.promise,t),u=e+"."+n+"("+angular.toJson(r)+")",a=o.$resolved;return o.$resolved=!1,o.$resolving=!0,i.promise.then(function(e){O&&O.put(u,e),l(o,e),angular.extend(o,e),o.$resolved=!0,o.$resolving=!1})["catch"](function(){o.$resolved=!!angular.isDefined(a)&&a,o.$resolving=!1}),O&&y.when(O.get(u)).then(function(e){e&&!o.$resolved&&(angular.extend(o,e),i.notify(o))}),y.all(N?[N.promise,T[e]]:[T[e]]).then(function(){var t=G[e];if(!t)throw e+" is not a gapi client";var o=s(t,n);if(!angular.isFunction(o))throw n+" is not a valid method for client "+e;o(r).execute(function(e){e=g("response",e),e&&e.error?i.reject(e.error):i.resolve(e.result)})}),o}function d(e){return{promise:T[e],exec:function(n,r,t){return p(e,n,r,t)}}}function m(e,n){return angular.extend(angular.isObject(n)?n:{},{$promise:e,$resolved:!1,$resolving:!1})}var h,v,$,j,x,y=angular.injector(["ng"]).get("$q"),w=angular.injector(["ng"]).get("$injector"),k={},T={},G={},b=y.defer(),N=null,O=null,F=[];this.setGapi=e,this.setClientId=n,this.setApiKey=r,this.setScope=t,this.setCache=i,this.load=o,this.loadClient=u,this.interceptors=F,this.$get=["$q","$injector",function(e,n){return y=e,w=n,{gapi:function(){return h},gapi$promise:function(){return b.promise},auth$promise:function(){return N?N.promise:null},token:function(){return x},clientId:function(){return v},apiKey:function(){return $},setCache:function(e){return i(e)},load:function(e){return o(e)},loadClient:function(e,n,r){return u(e,n,r)},client:function(e){return G[e]},authorize:function(e){return a(e)},logout:function(){return c()}}}]}angular.module("angular-gapi").provider("Gapi",e)}();