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