uikit 3.11.2-dev.9433cd5fd → 3.11.2-dev.946d2efea

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 (226) 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 +46 -29
  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 +133 -201
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +133 -201
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +135 -207
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +135 -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 +1091 -1319
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1137 -1396
  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 +347 -361
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +345 -360
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +749 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +345 -360
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +628 -798
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -620
  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 +156 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5323 -6536
  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 +8181 -9810
  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 +199 -187
  66. package/src/js/components/countdown.js +26 -52
  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 +9 -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 +16 -30
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +117 -89
  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 +125 -106
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +53 -63
  84. package/src/js/core/accordion.js +58 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +17 -69
  87. package/src/js/core/cover.js +15 -15
  88. package/src/js/core/drop.js +109 -93
  89. package/src/js/core/form-custom.js +22 -27
  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 +30 -34
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +96 -83
  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 +112 -88
  102. package/src/js/core/offcanvas.js +51 -54
  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 +161 -128
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +56 -47
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +69 -68
  113. package/src/js/core/video.js +22 -21
  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/lazyload.js +20 -0
  122. package/src/js/mixin/media.js +5 -10
  123. package/src/js/mixin/modal.js +89 -66
  124. package/src/js/mixin/parallax.js +149 -107
  125. package/src/js/mixin/position.js +26 -20
  126. package/src/js/mixin/slider-autoplay.js +12 -21
  127. package/src/js/mixin/slider-drag.js +64 -65
  128. package/src/js/mixin/slider-nav.js +26 -35
  129. package/src/js/mixin/slider-reactive.js +2 -8
  130. package/src/js/mixin/slider.js +47 -60
  131. package/src/js/mixin/slideshow.js +12 -22
  132. package/src/js/mixin/swipe.js +72 -0
  133. package/src/js/mixin/togglable.js +89 -63
  134. package/src/js/uikit-core.js +2 -4
  135. package/src/js/uikit.js +2 -4
  136. package/src/js/util/ajax.js +25 -40
  137. package/src/js/util/animation.js +77 -75
  138. package/src/js/util/attr.js +17 -21
  139. package/src/js/util/class.js +14 -52
  140. package/src/js/util/dimensions.js +58 -45
  141. package/src/js/util/dom.js +39 -66
  142. package/src/js/util/env.js +7 -12
  143. package/src/js/util/event.js +60 -59
  144. package/src/js/util/fastdom.js +1 -6
  145. package/src/js/util/filter.js +17 -34
  146. package/src/js/util/index.js +1 -1
  147. package/src/js/util/lang.js +82 -121
  148. package/src/js/util/mouse.js +19 -17
  149. package/src/js/util/observer.js +36 -0
  150. package/src/js/util/options.js +32 -46
  151. package/src/js/util/player.js +41 -36
  152. package/src/js/util/position.js +54 -46
  153. package/src/js/util/selector.js +43 -58
  154. package/src/js/util/style.js +39 -49
  155. package/src/js/util/viewport.js +75 -64
  156. package/src/less/components/base.less +10 -33
  157. package/src/less/components/flex.less +0 -9
  158. package/src/less/components/form-range.less +48 -95
  159. package/src/less/components/form.less +0 -1
  160. package/src/less/components/height.less +3 -0
  161. package/src/less/components/leader.less +0 -1
  162. package/src/less/components/lightbox.less +0 -1
  163. package/src/less/components/modal.less +3 -7
  164. package/src/less/components/navbar.less +0 -7
  165. package/src/less/components/progress.less +14 -36
  166. package/src/less/components/slider.less +0 -3
  167. package/src/less/components/slideshow.less +0 -3
  168. package/src/less/components/text.less +16 -32
  169. package/src/less/components/utility.less +25 -0
  170. package/src/scss/components/base.scss +10 -33
  171. package/src/scss/components/flex.scss +0 -9
  172. package/src/scss/components/form-range.scss +48 -95
  173. package/src/scss/components/form.scss +3 -4
  174. package/src/scss/components/height.scss +3 -0
  175. package/src/scss/components/icon.scss +2 -2
  176. package/src/scss/components/leader.scss +0 -1
  177. package/src/scss/components/lightbox.scss +0 -1
  178. package/src/scss/components/modal.scss +3 -7
  179. package/src/scss/components/navbar.scss +0 -7
  180. package/src/scss/components/progress.scss +14 -36
  181. package/src/scss/components/search.scss +1 -1
  182. package/src/scss/components/slider.scss +0 -3
  183. package/src/scss/components/slideshow.scss +0 -3
  184. package/src/scss/components/text.scss +16 -32
  185. package/src/scss/components/utility.scss +25 -0
  186. package/src/scss/mixins-theme.scss +1 -1
  187. package/src/scss/mixins.scss +1 -1
  188. package/src/scss/variables-theme.scss +9 -9
  189. package/src/scss/variables.scss +9 -9
  190. package/tests/align.html +10 -10
  191. package/tests/animation.html +2 -2
  192. package/tests/article.html +2 -2
  193. package/tests/base.html +3 -3
  194. package/tests/card.html +10 -10
  195. package/tests/column.html +3 -3
  196. package/tests/comment.html +9 -9
  197. package/tests/dotnav.html +3 -3
  198. package/tests/image.html +296 -48
  199. package/tests/images/image-type.avif +0 -0
  200. package/tests/images/image-type.jpeg +0 -0
  201. package/tests/images/image-type.webp +0 -0
  202. package/tests/index.html +8 -8
  203. package/tests/js/index.js +114 -85
  204. package/tests/lightbox.html +10 -10
  205. package/tests/marker.html +2 -2
  206. package/tests/modal.html +8 -9
  207. package/tests/navbar.html +2 -2
  208. package/tests/overlay.html +7 -7
  209. package/tests/parallax.html +16 -7
  210. package/tests/position.html +12 -12
  211. package/tests/slidenav.html +12 -12
  212. package/tests/slider.html +20 -20
  213. package/tests/sortable.html +1 -1
  214. package/tests/sticky-parallax.html +56 -71
  215. package/tests/svg.html +6 -6
  216. package/tests/table.html +11 -11
  217. package/tests/thumbnav.html +12 -12
  218. package/tests/transition.html +30 -30
  219. package/tests/utility.html +50 -33
  220. package/tests/video.html +1 -1
  221. package/tests/width.html +1 -1
  222. package/src/js/mixin/flex-bug.js +0 -56
  223. package/src/js/util/promise.js +0 -191
  224. package/tests/images/animated.gif +0 -0
  225. package/tests/images/test.avif +0 -0
  226. package/tests/images/test.webp +0 -0
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.11.2-dev.9433cd5fd | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.11.2-dev.946d2efea | 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,873 @@
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
- },
578
-
579
- list: function(ref, $el) {
580
- var selList = ref.selList;
581
-
582
- return uikitUtil.$(selList, $el);
583
- },
499
+ selSlides(_ref3) {let { selList, selSlides } = _ref3;
500
+ return selList + " " + (selSlides || '> *');
501
+ },
584
502
 
