{"version":3,"file":"kendo.timeline.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","Widget","ui","DataSource","data","Transition","effects","keys","isArray","Array","VERTICAL","TRANSITION_END","FLAGWRAPCLASS","TRACKITEMCLASS","SCROLLABLEWRAPCLASS","NS","CHANGE","calculateTransform","element","matrix","css","match","width","calculateOffset","parentElement","offset","left","applyCssStyles","property","value","Page","Class","extend","init","container","this","cardContainer","name","cardWrapper","append","content","htmlContent","uid","callOut","html","attr","position","setPageCallout","propery","find","destroy","that","remove","HorizontalPane","Observable","options","movable","transition","pages","fn","call","Movable","axis","onEnd","trigger","duration","eventTemplate","eventHeight","dataFieldMappings","bind","initPages","page","i","push","repositionPages","setPageContent","template","Function","titleField","title","subtitleField","subtitle","descriptionField","description","imagesField","images","actionsField","actions","altField","updatePage","isForward","calloutOffset","length","moveTo","moveAxis","transitionTo","ease","location","index","unbind","Timeline","orientation","addClass","_horizontal","_vertical","on","ev","action","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","navigatable","collapsibleEvents","alternatingMode","card","itemWrapper","parent","hasClass","expand","collapse","e","keyCode","SPACEBAR","ENTER","header","preventDefault","_renderContentVertical","itemTemplate","useWithBlock","dateField","dataDateField","dataTitleField","dataSubtitleField","dataDescriptionField","dataImagesField","dataActionsField","alterMode","dateFormat","showDateLabels","dataImagesAltField","eventWidth","_renderContentHorizontal","_dataFieldMappings","trackTemplate","initialEventIndex","pane","transitionEnd","_transitionEnd","date","shift","unshift","pop","_transition","removeAttr","_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","arrows","leftArrow","filter","rightArrow","_validateNavigation","removeClass","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","reverse","items","_resizeHandler","resizeTimeOut","_redrawEvents","redraw","trackWrapScrollableElement","round","_initHorizontal","firstEventElement","_resizeHandlerBound","jQuery","guid","handled","itemOffset","current","LEFT","RIGHT","_ariaLabel","id","siblings","_refresh","refresh","create","_sort","field","dir","autoBind","fetch","empty","events","plugin"],"sources":["kendo.timeline.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.fx', 'kendo.data', 'kendo.draganddrop'], factory) :\n factory();\n})((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\" ]\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\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 NS = \".kendoTimeline\",\n CHANGE = \"change\",\n DEFAULTHORIZONTALCARDTEMPLATE =\n '# var titleField = data.titleField, subtitleField = data.subtitleField, descriptionField = data.descriptionField, imagesField = data.imagesField, actionsField = data.actionsField, altField = data.altField, data = data.data; #' +\n '
' +\n '
' +\n '# if(data[titleField]) { #' +\n '
#: data[titleField] #
' +\n '# }' +\n 'if(data[subtitleField]) { #' +\n '
#: data[subtitleField] #
' +\n '# } #' +\n '
' +\n '
' +\n '
' +\n '# if(data[descriptionField]) { #' +\n '

#: data[descriptionField] #

' +\n '# }' +\n 'if(data[imagesField] && data[imagesField].length > 0) { #' +\n '\"#:data[altField]#\"' +\n '# } #' +\n '
' +\n '
' +\n '# if(data[actionsField] && data[actionsField].length > 0) { #' +\n '
' +\n '# for (var i = 0; i < data[actionsField].length; i++) { #' +\n '#: data[actionsField][i].text #' +\n '# } #' +\n '
' +\n '# } #' +\n '
',\n DEFAULTVERTICALCARDTEMPLATE =\n '# var titleField = data.titleField, subtitleField = data.subtitleField, descriptionField = data.descriptionField, imagesField = data.imagesField, navigatable = data.navigatable, collapsibleEvents = data.collapsibleEvents, actionsField = data.actionsField, altField = data.altField, data = data.data; #' +\n '
' +\n '
' +\n '
' +\n '# if(data[titleField]) { #' +\n '#: data[titleField] #' +\n '# } #' +\n '' +\n '' +\n '
' +\n '# if(data[subtitleField]) { #' +\n '
#: data[subtitleField] #
' +\n '# } #' +\n '
' +\n '
' +\n '
' +\n '# if(data[descriptionField]) { #' +\n '

#: data[descriptionField] #

' +\n '# } #' +\n '# if(data[imagesField] && data[imagesField].length > 0) { #' +\n '\"#:data[altField]#\"' +\n '# } #' +\n '
' +\n '
' +\n '# if(data[actionsField] && data[actionsField].length > 0) { #' +\n '
' +\n '# for (var i = 0; i < data[actionsField].length; i++) { #' +\n '#: data[actionsField][i].text #' +\n '# } #' +\n '
' +\n '# } #' +\n '
',\n HORIZONTALTRACKTEMPLATE =\n '# var itemTemplate = data.itemTemplate, dateField = data.dateField, dateFormat = data.dateFormat, showDateLabels = data.showDateLabels, data = data.data, year = 0; #' +\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(year != currentYear) {' +\n 'year = currentYear; #' +\n '
  • ' +\n '#= year #' +\n '
  • ' +\n '# } #' +\n '
  • ' +\n '
    ' +\n '# if(showDateLabels) { #' +\n '#= kendo.toString(data[i][dateField], dateFormat) #' +\n '# } #' +\n '
    ' +\n '' +\n '
  • ' +\n '# } #',\n VERTICALEVENTSTEMPLATE =\n '# var itemTemplate = data.itemTemplate, dateField = data.dateField, titleField = data.titleField, descriptionField = data.descriptionField, subtitleField = data.subtitleField, imagesField = data.imagesField, actionsField = data.actionsField, alterMode = data.alterMode, collapsibleEvents = data.collapsibleEvents, dateFormat = data.dateFormat, showDateLabels = data.showDateLabels, navigatable = data.navigatable, altField = data.altField, data = data.data, counter = 0, year = 0, reverse = false;' +\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 '
  • ' +\n '#= year #' +\n '
  • ' +\n '# } ' +\n 'reverse = counter % 2 === 0 && alterMode; #' +\n '
  • ' +\n '
    ' +\n '# if(showDateLabels) { #' +\n '
    ' +\n '#= kendo.toString(data[i][dateField], dateFormat) #' +\n '
    ' +\n '# } #' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n '' +\n '#= itemTemplate({titleField: titleField, subtitleField: subtitleField, descriptionField: descriptionField, imagesField: imagesField, actionsField: actionsField, data: data[i], altField: altField, navigatable: navigatable, collapsibleEvents: collapsibleEvents}) #' +\n '
    ' +\n\n '
    ' +\n '
  • ' +\n '# counter ++;' +\n '} #',\n ARROWSHTML =\n '' +\n '' +\n '' +\n '' +\n '' +\n '';\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 = $(\"
    \");\n var cardWrapper = $(\"
    \").append(this.cardContainer);\n\n this.element = $(\"
  • \").append(cardWrapper);\n container.append(this.element);\n },\n\n content: function(htmlContent, uid) {\n var callOut = $(\"\");\n this.cardContainer.html(htmlContent);\n this.cardContainer.append(callOut);\n this.element.attr(\"data-uid\", uid);\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\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 });\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 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);\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-widget k-timeline-vertical\" : \"k-timeline k-widget 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 = $(\"
    \");\n var trackEl = $(\"
    \");\n var scrollableWrap = $(\"
      \");\n var eventsWrap = $(\"
      \");\n var eventsList = $(\"
        \");\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(\"k-timeline-scrollable-wrap\");\n eventsWrap.addClass(\"k-timeline-events-list\");\n eventsList.addClass(\"k-timeline-scrollable-wrap\");\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 = $(\"
          \");\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(\".k-timeline-scrollable-wrap\").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 });\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\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 _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 if (that._validateNavigation(false)) {\n leftArrow.addClass(\"k-disabled\");\n } else {\n leftArrow.removeClass(\"k-disabled\");\n }\n\n if (that._validateNavigation(true)) {\n rightArrow.addClass(\"k-disabled\");\n } else {\n rightArrow.removeClass(\"k-disabled\");\n }\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()[firstEventInView.index(\"li[class='k-timeline-track-item']\")];\n\n this._trackWrap.find(\".\" + SCROLLABLEWRAPCLASS).css(\"transform\", \"translateX(\" + end + \"%)\");\n\n if (that._currentIndex != firstEventInView.index()) {\n that.currentEventIndex = firstEventInView.index(\"li[class='k-timeline-track-item']\");\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(\".k-timeline-scrollable-wrap\").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.k-timeline-track-item\").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.k-timeline-track-item\"), \"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.k-timeline-track-item\").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\n that.maxEvents = that._trackWrap.find(\".k-timeline-track-item\").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\", \".k-timeline-track-item:not(.k-timeline-flag-wrap)\", 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(\"aria-hidden\", true);\n\n that._trackWrap.find(\".k-timeline-track-item:not(.k-timeline-flag-wrap)\")\n .attr(\"role\", \"option\")\n .attr(\"aria-selected\", false)\n .first()\n .attr(\"aria-selected\", true);\n\n that._cardId = kendo.guid();\n that._scrollableWrap\n .attr(\"role\", \"listbox\")\n .attr(\"aria-orientation\", \"horizontal\")\n .attr(\"tabindex\", 0)\n .on(\"focus\" + NS, function() {\n that.pane.pages[1].cardContainer.attr(\"id\", that._cardId);\n that._setCurrent(that._scrollableWrap.find(\".k-timeline-track-item\").eq(that._currentIndex));\n })\n .on(\"focusout\" + NS, function() {\n that._removeCurrent();\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(\".k-timeline-track-item:not(.k-timeline-flag-wrap)\").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._setCurrent(next);\n }\n }\n\n }\n\n if (e.keyCode == keys.RIGHT) {\n handled = true;\n next = current.nextAll(\".k-timeline-track-item:not(.k-timeline-flag-wrap)\").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._setCurrent(next);\n }\n }\n }\n\n if (e.keyCode == keys.SPACEBAR || e.keyCode == keys.ENTER) {\n handled = true;\n that._currentBullet.trigger(\"click\");\n }\n\n if (handled) {\n //prevent scrolling while pressing the keys\n e.preventDefault();\n }\n });\n\n that._ariaLabel(that._scrollableWrap);\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 }\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\n}));\n"]}