\";\r\n output += \"
\";\r\n output += msg;\r\n output += \"
\";\r\n output += \"
\";\r\n\r\n $search.find(\"form\").after(output);\r\n $search.find(\".error-msg\").fadeTo(\"slow\", 1);\r\n }\r\n\r\n function removeError($search) {\r\n $search.find(\".error-msg\").remove();\r\n }\r\n\r\n function validateForm(e, $search, err_msg) {\r\n var $searchinput = $search.find(\"form .searchform__input\");\r\n\r\n var val = $searchinput.val();\r\n if ($.trim(val) === \"\") {\r\n e.preventDefault();\r\n if (!$search.find(\".error-msg\").length) {\r\n renderErrorMessage(err_msg, $search);\r\n $searchinput.focus();\r\n }\r\n }\r\n }\r\n\r\n return {\r\n calcResultsNumber: calcResultsNumber,\r\n getSearchTermFromUrl: getSearchTermFromUrl,\r\n removeError: removeError,\r\n validateForm: validateForm,\r\n renderErrorMessage: renderErrorMessage\r\n };\r\n\r\n})();\r\n\r\nexport { Search };","import { Search } from \"General/global-js/search.js\";\r\n\r\nvar MetanavSearch = (function() {\r\n function manageActiveState() {\r\n $search.removeClass(\"metanav__search--inactive\").addClass(\"metanav__search--active\");\r\n $searchbutton.removeClass(\"icons-suchen\").addClass(\"icons-pfeil\");\r\n\r\n $body.on(\"click tap\", function(e) {\r\n /* _wasFocusInEvent work around to prevent menu closing in mobile on first click :( */\r\n if (_wasFocusInEvent !== true) {\r\n handleOutsideClick(e);\r\n } else {\r\n _wasFocusInEvent = false;\r\n }\r\n });\r\n }\r\n\r\n function manageInactiveState() {\r\n $search.removeClass(\"metanav__search--active\").addClass(\"metanav__search--inactive\");\r\n $searchbutton.removeClass(\"icons-pfeil\").addClass(\"icons-suchen\");\r\n\r\n if ($searchbutton.hasClass(\"searchform__submit--active\") && !isDesktop()) {\r\n $searchbutton.removeClass(\"searchform__submit--active\");\r\n }\r\n\r\n if ($search.find(\".error-msg\").length) {\r\n Search.removeError($search);\r\n }\r\n }\r\n\r\n function closeOtherDropdowns() {\r\n //close login/signout if exists and open\r\n if (collapsibles.length) {\r\n collapsibles.each(function() {\r\n $(this).removeClass(\"show\");\r\n $(this).prev().attr(\"aria-expanded\", \"false\");\r\n });\r\n }\r\n }\r\n\r\n function handleOutsideClick(e) {\r\n _active = $search.hasClass(\"metanav__search--active\");\r\n $target = $(e.target);\r\n\r\n if (_active === true && $target.closest(\".searchform, .searchform__input, .searchform__submit\").length === 0) {\r\n manageInactiveState();\r\n $body.off(\"click tap\");\r\n }\r\n }\r\n\r\n function bindEvents() {\r\n\r\n $searchinput.on(\"focusin\", function() {\r\n _wasFocusInEvent = true;\r\n manageActiveState();\r\n }).on(\"keydown\", function(e) {\r\n if (e.shiftKey && e.keyCode === 9) {\r\n manageInactiveState();\r\n }\r\n }).on(\"input\", function() {\r\n if ($search.find(\".error-msg\").length && $search.find(\".searchform__input\").val() !== \"\") {\r\n Search.removeError($search);\r\n }\r\n });\r\n\r\n $searchbutton.on(\"keydown\", function(e) {\r\n if (e.keyCode == 9) {\r\n manageInactiveState();\r\n }\r\n });\r\n\r\n //Desktop only\r\n $searchbutton.on(\"focusin click\", function() {\r\n if (isDesktop()) {\r\n _wasFocusInEvent = true;\r\n manageActiveState();\r\n }\r\n });\r\n\r\n //Tablet and Mobile\r\n $searchbutton.on(\"focusin tap click\", function() {\r\n if (!isDesktop()) {\r\n setTimeout(function() {\r\n $searchbutton.addClass(\"searchform__submit--active\");\r\n }, 100);\r\n if (!$search.hasClass(\"metanav__search--active\")) {\r\n $searchinput.focus();\r\n }\r\n }\r\n }).on(\"blur\", function() {\r\n if (!isDesktop()) {\r\n if (!$searchbutton.hasClass(\"searchform__submit--active\")) {\r\n manageInactiveState();\r\n }\r\n }\r\n });\r\n\r\n $searchinput.on(\"focusin\", function() {\r\n if (!isDesktop()) {\r\n closeOtherDropdowns();\r\n }\r\n });\r\n\r\n $searchform.on(\"submit\", function(e) {\r\n if (!isDesktop()) {\r\n if (!$searchbutton.hasClass(\"searchform__submit--active\")) {\r\n e.preventDefault();\r\n } else {\r\n Search.validateForm(e, $search, err_msg);\r\n }\r\n } else {\r\n Search.validateForm(e, $search, err_msg);\r\n }\r\n });\r\n }\r\n\r\n function isDesktop() {\r\n return $body.hasClass(\"desktop\");\r\n }\r\n\r\n function init() {\r\n $body = $(\"body\");\r\n\r\n $search = $(\"#headerMetaNavigationSearch\");\r\n $searchform = $search.find(\".searchform form\");\r\n $searchinput = $search.find(\".searchform__input\");\r\n $searchbutton = $search.find(\".searchform__submit\");\r\n $searchresultsnumb = $searchform.find(\".searchform__input-results\");\r\n\r\n collapsibles = $(\"header .header__row\").find(\".collapse\");\r\n\r\n err_msg = $searchinput.attr(\"data-err-required\");\r\n\r\n bindEvents();\r\n\r\n $searchresultsnumb.val(Search.calcResultsNumber());\r\n }\r\n\r\n var $search, $searchform, $searchinput, $searchbutton, $target, $body, $searchresultsnumb, collapsibles, _active, err_msg, _wasFocusInEvent = false;\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})();\r\n\r\nexport { MetanavSearch };\r\n","import SelfInitComponent from \"General/global-js/SelfInitComponent\";\r\nimport { MetanavSearch } from \"./metanavsearch.js\";\r\nimport { Helperfn } from \"General/global-js/helpers\";\r\nimport \"./metanavsearch-desktop.scss\";\r\nimport \"./metanavsearch-mainnavtablet.scss\";\r\nimport \"./metanavsearch-tablet.scss\";\r\nimport \"./metanavsearch-mobile.scss\";\r\n\r\nclass MetaNavigationSearchComponent extends SelfInitComponent {\r\n constructor(selector) {\r\n\r\n super(selector);\r\n }\r\n\r\n init() {\r\n Helperfn.init();\r\n MetanavSearch.init();\r\n }\r\n}\r\nnew MetaNavigationSearchComponent(\"#headerMetaNavigationSearch\");\r\n"],"names":["reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","this","cancel","clearTimeout","flush","readyStates","loading","interactive","complete","SelfInitComponent","constructor","selector","implementedEvents","callEvents","document","querySelectorAll","length","init","eventKey","__proto__","debounce","debounceTime","window","addEventListener","BUILDMODE","console","warn","readyState","givenFunction","debounced_func","_debounce","Helperfn","$","fn","extend","hasClasses","classNamesRegex","RegExp","rclass","i","l","nodeType","className","Search","renderErrorMessage","msg","$search","output","find","attr","after","fadeTo","calcResultsNumber","results_num","curr_viewport","forEach","elem","hasClass","getSearchTermFromUrl","url_string","location","href","term","URL","searchParams","get","removeError","remove","validateForm","e","err_msg","$searchinput","val","trim","preventDefault","focus","MetanavSearch","manageActiveState","removeClass","addClass","$searchbutton","$body","on","_wasFocusInEvent","_active","$target","target","closest","manageInactiveState","off","handleOutsideClick","isDesktop","bindEvents","shiftKey","keyCode","collapsibles","each","prev","$searchform","$searchresultsnumb","MetaNavigationSearchComponent","super"],"sourceRoot":""}