uikit 3.11.2-dev.57792c7e7 → 3.11.2-dev.76734f785

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +58 -17
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +127 -201
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +127 -201
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +129 -207
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +129 -207
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1098 -1316
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1144 -1393
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +345 -363
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +343 -351
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +758 -842
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +343 -351
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +645 -793
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -621
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5423 -6687
  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 +7995 -9650
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +79 -100
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +37 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +21 -46
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +109 -89
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +126 -108
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +52 -63
  84. package/src/js/core/accordion.js +53 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +74 -53
  87. package/src/js/core/cover.js +11 -15
  88. package/src/js/core/drop.js +107 -93
  89. package/src/js/core/form-custom.js +20 -25
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +31 -35
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +156 -138
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +113 -85
  102. package/src/js/core/offcanvas.js +49 -53
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +197 -132
  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 +173 -120
  124. package/src/js/mixin/position.js +26 -20
  125. package/src/js/mixin/slider-autoplay.js +12 -21
  126. package/src/js/mixin/slider-drag.js +64 -65
  127. package/src/js/mixin/slider-nav.js +26 -35
  128. package/src/js/mixin/slider-reactive.js +2 -8
  129. package/src/js/mixin/slider.js +48 -55
  130. package/src/js/mixin/slideshow.js +13 -19
  131. package/src/js/mixin/togglable.js +89 -63
  132. package/src/js/uikit-core.js +2 -4
  133. package/src/js/uikit.js +2 -4
  134. package/src/js/util/ajax.js +25 -40
  135. package/src/js/util/animation.js +77 -75
  136. package/src/js/util/attr.js +17 -21
  137. package/src/js/util/class.js +14 -52
  138. package/src/js/util/dimensions.js +78 -49
  139. package/src/js/util/dom.js +39 -66
  140. package/src/js/util/env.js +7 -12
  141. package/src/js/util/event.js +60 -59
  142. package/src/js/util/fastdom.js +3 -8
  143. package/src/js/util/filter.js +17 -34
  144. package/src/js/util/index.js +0 -1
  145. package/src/js/util/lang.js +82 -121
  146. package/src/js/util/mouse.js +19 -17
  147. package/src/js/util/options.js +35 -49
  148. package/src/js/util/player.js +41 -36
  149. package/src/js/util/position.js +54 -46
  150. package/src/js/util/selector.js +43 -58
  151. package/src/js/util/style.js +39 -49
  152. package/src/js/util/viewport.js +81 -66
  153. package/src/less/components/base.less +10 -33
  154. package/src/less/components/flex.less +0 -9
  155. package/src/less/components/form-range.less +48 -95
  156. package/src/less/components/form.less +0 -1
  157. package/src/less/components/height.less +3 -0
  158. package/src/less/components/leader.less +0 -1
  159. package/src/less/components/lightbox.less +0 -1
  160. package/src/less/components/modal.less +3 -7
  161. package/src/less/components/navbar.less +0 -7
  162. package/src/less/components/progress.less +14 -36
  163. package/src/less/components/slider.less +0 -3
  164. package/src/less/components/slideshow.less +0 -3
  165. package/src/less/components/text.less +16 -32
  166. package/src/less/components/utility.less +22 -0
  167. package/src/scss/components/base.scss +10 -33
  168. package/src/scss/components/flex.scss +0 -9
  169. package/src/scss/components/form-range.scss +48 -95
  170. package/src/scss/components/form.scss +3 -4
  171. package/src/scss/components/height.scss +3 -0
  172. package/src/scss/components/icon.scss +2 -2
  173. package/src/scss/components/leader.scss +0 -1
  174. package/src/scss/components/lightbox.scss +0 -1
  175. package/src/scss/components/modal.scss +3 -7
  176. package/src/scss/components/navbar.scss +0 -7
  177. package/src/scss/components/progress.scss +14 -36
  178. package/src/scss/components/search.scss +1 -1
  179. package/src/scss/components/slider.scss +0 -3
  180. package/src/scss/components/slideshow.scss +0 -3
  181. package/src/scss/components/text.scss +16 -32
  182. package/src/scss/components/utility.scss +22 -0
  183. package/src/scss/mixins-theme.scss +1 -1
  184. package/src/scss/mixins.scss +1 -1
  185. package/src/scss/variables-theme.scss +9 -9
  186. package/src/scss/variables.scss +9 -9
  187. package/tests/align.html +10 -10
  188. package/tests/animation.html +2 -2
  189. package/tests/article.html +2 -2
  190. package/tests/base.html +3 -3
  191. package/tests/card.html +10 -10
  192. package/tests/column.html +3 -3
  193. package/tests/comment.html +9 -9
  194. package/tests/dotnav.html +3 -3
  195. package/tests/image.html +296 -64
  196. package/tests/images/image-type.avif +0 -0
  197. package/tests/images/image-type.jpeg +0 -0
  198. package/tests/images/image-type.webp +0 -0
  199. package/tests/index.html +8 -8
  200. package/tests/js/index.js +114 -85
  201. package/tests/lightbox.html +10 -10
  202. package/tests/marker.html +2 -2
  203. package/tests/modal.html +8 -9
  204. package/tests/navbar.html +2 -2
  205. package/tests/overlay.html +7 -7
  206. package/tests/parallax.html +16 -7
  207. package/tests/position.html +12 -12
  208. package/tests/slidenav.html +12 -12
  209. package/tests/slider.html +20 -20
  210. package/tests/sortable.html +1 -1
  211. package/tests/sticky-parallax.html +87 -99
  212. package/tests/sticky.html +56 -24
  213. package/tests/svg.html +6 -6
  214. package/tests/table.html +11 -11
  215. package/tests/thumbnav.html +12 -12
  216. package/tests/transition.html +30 -30
  217. package/tests/utility.html +33 -33
  218. package/tests/video.html +1 -1
  219. package/tests/width.html +1 -1
  220. package/src/js/mixin/flex-bug.js +0 -56
  221. package/src/js/util/promise.js +0 -191
  222. package/tests/images/animated.gif +0 -0
