{"version":3,"sources":["webpack:///./src/components/search-bar/c-search-bar.js"],"names":["r","l","__webpack_require__","n","e","__esModule","default","azureUpdateFormState","el","window","azure_form","closest","_jquery2","val","find","azureToggleLoader","show","removeClass","addClass","azureAjaxRequest","start","perpage","data","apiUrl","keyword","trim","location","pathname","redirect","searchParam","$section","remove","css","display","$","ajax","url","done","$resultDiv","$tpl","item","html","value","length","clone","appendTo","forEach","i","Name","attr","UrlSlug","Summary","total","$azureSearchResult","text","callback","$paginationTpl","$pagination","$preText","$prev","$next","totalPage","Math","ceil","currentPage","li","push","prepend","append","off","one","preventDefault","target","hasClass","queries","each","_","$searchBar","$searchOverlay","$searchInput","$searchTrigger","changeSearchPlaceholder","media","matches","mediaQueryMobile","matchMedia","addListener","click","parents","setTimeout","focus","_attachEnterAsClick2","$closeSearchTrigger","$searchButton","keypress","keyCode","which","decodeURI","replace","keydown","closeSearchBarIfNotFocused","is","blur","azureShowInlineForm","this","search","split"],"mappings":"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","file":"js/22.chunk.js?v=1741037327230","sourcesContent":["import attachEnterAsClick from 'utils/attachEnterAsClick';\nimport $ from 'jquery';\n\n// Init and setup all the events for the component\nconst initSearchBar = el => {\n // Define base elements and early return check\n const $searchBar = $(el);\n const $searchOverlay = $searchBar.find('.search-overlay');\n const $searchInput = $searchBar.find('input[type=\"text\"]');\n const $searchTrigger = $('.js-search-bar-trigger');\n\n if (!$searchTrigger.length || !$searchBar.length) { return; }\n\n const changeSearchPlaceholder = media => {\n if (media.matches) {\n $searchInput.attr('placeholder', $searchInput.data('placeholder-desktop'));\n } else {\n $searchInput.attr('placeholder', $searchInput.data('placeholder-mobile'));\n }\n };\n\n const mediaQueryMobile = window.matchMedia('(min-width: 768px)');\n\n changeSearchPlaceholder(mediaQueryMobile);\n mediaQueryMobile.addListener(changeSearchPlaceholder);\n\n // Setup the trigger to open and auto focus the search bar\n $searchTrigger.click(e => {\n e.preventDefault();\n const $sectionSearch = $searchBar.parents('[class^=\"s-\"]');\n if ($sectionSearch.length < 1) {\n $searchBar.addClass('open');\n $searchOverlay.addClass('is-visible');\n\n // Delay the focus by 1 seconds so the IE users will catch a glimpse of the\n // placeholder text before it is focus upon\n setTimeout(() => {\n $searchBar.find('input[type=\"text\"]').focus();\n }, 1000);\n }\n });\n attachEnterAsClick($searchTrigger);\n\n // Setup the trigger to close off the search bar\n // ASSUMPTION: the search bar will ALWAYS come with a close trigger\n const $closeSearchTrigger = $searchBar.find('.js-search-bar-close');\n $closeSearchTrigger.click(() => {\n $searchBar.removeClass('open');\n $searchOverlay.removeClass('is-visible');\n });\n attachEnterAsClick($closeSearchTrigger);\n\n // Setup the enter press and search button click to trigger the search function\n // ASSUMPTION: the search bar will ALWAYS come with a search input and search button\n const $searchButton = $searchBar.find('.js-search-bar-search');\n $searchInput.keypress(e => {\n if ((e.keyCode ? e.keyCode : e.which) === 13) { // Enter key\n e.preventDefault();\n\n if ($('.azure-search-form').length > 0) {\n $closeSearchTrigger.click();\n } else {\n window.location = $searchBar.data('search-url') + decodeURI($(e.target).val().replace(/\\s+/g, ' ').trim()).replace(/ /g, '+');\n }\n }\n });\n\n // Close the search on ESC key\n $searchInput.keydown(e => {\n if ((e.keyCode ? e.keyCode : e.which) === 27) { // Escape key\n $closeSearchTrigger.click();\n }\n });\n\n $searchButton.click(e => {\n e.preventDefault();\n\n if ($('.azure-search-form').length > 0) {\n $closeSearchTrigger.click();\n } else {\n window.location = $searchBar.data('search-url') + decodeURI($searchInput.val().replace(/\\s+/g, ' ').trim()).replace(/ /g, '+');\n }\n });\n attachEnterAsClick($searchButton);\n\n // Accessibility feature, if the user tab off the search bar, hide / close the search bar\n const closeSearchBarIfNotFocused = () => {\n setTimeout(() => {\n if (!$closeSearchTrigger.is(':focus') && !$searchInput.is(':focus') && !$searchButton.is(':focus')) {\n $closeSearchTrigger.click();\n }\n }, 500);\n };\n\n $closeSearchTrigger.blur(closeSearchBarIfNotFocused);\n $searchButton.blur(closeSearchBarIfNotFocused);\n $searchInput.blur(closeSearchBarIfNotFocused);\n};\n\n// update state\nconst azureUpdateFormState = el => {\n // mark current form\n window.azure_form = el.closest('.azure-search-form');\n $('.azure-search-form .search-input').val(window.azure_form.find('.search-input').val());\n};\n\n// handle redirect\nconst azureRedirectPage = () => {\n const { pathname } = window.location;\n\n let redirect = window.azure_form.data('redirect');\n\n // ignore redirection if in search page\n if (pathname === redirect) {\n return false;\n }\n\n // redirect if not in search page and redirect url exist\n if (redirect !== undefined) {\n redirect += `?ask=${window.azure_form.find('.search-input').val()}#s-azure-search-result`;\n window.location = redirect;\n return true;\n }\n\n return false;\n};\n\n// loop item list\nconst azureAjaxRender = data => {\n const $resultDiv = $('#azure-search-result');\n const $tpl = $('#azure-search-tpl .search-result-item');\n\n let item;\n\n // reset result div\n $resultDiv.html('').removeClass('hidden');\n\n // no result\n if (data.value.length === 0) {\n item = $tpl.clone();\n\n item.find('.title').remove();\n\n item.appendTo($resultDiv);\n return;\n }\n\n // loop item\n data.value.forEach(i => {\n item = $tpl.clone();\n item.find('.no-link-title').remove();\n item.find('.title a').html(i.Name);\n item.find('.title a').attr('href', i.UrlSlug);\n item.find('p').html(i.Summary);\n\n item.appendTo($resultDiv);\n });\n};\n\n// toggle loader\nconst azureToggleLoader = show => {\n if (show) {\n $('.loading').removeClass('hide');\n } else {\n $('.loading').addClass('hide');\n }\n};\n\n// show or hide simple navigation, add event on click\nconst azureShowHidePagination = (start, total, callback) => {\n const perpage = window.azure_form.data('perpage') * 1;\n const $paginationTpl = $('#pagination_tpl .c-pagination-simple').clone();\n const $pagination = $('#s-azure-search-result .c-pagination-simple');\n\n // collect preText, prev, and next\n const $preText = $paginationTpl.find('.pre-text');\n const $prev = $paginationTpl.find('.previous');\n const $next = $paginationTpl.find('.next');\n\n // create page navigation\n const totalPage = Math.ceil(total / perpage);\n const currentPage = (start / perpage) + 1;\n const li = [];\n\n // update pre text\n $preText.text(`${total} results`);\n\n // insert prev\n if (start > 0) li.push($prev);\n\n // insert pages\n for (let i = 0; i < totalPage; i += 1) {\n li.push($(`