uikit 3.11.2-dev.c2430c233 → 3.11.2-dev.c7ed3c19b

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 (154) 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 +5 -0
  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 +1 -1
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +1 -1
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +1 -1
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +1 -1
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +409 -438
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1116 -1305
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1164 -1383
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +294 -345
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +292 -344
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +727 -850
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +292 -344
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +615 -799
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +588 -619
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5356 -6705
  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 +8116 -9909
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +23 -27
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +13 -32
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +65 -82
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +71 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +11 -23
  70. package/src/js/components/internal/slider-transitioner.js +66 -45
  71. package/src/js/components/internal/slideshow-animations.js +42 -61
  72. package/src/js/components/lightbox-panel.js +135 -109
  73. package/src/js/components/lightbox.js +18 -39
  74. package/src/js/components/notification.js +49 -43
  75. package/src/js/components/parallax.js +16 -30
  76. package/src/js/components/slider-parallax.js +13 -23
  77. package/src/js/components/slider.js +75 -64
  78. package/src/js/components/slideshow-parallax.js +1 -1
  79. package/src/js/components/slideshow.js +8 -13
  80. package/src/js/components/sortable.js +125 -106
  81. package/src/js/components/tooltip.js +41 -31
  82. package/src/js/components/upload.js +52 -63
  83. package/src/js/core/accordion.js +53 -48
  84. package/src/js/core/alert.js +10 -17
  85. package/src/js/core/core.js +74 -53
  86. package/src/js/core/cover.js +11 -15
  87. package/src/js/core/drop.js +106 -92
  88. package/src/js/core/form-custom.js +20 -25
  89. package/src/js/core/gif.js +3 -7
  90. package/src/js/core/grid.js +57 -58
  91. package/src/js/core/height-match.js +16 -29
  92. package/src/js/core/height-viewport.js +28 -35
  93. package/src/js/core/icon.js +38 -50
  94. package/src/js/core/img.js +59 -58
  95. package/src/js/core/index.js +39 -39
  96. package/src/js/core/leader.js +9 -18
  97. package/src/js/core/margin.js +21 -37
  98. package/src/js/core/modal.js +50 -36
  99. package/src/js/core/nav.js +2 -4
  100. package/src/js/core/navbar.js +112 -88
  101. package/src/js/core/offcanvas.js +49 -53
  102. package/src/js/core/overflow-auto.js +13 -17
  103. package/src/js/core/responsive.js +14 -12
  104. package/src/js/core/scroll.js +10 -20
  105. package/src/js/core/scrollspy-nav.js +34 -31
  106. package/src/js/core/scrollspy.js +37 -54
  107. package/src/js/core/sticky.js +130 -91
  108. package/src/js/core/svg.js +60 -79
  109. package/src/js/core/switcher.js +47 -46
  110. package/src/js/core/tab.js +7 -10
  111. package/src/js/core/toggle.js +64 -66
  112. package/src/js/core/video.js +11 -22
  113. package/src/js/mixin/animate.js +19 -20
  114. package/src/js/mixin/class.js +2 -4
  115. package/src/js/mixin/container.js +7 -11
  116. package/src/js/mixin/internal/animate-fade.js +73 -30
  117. package/src/js/mixin/internal/animate-slide.js +61 -41
  118. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  119. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  120. package/src/js/mixin/media.js +5 -10
  121. package/src/js/mixin/modal.js +89 -66
  122. package/src/js/mixin/parallax.js +53 -48
  123. package/src/js/mixin/position.js +26 -20
  124. package/src/js/mixin/slider-autoplay.js +12 -21
  125. package/src/js/mixin/slider-drag.js +64 -65
  126. package/src/js/mixin/slider-nav.js +26 -35
  127. package/src/js/mixin/slider-reactive.js +2 -8
  128. package/src/js/mixin/slider.js +51 -50
  129. package/src/js/mixin/slideshow.js +13 -19
  130. package/src/js/mixin/togglable.js +90 -63
  131. package/src/js/uikit-core.js +2 -4
  132. package/src/js/uikit.js +2 -4
  133. package/src/js/util/ajax.js +27 -43
  134. package/src/js/util/animation.js +82 -75
  135. package/src/js/util/attr.js +17 -21
  136. package/src/js/util/class.js +14 -52
  137. package/src/js/util/dimensions.js +56 -43
  138. package/src/js/util/dom.js +40 -73
  139. package/src/js/util/env.js +7 -12
  140. package/src/js/util/event.js +60 -59
  141. package/src/js/util/fastdom.js +1 -6
  142. package/src/js/util/filter.js +17 -34
  143. package/src/js/util/index.js +0 -1
  144. package/src/js/util/lang.js +79 -119
  145. package/src/js/util/mouse.js +19 -17
  146. package/src/js/util/options.js +44 -49
  147. package/src/js/util/player.js +40 -36
  148. package/src/js/util/position.js +54 -46
  149. package/src/js/util/selector.js +34 -49
  150. package/src/js/util/style.js +36 -46
  151. package/src/js/util/viewport.js +75 -64
  152. package/tests/js/index.js +114 -85
  153. package/src/js/mixin/flex-bug.js +0 -56
  154. package/src/js/util/promise.js +0 -191
