@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
+ import"jquery";$.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 Common{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=Common.initialize;const debounce=function(t,e,i){var s;return function(){var o=this,n=arguments,a=i&&!s;clearTimeout(s),s=setTimeout(function(){s=null,i||t.apply(o,n)},e),a&&t.apply(o,n)}},touchEvents=function(){if("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)return!0};class AbstractUIComponent{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(){this.opts.debug&&("function"==typeof this.opts.debug?this.opts.debug(...arguments):console.log(...arguments))}}const NAME="coolPopover",DATA_KEY="plugin_coolPopover";class Popover extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME].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."+NAME,()=>{this.$popover?this.close():this.show()}):"hover"===this.trigger?(this.$el.on("mouseenter."+NAME,()=>{this.show()}),this.$el.on("mouseleave."+NAME,()=>{this.close()})):"focus"===this.trigger&&(this.$el.on("focusin."+NAME,()=>{this.show()}),this.$el.on("focusout."+NAME,()=>{this.close()})),$(window).on("resize",debounce(()=>{this.$popover&&(this.setPosition(),this.onUpdate())},250))}unbindEvents(){this.$el.off("."+NAME)}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(),o=this.$el.outerHeight(),n=this.$el.position().left,a=this.$el.position().top,h=this.$arrow.outerWidth(!0),l=this.$arrow.outerHeight(!0);if("top"===t){var r=n-(e-s)/2,d=a-i,c=e/2-h/2;this.$arrow.css({left:c+"px"})}else if("right"===t){r=n+s,d=a-(i-o)/2,c=i/2-l/2;this.$arrow.css({top:c+"px"})}else if("bottom"===t){r=n-(e-s)/2,d=a+o,c=e/2-h/2;this.$arrow.css({left:c+"px"})}else if("left"===t){r=n-e,d=a-(i-o)/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: "+o+"px"),this.debug("popover trigger position x: "+n+"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(DATA_KEY);if(e||(e=new Popover(this,"object"==typeof t&&t),$(this).data(DATA_KEY,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME];$.fn[NAME]=Popover._jQueryInterface,$.fn[NAME].Constructor=Popover,$.fn[NAME].noConflict=(()=>($.fn[NAME]=t,Popover._jQueryInterface)),$.fn[NAME].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 NAME$1="coolSelect",DATA_KEY$1="plugin_coolSelect";class Select extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME$1].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"}),touchEvents||"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."+NAME$1,function(){t.contentOpen?t.close.call(t):t.show.call(t)}),t.$el.on("change."+NAME$1,'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."+NAME$1,'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."+NAME$1,'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."+NAME$1,debounce(function(){t.searchString=$(this).val().trim(),t.search.call(t)},250)),t.$searchInput.on("focusin."+NAME$1,function(){t.$searchContainer.addClass("focused")}),t.$searchInput.on("focusout."+NAME$1,function(){t.$searchContainer.removeClass("focused")}),t.$clearSearchButton.on("click."+NAME$1,function(){t.searchString.length&&(t.$searchInput.val(""),t.searchString="",t.search.call(t))})),this.showFooter&&t.$closeButton.on("click."+NAME$1,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("."+NAME$1)}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,o=0;this.data[this.name].forEach(function(t){i+=encodeURIComponent("#"+t),++o!==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}),o=$(t._renderItemList(s));$.when(t.$scrollableContent.append(o)).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 n=t.$select.find(":input").filter(function(){return this.value==t.data[t.name]});n.prop("checked",!0),n.addClass("checked"),t.onSelect(n[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(DATA_KEY$1);if(e||(e=new Select(this,"object"==typeof t&&t),$(this).data(DATA_KEY$1,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME$1];$.fn[NAME$1]=Select._jQueryInterface,$.fn[NAME$1].Constructor=Select,$.fn[NAME$1].noConflict=(()=>($.fn[NAME$1]=t,Select._jQueryInterface)),$.fn[NAME$1].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 NAME$2="coolDropdown",DATA_KEY$2="plugin_coolDropdown";class Dropdown extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME$2].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"}),touchEvents||"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."+NAME$2,()=>{this.contentOpen?this.close():this.show()}),this.$dropdownItem.on("click."+NAME$2,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",debounce(()=>{this.setPosition(),this.onUpdate()},250))}unbindEvents(){this.$el.off("."+NAME$2)}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),o=this.$el.outerHeight(!0),n=this.$el.position().left,a=this.$el.position().top;if("top"===t){if("end"===this.align)var h=s-e;else h=n;var l=a-i}else if("right"===t)h=n+s,l=a;else if("bottom"===t){if("end"===this.align)h=s-e;else h=n;l=a+o}else if("left"===t)h=n-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: "+o+"px"),this.debug("Dropdown trigger position x: "+n+"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(DATA_KEY$2);if(e||(e=new Dropdown(this,"object"==typeof t&&t),$(this).data(DATA_KEY$2,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME$2];$.fn[NAME$2]=Dropdown._jQueryInterface,$.fn[NAME$2].Constructor=Dropdown,$.fn[NAME$2].noConflict=(()=>($.fn[NAME$2]=t,Dropdown._jQueryInterface)),$.fn[NAME$2].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 NAME$3="coolTooltip",DATA_KEY$3="plugin_coolTooltip";class Tooltip extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME$3].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."+NAME$3,()=>{this.show()}),this.$el.on("mouseleave."+NAME$3,()=>{this.close()}),$(window).on("resize",debounce(()=>{this.$tooltip&&(this.setPosition(),this.onUpdate())},250))}unbindEvents(){this.$el.off("."+NAME$3)}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(),o=this.$el.outerHeight(),n=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(n-(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(n+s),d=Math.round(a-(i-o)/2),c=Math.round(i/2-l/2);this.$arrow.css({top:c+"px"})}else if("bottom"===t){r=Math.round(n-(e-s)/2),d=Math.round(a+o),c=Math.round(e/2-h/2);this.$arrow.css({left:c+"px"})}else if("left"===t){r=Math.round(n-e),d=Math.round(a-(i-o)/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: "+o+"px"),this.debug("Tooltip trigger position x: "+n+"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(DATA_KEY$3);if(e||(e=new Tooltip(this,"object"==typeof t&&t),$(this).data(DATA_KEY$3,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME$3];$.fn[NAME$3]=Tooltip._jQueryInterface,$.fn[NAME$3].Constructor=Tooltip,$.fn[NAME$3].noConflict=(()=>($.fn[NAME$3]=t,Tooltip._jQueryInterface)),$.fn[NAME$3].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 NAME$4="coolSectionTabs",DATA_KEY$4="plugin_coolSectionTabs";class SectionTabs extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME$4].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",debounce(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 o=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&&o>t.last().data("width")&&this.moveToList(t.last())}static _jQueryInterface(t){return this.each(function(){let e=$(this).data(DATA_KEY$4);if(e||(e=new CoolPopover(this,"object"==typeof t&&t),$(this).data(DATA_KEY$4,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME$4];$.fn[NAME$4]=SectionTabs._jQueryInterface,$.fn[NAME$4].Constructor=SectionTabs,$.fn[NAME$4].noConflict=(()=>($.fn[NAME$4]=t,SectionTabs._jQueryInterface)),$.fn[NAME$4].defaults={onCreate:null,onUpdate:null,onDestroy:null,debug:!1}}const NAME$5="coolCollapse",DATA_KEY$5="plugin_coolCollapse";class Collapse extends AbstractUIComponent{constructor(t,e){super(),this.el=t,this.opts=$.extend({},$.fn[NAME$5].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),o=$(s).height(),n=$(document).find('[data-collapse-indicator="'+i+'"]'),a=$(s).closest(".section-collapse");n.length||(n=$(e).parent().find("[data-collapse-indicator]")),s.length||(s=$(e).parent().find(".collapse"),o=$(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),n.length&&$(n).hasClass("collapsed")&&$(n).removeClass("collapsed")):($(e).is("button")&&$(e).attr("disabled",!0),a.length&&$(a).addClass("collapsed"),$(s).css("height"),$(s).css("height",o),n.length&&$(n).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(DATA_KEY$5);if(e||(e=new Collapse(this,"object"==typeof t&&t),$(this).data(DATA_KEY$5,e)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})}}if("undefined"!=typeof $){const t=$.fn[NAME$5];$.fn[NAME$5]=Collapse._jQueryInterface,$.fn[NAME$5].Constructor=Collapse,$.fn[NAME$5].noConflict=(()=>($.fn[NAME$5]=t,Collapse._jQueryInterface)),$.fn[NAME$5].defaults={}}var index_esm={Common:Common,Popover:Popover,Select:Select,Dropdown:Dropdown,Tooltip:Tooltip,SectionTabs:SectionTabs,Collapse:Collapse};export default index_esm;
7
+ //# sourceMappingURL=cool.esm.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.esm.js"],"names":["$","fn","extend","animateCss","animationName","callback","animationEnd","this","addClass","one","e","removeClass","children","on","stopPropagation","Common","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","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","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","parseInt","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","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","t","undefined","style","whichTransitionEvent","index_esm"],"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}"]}