{"version":3,"sources":["jsdelivr-header.js","/npm/vue-tag-manager@0.1.2/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNC,SAAU,EAAQ,GACI,iBAAZ,SAA0C,oBAAX,OAAyB,OAAO,QAAU,IAC9D,mBAAX,QAAyB,OAAO,IAAM,OAAO,GACnD,EAAO,cAAgB,GAC5B,CAJA,CAIE,MAAM,WAAe;;;;;;;;;;;;;;oFAiBnB,IAAI,EAAW,WAQX,OAPA,EAAW,OAAO,QAAU,SAAkB,GAC1C,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,KADT,EAAI,UAAU,GACO,OAAO,UAAU,eAAe,KAAK,EAAG,KAAI,EAAE,GAAK,EAAE,IAE9E,OAAO,CACX,EACO,EAAS,MAAM,KAAM,UAChC,EAKI,EAA4B,WAC5B,SAAS,EAAW,GAShB,GARA,KAAK,QAAU,CACX,WAAO,EACP,YAAa,CAAC,EACd,cAAe,YACf,eAAW,EACX,UAAW,qCAEf,KAAK,QAAU,EAAS,CAAC,EAAG,KAAK,QAAS,IACrC,KAAK,QAAQ,MACd,KAAM,oBAEd,CAyCA,OArCA,EAAW,UAAU,aAAe,WAChC,IAAI,EAAK,KAAK,QAAQ,MAClB,EAAM,KAAK,QAAQ,UACnB,EAAc,EAAS,CAAE,GAAI,EAAI,EAAG,KAAK,QAAQ,eAAiB,KAAK,QAAQ,aAOnF,OAAO,EAAM,IANK,OAAO,KAAK,GACzB,QAAO,SAAU,GAAO,OAA4B,OAArB,EAAY,SAAsC,IAArB,EAAY,EAAoB,IAC5F,KAAI,SAAU,GACf,OAAO,mBAAmB,GAAO,IAAM,mBAAmB,EAAY,GAC1E,IACK,KAAK,IAEd,EAIA,EAAW,UAAU,0BAA4B,WAC7C,IAAI,EAAgB,KAAK,QAAQ,cAC7B,EAAgB,KAAK,QAAQ,UAC7B,EAAc,GAOlB,OALA,EAAY,KAAK,WAAa,EAAgB,gBAAkB,EAAgB,aAC5E,GACA,EAAY,KAAK,WAAa,EAAgB,WAAa,KAAK,UAAU,GAAiB,MAE/F,EAAY,KAAK,WAAa,EAAgB,oEACvC,EAAY,KAAK,KAC5B,EAKA,EAAW,UAAU,KAAO,SAAU,GAClC,KAAM,aAAiB,SAAW,aAAiB,MAC/C,KAAM,iCACV,IAAI,EAAY,KAAK,QAAQ,cAC7B,OAAO,GAAW,KAAK,EAC3B,EACO,CACX,CAvD+B,GA4D3B,EAAkB,WAElB,OADgB,SAAS,cAAc,SAE3C,EA8BI,EAA0B,SAAU,GACpC,IAAK,EACD,KAAM,wBACV,OAAO,SAAS,KAAK,YAAY,EACrC,EAUI,GAAY,EAoBZ,EAAQ,CACR,QApBU,SAAU,EAAK,GAEzB,QADgB,IAAZ,IAAsB,EAAU,CAAE,MAAO,QACzC,EAEJ,IAEI,IAAI,EAAa,IAAI,EAAW,GAEhC,EAAI,IAAM,EACV,EAAI,UAAU,KAAO,EAErB,EArCsB,SAAU,GACpC,IAAK,EACD,KAAM,4BACV,IAAI,EAAY,IAEhB,OADA,EAAU,UAAY,EACf,CACX,CA+BgC,CAAwB,EAAW,8BAC3D,EAnDkB,SAAU,EAAK,GAErC,QADgB,IAAZ,IAAsB,GAAU,IAC/B,EACD,KAAM,iBACV,IAAI,EAAY,IAGhB,OAFA,EAAU,IAAM,EAChB,EAAU,MAAQ,EACX,CACX,CA2CgC,CAAoB,EAAW,gBAAgB,IACvE,GAAY,CAChB,CACA,MAAO,IAxBA,WAEP,IADA,IAAI,EAAW,GACN,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAS,GAAM,UAAU,GAE7B,QAAQ,KAAK,MAAM,QAAS,CAAC,sBAAsB,OAAO,GAC9D,CAmBQ,CAAK,EACT,CACJ,GAKA,OAAO,CAEV","file":"/npm/vue-tag-manager@0.1.2/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.19.2.\n * Original file: /npm/vue-tag-manager@0.1.2/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.VueTagManager = factory());\n}(this, (function () { 'use strict';\n\n    /*! *****************************************************************************\r\n    Copyright (c) Microsoft Corporation. All rights reserved.\r\n    Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n    this file except in compliance with the License. You may obtain a copy of the\r\n    License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n    MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n    See the Apache Version 2.0 License for specific language governing permissions\r\n    and limitations under the License.\r\n    ***************************************************************************** */\r\n\r\n    var __assign = function() {\r\n        __assign = Object.assign || function __assign(t) {\r\n            for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n                s = arguments[i];\r\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n            }\r\n            return t;\r\n        };\r\n        return __assign.apply(this, arguments);\r\n    };\n\n    /**\r\n     * Global Tag Manager instance\r\n     */\r\n    var TagManager = /** @class */ (function () {\r\n        function TagManager(options) {\r\n            this.options = {\r\n                gtmId: undefined,\r\n                queryParams: {},\r\n                dataLayerName: \"dataLayer\",\r\n                dataLayer: undefined,\r\n                scriptUrl: \"//www.googletagmanager.com/gtm.js\"\r\n            };\r\n            this.options = __assign({}, this.options, options);\r\n            if (!this.options.gtmId) {\r\n                throw \"No GTM id provided\";\r\n            }\r\n        }\r\n        /**\r\n         * Returns the URL and query params to get the tag manager script\r\n         */\r\n        TagManager.prototype.getScriptUrl = function () {\r\n            var id = this.options.gtmId;\r\n            var url = this.options.scriptUrl;\r\n            var queryParams = __assign({ id: id, l: this.options.dataLayerName }, this.options.queryParams);\r\n            var queryString = Object.keys(queryParams)\r\n                .filter(function (key) { return queryParams[key] !== null && queryParams[key] !== undefined; })\r\n                .map(function (key) {\r\n                return encodeURIComponent(key) + \"=\" + encodeURIComponent(queryParams[key]);\r\n            })\r\n                .join(\"&\");\r\n            return url + \"?\" + queryString;\r\n        };\r\n        /**\r\n         * Returns the script to initialize the data layer\r\n         */\r\n        TagManager.prototype.getDataLayerScriptContent = function () {\r\n            var dataLayerName = this.options.dataLayerName;\r\n            var initialValues = this.options.dataLayer;\r\n            var scriptArray = [];\r\n            // Initialize data layer\r\n            scriptArray.push(\"window['\" + dataLayerName + \"'] = window['\" + dataLayerName + \"'] || [];\");\r\n            if (initialValues) {\r\n                scriptArray.push(\"window['\" + dataLayerName + \"'].push(\" + JSON.stringify(initialValues) + \");\");\r\n            }\r\n            scriptArray.push(\"window['\" + dataLayerName + \"'].push({ event: 'gtm.js', 'gtm.start': new Date().getTime() });\");\r\n            return scriptArray.join(\"\\n\");\r\n        };\r\n        /**\r\n         * Push an event to the data layer\r\n         * @param event event object\r\n         */\r\n        TagManager.prototype.push = function (event) {\r\n            if (!(event instanceof Object) || event instanceof Array)\r\n                throw \"Pushed event is not an object.\";\r\n            var dataLayer = this.options.dataLayerName;\r\n            window[dataLayer].push(event);\r\n        };\r\n        return TagManager;\r\n    }());\n\n    /**\r\n     * Creates an empty script tag\r\n     */\r\n    var createScriptTag = function () {\r\n        var scriptTag = document.createElement(\"script\");\r\n        return scriptTag;\r\n    };\r\n    /**\r\n     * Returns a script tag with a src url\r\n     * @param src src url of the script\r\n     * @param isAsync script load async\r\n     */\r\n    var getScriptTagWithSrc = function (src, isAsync) {\r\n        if (isAsync === void 0) { isAsync = false; }\r\n        if (!src)\r\n            throw \"No src passed.\";\r\n        var scriptTag = createScriptTag();\r\n        scriptTag.src = src;\r\n        scriptTag.async = isAsync;\r\n        return scriptTag;\r\n    };\r\n    /**\r\n     * Returns a script tag with provided script injected\r\n     * @param script content to be injected into a script tag\r\n     */\r\n    var getScriptTagWithContent = function (script) {\r\n        if (!script)\r\n            throw \"No script content passed.\";\r\n        var scriptTag = createScriptTag();\r\n        scriptTag.innerHTML = script;\r\n        return scriptTag;\r\n    };\r\n    /**\r\n     * Injects the provided script tag into the head\r\n     * @param scriptTag script tag to inject into head\r\n     */\r\n    var injectScriptTagIntoHead = function (scriptTag) {\r\n        if (!scriptTag)\r\n            throw \"No script tag passed.\";\r\n        window.document.head.appendChild(scriptTag);\r\n    };\n\n    var warn = function () {\r\n        var messages = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            messages[_i] = arguments[_i];\r\n        }\r\n        console.warn.apply(console, [\"[vue-tag-manager]:\"].concat(messages));\r\n    };\n\n    var installed = false;\r\n    var install = function (Vue, options) {\r\n        if (options === void 0) { options = { gtmId: null }; }\r\n        if (installed)\r\n            return;\r\n        try {\r\n            // Initialize a tag manager\r\n            var tagManager = new TagManager(options);\r\n            // Add gtm to the prototype\r\n            Vue.gtm = tagManager;\r\n            Vue.prototype.$gtm = tagManager;\r\n            // Inject the tag manager scripts into DOM\r\n            injectScriptTagIntoHead(getScriptTagWithContent(tagManager.getDataLayerScriptContent()));\r\n            injectScriptTagIntoHead(getScriptTagWithSrc(tagManager.getScriptUrl(), true));\r\n            installed = true;\r\n        }\r\n        catch (e) {\r\n            warn(e);\r\n        }\r\n    };\r\n    var index = {\r\n        install: install\r\n    };\n\n    return index;\n\n})));\n"]}