@finqu/cool 1.2.28 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/README.md +680 -1
  2. package/dist/css/cool.css +23510 -16076
  3. package/dist/css/cool.css.map +1 -154
  4. package/dist/css/cool.min.css +89 -3
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +15397 -3775
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +20 -8
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +4281 -3352
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +9 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +4283 -3354
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +9 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +94 -61
  19. package/.babelrc.js +0 -20
  20. package/.browserslistrc +0 -13
  21. package/build/.eslintrc.json +0 -10
  22. package/build/banner.js +0 -14
  23. package/build/build-plugins.js +0 -92
  24. package/build/rollup.config.js +0 -46
  25. package/dist/css/cool-grid.css +0 -3704
  26. package/dist/css/cool-grid.css.map +0 -30
  27. package/dist/css/cool-grid.min.css +0 -7
  28. package/dist/css/cool-grid.min.css.map +0 -1
  29. package/dist/css/cool-reboot.css +0 -285
  30. package/dist/css/cool-reboot.css.map +0 -62
  31. package/dist/css/cool-reboot.min.css +0 -7
  32. package/dist/css/cool-reboot.min.css.map +0 -1
  33. package/html/dropdown-test.html +0 -200
  34. package/html/index.html +0 -2704
  35. package/js/dist/collapse.js +0 -5290
  36. package/js/dist/collapse.js.map +0 -1
  37. package/js/dist/common.js +0 -22152
  38. package/js/dist/common.js.map +0 -1
  39. package/js/dist/cooldropdown.js +0 -467
  40. package/js/dist/cooldropdown.js.map +0 -1
  41. package/js/dist/coolpopover.js +0 -391
  42. package/js/dist/coolpopover.js.map +0 -1
  43. package/js/dist/coolsectiontabs.js +0 -256
  44. package/js/dist/coolsectiontabs.js.map +0 -1
  45. package/js/dist/coolselect.js +0 -796
  46. package/js/dist/coolselect.js.map +0 -1
  47. package/js/dist/cooltooltip.js +0 -360
  48. package/js/dist/cooltooltip.js.map +0 -1
  49. package/js/dist/coolui.js +0 -73
  50. package/js/dist/coolui.js.map +0 -1
  51. package/js/dist/dropdown.js +0 -27421
  52. package/js/dist/dropdown.js.map +0 -1
  53. package/js/dist/popover.js +0 -9298
  54. package/js/dist/popover.js.map +0 -1
  55. package/js/dist/sectiontabs.js +0 -4483
  56. package/js/dist/sectiontabs.js.map +0 -1
  57. package/js/dist/select.js +0 -37052
  58. package/js/dist/select.js.map +0 -1
  59. package/js/dist/tooltip.js +0 -8786
  60. package/js/dist/tooltip.js.map +0 -1
  61. package/js/index.esm.js +0 -21
  62. package/js/index.umd.js +0 -21
  63. package/js/src/abstract-ui-component.js +0 -81
  64. package/js/src/collapse.js +0 -272
  65. package/js/src/common.js +0 -313
  66. package/js/src/dialog.js +0 -578
  67. package/js/src/dropdown.js +0 -525
  68. package/js/src/popover.js +0 -621
  69. package/js/src/section-tabs.js +0 -215
  70. package/js/src/select.js +0 -1341
  71. package/js/src/toast.js +0 -581
  72. package/js/src/tooltip.js +0 -591
  73. package/js/src/util/animate-css.js +0 -22
  74. package/js/src/util/index.js +0 -122
  75. package/js/src/util/perfect-scrollbar.js +0 -1316
  76. package/less/alert.less +0 -345
  77. package/less/badge.less +0 -38
  78. package/less/bootstrap-noconflict.less +0 -23
  79. package/less/bootstrap.less +0 -23
  80. package/less/button-group.less +0 -153
  81. package/less/buttons.less +0 -287
  82. package/less/dialog-noconflict.less +0 -174
  83. package/less/dialog.less +0 -203
  84. package/less/dropdown.less +0 -209
  85. package/less/forms.less +0 -770
  86. package/less/images.less +0 -242
  87. package/less/input-group.less +0 -163
  88. package/less/list-group.less +0 -73
  89. package/less/mixins/aspect-ratio.less +0 -23
  90. package/less/mixins/border-radius.less +0 -24
  91. package/less/mixins/box-shadow.less +0 -4
  92. package/less/mixins/buttons.less +0 -17
  93. package/less/mixins/caret.less +0 -51
  94. package/less/mixins/clearfix.less +0 -10
  95. package/less/mixins/gradients.less +0 -34
  96. package/less/mixins/nav-divider.less +0 -7
  97. package/less/mixins/object-fit.less +0 -13
  98. package/less/mixins/reset-text.less +0 -16
  99. package/less/mixins.less +0 -11
  100. package/less/package.json +0 -11
  101. package/less/pagination.less +0 -69
  102. package/less/popover.less +0 -143
  103. package/less/project.sublime-workspace +0 -774
  104. package/less/reboot.less +0 -235
  105. package/less/section.less +0 -793
  106. package/less/select.less +0 -150
  107. package/less/tables.less +0 -737
  108. package/less/tabs.less +0 -162
  109. package/less/tooltip.less +0 -87
  110. package/less/type.less +0 -71
  111. package/less/utilities/align.less +0 -27
  112. package/less/utilities/animate.less +0 -3512
  113. package/less/utilities/background.less +0 -70
  114. package/less/utilities/borders.less +0 -16
  115. package/less/utilities/color.less +0 -70
  116. package/less/utilities/cursor.less +0 -8
  117. package/less/utilities/display.less +0 -38
  118. package/less/utilities/embed.less +0 -61
  119. package/less/utilities/flex.less +0 -76
  120. package/less/utilities/jquery-ui.less +0 -116
  121. package/less/utilities/lazyload.less +0 -29
  122. package/less/utilities/overflow.less +0 -11
  123. package/less/utilities/pace.less +0 -25
  124. package/less/utilities/placeholder.less +0 -60
  125. package/less/utilities/position.less +0 -42
  126. package/less/utilities/scrollbar.less +0 -152
  127. package/less/utilities/spacing.less +0 -197
  128. package/less/utilities/text.less +0 -68
  129. package/less/utilities/transform.less +0 -7
  130. package/less/utilities.less +0 -21
  131. package/less/variables.less +0 -343
  132. package/scss/LISENCE +0 -15
  133. package/scss/_alert.scss +0 -106
  134. package/scss/_badge.scss +0 -71
  135. package/scss/_button-group.scss +0 -129
  136. package/scss/_buttons.scss +0 -207
  137. package/scss/_custom-forms.scss +0 -429
  138. package/scss/_dialog.scss +0 -161
  139. package/scss/_dropdown.scss +0 -231
  140. package/scss/_forms.scss +0 -257
  141. package/scss/_frame.scss +0 -548
  142. package/scss/_functions.scss +0 -124
  143. package/scss/_grid.scss +0 -35
  144. package/scss/_images.scss +0 -362
  145. package/scss/_input-group.scss +0 -271
  146. package/scss/_list-group.scss +0 -82
  147. package/scss/_mixins.scss +0 -34
  148. package/scss/_navbar.scss +0 -264
  149. package/scss/_notification.scss +0 -13
  150. package/scss/_pagination.scss +0 -79
  151. package/scss/_popover.scss +0 -165
  152. package/scss/_reboot.scss +0 -283
  153. package/scss/_root.scss +0 -15
  154. package/scss/_section.scss +0 -912
  155. package/scss/_select.scss +0 -175
  156. package/scss/_tables.scss +0 -716
  157. package/scss/_tabs.scss +0 -175
  158. package/scss/_toast.scss +0 -182
  159. package/scss/_tooltip.scss +0 -101
  160. package/scss/_type.scss +0 -121
  161. package/scss/_utilities.scss +0 -23
  162. package/scss/_variables.scss +0 -699
  163. package/scss/cool-grid.scss +0 -29
  164. package/scss/cool-reboot.scss +0 -11
  165. package/scss/cool.scss +0 -37
  166. package/scss/mixins/_alert-variant.scss +0 -25
  167. package/scss/mixins/_aspect-ratio.scss +0 -29
  168. package/scss/mixins/_background-variant.scss +0 -25
  169. package/scss/mixins/_badge-variant.scss +0 -36
  170. package/scss/mixins/_breakpoints.scss +0 -102
  171. package/scss/mixins/_buttons.scss +0 -104
  172. package/scss/mixins/_caret.scss +0 -80
  173. package/scss/mixins/_clearfix.scss +0 -10
  174. package/scss/mixins/_float.scss +0 -14
  175. package/scss/mixins/_forms.scss +0 -67
  176. package/scss/mixins/_gradients.scss +0 -40
  177. package/scss/mixins/_grid-framework.scss +0 -72
  178. package/scss/mixins/_grid.scss +0 -60
  179. package/scss/mixins/_nav-divider.scss +0 -9
  180. package/scss/mixins/_notification-variant.scss +0 -7
  181. package/scss/mixins/_object-fit.scss +0 -16
  182. package/scss/mixins/_reset-text.scss +0 -19
  183. package/scss/mixins/_text-emphasis.scss +0 -21
  184. package/scss/mixins/_text-hide.scss +0 -10
  185. package/scss/mixins/_text-truncate.scss +0 -81
  186. package/scss/mixins/_visibility.scss +0 -7
  187. package/scss/project.sublime-workspace +0 -491
  188. package/scss/utilities/_align.scss +0 -41
  189. package/scss/utilities/_animate.scss +0 -3512
  190. package/scss/utilities/_background.scss +0 -14
  191. package/scss/utilities/_borders.scss +0 -146
  192. package/scss/utilities/_clearfix.scss +0 -6
  193. package/scss/utilities/_collapse.scss +0 -33
  194. package/scss/utilities/_cursor.scss +0 -22
  195. package/scss/utilities/_display.scss +0 -16
  196. package/scss/utilities/_embed.scss +0 -78
  197. package/scss/utilities/_flex.scss +0 -52
  198. package/scss/utilities/_lazyload.scss +0 -31
  199. package/scss/utilities/_overflow.scss +0 -6
  200. package/scss/utilities/_perfect-scrollbar.scss +0 -141
  201. package/scss/utilities/_placeholder.scss +0 -76
  202. package/scss/utilities/_position.scss +0 -30
  203. package/scss/utilities/_sizing.scss +0 -32
  204. package/scss/utilities/_spacing.scss +0 -92
  205. package/scss/utilities/_text.scss +0 -99
  206. package/scss/utilities/_user-select.scss +0 -14
  207. package/scss/utilities/_visibility.scss +0 -10
