jekyll-theme-glueckkanja 0.8.3 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/_sass/font-awesome/scss/_icons.scss +91 -0
  4. data/_sass/font-awesome/scss/_rotated-flipped.scss +3 -2
  5. data/_sass/font-awesome/scss/_variables.scss +93 -1
  6. data/_sass/font-awesome/scss/brands.scss +1 -4
  7. data/_sass/font-awesome/scss/fontawesome.scss +0 -4
  8. data/_sass/font-awesome/scss/regular.scss +1 -4
  9. data/_sass/font-awesome/scss/solid.scss +1 -4
  10. data/_sass/font-awesome/scss/v4-shims.scss +0 -4
  11. data/assets/favicons/de.svg +5 -0
  12. data/assets/favicons/gk-logo-white.png +0 -0
  13. data/assets/favicons/us.svg +10 -0
  14. data/assets/img/cbp-sprite.png +0 -0
  15. data/assets/js/components/_hs.dropdown.js +612 -0
  16. data/assets/js/components/gmap/hs.map.js +347 -0
  17. data/assets/js/components/hs.ajax-autocomplete.js +103 -0
  18. data/assets/js/components/hs.autocomplete-local-search.js +113 -0
  19. data/assets/js/components/hs.autocomplete.js +125 -0
  20. data/assets/js/components/hs.bg-video.js +70 -0
  21. data/assets/js/components/hs.carousel-materialize.js +75 -0
  22. data/assets/js/components/hs.carousel-owl.js +89 -0
  23. data/assets/js/components/hs.carousel-swiper.js +123 -0
  24. data/assets/js/components/hs.carousel.js +283 -0
  25. data/assets/js/components/hs.chart-pie.js +220 -0
  26. data/assets/js/components/hs.chart.js +155 -0
  27. data/assets/js/components/hs.count-qty.js +92 -0
  28. data/assets/js/components/hs.countdown.js +359 -0
  29. data/assets/js/components/hs.counter.js +220 -0
  30. data/assets/js/components/hs.cubeportfolio.js +163 -0
  31. data/assets/js/components/hs.datepicker.js +149 -0
  32. data/assets/js/components/hs.dropdown.js +522 -0
  33. data/assets/js/components/hs.file-attachement.js +135 -0
  34. data/assets/js/components/hs.flickr.js +180 -0
  35. data/assets/js/components/hs.go-to.js +121 -0
  36. data/assets/js/components/hs.header-fullscreen.js +397 -0
  37. data/assets/js/components/hs.header-side.js +1096 -0
  38. data/assets/js/components/hs.header.js +2128 -0
  39. data/assets/js/components/hs.instagram.js +94 -0
  40. data/assets/js/components/hs.map.pin.js +82 -0
  41. data/assets/js/components/hs.map.svg.js +80 -0
  42. data/assets/js/components/hs.markup-copy.js +102 -0
  43. data/assets/js/components/hs.masked-input.js +74 -0
  44. data/assets/js/components/hs.modal-event.js +134 -0
  45. data/assets/js/components/hs.modal-window.js +422 -0
  46. data/assets/js/components/hs.navigation.js +690 -0
  47. data/assets/js/components/hs.nl-form.js +70 -0
  48. data/assets/js/components/hs.onscroll-animation.js +190 -0
  49. data/assets/js/components/hs.popup.js +310 -0
  50. data/assets/js/components/hs.progress-bar.js +353 -0
  51. data/assets/js/components/hs.rating.js +153 -0
  52. data/assets/js/components/hs.scroll-nav.js +373 -0
  53. data/assets/js/components/hs.scrollbar.js +102 -0
  54. data/assets/js/components/hs.select.js +91 -0
  55. data/assets/js/components/hs.slider.js +99 -0
  56. data/assets/js/components/hs.smart-menu.js +233 -0
  57. data/assets/js/components/hs.step-form-old.js +94 -0
  58. data/assets/js/components/hs.step-form.js +93 -0
  59. data/assets/js/components/hs.sticky-block.js +418 -0
  60. data/assets/js/components/hs.tabs.js +186 -0
  61. data/assets/js/components/hs.twitter.js +111 -0
  62. data/assets/js/components/hs.validation.js +111 -0
  63. data/assets/js/components/hs.video-audio.js +70 -0
  64. data/assets/js/components/text-animation/hs.text-slideshow.js +348 -0
  65. data/assets/js/helpers/hs.bg-video.js +23 -0
  66. data/assets/js/helpers/hs.chart.js +66 -0
  67. data/assets/js/helpers/hs.compressed-form.js +55 -0
  68. data/assets/js/helpers/hs.file-attachments.js +39 -0
  69. data/assets/js/helpers/hs.focus-state.js +37 -0
  70. data/assets/js/helpers/hs.hamburgers.js +69 -0
  71. data/assets/js/helpers/hs.height-calc.js +31 -0
  72. data/assets/js/helpers/hs.hover-blocks.js +43 -0
  73. data/assets/js/helpers/hs.modal-markup.js +89 -0
  74. data/assets/js/helpers/hs.navigation-splitted.js +169 -0
  75. data/assets/js/helpers/hs.not-empty-state.js +34 -0
  76. data/assets/js/helpers/hs.rating.js +45 -0
  77. data/assets/js/helpers/hs.selecter.js +14 -0
  78. data/assets/js/helpers/hs.shortcode-filter.js +39 -0
  79. data/assets/js/hs.core.js +250 -0
  80. data/assets/js/hs.popup.js +155 -0
  81. data/assets/js/vendor/jquery.cubeportfolio.js +6054 -0
  82. data/assets/js/vendor/jquery.fancybox.js +4936 -0
  83. data/assets/nav/pixel-trans.png +0 -0
  84. data/assets/nav/pixel-trans@2x.png +0 -0
  85. metadata +75 -1
