{"version":3,"file":"kendo.timeline.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotimeline","js","this","$","undefined$1","kendo","window","Widget","ui","DataSource","data","Transition","effects","keys","isArray","Array","encode","htmlEncode","VERTICAL","TRANSITION_END","FLAGWRAPCLASS","TRACKITEMCLASS","SCROLLABLEWRAPCLASS","TRACKITEM_NOTFLAG_SELECTOR","NS","CHANGE","DEFAULTHORIZONTALCARDTEMPLATE","args","titleField","subtitleField","descriptionField","imagesField","actionsField","altField","length","src","map","action","url","text","join","DEFAULTVERTICALCARDTEMPLATE","collapsibleEvents","navigatable","icon","iconClass","HORIZONTALTRACKTEMPLATE","itemTemplate","dateField","dateFormat","showDateLabels","year","result","i","Date","currentYear","getFullYear","toString","VERTICALEVENTSTEMPLATE","alterMode","counter","reverse","uid","ARROWSHTML","calculateTransform","element","matrix","css","match","width","calculateOffset","parentElement","offset","left","applyCssStyles","property","value","Page","Class","extend","init","container","cardContainer","name","cardWrapper","append","content","htmlContent","label","callOut","html","prepend","attr","find","role","position","removeAttr","setPageCallout","propery","destroy","that","remove","HorizontalPane","Observable","options","movable","transition","pages","fn","call","Movable","axis","onEnd","trigger","duration","eventTemplate","eventHeight","dataFieldMappings","bind","initPages","page","push","repositionPages","setPageContent","template","Function","date","title","subtitle","description","images","actions","updatePage","isForward","calloutOffset","moveTo","moveAxis","transitionTo","ease","location","index","unbind","Timeline","orientation","addClass","_horizontal","_vertical","on","ev","target","dataItemUid","closest","dataItem","dataSource","getByUid","sender","currentEventIndex","_forward","_eventPage","_currentIndex","_firstIndexInView","_initDataFieldMappings","setDataSource","trackWrap","trackEl","scrollableWrap","eventsWrap","eventsList","_trackWrap","_trackEl","_scrollableWrap","_eventsWrap","_eventsList","height","appendTo","alternatingMode","card","itemWrapper","parent","hasClass","expand","collapse","e","keyCode","SPACEBAR","ENTER","header","preventDefault","_renderContentVertical","useWithBlock","dataDateField","dataTitleField","dataSubtitleField","dataDescriptionField","dataImagesField","dataActionsField","dataImagesAltField","eventWidth","_renderContentHorizontal","_dataFieldMappings","trackTemplate","initialEventIndex","pane","transitionEnd","_transitionEnd","shift","unshift","pop","_transition","_cardId","_setCurrent","_currentBullet","_animationInProgress","_setCurrentEvent","event","eventContainer","trackItem","currentTarget","view","children","open","forward","trackItemCircle","trackItems","itemIndex","_removeCurrent","clearTimeout","navigateTimeOut","setTimeout","easeOutExpo","_repositionEvents","_navigateToView","delta","next","previous","_updateArrows","_enableDisableArrow","arrow","enable","removeClass","arrows","leftArrow","filter","rightArrow","_validateNavigation","transform","_end","numOfEvents","maxEvents","Math","abs","_navigate","firstEventInViewIndex","firstEventInView","currentPage","end","leftOffset","currentIndex","firstIndexInView","_tackItemWidth","floor","eq","nextAll","first","prevAll","scrollWrapElement","transitionEndHandler","off","cardElement","cardBody","fx","stop","play","items","_resizeHandler","resizeTimeOut","_redrawEvents","redraw","trackWrapScrollableElement","round","_initHorizontal","current","firstEventElement","_resizeHandlerBound","jQuery","guid","handled","itemOffset","LEFT","RIGHT","id","siblings","_refresh","refresh","create","_sort","field","dir","autoBind","fetch","empty","events","plugin"],"sources":["kendo.timeline.js"],"mappings":"CAAA,SAAWA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,EAAQG,QAAQ,eAAgBA,QAAQ,iBAAkBA,QAAQ,wBAAyBA,QAAQ,mBACjK,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,eAAgB,iBAAkB,wBAAyB,mBAAoBJ,KACnID,EAA+B,oBAAfO,WAA6BA,WAAaP,GAAUQ,MAAcC,cAAgBT,EAAOS,eAAiB,CAAC,EAAGT,EAAOS,cAAcC,GAAKT,IAC5J,CAJD,CAIGU,MAAM,WA+rCL,OAtrCA,SAAUC,EAAGC,GACT,IAAIC,EAAQC,OAAOD,MAEfE,EADKF,EAAMG,GACCD,OACZE,EAAaJ,EAAMK,KAAKD,WACxBE,EAAaN,EAAMO,QAAQD,WAC3BE,EAAOR,EAAMQ,KACbC,EAAUC,MAAMD,QAChBE,EAASX,EAAMY,WAKfC,EAAW,WACXC,EAAiB,gBAGjBC,EAAgB,uBAChBC,EAAiB,wBACjBC,EAAsB,6BACtBC,EAA6B,oDAC7BC,EAAK,iBACLC,EAAS,SACTC,EAAiCC,IAC7B,IAAIC,EAAaD,EAAKC,WAAYC,EAAgBF,EAAKE,cAAeC,EAAmBH,EAAKG,iBAAkBC,EAAcJ,EAAKI,YAAaC,EAAeL,EAAKK,aAAcC,EAAWN,EAAKM,SAAUvB,EAAOiB,EAAKjB,KAExN,MAAO,yDAEEA,EAAKkB,GAAc,yDAAyDZ,EAAON,EAAKkB,mBAA8B,KACtHlB,EAAKmB,GAAiB,gCAAgCb,EAAON,EAAKmB,YAA0B,IAH9F,mEAOMnB,EAAKoB,GAAoB,MAAMd,EAAON,EAAKoB,UAA2B,KACtEpB,EAAKqB,IAAgBrB,EAAKqB,GAAaG,OAAS,EACjD,aAAalB,EAAON,EAAKqB,GAAa,GAAGI,SAASzB,EAAKuB,GAAY,QAAQjB,EAAON,EAAKuB,OAAgB,6BACrG,IAVP,gBAaFvB,EAAKsB,IAAiBtB,EAAKsB,GAAcE,OAAS,EACnD,yCACIxB,EAAKsB,GAAcI,KAAIC,GACnB,0FAA0FA,EAAOC,IAAMtB,EAAOqB,EAAOC,KAAO,oCACzFtB,EAAOqB,EAAOE,qBAE/CC,KAAK,IACf,SACE,IACN,QAAQ,EAEZC,EAA+Bd,IAC3B,IAAIC,EAAaD,EAAKC,WAAYC,EAAgBF,EAAKE,cAAeC,EAAmBH,EAAKG,iBAAkBC,EAAcJ,EAAKI,YAA6CW,GAAlBf,EAAKgB,YAAiChB,EAAKe,mBAAmBV,EAAeL,EAAKK,aAAcC,EAAWN,EAAKM,SAAUvB,EAAOiB,EAAKjB,KACpS,MAAO,mFAGMA,EAAKkB,GAAc,+BAA+BZ,EAAON,EAAKkB,aAAwB,KACtFc,EACG,mHACIrC,EAAMG,GAAGoC,KAAK,CAAEA,KAAM,gBAAiBC,UAAW,kBACtD,UACE,IAEV,UACCnC,EAAKmB,GAAiB,gCAAgCb,EAAON,EAAKmB,YAA0B,IAX9F,mEAeMnB,EAAKoB,GAAoB,MAAMd,EAAON,EAAKoB,UAA2B,KACtEpB,EAAKqB,IAAgBrB,EAAKqB,GAAaG,OAAS,EAC7C,aAAalB,EAAON,EAAKqB,GAAa,GAAGI,SAASzB,EAAKuB,GAAY,QAAQjB,EAAON,EAAKuB,OAAgB,6BACzG,IAlBP,gBAqBFvB,EAAKsB,IAAiBtB,EAAKsB,GAAcE,OAAS,EACnD,yCACIxB,EAAKsB,GAAcI,KAAIC,GACnB,0FAA0FA,EAAOC,IAAMtB,EAAOqB,EAAOC,KAAO,oCACzFtB,EAAOqB,EAAOE,qBAE/CC,KAAK,IACf,SACE,IACN,QAAQ,EAEZM,EAA2BnB,IACJA,EAAKoB,aAAxB,IAAsCC,EAAYrB,EAAKqB,UAAWC,EAAatB,EAAKsB,WAAYC,EAAiBvB,EAAKuB,eAAgBxC,EAAOiB,EAAKjB,KAAMyC,EAAO,EAC3JC,EAAS,GACb,IAAK,IAAIC,EAAI,EAAGA,EAAI3C,EAAKwB,OAAQmB,IAAK,CAClC,KAAM3C,EAAK2C,GAAGL,aAAsBM,MAChC,SAEJ,IAAIC,EAAc7C,EAAK2C,GAAGL,GAAWQ,cACjCL,GAAQI,IACRJ,EAAOI,EACPH,GAEI,wFAAiCD,iBAIzCC,GACA,mFAEUF,EAAiB,iCAAiC7C,EAAMoD,SAAS/C,EAAK2C,GAAGL,GAAYC,YAAuB,IAFtH,oDAMJ,CAEA,OAAOG,CAAM,EAEjBM,EAA0B/B,IACtB,IAAIoB,EAAepB,EAAKoB,aAAcC,EAAYrB,EAAKqB,UAAWpB,EAAaD,EAAKC,WAAYE,EAAmBH,EAAKG,iBAAkBD,EAAgBF,EAAKE,cAAeE,EAAcJ,EAAKI,YAAaC,EAAeL,EAAKK,aAAc2B,EAAYhC,EAAKgC,UAAWjB,EAAoBf,EAAKe,kBAAmBO,EAAatB,EAAKsB,WAAYC,EAAiBvB,EAAKuB,eAAgBP,EAAchB,EAAKgB,YAAaV,EAAWN,EAAKM,SAAUvB,EAAOiB,EAAKjB,KAAMkD,EAAU,EAAGT,EAAO,EAAGU,GAAU,EACreT,EAAS,GAEb,IAAK,IAAIC,EAAI,EAAGA,EAAI3C,EAAKwB,OAAQmB,IAC7B,GAAM3C,EAAK2C,GAAGL,aAAsBM,KAApC,CAGA,IAAIC,EAAc7C,EAAK2C,GAAGL,GAAWQ,cACjCD,GAAeJ,IACfA,EAAOI,EACPH,GAEI,kEAAiCD,iBAIzCU,EAAUD,EAAU,GAAM,GAAKD,EAC/BP,GACA,cAAcS,EAAU,6BAA+B,iCAAiC7C,EAAON,EAAK2C,GAAGS,4CAE9FZ,EACG,aAAalC,EAAON,EAAK2C,GAAGS,sCAAsCzD,EAAMoD,SAAS/C,EAAK2C,GAAGL,GAAYC,YACvG,IAJV,gDAOI,eAAeP,EAAoB,8BAAgC,sBAC/D,iFAAiFC,EAAc,qBAAqB3B,EAAON,EAAK2C,GAAGS,8EAAgF,OAC/M,gBAAgBD,EAAU,qDAAuD,gEACjF,GAAGd,EAAa,CAAEnB,WAAYA,EAAYC,cAAeA,EAAeC,iBAAkBA,EAAkBC,YAAaA,EAAaC,aAAcA,EAActB,KAAMA,EAAK2C,GAAIpB,SAAUA,EAAUU,YAAaA,EAAaD,kBAAmBA,uBAI9PkB,GA1BA,CA6BJ,OAAOR,CAAM,EAEjBW,EACA,qNACI1D,EAAMG,GAAGoC,KAAK,CAAEA,KAAM,iBAAkBC,UAAW,kBADvD,2NAIIxC,EAAMG,GAAGoC,KAAK,CAAEA,KAAM,kBAAmBC,UAAW,kBACxD,YAMA,SAASmB,EAAmBC,GACxB,IAAIC,EAASD,EAAQE,IAAI,aAIzB,MAAc,QAAVD,EACSA,EAAOE,MAAM,cACX,GACCH,EAAQI,QAAU,IAEvB,CAEf,CAEA,SAASC,EAAgBL,EAASM,GAC9B,OAAON,EAAQO,SAASC,KAAOF,EAAcC,SAASC,KAAOR,EAAQI,QAAU,CACnF,CAEA,SAASK,EAAeT,EAASU,EAAUC,GACvCX,EAAQE,IAAIQ,EAAUC,EAC1B,CAEA,IAAIC,EAAOxE,EAAMyE,MAAMC,OAAO,CAC1BC,KAAM,SAASC,GACX/E,KAAKgF,cAAgB/E,EAAE,6EACvB,IA7BWgF,EA6BPC,EAAcjF,EAAE,uCAAuCkF,OAAOnF,KAAKgF,eAEvEhF,KAAK+D,QAAU9D,EAAE,eA/BNgF,EA7IE,iBA8IV,KAAOA,EA8BuD,YAAWE,OAAOD,GACnFH,EAAUI,OAAOnF,KAAK+D,QAC1B,EAEAqB,QAAS,SAASC,EAAazB,EAAK0B,GAChC,IAAIC,EAAUtF,EAAE,4EAChBD,KAAKgF,cAAcQ,KAAKH,GACxBrF,KAAKgF,cAAcS,QAAQF,GAC3BvF,KAAK+D,QAAQ2B,KAAK,WAAY9B,GAC9B5D,KAAK+D,QAAQ4B,KAAK,WAAWD,KAAK,CAC9BE,KAAM,WACN,aAAcN,GAEtB,EAEAO,SAAU,SAASA,GACf7F,KAAK+D,QAAQE,IAAI,YAAa,eAAiBjE,KAAK+D,QAAQI,QAAU0B,EAAW,aAEhE,IAAbA,EACA7F,KAAK+D,QAAQ4B,KAAK,WAAWD,KAAK,WAAY,GAE9C1F,KAAK+D,QAAQ4B,KAAK,WAAWG,WAAW,WAEhD,EAEAC,eAAgB,SAASC,EAAStB,GAChB1E,KAAK+D,QACU4B,KAAK,4BACnB1B,IAAI+B,EAAStB,EAChC,EAEAuB,QAAS,WACL,IAAIC,EAAOlG,KAEXkG,EAAKlB,cAAgB,KACrBkB,EAAKnC,QAAQoC,SACbD,EAAKnC,QAAU,IACnB,IAGAqC,EAAiBjG,EAAMkG,WAAWxB,OAAO,CACzCC,KAAM,SAASf,EAASuC,GACpB,IAMIC,EACAC,EACAC,EARAP,EAAOlG,KAEXG,EAAMkG,WAAWK,GAAG5B,KAAK6B,KAAK3G,MAE9BA,KAAK+D,QAAUA,EAMfwC,EAAU,IAAIpG,EAAMG,GAAGsG,QAAQV,EAAKnC,SAEpCyC,EAAa,IAAI/F,EAAW,CACxBoG,KAAM,IACNN,QAASA,EACTO,MAAO,WACHZ,EAAKa,QAAQ9F,EACjB,IAGJwF,EAAQ,GAERxG,EAAE4E,OAAOqB,EAAM,CACXc,SAAUV,GAAWA,EAAQU,UAAY,EACzCT,QAASA,EACTC,WAAYA,EACZC,MAAOA,EACPQ,cAAeX,EAAQW,cACvBC,YAAaZ,EAAQY,YACrBC,kBAAmBb,EAAQa,kBAC3BpE,WAAYuD,EAAQvD,aAGxB/C,KAAKoH,KAAK,CAACnG,GAAiBqF,EAChC,EAEAe,UAAW,WAKP,IAJA,IAEAC,EAFIb,EAAQzG,KAAKyG,MACjB1C,EAAU/D,KAAK+D,QAGNZ,EAAI,EAAGA,EAhQH,EAgQ2BA,IACpCmE,EAAO,IAAI3C,EAAKZ,GAChB0C,EAAMc,KAAKD,EAEnB,EAEAE,gBAAiB,WACb,IAAIf,EAAQzG,KAAKyG,MAEjBA,EAAM,GAAGZ,UA9QL,GA+QJY,EAAM,GAAGZ,SA9QJ,GA+QLY,EAAM,GAAGZ,SA9QJ,EA+QT,EAEA4B,eAAgB,SAASH,EAAM9G,GAC3B,IAGIgF,EAHAkC,SAAkB1H,KAAKiH,gBAAkBU,SAAW3H,KAAKiH,cAAgB9G,EAAMuH,SAAS1H,KAAKiH,eAC7FE,EAAoBnH,KAAKmH,kBACzB7B,EAAQnF,EAAMoD,SAAS/C,EAAKoH,KAAM5H,KAAK+C,YAG3CyC,EAAOkC,EAAS,CACZlH,KAAMA,EACNkB,WAAYyF,EAAkBU,MAC9BlG,cAAewF,EAAkBW,SACjClG,iBAAkBuF,EAAkBY,YACpClG,YAAasF,EAAkBa,OAC/BlG,aAAcqF,EAAkBc,QAChClG,SAAUoF,EAAkBpF,WAGhCuF,EAAKlC,QAAQI,EAAMhF,EAAKoD,IAAK0B,EACjC,EACA4C,WAAY,SAASC,EAAW3H,EAAM4H,GAClC,IAAI3B,EAAQzG,KAAKyG,MACba,EAAqB,OAAda,EAAqB1B,EAAM,GAAK0B,EAAY1B,EAAMA,EAAMzE,OAAS,GAAKyE,EAAM,GAEvFzG,KAAKyH,eAAeH,EAAM9G,GAC1B8G,EAAKvB,eAAe,OAASqC,EAAgBd,EAAKvD,QAAQI,QAAW,IAAM,IAC/E,EAEAkE,OAAQ,SAAS/D,GACbtE,KAAKuG,QAAQ+B,SAAS,KAAMhE,EAChC,EAEAiE,aAAc,SAASjE,EAAQkE,GAC3BxI,KAAKwG,WAAW6B,OAAO,CAAEI,SAAUnE,EAAQ0C,SAAUhH,KAAKgH,SAAUwB,KAAMA,GAC9E,EACAvC,QAAS,WAGL,IAFA,IAAIC,EAAOlG,KAEF0I,EAAQ,EAAGA,EAAQxC,EAAKO,MAAMzE,OAAQ0G,IAC3CxC,EAAKO,MAAMiC,GAAOzC,UAGtBC,EAAKyC,SAELzC,EAAKK,QACLL,EAAKM,WACLN,EAAKiB,kBACLjB,EAAKe,cACLf,EAAKc,SACLd,EAAKO,MAAQ,IACjB,IAGAmC,EAAWzI,EAAMG,GAAGD,OAAOwE,OAAO,CAClCC,KAAM,SAASf,EAASuC,GACpB,IAAIJ,EAAOlG,KACP6I,EAAcvC,EAAQuC,aAAe3C,EAAKI,QAAQuC,YAEtDxI,EAAOqG,GAAG5B,KAAK6B,KAAK3G,KAAM+D,EAASuC,GAEnCtG,KAAK+D,QAAQ+E,SAASD,IAAgB7H,EAAW,iCAAmC,oCAEhF6H,GAAe7H,EACfkF,EAAK6C,cAEL7C,EAAK8C,YAGThJ,KAAK+D,QAAQkF,GAAG,QAAS,mBAAmB,SAASC,GACjD,IAAI/G,EAASlC,EAAEiJ,EAAGC,QACdC,EAAcnJ,EAAEiJ,EAAGC,QAAQE,QAAQ,qBAAqB7I,KAAK,OAC7D8I,EAAWpD,EAAKqD,WAAWC,SAASJ,GAExClD,EAAKa,QAAQ,cAAe,CAAE0C,OAAQvD,EAAMnC,QAAS5B,EAAQmH,SAAUA,GAC3E,IAEApD,EAAKwD,kBAAoB,EACzBxD,EAAKyD,SAAW,KAChBzD,EAAK0D,WAAa,EAClB1D,EAAK2D,cAAgB,EACrB3D,EAAK4D,kBAAoB,EAEzB5D,EAAK6D,yBAEL7D,EAAK8D,cAAc1D,EAAQiD,WAC/B,EAEAR,YAAa,WACT,IAAI7C,EAAOlG,KACP+D,EAAU/D,KAAK+D,QACfuC,EAAUtG,KAAKsG,QAEf2D,EAAYhK,EAAE,WACdiK,EAAUjK,EAAE,WACZkK,EAAiBlK,EAAE,sCACnBmK,EAAanK,EAAE,WACfoK,EAAapK,EAAE,UAEnBiG,EAAKoE,WAAaL,EAClB/D,EAAKqE,SAAWL,EAChBhE,EAAKsE,gBAAkBL,EACvBjE,EAAKuE,YAAcL,EACnBlE,EAAKwE,YAAcL,EAEnBJ,EAAUnB,SAAS,yBACnBoB,EAAQpB,SAAS,oBACjBqB,EAAerB,SAAS1H,GACxBgJ,EAAWtB,SAAS,0BACpBuB,EAAWvB,SAAS1H,GAEhBkF,EAAQY,aACRmD,EAAWM,OAAOrE,EAAQY,aAG9BgD,EAAQ/E,OAAOgF,GACfF,EAAU9E,OAAOtB,GACjBoG,EAAU9E,OAAO+E,GACjBE,EAAWjF,OAAOkF,GAElBJ,EAAUW,SAAS7G,GACnBqG,EAAWQ,SAAS7G,EACxB,EAEAiF,UAAW,WACP,IAAI9C,EAAOlG,KACPsG,EAAUtG,KAAKsG,QACfvC,EAAU/D,KAAK+D,QACfsG,EAAanE,EAAKwE,YAAczK,EAAE,UAClCwC,EAAc6D,EAAQ7D,YACtBD,EAAoB8D,EAAQ9D,kBAEhC0D,EAAKnC,QAAQoB,OAAOkF,GAEhB/D,EAAQuE,iBACR9G,EAAQ+E,SAAS,0BAGjBtG,IACAuB,EAAQ+E,SAAS,0BAEjB9I,KAAK+D,QAAQkF,GAAG,QAAS,kBAAkB,WACvC,IAAI6B,EAAO7K,EAAED,MAAMqJ,QAAQ,oBACvB0B,EAAcD,EAAKE,SACnB1B,EAAWpD,EAAKqD,WAAWC,SAASuB,EAAYvK,KAAK,QAErDsK,EAAKG,SAAS,eACT/E,EAAKa,QAAQ,SAAU,CAAE0C,OAAQvD,EAAMoD,SAAUA,KAClDpD,EAAKgF,OAAOH,GAGX7E,EAAKa,QAAQ,WAAY,CAAE0C,OAAQvD,EAAMoD,SAAUA,KACpDpD,EAAKiF,SAASJ,EAG1B,KAGAtI,GACID,GACAxC,KAAK+D,QAAQkF,GAAG,UAAY3H,EAAI4E,GAAM,SAASkF,GAC3C,GAAIA,EAAEC,SAAW1K,EAAK2K,UAAYF,EAAEC,SAAW1K,EAAK4K,MAAO,CACvD,IACIC,EADSvL,EAAEmL,EAAEjC,QACGxD,KAAK,kBACrB6F,EAAOxJ,SACPoJ,EAAEK,iBACFD,EAAOzE,QAAQ,SAEvB,CACJ,GAGZ,EAEA2E,uBAAwB,SAASlL,GAC7B,IAEIgF,EACA3C,EAFAyD,EADOtG,KACQsG,QAKfzD,SADOyD,EAAQW,gBAAkBU,SAClBrB,EAAQW,cAERX,EAAQW,cAAgB9G,EAAMuH,SAASpB,EAAQW,eAAiB9G,EAAMuH,SAASnF,EAA6B,CAAEoJ,cAAc,IAK/InG,EAFerF,EAAMuH,SAASlE,EAAwB,CAAEmI,cAAc,GAE/DjE,CAAS,CACZlH,KAAMA,EACNsC,UAAWwD,EAAQsF,cACnBlK,WAAY4E,EAAQuF,eACpBlK,cAAe2E,EAAQwF,kBACvBlK,iBAAkB0E,EAAQyF,qBAC1BlK,YAAayE,EAAQ0F,gBACrBlK,aAAcwE,EAAQ2F,iBACtBpJ,aAAcA,EACdY,UAAW6C,EAAQuE,gBACnBrI,kBAAmB8D,EAAQ9D,kBAC3BO,WAAYuD,EAAQvD,WACpBC,eAAgBsD,EAAQtD,eACxBjB,SAAUuE,EAAQ4F,mBAClBzJ,YAAa6D,EAAQ7D,cAGzBzC,KAAK0K,YAAYlF,KAAKA,GAElBc,EAAQ6F,YAhCDnM,KAiCF+D,QAAQ4B,KAAK,WAAWxB,MAAMmC,EAAQ6F,WAEnD,EAEAC,yBAA0B,SAAS5L,GAC/B,IAEIgF,EACA3C,EAHAqD,EAAOlG,KACPsG,EAAUJ,EAAKI,QAGfa,EAAoBjB,EAAKmG,mBAGzBxJ,SADOyD,EAAQW,gBAAkBU,SAClBrB,EAAQW,cAERX,EAAQW,cAAgB9G,EAAMuH,SAASpB,EAAQW,eAAiB9G,EAAMuH,SAASlG,EAA+B,CAAEmK,cAAc,IAKjJnG,EAFoBrF,EAAMuH,SAAS9E,EAAyB,CAAE+I,cAAc,GAErEW,CAAc,CACjB9L,KAAMA,EACNqC,aAAcA,EACdE,WAAYuD,EAAQvD,WACpBD,UAAWwD,EAAQsF,cACnB5I,eAAgBsD,EAAQtD,iBAGxBsD,EAAQiG,kBACRrG,EAAKoE,WAAWnF,OAAOlF,EAAEuF,GAAMG,KAAK,IAAMvE,GAAqB6C,IAAI,YAAa,qBAAqB+G,UAErG9E,EAAKsE,gBAAgBhF,KAAKA,GAG1BU,EAAKsG,MACLtG,EAAKsG,KAAKvG,UAGdC,EAAKsG,KAAO,IAAIpG,EAAeF,EAAKwE,YAAa,CAC7C+B,cAAezM,KAAK0M,eAAetF,KAAKpH,MACxCiH,cAAepE,EACfsE,kBAAmBA,EACnBD,YAAaZ,EAAQY,YACrBnE,WAAYuD,EAAQvD,YAE5B,EAEAgH,uBAAwB,WACpB,IACIzD,EADOtG,KACQsG,QADRtG,KAGNqM,mBAAqB,CACtBxE,MAASvB,EAAQuF,eACjB/D,SAAYxB,EAAQwF,kBACpBlE,KAAQtB,EAAQsF,cAChB7D,YAAezB,EAAQyF,qBACvB/D,OAAU1B,EAAQ0F,gBAClB/D,QAAW3B,EAAQ2F,iBACnBlK,SAAYuE,EAAQ4F,mBAE5B,EAEAQ,eAAgB,WACR1M,KAAK2J,SACL3J,KAAKwM,KAAK/F,MAAMc,KAAKvH,KAAKwM,KAAK/F,MAAMkG,SAErC3M,KAAKwM,KAAK/F,MAAMmG,QAAQ5M,KAAKwM,KAAK/F,MAAMoG,OAG5C7M,KAAK2J,SAAW,KAEhB3J,KAAKwM,KAAKhF,kBACVxH,KAAKwM,KAAKjG,QAAQ+B,SAAS,IAAK,GAE5BtI,KAAKsG,QAAQ7D,cACbzC,KAAK8M,YAAc,KACnB9M,KAAK0K,YAAY/E,KAAK,WAAWG,WAAW,MAC5C9F,KAAKwM,KAAK/F,MAAM,GAAGzB,cAAcU,KAAK,KAAM1F,KAAK+M,SACjD/M,KAAKgN,YAAYhN,KAAKiN,iBAE1BjN,KAAKkN,sBAAuB,CAChC,EAEAC,iBAAkB,SAASC,GACvB,IAEIC,EAFAnH,EAAOlG,KACPsN,EAAYrN,EAAEmN,EAAMG,eAEpBjE,EAAWpD,EAAKqD,WAAWiE,OAAOF,EAAUtC,SAASyC,SAAS,+BAA+B/E,MAAM4E,IAEvGD,EAAiBnH,EAAKyD,SAAWzD,EAAKsG,KAAK/F,MAAM,GAAG1C,QAAUmC,EAAKsG,KAAK/F,MAAM,GAAG1C,QAE5EmC,EAAKa,QAAQ,SAAU,CAAEsG,eAAgBA,EAAgB/D,SAAUA,KACpEpD,EAAKwH,KAAKJ,EAElB,EAEAI,KAAM,SAAS3J,GACX,IAMI4J,EANAzH,EAAOlG,KAEPsN,EAAYrN,EAAE8D,GACd6J,EAAkBN,EAAU3H,KAAK,sBACjCkI,EAAaP,EAAUtC,SAASyC,SAAS,+BACzCK,EAAYD,EAAWnF,MAAM4E,GAG7BtN,KAAKsG,QAAQ7D,cACbyD,EAAK6H,iBACLF,EAAWnI,KAAK,iBAAiB,GACjC4H,EAAU5H,KAAK,iBAAiB,GAChCQ,EAAK+G,eAAiBK,GAG1B,IAAIhE,EAAWpD,EAAKqD,WAAWiE,OAAOM,GAElC5H,EAAKwD,oBAAsBoE,IAI/B5H,EAAK2D,cAAgByD,EAAU5E,QAC/BiF,EAAUzH,EAAKyD,SAAWzD,EAAKwD,kBAAoBoE,EACnD5H,EAAKwD,kBAAoBoE,EAEzB5H,EAAKsG,KAAKtE,WAAWyF,EAASrE,EAAUlF,EAAgBwJ,EAAiB1H,EAAKoE,aAE1EpE,EAAKyD,UACLqE,aAAa9H,EAAK+H,iBAClB/H,EAAK+H,gBAAkBC,YAAW,WAC9BhI,EAAKsG,KAAKhG,WAAW6B,OAAO,CAAEI,UAAWvC,EAAKsG,KAAK/F,MAAM,GAAG1C,QAAQI,QAAS6C,SAAU,IAAKwB,KAAM/H,EAAW0N,aACjH,GAAG,OAGHH,aAAa9H,EAAK+H,iBAClB/H,EAAK+H,gBAAkBC,YAAW,WAC9BhI,EAAKsG,KAAKhG,WAAW6B,OAAO,CAAEI,SAAUvC,EAAKsG,KAAK/F,MAAM,GAAG1C,QAAQI,QAAS6C,SAAU,IAAKwB,KAAM/H,EAAW0N,aAChH,GAAG,MAGPjI,EAAKkI,oBACT,EAEAC,gBAAiB,SAASjB,GACtB,IAAIlH,EAAOlG,KACPsO,EAAQrO,EAAEmN,EAAMG,eAAetC,SAAS,0BAA4B,GAAK,EAExE/E,EAAKa,QAAQ,WAAY,CAAE0C,OAAQvD,EAAM/D,OAAQmM,EAAQ,EAAI,OAAS,cAAkBpI,EAAKgH,uBAC9FhH,EAAKgH,sBAAuB,EAExBoB,EAAQ,EACRpI,EAAKqI,OAELrI,EAAKsI,WAETtI,EAAKuI,gBAEb,EAEAC,oBAAqB,SAASC,EAAOC,GAC7BA,GACAD,EAAME,YAAY,cAClBF,EAAM7I,WAAW,YACjB6I,EAAMjJ,KAAK,eAAe,KAE1BiJ,EAAM7F,SAAS,cACf6F,EAAMjJ,KAAK,WAAY,YACvBiJ,EAAMjJ,KAAK,eAAe,GAElC,EAEA+I,cAAe,WACX,IAAIvI,EAAOlG,KACP8O,EAAS5I,EAAKnC,QAAQ4B,KAAK,qBAC3BoJ,EAAYD,EAAOE,OAAO,0BAC1BC,EAAaH,EAAOE,OAAO,2BAE/BhP,KAAK0O,oBAAoBK,GAAY7I,EAAKgJ,qBAAoB,IAC9DlP,KAAK0O,oBAAoBO,GAAa/I,EAAKgJ,qBAAoB,GACnE,EAEAA,oBAAqB,SAASX,GAC1B,IAAIrI,EAAOlG,KACPmP,EAAYjJ,EAAKkJ,MAAQ,EAE7B,OAAIb,EACOrI,EAAK4D,kBAAoB5D,EAAKmJ,aAAenJ,EAAKoJ,UAElDC,KAAKC,IAAIL,IAAc,CAEtC,EAEAZ,KAAM,WACF,IAAIrI,EAAOlG,KACPsG,EAAUJ,EAAKI,QAEdJ,EAAKgJ,qBAAoB,IAAS5I,EAAQuC,aAAe7H,IAC1DkF,EAAKyD,UAAW,EAChBzD,EAAKuJ,aAGTvJ,EAAKuI,eACT,EAEAgB,UAAW,WACP,IACIC,EACAC,EACArG,EAMAsG,EATA1J,EAAOlG,KAKP2N,EAAUzH,EAAKyD,SACfkG,EAAM/L,EAAmB9D,KAAKsK,WAAW3E,KAAK,IAAMvE,IACpD0O,EAAanC,GAAY1N,EAAE,IAAMmB,GAAqB+C,QAAUlE,EAAE,IAAMmB,GAAqB+C,QAC7F4L,EAAe7J,EAAK2D,cAEpBmG,EAAmB9J,EAAK4D,kBAyC5B,IAvCA+F,EAAMlC,EAAUkC,EAAM,IAAMA,EAAM,MAEvB,IACPA,EAAM,GAGV3J,EAAKkJ,KAAOS,EAEJ3J,EAAK+J,eAEbL,EAAcL,KAAKW,MAAMH,EAAe7J,EAAKmJ,aAEzC1B,EACyB,IAArBzH,EAAKmJ,aACLK,EAA6C,IAArBM,EAAyB,EAAIA,EACrDL,EAAmB3P,KAAKsK,WAAW3E,KAAK,IAAMxE,GAAgBgP,GAAGT,GAAuBU,QAAQ,SAAWlP,EAAgB,KAAKmP,QAChInK,EAAK4D,kBAAoB6F,EAAiBjH,UAE1CgH,EAAwBM,EAAmB9J,EAAKmJ,YAAc,EAC9DM,EAAmB3P,KAAKsK,WAAW3E,KAAK,IAAMxE,GAAgBgP,GAAGT,GAAuBU,QAAQ,SAAWlP,EAAgB,KAAKmP,QAChInK,EAAK4D,kBAAoBkG,EAAmB9J,EAAKmJ,aAG5B,IAArBnJ,EAAKmJ,aACLK,EAAwBM,EACxBL,EAAmB3P,KAAKsK,WAAW3E,KAAK,IAAMxE,GAAgBgP,GAAGT,GAAuBY,QAAQ,SAAWpP,EAAgB,KAAKmP,QAChInK,EAAK4D,kBAAoB6F,EAAiBjH,UAE1CgH,EAAwBM,EAExBL,GADAA,EAAmB3P,KAAKsK,WAAW3E,KAAK,IAAMxE,GAAgBgP,GAAGT,GAAuBY,QAAQ,SAAWpP,EAAgB,KAAKmP,SAC5FrO,OAAS,EAAI2N,EAAmB3P,KAAKsK,WAAW3E,KAAK,IAAMxE,EAAiB,SAAWD,EAAgB,KAAKmP,QAChJnK,EAAK4D,kBAAoBkG,EAAmB9J,EAAKmJ,YAAc,EAAI,EAAIW,EAAmB9J,EAAKmJ,aAIvG/F,EAAWpD,EAAKqD,WAAWiE,OAAOxN,KAAKsK,WAAW3E,KAAKtE,GAA4BqH,MAAMiH,IAEzF3P,KAAKsK,WAAW3E,KAAK,IAAMvE,GAAqB6C,IAAI,YAAa,cAAgB4L,EAAM,MAEnF3J,EAAK2D,eAAiB8F,EAAiBjH,QACvCxC,EAAKwD,kBAAoB1J,KAAKsK,WAAW3E,KAAKtE,GAA4BqH,MAAMiH,GAEhFzJ,EAAK2D,cAAgB8F,EAAiBjH,QAEtCxC,EAAKsG,KAAKtE,WAAWhC,EAAKyD,SAAUL,EAA2B,IAAhBsG,GAAsBjC,EAA2EvJ,EAAgBuL,EAAiBhK,KAAK,sBAAuBO,EAAKoE,YAAcwF,EAAjJH,EAAiBhK,KAAK,sBAAsBrB,SAASC,KAAO,IAE3IyJ,aAAa9H,EAAK+H,iBAElB/H,EAAK+H,gBAAkBC,YAAW,WAC1BP,GAAWzH,EAAKsG,MAAQtG,EAAKsG,KAAK/F,MAAMzE,OAAS,EACjDkE,EAAKsG,KAAKhG,WAAW6B,OAAO,CAAEI,UAAYvC,EAAKsG,KAAK/F,MAAM,GAAG1C,QAAQI,QAAS6C,SAAU,IAAKwB,KAAM/H,EAAW0N,cAE9GjI,EAAKsG,KAAKhG,WAAW6B,OAAO,CAAEI,SAAUvC,EAAKsG,KAAK/F,MAAM,GAAG1C,QAAQI,QAAS6C,SAAU,IAAKwB,KAAM/H,EAAW0N,aAEpH,GAAG,SACA,CACH,IAAIoC,EAAoBvQ,KAAKsK,WAAW3E,KAAK,IAAMvE,GAC/CoP,EAAuB,WACvB,GAAwB,GAApBtK,EAAKmJ,YAAkB,CACvB,IAAI/H,EAAOpB,EAAKsG,KAAK/F,MAAM,GACvB2B,EAAgBhE,EAAgBuL,EAAiBhK,KAAK,sBAAuBO,EAAKoE,YACtFhD,EAAKvB,eAAe,OAASqC,EAAgBd,EAAKvD,QAAQI,QAAW,IAAM,IAC/E,CACAnE,KAAK8M,YAAc,KACnByD,EAAkBE,IAAI,gBAAkBnP,EAAIkP,EAChD,EACAD,EAAkBtH,GAAG,gBAAkB3H,EAAIkP,EAC/C,CACJ,EAEAhC,SAAU,WACN,IAAItI,EAAOlG,KACPsG,EAAUJ,EAAKI,QAEdJ,EAAKgJ,qBAAoB,IAAU5I,EAAQuC,aAAe7H,IAC3DkF,EAAKyD,UAAW,EAChBzD,EAAKuJ,aAGTvJ,EAAKuI,eACT,EAEAvD,OAAQ,SAASkC,GACb,IAAI9G,EAAUtG,KAAKsG,QACfpB,EAAcjF,EAAEmN,GAAOzH,KAAK,oBAC5B+K,EAAczQ,EAAEmN,GAAOzH,KAAK,WAC5BgL,EAAW1Q,EAAEmN,GAAOzH,KAAK,gBAExBT,EAAY+F,SAAS,iBAItB3E,EAAQ7D,aAAe6D,EAAQ9D,mBAC/BkO,EAAYhL,KAAK,iBAAiB,GAGtCR,EAAY2J,YAAY,eAExB1O,EAAMyQ,GAAGD,GAAUzF,OAAO,YAAY2F,OAAOC,OACjD,EAEA3F,SAAU,SAASiC,GACf,IAAI9G,EAAUtG,KAAKsG,QACfpB,EAAcjF,EAAEmN,GAAOzH,KAAK,oBAC5B+K,EAAczQ,EAAEmN,GAAOzH,KAAK,WAC5BgL,EAAW1Q,EAAEmN,GAAOzH,KAAK,gBAEzBT,EAAY+F,SAAS,iBAIrB3E,EAAQ7D,aAAe6D,EAAQ9D,mBAC/BkO,EAAYhL,KAAK,iBAAiB,GAGtCR,EAAY4D,SAAS,eAErB3I,EAAMyQ,GAAGD,GAAUzF,OAAO,YAAY2F,OAAOlN,UACjD,EAEAoN,MAAO,WACH,OAAO/Q,KAAK+D,QAAQ4B,KAAK,eAC7B,EAEAqL,eAAgB,WACZ,IAAI9K,EAAOlG,KACXgO,aAAa9H,EAAK+K,eAClB/K,EAAK+K,cAAgB/C,YAAW,WAC5BhI,EAAKgL,gBACLhL,EAAKsG,KAAKhF,iBACd,GACJ,EAEA2J,OAAQ,WACUnR,KAAKsG,QACPuC,aAAe7H,IACvBhB,KAAKkR,gBACLlR,KAAKwM,KAAKhF,kBAElB,EAEA0J,cAAe,WACX,IAEI/M,EAFA+B,EAAOlG,KACPqP,EAAcE,KAAKW,MAAMhK,EAAKnC,QAAQ4B,KAAK,IAAMvE,GAAqB+C,QAAU,KAGhF+B,EAAKnC,QAAQI,SAAW,KACxB+B,EAAKnC,QAAQ+E,SAAS,qBACtB3E,EAAQ,IACR+B,EAAKmJ,YAAc,EACnBnJ,EAAK+J,eAAiB9L,EACtB+B,EAAKnC,QAAQ4B,KAAK,MAAQxE,GAAgB8C,IAAI,OAAQ,OAASE,EAAQ,KACvE+B,EAAKkI,sBAELlI,EAAKnC,QAAQ8K,YAAY,qBACrBQ,GAAenJ,EAAKmJ,cACpBnJ,EAAKmJ,YAAcA,EACnBlL,EAAQ,IAAMkL,EACd7K,EAAe0B,EAAKnC,QAAQ4B,KAAK,MAAQxE,GAAiB,OAAQ,OAASgD,EAAQ,KACnF+B,EAAK+J,eAAiB9L,EACtB+B,EAAKkI,sBAIblI,EAAKuI,eACT,EAEAL,kBAAmB,WACf,IAKIhG,EACA9D,EACAwL,EAPA5J,EAAOlG,KACPmE,EAAQ+B,EAAK+J,eACb3I,EAAyB,OAAlBpB,EAAKyD,SAAoBzD,EAAKsG,KAAK/F,MAAM,GAAKP,EAAKyD,SAAWzD,EAAKsG,KAAK/F,MAAM,GAAKP,EAAKsG,KAAK/F,MAAM,GAC1G2K,EAA6BpR,KAAKsK,WAAW3E,KAAK,IAAMvE,GACxDyO,EAAM/L,EAAmBsN,GAW7B,GAJI9M,EADqB,IAArB4B,EAAKmJ,YACInJ,EAAKwD,kBAAoBvF,EAEzB+B,EAAK2D,cAAgB1F,EAE9BmD,EAAM,CACN,GAAyB,IAArBpB,EAAKmJ,YAML,OALA/H,EAAKvB,eAAe,OAAQ,OAE5BvB,EAAe4M,EAA4B,YAAa,gBADxDtB,EAAaxL,GACyE,MACtF4B,EAAK4D,kBAAoB5D,EAAK2D,mBAC9B3D,EAAKuI,gBAGLnK,GAAUiL,KAAKC,IAAIK,GAAO,KAC1BC,EAAaP,KAAKC,IAAIK,IAASvL,GAAUiL,KAAKC,IAAIK,GAAO,KAAQ1L,GACjE+B,EAAKkJ,MAAQU,EACbtL,EAAe4M,EAA4B,YAAa,eAAiBtB,EAAa,MACtF5J,EAAK4D,kBAAoB5D,EAAK2D,cAAgB3D,EAAKmJ,YAAc,GAE5D/K,GAAUiL,KAAKC,IAAIK,IACxBC,EAAaxL,EACb4B,EAAKkJ,MAAQU,EACbtL,EAAe4M,EAA4B,YAAa,eAAiBtB,EAAa,MACtF5J,EAAK4D,kBAAoB5D,EAAK2D,gBAG9BzB,EAAgBhE,EADAgN,EAA2BzL,KAAK,MAAQxE,GAAgBgP,GAAGjK,EAAK2D,eAAelE,KAAK,sBACrDO,EAAKoE,YACpDhD,EAAKvB,eAAe,OAASqC,EAAgBd,EAAKvD,QAAQI,QAAW,IAAM,KAC3E+B,EAAK4D,kBAAoByF,KAAK8B,MAAM9B,KAAKC,IAAIK,GAAO1L,IAExD,IAAIoM,EAAoBvQ,KAAKsK,WAAW3E,KAAK,IAAMvE,GAC/CoP,EAAuB,WACvB,GAAwB,GAApBtK,EAAKmJ,YAAkB,CACvB,IAAI/H,EAAOpB,EAAKsG,KAAK/F,MAAM,GAEvB2B,EAAgBhE,EADD8B,EAAKoE,WAAW3E,KAAK,IAAMxE,GAAgBgP,GAAGjK,EAAK2D,eACrBlE,KAAK,sBAAuBO,EAAKoE,YAClFhD,EAAKvB,eAAe,OAASqC,EAAgBd,EAAKvD,QAAQI,QAAW,IAAM,IAC/E,CACAoM,EAAkBE,IAAI,gBAAkBnP,EAAIkP,EAChD,EACAD,EAAkBtH,GAAG,gBAAkB3H,EAAIkP,EAC/C,CAEAtK,EAAKuI,eACT,EAEA6C,gBAAiB,WACb,IAIIC,EAJArL,EAAOlG,KACPwR,EAAoBtL,EAAKoE,WAAW3E,KAAK,sBAAsB0K,QAC/D/G,EAAWpD,EAAKqD,WAAWiE,OAAO,GAClC/K,EAAcyD,EAAKI,QAAQ7D,YAG/ByD,EAAKoJ,UAAYpJ,EAAKoE,WAAW3E,KAAK,IAAMxE,GAAgBa,OAE5DkE,EAAK2D,cAAgB,EAErB3D,EAAKsG,KAAKnF,YAEVnB,EAAKsG,KAAKhF,kBAEVtB,EAAKsG,KAAKtE,WAAWhC,EAAKyD,SAAUL,EAAUlF,EAAgBoN,EAAmBtL,EAAKoE,aAEtFpE,EAAKuI,gBAELvI,EAAKuL,oBAAsBvL,EAAK8K,eAAe5J,KAAKlB,GAEpD/F,EAAMuR,OAAOtR,QAAQ6I,GAAG,SAAW3H,EAAI4E,EAAKuL,qBAC5CvL,EAAKoE,WAAWrB,GAAG,QAAS5H,EAA4B6E,EAAKiH,iBAAiB/F,KAAKlB,IACnFA,EAAKoE,WAAWrB,GAAG,QAAS,qCAAsC/C,EAAKmI,gBAAgBjH,KAAKlB,IAExFzD,IACAyD,EAAKoE,WACA3E,KAAK,+CACLD,KAAK,OAAQ,QACbA,KAAK,eAAe,GAEzBQ,EAAKoE,WAAW3E,KAAKtE,GAChBqE,KAAK,iBAAiB,GACtB2K,QACA3K,KAAK,iBAAiB,GAE3BQ,EAAK6G,QAAU5M,EAAMwR,OACrBzL,EAAKsE,gBACAvB,GAAG,QAAU3H,GAAI,WACd4E,EAAKsG,KAAK/F,MAAM,GAAGzB,cAAcU,KAAK,KAAMQ,EAAK6G,SAE7C7G,EAAK+G,gBACL/G,EAAK+G,eAAenE,SAAS,UAErC,IACCG,GAAG,WAAa3H,GAAI,WACb4E,EAAK+G,gBACL/G,EAAK+G,eAAe4B,YAAY,UAExC,IACC5F,GAAG,UAAY3H,GAAI,SAAS8J,GACzB,IAAIwG,EAEAC,EACAtD,EAFAgD,EAAUrL,EAAK+G,eAIf/G,EAAK4G,cAIL1B,EAAEC,SAAW1K,EAAKmR,OAClBF,GAAU,GACVrD,EAAOgD,EAAQjB,QAAQjP,GAA4BgP,SAE1CrO,UACL6P,EAAazN,EAAgBmK,EAAMrI,EAAKoE,aAEvB,GAAKuH,EAAatD,EAAKvD,SAAS7G,SAC7C+B,EAAK4G,aAAc,EACnB5G,EAAK6H,iBACL7H,EAAKsI,WACLtI,EAAKwH,KAAKa,IAEVrI,EAAKiH,iBAAiB,CAAEI,cAAegB,MAM/CnD,EAAEC,SAAW1K,EAAKoR,QAClBH,GAAU,GACVrD,EAAOgD,EAAQnB,QAAQ/O,GAA4BgP,SAE1CrO,UACL6P,EAAazN,EAAgBmK,EAAMrI,EAAKoE,aAEvB,GAAKuH,EAAatD,EAAKvD,SAAS7G,SAC7C+B,EAAK4G,aAAc,EACnB5G,EAAK6H,iBACL7H,EAAKqI,OACLrI,EAAKwH,KAAKa,IAEVrI,EAAKiH,iBAAiB,CAAEI,cAAegB,MAK/CqD,GAEAxG,EAAEK,iBAEV,IAEJ8F,EAAUrL,EAAKsE,gBAAgB7E,KAAK,IAAMxE,GAAgBgP,GAAGjK,EAAK2D,eAElE3D,EAAK8G,YAAYuE,GACjBA,EAAQ1C,YAAY,WAE5B,EAEA7B,YAAa,SAASuB,GAClB,GAAKA,EAAL,CAGA,IAAIyD,EAAK7R,EAAMwR,OACXzL,EAAOlG,KAEXkG,EAAK6H,iBACL7H,EAAKsE,gBAAgB9E,KAAK,wBAAyBsM,GAEnDzD,EAAK7I,KAAK,KAAMsM,GAAIlJ,SAAS,WAE7ByF,EAAK0D,WAAWnM,WAAW,oBAEQ,SAA/ByI,EAAK7I,KAAK,mBACV6I,EAAK7I,KAAK,mBAAoBQ,EAAK6G,SACnC7G,EAAKsG,KAAK/F,MAAM,GAAGzB,cAAcU,KAAK,KAAMQ,EAAK6G,UAGrD7G,EAAK+G,eAAiBsB,CAhBtB,CAiBJ,EAEAR,eAAgB,WACR/N,KAAKiN,gBACLjN,KAAKiN,eACA4B,YAAY,WACZ/I,WAAW,MACXA,WAAW,oBAEpB9F,KAAKwK,gBAAgB1E,WAAW,wBACpC,EAEAkE,cAAe,SAAST,GACpB,IAAIrD,EAAOlG,KACPsG,EAAUJ,EAAKI,QAEnBiD,EAAa3I,EAAQ2I,GAAc,CAAE/I,KAAM+I,GAAeA,EAEtDrD,EAAKqD,YAAcrD,EAAKgM,SACxBhM,EAAKqD,WAAWZ,OAAOpH,EAAQ2E,EAAKgM,UAEpClS,KAAKkS,SAAWhM,EAAKiM,QAAQ/K,KAAKlB,GAGtClG,KAAKuJ,WAAahJ,EAAW6R,OAAO7I,GA1jCpD,YA2jCoBvJ,KAAKuJ,WAAW8I,QAChBrS,KAAKuJ,WAAW8I,MAAQ,CAAC,CAAEC,MAAOhM,EAAQsF,cAAe2G,IAAK,SAGlErM,EAAKqD,WAAWnC,KAAK7F,EAAQ2E,EAAKgM,UAE9B5L,EAAQkM,UACRxS,KAAKuJ,WAAWkJ,OAExB,EAEAN,QAAS,WACL,IAAIjM,EAAOlG,KACPsG,EAAUJ,EAAKI,QAEf9F,EAAOR,KAAKuJ,WAAWiE,OAEvBlH,EAAQuC,aAAe7H,IACvBkF,EAAKoE,WAAWoI,QAAQvM,SACxBD,EAAKnC,QAAQ4B,KAAK,2BAA2BQ,SAC7CD,EAAK6C,eAGT7C,EAAKwD,kBAAoB,EACzBxD,EAAKyD,SAAW,KAChBzD,EAAK0D,WAAa,EAClB1D,EAAK2D,cAAgB,EACrB3D,EAAK4D,kBAAoB,EACzB5D,EAAKmJ,YAAc,KACnBnJ,EAAKkJ,KAAO,EAEZlJ,EAAK6D,yBAEDvJ,EAAKwB,SACuB,eAAxBsE,EAAQuC,aACR3C,EAAKkG,yBAAyB5L,GAC9B0F,EAAKgL,gBACLhL,EAAKoL,mBAGLpL,EAAKwF,uBAAuBlL,IAIpC0F,EAAKa,QAAQ,YAAa,CAAE0C,OAAQvD,GACxC,EAEAD,QAAS,WACL,IAAIK,EAAUtG,KAAKsG,QAEnBjG,EAAOqG,GAAGT,QAAQU,KAAK3G,MAEnBA,KAAKiR,eACLjD,aAAahO,KAAKiR,eAGlBjR,KAAKiO,iBACLD,aAAahO,KAAKiO,iBAGtBhO,EAAEG,QAAQqQ,IAAI,SAAWnP,EAAItB,KAAKyR,qBAElCzR,KAAKyR,oBAAsB,KAE3BzR,KAAK+D,QAAQ0M,MAETnK,EAAQuC,aAAe7H,IACnBhB,KAAKwM,MACLxM,KAAKwM,KAAKvG,UAGdjG,KAAKsK,WAAW3E,KAAK,IAAMvE,GAAqBqP,MAChDzQ,KAAK+D,QAAQ4B,KAAK,qBAAqB8K,MACvCzQ,KAAKsK,WAAWmG,MAEhBzQ,KAAK0J,kBACL1J,KAAKsP,UACLtP,KAAKqP,YACLrP,KAAK6J,cACL7J,KAAK4J,WACL5J,KAAK0K,YACL1K,KAAKyK,YACLzK,KAAK+D,QACL/D,KAAKsK,WACLtK,KAAKwM,KAAO,MAGhBrM,EAAM8F,QAAQjG,KAAK+D,SAEnB/D,KAAKqM,mBAAqBrM,KAAK+D,QAAU,IAC7C,EAEAuC,QAAS,CACLkM,UAAU,EACVvN,KAAM,WACN4D,YAAa,WACb9F,WAAY,cACZC,gBAAgB,EAChBR,mBAAmB,EACnBqI,iBAAiB,EACjBgB,eAAgB,QAChBD,cAAe,OACfE,kBAAmB,WACnBC,qBAAsB,cACtBC,gBAAiB,SACjBC,iBAAkB,UAClBC,mBAAoB,WACpBzJ,aAAa,GAGjBkQ,OAAQ,CACJ,WACA,YACA,SACA,cACA,SACA,cAGZxS,EAAMG,GAAGsS,OAAOhK,EACnB,CAnrCD,CAmrCGxI,OAAOD,MAAMuR,QACFvR,KAIjB","sourcesContent":["(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.fx.js'), require('kendo.data.js'), require('kendo.draganddrop.js'), require('kendo.icons.js')) :\n    typeof define === 'function' && define.amd ? define(['kendo.fx', 'kendo.data', 'kendo.draganddrop', 'kendo.icons'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotimeline = global.kendotimeline || {}, global.kendotimeline.js = factory()));\n})(this, (function () {\n    var __meta__ = {\n        id: \"timeline\",\n        name: \"Timeline\",\n        category: \"web\",\n        description: \"The Kendo Timeline widget display events over time\",\n        depends: [ \"userevents\", \"icons\" ]\n    };\n\n    (function($, undefined$1) {\n        var kendo = window.kendo,\n            ui = kendo.ui,\n            Widget = ui.Widget,\n            DataSource = kendo.data.DataSource,\n            Transition = kendo.effects.Transition,\n            keys = kendo.keys,\n            isArray = Array.isArray,\n            encode = kendo.htmlEncode,\n\n            LEFT_PAGE = -1,\n            CETER_PAGE = 0,\n            RIGHT_PAGE = 1,\n            VERTICAL = \"vertical\",\n            TRANSITION_END = \"transitionEnd\",\n            VIRTUAL_PAGE_COUNT = 3,\n            VIRTUAL_PAGE_CLASS = \"timeline-event\",\n            FLAGWRAPCLASS = \"k-timeline-flag-wrap\",\n            TRACKITEMCLASS = \"k-timeline-track-item\",\n            SCROLLABLEWRAPCLASS = \"k-timeline-scrollable-wrap\",\n            TRACKITEM_NOTFLAG_SELECTOR = \".k-timeline-track-item:not(.k-timeline-flag-wrap)\",\n            NS = \".kendoTimeline\",\n            CHANGE = \"change\",\n            DEFAULTHORIZONTALCARDTEMPLATE = (args) => {\n                let titleField = args.titleField, subtitleField = args.subtitleField, descriptionField = args.descriptionField, imagesField = args.imagesField, actionsField = args.actionsField, altField = args.altField, data = args.data;\n\n                return '<div class=\"k-card-inner\">' +\n                    '<div class=\"k-card-header\">' +\n                        (data[titleField] ? `<div class=\"k-card-title\"><span class=\"k-event-title\">${encode(data[titleField])}</span></div>` : '') +\n                        (data[subtitleField] ? `<div class=\"k-card-subtitle\">${encode(data[subtitleField])}</div>` : '') +\n                    '</div>' +\n                    '<div class=\"k-card-body\">' +\n                        '<div class=\"k-card-description\">' +\n                            (data[descriptionField] ? `<p>${encode(data[descriptionField])}</p>` : '') +\n                            (data[imagesField] && data[imagesField].length > 0 ?\n                            `<img src=\"${encode(data[imagesField][0].src)}\" ${data[altField] ? `alt=\"${encode(data[altField])}\"` : ''} class=\"k-card-media\" />`\n                            : '' ) +\n                        '</div>' +\n                    '</div>' +\n                    (data[actionsField] && data[actionsField].length > 0 ?\n                    '<div class=\"k-actions k-card-actions\">' +\n                        data[actionsField].map(action =>\n                            `<a class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary\" href=\"${action.url ? encode(action.url) : \"#\"}\">` +\n                                `<span class=\"k-button-text\">${encode(action.text)}</span>` +\n                            '</a>'\n                            ).join('') +\n                    '</div>'\n                    : '') +\n                '</div>';\n            },\n            DEFAULTVERTICALCARDTEMPLATE = (args) => {\n                let titleField = args.titleField, subtitleField = args.subtitleField, descriptionField = args.descriptionField, imagesField = args.imagesField, navigatable = args.navigatable, collapsibleEvents = args.collapsibleEvents, actionsField = args.actionsField, altField = args.altField, data = args.data;\n                return '<div class=\"k-card-inner\">' +\n                    '<div class=\"k-card-header\">' +\n                        '<div class=\"k-card-title\">' +\n                            (data[titleField] ? `<span class=\"k-event-title\">${encode(data[titleField])}</span>` : '') +\n                            (collapsibleEvents ?\n                                '<span class=\"k-event-collapse k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button\">' +\n                                    kendo.ui.icon({ icon: \"chevron-right\", iconClass: \"k-button-icon\" }) +\n                                '</span>'\n                                : ''\n                            ) +\n                        '</div>' +\n                        (data[subtitleField] ? `<div class=\"k-card-subtitle\">${encode(data[subtitleField])}</div>` : '') +\n                    '</div>' +\n                    '<div class=\"k-card-body\">' +\n                        '<div class=\"k-card-description\">' +\n                            (data[descriptionField] ? `<p>${encode(data[descriptionField])}</p>` : '') +\n                            (data[imagesField] && data[imagesField].length > 0 ?\n                                `<img src=\"${encode(data[imagesField][0].src)}\" ${data[altField] ? `alt=\"${encode(data[altField])}\"` : ''} class=\"k-card-media\" />`\n                            : '') +\n                        '</div>' +\n                    '</div>' +\n                    (data[actionsField] && data[actionsField].length > 0 ?\n                    '<div class=\"k-actions k-card-actions\">' +\n                        data[actionsField].map(action =>\n                            `<a class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-primary\" href=\"${action.url ? encode(action.url) : \"#\"}\">` +\n                                `<span class=\"k-button-text\">${encode(action.text)}</span>` +\n                            '</a>'\n                            ).join('') +\n                    '</div>'\n                    : '') +\n                '</div>';\n            },\n            HORIZONTALTRACKTEMPLATE = (args) => {\n                let itemTemplate = args.itemTemplate, dateField = args.dateField, dateFormat = args.dateFormat, showDateLabels = args.showDateLabels, data = args.data, year = 0;\n                let result = '';\n                for (var i = 0; i < data.length; i++) {\n                    if (!(data[i][dateField] instanceof Date)) {\n                        continue;\n                    }\n                    let currentYear = data[i][dateField].getFullYear();\n                    if (year != currentYear) {\n                        year = currentYear;\n                        result +=\n                        '<li class=\"k-timeline-track-item k-timeline-flag-wrap\">' +\n                            `<span class=\"k-timeline-flag\">${year}</span>` +\n                        '</li>';\n                    }\n\n                    result +=\n                    '<li class=\"k-timeline-track-item\" role=\"tab\">' +\n                        '<div class=\"k-timeline-date-wrap\">' +\n                             (showDateLabels ? `<span class=\"k-timeline-date\">${kendo.toString(data[i][dateField], dateFormat)}</span>` : '') +\n                        '</div>' +\n                        '<span class=\"k-timeline-circle\"></span>' +\n                    '</li>';\n                }\n\n                return result;\n            },\n            VERTICALEVENTSTEMPLATE = (args) => {\n                let itemTemplate = args.itemTemplate, dateField = args.dateField, titleField = args.titleField, descriptionField = args.descriptionField, subtitleField = args.subtitleField, imagesField = args.imagesField, actionsField = args.actionsField, alterMode = args.alterMode, collapsibleEvents = args.collapsibleEvents, dateFormat = args.dateFormat, showDateLabels = args.showDateLabels, navigatable = args.navigatable, altField = args.altField, data = args.data, counter = 0, year = 0, reverse = false;\n                let result = '';\n\n                for (var i = 0; i < data.length; i++) {\n                    if (!(data[i][dateField] instanceof Date)) {\n                        continue;\n                    }\n                    var currentYear = data[i][dateField].getFullYear();\n                    if (currentYear != year) {\n                        year = currentYear;\n                        result +=\n                        '<li class=\"k-timeline-flag-wrap\">' +\n                            `<span class=\"k-timeline-flag\">${year}</span>` +\n                        '</li>';\n                    }\n\n                    reverse = counter % 2 === 0 && alterMode;\n                    result +=\n                    `<li class=\"${reverse ? 'k-timeline-event k-reverse' : 'k-timeline-event'}\" data-uid=\"${encode(data[i].uid)}\">` +\n                        '<div class=\"k-timeline-date-wrap\">' +\n                            (showDateLabels ?\n                                `<span id=\"${encode(data[i].uid)}-date\" class=\"k-timeline-date\">${kendo.toString(data[i][dateField], dateFormat)}</span>`\n                            : '') +\n                        '</div>' +\n                        '<span class=\"k-timeline-circle\"></span>' +\n                        `<div class=\"${collapsibleEvents ? 'k-timeline-card k-collapsed' : 'k-timeline-card'}\">` +\n                            `<div aria-expanded=\"false\" class=\"k-card k-card-vertical k-card-with-callout\" ${navigatable ? `aria-describedby=\"${encode(data[i].uid)}-date\" tabindex=\"0\" role=\"button\" aria-live=\"polite\" aria-atomic=\"true\"` : ''} >` +\n                                `<span class=\"${reverse ? 'k-timeline-card-callout k-card-callout k-callout-e' : 'k-timeline-card-callout k-card-callout k-callout-w'}\"></span>` +\n                                `${itemTemplate({ titleField: titleField, subtitleField: subtitleField, descriptionField: descriptionField, imagesField: imagesField, actionsField: actionsField, data: data[i], altField: altField, navigatable: navigatable, collapsibleEvents: collapsibleEvents })}` +\n                            '</div>' +\n                        '</div>' +\n                    '</li>';\n                    counter ++;\n                }\n\n                return result;\n            },\n            ARROWSHTML =\n            '<button disabled tabindex=\"-1\" aria-hidden=\"true\" class=\"k-button k-button-md k-rounded-full k-button-solid k-button-solid-base k-icon-button k-timeline-arrow k-timeline-arrow-left k-disabled\" title=\"previous\">' +\n                kendo.ui.icon({ icon: \"caret-alt-left\", iconClass: \"k-button-icon\" }) +\n            '</button>' +\n            '<button disabled tabindex=\"-1\" aria-hidden=\"true\" class=\"k-button k-button-md k-rounded-full k-button-solid k-button-solid-base k-icon-button k-timeline-arrow k-timeline-arrow-right k-disabled\" title=\"next\">' +\n                kendo.ui.icon({ icon: \"caret-alt-right\", iconClass: \"k-button-icon\" }) +\n            '</button>';\n\n            function className(name) {\n                return \"k-\" + name;\n            }\n\n            function calculateTransform(element) {\n                var matrix = element.css('transform');\n                var x;\n                var values;\n\n                if (matrix != \"none\") {\n                    values = matrix.match(/-?[\\d\\.]+/g);\n                    x = values[4];\n                    return (x / element.width() * 100);\n                } else {\n                    return 0;\n                }\n            }\n\n            function calculateOffset(element, parentElement) {\n                return element.offset().left - parentElement.offset().left + element.width() / 2;\n            }\n\n            function applyCssStyles(element, property, value) {\n                element.css(property, value);\n            }\n\n            var Page = kendo.Class.extend({\n                init: function(container) {\n                    this.cardContainer = $(\"<div class='k-card k-card-vertical k-card-with-callout' role='tabpanel'/>\");\n                    var cardWrapper = $(\"<div class='k-timeline-card'></div>\").append(this.cardContainer);\n\n                    this.element = $(\"<li class='\" + className(VIRTUAL_PAGE_CLASS) + \"'></li>\").append(cardWrapper);\n                    container.append(this.element);\n                },\n\n                content: function(htmlContent, uid, label) {\n                    var callOut = $(\"<span class='k-timeline-card-callout k-card-callout k-callout-n'></span>\");\n                    this.cardContainer.html(htmlContent);\n                    this.cardContainer.prepend(callOut);\n                    this.element.attr(\"data-uid\", uid);\n                    this.element.find(\".k-card\").attr({\n                        role: \"tabpanel\",\n                        \"aria-label\": label\n                    });\n                },\n\n                position: function(position) { //position can be -1, 0, 1\n                    this.element.css(\"transform\", \"translate3d(\" + this.element.width() * position + \"px, 0, 0)\");\n\n                    if (position === 0) {\n                        this.element.find(\".k-card\").attr(\"tabindex\", 0);\n                    } else {\n                        this.element.find(\".k-card\").removeAttr(\"tabindex\");\n                    }\n                },\n\n                setPageCallout: function(propery, value) {\n                    var element = this.element;\n                    var callOutElement = element.find(\".k-timeline-card-callout\");\n                    callOutElement.css(propery, value);\n                },\n\n                destroy: function() {\n                    var that = this;\n\n                    that.cardContainer = null;\n                    that.element.remove();\n                    that.element = null;\n                }\n            });\n\n            var HorizontalPane = kendo.Observable.extend({\n                init: function(element, options) {\n                    var that = this;\n\n                    kendo.Observable.fn.init.call(this);\n\n                    this.element = element;\n\n                    var movable,\n                        transition,\n                        pages;\n\n                    movable = new kendo.ui.Movable(that.element);\n\n                    transition = new Transition({\n                        axis: \"x\",\n                        movable: movable,\n                        onEnd: function() {\n                            that.trigger(TRANSITION_END);\n                        }\n                    });\n\n                    pages = [];\n\n                    $.extend(that, {\n                        duration: options && options.duration || 1,\n                        movable: movable,\n                        transition: transition,\n                        pages: pages,\n                        eventTemplate: options.eventTemplate,\n                        eventHeight: options.eventHeight,\n                        dataFieldMappings: options.dataFieldMappings,\n                        dateFormat: options.dateFormat\n                    });\n\n                    this.bind([TRANSITION_END], options);\n                },\n\n                initPages: function() {\n                    var pages = this.pages,\n                    element = this.element,\n                    page;\n\n                    for (var i = 0; i < VIRTUAL_PAGE_COUNT; i++) {\n                        page = new Page(element);\n                        pages.push(page);\n                    }\n                },\n\n                repositionPages: function() {\n                    var pages = this.pages;\n\n                    pages[0].position(LEFT_PAGE);\n                    pages[1].position(CETER_PAGE);\n                    pages[2].position(RIGHT_PAGE);\n                },\n\n                setPageContent: function(page, data) {\n                    var template = typeof this.eventTemplate === Function ? this.eventTemplate : kendo.template(this.eventTemplate);\n                    var dataFieldMappings = this.dataFieldMappings;\n                    var label = kendo.toString(data.date, this.dateFormat);\n                    var html;\n\n                    html = template({\n                        data: data,\n                        titleField: dataFieldMappings.title,\n                        subtitleField: dataFieldMappings.subtitle,\n                        descriptionField: dataFieldMappings.description,\n                        imagesField: dataFieldMappings.images,\n                        actionsField: dataFieldMappings.actions,\n                        altField: dataFieldMappings.altField\n                    });\n\n                    page.content(html, data.uid, label);\n                },\n                updatePage: function(isForward, data, calloutOffset) {\n                    var pages = this.pages;\n                    var page = isForward === null ? pages[1] : isForward ? pages[pages.length - 1] : pages[0];\n\n                    this.setPageContent(page, data);\n                    page.setPageCallout(\"left\", (calloutOffset / page.element.width()) * 100 + \"%\");\n                },\n\n                moveTo: function(offset) {\n                    this.movable.moveAxis(\"x\", -offset);\n                },\n\n                transitionTo: function(offset, ease) {\n                    this.transition.moveTo({ location: offset, duration: this.duration, ease: ease });\n                },\n                destroy: function() {\n                    var that = this;\n\n                    for (var index = 0; index < that.pages.length; index++) {\n                        that.pages[index].destroy();\n                    }\n\n                    that.unbind();\n\n                    that.movable =\n                    that.transition =\n                    that.dataFieldMappings =\n                    that.eventTemplate =\n                    that.duration =\n                    that.pages = null;\n                }\n            });\n\n            var Timeline = kendo.ui.Widget.extend({\n                init: function(element, options) {\n                    var that = this;\n                    var orientation = options.orientation || that.options.orientation;\n\n                    Widget.fn.init.call(this, element, options);\n\n                    this.element.addClass(orientation === VERTICAL ? \"k-timeline k-timeline-vertical\" : \"k-timeline k-timeline-horizontal\");\n\n                    if (orientation != VERTICAL) {\n                        that._horizontal();\n                    } else {\n                        that._vertical();\n                    }\n\n                    this.element.on(\"click\", \".k-card-actions\", function(ev) {\n                        var action = $(ev.target);\n                        var dataItemUid = $(ev.target).closest(\".k-timeline-event\").data(\"uid\");\n                        var dataItem = that.dataSource.getByUid(dataItemUid);\n\n                        that.trigger(\"actionClick\", { sender: that, element: action, dataItem: dataItem });\n                    });\n\n                    that.currentEventIndex = 0;\n                    that._forward = null;\n                    that._eventPage = 1;\n                    that._currentIndex = 0;\n                    that._firstIndexInView = 0;\n\n                    that._initDataFieldMappings();\n\n                    that.setDataSource(options.dataSource);\n                },\n\n                _horizontal: function() {\n                    var that = this;\n                    var element = this.element;\n                    var options = this.options;\n\n                    var trackWrap = $(\"<div />\");\n                    var trackEl = $(\"<div />\");\n                    var scrollableWrap = $(\"<ul role='tablist' tabindex='0' />\");\n                    var eventsWrap = $(\"<div />\");\n                    var eventsList = $(\"<ul />\");\n\n                    that._trackWrap = trackWrap;\n                    that._trackEl = trackEl;\n                    that._scrollableWrap = scrollableWrap;\n                    that._eventsWrap = eventsWrap;\n                    that._eventsList = eventsList;\n\n                    trackWrap.addClass(\"k-timeline-track-wrap\");\n                    trackEl.addClass(\"k-timeline-track\");\n                    scrollableWrap.addClass(SCROLLABLEWRAPCLASS);\n                    eventsWrap.addClass(\"k-timeline-events-list\");\n                    eventsList.addClass(SCROLLABLEWRAPCLASS);\n\n                    if (options.eventHeight) {\n                        eventsList.height(options.eventHeight);\n                    }\n\n                    trackEl.append(scrollableWrap);\n                    trackWrap.append(ARROWSHTML);\n                    trackWrap.append(trackEl);\n                    eventsWrap.append(eventsList);\n\n                    trackWrap.appendTo(element);\n                    eventsWrap.appendTo(element);\n                },\n\n                _vertical: function() {\n                    var that = this;\n                    var options = this.options;\n                    var element = this.element;\n                    var eventsList = that._eventsList = $(\"<ul />\");\n                    var navigatable = options.navigatable;\n                    var collapsibleEvents = options.collapsibleEvents;\n\n                    that.element.append(eventsList);\n\n                    if (options.alternatingMode) {\n                        element.addClass(\"k-timeline-alternating\");\n                    }\n\n                    if (collapsibleEvents) {\n                        element.addClass(\"k-timeline-collapsible\");\n\n                        this.element.on(\"click\", \".k-card-header\", function() {\n                            var card = $(this).closest(\".k-timeline-card\");\n                            var itemWrapper = card.parent();\n                            var dataItem = that.dataSource.getByUid(itemWrapper.data(\"uid\"));\n\n                            if (card.hasClass(\"k-collapsed\")) {\n                                if (!that.trigger(\"expand\", { sender: that, dataItem: dataItem })) {\n                                    that.expand(itemWrapper);\n                                }\n                            } else {\n                                if (!that.trigger(\"collapse\", { sender: that, dataItem: dataItem })) {\n                                    that.collapse(itemWrapper);\n                                }\n                            }\n                        });\n                    }\n\n                    if (navigatable) {\n                        if (collapsibleEvents) {\n                            this.element.on(\"keydown\" + NS, that, function(e) {\n                                if (e.keyCode == keys.SPACEBAR || e.keyCode == keys.ENTER) {\n                                    var target = $(e.target);\n                                    var header = target.find(\".k-card-header\");\n                                    if (header.length) {\n                                        e.preventDefault();\n                                        header.trigger(\"click\");\n                                    }\n                                }\n                            });\n                        }\n                    }\n                },\n\n                _renderContentVertical: function(data) {\n                    var that = this;\n                    var options = that.options;\n                    var html;\n                    var itemTemplate;\n\n                    if (typeof options.eventTemplate === Function) {\n                        itemTemplate = options.eventTemplate;\n                    } else {\n                        itemTemplate = options.eventTemplate ? kendo.template(options.eventTemplate) : kendo.template(DEFAULTVERTICALCARDTEMPLATE, { useWithBlock: false });\n                    }\n\n                    var template = kendo.template(VERTICALEVENTSTEMPLATE, { useWithBlock: false });\n\n                    html = template({\n                        data: data,\n                        dateField: options.dataDateField,\n                        titleField: options.dataTitleField,\n                        subtitleField: options.dataSubtitleField,\n                        descriptionField: options.dataDescriptionField,\n                        imagesField: options.dataImagesField,\n                        actionsField: options.dataActionsField,\n                        itemTemplate: itemTemplate,\n                        alterMode: options.alternatingMode,\n                        collapsibleEvents: options.collapsibleEvents,\n                        dateFormat: options.dateFormat,\n                        showDateLabels: options.showDateLabels,\n                        altField: options.dataImagesAltField,\n                        navigatable: options.navigatable\n                    });\n\n                    this._eventsList.html(html);\n\n                    if (options.eventWidth) {\n                        that.element.find(\".k-card\").width(options.eventWidth);\n                    }\n                },\n\n                _renderContentHorizontal: function(data) {\n                    var that = this;\n                    var options = that.options;\n                    var html;\n                    var itemTemplate;\n                    var dataFieldMappings = that._dataFieldMappings;\n\n                    if (typeof options.eventTemplate === Function) {\n                        itemTemplate = options.eventTemplate;\n                    } else {\n                        itemTemplate = options.eventTemplate ? kendo.template(options.eventTemplate) : kendo.template(DEFAULTHORIZONTALCARDTEMPLATE, { useWithBlock: false });\n                    }\n\n                    var trackTemplate = kendo.template(HORIZONTALTRACKTEMPLATE, { useWithBlock: false });\n\n                    html = trackTemplate({\n                        data: data,\n                        itemTemplate: itemTemplate,\n                        dateFormat: options.dateFormat,\n                        dateField: options.dataDateField,\n                        showDateLabels: options.showDateLabels\n                    });\n\n                    if (options.initialEventIndex) {\n                        that._trackWrap.append($(html).find(\".\" + SCROLLABLEWRAPCLASS).css(\"transform\", \"translateX(-100%)\").parent());\n                    } else {\n                        that._scrollableWrap.html(html);\n                    }\n\n                    if (that.pane) {\n                        that.pane.destroy();\n                    }\n\n                    that.pane = new HorizontalPane(that._eventsList, {\n                        transitionEnd: this._transitionEnd.bind(this),\n                        eventTemplate: itemTemplate,\n                        dataFieldMappings: dataFieldMappings,\n                        eventHeight: options.eventHeight,\n                        dateFormat: options.dateFormat\n                    });\n                },\n\n                _initDataFieldMappings: function() {\n                    var that = this;\n                    var options = that.options;\n\n                    that._dataFieldMappings = {\n                        \"title\": options.dataTitleField,\n                        \"subtitle\": options.dataSubtitleField,\n                        \"date\": options.dataDateField,\n                        \"description\": options.dataDescriptionField,\n                        \"images\": options.dataImagesField,\n                        \"actions\": options.dataActionsField,\n                        \"altField\": options.dataImagesAltField\n                    };\n                },\n\n                _transitionEnd: function() {\n                    if (this._forward) {\n                        this.pane.pages.push(this.pane.pages.shift());//forward\n                    } else {\n                        this.pane.pages.unshift(this.pane.pages.pop());//back\n                    }\n\n                    this._forward = null;\n\n                    this.pane.repositionPages();\n                    this.pane.movable.moveAxis(\"x\", 0);\n\n                    if (this.options.navigatable) {\n                        this._transition = null;\n                        this._eventsList.find(\".k-card\").removeAttr(\"id\");\n                        this.pane.pages[1].cardContainer.attr(\"id\", this._cardId);\n                        this._setCurrent(this._currentBullet);\n                    }\n                    this._animationInProgress = false;\n                },\n\n                _setCurrentEvent: function(event) {\n                    var that = this;\n                    var trackItem = $(event.currentTarget);\n                    var eventContainer;\n                    var dataItem = that.dataSource.view()[trackItem.parent().children(\":not(.k-timeline-flag-wrap)\").index(trackItem)];\n\n                    eventContainer = that._forward ? that.pane.pages[2].element : that.pane.pages[0].element;\n\n                    if (!that.trigger(\"change\", { eventContainer: eventContainer, dataItem: dataItem })) {\n                        that.open(trackItem);\n                    }\n                },\n\n                open: function(element) {\n                    var that = this;\n\n                    var trackItem = $(element);\n                    var trackItemCircle = trackItem.find(\".k-timeline-circle\");\n                    var trackItems = trackItem.parent().children(\":not(.k-timeline-flag-wrap)\");\n                    var itemIndex = trackItems.index(trackItem);\n                    var forward;\n\n                    if (this.options.navigatable) {\n                        that._removeCurrent();\n                        trackItems.attr(\"aria-selected\", false);\n                        trackItem.attr(\"aria-selected\", true);\n                        that._currentBullet = trackItem; //needed for screenreaders to announce at a later stage the item\n                    }\n\n                    var dataItem = that.dataSource.view()[itemIndex];\n\n                    if (that.currentEventIndex === itemIndex) {\n                        return;\n                    }\n\n                    that._currentIndex = trackItem.index();\n                    forward = that._forward = that.currentEventIndex < itemIndex;\n                    that.currentEventIndex = itemIndex;\n\n                    that.pane.updatePage(forward, dataItem, calculateOffset(trackItemCircle, that._trackWrap));\n\n                    if (that._forward) {\n                        clearTimeout(that.navigateTimeOut);\n                        that.navigateTimeOut = setTimeout(function() {\n                            that.pane.transition.moveTo({ location: -that.pane.pages[2].element.width(), duration: 800, ease: Transition.easeOutExpo });\n                        }, 200);\n\n                    } else {\n                        clearTimeout(that.navigateTimeOut);\n                        that.navigateTimeOut = setTimeout(function() {\n                            that.pane.transition.moveTo({ location: that.pane.pages[0].element.width(), duration: 800, ease: Transition.easeOutExpo });\n                        }, 200);\n                    }\n\n                    that._repositionEvents();\n                },\n\n                _navigateToView: function(event) {\n                    var that = this;\n                    var delta = $(event.currentTarget).hasClass(\"k-timeline-arrow-right\") ? 1 : -1;\n\n                    if (!that.trigger(\"navigate\", { sender: that, action: delta > 0 ? \"next\" : \"previous\" }) && !that._animationInProgress) {\n                        that._animationInProgress = true;\n\n                        if (delta > 0) {\n                            that.next();\n                        } else {\n                            that.previous();\n                        }\n                        that._updateArrows();\n                    }\n                },\n\n                _enableDisableArrow: function(arrow, enable) {\n                    if (enable) {\n                        arrow.removeClass(\"k-disabled\");\n                        arrow.removeAttr(\"disabled\");\n                        arrow.attr(\"aria-hidden\", false);\n                    } else {\n                        arrow.addClass(\"k-disabled\");\n                        arrow.attr(\"disabled\", \"disabled\");\n                        arrow.attr(\"aria-hidden\", true);\n                    }\n                },\n\n                _updateArrows: function() {\n                    var that = this;\n                    var arrows = that.element.find(\".k-timeline-arrow\");\n                    var leftArrow = arrows.filter(\".k-timeline-arrow-left\");\n                    var rightArrow = arrows.filter(\".k-timeline-arrow-right\");\n\n                    this._enableDisableArrow(leftArrow, !that._validateNavigation(false));\n                    this._enableDisableArrow(rightArrow, !that._validateNavigation(true));\n                },\n\n                _validateNavigation: function(next) {\n                    var that = this;\n                    var transform = that._end || 0;\n\n                    if (next) {\n                        return that._firstIndexInView + that.numOfEvents >= that.maxEvents;\n                    } else {\n                        return Math.abs(transform) <= 1;\n                    }\n                },\n\n                next: function() {\n                    var that = this;\n                    var options = that.options;\n\n                    if (!that._validateNavigation(true) && options.orientation != VERTICAL) {\n                        that._forward = true;\n                        that._navigate();\n                    }\n\n                    that._updateArrows();\n                },\n\n                _navigate: function() {\n                    var that = this;\n                    var firstEventInViewIndex;\n                    var firstEventInView;\n                    var dataItem;\n                    var width;\n                    var forward = that._forward;\n                    var end = calculateTransform(this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS));\n                    var leftOffset = forward ? - $(\".\" + SCROLLABLEWRAPCLASS).width() : $(\".\" + SCROLLABLEWRAPCLASS).width();\n                    var currentIndex = that._currentIndex;\n                    var currentPage;\n                    var firstIndexInView = that._firstIndexInView;\n\n                    end = forward ? end - 100 : end + 100;\n\n                    if (end >= 0) {\n                        end = 0;\n                    }\n\n                    that._end = end;\n\n                    width = that._tackItemWidth;\n\n                    currentPage = Math.floor(currentIndex / that.numOfEvents);\n\n                    if (forward) {\n                        if (that.numOfEvents === 1) {\n                            firstEventInViewIndex = firstIndexInView === 0 ? 1 : firstIndexInView;\n                            firstEventInView = this._trackWrap.find(\".\" + TRACKITEMCLASS).eq(firstEventInViewIndex).nextAll(\":not(.\" + FLAGWRAPCLASS + \")\").first();\n                            that._firstIndexInView = firstEventInView.index();\n                        } else {\n                            firstEventInViewIndex = firstIndexInView + that.numOfEvents - 1;\n                            firstEventInView = this._trackWrap.find(\".\" + TRACKITEMCLASS).eq(firstEventInViewIndex).nextAll(\":not(.\" + FLAGWRAPCLASS + \")\").first();\n                            that._firstIndexInView = firstIndexInView + that.numOfEvents;\n                        }\n                    } else {\n                        if (that.numOfEvents === 1) {\n                            firstEventInViewIndex = firstIndexInView;\n                            firstEventInView = this._trackWrap.find(\".\" + TRACKITEMCLASS).eq(firstEventInViewIndex).prevAll(\":not(.\" + FLAGWRAPCLASS + \")\").first();\n                            that._firstIndexInView = firstEventInView.index();\n                        } else {\n                            firstEventInViewIndex = firstIndexInView;\n                            firstEventInView = this._trackWrap.find(\".\" + TRACKITEMCLASS).eq(firstEventInViewIndex).prevAll(\":not(.\" + FLAGWRAPCLASS + \")\").first();\n                            firstEventInView = firstEventInView.length > 0 ? firstEventInView : this._trackWrap.find(\".\" + TRACKITEMCLASS + \":not(.\" + FLAGWRAPCLASS + \")\").first();\n                            that._firstIndexInView = firstIndexInView - that.numOfEvents < 0 ? 0 : firstIndexInView - that.numOfEvents;\n                        }\n                    }\n\n                    dataItem = that.dataSource.view()[this._trackWrap.find(TRACKITEM_NOTFLAG_SELECTOR).index(firstEventInView)];\n\n                    this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS).css(\"transform\", \"translateX(\" + end + \"%)\");\n\n                    if (that._currentIndex != firstEventInView.index()) {\n                        that.currentEventIndex = this._trackWrap.find(TRACKITEM_NOTFLAG_SELECTOR).index(firstEventInView);\n\n                        that._currentIndex = firstEventInView.index();\n\n                        that.pane.updatePage(that._forward, dataItem, (currentPage === 0 && !forward ? firstEventInView.find(\".k-timeline-circle\").offset().left + 15 : calculateOffset(firstEventInView.find(\".k-timeline-circle\"), that._trackWrap) + leftOffset));\n\n                        clearTimeout(that.navigateTimeOut);\n\n                        that.navigateTimeOut = setTimeout(function() {\n                            if (forward && that.pane && that.pane.pages.length > 0) {\n                                that.pane.transition.moveTo({ location: - that.pane.pages[2].element.width(), duration: 800, ease: Transition.easeOutExpo });\n                            } else {\n                                that.pane.transition.moveTo({ location: that.pane.pages[0].element.width(), duration: 800, ease: Transition.easeOutExpo });\n                            }\n                        }, 200);\n                    } else {\n                        var scrollWrapElement = this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS);\n                        var transitionEndHandler = function() {\n                            if (that.numOfEvents != 1) {\n                                var page = that.pane.pages[1];\n                                var calloutOffset = calculateOffset(firstEventInView.find(\".k-timeline-circle\"), that._trackWrap);\n                                page.setPageCallout(\"left\", (calloutOffset / page.element.width()) * 100 + \"%\");\n                            }\n                            this._transition = null;\n                            scrollWrapElement.off('transitionend' + NS, transitionEndHandler);\n                        };\n                        scrollWrapElement.on('transitionend' + NS, transitionEndHandler);\n                    }\n                },\n\n                previous: function() {\n                    var that = this;\n                    var options = that.options;\n\n                    if (!that._validateNavigation(false) && options.orientation != VERTICAL) {\n                        that._forward = false;\n                        that._navigate();\n                    }\n\n                    that._updateArrows();\n                },\n\n                expand: function(event) {\n                    var options = this.options,\n                        cardWrapper = $(event).find(\".k-timeline-card\"),\n                        cardElement = $(event).find(\".k-card\"),\n                        cardBody = $(event).find(\".k-card-body\");\n\n                    if (!cardWrapper.hasClass(\"k-collapsed\")) {\n                        return;\n                    }\n\n                    if (options.navigatable && options.collapsibleEvents) {\n                        cardElement.attr(\"aria-expanded\", true);\n                    }\n\n                    cardWrapper.removeClass('k-collapsed');\n\n                    kendo.fx(cardBody).expand(\"vertical\").stop().play();\n                },\n\n                collapse: function(event) {\n                    var options = this.options,\n                        cardWrapper = $(event).find(\".k-timeline-card\"),\n                        cardElement = $(event).find(\".k-card\"),\n                        cardBody = $(event).find(\".k-card-body\");\n\n                    if (cardWrapper.hasClass(\"k-collapsed\")) {\n                        return;\n                    }\n\n                    if (options.navigatable && options.collapsibleEvents) {\n                        cardElement.attr(\"aria-expanded\", false);\n                    }\n\n                    cardWrapper.addClass(\"k-collapsed\");\n\n                    kendo.fx(cardBody).expand(\"vertical\").stop().reverse();\n                },\n\n                items: function() {\n                    return this.element.find(\"li[data-uid]\");\n                },\n\n                _resizeHandler: function() {\n                    var that = this;\n                    clearTimeout(that.resizeTimeOut);\n                    that.resizeTimeOut = setTimeout(function() {\n                        that._redrawEvents();\n                        that.pane.repositionPages();\n                    });\n                },\n\n                redraw: function() {\n                    var options = this.options;\n                    if (options.orientation != VERTICAL) {\n                        this._redrawEvents();\n                        this.pane.repositionPages();\n                    }\n                },\n\n                _redrawEvents: function() {\n                    var that = this;\n                    var numOfEvents = Math.floor(that.element.find(\".\" + SCROLLABLEWRAPCLASS).width() / 150);\n                    var width;\n\n                    if (that.element.width() <= 480) {\n                        that.element.addClass(\"k-timeline-mobile\");\n                        width = 100;\n                        that.numOfEvents = 1;\n                        that._tackItemWidth = width;\n                        that.element.find(\"li.\" + TRACKITEMCLASS).css(\"flex\", \"1 0 \" + width + \"%\");\n                        that._repositionEvents();\n                    } else {\n                        that.element.removeClass(\"k-timeline-mobile\");\n                        if (numOfEvents != that.numOfEvents) {\n                            that.numOfEvents = numOfEvents;\n                            width = 100 / numOfEvents;\n                            applyCssStyles(that.element.find(\"li.\" + TRACKITEMCLASS), \"flex\", \"1 0 \" + width + \"%\");\n                            that._tackItemWidth = width;\n                            that._repositionEvents();\n                        }\n                    }\n\n                    that._updateArrows();\n                },\n\n                _repositionEvents: function() {\n                    var that = this;\n                    var width = that._tackItemWidth;\n                    var page = that._forward === null ? that.pane.pages[1] : that._forward ? that.pane.pages[2] : that.pane.pages[0];\n                    var trackWrapScrollableElement = this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS);\n                    var end = calculateTransform(trackWrapScrollableElement);\n                    var calloutOffset;\n                    var offset;\n                    var leftOffset;\n                    var circleElement;\n\n                    if (that.numOfEvents === 1) {\n                        offset = that.currentEventIndex * width;\n                    } else {\n                        offset = that._currentIndex * width;\n                    }\n                    if (page) {\n                        if (that.numOfEvents === 1) {\n                            page.setPageCallout(\"left\", \"50%\");\n                            leftOffset = offset;\n                            applyCssStyles(trackWrapScrollableElement, \"transform\", \"translateX(-\" + leftOffset + \"%)\");\n                            that._firstIndexInView = that._currentIndex;\n                            that._updateArrows();\n                            return;\n                        }\n                        if (offset >= Math.abs(end) + 100) {\n                            leftOffset = Math.abs(end) + ((offset - (Math.abs(end) + 100)) + width);\n                            that._end = -leftOffset;\n                            applyCssStyles(trackWrapScrollableElement, \"transform\", \"translateX(-\" + leftOffset + \"%)\");\n                            that._firstIndexInView = that._currentIndex - that.numOfEvents + 1;\n                        }\n                        else if (offset <= Math.abs(end)) {\n                            leftOffset = offset;\n                            that._end = -leftOffset;\n                            applyCssStyles(trackWrapScrollableElement, \"transform\", \"translateX(-\" + leftOffset + \"%)\");\n                            that._firstIndexInView = that._currentIndex;\n                        } else {\n                            circleElement = trackWrapScrollableElement.find(\"li.\" + TRACKITEMCLASS).eq(that._currentIndex).find(\".k-timeline-circle\");\n                            calloutOffset = calculateOffset(circleElement, that._trackWrap);\n                            page.setPageCallout(\"left\", (calloutOffset / page.element.width()) * 100 + \"%\");\n                            that._firstIndexInView = Math.round(Math.abs(end) / width);\n                        }\n                        var scrollWrapElement = this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS);\n                        var transitionEndHandler = function() {\n                            if (that.numOfEvents != 1) {\n                                var page = that.pane.pages[1];\n                                var eventElement = that._trackWrap.find(\".\" + TRACKITEMCLASS).eq(that._currentIndex);\n                                var calloutOffset = calculateOffset(eventElement.find(\".k-timeline-circle\"), that._trackWrap);\n                                page.setPageCallout(\"left\", (calloutOffset / page.element.width()) * 100 + \"%\");\n                            }\n                            scrollWrapElement.off('transitionend' + NS, transitionEndHandler);\n                        };\n                        scrollWrapElement.on('transitionend' + NS, transitionEndHandler);\n                    }\n\n                    that._updateArrows();\n                },\n\n                _initHorizontal: function() {\n                    var that = this;\n                    var firstEventElement = that._trackWrap.find(\".k-timeline-circle\").first();\n                    var dataItem = that.dataSource.view()[0];\n                    var navigatable = that.options.navigatable;\n                    var current;\n\n                    that.maxEvents = that._trackWrap.find(\".\" + TRACKITEMCLASS).length;\n\n                    that._currentIndex = 1;\n\n                    that.pane.initPages();\n\n                    that.pane.repositionPages();\n\n                    that.pane.updatePage(that._forward, dataItem, calculateOffset(firstEventElement, that._trackWrap));\n\n                    that._updateArrows();\n\n                    that._resizeHandlerBound = that._resizeHandler.bind(that);\n\n                    kendo.jQuery(window).on(\"resize\" + NS, that._resizeHandlerBound);\n                    that._trackWrap.on(\"click\", TRACKITEM_NOTFLAG_SELECTOR, that._setCurrentEvent.bind(that));\n                    that._trackWrap.on(\"click\", \".k-timeline-arrow:not(.k-disabled)\", that._navigateToView.bind(that));\n\n                    if (navigatable) {\n                        that._trackWrap\n                            .find(\".k-timeline-track-item.k-timeline-flag-wrap\")\n                            .attr(\"role\", \"none\")\n                            .attr(\"aria-hidden\", true);\n\n                        that._trackWrap.find(TRACKITEM_NOTFLAG_SELECTOR)\n                            .attr(\"aria-selected\", false)\n                            .first()\n                            .attr(\"aria-selected\", true);\n\n                        that._cardId = kendo.guid();\n                        that._scrollableWrap\n                            .on(\"focus\" + NS, function() {\n                                that.pane.pages[1].cardContainer.attr(\"id\", that._cardId);\n\n                                if (that._currentBullet) {\n                                    that._currentBullet.addClass(\"k-focus\");\n                                }\n                            })\n                            .on(\"focusout\" + NS, function() {\n                                if (that._currentBullet) {\n                                    that._currentBullet.removeClass(\"k-focus\");\n                                }\n                            })\n                            .on(\"keydown\" + NS, function(e) {\n                                var handled;\n                                var current = that._currentBullet;\n                                var itemOffset;\n                                var next;\n\n                                if (that._transition) {\n                                    return;\n                                }\n\n                                if (e.keyCode == keys.LEFT) {\n                                    handled = true;\n                                    next = current.prevAll(TRACKITEM_NOTFLAG_SELECTOR).first();\n\n                                    if (next.length) {\n                                        itemOffset = calculateOffset(next, that._trackWrap);\n\n                                        if (itemOffset < 0 || itemOffset > next.parent().width()) {\n                                            that._transition = true;\n                                            that._removeCurrent();\n                                            that.previous();\n                                            that.open(next);\n                                        } else {\n                                            that._setCurrentEvent({ currentTarget: next });\n                                        }\n                                    }\n\n                                }\n\n                                if (e.keyCode == keys.RIGHT) {\n                                    handled = true;\n                                    next = current.nextAll(TRACKITEM_NOTFLAG_SELECTOR).first();\n\n                                    if (next.length) {\n                                        itemOffset = calculateOffset(next, that._trackWrap);\n\n                                        if (itemOffset < 0 || itemOffset > next.parent().width()) { //itemOffset > 0 && itemOffset < parentWidth\n                                            that._transition = true;\n                                            that._removeCurrent();\n                                            that.next();\n                                            that.open(next);\n                                        } else {\n                                            that._setCurrentEvent({ currentTarget: next });\n                                        }\n                                    }\n                                }\n\n                                if (handled) {\n                                    //prevent scrolling while pressing the keys\n                                    e.preventDefault();\n                                }\n                            });\n\n                        current = that._scrollableWrap.find(\".\" + TRACKITEMCLASS).eq(that._currentIndex);\n\n                        that._setCurrent(current);\n                        current.removeClass(\"k-focus\");\n                    }\n                },\n\n                _setCurrent: function(next) {\n                    if (!next) {\n                        return;\n                    }\n                    var id = kendo.guid();\n                    var that = this;\n\n                    that._removeCurrent();\n                    that._scrollableWrap.attr(\"aria-activedescendant\", id);\n\n                    next.attr(\"id\", id).addClass(\"k-focus\");\n\n                    next.siblings().removeAttr(\"aria-describedby\");\n\n                    if (next.attr(\"aria-selected\") === \"true\") {\n                        next.attr(\"aria-describedby\", that._cardId);\n                        that.pane.pages[1].cardContainer.attr(\"id\", that._cardId);\n                    }\n\n                    that._currentBullet = next;\n                },\n\n                _removeCurrent: function() {\n                    if (this._currentBullet) {\n                        this._currentBullet\n                            .removeClass(\"k-focus\")\n                            .removeAttr(\"id\")\n                            .removeAttr(\"aria-describedby\");\n                    }\n                    this._scrollableWrap.removeAttr(\"aria-activedescendant\");\n                },\n\n                setDataSource: function(dataSource) {\n                    var that = this;\n                    var options = that.options;\n\n                    dataSource = isArray(dataSource) ? { data: dataSource } : dataSource;\n\n                    if (that.dataSource && that._refresh) {\n                        that.dataSource.unbind(CHANGE, that._refresh);\n                    } else {\n                        this._refresh = that.refresh.bind(that);\n                    }\n\n                    this.dataSource = DataSource.create(dataSource);\n                    if (this.dataSource._sort === undefined$1) {\n                        this.dataSource._sort = [{ field: options.dataDateField, dir: \"asc\" }];\n                    }\n\n                    that.dataSource.bind(CHANGE, that._refresh);\n\n                    if (options.autoBind) {\n                        this.dataSource.fetch();\n                    }\n                },\n\n                refresh: function() {\n                    var that = this;\n                    var options = that.options;\n\n                    var data = this.dataSource.view();\n\n                    if (options.orientation != VERTICAL) {\n                        that._trackWrap.empty().remove();\n                        that.element.find('.k-timeline-events-list').remove();\n                        that._horizontal();\n                    }\n\n                    that.currentEventIndex = 0;\n                    that._forward = null;\n                    that._eventPage = 1;\n                    that._currentIndex = 0;\n                    that._firstIndexInView = 0;\n                    that.numOfEvents = null;\n                    that._end = 0;\n\n                    that._initDataFieldMappings();\n\n                    if (data.length) {\n                        if (options.orientation === \"horizontal\") {\n                            that._renderContentHorizontal(data);\n                            that._redrawEvents();\n                            that._initHorizontal();\n\n                        } else {\n                            that._renderContentVertical(data);\n                        }\n                    }\n\n                    that.trigger(\"dataBound\", { sender: that });\n                },\n\n                destroy: function() {\n                    var options = this.options;\n\n                    Widget.fn.destroy.call(this);\n\n                    if (this.resizeTimeOut) {\n                        clearTimeout(this.resizeTimeOut);\n                    }\n\n                    if (this.navigateTimeOut) {\n                        clearTimeout(this.navigateTimeOut);\n                    }\n\n                    $(window).off(\"resize\" + NS, this._resizeHandlerBound);\n\n                    this._resizeHandlerBound = null;\n\n                    this.element.off();\n\n                    if (options.orientation != VERTICAL) {\n                        if (this.pane) {\n                            this.pane.destroy();\n                        }\n\n                        this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS).off();\n                        this.element.find(\".k-timeline-arrow\").off();\n                        this._trackWrap.off();\n\n                        this.currentEventIndex =\n                        this.maxEvents =\n                        this.numOfEvents =\n                        this._currentIndex =\n                        this._eventPage =\n                        this._eventsList =\n                        this._eventsWrap =\n                        this.element =\n                        this._trackWrap =\n                        this.pane = null;\n                    }\n\n                    kendo.destroy(this.element);\n\n                    this._dataFieldMappings = this.element = null;\n                },\n\n                options: {\n                    autoBind: true,\n                    name: \"Timeline\",\n                    orientation: \"vertical\",\n                    dateFormat: \"MMM d, yyyy\",\n                    showDateLabels: true,\n                    collapsibleEvents: false,\n                    alternatingMode: false,\n                    dataTitleField: \"title\",\n                    dataDateField: \"date\",\n                    dataSubtitleField: \"subtitle\",\n                    dataDescriptionField: \"description\",\n                    dataImagesField: \"images\",\n                    dataActionsField: \"actions\",\n                    dataImagesAltField: \"altField\",\n                    navigatable: false\n                },\n\n                events: [\n                    \"collapse\",\n                    \"dataBound\",\n                    \"expand\",\n                    \"actionClick\",\n                    \"change\",\n                    \"navigate\"\n                ]\n            });\n        kendo.ui.plugin(Timeline);\n    })(window.kendo.jQuery);\n    var kendo$1 = kendo;\n\n    return kendo$1;\n\n}));\n"]}