{"version":3,"sources":["jsdelivr-header.js","/gh/dilshadkhaliq/cms-predictive-search@890861a22cc7f3a0187f623d6b2a141bfa86ea16/search.js"],"names":[],"mappings":"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","file":"/gh/dilshadkhaliq/cms-predictive-search@890861a22cc7f3a0187f623d6b2a141bfa86ea16/search.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /gh/dilshadkhaliq/cms-predictive-search@890861a22cc7f3a0187f623d6b2a141bfa86ea16/search.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function ps_search() {\n  function addCSSHead() {\n    let stlyeElt = document.createElement(\"style\");\n    stlyeElt.type = \"text/css\";\n    stlyeElt.innerHTML = \".active-result{display:block;}\";\n    $(\"head\").append(stlyeElt);\n  }\n  addCSSHead();\n  $(\"[ps-element^='wrapper']\").each(function () {\n    let elem = $(this);\n    let doc = $(document);\n    let searchInput = elem.find(\"[ps-element='input']\");\n    let searchResultWrapper = elem.find(\"[ps-element='result']\");\n    let searchForm = elem.find(\"form\");\n\n    let activeInputClass = elem.attr(\"ps-input-active\") || \"active-input\";\n    let activeResultClass = elem.attr(\"ps-result-active\") || \"active-result\";\n    let activeItemClass = elem.attr(\"ps-item-active\") || \"active-item\";\n    let searchTigger = elem.attr(\"ps-search-trigger\") || \"focus\";\n    let searchType = elem.attr(\"ps-search-type\") || \"page\";\n    let searchFilterURL = elem.attr(\"ps-search-filter-url\");\n\n    //search turn off autocomplete\n    searchInput.attr(\"autocomplete\", \"off\");\n\n    if (searchTigger == \"input\") {\n      //search on input\n      searchInput.on(\"input\", function () {\n        $(this).addClass(activeInputClass);\n        searchResultWrapper.addClass(activeResultClass);\n        console.log(\"On Input get trigger\");\n      });\n    }\n\n    //search on focus\n    searchInput.on(\"focus\", function () {\n      if (searchTigger == \"focus\") {\n        $(this).addClass(activeInputClass);\n        searchResultWrapper.addClass(activeResultClass);\n      }\n\n      doc.bind(\"keydown\", { input: $(this) }, upOrDownKey);\n      doc.bind(\"mousedown\", { input: $(this) }, mouseDown);\n    });\n\n    searchInput.on(\"blur\", function () {\n      $(this).removeClass(activeInputClass);\n      searchResultWrapper.removeClass(activeResultClass);\n\n      doc.unbind(\"keydown\", upOrDownKey);\n      doc.unbind(\"mousedown\", mouseDown);\n    });\n\n    //disable form submission on Enter\n    searchForm.on(\"keydown\", function (e) {\n      let keyCode = e.keyCode || e.which;\n      if (keyCode === 13) {\n        e.preventDefault();\n        console.log(searchType);\n        //search type\n        searchType === \"page\" ? redirectPage($(this)) : redirectPage($(this), true);\n\n        return false;\n      }\n    });\n\n    function mouseDown(e) {\n      let formWrapper = e.data.input.closest(elem);\n      if (!e.data.input.is(e.target) && e.data.input.is(\":focus\") && (formWrapper.is(e.target) || formWrapper.has(e.target).length)) {\n        e.preventDefault();\n      }\n    }\n    function upOrDownKey(e) {\n      let keyCode = e.keyCode || e.which;\n      let renderedItems = e.data.input.closest(elem).find(\".w-dyn-item\");\n\n      if (keyCode == 40) {\n        selectNextItems(renderedItems, e.data.input);\n      } else if (keyCode == 38) {\n        selectPrevItems(renderedItems, e.data.input);\n      } else {\n        renderedItems.removeClass(activeItemClass);\n      }\n    }\n    function selectNextItems(items, searchInput) {\n      if (items.hasClass(activeItemClass)) {\n        let currentActive = items.filter(\".\" + activeItemClass);\n        let nextElt = currentActive.next();\n        if (nextElt.length) {\n          currentActive.removeClass(activeItemClass);\n          nextElt.addClass(activeItemClass);\n          searchInput.val(nextElt.text());\n        }\n      } else {\n        items.first().addClass(activeItemClass);\n        searchInput.val(items.first().text());\n      }\n    }\n    function selectPrevItems(items, searchInput) {\n      if (items.hasClass(activeItemClass)) {\n        let currentActive = items.filter(\".\" + activeItemClass);\n        let prevElt = currentActive.prev();\n        if (prevElt.length) {\n          currentActive.removeClass(activeItemClass);\n          prevElt.addClass(activeItemClass);\n          searchInput.val(prevElt.text());\n        }\n      } else {\n        items.last().addClass(activeItemClass);\n        searchInput.val(items.last().text());\n      }\n    }\n    function redirectPage(form, filterURL = false) {\n      let filteredItem = form.closest(elem).find(\".w-dyn-item\");\n\n      if (filteredItem.length) {\n        if (filterURL) {\n          createFilterURL(filteredItem);\n        }\n        let activeItem = filteredItem.filter(\".\" + activeItemClass);\n        if (activeItem.length) {\n          let redirectURL = activeItem.find(\"a\").attr(\"href\");\n          if (redirectURL) {\n            form.children(\"input\").val(\"\");\n            window.location.href = redirectURL;\n          }\n        } else {\n          let redirectURL = filteredItem.first().find(\"a\").attr(\"href\");\n          if (redirectURL) {\n            form.children(\"input\").val(\"\");\n            window.location.href = redirectURL;\n          }\n        }\n      }\n    }\n    function createFilterURL(filteredItem) {\n      if (searchFilterURL) {\n        filteredItem.each(function () {\n          let field = $(this).find(\"[fs-cmsfilter-field]\");\n          let paraName = field.attr(\"fs-cmsfilter-field\");\n          let paraval = field.text();\n          let redirectURL = searchFilterURL.replace(/\\/$/, \"\") + \"?\" + paraName + \"=\" + paraval;\n          $(this).find(\"a\").attr(\"href\", redirectURL);\n        });\n      }\n    }\n  });\n}\n\n//$(\"[ps-element='input']\").css(\"pointer-events\", \"none\");\nwindow.fsAttributes = window.fsAttributes || [];\nwindow.fsAttributes.push([\n  \"cmsfilter\",\n  (filterInstances) => {\n    $(\"[ps-element='input']\").css(\"pointer-events\", \"auto\");\n    ps_search();\n  }\n]);\n"]}