585
- maxIndex: function() {
586
- return this.length - 1;
587
- },
503
+ slides: {
504
+ get() {
505
+ return uikitUtil.$$(this.selSlides, this.$el);
506
+ },
588
507
 
589
- selSlides: function(ref) {
590
- var selList = ref.selList;
591
- var selSlides = ref.selSlides;
508
+ watch() {
509
+ this.$reset();
510
+ } },
592
511
 
593
- return (selList + " " + (selSlides || '> *'));
594
- },
595
512
 
596
- slides: {
513
+ length() {
514
+ return this.slides.length;
515
+ } },
597
516
 
598
- get: function() {
599
- return uikitUtil.$$(this.selSlides, this.$el);
600
- },
601
517
 
602
- watch: function() {
603
- this.$reset();
604
- }
518
+ methods: {
519
+ show(index, force) {if (force === void 0) {force = false;}
520
+ if (this.dragging || !this.length) {
521
+ return;
522
+ }
605
523
 
606
- },
524
+ const { stack } = this;
525
+ const queueIndex = force ? 0 : stack.length;
526
+ const reset = () => {
527
+ stack.splice(queueIndex, 1);
607
528
 
608
- length: function() {
609
- return this.slides.length;
529
+ if (stack.length) {
530
+ this.show(stack.shift(), true);
610
531
  }
532
+ };
611
533
 
612
- },
613
-
614
- events: {
534
+ stack[force ? 'unshift' : 'push'](index);
615
535
 
616
- itemshown: function() {
617
- this.$update(this.list);
536
+ if (!force && stack.length > 1) {
537
+ if (stack.length === 2) {
538
+ this._transitioner.forward(Math.min(this.duration, 200));
618
539
  }
619
540
 
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;
541
+ return;
542
+ }
543
+
544
+ const prevIndex = this.getIndex(this.index);
545
+ const prev = uikitUtil.hasClass(this.slides, this.clsActive) && this.slides[prevIndex];
546
+ const nextIndex = this.getIndex(index, this.index);
547
+ const next = this.slides[nextIndex];
548
+
549
+ if (prev === next) {
550
+ reset();
551
+ return;
552
+ }
553
+
554
+ this.dir = getDirection(index, prevIndex);
555
+ this.prevIndex = prevIndex;
556
+ this.index = nextIndex;
557
+
558
+ if (
559
+ prev && !uikitUtil.trigger(prev, 'beforeitemhide', [this]) ||
560
+ !uikitUtil.trigger(next, 'beforeitemshow', [this, prev]))
561
+ {
562
+ this.index = this.prevIndex;
563
+ reset();
564
+ return;
565
+ }
566
+
567
+ const promise = this._show(prev, next, force).then(() => {
568
+ prev && uikitUtil.trigger(prev, 'itemhidden', [this]);
569
+ uikitUtil.trigger(next, 'itemshown', [this]);
570
+
571
+ return new Promise((resolve) => {
572
+ uikitUtil.fastdom.write(() => {
573
+ stack.shift();
574
+ if (stack.length) {
575
+ this.show(stack.shift(), true);
576
+ } else {
577
+ this._transitioner = null;
675
578
  }
579
+ resolve();
580
+ });
581
+ });
582
+ });
676
583
 
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
- });
584
+ prev && uikitUtil.trigger(prev, 'itemhide', [this]);
585
+ uikitUtil.trigger(next, 'itemshow', [this]);
693
586
 
694
- });
587
+ return promise;
588
+ },
695
589
 
