{"version":3,"file":"kendo.mobile.collapsible.min.js","names":["factory","define","amd","$","kendo","ui","Widget","COLLAPSED","EXPANDED","ANIMATED","EXAPND","COLLAPSE","Collapsible","window","jQuery","mobile","extend","init","element","options","that","this","container","fn","call","addClass","_buildHeader","content","children","not","header","wrapAll","parent","_userEvents","UserEvents","fastTap","tap","toggle","collapsed","inset","animation","height","hide","events","name","collapseIcon","expandIcon","iconPosition","destroy","expand","instant","icon","ios","support","mobileOS","trigger","find","removeClass","off","show","_getContentHeight","resize","collapse","one","isCollapsed","hasClass","iconSpan","prepend","style","attr","css","position","visibility","plugin"],"sources":["kendo.mobile.collapsible.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"mobile.collapsible\",\n name: \"Collapsible\",\n category: \"mobile\",\n description: \"The Kendo mobile Collapsible widget provides ability for creating collapsible blocks of content.\",\n depends: [ \"core\", \"userevents\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.mobile.ui,\n Widget = ui.Widget,\n COLLAPSIBLE = \"km-collapsible\",\n HEADER = \"km-collapsible-header\",\n CONTENT = \"km-collapsible-content\",\n INSET = \"km-collapsibleinset\",\n HEADER_WRAPPER = \"
\",\n CONTENT_WRAPPER = \"
\",\n\n COLLAPSED = \"km-collapsed\",\n EXPANDED = \"km-expanded\",\n ANIMATED = \"km-animated\",\n\n //icon position\n LEFT = \"left\",\n\n //events\n EXAPND = \"expand\",\n COLLAPSE = \"collapse\";\n\n var Collapsible = Widget.extend({\n init: function(element, options) {\n var that = this,\n container = $(element);\n\n Widget.fn.init.call(that, container, options);\n\n container.addClass(COLLAPSIBLE);\n\n that._buildHeader();\n that.content = container.children().not(that.header).wrapAll(CONTENT_WRAPPER).parent();\n\n that._userEvents = new kendo.UserEvents(that.header, {\n fastTap: true,\n tap: function() { that.toggle(); }\n });\n\n container.addClass(that.options.collapsed ? COLLAPSED : EXPANDED);\n\n if (that.options.inset) {\n container.addClass(INSET);\n }\n\n if (that.options.animation) {\n that.content.addClass(ANIMATED);\n that.content.height(0);\n if (that.options.collapsed) {\n that.content.hide();\n }\n } else if (that.options.collapsed) {\n that.content.hide();\n }\n },\n\n events: [\n EXAPND,\n COLLAPSE\n ],\n\n options: {\n name: \"Collapsible\",\n collapsed: true,\n collapseIcon: \"arrow-n\",\n expandIcon: \"arrow-s\",\n iconPosition: LEFT,\n animation: true,\n inset: false\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n this._userEvents.destroy();\n },\n\n expand: function(instant) {\n var icon = this.options.collapseIcon,\n content = this.content,\n ios = kendo.support.mobileOS.ios;\n\n if (!this.trigger(EXAPND)) {\n if (icon) {\n this.header.find(\".km-icon\").removeClass().addClass(\"km-icon km-\" + icon);\n }\n this.element.removeClass(COLLAPSED).addClass(EXPANDED);\n\n if (this.options.animation && !instant) {\n content.off(\"transitionend\");\n content.show();\n if (ios) { content.removeClass(ANIMATED); } //required to get the height of the content on iOS\n content.height(this._getContentHeight());\n if (ios) { content.addClass(ANIMATED); }\n\n kendo.resize(content);\n } else {\n content.show();\n }\n }\n },\n\n collapse: function(instant) {\n var icon = this.options.expandIcon,\n content = this.content;\n\n if (!this.trigger(COLLAPSE)) {\n if (icon) {\n this.header.find(\".km-icon\").removeClass().addClass(\"km-icon km-\" + icon);\n }\n this.element.removeClass(EXPANDED).addClass(COLLAPSED);\n\n if (this.options.animation && !instant) {\n content.one(\"transitionend\", function() { content.hide(); });\n content.height(0);\n } else {\n content.hide();\n }\n }\n },\n\n toggle: function(instant) {\n if (this.isCollapsed()) {\n this.expand(instant);\n } else {\n this.collapse(instant);\n }\n },\n\n isCollapsed: function() {\n return this.element.hasClass(COLLAPSED);\n },\n\n resize: function() {\n if (!this.isCollapsed() && this.options.animation) {\n this.content.height(this._getContentHeight());\n }\n },\n\n _buildHeader: function() {\n var header = this.element.children(\":header\").wrapAll(HEADER_WRAPPER),\n iconSpan = $(''),\n icon = this.options.collapsed ? this.options.expandIcon : this.options.collapseIcon,\n iconPosition = this.options.iconPosition;\n\n if (icon) {\n header.prepend(iconSpan);\n iconSpan.addClass(\"km-\" + icon);\n }\n\n this.header = header.parent();\n this.header.addClass(\"km-icon-\" + iconPosition);\n },\n\n _getContentHeight: function() {\n var style = this.content.attr(\"style\"),\n height;\n\n this.content.css({\n position: 'absolute',\n visibility: 'hidden',\n height: \"auto\"\n });\n\n height = this.content.height();\n\n this.content.attr(\"style\", style ? style : \"\");\n\n return height;\n }\n });\n\n ui.plugin(Collapsible);\n })(window.kendo.jQuery);\n\n}));\n"]}