uikit 3.11.2-dev.28b7953b9 → 3.11.2-dev.2b60845fb

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 (168) 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 +7 -11
  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 +42 -17
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +42 -17
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +42 -17
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +42 -17
  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 +409 -438
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1116 -1305
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1164 -1383
  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 +294 -345
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +292 -344
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +727 -850
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +292 -344
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +612 -831
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +588 -619
  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 +5266 -6604
  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 +8111 -9928
  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 +23 -27
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +13 -32
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +65 -82
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +71 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +11 -23
  70. package/src/js/components/internal/slider-transitioner.js +66 -45
  71. package/src/js/components/internal/slideshow-animations.js +42 -61
  72. package/src/js/components/lightbox-panel.js +135 -109
  73. package/src/js/components/lightbox.js +18 -39
  74. package/src/js/components/notification.js +49 -43
  75. package/src/js/components/parallax.js +16 -30
  76. package/src/js/components/slider-parallax.js +13 -23
  77. package/src/js/components/slider.js +75 -64
  78. package/src/js/components/slideshow-parallax.js +1 -1
  79. package/src/js/components/slideshow.js +8 -44
  80. package/src/js/components/sortable.js +125 -106
  81. package/src/js/components/tooltip.js +41 -31
  82. package/src/js/components/upload.js +52 -63
  83. package/src/js/core/accordion.js +53 -48
  84. package/src/js/core/alert.js +10 -17
  85. package/src/js/core/core.js +74 -53
  86. package/src/js/core/cover.js +11 -15
  87. package/src/js/core/drop.js +106 -92
  88. package/src/js/core/form-custom.js +20 -25
  89. package/src/js/core/gif.js +3 -7
  90. package/src/js/core/grid.js +57 -58
  91. package/src/js/core/height-match.js +16 -29
  92. package/src/js/core/height-viewport.js +28 -35
  93. package/src/js/core/icon.js +38 -50
  94. package/src/js/core/img.js +132 -147
  95. package/src/js/core/index.js +39 -39
  96. package/src/js/core/leader.js +9 -18
  97. package/src/js/core/margin.js +21 -37
  98. package/src/js/core/modal.js +50 -36
  99. package/src/js/core/nav.js +2 -4
  100. package/src/js/core/navbar.js +112 -88
  101. package/src/js/core/offcanvas.js +49 -53
  102. package/src/js/core/overflow-auto.js +13 -17
  103. package/src/js/core/responsive.js +14 -12
  104. package/src/js/core/scroll.js +10 -20
  105. package/src/js/core/scrollspy-nav.js +34 -31
  106. package/src/js/core/scrollspy.js +37 -54
  107. package/src/js/core/sticky.js +130 -91
  108. package/src/js/core/svg.js +60 -79
  109. package/src/js/core/switcher.js +47 -46
  110. package/src/js/core/tab.js +7 -10
  111. package/src/js/core/toggle.js +64 -66
  112. package/src/js/core/video.js +11 -22
  113. package/src/js/mixin/animate.js +19 -20
  114. package/src/js/mixin/class.js +2 -4
  115. package/src/js/mixin/container.js +7 -11
  116. package/src/js/mixin/internal/animate-fade.js +73 -30
  117. package/src/js/mixin/internal/animate-slide.js +61 -41
  118. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  119. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  120. package/src/js/mixin/media.js +5 -10
  121. package/src/js/mixin/modal.js +89 -66
  122. package/src/js/mixin/parallax.js +53 -48
  123. package/src/js/mixin/position.js +26 -20
  124. package/src/js/mixin/slider-autoplay.js +12 -21
  125. package/src/js/mixin/slider-drag.js +64 -65
  126. package/src/js/mixin/slider-nav.js +26 -35
  127. package/src/js/mixin/slider-reactive.js +2 -8
  128. package/src/js/mixin/slider.js +51 -50
  129. package/src/js/mixin/slideshow.js +13 -19
  130. package/src/js/mixin/togglable.js +90 -63
  131. package/src/js/uikit-core.js +2 -4
  132. package/src/js/uikit.js +2 -4
  133. package/src/js/util/ajax.js +27 -43
  134. package/src/js/util/animation.js +82 -75
  135. package/src/js/util/attr.js +17 -21
  136. package/src/js/util/class.js +14 -52
  137. package/src/js/util/dimensions.js +56 -43
  138. package/src/js/util/dom.js +40 -73
  139. package/src/js/util/env.js +7 -12
  140. package/src/js/util/event.js +60 -59
  141. package/src/js/util/fastdom.js +1 -6
  142. package/src/js/util/filter.js +17 -34
  143. package/src/js/util/index.js +0 -1
  144. package/src/js/util/lang.js +79 -119
  145. package/src/js/util/mouse.js +19 -17
  146. package/src/js/util/options.js +41 -46
  147. package/src/js/util/player.js +40 -36
  148. package/src/js/util/position.js +54 -46
  149. package/src/js/util/selector.js +39 -48
  150. package/src/js/util/style.js +36 -46
  151. package/src/js/util/viewport.js +75 -64
  152. package/src/less/components/flex.less +0 -9
  153. package/src/less/components/navbar.less +0 -7
  154. package/src/less/components/utility.less +22 -0
  155. package/src/scss/components/flex.scss +0 -9
  156. package/src/scss/components/form.scss +3 -3
  157. package/src/scss/components/icon.scss +2 -2
  158. package/src/scss/components/navbar.scss +0 -7
  159. package/src/scss/components/search.scss +1 -1
  160. package/src/scss/components/utility.scss +22 -0
  161. package/src/scss/variables-theme.scss +6 -6
  162. package/src/scss/variables.scss +6 -6
  163. package/tests/image.html +41 -31
  164. package/tests/js/index.js +114 -85
  165. package/src/js/mixin/flex-bug.js +0 -56
  166. package/src/js/util/promise.js +0 -191
  167. package/tests/images/test.avif +0 -0
  168. package/tests/images/test.webp +0 -0
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.11.2-dev.28b7953b9 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.11.2-dev.2b60845fb | 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,1078 +7,859 @@
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
- },
114
-
115
- translate: function(percent) {
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();
116
50
 
117
- this.reset();
51
+ return {
52
+ dir,
118
53
 
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});
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));
124
57
 