696
- prev && uikitUtil.trigger(prev, 'itemhide', [this]);
697
- uikitUtil.trigger(next, 'itemshow', [this]);
590
+ getIndex(index, prev) {if (index === void 0) {index = this.index;}if (prev === void 0) {prev = this.index;}
591
+ return uikitUtil.clamp(uikitUtil.getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
592
+ },
698
593
 
699
- return promise;
594
+ getValidIndex(index, prevIndex) {if (index === void 0) {index = this.index;}if (prevIndex === void 0) {prevIndex = this.prevIndex;}
595
+ return this.getIndex(index, prevIndex);
596
+ },
700
597
 
701
- },
598
+ _show(prev, next, force) {
599
+ this._transitioner = this._getTransitioner(prev, next, this.dir, {
600
+ easing: force ?
601
+ next.offsetWidth < 600 ?
602
+ 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */ :
603
+ 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */ :
604
+ this.easing,
605
+ ...this.transitionOptions });
702
606
 
703
- getIndex: function(index, prev) {
704
- if ( index === void 0 ) index = this.index;
705
- if ( prev === void 0 ) prev = this.index;
706
607
 
707
- return uikitUtil.clamp(uikitUtil.getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
708
- },
608
+ if (!force && !prev) {
609
+ this._translate(1);
610
+ return Promise.resolve();
611
+ }
709
612
 
710
- getValidIndex: function(index, prevIndex) {
711
- if ( index === void 0 ) index = this.index;
712
- if ( prevIndex === void 0 ) prevIndex = this.prevIndex;
613
+ const { length } = this.stack;
614
+ return this._transitioner[length > 1 ? 'forward' : 'show'](
615
+ length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration,
616
+ this.percent);
713
617
 
714
- return this.getIndex(index, prevIndex);
715
- },
618
+ },
716
619
 
717
- _show: function(prev, next, force) {
620
+ _getDistance(prev, next) {
621
+ return this._getTransitioner(prev, prev !== next && next).getDistance();
622
+ },
718
623
 
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
- );
624
+ _translate(percent, prev, next) {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}
625
+ const transitioner = this._getTransitioner(prev !== next ? prev : false, next);
626
+ transitioner.translate(percent);
627
+ return transitioner;
628
+ },
731
629
 
