@finqu/cool 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +1 -0
  2. package/build/.eslintrc.json +10 -0
  3. package/build/banner.js +14 -0
  4. package/build/build-plugins.js +92 -0
  5. package/build/rollup.config.js +78 -0
  6. package/dist/css/cool-grid.css +3672 -0
  7. package/dist/css/cool-grid.css.map +30 -0
  8. package/dist/css/cool-grid.min.css +7 -0
  9. package/dist/css/cool-grid.min.css.map +1 -0
  10. package/dist/css/cool-reboot.css +281 -0
  11. package/dist/css/cool-reboot.css.map +58 -0
  12. package/dist/css/cool-reboot.min.css +7 -0
  13. package/dist/css/cool-reboot.min.css.map +1 -0
  14. package/dist/css/cool.css +14841 -0
  15. package/dist/css/cool.css.map +144 -0
  16. package/dist/css/cool.min.css +7 -0
  17. package/dist/css/cool.min.css.map +1 -0
  18. package/dist/js/cool.bundle.js +15304 -0
  19. package/dist/js/cool.bundle.js.map +1 -0
  20. package/dist/js/cool.bundle.min.js +45 -0
  21. package/dist/js/cool.bundle.min.js.map +1 -0
  22. package/dist/js/cool.esm.js +4766 -0
  23. package/dist/js/cool.esm.js.map +1 -0
  24. package/dist/js/cool.esm.min.js +7 -0
  25. package/dist/js/cool.esm.min.js.map +1 -0
  26. package/dist/js/cool.js +4948 -0
  27. package/dist/js/cool.js.map +1 -0
  28. package/dist/js/cool.min.js +7 -0
  29. package/dist/js/cool.min.js.map +1 -0
  30. package/html/index.html +892 -0
  31. package/js/dist/collapse.js +321 -0
  32. package/js/dist/collapse.js.map +1 -0
  33. package/js/dist/common.js +1474 -0
  34. package/js/dist/common.js.map +1 -0
  35. package/js/dist/cooldropdown.js +467 -0
  36. package/js/dist/cooldropdown.js.map +1 -0
  37. package/js/dist/coolpopover.js +391 -0
  38. package/js/dist/coolpopover.js.map +1 -0
  39. package/js/dist/coolsectiontabs.js +256 -0
  40. package/js/dist/coolsectiontabs.js.map +1 -0
  41. package/js/dist/coolselect.js +796 -0
  42. package/js/dist/coolselect.js.map +1 -0
  43. package/js/dist/cooltooltip.js +360 -0
  44. package/js/dist/cooltooltip.js.map +1 -0
  45. package/js/dist/coolui.js +73 -0
  46. package/js/dist/coolui.js.map +1 -0
  47. package/js/dist/dropdown.js +1716 -0
  48. package/js/dist/dropdown.js.map +1 -0
  49. package/js/dist/popover.js +587 -0
  50. package/js/dist/popover.js.map +1 -0
  51. package/js/dist/sectiontabs.js +263 -0
  52. package/js/dist/sectiontabs.js.map +1 -0
  53. package/js/dist/select.js +2029 -0
  54. package/js/dist/select.js.map +1 -0
  55. package/js/dist/tooltip.js +555 -0
  56. package/js/dist/tooltip.js.map +1 -0
  57. package/js/index.esm.js +21 -0
  58. package/js/index.umd.js +21 -0
  59. package/js/src/abstract-ui-component.js +70 -0
  60. package/js/src/collapse.js +258 -0
  61. package/js/src/common.js +280 -0
  62. package/js/src/dialog.js +570 -0
  63. package/js/src/dropdown.js +443 -0
  64. package/js/src/popover.js +615 -0
  65. package/js/src/section-tabs.js +204 -0
  66. package/js/src/select.js +832 -0
  67. package/js/src/toast.js +581 -0
  68. package/js/src/tooltip.js +575 -0
  69. package/js/src/util/animate-css.js +22 -0
  70. package/js/src/util/index.js +112 -0
  71. package/js/src/util/perfect-scrollbar.js +1316 -0
  72. package/less/alert.less +345 -0
  73. package/less/badge.less +38 -0
  74. package/less/bootstrap-noconflict.less +23 -0
  75. package/less/bootstrap.less +23 -0
  76. package/less/button-group.less +153 -0
  77. package/less/buttons.less +287 -0
  78. package/less/dialog-noconflict.less +174 -0
  79. package/less/dialog.less +203 -0
  80. package/less/dropdown.less +209 -0
  81. package/less/forms.less +770 -0
  82. package/less/images.less +242 -0
  83. package/less/input-group.less +163 -0
  84. package/less/list-group.less +73 -0
  85. package/less/mixins/aspect-ratio.less +23 -0
  86. package/less/mixins/border-radius.less +24 -0
  87. package/less/mixins/box-shadow.less +4 -0
  88. package/less/mixins/buttons.less +17 -0
  89. package/less/mixins/caret.less +51 -0
  90. package/less/mixins/clearfix.less +10 -0
  91. package/less/mixins/gradients.less +34 -0
  92. package/less/mixins/nav-divider.less +7 -0
  93. package/less/mixins/object-fit.less +13 -0
  94. package/less/mixins/reset-text.less +16 -0
  95. package/less/mixins.less +11 -0
  96. package/less/package.json +11 -0
  97. package/less/pagination.less +69 -0
  98. package/less/popover.less +143 -0
  99. package/less/project.sublime-workspace +774 -0
  100. package/less/reboot.less +235 -0
  101. package/less/section.less +793 -0
  102. package/less/select.less +150 -0
  103. package/less/tables.less +737 -0
  104. package/less/tabs.less +162 -0
  105. package/less/tooltip.less +87 -0
  106. package/less/type.less +71 -0
  107. package/less/utilities/align.less +27 -0
  108. package/less/utilities/animate.less +3512 -0
  109. package/less/utilities/background.less +70 -0
  110. package/less/utilities/borders.less +16 -0
  111. package/less/utilities/color.less +70 -0
  112. package/less/utilities/cursor.less +8 -0
  113. package/less/utilities/display.less +38 -0
  114. package/less/utilities/embed.less +61 -0
  115. package/less/utilities/flex.less +76 -0
  116. package/less/utilities/jquery-ui.less +116 -0
  117. package/less/utilities/lazyload.less +29 -0
  118. package/less/utilities/overflow.less +11 -0
  119. package/less/utilities/pace.less +25 -0
  120. package/less/utilities/placeholder.less +60 -0
  121. package/less/utilities/position.less +42 -0
  122. package/less/utilities/scrollbar.less +152 -0
  123. package/less/utilities/spacing.less +197 -0
  124. package/less/utilities/text.less +68 -0
  125. package/less/utilities/transform.less +7 -0
  126. package/less/utilities.less +21 -0
  127. package/less/variables.less +343 -0
  128. package/package.json +71 -0
  129. package/scss/LISENCE +15 -0
  130. package/scss/_alert.scss +125 -0
  131. package/scss/_badge.scss +58 -0
  132. package/scss/_button-group.scss +124 -0
  133. package/scss/_buttons.scss +206 -0
  134. package/scss/_custom-forms.scss +423 -0
  135. package/scss/_dialog.scss +149 -0
  136. package/scss/_dropdown.scss +234 -0
  137. package/scss/_forms.scss +257 -0
  138. package/scss/_frame.scss +523 -0
  139. package/scss/_functions.scss +114 -0
  140. package/scss/_grid.scss +35 -0
  141. package/scss/_images.scss +312 -0
  142. package/scss/_input-group.scss +245 -0
  143. package/scss/_list-group.scss +82 -0
  144. package/scss/_mixins.scss +32 -0
  145. package/scss/_navbar.scss +214 -0
  146. package/scss/_pagination.scss +79 -0
  147. package/scss/_popover.scss +165 -0
  148. package/scss/_reboot.scss +279 -0
  149. package/scss/_root.scss +15 -0
  150. package/scss/_section.scss +851 -0
  151. package/scss/_select.scss +166 -0
  152. package/scss/_tables.scss +707 -0
  153. package/scss/_tabs.scss +175 -0
  154. package/scss/_toast.scss +182 -0
  155. package/scss/_tooltip.scss +101 -0
  156. package/scss/_type.scss +90 -0
  157. package/scss/_utilities.scss +21 -0
  158. package/scss/_variables.scss +697 -0
  159. package/scss/cool-grid.scss +29 -0
  160. package/scss/cool-reboot.scss +11 -0
  161. package/scss/cool.scss +36 -0
  162. package/scss/mixins/_alert-variant.scss +40 -0
  163. package/scss/mixins/_aspect-ratio.scss +29 -0
  164. package/scss/mixins/_background-variant.scss +25 -0
  165. package/scss/mixins/_badge-variant.scss +13 -0
  166. package/scss/mixins/_breakpoints.scss +102 -0
  167. package/scss/mixins/_buttons.scss +104 -0
  168. package/scss/mixins/_caret.scss +80 -0
  169. package/scss/mixins/_clearfix.scss +10 -0
  170. package/scss/mixins/_float.scss +14 -0
  171. package/scss/mixins/_forms.scss +51 -0
  172. package/scss/mixins/_gradients.scss +40 -0
  173. package/scss/mixins/_grid-framework.scss +72 -0
  174. package/scss/mixins/_grid.scss +60 -0
  175. package/scss/mixins/_nav-divider.scss +9 -0
  176. package/scss/mixins/_object-fit.scss +16 -0
  177. package/scss/mixins/_reset-text.scss +19 -0
  178. package/scss/mixins/_text-emphasis.scss +21 -0
  179. package/scss/mixins/_text-hide.scss +10 -0
  180. package/scss/mixins/_text-truncate.scss +8 -0
  181. package/scss/project.sublime-workspace +491 -0
  182. package/scss/utilities/_align.scss +41 -0
  183. package/scss/utilities/_animate.scss +3512 -0
  184. package/scss/utilities/_background.scss +14 -0
  185. package/scss/utilities/_borders.scss +146 -0
  186. package/scss/utilities/_clearfix.scss +6 -0
  187. package/scss/utilities/_collapse.scss +33 -0
  188. package/scss/utilities/_cursor.scss +10 -0
  189. package/scss/utilities/_display.scss +16 -0
  190. package/scss/utilities/_embed.scss +78 -0
  191. package/scss/utilities/_flex.scss +50 -0
  192. package/scss/utilities/_lazyload.scss +31 -0
  193. package/scss/utilities/_overflow.scss +6 -0
  194. package/scss/utilities/_perfect-scrollbar.scss +154 -0
  195. package/scss/utilities/_placeholder.scss +76 -0
  196. package/scss/utilities/_position.scss +30 -0
  197. package/scss/utilities/_sizing.scss +32 -0
  198. package/scss/utilities/_spacing.scss +92 -0
  199. package/scss/utilities/_text.scss +97 -0
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Cool UI v1.0.0 (https://finqu.fi)
3
+ * Copyright 2011-2019 Finqu Oy
4
+ * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
+ */
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):(t=t||self).cool=e()}(this,function(){"use strict";$.fn.extend({animateCss:function(t,e){var i="webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";this.addClass("animated "+t).one(i,function(i){$(this).removeClass("animated "+t),e&&e()}).children().on(i,function(t){t.stopPropagation()})}});class t{static initialize(){$("html").addClass("dom-ready"),$(document).on("focus",".form-control",function(){if(!$(this).hasClass("disabled")&&$(this).not(":disabled")&&!$(this).attr("readonly")){var t=$(this).closest(".input-group");t.hasClass("input-group-focus")||t.addClass("input-group-focus")}}),$(document).on("blur",".form-control",function(){if(!$(this).hasClass("disabled")&&$(this).not(":disabled")&&!$(this).attr("readonly")){var t=$(this).closest(".input-group");t.hasClass("input-group-focus")&&t.removeClass("input-group-focus")}}),$(".form-label-group").each(function(t,e){$(e).find("input").on("blur input change",function(){$(this).val()?$(e).addClass("label-on-top"):$(e).removeClass("label-on-top")}).trigger("change")})}}window.Cool=window.Cool||{},window.Cool.initialize=t.initialize;const e=function(t,e,i){var s;return function(){var n=this,o=arguments,a=i&&!s;clearTimeout(s),s=setTimeout(function(){s=null,i||t.apply(n,o)},e),a&&t.apply(n,o)}},i=function(){if("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)return!0};class s{onCreate(){var t=this.opts.onCreate;"function"==typeof t&&t.call(this.el)}onUpdate(){var t=this.opts.onUpdate;"function"==typeof t&&t.call(this.el)}onDestroy(){var t=this.opts.onDestroy;"function"==typeof t&&t.call(this.el)}onShow(){var t=this.opts.onShow;"function"==typeof t&&t.call(this.el)}onClose(){var t=this.opts.onClose;"function"==typeof t&&t.call(this.el)}debug(...t){this.opts.debug&&("function"==typeof this.opts.debug?this.opts.debug(...t):console.log(...t))}}const n="coolPopover",o="plugin_coolPopover";class a extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[n].defaults,e),this.init()}init(){this.buildCache(),this.bindEvents(),this.onCreate()}destroy(){this.unbindEvents(),this.$el.removeData(),this.onDestroy()}update(){this.buildCache(),this.onUpdate()}buildCache(){this.$el=$(this.el),this.$container=this.$el.data("container")?$(this.$el.data("container")):$(this.opts.container),this.id="popover-"+this.generateUUID(),this.trigger=this.$el.data("trigger")?this.$el.data("trigger"):this.opts.trigger,this.placement=this.$el.data("placement")?this.$el.data("placement"):this.opts.placement,this.animation=this.$el.data("animation")?this.$el.data("animation"):this.opts.animation,this.animationIn=this.$el.data("animationIn")?this.$el.data("animationIn"):this.opts.animationIn,this.animationOut=this.$el.data("animationOut")?this.$el.data("animationOut"):this.opts.animationOut,this.animationSpeed=this.$el.data("animationSpeed")?this.$el.data("animationSpeed"):this.opts.animationSpeed,this.title=this.$el.data("title")?this.$el.data("title"):this.opts.title,this.content=this.$el.data("content")?this.$el.data("content"):this.opts.content,this.template=this.$el.data("template")?this.$el.data("template"):this.opts.template,this.templateAttrs=this.$el.data("templateAttrs")?this.$el.data("templateAttrs"):this.opts.templateAttrs}bindEvents(){"click"===this.trigger?this.$el.on("click."+n,()=>{this.$popover?this.close():this.show()}):"hover"===this.trigger?(this.$el.on("mouseenter."+n,()=>{this.show()}),this.$el.on("mouseleave."+n,()=>{this.close()})):"focus"===this.trigger&&(this.$el.on("focusin."+n,()=>{this.show()}),this.$el.on("focusout."+n,()=>{this.close()})),$(window).on("resize",e(()=>{this.$popover&&(this.setPosition(),this.onUpdate())},250))}unbindEvents(){this.$el.off("."+n)}generateUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})}buildPopover(){let t=this.content;"function"==typeof this.opts.template&&(t=this.opts.template()),this.$popover=$(`\n \t\t<div class="popover popover-${this.placement}" role="tooltip" id="${this.id}">\n\n\t\t\t <div class="arrow"></div>\n\n\t\t\t <h3 class="popover-header">${this.title}</h3>\n\n\t\t\t <div class="popover-body">${t}</div>\n\n\t\t\t</div>\n \t`),this.$container.append(this.$popover),this.$arrow=!!this.$popover.find(".arrow")&&this.$popover.find(".arrow"),this.debug(this.$el),this.debug(this.$container),this.debug(this.$popover),this.debug(this.$arrow),this.debug("Id: "+this.id),this.debug("Trigger: "+this.trigger),this.debug("Placement: "+this.placement),this.debug("Animation: "+this.animation),this.debug("Animation in: "+this.animationIn),this.debug("Animation out: "+this.animationOut),this.debug("Animation speed: "+this.animationSpeed),this.debug("Title: "+this.title),this.debug("Content: "+this.content),this.debug("Template: "+this.template),this.debug(this.templateAttrs)}setPosition(t){"undefined"!=typeof str&&null!==str||(t=this.placement);var e=this.$popover.outerWidth(!0),i=this.$popover.outerHeight(!0),s=this.$el.outerWidth(),n=this.$el.outerHeight(),o=this.$el.position().left,a=this.$el.position().top,h=this.$arrow.outerWidth(!0),l=this.$arrow.outerHeight(!0);if("top"===t){var r=o-(e-s)/2,d=a-i,c=e/2-h/2;this.$arrow.css({left:c+"px"})}else if("right"===t){r=o+s,d=a-(i-n)/2,c=i/2-l/2;this.$arrow.css({top:c+"px"})}else if("bottom"===t){r=o-(e-s)/2,d=a+n,c=e/2-h/2;this.$arrow.css({left:c+"px"})}else if("left"===t){r=o-e,d=a-(i-n)/2,c=i/2-l/2;this.$arrow.css({top:c+"px"})}this.$popover.css({position:"absolute",top:"0px",left:"0px",transform:"translate3d("+r+"px, "+d+"px, 0px)","will-change":"transform"}),this.debug("Popover trigger width: "+s+"px"),this.debug("Popover trigger height: "+n+"px"),this.debug("popover trigger position x: "+o+"px"),this.debug("Popover trigger position Y: "+a+"px"),this.debug("Popover width: "+e+"px"),this.debug("Popover height: "+i+"px"),this.debug("Popover position x: "+r+"px"),this.debug("Popover position y: "+d+"px")}show(){this.$popover||(this.buildPopover(),this.setPosition(),this.animation?(this.$popover.addClass(this.animationSpeed),this.$popover.animateCss(this.animationIn),this.$popover.addClass("show"),this.$popover.attr("id",this.id),this.$el.attr("data-popover",this.id)):(this.$popover.addClass("show"),this.$popover.attr("id",this.id),this.$el.attr("data-popover",this.id)),this.onShow())}close(){this.$popover&&(this.animation&&!this.$popover.hasClass("animated")?this.$popover.animateCss(this.animationOut,()=>{this.$popover.remove(),this.$el.removeAttr("data-popover"),this.$popover=!1,this.onClose()}):(this.$popover.remove(),this.$el.removeAttr("data-popover"),this.$popover=!1,this.onClose()))}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(o);if(e||(e=new a(this,"object"==typeof t&&t),$(this).data(o,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[n];$.fn[n]=a._jQueryInterface,$.fn[n].Constructor=a,$.fn[n].noConflict=(()=>($.fn[n]=t,a._jQueryInterface)),$.fn[n].defaults={container:"body",trigger:"focus",placement:"bottom",animation:!0,animationIn:"fadeIn",animationOut:"fadeOut",animationSpeed:"fastest",title:"",content:"",template:!1,templateAttrs:{},onCreate:null,onUpdate:null,onDestroy:null,onShow:null,onClose:null,debug:!1}}const h="coolSelect",l="plugin_coolSelect";class r extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[h].defaults,e),this.name=null,this.scrollContentHeight=null,this.items=[],this.data={},this.searchData=[],this.searchApi=this.opts.searchApi,this.type=null,this.contentOpen=null,this.showSearch=null,this.showFooter=null,this.scroll=null,this.init()}init(){$.when(this.buildCache()).then(()=>{this.buildScroll(),this.bindEvents(),this.data[this.name].length>0&&this.setData(),this.onCreate()})}destroy(){this.unbindEvents(),this.$el.removeData(),this.onDestroy()}update(){this.buildCache(),this.bindEvents(),this.onUpdate()}buildCache(){if(this.$el=$(this.el),this.$selectHeader=this.$el.find(".select-header"),this.$selectIconContainer=this.$selectHeader.find(".select-icon"),this.name=this.$el.data("name")?this.$el.data("name"):this.opts.name,this.scrollContentHeight=this.$el.data("scrollContentHeight")?this.$el.data("scrollContentHeight"):this.opts.scrollContentHeight,this.items=this.$el.data("items")?this.$el.data("items"):this.opts.items,this.data={},this.data[this.name]=[],this.searchData=[],this.searchApi=this.$el.data("searchApi")?this.$el.data("searchApi"):this.opts.searchApi,this.type=this.$el.data("type")?this.$el.data("type"):this.opts.type,this.contentOpen=!1,this.$el.data("setData")&&""!=this.$el.data("setData")&&(this.data=this.$el.data("setData")),this.$el.find(".select-search")?this.showSearch=!0:this.showSearch=this.$el.data("showSearch")?this.$el.data("showSearch"):this.opts.showSearch,this.$el.find(".select-footer")?this.showFooter=!0:this.showFooter=this.$el.data("showFooter")?this.$el.data("showFooter"):this.opts.showFooter,!this.items.length)return this.$select=this.$el.find(".select-content"),this.$scrollableContent=this.$select.find(".select-scrollable-content"),this.$selectItems=this.$select.find(".select-item"),this.$selectLabels=this.$select.find("[data-label]"),this.showSearch&&(this.$searchContainer=this.$select.find(".select-search"),this.$searchInput=this.$select.find('[name="select-search"]'),this.$searchIconContainer=this.$select.find(".select-search-icon"),this.$clearSearchButton=this.$select.find("[data-clear-search]")),this.showFooter&&(this.$footerContainer=this.$select.find(".select-footer"),this.$closeButton=this.$select.find("[data-select-close]")),$.each(this.$selectLabels,(t,e)=>{this.searchData.push({id:t,val:$(e).text().trim()})}),this.opts.debug&&(this.debug(this.$el),this.debug(this.$select),this.debug(this.$scrollableContent),this.debug("Name: "+this.name),this.debug("Show search: "+this.showSearch),this.debug("Show footer: "+this.showFooter),this.debug("Scroll content height: "+this.scrollContentHeight+"px"),this.debug(this.items),this.debug(this.searchData)),!0;{let t=this._renderItemList(this.items);this.$select=$(`\n <div class="select-content">\n\n ${this._renderSearch()}\n\n <div class="select-scrollable-content">${t}</div>\n\n ${this._renderFooter()}\n\n </div>\n `),this.$el.append(this.$select),this.$scrollableContent=!!this.$select.find(".select-scrollable-content")&&this.$select.find(".select-scrollable-content"),this.$selectItems=this.$select.find(".select-item"),this.$selectLabels=this.$select.find("[data-label]"),this.showSearch&&(this.$searchContainer=this.$select.find(".select-search"),this.$searchInput=this.$select.find('[name="select-search"]'),this.$searchIconContainer=this.$select.find(".select-search-icon"),this.$clearSearchButton=this.$select.find("[data-clear-search]")),this.showFooter&&(this.$footerContainer=this.$select.find(".select-footer"),this.$closeButton=this.$select.find("[data-select-close]")),$.each(this.$selectLabels,function(t,e){this.searchData.push({id:t,val:$(e).text().trim()})}),this.opts.debug&&(this.debug(this.$el),this.debug(this.$select),this.debug(this.$scrollableContent),this.debug("Name: "+this.name),this.debug("Show search: "+this.showSearch),this.debug("Show footer: "+this.showFooter),this.debug("Scroll content height: "+this.scrollContentHeight+"px"),this.debug(this.items),this.debug(this.searchData))}}buildScroll(){if(this.$scrollableContent.length>0){var t=this.scrollContentHeight;this.showSearch&&(t-=this.$searchContainer.outerHeight(!0)||0),this.showFooter&&(t-=this.$footerContainer.outerHeight(!0)||0),this.$scrollableContent.css({"max-height":t-parseInt(this.$scrollableContent.css("marginTop"),10)-parseInt(this.$scrollableContent.css("marginBottom"),10)+"px"}),i||"function"!=typeof this.opts.buildScroll?this.$scrollableContent.css({"overflow-y":"auto"}):"function"==typeof this.opts.buildScroll&&(this.scroll=this.opts.buildScroll(this.$scrollableContent))}}bindEvents(){var t=this;t.$selectHeader.on("click."+h,function(){t.contentOpen?t.close.call(t):t.show.call(t)}),t.$el.on("change."+h,'input[type="checkbox"]',function(){var e=$(this).val();this.checked?-1===t.data[t.name].indexOf(e)&&t.data[t.name].push(e):t.data[t.name]=t.data[t.name].filter(t=>t!=e),t.onSelect(this)}),t.$el.on("change."+h,'input[type="radio"]',function(){var e=$(this).val();this.checked?(t.data[t.name]=e,t.$select.find('input[type="radio"]').not($(this)).prop("checked",!1),t.$select.find('input[type="radio"]').not($(this)).removeClass("checked")):t.data[t.name]=[]}),t.$el.on("click."+h,'input[type="radio"]',function(){$(this).hasClass("checked")?(t.data[t.name]=[],$(this).prop("checked",!1),$(this).removeClass("checked")):$(this).addClass("checked"),t.onSelect(this)}),this.showSearch&&(t.$searchInput.on("keydown."+h,e(function(){t.searchString=$(this).val().trim(),t.search.call(t)},250)),t.$searchInput.on("focusin."+h,function(){t.$searchContainer.addClass("focused")}),t.$searchInput.on("focusout."+h,function(){t.$searchContainer.removeClass("focused")}),t.$clearSearchButton.on("click."+h,function(){t.searchString.length&&(t.$searchInput.val(""),t.searchString="",t.search.call(t))})),this.showFooter&&t.$closeButton.on("click."+h,function(){t.close.call(t)}),$(document).on("touchstart click",function(e){!t.$el.is(e.target)&&0===t.$el.has(e.target).length&&t.contentOpen&&t.close.call(t)})}unbindEvents(){this.$el.off("."+h)}getData(t){return t?this.data[t]:this.data}setData(){var t=this,e=null;if(this.$selectIconContainer.html((this.opts.faPro,"fal")),this.searchApi.length){var i=this.searchApi,s=this.data[this.name].length,n=0;this.data[this.name].forEach(function(t){i+=encodeURIComponent("#"+t),++n!==s&&(i+="+")}),app.request(i).success(function(i){var s=(s=i.map(function(t){if(t.name)var e=t.name;else if(t.label)e=t.label;else if(t.value)e=t.value;return{id:t.id.toString(),label:e}})).filter(function(e){return t.data[t.name].indexOf(e.id)>-1}),n=$(t._renderItemList(s));$.when(t.$scrollableContent.append(n)).then(function(){if(t.scroll&&"function"==typeof t.scroll.update&&t.scroll.update(),t.$select.find(':input[type="checkbox"]').length?e="checkbox":t.$select.find(':input[type="radio"]').length&&(e="radio"),"checkbox"==e)t.data[t.name].forEach(function(e){var i=t.$select.find(":input").filter(function(){return this.value==e});i.prop("checked",!0),t.onSelect(i[0])});else if("radio"==e){var i=t.$select.find(":input").filter(function(){return this.value==t.data[t.name]});i.prop("checked",!0),i.addClass("checked"),t.onSelect(i[0])}})}).get()}else if(t.$select.find(':input[type="checkbox"]').length?e="checkbox":t.$select.find(':input[type="radio"]').length&&(e="radio"),"checkbox"==e)this.data[this.name].forEach(function(e){var i=t.$select.find(":input").filter(function(){return this.value==e});i.prop("checked",!0),t.onSelect(i[0])});else if("radio"==e){var o=t.$select.find(":input").filter(function(){return this.value==t.data[t.name]});o.prop("checked",!0),o.addClass("checked"),t.onSelect(o[0])}}search(){var t=this;if(this.searchString.length)if(this.searchApi.length)this.$scrollableContent.find("input:not(:checked)").parents(".select-item").not(".static-item").remove(),app.request(this.searchApi+this.searchString).success(function(e){var i=(i=(i=e.map(function(t){return{id:t.id.toString(),label:t.name||t.label||t.value||null}})).filter(function(e){return!(t.data[t.name].indexOf(e.id)>-1)})).filter(function(t){return[0].indexOf(t.id)>-1}),s=$(t._renderItemList(i));$.when(t.$scrollableContent.append(s)).then(function(){this.scroll&&"function"==typeof this.scroll.update&&this.scroll.update()})}).get();else{var e=this.searchData.filter(function(e){return e.val.toLocaleLowerCase().indexOf(t.searchString.toLocaleLowerCase())>-1});this.$selectItems.removeClass("d-none"),this.$selectItems.removeClass("visible"),e.forEach(function(e){$(t.$selectItems[e.id]).addClass("visible")}),this.$selectItems.not(".visible").addClass("d-none"),this.$searchIconContainer.html((this.opts.faPro,"fal")),this.$searchIconContainer.attr("data-clear-search","true")}else this.searchApi.length?(this.$scrollableContent.find("input:not(:checked)").parents(".select-item").not(".static-item").remove(),this.$searchIconContainer.html((this.opts.faPro,"fal")),this.$searchIconContainer.attr("data-clear-search","")):(this.$selectItems.removeClass("d-none"),this.$selectItems.removeClass("visible"),this.$searchIconContainer.html((this.opts.faPro,"fal")),this.$searchIconContainer.attr("data-clear-search",""));this.scroll&&"function"==typeof this.scroll.update&&this.scroll.update(),this.onUpdate()}show(){if(!this.$el.hasClass("show")){var t=$(".select.show");if(t.length)var e=parseInt(t.first().css("z-index"),10)+2;if(this.$el.css({"max-height":this.scrollContentHeight+this.$selectHeader.outerHeight(!0)+"px"}),this.$el.addClass("show"),!t.length)e=parseInt(this.$el.css("z-index"),10)+1;this.$el.css({"z-index":e}),this.scroll&&"function"==typeof this.scroll.show&&this.scroll.update(),this.$selectIconContainer.html(`<i class="${this.opts.faPro?"fal":"fas"} fa-angle-up"></i`),this.contentOpen=!0,this.onShow()}}close(){var t=this;this.$el.css("max-height",""),this.$el.removeClass("show"),setTimeout(()=>{t.$el.removeAttr("style")},300),this.data[this.name].length>0?this.$selectIconContainer.html(`<i class="${this.opts.faPro?"fal":"fas"} fa-check text-green icon"></i>`):this.$selectIconContainer.html(`<i class="${this.opts.faPro?"fal":"fas"} fa-angle-down"></i>`),this.contentOpen=!1,this.onClose()}onSelect(t){var e=this.opts.onSelect;"function"==typeof e&&e.call(t)}_renderItemList(t){let e="";for(let i=0;i<t.length;++i)e+=`\n <div class="select-item">\n\n <div class="select-item-${this.type}">\n\n <div class="styled-${this.type}">">\n\n <input type="${this.type}">" id="select-${this.name}-${t[i].id}" value="${t[i].id}">\n\n <label for="select-${this.name}-${t[i].id}">\n\n <span class="radio-inner">\n <svg viewBox="0 0 18 18">\n <polyline points="1.5 6 4.5 9 10.5 1"></polyline>\n </svg>\n </span>\n\n <span class="${this.type}">-label" data-label>\n ${t[i].label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n `}_renderSearch(){return this.showSearch?`\n <div class="select-search">\n\n <div class="select-search-input">\n\n <input type="text" name="select-search" value="" placeholder="${this.opts.searchPlaceholder}">\n\n </div>\n\n <div class="select-search-icon">\n\n <i class="${this.opts.faPro?"fal":"fas"} fa-search icon"></i>\n\n </div>\n\n </div>\n `:""}_renderFooter(){return this.showFooter?`\n <div class="select-footer">\n\n <button class="btn btn-primary" type="button" data-select-close>\n ${this.opts.btnCloseText}\n </button>\n\n </div>\n `:""}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(l);if(e||(e=new r(this,"object"==typeof t&&t),$(this).data(l,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[h];$.fn[h]=r._jQueryInterface,$.fn[h].Constructor=r,$.fn[h].noConflict=(()=>($.fn[h]=t,r._jQueryInterface)),$.fn[h].defaults={name:"",type:"checkbox",scrollContentHeight:100,faPro:!1,items:[],showSearch:!1,showFooter:!1,searchApi:!1,onCreate:null,onUpdate:null,onDestroy:null,onShow:null,onClose:null,onSearch:null,onSelect:null,buildScroll:null,searchPlaceholder:null,btnCloseText:null,debug:!1}}const d="coolDropdown",c="plugin_coolDropdown";class p extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[d].defaults,e),this.init()}init(){$.when(this.buildCache()).then(()=>{this.buildScroll(),this.bindEvents(),this.onCreate()})}destroy(){this.unbindEvents(),this.$el.removeData(),this.onDestroy()}update(){this.buildCache(),this.onUpdate()}buildCache(){if(this.$el=$(this.el),this.$el.addClass("dropdown-trigger"),this.$container=this.$el.parent(".dropdown"),this.id="dropdown-"+this.generateUUID(),this.animation=this.$el.data("animation")?this.$el.data("animation"):this.opts.animation,this.animationIn=this.$el.data("animationIn")?this.$el.data("animationIn"):this.opts.animationIn,this.animationOut=this.$el.data("animationOut")?this.$el.data("animationOut"):this.opts.animationOut,this.animationSpeed=this.$el.data("animationSpeed")?this.$el.data("animationSpeed"):this.opts.animationSpeed,this.offset=this.$el.data("offset")?this.$el.data("offset"):this.opts.offset,this.minWidth=this.$el.data("minWidth")?this.$el.data("minWidth"):this.opts.minWidth,this.template=this.$el.data("template")?this.$el.data("template"):this.opts.template,this.templateAttrs=this.$el.data("templateAttrs")?this.$el.data("templateAttrs"):this.opts.templateAttrs,this.scroll=this.$el.data("scroll")?this.$el.data("scroll"):this.opts.scroll,this.scrollContentHeight=this.$el.data("scrollContentHeight")?this.$el.data("scrollContentHeight"):this.opts.scrollContentHeight,this.closeOnItemClick=this.$el.data("closeOnItemClick")?this.$el.data("closeOnItemClick"):this.opts.closeOnItemClick,this.contentOpen=!1,this.$container.hasClass("dropup")?this.placement="top":this.$container.hasClass("dropright")?this.placement="right":this.$container.hasClass("dropbottom")?this.placement="bottom":this.placement="left","function"!=typeof this.opts.template)return this.$dropdown=!!this.$el.next(".dropdown-menu")&&this.$el.next(".dropdown-menu"),this.$dropdown.hasClass("dropdown-menu-right")?this.align="end":this.align="start",this.$scrollableContent=!!this.$dropdown.find(".dropdown-scrollable-content")&&this.$dropdown.find(".dropdown-scrollable-content"),this.$dropdownItem=this.$dropdown.find(".dropdown-item"),this.minWidth&&this.$dropdown.css("min-width",this.minWidth+"px"),this.opts.debug&&(this.debug(this.$el),this.debug(this.$container),this.debug(this.$dropdown),this.debug(this.$scrollableContent),this.debug("Id: "+this.id),this.debug("Animation: "+this.animation),this.debug("Animation in: "+this.animationIn),this.debug("Animation out: "+this.animationOut),this.debug("Animation speed: "+this.animationSpeed),this.debug("Offset: "+this.offset),this.debug("Min width: "+this.minWidth),this.debug("Template: "+this.template),this.debug(this.templateAttrs),this.debug("Scroll: "+this.scroll),this.debug("Scroll content height: "+this.scrollContentHeight+"px")),!0;{let t="end"===this.opts.align?" dropdown-menu-right":"";this.$dropdown=$(`<div class="dropdown-menu${t}" id="${this.id}">${this.template()}</div>`),$.when(this.$el.after(this.$dropdown)).then(()=>(this.$scrollableContent=!!this.$dropdown.find(".dropdown-scrollable-content")&&this.$dropdown.find(".dropdown-scrollable-content"),this.$dropdown.hasClass("dropdown-menu-right")?this.align="end":this.align="start",this.$dropdownItem=this.$dropdown.find(".dropdown-item"),this.minWidth&&this.$dropdown.css("min-width",this.minWidth+"px"),this.opts.debug&&(this.debug(this.$el),this.debug(this.$container),this.debug(this.$dropdown),this.debug(this.$scrollableContent),this.debug("Id: "+this.id),this.debug("Animation: "+this.animation),this.debug("Animation in: "+this.animationIn),this.debug("Animation out: "+this.animationOut),this.debug("Animation speed: "+this.animationSpeed),this.debug("Offset: "+this.offset),this.debug("Min width: "+this.minWidth),this.debug("Template: "+this.template),this.debug(this.templateAttrs),this.debug("Scroll: "+this.scroll),this.debug("Scroll content height: "+this.scrollContentHeight+"px")),!0))}}buildScroll(){this.opts.scroll&&this.$scrollableContent.length&&(this.$scrollableContent.css({"max-height":this.scrollContentHeight+"px"}),i||"function"!=typeof this.opts.buildScroll?this.$scrollableContent.css({"overflow-y":"auto"}):"function"==typeof this.opts.buildScroll&&(this.scroll=this.opts.buildScroll(this.$scrollableContent)))}bindEvents(){var t=this;this.$el.on("click."+d,()=>{this.contentOpen?this.close():this.show()}),this.$dropdownItem.on("click."+d,function(){t.closeOnItemClick&&t.close(),t.onItemClick(this)}),$(document).on("touchstart click",t=>{this.$el.is(t.target)||this.$dropdown.is(t.target)||0!==this.$dropdown.has(t.target).length||!this.contentOpen||this.close()}),$(window).on("resize",e(()=>{this.setPosition(),this.onUpdate()},250))}unbindEvents(){this.$el.off("."+d)}generateUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})}setPosition(t){"undefined"!=typeof str&&null!==str||(t=this.placement);var e=this.$dropdown.outerWidth(!0),i=this.$dropdown.outerHeight(!0),s=this.$el.outerWidth(!0),n=this.$el.outerHeight(!0),o=this.$el.position().left,a=this.$el.position().top;if("top"===t){if("end"===this.align)var h=s-e;else h=o;var l=a-i}else if("right"===t)h=o+s,l=a;else if("bottom"===t){if("end"===this.align)h=s-e;else h=o;l=a+n}else if("left"===t)h=o-e,l=a;if(this.offset){var r=this.offset.split(","),d=r[0],c=r[1];h+=parseInt(d,10),l+=parseInt(c,10)}this.$dropdown.css({position:"absolute",top:"0px",left:"0px",transform:"translate3d("+Math.round(h)+"px, "+Math.round(l)+"px, 0px)","will-change":"transform"}),this.opts.debug&&(this.debug("Dropdown trigger width: "+s+"px"),this.debug("Dropdown trigger height: "+n+"px"),this.debug("Dropdown trigger position x: "+o+"px"),this.debug("Dropdown trigger position Y: "+a+"px"),this.debug("Dropdown width: "+e+"px"),this.debug("Dropdown height: "+i+"px"),this.debug("Dropdown position x: "+h+"px"),this.debug("Dropdown position y: "+l+"px"))}show(){this.$dropdown&&!this.$dropdown.hasClass("show")&&(this.setPosition(),this.animation?(this.$dropdown.attr("x-placement",this.placement+"-"+this.align),this.$dropdown.addClass(this.animationSpeed),this.$dropdown.animateCss(this.animationIn),this.$dropdown.addClass("show"),this.$dropdown.attr("id",this.id),this.$el.attr("data-dropdown",this.id)):(this.$dropdown.attr("x-placement",this.placement+"-"+this.align),this.$dropdown.addClass("show"),this.$dropdown.attr("id",this.id),this.$el.attr("data-dropdown",this.id)),this.scroll&&"function"==typeof this.scroll.show&&this.scroll.update(),this.contentOpen=!0,this.onShow())}close(){this.$dropdown&&(this.animation&&!this.$dropdown.hasClass("animated")?this.$dropdown.animateCss(this.animationOut,()=>{this.$dropdown.removeClass("show"),this.$el.removeAttr("data-dropdown")}):(this.$dropdown.removeClass("show"),this.$el.removeAttr("data-dropdown")),this.contentOpen=!1,this.onClose())}onItemClick(t){var e=this.opts.onItemClick;"function"==typeof e&&e.call(t)}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(c);if(e||(e=new p(this,"object"==typeof t&&t),$(this).data(c,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[d];$.fn[d]=p._jQueryInterface,$.fn[d].Constructor=p,$.fn[d].noConflict=(()=>($.fn[d]=t,p._jQueryInterface)),$.fn[d].defaults={animation:!0,animationIn:"zoomIn",animationOut:"zoomOut",animationSpeed:"fastest",offset:null,minWidth:null,align:"start",closeOnItemClick:!0,template:!1,templateAttrs:{},scroll:!0,scrollContentHeight:100,onCreate:null,onUpdate:null,onDestroy:null,onShow:null,onClose:null,onItemClick:null,debug:!1}}const u="coolTooltip",f="plugin_coolTooltip";class m extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[u].defaults,e),this.init()}init(){this.buildCache(),this.bindEvents(),this.onCreate()}destroy(){this.unbindEvents(),this.$el.removeData(),this.onDestroy()}update(){this.buildCache(),this.onUpdate()}buildCache(){this.$el=$(this.el),this.$container=this.$el.data("container")?$(this.$el.data("container")):$(this.opts.container),this.id="tooltip-"+this.generateUUID(),this.animation=this.$el.data("animation")?this.$el.data("animation"):this.opts.animation,this.animationIn=this.$el.data("animationIn")?this.$el.data("animationIn"):this.opts.animationIn,this.animationOut=this.$el.data("animationOut")?this.$el.data("animationOut"):this.opts.animationOut,this.animationSpeed=this.$el.data("animationSpeed")?this.$el.data("animationSpeed"):this.opts.animationSpeed,this.placement=this.$el.data("placement")?this.$el.data("placement"):this.opts.placement,this.content=this.$el.data("content")?this.$el.data("content"):this.opts.content}bindEvents(){this.$el.on("mouseenter."+u,()=>{this.show()}),this.$el.on("mouseleave."+u,()=>{this.close()}),$(window).on("resize",e(()=>{this.$tooltip&&(this.setPosition(),this.onUpdate())},250))}unbindEvents(){this.$el.off("."+u)}generateUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)})}buildTooltip(){this.$tooltip=$(`\n <div class="tooltip tooltip-${this.placement}" role="tooltip" id="${this.id}">\n\n <div class="arrow"></div>\n\n <div class="tooltip-inner">${this.content}</div>\n\n </div>\n `),this.$container.append(this.$tooltip),this.$arrow=this.$tooltip.find(".arrow"),this.opts.debug&&(this.debug(this.$el),this.debug(this.$container),this.debug(this.$tooltip),this.debug(this.$arrow),this.debug("Id: "+this.id),this.debug("Animation: "+this.animation),this.debug("Animation in: "+this.animationIn),this.debug("Animation out: "+this.animationOut),this.debug("Animation speed: "+this.animationSpeed),this.debug("Placement: "+this.placement),this.debug("Content: "+this.content))}setPosition(t){"undefined"!=typeof str&&null!==str||(t=this.placement);var e=this.$tooltip.outerWidth(!0),i=this.$tooltip.outerHeight(!0),s=this.$el.outerWidth(),n=this.$el.outerHeight(),o=this.$el.offset().left,a=this.$el.offset().top,h=this.$arrow.outerWidth(!0),l=this.$arrow.outerHeight(!0);if("top"===t){var r=Math.round(o-(e-s)/2),d=Math.round(a-i),c=Math.round(e/2-h/2);this.$arrow.css({left:c+"px"})}else if("right"===t){r=Math.round(o+s),d=Math.round(a-(i-n)/2),c=Math.round(i/2-l/2);this.$arrow.css({top:c+"px"})}else if("bottom"===t){r=Math.round(o-(e-s)/2),d=Math.round(a+n),c=Math.round(e/2-h/2);this.$arrow.css({left:c+"px"})}else if("left"===t){r=Math.round(o-e),d=Math.round(a-(i-n)/2),c=Math.round(i/2-l/2);this.$arrow.css({top:c+"px"})}this.$tooltip.css({position:"absolute",top:"0px",left:"0px",transform:"translate3d("+r+"px, "+d+"px, 0px)","will-change":"transform"}),this.opts.debug&&(this.debug("Tooltip trigger width: "+s+"px"),this.debug("Tooltip trigger height: "+n+"px"),this.debug("Tooltip trigger position x: "+o+"px"),this.debug("Tooltip trigger position Y: "+a+"px"),this.debug("Tooltip width: "+e+"px"),this.debug("Tooltip height: "+i+"px"),this.debug("Tooltip position x: "+r+"px"),this.debug("Tooltip position y: "+d+"px"))}show(){this.$tooltip||(this.buildTooltip(),this.setPosition(),this.animation?(this.$tooltip.addClass(this.animationSpeed),this.$tooltip.animateCss(this.animationIn),this.$tooltip.addClass("show"),this.$tooltip.attr("id",this.id),this.$el.attr("data-tooltip",this.id)):(this.$tooltip.addClass("show"),this.$tooltip.attr("id",this.id),this.$el.attr("data-tooltip",this.id)),this.onShow())}close(){this.$tooltip&&(this.animation&&!this.$tooltip.hasClass("animated")?this.$tooltip.animateCss(this.animationOut,()=>{this.$tooltip.remove(),this.$el.removeAttr("data-tooltip"),this.$tooltip=null,this.onClose()}):(this.$tooltip.remove(),this.$el.removeAttr("data-tooltip"),this.$tooltip=null,this.onClose()))}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(f);if(e||(e=new m(this,"object"==typeof t&&t),$(this).data(f,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[u];$.fn[u]=m._jQueryInterface,$.fn[u].Constructor=m,$.fn[u].noConflict=(()=>($.fn[u]=t,m._jQueryInterface)),$.fn[u].defaults={container:"body",animation:!1,animationIn:"fadeIn",animationOut:"fadeOut",animationSpeed:"fastest",placement:"bottom",content:"",onCreate:null,onUpdate:null,onDestroy:null,onShow:null,onClose:null,debug:!1}}const g="coolSectionTabs",b="plugin_coolSectionTabs";class w extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[g].defaults,e),this.init()}init(){this.buildCache(),this.bindEvents(),this.onCreate()}destroy(){this.unbindEvents(),this.$el.removeData(),this.onDestroy()}update(){this.buildCache(),this.onUpdate()}buildCache(){this.$el=$(this.el),this.$dropdownContainer=this.$el.find(".dropdown-container"),this.$dropdownList=this.$el.find(".dropdown-list"),this.tabsCount=this.$el.find("> .tab-item").length,this.tabs=this.$el.find("> .tab-item:visible"),$.each(this.tabs,function(t,e){$(e).data("width",$(e).outerWidth(!0))}),this.opts.debug&&(this.debug(this.$el),this.debug(this.$dropdownContainer),this.debug(this.$dropdownList),this.debug(this.tabsCount))}bindEvents(){var t=this;$(window).on("resize",e(function(){t.checkForChanges.call(t)},250)).trigger("resize")}unbindEvents(){this.$el.off("."+this._name)}moveToList(t){$(t).insertBefore(this.$dropdownContainer),this.checkForChanges()}moveToDropdown(t){$(t).appendTo(this.$dropdownList),this.checkForChanges()}overflowStatus(){return this.$el[0].offsetWidth<this.$el[0].scrollWidth}checkForChanges(){var t=this.$dropdownList.children(),e=this.$el.find("> .tab-item").not(this.$dropdownContainer),i=this.$el.find("> .tab-item:visible"),s=0;$.each(i,function(t,e){s+=$(e).outerWidth(!0)});var n=this.$el[0].offsetWidth-s;t.length>0?this.$dropdownContainer.hasClass("visible")||this.$dropdownContainer.addClass("visible"):this.$dropdownContainer.hasClass("visible")&&this.$dropdownContainer.removeClass("visible"),1==this.overflowStatus()?e.length>0&&this.moveToDropdown(e.last()):t.length>0&&n>t.last().data("width")&&this.moveToList(t.last())}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(b);if(e||(e=new CoolPopover(this,"object"==typeof t&&t),$(this).data(b,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[g];$.fn[g]=w._jQueryInterface,$.fn[g].Constructor=w,$.fn[g].noConflict=(()=>($.fn[g]=t,w._jQueryInterface)),$.fn[g].defaults={onCreate:null,onUpdate:null,onDestroy:null,debug:!1}}const v="coolCollapse",C="plugin_coolCollapse";class x extends s{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[v].defaults,e),this.init()}init(){$(this.el).on("click",function(t){t.preventDefault();var e=$(this),i=$(this).attr("data-target"),s=$(document).find(i),n=$(s).height(),o=$(document).find('[data-collapse-indicator="'+i+'"]'),a=$(s).closest(".section-collapse");o.length||(o=$(e).parent().find("[data-collapse-indicator]")),s.length||(s=$(e).parent().find(".collapse"),n=$(s).height()),$(s).removeClass("collapse visible"),$(s).addClass("collapsing"),$(e).hasClass("target-collapsed")?($(e).is("button")&&$(e).attr("disabled",!0),a.length&&$(a).removeClass("collapsed"),$(s).css("height",$(s).height()),setTimeout(function(){$(s).css("height",0)},10),o.length&&$(o).hasClass("collapsed")&&$(o).removeClass("collapsed")):($(e).is("button")&&$(e).attr("disabled",!0),a.length&&$(a).addClass("collapsed"),$(s).css("height"),$(s).css("height",n),o.length&&$(o).addClass("collapsed"));var h=function(){var t=document.createElement("text-transition"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return e[i]}();$(s).one(h,function(){$(s).removeClass("collapsing"),$(e).hasClass("target-collapsed")?($(e).is("button")&&$(e).attr("disabled",!1),$(s).removeAttr("style"),$(s).addClass("collapse"),$(e).removeClass("target-collapsed")):($(e).is("button")&&$(e).attr("disabled",!1),$(s).removeAttr("style"),$(s).addClass("collapse visible"),$(e).addClass("target-collapsed"),$(s).css("height","auto"))})})}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(C);if(e||(e=new x(this,"object"==typeof t&&t),$(this).data(C,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[v];$.fn[v]=x._jQueryInterface,$.fn[v].Constructor=x,$.fn[v].noConflict=(()=>($.fn[v]=t,x._jQueryInterface)),$.fn[v].defaults={}}return{Common:t,Popover:a,Select:r,Dropdown:p,Tooltip:m,SectionTabs:w,Collapse:x}});
7
+ //# sourceMappingURL=cool.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../js/src/util/animate-css.js","../../js/src/common.js","../../js/src/util/index.js","../../js/src/abstract-ui-component.js","../../js/src/popover.js","../../js/src/select.js","../../js/src/dropdown.js","../../js/src/tooltip.js","../../js/src/section-tabs.js","../../js/src/collapse.js","../../js/index.umd.js"],"names":["$","fn","extend","animateCss","animationName","callback","animationEnd","this","addClass","one","e","removeClass","children","on","stopPropagation","Common","[object Object]","document","hasClass","not","attr","$inputGroup","closest","each","i","formLabelGroup","find","val","trigger","window","Cool","initialize","debounce","func","wait","immediate","timeout","context","args","arguments","callNow","clearTimeout","setTimeout","apply","touchEvents","DocumentTouch","AbstractUIComponent","onCreate","opts","call","el","onUpdate","onDestroy","onShow","onClose","debug","console","log","NAME","DATA_KEY","Popover","constructor","element","config","super","defaults","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$container","data","container","id","generateUUID","placement","animation","animationIn","animationOut","animationSpeed","title","content","template","templateAttrs","$popover","close","show","setPosition","off","replace","c","r","Math","random","toString","buildPopover","append","$arrow","str","popoverWidth","outerWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","left","popoverTriggerPosY","top","arrowWidth","arrowHeight","popoverPosX","popoverPosY","arrowPos","css","transform","will-change","remove","removeAttr","TypeError","JQUERY_NO_CONFLICT","_jQueryInterface","Constructor","noConflict","Select","name","scrollContentHeight","items","searchData","searchApi","type","contentOpen","showSearch","showFooter","scroll","when","then","buildScroll","length","setData","$selectHeader","$selectIconContainer","$select","$scrollableContent","$selectItems","$selectLabels","$searchContainer","$searchInput","$searchIconContainer","$clearSearchButton","$footerContainer","$closeButton","push","text","trim","_renderItemList","_renderSearch","_renderFooter","max-height","parseInt","overflow-y","plugin","checked","indexOf","filter","n","onSelect","prop","searchString","search","is","target","has","getData","html","faPro","searchUrl","itemCount","currentCount","forEach","value","encodeURIComponent","app","request","success","map","item","label","result","$input","get","parents","results","toLocaleLowerCase","$otherSelects","zindex","first","z-index","searchPlaceholder","btnCloseText","onSearch","Dropdown","parent","offset","minWidth","closeOnItemClick","$dropdown","next","align","$dropdownItem","menuRight","after","self","onItemClick","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsets","split","offsetX","offsetY","round","Tooltip","$tooltip","buildTooltip","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","tooltipPosX","tooltipPosY","SectionTabs","$dropdownContainer","$dropdownList","tabsCount","tabs","checkForChanges","_name","moveToList","insertBefore","moveToDropdown","appendTo","overflowStatus","offsetWidth","scrollWidth","dropdownItems","moveableTabs","usedSpace","freeSpace","last","CoolPopover","Collapse","preventDefault","dataTarget","targetHeight","height","collapseIndicator","collapseContainer","transEndEventName","createElement","transEndEventNames","WebkitTransition","MozTransition","transition","t","undefined","style","whichTransitionEvent"],"mappings":"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","sourcesContent":["import 'jquery';\n\n$.fn.extend({\n animateCss: function (animationName, callback) {\n\n var el = this;\n var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\n\n el.addClass('animated ' + animationName).one(animationEnd, function(e) {\n\n $(this).removeClass('animated ' + animationName);\n\n if (callback) {\n callback();\n }\n\n }).children().on(animationEnd, function(e) {\n\n e.stopPropagation();\n });\n }\n});","import 'jquery';\nimport './util/animate-css';\n\nclass Common {\n\n\tstatic initialize() {\n\t\t$('html').addClass('dom-ready');\n\n\t\t$(document).on('focus', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n var $inputGroup = $(this).closest('.input-group');\n\n if (!$inputGroup.hasClass('input-group-focus')) {\n $inputGroup.addClass('input-group-focus');\n }\n }\n });\n\n $(document).on('blur', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n var $inputGroup = $(this).closest('.input-group');\n\n if ($inputGroup.hasClass('input-group-focus')) {\n $inputGroup.removeClass('input-group-focus');\n }\n }\n });\n\n $('.form-label-group').each(function(i, formLabelGroup) {\n var $formLabelGroup = $(formLabelGroup);\n\n $formLabelGroup.find('input').on('blur input change', function () {\n var val = $(this).val();\n\n if (val) {\n $(formLabelGroup).addClass('label-on-top');\n } else {\n $(formLabelGroup).removeClass('label-on-top');\n }\n }).trigger('change');\n });\n\t}\n}\n\nwindow.Cool = window.Cool || {};\nwindow.Cool.initialize = Common.initialize;\n\nexport default Common;\n","import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\tvar length = getLength(collection);\n\treturn typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\titeratee = optimizeCb(iteratee, context);\n\tvar i, length;\n\tif (isArrayLike(obj)) {\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\t} else {\n\t\tvar keys = _.keys(obj);\n\t\tfor (i = 0, length = keys.length; i < length; i++) {\n\t\t\titeratee(obj[keys[i]], keys[i], obj);\n\t\t}\n\t}\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\treturn true;\n\t}\n};\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\t// Create callback\n onCreate() {\n\n var onCreate = this.opts.onCreate;\n\n if (typeof onCreate === 'function') {\n\n onCreate.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n var onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this.el);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n var onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.el);\n }\n }\n\n // Show callback\n onShow() {\n\n var onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this.el);\n }\n }\n\n // Close callback\n onClose() {\n\n var onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n debug(...args) {\n \tif (this.opts.debug) {\n if (typeof this.opts.debug === 'function') {\n this.opts.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolPopover';\nconst DATA_KEY = 'plugin_coolPopover';\n\nclass Popover extends AbstractUIComponent {\n\n constructor(element, config) {\n super();\n\n this.el = element;\n this.opts = $.extend({}, $.fn[NAME].defaults, config);\n this.init();\n }\n\n // Init plugin\n init() {\n this.buildCache();\n this.bindEvents();\n this.onCreate();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'popover-'+this.generateUUID();\n this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.template = this.$el.data('template') ? this.$el.data('template') : this.opts.template;\n this.templateAttrs = this.$el.data('templateAttrs') ? this.$el.data('templateAttrs') : this.opts.templateAttrs;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n if (this.trigger === 'click') {\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n\n } else if (this.trigger === 'hover') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n } else if (this.trigger === 'focus') {\n\n this.$el.on('focusin'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('focusout'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(window).on('resize', debounce(() => {\n\n if (this.$popover) {\n this.setPosition();\n this.onUpdate();\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Build popover\n buildPopover() {\n \tlet content = this.content;\n\n \tif (typeof this.opts.template === 'function') {\n \t\tcontent = this.opts.template();\n \t}\n\n \tthis.$popover = $(`\n \t\t<div class=\"popover popover-${this.placement}\" role=\"tooltip\" id=\"${this.id}\">\n\n\t\t\t <div class=\"arrow\"></div>\n\n\t\t\t <h3 class=\"popover-header\">${this.title}</h3>\n\n\t\t\t <div class=\"popover-body\">${content}</div>\n\n\t\t\t</div>\n \t`);\n\n this.$container.append(this.$popover);\n this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;\n\n this.debug(this.$el);\n this.debug(this.$container);\n this.debug(this.$popover);\n this.debug(this.$arrow);\n this.debug('Id: '+this.id);\n this.debug('Trigger: '+this.trigger);\n this.debug('Placement: '+this.placement);\n this.debug('Animation: '+this.animation);\n this.debug('Animation in: '+this.animationIn);\n this.debug('Animation out: '+this.animationOut);\n this.debug('Animation speed: '+this.animationSpeed);\n this.debug('Title: '+this.title);\n this.debug('Content: '+this.content);\n this.debug('Template: '+this.template);\n this.debug(this.templateAttrs);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n var popoverWidth = this.$popover.outerWidth(true);\n var popoverHeight = this.$popover.outerHeight(true);\n var popoverTriggerWidth = this.$el.outerWidth();\n var popoverTriggerHeight = this.$el.outerHeight();\n var popoverTriggerPosX = this.$el.position().left;\n var popoverTriggerPosY = this.$el.position().top;\n var arrowWidth = this.$arrow.outerWidth(true);\n var arrowHeight = this.$arrow.outerHeight(true);\n\n if (placement === 'top') {\n\n var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;\n var popoverPosY = popoverTriggerPosY - popoverHeight;\n var arrowPos = popoverWidth / 2 - arrowWidth / 2;\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n var popoverPosX = popoverTriggerPosX + popoverTriggerWidth;\n var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;\n var arrowPos = popoverHeight / 2 - arrowHeight / 2;\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;\n var popoverPosY = popoverTriggerPosY + popoverTriggerHeight;\n var arrowPos = popoverWidth / 2 - arrowWidth / 2;\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n var popoverPosX = popoverTriggerPosX - popoverWidth;\n var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;\n var arrowPos = popoverHeight / 2 - arrowHeight / 2;\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.debug('Popover trigger width: '+popoverTriggerWidth+'px');\n this.debug('Popover trigger height: '+popoverTriggerHeight+'px');\n this.debug('popover trigger position x: '+popoverTriggerPosX+'px');\n this.debug('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.debug('Popover width: '+popoverWidth+'px');\n this.debug('Popover height: '+popoverHeight+'px');\n this.debug('Popover position x: '+popoverPosX+'px');\n this.debug('Popover position y: '+popoverPosY+'px');\n }\n\n // Show\n show() {\n\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n if (this.animation) {\n\n this.$popover.addClass(this.animationSpeed);\n this.$popover.animateCss(this.animationIn);\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n\n } else {\n\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n if (!this.$popover) {\n return;\n }\n\n if (this.animation && !this.$popover.hasClass('animated')) {\n\n this.$popover.animateCss(this.animationOut, () => {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n \treturn this.each(function() {\n \t\tlet data = $(this).data(DATA_KEY);\n \t\tconst _config = typeof config === 'object' && config;\n\n \t\tif (!data) {\n \t\t\tdata = new Popover(this, _config);\n \t\t\t$(this).data(DATA_KEY, data);\n \t\t}\n\n \t\tif (typeof config === 'string') {\n \t\t\tif (typeof data[config] === 'undefined') {\n\t\t \tthrow new TypeError(`No method named \"${config}\"`)\n\t\t }\n\n\t\t data[config]()\n \t\t}\n\t });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Popover._jQueryInterface;\n $.fn[NAME].Constructor = Popover;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n container: 'body',\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n template: false,\n templateAttrs: {},\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n };\n\n}\n\nexport default Popover;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSelect';\nconst DATA_KEY = 'plugin_coolSelect';\n\nclass Select extends AbstractUIComponent {\n\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.name = null;\n this.scrollContentHeight = null;\n this.items = [];\n this.data = {};\n this.searchData = [];\n\n // search api URL to query data\n this.searchApi = this.opts.searchApi;\n\n // Tells which type the select objects are (radio|select)\n this.type = null;\n\n // Is the content visible?\n this.contentOpen = null;\n\n // Tells if we have a search in our element\n this.showSearch = null;\n\n // Tells if we have a footer in our element\n this.showFooter = null;\n\n // For custom scroll function callback to store the object\n // in order to update the scroll\n this.scroll = null;\n\n this.init();\n }\n\n // Init plugin\n init() {\n $.when(this.buildCache()).then(() => {\n\n this.buildScroll();\n this.bindEvents();\n\n if (this.data[this.name].length > 0) {\n this.setData();\n }\n\n this.onCreate();\n });\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.bindEvents();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n this.$el = $(this.el);\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\n this.name = this.$el.data('name') ? this.$el.data('name') : this.opts.name;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.items = this.$el.data('items') ? this.$el.data('items') : this.opts.items;\n this.data = {}\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;\n this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;\n this.contentOpen = false;\n\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n if (this.$el.find('.select-search')) {\n this.showSearch = true;\n } else {\n this.showSearch = this.$el.data('showSearch') ? this.$el.data('showSearch') : this.opts.showSearch;\n }\n\n if (this.$el.find('.select-footer')) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n if (this.items.length) {\n let items = this._renderItemList(this.items);\n\n this.$select = $(`\n <div class=\"select-content\">\n\n ${this._renderSearch()}\n\n <div class=\"select-scrollable-content\">${items}</div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\n\n this.$scrollableContent = this.$select.find('.select-scrollable-content') ? this.$select.find('.select-scrollable-content') : false;\n this.$selectItems = this.$select.find('.select-item');\n this.$selectLabels = this.$select.find('[data-label]');\n\n if (this.showSearch) {\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$searchIconContainer = this.$select.find('.select-search-icon');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n }\n\n if (this.showFooter) {\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n }\n\n $.each(this.$selectLabels, function(i, el) {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$select);\n this.debug(this.$scrollableContent);\n this.debug('Name: '+this.name);\n this.debug('Show search: '+this.showSearch);\n this.debug('Show footer: '+this.showFooter);\n this.debug('Scroll content height: '+this.scrollContentHeight+'px');\n this.debug(this.items);\n this.debug(this.searchData);\n }\n } else {\n\n this.$select = this.$el.find('.select-content');\n this.$scrollableContent = this.$select.find('.select-scrollable-content');\n this.$selectItems = this.$select.find('.select-item');\n this.$selectLabels = this.$select.find('[data-label]');\n\n if (this.showSearch) {\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$searchIconContainer = this.$select.find('.select-search-icon');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n }\n\n if (this.showFooter) {\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n }\n\n $.each(this.$selectLabels, (i, el) => {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$select);\n this.debug(this.$scrollableContent);\n this.debug('Name: '+this.name);\n this.debug('Show search: '+this.showSearch);\n this.debug('Show footer: '+this.showFooter);\n this.debug('Scroll content height: '+this.scrollContentHeight+'px');\n this.debug(this.items);\n this.debug(this.searchData);\n }\n\n return true;\n }\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.$scrollableContent.length > 0) {\n\n var scrollContentHeight = this.scrollContentHeight;\n\n if (this.showSearch) {\n scrollContentHeight = scrollContentHeight - (this.$searchContainer.outerHeight(true) || 0);\n }\n\n if (this.showFooter) {\n scrollContentHeight = scrollContentHeight - (this.$footerContainer.outerHeight(true) || 0);\n }\n\n this.$scrollableContent.css({\n 'max-height': (scrollContentHeight - parseInt(this.$scrollableContent.css('marginTop'), 10) - parseInt(this.$scrollableContent.css('marginBottom'), 10)) +'px'\n });\n\n if (touchEvents || typeof this.opts.buildScroll !== 'function') {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else if (typeof this.opts.buildScroll === 'function') {\n\n this.scroll = this.opts.buildScroll(this.$scrollableContent);\n\n // this.$scrollableContent.addClass('ps-dark');\n // this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n // wheelSpeed: 1,\n // wheelPropagation: false,\n // minScrollbarLength: 20,\n // scrollYMarginOffset : -1,\n // suppressScrollY: true,\n // suppressScrollX: true,\n // });\n\n // if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n\n // this.$scrollableContent.addClass('ps-show-rail-y');\n // this.scroll.settings.suppressScrollY = false;\n // }\n }\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n var plugin = this;\n\n plugin.$selectHeader.on('click'+'.'+NAME, function() {\n\n if (plugin.contentOpen) {\n plugin.close.call(plugin);\n } else {\n plugin.show.call(plugin);\n }\n });\n\n plugin.$el.on('change'+'.'+NAME, 'input[type=\"checkbox\"]', function() {\n\n var val = $(this).val();\n\n if (this.checked) {\n plugin.data[plugin.name].indexOf(val) === -1 ? plugin.data[plugin.name].push(val) : false;\n } else {\n plugin.data[plugin.name] = plugin.data[plugin.name].filter(n => n != val);\n }\n\n plugin.onSelect(this);\n });\n\n plugin.$el.on('change'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n var val = $(this).val();\n\n if (this.checked) {\n\n plugin.data[plugin.name] = val;\n plugin.$select.find('input[type=\"radio\"]').not($(this)).prop('checked', false);\n plugin.$select.find('input[type=\"radio\"]').not($(this)).removeClass('checked');\n\n } else {\n\n plugin.data[plugin.name] = [];\n }\n });\n\n plugin.$el.on('click'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n if ($(this).hasClass('checked')) {\n\n plugin.data[plugin.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n } else {\n\n $(this).addClass('checked');\n }\n\n plugin.onSelect(this);\n });\n\n // if (this.scroll) {\n\n // plugin.$scrollableContent.find('.ps__thumb-y').mousedown(function() {\n // plugin.$scrollableContent.addClass('ps-mousedown-scroll');\n // });\n\n // $(document).mouseup(function() {\n\n // if (plugin.$scrollableContent.hasClass('ps-mousedown-scroll')) {\n // plugin.$scrollableContent.removeClass('ps-mousedown-scroll');\n // }\n // });\n // }\n\n if (this.showSearch) {\n\n plugin.$searchInput.on('keydown'+'.'+NAME, debounce(function () {\n\n plugin.searchString = $(this).val().trim();\n plugin.search.call(plugin);\n\n }, 250));\n\n plugin.$searchInput.on('focusin'+'.'+NAME, function () {\n\n plugin.$searchContainer.addClass('focused');\n });\n\n plugin.$searchInput.on('focusout'+'.'+NAME, function () {\n\n plugin.$searchContainer.removeClass('focused');\n });\n\n plugin.$clearSearchButton.on('click'+'.'+NAME, function() {\n\n if (plugin.searchString.length) {\n\n plugin.$searchInput.val('');\n plugin.searchString = '';\n\n plugin.search.call(plugin);\n\n } else {\n\n return;\n }\n });\n }\n\n if (this.showFooter) {\n\n plugin.$closeButton.on('click'+'.'+NAME, function() {\n\n plugin.close.call(plugin);\n });\n }\n\n $(document).on('touchstart click', function(e) {\n\n if (!plugin.$el.is(e.target) && plugin.$el.has(e.target).length === 0 && plugin.contentOpen) {\n\n plugin.close.call(plugin);\n }\n });\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Get data\n getData(data) {\n\n if (data) {\n return this.data[data];\n } else {\n return this.data;\n }\n }\n\n // Set data\n setData() {\n\n var plugin = this;\n var type = null;\n\n this.$selectIconContainer.html('<i class=\"' + this.opts.faPro ? 'fal' : 'fas' + ' fa-check text-green icon\"></i>');\n\n if (this.searchApi.length) {\n\n var searchUrl = this.searchApi;\n var itemCount = this.data[this.name].length;\n var currentCount = 0;\n\n this.data[this.name].forEach(function(value) {\n\n searchUrl += encodeURIComponent('#'+value);\n currentCount++;\n\n if (currentCount !== itemCount) {\n searchUrl += '+';\n }\n });\n\n app.request(searchUrl).success(function (data) {\n\n var items = data.map(function (item) {\n\n if (item.name) {\n var label = item.name;\n } else if (item.label) {\n var label = item.label;\n } else if (item.value) {\n var label = item.value;\n }\n\n return {\n id: item.id.toString(),\n label: label\n }\n });\n\n var items = items.filter(function(item) {\n return plugin.data[plugin.name].indexOf(item.id) > -1;\n });\n\n var result = $(plugin._renderItemList(items));\n\n // var result = $(plugin.hbs['ui/select/templates/partials/select-item']({\n // selectType: plugin.type,\n // selectName: plugin.name,\n // items: items\n // })).i18n();\n\n $.when(plugin.$scrollableContent.append(result)).then(function() {\n\n if (plugin.scroll && typeof plugin.scroll.update === 'function') {\n plugin.scroll.update();\n }\n\n // if (plugin.$scrollableContent[0].offsetHeight < plugin.$scrollableContent[0].scrollHeight) {\n\n // plugin.scroll.update();\n // plugin.scroll.settings.suppressScrollY = false;\n // plugin.$scrollableContent.addClass('ps-show-rail-y');\n\n // } else {\n\n // plugin.scroll.update();\n // plugin.scroll.settings.suppressScrollY = true;\n // plugin.$scrollableContent.removeClass('ps-show-rail-y');\n // }\n\n if (plugin.$select.find(':input[type=\"checkbox\"]').length) {\n type = 'checkbox';\n } else if (plugin.$select.find(':input[type=\"radio\"]').length) {\n type = 'radio';\n }\n\n if (type == 'checkbox') {\n\n plugin.data[plugin.name].forEach(function(value) {\n\n var $input = plugin.$select.find(':input').filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n plugin.onSelect($input[0]);\n });\n\n } else if (type == 'radio') {\n\n var $input = plugin.$select.find(':input').filter(function() { return this.value == plugin.data[plugin.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n plugin.onSelect($input[0]);\n }\n });\n\n }).get();\n\n } else {\n\n if (plugin.$select.find(':input[type=\"checkbox\"]').length) {\n type = 'checkbox';\n } else if (plugin.$select.find(':input[type=\"radio\"]').length) {\n type = 'radio';\n }\n\n if (type == 'checkbox') {\n\n this.data[this.name].forEach(function(value) {\n\n var $input = plugin.$select.find(':input').filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n plugin.onSelect($input[0]);\n });\n\n } else if (type == 'radio') {\n\n var $input = plugin.$select.find(':input').filter(function() { return this.value == plugin.data[plugin.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n plugin.onSelect($input[0]);\n }\n }\n }\n\n // Search\n search() {\n\n var plugin = this;\n\n if (this.searchString.length) {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n\n app.request(this.searchApi + this.searchString).success(function (data) {\n\n var items = data.map(function (item) {\n return {\n id: item.id.toString(),\n label: item.name || item.label || item.value || null\n }\n });\n\n var items = items.filter(function(item) {\n return !(plugin.data[plugin.name].indexOf(item.id) > -1);\n });\n\n // Remove 0 id from results\n var items = items.filter(function(item) {\n return [0].indexOf(item.id) > -1;\n });\n\n var result = $(plugin._renderItemList(items));\n\n $.when(plugin.$scrollableContent.append(result)).then(function() {\n\n if (this.scroll && typeof this.scroll.update === 'function') {\n this.scroll.update();\n }\n\n // plugin.$searchIconContainer.html('<i class=\"fal fa-times icon\"></i>');\n // plugin.$searchIconContainer.attr('data-clear-search', 'true');\n\n // if (plugin.$scrollableContent[0].offsetHeight < plugin.$scrollableContent[0].scrollHeight) {\n\n // plugin.scroll.update();\n // plugin.scroll.settings.suppressScrollY = false;\n // plugin.$scrollableContent.addClass('ps-show-rail-y');\n\n // } else {\n\n // plugin.scroll.update();\n // plugin.scroll.settings.suppressScrollY = true;\n // plugin.$scrollableContent.removeClass('ps-show-rail-y');\n // }\n });\n\n }).get();\n\n } else {\n\n var results = this.searchData.filter(function(item) {\n return item.val.toLocaleLowerCase().indexOf(plugin.searchString.toLocaleLowerCase()) > -1;\n });\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n\n results.forEach(function(item) {\n $(plugin.$selectItems[item.id]).addClass('visible');\n });\n\n this.$selectItems.not('.visible').addClass('d-none');\n this.$searchIconContainer.html('<i class=\"' + this.opts.faPro ? 'fal' : 'fas' + ' fa-times icon\"></i>');\n this.$searchIconContainer.attr('data-clear-search', 'true');\n }\n\n } else {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n this.$searchIconContainer.html('<i class=\"' + this.opts.faPro ? 'fal' : 'fas' + ' fa-search icon\"></i>');\n this.$searchIconContainer.attr('data-clear-search', '');\n\n } else {\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n this.$searchIconContainer.html('<i class=\"' + this.opts.faPro ? 'fal' : 'fas' + ' fa-search icon\"></i>');\n this.$searchIconContainer.attr('data-clear-search', '');\n }\n }\n\n if (this.scroll && typeof this.scroll.update === 'function') {\n this.scroll.update();\n }\n\n this.onUpdate();\n }\n\n // Show\n show() {\n\n if (this.$el.hasClass('show')) {\n return;\n }\n\n var $otherSelects = $('.select.show');\n\n if ($otherSelects.length) {\n var zindex = parseInt($otherSelects.first().css('z-index'), 10) + 2;\n }\n\n this.$el.css({\n 'max-height': (this.scrollContentHeight + this.$selectHeader.outerHeight(true))+'px'\n });\n\n this.$el.addClass('show');\n\n if (!$otherSelects.length) {\n var zindex = parseInt(this.$el.css('z-index'), 10) + 1;\n }\n\n this.$el.css({\n 'z-index': zindex\n });\n\n if (this.scroll && typeof this.scroll.show === 'function') {\n\n this.scroll.update();\n // if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n // this.$scrollableContent[0].scrollTop = 1;\n // this.$scrollableContent[0].scrollTop = 0;\n // }\n }\n\n this.$selectIconContainer.html(`<i class=\"${this.opts.faPro ? 'fal' : 'fas'} fa-angle-up\"></i`);\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n var plugin = this;\n\n this.$el.css('max-height', '');\n this.$el.removeClass('show');\n\n setTimeout(() => {\n plugin.$el.removeAttr('style');\n }, 300);\n\n if (this.data[this.name].length > 0) {\n this.$selectIconContainer.html(`<i class=\"${this.opts.faPro ? 'fal' : 'fas'} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(`<i class=\"${this.opts.faPro ? 'fal' : 'fas'} fa-angle-down\"></i>`);\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n onSelect(el) {\n\n var onSelect = this.opts.onSelect;\n\n if (typeof onSelect === 'function') {\n\n onSelect.call(el);\n }\n }\n\n _renderItemList(items) {\n let html = '';\n\n for (let i = 0; i < items.length; ++i) {\n html += `\n <div class=\"select-item\">\n\n <div class=\"select-item-${this.type}\">\n\n <div class=\"styled-${this.type}\">\">\n\n <input type=\"${this.type}\">\" id=\"select-${this.name}-${items[i].id}\" value=\"${items[i].id}\">\n\n <label for=\"select-${this.name}-${items[i].id}\">\n\n <span class=\"radio-inner\">\n <svg viewBox=\"0 0 18 18\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n\n <span class=\"${this.type}\">-label\" data-label>\n ${items[i].label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n `;\n }\n }\n\n _renderSearch() {\n if (!this.showSearch) {\n return '';\n }\n\n return `\n <div class=\"select-search\">\n\n <div class=\"select-search-input\">\n\n <input type=\"text\" name=\"select-search\" value=\"\" placeholder=\"${this.opts.searchPlaceholder}\">\n\n </div>\n\n <div class=\"select-search-icon\">\n\n <i class=\"${this.opts.faPro ? 'fal' : 'fas'} fa-search icon\"></i>\n\n </div>\n\n </div>\n `;\n }\n\n _renderFooter() {\n if (!this.showFooter) {\n return '';\n }\n\n return `\n <div class=\"select-footer\">\n\n <button class=\"btn btn-primary\" type=\"button\" data-select-close>\n ${this.opts.btnCloseText}\n </button>\n\n </div>\n `;\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Select(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Select._jQueryInterface;\n $.fn[NAME].Constructor = Select;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Select._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n name: '',\n type: 'checkbox',\n scrollContentHeight: 100,\n faPro: false,\n items: [],\n showSearch: false,\n showFooter: false,\n searchApi: false,\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onSearch: null,\n onSelect: null,\n // function that should return object with update method\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n debug: false\n };\n}\n\nexport default Select;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolDropdown';\nconst DATA_KEY = 'plugin_coolDropdown';\n\nclass Dropdown extends AbstractUIComponent {\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.init();\n }\n\n // Init plugin\n init() {\n $.when(this.buildCache()).then(() => {\n this.buildScroll();\n this.bindEvents();\n this.onCreate();\n });\n }\n\n // Remove plugin instance completely\n destroy() {\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n this.$el = $(this.el);\n this.$el.addClass('dropdown-trigger');\n this.$container = this.$el.parent('.dropdown');\n this.id = 'dropdown-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.offset = this.$el.data('offset') ? this.$el.data('offset') : this.opts.offset;\n this.minWidth = this.$el.data('minWidth') ? this.$el.data('minWidth') : this.opts.minWidth;\n this.template = this.$el.data('template') ? this.$el.data('template') : this.opts.template;\n this.templateAttrs = this.$el.data('templateAttrs') ? this.$el.data('templateAttrs') : this.opts.templateAttrs;\n this.scroll = this.$el.data('scroll') ? this.$el.data('scroll') : this.opts.scroll;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.closeOnItemClick = this.$el.data('closeOnItemClick') ? this.$el.data('closeOnItemClick') : this.opts.closeOnItemClick;\n this.contentOpen = false;\n\n if (this.$container.hasClass('dropup')) {\n this.placement = 'top';\n } else if (this.$container.hasClass('dropright')) {\n this.placement = 'right';\n } else if (this.$container.hasClass('dropbottom')) {\n this.placement = 'bottom';\n } else {\n this.placement = 'left';\n }\n\n if (typeof this.opts.template === 'function') {\n let menuRight = this.opts.align === 'end' ? ' dropdown-menu-right' : '';\n\n this.$dropdown = $(`<div class=\"dropdown-menu${menuRight}\" id=\"${this.id}\">${this.template()}</div>`);\n\n $.when(this.$el.after(this.$dropdown)).then(() => {\n\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$container);\n this.debug(this.$dropdown);\n this.debug(this.$scrollableContent);\n this.debug('Id: '+this.id);\n this.debug('Animation: '+this.animation);\n this.debug('Animation in: '+this.animationIn);\n this.debug('Animation out: '+this.animationOut);\n this.debug('Animation speed: '+this.animationSpeed);\n this.debug('Offset: '+this.offset);\n this.debug('Min width: '+this.minWidth);\n this.debug('Template: '+this.template);\n this.debug(this.templateAttrs);\n this.debug('Scroll: '+this.scroll);\n this.debug('Scroll content height: '+this.scrollContentHeight+'px');\n }\n\n return true;\n });\n } else {\n this.$dropdown = this.$el.next('.dropdown-menu') ? this.$el.next('.dropdown-menu') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$container);\n this.debug(this.$dropdown);\n this.debug(this.$scrollableContent);\n this.debug('Id: '+this.id);\n this.debug('Animation: '+this.animation);\n this.debug('Animation in: '+this.animationIn);\n this.debug('Animation out: '+this.animationOut);\n this.debug('Animation speed: '+this.animationSpeed);\n this.debug('Offset: '+this.offset);\n this.debug('Min width: '+this.minWidth);\n this.debug('Template: '+this.template);\n this.debug(this.templateAttrs);\n this.debug('Scroll: '+this.scroll);\n this.debug('Scroll content height: '+this.scrollContentHeight+'px');\n }\n\n return true;\n }\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.opts.scroll && this.$scrollableContent.length) {\n\n this.$scrollableContent.css({\n 'max-height': this.scrollContentHeight+'px'\n });\n\n if (touchEvents || typeof this.opts.buildScroll !== 'function') {\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n } else if (typeof this.opts.buildScroll === 'function') {\n this.scroll = this.opts.buildScroll(this.$scrollableContent);\n }\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n var self = this;\n\n this.$el.on('click'+'.'+NAME, () => {\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n });\n\n this.$dropdownItem.on('click'+'.'+NAME, function() {\n\n if (self.closeOnItemClick) {\n self.close();\n }\n\n self.onItemClick(this);\n });\n\n $(document).on('touchstart click', (e) => {\n if (!this.$el.is(e.target) && !this.$dropdown.is(e.target) && this.$dropdown.has(e.target).length === 0 && this.contentOpen) {\n this.close();\n }\n });\n\n $(window).on('resize', debounce(() => {\n this.setPosition();\n this.onUpdate();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n var dropdownWidth = this.$dropdown.outerWidth(true);\n var dropdownHeight = this.$dropdown.outerHeight(true);\n var dropdownTriggerWidth = this.$el.outerWidth(true);\n var dropdownTriggerHeight = this.$el.outerHeight(true);\n var dropdownTriggerPosX = this.$el.position().left;\n var dropdownTriggerPosY = this.$el.position().top;\n\n if (placement === 'top') {\n\n if (this.align === 'end') {\n var dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n var dropdownPosX = dropdownTriggerPosX;\n }\n\n var dropdownPosY = dropdownTriggerPosY - dropdownHeight;\n\n } else if (placement === 'right') {\n\n var dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth;\n var dropdownPosY = dropdownTriggerPosY;\n\n } else if (placement === 'bottom') {\n\n if (this.align === 'end') {\n var dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n var dropdownPosX = dropdownTriggerPosX;\n }\n\n var dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight;\n\n } else if (placement === 'left') {\n\n var dropdownPosX = dropdownTriggerPosX - dropdownWidth;\n var dropdownPosY = dropdownTriggerPosY;\n }\n\n if (this.offset) {\n\n var offsets = this.offset.split(',')\n var offsetX = offsets[0];\n var offsetY = offsets[1];\n\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n this.$dropdown.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+Math.round(dropdownPosX)+'px, '+Math.round(dropdownPosY)+'px, 0px)',\n 'will-change': 'transform'\n });\n\n if (this.opts.debug) {\n this.debug('Dropdown trigger width: '+dropdownTriggerWidth+'px');\n this.debug('Dropdown trigger height: '+dropdownTriggerHeight+'px');\n this.debug('Dropdown trigger position x: '+dropdownTriggerPosX+'px');\n this.debug('Dropdown trigger position Y: '+dropdownTriggerPosY+'px');\n this.debug('Dropdown width: '+dropdownWidth+'px');\n this.debug('Dropdown height: '+dropdownHeight+'px');\n this.debug('Dropdown position x: '+dropdownPosX+'px');\n this.debug('Dropdown position y: '+dropdownPosY+'px');\n }\n }\n\n // Show\n show() {\n\n if (!this.$dropdown || this.$dropdown.hasClass('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass(this.animationSpeed);\n this.$dropdown.animateCss(this.animationIn);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n\n } else {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n }\n\n\n if (this.scroll && typeof this.scroll.show === 'function') {\n this.scroll.update();\n }\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n if (!this.$dropdown) {\n return;\n }\n\n if (this.animation && !this.$dropdown.hasClass('animated')) {\n\n this.$dropdown.animateCss(this.animationOut, () => {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n });\n\n } else {\n\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n // Item callback\n onItemClick(el) {\n\n var onItemClick = this.opts.onItemClick;\n\n if (typeof onItemClick === 'function') {\n\n onItemClick.call(el);\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Dropdown._jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'zoomOut',\n animationSpeed: 'fastest',\n offset: null,\n minWidth: null,\n align: 'start',\n closeOnItemClick: true,\n template: false,\n templateAttrs: {},\n scroll: true,\n scrollContentHeight: 100,\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onItemClick: null,\n debug: false\n };\n}\n\nexport default Dropdown;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolTooltip';\nconst DATA_KEY = 'plugin_coolTooltip';\n\nclass Tooltip extends AbstractUIComponent {\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.init();\n }\n\n // Init plugin\n init() {\n this.buildCache();\n this.bindEvents();\n this.onCreate();\n }\n\n // Remove plugin instance completely\n destroy() {\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'tooltip-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n if (this.$tooltip) {\n this.setPosition();\n this.onUpdate();\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Build tooltip\n buildTooltip() {\n this.$tooltip = $(`\n <div class=\"tooltip tooltip-${this.placement}\" role=\"tooltip\" id=\"${this.id}\">\n\n <div class=\"arrow\"></div>\n\n <div class=\"tooltip-inner\">${this.content}</div>\n\n </div>\n `);\n\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$container);\n this.debug(this.$tooltip);\n this.debug(this.$arrow);\n this.debug('Id: '+this.id);\n this.debug('Animation: '+this.animation);\n this.debug('Animation in: '+this.animationIn);\n this.debug('Animation out: '+this.animationOut);\n this.debug('Animation speed: '+this.animationSpeed);\n this.debug('Placement: '+this.placement);\n this.debug('Content: '+this.content);\n }\n }\n\n // Set positions\n setPosition(placement) {\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n var tooltipWidth = this.$tooltip.outerWidth(true);\n var tooltipHeight = this.$tooltip.outerHeight(true);\n var tooltipTriggerWidth = this.$el.outerWidth();\n var tooltipTriggerHeight = this.$el.outerHeight();\n var tooltipTriggerPosX = this.$el.offset().left;\n var tooltipTriggerPosY = this.$el.offset().top;\n var arrowWidth = this.$arrow.outerWidth(true);\n var arrowHeight = this.$arrow.outerHeight(true);\n\n if (placement === 'top') {\n\n var tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n var tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);\n var arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n var tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);\n var tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n var arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n var tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n var tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);\n var arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n var tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);\n var tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n var arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$tooltip.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n if (this.opts.debug) {\n this.debug('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.debug('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.debug('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.debug('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.debug('Tooltip width: '+tooltipWidth+'px');\n this.debug('Tooltip height: '+tooltipHeight+'px');\n this.debug('Tooltip position x: '+tooltipPosX+'px');\n this.debug('Tooltip position y: '+tooltipPosY+'px');\n }\n }\n\n // Show\n show() {\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n this.$tooltip.addClass(this.animationSpeed);\n this.$tooltip.animateCss(this.animationIn);\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n } else {\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animated')) {\n this.$tooltip.animateCss(this.animationOut, () => {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n\n this.onClose();\n });\n } else {\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Tooltip(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Tooltip._jQueryInterface;\n $.fn[NAME].Constructor = Tooltip;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n container: 'body',\n animation: false,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n placement: 'bottom',\n content: '',\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n };\n}\n\nexport default Tooltip;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSectionTabs';\nconst DATA_KEY = 'plugin_coolSectionTabs';\n\nclass SectionTabs extends AbstractUIComponent {\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.init();\n }\n\n // Init plugin\n init() {\n\n var plugin = this;\n\n plugin.buildCache();\n plugin.bindEvents();\n plugin.onCreate();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n var plugin = this;\n\n this.$el = $(this.el);\n this.$dropdownContainer = this.$el.find('.dropdown-container');\n this.$dropdownList = this.$el.find('.dropdown-list');\n this.tabsCount = this.$el.find('> .tab-item').length;\n this.tabs = this.$el.find('> .tab-item:visible');\n\n $.each(this.tabs, function(i, el) {\n $(el).data('width', $(el).outerWidth(true));\n });\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$dropdownContainer);\n this.debug(this.$dropdownList);\n this.debug(this.tabsCount);\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n var plugin = this;\n\n $(window).on('resize', debounce(function () {\n plugin.checkForChanges.call(plugin);\n }, 250)).trigger('resize');\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this._name);\n }\n\n // Move to list\n moveToList(el) {\n\n $(el).insertBefore(this.$dropdownContainer);\n\n this.checkForChanges();\n }\n\n // Move to dropdown\n moveToDropdown(el) {\n\n $(el).appendTo(this.$dropdownList);\n\n this.checkForChanges();\n }\n\n // Overflow status\n overflowStatus() {\n\n if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {\n return true;\n } else {\n return false;\n }\n }\n\n // CheckForChanges\n checkForChanges() {\n\n var dropdownItems = this.$dropdownList.children();\n var moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);\n var tabs = this.$el.find('> .tab-item:visible');\n var usedSpace = 0;\n\n $.each(tabs, function(i, el) {\n usedSpace += $(el).outerWidth(true);\n });\n\n var freeSpace = this.$el[0].offsetWidth - usedSpace;\n\n if (dropdownItems.length > 0) {\n\n if (!this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.addClass('visible');\n }\n\n } else {\n\n if (this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.removeClass('visible');\n }\n }\n\n if (this.overflowStatus() == true) {\n\n if (moveableTabs.length > 0) {\n this.moveToDropdown(moveableTabs.last());\n }\n\n } else {\n\n if (dropdownItems.length > 0) {\n\n if (freeSpace > dropdownItems.last().data('width')) {\n this.moveToList(dropdownItems.last());\n }\n }\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new CoolPopover(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = SectionTabs._jQueryInterface;\n $.fn[NAME].Constructor = SectionTabs;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return SectionTabs._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n debug: false\n };\n\n}\n\nexport default SectionTabs;\n","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolCollapse';\nconst DATA_KEY = 'plugin_coolCollapse';\n\nclass Collapse extends AbstractUIComponent {\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.init();\n }\n\n init() {\n $(this.el).on('click', function(e) {\n e.preventDefault();\n\n var self = $(this);\n var dataTarget = $(this).attr('data-target');\n var target = $(document).find(dataTarget);\n var targetHeight = $(target).height();\n var collapseIndicator = $(document).find('[data-collapse-indicator=\"' + dataTarget + '\"]');\n var collapseContainer = $(target).closest('.section-collapse');\n\n function whichTransitionEvent() {\n\n var el = document.createElement('text-transition'),\n transEndEventNames = {\n 'WebkitTransition': 'webkitTransitionEnd', // Saf 6, Android Browser\n 'MozTransition': 'transitionend', // only for FF < 15\n 'transition': 'transitionend' // IE10, Opera, Chrome, FF 15+, Saf 7+\n };\n\n for (var t in transEndEventNames) {\n\n if (el.style[t] !== undefined) {\n return transEndEventNames[t];\n }\n }\n }\n\n if (!collapseIndicator.length) {\n collapseIndicator = $(self).parent().find('[data-collapse-indicator]');\n }\n\n if (!target.length) {\n target = $(self).parent().find('.collapse');\n targetHeight = $(target).height();\n }\n\n $(target).removeClass('collapse visible');\n $(target).addClass('collapsing');\n\n if (!$(self).hasClass('target-collapsed')) {\n\n if ($(self).is('button')) {\n $(self).attr('disabled', true);\n }\n\n if (collapseContainer.length) {\n $(collapseContainer).addClass('collapsed');\n }\n\n $(target).css('height');\n $(target).css('height', targetHeight);\n\n if (collapseIndicator.length) {\n $(collapseIndicator).addClass('collapsed');\n }\n\n } else {\n\n if ($(self).is('button')) {\n $(self).attr('disabled', true);\n }\n\n if (collapseContainer.length) {\n $(collapseContainer).removeClass('collapsed');\n }\n\n $(target).css('height', $(target).height());\n setTimeout(function() {\n $(target).css('height', 0);\n }, 10);\n\n if (collapseIndicator.length && $(collapseIndicator).hasClass('collapsed')) {\n $(collapseIndicator).removeClass('collapsed');\n }\n }\n\n var transEndEventName = whichTransitionEvent();\n\n $(target).one(transEndEventName, function() {\n\n $(target).removeClass('collapsing');\n\n if ($(self).hasClass('target-collapsed')) {\n\n if ($(self).is('button')) {\n $(self).attr('disabled', false);\n }\n\n $(target).removeAttr('style');\n $(target).addClass('collapse');\n $(self).removeClass('target-collapsed');\n\n } else {\n\n if ($(self).is('button')) {\n $(self).attr('disabled', false);\n }\n\n $(target).removeAttr('style');\n $(target).addClass('collapse visible');\n $(self).addClass('target-collapsed');\n $(target).css('height', 'auto');\n }\n });\n\n });\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Collapse(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = Collapse._jQueryInterface;\n $.fn[NAME].Constructor = Collapse;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n $.fn[NAME].defaults = {};\n}\n\nexport default Collapse;","import Common from './src/common';\nimport Popover from './src/popover.js';\nimport Select from './src/select';\nimport Dropdown from './src/dropdown';\nimport Tooltip from './src/tooltip';\nimport SectionTabs from './src/section-tabs';\nimport Collapse from './src/collapse';\n\nexport default {\n\tCommon,\n\tPopover,\n\tSelect,\n\tDropdown,\n\tTooltip,\n\tSectionTabs,\n\tCollapse\n}"]}