@finqu/cool 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +1 -0
  2. package/build/.eslintrc.json +10 -0
  3. package/build/banner.js +14 -0
  4. package/build/build-plugins.js +92 -0
  5. package/build/rollup.config.js +78 -0
  6. package/dist/css/cool-grid.css +3672 -0
  7. package/dist/css/cool-grid.css.map +30 -0
  8. package/dist/css/cool-grid.min.css +7 -0
  9. package/dist/css/cool-grid.min.css.map +1 -0
  10. package/dist/css/cool-reboot.css +281 -0
  11. package/dist/css/cool-reboot.css.map +58 -0
  12. package/dist/css/cool-reboot.min.css +7 -0
  13. package/dist/css/cool-reboot.min.css.map +1 -0
  14. package/dist/css/cool.css +14841 -0
  15. package/dist/css/cool.css.map +144 -0
  16. package/dist/css/cool.min.css +7 -0
  17. package/dist/css/cool.min.css.map +1 -0
  18. package/dist/js/cool.bundle.js +15304 -0
  19. package/dist/js/cool.bundle.js.map +1 -0
  20. package/dist/js/cool.bundle.min.js +45 -0
  21. package/dist/js/cool.bundle.min.js.map +1 -0
  22. package/dist/js/cool.esm.js +4766 -0
  23. package/dist/js/cool.esm.js.map +1 -0
  24. package/dist/js/cool.esm.min.js +7 -0
  25. package/dist/js/cool.esm.min.js.map +1 -0
  26. package/dist/js/cool.js +4948 -0
  27. package/dist/js/cool.js.map +1 -0
  28. package/dist/js/cool.min.js +7 -0
  29. package/dist/js/cool.min.js.map +1 -0
  30. package/html/index.html +892 -0
  31. package/js/dist/collapse.js +321 -0
  32. package/js/dist/collapse.js.map +1 -0
  33. package/js/dist/common.js +1474 -0
  34. package/js/dist/common.js.map +1 -0
  35. package/js/dist/cooldropdown.js +467 -0
  36. package/js/dist/cooldropdown.js.map +1 -0
  37. package/js/dist/coolpopover.js +391 -0
  38. package/js/dist/coolpopover.js.map +1 -0
  39. package/js/dist/coolsectiontabs.js +256 -0
  40. package/js/dist/coolsectiontabs.js.map +1 -0
  41. package/js/dist/coolselect.js +796 -0
  42. package/js/dist/coolselect.js.map +1 -0
  43. package/js/dist/cooltooltip.js +360 -0
  44. package/js/dist/cooltooltip.js.map +1 -0
  45. package/js/dist/coolui.js +73 -0
  46. package/js/dist/coolui.js.map +1 -0
  47. package/js/dist/dropdown.js +1716 -0
  48. package/js/dist/dropdown.js.map +1 -0
  49. package/js/dist/popover.js +587 -0
  50. package/js/dist/popover.js.map +1 -0
  51. package/js/dist/sectiontabs.js +263 -0
  52. package/js/dist/sectiontabs.js.map +1 -0
  53. package/js/dist/select.js +2029 -0
  54. package/js/dist/select.js.map +1 -0
  55. package/js/dist/tooltip.js +555 -0
  56. package/js/dist/tooltip.js.map +1 -0
  57. package/js/index.esm.js +21 -0
  58. package/js/index.umd.js +21 -0
  59. package/js/src/abstract-ui-component.js +70 -0
  60. package/js/src/collapse.js +258 -0
  61. package/js/src/common.js +280 -0
  62. package/js/src/dialog.js +570 -0
  63. package/js/src/dropdown.js +443 -0
  64. package/js/src/popover.js +615 -0
  65. package/js/src/section-tabs.js +204 -0
  66. package/js/src/select.js +832 -0
  67. package/js/src/toast.js +581 -0
  68. package/js/src/tooltip.js +575 -0
  69. package/js/src/util/animate-css.js +22 -0
  70. package/js/src/util/index.js +112 -0
  71. package/js/src/util/perfect-scrollbar.js +1316 -0
  72. package/less/alert.less +345 -0
  73. package/less/badge.less +38 -0
  74. package/less/bootstrap-noconflict.less +23 -0
  75. package/less/bootstrap.less +23 -0
  76. package/less/button-group.less +153 -0
  77. package/less/buttons.less +287 -0
  78. package/less/dialog-noconflict.less +174 -0
  79. package/less/dialog.less +203 -0
  80. package/less/dropdown.less +209 -0
  81. package/less/forms.less +770 -0
  82. package/less/images.less +242 -0
  83. package/less/input-group.less +163 -0
  84. package/less/list-group.less +73 -0
  85. package/less/mixins/aspect-ratio.less +23 -0
  86. package/less/mixins/border-radius.less +24 -0
  87. package/less/mixins/box-shadow.less +4 -0
  88. package/less/mixins/buttons.less +17 -0
  89. package/less/mixins/caret.less +51 -0
  90. package/less/mixins/clearfix.less +10 -0
  91. package/less/mixins/gradients.less +34 -0
  92. package/less/mixins/nav-divider.less +7 -0
  93. package/less/mixins/object-fit.less +13 -0
  94. package/less/mixins/reset-text.less +16 -0
  95. package/less/mixins.less +11 -0
  96. package/less/package.json +11 -0
  97. package/less/pagination.less +69 -0
  98. package/less/popover.less +143 -0
  99. package/less/project.sublime-workspace +774 -0
  100. package/less/reboot.less +235 -0
  101. package/less/section.less +793 -0
  102. package/less/select.less +150 -0
  103. package/less/tables.less +737 -0
  104. package/less/tabs.less +162 -0
  105. package/less/tooltip.less +87 -0
  106. package/less/type.less +71 -0
  107. package/less/utilities/align.less +27 -0
  108. package/less/utilities/animate.less +3512 -0
  109. package/less/utilities/background.less +70 -0
  110. package/less/utilities/borders.less +16 -0
  111. package/less/utilities/color.less +70 -0
  112. package/less/utilities/cursor.less +8 -0
  113. package/less/utilities/display.less +38 -0
  114. package/less/utilities/embed.less +61 -0
  115. package/less/utilities/flex.less +76 -0
  116. package/less/utilities/jquery-ui.less +116 -0
  117. package/less/utilities/lazyload.less +29 -0
  118. package/less/utilities/overflow.less +11 -0
  119. package/less/utilities/pace.less +25 -0
  120. package/less/utilities/placeholder.less +60 -0
  121. package/less/utilities/position.less +42 -0
  122. package/less/utilities/scrollbar.less +152 -0
  123. package/less/utilities/spacing.less +197 -0
  124. package/less/utilities/text.less +68 -0
  125. package/less/utilities/transform.less +7 -0
  126. package/less/utilities.less +21 -0
  127. package/less/variables.less +343 -0
  128. package/package.json +71 -0
  129. package/scss/LISENCE +15 -0
  130. package/scss/_alert.scss +125 -0
  131. package/scss/_badge.scss +58 -0
  132. package/scss/_button-group.scss +124 -0
  133. package/scss/_buttons.scss +206 -0
  134. package/scss/_custom-forms.scss +423 -0
  135. package/scss/_dialog.scss +149 -0
  136. package/scss/_dropdown.scss +234 -0
  137. package/scss/_forms.scss +257 -0
  138. package/scss/_frame.scss +523 -0
  139. package/scss/_functions.scss +114 -0
  140. package/scss/_grid.scss +35 -0
  141. package/scss/_images.scss +312 -0
  142. package/scss/_input-group.scss +245 -0
  143. package/scss/_list-group.scss +82 -0
  144. package/scss/_mixins.scss +32 -0
  145. package/scss/_navbar.scss +214 -0
  146. package/scss/_pagination.scss +79 -0
  147. package/scss/_popover.scss +165 -0
  148. package/scss/_reboot.scss +279 -0
  149. package/scss/_root.scss +15 -0
  150. package/scss/_section.scss +851 -0
  151. package/scss/_select.scss +166 -0
  152. package/scss/_tables.scss +707 -0
  153. package/scss/_tabs.scss +175 -0
  154. package/scss/_toast.scss +182 -0
  155. package/scss/_tooltip.scss +101 -0
  156. package/scss/_type.scss +90 -0
  157. package/scss/_utilities.scss +21 -0
  158. package/scss/_variables.scss +697 -0
  159. package/scss/cool-grid.scss +29 -0
  160. package/scss/cool-reboot.scss +11 -0
  161. package/scss/cool.scss +36 -0
  162. package/scss/mixins/_alert-variant.scss +40 -0
  163. package/scss/mixins/_aspect-ratio.scss +29 -0
  164. package/scss/mixins/_background-variant.scss +25 -0
  165. package/scss/mixins/_badge-variant.scss +13 -0
  166. package/scss/mixins/_breakpoints.scss +102 -0
  167. package/scss/mixins/_buttons.scss +104 -0
  168. package/scss/mixins/_caret.scss +80 -0
  169. package/scss/mixins/_clearfix.scss +10 -0
  170. package/scss/mixins/_float.scss +14 -0
  171. package/scss/mixins/_forms.scss +51 -0
  172. package/scss/mixins/_gradients.scss +40 -0
  173. package/scss/mixins/_grid-framework.scss +72 -0
  174. package/scss/mixins/_grid.scss +60 -0
  175. package/scss/mixins/_nav-divider.scss +9 -0
  176. package/scss/mixins/_object-fit.scss +16 -0
  177. package/scss/mixins/_reset-text.scss +19 -0
  178. package/scss/mixins/_text-emphasis.scss +21 -0
  179. package/scss/mixins/_text-hide.scss +10 -0
  180. package/scss/mixins/_text-truncate.scss +8 -0
  181. package/scss/project.sublime-workspace +491 -0
  182. package/scss/utilities/_align.scss +41 -0
  183. package/scss/utilities/_animate.scss +3512 -0
  184. package/scss/utilities/_background.scss +14 -0
  185. package/scss/utilities/_borders.scss +146 -0
  186. package/scss/utilities/_clearfix.scss +6 -0
  187. package/scss/utilities/_collapse.scss +33 -0
  188. package/scss/utilities/_cursor.scss +10 -0
  189. package/scss/utilities/_display.scss +16 -0
  190. package/scss/utilities/_embed.scss +78 -0
  191. package/scss/utilities/_flex.scss +50 -0
  192. package/scss/utilities/_lazyload.scss +31 -0
  193. package/scss/utilities/_overflow.scss +6 -0
  194. package/scss/utilities/_perfect-scrollbar.scss +154 -0
  195. package/scss/utilities/_placeholder.scss +76 -0
  196. package/scss/utilities/_position.scss +30 -0
  197. package/scss/utilities/_sizing.scss +32 -0
  198. package/scss/utilities/_spacing.scss +92 -0
  199. package/scss/utilities/_text.scss +97 -0