@@ -1,11 +1,26 @@
1
1
  import Media from '../mixin/media';
2
2
  import Togglable from '../mixin/togglable';
3
- import {attr, closest, hasClass, includes, isBoolean, isFocusable, isTouch, matches, once, pointerDown, pointerEnter, pointerLeave, queryAll, trigger, within} from 'uikit-util';
3
+ import {
4
+ attr,
5
+ closest,
6
+ hasClass,
7
+ includes,
8
+ isBoolean,
9
+ isFocusable,
10
+ isTouch,
11
+ matches,
12
+ once,
13
+ pointerDown,
14
+ pointerEnter,
15
+ pointerLeave,
16
+ queryAll,
17
+ trigger,
18
+ within,
19
+ } from 'uikit-util';
4
20
 
5
21
  const KEY_SPACE = 32;
6
22
 
7
23
  export default {
8
-
9
24
  mixins: [Media, Togglable],
10
25
 
11
26
  args: 'target',
@@ -14,14 +29,14 @@ export default {
14
29
  href: String,
15
30
  target: null,
16
31
  mode: 'list',
17
- queued: Boolean
32
+ queued: Boolean,
18
33
  },
19
34
 
20
35
  data: {
21
36
  href: false,
22
37
  target: false,
23
38
  mode: 'click',
24
- queued: true
39
+ queued: true,
25
40
  },
26
41
 
27
42
  connected() {
@@ -31,26 +46,21 @@ export default {
31
46
  },
32
47
 
33
48
  computed: {
34
-
35
49
  target: {
36
-
37
- get({href, target}, $el) {
50
+ get({ href, target }, $el) {
38
51
  target = queryAll(target || href, $el);
39
- return target.length && target || [$el];
52
+ return (target.length && target) || [$el];
40
53
  },
41
54
 
42
55
  watch() {
43
56
  this.updateAria();
44
57
  },
45
58
 
46
- immediate: true
47
-
48
- }
49
-
59
+ immediate: true,
60
+ },
50
61
  },
51
62
 
52
63
  events: [
53
-
54
64
  {
55
65
  name: pointerDown,
56
66
 
@@ -59,7 +69,6 @@ export default {
59
69
  },
60
70
 
61
71
  handler(e) {
62
-
63
72
  if (!isTouch(e) || this._showState) {
64
73
  return;
65
74
  }
@@ -67,17 +76,22 @@ export default {
67
76
  // Clicking a button does not give it focus on all browsers and platforms
68
77
  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus
69
78
  trigger(this.$el, 'focus');
70
- once(document, pointerDown, () => trigger(this.$el, 'blur'), true, e => !within(e.target, this.$el));
79
+ once(
80
+ document,
81
+ pointerDown,
82
+ () => trigger(this.$el, 'blur'),
83
+ true,
84
+ (e) => !within(e.target, this.$el)
85
+ );
71
86
 
72
87
  // Prevent initial click to prevent double toggle through focus + click
73
88
  if (includes(this.mode, 'click')) {
74
89
  this._preventClick = true;
75
90
  }
76
- }
91
+ },
77
92
  },
78
93
 
79
94
  {
80
-
81
95
  name: `${pointerEnter} ${pointerLeave} focus blur`,
82
96
 
83
97
  filter() {
@@ -93,16 +107,16 @@ export default {
93
107
  const expanded = attr(this.$el, 'aria-expanded');
94
108
 
95
109
  // Skip hide if still hovered or focused
96
- if (!show && (
97
- e.type === pointerLeave && matches(this.$el, ':focus')
98
- || e.type === 'blur' && matches(this.$el, ':hover')
99
- )) {
110
+ if (
111
+ !show &&
112
+ ((e.type === pointerLeave && matches(this.$el, ':focus')) ||
113
+ (e.type === 'blur' && matches(this.$el, ':hover')))
114
+ ) {
100
115
  return;
101
116
  }
102
117
 
103
118
  // Skip if state does not change e.g. hover + focus received
104
119
  if (this._showState && show === (expanded !== this._showState)) {
105
-
106
120
  // Ensure reset if state has changed through click
107
121
  if (!show) {
108
122
  this._showState = null;
@@ -113,8 +127,7 @@ export default {
113
127
  this._showState = show ? expanded : null;
114
128
 
115
129
  this.toggle(`toggle${show ? 'show' : 'hide'}`);
116
- }
117
-
130
+ },
118
131
  },
119
132
 
120
133
  {
@@ -129,11 +142,10 @@ export default {
129
142
  e.preventDefault();
130
143
  this.$el.click();
131
144
  }
132
- }
145
+ },
133
146
  },
134
147
 
135
148
  {
136
-
137
149
  name: 'click',
138
150
 
139
151
  filter() {
@@ -141,28 +153,25 @@ export default {
141
153
  },
142
154
 
143
155
  handler(e) {
144
-
145
156
  if (this._preventClick) {
146
- return this._preventClick = null;
157
+ return (this._preventClick = null);
147
158
  }
148
159
 
149
160
  let link;
150
- if (closest(e.target, 'a[href="#"], a[href=""]')
151
- || (link = closest(e.target, 'a[href]')) && (
152
- attr(this.$el, 'aria-expanded') !== 'true'
153
- || link.hash && matches(this.target, link.hash)
154
- )
161
+ if (
162
+ closest(e.target, 'a[href="#"], a[href=""]') ||
163
+ ((link = closest(e.target, 'a[href]')) &&
164
+ (attr(this.$el, 'aria-expanded') !== 'true' ||
165
+ (link.hash && matches(this.target, link.hash))))
155
166
  ) {
156
167
  e.preventDefault();
157
168
  }
158
169
 
159
170
  this.toggle();
160
- }
161
-
171
+ },
162
172
  },
163
173
 
164
174
  {
165
-
166
175
  name: 'toggled',
167
176
 
168
177
  self: true,
@@ -175,36 +184,27 @@ export default {
175
184
  if (e.target === this.target[0]) {
176
185
  this.updateAria(toggled);
177
186
  }
178
- }
179
- }
180
-
187
+ },
188
+ },
181
189
  ],
182
190
 
183
191
  update: {
184
-
185
192
  read() {
186
- return includes(this.mode, 'media') && this.media
187
- ? {match: this.matchMedia}
188
- : false;
193
+ return includes(this.mode, 'media') && this.media ? { match: this.matchMedia } : false;
189
194
  },
190
195
 
191
- write({match}) {
192
-
196
+ write({ match }) {
193
197
  const toggled = this.isToggled(this.target);
194
198
  if (match ? !toggled : toggled) {
195
199
  this.toggle();
196
200
  }
197
-
198
201
  },
199
202
 
200
- events: ['resize']
201
-
203
+ events: ['resize'],
202
204
  },
203
205
 
204
206
  methods: {
205
-
206
- toggle(type) {
207
-
207
+ async toggle(type) {
208
208
  if (!trigger(this.target, type || 'toggle', [this])) {
209
209
  return;
210
210
  }
@@ -213,23 +213,22 @@ export default {
213
213
  return this.toggleElement(this.target);
214
214
  }
215
215
 
216
- const leaving = this.target.filter(el => hasClass(el, this.clsLeave));
216
+ const leaving = this.target.filter((el) => hasClass(el, this.clsLeave));
217
217
 
218
218
  if (leaving.length) {
219
- this.target.forEach(el => {
219
+ for (const el of this.target) {
220
220
  const isLeaving = includes(leaving, el);
221
221
  this.toggleElement(el, isLeaving, isLeaving);
222
- });
222
+ }
223
223
  return;
224
224
  }
225
225
 
226
226
  const toggled = this.target.filter(this.isToggled);
227
- this.toggleElement(toggled, false).then(() =>
228
- this.toggleElement(this.target.filter(el =>
229
- !includes(toggled, el)
230
- ), true)
227
+ await this.toggleElement(toggled, false);
228
+ await this.toggleElement(
229
+ this.target.filter((el) => !includes(toggled, el)),
230
+ true
231
231
  );
232
-
233
232
  },
234
233
 
235
234
  updateAria(toggled) {
@@ -237,12 +236,11 @@ export default {
237
236
  return;
238
237
  }
239
238
 
240
- attr(this.$el, 'aria-expanded', isBoolean(toggled)
241
- ? toggled
242
- : this.isToggled(this.target)
239
+ attr(
240
+ this.$el,
241
+ 'aria-expanded',
242
+ isBoolean(toggled) ? toggled : this.isToggled(this.target)
243
243
  );
244
- }
245
-
246
- }
247
-
244
+ },
245
+ },
248
246
  };
@@ -1,29 +1,25 @@
1
- import {css, hasAttr, isInView, isVideo, isVisible, mute, pause, play} from 'uikit-util';
1
+ import { css, hasAttr, isInView, isVideo, isVisible, mute, pause, play } from 'uikit-util';
2
2
 
3
3
  export default {
4
-
5
4
  args: 'autoplay',
6
5
 
7
6
  props: {
8
7
  automute: Boolean,
9
- autoplay: Boolean
8
+ autoplay: Boolean,
10
9
  },
11
10
 
12
11
  data: {
13
12
  automute: false,
14
- autoplay: true
13
+ autoplay: true,
15
14
  },
16
15
 
17
16
  computed: {
18
-
19
- inView({autoplay}) {
17
+ inView({ autoplay }) {
20
18
  return autoplay === 'inview';
21
- }
22
-
19
+ },
23
20
  },
24
21
 
25
22
  connected() {
26
-
27
23
  if (this.inView && !hasAttr(this.$el, 'preload')) {
28
24
  this.$el.preload = 'none';
29
25
  }
@@ -31,35 +27,28 @@ export default {
31
27
  if (this.automute) {
32
28
  mute(this.$el);
33
29
  }
34
-
35
30
  },
36
31
 
37
32
  update: {
38
-
39
33
  read() {
40
-
41
34
  if (!isVideo(this.$el)) {
42
35
  return false;
43
36
  }
44
37
 
45
38
  return {
46
39
  visible: isVisible(this.$el) && css(this.$el, 'visibility') !== 'hidden',
47
- inView: this.inView && isInView(this.$el)
40
+ inView: this.inView && isInView(this.$el),
48
41
  };
49
42
  },
50
43
 
51
- write({visible, inView}) {
52
-
53
- if (!visible || this.inView && !inView) {
44
+ write({ visible, inView }) {
45
+ if (!visible || (this.inView && !inView)) {
54
46
  pause(this.$el);
55
- } else if (this.autoplay === true || this.inView && inView) {
47
+ } else if (this.autoplay === true || (this.inView && inView)) {
56
48
  play(this.$el);
57
49
  }
58
-
59
50
  },
60
51
 
61
- events: ['resize', 'scroll']
62
-
63
- }
64
-
52
+ events: ['resize', 'scroll'],
53
+ },
65
54
  };
@@ -1,38 +1,37 @@
1
1
  import fade from './internal/animate-fade';
2
2
  import slide from './internal/animate-slide';
3
- import {noop, Promise} from 'uikit-util';
3
+ import { noop } from 'uikit-util';
4
4
 
5
5
  export default {
6
-
7
6
  props: {
8
7
  duration: Number,
9
- animation: Boolean
8
+ animation: Boolean,
10
9
  },
11
10
 
12
11
  data: {
13
12
  duration: 150,
14
- animation: 'slide'
13
+ animation: 'slide',
15
14
  },
16
15
 
17
16
  methods: {
18
-
19
17
  animate(action, target = this.$el) {
20
-
21
18
  const name = this.animation;
22
- const animationFn = name === 'fade'
23
- ? fade
24
- : name === 'delayed-fade'
19
+ const animationFn =
20
+ name === 'fade'
21
+ ? fade
22
+ : name === 'delayed-fade'
25
23
  ? (...args) => fade(...args, 40)
26
24
  : name
27
- ? slide
28
- : () => {
29
- action();
30
- return Promise.resolve();
31
- };
32
-
33
- return animationFn(action, target, this.duration)
34
- .then(() => this.$update(target, 'resize'), noop);
35
- }
36
-
37
- }
25
+ ? slide
26
+ : () => {
27
+ action();
28
+ return Promise.resolve();
29
+ };
30
+
31
+ return animationFn(action, target, this.duration).then(
32
+ () => this.$update(target, 'resize'),
33
+ noop
34
+ );
35
+ },
36
+ },
38
37
  };
@@ -1,9 +1,7 @@
1
- import {addClass, hasClass} from 'uikit-util';
1
+ import { addClass, hasClass } from 'uikit-util';
2
2
 
3
3
  export default {
4
-
5
4
  connected() {
6
5
  !hasClass(this.$el, this.$name) && addClass(this.$el, this.$name);
7
- }
8
-
6
+ },
9
7
  };
@@ -1,21 +1,17 @@
1
- import {$} from 'uikit-util';
1
+ import { $ } from 'uikit-util';
2
2
 
3
3
  export default {
4
-
5
4
  props: {
6
- container: Boolean
5
+ container: Boolean,
7
6
  },
8
7
 
9
8
  data: {
10
- container: true
9
+ container: true,
11
10
  },
12
11
 
13
12
  computed: {
14
-
15
- container({container}) {
16
- return container === true && this.$container || container && $(container);
17
- }
18
-
19
- }
20
-
13
+ container({ container }) {
14
+ return (container === true && this.$container) || (container && $(container));
15
+ },
16
+ },
21
17
  };
@@ -1,43 +1,58 @@
1
- import {getRows} from '../../core/margin';
2
- import {addClass, children, css, hasClass, height, isInView, once, Promise, removeClass, sortBy, toNumber, Transition} from 'uikit-util';
1
+ import { getRows } from '../../core/margin';
2
+ import {
3
+ addClass,
4
+ children,
5
+ css,
6
+ hasClass,
7
+ height,
8
+ isInView,
9
+ once,
10
+ removeClass,
11
+ sortBy,
12
+ toNumber,
13
+ Transition,
14
+ } from 'uikit-util';
3
15
 
4
16
  const clsLeave = 'uk-transition-leave';
5
17
  const clsEnter = 'uk-transition-enter';
6
18
 
7
19
  export default function fade(action, target, duration, stagger = 0) {
8
-
9
20
  const index = transitionIndex(target, true);
10
- const propsIn = {opacity: 1};
11
- const propsOut = {opacity: 0};
21
+ const propsIn = { opacity: 1 };
22
+ const propsOut = { opacity: 0 };
12
23
 
13
- const wrapIndexFn = fn =>
14
- () => index === transitionIndex(target) ? fn() : Promise.reject();
24
+ const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();
15
25
 
16
26
  const leaveFn = wrapIndexFn(() => {
17
-
18
27
  addClass(target, clsLeave);
19
28
 
20
- return Promise.all(getTransitionNodes(target).map((child, i) =>
21
- new Promise(resolve =>
22
- setTimeout(() => Transition.start(child, propsOut, duration / 2, 'ease').then(resolve), i * stagger)
29
+ return Promise.all(
30
+ getTransitionNodes(target).map(
31
+ (child, i) =>
32
+ new Promise((resolve) =>
33
+ setTimeout(
34
+ () =>
35
+ Transition.start(child, propsOut, duration / 2, 'ease').then(
36
+ resolve
37
+ ),
38
+ i * stagger
39
+ )
40
+ )
23
41
  )
24
- )).then(() => removeClass(target, clsLeave));
25
-
42
+ ).then(() => removeClass(target, clsLeave));
26
43
  });
27
44
 
28
45
  const enterFn = wrapIndexFn(() => {
29
-
30
46
  const oldHeight = height(target);
31
47
 
32
48
  addClass(target, clsEnter);
33
49
  action();
34
50
 
35
- css(children(target), {opacity: 0});
51
+ css(children(target), { opacity: 0 });
36
52
 
37
53
  // Ensure UIkit updates have propagated
38
- return new Promise(resolve =>
54
+ return new Promise((resolve) =>
39
55
  requestAnimationFrame(() => {
40
-
41
56
  const nodes = children(target);
42
57
  const newHeight = height(target);
43
58
 
@@ -48,21 +63,35 @@ export default function fade(action, target, duration, stagger = 0) {
48
63
  const transitionNodes = getTransitionNodes(target);
49
64
  css(nodes, propsOut);
50
65
 
51
- const transitions = transitionNodes.map((child, i) =>
52
- new Promise(resolve =>
53
- setTimeout(() => Transition.start(child, propsIn, duration / 2, 'ease').then(resolve), i * stagger)
54
- )
66
+ const transitions = transitionNodes.map(
67
+ (child, i) =>
68
+ new Promise((resolve) =>
69
+ setTimeout(
70
+ () =>
71
+ Transition.start(child, propsIn, duration / 2, 'ease').then(
72
+ resolve
73
+ ),
74
+ i * stagger
75
+ )
76
+ )
55
77
  );
56
78
 
57
79
  if (oldHeight !== newHeight) {
58
- transitions.push(Transition.start(target, {height: newHeight}, duration / 2 + transitionNodes.length * stagger, 'ease'));
80
+ transitions.push(
81
+ Transition.start(
82
+ target,
83
+ { height: newHeight },
84
+ duration / 2 + transitionNodes.length * stagger,
85
+ 'ease'
86
+ )
87
+ );
59
88
  }
60
89
 
61
90
  Promise.all(transitions).then(() => {
62
91
  removeClass(target, clsEnter);
63
92
  if (index === transitionIndex(target)) {
64
- css(target, {height: '', alignContent: ''});
65
- css(nodes, {opacity: ''});
93
+ css(target, { height: '', alignContent: '' });
94
+ css(nodes, { opacity: '' });
66
95
  delete target.dataset.transition;
67
96
  }
68
97
  resolve();
@@ -74,8 +103,8 @@ export default function fade(action, target, duration, stagger = 0) {
74
103
  return hasClass(target, clsLeave)
75
104
  ? waitTransitionend(target).then(enterFn)
76
105
  : hasClass(target, clsEnter)
77
- ? waitTransitionend(target).then(leaveFn).then(enterFn)
78
- : leaveFn().then(enterFn);
106
+ ? waitTransitionend(target).then(leaveFn).then(enterFn)
107
+ : leaveFn().then(enterFn);
79
108
  }
80
109
 
81
110
  function transitionIndex(target, next) {
@@ -87,11 +116,25 @@ function transitionIndex(target, next) {
87
116
  }
88
117
 
89
118
  function waitTransitionend(target) {
90
- return Promise.all(children(target).filter(Transition.inProgress).map(el =>
91
- new Promise(resolve => once(el, 'transitionend transitioncanceled', resolve))
92
- ));
119
+ return Promise.all(
120
+ children(target)
121
+ .filter(Transition.inProgress)
122
+ .map(
123
+ (el) =>
124
+ new Promise((resolve) => once(el, 'transitionend transitioncanceled', resolve))
125
+ )
126
+ );
93
127
  }
94
128
 
95
129
  function getTransitionNodes(target) {
96
- return getRows(children(target)).reduce((nodes, row) => nodes.concat(sortBy(row.filter(el => isInView(el)), 'offsetLeft')), []);
130
+ return getRows(children(target)).reduce(
131
+ (nodes, row) =>
132
+ nodes.concat(
133
+ sortBy(
134
+ row.filter((el) => isInView(el)),
135
+ 'offsetLeft'
136
+ )
137
+ ),
138
+ []
139
+ );
97
140
  }