{"version":3,"sources":["kendo.gantt.list.js"],"names":["f","define","$","createPlaceholders","options","i","level","spans","className","push","kendoDomElement","blurActiveElement","activeElement","kendo","_activeElement","nodeName","toLowerCase","blur","window","kendoDom","dom","element","kendoTextElement","text","browser","support","mobileOS","ui","Widget","extend","map","isFunction","oldIE","msie","version","keys","titleFromField","title","start","end","percentComplete","parentId","id","orderId","STRING","NS","CLICK","DOT","SIZE_CALCULATION_TEMPLATE","listStyles","wrapper","header","alt","rtl","editCell","group","gridHeader","gridHeaderWrap","gridContent","gridContentWrap","selected","icon","iconCollapse","iconExpand","iconHidden","iconPlaceHolder","input","link","resizeHandle","resizeHandleInner","dropPositions","dropTop","dropBottom","dropAdd","dropMiddle","dropDenied","dragStatus","dragClue","dragClueText","GanttList","init","fn","call","this","columns","length","dataSource","_columns","_layout","_domTrees","_header","_sortable","_editable","_selectable","_draggable","_resizable","_attachEvents","_adjustHeight","bind","headerCols","tableCols","resizable","find","content","not","each","index","width","outerWidth","eq","last","css","height","parent","outerHeight","destroy","_reorderDraggable","_tableDropArea","_contentDropArea","_columnResizable","touch","timer","clearTimeout","off","levels","name","selectable","editable","that","styles","on","e","model","_modelFromElement","set","get","stopPropagation","headerTree","Tree","contentTree","field","sortable","column","calculateRowHeight","rowHeight","table","format","append","remove","addClass","_rowHeight","domTree","colgroup","_cols","thead","role","_ths","style","minWidth","listWidth","render","_render","tasks","tbody","tableAttr","tabIndex","value","_trs","trigger","attr","ths","data-field","data-title","cols","parseInt","task","rows","_levels","idx","summary","data-uid","uid","data-level","expanded","join","_tds","l","children","_td","formatedValue","label","resourcesField","aria-label","sortableInstance","cell","cells","changeHandler","total","preventDefault","data","ns","kendoColumnSorter","change","ctrlKey","clearSelection","select","selectedClassName","siblings","removeClass","_setDataSource","iconSelector","finishEdit","_closeCell","mousedown","currentTarget","hasClass","update","_startEditHandler","td","_columnFromElement","_editCell","setTimeout","keyCode","ENTER","key","ESC","_editableContainer","kendoTouch","filter","touchstart","doubletap","initialTouch","is","target","editor","modelCopy","_createNewModel","toJSON","fields","validation","DATATYPE","BINDING","FORMAT","required","_editableContent","detach","type","test","_extractFormat","container","appendTo","kendoDateTimePicker","kendoEditable","clearContainer","dateCompare","message","hide","focusable","focus","cancelUpdate","copy","taskInfo","empty","removeData","unbind","Date","getTime","duration","updateInfo","dropTarget","draggedTask","dropAllowed","isRtl","selector","action","clear","allowDrop","taskParent","defineLimits","offsetTop","getOffset","top","beforeLimit","afterLimit","defineAction","coordinate","location","command","sibling","prev","next","status","hint","reorder","kendoDraggable","distance","holdToDrag","ignore","paddingLeft","paddingRight","lineHeight","paddingTop","paddingBottom","cursorOffset","left","dragstart","drag","y","dragend","dragcancel","kendoDropTargetArea","dragenter","toggleClass","dragleave","drop","positionResizeHandle","cellOffset","show","th","position","cellWidth","closest","clientX","scrollLeft","indicatorWidth","columnResizeHandleWidth","offset","kendoResizable","handle","colSelector","contentTable","col","add","startLocation","x","columnWidth","totalWidth","resize","minColumnWidth","delta","resizeend","oldWidth","newWidth","Math","floor","row","getByUid","tr","jQuery","amd","a1","a2","a3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,oBACH,YACA,cACA,oBACA,qBACA,uBACA,kBACDD,IACL,WA44BE,MA53BC,UAAUE,GA2DP,QAASC,GAAmBC,GAA5B,GAGaC,GAAOC,EAFZC,KACAC,EAAYJ,EAAQI,SACxB,KAASH,EAAI,EAAGC,EAAQF,EAAQE,MAAWA,EAAJD,EAAWA,IAC9CE,EAAME,KAAKC,EAAgB,QAAUF,UAAWA,IAEpD,OAAOD,GAEX,QAASI,KACL,GAAIC,GAAgBC,EAAMC,gBACtBF,IAA0D,SAAzCA,EAAcG,SAASC,eACxCd,EAAEU,GAAeK,OAtE5B,GACOJ,GAAQK,OAAOL,MACfM,EAAWN,EAAMO,IACjBV,EAAkBS,EAASE,QAC3BC,EAAmBH,EAASI,KAC5BC,EAAUX,EAAMY,QAAQD,QACxBE,EAAWb,EAAMY,QAAQC,SACzBC,EAAKd,EAAMc,GACXC,EAASD,EAAGC,OACZC,EAAS3B,EAAE2B,OACXC,EAAM5B,EAAE4B,IACRC,EAAa7B,EAAE6B,WACfC,EAAQR,EAAQS,MAA0B,EAAlBT,EAAQU,QAChCC,EAAOtB,EAAMsB,KACbC,GACAC,MAAS,QACTC,MAAS,aACTC,IAAO,WACPC,gBAAmB,SACnBC,SAAY,iBACZC,GAAM,KACNC,QAAW,YAEXC,EAAS,SACTC,EAAK,kBACLC,EAAQ,QACRC,EAAM,IACNC,EAA4B,wGAC5BC,GACAC,QAAS,6BACTC,OAAQ,WACRC,IAAK,QACLC,IAAK,QACLC,SAAU,cACVC,MAAO,mBACPC,WAAY,gBACZC,eAAgB,qBAChBC,YAAa,iBACbC,gBAAiB,iBACjBC,SAAU,mBACVC,KAAM,SACNC,aAAc,eACdC,WAAY,aACZC,WAAY,WACZC,gBAAiB,kBACjBC,MAAO,UACPC,KAAM,SACNC,aAAc,kBACdC,kBAAmB,wBACnBC,cAAe,6DACfC,QAAS,iBACTC,WAAY,oBACZC,QAAS,UACTC,WAAY,oBACZC,WAAY,aACZC,WAAY,gBACZC,SAAU,cACVC,aAAc,eAgBdC,EAAYpD,EAAGoD,UAAYnD,EAAOC,QAClCmD,KAAM,SAAU3D,EAASjB,GACrBwB,EAAOqD,GAAGD,KAAKE,KAAKC,KAAM9D,EAASjB,GACC,IAAhC+E,KAAK/E,QAAQgF,QAAQC,QACrBF,KAAK/E,QAAQgF,QAAQ3E,KAAK,SAE9B0E,KAAKG,WAAaH,KAAK/E,QAAQkF,WAC/BH,KAAKI,WACLJ,KAAKK,UACLL,KAAKM,YACLN,KAAKO,UACLP,KAAKQ,YACLR,KAAKS,YACLT,KAAKU,cACLV,KAAKW,aACLX,KAAKY,aACLZ,KAAKa,gBACLb,KAAKc,gBACLd,KAAKe,KAAK,SAAU,WAAA,GACZC,GACAC,CACAjB,MAAK/E,QAAQiG,YACbF,EAAahB,KAAKhC,OAAOmD,KAAK,OAC9BF,EAAYjB,KAAKoB,QAAQD,KAAK,OAC9BnB,KAAKhC,OAAOmD,KAAK,MAAME,IAAI,SAASC,KAAK,SAAUC,GAC/C,GAAIC,GAAQzG,EAAEiF,MAAMyB,YACpBT,GAAWU,GAAGH,GAAOC,MAAMA,GAC3BP,EAAUS,GAAGH,GAAOC,MAAMA,KAE9BR,EAAWW,OAAOC,IAAI,QAAS,QAC/BX,EAAUU,OAAOC,IAAI,QAAS,WAEnC,IAEPd,cAAe,WACXd,KAAKoB,QAAQS,OAAO7B,KAAK9D,QAAQ2F,SAAW7B,KAAKhC,OAAO8D,SAASC,gBAErEC,QAAS,WACLvF,EAAOqD,GAAGkC,QAAQjC,KAAKC,MACnBA,KAAKiC,mBACLjC,KAAKiC,kBAAkBD,UAEvBhC,KAAKkC,gBACLlC,KAAKkC,eAAeF,UAEpBhC,KAAKmC,kBACLnC,KAAKmC,iBAAiBH,UAEtBhC,KAAKoC,kBACLpC,KAAKoC,iBAAiBJ,UAEtBhC,KAAKqC,OACLrC,KAAKqC,MAAML,UAEXhC,KAAKsC,OACLC,aAAavC,KAAKsC,OAEtBtC,KAAKoB,QAAQoB,IAAI9E,GACjBsC,KAAKhC,OAAOmD,KAAK,SAASqB,IAAI9E,GAC9BsC,KAAKhC,OAAOmD,KAAKvD,EAAMgC,EAAUZ,MAAMwD,IAAI9E,GAC3CsC,KAAKhC,OAAS,KACdgC,KAAKoB,QAAU,KACfpB,KAAKyC,OAAS,KACd/G,EAAMsG,QAAQhC,KAAK9D,UAEvBjB,SACIyH,KAAM,YACNC,YAAY,EACZC,UAAU,EACV1B,WAAW,GAEfL,cAAe,WAAA,GACPgC,GAAO7C,KACPlC,EAAa8B,EAAUkD,MAC3BD,GAAKzB,QAAQ2B,GAAGpF,EAAQD,EAAI,aAAeI,EAAWY,KAAO,SAAWZ,EAAWe,WAAa,IAAK,SAAUmE,GAAV,GAC7F9G,GAAUnB,EAAEiF,MACZiD,EAAQJ,EAAKK,kBAAkBhH,EACnC+G,GAAME,IAAI,YAAaF,EAAMG,IAAI,aACjCJ,EAAEK,qBAGV/C,UAAW,WACPN,KAAKsD,WAAa,GAAItH,GAASuH,KAAKvD,KAAKhC,OAAO,IAChDgC,KAAKwD,YAAc,GAAIxH,GAASuH,KAAKvD,KAAKoB,QAAQ,KAEtDhB,SAAU,WAAA,GACFH,GAAUD,KAAK/E,QAAQgF,QACvBgD,EAAQ,WACRjD,KAAKyD,MAAQ,GACbzD,KAAK9C,MAAQ,GACb8C,KAAK4C,UAAW,EAChB5C,KAAK0D,UAAW,EAEpB1D,MAAKC,QAAUtD,EAAIsD,EAAS,SAAU0D,GAKlC,MAJAA,SAAgBA,KAAWlG,GACvBgG,MAAOE,EACPzG,MAAOD,EAAe0G,IACtBA,EACGjH,EAAO,GAAIuG,GAASU,MAGnCtD,QAAS,WAAA,GACDwC,GAAO7C,KACP/E,EAAU+E,KAAK/E,QACfiB,EAAU8D,KAAK9D,QACf4B,EAAa8B,EAAUkD,OACvBc,EAAqB,WAAA,GAGjB/B,GAFAgC,QAAmB5I,GAAQ4I,YAAcpG,EAASxC,EAAQ4I,UAAY5I,EAAQ4I,UAAY,KAC1FC,EAAQ/I,EAAEW,EAAMqI,OAAOlG,EAA2BgG,GAKtD,OAHAhB,GAAKzB,QAAQ4C,OAAOF,GACpBjC,EAASiC,EAAM3C,KAAK,MAAMY,cAC1B+B,EAAMG,SACCpC,EAEX3F,GAAQgI,SAASpG,EAAWC,SAASiG,OAAO,eAAkBlG,EAAWO,WAAa,iBAAqBP,EAAWQ,eAAiB,kBAAmB0F,OAAO,eAAkBlG,EAAWU,gBAAkB,YAChNwB,KAAKhC,OAAS9B,EAAQiF,KAAKvD,EAAME,EAAWQ,gBAC5C0B,KAAKoB,QAAUlF,EAAQiF,KAAKvD,EAAME,EAAWS,aACzCtD,EAAQ4I,YACR7D,KAAKmE,WAAaP,MAG1BrD,QAAS,WAAA,GACD6D,GAAUpE,KAAKsD,WACfe,EAGO9I,EAAgB,WAAY,KAAMyE,KAAKsE,SAF9CC,EAGIhJ,EAAgB,SAAWiJ,KAAQ,aAAejJ,EAAgB,MAAQiJ,KAAQ,OAASxE,KAAKyE,UAFpGX,EAGIvI,EAAgB,SACpBmJ,OAAWC,SAAY3E,KAAK/E,QAAQ2J,UAAY,MAChDJ,KAAQ,SAERH,EACAE,GAEJH,GAAQS,QAAQf,KAEpBgB,QAAS,SAAUC,GAAV,GACDV,GACAW,EACAlB,EACAmB,GACAP,OAAWC,SAAY3E,KAAK/E,QAAQ2J,UAAY,MAChDM,SAAY,EACZV,KAAQ,WAERxE,MAAKmE,aACLc,EAAUP,MAAM7C,OAASkD,EAAM7E,OAASF,KAAKmE,WAAa,MAE9DnE,KAAKyC,SACGgB,MAAO,KACP0B,MAAO,IAEfd,EAAW9I,EAAgB,WAAY,KAAMyE,KAAKsE,SAClDU,EAAQzJ,EAAgB,SAAWiJ,KAAQ,YAAcxE,KAAKoF,KAAKL,IACnEjB,EAAQvI,EAAgB,QAAS0J,GAC7BZ,EACAW,IAEJhF,KAAKwD,YAAYqB,QAAQf,IACzB9D,KAAKqF,QAAQ,WAEjBZ,KAAM,WAAA,GAEEd,GACA2B,EAEKpK,EAAOgF,EAJZD,EAAUD,KAAKC,QAGfsF,IACJ,KAASrK,EAAI,EAAGgF,EAASD,EAAQC,OAAYA,EAAJhF,EAAYA,IACjDyI,EAAS1D,EAAQ/E,GACjBoK,GACIE,aAAc7B,EAAOF,MACrBgC,aAAc9B,EAAOzG,MACrB7B,UAAWuE,EAAUkD,OAAO9E,OAC5BwG,KAAQ,gBAEZe,EAAIjK,KAAKC,EAAgB,KAAM+J,GAAOnJ,EAAiBwH,EAAOzG,SAQlE,OANI8C,MAAK/E,QAAQiG,WACbqE,EAAIjK,KAAKC,EAAgB,MACrBF,UAAWuE,EAAUkD,OAAO9E,OAC5BwG,KAAQ,kBAGTe,GAEXjB,MAAO,WAAA,GAECX,GACAe,EACAlD,EAEKtG,EAAOgF,EALZD,EAAUD,KAAKC,QAIfyF,IACJ,KAASxK,EAAI,EAAGgF,EAASD,EAAQC,OAAYA,EAAJhF,EAAYA,IACjDyI,EAAS1D,EAAQ/E,GACjBsG,EAAQmC,EAAOnC,MAEXkD,EADAlD,GAAiC,IAAxBmE,SAASnE,EAAO,KACfkD,OAASlD,YAAcA,KAAU/D,EAAS+D,EAAQA,EAAQ,OAE5D,KAEZkE,EAAKpK,KAAKC,EAAgB,MAAOmJ,MAKrC,OAHI1E,MAAK/E,QAAQiG,WACbwE,EAAKpK,KAAKC,EAAgB,OAASmJ,OAASlD,MAAO,UAEhDkE,GAEXN,KAAM,SAAUL,GAAV,GACEa,GAEAN,EAEAnK,EAEKD,EAAOgF,EALZ2F,KAEAxK,KAEAyC,EAAa8B,EAAUkD,MAC3B,KAAS5H,EAAI,EAAGgF,EAAS6E,EAAM7E,OAAYA,EAAJhF,EAAYA,IAC/C0K,EAAOb,EAAM7J,GACbC,EAAQ6E,KAAK8F,SACTC,IAAKH,EAAKtI,SACVC,GAAIqI,EAAKrI,GACTyI,QAASJ,EAAKI,UAElBV,GACIW,WAAYL,EAAKM,IACjBC,aAAchL,EACdqJ,KAAQ,OAERoB,EAAKI,UACLV,EAAK,iBAAmBM,EAAKQ,UAE7BlL,EAAI,IAAM,GACVG,EAAUC,KAAKwC,EAAWG,KAE1B2H,EAAKI,SACL3K,EAAUC,KAAKwC,EAAWM,OAE1B/C,EAAU6E,SACVoF,EAAKjK,UAAYA,EAAUgL,KAAK,MAEpCR,EAAKvK,KAAK0E,KAAKsG,MACXV,KAAMA,EACNN,KAAMA,EACNnK,MAAOA,KAEXE,IAEJ,OAAOwK,IAEXS,KAAM,SAAUrL,GAAV,GAGE0I,GACKzI,EAAOqL,EAHZC,KACAvG,EAAUD,KAAKC,OAEnB,KAAS/E,EAAI,EAAGqL,EAAItG,EAAQC,OAAYqG,EAAJrL,EAAOA,IACvCyI,EAAS1D,EAAQ/E,GACjBsL,EAASlL,KAAK0E,KAAKyG,KACfb,KAAM3K,EAAQ2K,KACdjC,OAAQA,EACRxI,MAAOF,EAAQE,QAMvB,OAHI6E,MAAK/E,QAAQiG,WACbsF,EAASlL,KAAKC,EAAgB,MAAQiJ,KAAQ,cAE3CjJ,EAAgB,KAAMN,EAAQqK,KAAMkB,IAE/CC,IAAK,SAAUxL,GAAV,GAOGyL,GACAC,EAISzL,EAXTsL,KACAI,EAAiB5G,KAAK/E,QAAQ2L,eAC9B9I,EAAa8B,EAAUkD,OACvB8C,EAAO3K,EAAQ2K,KACfjC,EAAS1I,EAAQ0I,OACjBwB,EAAQS,EAAKxC,IAAIO,EAAOF,MAG5B,IAAIE,EAAOF,OAASmD,EAAgB,CAGhC,IAFAzB,EAAQA,MACRuB,KACSxL,EAAI,EAAOiK,EAAMjF,OAAVhF,EAAkBA,IAC9BwL,EAAcpL,KAAKI,EAAMqI,OAAO,YAAaoB,EAAMjK,GAAGkI,IAAI,QAAS+B,EAAMjK,GAAGkI,IAAI,kBAEpFsD,GAAgBA,EAAcL,KAAK,UAEnCK,GAAgB/C,EAAOI,OAASrI,EAAMqI,OAAOJ,EAAOI,OAAQoB,GAASA,CAWzE,OATqB,UAAjBxB,EAAOF,QACP+C,EAAWxL,GACPG,MAAOF,EAAQE,MACfE,UAAWyC,EAAWgB,kBAE1B0H,EAASlL,KAAKC,EAAgB,QAAUF,UAAWyC,EAAWY,KAAO,KAAOkH,EAAKI,QAAUJ,EAAKQ,SAAWtI,EAAWa,aAAeb,EAAWc,WAAad,EAAWe,eACxK8H,EAAQjL,EAAMqI,OAAO,cAAe2C,EAAed,EAAKvI,kBAE5DmJ,EAASlL,KAAKC,EAAgB,QAAUsL,aAAcF,IAAUxK,EAAiBuK,MAC1EnL,EAAgB,MAAQiJ,KAAQ,YAAcgC,IAEzDV,QAAS,SAAU7K,GAAV,GAEDE,GAIKD,EAAOgF,EALZuC,EAASzC,KAAKyC,OAEduD,EAAU/K,EAAQ+K,QAClBD,EAAM9K,EAAQ8K,IACdxI,EAAKtC,EAAQsC,EACjB,KAASrC,EAAI,EAAGgF,EAASuC,EAAOvC,OAAYA,EAAJhF,EAAYA,IAEhD,GADAC,EAAQsH,EAAOvH,GACXC,EAAMsI,OAASsC,EAOf,MANIC,IACAvD,EAAOnH,MACHmI,MAAOlG,EACP4H,MAAOhK,EAAMgK,MAAQ,IAGtBhK,EAAMgK,OAIzB3E,UAAW,WAAA,GAIHmD,GACAmD,EAEAC,EAMKhB,EAAS7F,EAZd2C,EAAO7C,KACP4G,EAAiB5G,KAAK/E,QAAQ2L,eAC9B3G,EAAUD,KAAKC,QAGf+G,EAAQhH,KAAKhC,OAAOmD,KAAK,MAAQzF,EAAM4J,KAAK,SAAW,KAEvD2B,EAAgB,SAAUjE,IACM,IAA5BH,EAAK1C,WAAW+G,SAAiBrE,EAAKD,UAAYC,EAAKD,SAASyC,QAAQ,cACxErC,EAAEmE,iBAGV,KAASpB,EAAM,EAAG7F,EAAS8G,EAAM9G,OAAcA,EAAN6F,EAAcA,IACnDpC,EAAS1D,EAAQ8F,GACbpC,EAAOD,UAAYC,EAAOF,QAAUmD,IACpCG,EAAOC,EAAMtF,GAAGqE,GAChBe,EAAmBC,EAAKK,KAAK,qBACzBN,GACAA,EAAiB9E,UAErB+E,EAAKzB,KAAK,QAAU5J,EAAM2L,GAAK,QAAS1D,EAAOF,OAAO6D,mBAClDnH,WAAYH,KAAKG,WACjBoH,OAAQN,IAIpBD,GAAQ,MAEZtG,YAAa,WAAA,GACLmC,GAAO7C,KACP2C,EAAa3C,KAAK/E,QAAQ0H,UAC1BA,IACA3C,KAAKoB,QAAQ2B,GAAGpF,EAAQD,EAAI,KAAM,SAAUsF,GACxC,GAAI9G,GAAUnB,EAAEiF,KACZ6C,GAAKD,UACLC,EAAKD,SAASyC,QAAQ,YAErBrC,EAAEwE,QAGH3E,EAAK4E,iBAFL5E,EAAK6E,OAAOxL,MAO5BwL,OAAQ,SAAUvC,GAAV,GACAjJ,GAAU8D,KAAKoB,QAAQD,KAAKgE,GAC5BwC,EAAoB/H,EAAUkD,OAAOrE,QACzC,OAAIvC,GAAQgE,QACRhE,EAAQ0L,SAAShK,EAAM+J,GAAmBE,YAAYF,GAAmBrC,KAAK,iBAAiB,GAAOlI,MAAM8G,SAASyD,GAAmBrC,KAAK,iBAAiB,OAC9JtF,MAAKqF,QAAQ,WAGVrF,KAAKoB,QAAQD,KAAKvD,EAAM+J,IAEnCF,eAAgB,WACZ,GAAIhJ,GAAWuB,KAAK0H,QAChBjJ,GAASyB,SACTzB,EAASoJ,YAAYjI,EAAUkD,OAAOrE,UACtCuB,KAAKqF,QAAQ,YAGrByC,eAAgB,SAAU3H,GACtBH,KAAKG,WAAaA,EAClBH,KAAKQ,aAETC,UAAW,WAAA,GACHoC,GAAO7C,KACP4C,EAAW5C,KAAK/E,QAAQ2H,SACxB9E,EAAa8B,EAAUkD,OACvBiF,EAAe,QAAUjK,EAAWY,KAAO,QAAUZ,EAAWe,WAAa,IAC7EmJ,EAAa,WACb,GAAIpF,GAAWC,EAAKD,QAChBA,KACIA,EAASxF,MACTyF,EAAKoF,aAELrF,EAASyC,QAAQ,cAIzB6C,EAAY,SAAUlF,GACtB,GAAImF,GAAgBpN,EAAEiI,EAAEmF,cACnBA,GAAcC,SAAStK,EAAWK,WACnC3C,IAGHoH,IAAYA,EAASyF,UAAW,IAGrCrI,KAAKsI,kBAAoB,SAAUtF,GAAV,GACjBuF,GAAKvF,EAAEmF,cAAgBpN,EAAEiI,EAAEmF,eAAiBnF,EAC5CW,EAASd,EAAK2F,mBAAmBD,EACjC1F,GAAKD,UAGLe,GAAUA,EAAOf,UACjBC,EAAK4F,WACD1B,KAAMwB,EACN5E,OAAQA,KAIpBd,EAAKzB,QAAQ2B,GAAG,UAAYrF,EAAI,WAC5B6E,aAAaM,EAAKP,OAClBO,EAAKP,MAAQ,OACdS,GAAG,WAAarF,EAAI,WACnBmF,EAAKP,MAAQoG,WAAWV,EAAY,KACrCjF,GAAG,UAAYrF,EAAI,SAAUsF,GACxBA,EAAE2F,UAAY3L,EAAK4L,OACnB5F,EAAEmE,mBAEPpE,GAAG,QAAUrF,EAAI,SAAUsF,GAAV,GAEZ+D,GACA9D,EAFA4F,EAAM7F,EAAE2F,OAGZ,QAAQE,GACR,IAAK7L,GAAK4L,MACNpN,IACAwM,GACA,MACJ,KAAKhL,GAAK8L,IACFjG,EAAKD,WACLmE,EAAOlE,EAAKkG,mBACZ9F,EAAQJ,EAAKK,kBAAkB6D,GAC1BlE,EAAKwC,QAAQ,UACVpC,MAAOA,EACP8D,KAAMA,KAEVlE,EAAKoF,YAAW,OAM3B1L,EASDsG,EAAKR,MAAQQ,EAAKzB,QAAQ4H,YACtBC,OAAQ,KACRC,WAAY,SAAUlG,GAClBkF,EAAUlF,EAAEX,QAEhB8G,UAAW,SAAUnG,GACZjI,EAAEiI,EAAEX,MAAM+G,cAAcC,GAAGtB,IAC5BlF,EAAKyF,kBAAkBtF,EAAEX,UAGlC+E,KAAK,cAlBRvE,EAAKzB,QAAQ2B,GAAG,YAAcrF,EAAI,KAAM,SAAUsF,GAC9CkF,EAAUlF,KACXD,GAAG,WAAarF,EAAI,KAAM,SAAUsF,GAC9BjI,EAAEiI,EAAEsG,QAAQD,GAAGtB,IAChBlF,EAAKyF,kBAAkBtF,OAiBvCyF,UAAW,SAAUxN,GAAV,GAgBHsO,GAfA3C,EAAiB5G,KAAK/E,QAAQ2L,eAC9B9I,EAAa8B,EAAUkD,OACvBiE,EAAO9L,EAAQ8L,KACfpD,EAAS1I,EAAQ0I,OACjBV,EAAQjD,KAAKkD,kBAAkB6D,GAC/ByC,EAAYxJ,KAAKG,WAAWsJ,gBAAgBxG,EAAMyG,UAClDjG,EAAQ+F,EAAUG,OAAOhG,EAAOF,QAAU+F,EAAU7F,EAAOF,OAC3DmG,EAAanG,EAAMmG,WACnBC,EAAWnO,EAAM4J,KAAK,QACtBwE,EAAUpO,EAAM4J,KAAK,QACrByE,EAASrO,EAAM4J,KAAK,UACpBA,GACA5C,KAAQiB,EAAOF,MACfuG,SAAYvG,EAAMmG,WAAanG,EAAMmG,WAAWI,YAAa,GAAO,EAGxE,OAAIrG,GAAOF,QAAUmD,MACjBjD,GAAO4F,OAAOxC,EAAMyC,IAGxBxJ,KAAKiK,iBAAmBlD,EAAKP,WAAW0D,SACxClK,KAAK+I,mBAAqBhC,EAC1BA,EAAKK,KAAK,YAAaoC,GACH,SAAf/F,EAAM0G,MAAqC,SAAlBpP,EAAEoP,KAAK1G,IAAwBE,EAAOI,SAAU,cAAcqG,KAAKzG,EAAOI,UACpGuB,EAAKwE,GAAW,SAAWnG,EAAOF,MAClC6B,EAAKuE,GAAY,OACblG,EAAOI,SACPuB,EAAKyE,GAAUrO,EAAM2O,eAAe1G,EAAOI,SAE/CwF,EAAS,SAAUe,EAAWrP,GAC1BF,EAAE,wBAAwBuK,KAAKA,GAAMiF,SAASD,GAAWE,qBAAsBzG,OAAQ9I,EAAQ8I,WAGvG/D,KAAK4C,SAAWmE,EAAK7C,SAASpG,EAAWK,UAAUsM,eAC/Cd,QACIlG,MAAOE,EAAOF,MACdM,OAAQJ,EAAOI,OACfwF,OAAQ5F,EAAO4F,QAAUA,GAE7BtG,MAAOuG,EACPkB,gBAAgB,IACjBtD,KAAK,iBACJwC,GAAcA,EAAWe,aAAe/N,EAAWgN,EAAWe,cAAgBf,EAAWgB,UACzF7P,EAAE,SAAWW,EAAM4J,KAAK,OAAS,KAAO3B,EAAOF,MAAQ,6BAA6BoH,OAAON,SAASxD,GACpGA,EAAK5F,KAAK,SAAWwC,EAAOF,MAAQ,KAAK6B,KAAK5J,EAAM4J,KAAK,mBAAoBsE,EAAWgB,UAE5F5K,KAAK4C,SAAS7B,KAAK,WAAY,SAAUiC,GACrC,GAAI8H,GAAY9K,KAAK9D,QAAQiF,KAAK,yBAAyB4J,OACvDlO,IACAiO,EAAUC,QAEd/H,EAAEmE,wBAEFnH,KAAKqF,QAAQ,QACTpC,MAAOA,EACP8D,KAAMA,KAEV/G,KAAKiI,YAAW,MAGxBA,WAAY,SAAU+C,GAAV,GACJlN,GAAa8B,EAAUkD,OACvBiE,EAAO/G,KAAK+I,mBACZ9F,EAAQjD,KAAKkD,kBAAkB6D,GAC/BpD,EAAS3D,KAAKwI,mBAAmBzB,GACjCtD,EAAQE,EAAOF,MACfwH,EAAOlE,EAAKK,KAAK,aACjB8D,IACJA,GAASzH,GAASwH,EAAK7H,IAAIK,GAC3BsD,EAAKoE,QAAQC,WAAW,aAAavD,YAAY/J,EAAWK,UAAU6F,OAAOhE,KAAKiK,kBAClFjK,KAAK4C,SAASyI,SACdrL,KAAK4C,SAASZ,UACdhC,KAAK4C,SAAW,KAChB5C,KAAK+I,mBAAqB,KAC1B/I,KAAKiK,iBAAmB,KACnBe,IACa,UAAVvH,IACAyH,EAAS9N,IAAM,GAAIkO,MAAKJ,EAAS/N,MAAMoO,UAAYtI,EAAMuI,aAE7DxL,KAAKqF,QAAQ,UACTO,KAAM3C,EACNwI,WAAYP,MAIxBvK,WAAY,WAAA,GAIJ+K,GAHA7I,EAAO7C,KACP2L,EAAc,KACdC,GAAc,EAEd9N,EAAa8B,EAAUkD,OACvB+I,EAAQnQ,EAAMY,QAAQuP,MAAM7L,KAAK9D,SACjC4P,EAAW,MAAQpQ,EAAM4J,KAAK,SAAW,aACzCyG,KACAnJ,EAAW5C,KAAK/E,QAAQ2H,SACxBoJ,EAAQ,WACRL,EAAc,KACdD,EAAa,KACbE,GAAc,EACdG,MAEAE,EAAY,SAAUrG,GAEtB,IADA,GAAI9D,GAAS8D,EACN9D,GAAQ,CACX,GAAI6J,EAAYvI,IAAI,QAAUtB,EAAOsB,IAAI,MAAO,CAC5CwI,GAAc,CACd,OAEJ9J,EAASe,EAAK1C,WAAW+L,WAAWpK,KAGxCqK,EAAe,WAAA,GACXtK,GAAS9G,EAAE2Q,GAAY7J,SACvBuK,EAAY1Q,EAAM2Q,UAAUX,GAAYY,GAC5C5P,GAAOgP,GACHa,YAAaH,EAAqB,IAATvK,EACzB2K,WAAYJ,EAAqB,IAATvK,KAG5B4K,EAAe,SAAUC,GAAV,GAIXC,GACAtR,EACAuR,EACAzR,EACA0R,CAPCnB,KAGDiB,EAAWD,EAAWC,SACtBtR,EAAYyC,EAAWwB,QACvBsN,EAAU,MACVzR,EAAQwK,SAAS+F,EAAWpG,KAAK5J,EAAM4J,KAAK,UAAW,IAE3CoG,EAAWa,aAAvBI,GACAE,EAAUnB,EAAWoB,OACrBzR,EAAYyC,EAAWsB,QACvBwN,EAAU,iBACHD,GAAYjB,EAAWc,aAC9BK,EAAUnB,EAAWqB,OACrB1R,EAAYyC,EAAWuB,WACvBuN,EAAU,gBAEVC,GAAWlH,SAASkH,EAAQvH,KAAK5J,EAAM4J,KAAK,UAAW,MAAQnK,IAC/DE,EAAYyC,EAAWyB,YAE3BwM,EAAO1Q,UAAYA,EACnB0Q,EAAOa,QAAUA,IAEjBI,EAAS,WACT,MAAOnK,GAAKZ,kBAAkBgL,KAAKzG,SAAS5I,EAAME,EAAW2B,YAAYoI,YAAY/J,EAAWqB,eAE/FyD,IAAYA,EAASsK,WAAY,GAAStK,EAASyF,UAAW,IAGnErI,KAAKiC,kBAAoBjC,KAAKoB,QAAQ+L,gBAClCC,SAAU,GACVC,WAAY9Q,EACZ6B,MAAO,YACP6K,OAAQ,eACRqE,OAAQ1P,EAAME,EAAWiB,MACzBkO,KAAM,SAAU3D,GACZ,MAAOvO,GAAE,eAAiB+C,EAAWE,OAAS,IAAMF,EAAW4B,SAAW,OAAOkC,KAC7EJ,MAAO,IACP+L,YAAajE,EAAO1H,IAAI,eACxB4L,aAAclE,EAAO1H,IAAI,gBACzB6L,WAAYnE,EAAOzH,SAAW,KAC9B6L,WAAYpE,EAAO1H,IAAI,cACvB+L,cAAerE,EAAO1H,IAAI,mBAC3BoC,OAAO,gBAAkBlG,EAAWY,KAAO,IAAMZ,EAAW2B,WAAa,oBAAsB3B,EAAW6B,aAAe,QAEhIiO,cACItB,IAAK,IACLuB,KAAM,GAEVvD,UAAWtK,KAAKoB,QAChB0M,UAAa,SAAU9K,GACnB,GAAIJ,GAAWC,EAAKD,QACpB,OAAIA,IAAYA,EAASsK,WAAY,GAAStK,EAASyC,QAAQ,gBAC3DrC,GAAEmE,kBAGNwE,EAAc9I,EAAKK,kBAAkBF,EAAEmF,eACvCnI,KAAKiN,KAAKzG,SAAS5I,EAAME,EAAW6B,cAAcvD,KAAKuP,EAAYvI,IAAI,eACnEyI,GACA7L,KAAKiN,KAAK/I,SAASpG,EAAWI,QAGtC6P,KAAQ,SAAU/K,GACV4I,IACAa,EAAazJ,EAAEgL,GACfhB,IAAS9I,SAAS6H,EAAO1Q,aAGjC4S,QAAW,WACPjC,KAEJkC,WAAc,WACVlC,OAEL5E,KAAK,kBACRpH,KAAKkC,eAAiBlC,KAAKoB,QAAQ+M,qBAC/Bf,SAAU,EACVhP,MAAO,YACP6K,OAAQ,eACRmF,UAAa,SAAUpL,GACnB0I,EAAa1I,EAAE0I,WACfO,EAAUpJ,EAAKK,kBAAkBwI,IACjCS,IACAa,IAASqB,YAAYvQ,EAAW0B,YAAaoM,IAEjD0C,UAAa,WACT1C,GAAc,EACdoB,KAEJuB,KAAQ,WAAA,GACAjF,GAASzG,EAAKK,kBAAkBwI,GAChClO,EAAU8L,EAAO9L,QACjB0N,GAAa5N,SAAUgM,EAAOhM,SAClC,IAAIsO,EAAa,CACb,OAAQG,EAAOa,SACf,IAAK,MACD1B,EAAS5N,SAAWgM,EAAO/L,EAC3B,MACJ,KAAK,gBAEG2N,EAAS1N,QADT8L,EAAOhM,WAAaqO,EAAYrO,UAAYgM,EAAO9L,QAAUmO,EAAYnO,QACtDA,EAAU,EAEVA,CAEvB,MACJ,KAAK,eAEG0N,EAAS1N,QADT8L,EAAOhM,WAAaqO,EAAYrO,UAAYgM,EAAO9L,QAAUmO,EAAYnO,QACtDA,EAEAA,EAAU,EAIrCqF,EAAKwC,QAAQ,UACTO,KAAM+F,EACNF,WAAYP,QAIzB9D,KAAK,uBACRpH,KAAKmC,iBAAmBnC,KAAK9D,QAAQiS,qBACjCf,SAAU,EACVhP,MAAO,YACP6K,OAAQrL,EAAME,EAAWS,YACzBgQ,KAAQ,WAAA,GACAjF,GAASzG,EAAKK,kBAAkBL,EAAKzB,QAAQD,KAAK2K,IAClDtO,EAAU8L,EAAO9L,QACjB0N,GACA5N,SAAU,KACVE,QAAkC,OAAzBmO,EAAYrO,SAAoBE,EAAU,EAAIA,EAE3DqF,GAAKwC,QAAQ,UACTO,KAAM+F,EACNF,WAAYP,OAGrB9D,KAAK,yBAEZxG,WAAY,WAAA,GACJiC,GAAO7C,KACPlC,EAAa8B,EAAUkD,OACvB0L,EAAuB,SAAUxL,GAAV,GAanByL,GACAC,EAbAC,EAAK5T,EAAEiI,EAAEmF,eACTlJ,EAAe4D,EAAK5D,aACpB2P,EAAWD,EAAGC,WACdf,EAAOe,EAASf,KAChBgB,EAAYF,EAAGlN,aACf6I,EAAYqE,EAAGG,QAAQ,OACvBC,EAAU/L,EAAE+L,QAAUhU,EAAEgB,QAAQiT,aAChCC,EAAiBpM,EAAK5H,QAAQiU,uBAOlC,OANArB,IAAQvD,EAAU0E,aACb/P,IACDA,EAAe4D,EAAK5D,aAAelE,EAAE,eAAiB+C,EAAWmB,aAAe,iBAAmBnB,EAAWoB,kBAAoB,eAElIuP,EAAaE,EAAGQ,SAAStB,KAAOgB,GAChCH,EAAOK,EAAUN,EAAaQ,GAA4BR,EAAaQ,EAAvBF,IAKpDzE,EAAUtG,OAAO/E,OACjBA,GAAayP,OAAO9M,KAChB0K,IAAKsC,EAAStC,IACduB,KAAMA,EAAOgB,EAAYI,EAAiB,EAC1CpN,OAAQ8M,EAAG5M,cACXP,MAAwB,EAAjByN,IACR7H,KAAK,KAAMuH,QATV1P,GAAa4L,OAWhB7K,MAAK/E,QAAQiG,YAGdlB,KAAKoC,kBACLpC,KAAKoC,iBAAiBJ,UAE1BhC,KAAKhC,OAAOmD,KAAK,SAAS4B,GAAG,YAAcrF,EAAI,KAAM8Q,GACrDxO,KAAKoC,iBAAmBpC,KAAKhC,OAAOoR,gBAChCC,OAAQzR,EAAME,EAAWmB,aACzB9B,MAAO,SAAU6F,GAAV,GACC2L,GAAK5T,EAAEiI,EAAEmF,eAAef,KAAK,MAC7BkI,EAAc,UAAYX,EAAGpN,QAAU,IACvCvD,EAAS6E,EAAK7E,OAAOmD,KAAK,SAC1BoO,EAAe1M,EAAKzB,QAAQD,KAAK,QACrC0B,GAAK3G,QAAQgI,SAAS,0BACtBlE,KAAKwP,IAAMD,EAAa/I,SAAS,YAAYrF,KAAKmO,GAAaG,IAAIzR,EAAOmD,KAAKmO,IAC/EtP,KAAK2O,GAAKA,EACV3O,KAAK0P,cAAgB1M,EAAE2M,EAAEhD,SACzB3M,KAAK4P,YAAcjB,EAAGlN,aACtBzB,KAAK8D,MAAQ9F,EAAOyR,IAAIF,GACxBvP,KAAK6P,WAAa7P,KAAK8D,MAAMtC,QAAUxD,EAAOmD,KAAK,WAAWM,cAElEqO,OAAQ,SAAU9M,GAAV,GACA+M,GAAiB,GACjBC,EAAQhN,EAAE2M,EAAEhD,SAAW3M,KAAK0P,aACDK,GAA3B/P,KAAK4P,YAAcI,IACnBA,EAAQD,EAAiB/P,KAAK4P,aAElC5P,KAAK8D,MAAMlC,KAAM+C,SAAY3E,KAAK6P,WAAaG,IAC/ChQ,KAAKwP,IAAIhO,MAAMxB,KAAK4P,YAAcI,IAEtCC,UAAW,WAAA,GAEHC,GACAC,EACAxM,CAHJd,GAAK3G,QAAQ2L,YAAY,0BACrBqI,EAAWE,KAAKC,MAAMrQ,KAAK4P,aAC3BO,EAAWC,KAAKC,MAAMrQ,KAAK2O,GAAGlN,cAC9BkC,EAASd,EAAK5C,QAAQD,KAAK2O,GAAGpN,SAClCsB,EAAKwC,QAAQ,gBACT1B,OAAQA,EACRuM,SAAUA,EACVC,SAAUA,IAEdnQ,KAAK8D,MAAQ9D,KAAKwP,IAAMxP,KAAK2O,GAAK,QAEvCvH,KAAK,oBAEZlE,kBAAmB,SAAUhH,GAAV,GACXoU,GAAMpU,EAAQ4S,QAAQ,MACtB7L,EAAQjD,KAAKG,WAAWoQ,SAASD,EAAIhL,KAAK5J,EAAM4J,KAAK,QACzD,OAAOrC,IAEXuF,mBAAoB,SAAUtM,GAAV,GACZqM,GAAKrM,EAAQ4S,QAAQ,MACrB0B,EAAKjI,EAAGzG,SACRiE,EAAMyK,EAAGhK,WAAWjF,MAAMgH,EAC9B,OAAOvI,MAAKC,QAAQ8F,KAG5BrJ,IAAO,EAAMF,EAAGoD,WAAakD,OAAQhF,KACvC/B,OAAOL,MAAM+U,QACR1U,OAAOL,OACE,kBAAVZ,SAAwBA,OAAO4V,IAAM5V,OAAS,SAAU6V,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.gantt.list.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.gantt.list', [\n 'kendo.dom',\n 'kendo.touch',\n 'kendo.draganddrop',\n 'kendo.columnsorter',\n 'kendo.datetimepicker',\n 'kendo.editable'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'gantt.list',\n name: 'Gantt List',\n category: 'web',\n description: 'The Gantt List',\n depends: [\n 'dom',\n 'touch',\n 'draganddrop',\n 'columnsorter',\n 'datetimepicker',\n 'editable'\n ],\n hidden: true\n };\n (function ($) {\n var kendo = window.kendo;\n var kendoDom = kendo.dom;\n var kendoDomElement = kendoDom.element;\n var kendoTextElement = kendoDom.text;\n var browser = kendo.support.browser;\n var mobileOS = kendo.support.mobileOS;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var extend = $.extend;\n var map = $.map;\n var isFunction = $.isFunction;\n var oldIE = browser.msie && browser.version < 9;\n var keys = kendo.keys;\n var titleFromField = {\n 'title': 'Title',\n 'start': 'Start Time',\n 'end': 'End Time',\n 'percentComplete': '% Done',\n 'parentId': 'Predecessor ID',\n 'id': 'ID',\n 'orderId': 'Order ID'\n };\n var STRING = 'string';\n var NS = '.kendoGanttList';\n var CLICK = 'click';\n var DOT = '.';\n var SIZE_CALCULATION_TEMPLATE = '' + '' + '' + '' + '' + '' + '
 
';\n var listStyles = {\n wrapper: 'k-treelist k-grid k-widget',\n header: 'k-header',\n alt: 'k-alt',\n rtl: 'k-rtl',\n editCell: 'k-edit-cell',\n group: 'k-treelist-group',\n gridHeader: 'k-grid-header',\n gridHeaderWrap: 'k-grid-header-wrap',\n gridContent: 'k-grid-content',\n gridContentWrap: 'k-grid-content',\n selected: 'k-state-selected',\n icon: 'k-icon',\n iconCollapse: 'k-i-collapse',\n iconExpand: 'k-i-expand',\n iconHidden: 'k-i-none',\n iconPlaceHolder: 'k-icon k-i-none',\n input: 'k-input',\n link: 'k-link',\n resizeHandle: 'k-resize-handle',\n resizeHandleInner: 'k-resize-handle-inner',\n dropPositions: 'k-i-insert-top k-i-insert-bottom k-i-add k-i-insert-middle',\n dropTop: 'k-i-insert-top',\n dropBottom: 'k-i-insert-bottom',\n dropAdd: 'k-i-add',\n dropMiddle: 'k-i-insert-middle',\n dropDenied: 'k-i-denied',\n dragStatus: 'k-drag-status',\n dragClue: 'k-drag-clue',\n dragClueText: 'k-clue-text'\n };\n function createPlaceholders(options) {\n var spans = [];\n var className = options.className;\n for (var i = 0, level = options.level; i < level; i++) {\n spans.push(kendoDomElement('span', { className: className }));\n }\n return spans;\n }\n function blurActiveElement() {\n var activeElement = kendo._activeElement();\n if (activeElement && activeElement.nodeName.toLowerCase() !== 'body') {\n $(activeElement).blur();\n }\n }\n var GanttList = ui.GanttList = Widget.extend({\n init: function (element, options) {\n Widget.fn.init.call(this, element, options);\n if (this.options.columns.length === 0) {\n this.options.columns.push('title');\n }\n this.dataSource = this.options.dataSource;\n this._columns();\n this._layout();\n this._domTrees();\n this._header();\n this._sortable();\n this._editable();\n this._selectable();\n this._draggable();\n this._resizable();\n this._attachEvents();\n this._adjustHeight();\n this.bind('render', function () {\n var headerCols;\n var tableCols;\n if (this.options.resizable) {\n headerCols = this.header.find('col');\n tableCols = this.content.find('col');\n this.header.find('th').not(':last').each(function (index) {\n var width = $(this).outerWidth();\n headerCols.eq(index).width(width);\n tableCols.eq(index).width(width);\n });\n headerCols.last().css('width', 'auto');\n tableCols.last().css('width', 'auto');\n }\n }, true);\n },\n _adjustHeight: function () {\n this.content.height(this.element.height() - this.header.parent().outerHeight());\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n if (this._reorderDraggable) {\n this._reorderDraggable.destroy();\n }\n if (this._tableDropArea) {\n this._tableDropArea.destroy();\n }\n if (this._contentDropArea) {\n this._contentDropArea.destroy();\n }\n if (this._columnResizable) {\n this._columnResizable.destroy();\n }\n if (this.touch) {\n this.touch.destroy();\n }\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.content.off(NS);\n this.header.find('thead').off(NS);\n this.header.find(DOT + GanttList.link).off(NS);\n this.header = null;\n this.content = null;\n this.levels = null;\n kendo.destroy(this.element);\n },\n options: {\n name: 'GanttList',\n selectable: true,\n editable: true,\n resizable: false\n },\n _attachEvents: function () {\n var that = this;\n var listStyles = GanttList.styles;\n that.content.on(CLICK + NS, 'td > span.' + listStyles.icon + ':not(.' + listStyles.iconHidden + ')', function (e) {\n var element = $(this);\n var model = that._modelFromElement(element);\n model.set('expanded', !model.get('expanded'));\n e.stopPropagation();\n });\n },\n _domTrees: function () {\n this.headerTree = new kendoDom.Tree(this.header[0]);\n this.contentTree = new kendoDom.Tree(this.content[0]);\n },\n _columns: function () {\n var columns = this.options.columns;\n var model = function () {\n this.field = '';\n this.title = '';\n this.editable = false;\n this.sortable = false;\n };\n this.columns = map(columns, function (column) {\n column = typeof column === STRING ? {\n field: column,\n title: titleFromField[column]\n } : column;\n return extend(new model(), column);\n });\n },\n _layout: function () {\n var that = this;\n var options = this.options;\n var element = this.element;\n var listStyles = GanttList.styles;\n var calculateRowHeight = function () {\n var rowHeight = typeof options.rowHeight === STRING ? options.rowHeight : options.rowHeight + 'px';\n var table = $(kendo.format(SIZE_CALCULATION_TEMPLATE, rowHeight));\n var height;\n that.content.append(table);\n height = table.find('tr').outerHeight();\n table.remove();\n return height;\n };\n element.addClass(listStyles.wrapper).append('
').append('
');\n this.header = element.find(DOT + listStyles.gridHeaderWrap);\n this.content = element.find(DOT + listStyles.gridContent);\n if (options.rowHeight) {\n this._rowHeight = calculateRowHeight();\n }\n },\n _header: function () {\n var domTree = this.headerTree;\n var colgroup;\n var thead;\n var table;\n colgroup = kendoDomElement('colgroup', null, this._cols());\n thead = kendoDomElement('thead', { 'role': 'rowgroup' }, [kendoDomElement('tr', { 'role': 'row' }, this._ths())]);\n table = kendoDomElement('table', {\n 'style': { 'minWidth': this.options.listWidth + 'px' },\n 'role': 'grid'\n }, [\n colgroup,\n thead\n ]);\n domTree.render([table]);\n },\n _render: function (tasks) {\n var colgroup;\n var tbody;\n var table;\n var tableAttr = {\n 'style': { 'minWidth': this.options.listWidth + 'px' },\n 'tabIndex': 0,\n 'role': 'treegrid'\n };\n if (this._rowHeight) {\n tableAttr.style.height = tasks.length * this._rowHeight + 'px';\n }\n this.levels = [{\n field: null,\n value: 0\n }];\n colgroup = kendoDomElement('colgroup', null, this._cols());\n tbody = kendoDomElement('tbody', { 'role': 'rowgroup' }, this._trs(tasks));\n table = kendoDomElement('table', tableAttr, [\n colgroup,\n tbody\n ]);\n this.contentTree.render([table]);\n this.trigger('render');\n },\n _ths: function () {\n var columns = this.columns;\n var column;\n var attr;\n var ths = [];\n for (var i = 0, length = columns.length; i < length; i++) {\n column = columns[i];\n attr = {\n 'data-field': column.field,\n 'data-title': column.title,\n className: GanttList.styles.header,\n 'role': 'columnheader'\n };\n ths.push(kendoDomElement('th', attr, [kendoTextElement(column.title)]));\n }\n if (this.options.resizable) {\n ths.push(kendoDomElement('th', {\n className: GanttList.styles.header,\n 'role': 'columnheader'\n }));\n }\n return ths;\n },\n _cols: function () {\n var columns = this.columns;\n var column;\n var style;\n var width;\n var cols = [];\n for (var i = 0, length = columns.length; i < length; i++) {\n column = columns[i];\n width = column.width;\n if (width && parseInt(width, 10) !== 0) {\n style = { style: { width: typeof width === STRING ? width : width + 'px' } };\n } else {\n style = null;\n }\n cols.push(kendoDomElement('col', style, []));\n }\n if (this.options.resizable) {\n cols.push(kendoDomElement('col', { style: { width: '1px' } }));\n }\n return cols;\n },\n _trs: function (tasks) {\n var task;\n var rows = [];\n var attr;\n var className = [];\n var level;\n var listStyles = GanttList.styles;\n for (var i = 0, length = tasks.length; i < length; i++) {\n task = tasks[i];\n level = this._levels({\n idx: task.parentId,\n id: task.id,\n summary: task.summary\n });\n attr = {\n 'data-uid': task.uid,\n 'data-level': level,\n 'role': 'row'\n };\n if (task.summary) {\n attr['aria-expanded'] = task.expanded;\n }\n if (i % 2 !== 0) {\n className.push(listStyles.alt);\n }\n if (task.summary) {\n className.push(listStyles.group);\n }\n if (className.length) {\n attr.className = className.join(' ');\n }\n rows.push(this._tds({\n task: task,\n attr: attr,\n level: level\n }));\n className = [];\n }\n return rows;\n },\n _tds: function (options) {\n var children = [];\n var columns = this.columns;\n var column;\n for (var i = 0, l = columns.length; i < l; i++) {\n column = columns[i];\n children.push(this._td({\n task: options.task,\n column: column,\n level: options.level\n }));\n }\n if (this.options.resizable) {\n children.push(kendoDomElement('td', { 'role': 'gridcell' }));\n }\n return kendoDomElement('tr', options.attr, children);\n },\n _td: function (options) {\n var children = [];\n var resourcesField = this.options.resourcesField;\n var listStyles = GanttList.styles;\n var task = options.task;\n var column = options.column;\n var value = task.get(column.field);\n var formatedValue;\n var label;\n if (column.field == resourcesField) {\n value = value || [];\n formatedValue = [];\n for (var i = 0; i < value.length; i++) {\n formatedValue.push(kendo.format('{0} [{1}]', value[i].get('name'), value[i].get('formatedValue')));\n }\n formatedValue = formatedValue.join(', ');\n } else {\n formatedValue = column.format ? kendo.format(column.format, value) : value;\n }\n if (column.field === 'title') {\n children = createPlaceholders({\n level: options.level,\n className: listStyles.iconPlaceHolder\n });\n children.push(kendoDomElement('span', { className: listStyles.icon + ' ' + (task.summary ? task.expanded ? listStyles.iconCollapse : listStyles.iconExpand : listStyles.iconHidden) }));\n label = kendo.format('{0}, {1:P0}', formatedValue, task.percentComplete);\n }\n children.push(kendoDomElement('span', { 'aria-label': label }, [kendoTextElement(formatedValue)]));\n return kendoDomElement('td', { 'role': 'gridcell' }, children);\n },\n _levels: function (options) {\n var levels = this.levels;\n var level;\n var summary = options.summary;\n var idx = options.idx;\n var id = options.id;\n for (var i = 0, length = levels.length; i < length; i++) {\n level = levels[i];\n if (level.field == idx) {\n if (summary) {\n levels.push({\n field: id,\n value: level.value + 1\n });\n }\n return level.value;\n }\n }\n },\n _sortable: function () {\n var that = this;\n var resourcesField = this.options.resourcesField;\n var columns = this.columns;\n var column;\n var sortableInstance;\n var cells = this.header.find('th[' + kendo.attr('field') + ']');\n var cell;\n var changeHandler = function (e) {\n if (that.dataSource.total() === 0 || that.editable && that.editable.trigger('validate')) {\n e.preventDefault();\n }\n };\n for (var idx = 0, length = cells.length; idx < length; idx++) {\n column = columns[idx];\n if (column.sortable && column.field !== resourcesField) {\n cell = cells.eq(idx);\n sortableInstance = cell.data('kendoColumnSorter');\n if (sortableInstance) {\n sortableInstance.destroy();\n }\n cell.attr('data-' + kendo.ns + 'field', column.field).kendoColumnSorter({\n dataSource: this.dataSource,\n change: changeHandler\n });\n }\n }\n cells = null;\n },\n _selectable: function () {\n var that = this;\n var selectable = this.options.selectable;\n if (selectable) {\n this.content.on(CLICK + NS, 'tr', function (e) {\n var element = $(this);\n if (that.editable) {\n that.editable.trigger('validate');\n }\n if (!e.ctrlKey) {\n that.select(element);\n } else {\n that.clearSelection();\n }\n });\n }\n },\n select: function (value) {\n var element = this.content.find(value);\n var selectedClassName = GanttList.styles.selected;\n if (element.length) {\n element.siblings(DOT + selectedClassName).removeClass(selectedClassName).attr('aria-selected', false).end().addClass(selectedClassName).attr('aria-selected', true);\n this.trigger('change');\n return;\n }\n return this.content.find(DOT + selectedClassName);\n },\n clearSelection: function () {\n var selected = this.select();\n if (selected.length) {\n selected.removeClass(GanttList.styles.selected);\n this.trigger('change');\n }\n },\n _setDataSource: function (dataSource) {\n this.dataSource = dataSource;\n this._sortable();\n },\n _editable: function () {\n var that = this;\n var editable = this.options.editable;\n var listStyles = GanttList.styles;\n var iconSelector = 'span.' + listStyles.icon + ':not(' + listStyles.iconHidden + ')';\n var finishEdit = function () {\n var editable = that.editable;\n if (editable) {\n if (editable.end()) {\n that._closeCell();\n } else {\n editable.trigger('validate');\n }\n }\n };\n var mousedown = function (e) {\n var currentTarget = $(e.currentTarget);\n if (!currentTarget.hasClass(listStyles.editCell)) {\n blurActiveElement();\n }\n };\n if (!editable || editable.update === false) {\n return;\n }\n this._startEditHandler = function (e) {\n var td = e.currentTarget ? $(e.currentTarget) : e;\n var column = that._columnFromElement(td);\n if (that.editable) {\n return;\n }\n if (column && column.editable) {\n that._editCell({\n cell: td,\n column: column\n });\n }\n };\n that.content.on('focusin' + NS, function () {\n clearTimeout(that.timer);\n that.timer = null;\n }).on('focusout' + NS, function () {\n that.timer = setTimeout(finishEdit, 1);\n }).on('keydown' + NS, function (e) {\n if (e.keyCode === keys.ENTER) {\n e.preventDefault();\n }\n }).on('keyup' + NS, function (e) {\n var key = e.keyCode;\n var cell;\n var model;\n switch (key) {\n case keys.ENTER:\n blurActiveElement();\n finishEdit();\n break;\n case keys.ESC:\n if (that.editable) {\n cell = that._editableContainer;\n model = that._modelFromElement(cell);\n if (!that.trigger('cancel', {\n model: model,\n cell: cell\n })) {\n that._closeCell(true);\n }\n }\n break;\n }\n });\n if (!mobileOS) {\n that.content.on('mousedown' + NS, 'td', function (e) {\n mousedown(e);\n }).on('dblclick' + NS, 'td', function (e) {\n if (!$(e.target).is(iconSelector)) {\n that._startEditHandler(e);\n }\n });\n } else {\n that.touch = that.content.kendoTouch({\n filter: 'td',\n touchstart: function (e) {\n mousedown(e.touch);\n },\n doubletap: function (e) {\n if (!$(e.touch.initialTouch).is(iconSelector)) {\n that._startEditHandler(e.touch);\n }\n }\n }).data('kendoTouch');\n }\n },\n _editCell: function (options) {\n var resourcesField = this.options.resourcesField;\n var listStyles = GanttList.styles;\n var cell = options.cell;\n var column = options.column;\n var model = this._modelFromElement(cell);\n var modelCopy = this.dataSource._createNewModel(model.toJSON());\n var field = modelCopy.fields[column.field] || modelCopy[column.field];\n var validation = field.validation;\n var DATATYPE = kendo.attr('type');\n var BINDING = kendo.attr('bind');\n var FORMAT = kendo.attr('format');\n var attr = {\n 'name': column.field,\n 'required': field.validation ? field.validation.required === true : false\n };\n var editor;\n if (column.field === resourcesField) {\n column.editor(cell, modelCopy);\n return;\n }\n this._editableContent = cell.children().detach();\n this._editableContainer = cell;\n cell.data('modelCopy', modelCopy);\n if ((field.type === 'date' || $.type(field) === 'date') && (!column.format || /H|m|s|F|g|u/.test(column.format))) {\n attr[BINDING] = 'value:' + column.field;\n attr[DATATYPE] = 'date';\n if (column.format) {\n attr[FORMAT] = kendo._extractFormat(column.format);\n }\n editor = function (container, options) {\n $('').attr(attr).appendTo(container).kendoDateTimePicker({ format: options.format });\n };\n }\n this.editable = cell.addClass(listStyles.editCell).kendoEditable({\n fields: {\n field: column.field,\n format: column.format,\n editor: column.editor || editor\n },\n model: modelCopy,\n clearContainer: false\n }).data('kendoEditable');\n if (validation && validation.dateCompare && isFunction(validation.dateCompare) && validation.message) {\n $('').hide().appendTo(cell);\n cell.find('[name=' + column.field + ']').attr(kendo.attr('dateCompare-msg'), validation.message);\n }\n this.editable.bind('validate', function (e) {\n var focusable = this.element.find(':kendoFocusable:first').focus();\n if (oldIE) {\n focusable.focus();\n }\n e.preventDefault();\n });\n if (this.trigger('edit', {\n model: model,\n cell: cell\n })) {\n this._closeCell(true);\n }\n },\n _closeCell: function (cancelUpdate) {\n var listStyles = GanttList.styles;\n var cell = this._editableContainer;\n var model = this._modelFromElement(cell);\n var column = this._columnFromElement(cell);\n var field = column.field;\n var copy = cell.data('modelCopy');\n var taskInfo = {};\n taskInfo[field] = copy.get(field);\n cell.empty().removeData('modelCopy').removeClass(listStyles.editCell).append(this._editableContent);\n this.editable.unbind();\n this.editable.destroy();\n this.editable = null;\n this._editableContainer = null;\n this._editableContent = null;\n if (!cancelUpdate) {\n if (field === 'start') {\n taskInfo.end = new Date(taskInfo.start.getTime() + model.duration());\n }\n this.trigger('update', {\n task: model,\n updateInfo: taskInfo\n });\n }\n },\n _draggable: function () {\n var that = this;\n var draggedTask = null;\n var dropAllowed = true;\n var dropTarget;\n var listStyles = GanttList.styles;\n var isRtl = kendo.support.isRtl(this.element);\n var selector = 'tr[' + kendo.attr('level') + ' = 0]:last';\n var action = {};\n var editable = this.options.editable;\n var clear = function () {\n draggedTask = null;\n dropTarget = null;\n dropAllowed = true;\n action = {};\n };\n var allowDrop = function (task) {\n var parent = task;\n while (parent) {\n if (draggedTask.get('id') === parent.get('id')) {\n dropAllowed = false;\n break;\n }\n parent = that.dataSource.taskParent(parent);\n }\n };\n var defineLimits = function () {\n var height = $(dropTarget).height();\n var offsetTop = kendo.getOffset(dropTarget).top;\n extend(dropTarget, {\n beforeLimit: offsetTop + height * 0.25,\n afterLimit: offsetTop + height * 0.75\n });\n };\n var defineAction = function (coordinate) {\n if (!dropTarget) {\n return;\n }\n var location = coordinate.location;\n var className = listStyles.dropAdd;\n var command = 'add';\n var level = parseInt(dropTarget.attr(kendo.attr('level')), 10);\n var sibling;\n if (location <= dropTarget.beforeLimit) {\n sibling = dropTarget.prev();\n className = listStyles.dropTop;\n command = 'insert-before';\n } else if (location >= dropTarget.afterLimit) {\n sibling = dropTarget.next();\n className = listStyles.dropBottom;\n command = 'insert-after';\n }\n if (sibling && parseInt(sibling.attr(kendo.attr('level')), 10) === level) {\n className = listStyles.dropMiddle;\n }\n action.className = className;\n action.command = command;\n };\n var status = function () {\n return that._reorderDraggable.hint.children(DOT + listStyles.dragStatus).removeClass(listStyles.dropPositions);\n };\n if (!editable || editable.reorder === false || editable.update === false) {\n return;\n }\n this._reorderDraggable = this.content.kendoDraggable({\n distance: 10,\n holdToDrag: mobileOS,\n group: 'listGroup',\n filter: 'tr[data-uid]',\n ignore: DOT + listStyles.input,\n hint: function (target) {\n return $('
').css({\n width: 300,\n paddingLeft: target.css('paddingLeft'),\n paddingRight: target.css('paddingRight'),\n lineHeight: target.height() + 'px',\n paddingTop: target.css('paddingTop'),\n paddingBottom: target.css('paddingBottom')\n }).append('');\n },\n cursorOffset: {\n top: -20,\n left: 0\n },\n container: this.content,\n 'dragstart': function (e) {\n var editable = that.editable;\n if (editable && editable.reorder !== false && editable.trigger('validate')) {\n e.preventDefault();\n return;\n }\n draggedTask = that._modelFromElement(e.currentTarget);\n this.hint.children(DOT + listStyles.dragClueText).text(draggedTask.get('title'));\n if (isRtl) {\n this.hint.addClass(listStyles.rtl);\n }\n },\n 'drag': function (e) {\n if (dropAllowed) {\n defineAction(e.y);\n status().addClass(action.className);\n }\n },\n 'dragend': function () {\n clear();\n },\n 'dragcancel': function () {\n clear();\n }\n }).data('kendoDraggable');\n this._tableDropArea = this.content.kendoDropTargetArea({\n distance: 0,\n group: 'listGroup',\n filter: 'tr[data-uid]',\n 'dragenter': function (e) {\n dropTarget = e.dropTarget;\n allowDrop(that._modelFromElement(dropTarget));\n defineLimits();\n status().toggleClass(listStyles.dropDenied, !dropAllowed);\n },\n 'dragleave': function () {\n dropAllowed = true;\n status();\n },\n 'drop': function () {\n var target = that._modelFromElement(dropTarget);\n var orderId = target.orderId;\n var taskInfo = { parentId: target.parentId };\n if (dropAllowed) {\n switch (action.command) {\n case 'add':\n taskInfo.parentId = target.id;\n break;\n case 'insert-before':\n if (target.parentId === draggedTask.parentId && target.orderId > draggedTask.orderId) {\n taskInfo.orderId = orderId - 1;\n } else {\n taskInfo.orderId = orderId;\n }\n break;\n case 'insert-after':\n if (target.parentId === draggedTask.parentId && target.orderId > draggedTask.orderId) {\n taskInfo.orderId = orderId;\n } else {\n taskInfo.orderId = orderId + 1;\n }\n break;\n }\n that.trigger('update', {\n task: draggedTask,\n updateInfo: taskInfo\n });\n }\n }\n }).data('kendoDropTargetArea');\n this._contentDropArea = this.element.kendoDropTargetArea({\n distance: 0,\n group: 'listGroup',\n filter: DOT + listStyles.gridContent,\n 'drop': function () {\n var target = that._modelFromElement(that.content.find(selector));\n var orderId = target.orderId;\n var taskInfo = {\n parentId: null,\n orderId: draggedTask.parentId !== null ? orderId + 1 : orderId\n };\n that.trigger('update', {\n task: draggedTask,\n updateInfo: taskInfo\n });\n }\n }).data('kendoDropTargetArea');\n },\n _resizable: function () {\n var that = this;\n var listStyles = GanttList.styles;\n var positionResizeHandle = function (e) {\n var th = $(e.currentTarget);\n var resizeHandle = that.resizeHandle;\n var position = th.position();\n var left = position.left;\n var cellWidth = th.outerWidth();\n var container = th.closest('div');\n var clientX = e.clientX + $(window).scrollLeft();\n var indicatorWidth = that.options.columnResizeHandleWidth;\n left += container.scrollLeft();\n if (!resizeHandle) {\n resizeHandle = that.resizeHandle = $('
');\n }\n var cellOffset = th.offset().left + cellWidth;\n var show = clientX > cellOffset - indicatorWidth && clientX < cellOffset + indicatorWidth;\n if (!show) {\n resizeHandle.hide();\n return;\n }\n container.append(resizeHandle);\n resizeHandle.show().css({\n top: position.top,\n left: left + cellWidth - indicatorWidth - 1,\n height: th.outerHeight(),\n width: indicatorWidth * 3\n }).data('th', th);\n };\n if (!this.options.resizable) {\n return;\n }\n if (this._columnResizable) {\n this._columnResizable.destroy();\n }\n this.header.find('thead').on('mousemove' + NS, 'th', positionResizeHandle);\n this._columnResizable = this.header.kendoResizable({\n handle: DOT + listStyles.resizeHandle,\n start: function (e) {\n var th = $(e.currentTarget).data('th');\n var colSelector = 'col:eq(' + th.index() + ')';\n var header = that.header.find('table');\n var contentTable = that.content.find('table');\n that.element.addClass('k-grid-column-resizing');\n this.col = contentTable.children('colgroup').find(colSelector).add(header.find(colSelector));\n this.th = th;\n this.startLocation = e.x.location;\n this.columnWidth = th.outerWidth();\n this.table = header.add(contentTable);\n this.totalWidth = this.table.width() - header.find('th:last').outerWidth();\n },\n resize: function (e) {\n var minColumnWidth = 11;\n var delta = e.x.location - this.startLocation;\n if (this.columnWidth + delta < minColumnWidth) {\n delta = minColumnWidth - this.columnWidth;\n }\n this.table.css({ 'minWidth': this.totalWidth + delta });\n this.col.width(this.columnWidth + delta);\n },\n resizeend: function () {\n that.element.removeClass('k-grid-column-resizing');\n var oldWidth = Math.floor(this.columnWidth);\n var newWidth = Math.floor(this.th.outerWidth());\n var column = that.columns[this.th.index()];\n that.trigger('columnResize', {\n column: column,\n oldWidth: oldWidth,\n newWidth: newWidth\n });\n this.table = this.col = this.th = null;\n }\n }).data('kendoResizable');\n },\n _modelFromElement: function (element) {\n var row = element.closest('tr');\n var model = this.dataSource.getByUid(row.attr(kendo.attr('uid')));\n return model;\n },\n _columnFromElement: function (element) {\n var td = element.closest('td');\n var tr = td.parent();\n var idx = tr.children().index(td);\n return this.columns[idx];\n }\n });\n extend(true, ui.GanttList, { styles: listStyles });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}