@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.
- package/README.md +1 -0
- package/build/.eslintrc.json +10 -0
- package/build/banner.js +14 -0
- package/build/build-plugins.js +92 -0
- package/build/rollup.config.js +78 -0
- package/dist/css/cool-grid.css +3672 -0
- package/dist/css/cool-grid.css.map +30 -0
- package/dist/css/cool-grid.min.css +7 -0
- package/dist/css/cool-grid.min.css.map +1 -0
- package/dist/css/cool-reboot.css +281 -0
- package/dist/css/cool-reboot.css.map +58 -0
- package/dist/css/cool-reboot.min.css +7 -0
- package/dist/css/cool-reboot.min.css.map +1 -0
- package/dist/css/cool.css +14841 -0
- package/dist/css/cool.css.map +144 -0
- package/dist/css/cool.min.css +7 -0
- package/dist/css/cool.min.css.map +1 -0
- package/dist/js/cool.bundle.js +15304 -0
- package/dist/js/cool.bundle.js.map +1 -0
- package/dist/js/cool.bundle.min.js +45 -0
- package/dist/js/cool.bundle.min.js.map +1 -0
- package/dist/js/cool.esm.js +4766 -0
- package/dist/js/cool.esm.js.map +1 -0
- package/dist/js/cool.esm.min.js +7 -0
- package/dist/js/cool.esm.min.js.map +1 -0
- package/dist/js/cool.js +4948 -0
- package/dist/js/cool.js.map +1 -0
- package/dist/js/cool.min.js +7 -0
- package/dist/js/cool.min.js.map +1 -0
- package/html/index.html +892 -0
- package/js/dist/collapse.js +321 -0
- package/js/dist/collapse.js.map +1 -0
- package/js/dist/common.js +1474 -0
- package/js/dist/common.js.map +1 -0
- package/js/dist/cooldropdown.js +467 -0
- package/js/dist/cooldropdown.js.map +1 -0
- package/js/dist/coolpopover.js +391 -0
- package/js/dist/coolpopover.js.map +1 -0
- package/js/dist/coolsectiontabs.js +256 -0
- package/js/dist/coolsectiontabs.js.map +1 -0
- package/js/dist/coolselect.js +796 -0
- package/js/dist/coolselect.js.map +1 -0
- package/js/dist/cooltooltip.js +360 -0
- package/js/dist/cooltooltip.js.map +1 -0
- package/js/dist/coolui.js +73 -0
- package/js/dist/coolui.js.map +1 -0
- package/js/dist/dropdown.js +1716 -0
- package/js/dist/dropdown.js.map +1 -0
- package/js/dist/popover.js +587 -0
- package/js/dist/popover.js.map +1 -0
- package/js/dist/sectiontabs.js +263 -0
- package/js/dist/sectiontabs.js.map +1 -0
- package/js/dist/select.js +2029 -0
- package/js/dist/select.js.map +1 -0
- package/js/dist/tooltip.js +555 -0
- package/js/dist/tooltip.js.map +1 -0
- package/js/index.esm.js +21 -0
- package/js/index.umd.js +21 -0
- package/js/src/abstract-ui-component.js +70 -0
- package/js/src/collapse.js +258 -0
- package/js/src/common.js +280 -0
- package/js/src/dialog.js +570 -0
- package/js/src/dropdown.js +443 -0
- package/js/src/popover.js +615 -0
- package/js/src/section-tabs.js +204 -0
- package/js/src/select.js +832 -0
- package/js/src/toast.js +581 -0
- package/js/src/tooltip.js +575 -0
- package/js/src/util/animate-css.js +22 -0
- package/js/src/util/index.js +112 -0
- package/js/src/util/perfect-scrollbar.js +1316 -0
- package/less/alert.less +345 -0
- package/less/badge.less +38 -0
- package/less/bootstrap-noconflict.less +23 -0
- package/less/bootstrap.less +23 -0
- package/less/button-group.less +153 -0
- package/less/buttons.less +287 -0
- package/less/dialog-noconflict.less +174 -0
- package/less/dialog.less +203 -0
- package/less/dropdown.less +209 -0
- package/less/forms.less +770 -0
- package/less/images.less +242 -0
- package/less/input-group.less +163 -0
- package/less/list-group.less +73 -0
- package/less/mixins/aspect-ratio.less +23 -0
- package/less/mixins/border-radius.less +24 -0
- package/less/mixins/box-shadow.less +4 -0
- package/less/mixins/buttons.less +17 -0
- package/less/mixins/caret.less +51 -0
- package/less/mixins/clearfix.less +10 -0
- package/less/mixins/gradients.less +34 -0
- package/less/mixins/nav-divider.less +7 -0
- package/less/mixins/object-fit.less +13 -0
- package/less/mixins/reset-text.less +16 -0
- package/less/mixins.less +11 -0
- package/less/package.json +11 -0
- package/less/pagination.less +69 -0
- package/less/popover.less +143 -0
- package/less/project.sublime-workspace +774 -0
- package/less/reboot.less +235 -0
- package/less/section.less +793 -0
- package/less/select.less +150 -0
- package/less/tables.less +737 -0
- package/less/tabs.less +162 -0
- package/less/tooltip.less +87 -0
- package/less/type.less +71 -0
- package/less/utilities/align.less +27 -0
- package/less/utilities/animate.less +3512 -0
- package/less/utilities/background.less +70 -0
- package/less/utilities/borders.less +16 -0
- package/less/utilities/color.less +70 -0
- package/less/utilities/cursor.less +8 -0
- package/less/utilities/display.less +38 -0
- package/less/utilities/embed.less +61 -0
- package/less/utilities/flex.less +76 -0
- package/less/utilities/jquery-ui.less +116 -0
- package/less/utilities/lazyload.less +29 -0
- package/less/utilities/overflow.less +11 -0
- package/less/utilities/pace.less +25 -0
- package/less/utilities/placeholder.less +60 -0
- package/less/utilities/position.less +42 -0
- package/less/utilities/scrollbar.less +152 -0
- package/less/utilities/spacing.less +197 -0
- package/less/utilities/text.less +68 -0
- package/less/utilities/transform.less +7 -0
- package/less/utilities.less +21 -0
- package/less/variables.less +343 -0
- package/package.json +71 -0
- package/scss/LISENCE +15 -0
- package/scss/_alert.scss +125 -0
- package/scss/_badge.scss +58 -0
- package/scss/_button-group.scss +124 -0
- package/scss/_buttons.scss +206 -0
- package/scss/_custom-forms.scss +423 -0
- package/scss/_dialog.scss +149 -0
- package/scss/_dropdown.scss +234 -0
- package/scss/_forms.scss +257 -0
- package/scss/_frame.scss +523 -0
- package/scss/_functions.scss +114 -0
- package/scss/_grid.scss +35 -0
- package/scss/_images.scss +312 -0
- package/scss/_input-group.scss +245 -0
- package/scss/_list-group.scss +82 -0
- package/scss/_mixins.scss +32 -0
- package/scss/_navbar.scss +214 -0
- package/scss/_pagination.scss +79 -0
- package/scss/_popover.scss +165 -0
- package/scss/_reboot.scss +279 -0
- package/scss/_root.scss +15 -0
- package/scss/_section.scss +851 -0
- package/scss/_select.scss +166 -0
- package/scss/_tables.scss +707 -0
- package/scss/_tabs.scss +175 -0
- package/scss/_toast.scss +182 -0
- package/scss/_tooltip.scss +101 -0
- package/scss/_type.scss +90 -0
- package/scss/_utilities.scss +21 -0
- package/scss/_variables.scss +697 -0
- package/scss/cool-grid.scss +29 -0
- package/scss/cool-reboot.scss +11 -0
- package/scss/cool.scss +36 -0
- package/scss/mixins/_alert-variant.scss +40 -0
- package/scss/mixins/_aspect-ratio.scss +29 -0
- package/scss/mixins/_background-variant.scss +25 -0
- package/scss/mixins/_badge-variant.scss +13 -0
- package/scss/mixins/_breakpoints.scss +102 -0
- package/scss/mixins/_buttons.scss +104 -0
- package/scss/mixins/_caret.scss +80 -0
- package/scss/mixins/_clearfix.scss +10 -0
- package/scss/mixins/_float.scss +14 -0
- package/scss/mixins/_forms.scss +51 -0
- package/scss/mixins/_gradients.scss +40 -0
- package/scss/mixins/_grid-framework.scss +72 -0
- package/scss/mixins/_grid.scss +60 -0
- package/scss/mixins/_nav-divider.scss +9 -0
- package/scss/mixins/_object-fit.scss +16 -0
- package/scss/mixins/_reset-text.scss +19 -0
- package/scss/mixins/_text-emphasis.scss +21 -0
- package/scss/mixins/_text-hide.scss +10 -0
- package/scss/mixins/_text-truncate.scss +8 -0
- package/scss/project.sublime-workspace +491 -0
- package/scss/utilities/_align.scss +41 -0
- package/scss/utilities/_animate.scss +3512 -0
- package/scss/utilities/_background.scss +14 -0
- package/scss/utilities/_borders.scss +146 -0
- package/scss/utilities/_clearfix.scss +6 -0
- package/scss/utilities/_collapse.scss +33 -0
- package/scss/utilities/_cursor.scss +10 -0
- package/scss/utilities/_display.scss +16 -0
- package/scss/utilities/_embed.scss +78 -0
- package/scss/utilities/_flex.scss +50 -0
- package/scss/utilities/_lazyload.scss +31 -0
- package/scss/utilities/_overflow.scss +6 -0
- package/scss/utilities/_perfect-scrollbar.scss +154 -0
- package/scss/utilities/_placeholder.scss +76 -0
- package/scss/utilities/_position.scss +30 -0
- package/scss/utilities/_sizing.scss +32 -0
- package/scss/utilities/_spacing.scss +92 -0
- package/scss/utilities/_text.scss +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/popover.js"],"sourcesContent":["import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\n\tlet timeout;\n\n\treturn function() {\n\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function() {\n\n\t\t\ttimeout = null;\n\n\t\t\tif (!immediate) {\n\t\t\t\tfunc.apply(context, args)\n\t\t\t};\n\t\t};\n\n\t\tlet callNow = immediate && !timeout;\n\n\t\tclearTimeout(timeout);\n\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n};\n\nconst shallowProperty = function(key) {\n\n\treturn function(obj) {\n\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\n\tlet length = shallowProperty('length');\n\n\treturn typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n\n if (context === void 0) {\n \treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\n\t\tcase 1: return function(value) {\n\t\t\treturn func.call(context, value);\n\t\t};\n\n\t\tcase 3: return function(value, index, collection) {\n\t\t\treturn func.call(context, value, index, collection);\n\t\t};\n\t\tcase 4: return function(accumulator, value, index, collection) {\n\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t};\n\t}\n\n return function() {\n\t\treturn func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\n\t} else {\n\n\t\tlet keys = Object.keys(obj);\n\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\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\n\tlet result = false;\n\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\tresult = true;\n\t}\n\n\treturn result;\n};\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let 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 let 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 let 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 let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.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(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.popover) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.popover, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\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 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.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.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.placementChanged = false;\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 }\n\n // Bind events that trigger methods\n bindEvents() {\n\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 let 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\n let content;\n\n \tif (typeof this.content === 'function') {\n \t\tcontent = this.content();\n \t} else {\n content = this.content;\n }\n\n \tthis.$popover = $(`\n \t\t<div class=\"popover\" 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.log(this.$el);\n this.log(this.$container);\n this.log(this.$popover);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\n this.log('Trigger: '+this.trigger);\n this.log('Placement: '+this.placement);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Title: '+this.title);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$popover.addClass('popover-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let popoverWidth = this.$popover.outerWidth(true);\n let popoverHeight = this.$popover.outerHeight(true);\n let popoverTriggerWidth = this.$el.outerWidth();\n let popoverTriggerHeight = this.$el.outerHeight();\n let popoverTriggerPosX = this.$el.position().left;\n let popoverTriggerPosY = this.$el.position().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let popoverPosX;\n let popoverPosY;\n\n if (placement === 'top') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY - popoverHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n popoverPosX = Math.round(popoverTriggerPosX + popoverTriggerWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY + popoverTriggerHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n popoverPosX = Math.round(popoverTriggerPosX - popoverWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(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 // Correct placement if popover goes outside of container\n let popoverOverflowCount = 0;\n let popoverPosition = {\n left: this.$popover.position().left,\n top: this.$popover.position().top,\n right: containerInnerWidth - (this.$popover.position().left + popoverWidth),\n bottom: containerInnerHeight - (this.$popover.position().top + popoverHeight),\n };\n let popoverOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (popoverPosition.right < 0) {\n\n popoverOverflow.right = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from right');\n }\n\n if (popoverPosition.left < 0) {\n\n popoverOverflow.left = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from left');\n }\n\n if (popoverPosition.bottom < 0) {\n\n popoverOverflow.bottom = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from bottom');\n }\n\n if (popoverPosition.top < 0) {\n\n popoverOverflow.top = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from top');\n }\n\n if (popoverOverflowCount > 0) {\n\n if (!this.placementChanged && popoverOverflow.left && popoverPosition.right > popoverWidth) {\n\n this.log('Changing popover placement to right');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && popoverOverflow.top && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && popoverOverflow.right && popoverPosition.left > popoverWidth) {\n\n this.log('Changing popover placement to left');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && popoverOverflow.bottom && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (popoverOverflow.left || popoverOverflow.right)) {\n\n if (popoverPosition.top > popoverPosition.bottom) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixPopoverPosition = true;\n }\n\n if (this.fixPopoverPosition) {\n\n this.log('Adjusting popover size or position in order to popover fit in the container');\n\n if (popoverOverflow.left) {\n\n this.log('Popover overflowing from left');\n\n let overflowAmount = Math.abs(popoverPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX >= popoverPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n popoverPosX += overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (popoverOverflow.top) {\n\n this.log('Popover overflowing from top');\n\n let overflowAmount = Math.abs(popoverPosition.top);\n\n this.log('Popover adjusting position y');\n\n popoverPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (popoverOverflow.right) {\n\n this.log('Popover overflowing from right');\n\n let overflowAmount = Math.abs(popoverPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX <= popoverPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (popoverOverflow.bottom) {\n\n this.log('Popover overflowing from bottom');\n\n let overflowAmount = Math.abs(popoverPosition.bottom);\n\n this.log('Popover adjusting position y');\n\n popoverPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n width: popoverWidth,\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)'\n });\n\n this.fixPopoverPosition = false;\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\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\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 = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n\n \treturn this.each(function() {\n\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\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\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Popover._jQueryInterface;\n $.fn[NAME].Constructor = Popover;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT\n\n return Popover._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n container: '.content-inner',\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Popover;"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","AbstractUIComponent","onInit","opts","call","el","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","Popover","constructor","window","Cool","settings","popover","$","extend","fn","defaults","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$container","data","container","id","generateUUID","animation","animationIn","animationOut","animationSpeed","trigger","placement","placementChanged","title","content","on","$popover","close","show","setPosition","off","replace","c","r","Math","random","v","toString","buildPopover","append","$arrow","find","addClass","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","popoverWidth","outerWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","left","popoverTriggerPosY","top","arrowWidth","arrowHeight","arrowPos","popoverPosX","popoverPosY","round","css","transform","popoverOverflowCount","popoverPosition","right","bottom","popoverOverflow","removeClass","removeAttr","fixPopoverPosition","overflowAmount","abs","excludePlacements","indexOf","width","animateCss","attr","hasClass","remove","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Cool UI sectiontabs.js v1.0.0 (https://finqu.fi)
|
|
3
|
+
* Copyright 2011-2019 Finqu Oy
|
|
4
|
+
* Licensed under the ISC license - (http://opensource.org/licenses/ISC)
|
|
5
|
+
*/
|
|
6
|
+
(function (global, factory) {
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
|
|
9
|
+
(global = global || self, global.SectionTabs = factory());
|
|
10
|
+
}(this, function () { 'use strict';
|
|
11
|
+
|
|
12
|
+
const debounce = function (func, wait, immediate) {
|
|
13
|
+
let timeout;
|
|
14
|
+
return function () {
|
|
15
|
+
let context = this;
|
|
16
|
+
let args = arguments;
|
|
17
|
+
|
|
18
|
+
let later = function () {
|
|
19
|
+
timeout = null;
|
|
20
|
+
|
|
21
|
+
if (!immediate) {
|
|
22
|
+
func.apply(context, args);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
let callNow = immediate && !timeout;
|
|
27
|
+
clearTimeout(timeout);
|
|
28
|
+
timeout = setTimeout(later, wait);
|
|
29
|
+
|
|
30
|
+
if (callNow) {
|
|
31
|
+
func.apply(context, args);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
class AbstractUIComponent {
|
|
37
|
+
// Init callback
|
|
38
|
+
onInit() {
|
|
39
|
+
let onInit = this.opts.onInit;
|
|
40
|
+
|
|
41
|
+
if (typeof onInit === 'function') {
|
|
42
|
+
onInit.call(this.el);
|
|
43
|
+
}
|
|
44
|
+
} // Update callback
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
onUpdate() {
|
|
48
|
+
let onUpdate = this.opts.onUpdate;
|
|
49
|
+
|
|
50
|
+
if (typeof onUpdate === 'function') {
|
|
51
|
+
onUpdate.call(this.el);
|
|
52
|
+
}
|
|
53
|
+
} // Destroy callback
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
onDestroy() {
|
|
57
|
+
let onDestroy = this.opts.onDestroy;
|
|
58
|
+
|
|
59
|
+
if (typeof onDestroy === 'function') {
|
|
60
|
+
onDestroy.call(this.el);
|
|
61
|
+
}
|
|
62
|
+
} // Show callback
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
onShow() {
|
|
66
|
+
let onShow = this.opts.onShow;
|
|
67
|
+
|
|
68
|
+
if (typeof onShow === 'function') {
|
|
69
|
+
onShow.call(this.el);
|
|
70
|
+
}
|
|
71
|
+
} // Close callback
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
onClose() {
|
|
75
|
+
let onClose = this.opts.onClose;
|
|
76
|
+
|
|
77
|
+
if (typeof onClose === 'function') {
|
|
78
|
+
onClose.call(this.el);
|
|
79
|
+
}
|
|
80
|
+
} // Debug log
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
log(...args) {
|
|
84
|
+
if (this.debug) {
|
|
85
|
+
if (typeof this.debug === 'function') {
|
|
86
|
+
this.debug(...args);
|
|
87
|
+
} else {
|
|
88
|
+
console.log(...args);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const NAME = 'coolSectionTabs';
|
|
96
|
+
const DATA_KEY = 'plugin_coolSectionTabs';
|
|
97
|
+
|
|
98
|
+
class SectionTabs extends AbstractUIComponent {
|
|
99
|
+
constructor(el, opts) {
|
|
100
|
+
super();
|
|
101
|
+
this.opts = {};
|
|
102
|
+
|
|
103
|
+
if (window.Cool.settings.sectionTabs) {
|
|
104
|
+
$.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.sectionTabs, opts);
|
|
105
|
+
} else {
|
|
106
|
+
$.extend(true, this.opts, $.fn[NAME].defaults, opts);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this.el = el;
|
|
110
|
+
this.debug = this.opts.debug;
|
|
111
|
+
this.init();
|
|
112
|
+
} // Init plugin
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
init() {
|
|
116
|
+
this.buildCache();
|
|
117
|
+
this.bindEvents();
|
|
118
|
+
this.checkForChanges();
|
|
119
|
+
this.onInit();
|
|
120
|
+
} // Remove plugin instance completely
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
destroy() {
|
|
124
|
+
this.unbindEvents();
|
|
125
|
+
this.$el.removeData(DATA_KEY);
|
|
126
|
+
this.onDestroy();
|
|
127
|
+
} // Update plugin data
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
update() {
|
|
131
|
+
this.buildCache();
|
|
132
|
+
this.onUpdate();
|
|
133
|
+
} // Cache DOM nodes for performance
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
buildCache() {
|
|
137
|
+
this.$el = $(this.el);
|
|
138
|
+
this.$dropdownContainer = this.$el.find('.dropdown-container');
|
|
139
|
+
this.$dropdownList = this.$el.find('.dropdown-list');
|
|
140
|
+
this.tabsCount = this.$el.find('> .tab-item').length;
|
|
141
|
+
this.tabs = this.$el.find('> .tab-item:visible');
|
|
142
|
+
$.each(this.tabs, function (i, el) {
|
|
143
|
+
$(el).data('width', $(el).outerWidth(true));
|
|
144
|
+
});
|
|
145
|
+
this.log(this.$el);
|
|
146
|
+
this.log(this.$dropdownContainer);
|
|
147
|
+
this.log(this.$dropdownList);
|
|
148
|
+
this.log(this.tabsCount);
|
|
149
|
+
} // Bind events that trigger methods
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
bindEvents() {
|
|
153
|
+
$(window).on('resize', debounce(() => {
|
|
154
|
+
this.checkForChanges();
|
|
155
|
+
}, 250));
|
|
156
|
+
} // Unbind events that trigger methods
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
unbindEvents() {
|
|
160
|
+
this.$el.off('.' + this._name);
|
|
161
|
+
} // Move to list
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
moveToList(el) {
|
|
165
|
+
$(el).insertBefore(this.$dropdownContainer);
|
|
166
|
+
this.checkForChanges();
|
|
167
|
+
} // Move to dropdown
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
moveToDropdown(el) {
|
|
171
|
+
$(el).appendTo(this.$dropdownList);
|
|
172
|
+
this.checkForChanges();
|
|
173
|
+
} // Overflow status
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
overflowStatus() {
|
|
177
|
+
if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {
|
|
178
|
+
return true;
|
|
179
|
+
} else {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
} // CheckForChanges
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
checkForChanges() {
|
|
186
|
+
let dropdownItems = this.$dropdownList.children();
|
|
187
|
+
let moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);
|
|
188
|
+
let tabs = this.$el.find('> .tab-item:visible');
|
|
189
|
+
let usedSpace = 0;
|
|
190
|
+
$.each(tabs, function (i, el) {
|
|
191
|
+
usedSpace += $(el).outerWidth(true);
|
|
192
|
+
});
|
|
193
|
+
let freeSpace = this.$el[0].offsetWidth - usedSpace;
|
|
194
|
+
|
|
195
|
+
if (dropdownItems.length > 0) {
|
|
196
|
+
if (!this.$dropdownContainer.hasClass('visible')) {
|
|
197
|
+
this.$dropdownContainer.addClass('visible');
|
|
198
|
+
}
|
|
199
|
+
} else {
|
|
200
|
+
if (this.$dropdownContainer.hasClass('visible')) {
|
|
201
|
+
this.$dropdownContainer.removeClass('visible');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (this.overflowStatus() == true) {
|
|
206
|
+
if (moveableTabs.length > 0) {
|
|
207
|
+
this.moveToDropdown(moveableTabs.last());
|
|
208
|
+
}
|
|
209
|
+
} else {
|
|
210
|
+
if (dropdownItems.length > 0) {
|
|
211
|
+
if (freeSpace > dropdownItems.last().data('width')) {
|
|
212
|
+
this.moveToList(dropdownItems.last());
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
static _jQueryInterface(config) {
|
|
219
|
+
return this.each(function () {
|
|
220
|
+
let data = $(this).data(DATA_KEY);
|
|
221
|
+
|
|
222
|
+
const _config = typeof config === 'object' && config;
|
|
223
|
+
|
|
224
|
+
if (!data) {
|
|
225
|
+
data = new SectionTabs(this, _config);
|
|
226
|
+
$(this).data(DATA_KEY, data);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if (typeof config === 'string') {
|
|
230
|
+
if (typeof data[config] === 'undefined') {
|
|
231
|
+
throw new TypeError(`No method named "${config}"`);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
data[config]();
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (typeof $ !== 'undefined') {
|
|
242
|
+
// jQuery
|
|
243
|
+
const JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
244
|
+
$.fn[NAME] = SectionTabs._jQueryInterface;
|
|
245
|
+
$.fn[NAME].Constructor = SectionTabs;
|
|
246
|
+
|
|
247
|
+
$.fn[NAME].noConflict = () => {
|
|
248
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
249
|
+
return SectionTabs._jQueryInterface;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
$.fn[NAME].defaults = {
|
|
253
|
+
onInit: null,
|
|
254
|
+
onUpdate: null,
|
|
255
|
+
onDestroy: null,
|
|
256
|
+
debug: false
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
return SectionTabs;
|
|
261
|
+
|
|
262
|
+
}));
|
|
263
|
+
//# sourceMappingURL=sectiontabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sectiontabs.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/section-tabs.js"],"sourcesContent":["import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\n\tlet timeout;\n\n\treturn function() {\n\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function() {\n\n\t\t\ttimeout = null;\n\n\t\t\tif (!immediate) {\n\t\t\t\tfunc.apply(context, args)\n\t\t\t};\n\t\t};\n\n\t\tlet callNow = immediate && !timeout;\n\n\t\tclearTimeout(timeout);\n\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n};\n\nconst shallowProperty = function(key) {\n\n\treturn function(obj) {\n\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\n\tlet length = shallowProperty('length');\n\n\treturn typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n\n if (context === void 0) {\n \treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\n\t\tcase 1: return function(value) {\n\t\t\treturn func.call(context, value);\n\t\t};\n\n\t\tcase 3: return function(value, index, collection) {\n\t\t\treturn func.call(context, value, index, collection);\n\t\t};\n\t\tcase 4: return function(accumulator, value, index, collection) {\n\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t};\n\t}\n\n return function() {\n\t\treturn func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\n\t} else {\n\n\t\tlet keys = Object.keys(obj);\n\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\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\n\tlet result = false;\n\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\tresult = true;\n\t}\n\n\treturn result;\n};\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let 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 let 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 let 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 let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.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 = 'coolSectionTabs';\nconst DATA_KEY = 'plugin_coolSectionTabs';\n\nclass SectionTabs extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.sectionTabs) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.sectionTabs, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache();\n this.bindEvents();\n this.checkForChanges();\n this.onInit();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\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 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 this.log(this.$el);\n this.log(this.$dropdownContainer);\n this.log(this.$dropdownList);\n this.log(this.tabsCount);\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n $(window).on('resize', debounce(() => {\n this.checkForChanges();\n }, 250));\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 let dropdownItems = this.$dropdownList.children();\n let moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);\n let tabs = this.$el.find('> .tab-item:visible');\n let usedSpace = 0;\n\n $.each(tabs, function(i, el) {\n usedSpace += $(el).outerWidth(true);\n });\n\n let 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\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new SectionTabs(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\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\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = SectionTabs._jQueryInterface;\n $.fn[NAME].Constructor = SectionTabs;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT\n\n return SectionTabs._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n debug: false\n }\n}\n\nexport default SectionTabs;\n"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","AbstractUIComponent","onInit","opts","call","el","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","SectionTabs","constructor","window","Cool","settings","sectionTabs","$","extend","fn","defaults","init","buildCache","bindEvents","checkForChanges","destroy","unbindEvents","$el","removeData","update","$dropdownContainer","find","$dropdownList","tabsCount","length","tabs","each","i","data","outerWidth","on","off","_name","moveToList","insertBefore","moveToDropdown","appendTo","overflowStatus","offsetWidth","scrollWidth","dropdownItems","children","moveableTabs","not","usedSpace","freeSpace","hasClass","addClass","removeClass","last","_jQueryInterface","config","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
|