125
- },
58
+ this.translate(percent);
126
59
 
127
- percent: function() {
128
- return percent(prev || next, next, dir);
129
- },
60
+ triggerUpdate(next, 'itemin', { percent, duration, timing, dir });
61
+ triggerUpdate(prev, 'itemout', { percent: 1 - percent, duration, timing, dir });
130
62
 
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
- }
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);
142
70
 
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
- {
89
+ translate(percent) {
90
+ this.reset();
172
91
 
173
- name: 'visibilitychange',
174
-
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: {
174
+ stopAutoplay() {
175
+ this.interval && clearInterval(this.interval);
176
+ } } };
290
177
 
291
- start: function() {
292
-
293
- this.drag = this.pos;
294
-
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
- },
540
+ stack[force ? 'unshift' : 'push'](index);
613
541
 
614
- events: {
615
-
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 () {
590
+ prev && uikitUtil.trigger(prev, 'itemhide', [this]);
591
+ uikitUtil.trigger(next, 'itemshow', [this]);
678
592
 
679
- prev && uikitUtil.trigger(prev, 'itemhidden', [this$1$1]);
680
- uikitUtil.trigger(next, 'itemshown', [this$1$1]);
593
+ return promise;
594
+ },
681
595
 
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
- });
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
+ },
693
599
 
694
- });
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
+ },
695
603
 
696
- prev && uikitUtil.trigger(prev, 'itemhide', [this]);
697
- uikitUtil.trigger(next, 'itemshow', [this]);
604
+ _show(prev, next, force) {
605
+ this._transitioner = this._getTransitioner(
606
+ prev,
607
+ next,
608
+ this.dir,
609
+ uikitUtil.assign(
610
+ {
611
+ easing: force ?
612
+ next.offsetWidth < 600 ?
613
+ 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */ :
614
+ 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */ :
615
+ this.easing },
698
616
 
699
- return promise;
617
+ this.transitionOptions));
700
618
 
701
- },
702
619
 
703
- getIndex: function(index, prev) {
704
- if ( index === void 0 ) index = this.index;
705
- if ( prev === void 0 ) prev = this.index;
706
620
 
707
- return uikitUtil.clamp(uikitUtil.getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);
708
- },
621
+ if (!force && !prev) {
622
+ this._translate(1);
623
+ return Promise.resolve();
624
+ }
709
625
 
