if (typeof __coverage__ === 'undefined') { __coverage__ = {}; } if (!__coverage__['build/datatable-sort/datatable-sort.js']) { __coverage__['build/datatable-sort/datatable-sort.js'] = {"path":"build/datatable-sort/datatable-sort.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0,0,0],"71":[0,0,0],"72":[0,0,0,0,0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":26},"end":{"line":1,"column":45}}},"2":{"name":"Sortable","line":108,"loc":{"start":{"line":108,"column":0},"end":{"line":108,"column":20}}},"3":{"name":"(anonymous_3)","line":202,"loc":{"start":{"line":202,"column":10},"end":{"line":202,"column":37}}},"4":{"name":"(anonymous_4)","line":245,"loc":{"start":{"line":245,"column":16},"end":{"line":245,"column":44}}},"5":{"name":"(anonymous_5)","line":298,"loc":{"start":{"line":298,"column":24},"end":{"line":298,"column":36}}},"6":{"name":"(anonymous_6)","line":324,"loc":{"start":{"line":324,"column":26},"end":{"line":324,"column":39}}},"7":{"name":"(anonymous_7)","line":343,"loc":{"start":{"line":343,"column":28},"end":{"line":343,"column":41}}},"8":{"name":"(anonymous_8)","line":362,"loc":{"start":{"line":362,"column":17},"end":{"line":362,"column":29}}},"9":{"name":"(anonymous_9)","line":386,"loc":{"start":{"line":386,"column":16},"end":{"line":386,"column":29}}},"10":{"name":"(anonymous_10)","line":419,"loc":{"start":{"line":419,"column":16},"end":{"line":419,"column":39}}},"11":{"name":"(anonymous_11)","line":452,"loc":{"start":{"line":452,"column":17},"end":{"line":452,"column":29}}},"12":{"name":"(anonymous_12)","line":487,"loc":{"start":{"line":487,"column":17},"end":{"line":487,"column":29}}},"13":{"name":"(anonymous_13)","line":496,"loc":{"start":{"line":496,"column":29},"end":{"line":496,"column":45}}},"14":{"name":"(anonymous_14)","line":541,"loc":{"start":{"line":541,"column":22},"end":{"line":541,"column":34}}},"15":{"name":"(anonymous_15)","line":556,"loc":{"start":{"line":556,"column":22},"end":{"line":556,"column":35}}},"16":{"name":"(anonymous_16)","line":608,"loc":{"start":{"line":608,"column":20},"end":{"line":608,"column":32}}},"17":{"name":"(anonymous_17)","line":649,"loc":{"start":{"line":649,"column":21},"end":{"line":649,"column":33}}},"18":{"name":"(anonymous_18)","line":664,"loc":{"start":{"line":664,"column":16},"end":{"line":664,"column":28}}},"19":{"name":"(anonymous_19)","line":756,"loc":{"start":{"line":756,"column":21},"end":{"line":756,"column":37}}},"20":{"name":"(anonymous_20)","line":772,"loc":{"start":{"line":772,"column":20},"end":{"line":772,"column":32}}},"21":{"name":"(anonymous_21)","line":791,"loc":{"start":{"line":791,"column":54},"end":{"line":791,"column":70}}},"22":{"name":"(anonymous_22)","line":878,"loc":{"start":{"line":878,"column":23},"end":{"line":878,"column":38}}},"23":{"name":"(anonymous_23)","line":891,"loc":{"start":{"line":891,"column":21},"end":{"line":891,"column":36}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":979,"column":103}},"2":{"start":{"line":11,"column":0},"end":{"line":25,"column":6}},"3":{"start":{"line":108,"column":0},"end":{"line":108,"column":22}},"4":{"start":{"line":110,"column":0},"end":{"line":171,"column":2}},"5":{"start":{"line":173,"column":0},"end":{"line":898,"column":9}},"6":{"start":{"line":215,"column":8},"end":{"line":217,"column":12}},"7":{"start":{"line":246,"column":8},"end":{"line":248,"column":34}},"8":{"start":{"line":251,"column":8},"end":{"line":255,"column":9}},"9":{"start":{"line":252,"column":12},"end":{"line":252,"column":21}},"10":{"start":{"line":253,"column":12},"end":{"line":253,"column":53}},"11":{"start":{"line":254,"column":12},"end":{"line":254,"column":29}},"12":{"start":{"line":257,"column":8},"end":{"line":280,"column":9}},"13":{"start":{"line":258,"column":12},"end":{"line":258,"column":39}},"14":{"start":{"line":260,"column":12},"end":{"line":270,"column":13}},"15":{"start":{"line":261,"column":16},"end":{"line":261,"column":33}},"16":{"start":{"line":262,"column":16},"end":{"line":262,"column":27}},"17":{"start":{"line":264,"column":16},"end":{"line":269,"column":17}},"18":{"start":{"line":265,"column":20},"end":{"line":268,"column":21}},"19":{"start":{"line":266,"column":24},"end":{"line":266,"column":45}},"20":{"start":{"line":267,"column":24},"end":{"line":267,"column":30}},"21":{"start":{"line":272,"column":12},"end":{"line":279,"column":13}},"22":{"start":{"line":273,"column":16},"end":{"line":278,"column":17}},"23":{"start":{"line":274,"column":20},"end":{"line":277,"column":21}},"24":{"start":{"line":275,"column":24},"end":{"line":275,"column":45}},"25":{"start":{"line":276,"column":24},"end":{"line":276,"column":30}},"26":{"start":{"line":282,"column":8},"end":{"line":284,"column":12}},"27":{"start":{"line":303,"column":8},"end":{"line":303,"column":26}},"28":{"start":{"line":306,"column":8},"end":{"line":312,"column":9}},"29":{"start":{"line":307,"column":12},"end":{"line":309,"column":13}},"30":{"start":{"line":308,"column":17},"end":{"line":308,"column":61}},"31":{"start":{"line":311,"column":12},"end":{"line":311,"column":29}},"32":{"start":{"line":329,"column":8},"end":{"line":331,"column":9}},"33":{"start":{"line":330,"column":12},"end":{"line":330,"column":31}},"34":{"start":{"line":344,"column":8},"end":{"line":344,"column":19}},"35":{"start":{"line":346,"column":8},"end":{"line":351,"column":9}},"36":{"start":{"line":347,"column":12},"end":{"line":350,"column":13}},"37":{"start":{"line":348,"column":16},"end":{"line":348,"column":33}},"38":{"start":{"line":349,"column":16},"end":{"line":349,"column":22}},"39":{"start":{"line":363,"column":8},"end":{"line":363,"column":41}},"40":{"start":{"line":365,"column":8},"end":{"line":369,"column":9}},"41":{"start":{"line":366,"column":12},"end":{"line":368,"column":48}},"42":{"start":{"line":371,"column":8},"end":{"line":375,"column":9}},"43":{"start":{"line":372,"column":12},"end":{"line":374,"column":63}},"44":{"start":{"line":387,"column":8},"end":{"line":387,"column":69}},"45":{"start":{"line":420,"column":8},"end":{"line":420,"column":31}},"46":{"start":{"line":423,"column":8},"end":{"line":423,"column":33}},"47":{"start":{"line":426,"column":8},"end":{"line":441,"column":9}},"48":{"start":{"line":427,"column":12},"end":{"line":427,"column":23}},"49":{"start":{"line":429,"column":12},"end":{"line":435,"column":13}},"50":{"start":{"line":430,"column":16},"end":{"line":430,"column":38}},"51":{"start":{"line":431,"column":16},"end":{"line":434,"column":19}},"52":{"start":{"line":438,"column":12},"end":{"line":438,"column":70}},"53":{"start":{"line":440,"column":12},"end":{"line":440,"column":23}},"54":{"start":{"line":453,"column":8},"end":{"line":453,"column":64}},"55":{"start":{"line":455,"column":8},"end":{"line":455,"column":30}},"56":{"start":{"line":457,"column":8},"end":{"line":457,"column":26}},"57":{"start":{"line":459,"column":8},"end":{"line":459,"column":27}},"58":{"start":{"line":461,"column":8},"end":{"line":461,"column":32}},"59":{"start":{"line":463,"column":8},"end":{"line":469,"column":11}},"60":{"start":{"line":470,"column":8},"end":{"line":471,"column":52}},"61":{"start":{"line":474,"column":8},"end":{"line":476,"column":11}},"62":{"start":{"line":488,"column":8},"end":{"line":488,"column":24}},"63":{"start":{"line":496,"column":8},"end":{"line":520,"column":10}},"64":{"start":{"line":497,"column":12},"end":{"line":498,"column":45}},"65":{"start":{"line":500,"column":12},"end":{"line":517,"column":13}},"66":{"start":{"line":501,"column":16},"end":{"line":501,"column":38}},"67":{"start":{"line":502,"column":16},"end":{"line":503,"column":39}},"68":{"start":{"line":505,"column":16},"end":{"line":516,"column":17}},"69":{"start":{"line":506,"column":20},"end":{"line":506,"column":57}},"70":{"start":{"line":509,"column":20},"end":{"line":509,"column":46}},"71":{"start":{"line":510,"column":20},"end":{"line":510,"column":46}},"72":{"start":{"line":511,"column":20},"end":{"line":514,"column":21}},"73":{"start":{"line":512,"column":24},"end":{"line":512,"column":46}},"74":{"start":{"line":513,"column":24},"end":{"line":513,"column":46}},"75":{"start":{"line":515,"column":20},"end":{"line":515,"column":67}},"76":{"start":{"line":519,"column":12},"end":{"line":519,"column":23}},"77":{"start":{"line":522,"column":8},"end":{"line":531,"column":9}},"78":{"start":{"line":523,"column":12},"end":{"line":523,"column":56}},"79":{"start":{"line":526,"column":12},"end":{"line":526,"column":29}},"80":{"start":{"line":530,"column":12},"end":{"line":530,"column":40}},"81":{"start":{"line":543,"column":8},"end":{"line":544,"column":43}},"82":{"start":{"line":557,"column":8},"end":{"line":559,"column":27}},"83":{"start":{"line":561,"column":8},"end":{"line":563,"column":9}},"84":{"start":{"line":562,"column":12},"end":{"line":562,"column":19}},"85":{"start":{"line":567,"column":8},"end":{"line":567,"column":27}},"86":{"start":{"line":569,"column":8},"end":{"line":597,"column":9}},"87":{"start":{"line":570,"column":12},"end":{"line":591,"column":13}},"88":{"start":{"line":571,"column":16},"end":{"line":571,"column":50}},"89":{"start":{"line":573,"column":16},"end":{"line":582,"column":17}},"90":{"start":{"line":574,"column":20},"end":{"line":581,"column":21}},"91":{"start":{"line":575,"column":24},"end":{"line":577,"column":25}},"92":{"start":{"line":576,"column":28},"end":{"line":576,"column":43}},"93":{"start":{"line":579,"column":24},"end":{"line":579,"column":66}},"94":{"start":{"line":580,"column":24},"end":{"line":580,"column":30}},"95":{"start":{"line":584,"column":16},"end":{"line":586,"column":17}},"96":{"start":{"line":585,"column":20},"end":{"line":585,"column":44}},"97":{"start":{"line":588,"column":16},"end":{"line":588,"column":30}},"98":{"start":{"line":590,"column":16},"end":{"line":590,"column":58}},"99":{"start":{"line":593,"column":12},"end":{"line":596,"column":15}},"100":{"start":{"line":609,"column":8},"end":{"line":611,"column":24}},"101":{"start":{"line":613,"column":8},"end":{"line":637,"column":9}},"102":{"start":{"line":614,"column":12},"end":{"line":626,"column":13}},"103":{"start":{"line":615,"column":16},"end":{"line":615,"column":34}},"104":{"start":{"line":619,"column":16},"end":{"line":621,"column":17}},"105":{"start":{"line":620,"column":20},"end":{"line":620,"column":46}},"106":{"start":{"line":623,"column":16},"end":{"line":625,"column":17}},"107":{"start":{"line":624,"column":20},"end":{"line":624,"column":38}},"108":{"start":{"line":627,"column":15},"end":{"line":637,"column":9}},"109":{"start":{"line":628,"column":12},"end":{"line":628,"column":51}},"110":{"start":{"line":630,"column":12},"end":{"line":636,"column":13}},"111":{"start":{"line":631,"column":16},"end":{"line":635,"column":17}},"112":{"start":{"line":632,"column":20},"end":{"line":634,"column":21}},"113":{"start":{"line":633,"column":24},"end":{"line":633,"column":45}},"114":{"start":{"line":639,"column":8},"end":{"line":639,"column":33}},"115":{"start":{"line":650,"column":8},"end":{"line":650,"column":30}},"116":{"start":{"line":652,"column":8},"end":{"line":652,"column":27}},"117":{"start":{"line":665,"column":8},"end":{"line":668,"column":45}},"118":{"start":{"line":670,"column":8},"end":{"line":670,"column":26}},"119":{"start":{"line":673,"column":8},"end":{"line":682,"column":9}},"120":{"start":{"line":674,"column":12},"end":{"line":674,"column":32}},"121":{"start":{"line":676,"column":12},"end":{"line":676,"column":34}},"122":{"start":{"line":678,"column":12},"end":{"line":681,"column":13}},"123":{"start":{"line":680,"column":16},"end":{"line":680,"column":77}},"124":{"start":{"line":684,"column":8},"end":{"line":684,"column":33}},"125":{"start":{"line":686,"column":8},"end":{"line":720,"column":9}},"126":{"start":{"line":687,"column":12},"end":{"line":687,"column":29}},"127":{"start":{"line":688,"column":12},"end":{"line":688,"column":21}},"128":{"start":{"line":690,"column":12},"end":{"line":699,"column":13}},"129":{"start":{"line":691,"column":16},"end":{"line":691,"column":29}},"130":{"start":{"line":693,"column":16},"end":{"line":698,"column":17}},"131":{"start":{"line":694,"column":20},"end":{"line":697,"column":21}},"132":{"start":{"line":695,"column":24},"end":{"line":695,"column":50}},"133":{"start":{"line":696,"column":24},"end":{"line":696,"column":30}},"134":{"start":{"line":701,"column":12},"end":{"line":719,"column":13}},"135":{"start":{"line":706,"column":16},"end":{"line":706,"column":74}},"136":{"start":{"line":708,"column":16},"end":{"line":718,"column":17}},"137":{"start":{"line":709,"column":20},"end":{"line":709,"column":41}},"138":{"start":{"line":711,"column":20},"end":{"line":713,"column":21}},"139":{"start":{"line":712,"column":24},"end":{"line":712,"column":46}},"140":{"start":{"line":715,"column":20},"end":{"line":715,"column":52}},"141":{"start":{"line":717,"column":20},"end":{"line":717,"column":46}},"142":{"start":{"line":758,"column":8},"end":{"line":758,"column":20}},"143":{"start":{"line":773,"column":8},"end":{"line":780,"column":50}},"144":{"start":{"line":782,"column":8},"end":{"line":784,"column":28}},"145":{"start":{"line":786,"column":8},"end":{"line":788,"column":9}},"146":{"start":{"line":787,"column":12},"end":{"line":787,"column":53}},"147":{"start":{"line":791,"column":8},"end":{"line":816,"column":11}},"148":{"start":{"line":792,"column":12},"end":{"line":794,"column":26}},"149":{"start":{"line":796,"column":12},"end":{"line":815,"column":13}},"150":{"start":{"line":797,"column":16},"end":{"line":800,"column":17}},"151":{"start":{"line":798,"column":20},"end":{"line":799,"column":48}},"152":{"start":{"line":802,"column":16},"end":{"line":804,"column":44}},"153":{"start":{"line":806,"column":16},"end":{"line":808,"column":17}},"154":{"start":{"line":807,"column":20},"end":{"line":807,"column":68}},"155":{"start":{"line":810,"column":16},"end":{"line":810,"column":59}},"156":{"start":{"line":812,"column":16},"end":{"line":814,"column":17}},"157":{"start":{"line":813,"column":20},"end":{"line":813,"column":53}},"158":{"start":{"line":818,"column":8},"end":{"line":866,"column":9}},"159":{"start":{"line":819,"column":12},"end":{"line":819,"column":30}},"160":{"start":{"line":820,"column":12},"end":{"line":820,"column":53}},"161":{"start":{"line":821,"column":12},"end":{"line":821,"column":38}},"162":{"start":{"line":823,"column":12},"end":{"line":865,"column":13}},"163":{"start":{"line":824,"column":16},"end":{"line":824,"column":51}},"164":{"start":{"line":826,"column":16},"end":{"line":826,"column":45}},"165":{"start":{"line":828,"column":16},"end":{"line":835,"column":17}},"166":{"start":{"line":829,"column":20},"end":{"line":829,"column":44}},"167":{"start":{"line":831,"column":20},"end":{"line":831,"column":54}},"168":{"start":{"line":833,"column":20},"end":{"line":834,"column":52}},"169":{"start":{"line":837,"column":16},"end":{"line":847,"column":17}},"170":{"start":{"line":838,"column":20},"end":{"line":842,"column":28}},"171":{"start":{"line":844,"column":20},"end":{"line":844,"column":67}},"172":{"start":{"line":846,"column":20},"end":{"line":846,"column":39}},"173":{"start":{"line":849,"column":16},"end":{"line":859,"column":18}},"174":{"start":{"line":861,"column":16},"end":{"line":861,"column":50}},"175":{"start":{"line":864,"column":16},"end":{"line":864,"column":61}},"176":{"start":{"line":879,"column":8},"end":{"line":879,"column":64}},"177":{"start":{"line":892,"column":8},"end":{"line":895,"column":75}},"178":{"start":{"line":900,"column":0},"end":{"line":900,"column":32}},"179":{"start":{"line":976,"column":0},"end":{"line":976,"column":36}}},"branchMap":{"1":{"line":215,"type":"binary-expr","locations":[{"start":{"line":215,"column":42},"end":{"line":215,"column":49}},{"start":{"line":215,"column":53},"end":{"line":215,"column":55}}]},"2":{"line":216,"type":"binary-expr","locations":[{"start":{"line":216,"column":20},"end":{"line":216,"column":26}},{"start":{"line":216,"column":30},"end":{"line":216,"column":48}}]},"3":{"line":257,"type":"if","locations":[{"start":{"line":257,"column":8},"end":{"line":257,"column":8}},{"start":{"line":257,"column":8},"end":{"line":257,"column":8}}]},"4":{"line":265,"type":"if","locations":[{"start":{"line":265,"column":20},"end":{"line":265,"column":20}},{"start":{"line":265,"column":20},"end":{"line":265,"column":20}}]},"5":{"line":274,"type":"if","locations":[{"start":{"line":274,"column":20},"end":{"line":274,"column":20}},{"start":{"line":274,"column":20},"end":{"line":274,"column":20}}]},"6":{"line":282,"type":"binary-expr","locations":[{"start":{"line":282,"column":42},"end":{"line":282,"column":49}},{"start":{"line":282,"column":53},"end":{"line":282,"column":55}}]},"7":{"line":306,"type":"if","locations":[{"start":{"line":306,"column":8},"end":{"line":306,"column":8}},{"start":{"line":306,"column":8},"end":{"line":306,"column":8}}]},"8":{"line":307,"type":"if","locations":[{"start":{"line":307,"column":12},"end":{"line":307,"column":12}},{"start":{"line":307,"column":12},"end":{"line":307,"column":12}}]},"9":{"line":329,"type":"if","locations":[{"start":{"line":329,"column":8},"end":{"line":329,"column":8}},{"start":{"line":329,"column":8},"end":{"line":329,"column":8}}]},"10":{"line":329,"type":"binary-expr","locations":[{"start":{"line":329,"column":12},"end":{"line":329,"column":34}},{"start":{"line":329,"column":38},"end":{"line":329,"column":73}}]},"11":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":12},"end":{"line":347,"column":12}},{"start":{"line":347,"column":12},"end":{"line":347,"column":12}}]},"12":{"line":365,"type":"if","locations":[{"start":{"line":365,"column":8},"end":{"line":365,"column":8}},{"start":{"line":365,"column":8},"end":{"line":365,"column":8}}]},"13":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":8},"end":{"line":371,"column":8}},{"start":{"line":371,"column":8},"end":{"line":371,"column":8}}]},"14":{"line":371,"type":"binary-expr","locations":[{"start":{"line":371,"column":12},"end":{"line":371,"column":34}},{"start":{"line":371,"column":38},"end":{"line":371,"column":53}}]},"15":{"line":426,"type":"if","locations":[{"start":{"line":426,"column":8},"end":{"line":426,"column":8}},{"start":{"line":426,"column":8},"end":{"line":426,"column":8}}]},"16":{"line":438,"type":"cond-expr","locations":[{"start":{"line":438,"column":51},"end":{"line":438,"column":59}},{"start":{"line":438,"column":62},"end":{"line":438,"column":67}}]},"17":{"line":500,"type":"binary-expr","locations":[{"start":{"line":500,"column":51},"end":{"line":500,"column":55}},{"start":{"line":500,"column":59},"end":{"line":500,"column":66}}]},"18":{"line":505,"type":"if","locations":[{"start":{"line":505,"column":16},"end":{"line":505,"column":16}},{"start":{"line":505,"column":16},"end":{"line":505,"column":16}}]},"19":{"line":509,"type":"binary-expr","locations":[{"start":{"line":509,"column":25},"end":{"line":509,"column":39}},{"start":{"line":509,"column":43},"end":{"line":509,"column":45}}]},"20":{"line":510,"type":"binary-expr","locations":[{"start":{"line":510,"column":25},"end":{"line":510,"column":39}},{"start":{"line":510,"column":43},"end":{"line":510,"column":45}}]},"21":{"line":511,"type":"if","locations":[{"start":{"line":511,"column":20},"end":{"line":511,"column":20}},{"start":{"line":511,"column":20},"end":{"line":511,"column":20}}]},"22":{"line":511,"type":"binary-expr","locations":[{"start":{"line":511,"column":24},"end":{"line":511,"column":27}},{"start":{"line":511,"column":31},"end":{"line":511,"column":54}},{"start":{"line":511,"column":58},"end":{"line":511,"column":81}}]},"23":{"line":515,"type":"cond-expr","locations":[{"start":{"line":515,"column":38},"end":{"line":515,"column":41}},{"start":{"line":515,"column":45},"end":{"line":515,"column":65}}]},"24":{"line":515,"type":"cond-expr","locations":[{"start":{"line":515,"column":57},"end":{"line":515,"column":61}},{"start":{"line":515,"column":64},"end":{"line":515,"column":65}}]},"25":{"line":522,"type":"if","locations":[{"start":{"line":522,"column":8},"end":{"line":522,"column":8}},{"start":{"line":522,"column":8},"end":{"line":522,"column":8}}]},"26":{"line":543,"type":"binary-expr","locations":[{"start":{"line":543,"column":35},"end":{"line":543,"column":54}},{"start":{"line":543,"column":58},"end":{"line":543,"column":60}}]},"27":{"line":558,"type":"binary-expr","locations":[{"start":{"line":558,"column":21},"end":{"line":558,"column":23}},{"start":{"line":558,"column":27},"end":{"line":558,"column":45}}]},"28":{"line":561,"type":"if","locations":[{"start":{"line":561,"column":8},"end":{"line":561,"column":8}},{"start":{"line":561,"column":8},"end":{"line":561,"column":8}}]},"29":{"line":561,"type":"binary-expr","locations":[{"start":{"line":561,"column":12},"end":{"line":561,"column":32}},{"start":{"line":561,"column":36},"end":{"line":561,"column":52}}]},"30":{"line":569,"type":"if","locations":[{"start":{"line":569,"column":8},"end":{"line":569,"column":8}},{"start":{"line":569,"column":8},"end":{"line":569,"column":8}}]},"31":{"line":570,"type":"if","locations":[{"start":{"line":570,"column":12},"end":{"line":570,"column":12}},{"start":{"line":570,"column":12},"end":{"line":570,"column":12}}]},"32":{"line":571,"type":"binary-expr","locations":[{"start":{"line":571,"column":25},"end":{"line":571,"column":43}},{"start":{"line":571,"column":47},"end":{"line":571,"column":49}}]},"33":{"line":574,"type":"if","locations":[{"start":{"line":574,"column":20},"end":{"line":574,"column":20}},{"start":{"line":574,"column":20},"end":{"line":574,"column":20}}]},"34":{"line":574,"type":"binary-expr","locations":[{"start":{"line":574,"column":24},"end":{"line":574,"column":40}},{"start":{"line":574,"column":45},"end":{"line":574,"column":74}}]},"35":{"line":575,"type":"if","locations":[{"start":{"line":575,"column":24},"end":{"line":575,"column":24}},{"start":{"line":575,"column":24},"end":{"line":575,"column":24}}]},"36":{"line":579,"type":"binary-expr","locations":[{"start":{"line":579,"column":40},"end":{"line":579,"column":60}},{"start":{"line":579,"column":64},"end":{"line":579,"column":65}}]},"37":{"line":579,"type":"binary-expr","locations":[{"start":{"line":579,"column":42},"end":{"line":579,"column":56}},{"start":{"line":579,"column":58},"end":{"line":579,"column":59}}]},"38":{"line":584,"type":"if","locations":[{"start":{"line":584,"column":16},"end":{"line":584,"column":16}},{"start":{"line":584,"column":16},"end":{"line":584,"column":16}}]},"39":{"line":590,"type":"binary-expr","locations":[{"start":{"line":590,"column":32},"end":{"line":590,"column":52}},{"start":{"line":590,"column":56},"end":{"line":590,"column":57}}]},"40":{"line":590,"type":"binary-expr","locations":[{"start":{"line":590,"column":34},"end":{"line":590,"column":48}},{"start":{"line":590,"column":50},"end":{"line":590,"column":51}}]},"41":{"line":613,"type":"if","locations":[{"start":{"line":613,"column":8},"end":{"line":613,"column":8}},{"start":{"line":613,"column":8},"end":{"line":613,"column":8}}]},"42":{"line":619,"type":"if","locations":[{"start":{"line":619,"column":16},"end":{"line":619,"column":16}},{"start":{"line":619,"column":16},"end":{"line":619,"column":16}}]},"43":{"line":619,"type":"binary-expr","locations":[{"start":{"line":619,"column":20},"end":{"line":619,"column":40}},{"start":{"line":619,"column":44},"end":{"line":619,"column":56}}]},"44":{"line":623,"type":"if","locations":[{"start":{"line":623,"column":16},"end":{"line":623,"column":16}},{"start":{"line":623,"column":16},"end":{"line":623,"column":16}}]},"45":{"line":627,"type":"if","locations":[{"start":{"line":627,"column":15},"end":{"line":627,"column":15}},{"start":{"line":627,"column":15},"end":{"line":627,"column":15}}]},"46":{"line":630,"type":"if","locations":[{"start":{"line":630,"column":12},"end":{"line":630,"column":12}},{"start":{"line":630,"column":12},"end":{"line":630,"column":12}}]},"47":{"line":632,"type":"if","locations":[{"start":{"line":632,"column":20},"end":{"line":632,"column":20}},{"start":{"line":632,"column":20},"end":{"line":632,"column":20}}]},"48":{"line":666,"type":"binary-expr","locations":[{"start":{"line":666,"column":26},"end":{"line":666,"column":44}},{"start":{"line":666,"column":48},"end":{"line":666,"column":50}}]},"49":{"line":678,"type":"if","locations":[{"start":{"line":678,"column":12},"end":{"line":678,"column":12}},{"start":{"line":678,"column":12},"end":{"line":678,"column":12}}]},"50":{"line":690,"type":"if","locations":[{"start":{"line":690,"column":12},"end":{"line":690,"column":12}},{"start":{"line":690,"column":12},"end":{"line":690,"column":12}}]},"51":{"line":694,"type":"if","locations":[{"start":{"line":694,"column":20},"end":{"line":694,"column":20}},{"start":{"line":694,"column":20},"end":{"line":694,"column":20}}]},"52":{"line":701,"type":"if","locations":[{"start":{"line":701,"column":12},"end":{"line":701,"column":12}},{"start":{"line":701,"column":12},"end":{"line":701,"column":12}}]},"53":{"line":706,"type":"binary-expr","locations":[{"start":{"line":706,"column":25},"end":{"line":706,"column":45}},{"start":{"line":706,"column":49},"end":{"line":706,"column":73}}]},"54":{"line":708,"type":"if","locations":[{"start":{"line":708,"column":16},"end":{"line":708,"column":16}},{"start":{"line":708,"column":16},"end":{"line":708,"column":16}}]},"55":{"line":711,"type":"if","locations":[{"start":{"line":711,"column":20},"end":{"line":711,"column":20}},{"start":{"line":711,"column":20},"end":{"line":711,"column":20}}]},"56":{"line":773,"type":"binary-expr","locations":[{"start":{"line":773,"column":28},"end":{"line":773,"column":42}},{"start":{"line":773,"column":46},"end":{"line":773,"column":48}}]},"57":{"line":796,"type":"if","locations":[{"start":{"line":796,"column":12},"end":{"line":796,"column":12}},{"start":{"line":796,"column":12},"end":{"line":796,"column":12}}]},"58":{"line":797,"type":"if","locations":[{"start":{"line":797,"column":16},"end":{"line":797,"column":16}},{"start":{"line":797,"column":16},"end":{"line":797,"column":16}}]},"59":{"line":806,"type":"if","locations":[{"start":{"line":806,"column":16},"end":{"line":806,"column":16}},{"start":{"line":806,"column":16},"end":{"line":806,"column":16}}]},"60":{"line":812,"type":"if","locations":[{"start":{"line":812,"column":16},"end":{"line":812,"column":16}},{"start":{"line":812,"column":16},"end":{"line":812,"column":16}}]},"61":{"line":823,"type":"if","locations":[{"start":{"line":823,"column":12},"end":{"line":823,"column":12}},{"start":{"line":823,"column":12},"end":{"line":823,"column":12}}]},"62":{"line":828,"type":"if","locations":[{"start":{"line":828,"column":16},"end":{"line":828,"column":16}},{"start":{"line":828,"column":16},"end":{"line":828,"column":16}}]},"63":{"line":833,"type":"cond-expr","locations":[{"start":{"line":834,"column":24},"end":{"line":834,"column":36}},{"start":{"line":834,"column":39},"end":{"line":834,"column":50}}]},"64":{"line":837,"type":"if","locations":[{"start":{"line":837,"column":16},"end":{"line":837,"column":16}},{"start":{"line":837,"column":16},"end":{"line":837,"column":16}}]},"65":{"line":850,"type":"cond-expr","locations":[{"start":{"line":850,"column":42},"end":{"line":850,"column":57}},{"start":{"line":850,"column":60},"end":{"line":850,"column":68}}]},"66":{"line":852,"type":"binary-expr","locations":[{"start":{"line":852,"column":32},"end":{"line":852,"column":41}},{"start":{"line":852,"column":45},"end":{"line":852,"column":47}}]},"67":{"line":853,"type":"binary-expr","locations":[{"start":{"line":853,"column":32},"end":{"line":853,"column":39}},{"start":{"line":853,"column":43},"end":{"line":853,"column":45}}]},"68":{"line":854,"type":"binary-expr","locations":[{"start":{"line":854,"column":32},"end":{"line":854,"column":40}},{"start":{"line":854,"column":44},"end":{"line":854,"column":46}}]},"69":{"line":855,"type":"binary-expr","locations":[{"start":{"line":855,"column":32},"end":{"line":855,"column":41}},{"start":{"line":855,"column":45},"end":{"line":855,"column":47}}]},"70":{"line":856,"type":"binary-expr","locations":[{"start":{"line":856,"column":32},"end":{"line":856,"column":40}},{"start":{"line":856,"column":44},"end":{"line":856,"column":53}},{"start":{"line":857,"column":32},"end":{"line":857,"column":39}},{"start":{"line":857,"column":45},"end":{"line":857,"column":58}}]},"71":{"line":879,"type":"binary-expr","locations":[{"start":{"line":879,"column":15},"end":{"line":879,"column":29}},{"start":{"line":879,"column":33},"end":{"line":879,"column":47}},{"start":{"line":879,"column":51},"end":{"line":879,"column":63}}]},"72":{"line":892,"type":"binary-expr","locations":[{"start":{"line":892,"column":15},"end":{"line":892,"column":27}},{"start":{"line":893,"column":15},"end":{"line":893,"column":28}},{"start":{"line":894,"column":15},"end":{"line":894,"column":34}},{"start":{"line":895,"column":16},"end":{"line":895,"column":28}},{"start":{"line":895,"column":33},"end":{"line":895,"column":49}},{"start":{"line":895,"column":53},"end":{"line":895,"column":72}}]}},"code":["(function () { YUI.add('datatable-sort', function (Y, NAME) {","","/**","Adds support for sorting the table data by API methods `table.sort(...)` or","`table.toggleSort(...)` or by clicking on column headers in the rendered UI.","","@module datatable","@submodule datatable-sort","@since 3.5.0","**/","var YLang = Y.Lang,"," isBoolean = YLang.isBoolean,"," isString = YLang.isString,"," isArray = YLang.isArray,"," isObject = YLang.isObject,",""," toArray = Y.Array,"," sub = YLang.sub,",""," dirMap = {"," asc : 1,"," desc: -1,"," \"1\" : 1,"," \"-1\": -1"," };","","","/**","_API docs for this extension are included in the DataTable class._","","This DataTable class extension adds support for sorting the table data by API","methods `table.sort(...)` or `table.toggleSort(...)` or by clicking on column","headers in the rendered UI.","","Sorting by the API is enabled automatically when this module is `use()`d. To","enable UI triggered sorting, set the DataTable's `sortable` attribute to","`true`.","","
","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: true","});","","table.render('#table');","
","","Setting `sortable` to `true` will enable UI sorting for all columns. To enable","UI sorting for certain columns only, set `sortable` to an array of column keys,","or just add `sortable: true` to the respective column configuration objects.","This uses the default setting of `sortable: auto` for the DataTable instance.","","","var table = new Y.DataTable({"," columns: ["," 'id',"," { key: 'username', sortable: true },"," { key: 'name', sortable: true },"," { key: 'birthdate', sortable: true }"," ],"," data: [ ... ]"," // sortable: 'auto' is the default","});","","// OR","var table = new Y.DataTable({"," columns: [ 'id', 'username', 'name', 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","To disable UI sorting for all columns, set `sortable` to `false`. This still","permits sorting via the API methods.","","As new records are inserted into the table's `data` ModelList, they will be inserted at the correct index to preserve the sort order.","","The current sort order is stored in the `sortBy` attribute. Assigning this value at instantiation will automatically sort your data.","","Sorting is done by a simple value comparison using < and > on the field","value. If you need custom sorting, add a sort function in the column's","`sortFn` property. Columns whose content is generated by formatters, but don't","relate to a single `key`, require a `sortFn` to be sortable.","","","function nameSort(a, b, desc) {"," var aa = a.get('lastName') + a.get('firstName'),"," bb = a.get('lastName') + b.get('firstName'),"," order = (aa > bb) ? 1 : -(aa < bb);",""," return desc ? -order : order;","}","","var table = new Y.DataTable({"," columns: [ 'id', 'username', { key: name, sortFn: nameSort }, 'birthdate' ],"," data: [ ... ],"," sortable: [ 'username', 'name', 'birthdate' ]","});","
","","See the user guide for more details.","","@class DataTable.Sortable","@for DataTable","@since 3.5.0","**/","function Sortable() {}","","Sortable.ATTRS = {"," // Which columns in the UI should suggest and respond to sorting interaction"," // pass an empty array if no UI columns should show sortable, but you want the"," // table.sort(...) API"," /**"," Controls which column headers can trigger sorting by user clicks.",""," Acceptable values are:",""," * \"auto\" - (default) looks for `sortable: true` in the column configurations"," * `true` - all columns are enabled"," * `false - no UI sortable is enabled"," * {String[]} - array of key names to give sortable headers",""," @attribute sortable"," @type {String|String[]|Boolean}"," @default \"auto\""," @since 3.5.0"," **/"," sortable: {"," value: 'auto',"," validator: '_validateSortable'"," },",""," /**"," The current sort configuration to maintain in the data.",""," Accepts column `key` strings or objects with a single property, the column"," `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g. `{ username: 'asc'"," }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @attribute sortBy"," @type {String|String[]|Object|Object[]}"," @since 3.5.0"," **/"," sortBy: {"," validator: '_validateSortBy',"," getter: '_getSortBy'"," },",""," /**"," Strings containing language for sorting tooltips.",""," @attribute strings"," @type {Object}"," @default (strings for current lang configured in the YUI instance config)"," @since 3.5.0"," **/"," strings: {}","};","","Y.mix(Sortable.prototype, {",""," /**"," Sort the data in the `data` ModelList and refresh the table with the new"," order.",""," Acceptable values for `fields` are `key` strings or objects with a single"," property, the column `key`, with a value of 1, -1, \"asc\", or \"desc\". E.g."," `{ username: 'asc' }`. String values are assumed to be ascending.",""," Example values would be:",""," * `\"username\"` - sort by the data's `username` field or the `key`"," associated to a column with that `name`."," * `{ username: \"desc\" }` - sort by `username` in descending order."," Alternately, use values \"asc\", 1 (same as \"asc\"), or -1 (same as \"desc\")."," * `[\"lastName\", \"firstName\"]` - ascending sort by `lastName`, but for"," records with the same `lastName`, ascending subsort by `firstName`."," Array can have as many items as you want."," * `[{ lastName: -1 }, \"firstName\"]` - descending sort by `lastName`,"," ascending subsort by `firstName`. Mixed types are ok.",""," @method sort"," @param {String|String[]|Object|Object[]} fields The field(s) to sort by"," @param {Object} [payload] Extra `sort` event payload you want to send along"," @return {DataTable}"," @chainable"," @since 3.5.0"," **/"," sort: function (fields, payload) {"," /**"," Notifies of an impending sort, either from clicking on a column"," header, or from a call to the `sort` or `toggleSort` method.",""," The requested sort is available in the `sortBy` property of the event.",""," The default behavior of this event sets the table's `sortBy` attribute.",""," @event sort"," @param {String|String[]|Object|Object[]} sortBy The requested sort"," @preventable _defSortFn"," **/"," return this.fire('sort', Y.merge((payload || {}), {"," sortBy: fields || this.get('sortBy')"," }));"," },",""," /**"," Template for the node that will wrap the header content for sortable"," columns.",""," @property SORTABLE_HEADER_TEMPLATE"," @type {String}"," @value 'var table = new Y.DataTable({"," columns: [ ... ],"," data: [ ... ],"," sortBy: 'username'"," });",""," table.get('sortBy'); // 'username'"," table.get('sortBy.state'); // { key: 'username', dir: 1 }",""," table.sort(['lastName', { firstName: \"desc\" }]);"," table.get('sortBy'); // ['lastName', { firstName: \"desc\" }]"," table.get('sortBy.state'); // [{ key: \"lastName\", dir: 1 }, { key: \"firstName\", dir: -1 }]","
",""," @method _getSortBy"," @param {String|String[]|Object|Object[]} val The current sortBy value"," @param {String} detail String passed to `get(HERE)`. to parse subattributes"," @protected"," @since 3.5.0"," **/"," _getSortBy: function (val, detail) {"," var state, i, len, col;",""," // \"sortBy.\" is 7 characters. Used to catch"," detail = detail.slice(7);",""," // TODO: table.get('sortBy.asObject')? table.get('sortBy.json')?"," if (detail === 'state') {"," state = [];",""," for (i = 0, len = this._sortBy.length; i < len; ++i) {"," col = this._sortBy[i];"," state.push({"," column: col._id,"," dir: col.sortDir"," });"," }",""," // TODO: Always return an array?"," return { state: (state.length === 1) ? state[0] : state };"," } else {"," return val;"," }"," },",""," /**"," Sets up the initial sort state and instance properties. Publishes events"," and subscribes to attribute change events to maintain internal state.",""," @method initializer"," @protected"," @since 3.5.0"," **/"," initializer: function () {"," var boundParseSortable = Y.bind('_parseSortable', this);",""," this._parseSortable();",""," this._setSortBy();",""," this._initSortFn();",""," this._initSortStrings();",""," this.after({"," 'table:renderHeader': Y.bind('_renderSortable', this),"," dataChange : Y.bind('_afterSortDataChange', this),"," sortByChange : Y.bind('_afterSortByChange', this),"," sortableChange : boundParseSortable,"," columnsChange : boundParseSortable"," });"," this.data.after(this.data.model.NAME + \":change\","," Y.bind('_afterSortRecordChange', this));",""," // TODO: this event needs magic, allowing async remote sorting"," this.publish('sort', {"," defaultFn: Y.bind('_defSortFn', this)"," });"," },",""," /**"," Creates a `_compare` function for the `data` ModelList to allow custom"," sorting by multiple fields.",""," @method _initSortFn"," @protected"," @since 3.5.0"," **/"," _initSortFn: function () {"," var self = this;",""," // TODO: This should be a ModelList extension."," // FIXME: Modifying a component of the host seems a little smelly"," // FIXME: Declaring inline override to leverage closure vs"," // compiling a new function for each column/sortable change or"," // binding the _compare implementation to this, resulting in an"," // extra function hop during sorting. Lesser of three evils?"," this.data._compare = function (a, b) {"," var cmp = 0,"," i, len, col, dir, cs, aa, bb;",""," for (i = 0, len = self._sortBy.length; !cmp && i < len; ++i) {"," col = self._sortBy[i];"," dir = col.sortDir,"," cs = col.caseSensitive;",""," if (col.sortFn) {"," cmp = col.sortFn(a, b, (dir === -1));"," } else {"," // FIXME? Requires columns without sortFns to have key"," aa = a.get(col.key) || '';"," bb = b.get(col.key) || '';"," if (!cs && typeof(aa) === \"string\" && typeof(bb) === \"string\"){// Not case sensitive"," aa = aa.toLowerCase();"," bb = bb.toLowerCase();"," }"," cmp = (aa > bb) ? dir : ((aa < bb) ? -dir : 0);"," }"," }",""," return cmp;"," };",""," if (this._sortBy.length) {"," this.data.comparator = this._sortComparator;",""," // TODO: is this necessary? Should it be elsewhere?"," this.data.sort();"," } else {"," // Leave the _compare method in place to avoid having to set it"," // up again. Mistake?"," delete this.data.comparator;"," }"," },",""," /**"," Add the sort related strings to the `strings` map.",""," @method _initSortStrings"," @protected"," @since 3.5.0"," **/"," _initSortStrings: function () {"," // Not a valueFn because other class extensions will want to add to it"," this.set('strings', Y.mix((this.get('strings') || {}),"," Y.Intl.get('datatable-sort')));"," },",""," /**"," Fires the `sort` event in response to user clicks on sortable column"," headers.",""," @method _onUITriggerSort"," @param {DOMEventFacade} e The `click` event"," @protected"," @since 3.5.0"," **/"," _onUITriggerSort: function (e) {"," var id = e.currentTarget.getAttribute('data-yui3-col-id'),"," column = id && this.getColumn(id),"," sortBy, i, len;",""," if (e.type === 'keydown' && e.keyCode !== 32) {"," return;"," }",""," // In case a headerTemplate injected a link"," // TODO: Is this overreaching?"," e.preventDefault();",""," if (column) {"," if (e.shiftKey) {"," sortBy = this.get('sortBy') || [];",""," for (i = 0, len = sortBy.length; i < len; ++i) {"," if (id === sortBy[i] || Math.abs(sortBy[i][id]) === 1) {"," if (!isObject(sortBy[i])) {"," sortBy[i] = {};"," }",""," sortBy[i][id] = -(column.sortDir||0) || 1;"," break;"," }"," }",""," if (i >= len) {"," sortBy.push(column._id);"," }"," } else {"," sortBy = [{}];",""," sortBy[0][id] = -(column.sortDir||0) || 1;"," }",""," this.fire('sort', {"," originEvent: e,"," sortBy: sortBy"," });"," }"," },",""," /**"," Normalizes the possible input values for the `sortable` attribute, storing"," the results in the `_sortable` property.",""," @method _parseSortable"," @protected"," @since 3.5.0"," **/"," _parseSortable: function () {"," var sortable = this.get('sortable'),"," columns = [],"," i, len, col;",""," if (isArray(sortable)) {"," for (i = 0, len = sortable.length; i < len; ++i) {"," col = sortable[i];",""," // isArray is called because arrays are objects, but will rely"," // on getColumn to nullify them for the subsequent if (col)"," if (!isObject(col, true) || isArray(col)) {"," col = this.getColumn(col);"," }",""," if (col) {"," columns.push(col);"," }"," }"," } else if (sortable) {"," columns = this._displayColumns.slice();",""," if (sortable === 'auto') {"," for (i = columns.length - 1; i >= 0; --i) {"," if (!columns[i].sortable) {"," columns.splice(i, 1);"," }"," }"," }"," }",""," this._sortable = columns;"," },",""," /**"," Initial application of the sortable UI.",""," @method _renderSortable"," @protected"," @since 3.5.0"," **/"," _renderSortable: function () {"," this._uiSetSortable();",""," this._bindSortUI();"," },",""," /**"," Parses the current `sortBy` attribute into a normalized structure for the"," `data` ModelList's `_compare` method. Also updates the column"," configurations' `sortDir` properties.",""," @method _setSortBy"," @protected"," @since 3.5.0"," **/"," _setSortBy: function () {"," var columns = this._displayColumns,"," sortBy = this.get('sortBy') || [],"," sortedClass = ' ' + this.getClassName('sorted'),"," i, len, name, dir, field, column;",""," this._sortBy = [];",""," // Purge current sort state from column configs"," for (i = 0, len = columns.length; i < len; ++i) {"," column = columns[i];",""," delete column.sortDir;",""," if (column.className) {"," // TODO: be more thorough"," column.className = column.className.replace(sortedClass, '');"," }"," }",""," sortBy = toArray(sortBy);",""," for (i = 0, len = sortBy.length; i < len; ++i) {"," name = sortBy[i];"," dir = 1;",""," if (isObject(name)) {"," field = name;"," // Have to use a for-in loop to process sort({ foo: -1 })"," for (name in field) {"," if (field.hasOwnProperty(name)) {"," dir = dirMap[field[name]];"," break;"," }"," }"," }",""," if (name) {"," // Allow sorting of any model field and any column"," // FIXME: this isn't limited to model attributes, but there's no"," // convenient way to get a list of the attributes for a Model"," // subclass *including* the attributes of its superclasses."," column = this.getColumn(name) || { _id: name, key: name };",""," if (column) {"," column.sortDir = dir;",""," if (!column.className) {"," column.className = '';"," }",""," column.className += sortedClass;",""," this._sortBy.push(column);"," }"," }"," }"," },",""," /**"," Array of column configuration objects of those columns that need UI setup"," for user interaction.",""," @property _sortable"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortable: null,",""," /**"," Array of column configuration objects for those columns that are currently"," being used to sort the data. Fake column objects are used for fields that"," are not rendered as columns.",""," @property _sortBy"," @type {Object[]}"," @protected"," @since 3.5.0"," **/"," //_sortBy: null,",""," /**"," Replacement `comparator` for the `data` ModelList that defers sorting logic"," to the `_compare` method. The deferral is accomplished by returning `this`.",""," @method _sortComparator"," @param {Model} item The record being evaluated for sort position"," @return {Model} The record"," @protected"," @since 3.5.0"," **/"," _sortComparator: function (item) {"," // Defer sorting to ModelList's _compare"," return item;"," },",""," /**"," Applies the appropriate classes to the `boundingBox` and column headers to"," indicate sort state and sortability.",""," Also currently wraps the header content of sortable columns in a `