{"version":3,"file":"9960_74b84a42883e6d7b9c39.bundle.js","mappings":"4JAQA,SAASA,EAAqBC,EAASC,GAKnC,GAJAD,EAAQE,iBAAiB,cAAcC,SAAQH,IAC3CA,EAAQI,YAAYJ,EAAQK,UAAU,KAGrCJ,EAAM,OAAO,EAElB,IAAIK,EAAcN,EAAQK,UAC1B,IAAKC,EAAa,OAAO,EAEzB,IAAIC,EAAQ,IAAIC,OAAO,IAAMP,EAAO,IAAK,MACrCQ,EAAQF,EAAMG,KAAKJ,GACnBK,EAAUL,EAAYM,QAAQL,EAAO,qCAGzC,OADAP,EAAQK,UAAYM,EACbF,CACX,CAMA,SAASI,EAAoBC,GACzB,GAAIA,EAAUC,UAAUC,SAAS,iCAAkC,OAEnEF,EAAUC,UAAUE,IAAI,iCAExB,IAAIC,EAAcJ,EAAUK,cAAc,iCAC1C,IAAKD,EAAa,OAElB,IAAIE,EAA+BN,EAAUO,QAAQD,6BAEjDE,EAASR,EAAUZ,iBAAiB,iCAQxC,SAASqB,EAAOC,EAAgBC,EAAOC,GACnC,IAAIC,EAAQH,EAAetB,iBAAiB,gCACxC0B,GAAmB,EACvB,IAAK,IAAIC,KAAQF,EAAO,CACpB,IACIlB,EAAQV,EADG8B,EAAKV,cAAc,qCACSM,IAC3C,QAAOI,EAAMpB,GACTA,IAAOmB,GAAmB,EAClC,EAEA,QAAOJ,GAAgBE,GAAuBE,GAC1CR,GACAN,EAAUK,cAAcC,IAA+BU,OAE/D,CAEAZ,EAAYa,iBAAiB,SAAS,KAClC,IAAK,IAAIC,KAASV,EACdC,EAAOS,EAAOd,EAAYe,MAAsD,IAA/CD,EAAMX,QAAQa,8BACnD,GAER,C","sources":["webpack://tumarket/./js/global/highlight_search.js"],"sourcesContent":["import { toggle } from \"./dom\";\n\n/**\n * \n * @param {HTMLElement} element \n * @param {string} text \n * @returns {boolean}\n */\nfunction findAndHighlightText(element, text) {\n element.querySelectorAll('.highlight').forEach(element => {\n element.replaceWith(element.innerHTML);\n });\n\n if (!text) return true;\n\n let currentText = element.innerHTML;\n if (!currentText) return true;\n\n let regex = new RegExp('(' + text + ')', 'ig');\n let found = regex.test(currentText);\n let newText = currentText.replace(regex, '$1')\n\n element.innerHTML = newText;\n return found;\n}\n\n/**\n * \n * @param {HTMLElement} container \n */\nfunction initHighlightSearch(container){\n if (container.classList.contains('hightlight-search-initialized')) return;\n\n container.classList.add('hightlight-search-initialized');\n\n let searchField = container.querySelector('[data-highlight-search-query]');\n if (!searchField) return;\n\n let customReadmoreButtonSelector = container.dataset.customReadmoreButtonSelector;\n\n let groups = container.querySelectorAll('[data-highlight-search-group]');\n\n /**\n * \n * @param {HTMLElement} groupContainer \n * @param {string} query\n * @param {boolean} hideContainerIfEmpty\n */\n function search(groupContainer, query, hideContainerIfEmpty) {\n let items = groupContainer.querySelectorAll('[data-highlight-search-item]');\n let foundInContainer = false;\n for (let item of items) {\n let itemText = item.querySelector('[data-highlight-search-item-text]');\n let found = findAndHighlightText(itemText, query);\n toggle(item, found);\n if (found) foundInContainer = true;\n }\n\n toggle(groupContainer, hideContainerIfEmpty ? foundInContainer : true);\n if (customReadmoreButtonSelector) {\n container.querySelector(customReadmoreButtonSelector)?.click();\n }\n }\n\n searchField.addEventListener('input', () => {\n for (let group of groups) {\n search(group, searchField.value, group.dataset.highlightSearchGroupHideEmpty == '');\n }\n });\n}\n\nexport { initHighlightSearch };"],"names":["findAndHighlightText","element","text","querySelectorAll","forEach","replaceWith","innerHTML","currentText","regex","RegExp","found","test","newText","replace","initHighlightSearch","container","classList","contains","add","searchField","querySelector","customReadmoreButtonSelector","dataset","groups","search","groupContainer","query","hideContainerIfEmpty","items","foundInContainer","item","click","addEventListener","group","value","highlightSearchGroupHideEmpty"],"sourceRoot":""}