{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./codebase/orange/cartridges/app_storefront_core/cartridge/client/default/js/dataLayer/dataLayer.js","webpack:///./codebase/orange/cartridges/int_osp_core_orange_devices/cartridge/client/default/js/dataLayerDevices.js","webpack:///./codebase/orange/cartridges/int_osp_core_orange_devices/cartridge/client/default/js/dataLayerDevices/dataLayerDevices.js","webpack:///./codebase/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFA;AACA;;AAEa;;AAEb;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjQa;;AAEb,qBAAqB,mBAAO,CAAC,kIAAW;;AAExC;AACA,mBAAmB,mBAAO,CAAC,sKAAqC;AAChE,CAAC;;;;;;;;;;;;;ACNY;;AAEb,sBAAsB,mBAAO,CAAC,qIAA0B;AACxD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6DAA6D,oBAAoB,GAAG,kBAAkB;AACtG;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5ba;;AAEb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA","file":"default\\js\\dataLayerDevices.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./codebase/orange/cartridges/int_osp_core_orange_devices/cartridge/client/default/js/dataLayerDevices.js\");\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-undef */\r\n\r\n'use strict';\r\n\r\n/**\r\n * Gets the product name from the utag_data object\r\n * @returns {string} the product name or an empty string if not found\r\n */\r\nfunction getProductName() {\r\n return (typeof utag_data !== 'undefined' && utag_data.product_name !== undefined) ? utag_data.product_name : '';\r\n}\r\n\r\n/**\r\n * Gets the product category from utag_data\r\n * @returns {string} the product category from utag_data\r\n */\r\nfunction getProductCategory() {\r\n return (typeof utag_data !== 'undefined' && utag_data.product_category !== undefined) ? utag_data.product_category : '';\r\n}\r\n\r\n/**\r\n * Gets the page category from utag_data\r\n * @returns {string} the page category from utag_data\r\n */\r\nfunction getPageCategory() {\r\n return (typeof utag_data !== 'undefined' && utag_data.pageCategory !== undefined) ? utag_data.pageCategory : '';\r\n}\r\n\r\n/**\r\n * Gets the page name from the utag_data object\r\n * @returns {string} the page name or an empty string if not found\r\n */\r\nfunction getPageName() {\r\n return (typeof utag_data !== 'undefined' && utag_data.pageName !== undefined) ? utag_data.pageName : '';\r\n}\r\n\r\n/**\r\n * Gets the page name from the utag_data object\r\n * @returns {string} the page name without web:orange: or an empty string if not found\r\n */\r\nfunction getPageNameWithoutWebOrange() {\r\n var name = getPageName().replace('web:orange:', '').replace('tiendaOnline:', '');\r\n return name;\r\n}\r\n\r\n/**\r\n * Checks if the user is a client\r\n * @returns {boolean} - true if the user is a client, false otherwise\r\n */\r\nfunction isClient() {\r\n return (typeof utag_data !== 'undefined' && utag_data.userType === 'cliente');\r\n}\r\n\r\n/**\r\n * Returns the page type from utag_data\r\n * @returns {string} - the page type from utag_data\r\n */\r\nfunction getPageType() {\r\n return (typeof utag_data !== 'undefined' && utag_data.pageType !== 'undefined') ? utag_data.pageType : '';\r\n}\r\n\r\n/**\r\n * Builds a data layer event link\r\n * @param {Object} obj - object with data button\r\n * @returns {Promise} A Promise that resolves when the AJAX request is complete and any returned data has been added to the `utag_data` object.\r\n */\r\nfunction addProductToDataLayer(obj) {\r\n return new Promise(function (resolve, reject) {\r\n if (obj.tokenname !== null && obj.token !== null && obj.category !== null && typeof utag_data !== 'undefined') {\r\n var data = {};\r\n data.id = obj.category;\r\n data[obj.tokenname] = obj.token;\r\n $.ajax({\r\n url: obj.url,\r\n type: 'post',\r\n data: data,\r\n dataType: 'json'\r\n }).done((resp) => {\r\n if (resp) {\r\n if (Object.keys(resp.data).length) {\r\n Object.keys(resp.data).forEach(key => {\r\n utag_data[key] = resp.data[key];\r\n });\r\n }\r\n }\r\n resolve();\r\n }).fail(() => {\r\n reject();\r\n });\r\n } else {\r\n reject();\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Builds a data layer event link\r\n * @param {string} zone - the event zone\r\n * @param {string} type - the event type\r\n * @param {string} name - the event name\r\n * @param {string} [event=null] - the Tealium event (optional)\r\n */\r\nfunction buildDataLayerEventLink(zone, type, name, event = null) {\r\n if (zone && name && typeof utag_data !== 'undefined' && typeof utag !== 'undefined') {\r\n utag_data.event_zone = zone;\r\n utag_data.event_name = name;\r\n utag_data.event_type = type;\r\n if (event !== null) {\r\n utag_data.tealium_event = event;\r\n }\r\n utag.track('link', utag_data);\r\n }\r\n}\r\n\r\n/**\r\n * Builds a data layer event link for the given zone, type, name and event\r\n * @param {string} zone - the zone of the event\r\n * @param {string} type - the type of the event\r\n * @param {string} name - the name of the event\r\n * @param {Object} [event] - the event object (optional)\r\n */\r\nfunction buildDataLayerEventLinkCheckout(zone, type, name, event = null) {\r\n if (typeof utag_data !== 'undefined') {\r\n zone = 'tiendaOnline:' + zone;\r\n if (isClient()) {\r\n zone = 'areaCliente:' + zone;\r\n }\r\n buildDataLayerEventLink(zone, type, name, event);\r\n }\r\n}\r\n\r\n/**\r\n * Builds the data layer view for the given section and data\r\n * @param {string} section - the section of the data layer\r\n * @param {Object} data - the data to be added to the data layer\r\n * @returns {void}\r\n */\r\nfunction buildDataLayerView(section, data) {\r\n if (typeof utag_data !== 'undefined' && typeof utag !== 'undefined') {\r\n var pageData = $('.js-data-layer').data('layer-' + section);\r\n if (pageData !== '') {\r\n utag_data.pageName = pageData.pageName;\r\n utag_data.pageType = pageData.pageType;\r\n var step = pageData.pageType.split(':');\r\n utag_data.checkoutStep = step[1].replace('paso', '');\r\n utag_data.pageVirtual = window.location.protocol + '//' + utag_data['dom.domain'] + utag_data['dom.pathname'];\r\n if (utag_data['dom.pathname'].slice(-1) !== '/') {\r\n utag_data.pageVirtual += '/';\r\n }\r\n utag_data.pageVirtual += pageData.stepID;\r\n }\r\n utag_data.tealium_event = 'checkout';\r\n if (Object.keys(data).length) {\r\n Object.keys(data).forEach(key => {\r\n utag_data[key] = data[key];\r\n });\r\n }\r\n\r\n // load again the view data\r\n utag.track('view', utag_data);\r\n\r\n // replace variable in script\r\n // eslint-disable-next-line no-use-before-define\r\n replaceScript();\r\n }\r\n}\r\n\r\n/**\r\n * Builds the data layer view general\r\n * @param {Object} data - the data to be added to the data layer\r\n */\r\nfunction buildDataLayerViewGeneral(data) {\r\n if (typeof utag_data !== 'undefined' && typeof utag !== 'undefined') {\r\n Object.keys(data).forEach(key => {\r\n utag_data[key] = data[key];\r\n });\r\n\r\n // load again the view data\r\n utag.track('view', utag_data);\r\n\r\n // replace variable in script\r\n // eslint-disable-next-line no-use-before-define\r\n replaceScript();\r\n }\r\n}\r\n\r\n/**\r\n * Removes the general data from the data layer and reloads the view data\r\n * @param {Object} data - the data to be removed from the data layer\r\n * @param {Array} except - the keys to be excluded from the removal\r\n * @returns {void}\r\n */\r\nfunction removeDataLayerViewGeneralData(data, except = []) {\r\n if (typeof utag_data !== 'undefined' && typeof utag !== 'undefined') {\r\n Object.keys(data).forEach(key => {\r\n if (except.indexOf(key) === -1) {\r\n delete utag_data[key];\r\n }\r\n });\r\n\r\n // load again the view data\r\n utag.track('view', utag_data);\r\n\r\n // replace variable in script\r\n // eslint-disable-next-line no-use-before-define\r\n replaceScript();\r\n }\r\n}\r\n\r\n/**\r\n * Replaces a script element with a new one that contains the `utag_data` variable.\r\n *\r\n * @function\r\n * @name replaceScript\r\n * @returns {void}\r\n *\r\n * @description\r\n * This function replaces a script element with a new one that contains the `utag_data` variable. The `utag_data` variable is a global variable that contains data for the Tealium tag management system.\r\n * This function assumes that there is an existing script element with the ID `js-data-layer-script` on the page. The `utag_data` variable must be defined and accessible in the global scope for this function to work properly.\r\n */\r\nfunction replaceScript() {\r\n if (typeof utag_data !== 'undefined') {\r\n // Get the script element to replace\r\n var scriptToReplace = document.getElementById('js-data-layer-script');\r\n if (scriptToReplace) {\r\n // Create a new script element\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.id = 'js-data-layer-script';\r\n // Create a text node with the utag_data variable\r\n var scriptContent = document.createTextNode('var utag_data = ' + JSON.stringify(utag_data, null, ' ') + ';');\r\n script.appendChild(scriptContent);\r\n // Replace the old script element with the new one\r\n scriptToReplace.parentNode.replaceChild(script, scriptToReplace);\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n methods: {\r\n buildDataLayerView: buildDataLayerView,\r\n buildDataLayerEventLinkCheckout: buildDataLayerEventLinkCheckout,\r\n buildDataLayerEventLink: buildDataLayerEventLink,\r\n getProductName: getProductName,\r\n buildDataLayerViewGeneral: buildDataLayerViewGeneral,\r\n getProductCategory: getProductCategory,\r\n getPageCategory: getPageCategory,\r\n getPageType: getPageType,\r\n getPageName: getPageName,\r\n getPageNameWithoutWebOrange: getPageNameWithoutWebOrange,\r\n removeDataLayerViewGeneralData: removeDataLayerViewGeneralData,\r\n addProductToDataLayer: addProductToDataLayer,\r\n isClient: isClient,\r\n replaceScript: replaceScript\r\n\r\n }\r\n};\r\n","'use strict';\r\n\r\nvar processInclude = require('base/util');\r\n\r\n$(document).ready(function () {\r\n processInclude(require('./dataLayerDevices/dataLayerDevices'));\r\n});\r\n","'use strict';\r\n\r\nvar dataLayerHelper = require('core/dataLayer/dataLayer');\r\nconst functions = {};\r\n\r\n// PDP Events\r\n\r\nfunctions.pdpContinueEvent = function () {\r\n $(document).on('click', '.js-product-add-to-cart', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'loQuiero:' + dataLayerHelper.methods.getProductName();\r\n var tealiumEvent = 'add';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, tealiumEvent);\r\n });\r\n};\r\n\r\nfunctions.pdpLogInEvent = function () {\r\n $(document).on('click', '.js-product-login-link', function () {\r\n var eventZone = 'tiendaOnline:fichaProducto';\r\n var eventType = 'clickButton';\r\n var eventName = 'iniciarSession';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.pdpPaymentOptionsEvent = function () {\r\n $(document).on('click', 'button[data-target=\"#modalOtrasOpciones\"]', function () {\r\n var eventZone = 'tiendaOnline:fichaProducto';\r\n var eventType = 'clickButton';\r\n var eventName = 'informacionPagoFlexible';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n\r\n $(document).on('click', '.modal#modalOtrasOpciones button[data-dismiss=\"modal\"]', function () {\r\n var eventZone = 'tiendaOnline:fichaProducto';\r\n var eventType = 'clickButton';\r\n var eventName = 'informacionPagoFlexible:cerrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.pdpViewAllDevicesEvent = function () {\r\n $(document).on('click', '.dl-breadcrumb-link', function () {\r\n var eventZone = 'tiendaOnline:fichaProducto';\r\n var eventType = 'clickLink';\r\n var eventName = 'verTodosLosTerminales';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\n// PLP Events\r\nfunctions.plpMoreInfoEvent = function () {\r\n $(document).on('click', 'div.product > a.product-card', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'masInformacion:' + $(this).parent().data('pname');\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.plpFirstLevelFilterEvent = function () {\r\n $(document).on('click', '.js-first-level-brand-event', function () {\r\n var eventZone = 'filtro';\r\n var eventType = 'clickLink';\r\n var eventName = 'primerNivel:' + $(this).siblings('label').text();\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.plpFilterSortEvent = function () {\r\n $(document).on('change', '.js-plp-sort-order', function () {\r\n var tipo = $(this).find('option:selected').data('id');\r\n var eventZone = 'filtro';\r\n var eventType = 'clickLink';\r\n var eventName = 'ordenacion:' + tipo;\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.plpFilterApplyEvent = function () {\r\n $(document).on('click', '.js-event-filter', function () {\r\n var $this = $(this);\r\n if ($this.is(':checked')) {\r\n var eventZone = 'filtro';\r\n var eventType = 'clickLink';\r\n var eventName = 'aplicarFiltro:' + $this.attr('id').replace('-', ':');\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n};\r\n\r\nfunctions.plpFilterRemoveEvent = function () {\r\n $(document).on('click', '.js-remove-plp-filter, .js-event-filter', function () {\r\n var $this = $(this);\r\n if ($this.hasClass('js-remove-plp-filter') || ($this.hasClass('js-event-filter') && !$this.is(':checked'))) {\r\n var eventZone = 'filtro';\r\n var eventType = 'clickLink';\r\n var eventName = 'eliminarFiltro:';\r\n if ($this.hasClass('js-remove-plp-filter')) {\r\n eventName += $this.data('attribute-id');\r\n if ($this.data('attribute-value')) {\r\n eventName += ':' + $this.data('attribute-value').toLowerCase();\r\n } else {\r\n eventName += ':-';\r\n }\r\n } else {\r\n eventName += $this.attr('id').replace('-', ':');\r\n }\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n};\r\n\r\nfunctions.plpFilterRemoveAllEvent = function () {\r\n $(document).on('click', '.js-remove-plp-filters', function () {\r\n var eventZone = 'filtro';\r\n var eventType = 'clickButton';\r\n var eventName = 'eliminarFiltros';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\n// CART Events\r\nfunctions.modifySIM = function () {\r\n $(document).on('click', '.js-summary-esim.js-summary-esim-dropdown', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'modificar:sim';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\nfunctions.closeSIMPanel = function () {\r\n $(document).on('click', '.js-summary-esim-continue', function () {\r\n const option = document.querySelector(`#sim-type-e-${this.dataset.lineId}-${this.dataset.uuid}`).checked ? 'eSim' : 'sim';\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickLink';\r\n var eventName = `continuar:${option}`;\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\nfunctions.cartContinueEventFailure = function () {\r\n $(document).on('dlcontinue:failure', '.js-continue-checkout', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'continuar:fail';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartEmptyEvent = function () {\r\n $(document).on('click', '.js-summary-empty-cart', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickLink';\r\n var eventName = 'vaciarCarrito';\r\n var tealiumEvent = 'remove';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, tealiumEvent);\r\n });\r\n};\r\n\r\nfunctions.cartChooseDeviceEvent = function () {\r\n $(document).on('click', '.js-cart-choose-device', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'elegirDispositivo';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartChangeTariffEvent = function () {\r\n $(document).on('click', '.js-link-change-tariff', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickLink';\r\n var eventName = 'cambiarTarifa';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartAddLineEvent = function () {\r\n $(document).on('click', '.js-btn-add-new-line:not(.js-summary-change-products)', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'anadir:lineaAdicional';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartEditLineEvent = function () {\r\n $(document).on('click', '.js-summary-change-products', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'modificar:lineaAdicional';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartRemoveLineEvent = function () {\r\n $(document).on('click', '.js-summary-remove-products', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'eliminar:lineaAdicional';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartSvaSwitchEvents = function () {\r\n $(document).on('sva:enabled', '.js-sva-collapsible .hl-switch > input', function () {\r\n var $this = $(this);\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'switch';\r\n var eventName = 'anadir:sva:' + $this.data('names');\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n\r\n $(document).on('sva:disabled', '.js-sva-collapsible .hl-switch > input', function () {\r\n var $this = $(this);\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'switch';\r\n var eventName = 'eliminar:sva:' + $this.data('names');\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartSvaEditEvent = function () {\r\n $(document).on('sva:edit', 'button.js-sva-change', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'switch';\r\n var eventName = 'modificar:sva:' + this.dataset.svatype;\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartDeviceInfoEvent = function () {\r\n $(document).on('click', '.js-cart-device-link-product-info', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'masInformacion:dispositivo';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartDeviceFlexibleSwitchEvent = function () {\r\n $(document).on('change', '.js-cart-device-switch', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'switch';\r\n var eventName = 'flexible' + ($(this).is(':checked') ? 'ON' : 'OFF');\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartDeviceFlexibleRecalculateEvent = function () {\r\n $(document).on('click', '.js-cart-device-btn-calculate', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'recalcularPagoFlexible';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartDeviceFlexibleAcceptEvent = function () {\r\n $(document).on('click', '.js-cart-device-btn-accept-payment-flexible, .js-cart-device-btn-accept-payment-installment', function () {\r\n var paymentType = $(this).data('payment-type') === 'vap' ? 'plazos' : 'flexible';\r\n var paymentMonths = parseInt($('input[name=\"selectable-radio-' + (paymentType === 'plazos' ? 'installment' : 'flexible') + '\"]:checked').data('payment-months'), 10);\r\n\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'aceptar:' + paymentType + ':' + paymentMonths;\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.cartDeviceFlexiblePopUpEvents = function () {\r\n $(document).on('dlmodal:show', '.js-cart-device-flexible-payment-error, .js-cart-device-flexible-payment-calculate-error', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'mostrar';\r\n var eventName = $(this).hasClass('js-cart-device-flexible-payment-error') ? 'popUpFlexiblePaymentError' : 'popUpFlexiblePaymentCalculateError';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n\r\n $(document).on('click', '.js-cart-device-flexible-payment-error-close, .js-cart-device-flexible-payment-calculate-error-close', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = $(this).hasClass('js-cart-device-flexible-payment-error-close') ? 'popUpFlexiblePaymentError:cerrar' : 'popUpFlexiblePaymentCalculateError:cerrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\n// CHECKOUT EVENTS\r\n\r\nfunctions.checkout2ContinueEvent = function () {\r\n $(document).one('dlcontinue:success', '.js-shipping-btn-submit', function (event) {\r\n // El metodo one() asegura que el manejador se ejecute una vez.\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'continuar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n event.stopPropagation();\r\n });\r\n};\r\n\r\nfunctions.checkout2ContinueEventFailure = function () {\r\n $(document).on('dlcontinue:failure', '.js-shipping-btn-submit', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'continuar:fail';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.checkout2ShowKYCAlertEvent = function () {\r\n $(document).on('dlmodal:show', '#js-kyc-warn', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'noAction';\r\n var eventName = 'nbaAvisoKYC:mostrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n\r\n $(document).on('click', '#js-kyc-warn button[data-dismiss=\"modal\"]', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'nbaAvisoKYC:aceptar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\n// CONFIRMATION EVENTS\r\n\r\nfunctions.confirmationTrackingEvent = function () {\r\n $(document).on('click', '.js-datalayer-tracking a', function () {\r\n var eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n var eventType = 'clickButton';\r\n var eventName = 'seguimientoPedido';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n });\r\n};\r\n\r\nfunctions.popUpAlertEvents = function () {\r\n // General pop-up events\r\n $(document).on('dlmodal:show', '.js-modal-alert', function (e) {\r\n const $bodyText = $(this).find('[slot=\"body-text\"]');\r\n const contentAssetId = $bodyText.data('content-asset-id');\r\n\r\n if (contentAssetId && contentAssetId !== 'null') {\r\n const eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n const eventType = 'mostrar';\r\n const eventName = contentAssetId + ':mostrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n\r\n $(document).on('show.bs.modal', '.modal', function (e) {\r\n const $bodyText = $(this).find('[slot=\"body-text\"]');\r\n const contentAssetId = $bodyText.data('content-asset-id');\r\n\r\n if (contentAssetId && contentAssetId !== 'null') {\r\n const eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n const eventType = 'mostrar';\r\n const eventName = contentAssetId + ':mostrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n\r\n $(document).on('click', '.modal .js-modal-close', function () {\r\n const contentAssetId = $(this).closest('.modal').find('[slot=\"body-text\"]').data('content-asset-id');\r\n if (contentAssetId && contentAssetId !== 'null') {\r\n const eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n const eventType = 'clickButton';\r\n const eventName = contentAssetId + ':cerrar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n\r\n $(document).on('click', '.modal .js-modal-accept', function () {\r\n const contentAssetId = $(this).closest('.modal').find('[slot=\"body-text\"]').data('content-asset-id');\r\n if (contentAssetId && contentAssetId !== 'null') {\r\n const eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n const eventType = 'clickButton';\r\n const eventName = contentAssetId + ':aceptar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n\r\n $(document).on('click', '.modal .js-modal-continuar', function () {\r\n const contentAssetId = $(this).closest('.modal').find('[slot=\"body-text\"]').data('content-asset-id');\r\n if (contentAssetId && contentAssetId !== 'null') {\r\n const eventZone = dataLayerHelper.methods.getPageName().split('web:orange:')[1];\r\n const eventType = 'clickButton';\r\n const eventName = contentAssetId + ':continuar';\r\n dataLayerHelper.methods.buildDataLayerEventLink(eventZone, eventType, eventName, null);\r\n }\r\n });\r\n\r\n}\r\n\r\n// Init function\r\nfunctions.init = function () {\r\n if (dataLayerHelper.methods.getPageCategory() === 'dispositivos'\r\n && dataLayerHelper.methods.getPageType() === 'fichaProducto') {\r\n functions.pdpContinueEvent();\r\n functions.pdpLogInEvent();\r\n functions.pdpPaymentOptionsEvent();\r\n functions.pdpViewAllDevicesEvent();\r\n } else if (dataLayerHelper.methods.getPageCategory() === 'dispositivos'\r\n && dataLayerHelper.methods.getPageType() === 'listadoProductos') {\r\n functions.plpMoreInfoEvent();\r\n functions.plpFirstLevelFilterEvent();\r\n functions.plpFilterSortEvent();\r\n functions.plpFilterApplyEvent();\r\n functions.plpFilterRemoveEvent();\r\n functions.plpFilterRemoveAllEvent();\r\n } else if (dataLayerHelper.methods.getPageType() === 'basket') {\r\n functions.modifySIM();\r\n functions.closeSIMPanel();\r\n functions.cartContinueEventFailure();\r\n functions.cartEmptyEvent();\r\n functions.cartChooseDeviceEvent();\r\n functions.cartChangeTariffEvent();\r\n functions.cartAddLineEvent();\r\n functions.cartEditLineEvent();\r\n functions.cartRemoveLineEvent();\r\n functions.cartSvaSwitchEvents();\r\n functions.cartSvaEditEvent();\r\n functions.cartDeviceInfoEvent();\r\n functions.cartDeviceFlexibleSwitchEvent();\r\n functions.cartDeviceFlexibleRecalculateEvent();\r\n functions.cartDeviceFlexibleAcceptEvent();\r\n functions.cartDeviceFlexiblePopUpEvents();\r\n } else if (dataLayerHelper.methods.getPageType().indexOf('checkout') !== -1) {\r\n functions.checkout2ContinueEvent();\r\n functions.checkout2ContinueEventFailure();\r\n functions.checkout2ShowKYCAlertEvent();\r\n } else if (dataLayerHelper.methods.getPageType().indexOf('thankYouPage') !== -1) {\r\n functions.confirmationTrackingEvent();\r\n }\r\n\r\n // general pop-ups events\r\n functions.popUpAlertEvents();\r\n};\r\n\r\nmodule.exports = {\r\n functions: functions,\r\n init: function () {\r\n functions.init();\r\n }\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function (include) {\r\n if (typeof include === 'function') {\r\n include();\r\n } else if (typeof include === 'object') {\r\n Object.keys(include).forEach(function (key) {\r\n if (typeof include[key] === 'function') {\r\n include[key]();\r\n }\r\n });\r\n }\r\n};\r\n"],"sourceRoot":""}