@finqu/cool 1.2.7 → 1.2.9

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI tooltip.js v1.2.6 (https://finqu.fi)
2
+ * Cool UI tooltip.js v1.2.8 (https://finqu.fi)
3
3
  * Copyright 2011-2020 Finqu Oy
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  */
@@ -7,7 +7,7 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
9
  (global = global || self, global.Tooltip = factory());
10
- }(this, function () { 'use strict';
10
+ }(this, (function () { 'use strict';
11
11
 
12
12
  function _inheritsLoose(subClass, superClass) {
13
13
  subClass.prototype = Object.create(superClass.prototype);
@@ -18,9 +18,6 @@
18
18
  var cov_2jd14bepcm = function () {
19
19
  var path = "/Users/aki/Projects/Finqu/www-structure/finqu-lib/finqu-ui/js/src/util/index.js";
20
20
  var hash = "9850c22355c90dfbb57e869a1abf444408954ba5";
21
-
22
- var Function = function () {}.constructor;
23
-
24
21
  var global = new Function("return this")();
25
22
  var gcv = "__coverage__";
26
23
  var coverageData = {
@@ -1350,7 +1347,8 @@
1350
1347
  "10": [0, 0, 0],
1351
1348
  "11": [0, 0]
1352
1349
  },
1353
- _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184"
1350
+ _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
1351
+ hash: "9850c22355c90dfbb57e869a1abf444408954ba5"
1354
1352
  };
1355
1353
  var coverage = global[gcv] || (global[gcv] = {});
1356
1354
 
@@ -1358,7 +1356,6 @@
1358
1356
  return coverage[path];
1359
1357
  }
1360
1358
 
1361
- coverageData.hash = hash;
1362
1359
  return coverage[path] = coverageData;
1363
1360
  }();
1364
1361
  cov_2jd14bepcm.s[0]++;
@@ -1434,9 +1431,6 @@
1434
1431
  var cov_1o94gtu15 = function () {
1435
1432
  var path = "/Users/aki/Projects/Finqu/www-structure/finqu-lib/finqu-ui/js/src/abstract-ui-component.js";
1436
1433
  var hash = "06e3033bfb01687e153112138c4d90f5c7ac9bf0";
1437
-
1438
- var Function = function () {}.constructor;
1439
-
1440
1434
  var global = new Function("return this")();
1441
1435
  var gcv = "__coverage__";
1442
1436
  var coverageData = {
@@ -2142,7 +2136,8 @@
2142
2136
  "6": [0, 0],
2143
2137
  "7": [0, 0]
2144
2138
  },
2145
- _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184"
2139
+ _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
2140
+ hash: "06e3033bfb01687e153112138c4d90f5c7ac9bf0"
2146
2141
  };
2147
2142
  var coverage = global[gcv] || (global[gcv] = {});
2148
2143
 
@@ -2150,7 +2145,6 @@
2150
2145
  return coverage[path];
2151
2146
  }
2152
2147
 
2153
- coverageData.hash = hash;
2154
2148
  return coverage[path] = coverageData;
2155
2149
  }();
2156
2150
 
@@ -2283,9 +2277,6 @@
2283
2277
  var cov_20v4qvwup6 = function () {
2284
2278
  var path = "/Users/aki/Projects/Finqu/www-structure/finqu-lib/finqu-ui/js/src/tooltip.js";
2285
2279
  var hash = "491bf70ceec4f094f9faaa995fa5d486a2c55372";
2286
-
2287
- var Function = function () {}.constructor;
2288
-
2289
2280
  var global = new Function("return this")();
2290
2281
  var gcv = "__coverage__";
2291
2282
  var coverageData = {
@@ -7719,7 +7710,8 @@
7719
7710
  "53": [0, 0],
7720
7711
  "54": [0, 0]
7721
7712
  },
7722
- _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184"
7713
+ _coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
7714
+ hash: "491bf70ceec4f094f9faaa995fa5d486a2c55372"
7723
7715
  };
7724
7716
  var coverage = global[gcv] || (global[gcv] = {});
7725
7717
 
@@ -7727,7 +7719,6 @@
7727
7719
  return coverage[path];
7728
7720
  }
7729
7721
 
7730
- coverageData.hash = hash;
7731
7722
  return coverage[path] = coverageData;
7732
7723
  }();
