{"version":3,"sources":["jsdelivr-header.js","/npm/angulartics-piwik@1.0.6/src/angulartics-piwik.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;CCGA,SAAW,GACP,aAOA,EAAQ,OAAO,oBAAqB,CAAC,gBAChC,OAAO,CAAC,qBAAsB,kBAC3B,SAAU,EAAoB,GAE1B,IAAI,EAAU,EAAgB,OAE9B,EAAmB,SAAS,aAAa,mBAAoB,EAK7D,EAAmB,IAAI,mBAAqB,SAAU,EAAa,GAE3D,EAAQ,MACR,EAAQ,KAAK,KAAK,CAAC,qBAAsB,EAAa,GAE9D,EAGA,EAAmB,IAAI,sBAAwB,SAAU,GAEjD,EAAQ,MACR,EAAQ,KAAK,KAAK,CAAC,wBAAyB,GAEpD,EAGA,EAAmB,IAAI,kBAAoB,SAAU,EAAU,EAAS,EAAO,GAEvE,EAAQ,OACR,EAAQ,GAAS,OACjB,EAAQ,KAAK,KAAK,CAAC,oBAAqB,EAAU,EAAS,EAAO,IAE1E,EAGA,EAAmB,IAAI,qBAAuB,SAAU,EAAU,GAE1D,EAAQ,OACR,EAAQ,GAAS,OACjB,EAAQ,KAAK,KAAK,CAAC,uBAAwB,EAAU,IAE7D,EAGA,EAAmB,IAAI,gBAAkB,SAAU,EAAS,EAAU,GAGlE,GAAI,EAAQ,MAAQ,EAAS,CAEzB,IAAI,EAAS,CAAC,kBAAmB,EAAS,IAAY,GAGlD,EAAQ,UAAU,IAClB,EAAO,KAAK,GAGhB,EAAQ,KAAK,KAAK,EACtB,CACJ,EAIA,EAAmB,IAAI,UAAY,SAAU,EAAQ,GAC7C,EAAQ,MACR,KAAK,KAAK,CAAC,YAAa,EAAQ,GAAW,GAEnD,EAKA,EAAmB,IAAI,UAAY,SAAU,EAAK,GAC9C,IAAI,EAAO,GAAY,OACnB,EAAQ,MACR,EAAQ,KAAK,KAAK,CAAC,YAAa,EAAK,GAE7C,EAKA,EAAmB,qBAAoB,SAAU,GACzC,EAAQ,MACR,EAAQ,KAAK,KAAK,CAAC,YAAa,GAExC,IAaA,EAAmB,mBAAkB,SAAU,EAAM,GAE7C,EAAQ,OACR,EAAQ,KAAK,KAAK,CAAC,mBAAoB,EAAQ,SAAS,QACxD,EAAQ,KAAK,KAAK,CAAC,eAAgB,IACnC,EAAQ,KAAK,KAAK,CAAC,kBAE3B,IASA,EAAmB,oBAAmB,SAAU,EAAQ,GAEpD,GAAI,EAAQ,KAGR,OAFA,EAAa,GAAc,CAAC,EAEpB,GAeJ,IAAK,mBACD,EAAQ,KAAK,KAAK,CAAC,mBACf,EAAW,WACX,EAAW,YACX,EAAW,aACX,EAAW,QACf,MAeJ,IAAK,mBACD,EAAQ,KAAK,KAAK,CAAC,mBACf,EAAW,WACX,EAAW,YACX,EAAW,gBACX,EAAW,MACX,EAAW,WACf,MAWJ,IAAK,2BACD,EAAQ,KAAK,KAAK,CAAC,2BAA4B,EAAW,aAC1D,MAgBJ,IAAK,sBACD,EAAQ,KAAK,KAAK,CAAC,sBACf,EAAW,QACX,EAAW,WACX,EAAW,SACX,EAAW,IACX,EAAW,SACX,EAAW,WACf,MAeJ,QAEI,GAAI,EAAW,MAAO,CAClB,IAAI,EAAS,SAAS,EAAW,MAAO,IACxC,EAAW,MAAQ,MAAM,GAAU,EAAI,CAC3C,CAEA,EAAQ,KAAK,KAAK,CAAC,aACf,EAAW,SACX,EACA,EAAW,MAAQ,EAAW,MAC9B,EAAW,QAG/B,IASA,EAAmB,wBAAuB,SAAU,EAAO,GACnD,EAAQ,MACR,EAAQ,KAAK,KAAK,CAAC,aAAc,aAAc,EAAM,WAAY,EAAM,MAAO,GAEtF,GACJ,GAEX,CA7PD,CA6PG","file":"/npm/angulartics-piwik@1.0.6/src/angulartics-piwik.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/angulartics-piwik@1.0.6/src/angulartics-piwik.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * @license Angulartics\n * (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics\n * Piwik 2.1.x update contributed by http://github.com/highskillz\n * License: MIT\n */\n\n/* global _paq */\n\n(function (angular) {\n    'use strict';\n\n    /**\n     * @ngdoc overview\n     * @name angulartics.piwik\n     * Enables analytics support for Piwik (http://piwik.org/docs/tracking-api/)\n     */\n    angular.module('angulartics.piwik', ['angulartics'])\n        .config(['$analyticsProvider', '$windowProvider',\n            function ($analyticsProvider, $windowProvider) {\n\n                var $window = $windowProvider.$get();\n\n                $analyticsProvider.settings.pageTracking.trackRelativePath = true;\n\n                // Add piwik specific trackers to angulartics API\n\n                // Requires the CustomDimensions plugin for Piwik.\n                $analyticsProvider.api.setCustomDimension = function (dimensionId, value) {\n\n                    if ($window._paq) {\n                        $window._paq.push(['setCustomDimension', dimensionId, value]);\n                    }\n                };\n\n                // Requires the CustomDimensions plugin for Piwik.\n                $analyticsProvider.api.deleteCustomDimension = function (dimensionId) {\n\n                    if ($window._paq) {\n                        $window._paq.push(['deleteCustomDimension', dimensionId]);\n                    }\n                };\n\n                // scope: visit or page. Defaults to 'page'\n                $analyticsProvider.api.setCustomVariable = function (varIndex, varName, value, scope) {\n\n                    if ($window._paq) {\n                        scope = scope || 'page';\n                        $window._paq.push(['setCustomVariable', varIndex, varName, value, scope]);\n                    }\n                };\n\n                // scope: visit or page. Defaults to 'page'\n                $analyticsProvider.api.deleteCustomVariable = function (varIndex, scope) {\n\n                    if ($window._paq) {\n                        scope = scope || 'page';\n                        $window._paq.push(['deleteCustomVariable', varIndex, scope]);\n                    }\n                };\n\n                // trackSiteSearch(keyword, category, [searchCount])\n                $analyticsProvider.api.trackSiteSearch = function (keyword, category, searchCount) {\n\n                    // keyword is required\n                    if ($window._paq && keyword) {\n\n                        var params = ['trackSiteSearch', keyword, category || false];\n\n                        // searchCount is optional\n                        if (angular.isDefined(searchCount)) {\n                            params.push(searchCount);\n                        }\n\n                        $window._paq.push(params);\n                    }\n                };\n\n                // logs a conversion for goal 1. revenue is optional\n                // trackGoal(goalID, [revenue]);\n                $analyticsProvider.api.trackGoal = function (goalID, revenue) {\n                    if ($window._paq) {\n                        _paq.push(['trackGoal', goalID, revenue || 0]);\n                    }\n                };\n\n                // track outlink or download\n                // linkType is 'link' or 'download', 'link' by default\n                // trackLink(url, [linkType]);\n                $analyticsProvider.api.trackLink = function (url, linkType) {\n                    var type = linkType || 'link';\n                    if ($window._paq) {\n                        $window._paq.push(['trackLink', url, type]);\n                    }\n                };\n\n                // Set default angulartics page and event tracking\n\n                // $analytics.setUsername(username)\n                $analyticsProvider.registerSetUsername(function (username) {\n                    if ($window._paq) {\n                        $window._paq.push(['setUserId', username]);\n                    }\n                });\n\n                // $analytics.setAlias(alias)\n                // $analyticsProvider.registerSetAlias(function(param) {\n                //     // TODO: No piwik corresponding function found. Use setCustomVariable instead\n                // });\n\n                // $analytics.setUserProperties(properties)\n                // $analyticsProvider.registerSetUserProperties(function(param) {\n                //     // TODO: No piwik corresponding function found. Use setCustomVariable instead\n                // });\n\n                // locationObj is the angular $location object\n                $analyticsProvider.registerPageTrack(function (path, locationObj) {\n\n                    if ($window._paq) {\n                        $window._paq.push(['setDocumentTitle', $window.document.title]);\n                        $window._paq.push(['setCustomUrl', path]);\n                        $window._paq.push(['trackPageView']);\n                    }\n                });\n\n                /**\n                 * @name eventTrack\n                 * Track a basic event in Piwik, or send an ecommerce event.\n                 *\n                 * @param {string} action A string corresponding to the type of event that needs to be tracked.\n                 * @param {object} properties The properties that need to be logged with the event.\n                 */\n                $analyticsProvider.registerEventTrack(function (action, properties) {\n\n                    if ($window._paq) {\n                        properties = properties || {};\n\n                        switch (action) {\n\n                            /**\n                             * @description Sets the current page view as a product or category page view. When you call\n                             * setEcommerceView it must be followed by a call to trackPageView to record the product or\n                             * category page view.\n                             *\n                             * @link https://piwik.org/docs/ecommerce-analytics/#tracking-product-page-views-category-page-views-optional\n                             * @link https://developer.piwik.org/api-reference/tracking-javascript#ecommerce\n                             *\n                             * @property productSKU (required) SKU: Product unique identifier\n                             * @property productName (optional) Product name\n                             * @property categoryName (optional) Product category, or array of up to 5 categories\n                             * @property price (optional) Product Price as displayed on the page\n                             */\n                            case 'setEcommerceView':\n                                $window._paq.push(['setEcommerceView',\n                                    properties.productSKU,\n                                    properties.productName,\n                                    properties.categoryName,\n                                    properties.price]);\n                                break;\n\n                            /**\n                             * @description Adds a product into the ecommerce order. Must be called for each product in\n                             * the order.\n                             *\n                             * @link https://piwik.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required\n                             * @link https://developer.piwik.org/api-reference/tracking-javascript#ecommerce\n                             *\n                             * @property productSKU (required) SKU: Product unique identifier\n                             * @property productName (optional) Product name\n                             * @property categoryName (optional) Product category, or array of up to 5 categories\n                             * @property price (recommended) Product price\n                             * @property quantity (optional, default to 1) Product quantity\n                             */\n                            case 'addEcommerceItem':\n                                $window._paq.push(['addEcommerceItem',\n                                    properties.productSKU,\n                                    properties.productName,\n                                    properties.productCategory,\n                                    properties.price,\n                                    properties.quantity]);\n                                break;\n\n                            /**\n                             * @description Tracks a shopping cart. Call this javascript function every time a user is\n                             * adding, updating or deleting a product from the cart.\n                             *\n                             * @link https://piwik.org/docs/ecommerce-analytics/#tracking-add-to-cart-items-added-to-the-cart-optional\n                             * @link https://developer.piwik.org/api-reference/tracking-javascript#ecommerce\n                             *\n                             * @property grandTotal (required) Cart amount\n                             */\n                            case 'trackEcommerceCartUpdate':\n                                $window._paq.push(['trackEcommerceCartUpdate', properties.grandTotal]);\n                                break;\n\n                            /**\n                             * @description Tracks an Ecommerce order, including any ecommerce item previously added to\n                             * the order. orderId and grandTotal (ie. revenue) are required parameters.\n                             *\n                             * @link https://piwik.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required\n                             * @link https://developer.piwik.org/api-reference/tracking-javascript#ecommerce\n                             *\n                             * @property orderId (required) Unique Order ID\n                             * @property grandTotal (required) Order Revenue grand total (includes tax, shipping, and subtracted discount)\n                             * @property subTotal (optional) Order sub total (excludes shipping)\n                             * @property tax (optional) Tax amount\n                             * @property shipping (optional) Shipping amount\n                             * @property discount (optional) Discount offered (set to false for unspecified parameter)\n                             */\n                            case 'trackEcommerceOrder':\n                                $window._paq.push(['trackEcommerceOrder',\n                                    properties.orderId,\n                                    properties.grandTotal,\n                                    properties.subTotal,\n                                    properties.tax,\n                                    properties.shipping,\n                                    properties.discount]);\n                                break;\n\n                            /**\n                             * @description Logs an event with an event category (Videos, Music, Games...), an event\n                             * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional\n                             * event name and optional numeric value.\n                             *\n                             * @link https://piwik.org/docs/event-tracking/\n                             * @link https://developer.piwik.org/api-reference/tracking-javascript#using-the-tracker-object\n                             *\n                             * @property category\n                             * @property action\n                             * @property name (optional, recommended)\n                             * @property value (optional)\n                             */\n                            default:\n                                // PAQ requires that eventValue be an integer, see: http://piwik.org/docs/event-tracking\n                                if (properties.value) {\n                                    var parsed = parseInt(properties.value, 10);\n                                    properties.value = isNaN(parsed) ? 0 : parsed;\n                                }\n\n                                $window._paq.push(['trackEvent',\n                                    properties.category,\n                                    action,\n                                    properties.name || properties.label, // Changed in favour of Piwik documentation. Added fallback so it's backwards compatible.\n                                    properties.value]);\n                        }\n                    }\n                });\n\n                /**\n                 * @name exceptionTrack\n                 * Sugar on top of the eventTrack method for easily handling errors\n                 *\n                 * @param {object} error An Error object to track: error.toString() used for event 'action', error.stack used for event 'label'.\n                 * @param {object} cause The cause of the error given from $exceptionHandler, not used.\n                 */\n                $analyticsProvider.registerExceptionTrack(function (error, cause) {\n                    if ($window._paq) {\n                        $window._paq.push(['trackEvent', 'Exceptions', error.toString(), error.stack, 0]);\n                    }\n                });\n            }\n        ]);\n})(angular);\n"]}