{"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","navigatable","collapsibleEvents","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","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","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","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":"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","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 = function (args) {\n var titleField = args.titleField, subtitleField = args.subtitleField, descriptionField = args.descriptionField, imagesField = args.imagesField, actionsField = args.actionsField, altField = args.altField, data = args.data;\n\n return '
' +\n '
' +\n (data[titleField] ? (\"
\" + (encode(data[titleField])) + \"
\") : '') +\n (data[subtitleField] ? (\"
\" + (encode(data[subtitleField])) + \"
\") : '') +\n '
' +\n '
' +\n '
' +\n (data[descriptionField] ? (\"

\" + (encode(data[descriptionField])) + \"

\") : '') +\n (data[imagesField] && data[imagesField].length > 0 ?\n (\"\")\n : '' ) +\n '
' +\n '
' +\n (data[actionsField] && data[actionsField].length > 0 ?\n '
' +\n data[actionsField].map(function (action) { return \"\" +\n \"\" + (encode(action.text)) + \"\" +\n ''; }\n ).join('') +\n '
'\n : '') +\n '
';\n },\n DEFAULTVERTICALCARDTEMPLATE = function (args) {\n var 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 '
' +\n '
' +\n '
' +\n (data[titleField] ? (\"\" + (encode(data[titleField])) + \"\") : '') +\n '' +\n kendo.ui.icon({ icon: \"chevron-right\", iconClass: \"k-button-icon\" }) +\n '' +\n '
' +\n (data[subtitleField] ? (\"
\" + (encode(data[subtitleField])) + \"
\") : '') +\n '
' +\n '
' +\n '
' +\n (data[descriptionField] ? (\"

\" + (encode(data[descriptionField])) + \"

\") : '') +\n (data[imagesField] && data[imagesField].length > 0 ?\n (\"\")\n : '') +\n '
' +\n '
' +\n (data[actionsField] && data[actionsField].length > 0 ?\n '
' +\n data[actionsField].map(function (action) { return \"\" +\n \"\" + (encode(action.text)) + \"\" +\n ''; }\n ).join('') +\n '
'\n : '') +\n '
';\n },\n HORIZONTALTRACKTEMPLATE = function (args) {\n var itemTemplate = args.itemTemplate, dateField = args.dateField, dateFormat = args.dateFormat, showDateLabels = args.showDateLabels, data = args.data, year = 0;\n var result = '';\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 result +=\n '
  • ' +\n \"\" + year + \"\" +\n '
  • ';\n }\n\n result +=\n '
  • ' +\n '
    ' +\n (showDateLabels ? (\"\" + (kendo.toString(data[i][dateField], dateFormat)) + \"\") : '') +\n '
    ' +\n '' +\n '
  • ';\n }\n\n return result;\n },\n VERTICALEVENTSTEMPLATE = function (args) {\n var 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 var 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 '
  • ' +\n \"\" + year + \"\" +\n '
  • ';\n }\n\n reverse = counter % 2 === 0 && alterMode;\n result +=\n \"
  • \" +\n '
    ' +\n (showDateLabels ?\n (\"\" + (kendo.toString(data[i][dateField], dateFormat)) + \"\")\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 counter ++;\n }\n\n return result;\n },\n ARROWSHTML =\n '' +\n kendo.ui.icon({ icon: \"caret-alt-left\", iconClass: \"k-button-icon\" }) +\n '' +\n '' +\n kendo.ui.icon({ icon: \"caret-alt-right\", iconClass: \"k-button-icon\" }) +\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, label) {\n var callOut = $(\"\");\n this.cardContainer.html(htmlContent);\n this.cardContainer.append(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-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(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 = $(\"
          \");\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 _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()[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"]}