7733
7724
  var NAME = (cov_20v4qvwup6.s[0]++, 'coolTooltip');
@@ -8623,5 +8614,5 @@
8623
8614
 
8624
8615
  return Tooltip;
8625
8616
 
8626
- }));
8617
+ })));
8627
8618
  //# sourceMappingURL=tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/tooltip.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\n$.event.special.destroyed = {\n\n\tremove: function(obj) {\n\n\t\tif (obj.handler) {\n\t\t\tobj.handler();\n\t\t}\n\t}\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);\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);\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);\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);\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);\n }\n }\n\n // Reset callback\n onReset() {\n\n let onReset = this.opts.onReset;\n\n if (typeof onReset === 'function') {\n\n onReset.call(this);\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, 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\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, 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 = '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.placementChanged = false;\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 this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n this.$el.on('destroyed'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$tooltip) {\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 tooltip\n buildTooltip() {\n\n this.$tooltip = $(`\n\n <div class=\"tooltip\" 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\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$tooltip);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\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('Placement: '+this.placement);\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.$tooltip.addClass('tooltip-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let tooltipWidth = this.$tooltip.outerWidth(true);\n let tooltipHeight = this.$tooltip.outerHeight(true);\n let tooltipTriggerWidth = this.$el.outerWidth();\n let tooltipTriggerHeight = this.$el.outerHeight();\n let tooltipTriggerPosX = this.$el.offset().left;\n let tooltipTriggerPosY = this.$el.offset().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let tooltipPosX;\n let tooltipPosY;\n\n if (placement === 'top') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n 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 // Correct placement if tooltip goes outside of container\n let tooltipOverflowCount = 0;\n let tooltipPosition = {\n left: this.$tooltip.position().left,\n top: this.$tooltip.position().top,\n right: containerInnerWidth - (this.$tooltip.position().left + tooltipWidth),\n bottom: containerInnerHeight - (this.$tooltip.position().top + tooltipHeight),\n };\n let tooltipOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (tooltipPosition.right < 0) {\n\n tooltipOverflow.right = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from right');\n }\n\n if (tooltipPosition.left < 0) {\n\n tooltipOverflow.left = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from left');\n }\n\n if (tooltipPosition.bottom < 0) {\n\n tooltipOverflow.bottom = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from bottom');\n }\n\n if (tooltipPosition.top < 0) {\n\n tooltipOverflow.top = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from top');\n }\n\n if (tooltipOverflowCount > 0) {\n\n if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {\n\n this.log('Changing tooltip placement to right');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n\n this.log('Changing tooltip placement to left');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (tooltipOverflow.left || tooltipOverflow.right)) {\n\n if (tooltipPosition.top > tooltipPosition.bottom) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\n\n this.log('Adjusting tooltip size or position in order to tooltip fit in the container');\n\n if (tooltipOverflow.left) {\n\n this.log('Tooltip overflowing from left');\n\n let overflowAmount = Math.abs(tooltipPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX >= tooltipPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n tooltipPosX += overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (tooltipOverflow.top) {\n\n this.log('Tooltip overflowing from top');\n\n let overflowAmount = Math.abs(tooltipPosition.top);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (tooltipOverflow.right) {\n\n this.log('Tooltip overflowing from right');\n\n let overflowAmount = Math.abs(tooltipPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX <= tooltipPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n\n this.log('Tooltip overflowing from bottom');\n\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY -= 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.$tooltip.css({\n width: tooltipWidth,\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)'\n });\n\n this.fixTooltipPosition = false;\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n\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\n } else {\n\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\n if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animated')) {\n\n this.$tooltip.animateCss(this.animationOut, () => {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\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 Tooltip(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] = Tooltip._jQueryInterface;\n $.fn[NAME].Constructor = Tooltip;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\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 onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Tooltip;"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","$","event","special","destroyed","remove","obj","handler","AbstractUIComponent","onInit","opts","call","onUpdate","onDestroy","onShow","onClose","onReset","log","debug","console","NAME","DATA_KEY","Tooltip","el","window","Cool","settings","tooltip","extend","fn","defaults","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$container","data","container","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","content","on","show","close","$tooltip","setPosition","off","replace","c","r","Math","random","v","toString","buildTooltip","append","$arrow","find","addClass","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","tooltipWidth","outerWidth","tooltipHeight","outerHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","offset","left","tooltipTriggerPosY","top","arrowWidth","arrowHeight","arrowPos","tooltipPosX","tooltipPosY","round","css","position","transform","tooltipOverflowCount","tooltipPosition","right","bottom","tooltipOverflow","removeClass","removeAttr","fixTooltipPosition","overflowAmount","abs","excludePlacements","indexOf","width","animateCss","attr","hasClass","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/tooltip.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\n$.event.special.destroyed = {\n\n\tremove: function(obj) {\n\n\t\tif (obj.handler) {\n\t\t\tobj.handler();\n\t\t}\n\t}\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);\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);\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);\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);\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);\n }\n }\n\n // Reset callback\n onReset() {\n\n let onReset = this.opts.onReset;\n\n if (typeof onReset === 'function') {\n\n onReset.call(this);\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, 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\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, 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 = '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.placementChanged = false;\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 this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n this.$el.on('destroyed'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$tooltip) {\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 tooltip\n buildTooltip() {\n\n this.$tooltip = $(`\n\n <div class=\"tooltip\" 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\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$tooltip);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\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('Placement: '+this.placement);\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.$tooltip.addClass('tooltip-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let tooltipWidth = this.$tooltip.outerWidth(true);\n let tooltipHeight = this.$tooltip.outerHeight(true);\n let tooltipTriggerWidth = this.$el.outerWidth();\n let tooltipTriggerHeight = this.$el.outerHeight();\n let tooltipTriggerPosX = this.$el.offset().left;\n let tooltipTriggerPosY = this.$el.offset().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let tooltipPosX;\n let tooltipPosY;\n\n if (placement === 'top') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);\n 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 tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n 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 // Correct placement if tooltip goes outside of container\n let tooltipOverflowCount = 0;\n let tooltipPosition = {\n left: this.$tooltip.position().left,\n top: this.$tooltip.position().top,\n right: containerInnerWidth - (this.$tooltip.position().left + tooltipWidth),\n bottom: containerInnerHeight - (this.$tooltip.position().top + tooltipHeight),\n };\n let tooltipOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (tooltipPosition.right < 0) {\n\n tooltipOverflow.right = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from right');\n }\n\n if (tooltipPosition.left < 0) {\n\n tooltipOverflow.left = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from left');\n }\n\n if (tooltipPosition.bottom < 0) {\n\n tooltipOverflow.bottom = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from bottom');\n }\n\n if (tooltipPosition.top < 0) {\n\n tooltipOverflow.top = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from top');\n }\n\n if (tooltipOverflowCount > 0) {\n\n if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {\n\n this.log('Changing tooltip placement to right');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n\n this.log('Changing tooltip placement to left');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (tooltipOverflow.left || tooltipOverflow.right)) {\n\n if (tooltipPosition.top > tooltipPosition.bottom) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\n\n this.log('Adjusting tooltip size or position in order to tooltip fit in the container');\n\n if (tooltipOverflow.left) {\n\n this.log('Tooltip overflowing from left');\n\n let overflowAmount = Math.abs(tooltipPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX >= tooltipPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n tooltipPosX += overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (tooltipOverflow.top) {\n\n this.log('Tooltip overflowing from top');\n\n let overflowAmount = Math.abs(tooltipPosition.top);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (tooltipOverflow.right) {\n\n this.log('Tooltip overflowing from right');\n\n let overflowAmount = Math.abs(tooltipPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX <= tooltipPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n\n this.log('Tooltip overflowing from bottom');\n\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY -= 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.$tooltip.css({\n width: tooltipWidth,\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)'\n });\n\n this.fixTooltipPosition = false;\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n\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\n } else {\n\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\n if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animated')) {\n\n this.$tooltip.animateCss(this.animationOut, () => {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\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 Tooltip(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] = Tooltip._jQueryInterface;\n $.fn[NAME].Constructor = Tooltip;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\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 onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Tooltip;"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","$","event","special","destroyed","remove","obj","handler","AbstractUIComponent","onInit","opts","call","onUpdate","onDestroy","onShow","onClose","onReset","log","debug","console","NAME","DATA_KEY","Tooltip","el","window","Cool","settings","tooltip","extend","fn","defaults","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$container","data","container","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","content","on","show","close","$tooltip","setPosition","off","replace","c","r","Math","random","v","toString","buildTooltip","append","$arrow","find","addClass","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","tooltipWidth","outerWidth","tooltipHeight","outerHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","offset","left","tooltipTriggerPosY","top","arrowWidth","arrowHeight","arrowPos","tooltipPosX","tooltipPosY","round","css","position","transform","tooltipOverflowCount","tooltipPosition","right","bottom","tooltipOverflow","removeClass","removeAttr","fixTooltipPosition","overflowAmount","abs","excludePlacements","indexOf","width","animateCss","attr","hasClass","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/js/src/select.js CHANGED
