Select Git revision
-
Tim Fechner authoredTim Fechner authored
To learn more about this project, read the wiki.
listselect.min.js.map 5.37 KiB
{"version":3,"file":"listselect.min.js","sources":["../src/listselect.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n *\n * @package theme_hsh_boost_campus\n * @copyright 2018 Tobias Baden, Hochschule Hannover\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\ndefine([\"jquery\"], function($) {\n function changeActionString(current, wwwroot) {\n let actionString = wwwroot;\n if (current.val() !== 0) {\n actionString += \"/course/view.php?id=\" + current.val();\n } else {\n actionString += \"/my\";\n }\n $(\"#hshcourseform\").attr(\"action\", actionString);\n }\n\n function setInactive(target) {\n target.removeClass(\"active\");\n target.removeClass(\"activeCourseSearch\");\n }\n\n function setActive(target) {\n target.addClass(\"active\");\n target.addClass(\"activeCourseSearch\");\n }\n\n function scrollIntoViewIfNeeded(element) {\n var windowSize = window.innerHeight;\n var elementPosition = element.getBoundingClientRect();\n var elementBottom = elementPosition.bottom;\n var elementTop = elementPosition.top;\n\n if (elementBottom > windowSize) {\n // Scroll an den unteren Rand des Bildes.\n element.scrollIntoView({ block: \"end\", behavior: \"smooth\" });\n }\n if (elementTop < 0) {\n // Scroll an den oberen Rand des Bildes.\n element.scrollIntoView({ block: \"start\", behavior: \"smooth\" });\n }\n }\n\n return {\n init: function(wwwroot) {\n $(\"input\").keydown(function(e) {\n var listItems = $(\".hshcoursesearchlistitem\");\n var selected = listItems.filter(\".activeCourseSearch\");\n var current;\n var key = e.keyCode;\n\n if (key !== 40 && key !== 38 && key !== 13) {\n return;\n }\n\n setInactive(listItems);\n\n if (key === 38) {\n // KEY UP!\n if (!selected.length || selected.is(\":first-child\")) {\n current = listItems.last();\n } else {\n current = selected.prev();\n }\n changeActionString(current, wwwroot);\n } else if (key === 40) {\n // KEY DOWN!\n if (!selected.length || selected.is(\":last-child\")) {\n current = listItems.eq(0);\n } else {\n current = selected.next();\n }\n changeActionString(current, wwwroot);\n } else if (key === 13) {\n // KEY ENTER!\n current = selected;\n if (isNaN(current.val())) {\n current = listItems.eq(0);\n }\n changeActionString(current, wwwroot);\n }\n\n setActive(current);\n var scrollToElement = document.getElementsByClassName(\n \"activeCourseSearch\"\n )[0];\n scrollIntoViewIfNeeded(scrollToElement);\n });\n }\n };\n});\n"],"names":["define","$","changeActionString","current","wwwroot","actionString","val","attr","init","keydown","e","listItems","selected","filter","key","keyCode","target","removeClass","length","is","last","prev","eq","next","isNaN","addClass","setActive","element","windowSize","elementPosition","elementBottom","elementTop","scrollToElement","document","getElementsByClassName","window","innerHeight","getBoundingClientRect","bottom","top","scrollIntoView","block","behavior"],"mappings":";;;;;;AAuBAA,wCAAO,CAAC,WAAW,SAASC,YACfC,mBAAmBC,QAASC,aAC7BC,aAAeD,QACG,IAAlBD,QAAQG,MACRD,cAAgB,uBAAyBF,QAAQG,MAEjDD,cAAgB,MAEpBJ,EAAE,kBAAkBM,KAAK,SAAUF,oBA6BhC,CACHG,KAAM,SAASJ,SACXH,EAAE,SAASQ,SAAQ,SAASC,OAGpBP,QAFAQ,UAAYV,EAAE,4BACdW,SAAWD,UAAUE,OAAO,uBAE5BC,IAAMJ,EAAEK,WAEA,KAARD,KAAsB,KAARA,KAAsB,KAARA,SAlCvBE,QAAAA,OAsCGL,WArCbM,YAAY,UACnBD,OAAOC,YAAY,sBAsCC,KAARH,IAOAZ,mBAJIC,SADCS,SAASM,QAAUN,SAASO,GAAG,gBACtBR,UAAUS,OAEVR,SAASS,OAEKjB,SACb,KAARU,IAOPZ,mBAJIC,SADCS,SAASM,QAAUN,SAASO,GAAG,eACtBR,UAAUW,GAAG,GAEbV,SAASW,OAEKnB,SACb,KAARU,MAEPX,QAAUS,SACNY,MAAMrB,QAAQG,SACdH,QAAUQ,UAAUW,GAAG,IAE3BpB,mBAAmBC,QAASC,mBAzDzBY,QACfA,OAAOS,SAAS,UAChBT,OAAOS,SAAS,sBA0DRC,CAAUvB,aAvDUwB,QACxBC,WACAC,gBACAC,cACAC,WAoDQC,gBAAkBC,SAASC,uBAC3B,sBACF,GA1DkBP,QA2DGK,gBA1D3BJ,WAAaO,OAAOC,YACpBP,gBAAkBF,QAAQU,wBAC1BP,cAAgBD,gBAAgBS,OAChCP,WAAaF,gBAAgBU,IAE7BT,cAAgBF,YAEhBD,QAAQa,eAAe,CAAEC,MAAO,MAAOC,SAAU,WAEjDX,WAAa,GAEbJ,QAAQa,eAAe,CAAEC,MAAO,QAASC,SAAU"}