732
- if (!force && !prev) {
733
- this._translate(1);
734
- return uikitUtil.Promise.resolve();
735
- }
630
+ _getTransitioner(
631
+ prev,
632
+ next,
633
+ dir,
634
+ options)
635
+ {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;}
636
+ return new this.Transitioner(
637
+ uikitUtil.isNumber(prev) ? this.slides[prev] : prev,
638
+ uikitUtil.isNumber(next) ? this.slides[next] : next,
639
+ dir * (uikitUtil.isRtl ? -1 : 1),
640
+ options);
736
641
 
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
- }
642
+ } } };
769
643
 
770
- }
771
644
 
772
- };
773
645
 
774
646
  function getDirection(index, prevIndex) {
775
- return index === 'next'
776
- ? 1
777
- : index === 'previous'
778
- ? -1
779
- : index < prevIndex
780
- ? -1
781
- : 1;
647
+ return index === 'next' ? 1 : index === 'previous' ? -1 : index < prevIndex ? -1 : 1;
782
648
  }
783
649
 
784
650
  function speedUp(x) {
785
- return .5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
651
+ return 0.5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
786
652
  }
787
653
 
788
654
  var Slideshow = {
655
+ mixins: [Slider],
789
656
 
790
- mixins: [Slider],
657
+ props: {
658
+ animation: String },
791
659
 
792
- props: {
793
- animation: String
794
- },
795
660
 
796
- data: {
797
- animation: 'slide',
798
- clsActivated: 'uk-transition-active',
799
- Animations: Animations$1,
800
- Transitioner: Transitioner
801
- },
661
+ data: {
662
+ animation: 'slide',
663
+ clsActivated: 'uk-transition-active',
664
+ Animations: Animations$1,
665
+ Transitioner },
802
666
 
803
- computed: {
804
667
 
805
- animation: function(ref) {
806
- var animation = ref.animation;
807
- var Animations = ref.Animations;
668
+ computed: {
669
+ animation(_ref) {let { animation, Animations } = _ref;
670
+ return { ...(Animations[animation] || Animations.slide), name: animation };
671
+ },
808
672
 
809
- return uikitUtil.assign(Animations[animation] || Animations.slide, {name: animation});
810
- },
673
+ transitionOptions() {
674
+ return { animation: this.animation };
675
+ } },
811
676
 
812
- transitionOptions: function() {
813
- return {animation: this.animation};
814
- }
815
677
 
678
+ events: {
679
+ beforeitemshow(_ref2) {let { target } = _ref2;
680
+ uikitUtil.addClass(target, this.clsActive);
816
681
  },
817
682
 
818
- events: {
683
+ itemshown(_ref3) {let { target } = _ref3;
684
+ uikitUtil.addClass(target, this.clsActivated);
685
+ },
819
686
 
820
- 'itemshow itemhide itemshown itemhidden': function(ref) {
821
- var target = ref.target;
687
+ itemhidden(_ref4) {let { target } = _ref4;
688
+ uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
689
+ } } };
822
690
 
823
- this.$update(target);
824
- },
691
+ var Animations = {
692
+ ...Animations$1,
693
+ fade: {
694
+ show() {
695
+ return [{ opacity: 0, zIndex: 0 }, { zIndex: -1 }];
696
+ },
825
697
 
826
- beforeitemshow: function(ref) {
827
- var target = ref.target;
698
+ percent(current) {
699
+ return 1 - uikitUtil.css(current, 'opacity');
700
+ },
828
701
 
829
- uikitUtil.addClass(target, this.clsActive);
830
- },
702
+ translate(percent) {
703
+ return [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }];
704
+ } },
831
705
 
832
- itemshown: function(ref) {
833
- var target = ref.target;
834
706
 
835
- uikitUtil.addClass(target, this.clsActivated);
836
- },
707
+ scale: {
708
+ show() {
709
+ return [{ opacity: 0, transform: scale3d(1 + 0.5), zIndex: 0 }, { zIndex: -1 }];
710
+ },
837
711
 
838
- itemhidden: function(ref) {
839
- var target = ref.target;
712
+ percent(current) {
713
+ return 1 - uikitUtil.css(current, 'opacity');
714
+ },
840
715
 
841
- uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
842
- }
716
+ translate(percent) {
717
+ return [
718
+ { opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },
719
+ { zIndex: -1 }];
843
720
 
844
- }
721
+ } },
845
722
 
846
- };
847
723
 
