@finqu/cool 1.2.29 → 2.0.2
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 +694 -1
- package/dist/css/cool.css +26902 -14322
- package/dist/css/cool.css.map +1 -154
- package/dist/css/cool.min.css +2 -7
- package/dist/css/cool.min.css.map +1 -1
- package/dist/js/cool.bundle.js +16191 -5588
- package/dist/js/cool.bundle.js.map +1 -1
- package/dist/js/cool.bundle.min.js +13 -8
- package/dist/js/cool.bundle.min.js.map +1 -1
- package/dist/js/cool.esm.js +4722 -4812
- package/dist/js/cool.esm.js.map +1 -1
- package/dist/js/cool.esm.min.js +4 -9
- package/dist/js/cool.esm.min.js.map +1 -1
- package/dist/js/cool.js +5143 -5240
- package/dist/js/cool.js.map +1 -1
- package/dist/js/cool.min.js +4 -9
- package/dist/js/cool.min.js.map +1 -1
- package/package.json +125 -60
- package/scss/LISENCE +1 -1
- package/scss/_badge.scss +134 -102
- package/scss/_button-group.scss +80 -129
- package/scss/_buttons.scss +257 -201
- package/scss/_dark.scss +637 -0
- package/scss/_dialog.scss +314 -123
- package/scss/_dropdown.scss +165 -233
- package/scss/_forms.scss +555 -200
- package/scss/_frame.scss +945 -624
- package/scss/_grid.scss +215 -35
- package/scss/_input-group.scss +326 -285
- package/scss/_list-group.scss +127 -82
- package/scss/_media.scss +439 -0
- package/scss/_navbar.scss +116 -284
- package/scss/_notification.scss +111 -9
- package/scss/_pagination.scss +82 -88
- package/scss/_popover.scss +61 -167
- package/scss/_reboot.scss +306 -284
- package/scss/_root.scss +848 -15
- package/scss/_section.scss +735 -977
- package/scss/_select.scss +559 -187
- package/scss/_tables.scss +471 -595
- package/scss/_tabs.scss +50 -178
- package/scss/_toast.scss +242 -147
- package/scss/_tooltip.scss +130 -101
- package/scss/_typography.scss +166 -0
- package/scss/_variables.scss +1154 -748
- package/scss/cool.scss +64 -32
- package/scss/utilities/_align.scss +51 -41
- package/scss/utilities/_animation.scss +165 -0
- package/scss/utilities/_background.scss +72 -14
- package/scss/utilities/_borders.scss +205 -146
- package/scss/utilities/_collapse.scss +20 -25
- package/scss/utilities/_cursor.scss +160 -22
- package/scss/utilities/_display.scss +116 -16
- package/scss/utilities/_embed.scss +89 -78
- package/scss/utilities/_fill.scss +79 -0
- package/scss/utilities/_filters.scss +233 -0
- package/scss/utilities/_flex.scss +216 -52
- package/scss/utilities/_grid.scss +136 -0
- package/scss/utilities/_opacity.scss +131 -0
- package/scss/utilities/_overflow.scss +242 -6
- package/scss/utilities/_perfect-scrollbar.scss +147 -141
- package/scss/utilities/_pointer-events.scss +125 -0
- package/scss/utilities/_position.scss +130 -30
- package/scss/utilities/_screen-readers.scss +95 -0
- package/scss/utilities/_shadows.scss +195 -0
- package/scss/utilities/_sizing.scss +288 -32
- package/scss/utilities/_spacing.scss +168 -92
- package/scss/utilities/_stroke.scss +124 -0
- package/scss/utilities/_text.scss +420 -99
- package/scss/utilities/_transform.scss +232 -0
- package/scss/utilities/_transitions.scss +147 -0
- package/scss/utilities/_user-select.scss +89 -10
- package/scss/utilities/_visibility.scss +62 -6
- package/scss/utilities/_z-index.scss +169 -0
- package/.babelrc.js +0 -20
- package/.browserslistrc +0 -13
- package/build/.eslintrc.json +0 -10
- package/build/banner.js +0 -14
- package/build/build-plugins.js +0 -92
- package/build/rollup.config.js +0 -46
- package/dist/css/cool-grid.css +0 -4390
- package/dist/css/cool-grid.css.map +0 -30
- package/dist/css/cool-grid.min.css +0 -7
- package/dist/css/cool-grid.min.css.map +0 -1
- package/dist/css/cool-reboot.css +0 -286
- package/dist/css/cool-reboot.css.map +0 -62
- package/dist/css/cool-reboot.min.css +0 -7
- package/dist/css/cool-reboot.min.css.map +0 -1
- package/html/index.html +0 -2703
- package/js/dist/collapse.js +0 -5535
- package/js/dist/collapse.js.map +0 -1
- package/js/dist/common.js +0 -21996
- package/js/dist/common.js.map +0 -1
- package/js/dist/cooldropdown.js +0 -467
- package/js/dist/cooldropdown.js.map +0 -1
- package/js/dist/coolpopover.js +0 -391
- package/js/dist/coolpopover.js.map +0 -1
- package/js/dist/coolsectiontabs.js +0 -256
- package/js/dist/coolsectiontabs.js.map +0 -1
- package/js/dist/coolselect.js +0 -796
- package/js/dist/coolselect.js.map +0 -1
- package/js/dist/cooltooltip.js +0 -360
- package/js/dist/cooltooltip.js.map +0 -1
- package/js/dist/coolui.js +0 -73
- package/js/dist/coolui.js.map +0 -1
- package/js/dist/dropdown.js +0 -27421
- package/js/dist/dropdown.js.map +0 -1
- package/js/dist/popover.js +0 -9472
- package/js/dist/popover.js.map +0 -1
- package/js/dist/sectiontabs.js +0 -4483
- package/js/dist/sectiontabs.js.map +0 -1
- package/js/dist/select.js +0 -37080
- package/js/dist/select.js.map +0 -1
- package/js/dist/tooltip.js +0 -8786
- package/js/dist/tooltip.js.map +0 -1
- package/js/index.esm.js +0 -21
- package/js/index.umd.js +0 -21
- package/js/src/abstract-ui-component.js +0 -81
- package/js/src/collapse.js +0 -286
- package/js/src/common.js +0 -296
- package/js/src/dialog.js +0 -579
- package/js/src/dropdown.js +0 -525
- package/js/src/popover.js +0 -632
- package/js/src/section-tabs.js +0 -215
- package/js/src/select.js +0 -1342
- package/js/src/toast.js +0 -581
- package/js/src/tooltip.js +0 -591
- package/js/src/util/animate-css.js +0 -22
- package/js/src/util/index.js +0 -122
- package/js/src/util/perfect-scrollbar.js +0 -1316
- package/less/alert.less +0 -345
- package/less/badge.less +0 -38
- package/less/bootstrap-noconflict.less +0 -23
- package/less/bootstrap.less +0 -23
- package/less/button-group.less +0 -153
- package/less/buttons.less +0 -287
- package/less/dialog-noconflict.less +0 -174
- package/less/dialog.less +0 -203
- package/less/dropdown.less +0 -209
- package/less/forms.less +0 -770
- package/less/images.less +0 -242
- package/less/input-group.less +0 -163
- package/less/list-group.less +0 -73
- package/less/mixins/aspect-ratio.less +0 -23
- package/less/mixins/border-radius.less +0 -24
- package/less/mixins/box-shadow.less +0 -4
- package/less/mixins/buttons.less +0 -17
- package/less/mixins/caret.less +0 -51
- package/less/mixins/clearfix.less +0 -10
- package/less/mixins/gradients.less +0 -34
- package/less/mixins/nav-divider.less +0 -7
- package/less/mixins/object-fit.less +0 -13
- package/less/mixins/reset-text.less +0 -16
- package/less/mixins.less +0 -11
- package/less/package.json +0 -11
- package/less/pagination.less +0 -69
- package/less/popover.less +0 -143
- package/less/project.sublime-workspace +0 -774
- package/less/reboot.less +0 -235
- package/less/section.less +0 -793
- package/less/select.less +0 -150
- package/less/tables.less +0 -737
- package/less/tabs.less +0 -162
- package/less/tooltip.less +0 -87
- package/less/type.less +0 -71
- package/less/utilities/align.less +0 -27
- package/less/utilities/animate.less +0 -3512
- package/less/utilities/background.less +0 -70
- package/less/utilities/borders.less +0 -16
- package/less/utilities/color.less +0 -70
- package/less/utilities/cursor.less +0 -8
- package/less/utilities/display.less +0 -38
- package/less/utilities/embed.less +0 -61
- package/less/utilities/flex.less +0 -76
- package/less/utilities/jquery-ui.less +0 -116
- package/less/utilities/lazyload.less +0 -29
- package/less/utilities/overflow.less +0 -11
- package/less/utilities/pace.less +0 -25
- package/less/utilities/placeholder.less +0 -60
- package/less/utilities/position.less +0 -42
- package/less/utilities/scrollbar.less +0 -152
- package/less/utilities/spacing.less +0 -197
- package/less/utilities/text.less +0 -68
- package/less/utilities/transform.less +0 -7
- package/less/utilities.less +0 -21
- package/less/variables.less +0 -343
- package/scss/_alert.scss +0 -102
- package/scss/_custom-forms.scss +0 -444
- package/scss/_functions.scss +0 -124
- package/scss/_images.scss +0 -361
- package/scss/_mixins.scss +0 -34
- package/scss/_type.scss +0 -129
- package/scss/_utilities.scss +0 -23
- package/scss/cool-grid.scss +0 -29
- package/scss/cool-reboot.scss +0 -11
- package/scss/mixins/_alert-variant.scss +0 -20
- package/scss/mixins/_aspect-ratio.scss +0 -29
- package/scss/mixins/_background-variant.scss +0 -25
- package/scss/mixins/_badge-variant.scss +0 -36
- package/scss/mixins/_breakpoints.scss +0 -102
- package/scss/mixins/_buttons.scss +0 -104
- package/scss/mixins/_caret.scss +0 -80
- package/scss/mixins/_clearfix.scss +0 -10
- package/scss/mixins/_float.scss +0 -14
- package/scss/mixins/_forms.scss +0 -67
- package/scss/mixins/_gradients.scss +0 -40
- package/scss/mixins/_grid-framework.scss +0 -72
- package/scss/mixins/_grid.scss +0 -60
- package/scss/mixins/_nav-divider.scss +0 -9
- package/scss/mixins/_notification-variant.scss +0 -7
- package/scss/mixins/_object-fit.scss +0 -16
- package/scss/mixins/_reset-text.scss +0 -19
- package/scss/mixins/_text-emphasis.scss +0 -21
- package/scss/mixins/_text-hide.scss +0 -10
- package/scss/mixins/_text-truncate.scss +0 -81
- package/scss/mixins/_visibility.scss +0 -7
- package/scss/project.sublime-workspace +0 -491
- package/scss/utilities/_animate.scss +0 -3512
- package/scss/utilities/_clearfix.scss +0 -6
- package/scss/utilities/_lazyload.scss +0 -31
- package/scss/utilities/_placeholder.scss +0 -77
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Cool UI coolsectiontabs.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() :
|
|
8
|
-
typeof define === 'function' && define.amd ? define(factory) :
|
|
9
|
-
(global = global || self, global.CoolSectionTabs = factory());
|
|
10
|
-
}(this, function () { 'use strict';
|
|
11
|
-
|
|
12
|
-
const {
|
|
13
|
-
jQuery
|
|
14
|
-
} = window;
|
|
15
|
-
|
|
16
|
-
const debounce = function (func, wait, immediate) {
|
|
17
|
-
var timeout;
|
|
18
|
-
return function () {
|
|
19
|
-
var context = this,
|
|
20
|
-
args = arguments;
|
|
21
|
-
|
|
22
|
-
var later = function () {
|
|
23
|
-
timeout = null;
|
|
24
|
-
if (!immediate) func.apply(context, args);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
var callNow = immediate && !timeout;
|
|
28
|
-
clearTimeout(timeout);
|
|
29
|
-
timeout = setTimeout(later, wait);
|
|
30
|
-
if (callNow) func.apply(context, args);
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
class AbstractUIComponent {
|
|
35
|
-
// Create callback
|
|
36
|
-
onCreate() {
|
|
37
|
-
var onCreate = this.opts.onCreate;
|
|
38
|
-
|
|
39
|
-
if (typeof onCreate === 'function') {
|
|
40
|
-
onCreate.call(this.el);
|
|
41
|
-
}
|
|
42
|
-
} // Update callback
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
onUpdate() {
|
|
46
|
-
var onUpdate = this.opts.onUpdate;
|
|
47
|
-
|
|
48
|
-
if (typeof onUpdate === 'function') {
|
|
49
|
-
onUpdate.call(this.el);
|
|
50
|
-
}
|
|
51
|
-
} // Destroy callback
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
onDestroy() {
|
|
55
|
-
var onDestroy = this.opts.onDestroy;
|
|
56
|
-
|
|
57
|
-
if (typeof onDestroy === 'function') {
|
|
58
|
-
onDestroy.call(this.el);
|
|
59
|
-
}
|
|
60
|
-
} // Show callback
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
onShow() {
|
|
64
|
-
var onShow = this.opts.onShow;
|
|
65
|
-
|
|
66
|
-
if (typeof onShow === 'function') {
|
|
67
|
-
onShow.call(this.el);
|
|
68
|
-
}
|
|
69
|
-
} // Close callback
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
onClose() {
|
|
73
|
-
var onClose = this.opts.onClose;
|
|
74
|
-
|
|
75
|
-
if (typeof onClose === 'function') {
|
|
76
|
-
onClose.call(this.el);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
debug(...args) {
|
|
81
|
-
if (this.opts.debug) {
|
|
82
|
-
if (typeof this.opts.debug === 'function') {
|
|
83
|
-
this.opts.debug(...args);
|
|
84
|
-
} else {
|
|
85
|
-
console.log(...args);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const NAME = 'coolSectionTabs';
|
|
93
|
-
const DATA_KEY = 'plugin_coolSectionTabs';
|
|
94
|
-
|
|
95
|
-
class CoolSectionTabs extends AbstractUIComponent {
|
|
96
|
-
constructor(el, opts) {
|
|
97
|
-
super();
|
|
98
|
-
this.el = el;
|
|
99
|
-
this.opts = jQuery.extend({}, jQuery.fn[NAME].defaults, opts);
|
|
100
|
-
this.init();
|
|
101
|
-
} // Init plugin
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
init() {
|
|
105
|
-
var plugin = this;
|
|
106
|
-
plugin.buildCache();
|
|
107
|
-
plugin.bindEvents();
|
|
108
|
-
plugin.onCreate();
|
|
109
|
-
} // Remove plugin instance completely
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
destroy() {
|
|
113
|
-
this.unbindEvents();
|
|
114
|
-
this.$el.removeData();
|
|
115
|
-
this.onDestroy();
|
|
116
|
-
} // Update plugin data
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
update() {
|
|
120
|
-
this.buildCache();
|
|
121
|
-
this.onUpdate();
|
|
122
|
-
} // Cache DOM nodes for performance
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
buildCache() {
|
|
126
|
-
this.$el = jQuery(this.el);
|
|
127
|
-
this.$dropdownContainer = this.$el.find('.dropdown-container');
|
|
128
|
-
this.$dropdownList = this.$el.find('.dropdown-list');
|
|
129
|
-
this.tabsCount = this.$el.find('> .tab-item').length;
|
|
130
|
-
this.tabs = this.$el.find('> .tab-item:visible');
|
|
131
|
-
jQuery.each(this.tabs, function (i, el) {
|
|
132
|
-
jQuery(el).data('width', jQuery(el).outerWidth(true));
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
if (this.opts.debug) {
|
|
136
|
-
this.debug(this.$el);
|
|
137
|
-
this.debug(this.$dropdownContainer);
|
|
138
|
-
this.debug(this.$dropdownList);
|
|
139
|
-
this.debug(this.tabsCount);
|
|
140
|
-
}
|
|
141
|
-
} // Bind events that trigger methods
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
bindEvents() {
|
|
145
|
-
var plugin = this;
|
|
146
|
-
jQuery(window).on('resize', debounce(function () {
|
|
147
|
-
plugin.checkForChanges.call(plugin);
|
|
148
|
-
}, 250)).trigger('resize');
|
|
149
|
-
} // Unbind events that trigger methods
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
unbindEvents() {
|
|
153
|
-
this.$el.off('.' + this._name);
|
|
154
|
-
} // Move to list
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
moveToList(el) {
|
|
158
|
-
jQuery(el).insertBefore(this.$dropdownContainer);
|
|
159
|
-
this.checkForChanges();
|
|
160
|
-
} // Move to dropdown
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
moveToDropdown(el) {
|
|
164
|
-
jQuery(el).appendTo(this.$dropdownList);
|
|
165
|
-
this.checkForChanges();
|
|
166
|
-
} // Overflow status
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
overflowStatus() {
|
|
170
|
-
if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {
|
|
171
|
-
return true;
|
|
172
|
-
} else {
|
|
173
|
-
return false;
|
|
174
|
-
}
|
|
175
|
-
} // CheckForChanges
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
checkForChanges() {
|
|
179
|
-
var dropdownItems = this.$dropdownList.children();
|
|
180
|
-
var moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);
|
|
181
|
-
var tabs = this.$el.find('> .tab-item:visible');
|
|
182
|
-
var usedSpace = 0;
|
|
183
|
-
jQuery.each(tabs, function (i, el) {
|
|
184
|
-
usedSpace += jQuery(el).outerWidth(true);
|
|
185
|
-
});
|
|
186
|
-
var freeSpace = this.$el[0].offsetWidth - usedSpace;
|
|
187
|
-
|
|
188
|
-
if (dropdownItems.length > 0) {
|
|
189
|
-
if (!this.$dropdownContainer.hasClass('visible')) {
|
|
190
|
-
this.$dropdownContainer.addClass('visible');
|
|
191
|
-
}
|
|
192
|
-
} else {
|
|
193
|
-
if (this.$dropdownContainer.hasClass('visible')) {
|
|
194
|
-
this.$dropdownContainer.removeClass('visible');
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
if (this.overflowStatus() == true) {
|
|
199
|
-
if (moveableTabs.length > 0) {
|
|
200
|
-
this.moveToDropdown(moveableTabs.last());
|
|
201
|
-
}
|
|
202
|
-
} else {
|
|
203
|
-
if (dropdownItems.length > 0) {
|
|
204
|
-
if (freeSpace > dropdownItems.last().data('width')) {
|
|
205
|
-
this.moveToList(dropdownItems.last());
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
static _jQueryInterface(config) {
|
|
212
|
-
return this.each(function () {
|
|
213
|
-
let data = jQuery(this).data(DATA_KEY);
|
|
214
|
-
|
|
215
|
-
const _config = typeof config === 'object' && config;
|
|
216
|
-
|
|
217
|
-
if (!data) {
|
|
218
|
-
data = new CoolPopover(this, _config);
|
|
219
|
-
jQuery(this).data(DATA_KEY, data);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
if (typeof config === 'string') {
|
|
223
|
-
if (typeof data[config] === 'undefined') {
|
|
224
|
-
throw new TypeError(`No method named "${config}"`);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
data[config]();
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
if (typeof jQuery !== 'undefined') {
|
|
235
|
-
// jQuery
|
|
236
|
-
const JQUERY_NO_CONFLICT = jQuery.fn[NAME];
|
|
237
|
-
jQuery.fn[NAME] = CoolSectionTabs._jQueryInterface;
|
|
238
|
-
jQuery.fn[NAME].Constructor = CoolSectionTabs;
|
|
239
|
-
|
|
240
|
-
jQuery.fn[NAME].noConflict = () => {
|
|
241
|
-
jQuery.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
242
|
-
return CoolSectionTabs._jQueryInterface;
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
jQuery.fn[NAME].defaults = {
|
|
246
|
-
onCreate: null,
|
|
247
|
-
onUpdate: null,
|
|
248
|
-
onDestroy: null,
|
|
249
|
-
debug: false
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
return CoolSectionTabs;
|
|
254
|
-
|
|
255
|
-
}));
|
|
256
|
-
//# sourceMappingURL=coolsectiontabs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coolsectiontabs.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/section-tabs.js"],"sourcesContent":["const { jQuery } = window;\n\nconst debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\tvar length = getLength(collection);\n\treturn typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\titeratee = optimizeCb(iteratee, context);\n\tvar i, length;\n\tif (isArrayLike(obj)) {\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\t} else {\n\t\tvar keys = _.keys(obj);\n\t\tfor (i = 0, length = keys.length; i < length; i++) {\n\t\t\titeratee(obj[keys[i]], keys[i], obj);\n\t\t}\n\t}\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\treturn true;\n\t}\n};\n\nexport {\n\tjQuery,\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\t// Create callback\n onCreate() {\n\n var onCreate = this.opts.onCreate;\n\n if (typeof onCreate === 'function') {\n\n onCreate.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n var onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this.el);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n var onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.el);\n }\n }\n\n // Show callback\n onShow() {\n\n var onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this.el);\n }\n }\n\n // Close callback\n onClose() {\n\n var onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n debug(...args) {\n \tif (this.opts.debug) {\n if (typeof this.opts.debug === 'function') {\n this.opts.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import { jQuery as $, debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSectionTabs';\nconst DATA_KEY = 'plugin_coolSectionTabs';\n\nclass CoolSectionTabs extends AbstractUIComponent {\n constructor(el, opts) {\n super();\n\n this.el = el;\n this.opts = $.extend({}, $.fn[NAME].defaults, opts);\n this.init();\n }\n\n // Init plugin\n init() {\n\n var plugin = this;\n\n plugin.buildCache();\n plugin.bindEvents();\n plugin.onCreate();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n var plugin = this;\n\n this.$el = $(this.el);\n this.$dropdownContainer = this.$el.find('.dropdown-container');\n this.$dropdownList = this.$el.find('.dropdown-list');\n this.tabsCount = this.$el.find('> .tab-item').length;\n this.tabs = this.$el.find('> .tab-item:visible');\n\n $.each(this.tabs, function(i, el) {\n $(el).data('width', $(el).outerWidth(true));\n });\n\n if (this.opts.debug) {\n this.debug(this.$el);\n this.debug(this.$dropdownContainer);\n this.debug(this.$dropdownList);\n this.debug(this.tabsCount);\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n var plugin = this;\n\n $(window).on('resize', debounce(function () {\n plugin.checkForChanges.call(plugin);\n }, 250)).trigger('resize');\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this._name);\n }\n\n // Move to list\n moveToList(el) {\n\n $(el).insertBefore(this.$dropdownContainer);\n\n this.checkForChanges();\n }\n\n // Move to dropdown\n moveToDropdown(el) {\n\n $(el).appendTo(this.$dropdownList);\n\n this.checkForChanges();\n }\n\n // Overflow status\n overflowStatus() {\n\n if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {\n return true;\n } else {\n return false;\n }\n }\n\n // CheckForChanges\n checkForChanges() {\n\n var dropdownItems = this.$dropdownList.children();\n var moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);\n var tabs = this.$el.find('> .tab-item:visible');\n var usedSpace = 0;\n\n $.each(tabs, function(i, el) {\n usedSpace += $(el).outerWidth(true);\n });\n\n var freeSpace = this.$el[0].offsetWidth - usedSpace;\n\n if (dropdownItems.length > 0) {\n\n if (!this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.addClass('visible');\n }\n\n } else {\n\n if (this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.removeClass('visible');\n }\n }\n\n if (this.overflowStatus() == true) {\n\n if (moveableTabs.length > 0) {\n this.moveToDropdown(moveableTabs.last());\n }\n\n } else {\n\n if (dropdownItems.length > 0) {\n\n if (freeSpace > dropdownItems.last().data('width')) {\n this.moveToList(dropdownItems.last());\n }\n }\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new CoolPopover(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = CoolSectionTabs._jQueryInterface;\n $.fn[NAME].Constructor = CoolSectionTabs;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CoolSectionTabs._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n debug: false\n };\n\n}\n\nexport default CoolSectionTabs;\n"],"names":["jQuery","window","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","AbstractUIComponent","onCreate","opts","call","el","onUpdate","onDestroy","onShow","onClose","debug","console","log","NAME","DATA_KEY","CoolSectionTabs","constructor","$","extend","fn","defaults","init","plugin","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$dropdownContainer","find","$dropdownList","tabsCount","length","tabs","each","i","data","outerWidth","on","checkForChanges","trigger","off","_name","moveToList","insertBefore","moveToDropdown","appendTo","overflowStatus","offsetWidth","scrollWidth","dropdownItems","children","moveableTabs","not","usedSpace","freeSpace","hasClass","addClass","removeClass","last","_jQueryInterface","config","_config","CoolPopover","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
|