uikit 3.11.1 → 3.11.2-dev.03e47c2ff

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 (222) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +59 -17
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +127 -201
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +127 -201
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +129 -207
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +129 -207
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1098 -1316
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1144 -1393
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +345 -362
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +343 -350
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +768 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +343 -350
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +645 -793
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -621
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5430 -6690
  53. package/dist/js/uikit-core.min.js +1 -1
  54. package/dist/js/uikit-icons.js +7 -9
  55. package/dist/js/uikit-icons.min.js +1 -1
  56. package/dist/js/uikit.js +8143 -9784
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +79 -100
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +37 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +21 -46
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +95 -64
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +126 -108
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +52 -63
  84. package/src/js/core/accordion.js +53 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +74 -53
  87. package/src/js/core/cover.js +11 -15
  88. package/src/js/core/drop.js +107 -93
  89. package/src/js/core/form-custom.js +20 -25
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +29 -36
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +156 -138
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +113 -85
  102. package/src/js/core/offcanvas.js +49 -53
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +194 -123
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +47 -46
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +66 -67
  113. package/src/js/core/video.js +11 -22
  114. package/src/js/mixin/animate.js +19 -20
  115. package/src/js/mixin/class.js +2 -4
  116. package/src/js/mixin/container.js +7 -11
  117. package/src/js/mixin/internal/animate-fade.js +73 -30
  118. package/src/js/mixin/internal/animate-slide.js +58 -41
  119. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  120. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  121. package/src/js/mixin/media.js +5 -10
  122. package/src/js/mixin/modal.js +89 -66
  123. package/src/js/mixin/parallax.js +175 -121
  124. package/src/js/mixin/position.js +26 -20
  125. package/src/js/mixin/slider-autoplay.js +12 -21
  126. package/src/js/mixin/slider-drag.js +64 -65
  127. package/src/js/mixin/slider-nav.js +26 -35
  128. package/src/js/mixin/slider-reactive.js +2 -8
  129. package/src/js/mixin/slider.js +48 -55
  130. package/src/js/mixin/slideshow.js +13 -19
  131. package/src/js/mixin/togglable.js +89 -63
  132. package/src/js/uikit-core.js +2 -4
  133. package/src/js/uikit.js +2 -4
  134. package/src/js/util/ajax.js +25 -40
  135. package/src/js/util/animation.js +77 -75
  136. package/src/js/util/attr.js +17 -21
  137. package/src/js/util/class.js +14 -52
  138. package/src/js/util/dimensions.js +78 -49
  139. package/src/js/util/dom.js +39 -66
  140. package/src/js/util/env.js +7 -12
  141. package/src/js/util/event.js +60 -59
  142. package/src/js/util/fastdom.js +3 -8
  143. package/src/js/util/filter.js +17 -34
  144. package/src/js/util/index.js +0 -1
  145. package/src/js/util/lang.js +82 -121
  146. package/src/js/util/mouse.js +19 -17
  147. package/src/js/util/options.js +35 -49
  148. package/src/js/util/player.js +41 -36
  149. package/src/js/util/position.js +54 -46
  150. package/src/js/util/selector.js +43 -58
  151. package/src/js/util/style.js +39 -49
  152. package/src/js/util/viewport.js +81 -66
  153. package/src/less/components/base.less +10 -33
  154. package/src/less/components/flex.less +0 -9
  155. package/src/less/components/form-range.less +48 -95
  156. package/src/less/components/form.less +0 -1
  157. package/src/less/components/height.less +3 -0
  158. package/src/less/components/leader.less +0 -1
  159. package/src/less/components/lightbox.less +0 -1
  160. package/src/less/components/modal.less +3 -7
  161. package/src/less/components/navbar.less +0 -7
  162. package/src/less/components/progress.less +14 -36
  163. package/src/less/components/slider.less +0 -3
  164. package/src/less/components/slideshow.less +0 -3
  165. package/src/less/components/text.less +16 -32
  166. package/src/less/components/utility.less +22 -0
  167. package/src/scss/components/base.scss +10 -33
  168. package/src/scss/components/flex.scss +0 -9
  169. package/src/scss/components/form-range.scss +48 -95
  170. package/src/scss/components/form.scss +3 -4
  171. package/src/scss/components/height.scss +3 -0
  172. package/src/scss/components/icon.scss +2 -2
  173. package/src/scss/components/leader.scss +0 -1
  174. package/src/scss/components/lightbox.scss +0 -1
  175. package/src/scss/components/modal.scss +3 -7
  176. package/src/scss/components/navbar.scss +0 -7
  177. package/src/scss/components/progress.scss +14 -36
  178. package/src/scss/components/search.scss +1 -1
  179. package/src/scss/components/slider.scss +0 -3
  180. package/src/scss/components/slideshow.scss +0 -3
  181. package/src/scss/components/text.scss +16 -32
  182. package/src/scss/components/utility.scss +22 -0
  183. package/src/scss/mixins-theme.scss +1 -1
  184. package/src/scss/mixins.scss +1 -1
  185. package/src/scss/variables-theme.scss +9 -9
  186. package/src/scss/variables.scss +9 -9
  187. package/tests/align.html +10 -10
  188. package/tests/animation.html +2 -2
  189. package/tests/article.html +2 -2
  190. package/tests/base.html +3 -3
  191. package/tests/card.html +10 -10
  192. package/tests/column.html +3 -3
  193. package/tests/comment.html +9 -9
  194. package/tests/dotnav.html +3 -3
  195. package/tests/image.html +296 -64
  196. package/tests/images/image-type.avif +0 -0
  197. package/tests/images/image-type.jpeg +0 -0
  198. package/tests/images/image-type.webp +0 -0
  199. package/tests/index.html +8 -8
  200. package/tests/js/index.js +114 -85
  201. package/tests/lightbox.html +10 -10
  202. package/tests/marker.html +2 -2
  203. package/tests/modal.html +8 -9
  204. package/tests/navbar.html +2 -2
  205. package/tests/overlay.html +7 -7
  206. package/tests/parallax.html +14 -5
  207. package/tests/position.html +12 -12
  208. package/tests/slidenav.html +12 -12
  209. package/tests/slider.html +20 -20
  210. package/tests/sortable.html +1 -1
  211. package/tests/sticky-parallax.html +86 -98
  212. package/tests/sticky.html +56 -24
  213. package/tests/svg.html +6 -6
  214. package/tests/table.html +11 -11
  215. package/tests/thumbnav.html +12 -12
  216. package/tests/transition.html +30 -30
  217. package/tests/utility.html +33 -33
  218. package/tests/video.html +1 -1
  219. package/tests/width.html +1 -1
  220. package/src/js/mixin/flex-bug.js +0 -56
  221. package/src/js/util/promise.js +0 -191
  222. package/tests/images/animated.gif +0 -0
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.11.1 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.11.2-dev.03e47c2ff | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -7,1043 +7,895 @@
7
7
  })(this, (function (uikitUtil) { 'use strict';
8
8
 
9
9
  var Class = {
10
-
11
- connected: function() {
12
- !uikitUtil.hasClass(this.$el, this.$name) && uikitUtil.addClass(this.$el, this.$name);
13
- }
14
-
15
- };
10
+ connected() {
11
+ !uikitUtil.hasClass(this.$el, this.$name) && uikitUtil.addClass(this.$el, this.$name);
12
+ } };
16
13
 
17
14
  var Animations$1 = {
15
+ slide: {
16
+ show(dir) {
17
+ return [{ transform: translate(dir * -100) }, { transform: translate() }];
18
+ },
18
19
 
19
- slide: {
20
+ percent(current) {
21
+ return translated(current);
22
+ },
20
23
 
21
- show: function(dir) {
22
- return [
23
- {transform: translate(dir * -100)},
24
- {transform: translate()}
25
- ];
26
- },
24
+ translate(percent, dir) {
25
+ return [
26
+ { transform: translate(dir * -100 * percent) },
27
+ { transform: translate(dir * 100 * (1 - percent)) }];
27
28
 
28
- percent: function(current) {
29
- return translated(current);
30
- },
29
+ } } };
31
30
 
32
- translate: function(percent, dir) {
33
- return [
34
- {transform: translate(dir * -100 * percent)},
35
- {transform: translate(dir * 100 * (1 - percent))}
36
- ];
37
- }
38
31
 
39
- }
40
-
41
- };
42
32
 
43
33
  function translated(el) {
44
- return Math.abs(uikitUtil.css(el, 'transform').split(',')[4] / el.offsetWidth) || 0;
34
+ return Math.abs(uikitUtil.css(el, 'transform').split(',')[4] / el.offsetWidth) || 0;
45
35
  }
46
36
 
47
- function translate(value, unit) {
48
- if ( value === void 0 ) value = 0;
49
- if ( unit === void 0 ) unit = '%';
50
-
51
- value += value ? unit : '';
52
- return uikitUtil.isIE ? ("translateX(" + value + ")") : ("translate3d(" + value + ", 0, 0)"); // currently, not translate3d in IE, translate3d within translate3d does not work while transitioning
37
+ function translate(value, unit) {if (value === void 0) {value = 0;}if (unit === void 0) {unit = '%';}
38
+ value += value ? unit : '';
39
+ return "translate3d(" + value + ", 0, 0)";
53
40
  }
54
41
 
55
42
  function scale3d(value) {
56
- return ("scale3d(" + value + ", " + value + ", 1)");
43
+ return "scale3d(" + value + ", " + value + ", 1)";
57
44
  }
58
45
 
59
- function Transitioner(prev, next, dir, ref) {
60
- var animation = ref.animation;
61
- var easing = ref.easing;
62
-
63
-
64
- var percent = animation.percent;
65
- var translate = animation.translate;
66
- var show = animation.show; if ( show === void 0 ) show = uikitUtil.noop;
67
- var props = show(dir);
68
- var deferred = new uikitUtil.Deferred();
69
-
70
- return {
71
-
72
- dir: dir,
73
-
74
- show: function(duration, percent, linear) {
75
- var this$1$1 = this;
76
- if ( percent === void 0 ) percent = 0;
77
-
78
-
79
- var timing = linear ? 'linear' : easing;
80
- duration -= Math.round(duration * uikitUtil.clamp(percent, -1, 1));
81
-
82
- this.translate(percent);
83
-
84
- triggerUpdate(next, 'itemin', {percent: percent, duration: duration, timing: timing, dir: dir});
85
- triggerUpdate(prev, 'itemout', {percent: 1 - percent, duration: duration, timing: timing, dir: dir});
86
-
87
- uikitUtil.Promise.all([
88
- uikitUtil.Transition.start(next, props[1], duration, timing),
89
- uikitUtil.Transition.start(prev, props[0], duration, timing)
90
- ]).then(function () {
91
- this$1$1.reset();
92
- deferred.resolve();
93
- }, uikitUtil.noop);
94
-
95
- return deferred.promise;
96
- },
97
-
98
- cancel: function() {
99
- uikitUtil.Transition.cancel([next, prev]);
100
- },
101
-
102
- reset: function() {
103
- for (var prop in props[0]) {
104
- uikitUtil.css([next, prev], prop, '');
105
- }
106
- },
107
-
108
- forward: function(duration, percent) {
109
- if ( percent === void 0 ) percent = this.percent();
110
-
111
- uikitUtil.Transition.cancel([next, prev]);
112
- return this.show(duration, percent, true);
113
- },
46
+ function Transitioner(prev, next, dir, _ref) {let { animation, easing } = _ref;
47
+ const { percent, translate, show = uikitUtil.noop } = animation;
48
+ const props = show(dir);
49
+ const deferred = new uikitUtil.Deferred();
114
50
 
115
- translate: function(percent) {
51
+ return {
52
+ dir,
116
53
 
117
- this.reset();
54
+ show(duration, percent, linear) {if (percent === void 0) {percent = 0;}
55
+ const timing = linear ? 'linear' : easing;
56
+ duration -= Math.round(duration * uikitUtil.clamp(percent, -1, 1));
118
57
 
119
- var props = translate(percent, dir);
120
- uikitUtil.css(next, props[1]);
121
- uikitUtil.css(prev, props[0]);
122
- triggerUpdate(next, 'itemtranslatein', {percent: percent, dir: dir});
123
- triggerUpdate(prev, 'itemtranslateout', {percent: 1 - percent, dir: dir});
58
+ this.translate(percent);
124
59
 
125
- },
60
+ triggerUpdate(next, 'itemin', { percent, duration, timing, dir });
61
+ triggerUpdate(prev, 'itemout', { percent: 1 - percent, duration, timing, dir });
126
62
 
127
- percent: function() {
128
- return percent(prev || next, next, dir);
129
- },
63
+ Promise.all([
64
+ uikitUtil.Transition.start(next, props[1], duration, timing),
65
+ uikitUtil.Transition.start(prev, props[0], duration, timing)]).
66
+ then(() => {
67
+ this.reset();
68
+ deferred.resolve();
69
+ }, uikitUtil.noop);
130
70
 
131
- getDistance: function() {
132
- return prev && prev.offsetWidth;
133
- }
134
-
135
- };
136
-
137
- }
138
-
139
- function triggerUpdate(el, type, data) {
140
- uikitUtil.trigger(el, uikitUtil.createEvent(type, false, false, data));
141
- }
142
-
143
- var SliderAutoplay = {
144
-
145
- props: {
146
- autoplay: Boolean,
147
- autoplayInterval: Number,
148
- pauseOnHover: Boolean
149
- },
150
-
151
- data: {
152
- autoplay: false,
153
- autoplayInterval: 7000,
154
- pauseOnHover: true
71
+ return deferred.promise;
155
72
  },
156
73
 
157
- connected: function() {
158
- this.autoplay && this.startAutoplay();
74
+ cancel() {
75
+ uikitUtil.Transition.cancel([next, prev]);
159
76
  },
160
77
 
161
- disconnected: function() {
162
- this.stopAutoplay();
78
+ reset() {
79
+ for (const prop in props[0]) {
80
+ uikitUtil.css([next, prev], prop, '');
81
+ }
163
82
  },
164
83
 
165
- update: function() {
166
- uikitUtil.attr(this.slides, 'tabindex', '-1');
84
+ forward(duration, percent) {if (percent === void 0) {percent = this.percent();}
85
+ uikitUtil.Transition.cancel([next, prev]);
86
+ return this.show(duration, percent, true);
167
87
  },
168
88
 
169
- events: [
170
-
171
- {
172
-
173
- name: 'visibilitychange',
89
+ translate(percent) {
90
+ this.reset();
174
91
 
175
- el: function() {
176
- return document;
177
- },
178
-
179
- filter: function() {
180
- return this.autoplay;
181
- },
182
-
183
- handler: function() {
184
- if (document.hidden) {
185
- this.stopAutoplay();
186
- } else {
187
- this.startAutoplay();
188
- }
189
- }
92
+ const props = translate(percent, dir);
93
+ uikitUtil.css(next, props[1]);
94
+ uikitUtil.css(prev, props[0]);
95
+ triggerUpdate(next, 'itemtranslatein', { percent, dir });
96
+ triggerUpdate(prev, 'itemtranslateout', { percent: 1 - percent, dir });
97
+ },
190
98
 
191
- }
99
+ percent() {
100
+ return percent(prev || next, next, dir);
101
+ },
192
102
 
193
- ],
103
+ getDistance() {
104
+ return prev == null ? void 0 : prev.offsetWidth;
105
+ } };
194
106
 
195
- methods: {
107
+ }
196
108
 
197
- startAutoplay: function() {
198
- var this$1$1 = this;
109
+ function triggerUpdate(el, type, data) {
110
+ uikitUtil.trigger(el, uikitUtil.createEvent(type, false, false, data));
111
+ }
199
112
 
113
+ var SliderAutoplay = {
114
+ props: {
115
+ autoplay: Boolean,
116
+ autoplayInterval: Number,
117
+ pauseOnHover: Boolean },
200
118
 
201
- this.stopAutoplay();
202
119
 
203
- this.interval = setInterval(
204
- function () { return (!this$1$1.draggable || !uikitUtil.$(':focus', this$1$1.$el))
205
- && (!this$1$1.pauseOnHover || !uikitUtil.matches(this$1$1.$el, ':hover'))
206
- && !this$1$1.stack.length
207
- && this$1$1.show('next'); },
208
- this.autoplayInterval
209
- );
120
+ data: {
121
+ autoplay: false,
122
+ autoplayInterval: 7000,
123
+ pauseOnHover: true },
210
124
 
211
- },
212
125
 
213
- stopAutoplay: function() {
214
- this.interval && clearInterval(this.interval);
215
- }
126
+ connected() {
127
+ this.autoplay && this.startAutoplay();
128
+ },
216
129
 
217
- }
130
+ disconnected() {
131
+ this.stopAutoplay();
132
+ },
218
133
 
219
- };
134
+ update() {
135
+ uikitUtil.attr(this.slides, 'tabindex', '-1');
136
+ },
220
137
 
221
- var SliderDrag = {
138
+ events: [
139
+ {
140
+ name: 'visibilitychange',
222
141
 
223
- props: {
224
- draggable: Boolean
142
+ el() {
143
+ return document;
225
144
  },
226
145
 
227
- data: {
228
- draggable: true,
229
- threshold: 10
146
+ filter() {
147
+ return this.autoplay;
230
148
  },
231
149
 
232
- created: function() {
233
- var this$1$1 = this;
234
-
235
-
236
- ['start', 'move', 'end'].forEach(function (key) {
237
-
238
- var fn = this$1$1[key];
239
- this$1$1[key] = function (e) {
150
+ handler() {
151
+ if (document.hidden) {
152
+ this.stopAutoplay();
153
+ } else {
154
+ this.startAutoplay();
155
+ }
156
+ } }],
240
157
 
241
- var pos = uikitUtil.getEventPos(e).x * (uikitUtil.isRtl ? -1 : 1);
242
158
 
243
- this$1$1.prevPos = pos !== this$1$1.pos ? this$1$1.pos : this$1$1.prevPos;
244
- this$1$1.pos = pos;
245
159
 
246
- fn(e);
247
- };
160
+ methods: {
161
+ startAutoplay() {
162
+ this.stopAutoplay();
248
163
 
249
- });
164
+ this.interval = setInterval(
165
+ () =>
166
+ (!this.draggable || !uikitUtil.$(':focus', this.$el)) && (
167
+ !this.pauseOnHover || !uikitUtil.matches(this.$el, ':hover')) &&
168
+ !this.stack.length &&
169
+ this.show('next'),
170
+ this.autoplayInterval);
250
171
 
251
172
  },
252
173
 
253
- events: [
254
-
255
- {
256
-
257
- name: uikitUtil.pointerDown,
258
-
259
- delegate: function() {
260
- return this.selSlides;
261
- },
262
-
263
- handler: function(e) {
264
-
265
- if (!this.draggable
266
- || !uikitUtil.isTouch(e) && hasTextNodesOnly(e.target)
267
- || uikitUtil.closest(e.target, uikitUtil.selInput)
268
- || e.button > 0
269
- || this.length < 2
270
- ) {
271
- return;
272
- }
273
-
274
- this.start(e);
275
- }
276
-
277
- },
278
-
279
- {
280
- name: 'dragstart',
281
-
282
- handler: function(e) {
283
- e.preventDefault();
284
- }
285
- }
286
-
287
- ],
288
-
289
- methods: {
290
-
291
- start: function() {
292
-
293
- this.drag = this.pos;
174
+ stopAutoplay() {
175
+ this.interval && clearInterval(this.interval);
176
+ } } };
294
177
 
295
- if (this._transitioner) {
178
+ var SliderDrag = {
179
+ props: {
180
+ draggable: Boolean },
296
181
 
297
- this.percent = this._transitioner.percent();
298
- this.drag += this._transitioner.getDistance() * this.percent * this.dir;
299
182
 
300
- this._transitioner.cancel();
301
- this._transitioner.translate(this.percent);
183
+ data: {
184
+ draggable: true,
185
+ threshold: 10 },
302
186
 
303
- this.dragging = true;
304
187
 
305
- this.stack = [];
188
+ created() {
189
+ for (const key of ['start', 'move', 'end']) {
190
+ const fn = this[key];
191
+ this[key] = (e) => {
192
+ const pos = uikitUtil.getEventPos(e).x * (uikitUtil.isRtl ? -1 : 1);
306
193
 
307
- } else {
308
- this.prevIndex = this.index;
309
- }
194
+ this.prevPos = pos === this.pos ? this.prevPos : this.pos;
195
+ this.pos = pos;
310
196
 
311
- uikitUtil.on(document, uikitUtil.pointerMove, this.move, {passive: false});
197
+ fn(e);
198
+ };
199
+ }
200
+ },
312
201
 
313
- // 'input' event is triggered by video controls
314
- uikitUtil.on(document, (uikitUtil.pointerUp + " " + uikitUtil.pointerCancel + " input"), this.end, true);
202
+ events: [
203
+ {
204
+ name: uikitUtil.pointerDown,
315
205
 
316
- uikitUtil.css(this.list, 'userSelect', 'none');
206
+ delegate() {
207
+ return this.selSlides;
208
+ },
317
209
 
318
- },
210
+ handler(e) {
211
+ if (
212
+ !this.draggable ||
213
+ !uikitUtil.isTouch(e) && hasTextNodesOnly(e.target) ||
214
+ uikitUtil.closest(e.target, uikitUtil.selInput) ||
215
+ e.button > 0 ||
216
+ this.length < 2)
217
+ {
218
+ return;
219
+ }
319
220
 
320
- move: function(e) {
321
- var this$1$1 = this;
221
+ this.start(e);
222
+ } },
322
223
 
323
224
 
324
- var distance = this.pos - this.drag;
225
+ {
226
+ name: 'dragstart',
325
227
 
326
- if (distance === 0 || this.prevPos === this.pos || !this.dragging && Math.abs(distance) < this.threshold) {
327
- return;
328
- }
228
+ handler(e) {
229
+ e.preventDefault();
230
+ } }],
329
231
 
330
- // prevent click event
331
- uikitUtil.css(this.list, 'pointerEvents', 'none');
332
232
 
333
- e.cancelable && e.preventDefault();
334
233
 
335
- this.dragging = true;
336
- this.dir = (distance < 0 ? 1 : -1);
234
+ methods: {
235
+ start() {
236
+ this.drag = this.pos;
337
237
 
338
- var ref = this;
339
- var slides = ref.slides;
340
- var ref$1 = this;
341
- var prevIndex = ref$1.prevIndex;
342
- var dis = Math.abs(distance);
343
- var nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
344
- var width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
238
+ if (this._transitioner) {
239
+ this.percent = this._transitioner.percent();
240
+ this.drag += this._transitioner.getDistance() * this.percent * this.dir;
345
241
 
346
- while (nextIndex !== prevIndex && dis > width) {
242
+ this._transitioner.cancel();
243
+ this._transitioner.translate(this.percent);
347
244
 
348
- this.drag -= width * this.dir;
245
+ this.dragging = true;
349
246
 
350
- prevIndex = nextIndex;
351
- dis -= width;
352
- nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
353
- width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
247
+ this.stack = [];
248
+ } else {
249
+ this.prevIndex = this.index;
250
+ }
354
251
 
355
- }
252
+ uikitUtil.on(document, uikitUtil.pointerMove, this.move, { passive: false });
356
253
 
357
- this.percent = dis / width;
254
+ // 'input' event is triggered by video controls
255
+ uikitUtil.on(document, uikitUtil.pointerUp + " " + uikitUtil.pointerCancel + " input", this.end, true);
358
256
 
359
- var prev = slides[prevIndex];
360
- var next = slides[nextIndex];
361
- var changed = this.index !== nextIndex;
362
- var edge = prevIndex === nextIndex;
257
+ uikitUtil.css(this.list, 'userSelect', 'none');
258
+ },
363
259
 
364
- var itemShown;
260
+ move(e) {
261
+ const distance = this.pos - this.drag;
365
262
 
366
- [this.index, this.prevIndex].filter(function (i) { return !uikitUtil.includes([nextIndex, prevIndex], i); }).forEach(function (i) {
367
- uikitUtil.trigger(slides[i], 'itemhidden', [this$1$1]);
263
+ if (
264
+ distance === 0 ||
265
+ this.prevPos === this.pos ||
266
+ !this.dragging && Math.abs(distance) < this.threshold)
267
+ {
268
+ return;
269
+ }
368
270
 
369
- if (edge) {
370
- itemShown = true;
371
- this$1$1.prevIndex = prevIndex;
372
- }
271
+ // prevent click event
272
+ uikitUtil.css(this.list, 'pointerEvents', 'none');
373
273
 
374
- });
274
+ e.cancelable && e.preventDefault();
375
275
 
376
- if (this.index === prevIndex && this.prevIndex !== prevIndex || itemShown) {
377
- uikitUtil.trigger(slides[this.index], 'itemshown', [this]);
378
- }
276
+ this.dragging = true;
277
+ this.dir = distance < 0 ? 1 : -1;
379
278
 
380
- if (changed) {
381
- this.prevIndex = prevIndex;
382
- this.index = nextIndex;
279
+ const { slides } = this;
280
+ let { prevIndex } = this;
281
+ let dis = Math.abs(distance);
282
+ let nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
283
+ let width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
383
284
 
384
- !edge && uikitUtil.trigger(prev, 'beforeitemhide', [this]);
385
- uikitUtil.trigger(next, 'beforeitemshow', [this]);
386
- }
285
+ while (nextIndex !== prevIndex && dis > width) {
286
+ this.drag -= width * this.dir;
387
287
 
388
- this._transitioner = this._translate(Math.abs(this.percent), prev, !edge && next);
288
+ prevIndex = nextIndex;
289
+ dis -= width;
290
+ nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);
291
+ width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;
292
+ }
389
293
 
390
- if (changed) {
391
- !edge && uikitUtil.trigger(prev, 'itemhide', [this]);
392
- uikitUtil.trigger(next, 'itemshow', [this]);
393
- }
294
+ this.percent = dis / width;
394
295
 
395
- },
296
+ const prev = slides[prevIndex];
297
+ const next = slides[nextIndex];
298
+ const changed = this.index !== nextIndex;
299
+ const edge = prevIndex === nextIndex;
396
300
 
397
- end: function() {
301
+ let itemShown;
398
302
 
399
- uikitUtil.off(document, uikitUtil.pointerMove, this.move, {passive: false});
400
- uikitUtil.off(document, (uikitUtil.pointerUp + " " + uikitUtil.pointerCancel + " input"), this.end, true);
303
+ [this.index, this.prevIndex].
304
+ filter((i) => !uikitUtil.includes([nextIndex, prevIndex], i)).
305
+ forEach((i) => {
306
+ uikitUtil.trigger(slides[i], 'itemhidden', [this]);
401
307
 
402
- if (this.dragging) {
308
+ if (edge) {
309
+ itemShown = true;
310
+ this.prevIndex = prevIndex;
311
+ }
312
+ });
403
313
 
404
- this.dragging = null;
314
+ if (this.index === prevIndex && this.prevIndex !== prevIndex || itemShown) {
315
+ uikitUtil.trigger(slides[this.index], 'itemshown', [this]);
316
+ }
405
317
 
406
- if (this.index === this.prevIndex) {
407
- this.percent = 1 - this.percent;
408
- this.dir *= -1;
409
- this._show(false, this.index, true);
410
- this._transitioner = null;
411
- } else {
318
+ if (changed) {
319
+ this.prevIndex = prevIndex;
320
+ this.index = nextIndex;
412
321
 
413
- var dirChange = (uikitUtil.isRtl ? this.dir * (uikitUtil.isRtl ? 1 : -1) : this.dir) < 0 === this.prevPos > this.pos;
414
- this.index = dirChange ? this.index : this.prevIndex;
322
+ !edge && uikitUtil.trigger(prev, 'beforeitemhide', [this]);
323
+ uikitUtil.trigger(next, 'beforeitemshow', [this]);
324
+ }
415
325
 
416
- if (dirChange) {
417
- this.percent = 1 - this.percent;
418
- }
326
+ this._transitioner = this._translate(Math.abs(this.percent), prev, !edge && next);
419
327
 
420
- this.show(this.dir > 0 && !dirChange || this.dir < 0 && dirChange ? 'next' : 'previous', true);
421
- }
328
+ if (changed) {
329
+ !edge && uikitUtil.trigger(prev, 'itemhide', [this]);
330
+ uikitUtil.trigger(next, 'itemshow', [this]);
331
+ }
332
+ },
422
333
 
423
- }
334
+ end() {
335
+ uikitUtil.off(document, uikitUtil.pointerMove, this.move, { passive: false });
336
+ uikitUtil.off(document, uikitUtil.pointerUp + " " + uikitUtil.pointerCancel + " input", this.end, true);
337
+
338
+ if (this.dragging) {
339
+ this.dragging = null;
340
+
341
+ if (this.index === this.prevIndex) {
342
+ this.percent = 1 - this.percent;
343
+ this.dir *= -1;
344
+ this._show(false, this.index, true);
345
+ this._transitioner = null;
346
+ } else {
347
+ const dirChange =
348
+ (uikitUtil.isRtl ? this.dir * (uikitUtil.isRtl ? 1 : -1) : this.dir) < 0 ===
349
+ this.prevPos > this.pos;
350
+ this.index = dirChange ? this.index : this.prevIndex;
351
+
352
+ if (dirChange) {
353
+ this.percent = 1 - this.percent;
354
+ }
355
+
356
+ this.show(
357
+ this.dir > 0 && !dirChange || this.dir < 0 && dirChange ?
358
+ 'next' :
359
+ 'previous',
360
+ true);
424
361
 
425
- uikitUtil.css(this.list, {userSelect: '', pointerEvents: ''});
362
+ }
363
+ }
426
364
 
427
- this.drag
428
- = this.percent
429
- = null;
365
+ uikitUtil.css(this.list, { userSelect: '', pointerEvents: '' });
430
366
 
431
- }
367
+ this.drag = this.percent = null;
368
+ } } };
432
369
 
433
- }
434
370
 
435
- };
436
371
 
437
372
  function hasTextNodesOnly(el) {
438
- return !el.children.length && el.childNodes.length;
373
+ return !el.children.length && el.childNodes.length;
439
374
  }
440
375
 
441
376
  var SliderNav = {
377
+ data: {
378
+ selNav: false },
442
379
 
443
- data: {
444
- selNav: false
445
- },
446
-
447
- computed: {
448
-
449
- nav: function(ref, $el) {
450
- var selNav = ref.selNav;
451
-
452
- return uikitUtil.$(selNav, $el);
453
- },
454
-
455
- selNavItem: function(ref) {
456
- var attrItem = ref.attrItem;
457
-
458
- return ("[" + attrItem + "],[data-" + attrItem + "]");
459
- },
460
-
461
- navItems: function(_, $el) {
462
- return uikitUtil.$$(this.selNavItem, $el);
463
- }
464
380
 
381
+ computed: {
382
+ nav(_ref, $el) {let { selNav } = _ref;
383
+ return uikitUtil.$(selNav, $el);
465
384
  },
466
385
 
467
- update: {
468
-
469
- write: function() {
470
- var this$1$1 = this;
471
-
472
-
473
- if (this.nav && this.length !== this.nav.children.length) {
474
- uikitUtil.html(this.nav, this.slides.map(function (_, i) { return ("<li " + (this$1$1.attrItem) + "=\"" + i + "\"><a href></a></li>"); }).join(''));
475
- }
476
-
477
- this.navItems.concat(this.nav).forEach(function (el) { return el && (el.hidden = !this$1$1.maxIndex); });
478
-
479
- this.updateNav();
480
-
481
- },
482
-
483
- events: ['resize']
484
-
386
+ selNavItem(_ref2) {let { attrItem } = _ref2;
387
+ return "[" + attrItem + "],[data-" + attrItem + "]";
485
388
  },
486
389
 
487
- events: [
488
-
489
- {
390
+ navItems(_, $el) {
391
+ return uikitUtil.$$(this.selNavItem, $el);
392
+ } },
490
393
 
491
- name: 'click',
492
394
 
493
- delegate: function() {
494
- return this.selNavItem;
495
- },
395
+ update: {
396
+ write() {
397
+ if (this.nav && this.length !== this.nav.children.length) {
398
+ uikitUtil.html(
399
+ this.nav,
400
+ this.slides.
401
+ map((_, i) => "<li " + this.attrItem + "=\"" + i + "\"><a href></a></li>").
402
+ join(''));
496
403
 
497
- handler: function(e) {
498
- e.preventDefault();
499
- this.show(uikitUtil.data(e.current, this.attrItem));
500
- }
404
+ }
501
405
 
502
- },
406
+ this.navItems.concat(this.nav).forEach((el) => el && (el.hidden = !this.maxIndex));
503
407
 
504
- {
408
+ this.updateNav();
409
+ },
505
410
 
506
- name: 'itemshow',
507
- handler: 'updateNav'
411
+ events: ['resize'] },
508
412
 
509
- }
510
413
 
511
- ],
414
+ events: [
415
+ {
416
+ name: 'click',
512
417
 
513
- methods: {
418
+ delegate() {
419
+ return this.selNavItem;
420
+ },
514
421
 
515
- updateNav: function() {
516
- var this$1$1 = this;
422
+ handler(e) {
423
+ e.preventDefault();
424
+ this.show(uikitUtil.data(e.current, this.attrItem));
425
+ } },
517
426
 
518
427
 
519
- var i = this.getValidIndex();
520
- this.navItems.forEach(function (el) {
428
+ {
429
+ name: 'itemshow',
430
+ handler: 'updateNav' }],
521
431
 
522
- var cmd = uikitUtil.data(el, this$1$1.attrItem);
523
432
 
524
- uikitUtil.toggleClass(el, this$1$1.clsActive, uikitUtil.toNumber(cmd) === i);
525
- uikitUtil.toggleClass(el, 'uk-invisible', this$1$1.finite && (cmd === 'previous' && i === 0 || cmd === 'next' && i >= this$1$1.maxIndex));
526
- });
527
433
 
528
- }
434
+ methods: {
435
+ updateNav() {
436
+ const i = this.getValidIndex();
437
+ for (const el of this.navItems) {
438
+ const cmd = uikitUtil.data(el, this.attrItem);
529
439
 
530
- }
440
+ uikitUtil.toggleClass(el, this.clsActive, uikitUtil.toNumber(cmd) === i);
441
+ uikitUtil.toggleClass(
442
+ el,
443
+ 'uk-invisible',
444
+ this.finite && (
445
+ cmd === 'previous' && i === 0 || cmd === 'next' && i >= this.maxIndex));
531
446
 
532
- };
447
+ }
448
+ } } };
533
449
 
534
450
  var Slider = {
535
-
536
- mixins: [SliderAutoplay, SliderDrag, SliderNav],
537
-
538
- props: {
539
- clsActivated: Boolean,
540
- easing: String,
541
- index: Number,
542
- finite: Boolean,
543
- velocity: Number,
544
- selSlides: String
451
+ mixins: [SliderAutoplay, SliderDrag, SliderNav],
452
+
453
+ props: {
454
+ clsActivated: Boolean,
455
+ easing: String,
456
+ index: Number,
457
+ finite: Boolean,
458
+ velocity: Number,
459
+ selSlides: String },
460
+
461
+
462
+ data: () => ({
463
+ easing: 'ease',
464
+ finite: false,
465
+ velocity: 1,
466
+ index: 0,
467
+ prevIndex: -1,
468
+ stack: [],
469
+ percent: 0,
470
+ clsActive: 'uk-active',
471
+ clsActivated: false,
472
+ Transitioner: false,
473
+ transitionOptions: {} }),
474
+
475
+
476
+ connected() {
477
+ this.prevIndex = -1;
478
+ this.index = this.getValidIndex(this.$props.index);
479
+ this.stack = [];
480
+ },
481
+
482
+ disconnected() {
483
+ uikitUtil.removeClass(this.slides, this.clsActive);
484
+ },
485
+
486
+ computed: {
487
+ duration(_ref, $el) {let { velocity } = _ref;
488
+ return speedUp($el.offsetWidth / velocity);
545
489
  },
546
490
 
547
- data: function () { return ({
548
- easing: 'ease',
549
- finite: false,
550
- velocity: 1,
551
- index: 0,
552
- prevIndex: -1,
553
- stack: [],
554
- percent: 0,
555
- clsActive: 'uk-active',
556
- clsActivated: false,
557
- Transitioner: false,
558
- transitionOptions: {}
559
- }); },
560
-
561
- connected: function() {
562
- this.prevIndex = -1;
563
- this.index = this.getValidIndex(this.$props.index);
564
- this.stack = [];
491
+ list(_ref2, $el) {let { selList } = _ref2;
492
+ return uikitUtil.$(selList, $el);
565
493
  },
566
494
 
567
- disconnected: function() {
568
- uikitUtil.removeClass(this.slides, this.clsActive);
495
+ maxIndex() {
496
+ return this.length - 1;
569
497
  },
570
498
 
571
- computed: {
572
-
573
- duration: function(ref, $el) {
574
- var velocity = ref.velocity;
575
-
576
- return speedUp($el.offsetWidth / velocity);
577
- },
499
+ selSlides(_ref3) {let { selList, selSlides } = _ref3;
500
+ return selList + " " + (selSlides || '> *');
501
+ },
578
502
 
579
- list: function(ref, $el) {
580
- var selList = ref.selList;
503
+ slides: {
504
+ get() {
505
+ return uikitUtil.$$(this.selSlides, this.$el);
506
+ },
581
507
 
582
- return uikitUtil.$(selList, $el);
583
- },
508
+ watch() {
509
+ this.$reset();
510
+ } },
584
511
 
585
- maxIndex: function() {
586
- return this.length - 1;
587
- },
588
512
 
589
- selSlides: function(ref) {
590
- var selList = ref.selList;
591
- var selSlides = ref.selSlides;
513
+ length() {
514
+ return this.slides.length;
515
+ } },
592
516
 
593
- return (selList + " " + (selSlides || '> *'));
594
- },
595
517
 
596
- slides: {
518
+ events: {
519
+ itemshown() {
520
+ this.$update(this.list);
521
+ } },
597
522
 
598
- get: function() {
599
- return uikitUtil.$$(this.selSlides, this.$el);
600
- },
601
523
 
602
- watch: function() {
603
- this.$reset();
604
- }
524
+ methods: {
525
+ show(index, force) {if (force === void 0) {force = false;}
526
+ if (this.dragging || !this.length) {
527
+ return;
528
+ }
605
529
 
606
- },
530
+ const { stack } = this;
531
+ const queueIndex = force ? 0 : stack.length;
532
+ const reset = () => {
533
+ stack.splice(queueIndex, 1);
607
534
 
608
- length: function() {
609
- return this.slides.length;
535
+ if (stack.length) {
536
+ this.show(stack.shift(), true);
610
537
  }
538
+ };
611
539
 
612
- },
613
-
614
- events: {
540
+ stack[force ? 'unshift' : 'push'](index);
615
541
 
616
- itemshown: function() {
617
- this.$update(this.list);
542
+ if (!force && stack.length > 1) {
543
+ if (stack.length === 2) {
544
+ this._transitioner.forward(Math.min(this.duration, 200));
618
545
  }
619
546
 
620
- },
621
-
622
- methods: {
623
-
624
- show: function(index, force) {
625
- var this$1$1 = this;
626
- if ( force === void 0 ) force = false;
627
-
628
-
629
- if (this.dragging || !this.length) {
630
- return;
631
- }
632
-
633
- var ref = this;
634
- var stack = ref.stack;
635
- var queueIndex = force ? 0 : stack.length;
636
- var reset = function () {
637
- stack.splice(queueIndex, 1);
638
-
639
- if (stack.length) {
640
- this$1$1.show(stack.shift(), true);
641
- }
642
- };
643
-
644
- stack[force ? 'unshift' : 'push'](index);
645
-
646
- if (!force && stack.length > 1) {
647
-
648
- if (stack.length === 2) {
649
- this._transitioner.forward(Math.min(this.duration, 200));
650
- }
651
-
652
- return;
653
- }
654
-
655
- var prevIndex = this.getIndex(this.index);
656
- var prev = uikitUtil.hasClass(this.slides, this.clsActive) && this.slides[prevIndex];
657
- var nextIndex = this.getIndex(index, this.index);
658
- var next = this.slides[nextIndex];
659
-
660
- if (prev === next) {
661
- reset();
662
- return;
663
- }
664
-
665
- this.dir = getDirection(index, prevIndex);
666
- this.prevIndex = prevIndex;
667
- this.index = nextIndex;
668
-
669
- if (prev && !uikitUtil.trigger(prev, 'beforeitemhide', [this])
670
- || !uikitUtil.trigger(next, 'beforeitemshow', [this, prev])
671
- ) {
672
- this.index = this.prevIndex;
673
- reset();
674
- return;
547
+ return;
548
+ }
549
+
550
+ const prevIndex = this.getIndex(this.index);
551
+ const prev = uikitUtil.hasClass(this.slides, this.clsActive) && this.slides[prevIndex];
552
+ const nextIndex = this.getIndex(index, this.index);
553
+ const next = this.slides[nextIndex];
554
+
555
+ if (prev === next) {
556
+ reset();
557
+ return;
558
+ }
559
+
560
+ this.dir = getDirection(index, prevIndex);
561
+ this.prevIndex = prevIndex;
562
+ this.index = nextIndex;
563
+
564
+ if (
565
+ prev && !uikitUtil.trigger(prev, 'beforeitemhide', [this]) ||
566
+ !uikitUtil.trigger(next, 'beforeitemshow', [this, prev]))
567
+ {
568
+ this.index = this.prevIndex;
569
+ reset();
570
+ return;
571
+ }
572
+
573
+ const promise = this._show(prev, next, force).then(() => {
574
+ prev && uikitUtil.trigger(prev, 'itemhidden', [this]);
575
+ uikitUtil.trigger(next, 'itemshown', [this]);
576
+
577
+ return new Promise((resolve) => {
578
+ uikitUtil.fastdom.write(() => {
579
+ stack.shift();
580
+ if (stack.length) {
581
+ this.show(stack.shift(), true);
582
+ } else {
583
+ this._transitioner = null;
675
584
  }
585
+ resolve();
586
+ });
587
+ });
588
+ });
676
589
 
677
- var promise = this._show(prev, next, force).then(function () {
678
-
679
- prev && uikitUtil.trigger(prev, 'itemhidden', [this$1$1]);
680
- uikitUtil.trigger(next, 'itemshown', [this$1$1]);
681
-
682
- return new uikitUtil.Promise(function (resolve) {
683
- uikitUtil.fastdom.write(function () {
684
- stack.shift();
685
- if (stack.length) {
686
- this$1$1.show(stack.shift(), true);
687
- } else {
688
- this$1$1._transitioner = null;
689
- }
690
- resolve();
691
- });
692
- });
590
+ prev && uikitUtil.trigger(prev, 'itemhide', [this]);
591
+ uikitUtil.trigger(next, 'itemshow', [this]);
693
592
 
694
- });
593
+ return promise;
594
+ },
695
595
 
696
- prev && uikitUtil.trigger(prev, 'itemhide', [this]);
697
- uikitUtil.trigger(next, 'itemshow', [this]);
596
+ getIndex(index, prev) {if (index === void 0) {index = this.index;}if (prev === void 0) {prev = this.index;}
597
+ return uikitUtil.clamp(uikitUtil.getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
598
+ },
698
599
 
699
- return promise;
600
+ getValidIndex(index, prevIndex) {if (index === void 0) {index = this.index;}if (prevIndex === void 0) {prevIndex = this.prevIndex;}
601
+ return this.getIndex(index, prevIndex);
602
+ },
700
603
 
701
- },
604
+ _show(prev, next, force) {
605
+ this._transitioner = this._getTransitioner(prev, next, this.dir, {
606
+ easing: force ?
607
+ next.offsetWidth < 600 ?
608
+ 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */ :
609
+ 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */ :
610
+ this.easing,
611
+ ...this.transitionOptions });
702
612
 
703
- getIndex: function(index, prev) {
704
- if ( index === void 0 ) index = this.index;
705
- if ( prev === void 0 ) prev = this.index;
706
613
 
707
- return uikitUtil.clamp(uikitUtil.getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
708
- },
614
+ if (!force && !prev) {
615
+ this._translate(1);
616
+ return Promise.resolve();
617
+ }
709
618
 
710
- getValidIndex: function(index, prevIndex) {
711
- if ( index === void 0 ) index = this.index;
712
- if ( prevIndex === void 0 ) prevIndex = this.prevIndex;
619
+ const { length } = this.stack;
620
+ return this._transitioner[length > 1 ? 'forward' : 'show'](
621
+ length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration,
622
+ this.percent);
713
623
 
714
- return this.getIndex(index, prevIndex);
715
- },
624
+ },
716
625
 
717
- _show: function(prev, next, force) {
626
+ _getDistance(prev, next) {
627
+ return this._getTransitioner(prev, prev !== next && next).getDistance();
628
+ },
718
629
 
719
- this._transitioner = this._getTransitioner(
720
- prev,
721
- next,
722
- this.dir,
723
- uikitUtil.assign({
724
- easing: force
725
- ? next.offsetWidth < 600
726
- ? 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */
727
- : 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */
728
- : this.easing
729
- }, this.transitionOptions)
730
- );
630
+ _translate(percent, prev, next) {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}
631
+ const transitioner = this._getTransitioner(prev !== next ? prev : false, next);
632
+ transitioner.translate(percent);
633
+ return transitioner;
634
+ },
731
635
 
732
- if (!force && !prev) {
733
- this._translate(1);
734
- return uikitUtil.Promise.resolve();
735
- }
636
+ _getTransitioner(
637
+ prev,
638
+ next,
639
+ dir,
640
+ options)
641
+ {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}if (dir === void 0) {dir = this.dir || 1;}if (options === void 0) {options = this.transitionOptions;}
642
+ return new this.Transitioner(
643
+ uikitUtil.isNumber(prev) ? this.slides[prev] : prev,
644
+ uikitUtil.isNumber(next) ? this.slides[next] : next,
645
+ dir * (uikitUtil.isRtl ? -1 : 1),
646
+ options);
736
647
 
737
- var ref = this.stack;
738
- var length = ref.length;
739
- return this._transitioner[length > 1 ? 'forward' : 'show'](length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration, this.percent);
740
-
741
- },
742
-
743
- _getDistance: function(prev, next) {
744
- return this._getTransitioner(prev, prev !== next && next).getDistance();
745
- },
746
-
747
- _translate: function(percent, prev, next) {
748
- if ( prev === void 0 ) prev = this.prevIndex;
749
- if ( next === void 0 ) next = this.index;
750
-
751
- var transitioner = this._getTransitioner(prev !== next ? prev : false, next);
752
- transitioner.translate(percent);
753
- return transitioner;
754
- },
755
-
756
- _getTransitioner: function(prev, next, dir, options) {
757
- if ( prev === void 0 ) prev = this.prevIndex;
758
- if ( next === void 0 ) next = this.index;
759
- if ( dir === void 0 ) dir = this.dir || 1;
760
- if ( options === void 0 ) options = this.transitionOptions;
761
-
762
- return new this.Transitioner(
763
- uikitUtil.isNumber(prev) ? this.slides[prev] : prev,
764
- uikitUtil.isNumber(next) ? this.slides[next] : next,
765
- dir * (uikitUtil.isRtl ? -1 : 1),
766
- options
767
- );
768
- }
648
+ } } };
769
649
 
770
- }
771
650
 
772
- };
773
651
 
774
652
  function getDirection(index, prevIndex) {
775
- return index === 'next'
776
- ? 1
777
- : index === 'previous'
778
- ? -1
779
- : index < prevIndex
780
- ? -1
781
- : 1;
653
+ return index === 'next' ? 1 : index === 'previous' ? -1 : index < prevIndex ? -1 : 1;
782
654
  }
783
655
 
784
656
  function speedUp(x) {
785
- return .5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
657
+ return 0.5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
786
658
  }
787
659
 
788
660
  var Slideshow = {
661
+ mixins: [Slider],
789
662
 
790
- mixins: [Slider],
663
+ props: {
664
+ animation: String },
791
665
 
792
- props: {
793
- animation: String
794
- },
795
666
 
796
- data: {
797
- animation: 'slide',
798
- clsActivated: 'uk-transition-active',
799
- Animations: Animations$1,
800
- Transitioner: Transitioner
801
- },
667
+ data: {
668
+ animation: 'slide',
669
+ clsActivated: 'uk-transition-active',
670
+ Animations: Animations$1,
671
+ Transitioner },
802
672
 
803
- computed: {
804
673
 
805
- animation: function(ref) {
806
- var animation = ref.animation;
807
- var Animations = ref.Animations;
674
+ computed: {
675
+ animation(_ref) {let { animation, Animations } = _ref;
676
+ return { ...(Animations[animation] || Animations.slide), name: animation };
677
+ },
808
678
 
809
- return uikitUtil.assign(Animations[animation] || Animations.slide, {name: animation});
810
- },
679
+ transitionOptions() {
680
+ return { animation: this.animation };
681
+ } },
811
682
 
812
- transitionOptions: function() {
813
- return {animation: this.animation};
814
- }
815
683
 
684
+ events: {
685
+ 'itemshow itemhide itemshown itemhidden'(_ref2) {let { target } = _ref2;
686
+ this.$update(target);
816
687
  },
817
688
 
818
- events: {
819
-
820
- 'itemshow itemhide itemshown itemhidden': function(ref) {
821
- var target = ref.target;
689
+ beforeitemshow(_ref3) {let { target } = _ref3;
690
+ uikitUtil.addClass(target, this.clsActive);
691
+ },
822
692
 
823
- this.$update(target);
824
- },
693
+ itemshown(_ref4) {let { target } = _ref4;
694
+ uikitUtil.addClass(target, this.clsActivated);
695
+ },
825
696
 
826
- beforeitemshow: function(ref) {
827
- var target = ref.target;
697
+ itemhidden(_ref5) {let { target } = _ref5;
698
+ uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
699
+ } } };
828
700
 
829
- uikitUtil.addClass(target, this.clsActive);
830
- },
701
+ var Animations = {
702
+ ...Animations$1,
703
+ fade: {
704
+ show() {
705
+ return [{ opacity: 0, zIndex: 0 }, { zIndex: -1 }];
706
+ },
831
707
 
832
- itemshown: function(ref) {
833
- var target = ref.target;
708
+ percent(current) {
709
+ return 1 - uikitUtil.css(current, 'opacity');
710
+ },
834
711
 
835
- uikitUtil.addClass(target, this.clsActivated);
836
- },
712
+ translate(percent) {
713
+ return [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }];
714
+ } },
837
715
 
838
- itemhidden: function(ref) {
839
- var target = ref.target;
840
716
 
841
- uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
842
- }
717
+ scale: {
718
+ show() {
719
+ return [{ opacity: 0, transform: scale3d(1 + 0.5), zIndex: 0 }, { zIndex: -1 }];
720
+ },
843
721
 
844
- }
722
+ percent(current) {
723
+ return 1 - uikitUtil.css(current, 'opacity');
724
+ },
845
725
 
846
- };
726
+ translate(percent) {
727
+ return [
728
+ { opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },
729
+ { zIndex: -1 }];
847
730
 
848
- var Animations = uikitUtil.assign({}, Animations$1, {
731
+ } },
849
732
 
850
- fade: {
851
733
 
852
- show: function() {
853
- return [
854
- {opacity: 0, zIndex: 0},
855
- {zIndex: -1}
856
- ];
857
- },
734
+ pull: {
735
+ show(dir) {
736
+ return dir < 0 ?
737
+ [
738
+ { transform: translate(30), zIndex: -1 },
739
+ { transform: translate(), zIndex: 0 }] :
858
740
 
859
- percent: function(current) {
860
- return 1 - uikitUtil.css(current, 'opacity');
861
- },
741
+ [
742
+ { transform: translate(-100), zIndex: 0 },
743
+ { transform: translate(), zIndex: -1 }];
862
744
 
863
- translate: function(percent) {
864
- return [
865
- {opacity: 1 - percent, zIndex: 0},
866
- {zIndex: -1}
867
- ];
868
- }
745
+ },
869
746
 
747
+ percent(current, next, dir) {
748
+ return dir < 0 ? 1 - translated(next) : translated(current);
870
749
  },
871
750
 
872
- scale: {
751
+ translate(percent, dir) {
752
+ return dir < 0 ?
753
+ [
754
+ { transform: translate(30 * percent), zIndex: -1 },
755
+ { transform: translate(-100 * (1 - percent)), zIndex: 0 }] :
873
756
 
874
- show: function() {
875
- return [
876
- {opacity: 0, transform: scale3d(1 + .5), zIndex: 0},
877
- {zIndex: -1}
878
- ];
879
- },
757
+ [
758
+ { transform: translate(-percent * 100), zIndex: 0 },
759
+ { transform: translate(30 * (1 - percent)), zIndex: -1 }];
880
760
 
881
- percent: function(current) {
882
- return 1 - uikitUtil.css(current, 'opacity');
883
- },
761
+ } },
884
762
 
885
- translate: function(percent) {
886
- return [
887
- {opacity: 1 - percent, transform: scale3d(1 + .5 * percent), zIndex: 0},
888
- {zIndex: -1}
889
- ];
890
- }
891
763
 
892
- },
764
+ push: {
765
+ show(dir) {
766
+ return dir < 0 ?
767
+ [
768
+ { transform: translate(100), zIndex: 0 },
769
+ { transform: translate(), zIndex: -1 }] :
893
770
 
894
- pull: {
895
-
896
- show: function(dir) {
897
- return dir < 0
898
- ? [
899
- {transform: translate(30), zIndex: -1},
900
- {transform: translate(), zIndex: 0}
901
- ]
902
- : [
903
- {transform: translate(-100), zIndex: 0},
904
- {transform: translate(), zIndex: -1}
905
- ];
906
- },
907
-
908
- percent: function(current, next, dir) {
909
- return dir < 0
910
- ? 1 - translated(next)
911
- : translated(current);
912
- },
913
-
914
- translate: function(percent, dir) {
915
- return dir < 0
916
- ? [
917
- {transform: translate(30 * percent), zIndex: -1},
918
- {transform: translate(-100 * (1 - percent)), zIndex: 0}
919
- ]
920
- : [
921
- {transform: translate(-percent * 100), zIndex: 0},
922
- {transform: translate(30 * (1 - percent)), zIndex: -1}
923
- ];
924
- }
771
+ [
772
+ { transform: translate(-30), zIndex: -1 },
773
+ { transform: translate(), zIndex: 0 }];
925
774
 
926
775
  },
927
776
 
928
- push: {
929
-
930
- show: function(dir) {
931
- return dir < 0
932
- ? [
933
- {transform: translate(100), zIndex: 0},
934
- {transform: translate(), zIndex: -1}
935
- ]
936
- : [
937
- {transform: translate(-30), zIndex: -1},
938
- {transform: translate(), zIndex: 0}
939
- ];
940
- },
941
-
942
- percent: function(current, next, dir) {
943
- return dir > 0
944
- ? 1 - translated(next)
945
- : translated(current);
946
- },
947
-
948
- translate: function(percent, dir) {
949
- return dir < 0
950
- ? [
951
- {transform: translate(percent * 100), zIndex: 0},
952
- {transform: translate(-30 * (1 - percent)), zIndex: -1}
953
- ]
954
- : [
955
- {transform: translate(-30 * percent), zIndex: -1},
956
- {transform: translate(100 * (1 - percent)), zIndex: 0}
957
- ];
958
- }
777
+ percent(current, next, dir) {
778
+ return dir > 0 ? 1 - translated(next) : translated(current);
779
+ },
959
780
 
960
- }
781
+ translate(percent, dir) {
782
+ return dir < 0 ?
783
+ [
784
+ { transform: translate(percent * 100), zIndex: 0 },
785
+ { transform: translate(-30 * (1 - percent)), zIndex: -1 }] :
786
+
787
+ [
788
+ { transform: translate(-30 * percent), zIndex: -1 },
789
+ { transform: translate(100 * (1 - percent)), zIndex: 0 }];
961
790
 
962
- });
791
+ } } };
963
792
 
964
793
  var SliderReactive = {
794
+ update: {
795
+ write() {
796
+ if (this.stack.length || this.dragging) {
797
+ return;
798
+ }
965
799
 
966
- update: {
800
+ const index = this.getValidIndex(this.index);
967
801
 
968
- write: function() {
802
+ if (!~this.prevIndex || this.index !== index) {
803
+ this.show(index);
804
+ }
805
+ },
969
806
 
970
- if (this.stack.length || this.dragging) {
971
- return;
972
- }
807
+ events: ['resize'] } };
973
808
 
974
- var index = this.getValidIndex(this.index);
809
+ var SliderPreload = {
810
+ connected() {
811
+ if (window.IntersectionObserver) {
812
+ this.observer = new IntersectionObserver(
813
+ (entries) => {
814
+ if (entries.some((entry) => entry.isIntersecting)) {
815
+ removeLazyLoad(this.getAdjacentSlides());
816
+ }
817
+ },
818
+ { rootMargin: '50% 50%' });
975
819
 
976
- if (!~this.prevIndex || this.index !== index) {
977
- this.show(index);
978
- }
820
+ this.observer.observe(this.$el);
821
+ }
822
+ },
979
823
 
980
- },
824
+ disconnected() {
825
+ this.observer && this.observer.disconnect();
826
+ },
981
827
 
982
- events: ['resize']
828
+ update: {
829
+ read() {
830
+ if (uikitUtil.isVisible(this.$el)) {
831
+ removeLazyLoad(this.getAdjacentSlides());
832
+ }
833
+ },
983
834
 
984
- }
835
+ events: ['resize'] } };
985
836
 
986
- };
987
837
 
988
- var Component = {
989
838
 
990
- mixins: [Class, Slideshow, SliderReactive],
839
+ function removeLazyLoad(elements) {if (elements === void 0) {elements = [];}
840
+ for (const el of elements) {
841
+ el && uikitUtil.$$('img[loading="lazy"]', el).forEach((el) => uikitUtil.removeAttr(el, 'loading'));
842
+ }
843
+ }
991
844
 
992
- props: {
993
- ratio: String,
994
- minHeight: Number,
995
- maxHeight: Number
996
- },
845
+ var Component = {
846
+ mixins: [Class, Slideshow, SliderReactive, SliderPreload],
997
847
 
998
- data: {
999
- ratio: '16:9',
1000
- minHeight: false,
1001
- maxHeight: false,
1002
- selList: '.uk-slideshow-items',
1003
- attrItem: 'uk-slideshow-item',
1004
- selNav: '.uk-slideshow-nav',
1005
- Animations: Animations
1006
- },
848
+ props: {
849
+ ratio: String,
850
+ minHeight: Number,
851
+ maxHeight: Number },
1007
852
 
1008
- update: {
1009
853
 
1010
- read: function() {
854
+ data: {
855
+ ratio: '16:9',
856
+ minHeight: false,
857
+ maxHeight: false,
858
+ selList: '.uk-slideshow-items',
859
+ attrItem: 'uk-slideshow-item',
860
+ selNav: '.uk-slideshow-nav',
861
+ Animations },
1011
862
 
1012
- if (!this.list) {
1013
- return false;
1014
- }
1015
863
 
1016
- var ref = this.ratio.split(':').map(Number);
1017
- var width = ref[0];
1018
- var height = ref[1];
864
+ update: {
865
+ read() {
866
+ if (!this.list) {
867
+ return false;
868
+ }
1019
869
 
1020
- height = height * this.list.offsetWidth / width || 0;
870
+ let [width, height] = this.ratio.split(':').map(Number);
1021
871
 
1022
- if (this.minHeight) {
1023
- height = Math.max(this.minHeight, height);
1024
- }
872
+ height = height * this.list.offsetWidth / width || 0;
1025
873
 
1026
- if (this.maxHeight) {
1027
- height = Math.min(this.maxHeight, height);
1028
- }
874
+ if (this.minHeight) {
875
+ height = Math.max(this.minHeight, height);
876
+ }
1029
877
 
1030
- return {height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box')};
1031
- },
878
+ if (this.maxHeight) {
879
+ height = Math.min(this.maxHeight, height);
880
+ }
1032
881
 
1033
- write: function(ref) {
1034
- var height = ref.height;
882
+ return { height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box') };
883
+ },
1035
884
 
1036
- height > 0 && uikitUtil.css(this.list, 'minHeight', height);
1037
- },
885
+ write(_ref) {let { height } = _ref;
886
+ height > 0 && uikitUtil.css(this.list, 'minHeight', height);
887
+ },
1038
888
 
1039
- events: ['resize']
889
+ events: ['resize'] },
1040
890
 
1041
- }
1042
891
 
1043
- };
892
+ methods: {
893
+ getAdjacentSlides() {
894
+ return [1, -1].map((i) => this.slides[this.getIndex(this.index + i)]);
895
+ } } };
1044
896
 
1045
897
  if (typeof window !== 'undefined' && window.UIkit) {
1046
- window.UIkit.component('slideshow', Component);
898
+ window.UIkit.component('slideshow', Component);
1047
899
  }
1048
900
 
1049
901
  return Component;