@@ -1,391 +0,0 @@
1
- /*!
2
- * Cool UI coolpopover.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.CoolPopover = 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 = 'coolPopover';
93
- const DATA_KEY = 'plugin_coolPopover';
94
-
95
- class CoolPopover extends AbstractUIComponent {
96
- constructor(element, config) {
97
- super();
98
- this.el = element;
99
- this.opts = jQuery.extend({}, jQuery.fn[NAME].defaults, config);
100
- this.init();
101
- } // Init plugin
102
-
103
-
104
- init() {
105
- this.buildCache();
106
- this.bindEvents();
107
- this.onCreate();
108
- } // Remove plugin instance completely
109
-
110
-
111
- destroy() {
112
- this.unbindEvents();
113
- this.$el.removeData();
114
- this.onDestroy();
115
- } // Update plugin data
116
-
117
-
118
- update() {
119
- this.buildCache();
120
- this.onUpdate();
121
- } // Cache DOM nodes for performance
122
-
123
-
124
- buildCache() {
125
- this.$el = jQuery(this.el);
126
- this.$container = this.$el.data('container') ? jQuery(this.$el.data('container')) : jQuery(this.opts.container);
127
- this.id = 'popover-' + this.generateUUID();
128
- this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;
129
- this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;
130
- this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;
131
- this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;
132
- this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;
133
- this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;
134
- this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;
135
- this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;
136
- this.template = this.$el.data('template') ? this.$el.data('template') : this.opts.template;
137
- this.templateAttrs = this.$el.data('templateAttrs') ? this.$el.data('templateAttrs') : this.opts.templateAttrs;
138
- } // Bind events that trigger methods
139
-
140
-
141
- bindEvents() {
142
- if (this.trigger === 'click') {
143
- this.$el.on('click' + '.' + NAME, () => {
144
- if (this.$popover) {
145
- this.close();
146
- } else {
147
- this.show();
148
- }
149
- });
150
- } else if (this.trigger === 'hover') {
151
- this.$el.on('mouseenter' + '.' + NAME, () => {
152
- this.show();
153
- });
154
- this.$el.on('mouseleave' + '.' + NAME, () => {
155
- this.close();
156
- });
157
- } else if (this.trigger === 'focus') {
158
- this.$el.on('focusin' + '.' + NAME, () => {
159
- this.show();
160
- });
161
- this.$el.on('focusout' + '.' + NAME, () => {
162
- this.close();
163
- });
164
- }
165
-
166
- jQuery(window).on('resize', debounce(() => {
167
- if (this.$popover) {
168
- this.setPosition();
169
- this.onUpdate();
170
- }
171
- }, 250));
172
- } // Unbind events that trigger methods
173
-
174
-
175
- unbindEvents() {
176
- this.$el.off('.' + NAME);
177
- } // Generate UUID
178
-
179
-
180
- generateUUID() {
181
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
182
- var r = Math.random() * 16 | 0,
183
- v = c == 'x' ? r : r & 0x3 | 0x8;
184
- return v.toString(16);
185
- });
186
- } // Build popover
187
-
188
-
189
- buildPopover() {
190
- let content = this.content;
191
-
192
- if (typeof this.opts.template === 'function') {
193
- content = this.opts.template();
194
- }
195
-
196
- this.$popover = jQuery(`
197
- <div class="popover popover-${this.placement}" role="tooltip" id="${this.id}">
198
-
199
- <div class="arrow"></div>
200
-
201
- <h3 class="popover-header">${this.title}</h3>
202
-
203
- <div class="popover-body">${content}</div>
204
-
205
- </div>
206
- `);
207
- this.$container.append(this.$popover);
208
- this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;
209
- this.debug(this.$el);
210
- this.debug(this.$container);
211
- this.debug(this.$popover);
212
- this.debug(this.$arrow);
213
- this.debug('Id: ' + this.id);
214
- this.debug('Trigger: ' + this.trigger);
215
- this.debug('Placement: ' + this.placement);
216
- this.debug('Animation: ' + this.animation);
217
- this.debug('Animation in: ' + this.animationIn);
218
- this.debug('Animation out: ' + this.animationOut);
219
- this.debug('Animation speed: ' + this.animationSpeed);
220
- this.debug('Title: ' + this.title);
221
- this.debug('Content: ' + this.content);
222
- this.debug('Template: ' + this.template);
223
- this.debug(this.templateAttrs);
224
- } // Set positions
225
-
226
-
227
- setPosition(placement) {
228
- if (typeof str === 'undefined' || str === null) {
229
- placement = this.placement;
230
- }
231
-
232
- var popoverWidth = this.$popover.outerWidth(true);
233
- var popoverHeight = this.$popover.outerHeight(true);
234
- var popoverTriggerWidth = this.$el.outerWidth();
235
- var popoverTriggerHeight = this.$el.outerHeight();
236
- var popoverTriggerPosX = this.$el.position().left;
237
- var popoverTriggerPosY = this.$el.position().top;
238
- var arrowWidth = this.$arrow.outerWidth(true);
239
- var arrowHeight = this.$arrow.outerHeight(true);
240
-
241
- if (placement === 'top') {
242
- var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;
243
- var popoverPosY = popoverTriggerPosY - popoverHeight;
244
- var arrowPos = popoverWidth / 2 - arrowWidth / 2;
245
- this.$arrow.css({
246
- left: arrowPos + 'px'
247
- });
248
- } else if (placement === 'right') {
249
- var popoverPosX = popoverTriggerPosX + popoverTriggerWidth;
250
- var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;
251
- var arrowPos = popoverHeight / 2 - arrowHeight / 2;
252
- this.$arrow.css({
253
- top: arrowPos + 'px'
254
- });
255
- } else if (placement === 'bottom') {
256
- var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;
257
- var popoverPosY = popoverTriggerPosY + popoverTriggerHeight;
258
- var arrowPos = popoverWidth / 2 - arrowWidth / 2;
259
- this.$arrow.css({
260
- left: arrowPos + 'px'
261
- });
262
- } else if (placement === 'left') {
263
- var popoverPosX = popoverTriggerPosX - popoverWidth;
264
- var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;
265
- var arrowPos = popoverHeight / 2 - arrowHeight / 2;
266
- this.$arrow.css({
267
- top: arrowPos + 'px'
268
- });
269
- }
270
-
271
- this.$popover.css({
272
- position: 'absolute',
273
- top: '0px',
274
- left: '0px',
275
- transform: 'translate3d(' + popoverPosX + 'px, ' + popoverPosY + 'px, 0px)',
276
- 'will-change': 'transform'
277
- });
278
- this.debug('Popover trigger width: ' + popoverTriggerWidth + 'px');
279
- this.debug('Popover trigger height: ' + popoverTriggerHeight + 'px');
280
- this.debug('popover trigger position x: ' + popoverTriggerPosX + 'px');
281
- this.debug('Popover trigger position Y: ' + popoverTriggerPosY + 'px');
282
- this.debug('Popover width: ' + popoverWidth + 'px');
283
- this.debug('Popover height: ' + popoverHeight + 'px');
284
- this.debug('Popover position x: ' + popoverPosX + 'px');
285
- this.debug('Popover position y: ' + popoverPosY + 'px');
286
- } // Show
287
-
288
-
289
- show() {
290
- if (this.$popover) {
291
- return;
292
- }
293
-
294
- this.buildPopover();
295
- this.setPosition();
296
-
297
- if (this.animation) {
298
- this.$popover.addClass(this.animationSpeed);
299
- this.$popover.animateCss(this.animationIn);
300
- this.$popover.addClass('show');
301
- this.$popover.attr('id', this.id);
302
- this.$el.attr('data-popover', this.id);
303
- } else {
304
- this.$popover.addClass('show');
305
- this.$popover.attr('id', this.id);
306
- this.$el.attr('data-popover', this.id);
307
- }
308
-
309
- this.onShow();
310
- } // Close
311
-
312
-
313
- close() {
314
- if (!this.$popover) {
315
- return;
316
- }
317
-
318
- if (this.animation && !this.$popover.hasClass('animated')) {
319
- this.$popover.animateCss(this.animationOut, () => {
320
- this.$popover.remove();
321
- this.$el.removeAttr('data-popover');
322
- this.$popover = false;
323
- this.onClose();
324
- });
325
- } else {
326
- this.$popover.remove();
327
- this.$el.removeAttr('data-popover');
328
- this.$popover = false;
329
- this.onClose();
330
- }
331
- }
332
-
333
- static _jQueryInterface(config) {
334
- return this.each(function () {
335
- let data = jQuery(this).data(DATA_KEY);
336
-
337
- const _config = typeof config === 'object' && config;
338
-
339
- if (!data) {
340
- data = new CoolPopover(this, _config);
341
- jQuery(this).data(DATA_KEY, data);
342
- }
343
-
344
- if (typeof config === 'string') {
345
- if (typeof data[config] === 'undefined') {
346
- throw new TypeError(`No method named "${config}"`);
347
- }
348
-
349
- data[config]();
350
- }
351
- });
352
- }
353
-
354
- }
355
-
356
- if (typeof jQuery !== 'undefined') {
357
- // jQuery
358
- const JQUERY_NO_CONFLICT = jQuery.fn[NAME];
359
- jQuery.fn[NAME] = CoolPopover._jQueryInterface;
360
- jQuery.fn[NAME].Constructor = CoolPopover;
361
-
362
- jQuery.fn[NAME].noConflict = () => {
363
- jQuery.fn[NAME] = JQUERY_NO_CONFLICT;
364
- return CoolPopover._jQueryInterface;
365
- };
366
-
367
- jQuery.fn[NAME].defaults = {
368
- container: 'body',
369
- trigger: 'focus',
370
- placement: 'bottom',
371
- animation: true,
372
- animationIn: 'fadeIn',
373
- animationOut: 'fadeOut',
374
- animationSpeed: 'fastest',
375
- title: '',
376
- content: '',
377
- template: false,
378
- templateAttrs: {},
379
- onCreate: null,
380
- onUpdate: null,
381
- onDestroy: null,
382
- onShow: null,
383
- onClose: null,
384
- debug: false
385
- };
386
- }
387
-
388
- return CoolPopover;
389
-
390
- }));
391
- //# sourceMappingURL=coolpopover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coolpopover.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/popover.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 = 'coolPopover';\nconst DATA_KEY = 'plugin_coolPopover';\n\nclass CoolPopover extends AbstractUIComponent {\n\n constructor(element, config) {\n super();\n\n this.el = element;\n this.opts = $.extend({}, $.fn[NAME].defaults, config);\n this.init();\n }\n\n // Init plugin\n init() {\n this.buildCache();\n this.bindEvents();\n this.onCreate();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData();\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'popover-'+this.generateUUID();\n this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.template = this.$el.data('template') ? this.$el.data('template') : this.opts.template;\n this.templateAttrs = this.$el.data('templateAttrs') ? this.$el.data('templateAttrs') : this.opts.templateAttrs;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n if (this.trigger === 'click') {\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n\n } else if (this.trigger === 'hover') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n } else if (this.trigger === 'focus') {\n\n this.$el.on('focusin'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('focusout'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(window).on('resize', debounce(() => {\n\n if (this.$popover) {\n this.setPosition();\n this.onUpdate();\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Build popover\n buildPopover() {\n \tlet content = this.content;\n\n \tif (typeof this.opts.template === 'function') {\n \t\tcontent = this.opts.template();\n \t}\n\n \tthis.$popover = $(`\n \t\t<div class=\"popover popover-${this.placement}\" role=\"tooltip\" id=\"${this.id}\">\n\n\t\t\t <div class=\"arrow\"></div>\n\n\t\t\t <h3 class=\"popover-header\">${this.title}</h3>\n\n\t\t\t <div class=\"popover-body\">${content}</div>\n\n\t\t\t</div>\n \t`);\n\n this.$container.append(this.$popover);\n this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;\n\n this.debug(this.$el);\n this.debug(this.$container);\n this.debug(this.$popover);\n this.debug(this.$arrow);\n this.debug('Id: '+this.id);\n this.debug('Trigger: '+this.trigger);\n this.debug('Placement: '+this.placement);\n this.debug('Animation: '+this.animation);\n this.debug('Animation in: '+this.animationIn);\n this.debug('Animation out: '+this.animationOut);\n this.debug('Animation speed: '+this.animationSpeed);\n this.debug('Title: '+this.title);\n this.debug('Content: '+this.content);\n this.debug('Template: '+this.template);\n this.debug(this.templateAttrs);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n var popoverWidth = this.$popover.outerWidth(true);\n var popoverHeight = this.$popover.outerHeight(true);\n var popoverTriggerWidth = this.$el.outerWidth();\n var popoverTriggerHeight = this.$el.outerHeight();\n var popoverTriggerPosX = this.$el.position().left;\n var popoverTriggerPosY = this.$el.position().top;\n var arrowWidth = this.$arrow.outerWidth(true);\n var arrowHeight = this.$arrow.outerHeight(true);\n\n if (placement === 'top') {\n\n var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;\n var popoverPosY = popoverTriggerPosY - popoverHeight;\n var arrowPos = popoverWidth / 2 - arrowWidth / 2;\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n var popoverPosX = popoverTriggerPosX + popoverTriggerWidth;\n var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;\n var arrowPos = popoverHeight / 2 - arrowHeight / 2;\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n var popoverPosX = popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2;\n var popoverPosY = popoverTriggerPosY + popoverTriggerHeight;\n var arrowPos = popoverWidth / 2 - arrowWidth / 2;\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n var popoverPosX = popoverTriggerPosX - popoverWidth;\n var popoverPosY = popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2;\n var arrowPos = popoverHeight / 2 - arrowHeight / 2;\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.debug('Popover trigger width: '+popoverTriggerWidth+'px');\n this.debug('Popover trigger height: '+popoverTriggerHeight+'px');\n this.debug('popover trigger position x: '+popoverTriggerPosX+'px');\n this.debug('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.debug('Popover width: '+popoverWidth+'px');\n this.debug('Popover height: '+popoverHeight+'px');\n this.debug('Popover position x: '+popoverPosX+'px');\n this.debug('Popover position y: '+popoverPosY+'px');\n }\n\n // Show\n show() {\n\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n if (this.animation) {\n\n this.$popover.addClass(this.animationSpeed);\n this.$popover.animateCss(this.animationIn);\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n\n } else {\n\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n if (!this.$popover) {\n return;\n }\n\n if (this.animation && !this.$popover.hasClass('animated')) {\n\n this.$popover.animateCss(this.animationOut, () => {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n \treturn this.each(function() {\n \t\tlet data = $(this).data(DATA_KEY);\n \t\tconst _config = typeof config === 'object' && config;\n\n \t\tif (!data) {\n \t\t\tdata = new CoolPopover(this, _config);\n \t\t\t$(this).data(DATA_KEY, data);\n \t\t}\n\n \t\tif (typeof config === 'string') {\n \t\t\tif (typeof data[config] === 'undefined') {\n\t\t \tthrow new TypeError(`No method named \"${config}\"`)\n\t\t }\n\n\t\t data[config]()\n \t\t}\n\t });\n }\n}\n\nif (typeof $ !== 'undefined') {\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n $.fn[NAME] = CoolPopover._jQueryInterface;\n $.fn[NAME].Constructor = CoolPopover;\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CoolPopover._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n container: 'body',\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n template: false,\n templateAttrs: {},\n onCreate: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n };\n\n}\n\nexport default CoolPopover;"],"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","CoolPopover","constructor","element","config","$","extend","fn","defaults","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$container","data","container","id","generateUUID","trigger","placement","animation","animationIn","animationOut","animationSpeed","title","content","template","templateAttrs","on","$popover","close","show","setPosition","off","replace","c","r","Math","random","v","toString","buildPopover","append","$arrow","find","str","popoverWidth","outerWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","left","popoverTriggerPosY","top","arrowWidth","arrowHeight","popoverPosX","popoverPosY","arrowPos","css","transform","addClass","animateCss","attr","hasClass","remove","removeAttr","_jQueryInterface","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}