710
- getValidIndex: function(index, prevIndex) {
711
- if ( index === void 0 ) index = this.index;
712
- if ( prevIndex === void 0 ) prevIndex = this.prevIndex;
626
+ const { length } = this.stack;
627
+ return this._transitioner[length > 1 ? 'forward' : 'show'](
628
+ length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration,
629
+ this.percent);
713
630
 
714
- return this.getIndex(index, prevIndex);
715
- },
631
+ },
716
632
 
717
- _show: function(prev, next, force) {
633
+ _getDistance(prev, next) {
634
+ return this._getTransitioner(prev, prev !== next && next).getDistance();
635
+ },
718
636
 
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
- );
637
+ _translate(percent, prev, next) {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}
638
+ const transitioner = this._getTransitioner(prev !== next ? prev : false, next);
639
+ transitioner.translate(percent);
640
+ return transitioner;
641
+ },
731
642
 
732
- if (!force && !prev) {
733
- this._translate(1);
734
- return uikitUtil.Promise.resolve();
735
- }
643
+ _getTransitioner(
644
+ prev,
645
+ next,
646
+ dir,
647
+ options)
648
+ {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;}
649
+ return new this.Transitioner(
650
+ uikitUtil.isNumber(prev) ? this.slides[prev] : prev,
651
+ uikitUtil.isNumber(next) ? this.slides[next] : next,
652
+ dir * (uikitUtil.isRtl ? -1 : 1),
653
+ options);
736
654
 
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
- }
655
+ } } };
769
656
 
770
- }
771
657
 
772
- };
773
658
 
774
659
  function getDirection(index, prevIndex) {
775
- return index === 'next'
776
- ? 1
777
- : index === 'previous'
778
- ? -1
779
- : index < prevIndex
780
- ? -1
781
- : 1;
660
+ return index === 'next' ? 1 : index === 'previous' ? -1 : index < prevIndex ? -1 : 1;
782
661
  }
783
662
 
784
663
  function speedUp(x) {
785
- return .5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
664
+ return 0.5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)
786
665
  }
787
666
 
788
667
  var Slideshow = {
668
+ mixins: [Slider],
789
669
 
790
- mixins: [Slider],
791
-
792
- props: {
793
- animation: String
794
- },
795
-
796
- data: {
797
- animation: 'slide',
798
- clsActivated: 'uk-transition-active',
799
- Animations: Animations$1,
800
- Transitioner: Transitioner
801
- },
802
-
803
- computed: {
670
+ props: {
671
+ animation: String },
804
672
 
805
- animation: function(ref) {
806
- var animation = ref.animation;
807
- var Animations = ref.Animations;
808
673
 
809
- return uikitUtil.assign(Animations[animation] || Animations.slide, {name: animation});
810
- },
674
+ data: {
675
+ animation: 'slide',
676
+ clsActivated: 'uk-transition-active',
677
+ Animations: Animations$1,
678
+ Transitioner },
811
679
 
812
- transitionOptions: function() {
813
- return {animation: this.animation};
814
- }
815
680
 
681
+ computed: {
682
+ animation(_ref) {let { animation, Animations } = _ref;
683
+ return uikitUtil.assign(Animations[animation] || Animations.slide, { name: animation });
816
684
  },
817
685
 
818
- events: {
819
-
820
- 'itemshow itemhide itemshown itemhidden': function(ref) {
821
- var target = ref.target;
822
-
823
- this.$update(target);
824
- },
825
-
826
- beforeitemshow: function(ref) {
827
- var target = ref.target;
686
+ transitionOptions() {
687
+ return { animation: this.animation };
688
+ } },
828
689
 
829
- uikitUtil.addClass(target, this.clsActive);
830
- },
831
690
 
832
- itemshown: function(ref) {
833
- var target = ref.target;
834
-
835
- uikitUtil.addClass(target, this.clsActivated);
836
- },
837
-
838
- itemhidden: function(ref) {
839
- var target = ref.target;
691
+ events: {
692
+ 'itemshow itemhide itemshown itemhidden'(_ref2) {let { target } = _ref2;
693
+ this.$update(target);
694
+ },
840
695
 
841
- uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
842
- }
696
+ beforeitemshow(_ref3) {let { target } = _ref3;
697
+ uikitUtil.addClass(target, this.clsActive);
698
+ },
843
699
 
844
- }
700
+ itemshown(_ref4) {let { target } = _ref4;
701
+ uikitUtil.addClass(target, this.clsActivated);
702
+ },
845
703
 
846
- };
704
+ itemhidden(_ref5) {let { target } = _ref5;
705
+ uikitUtil.removeClass(target, this.clsActive, this.clsActivated);
706
+ } } };
847
707
 
