/** * @license official-addthis-angularjs 1.0.3 * Copyright (c) 2017 Oracle and/or its affiliates. * License: UPL */ var addthisModule=function(window,angular){var autoAddScript=!0,scriptInFooter=!0,profileId=!1,addthis_config={},addthis_share={},addthis_plugin_info={info_status:"enabled",cms_name:"Angular",plugin_name:"official-addthis-angularjs",plugin_version:"1.0.3",plugin_mode:"AddThis"};addthis_plugin_info.cms_version=angular.version.full;var defaultUrl="https://s7.addthis.com/js/300/addthis_widget.js",baseUrl=defaultUrl,checkForScript=function(document){var scriptOnPage=!1;return document.querySelectorAll('script[src*="addthis_widget.js"]').length>0&&(scriptOnPage=!0),scriptOnPage},addScript=function(document){if(!checkForScript(document)){var url;url=profileId?baseUrl+"#pubid="+profileId:baseUrl;var script=document.createElement("script");script.src=url,!0!==scriptInFooter&&"object"==typeof document.head?document.head.appendChild(script):document.body.appendChild(script)}},smartLayersRefreshRequest={pending:!1},queueSmartLayersRefresh=function($window,$interval){if(smartLayersRefreshRequest.lastTs=(new Date).getTime(),$window.addthis_config=angular.copy(addthis_config),$window.addthis_share=angular.copy(addthis_share),!smartLayersRefreshRequest.pending&&void 0!==$window.addthis&&void 0!==$window.addthis.layers&&void 0!==$window.addthis.layers.refresh){smartLayersRefreshRequest.pending=!0;var intervalPromise;intervalPromise=$interval(function(){var now=(new Date).getTime();now-smartLayersRefreshRequest.lastTs>=100&&now-$window.addthis.layers.lastViewRegistered>500&&($interval.cancel(intervalPromise),smartLayersRefreshRequest.pending=!1,$window.addthis.layers.refresh(addthis_share.url,addthis_share.title))},100,0,!1)}},setAddThisConfig=function(input){return"object"==typeof input&&(input.pubid&&(profileId=input.pubid),input.ignore_server_config?addthis_plugin_info.plugin_mode="Local":addthis_plugin_info.plugin_mode="AddThis",addthis_config=angular.copy(input),profileId&&(addthis_config.pubid=profileId)),angular.copy(addthis_config)},setAddThisShare=function(input){return"object"==typeof input&&(addthis_share=angular.copy(input)),angular.copy(addthis_share)},setShareUrl=function(url){addthis_share.url=url},setShareTitle=function(title){addthis_share.title=title},setShareDescription=function(description){addthis_share.description=description},setShareMedia=function(media){addthis_share.media=media},load={promise:!1,interval:200},scriptLoaded=function($window,$q,$interval){if(load.promise)return load.promise;var deferred=$q.defer();if($window.addthis)deferred.resolve($window.addthis);else var addThisCheckPromise=$interval(function(){$window.addthis&&($interval.cancel(addThisCheckPromise),load.done=!0,deferred.resolve($window.addthis))},load.interval,0,!1);return load.promise=deferred.promise,load.promise},twitterVia=function(handle){"string"==typeof handle&&handle.length>0?(void 0===addthis_share.passthrough&&(addthis_share.passthrough={}),void 0===addthis_share.passthrough.twitter&&(addthis_share.passthrough.twitter={}),addthis_share.passthrough.twitter.via=handle):!1===handle&&void 0!==addthis_share.passthrough&&void 0!==addthis_share.passthrough.twitter&&void 0!==addthis_share.passthrough.twitter.via&&delete addthis_share.passthrough.twitter.via},urlShortening=function(urlShorteningService,socialService){void 0===addthis_share.url_transforms&&(addthis_share.url_transforms={}),void 0===addthis_share.url_transforms.shorten&&(addthis_share.url_transforms.shorten={}),void 0===addthis_share.shorteners&&(addthis_share.shorteners={}),addthis_share.url_transforms.shorten[socialService]=urlShorteningService,addthis_share.shorteners[urlShorteningService]={}},addthisService=function($window,$q,$interval){return load.promise=!1,smartLayersRefreshRequest.pending=!1,smartLayersRefreshRequest.lastTs=0,{add:function(){addScript($window.document)},layersRefresh:function(){queueSmartLayersRefresh($window,$interval)},config:function(input){var configCopy=setAddThisConfig(input);return queueSmartLayersRefresh($window,$interval),configCopy},share:function(input){var shareCopy=setAddThisShare(input);return queueSmartLayersRefresh($window,$interval),shareCopy},shareUrl:function(url){return void 0!==url&&(setShareUrl(url),queueSmartLayersRefresh($window,$interval)),addthis_share.url},shareTitle:function(title){return void 0!==title&&(setShareTitle(title),queueSmartLayersRefresh($window,$interval)),addthis_share.title},shareDescription:function(description){return void 0!==description&&(setShareDescription(description),queueSmartLayersRefresh($window,$interval)),addthis_share.description},shareMedia:function(media){return void 0!==media&&(setShareMedia(media),queueSmartLayersRefresh($window,$interval)),addthis_share.media},twitterVia:function(handle){twitterVia(handle),queueSmartLayersRefresh($window,$interval)},urlShortening:function(urlShorteningService,socialService){urlShortening(urlShorteningService,socialService),queueSmartLayersRefresh($window,$interval)},loaded:function(){return scriptLoaded($window,$q,$interval)},profileId:function(){return profileId}}},addthisProvider=function($windowProvider){var window=$windowProvider.$get();return"object"==typeof window.addthis_config&&(addthis_config=angular.copy(window.addthis_config)),window.addthis_share&&(addthis_share=angular.copy(window.addthis_share),window.addthis&&(addthis_share.url&&delete addthis_share.url,addthis_share.title&&delete addthis_share.title,addthis_share.description&&delete addthis_share.description,addthis_share.media&&delete addthis_share.media)),this.profileId=function(input){return void 0!==input&&(profileId=input,addthis_config.pubid=input),profileId},this.config=function(input){return setAddThisConfig(input)},this.share=function(input){return setAddThisShare(input)},this.shareUrl=function(url){return void 0!==url&&setShareUrl(url),addthis_share.url},this.shareTitle=function(title){return void 0!==title&&setShareTitle(title),addthis_share.title},this.shareDescription=function(description){return void 0!==description&&setShareDescription(description),addthis_share.description},this.shareMedia=function(media){return void 0!==media&&setShareMedia(media),addthis_share.media},this.twitterVia=function(handle){twitterVia(handle)},this.urlShortening=function(urlShorteningService,socialService){urlShortening(urlShorteningService,socialService)},this.disableAutoAdd=function(){return autoAddScript=!1,this},this.enableAutoAdd=function(){return autoAddScript=!0,this},this.scriptInHead=function(){return scriptInFooter=!1,this},this.environment=function(env){return baseUrl="dev"===env||"test"===env||"local"===env?"http://cache-"+env+".addthis.com/js/300/addthis_widget.js":"unittest"===env?"addthis_widget.js":defaultUrl},this.$get=addthisService,this},addthisRun=function($window,$rootScope,$addthis){0===Object.keys(addthis_config).length&&"object"==typeof $window.addthis_config&&0!==Object.keys($window.addthis_config).length?(addthis_config=angular.copy($window.addthis_config),addthis_config.pubid&&(profileId=addthis_config.pubid)):$window.addthis_config=angular.copy(addthis_config),0===Object.keys(addthis_share).length&&"object"==typeof $window.addthis_share&&0!==Object.keys($window.addthis_share).length?addthis_share=angular.copy($window.addthis_share):$window.addthis_share=angular.copy(addthis_share),$window.addthis_plugin_info=addthis_plugin_info,autoAddScript&&addScript($window.document),$rootScope.$on("$locationChangeSuccess",function(event,next,current){next!==current&&$addthis.layersRefresh()})},addthisDirective=function($addthis,$timeout){return{restrict:"AECM",scope:{toolClass:"=toolClass",shareUrl:"=shareUrl",shareTitle:"=shareTitle",shareDescription:"=shareDescription",shareMedia:"=shareMedia"},link:function($scope,el){var recreateToolDiv=function(){var newToolDiv=document.createElement("div");newToolDiv.className=$scope.toolClass,angular.isDefined($scope.shareUrl)&&newToolDiv.setAttribute("data-url",$scope.shareUrl),angular.isDefined($scope.shareTitle)&&newToolDiv.setAttribute("data-title",$scope.shareTitle),angular.isDefined($scope.shareDescription)&&newToolDiv.setAttribute("data-description",$scope.shareDescription),angular.isDefined($scope.shareMedia)&&newToolDiv.setAttribute("data-media",$scope.shareMedia),el.empty(),el.append(newToolDiv),$timeout(function(){$addthis.layersRefresh()})};recreateToolDiv(),$scope.$watchGroup(["toolClass","shareUrl","shareTitle","shareDescription","shareMedia"],function(newVal,oldVal){newVal[0]===oldVal[0]&&newVal[1]===oldVal[1]&&newVal[2]===oldVal[2]&&newVal[3]===oldVal[3]&&newVal[4]===oldVal[4]||recreateToolDiv()})}}},addthisModule=angular.module("addthis",["ng"]);return addthisModule.provider("$addthis",["$windowProvider",addthisProvider]),addthisModule.run(["$window","$rootScope","$addthis",addthisRun]),addthisModule.directive("addthisTool",["$addthis","$timeout",addthisDirective]),addthisModule}(window,angular);