uikit 3.11.1 → 3.11.2-dev.03e47c2ff

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +59 -17
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +127 -201
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +127 -201
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +129 -207
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +129 -207
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1098 -1316
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1144 -1393
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +345 -362
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +343 -350
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +768 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +343 -350
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +645 -793
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -621
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5430 -6690
  53. package/dist/js/uikit-core.min.js +1 -1
  54. package/dist/js/uikit-icons.js +7 -9
  55. package/dist/js/uikit-icons.min.js +1 -1
  56. package/dist/js/uikit.js +8143 -9784
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +79 -100
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +37 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +21 -46
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +95 -64
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +126 -108
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +52 -63
  84. package/src/js/core/accordion.js +53 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +74 -53
  87. package/src/js/core/cover.js +11 -15
  88. package/src/js/core/drop.js +107 -93
  89. package/src/js/core/form-custom.js +20 -25
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +29 -36
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +156 -138
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +113 -85
  102. package/src/js/core/offcanvas.js +49 -53
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +194 -123
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +47 -46
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +66 -67
  113. package/src/js/core/video.js +11 -22
  114. package/src/js/mixin/animate.js +19 -20
  115. package/src/js/mixin/class.js +2 -4
  116. package/src/js/mixin/container.js +7 -11
  117. package/src/js/mixin/internal/animate-fade.js +73 -30
  118. package/src/js/mixin/internal/animate-slide.js +58 -41
  119. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  120. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  121. package/src/js/mixin/media.js +5 -10
  122. package/src/js/mixin/modal.js +89 -66
  123. package/src/js/mixin/parallax.js +175 -121
  124. package/src/js/mixin/position.js +26 -20
  125. package/src/js/mixin/slider-autoplay.js +12 -21
  126. package/src/js/mixin/slider-drag.js +64 -65
  127. package/src/js/mixin/slider-nav.js +26 -35
  128. package/src/js/mixin/slider-reactive.js +2 -8
  129. package/src/js/mixin/slider.js +48 -55
  130. package/src/js/mixin/slideshow.js +13 -19
  131. package/src/js/mixin/togglable.js +89 -63
  132. package/src/js/uikit-core.js +2 -4
  133. package/src/js/uikit.js +2 -4
  134. package/src/js/util/ajax.js +25 -40
  135. package/src/js/util/animation.js +77 -75
  136. package/src/js/util/attr.js +17 -21
  137. package/src/js/util/class.js +14 -52
  138. package/src/js/util/dimensions.js +78 -49
  139. package/src/js/util/dom.js +39 -66
  140. package/src/js/util/env.js +7 -12
  141. package/src/js/util/event.js +60 -59
  142. package/src/js/util/fastdom.js +3 -8
  143. package/src/js/util/filter.js +17 -34
  144. package/src/js/util/index.js +0 -1
  145. package/src/js/util/lang.js +82 -121
  146. package/src/js/util/mouse.js +19 -17
  147. package/src/js/util/options.js +35 -49
  148. package/src/js/util/player.js +41 -36
  149. package/src/js/util/position.js +54 -46
  150. package/src/js/util/selector.js +43 -58
  151. package/src/js/util/style.js +39 -49
  152. package/src/js/util/viewport.js +81 -66
  153. package/src/less/components/base.less +10 -33
  154. package/src/less/components/flex.less +0 -9
  155. package/src/less/components/form-range.less +48 -95
  156. package/src/less/components/form.less +0 -1
  157. package/src/less/components/height.less +3 -0
  158. package/src/less/components/leader.less +0 -1
  159. package/src/less/components/lightbox.less +0 -1
  160. package/src/less/components/modal.less +3 -7
  161. package/src/less/components/navbar.less +0 -7
  162. package/src/less/components/progress.less +14 -36
  163. package/src/less/components/slider.less +0 -3
  164. package/src/less/components/slideshow.less +0 -3
  165. package/src/less/components/text.less +16 -32
  166. package/src/less/components/utility.less +22 -0
  167. package/src/scss/components/base.scss +10 -33
  168. package/src/scss/components/flex.scss +0 -9
  169. package/src/scss/components/form-range.scss +48 -95
  170. package/src/scss/components/form.scss +3 -4
  171. package/src/scss/components/height.scss +3 -0
  172. package/src/scss/components/icon.scss +2 -2
  173. package/src/scss/components/leader.scss +0 -1
  174. package/src/scss/components/lightbox.scss +0 -1
  175. package/src/scss/components/modal.scss +3 -7
  176. package/src/scss/components/navbar.scss +0 -7
  177. package/src/scss/components/progress.scss +14 -36
  178. package/src/scss/components/search.scss +1 -1
  179. package/src/scss/components/slider.scss +0 -3
  180. package/src/scss/components/slideshow.scss +0 -3
  181. package/src/scss/components/text.scss +16 -32
  182. package/src/scss/components/utility.scss +22 -0
  183. package/src/scss/mixins-theme.scss +1 -1
  184. package/src/scss/mixins.scss +1 -1
  185. package/src/scss/variables-theme.scss +9 -9
  186. package/src/scss/variables.scss +9 -9
  187. package/tests/align.html +10 -10
  188. package/tests/animation.html +2 -2
  189. package/tests/article.html +2 -2
  190. package/tests/base.html +3 -3
  191. package/tests/card.html +10 -10
  192. package/tests/column.html +3 -3
  193. package/tests/comment.html +9 -9
  194. package/tests/dotnav.html +3 -3
  195. package/tests/image.html +296 -64
  196. package/tests/images/image-type.avif +0 -0
  197. package/tests/images/image-type.jpeg +0 -0
  198. package/tests/images/image-type.webp +0 -0
  199. package/tests/index.html +8 -8
  200. package/tests/js/index.js +114 -85
  201. package/tests/lightbox.html +10 -10
  202. package/tests/marker.html +2 -2
  203. package/tests/modal.html +8 -9
  204. package/tests/navbar.html +2 -2
  205. package/tests/overlay.html +7 -7
  206. package/tests/parallax.html +14 -5
  207. package/tests/position.html +12 -12
  208. package/tests/slidenav.html +12 -12
  209. package/tests/slider.html +20 -20
  210. package/tests/sortable.html +1 -1
  211. package/tests/sticky-parallax.html +86 -98
  212. package/tests/sticky.html +56 -24
  213. package/tests/svg.html +6 -6
  214. package/tests/table.html +11 -11
  215. package/tests/thumbnav.html +12 -12
  216. package/tests/transition.html +30 -30
  217. package/tests/utility.html +33 -33
  218. package/tests/video.html +1 -1
  219. package/tests/width.html +1 -1
  220. package/src/js/mixin/flex-bug.js +0 -56
  221. package/src/js/util/promise.js +0 -191
  222. package/tests/images/animated.gif +0 -0
