@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,555 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Cool UI tooltip.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.Tooltip = 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 = 'coolTooltip';
|
|
96
|
+
const DATA_KEY = 'plugin_coolTooltip';
|
|
97
|
+
|
|
98
|
+
class Tooltip extends AbstractUIComponent {
|
|
99
|
+
constructor(el, opts) {
|
|
100
|
+
super();
|
|
101
|
+
this.opts = {};
|
|
102
|
+
|
|
103
|
+
if (window.Cool.settings.tooltip) {
|
|
104
|
+
$.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, 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.onInit();
|
|
119
|
+
} // Remove plugin instance completely
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
destroy() {
|
|
123
|
+
this.unbindEvents();
|
|
124
|
+
this.$el.removeData(DATA_KEY);
|
|
125
|
+
this.onDestroy();
|
|
126
|
+
} // Update plugin data
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
update() {
|
|
130
|
+
this.buildCache();
|
|
131
|
+
this.onUpdate();
|
|
132
|
+
} // Cache DOM nodes for performance
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
buildCache() {
|
|
136
|
+
this.$el = $(this.el);
|
|
137
|
+
this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);
|
|
138
|
+
this.id = 'tooltip-' + this.generateUUID();
|
|
139
|
+
this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;
|
|
140
|
+
this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;
|
|
141
|
+
this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;
|
|
142
|
+
this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;
|
|
143
|
+
this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;
|
|
144
|
+
this.placementChanged = false;
|
|
145
|
+
this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;
|
|
146
|
+
} // Bind events that trigger methods
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
bindEvents() {
|
|
150
|
+
this.$el.on('mouseenter' + '.' + NAME, () => {
|
|
151
|
+
this.show();
|
|
152
|
+
});
|
|
153
|
+
this.$el.on('mouseleave' + '.' + NAME, () => {
|
|
154
|
+
this.close();
|
|
155
|
+
});
|
|
156
|
+
$(window).on('resize', debounce(() => {
|
|
157
|
+
if (this.$tooltip) {
|
|
158
|
+
this.setPosition();
|
|
159
|
+
this.onUpdate();
|
|
160
|
+
}
|
|
161
|
+
}, 250));
|
|
162
|
+
} // Unbind events that trigger methods
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
unbindEvents() {
|
|
166
|
+
this.$el.off('.' + NAME);
|
|
167
|
+
} // Generate UUID
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
generateUUID() {
|
|
171
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
172
|
+
let r = Math.random() * 16 | 0,
|
|
173
|
+
v = c == 'x' ? r : r & 0x3 | 0x8;
|
|
174
|
+
return v.toString(16);
|
|
175
|
+
});
|
|
176
|
+
} // Build tooltip
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
buildTooltip() {
|
|
180
|
+
this.$tooltip = $(`
|
|
181
|
+
|
|
182
|
+
<div class="tooltip" role="tooltip" id="${this.id}">
|
|
183
|
+
|
|
184
|
+
<div class="arrow"></div>
|
|
185
|
+
|
|
186
|
+
<div class="tooltip-inner">${this.content}</div>
|
|
187
|
+
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
`);
|
|
191
|
+
this.$container.append(this.$tooltip);
|
|
192
|
+
this.$arrow = this.$tooltip.find('.arrow');
|
|
193
|
+
this.log(this.$el);
|
|
194
|
+
this.log(this.$container);
|
|
195
|
+
this.log(this.$tooltip);
|
|
196
|
+
this.log(this.$arrow);
|
|
197
|
+
this.log('Id: ' + this.id);
|
|
198
|
+
this.log('Animation: ' + this.animation);
|
|
199
|
+
this.log('Animation in: ' + this.animationIn);
|
|
200
|
+
this.log('Animation out: ' + this.animationOut);
|
|
201
|
+
this.log('Animation speed: ' + this.animationSpeed);
|
|
202
|
+
this.log('Placement: ' + this.placement);
|
|
203
|
+
this.log('Content: ' + this.content);
|
|
204
|
+
} // Set positions
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
setPosition(placement) {
|
|
208
|
+
if (typeof placement === 'undefined' || placement === null) {
|
|
209
|
+
placement = this.placement;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
this.$tooltip.addClass('tooltip-' + placement);
|
|
213
|
+
let containerInnerWidth = this.$container.innerWidth();
|
|
214
|
+
let containerInnerHeight = this.$container.innerHeight();
|
|
215
|
+
let tooltipWidth = this.$tooltip.outerWidth(true);
|
|
216
|
+
let tooltipHeight = this.$tooltip.outerHeight(true);
|
|
217
|
+
let tooltipTriggerWidth = this.$el.outerWidth();
|
|
218
|
+
let tooltipTriggerHeight = this.$el.outerHeight();
|
|
219
|
+
let tooltipTriggerPosX = this.$el.offset().left;
|
|
220
|
+
let tooltipTriggerPosY = this.$el.offset().top;
|
|
221
|
+
let arrowWidth = this.$arrow.outerWidth(true);
|
|
222
|
+
let arrowHeight = this.$arrow.outerHeight(true);
|
|
223
|
+
let arrowPos;
|
|
224
|
+
let tooltipPosX;
|
|
225
|
+
let tooltipPosY;
|
|
226
|
+
|
|
227
|
+
if (placement === 'top') {
|
|
228
|
+
tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);
|
|
229
|
+
tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);
|
|
230
|
+
arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);
|
|
231
|
+
this.$arrow.css({
|
|
232
|
+
left: arrowPos + 'px'
|
|
233
|
+
});
|
|
234
|
+
} else if (placement === 'right') {
|
|
235
|
+
tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);
|
|
236
|
+
tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);
|
|
237
|
+
arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);
|
|
238
|
+
this.$arrow.css({
|
|
239
|
+
top: arrowPos + 'px'
|
|
240
|
+
});
|
|
241
|
+
} else if (placement === 'bottom') {
|
|
242
|
+
tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);
|
|
243
|
+
tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);
|
|
244
|
+
arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);
|
|
245
|
+
this.$arrow.css({
|
|
246
|
+
left: arrowPos + 'px'
|
|
247
|
+
});
|
|
248
|
+
} else if (placement === 'left') {
|
|
249
|
+
tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);
|
|
250
|
+
tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);
|
|
251
|
+
arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);
|
|
252
|
+
this.$arrow.css({
|
|
253
|
+
top: arrowPos + 'px'
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
this.$tooltip.css({
|
|
258
|
+
position: 'absolute',
|
|
259
|
+
top: '0px',
|
|
260
|
+
left: '0px',
|
|
261
|
+
transform: 'translate3d(' + tooltipPosX + 'px, ' + tooltipPosY + 'px, 0px)',
|
|
262
|
+
'will-change': 'transform'
|
|
263
|
+
}); // Correct placement if tooltip goes outside of container
|
|
264
|
+
|
|
265
|
+
let tooltipOverflowCount = 0;
|
|
266
|
+
let tooltipPosition = {
|
|
267
|
+
left: this.$tooltip.position().left,
|
|
268
|
+
top: this.$tooltip.position().top,
|
|
269
|
+
right: containerInnerWidth - (this.$tooltip.position().left + tooltipWidth),
|
|
270
|
+
bottom: containerInnerHeight - (this.$tooltip.position().top + tooltipHeight)
|
|
271
|
+
};
|
|
272
|
+
let tooltipOverflow = {
|
|
273
|
+
left: false,
|
|
274
|
+
top: false,
|
|
275
|
+
right: false,
|
|
276
|
+
bottom: false
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
if (tooltipPosition.right < 0) {
|
|
280
|
+
tooltipOverflow.right = true;
|
|
281
|
+
tooltipOverflowCount++;
|
|
282
|
+
this.log('Tooltip overflowing from right');
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
if (tooltipPosition.left < 0) {
|
|
286
|
+
tooltipOverflow.left = true;
|
|
287
|
+
tooltipOverflowCount++;
|
|
288
|
+
this.log('Tooltip overflowing from left');
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
if (tooltipPosition.bottom < 0) {
|
|
292
|
+
tooltipOverflow.bottom = true;
|
|
293
|
+
tooltipOverflowCount++;
|
|
294
|
+
this.log('Tooltip overflowing from bottom');
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
if (tooltipPosition.top < 0) {
|
|
298
|
+
tooltipOverflow.top = true;
|
|
299
|
+
tooltipOverflowCount++;
|
|
300
|
+
this.log('Tooltip overflowing from top');
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (tooltipOverflowCount > 0) {
|
|
304
|
+
if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {
|
|
305
|
+
this.log('Changing tooltip placement to right');
|
|
306
|
+
this.placementChanged = true;
|
|
307
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
308
|
+
this.$arrow.removeAttr('style');
|
|
309
|
+
this.setPosition('right');
|
|
310
|
+
} else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {
|
|
311
|
+
this.log('Changing tooltip placement to bottom');
|
|
312
|
+
this.placementChanged = true;
|
|
313
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
314
|
+
this.$arrow.removeAttr('style');
|
|
315
|
+
this.setPosition('bottom');
|
|
316
|
+
} else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {
|
|
317
|
+
this.log('Changing tooltip placement to left');
|
|
318
|
+
this.placementChanged = true;
|
|
319
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
320
|
+
this.$arrow.removeAttr('style');
|
|
321
|
+
this.setPosition('left');
|
|
322
|
+
} else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {
|
|
323
|
+
this.log('Changing tooltip placement to top');
|
|
324
|
+
this.placementChanged = true;
|
|
325
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
326
|
+
this.$arrow.removeAttr('style');
|
|
327
|
+
this.setPosition('top');
|
|
328
|
+
} else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (tooltipOverflow.left || tooltipOverflow.right)) {
|
|
329
|
+
if (tooltipPosition.top > tooltipPosition.bottom) {
|
|
330
|
+
this.log('Changing tooltip placement to top');
|
|
331
|
+
this.placementChanged = true;
|
|
332
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
333
|
+
this.$arrow.removeAttr('style');
|
|
334
|
+
this.setPosition('top');
|
|
335
|
+
} else {
|
|
336
|
+
this.log('Changing tooltip placement to bottom');
|
|
337
|
+
this.placementChanged = true;
|
|
338
|
+
this.$tooltip.removeClass('tooltip-' + placement);
|
|
339
|
+
this.$arrow.removeAttr('style');
|
|
340
|
+
this.setPosition('bottom');
|
|
341
|
+
}
|
|
342
|
+
} else {
|
|
343
|
+
this.fixTooltipPosition = true;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if (this.fixTooltipPosition) {
|
|
347
|
+
this.log('Adjusting tooltip size or position in order to tooltip fit in the container');
|
|
348
|
+
|
|
349
|
+
if (tooltipOverflow.left) {
|
|
350
|
+
this.log('Tooltip overflowing from left');
|
|
351
|
+
let overflowAmount = Math.abs(tooltipPosition.left);
|
|
352
|
+
let excludePlacements = ['top', 'bottom'];
|
|
353
|
+
|
|
354
|
+
if (tooltipTriggerPosX >= tooltipPosX + overflowAmount && excludePlacements.indexOf(placement) < 0) {
|
|
355
|
+
this.log('Tooltip adjusting width');
|
|
356
|
+
tooltipWidth -= overflowAmount;
|
|
357
|
+
tooltipPosX += overflowAmount;
|
|
358
|
+
} else {
|
|
359
|
+
this.log('Tooltip adjusting position x');
|
|
360
|
+
tooltipPosX += overflowAmount;
|
|
361
|
+
arrowPos -= overflowAmount;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if (tooltipOverflow.top) {
|
|
366
|
+
this.log('Tooltip overflowing from top');
|
|
367
|
+
let overflowAmount = Math.abs(tooltipPosition.top);
|
|
368
|
+
this.log('Tooltip adjusting position y');
|
|
369
|
+
tooltipPosY += overflowAmount;
|
|
370
|
+
arrowPos -= overflowAmount;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
if (tooltipOverflow.right) {
|
|
374
|
+
this.log('Tooltip overflowing from right');
|
|
375
|
+
let overflowAmount = Math.abs(tooltipPosition.right);
|
|
376
|
+
let excludePlacements = ['top', 'bottom'];
|
|
377
|
+
|
|
378
|
+
if (tooltipTriggerPosX <= tooltipPosX - overflowAmount && excludePlacements.indexOf(placement) < 0) {
|
|
379
|
+
this.log('Tooltip adjusting width');
|
|
380
|
+
tooltipWidth -= overflowAmount;
|
|
381
|
+
} else {
|
|
382
|
+
this.log('Tooltip adjusting position x');
|
|
383
|
+
tooltipPosX -= overflowAmount;
|
|
384
|
+
arrowPos += overflowAmount;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (tooltipOverflow.bottom) {
|
|
389
|
+
this.log('Tooltip overflowing from bottom');
|
|
390
|
+
let overflowAmount = Math.abs(tooltipPosition.bottom);
|
|
391
|
+
this.log('Tooltip adjusting position y');
|
|
392
|
+
tooltipPosY -= overflowAmount;
|
|
393
|
+
arrowPos += overflowAmount;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
if (placement === 'top') {
|
|
397
|
+
this.$arrow.css({
|
|
398
|
+
left: arrowPos + 'px'
|
|
399
|
+
});
|
|
400
|
+
} else if (placement === 'right') {
|
|
401
|
+
this.$arrow.css({
|
|
402
|
+
top: arrowPos + 'px'
|
|
403
|
+
});
|
|
404
|
+
} else if (placement === 'bottom') {
|
|
405
|
+
this.$arrow.css({
|
|
406
|
+
left: arrowPos + 'px'
|
|
407
|
+
});
|
|
408
|
+
} else if (placement === 'left') {
|
|
409
|
+
this.$arrow.css({
|
|
410
|
+
top: arrowPos + 'px'
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
this.$tooltip.css({
|
|
415
|
+
width: tooltipWidth,
|
|
416
|
+
transform: 'translate3d(' + tooltipPosX + 'px, ' + tooltipPosY + 'px, 0px)'
|
|
417
|
+
});
|
|
418
|
+
this.fixTooltipPosition = false;
|
|
419
|
+
this.log('Tooltip placement changed: ' + this.placementChanged);
|
|
420
|
+
this.log('Tooltip container inner width: ' + containerInnerWidth + 'px');
|
|
421
|
+
this.log('Tooltip container inner height: ' + containerInnerHeight + 'px');
|
|
422
|
+
this.log('Tooltip trigger width: ' + tooltipTriggerWidth + 'px');
|
|
423
|
+
this.log('Tooltip trigger height: ' + tooltipTriggerHeight + 'px');
|
|
424
|
+
this.log('Tooltip trigger position x: ' + tooltipTriggerPosX + 'px');
|
|
425
|
+
this.log('Tooltip trigger position Y: ' + tooltipTriggerPosY + 'px');
|
|
426
|
+
this.log('Tooltip width: ' + tooltipWidth + 'px');
|
|
427
|
+
this.log('Tooltip height: ' + tooltipHeight + 'px');
|
|
428
|
+
this.log('Tooltip position x: ' + tooltipPosX + 'px');
|
|
429
|
+
this.log('Tooltip position y: ' + tooltipPosY + 'px');
|
|
430
|
+
this.log('Tooltip position left: ' + tooltipPosition.left + 'px');
|
|
431
|
+
this.log('Tooltip position top: ' + tooltipPosition.top + 'px');
|
|
432
|
+
this.log('Tooltip position right: ' + tooltipPosition.right + 'px');
|
|
433
|
+
this.log('Tooltip position bottom: ' + tooltipPosition.bottom + 'px');
|
|
434
|
+
}
|
|
435
|
+
} else {
|
|
436
|
+
this.log('Tooltip placement changed: ' + this.placementChanged);
|
|
437
|
+
this.log('Tooltip container inner width: ' + containerInnerWidth + 'px');
|
|
438
|
+
this.log('Tooltip container inner height: ' + containerInnerHeight + 'px');
|
|
439
|
+
this.log('Tooltip trigger width: ' + tooltipTriggerWidth + 'px');
|
|
440
|
+
this.log('Tooltip trigger height: ' + tooltipTriggerHeight + 'px');
|
|
441
|
+
this.log('Tooltip trigger position x: ' + tooltipTriggerPosX + 'px');
|
|
442
|
+
this.log('Tooltip trigger position Y: ' + tooltipTriggerPosY + 'px');
|
|
443
|
+
this.log('Tooltip width: ' + tooltipWidth + 'px');
|
|
444
|
+
this.log('Tooltip height: ' + tooltipHeight + 'px');
|
|
445
|
+
this.log('Tooltip position x: ' + tooltipPosX + 'px');
|
|
446
|
+
this.log('Tooltip position y: ' + tooltipPosY + 'px');
|
|
447
|
+
this.log('Tooltip position left: ' + tooltipPosition.left + 'px');
|
|
448
|
+
this.log('Tooltip position top: ' + tooltipPosition.top + 'px');
|
|
449
|
+
this.log('Tooltip position right: ' + tooltipPosition.right + 'px');
|
|
450
|
+
this.log('Tooltip position bottom: ' + tooltipPosition.bottom + 'px');
|
|
451
|
+
}
|
|
452
|
+
} // Show
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
show() {
|
|
456
|
+
if (this.$tooltip) {
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
this.buildTooltip();
|
|
461
|
+
this.setPosition();
|
|
462
|
+
|
|
463
|
+
if (this.animation) {
|
|
464
|
+
this.$tooltip.addClass(this.animationSpeed);
|
|
465
|
+
this.$tooltip.animateCss(this.animationIn);
|
|
466
|
+
this.$tooltip.addClass('show');
|
|
467
|
+
this.$tooltip.attr('id', this.id);
|
|
468
|
+
this.$el.attr('data-tooltip', this.id);
|
|
469
|
+
} else {
|
|
470
|
+
this.$tooltip.addClass('show');
|
|
471
|
+
this.$tooltip.attr('id', this.id);
|
|
472
|
+
this.$el.attr('data-tooltip', this.id);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
this.onShow();
|
|
476
|
+
} // Close
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
close() {
|
|
480
|
+
if (!this.$tooltip) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
if (this.animation && !this.$tooltip.hasClass('animated')) {
|
|
485
|
+
this.$tooltip.animateCss(this.animationOut, () => {
|
|
486
|
+
this.$tooltip.remove();
|
|
487
|
+
this.$el.removeAttr('data-tooltip');
|
|
488
|
+
this.$tooltip = null;
|
|
489
|
+
this.placementChanged = false;
|
|
490
|
+
this.onClose();
|
|
491
|
+
});
|
|
492
|
+
} else {
|
|
493
|
+
this.$tooltip.remove();
|
|
494
|
+
this.$el.removeAttr('data-tooltip');
|
|
495
|
+
this.$tooltip = null;
|
|
496
|
+
this.placementChanged = false;
|
|
497
|
+
this.onClose();
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
static _jQueryInterface(config) {
|
|
502
|
+
return this.each(function () {
|
|
503
|
+
let data = $(this).data(DATA_KEY);
|
|
504
|
+
|
|
505
|
+
const _config = typeof config === 'object' && config;
|
|
506
|
+
|
|
507
|
+
if (!data) {
|
|
508
|
+
data = new Tooltip(this, _config);
|
|
509
|
+
$(this).data(DATA_KEY, data);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
if (typeof config === 'string') {
|
|
513
|
+
if (typeof data[config] === 'undefined') {
|
|
514
|
+
throw new TypeError(`No method named "${config}"`);
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
data[config]();
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
if (typeof $ !== 'undefined') {
|
|
525
|
+
// jQuery
|
|
526
|
+
const JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
527
|
+
$.fn[NAME] = Tooltip._jQueryInterface;
|
|
528
|
+
$.fn[NAME].Constructor = Tooltip;
|
|
529
|
+
|
|
530
|
+
$.fn[NAME].noConflict = () => {
|
|
531
|
+
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
532
|
+
return Tooltip._jQueryInterface;
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
$.fn[NAME].defaults = {
|
|
536
|
+
container: 'body',
|
|
537
|
+
animation: false,
|
|
538
|
+
animationIn: 'fadeIn',
|
|
539
|
+
animationOut: 'fadeOut',
|
|
540
|
+
animationSpeed: 'fastest',
|
|
541
|
+
placement: 'bottom',
|
|
542
|
+
content: '',
|
|
543
|
+
onInit: null,
|
|
544
|
+
onUpdate: null,
|
|
545
|
+
onDestroy: null,
|
|
546
|
+
onShow: null,
|
|
547
|
+
onClose: null,
|
|
548
|
+
debug: false
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
return Tooltip;
|
|
553
|
+
|
|
554
|
+
}));
|
|
555
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +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\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, 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 $(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","AbstractUIComponent","onInit","opts","call","el","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","Tooltip","constructor","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","remove","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
|
package/js/index.esm.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Common from './src/common';
|
|
2
|
+
import Popover from './src/popover.js';
|
|
3
|
+
import Select from './src/select';
|
|
4
|
+
import Dropdown from './src/dropdown';
|
|
5
|
+
import Tooltip from './src/tooltip';
|
|
6
|
+
import SectionTabs from './src/section-tabs';
|
|
7
|
+
import Collapse from './src/collapse';
|
|
8
|
+
import Toast from './src/toast';
|
|
9
|
+
import Dialog from './src/dialog';
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
Common,
|
|
13
|
+
Popover,
|
|
14
|
+
Select,
|
|
15
|
+
Dropdown,
|
|
16
|
+
Tooltip,
|
|
17
|
+
SectionTabs,
|
|
18
|
+
Collapse,
|
|
19
|
+
Toast,
|
|
20
|
+
Dialog
|
|
21
|
+
}
|