848
708
  var Animations = uikitUtil.assign({}, Animations$1, {
849
-
850
- fade: {
851
-
852
- show: function() {
853
- return [
854
- {opacity: 0, zIndex: 0},
855
- {zIndex: -1}
856
- ];
857
- },
858
-
859
- percent: function(current) {
860
- return 1 - uikitUtil.css(current, 'opacity');
861
- },
862
-
863
- translate: function(percent) {
864
- return [
865
- {opacity: 1 - percent, zIndex: 0},
866
- {zIndex: -1}
867
- ];
868
- }
869
-
709
+ fade: {
710
+ show() {
711
+ return [{ opacity: 0, zIndex: 0 }, { zIndex: -1 }];
870
712
  },
871
713
 
872
- scale: {
873
-
874
- show: function() {
875
- return [
876
- {opacity: 0, transform: scale3d(1 + .5), zIndex: 0},
877
- {zIndex: -1}
878
- ];
879
- },
714
+ percent(current) {
715
+ return 1 - uikitUtil.css(current, 'opacity');
716
+ },
880
717
 
881
- percent: function(current) {
882
- return 1 - uikitUtil.css(current, 'opacity');
883
- },
718
+ translate(percent) {
719
+ return [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }];
720
+ } },
884
721
 
885
- translate: function(percent) {
886
- return [
887
- {opacity: 1 - percent, transform: scale3d(1 + .5 * percent), zIndex: 0},
888
- {zIndex: -1}
889
- ];
890
- }
891
722
 
723
+ scale: {
724
+ show() {
725
+ return [{ opacity: 0, transform: scale3d(1 + 0.5), zIndex: 0 }, { zIndex: -1 }];
892
726
  },
893
727
 
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
-
728
+ percent(current) {
729
+ return 1 - uikitUtil.css(current, 'opacity');
926
730
  },
927
731
 
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
- }
959
-
960
- }
732
+ translate(percent) {
733
+ return [
734
+ { opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },
735
+ { zIndex: -1 }];
961
736
 
962
- });
737
+ } },
963
738
 
964
- var SliderReactive = {
965
739
 
966
- update: {
740
+ pull: {
741
+ show(dir) {
742
+ return dir < 0 ?
743
+ [
744
+ { transform: translate(30), zIndex: -1 },
745
+ { transform: translate(), zIndex: 0 }] :
967
746
 
968
- write: function() {
747
+ [
748
+ { transform: translate(-100), zIndex: 0 },
749
+ { transform: translate(), zIndex: -1 }];
969
750
 
970
- if (this.stack.length || this.dragging) {
971
- return;
972
- }
973
-
974
- var index = this.getValidIndex(this.index);
751
+ },
975
752
 
976
- if (!~this.prevIndex || this.index !== index) {
977
- this.show(index);
978
- }
753
+ percent(current, next, dir) {
754
+ return dir < 0 ? 1 - translated(next) : translated(current);
755
+ },
979
756
 
980
- },
757
+ translate(percent, dir) {
758
+ return dir < 0 ?
759
+ [
760
+ { transform: translate(30 * percent), zIndex: -1 },
761
+ { transform: translate(-100 * (1 - percent)), zIndex: 0 }] :
981
762
 
982
- events: ['resize']
763
+ [
764
+ { transform: translate(-percent * 100), zIndex: 0 },
765
+ { transform: translate(30 * (1 - percent)), zIndex: -1 }];
983
766
 
984
- }
767
+ } },
985
768
 
986
- };
987
769
 