@@ -1,7 +1,23 @@
1
- import {$, $$, after, ajax, append, attr, includes, isVisible, isVoidElement, memoize, noop, Promise, remove, removeAttr, startsWith, toFloat} from 'uikit-util';
1
+ import {
2
+ $,
3
+ $$,
4
+ after,
5
+ append,
6
+ attr,
7
+ includes,
8
+ isTag,
9
+ isVisible,
10
+ isVoidElement,
11
+ memoize,
12
+ noop,
13
+ once,
14
+ remove,
15
+ removeAttr,
16
+ startsWith,
17
+ toFloat,
18
+ } from 'uikit-util';
2
19
 
3
20
  export default {
4
-
5
21
  args: 'src',
6
22
 
7
23
  props: {
@@ -15,14 +31,14 @@ export default {
15
31
  class: String,
16
32
  strokeAnimation: Boolean,
17
33
  focusable: Boolean, // IE 11
18
- attributes: 'list'
34
+ attributes: 'list',
19
35
  },
20
36
 
21
37
  data: {
22
38
  ratio: 1,
23
39
  include: ['style', 'class', 'focusable'],
24
40
  class: '',
25
- strokeAnimation: false
41
+ strokeAnimation: false,
26
42
  },
27
43
 
28
44
  beforeConnect() {
@@ -30,15 +46,12 @@ export default {
30
46
  },
31
47
 
32
48
  connected() {
33
-
34
49
  if (!this.icon && includes(this.src, '#')) {
35
50
  [this.src, this.icon] = this.src.split('#');
36
51
  }
37
52
 
38
- this.svg = this.getSvg().then(el => {
39
-
53
+ this.svg = this.getSvg().then((el) => {
40
54
  if (this._connected) {
41
-
42
55
  const svg = insertSVG(el, this.$el);
43
56
 
44
57
  if (this.svgEl && svg !== this.svgEl) {
@@ -47,16 +60,13 @@ export default {
47
60
 
48
61
  this.applyAttributes(svg, el);
49
62
  this.$emit();
50
- return this.svgEl = svg;
63
+ return (this.svgEl = svg);
51
64
  }
52
-
53
65
  }, noop);
54
-
55
66
  },
56
67
 
57
68
  disconnected() {
58
-
59
- this.svg.then(svg => {
69
+ this.svg.then((svg) => {
60
70
  if (this._connected) {
61
71
  return;
62
72
  }
@@ -67,15 +77,12 @@ export default {
67
77
 
68
78
  remove(svg);
69
79
  this.svgEl = null;
70
-
71
80
  });
72
81
 
73
82
  this.svg = null;
74
-
75
83
  },
76
84
 
77
85
  update: {
78
-
79
86
  read() {
80
87
  return !!(this.strokeAnimation && this.svgEl && isVisible(this.svgEl));
81
88
  },
@@ -84,22 +91,23 @@ export default {
84
91
  applyAnimation(this.svgEl);
85
92
  },
86
93
 
87
- type: ['resize']
88
-
94
+ type: ['resize'],
89
95
  },
90
96
 
91
97
  methods: {
98
+ async getSvg() {
99
+ if (isTag(this.$el, 'img') && !this.$el.complete && this.$el.loading === 'lazy') {
100
+ return new Promise((resolve) =>
101
+ once(this.$el, 'load', () => resolve(this.getSvg()))
102
+ );
103
+ }
92
104
 
93
- getSvg() {
94
- return loadSVG(this.src).then(svg =>
95
- parseSVG(svg, this.icon) || Promise.reject('SVG not found.')
96
- );
105
+ return parseSVG(await loadSVG(this.src), this.icon) || Promise.reject('SVG not found.');
97
106
  },
98
107
 
99
108
  applyAttributes(el, ref) {
100
-
101
109
  for (const prop in this.$options.props) {
102
- if (includes(this.include, prop) && (prop in this)) {
110
+ if (includes(this.include, prop) && prop in this) {
103
111
  attr(el, prop, this[prop]);
104
112
  }
105
113
  }
@@ -114,65 +122,48 @@ export default {
114
122
  }
115
123
 
116
124
  const props = ['width', 'height'];
117
- let dimensions = props.map(prop => this[prop]);
125
+ let dimensions = props.map((prop) => this[prop]);
118
126
 
119
- if (!dimensions.some(val => val)) {
120
- dimensions = props.map(prop => attr(ref, prop));
127
+ if (!dimensions.some((val) => val)) {
128
+ dimensions = props.map((prop) => attr(ref, prop));
121
129
  }
122
130
 
123
131
  const viewBox = attr(ref, 'viewBox');
124
- if (viewBox && !dimensions.some(val => val)) {
132
+ if (viewBox && !dimensions.some((val) => val)) {
125
133
  dimensions = viewBox.split(' ').slice(2);
126
134
  }
127
135
 
128
- dimensions.forEach((val, i) =>
129
- attr(el, props[i], toFloat(val) * this.ratio || null)
130
- );
131
-
132
- }
133
-
134
- }
135
-
136
+ dimensions.forEach((val, i) => attr(el, props[i], toFloat(val) * this.ratio || null));
137
+ },
138
+ },
136
139
  };
137
140
 
138
- const loadSVG = memoize(src =>
139
- new Promise((resolve, reject) => {
140
-
141
- if (!src) {
142
- reject();
143
- return;
144
- }
145
-
141
+ const loadSVG = memoize(async (src) => {
142
+ if (src) {
146
143
  if (startsWith(src, 'data:')) {
147
- resolve(decodeURIComponent(src.split(',')[1]));
144
+ return decodeURIComponent(src.split(',')[1]);
148
145
  } else {
149
-
150
- ajax(src).then(
151
- xhr => resolve(xhr.response),
152
- () => reject('SVG not found.')
153
- );
154
-
146
+ return (await fetch(src)).text();
155
147
  }
156
- })
157
- );
148
+ } else {
149
+ return Promise.reject();
150
+ }
151
+ });
158
152
 
159
153
  function parseSVG(svg, icon) {
160
-
161
154
  if (icon && includes(svg, '<symbol')) {
162
155
  svg = parseSymbols(svg, icon) || svg;
163
156
  }
164
157
 
165
158
  svg = $(svg.substr(svg.indexOf('<svg')));
166
- return svg && svg.hasChildNodes() && svg;
159
+ return svg?.hasChildNodes() && svg;
167
160
  }
168
161
 
169
162
  const symbolRe = /<symbol([^]*?id=(['"])(.+?)\2[^]*?<\/)symbol>/g;
170
163
  const symbols = {};
171
164
 
172
165
  function parseSymbols(svg, icon) {
173
-
174
166
  if (!symbols[svg]) {
175
-
176
167
  symbols[svg] = {};
177
168
 
178
169
  symbolRe.lastIndex = 0;
@@ -181,59 +172,53 @@ function parseSymbols(svg, icon) {
181
172
  while ((match = symbolRe.exec(svg))) {
182
173
  symbols[svg][match[3]] = `<svg xmlns="http://www.w3.org/2000/svg"${match[1]}svg>`;
183
174
  }
184
-
185
175
  }
186
176
 
187
177
  return symbols[svg][icon];
188
178
  }
189
179
 
190
180
  function applyAnimation(el) {
191
-
192
181
  const length = getMaxPathLength(el);
193
182
 
194
183
  if (length) {
195
184
  el.style.setProperty('--uk-animation-stroke', length);
196
185
  }
197
-
198
186
  }
199
187
 
200
188
  export function getMaxPathLength(el) {
201
- return Math.ceil(Math.max(0, ...$$('[stroke]', el).map(stroke => {
202
- try {
203
- return stroke.getTotalLength();
204
- } catch (e) {
205
- return 0;
206
- }
207
- })));
189
+ return Math.ceil(
190
+ Math.max(
191
+ 0,
192
+ ...$$('[stroke]', el).map((stroke) => {
193
+ try {
194
+ return stroke.getTotalLength();
195
+ } catch (e) {
196
+ return 0;
197
+ }
198
+ })
199
+ )
200
+ );
208
201
  }
209
202
 
210
203
  function insertSVG(el, root) {
211
-
212
- if (isVoidElement(root) || root.tagName === 'CANVAS') {
213
-
204
+ if (isVoidElement(root) || isTag(root, 'canvas')) {
214
205
  root.hidden = true;
215
206
 
216
207
  const next = root.nextElementSibling;
217
- return equals(el, next)
218
- ? next
219
- : after(root, el);
220
-
208
+ return equals(el, next) ? next : after(root, el);
221
209
  }
222
210
 
223
211
  const last = root.lastElementChild;
224
- return equals(el, last)
225
- ? last
226
- : append(root, el);
212
+ return equals(el, last) ? last : append(root, el);
227
213
  }
228
214
 
229
215
  function equals(el, other) {
230
- return isSVG(el) && isSVG(other) && innerHTML(el) === innerHTML(other);
231
- }
232
-
233
- function isSVG(el) {
234
- return el && el.tagName === 'svg';
216
+ return isTag(el, 'svg') && isTag(other, 'svg') && innerHTML(el) === innerHTML(other);
235
217
  }
236
218
 
237
219
  function innerHTML(el) {
238
- return (el.innerHTML || (new XMLSerializer()).serializeToString(el).replace(/<svg.*?>(.*?)<\/svg>/g, '$1')).replace(/\s/g, '');
220
+ return (
221
+ el.innerHTML ||
222
+ new XMLSerializer().serializeToString(el).replace(/<svg.*?>(.*?)<\/svg>/g, '$1')
223
+ ).replace(/\s/g, '');
239
224
  }
@@ -1,8 +1,22 @@
1
1
  import Togglable from '../mixin/togglable';
2
- import {$$, attr, children, css, data, endsWith, findIndex, getIndex, hasClass, matches, queryAll, toggleClass, toNodes, within} from 'uikit-util';
2
+ import {
3
+ $$,
4
+ attr,
5
+ children,
6
+ css,
7
+ data,
8
+ endsWith,
9
+ findIndex,
10
+ getIndex,
11
+ hasClass,
12
+ matches,
13
+ queryAll,
14
+ toggleClass,
15
+ toNodes,
16
+ within,
17
+ } from 'uikit-util';
3
18
 
4
19
  export default {
5
-
6
20
  mixins: [Togglable],
7
21
 
8
22
  args: 'connect',
@@ -12,7 +26,7 @@ export default {
12
26
  toggle: String,
13
27
  itemNav: String,
14
28
  active: Number,
15
- swiping: Boolean
29
+ swiping: Boolean,
16
30
  },
17
31
 
18
32
  data: {
@@ -22,40 +36,34 @@ export default {
22
36
  active: 0,
23
37
  swiping: true,
24
38
  cls: 'uk-active',
25
- attrItem: 'uk-switcher-item'
39
+ attrItem: 'uk-switcher-item',
26
40
  },
27
41
 
28
42
  computed: {
29
-
30
43
  connects: {
31
-
32
- get({connect}, $el) {
44
+ get({ connect }, $el) {
33
45
  return queryAll(connect, $el);
34
46
  },
35
47
 
36
48
  watch(connects) {
37
-
38
49
  if (this.swiping) {
39
50
  css(connects, 'touch-action', 'pan-y pinch-zoom');
40
51
  }
41
52
 
42
53
  const index = this.index();
43
- this.connects.forEach(el =>
44
- children(el).forEach((child, i) =>
45
- toggleClass(child, this.cls, i === index)
46
- )
54
+ this.connects.forEach((el) =>
55
+ children(el).forEach((child, i) => toggleClass(child, this.cls, i === index))
47
56
  );
48
-
49
57
  },
50
58
 
51
- immediate: true
52
-
59
+ immediate: true,
53
60
  },
54
61
 
55
62
  toggles: {
56
-
57
- get({toggle}, $el) {
58
- return $$(toggle, $el).filter(el => !matches(el, '.uk-disabled *, .uk-disabled, [disabled]'));
63
+ get({ toggle }, $el) {
64
+ return $$(toggle, $el).filter(
65
+ (el) => !matches(el, '.uk-disabled *, .uk-disabled, [disabled]')
66
+ );
59
67
  },
60
68
 
61
69
  watch(toggles) {
@@ -63,20 +71,18 @@ export default {
63
71
  this.show(~active ? active : toggles[this.active] || toggles[0]);
64
72
  },
65
73
 
66
- immediate: true
67
-
74
+ immediate: true,
68
75
  },
69
76
 
70
77
  children() {
71
- return children(this.$el).filter(child => this.toggles.some(toggle => within(toggle, child)));
72
- }
73
-
78
+ return children(this.$el).filter((child) =>
79
+ this.toggles.some((toggle) => within(toggle, child))
80
+ );
81
+ },
74
82
  },
75
83
 
76
84
  events: [
77
-
78
85
  {
79
-
80
86
  name: 'click',
81
87
 
82
88
  delegate() {
@@ -86,8 +92,7 @@ export default {
86
92
  handler(e) {
87
93
  e.preventDefault();
88
94
  this.show(e.current);
89
- }
90
-
95
+ },
91
96
  },
92
97
 
93
98
  {
@@ -104,7 +109,7 @@ export default {
104
109
  handler(e) {
105
110
  e.preventDefault();
106
111
  this.show(data(e.current, this.attrItem));
107
- }
112
+ },
108
113
  },
109
114
 
110
115
  {
@@ -118,21 +123,18 @@ export default {
118
123
  return this.connects;
119
124
  },
120
125
 
121
- handler({type}) {
126
+ handler({ type }) {
122
127
  this.show(endsWith(type, 'Left') ? 'next' : 'previous');
123
- }
124
- }
125
-
128
+ },
129
+ },
126
130
  ],
127
131
 
128
132
  methods: {
129
-
130
133
  index() {
131
- return findIndex(this.children, el => hasClass(el, this.cls));
134
+ return findIndex(this.children, (el) => hasClass(el, this.cls));
132
135
  },
133
136
 
134
137
  show(item) {
135
-
136
138
  const prev = this.index();
137
139
  const next = getIndex(
138
140
  this.children[getIndex(item, this.toggles, prev)],
@@ -148,15 +150,14 @@ export default {
148
150
  attr(this.toggles[i], 'aria-expanded', next === i);
149
151
  });
150
152
 
151
- this.connects.forEach(({children}) =>
152
- this.toggleElement(toNodes(children).filter(child =>
153
- hasClass(child, this.cls)
154
- ), false, prev >= 0).then(() =>
155
- this.toggleElement(children[next], true, prev >= 0)
156
- )
157
- );
158
- }
159
-
160
- }
161
-
153
+ this.connects.forEach(async ({ children }) => {
154
+ await this.toggleElement(
155
+ toNodes(children).filter((child) => hasClass(child, this.cls)),
156
+ false,
157
+ prev >= 0
158
+ );
159
+ await this.toggleElement(children[next], true, prev >= 0);
160
+ });
161
+ },
162
+ },
162
163
  };
@@ -1,33 +1,30 @@
1
1
  import Switcher from './switcher';
2
2
  import Class from '../mixin/class';
3
- import {hasClass} from 'uikit-util';
3
+ import { hasClass } from 'uikit-util';
4
4
 
5
5
  export default {
6
-
7
6
  mixins: [Class],
8
7
 
9
8
  extends: Switcher,
10
9
 
11
10
  props: {
12
- media: Boolean
11
+ media: Boolean,
13
12
  },
14
13
 
15
14
  data: {
16
15
  media: 960,
17
- attrItem: 'uk-tab-item'
16
+ attrItem: 'uk-tab-item',
18
17
  },
19
18
 
20
19
  connected() {
21
-
22
20
  const cls = hasClass(this.$el, 'uk-tab-left')
23
21
  ? 'uk-tab-left'
24
22
  : hasClass(this.$el, 'uk-tab-right')
25
- ? 'uk-tab-right'
26
- : false;
23
+ ? 'uk-tab-right'
24
+ : false;
27
25
 
28
26
  if (cls) {
29
- this.$create('toggle', this.$el, {cls, mode: 'media', media: this.media});
27
+ this.$create('toggle', this.$el, { cls, mode: 'media', media: this.media });
30
28
  }
31
- }
32
-
29
+ },
33
30
  };