{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/TrackingComponent.js","webpack:///./assets/javascripts/modules/components/LoginComponent.js"],"names":["TrackingComponent","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","actions","loadMore","products","length","log","productsData","getTrackingPayloadData","window","listViewMore","e","warn","productView","params","el","product","template","id","listProdClick","console","listCarouselClick","searchProdClick","isAlgoliaEnabled","algolia","carouselName","position","$","ajax","url","type","cache","data","positionId","success","error","errorObj","textStatus","errorThrown","wishlistAdd","productCode","utag","wishlist_add","addToCart","cart_add","removeProduct","cart_remove_click","removeQuantity","price","cart_minus_click","addQuantity","cart_plus_click","shortcutCategoryView","shortcutLabel","shortcutNumber","shortcutType","link","newsletter","pos","ga","formisimo","TealiumConversionForm","formId","result","Tealium","trackingData","formResult","sizeSelection","code","size_selection","document","querySelector","dataset","errorMessage","O2OCCSelect","isCartPage","click_collect","O2OCCSearch","o2oCCSearchInput","SELECTORS","O2OCCSearchInput","val","O2OCCLocalize","O2OCCSelectStore","storeName","filterTracking","productList","facetCode","attr","filter","event_name","sortTracking","sortbyName","sortMethod","sortType","sortCode","sorting_method","sorting_type","startChat","deleteChat","addCartGiftCard","event_category","event_action","event_label","newsletterSubscribe","trackingPosition","event_location","whatsappStart","login","loginType","login_type","register","JSON","stringify","eventName","page_name","pageName","page_type","pageType","userType","store_country","storeCountry","event_method","eventMethod","Component","list","find","trackingPayload","closest","dataTracking","each","push","fitersInput","cartPage","location","split","codeList","listString","index","value","substr","lastIndexOf","_this2","ctx","carousels","querySelectorAll","forEach","carousel","jsComponent","classList","contains","jsTrackCarousel","uniqueProducts","Array","from","uniqueProduct","listCarouselImpression","action","targetElement","_this3","$on","_ref","event","currentTarget","trackingAction","trackAction","target","isLogged","_arguments","arguments","_this4","on","slice","splice","$formisimo","$this","_this5","initiateTracking","bindEvents","bindCustomEvents","addEventListener","trackCarousels","LoginComponent","elem","trackingComponent","submitBtn","$component","dom","readDOM"],"mappings":"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","file":"component-LoginComponent.chunks.js","sourcesContent":["import Component from \"../abstracts/Component\";\nimport { Matchmq } from \"../utils/ResolutionHandler\";\n\nexport default class TrackingComponent extends Component {\n\n get SELECTORS() {\n return {\n dataTracking: '[data-tracking-action]',\n fitersInput: '.js-filters-checkbox',\n trackingPayload: '[data-tracking-payload]',\n cartPage: '.t-cart',\n O2OCCSearchInput: '#sl__search__input',\n }\n }\n\n // retrieve object/sub-object identified by [data-tracking-payload] attribute and parse them with .data() method\n // to retriieve product JSON\n getTrackingPayloadData(el, list) {\n let elements;\n\n if (list == true) {\n elements = $(el).find(this.SELECTORS.trackingPayload);\n } else {\n elements = $(el).closest(this.SELECTORS.dataTracking).find(this.SELECTORS.trackingPayload);\n }\n\n let products = [];\n elements.each(function () {\n products.push($(this).data());\n });\n return products\n }\n\n constructor() {\n super();\n this.actions = {\n // action triggered on clicking on \"view more\" button in listing\n // template ajax/t-category.jsp should add html tag with product-related + SELECTORS.trackingPayload data attributes\n loadMore: (products) => {\n if(products && products.length != 0) {\n try {\n this.log(\"tracking loadMore event with \" + products.length + \" more products\");\n let productsData = this.getTrackingPayloadData(products, true);\n window.listViewMore(productsData);\n } catch(e) {\n this.log(\"listViewMore tracking function not available\");\n }\n } else {\n this.warn(\"no products loaded\");\n return;\n }\n },\n\n // from category listing or search listin on clicking product box\n productView: (params, el) => {\n if (el) {\n let products = this.getTrackingPayloadData(el, false);\n if (products.length == 0) {\n this.warn(\"no products loaded\");\n return;\n }\n // looking for first children of [data-tracking-action] el, with [data-tracking-payload] data attribute\n let product = products[0];\n // TODO: add other templates..\n if (typeof product.template !== 'undefined') {\n if (\"category-page\" == product.template || \"na:t-editorial-listing\" == product.template || \"na:t-editorial\" == product.template) {\n try {\n this.log(\"tracking listProdClick event for product: \" + product.id);\n window.listProdClick(product);\n } catch(e) {\n this.warn(\"listProdClick tracking function not available\");\n }\n } else if (product.template == \"na:c-recommendation-engine\") {\n console.log(\"na:c-recommendation-engine\");\n try {\n this.log(\"tracking listCarouselClick event for product: \" + product.id);\n window.listCarouselClick('recommendation-engine', product);\n } catch(e) {\n this.warn(\"listCarouselClick tracking function not available\");\n }\n } else if (\"search-page\" == product.template) {\n try {\n this.log(\"tracking searchProdClick event for product: \" + product.id);\n window.searchProdClick(product);\n } catch(e) {\n this.warn(\"searchProdClick tracking function not available\");\n }\n } else {\n try {\n this.log(\"tracking listProdClick event for product: \" + product.id);\n window.listProdClick(product);\n } catch(e) {\n this.warn(\"listProdClick tracking function not available\");\n }\n }\n }\n if (product.isAlgoliaEnabled) {\n this.actions.algolia(params, el);\n }\n }\n },\n listCarouselClick: (params, el) => {\n console.log(params);\n if (el) {\n let products = this.getTrackingPayloadData(el, false);\n if (products.length == 0) {\n this.warn(\"no products loaded\");\n return;\n }\n let product = products[0];\n try {\n this.log(\"tracking listCarouselClick event for product: \" + product.id);\n window.listCarouselClick(params.carouselName, product);\n } catch(e) {\n this.warn(\"listCarouselClick tracking function not available\");\n }\n }\n },\n algolia: (params, el) => {\n if (el) {\n let products = this.getTrackingPayloadData(el, false);\n if (products.length == 0) {\n this.warn(\"no products loaded\");\n return;\n }\n let product = products[0];\n this.log('algolia ' + product);\n product.position = product.position + 1; //Algolia è 1-based e non 0-based\n this.log(\"Algolia \" + product.position + ' ' + product.id);\n $.ajax({\n url: '/action/ajax/algolia-notification',\n type: 'post',\n cache: 'false',\n data: {\n positionId: product.position,\n },\n success: function (data) {\n console.log('algolia success')\n },\n error: function (errorObj, textStatus, errorThrown) {\n console.warn('algolia error')\n }\n });\n }\n },\n wishlistAdd: (params) => {\n let productCode = params.productCode;\n if (typeof productCode === 'undefined') {\n this.warn('no productCode found');\n return;\n }\n try {\n this.log('tracking add to wishlist event with code: ' + productCode);\n utag.wishlist_add(productCode);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n //called from AddToCartComponent.js\n addToCart: (params) => {\n let productCode = params.productCode || params;\n if (typeof productCode === 'undefined') {\n this.warn('no productCode found');\n return;\n }\n try {\n this.log('tracking add to cart event with code: ' + productCode);\n utag.cart_add(';' + productCode);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n removeProduct: (params) => {\n let productCode = params.productCode;\n if (typeof productCode === 'undefined') {\n this.warn('no productCode found');\n return;\n }\n try {\n this.log('tracking removeProduct event with productCode: ' + params.productCode);\n utag.cart_remove_click(productCode);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n removeQuantity: (params) => {\n let productCode = params.productCode\n let price = params.price\n if (typeof productCode === 'undefined') {\n this.warn('no productCode found');\n return;\n }\n if (typeof price === 'undefined') {\n this.warn('no price found');\n return;\n }\n try {\n this.log('tracking removeQuantity event with productCode: ' + params.productCode);\n utag.cart_minus_click(productCode, 1, price);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n addQuantity: (params) => {\n let productCode = params.productCode\n let price = params.price\n if (typeof productCode === 'undefined') {\n this.warn('no productCode found');\n return;\n }\n if (typeof price === 'undefined') {\n this.warn('no price found');\n return;\n }\n try {\n this.log('tracking addQuantity event with productCode: ' + params.productCode);\n utag.cart_plus_click(productCode, 1, price);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n shortcutCategoryView: (params) => {\n try {\n this.log('Tracking shortcut category click: ' + params.shortcutLabel);\n var data = new Object();\n data['event_name'] = 'select_content';\n data['event_location'] = params.shortcutNumber// es. shortcut-micro_1, shortcut-macro_4 …\n data['event_detail'] = params.shortcutLabel// es. our selection, clothing, pantaloni, abiti, …\n data['content_type'] = params.shortcutType// es. shortcut-micro, shortcut-macro…\n utag.link(data)\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n newsletter: (params) => {\n const pos = params.pos;\n const type = params.type ? \"-\" + params.type : '';\n this.log('[Tracking] NL-Subscription, type: ' + type + ' pos: ' + pos);\n ga('send', 'event', 'NL', 'NL-Subscription' + type, pos);\n },\n formisimo: (params) => {\n this.log(\"formisimo: \", params);\n if (typeof window.TealiumConversionForm == \"function\") {\n this.log(\"TealiumConversionForm: \", params);\n window.TealiumConversionForm(params.formId, params.result);\n } else {\n //keep data in a global var\n window.Tealium.trackingData = {\n formId: params.formId,\n formResult: params.result\n }\n }\n },\n sizeSelection: (params) => {\n let code = params.code;\n if (typeof code === 'undefined') {\n this.warn('no code found');\n return;\n }\n try {\n this.log('tracking sizeSelection event with code: ' + code);\n utag.size_selection();\n let mainSizeRow = document.querySelector('.c-sizes-row');\n mainSizeRow.dataset.errorMessage = '';\n } catch (e) {\n this.warn('Utag tracking is not available');\n }\n },\n O2OCCSelect: (params) => {\n if (!this.isCartPage()) {\n return;\n }\n try {\n this.log('tracking 020 CC selected event');\n utag.click_collect('click');\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n O2OCCSearch: (params) => {\n if (!this.isCartPage()) {\n return;\n }\n\n let o2oCCSearchInput = $(this.SELECTORS.O2OCCSearchInput).val();\n try {\n this.log('tracking 020 CC store search event: ' + o2oCCSearchInput);\n utag.click_collect(o2oCCSearchInput);\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n O2OCCLocalize: (params) => {\n if (!this.isCartPage()) {\n return;\n }\n\n try {\n this.log('tracking 020 CC localize event');\n utag.click_collect('localizza');\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n O2OCCSelectStore: (params) => {\n if (!this.isCartPage()) {\n return;\n }\n\n let storeName = params.storeName;\n if (typeof storeName === 'undefined') {\n this.warn('no storeName found');\n return;\n }\n try {\n this.log('tracking 020 CC store select event: ' + storeName);\n utag.click_collect(\"store:\" + storeName);\n } catch (e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n //called from FiltersComponent.js\n filterTracking: (params, productList) => {\n let facetCode = $(params).attr(\"data-facet-code\");\n let code = $(params).attr(\"data-code\");\n let productsData = this.getTrackingPayloadData(productList, true);\n if(facetCode && code && productsData) {\n this.log(\"Triggering filter \" + facetCode + \": \" + code);\n try {\n this.log('tracking link event: ' + code);\n utag.link({\n filter: facetCode + \":\" + code,\n event_name: \"filter_usage\",\n productList: productsData\n });\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n }\n },\n sortTracking: (sortbyName, sortMethod, sortType, productList) => {\n let sortCode = \"orderBy\";\n let productsData = this.getTrackingPayloadData(productList, true);\n if(sortbyName && productList) {\n this.log(\"triggering filter \" + sortCode + \": \" + sortbyName);\n\n try {\n console.log(\"tracking link event: \" + sortbyName);\n utag.link({\n filter: sortCode + \":\" + sortbyName,\n sorting_method: sortMethod,\n sorting_type: sortType,\n event_name: \"filter_usage\",\n productList: productsData\n });\n } catch(e) {\n console.warn(\"utag tracking not available\");\n }\n }\n },\n startChat: () => {\n utag.link({\n event_name: \"chat_start\"\n });\n },\n deleteChat: () => {\n utag.link({\n event_name: \"chat_delete\"\n });\n },\n addCartGiftCard: (params) => {\n utag.link({\n event_category: \"gift card\",\n event_action: \"add to cart\",\n event_label: \"giftcart \" + params,\n event_name: \"giftcart_add_to_cart\"\n });\n },\n newsletterSubscribe: (params) => {\n let position = params.trackingPosition;\n utag.link({\n event_name: \"newsletter_subscribe\",\n event_location: position\n });\n },\n whatsappStart: () => {\n utag.link({\n event_name: \"whatsapp_start\"\n });\n },\n login: (params) => {\n try {\n this.log('Tracking login event: loginType - ' + params.loginType);\n utag.link({\n event_name: \"login\",\n login_type: params.loginType\n });\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n },\n register: (params) => {\n if(params && params[0]) {\n var data = params[0];\n this.log(\"Triggering register tracking\");\n try {\n this.log('tracking register event: ' + JSON.stringify(data));\n utag.link({\n event_name: data.eventName,\n page_name: data.pageName,\n page_type: data.pageType,\n login_type: data.userType,\n store_country: data.storeCountry,\n event_method: data.eventMethod\n });\n } catch(e) {\n this.warn(\"Utag tracking not available\");\n }\n }\n },\n }\n }\n\n isCartPage() {\n let element = $(this.SELECTORS.cartPage);\n if (element.length > 0) {\n return true;\n }\n return false;\n }\n\n isLogged() {\n const locationPath = window.location + \"\";\n return locationPath.split(\"/\")[3].split(\"?\")[1] === \"login=success\";\n }\n\n getListString(codeList) {\n let listString = \";\";\n\n $.each(codeList, function (index, value) {\n listString += value + \",;\";\n });\n\n listString = listString.substr(0, listString.lastIndexOf(\",\"));\n return listString;\n }\n\n trackCarousels() {\n let ctx = this;\n let carousels = document.querySelectorAll(\"[data-js-track-carousel]\");\n if (carousels && carousels.length > 0) {\n carousels.forEach((carousel) => {\n //find the carousel component\n let carouselComponent = carousel.dataset.jsComponent;\n //check if it's actually a carousel\n if(carouselComponent && carousel.querySelector(\"[data-carousel='true']\") && carousel.querySelector(\"[data-carousel='true']\").classList.contains(\"slick-initialized\")) {\n let carouselName = carousel.dataset.jsTrackCarousel;\n let uniqueProducts = carousel.querySelectorAll(\".slick-slide:not(.slick-cloned)\");\n let productList = [];\n Array.from(uniqueProducts).forEach( (uniqueProduct) => {\n productList.push(uniqueProduct.querySelector(\"[data-card]\"));\n });\n try {\n let productsData = ctx.getTrackingPayloadData(productList, true);\n this.log(\"tracking '\" + carouselName + \"' carousel with \" + productsData.length + \" products\");\n window.listCarouselImpression(carouselName, productsData);\n } catch(e) {\n this.warn(\"listCarouselImpression tracking not available\");\n }\n }\n });\n }\n }\n\n trackAction(action, data, targetElement) {\n if (this.actions[action]) {\n if (typeof data['bs.tab'] != 'undefined') {\n delete data['bs.tab'];\n }\n this.log('[Tracking] tracking action caught: ' + action + ' - with params: ' + JSON.stringify(data));\n this.actions[action](data, targetElement);\n } else {\n this.warn('[Tracking] no tracking manager found for action ' + action);\n }\n }\n\n bindEvents() {\n this.$on('click', ({event}) => {\n if (!$(event.currentTarget).data('disabled') && $(event.currentTarget).data('trackingAction')) {\n let data = $(event.currentTarget).data();\n let action = data.trackingAction;\n this.trackAction(action, data, event.target);\n }\n }, 'body', this.SELECTORS.dataTracking);\n\n if (this.isLogged()) {\n this.trackAction('login');\n }\n }\n\n bindCustomEvents() {\n // ??? custom \"track\" events\n $('body').on('track', (e, action, params) => {\n const data = [].slice.call(arguments).splice(2);\n this.trackAction(action, data);\n });\n }\n\n initiateTracking() {\n const ctx = this;\n const $formisimo = $('formisimo');\n window.Tealium = {};\n\n if ($formisimo.length > 0) {\n $formisimo.each(function () {\n const $this = $(this);\n const data = [{'formId': $this.data('formId'), 'result': $this.data('formResult')}];\n ctx.trackAction('formisimo', data);\n });\n }\n }\n\n render() {\n this.initiateTracking();\n this.bindEvents();\n this.bindCustomEvents();\n window.addEventListener('load', (event) => {\n this.trackCarousels();\n });\n }\n}\n","import Component from '../abstracts/Component';\nimport TrackingComponent from '../components/TrackingComponent';\n\nexport default class LoginComponent extends Component {\n\n get COMPONENTNAME() {\n return 'LoginComponent';\n }\n\n get SELECTORS() {\n return {\n submitBtn: \"[data-js-btn='submit']\"\n };\n }\n\n constructor(elem) {\n super(elem);\n this.trackingComponent = new TrackingComponent();\n }\n\n readDOM() {\n return {\n submitBtn: this.$component.querySelector(this.SELECTORS.submitBtn),\n }\n }\n\n bindEvents() {\n this.dom.submitBtn.addEventListener('click', () => {\n let loginType = this.dom.submitBtn.dataset.loginType;\n let params = { loginType : loginType };\n this.trackingComponent.actions.login(params);\n });\n }\n\n render() {\n this.dom = this.readDOM();\n this.bindEvents();\n }\n}\n"],"sourceRoot":""}