@@ -0,0 +1,321 @@
1
+ /*!
2
+ * Cool UI collapse.js v1.0.0 (https://finqu.fi)
3
+ * Copyright 2011-2019 Finqu Oy
4
+ * Licensed under the ISC license - (http://opensource.org/licenses/ISC)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
+ typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
+ (global = global || self, global.Collapse = factory());
10
+ }(this, function () { 'use strict';
11
+
12
+ const debounce = function (func, wait, immediate) {
13
+ let timeout;
14
+ return function () {
15
+ let context = this;
16
+ let args = arguments;
17
+
18
+ let later = function () {
19
+ timeout = null;
20
+
21
+ if (!immediate) {
22
+ func.apply(context, args);
23
+ }
24
+ };
25
+
26
+ let callNow = immediate && !timeout;
27
+ clearTimeout(timeout);
28
+ timeout = setTimeout(later, wait);
29
+
30
+ if (callNow) {
31
+ func.apply(context, args);
32
+ }
33
+ };
34
+ };
35
+
36
+ class AbstractUIComponent {
37
+ // Init callback
38
+ onInit() {
39
+ let onInit = this.opts.onInit;
40
+
41
+ if (typeof onInit === 'function') {
42
+ onInit.call(this.el);
43
+ }
44
+ } // Update callback
45
+
46
+
47
+ onUpdate() {
48
+ let onUpdate = this.opts.onUpdate;
49
+
50
+ if (typeof onUpdate === 'function') {
51
+ onUpdate.call(this.el);
52
+ }
53
+ } // Destroy callback
54
+
55
+
56
+ onDestroy() {
57
+ let onDestroy = this.opts.onDestroy;
58
+
59
+ if (typeof onDestroy === 'function') {
60
+ onDestroy.call(this.el);
61
+ }
62
+ } // Show callback
63
+
64
+
65
+ onShow() {
66
+ let onShow = this.opts.onShow;
67
+
68
+ if (typeof onShow === 'function') {
69
+ onShow.call(this.el);
70
+ }
71
+ } // Close callback
72
+
73
+
74
+ onClose() {
75
+ let onClose = this.opts.onClose;
76
+
77
+ if (typeof onClose === 'function') {
78
+ onClose.call(this.el);
79
+ }
80
+ } // Debug log
81
+
82
+
83
+ log(...args) {
84
+ if (this.debug) {
85
+ if (typeof this.debug === 'function') {
86
+ this.debug(...args);
87
+ } else {
88
+ console.log(...args);
89
+ }
90
+ }
91
+ }
92
+
93
+ }
94
+
95
+ const NAME = 'coolCollapse';
96
+ const DATA_KEY = 'plugin_coolCollapse';
97
+
98
+ class Collapse extends AbstractUIComponent {
99
+ constructor(el, opts) {
100
+ super();
101
+ this.opts = {};
102
+
103
+ if (window.Cool.settings.collapse) {
104
+ $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dialog, opts);
105
+ } else {
106
+ $.extend(true, this.opts, $.fn[NAME].defaults, opts);
107
+ }
108
+
109
+ this.el = el;
110
+ this.debug = this.opts.debug;
111
+ this.init();
112
+ } // Init plugin
113
+
114
+
115
+ init() {
116
+ this.buildCache();
117
+ this.bindEvents();
118
+ this.onInit();
119
+ } // Remove plugin instance completely
120
+
121
+
122
+ destroy() {
123
+ this.unbindEvents();
124
+ this.$el.removeData(DATA_KEY);
125
+ this.onDestroy();
126
+ } // Update plugin data
127
+
128
+
129
+ update() {
130
+ this.buildCache();
131
+ this.onUpdate();
132
+ } // Cache DOM nodes for performance
133
+
134
+
135
+ buildCache() {
136
+ this.$el = $(this.el);
137
+ this.$target = this.$el.data('target') ? $(document).find(this.$el.data('target')) : $(document).find(this.opts.target);
138
+ this.expanded = this.$el.attr('aria-expanded') == 'true' ? true : false;
139
+
140
+ if (this.$target.length) {
141
+ this.targetHeight = this.$target.height();
142
+ this.$container = this.$target.closest('.section-collapse');
143
+ this.$indicator = $(document).find('[data-collapse-indicator="' + this.$el.data('target') + '"]');
144
+ } else {
145
+ this.$target = $(this.$el).parent().find('.collapse');
146
+ this.targetHeight = this.$target.height();
147
+ this.$container = this.$target.closest('.section-collapse');
148
+ this.$indicator = $(this.$el).parent().find('[data-collapse-indicator]');
149
+ }
150
+
151
+ this.log(this.$el);
152
+ this.log(this.$target);
153
+ this.log(this.$container);
154
+ this.log(this.$indicator);
155
+ this.log('Expanded: ' + this.expanded);
156
+ this.log('Target height: ' + this.targetHeight + 'px');
157
+ } // Bind events that trigger methods
158
+
159
+
160
+ bindEvents() {
161
+ this.$el.on('click' + '.' + this.name, e => {
162
+ if (this.expanded) {
163
+ this.close();
164
+ } else {
165
+ this.show();
166
+ }
167
+ });
168
+ $(window).on('resize', debounce(() => {
169
+ if (this.$target.length) {
170
+ this.targetHeight = this.$target.height();
171
+ this.log('Target height: ' + this.targetHeight + 'px');
172
+ }
173
+ }, 250));
174
+ } // Unbind events that trigger methods
175
+
176
+
177
+ unbindEvents() {
178
+ this.$el.off('.' + this.name);
179
+ } // Which transition
180
+
181
+
182
+ whichTransitionEvent() {
183
+ let el = document.createElement('text-transition');
184
+ let transEndEventNames = {
185
+ 'WebkitTransition': 'webkitTransitionEnd',
186
+ // Saf 6, Android Browser
187
+ 'MozTransition': 'transitionend',
188
+ // only for FF < 15
189
+ 'transition': 'transitionend' // IE10, Opera, Chrome, FF 15+, Saf 7+
190
+
191
+ };
192
+
193
+ for (let t in transEndEventNames) {
194
+ if (el.style[t] !== undefined) {
195
+ return transEndEventNames[t];
196
+ }
197
+ }
198
+ } // Show
199
+
200
+
201
+ show() {
202
+ this.$target.removeClass('collapse visible');
203
+ this.$target.addClass('collapsing');
204
+
205
+ if (this.$el.is('button')) {
206
+ this.$el.attr('disabled', true);
207
+ }
208
+
209
+ if (this.$container.length) {
210
+ this.$container.addClass('visible');
211
+ }
212
+
213
+ this.$target.css('height');
214
+ this.$target.css('height', this.targetHeight);
215
+
216
+ if (this.$indicator.length) {
217
+ this.$indicator.addClass('visible');
218
+ }
219
+
220
+ this.$target.one(this.whichTransitionEvent(), () => {
221
+ this.$target.removeClass('collapsing');
222
+
223
+ if (this.$el.is('button')) {
224
+ this.$el.attr('disabled', false);
225
+ }
226
+
227
+ this.$target.removeAttr('style');
228
+ this.$target.addClass('collapse visible');
229
+ this.$el.attr('aria-expanded', true);
230
+ this.$target.css('height', 'auto');
231
+ this.expanded = true;
232
+ });
233
+ this.onShow();
234
+ } // Close
235
+
236
+
237
+ close() {
238
+ this.$target.removeClass('collapse visible');
239
+ this.$target.addClass('collapsing');
240
+
241
+ if (this.$el.is('button')) {
242
+ this.$el.attr('disabled', true);
243
+ }
244
+
245
+ if (this.$container.length) {
246
+ this.$container.removeClass('visible');
247
+ }
248
+
249
+ this.$target.css('height', this.$target.height());
250
+ setTimeout(() => {
251
+ this.$target.css('height', 0);
252
+ }, 10);
253
+
254
+ if (this.$indicator.length && this.$indicator.hasClass('visible')) {
255
+ this.$indicator.removeClass('visible');
256
+ }
257
+
258
+ this.$target.one(this.whichTransitionEvent(), () => {
259
+ this.$target.removeClass('collapsing');
260
+
261
+ if (this.$el.is('button')) {
262
+ this.$el.attr('disabled', false);
263
+ }
264
+
265
+ this.$target.removeAttr('style');
266
+ this.$target.addClass('collapse');
267
+ this.$el.attr('aria-expanded', false);
268
+ this.expanded = false;
269
+ });
270
+ this.onClose();
271
+ }
272
+
273
+ static _jQueryInterface(config) {
274
+ return this.each(function () {
275
+ let data = $(this).data(DATA_KEY);
276
+
277
+ const _config = typeof config === 'object' && config;
278
+
279
+ if (!data) {
280
+ data = new Collapse(this, _config);
281
+ $(this).data(DATA_KEY, data);
282
+ }
283
+
284
+ if (typeof config === 'string') {
285
+ if (typeof data[config] === 'undefined') {
286
+ throw new TypeError(`No method named "${config}"`);
287
+ }
288
+
289
+ data[config]();
290
+ }
291
+ });
292
+ }
293
+
294
+ }
295
+
296
+ if (typeof $ !== 'undefined') {
297
+ // jQuery
298
+ const JQUERY_NO_CONFLICT = $.fn[NAME];
299
+ $.fn[NAME] = Collapse._jQueryInterface;
300
+ $.fn[NAME].Constructor = Collapse;
301
+
302
+ $.fn[NAME].noConflict = () => {
303
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
304
+ return Collapse._jQueryInterface;
305
+ };
306
+
307
+ $.fn[NAME].defaults = {
308
+ target: null,
309
+ onInit: null,
310
+ onUpdate: null,
311
+ onDestroy: null,
312
+ onShow: null,
313
+ onClose: null,
314
+ debug: false
315
+ };
316
+ }
317
+
318
+ return Collapse;
319
+
320
+ }));
321
+ //# sourceMappingURL=collapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapse.js","sources":["../src/util/index.js","../src/abstract-ui-component.js","../src/collapse.js"],"sourcesContent":["import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\n\tlet timeout;\n\n\treturn function() {\n\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function() {\n\n\t\t\ttimeout = null;\n\n\t\t\tif (!immediate) {\n\t\t\t\tfunc.apply(context, args)\n\t\t\t};\n\t\t};\n\n\t\tlet callNow = immediate && !timeout;\n\n\t\tclearTimeout(timeout);\n\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n};\n\nconst shallowProperty = function(key) {\n\n\treturn function(obj) {\n\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\n\tlet length = shallowProperty('length');\n\n\treturn typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n\n if (context === void 0) {\n \treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\n\t\tcase 1: return function(value) {\n\t\t\treturn func.call(context, value);\n\t\t};\n\n\t\tcase 3: return function(value, index, collection) {\n\t\t\treturn func.call(context, value, index, collection);\n\t\t};\n\t\tcase 4: return function(accumulator, value, index, collection) {\n\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t};\n\t}\n\n return function() {\n\t\treturn func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\n\t} else {\n\n\t\tlet keys = Object.keys(obj);\n\n\t\tfor (i = 0, length = keys.length; i < length; i++) {\n\t\t\titeratee(obj[keys[i]], keys[i], obj);\n\t\t}\n\t}\n\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\n\tlet result = false;\n\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\tresult = true;\n\t}\n\n\treturn result;\n};\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this.el);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.el);\n }\n }\n\n // Show callback\n onShow() {\n\n let onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this.el);\n }\n }\n\n // Close callback\n onClose() {\n\n let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolCollapse';\nconst DATA_KEY = 'plugin_coolCollapse';\n\nclass Collapse extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.collapse) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dialog, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache()\n this.bindEvents();\n this.onInit();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$target = this.$el.data('target') ? $(document).find(this.$el.data('target')) : $(document).find(this.opts.target);\n this.expanded = this.$el.attr('aria-expanded') == 'true' ? true : false;\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(document).find('[data-collapse-indicator=\"' + this.$el.data('target') + '\"]');\n\n } else {\n\n this.$target = $(this.$el).parent().find('.collapse');\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(this.$el).parent().find('[data-collapse-indicator]');\n }\n\n this.log(this.$el);\n this.log(this.$target);\n this.log(this.$container);\n this.log(this.$indicator);\n this.log('Expanded: '+this.expanded);\n this.log('Target height: '+this.targetHeight+'px');\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n this.$el.on('click'+'.'+this.name, (e) => {\n\n if (this.expanded) {\n this.close();\n } else {\n this.show();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.log('Target height: '+this.targetHeight+'px');\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this.name);\n }\n\n // Which transition\n whichTransitionEvent() {\n\n let el = document.createElement('text-transition');\n let transEndEventNames = {\n 'WebkitTransition': 'webkitTransitionEnd', // Saf 6, Android Browser\n 'MozTransition': 'transitionend', // only for FF < 15\n 'transition': 'transitionend' // IE10, Opera, Chrome, FF 15+, Saf 7+\n };\n\n for (let t in transEndEventNames) {\n\n if (el.style[t] !== undefined) {\n return transEndEventNames[t];\n }\n }\n }\n\n // Show\n show() {\n\n this.$target.removeClass('collapse visible');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.addClass('visible');\n }\n\n this.$target.css('height');\n this.$target.css('height', this.targetHeight);\n\n if (this.$indicator.length) {\n this.$indicator.addClass('visible');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse visible');\n this.$el.attr('aria-expanded', true);\n this.$target.css('height', 'auto');\n this.expanded = true;\n });\n\n this.onShow();\n }\n\n // Close\n close() {\n\n this.$target.removeClass('collapse visible');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.removeClass('visible');\n }\n\n this.$target.css('height', this.$target.height());\n\n setTimeout(() => {\n this.$target.css('height', 0);\n }, 10);\n\n if (this.$indicator.length && this.$indicator.hasClass('visible')) {\n this.$indicator.removeClass('visible');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse');\n this.$el.attr('aria-expanded', false);\n this.expanded = false;\n });\n\n this.onClose();\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Collapse(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Collapse._jQueryInterface;\n $.fn[NAME].Constructor = Collapse;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT\n\n return Collapse._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n target: null,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Collapse;"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","AbstractUIComponent","onInit","opts","call","el","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","Collapse","constructor","window","Cool","settings","collapse","$","extend","fn","defaults","dialog","init","buildCache","bindEvents","destroy","unbindEvents","$el","removeData","update","$target","data","document","find","target","expanded","attr","length","targetHeight","height","$container","closest","$indicator","parent","on","name","e","close","show","off","whichTransitionEvent","createElement","transEndEventNames","t","style","undefined","removeClass","addClass","is","css","one","removeAttr","hasClass","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}