{"version":3,"sources":["kiamo.js"],"names":["onloadInitKiamoPosition","window","matchMedia","matches","let","bodyEl","document","body","cssVariableBottomPosition","getComputedStyle","getPropertyValue","cartResume","querySelector","cartWrapper","configuratorResume","$","length","MutationObserver","mutationsList","observer","forEach","mutation","type","attributeName","classList","contains","style","setProperty","offsetHeight","resumeDetails","heightResumeDetails","i","children","heightResumeWithoutDetails","observe","attributes","attributeFilter","onLoadDetectIfChatLoaded","checkIfElementExists","chat","addClass","find","remove","click","e","preventDefault","minimizeButton","onClickLogoMaximizeChat","onChangeChat","addPlaceholder","onChangeConversation","onClickChangeTypoSize","selector","callback","interval","element","intervalId","setInterval","clearInterval","on","hasClass","mutations","mut","checkSatisfaction","checkMessageDisabled","message","attr","conversation","checkMessageUnavailable","childList","characterData","onload","kcRows","satisfaction","each","this","hoverListenerStarsSatisfaction","target","clickListenerStarsSatisfaction","index","star","starWrappersSelected","addEventListener","id","push","item","removeClass","parent","prevAll","console","log","textContent","includes","disabled","css","plus","minus","chatBody","fontSize","ready"],"mappings":"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","file":"../kiamo.min.js","sourcesContent":["function onloadInitKiamoPosition() {\r\n if (window.matchMedia('(max-width: 1024px)').matches) {\r\n let bodyEl = document.body;\r\n let cssVariableBottomPosition = getComputedStyle(bodyEl).getPropertyValue('--kiamo-bottom-position');\r\n\r\n // Element en bas dans le panier\r\n let cartResume = document.querySelector('.summary__total.-mobile');\r\n // Element en bas en fiche produit \r\n let cartWrapper = document.querySelector('.fiche-produit-wrapper #cart-wrapper')\r\n // Element en bas dans le configurateur\r\n let configuratorResume = document.querySelector('.configurator .product__informations.-mobile')\r\n\r\n if ($(cartResume).length > 0) {\r\n // Panier\r\n // On initialise un mutation observer car le chat doit passer en bas de page lorsque le menu panier n'est plus sticky\r\n const observerMenu = new MutationObserver((mutationsList, observer) => {\r\n mutationsList.forEach((mutation) => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n if (cartResume.classList.contains('-nofix')) {\r\n // Si le menu n'est pas sticky on le met à 10px du bas\r\n bodyEl.style.setProperty('--kiamo-bottom-position', 10 + 'px');\r\n } else {\r\n // Si le menu est sticky on le met à 10px du menu\r\n bodyEl.style.setProperty('--kiamo-bottom-position', cartResume.offsetHeight + 10 + 'px');\r\n let resumeDetails = cartResume.querySelector('.total__details');\r\n\r\n const observerMenuOpen = new MutationObserver((mutationsList, observer) => {\r\n mutationsList.forEach((mutation) => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n if (resumeDetails.classList.contains('-active')) {\r\n // Si on déplie le menu, on fait suivre le chat\r\n let heightResumeDetails = 0;\r\n // Au moment du clic le menu n'est pas déployé car transition de .5s alors on parcours les enfants et on determine la taille du menu deplié\r\n for (let i = 0; i < resumeDetails.children.length; i++) {\r\n heightResumeDetails += resumeDetails.children[i].offsetHeight;\r\n }\r\n bodyEl.style.setProperty('--kiamo-bottom-position', cartResume.offsetHeight + heightResumeDetails + 10 + 'px');\r\n } else {\r\n // Si replie le menu, au moment du clic le menu ne sera pas replié, alors on enlève la hauteur de l'élément qui se replie\r\n let heightResumeWithoutDetails = cartResume.offsetHeight - resumeDetails.offsetHeight;\r\n bodyEl.style.setProperty('--kiamo-bottom-position', heightResumeWithoutDetails + 10 + 'px');\r\n }\r\n }\r\n });\r\n });\r\n\r\n observerMenuOpen.observe(resumeDetails, { attributes: true, attributeFilter: ['class'] });\r\n }\r\n }\r\n });\r\n });\r\n\r\n observerMenu.observe(cartResume, { attributes: true, attributeFilter: ['class'] });\r\n\r\n } else if ($(cartWrapper).length > 0) {\r\n // FP\r\n if (window.matchMedia('(max-width: 640px)').matches) {\r\n if (cartWrapper.offsetHeight > 0 && cssVariableBottomPosition !== cartWrapper.offsetHeight + 10) {\r\n bodyEl.style.setProperty('--kiamo-bottom-position', cartWrapper.offsetHeight + 10 + 'px');\r\n }\r\n }\r\n } else if ($(configuratorResume).length > 0) {\r\n // Configurateur\r\n if (configuratorResume.offsetHeight > 0 && cssVariableBottomPosition !== configuratorResume.offsetHeight + 10) {\r\n bodyEl.style.setProperty('--kiamo-bottom-position', configuratorResume.offsetHeight + 10 + 'px');\r\n }\r\n }\r\n }\r\n}\r\nfunction onLoadDetectIfChatLoaded() {\r\n checkIfElementExists('#kiamo-chat:not(.kc-hidden)', (element) => {\r\n let chat = element;\r\n chat.addClass('-initialized');\r\n\r\n let logOutBtn = chat.find('#kc-topbar-actions .kc-close');\r\n logOutBtn.remove();\r\n\r\n let topbarItems = $('#kc-topbar-actions a.kc-icon');\r\n topbarItems.click((e) => {\r\n e.preventDefault();\r\n })\r\n\r\n let minimizeButton = chat.find(\".kc-icon.minimize\");\r\n if (minimizeButton.length > 0) {\r\n minimizeButton[0].click();\r\n }\r\n\r\n onClickLogoMaximizeChat(chat);\r\n onChangeChat(chat);\r\n addPlaceholder(chat);\r\n onChangeConversation(chat);\r\n onClickChangeTypoSize(chat);\r\n })\r\n}\r\nfunction checkIfElementExists(selector, callback, interval = 100) {\r\n let element = $(selector);\r\n if (element.length > 0) {\r\n callback(element);\r\n return;\r\n }\r\n\r\n const intervalId = setInterval(() => {\r\n element = $(selector);\r\n if (element.length > 0) {\r\n clearInterval(intervalId);\r\n callback(element);\r\n }\r\n }, interval)\r\n}\r\nfunction onClickLogoMaximizeChat(chat) {\r\n let logo = $('#kc-logo');\r\n\r\n logo.on('click', () => {\r\n if (chat.hasClass('kc-small')) {\r\n let maximize = $('#kc-topbar-actions .kc-toggler.maximize');\r\n maximize[0].click();\r\n }\r\n })\r\n}\r\nfunction onChangeChat(chat) {\r\n var mut = new MutationObserver(function (mutations, mut) {\r\n // Ajouter des callbacks quand le chat change de class\r\n addPlaceholder(chat);\r\n onChangeConversation(chat);\r\n checkSatisfaction(chat);\r\n checkMessageDisabled(chat);\r\n onClickChangeTypoSize(chat);\r\n });\r\n mut.observe(chat[0], {\r\n 'attributes': true\r\n });\r\n}\r\nfunction addPlaceholder(chat) {\r\n if (chat[0].classList.contains('kc-conversation')) {\r\n let message = $('#kc-message');\r\n if (message.length > 0) {\r\n message.attr('placeholder', 'Posez votre question...')\r\n }\r\n }\r\n}\r\nfunction onChangeConversation(chat) {\r\n if (chat.hasClass('kc-conversation')) {\r\n let conversation = $('#kc-message-list')\r\n var mut = new MutationObserver(function (mutations, mut) {\r\n checkSatisfaction(chat);\r\n checkMessageDisabled(chat);\r\n checkMessageUnavailable(chat);\r\n })\r\n\r\n mut.observe(conversation[0], {\r\n 'attributes': true, 'childList': true, 'characterData': true,\r\n })\r\n }\r\n}\r\nfunction checkSatisfaction(chat, onload) {\r\n let kcRows = $('.kc-row');\r\n let satisfaction;\r\n kcRows.each(function () {\r\n if ($(this).find('.kc-col-6').find('.kc-btn').length == 5) {\r\n satisfaction = $(this);\r\n if (!satisfaction.hasClass('-satisfaction')) {\r\n satisfaction.addClass('-satisfaction');\r\n }\r\n\r\n hoverListenerStarsSatisfaction(satisfaction);\r\n satisfaction.on('click', (e) => {\r\n if ($(e.target).hasClass('kc-btn')) {\r\n clickListenerStarsSatisfaction();\r\n }\r\n })\r\n }\r\n })\r\n}\r\nfunction hoverListenerStarsSatisfaction(satisfaction) {\r\n let stars = satisfaction.find('.kc-btn');\r\n stars.each((index, star) => {\r\n let starWrappersSelected = [];\r\n star.addEventListener('mouseover', () => {\r\n let starIndex = +star.id;\r\n\r\n for (let i = starIndex; i > 0; i--) {\r\n starWrappersSelected.push(satisfaction.find('#' + i));\r\n }\r\n\r\n starWrappersSelected.forEach((item) => {\r\n item.addClass('-hover')\r\n })\r\n })\r\n\r\n star.addEventListener('mouseout', () => {\r\n starWrappersSelected.forEach((item) => {\r\n item.removeClass('-hover')\r\n })\r\n })\r\n })\r\n}\r\n\r\nfunction clickListenerStarsSatisfaction() {\r\n checkIfElementExists('.kc-btn.kc-selected', (element) => {\r\n element.parent().prevAll().find('.kc-btn').addClass('kc-selected')\r\n })\r\n}\r\n\r\nfunction checkMessageUnavailable(chat) {\r\n let messages = chat.find('.kc-message-content');\r\n messages.each((index, item) => {\r\n console.log(item.textContent.includes('indisponibles'))\r\n })\r\n}\r\n\r\nfunction checkMessageDisabled(chat) {\r\n let message = chat.find('#kc-message');\r\n if (message.length > 0) {\r\n if (message[0].disabled) {\r\n message.attr('placeholder', '')\r\n message.parent().addClass('-disabled');\r\n }\r\n }\r\n}\r\n\r\nfunction onClickChangeTypoSize(chat) {\r\n if (chat.hasClass('kc-conversation')) {\r\n chat.find('#kc-body').css('font-size', 'inherit');\r\n return\r\n } else {\r\n checkIfElementExists('#kiamo-chat.kc-invite', (element) => {\r\n if (chat.hasClass('kc-invite')) {\r\n let plus = element.find('.kc-icon.kc-upper'), minus = element.find('.kc-icon.kc-lower'), chatBody = element.find('#kc-body'), gap = 0.063, fontSize = 0.688, maxFontSize = 1, minFontSize = 0.625;\r\n chatBody.css('font-size', fontSize + 'em');\r\n\r\n if (plus.length > 0 && minus.length > 0) {\r\n plus.on('click', () => {\r\n fontSize += gap;\r\n fontSize >= maxFontSize ? fontSize = maxFontSize : '';\r\n chatBody.css('font-size', fontSize + 'em');\r\n })\r\n\r\n minus.on('click', () => {\r\n fontSize -= gap;\r\n fontSize <= minFontSize ? fontSize = minFontSize : '';\r\n chatBody.css('font-size', fontSize + 'em');\r\n })\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\n$(document).ready(() => {\r\n onloadInitKiamoPosition();\r\n onLoadDetectIfChatLoaded();\r\n})"]}