/** * AngularJS service for prismic.io * @version v0.3.0 - 2015-01-15 * @link * @author Arjan Wulder * @license MIT License, http://www.opensource.org/licenses/MIT */ "use strict";angular.module("prismic.io",[]).provider("Prismic",function(){var a={};a.init=function(a,b){a.configuration=b,b.apiEndpoint=angular.isUndefined(b.apiEndpoint)?"":b.apiEndpoint,a.setApiEndpoint=function(a){b.apiEndpoint=a},b.accessToken=angular.isUndefined(b.accessToken)?"":b.accessToken,a.setAccessToken=function(a){b.accessToken=a},b.clientId=angular.isUndefined(b.clientId)?"":b.clientId,a.setClientId=function(a){b.clientId=a},b.clientSecret=angular.isUndefined(b.clientSecret)?"":b.clientSecret,a.setClientSecret=function(a){b.clientSecret=a},b.linkResolver=angular.isUndefined(b.linkResolver)?function(){}:b.linkResolver,a.setLinkResolver=function(a){b.linkResolver=a},b.usePrismicDefaultRequestHandler=angular.isUndefined(b.usePrismicDefaultRequestHandler)?!1:b.usePrismicDefaultRequestHandler,a.setUsePrismicDefaultRequestHandler=function(a){b.usePrismicDefaultRequestHandler=a},b.oauthScope=angular.isUndefined(b.oauthScope)?"":b.oauthScope,a.setOAuthScope=function(a){b.oauthScope=a}};var b={};a.init(this,b),this.$get=["$window","$http","$q",function(c,d,e){function f(b){function f(a,b){var c={headers:{Accept:"application/json"}};d.get(a,c).then(function(a){b(null,a.data)},function(a){b(a,null)})}function g(){var a=e.defer(),c=function(b,c){c?a.resolve(c):a.reject(b)};return x.Api(b.apiEndpoint,c,b.accessToken,b.usePrismicDefaultRequestHandler?void 0:f),a.promise}function h(a){return v=g().then(function(c){var d={ref:a||c.data.master.ref,api:c,maybeRef:a&&a!==c.data.master.ref?a:"",maybeRefParam:a&&a!==c.data.master.ref?"&ref="+a:"",oauth:function(){return{accessToken:b.accessToken,hasPrivilegedAccess:!!b.accessToken}},linkResolver:b.linkResolver};return d})}function i(){return u?u:u=h(y.ref)}function j(a){for(var b,c={},d=/\+/g,e=/([^&=]+)=?([^&]*)/g,f=function(a){return decodeURIComponent(a.replace(d," "))};b=e.exec(a);)c[f(b[1])]=f(b[2]);return c}function k(){return i().then(function(a){var b=e.defer();return b.resolve(a.api),b.promise})}function l(){return i().then(function(a){var b=e.defer();return b.resolve(a),b.promise})}function m(a){return k().then(function(d){var f=a||c.location,g=d.data.oauthInitiate+"?response_type=token&client_id="+encodeURIComponent(b.clientId)+"&redirect_uri="+encodeURIComponent(f)+"&scope="+encodeURIComponent(b.oauthScope);return e.when(g)})}function n(a,b,c){return i().then(function(d){var f=e.defer(),g=d.api.forms("everything").ref(d.ref);return""!==a&&(g=g.query(a)),c&&(g=c(g)),g.submit(function(a,c){c?f.resolve(b(c)):f.reject(a)}),f.promise})}function o(a){return p("",a)}function p(a,b){return n(a,function(a){return a},b)}function q(a,b){var c='[[:d = at(document.type, "'+a+'")]]';return p(c,b)}function r(a){var b='[[:d = at(document.id, "'+a+'")]]';return n(b,function(a){return a.results[0]})}function s(a,b){if(a&&a.length){var c="[[:d = any(document.id, ["+a.map(function(a){return'"'+a+'"'}).join(",")+"])]]";return p(c,b)}e.reject("Ids must be provided")}function t(a){return i().then(function(b){var c=b.api.bookmarks[a];return c?r(c):e.reject("Bookmark not found")})}var u,v,w={},x=c.Prismic,y=j(c.location.search.substring(1));return a.init(w,b),w.api=k,w.ctx=l,w.authenticationUrl=m,w.all=o,w.query=p,w.documentTypes=q,w.document=r,w.documents=s,w.bookmark=t,w}return f(b)}]}).directive("prismicHtml",["$window","Prismic",function(a,b){return{restrict:"AE",scope:{fragment:"=fragment"},link:function(c,d){c.$watch("fragment",function(){if(c.fragment){var e=a.Prismic.Fragments.initField(c.fragment);if(e){var f=e.asHtml(b.configuration);d[0].innerHTML=f}}})}}}]);