@@ -1,16 +1,29 @@
1
1
  import Class from '../mixin/class';
2
- import Slider, {speedUp} from '../mixin/slider';
2
+ import Slider, { speedUp } from '../mixin/slider';
3
3
  import SliderReactive from '../mixin/slider-reactive';
4
- import Transitioner, {getMax, getWidth} from './internal/slider-transitioner';
5
- import {$, addClass, children, css, data, dimensions, findIndex, includes, isEmpty, last, sortBy, toFloat, toggleClass, toNumber} from 'uikit-util';
4
+ import SliderPreload from './internal/slider-preload';
5
+ import Transitioner, { getMax, getWidth } from './internal/slider-transitioner';
6
+ import {
7
+ $,
8
+ addClass,
9
+ children,
10
+ css,
11
+ data,
12
+ dimensions,
13
+ findIndex,
14
+ includes,
15
+ last,
16
+ toFloat,
17
+ toggleClass,
18
+ toNumber,
19
+ } from 'uikit-util';
6
20
 
7
21
  export default {
8
-
9
- mixins: [Class, Slider, SliderReactive],
22
+ mixins: [Class, Slider, SliderReactive, SliderPreload],
10
23
 
11
24
  props: {
12
25
  center: Boolean,
13
- sets: Boolean
26
+ sets: Boolean,
14
27
  },
15
28
 
16
29
  data: {
@@ -20,22 +33,24 @@ export default {
20
33
  selList: '.uk-slider-items',
21
34
  selNav: '.uk-slider-nav',
22
35
  clsContainer: 'uk-slider-container',
23
- Transitioner
36
+ Transitioner,
24
37
  },
25
38
 
26
39
  computed: {
27
-
28
40
  avgWidth() {
29
41
  return getWidth(this.list) / this.length;
30
42
  },
31
43
 
32
- finite({finite}) {
33
- return finite || Math.ceil(getWidth(this.list)) < Math.floor(dimensions(this.list).width + getMaxElWidth(this.list) + this.center);
44
+ finite({ finite }) {
45
+ return (
46
+ finite ||
47
+ Math.ceil(getWidth(this.list)) <
48
+ Math.floor(dimensions(this.list).width + getMaxElWidth(this.list) + this.center)
49
+ );
34
50
  },
35
51
 
36
52
  maxIndex() {
37
-
38
- if (!this.finite || this.center && !this.sets) {
53
+ if (!this.finite || (this.center && !this.sets)) {
39
54
  return this.length - 1;
40
55
  }
41
56
 
@@ -45,73 +60,58 @@ export default {
45
60
 
46
61
  let lft = 0;
47
62
  const max = getMax(this.list);
48
- const index = findIndex(this.slides, el => {
49
-
63
+ const index = findIndex(this.slides, (el) => {
50
64
  if (lft >= max) {
51
65
  return true;
52
66
  }
53
67
 
54
68
  lft += dimensions(el).width;
55
-
56
69
  });
57
70
 
58
71
  return ~index ? index : this.length - 1;
59
72
  },
60
73
 
61
- sets({sets}) {
62
-
63
- if (!sets) {
74
+ sets({ sets: enabled }) {
75
+ if (!enabled) {
64
76
  return;
65
77
  }
66
78
 
67
- const width = dimensions(this.list).width / (this.center ? 2 : 1);
68
-
69
79
  let left = 0;
70
- let leftCenter = width;
71
- let slideLeft = 0;
72
-
73
- sets = sortBy(this.slides, 'offsetLeft').reduce((sets, slide, i) => {
74
-
75
- const slideWidth = dimensions(slide).width;
76
- const slideRight = slideLeft + slideWidth;
77
-
78
- if (slideRight > left) {
80
+ const sets = [];
81
+ const width = dimensions(this.list).width;
82
+ for (let i in this.slides) {
83
+ const slideWidth = dimensions(this.slides[i]).width;
79
84
 
80
- if (!this.center && i > this.maxIndex) {
81
- i = this.maxIndex;
82
- }
83
-
84
- if (!includes(sets, i)) {
85
-
86
- const cmp = this.slides[i + 1];
87
- if (this.center && cmp && slideWidth < leftCenter - dimensions(cmp).width / 2) {
88
- leftCenter -= slideWidth;
89
- } else {
90
- leftCenter = width;
91
- sets.push(i);
92
- left = slideLeft + width + (this.center ? slideWidth / 2 : 0);
93
- }
85
+ if (left + slideWidth > width) {
86
+ left = 0;
87
+ }
94
88
 
89
+ if (this.center) {
90
+ if (
91
+ left < width / 2 &&
92
+ left + slideWidth + dimensions(this.slides[+i + 1]).width / 2 > width / 2
93
+ ) {
94
+ sets.push(+i);
95
+ left = width / 2 - slideWidth / 2;
95
96
  }
97
+ } else if (left === 0) {
98
+ sets.push(Math.min(+i, this.maxIndex));
96
99
  }
97
100
 
98
- slideLeft += slideWidth;
101
+ left += slideWidth;
102
+ }
99
103
 
104
+ if (sets.length) {
100
105
  return sets;
101
-
102
- }, []);
103
-
104
- return !isEmpty(sets) && sets;
105
-
106
+ }
106
107
  },
107
108
 
108
109
  transitionOptions() {
109
110
  return {
110
111
  center: this.center,
111
- list: this.list
112
+ list: this.list,
112
113
  };
113
- }
114
-
114
+ },
115
115
  },
116
116
 
117
117
  connected() {
@@ -119,14 +119,16 @@ export default {
119
119
  },
120
120
 
121
121
  update: {
122
-
123
122
  write() {
124
- this.navItems.forEach(el => {
123
+ for (const el of this.navItems) {
125
124
  const index = toNumber(data(el, this.attrItem));
126
125
  if (index !== false) {
127
- el.hidden = !this.maxIndex || index > this.maxIndex || this.sets && !includes(this.sets, index);
126
+ el.hidden =
127
+ !this.maxIndex ||
128
+ index > this.maxIndex ||
129
+ (this.sets && !includes(this.sets, index));
128
130
  }
129
- });
131
+ }
130
132
 
131
133
  if (this.length && !this.dragging && !this.stack.length) {
132
134
  this.reorder();
@@ -134,33 +136,40 @@ export default {
134
136
  }
135
137
 
136
138
  const actives = this._getTransitioner(this.index).getActives();
137
- this.slides.forEach(slide => toggleClass(slide, this.clsActive, includes(actives, slide)));
138
-
139
- if (this.clsActivated && (!this.sets || includes(this.sets, toFloat(this.index)))) {
140
- this.slides.forEach(slide => toggleClass(slide, this.clsActivated || '', includes(actives, slide)));
139
+ const activeClasses = [
140
+ this.clsActive,
141
+ ((!this.sets || includes(this.sets, toFloat(this.index))) && this.clsActivated) ||
142
+ '',
143
+ ];
144
+ for (const slide of this.slides) {
145
+ toggleClass(slide, activeClasses, includes(actives, slide));
141
146
  }
142
147
  },
143
148
 
144
- events: ['resize']
145
-
149
+ events: ['resize'],
146
150
  },
147
151
 
148
152
  events: {
149
-
150
153
  beforeitemshow(e) {
151
-
152
- if (!this.dragging && this.sets && this.stack.length < 2 && !includes(this.sets, this.index)) {
154
+ if (
155
+ !this.dragging &&
156
+ this.sets &&
157
+ this.stack.length < 2 &&
158
+ !includes(this.sets, this.index)
159
+ ) {
153
160
  this.index = this.getValidIndex();
154
161
  }
155
162
 
156
163
  const diff = Math.abs(
157
- this.index
158
- - this.prevIndex
159
- + (this.dir > 0 && this.index < this.prevIndex || this.dir < 0 && this.index > this.prevIndex ? (this.maxIndex + 1) * this.dir : 0)
164
+ this.index -
165
+ this.prevIndex +
166
+ ((this.dir > 0 && this.index < this.prevIndex) ||
167
+ (this.dir < 0 && this.index > this.prevIndex)
168
+ ? (this.maxIndex + 1) * this.dir
169
+ : 0)
160
170
  );
161
171
 
162
172
  if (!this.dragging && diff > 1) {
163
-
164
173
  for (let i = 0; i < diff; i++) {
165
174
  this.stack.splice(1, 0, this.dir > 0 ? 'next' : 'previous');
166
175
  }
@@ -169,25 +178,24 @@ export default {
169
178
  return;
170
179
  }
171
180
 
172
- const index = this.dir < 0 || !this.slides[this.prevIndex] ? this.index : this.prevIndex;
173
- this.duration = speedUp(this.avgWidth / this.velocity) * (dimensions(this.slides[index]).width / this.avgWidth);
181
+ const index =
182
+ this.dir < 0 || !this.slides[this.prevIndex] ? this.index : this.prevIndex;
183
+ this.duration =
184
+ speedUp(this.avgWidth / this.velocity) *
185
+ (dimensions(this.slides[index]).width / this.avgWidth);
174
186
 
175
187
  this.reorder();
176
-
177
188
  },
178
189
 
179
190
  itemshow() {
180
191
  if (~this.prevIndex) {
181
192
  addClass(this._getTransitioner().getItemIn(), this.clsActive);
182
193
  }
183
- }
184
-
194
+ },
185
195
  },
186
196
 
187
197
  methods: {
188
-
189
198
  reorder() {
190
-
191
199
  if (this.finite) {
192
200
  css(this.slides, 'order', '');
193
201
  return;
@@ -196,11 +204,10 @@ export default {
196
204
  const index = this.dir > 0 && this.slides[this.prevIndex] ? this.prevIndex : this.index;
197
205
 
198
206
  this.slides.forEach((slide, i) =>
199
- css(slide, 'order', this.dir > 0 && i < index
200
- ? 1
201
- : this.dir < 0 && i >= this.index
202
- ? -1
203
- : ''
207
+ css(
208
+ slide,
209
+ 'order',
210
+ this.dir > 0 && i < index ? 1 : this.dir < 0 && i >= this.index ? -1 : ''
204
211
  )
205
212
  );
206
213
 
@@ -219,11 +226,9 @@ export default {
219
226
  css(slide, 'order', slideIndex > index ? -2 : -1);
220
227
  width -= dimensions(slide).width;
221
228
  }
222
-
223
229
  },
224
230
 
225
231
  getValidIndex(index = this.index, prevIndex = this.prevIndex) {
226
-
227
232
  index = this.getIndex(index, prevIndex);
228
233
 
229
234
  if (!this.sets) {
@@ -233,23 +238,38 @@ export default {
233
238
  let prev;
234
239
 
235
240
  do {
236
-
237
241
  if (includes(this.sets, index)) {
238
242
  return index;
239
243
  }
240
244
 
241
245
  prev = index;
242
246
  index = this.getIndex(index + this.dir, prevIndex);
243
-
244
247
  } while (index !== prev);
245
248
 
246
249
  return index;
247
- }
248
-
249
- }
250
+ },
250
251
 
252
+ getAdjacentSlides() {
253
+ const { width } = dimensions(this.list);
254
+ const left = -width;
255
+ const right = width * 2;
256
+ const slideWidth = dimensions(this.slides[this.index]).width;
257
+ const slideLeft = this.center ? width / 2 - slideWidth / 2 : 0;
258
+ const slides = new Set();
259
+ for (const i of [-1, 1]) {
260
+ let currentLeft = slideLeft + (i > 0 ? slideWidth : 0);
261
+ let j = 0;
262
+ do {
263
+ const slide = this.slides[this.getIndex(this.index + i + j++ * i)];
264
+ currentLeft += dimensions(slide).width * i;
265
+ slides.add(slide);
266
+ } while (this.slides.length > j && currentLeft > left && currentLeft < right);
267
+ }
268
+ return Array.from(slides);
269
+ },
270
+ },
251
271
  };
252
272
 
253
273
  function getMaxElWidth(list) {
254
- return Math.max(0, ...children(list).map(el => dimensions(el).width));
274
+ return Math.max(0, ...children(list).map((el) => dimensions(el).width));
255
275
  }
@@ -1 +1 @@
1
- export {default} from './slider-parallax';
1
+ export { default } from './slider-parallax';
@@ -2,16 +2,16 @@ import Class from '../mixin/class';
2
2
  import Slideshow from '../mixin/slideshow';
3
3
  import Animations from './internal/slideshow-animations';
4
4
  import SliderReactive from '../mixin/slider-reactive';
5
- import {boxModelAdjust, css} from 'uikit-util';
5
+ import SliderPreload from './internal/slider-preload';
6
+ import { boxModelAdjust, css } from 'uikit-util';
6
7
 
7
8
  export default {
8
-
9
- mixins: [Class, Slideshow, SliderReactive],
9
+ mixins: [Class, Slideshow, SliderReactive, SliderPreload],
10
10
 
11
11
  props: {
12
12
  ratio: String,
13
13
  minHeight: Number,
14
- maxHeight: Number
14
+ maxHeight: Number,
15
15
  },
16
16
 
17
17
  data: {
@@ -21,20 +21,18 @@ export default {
21
21
  selList: '.uk-slideshow-items',
22
22
  attrItem: 'uk-slideshow-item',
23
23
  selNav: '.uk-slideshow-nav',
24
- Animations
24
+ Animations,
25
25
  },
26
26
 
27
27
  update: {
28
-
29
28
  read() {
30
-
31
29
  if (!this.list) {
32
30
  return false;
33
31
  }
34
32
 
35
33
  let [width, height] = this.ratio.split(':').map(Number);
36
34
 
37
- height = height * this.list.offsetWidth / width || 0;
35
+ height = (height * this.list.offsetWidth) / width || 0;
38
36
 
39
37
  if (this.minHeight) {
40
38
  height = Math.max(this.minHeight, height);
@@ -44,15 +42,19 @@ export default {
44
42
  height = Math.min(this.maxHeight, height);
45
43
  }
46
44
 
47
- return {height: height - boxModelAdjust(this.list, 'height', 'content-box')};
45
+ return { height: height - boxModelAdjust(this.list, 'height', 'content-box') };
48
46
  },
49
47
 
50
- write({height}) {
48
+ write({ height }) {
51
49
  height > 0 && css(this.list, 'minHeight', height);
52
50
  },
53
51
 
54
- events: ['resize']
55
-
56
- }
52
+ events: ['resize'],
53
+ },
57
54
 
55
+ methods: {
56
+ getAdjacentSlides() {
57
+ return [1, -1].map((i) => this.slides[this.getIndex(this.index + i)]);
58
+ },
59
+ },
58
60
  };