848
- var Animations = uikitUtil.assign({}, Animations$1, {
724
+ pull: {
725
+ show(dir) {
726
+ return dir < 0 ?
727
+ [
728
+ { transform: translate(30), zIndex: -1 },
729
+ { transform: translate(), zIndex: 0 }] :
849
730
 
850
- fade: {
731
+ [
732
+ { transform: translate(-100), zIndex: 0 },
733
+ { transform: translate(), zIndex: -1 }];
851
734
 
852
- show: function() {
853
- return [
854
- {opacity: 0, zIndex: 0},
855
- {zIndex: -1}
856
- ];
857
- },
735
+ },
858
736
 
859
- percent: function(current) {
860
- return 1 - uikitUtil.css(current, 'opacity');
861
- },
737
+ percent(current, next, dir) {
738
+ return dir < 0 ? 1 - translated(next) : translated(current);
739
+ },
862
740
 
863
- translate: function(percent) {
864
- return [
865
- {opacity: 1 - percent, zIndex: 0},
866
- {zIndex: -1}
867
- ];
868
- }
741
+ translate(percent, dir) {
742
+ return dir < 0 ?
743
+ [
744
+ { transform: translate(30 * percent), zIndex: -1 },
745
+ { transform: translate(-100 * (1 - percent)), zIndex: 0 }] :
869
746
 
870
- },
747
+ [
748
+ { transform: translate(-percent * 100), zIndex: 0 },
749
+ { transform: translate(30 * (1 - percent)), zIndex: -1 }];
871
750
 
872
- scale: {
751
+ } },
873
752
 
874
- show: function() {
875
- return [
876
- {opacity: 0, transform: scale3d(1 + .5), zIndex: 0},
877
- {zIndex: -1}
878
- ];
879
- },
880
753
 
881
- percent: function(current) {
882
- return 1 - uikitUtil.css(current, 'opacity');
883
- },
754
+ push: {
755
+ show(dir) {
756
+ return dir < 0 ?
757
+ [
758
+ { transform: translate(100), zIndex: 0 },
759
+ { transform: translate(), zIndex: -1 }] :
884
760
 
885
- translate: function(percent) {
886
- return [
887
- {opacity: 1 - percent, transform: scale3d(1 + .5 * percent), zIndex: 0},
888
- {zIndex: -1}
889
- ];
890
- }
761
+ [
762
+ { transform: translate(-30), zIndex: -1 },
763
+ { transform: translate(), zIndex: 0 }];
891
764
 
892
765
  },
893
766
 
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
- }
925
-
767
+ percent(current, next, dir) {
768
+ return dir > 0 ? 1 - translated(next) : translated(current);
926
769
  },
927
770
 
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
- }
771
+ translate(percent, dir) {
772
+ return dir < 0 ?
773
+ [
774
+ { transform: translate(percent * 100), zIndex: 0 },
775
+ { transform: translate(-30 * (1 - percent)), zIndex: -1 }] :
959
776
 
960
- }
777
+ [
778
+ { transform: translate(-30 * percent), zIndex: -1 },
779
+ { transform: translate(100 * (1 - percent)), zIndex: 0 }];
961
780
 
962
- });
781
+ } } };
963
782
 
