@finqu/cool 1.2.29 → 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 (206) hide show
  1. package/README.md +680 -1
  2. package/dist/css/cool.css +23575 -16644
  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 +15402 -3800
  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 +4269 -3360
  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 +4271 -3362
  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 -4390
  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 -286
  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/index.html +0 -2703
  34. package/js/dist/collapse.js +0 -5535
  35. package/js/dist/collapse.js.map +0 -1
  36. package/js/dist/common.js +0 -21996
  37. package/js/dist/common.js.map +0 -1
  38. package/js/dist/cooldropdown.js +0 -467
  39. package/js/dist/cooldropdown.js.map +0 -1
  40. package/js/dist/coolpopover.js +0 -391
  41. package/js/dist/coolpopover.js.map +0 -1
  42. package/js/dist/coolsectiontabs.js +0 -256
  43. package/js/dist/coolsectiontabs.js.map +0 -1
  44. package/js/dist/coolselect.js +0 -796
  45. package/js/dist/coolselect.js.map +0 -1
  46. package/js/dist/cooltooltip.js +0 -360
  47. package/js/dist/cooltooltip.js.map +0 -1
  48. package/js/dist/coolui.js +0 -73
  49. package/js/dist/coolui.js.map +0 -1
  50. package/js/dist/dropdown.js +0 -27421
  51. package/js/dist/dropdown.js.map +0 -1
  52. package/js/dist/popover.js +0 -9472
  53. package/js/dist/popover.js.map +0 -1
  54. package/js/dist/sectiontabs.js +0 -4483
  55. package/js/dist/sectiontabs.js.map +0 -1
  56. package/js/dist/select.js +0 -37080
  57. package/js/dist/select.js.map +0 -1
  58. package/js/dist/tooltip.js +0 -8786
  59. package/js/dist/tooltip.js.map +0 -1
  60. package/js/index.esm.js +0 -21
  61. package/js/index.umd.js +0 -21
  62. package/js/src/abstract-ui-component.js +0 -81
  63. package/js/src/collapse.js +0 -286
  64. package/js/src/common.js +0 -296
  65. package/js/src/dialog.js +0 -579
  66. package/js/src/dropdown.js +0 -525
  67. package/js/src/popover.js +0 -632
  68. package/js/src/section-tabs.js +0 -215
  69. package/js/src/select.js +0 -1342
  70. package/js/src/toast.js +0 -581
  71. package/js/src/tooltip.js +0 -591
  72. package/js/src/util/animate-css.js +0 -22
  73. package/js/src/util/index.js +0 -122
  74. package/js/src/util/perfect-scrollbar.js +0 -1316
  75. package/less/alert.less +0 -345
  76. package/less/badge.less +0 -38
  77. package/less/bootstrap-noconflict.less +0 -23
  78. package/less/bootstrap.less +0 -23
  79. package/less/button-group.less +0 -153
  80. package/less/buttons.less +0 -287
  81. package/less/dialog-noconflict.less +0 -174
  82. package/less/dialog.less +0 -203
  83. package/less/dropdown.less +0 -209
  84. package/less/forms.less +0 -770
  85. package/less/images.less +0 -242
  86. package/less/input-group.less +0 -163
  87. package/less/list-group.less +0 -73
  88. package/less/mixins/aspect-ratio.less +0 -23
  89. package/less/mixins/border-radius.less +0 -24
  90. package/less/mixins/box-shadow.less +0 -4
  91. package/less/mixins/buttons.less +0 -17
  92. package/less/mixins/caret.less +0 -51
  93. package/less/mixins/clearfix.less +0 -10
  94. package/less/mixins/gradients.less +0 -34
  95. package/less/mixins/nav-divider.less +0 -7
  96. package/less/mixins/object-fit.less +0 -13
  97. package/less/mixins/reset-text.less +0 -16
  98. package/less/mixins.less +0 -11
  99. package/less/package.json +0 -11
  100. package/less/pagination.less +0 -69
  101. package/less/popover.less +0 -143
  102. package/less/project.sublime-workspace +0 -774
  103. package/less/reboot.less +0 -235
  104. package/less/section.less +0 -793
  105. package/less/select.less +0 -150
  106. package/less/tables.less +0 -737
  107. package/less/tabs.less +0 -162
  108. package/less/tooltip.less +0 -87
  109. package/less/type.less +0 -71
  110. package/less/utilities/align.less +0 -27
  111. package/less/utilities/animate.less +0 -3512
  112. package/less/utilities/background.less +0 -70
  113. package/less/utilities/borders.less +0 -16
  114. package/less/utilities/color.less +0 -70
  115. package/less/utilities/cursor.less +0 -8
  116. package/less/utilities/display.less +0 -38
  117. package/less/utilities/embed.less +0 -61
  118. package/less/utilities/flex.less +0 -76
  119. package/less/utilities/jquery-ui.less +0 -116
  120. package/less/utilities/lazyload.less +0 -29
  121. package/less/utilities/overflow.less +0 -11
  122. package/less/utilities/pace.less +0 -25
  123. package/less/utilities/placeholder.less +0 -60
  124. package/less/utilities/position.less +0 -42
  125. package/less/utilities/scrollbar.less +0 -152
  126. package/less/utilities/spacing.less +0 -197
  127. package/less/utilities/text.less +0 -68
  128. package/less/utilities/transform.less +0 -7
  129. package/less/utilities.less +0 -21
  130. package/less/variables.less +0 -343
  131. package/scss/LISENCE +0 -15
  132. package/scss/_alert.scss +0 -102
  133. package/scss/_badge.scss +0 -102
  134. package/scss/_button-group.scss +0 -129
  135. package/scss/_buttons.scss +0 -248
  136. package/scss/_custom-forms.scss +0 -444
  137. package/scss/_dialog.scss +0 -160
  138. package/scss/_dropdown.scss +0 -233
  139. package/scss/_forms.scss +0 -258
  140. package/scss/_frame.scss +0 -627
  141. package/scss/_functions.scss +0 -124
  142. package/scss/_grid.scss +0 -35
  143. package/scss/_images.scss +0 -361
  144. package/scss/_input-group.scss +0 -285
  145. package/scss/_list-group.scss +0 -82
  146. package/scss/_mixins.scss +0 -34
  147. package/scss/_navbar.scss +0 -290
  148. package/scss/_notification.scss +0 -13
  149. package/scss/_pagination.scss +0 -88
  150. package/scss/_popover.scss +0 -167
  151. package/scss/_reboot.scss +0 -284
  152. package/scss/_root.scss +0 -15
  153. package/scss/_section.scss +0 -977
  154. package/scss/_select.scss +0 -187
  155. package/scss/_tables.scss +0 -735
  156. package/scss/_tabs.scss +0 -178
  157. package/scss/_toast.scss +0 -182
  158. package/scss/_tooltip.scss +0 -101
  159. package/scss/_type.scss +0 -129
  160. package/scss/_utilities.scss +0 -23
  161. package/scss/_variables.scss +0 -823
  162. package/scss/cool-grid.scss +0 -29
  163. package/scss/cool-reboot.scss +0 -11
  164. package/scss/cool.scss +0 -37
  165. package/scss/mixins/_alert-variant.scss +0 -20
  166. package/scss/mixins/_aspect-ratio.scss +0 -29
  167. package/scss/mixins/_background-variant.scss +0 -25
  168. package/scss/mixins/_badge-variant.scss +0 -36
  169. package/scss/mixins/_breakpoints.scss +0 -102
  170. package/scss/mixins/_buttons.scss +0 -104
  171. package/scss/mixins/_caret.scss +0 -80
  172. package/scss/mixins/_clearfix.scss +0 -10
  173. package/scss/mixins/_float.scss +0 -14
  174. package/scss/mixins/_forms.scss +0 -67
  175. package/scss/mixins/_gradients.scss +0 -40
  176. package/scss/mixins/_grid-framework.scss +0 -72
  177. package/scss/mixins/_grid.scss +0 -60
  178. package/scss/mixins/_nav-divider.scss +0 -9
  179. package/scss/mixins/_notification-variant.scss +0 -7
  180. package/scss/mixins/_object-fit.scss +0 -16
  181. package/scss/mixins/_reset-text.scss +0 -19
  182. package/scss/mixins/_text-emphasis.scss +0 -21
  183. package/scss/mixins/_text-hide.scss +0 -10
  184. package/scss/mixins/_text-truncate.scss +0 -81
  185. package/scss/mixins/_visibility.scss +0 -7
  186. package/scss/project.sublime-workspace +0 -491
  187. package/scss/utilities/_align.scss +0 -41
  188. package/scss/utilities/_animate.scss +0 -3512
  189. package/scss/utilities/_background.scss +0 -14
  190. package/scss/utilities/_borders.scss +0 -146
  191. package/scss/utilities/_clearfix.scss +0 -6
  192. package/scss/utilities/_collapse.scss +0 -33
  193. package/scss/utilities/_cursor.scss +0 -22
  194. package/scss/utilities/_display.scss +0 -16
  195. package/scss/utilities/_embed.scss +0 -78
  196. package/scss/utilities/_flex.scss +0 -52
  197. package/scss/utilities/_lazyload.scss +0 -31
  198. package/scss/utilities/_overflow.scss +0 -6
  199. package/scss/utilities/_perfect-scrollbar.scss +0 -141
  200. package/scss/utilities/_placeholder.scss +0 -77
  201. package/scss/utilities/_position.scss +0 -30
  202. package/scss/utilities/_sizing.scss +0 -32
  203. package/scss/utilities/_spacing.scss +0 -92
  204. package/scss/utilities/_text.scss +0 -99
  205. package/scss/utilities/_user-select.scss +0 -14
  206. 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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"}