{"version":3,"sources":["../ts/education/toggleview.ts"],"names":["jquery_1","default","isNumeric","n","isNaN","parseFloat","isFinite","getCellValue","row","index","element","children","eq","hasAttribute","value","attr","sortType","html","on","this","toggleClass","closest","table","parents","rows","find","toArray","sort","a","b","aDate","bDate","valA","valB","Date","parseInt","localeCompare","hasOwnProperty","asc","reverse","i","length","append"],"mappings":"yLAEAA,SAAAC,QAAE,WAwBA,SAASC,UAAUC,GACjB,MAAO,CAACC,MAAMC,WAAWF,CAAC,CAAC,GAAKG,SAASH,CAAC,CAC5C,CAcA,SAASI,aAAaC,IAAkBC,OAClCC,IAAUV,SAAAC,QAAEO,GAAG,EAAEG,SAAS,IAAI,EAAEC,GAAGH,KAAK,EAC5C,OAAGC,IAAQ,GAAGG,aAAa,iBAAiB,EACnC,CACLC,MAAOJ,IAAQK,KAAK,iBAAiB,EACrCC,SAAU,M,EAGP,CACLF,MAAOJ,IAAQO,KAAI,EACnBD,SAAU,c,CAEd,CAnDAhB,SAAAC,QAAE,0BAA0B,EAAEiB,GAAG,QAAS,WAGxC,OAFAlB,SAAAC,QAAEkB,IAAI,EAAEC,YAAY,MAAM,EAC1BpB,SAAAC,QAAEkB,IAAI,EAAEE,QAAQ,QAAQ,EAAED,YAAY,MAAM,EACrC,CAAA,CACT,CAAC,EACFpB,SAAAC,QAAE,eAAe,EAAEiB,GAAG,QAAS,WAC5B,IAoBgBT,MApBZa,MAAQtB,SAAAC,QAAEkB,IAAI,EAAEI,QAAQ,OAAO,EAAEX,GAAG,CAAC,EACrCY,KAAOF,MAAMG,KAAK,UAAU,EAC7BC,QAAO,EACPC,MAiBalB,MAhBHT,SAAAC,QAAEkB,IAAI,EAAEV,MAAK,EAiBjB,SAAUmB,EAAgBC,GAC7B,IAEMC,MAA8BC,MAFhCC,EAAOzB,aAAaqB,EAAGnB,KAAK,EAAGwB,EAAO1B,aAAasB,EAAGpB,KAAK,EAC/D,MAAqB,SAAlBuB,EAAKhB,UACFc,MAAQ,IAAII,KAAKF,EAAKlB,KAAK,IAAGiB,MAAQ,IAAIG,KAAKD,EAAKnB,KAAK,GAC9CgB,MAAiB,EAAI,IACxBA,MAAQC,MAAS,EAAI,IAI5B7B,UAAU8B,CAAI,GAAK9B,UAAU+B,CAAI,EAAIE,SAASH,EAAKlB,KAAK,EAAIqB,SAASF,EAAKnB,KAAK,EAAIkB,EAAKlB,MAAMsB,cAAcH,EAAKnB,KAAK,CACjI,EA3B2B,EAEzBK,KAAKkB,eAAe,KAAK,IACrBlB,KAAMmB,IAAM,CAAA,GAEdnB,KAAMmB,IAAM,CAAOnB,KAAMmB,IACpBnB,KAAMmB,MACfd,KAAOA,KAAKe,QAAO,GAErB,IAAK,IAAIC,EAAI,EAAGA,EAAIhB,KAAKiB,OAAQD,CAAC,GAChClB,MAAMoB,OAAOlB,KAAKgB,EAAE,CAExB,CAAC,CA8BH,CAAC","file":"toggleview.js","sourcesContent":["import $ from 'jquery';\r\n\r\n$(function(){\r\n $(\".infotable .view-details\").on('click', function () {\r\n $(this).toggleClass('open');\r\n $(this).closest('.event').toggleClass('open');\r\n return false;\r\n });\r\n $('.infotable th').on('click', function(){\r\n var table = $(this).parents('table').eq(0);\r\n var rows = table.find('tr:gt(0)')\r\n .toArray()\r\n .sort(\r\n comparer($(this).index())\r\n );\r\n if(!this.hasOwnProperty('asc')) {\r\n (<any>this).asc = true;\r\n }\r\n (<any>this).asc = !(<any>this).asc;\r\n if (!(<any>this).asc){\r\n rows = rows.reverse();\r\n }\r\n for (var i = 0; i < rows.length; i++){\r\n table.append(rows[i]);\r\n }\r\n });\r\n function isNumeric(n:any) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n function comparer(index: number) {\r\n return function( a: HTMLElement, b: HTMLElement) {\r\n var valA = getCellValue(a, index), valB = getCellValue(b, index);\r\n if(valA.sortType === 'date') {\r\n var aDate = new Date(valA.value), bDate = new Date(valB.value);\r\n var greater = (aDate > bDate) ? 1 : 0;\r\n var less = (aDate < bDate) ? 1 : 0;\r\n return greater - less;\r\n }\r\n\r\n return isNumeric(valA) && isNumeric(valB) ? parseInt(valA.value) - parseInt(valB.value) : valA.value.localeCompare(valB.value);\r\n }\r\n }\r\n function getCellValue(row: HTMLElement, index: number) : ISortValue {\r\n var element = $(row).children('td').eq(index);\r\n if(element[0].hasAttribute('data-sort-value')) {\r\n return {\r\n value: element.attr('data-sort-value'),\r\n sortType: 'date'\r\n };\r\n } \r\n return {\r\n value: element.html(),\r\n sortType: 'text/numeric'\r\n };\r\n }\r\n});\r\n\r\ninterface ISortValue {\r\n value: string,\r\n sortType: string\r\n}"]}