964
783
  var SliderReactive = {
784
+ update: {
785
+ write() {
786
+ if (this.stack.length || this.dragging) {
787
+ return;
788
+ }
965
789
 
966
- update: {
790
+ const index = this.getValidIndex(this.index);
967
791
 
968
- write: function() {
969
-
970
- if (this.stack.length || this.dragging) {
971
- return;
972
- }
973
-
974
- var index = this.getValidIndex(this.index);
792
+ if (!~this.prevIndex || this.index !== index) {
793
+ this.show(index);
794
+ }
795
+ },
975
796
 
976
- if (!~this.prevIndex || this.index !== index) {
977
- this.show(index);
978
- }
797
+ events: ['resize'] } };
979
798
 
980
- },
799
+ var Lazyload = {
800
+ methods: {
801
+ lazyload(observeTargets, targets) {if (observeTargets === void 0) {observeTargets = this.$el;}if (targets === void 0) {targets = this.$el;}
802
+ this.registerObserver(
803
+ uikitUtil.observeIntersection(observeTargets, (entries, observer) => {
804
+ for (const el of uikitUtil.toNodes(uikitUtil.isFunction(targets) ? targets() : targets)) {
805
+ uikitUtil.$$('[loading="lazy"]', el).forEach((el) => uikitUtil.removeAttr(el, 'loading'));
806
+ }
807
+ for (const el of entries.
808
+ filter((_ref) => {let { isIntersecting } = _ref;return isIntersecting;}).
809
+ map((_ref2) => {let { target } = _ref2;return target;})) {
810
+ observer.unobserve(el);
811
+ }
812
+ }));
981
813
 
982
- events: ['resize']
814
+ } } };
983
815
 
984
- }
816
+ var SliderPreload = {
817
+ mixins: [Lazyload],
985
818
 
986
- };
819
+ connected() {
820
+ this.lazyload(this.slides, this.getAdjacentSlides);
821
+ } };
987
822
 
988
823
  var Component = {
824
+ mixins: [Class, Slideshow, SliderReactive, SliderPreload],
989
825
 
990
- mixins: [Class, Slideshow, SliderReactive],
991
-
992
- props: {
993
- ratio: String,
994
- minHeight: Number,
995
- maxHeight: Number
996
- },
997
-
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
- },
826
+ props: {
827
+ ratio: String,
828
+ minHeight: Number,
829
+ maxHeight: Number },
1007
830
 
1008
- update: {
1009
831
 
1010
- read: function() {
832
+ data: {
833
+ ratio: '16:9',
834
+ minHeight: false,
835
+ maxHeight: false,
836
+ selList: '.uk-slideshow-items',
837
+ attrItem: 'uk-slideshow-item',
838
+ selNav: '.uk-slideshow-nav',
839
+ Animations },
1011
840
 
1012
- if (!this.list) {
1013
- return false;
1014
- }
1015
841
 
1016
- var ref = this.ratio.split(':').map(Number);
1017
- var width = ref[0];
1018
- var height = ref[1];
842
+ update: {
843
+ read() {
844
+ if (!this.list) {
845
+ return false;
846
+ }
1019
847
 
1020
- height = height * this.list.offsetWidth / width || 0;
848
+ let [width, height] = this.ratio.split(':').map(Number);
1021
849
 
1022
- if (this.minHeight) {
1023
- height = Math.max(this.minHeight, height);
1024
- }
850
+ height = height * this.list.offsetWidth / width || 0;
1025
851
 
1026
- if (this.maxHeight) {
1027
- height = Math.min(this.maxHeight, height);
1028
- }
852
+ if (this.minHeight) {
853
+ height = Math.max(this.minHeight, height);
854
+ }
1029
855
 
1030
- return {height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box')};
1031
- },
856
+ if (this.maxHeight) {
857
+ height = Math.min(this.maxHeight, height);
858
+ }
1032
859
 
1033
- write: function(ref) {
1034
- var height = ref.height;
860
+ return { height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box') };
861
+ },
1035
862
 
1036
- height > 0 && uikitUtil.css(this.list, 'minHeight', height);
1037
- },
863
+ write(_ref) {let { height } = _ref;
864
+ height > 0 && uikitUtil.css(this.list, 'minHeight', height);
865
+ },
1038
866
 
1039
- events: ['resize']
867
+ events: ['resize'] },
1040
868
 
1041
- }
1042
869
 
1043
- };
870
+ methods: {
871
+ getAdjacentSlides() {
872
+ return [1, -1].map((i) => this.slides[this.getIndex(this.index + i)]);
873
+ } } };
1044
874
 
1045
875
  if (typeof window !== 'undefined' && window.UIkit) {
1046
- window.UIkit.component('slideshow', Component);
876
+ window.UIkit.component('slideshow', Component);
1047
877
  }
1048
878
 
1049
879
  return Component;