988
- var Component = {
770
+ push: {
771
+ show(dir) {
772
+ return dir < 0 ?
773
+ [
774
+ { transform: translate(100), zIndex: 0 },
775
+ { transform: translate(), zIndex: -1 }] :
989
776
 
990
- mixins: [Class, Slideshow, SliderReactive],
777
+ [
778
+ { transform: translate(-30), zIndex: -1 },
779
+ { transform: translate(), zIndex: 0 }];
991
780
 
992
- props: {
993
- ratio: String,
994
- minHeight: Number,
995
- maxHeight: Number
996
781
  },
997
782
 
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
783
+ percent(current, next, dir) {
784
+ return dir > 0 ? 1 - translated(next) : translated(current);
1006
785
  },
1007
786
 
1008
- connected: function() {
1009
- var this$1$1 = this;
1010
-
1011
- if (window.IntersectionObserver) {
1012
- this.observer = new IntersectionObserver(function (entries) {
1013
- if (entries.some(function (entry) { return entry.isIntersecting; })) {
1014
- this$1$1.preloadSlides();
1015
- }
1016
- });
1017
- this.observer.observe(this.$el);
1018
- }
1019
- },
787
+ translate(percent, dir) {
788
+ return dir < 0 ?
789
+ [
790
+ { transform: translate(percent * 100), zIndex: 0 },
791
+ { transform: translate(-30 * (1 - percent)), zIndex: -1 }] :
1020
792
 
1021
- disconnected: function() {
1022
- this.observer && this.observer.disconnect();
1023
- },
793
+ [
794
+ { transform: translate(-30 * percent), zIndex: -1 },
795
+ { transform: translate(100 * (1 - percent)), zIndex: 0 }];
1024
796
 
1025
- methods: {
797
+ } } });
1026
798
 
1027
- preloadSlides: function() {
1028
- var this$1$1 = this;
799
+ var SliderReactive = {
800
+ update: {
801
+ write() {
802
+ if (this.stack.length || this.dragging) {
803
+ return;
804
+ }
1029
805
 
1030
- [1, -1].forEach(function (i) { return removeLazyLoad(this$1$1.slides[this$1$1.getIndex(this$1$1.index + i)]); });
1031
- }
806
+ const index = this.getValidIndex(this.index);
1032
807
 
808
+ if (!~this.prevIndex || this.index !== index) {
809
+ this.show(index);
810
+ }
1033
811
  },
1034
812
 
1035
- update: {
813
+ events: ['resize'] } };
1036
814
 
1037
- read: function() {
815
+ var Component = {
816
+ mixins: [Class, Slideshow, SliderReactive],
1038
817
 
1039
- if (!this.list) {
1040
- return false;
1041
- }
818
+ props: {
819
+ ratio: String,
820
+ minHeight: Number,
821
+ maxHeight: Number },
1042
822
 
1043
- var ref = this.ratio.split(':').map(Number);
1044
- var width = ref[0];
1045
- var height = ref[1];
1046
823
 
1047
- height = height * this.list.offsetWidth / width || 0;
824
+ data: {
825
+ ratio: '16:9',
826
+ minHeight: false,
827
+ maxHeight: false,
828
+ selList: '.uk-slideshow-items',
829
+ attrItem: 'uk-slideshow-item',
830
+ selNav: '.uk-slideshow-nav',
831
+ Animations },
1048
832
 
1049
- if (this.minHeight) {
1050
- height = Math.max(this.minHeight, height);
1051
- }
1052
833
 
1053
- if (this.maxHeight) {
1054
- height = Math.min(this.maxHeight, height);
1055
- }
834
+ update: {
835
+ read() {
836
+ if (!this.list) {
837
+ return false;
838
+ }
1056
839
 
1057
- if (uikitUtil.isVisible(this.$el)) {
1058
- this.preloadSlides();
1059
- }
1060
-
1061
- return {height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box')};
1062
- },
840
+ let [width, height] = this.ratio.split(':').map(Number);
1063
841
 
1064
- write: function(ref) {
1065
- var height = ref.height;
842
+ height = height * this.list.offsetWidth / width || 0;
1066
843
 
1067
- height > 0 && uikitUtil.css(this.list, 'minHeight', height);
1068
- },
844
+ if (this.minHeight) {
845
+ height = Math.max(this.minHeight, height);
846
+ }
1069
847
 
1070
- events: ['resize']
848
+ if (this.maxHeight) {
849
+ height = Math.min(this.maxHeight, height);
850
+ }
1071
851
 
1072
- }
852
+ return { height: height - uikitUtil.boxModelAdjust(this.list, 'height', 'content-box') };
853
+ },
1073
854
 
1074
- };
855
+ write(_ref) {let { height } = _ref;
856
+ height > 0 && uikitUtil.css(this.list, 'minHeight', height);
857
+ },
1075
858
 
1076
- function removeLazyLoad(el) {
1077
- el && uikitUtil.$$('img[loading="lazy"]', el).forEach(function (el) { return el.loading = 'eager'; });
1078
- }
859
+ events: ['resize'] } };
1079
860
 
1080
861
  if (typeof window !== 'undefined' && window.UIkit) {
1081
- window.UIkit.component('slideshow', Component);
862
+ window.UIkit.component('slideshow', Component);
1082
863
  }
1083
864
 
1084
865
  return Component;