{"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}"]}