@@ -0,0 +1,418 @@
1
+ /**
2
+ * Sticky blocks wrapper.
3
+ *
4
+ * @author Htmlstream
5
+ * @version 1.0
6
+ * @requires
7
+ *
8
+ */
9
+ ;(function ($) {
10
+ 'use strict';
11
+
12
+ $.HSCore.components.HSStickyBlock = {
13
+ /**
14
+ *
15
+ *
16
+ * @var Object _baseConfig
17
+ */
18
+ _baseConfig: {},
19
+
20
+ /**
21
+ *
22
+ *
23
+ * @var jQuery pageCollection
24
+ */
25
+ pageCollection: $(),
26
+
27
+ /**
28
+ * Initialization of Sticky blocks wrapper.
29
+ *
30
+ * @param String selector (optional)
31
+ * @param Object config (optional)
32
+ *
33
+ * @return jQuery pageCollection - collection of initialized items.
34
+ */
35
+
36
+ init: function (selector, config) {
37
+ this.collection = selector && $(selector).length ? $(selector) : $();
38
+ if (!$(selector).length) return;
39
+
40
+ this.config = config && $.isPlainObject(config) ?
41
+ $.extend({}, this._baseConfig, config) : this._baseConfig;
42
+
43
+ this.config.itemSelector = selector;
44
+
45
+ this.initStickyBlock();
46
+
47
+ return this.pageCollection;
48
+ },
49
+
50
+ initStickyBlock: function () {
51
+ //Variables
52
+ var $self = this,
53
+ config = $self.config,
54
+ collection = $self.pageCollection,
55
+ windW = $(window).width();
56
+
57
+ this.collection.each(function (i, el) {
58
+ //Variables
59
+ var $stickyBlock = $(el),
60
+ type = $stickyBlock.data('type'),
61
+ stickyBlockClasses = $stickyBlock.attr('class').replace($self.config.itemSelector.substring(1), ''),
62
+ stickyBlockH = $stickyBlock.outerHeight(),
63
+ stickyBlockW = $stickyBlock.outerWidth(),
64
+ stickyBlockParentW = $stickyBlock.parent().width(),
65
+ stickyBlockOffsetTop = $stickyBlock.offset().top,
66
+ stickyBlockOffsetLeft = $stickyBlock.offset().left,
67
+ startPoint = $.isNumeric($stickyBlock.data('start-point')) ? $stickyBlock.data('start-point') : $($stickyBlock.data('start-point')).offset().top,
68
+ endPoint = $.isNumeric($stickyBlock.data('end-point')) ? $stickyBlock.data('end-point') : $($stickyBlock.data('end-point')).offset().top,
69
+ hasStickyHeader = $stickyBlock.data('has-sticky-header');
70
+
71
+ //Break function if there are no target element
72
+ if (!$stickyBlock.length) return;
73
+
74
+ $self.resolutionCheck($stickyBlock);
75
+
76
+ if ($stickyBlock.hasClass('g-sticky-block--sm') && windW <= 576) {
77
+ $stickyBlock.addClass('die-sticky');
78
+ $self.resolutionCheck($stickyBlock);
79
+ } else if ($stickyBlock.hasClass('g-sticky-block--md') && windW <= 768) {
80
+ $stickyBlock.addClass('die-sticky');
81
+ $self.resolutionCheck($stickyBlock);
82
+ } else if ($stickyBlock.hasClass('g-sticky-block--lg') && windW <= 992) {
83
+ $stickyBlock.addClass('die-sticky');
84
+ $self.resolutionCheck($stickyBlock);
85
+ } else if ($stickyBlock.hasClass('g-sticky-block--xl') && windW <= 1200) {
86
+ $stickyBlock.addClass('die-sticky');
87
+ $self.resolutionCheck($stickyBlock);
88
+ } else {
89
+ $stickyBlock.removeClass('die-sticky');
90
+ }
91
+
92
+ $(window).on('resize', function () {
93
+ var windW = $(window).width();
94
+
95
+ if ($stickyBlock.hasClass('g-sticky-block--sm') && windW <= 576) {
96
+ $stickyBlock.addClass('die-sticky');
97
+ $self.resolutionCheck($stickyBlock);
98
+ } else if ($stickyBlock.hasClass('g-sticky-block--md') && windW <= 768) {
99
+ $stickyBlock.addClass('die-sticky');
100
+ $self.resolutionCheck($stickyBlock);
101
+ } else if ($stickyBlock.hasClass('g-sticky-block--lg') && windW <= 992) {
102
+ $stickyBlock.addClass('die-sticky');
103
+ $self.resolutionCheck($stickyBlock);
104
+ } else if ($stickyBlock.hasClass('g-sticky-block--xl') && windW <= 1200) {
105
+ $stickyBlock.addClass('die-sticky');
106
+ $self.resolutionCheck($stickyBlock);
107
+ } else {
108
+ $stickyBlock
109
+ .removeClass('die-sticky')
110
+ .css({
111
+ 'top': '',
112
+ 'left': ''
113
+ });
114
+ }
115
+
116
+ if (type == 'responsive') {
117
+ setTimeout(function () {
118
+ var offsetTop = $(this).scrollTop(),
119
+ headerH = $('header').outerHeight();
120
+ stickyBlockH = $stickyBlock.outerHeight(),
121
+ stickyBlockParentW = $stickyBlock.parent().width(),
122
+ stickyBlockOffsetTop = $stickyBlock.parent().offset().top,
123
+ stickyBlockOffsetLeft = $stickyBlock.parent().offset().left + parseInt($stickyBlock.parent().css('padding-left')),
124
+ startPoint = $.isNumeric($stickyBlock.data('start-point')) ? $stickyBlock.data('start-point') : $($stickyBlock.data('start-point')).offset().top,
125
+ endPoint = $.isNumeric($stickyBlock.data('end-point')) ? $stickyBlock.data('end-point') : $($stickyBlock.data('end-point')).offset().top;
126
+
127
+ if (hasStickyHeader === true) {
128
+ $stickyBlock
129
+ .not('.die-sticky')
130
+ .css({
131
+ 'top': offsetTop + headerH >= (endPoint - stickyBlockH) ? endPoint - stickyBlockH - stickyBlockOffsetTop : headerH,
132
+ 'left': stickyBlockOffsetLeft,
133
+ 'width': stickyBlockParentW
134
+ });
135
+
136
+ // if (offsetTop + headerH <= (endPoint - stickyBlockH)) {
137
+ // $stickyBlock
138
+ // .not('.die-sticky')
139
+ // .addClass('g-pos-fix g-m-reset');
140
+ // }
141
+ } else {
142
+ $stickyBlock
143
+ .not('.die-sticky')
144
+ .css({
145
+ 'top': offsetTop >= (endPoint - stickyBlockH) ? endPoint - stickyBlockH - stickyBlockOffsetTop : 0,
146
+ 'left': stickyBlockOffsetLeft,
147
+ 'width': stickyBlockParentW
148
+ });
149
+
150
+ // if (offsetTop <= (endPoint - stickyBlockH)) {
151
+ // $stickyBlock
152
+ // .not('.die-sticky')
153
+ // .addClass('g-pos-fix g-m-reset');
154
+ // }
155
+ }
156
+ }, 400);
157
+ }
158
+ });
159
+
160
+ if (type != 'responsive') {
161
+ //Add "shadow" element
162
+ var offsetTop = $(this).scrollTop();
163
+
164
+ /* Args:
165
+ * [1: target element]
166
+ * [2: window offset top]
167
+ * [3: target element height]
168
+ * [4: target element width]
169
+ * [5: target element index]
170
+ * [6: target element classes (exclude init class)]
171
+ * [7: start point]
172
+ * [8: end point]
173
+ */
174
+ $self.addShadow($stickyBlock, offsetTop, stickyBlockH, stickyBlockW, i, stickyBlockClasses, startPoint, endPoint, hasStickyHeader);
175
+
176
+ //Add sticky state
177
+ /* Args:
178
+ * [1: target element]
179
+ * [2: window offset top]
180
+ * [3: target element height]
181
+ * [4: target element width]
182
+ * [5: target offset left]
183
+ * [6: start point]
184
+ * [7: end point]
185
+ */
186
+ $self.addSticky($stickyBlock, offsetTop, stickyBlockH, stickyBlockW, stickyBlockOffsetLeft, startPoint, endPoint, hasStickyHeader);
187
+ } else {
188
+ //Add responsive sticky state
189
+ var offsetTop = $(this).scrollTop();
190
+
191
+ /* Args:
192
+ * [1: target element]
193
+ * [2: window offset top]
194
+ * [3: parent element height]
195
+ * [4: parent element width]
196
+ * [5: target offset left]
197
+ * [6: start point]
198
+ * [7: end point]
199
+ */
200
+ $self.addSticky($stickyBlock, offsetTop, 'auto', stickyBlockParentW, stickyBlockOffsetLeft, startPoint, endPoint, hasStickyHeader);
201
+ }
202
+
203
+ $(window).on('scroll', function () {
204
+ var offsetTop = $(this).scrollTop();
205
+
206
+ if (type != 'responsive') {
207
+ //Add "shadow" element
208
+ /* Args:
209
+ * [1: target element]
210
+ * [2: window offset top]
211
+ * [3: target element height]
212
+ * [4: target element width]
213
+ * [5: target element index]
214
+ * [6: target element classes (exclude init class)]
215
+ * [7: start point]
216
+ * [8: end point]
217
+ */
218
+ $self.addShadow($stickyBlock, offsetTop, stickyBlockH, stickyBlockW, i, stickyBlockClasses, startPoint, endPoint, hasStickyHeader);
219
+
220
+ //Add sticky state
221
+ /* Args:
222
+ * [1: target element]
223
+ * [2: window offset top]
224
+ * [3: target element height]
225
+ * [4: target element width]
226
+ * [5: target offset left]
227
+ * [6: start point]
228
+ * [7: end point]
229
+ */
230
+ $self.addSticky($stickyBlock, offsetTop, stickyBlockH, stickyBlockW, stickyBlockOffsetLeft, startPoint, endPoint, hasStickyHeader);
231
+ } else {
232
+ //Add responsive sticky state
233
+ /* Args:
234
+ * [1: target element]
235
+ * [2: window offset top]
236
+ * [3: parent element height]
237
+ * [4: parent element width]
238
+ * [5: target offset left]
239
+ * [6: start point]
240
+ * [7: end point]
241
+ */
242
+ $self.addSticky($stickyBlock, offsetTop, 'auto', stickyBlockParentW, stickyBlockOffsetLeft, startPoint, endPoint, hasStickyHeader);
243
+ }
244
+
245
+ //Remove sticky state
246
+ /* Args:
247
+ * [1: target element]
248
+ * [2: window offset top]
249
+ * [3: start point]
250
+ */
251
+ $self.removeSticky($stickyBlock, offsetTop, startPoint, hasStickyHeader);
252
+
253
+ if (endPoint) {
254
+ //Add absolute state
255
+ /* Args:
256
+ * [1: target element]
257
+ * [2: target element height]
258
+ * [3: target element index]
259
+ * [4: target offset top]
260
+ * [5: window offset top]
261
+ * [6: end point]
262
+ */
263
+
264
+ $self.addAbsolute($stickyBlock, stickyBlockH, i, stickyBlockOffsetTop, offsetTop, endPoint, hasStickyHeader);
265
+ }
266
+ });
267
+
268
+ $(window).trigger('scroll');
269
+
270
+ //Add object to collection
271
+ collection = collection.add($stickyBlock);
272
+ });
273
+ },
274
+
275
+ addSticky: function (target, offsetTop, targetH, targetW, offsetLeft, startPoint, endPoint, hasStickyHeader) {
276
+ if (hasStickyHeader === true) {
277
+ var headerH = $('header').outerHeight();
278
+
279
+ if (offsetTop + headerH >= startPoint && offsetTop + headerH < endPoint) {
280
+ target
281
+ .not('.die-sticky')
282
+ .removeClass('g-pos-rel')
283
+ .css({
284
+ 'top': '',
285
+ 'left': '',
286
+ 'width': '',
287
+ 'height': ''
288
+ })
289
+ .addClass('g-pos-fix g-m-reset')
290
+ .css({
291
+ 'top': headerH,
292
+ 'left': offsetLeft,
293
+ 'width': targetW,
294
+ 'height': targetH
295
+ });
296
+ }
297
+ } else {
298
+ if (offsetTop >= startPoint && offsetTop < endPoint) {
299
+ target
300
+ .not('.die-sticky')
301
+ .removeClass('g-pos-rel')
302
+ .css({
303
+ 'top': '',
304
+ 'left': '',
305
+ 'width': '',
306
+ 'height': ''
307
+ })
308
+ .addClass('g-pos-fix g-m-reset')
309
+ .css({
310
+ 'top': 0,
311
+ 'left': offsetLeft,
312
+ 'width': targetW,
313
+ 'height': targetH
314
+ });
315
+ }
316
+ }
317
+ },
318
+
319
+ removeSticky: function (target, offsetTop, startPoint, hasStickyHeader) {
320
+ if (hasStickyHeader === true) {
321
+ var headerH = $('header').outerHeight();
322
+
323
+ if (offsetTop + headerH <= startPoint) {
324
+ target
325
+ .not('.die-sticky')
326
+ .removeClass('g-pos-fix g-m-reset')
327
+ .css({
328
+ 'left': ''
329
+ });
330
+ }
331
+ } else {
332
+ if (offsetTop <= startPoint) {
333
+ target
334
+ .not('.die-sticky')
335
+ .removeClass('g-pos-fix g-m-reset')
336
+ .css({
337
+ 'left': ''
338
+ });
339
+ }
340
+ }
341
+ },
342
+
343
+ addAbsolute: function (target, targetH, targetI, targetOffsetTop, offsetTop, endPoint, hasStickyHeader) {
344
+ if (target.hasClass('g-pos-rel')) return;
345
+
346
+ if (hasStickyHeader === true) {
347
+ var headerH = $('header').outerHeight();
348
+
349
+ if (offsetTop + headerH >= endPoint - targetH) {
350
+ target
351
+ .not('.die-sticky')
352
+ .removeClass('g-pos-fix g-m-reset')
353
+ .addClass('g-pos-rel')
354
+ .css({
355
+ 'top': endPoint - targetH - targetOffsetTop,
356
+ 'left': ''
357
+ });
358
+ }
359
+ } else {
360
+ if (offsetTop >= endPoint - targetH) {
361
+ target
362
+ .not('.die-sticky')
363
+ .removeClass('g-pos-fix g-m-reset')
364
+ .addClass('g-pos-rel')
365
+ .css({
366
+ 'top': endPoint - targetH - targetOffsetTop,
367
+ 'left': ''
368
+ });
369
+ }
370
+ }
371
+ },
372
+
373
+ addShadow: function (target, offsetTop, targetH, targetW, targetI, targetClasses, startPoint, endPoint, hasStickyHeader) {
374
+ if (hasStickyHeader === true) {
375
+ var headerH = $('header').outerHeight();
376
+
377
+ if (offsetTop + headerH > startPoint && offsetTop + headerH < (endPoint - targetH)) {
378
+ if ($('#shadow' + targetI).length) return;
379
+
380
+ //Add shadow block
381
+ target
382
+ .not('.die-sticky')
383
+ .before('<div id="shadow' + targetI + '" class="' + targetClasses + '" style="height: ' + targetH + 'px; width: ' + targetW + 'px"></div>');
384
+ } else {
385
+ if (!$('#shadow' + targetI).length) return;
386
+
387
+ //Remove shadow block
388
+ $('#shadow' + targetI).remove();
389
+ }
390
+ } else {
391
+ if (offsetTop > startPoint && offsetTop < (endPoint - targetH)) {
392
+ if ($('#shadow' + targetI).length) return;
393
+
394
+ //Add shadow block
395
+ target
396
+ .not('.die-sticky')
397
+ .before('<div id="shadow' + targetI + '" class="' + targetClasses + '" style="height: ' + targetH + 'px; width: ' + targetW + 'px"></div>');
398
+ } else {
399
+ if (!$('#shadow' + targetI).length) return;
400
+
401
+ //Remove shadow block
402
+ $('#shadow' + targetI).remove();
403
+ }
404
+ }
405
+ },
406
+
407
+ resolutionCheck: function (target) {
408
+ target
409
+ .removeClass('g-pos-fix g-m-reset')
410
+ .css({
411
+ 'top': '',
412
+ 'left': '',
413
+ 'width': '',
414
+ 'height': ''
415
+ });
416
+ }
417
+ }
418
+ })(jQuery);
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Tabs wrapper.
3
+ *
4
+ * @author Htmlstream
5
+ * @version 1.0
6
+ * @requires
7
+ *
8
+ */
9
+ ;(function ($) {
10
+ 'use strict';
11
+
12
+ $.HSCore.components.HSTabs = {
13
+ /**
14
+ *
15
+ *
16
+ * @var Object _baseConfig
17
+ */
18
+ _baseConfig: {},
19
+
20
+ /**
21
+ *
22
+ *
23
+ * @var jQuery pageCollection
24
+ */
25
+ pageCollection: $(),
26
+
27
+ /**
28
+ * Initialization of Tabs wrapper.
29
+ *
30
+ * @param String selector (optional)
31
+ * @param Object config (optional)
32
+ *
33
+ * @return jQuery pageCollection - collection of initialized items.
34
+ */
35
+
36
+ init: function (selector, config) {
37
+
38
+ this.collection = selector && $(selector).length ? $(selector) : $();
39
+ if (!$(selector).length) return;
40
+
41
+ this.config = config && $.isPlainObject(config) ?
42
+ $.extend({}, this._baseConfig, config) : this._baseConfig;
43
+
44
+ this.config.itemSelector = selector;
45
+
46
+ this.initTabs();
47
+
48
+ return this.pageCollection;
49
+
50
+ },
51
+
52
+ initTabs: function () {
53
+ //Variables
54
+ var $self = this,
55
+ collection = $self.pageCollection;
56
+
57
+ //Actions
58
+ this.collection.each(function (i, el) {
59
+ //Variables
60
+ var windW = $(window).width(),
61
+ //Tabs
62
+ $tabs = $(el),
63
+ $tabsItem = $tabs.find('.nav-item'),
64
+ tabsType = $tabs.data('tabs-mobile-type'), //[slide-up-down], [accordion], [hide-extra-items]
65
+ controlClasses = $tabs.data('btn-classes'),
66
+ context = $tabs.parent(),
67
+
68
+ //Tabs Content
69
+ $tabsContent = $('#' + $tabs.data('target')),
70
+ $tabsContentItem = $tabsContent.find('.tab-pane');
71
+
72
+ if (windW < 767) {
73
+ $('body').on('click', function () {
74
+ if (tabsType) {
75
+ $tabs.slideUp(200);
76
+ } else {
77
+ $tabs.find('.nav-inner').slideUp(200);
78
+ }
79
+ });
80
+ } else {
81
+ $('body').off('click');
82
+ }
83
+
84
+ if (windW > 767 && tabsType) {
85
+ $tabs.removeAttr('style');
86
+ $tabsContentItem.removeAttr('style');
87
+ context.off('click', '.js-tabs-mobile-control');
88
+ context.off('click', '[role="tab"]');
89
+ if (tabsType == 'accordion') {
90
+ $tabsContent.find('.js-tabs-mobile-control').remove();
91
+ } else {
92
+ context.find('.js-tabs-mobile-control').remove();
93
+ }
94
+ return;
95
+ }
96
+
97
+ if (windW < 768 && tabsType == 'accordion') {
98
+ $self.accordionEffect($tabsContent, $tabsItem, $tabsContentItem, controlClasses);
99
+ } else if (windW < 768 && tabsType == 'slide-up-down') {
100
+ $self.slideUpDownEffect(context, $tabs, controlClasses);
101
+ }
102
+
103
+ //Actions
104
+ collection = collection.add($tabs);
105
+ });
106
+ },
107
+
108
+ slideUpDownEffect: function (context, menu, btnClasses) {
109
+ if (context.find('.js-tabs-mobile-control').length) return;
110
+
111
+ //Create control
112
+ var activeItemHTML = menu.find('.active').html();
113
+
114
+ $(menu).before('<a class="js-tabs-mobile-control ' + btnClasses + '" href="#">' + activeItemHTML + '</a>');
115
+
116
+ /*----- CLICK -----*/
117
+ context.on('click', '.js-tabs-mobile-control', function (e) {
118
+ e.stopPropagation();
119
+ e.preventDefault();
120
+
121
+ $(menu).slideToggle(200);
122
+ });
123
+
124
+ context.on('click', '[role="tab"]', function (e) {
125
+ e.preventDefault();
126
+
127
+ var thisHTML = $(this).html(),
128
+ $targetControl = $(this).closest('ul').prev('.js-tabs-mobile-control');
129
+
130
+ $targetControl.html(thisHTML);
131
+ $(menu).slideUp(200);
132
+ });
133
+ },
134
+
135
+ accordionEffect: function (context, menuItem, menu, btnClasses) {
136
+ if (context.find('.js-tabs-mobile-control').length) return;
137
+
138
+ //Create control
139
+ $(menu).before('<a class="js-tabs-mobile-control ' + btnClasses + '" href="#"></a>');
140
+
141
+ menuItem.each(function () {
142
+ var thisIndex = $(this).index(),
143
+ thisHTML = $(this).find('[role="tab"]').html();
144
+
145
+ if ($(this).find('[role="tab"]').hasClass('active')) {
146
+ $(menu[thisIndex]).prev().addClass('active');
147
+ }
148
+
149
+ $(menu[thisIndex]).prev().html(thisHTML);
150
+ });
151
+
152
+ /*----- CLICK -----*/
153
+ context.on('click', '.js-tabs-mobile-control', function (e) {
154
+ e.preventDefault();
155
+
156
+ if ($(this).hasClass('active')) return;
157
+
158
+ var contextID = context.attr('id');
159
+
160
+ context.find('.js-tabs-mobile-control').removeClass('active');
161
+ console.log(contextID);
162
+ $('[data-target="' + contextID + '"]').find('.nav-link').removeClass('active');
163
+ var $target = $(this).next(),
164
+ targetID = $target.attr('id');
165
+
166
+ if ($target.hasClass('fade')) {
167
+ $(this).addClass('active');
168
+ $('[href="#' + targetID + '"]').addClass('active');
169
+
170
+ $(menu)
171
+ .slideUp(200);
172
+ $target
173
+ .slideDown(200, function () {
174
+ context.find('[role="tabpanel"]').removeClass('show active');
175
+ $target.addClass('show active');
176
+ });
177
+ } else {
178
+ $(this).addClass('active');
179
+ $(menu).slideUp(200);
180
+ $target.slideDown(200);
181
+ }
182
+ });
183
+ }
184
+ }
185
+
186
+ })(jQuery);