@@ -116,6 +116,7 @@ class Select extends AbstractUIComponent {
116
116
  this.data[this.name] = [];
117
117
  this.searchData = [];
118
118
  this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;
119
+ this.searchRequest = null;
119
120
  this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;
120
121
  this.contentOpen = false;
121
122
  this.searchPlaceholder = this.$el.data('search-placeholder') ? this.$el.data('search-placeholder') : this.opts.searchPlaceholder;
@@ -134,7 +135,7 @@ class Select extends AbstractUIComponent {
134
135
  this.preventClose = false;
135
136
 
136
137
  if (this.itemsToExclude.length > 0) {
137
- this.itemsToExclude = this.itemsToExclude.map(Number);
138
+ this.itemsToExclude = this.itemsToExclude.map(String);
138
139
  }
139
140
 
140
141
  if (this.opts.setData) {
@@ -145,17 +146,46 @@ class Select extends AbstractUIComponent {
145
146
  this.data = this.$el.data('setData');
146
147
  }
147
148
 
148
- if (this.data[this.name] !== 'undefined' && this.data[this.name].length > 0 && self.itemsToExclude) {
149
+ // Convert data to be array so filters doesn't fail
150
+ if (!Array.isArray(this.data[this.name]) && this.data[this.name] !== '' && this.data[this.name].length > 0) {
151
+
152
+ const arr = this.data[this.name].toString().trim().split(',');
153
+
154
+ this.data[this.name] = arr;
155
+ }
156
+
157
+ // Convert all values to string format to make filtering more simple
158
+ if (this.data[this.name].length > 0) {
159
+ this.data[this.name] = this.data[this.name].map(String);
160
+ }
161
+
162
+ if (this.data[this.name].length > 0 && this.itemsToExclude.length > 0) {
149
163
 
150
164
  this.data[this.name] = this.data[this.name].filter(function(item) {
151
- return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;
165
+
166
+ if (item[self.primaryKeyword]) {
167
+
168
+ return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;
169
+
170
+ } else {
171
+
172
+ return self.itemsToExclude.indexOf(item.toString()) === -1;
173
+ }
152
174
  });
153
175
  }
154
176
 
155
- if (this.items !== 'undefined' && this.items.lengths > 0 && self.itemsToExclude) {
177
+ if (this.items.length > 0 && this.itemsToExclude.length > 0) {
156
178
 
157
179
  this.items = this.items.filter(function(item) {
158
- return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;
180
+
181
+ if (item[self.primaryKeyword]) {
182
+
183
+ return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;
184
+
185
+ } else {
186
+
187
+ return self.itemsToExclude.indexOf(item.toString()) === -1;
188
+ }
159
189
  });
160
190
  }
161
191
 
@@ -198,6 +228,20 @@ class Select extends AbstractUIComponent {
198
228
 
199
229
  } else {
200
230
 
231
+ const selectItems = this.$select.find('.select-item');
232
+
233
+ if (selectItems.length > 0 && this.itemsToExclude.length > 0) {
234
+
235
+ $.each(selectItems, (i, el) => {
236
+
237
+ const val = $(el).find(':input').val();
238
+
239
+ if (self.itemsToExclude.indexOf(val) > -1) {
240
+ $(el).remove();
241
+ }
242
+ });
243
+ }
244
+
201
245
  secondaryResolve();
202
246
  }
203
247
 
@@ -422,7 +466,7 @@ class Select extends AbstractUIComponent {
422
466
 
423
467
  if (this.checked) {
424
468
 
425
- self.data[self.name] = val;
469
+ self.data[self.name] = [val];
426
470
  self.$select.find('input[type="radio"]').not($(this)).prop('checked', false);
427
471
  self.$select.find('input[type="radio"]').not($(this)).removeClass('checked');
428
472
 
@@ -578,12 +622,12 @@ class Select extends AbstractUIComponent {
578
622
  });
579
623
 
580
624
  let itemIds = items.map(item => {
581
- return parseInt(item.id, 10);
625
+ return item.id.toString()
582
626
  });
583
627
 
584
628
  // Remove value from data if it doesn't exist anymore
585
629
  self.data[self.name] = self.data[self.name].filter(function(value) {
586
- return itemIds.indexOf(parseInt(value, 10)) > -1;
630
+ return itemIds.indexOf(value.toString()) > -1;
587
631
  });
588
632
 
589
633
  if (self.data[self.name].length == 0) {
@@ -591,7 +635,7 @@ class Select extends AbstractUIComponent {
591
635
  }
592
636
 
593
637
  items = items.filter(function(item) {
594
- return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;
638
+ return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;
595
639
  });
596
640
 
597
641
  let result = self._renderItemList(items);
@@ -623,7 +667,9 @@ class Select extends AbstractUIComponent {
623
667
 
624
668
  self.data[self.name].forEach(function(value) {
625
669
 
626
- let $input = $inputs.filter(function() { return this.value == value });
670
+ let $input = $inputs.filter(function() {
671
+ return this.value == value;
672
+ });
627
673
 
628
674
  $input.prop('checked', true);
629
675
 
@@ -632,7 +678,9 @@ class Select extends AbstractUIComponent {
632
678
 
633
679
  } else if (self.type == 'radio') {
634
680
 
635
- let $input = $inputs.filter(function() { return this.value == self.data[self.name] });
681
+ let $input = $inputs.filter(function() {
682
+ return this.value == self.data[self.name][0];
683
+ });
636
684
 
637
685
  $input.prop('checked', true);
638
686
  $input.addClass('checked');
@@ -651,11 +699,11 @@ class Select extends AbstractUIComponent {
651
699
  // Remove value from data if it doesn't exist anymore
652
700
  let $inputs = this.$scrollableContent.find(':input');
653
701
  let inputValues = $inputs.length > 0 ? $inputs.map(function() {
654
- return parseInt(this.value, 10);
702
+ return this.value.toString();
655
703
  }).get() : [];
656
704
 
657
705
  this.data[this.name] = this.data[this.name].filter(function(value) {
658
- return inputValues.indexOf(parseInt(value, 10)) > -1;
706
+ return inputValues.indexOf(value.toString()) > -1;
659
707
  });
660
708
 
661
709
  if (this.data[this.name].length == 0) {
@@ -684,7 +732,7 @@ class Select extends AbstractUIComponent {
684
732
  } else if (this.type == 'radio') {
685
733
 
686
734
  let $input = $inputs.filter(function() {
687
- return this.value == self.data[self.name]
735
+ return this.value == self.data[self.name][0];
688
736
  });
689
737
 
690
738
  $input.prop('checked', true);
@@ -711,11 +759,17 @@ class Select extends AbstractUIComponent {
711
759
 
712
760
  this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();
713
761
 
714
- $.ajax({
762
+ if (this.searchRequest !== null) {
763
+ this.searchRequest.abort();
764
+ }
765
+
766
+ this.searchRequest = $.ajax({
715
767
  method: 'GET',
716
768
  url: this.searchApi + this.searchString
717
769
  }).done(function(data) {
718
770
 
771
+ self.searchRequest = null;
772
+
719
773
  let items = data.map(item => {
720
774
 
721
775
  item.id = item[self.primaryKeyword].toString();
@@ -724,7 +778,7 @@ class Select extends AbstractUIComponent {
724
778
  });
725
779
 
726
780
  items = items.filter(function(item) {
727
- return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;
781
+ return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;
728
782
  });
729
783
 
730
784
  let result = self._renderItemList(items);
@@ -907,7 +961,7 @@ class Select extends AbstractUIComponent {
907
961
  }
908
962
 
909
963
  items = items.filter(function(item) {
910
- return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;
964
+ return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;
911
965
  });
912
966
 
913
967
  items.forEach(item => {
@@ -935,7 +989,7 @@ class Select extends AbstractUIComponent {
935
989
  items.forEach(item => {
936
990
 
937
991
  let $input = this.$select.find(':input').filter(function() { return this.value == item.id });
938
- let val = parseInt($input.val(), 10);
992
+ let val = $input.val().toString();
939
993
 
940
994
  $input.prop('checked', true);
941
995
 
@@ -947,7 +1001,7 @@ class Select extends AbstractUIComponent {
947
1001
 
948
1002
  let item = items[0];
949
1003
  let $input = this.$select.find(':input').filter(function() { return this.value == item.id });
950
- let val = parseInt($input.val(), 10);
1004
+ let val = $input.val().toString();
951
1005
 
952
1006
  $input.prop('checked', true);
953
1007
  $input.addClass('checked');
@@ -1032,11 +1086,11 @@ class Select extends AbstractUIComponent {
1032
1086
  ids = data;
1033
1087
  }
1034
1088
 
1035
- ids = ids.map(Number);
1089
+ ids = ids.map(String);
1036
1090
 
1037
1091
  if (this.items.length > 0) {
1038
1092
 
1039
- result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });
1093
+ result = $.grep(this.items, function(item) { return ids.indexOf(item.id.toString()) > -1 });
1040
1094
 
1041
1095
  if (segment) {
1042
1096
 
@@ -1071,11 +1125,11 @@ class Select extends AbstractUIComponent {
1071
1125
  ids = data;
1072
1126
  }
1073
1127
 
1074
- ids = ids.map(Number);
1128
+ ids = ids.map(String);
1075
1129
 
1076
1130
  if (this.items.length > 0) {
1077
1131
 
1078
- result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });
1132
+ result = $.grep(this.items, function(item) { return ids.indexOf(item.id.toString()) > -1 });
1079
1133
 
1080
1134
  if (segment) {
1081
1135
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finqu/cool",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Finqu UI package",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI - Grid v1.2.7 (https://finqu.fi)
2
+ * Cool UI - Grid (https://finqu.fi)
3
3
  * Copyright 2020 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI - Reboot v1.2.7 (https://finqu.fi)
2
+ * Cool UI - Reboot (https://finqu.fi)
3
3
  * Copyright 2020 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
package/scss/cool.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Cool UI v1.2.7 (https://finqu.fi)
2
+ * Cool UI (https://finqu.fi)
3
3
  * Copyright 2020 Finqu Oy.
4
4
  * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
5
  * Forked from Bootstrap, licensed MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)