uikit 3.11.2-dev.9433cd5fd → 3.11.2-dev.a87448e52

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