PageSourceSearch

https://apply.prologistix.com/bower_components/angulartics/dist/angulartics.min.js

js prologistix.com collected 2026-09-24 12:30:32 UTC 5,688 bytes, 32 lines download raw bytes

1/**
2 * @license Angulartics
3 * (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics
4 * License: MIT
5 */
6!function(a,b){"use strict";function c(){
7// General buffering handler
8function b(a){return function(){j.waitForVendorCount&&(k[a]||(k[a]=[]),k[a].push(arguments))}}
9// As handlers are installed by plugins, they get pushed into a list and invoked in order.
10function c(b,c){return l[b]||(l[b]=[]),l[b].push(c),function(){var c=arguments;a.forEach(l[b],function(a){a.apply(this,c)},this)}}
11// Will run setTimeout if delay is > 0
12// Runs immediately if no delay to make sure cache/buffer is flushed before anything else.
13// Plugins should take care to register handlers by order of precedence.
14function d(a,b){b?setTimeout(a,b):a()}
15// General function to register plugin handlers. Flushes buffers immediately upon registration according to the specified delay.
16function e(b,e){m[b]=c(b,e);var f=h[b],g=f?f.bufferFlushDelay:null,i=null!==g?g:h.bufferFlushDelay;a.forEach(k[b],function(a,b){d(function(){e.apply(this,a)},b*i)})}function f(a){return a.replace(/^./,function(a){return a.toUpperCase()})}
17// Adds to the provider a 'register#{handlerName}' function that manages multiple plugins and buffer flushing.
18function g(a){var d="register"+f(a);n[d]=function(b){e(a,b)},m[a]=c(a,b(a))}var h={pageTracking:{autoTrackFirstPage:!0,autoTrackVirtualPages:!0,trackRelativePath:!1,autoBasePath:!1,basePath:"",excludedRoutes:[]},eventTracking:{},bufferFlushDelay:1e3,// Support only one configuration for buffer flush delay to simplify buffering
19developerMode:!1},i=["pageTrack","eventTrack","exceptionTrack","setAlias","setUsername","setUserProperties","setUserPropertiesOnce","setSuperProperties","setSuperPropertiesOnce","userTimings"],k={},l={},m={settings:h},n={$get:function(){return m},api:m,settings:h,virtualPageviews:function(a){this.settings.pageTracking.autoTrackVirtualPages=a},excludeRoutes:function(a){this.settings.pageTracking.excludedRoutes=a},firstPageview:function(a){this.settings.pageTracking.autoTrackFirstPage=a},withBase:function(b){this.settings.pageTracking.basePath=b?a.element(document).find("base").attr("href"):""},withAutoBase:function(a){this.settings.pageTracking.autoBasePath=a},developerMode:function(a){this.settings.developerMode=a}};
20// Set up register functions for each known handler
21return a.forEach(i,g),n}function d(b,c,d,e){function f(a){for(var b=0;b<d.settings.pageTracking.excludedRoutes.length;b++){var c=d.settings.pageTracking.excludedRoutes[b];if(c instanceof RegExp&&c.test(a)||a.indexOf(c)>-1)return!0}return!1}function g(a,b){f(a)||d.pageTrack(a,b)}d.settings.pageTracking.autoTrackFirstPage&&e.invoke(["$location",function(a){/* Only track the 'first page' if there are no routes or states on the page */
22var b=!0;if(e.has("$route")){var f=e.get("$route");for(var h in f.routes){b=!1;break}}else if(e.has("$state")){var i=e.get("$state");for(var j in i.get()){b=!1;break}}if(b)if(d.settings.pageTracking.autoBasePath&&(d.settings.pageTracking.basePath=c.location.pathname),d.settings.pageTracking.trackRelativePath){var k=d.settings.pageTracking.basePath+a.url();g(k,a)}else g(a.absUrl(),a)}]),d.settings.pageTracking.autoTrackVirtualPages&&e.invoke(["$location",function(a){d.settings.pageTracking.autoBasePath&&(/* Add the full route to the base. */
23d.settings.pageTracking.basePath=c.location.pathname+"#");var f=!0;if(e.has("$route")){var h=e.get("$route");for(var i in h.routes){f=!1;break}b.$on("$routeChangeSuccess",function(b,c){if(!c||!(c.$$route||c).redirectTo){var e=d.settings.pageTracking.basePath+a.url();g(e,a)}})}e.has("$state")&&(f=!1,b.$on("$stateChangeSuccess",function(b,c){var e=d.settings.pageTracking.basePath+a.url();g(e,a)})),f&&b.$on("$locationChangeSuccess",function(b,c){if(!c||!(c.$$route||c).redirectTo)if(d.settings.pageTracking.trackRelativePath){var e=d.settings.pageTracking.basePath+a.url();g(e,a)}else g(a.absUrl(),a)})}]),d.settings.developerMode&&a.forEach(d,function(a,b){"function"==typeof a&&(d[b]=function(){})})}function e(b){return{restrict:"A",link:function(c,d,e){var f=e.analyticsOn||"click",j={};a.forEach(e.$attr,function(a,b){h(b)&&(j[i(b)]=e[b],e.$observe(b,function(a){j[i(b)]=a}))}
23),a.element(d[0]).bind(f,function(f){var h=e.analyticsEvent||g(d[0]);j.eventType=f.type,(!e.analyticsIf||c.$eval(e.analyticsIf))&&(
24// Allow components to pass through an expression that gets merged on to the event properties
25// eg. analytics-properites='myComponentScope.someConfigExpression.$analyticsProperties'
26e.analyticsProperties&&a.extend(j,c.$eval(e.analyticsProperties)),b.eventTrack(h,j))})}}}function f(a){return["a:","button:","button:button","button:submit","input:button","input:submit"].indexOf(a.tagName.toLowerCase()+":"+(a.type||""))>=0}function g(a){return f(a)?a.innerText||a.value:a.id||a.name||a.tagName}function h(a){return"analytics"===a.substr(0,9)&&-1===["On","Event","If","Properties","EventType"].indexOf(a.substr(9))}function i(a){var b=a.slice(9);// slice off the 'analytics' prefix
27// slice off the 'analytics' prefix
28return"undefined"!=typeof b&&null!==b&&b.length>0?b.substring(0,1).toLowerCase()+b.substring(1):b}var j=window.angulartics||(window.angulartics={});j.waitForVendorCount=0,j.waitForVendorApi=function(a,b,c,d,e){e||j.waitForVendorCount++,d||(d=c,c=void 0),!Object.prototype.hasOwnProperty.call(window,a)||void 0!==c&&void 0===window[a][c]?setTimeout(function(){j.waitForVendorApi(a,b,c,d,!0)},b):(j.waitForVendorCount--,d(window[a]))},/**
29 * @ngdoc overview
30 * @name angulartics
31 */
32a.module("angulartics",[]).provider("$analytics",c).run(["$rootScope","$window","$analytics","$injector",d]).directive("analyticsOn",["$analytics",e])}(angular);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.