uikit 3.11.2-dev.57792c7e7 → 3.11.2-dev.72dbb9a19

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 (171) 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 +21 -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 +42 -32
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +42 -32
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +42 -32
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +42 -32
  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 +297 -352
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +295 -340
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +722 -852
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +295 -340
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +612 -802
  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 +5370 -6659
  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 +7904 -9673
  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-transitioner.js +66 -45
  71. package/src/js/components/internal/slideshow-animations.js +46 -64
  72. package/src/js/components/lightbox-panel.js +107 -105
  73. package/src/js/components/lightbox.js +17 -39
  74. package/src/js/components/notification.js +49 -43
  75. package/src/js/components/parallax.js +21 -46
  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 +126 -108
  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 +9 -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 +107 -93
  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 +29 -36
  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 +49 -36
  99. package/src/js/core/nav.js +2 -4
  100. package/src/js/core/navbar.js +113 -85
  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 +187 -116
  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 +58 -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 +80 -64
  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 +48 -55
  129. package/src/js/mixin/slideshow.js +13 -19
  130. package/src/js/mixin/togglable.js +89 -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 +20 -39
  134. package/src/js/util/animation.js +77 -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 +76 -47
  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 +3 -8
  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 +81 -121
  145. package/src/js/util/mouse.js +19 -17
  146. package/src/js/util/options.js +35 -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 +43 -58
  150. package/src/js/util/style.js +36 -46
  151. package/src/js/util/viewport.js +81 -66
  152. package/src/less/components/base.less +0 -5
  153. package/src/less/components/flex.less +0 -9
  154. package/src/less/components/leader.less +0 -1
  155. package/src/less/components/navbar.less +0 -7
  156. package/src/less/components/utility.less +22 -0
  157. package/src/scss/components/base.scss +0 -5
  158. package/src/scss/components/flex.scss +0 -9
  159. package/src/scss/components/form.scss +3 -3
  160. package/src/scss/components/icon.scss +2 -2
  161. package/src/scss/components/leader.scss +0 -1
  162. package/src/scss/components/navbar.scss +0 -7
  163. package/src/scss/components/search.scss +1 -1
  164. package/src/scss/components/utility.scss +22 -0
  165. package/src/scss/variables-theme.scss +6 -6
  166. package/src/scss/variables.scss +6 -6
  167. package/tests/js/index.js +114 -85
  168. package/tests/sticky-parallax.html +44 -41
  169. package/tests/sticky.html +56 -24
  170. package/src/js/mixin/flex-bug.js +0 -56
  171. package/src/js/util/promise.js +0 -191
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.11.2-dev.57792c7e7 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.11.2-dev.72dbb9a19 | 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,487 +7,442 @@
7
7
  })(this, (function (uikitUtil) { 'use strict';
8
8
 
9
9
  var Media = {
10
+ props: {
11
+ media: Boolean },
10
12
 
11
- props: {
12
- media: Boolean
13
- },
14
13
 
15
- data: {
16
- media: false
17
- },
14
+ data: {
15
+ media: false },
18
16
 
19
- computed: {
20
17
 
21
- matchMedia: function() {
22
- var media = toMedia(this.media);
23
- return !media || window.matchMedia(media).matches;
24
- }
18
+ computed: {
19
+ matchMedia() {
20
+ const media = toMedia(this.media);
21
+ return !media || window.matchMedia(media).matches;
22
+ } } };
25
23
 
26
- }
27
24
 
28
- };
29
25
 
30
26
  function toMedia(value) {
31
-
32
- if (uikitUtil.isString(value)) {
33
- if (value[0] === '@') {
34
- var name = "breakpoint-" + (value.substr(1));
35
- value = uikitUtil.toFloat(uikitUtil.getCssVar(name));
36
- } else if (isNaN(value)) {
37
- return value;
38
- }
27
+ if (uikitUtil.isString(value)) {
28
+ if (value[0] === '@') {
29
+ const name = "breakpoint-" + value.substr(1);
30
+ value = uikitUtil.toFloat(uikitUtil.getCssVar(name));
31
+ } else if (isNaN(value)) {
32
+ return value;
39
33
  }
34
+ }
40
35
 
41
- return value && !isNaN(value) ? ("(min-width: " + value + "px)") : false;
36
+ return value && !isNaN(value) ? "(min-width: " + value + "px)" : false;
42
37
  }
43
38
 
44
- uikitUtil.memoize(function (src) { return new uikitUtil.Promise(function (resolve, reject) {
45
-
46
- if (!src) {
47
- reject();
48
- return;
49
- }
50
-
51
- if (uikitUtil.startsWith(src, 'data:')) {
52
- resolve(decodeURIComponent(src.split(',')[1]));
53
- } else {
39
+ uikitUtil.memoize(async (src) => {
40
+ if (src) {
41
+ if (uikitUtil.startsWith(src, 'data:')) {
42
+ return decodeURIComponent(src.split(',')[1]);
43
+ } else {
44
+ return (await fetch(src)).text();
45
+ }
46
+ } else {
47
+ return Promise.reject();
48
+ }
49
+ });
54
50
 
55
- uikitUtil.ajax(src).then(
56
- function (xhr) { return resolve(xhr.response); },
57
- function () { return reject('SVG not found.'); }
58
- );
51
+ function getMaxPathLength(el) {
52
+ return Math.ceil(
53
+ Math.max(
54
+ 0,
55
+ ...uikitUtil.$$('[stroke]', el).map((stroke) => {
56
+ try {
57
+ return stroke.getTotalLength();
58
+ } catch (e) {
59
+ return 0;
60
+ }
61
+ })));
59
62
 
60
- }
61
- }); }
62
- );
63
63
 
64
- function getMaxPathLength(el) {
65
- return Math.ceil(Math.max.apply(Math, [ 0 ].concat( uikitUtil.$$('[stroke]', el).map(function (stroke) {
66
- try {
67
- return stroke.getTotalLength();
68
- } catch (e) {
69
- return 0;
70
- }
71
- }) )));
72
64
  }
73
65
 
74
- var props = {
75
- x: transformFn,
76
- y: transformFn,
77
- rotate: transformFn,
78
- scale: transformFn,
79
- color: colorFn,
80
- backgroundColor: colorFn,
81
- borderColor: colorFn,
82
- blur: filterFn,
83
- hue: filterFn,
84
- fopacity: filterFn,
85
- grayscale: filterFn,
86
- invert: filterFn,
87
- saturate: filterFn,
88
- sepia: filterFn,
89
- opacity: cssPropFn,
90
- stroke: strokeFn,
91
- bgx: backgroundFn,
92
- bgy: backgroundFn
93
- };
94
-
95
- var keys = Object.keys;
66
+ const props = {
67
+ x: transformFn,
68
+ y: transformFn,
69
+ rotate: transformFn,
70
+ scale: transformFn,
71
+ color: colorFn,
72
+ backgroundColor: colorFn,
73
+ borderColor: colorFn,
74
+ blur: filterFn,
75
+ hue: filterFn,
76
+ fopacity: filterFn,
77
+ grayscale: filterFn,
78
+ invert: filterFn,
79
+ saturate: filterFn,
80
+ sepia: filterFn,
81
+ opacity: cssPropFn,
82
+ stroke: strokeFn,
83
+ bgx: backgroundFn,
84
+ bgy: backgroundFn };
85
+
86
+
87
+ const { keys } = Object;
96
88
 
97
89
  var Parallax = {
90
+ mixins: [Media],
98
91
 
99
- mixins: [Media],
100
-
101
- props: fillObject(keys(props), 'list'),
102
-
103
- data: fillObject(keys(props), undefined),
92
+ props: fillObject(keys(props), 'list'),
104
93
 
105
- computed: {
94
+ data: fillObject(keys(props), undefined),
106
95
 
107
- props: function(properties, $el) {
108
- var this$1$1 = this;
109
-
110
- return keys(props).reduce(function (result, prop) {
111
- if (!uikitUtil.isUndefined(properties[prop])) {
112
- result[prop] = props[prop].call(this$1$1, prop, $el, properties[prop].slice());
113
- }
114
- return result;
115
- }, {});
96
+ computed: {
97
+ props(properties, $el) {
98
+ return keys(props).reduce((result, prop) => {
99
+ if (!uikitUtil.isUndefined(properties[prop])) {
100
+ result[prop] = props[prop](prop, $el, properties[prop].slice());
116
101
  }
102
+ return result;
103
+ }, {});
104
+ } },
117
105
 
118
- },
119
106
 
120
- methods: {
107
+ events: {
108
+ bgimageload() {
109
+ this.$emit();
110
+ } },
121
111
 
122
- reset: function() {
123
- var this$1$1 = this;
124
112
 
125
- uikitUtil.each(this.getCss(0), function (_, prop) { return uikitUtil.css(this$1$1.$el, prop, ''); });
126
- },
113
+ methods: {
114
+ reset() {
115
+ uikitUtil.each(this.getCss(0), (_, prop) => uikitUtil.css(this.$el, prop, ''));
116
+ },
127
117
 
128
- getCss: function(percent) {
129
- var this$1$1 = this;
118
+ getCss(percent) {
119
+ return keys(this.props).reduce(
120
+ (css, prop) => {
121
+ this.props[prop](css, percent);
122
+ return css;
123
+ },
124
+ { transform: '', filter: '' });
130
125
 
131
- return keys(this.props).reduce(function (css, prop) {
132
- this$1$1.props[prop](css, percent);
133
- return css;
134
- }, {transform: '', filter: ''});
135
- }
126
+ } } };
136
127
 
137
- }
138
128
 
139
- };
140
129
 
141
130
  function transformFn(prop, el, steps) {
131
+ const unit = getUnit(steps) || { x: 'px', y: 'px', rotate: 'deg' }[prop] || '';
142
132
 
143
- var unit = getUnit(steps) || {x: 'px', y: 'px', rotate: 'deg'}[prop] || '';
133
+ if (prop === 'x' || prop === 'y') {
134
+ prop = "translate" + uikitUtil.ucfirst(prop);
135
+ }
144
136
 
145
- if (prop === 'x' || prop === 'y') {
146
- prop = "translate" + (uikitUtil.ucfirst(prop));
147
- }
148
-
149
- steps = steps.map(uikitUtil.toFloat);
137
+ steps = steps.map(uikitUtil.toFloat);
150
138
 
151
- if (steps.length === 1) {
152
- steps.unshift(prop === 'scale' ? 1 : 0);
153
- }
139
+ if (steps.length === 1) {
140
+ steps.unshift(prop === 'scale' ? 1 : 0);
141
+ }
154
142
 
155
- return function (css, percent) {
156
- var value = getValue(steps, percent);
143
+ return (css, percent) => {
144
+ let value = getValue(steps, percent);
157
145
 
158
- if (uikitUtil.startsWith(prop, 'translate')) {
159
- value = uikitUtil.toFloat(value).toFixed(unit === 'px' ? 0 : 6);
160
- }
146
+ if (uikitUtil.startsWith(prop, 'translate')) {
147
+ value = uikitUtil.toFloat(value).toFixed(unit === 'px' ? 0 : 6);
148
+ }
161
149
 
162
- css.transform += " " + prop + "(" + value + unit + ")";
163
- };
150
+ css.transform += " " + prop + "(" + value + unit + ")";
151
+ };
164
152
  }
165
153
 
166
154
  function colorFn(prop, el, steps) {
167
-
168
- if (steps.length === 1) {
169
- steps.unshift(getCssValue(el, prop, ''));
170
- }
171
-
172
- steps = steps.map(function (step) { return parseColor(el, step); });
173
-
174
- return function (css, percent) {
175
-
176
- var ref = getStep(steps, percent);
177
- var start = ref[0];
178
- var end = ref[1];
179
- var p = ref[2];
180
- var value = start.map(function (value, i) {
181
- value += p * (end[i] - value);
182
- return i === 3 ? uikitUtil.toFloat(value) : parseInt(value, 10);
183
- }).join(',');
184
- css[prop] = "rgba(" + value + ")";
185
- };
155
+ if (steps.length === 1) {
156
+ steps.unshift(getCssValue(el, prop, ''));
157
+ }
158
+
159
+ steps = steps.map((step) => parseColor(el, step));
160
+
161
+ return (css, percent) => {
162
+ const [start, end, p] = getStep(steps, percent);
163
+ const value = start.
164
+ map((value, i) => {
165
+ value += p * (end[i] - value);
166
+ return i === 3 ? uikitUtil.toFloat(value) : parseInt(value, 10);
167
+ }).
168
+ join(',');
169
+ css[prop] = "rgba(" + value + ")";
170
+ };
186
171
  }
187
172
 
188
173
  function parseColor(el, color) {
189
- return getCssValue(el, 'color', color)
190
- .split(/[(),]/g)
191
- .slice(1, -1)
192
- .concat(1)
193
- .slice(0, 4)
194
- .map(uikitUtil.toFloat);
174
+ return getCssValue(el, 'color', color).
175
+ split(/[(),]/g).
176
+ slice(1, -1).
177
+ concat(1).
178
+ slice(0, 4).
179
+ map(uikitUtil.toFloat);
195
180
  }
196
181
 
197
182
  function filterFn(prop, el, steps) {
198
-
199
- if (steps.length === 1) {
200
- steps.unshift(0);
201
- }
202
-
203
- var unit = getUnit(steps) || {blur: 'px', hue: 'deg'}[prop] || '%';
204
- prop = {fopacity: 'opacity', hue: 'hue-rotate'}[prop] || prop;
205
- steps = steps.map(uikitUtil.toFloat);
206
-
207
- return function (css, percent) {
208
- var value = getValue(steps, percent);
209
- css.filter += " " + prop + "(" + (value + unit) + ")";
210
- };
183
+ if (steps.length === 1) {
184
+ steps.unshift(0);
185
+ }
186
+
187
+ const unit = getUnit(steps) || { blur: 'px', hue: 'deg' }[prop] || '%';
188
+ prop = { fopacity: 'opacity', hue: 'hue-rotate' }[prop] || prop;
189
+ steps = steps.map(uikitUtil.toFloat);
190
+
191
+ return (css, percent) => {
192
+ const value = getValue(steps, percent);
193
+ css.filter += " " + prop + "(" + (value + unit) + ")";
194
+ };
211
195
  }
212
196
 
213
197
  function cssPropFn(prop, el, steps) {
198
+ if (steps.length === 1) {
199
+ steps.unshift(getCssValue(el, prop, ''));
200
+ }
214
201
 
215
- if (steps.length === 1) {
216
- steps.unshift(getCssValue(el, prop, ''));
217
- }
202
+ steps = steps.map(uikitUtil.toFloat);
218
203
 
219
- steps = steps.map(uikitUtil.toFloat);
220
-
221
- return function (css, percent) {
222
- css[prop] = getValue(steps, percent);
223
- };
204
+ return (css, percent) => {
205
+ css[prop] = getValue(steps, percent);
206
+ };
224
207
  }
225
208
 
226
209
  function strokeFn(prop, el, steps) {
210
+ if (steps.length === 1) {
211
+ steps.unshift(0);
212
+ }
227
213
 
228
- if (steps.length === 1) {
229
- steps.unshift(0);
230
- }
214
+ const unit = getUnit(steps);
215
+ steps = steps.map(uikitUtil.toFloat);
231
216
 
232
- var unit = getUnit(steps);
233
- steps = steps.map(uikitUtil.toFloat);
217
+ if (!steps.some((step) => step)) {
218
+ return uikitUtil.noop;
219
+ }
234
220
 
235
- if (!steps.some(function (step) { return step; })) {
236
- return uikitUtil.noop;
237
- }
238
-
239
- var length = getMaxPathLength(el);
240
- uikitUtil.css(el, 'strokeDasharray', length);
221
+ const length = getMaxPathLength(el);
222
+ uikitUtil.css(el, 'strokeDasharray', length);
241
223
 
242
- if (unit === '%') {
243
- steps = steps.map(function (step) { return step * length / 100; });
244
- }
224
+ if (unit === '%') {
225
+ steps = steps.map((step) => step * length / 100);
226
+ }
245
227
 
246
- steps = steps.reverse();
228
+ steps = steps.reverse();
247
229
 
248
- return function (css, percent) {
249
- css.strokeDashoffset = getValue(steps, percent);
250
- };
230
+ return (css, percent) => {
231
+ css.strokeDashoffset = getValue(steps, percent);
232
+ };
251
233
  }
252
234
 
253
235
  function backgroundFn(prop, el, steps) {
236
+ if (steps.length === 1) {
237
+ steps.unshift(0);
238
+ }
254
239
 
255
- if (steps.length === 1) {
256
- steps.unshift(0);
257
- }
240
+ prop = prop.substr(-1);
241
+ const attr = prop === 'y' ? 'height' : 'width';
242
+ steps = steps.map((step) => uikitUtil.toPx(step, attr, el));
258
243
 
259
- prop = prop.substr(-1);
260
- var attr = prop === 'y' ? 'height' : 'width';
261
- steps = steps.map(function (step) { return uikitUtil.toPx(step, attr, el); });
244
+ const bgPos = getCssValue(el, "background-position-" + prop, '');
262
245
 
263
- uikitUtil.css(el, ("background-position-" + prop), '');
264
- var bgPos = uikitUtil.css(el, 'backgroundPosition').split(' ')[prop === 'x' ? 0 : 1]; // IE 11 can't read background-position-[x|y]
265
-
266
- return getCssValue(el, 'backgroundSize', '') === 'cover'
267
- ? backgroundCoverFn.call(this, prop, el, steps, bgPos, attr)
268
- : setBackgroundPosFn(prop, steps, bgPos);
246
+ return getCssValue(el, 'backgroundSize', '') === 'cover' ?
247
+ backgroundCoverFn(prop, el, steps, bgPos, attr) :
248
+ setBackgroundPosFn(prop, steps, bgPos);
269
249
  }
270
250
 
271
251
  function backgroundCoverFn(prop, el, steps, bgPos, attr) {
252
+ const dimImage = getBackgroundImageDimensions(el);
272
253
 
273
- var image = getBackgroundImage.call(this, el);
274
-
275
- if (!image.naturalWidth) {
276
- return uikitUtil.noop;
277
- }
278
-
279
- var min = Math.min.apply(Math, steps);
280
- var max = Math.max.apply(Math, steps);
281
- var down = steps.indexOf(min) < steps.indexOf(max);
254
+ if (!dimImage.width) {
255
+ return uikitUtil.noop;
256
+ }
282
257
 
283
- var diff = max - min;
284
- var pos = (down ? -diff : 0) - (down ? min : max);
258
+ const min = Math.min(...steps);
259
+ const max = Math.max(...steps);
260
+ const down = steps.indexOf(min) < steps.indexOf(max);
285
261
 
286
- var dimEl = {
287
- width: el.offsetWidth,
288
- height: el.offsetHeight
289
- };
262
+ const diff = max - min;
263
+ let pos = (down ? -diff : 0) - (down ? min : max);
290
264
 
291
- var dimImage = {
292
- width: image.naturalWidth,
293
- height: image.naturalHeight
294
- };
265
+ const dimEl = {
266
+ width: el.offsetWidth,
267
+ height: el.offsetHeight };
295
268
 
296
- var baseDim = uikitUtil.Dimensions.cover(dimImage, dimEl);
297
- var span = baseDim[attr] - dimEl[attr];
298
269
 
299
- if (span < diff) {
300
- dimEl[attr] = baseDim[attr] + diff - span;
301
- } else if (span > diff) {
270
+ const baseDim = uikitUtil.Dimensions.cover(dimImage, dimEl);
271
+ const span = baseDim[attr] - dimEl[attr];
302
272
 
303
- var posPercentage = dimEl[attr] / uikitUtil.toPx(bgPos, attr, el, true);
273
+ if (span < diff) {
274
+ dimEl[attr] = baseDim[attr] + diff - span;
275
+ } else if (span > diff) {
276
+ const posPercentage = dimEl[attr] / uikitUtil.toPx(bgPos, attr, el, true);
304
277
 
305
- if (posPercentage) {
306
- pos -= (span - diff) / posPercentage;
307
- }
278
+ if (posPercentage) {
279
+ pos -= (span - diff) / posPercentage;
308
280
  }
281
+ }
309
282
 
310
- var dim = uikitUtil.Dimensions.cover(dimImage, dimEl);
283
+ const dim = uikitUtil.Dimensions.cover(dimImage, dimEl);
311
284
 
312
- var fn = setBackgroundPosFn(prop, steps, (pos + "px"));
313
- return function (css, percent) {
314
- fn(css, percent);
315
- css.backgroundSize = (dim.width) + "px " + (dim.height) + "px";
316
- css.backgroundRepeat = 'no-repeat';
317
- };
285
+ const fn = setBackgroundPosFn(prop, steps, pos + "px");
286
+ return (css, percent) => {
287
+ fn(css, percent);
288
+ css.backgroundSize = dim.width + "px " + dim.height + "px";
289
+ css.backgroundRepeat = 'no-repeat';
290
+ };
318
291
  }
319
292
 
320
293
  function setBackgroundPosFn(prop, steps, pos) {
321
- return function (css, percent) {
322
- css[("background-position-" + prop)] = "calc(" + pos + " + " + (getValue(steps, percent)) + "px)";
323
- };
294
+ return function (css, percent) {
295
+ css["background-position-" + prop] = "calc(" + pos + " + " + getValue(steps, percent) + "px)";
296
+ };
324
297
  }
325
298
 
326
- function getBackgroundImage(el) {
327
- var this$1$1 = this;
299
+ const dimensions = {};
300
+ function getBackgroundImageDimensions(el) {
301
+ const src = uikitUtil.css(el, 'backgroundImage').replace(/^none|url\(["']?(.+?)["']?\)$/, '$1');
328
302
 
329
- var src = uikitUtil.css(el, 'backgroundImage').replace(/^none|url\(["']?(.+?)["']?\)$/, '$1');
303
+ if (dimensions[src]) {
304
+ return dimensions[src];
305
+ }
330
306
 
331
- var data = this._data;
307
+ const image = new Image();
308
+ if (src) {
309
+ image.src = src;
332
310
 
333
- if (data[src]) {
334
- return data[src];
311
+ if (!image.naturalWidth) {
312
+ image.onload = () => {
313
+ dimensions[src] = toDimensions(image);
314
+ uikitUtil.trigger(el, 'bgimageload');
315
+ };
335
316
  }
317
+ }
336
318
 
337
- if (src) {
338
- var img = new Image();
339
- img.src = src;
340
- if (!img.naturalWidth) {
341
- img.onload = function () { return this$1$1.$update(); };
342
- }
319
+ return dimensions[src] = toDimensions(image);
320
+ }
321
+
322
+ function toDimensions(image) {
323
+ return {
324
+ width: image.naturalWidth,
325
+ height: image.naturalHeight };
343
326
 
344
- return data[src] = img;
345
- }
346
327
  }
347
328
 
348
329
  function getStep(steps, percent) {
349
- var count = steps.length - 1;
350
- var index = Math.min(Math.floor(count * percent), count - 1);
330
+ const count = steps.length - 1;
331
+ const index = Math.min(Math.floor(count * percent), count - 1);
351
332
 
352
- return steps
353
- .slice(index, index + 2)
354
- .concat(percent === 1 ? 1 : percent % (1 / count) * count);
333
+ return steps.
334
+ slice(index, index + 2).
335
+ concat(percent === 1 ? 1 : percent % (1 / count) * count);
355
336
  }
356
337
 
357
338
  function getValue(steps, percent) {
358
- var ref = getStep(steps, percent);
359
- var start = ref[0];
360
- var end = ref[1];
361
- var p = ref[2];
362
- return uikitUtil.isNumber(start)
363
- ? start + Math.abs(start - end) * p * (start < end ? 1 : -1)
364
- : +end;
339
+ const [start, end, p] = getStep(steps, percent);
340
+ return uikitUtil.isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
365
341
  }
366
342
 
367
343
  function getUnit(steps, defaultUnit) {
368
- return steps.reduce(function (unit, step) { return unit || uikitUtil.isString(step) && step.replace(/[\d-]/g, '').trim(); }, '') || defaultUnit;
344
+ return (
345
+ steps.reduce(
346
+ (unit, step) => unit || uikitUtil.isString(step) && step.replace(/[\d-]/g, '').trim(),
347
+ '') ||
348
+ defaultUnit);
349
+
369
350
  }
370
351
 
371
352
  function getCssValue(el, prop, value) {
372
- var prev = el.style[prop];
373
- var val = uikitUtil.css(uikitUtil.css(el, prop, value), prop);
374
- el.style[prop] = prev;
375
- return val;
353
+ const prev = el.style[prop];
354
+ const val = uikitUtil.css(uikitUtil.css(el, prop, value), prop);
355
+ el.style[prop] = prev;
356
+ return val;
376
357
  }
377
358
 
378
359
  function fillObject(keys, value) {
379
- return keys.reduce(function (data, prop) {
380
- data[prop] = value;
381
- return data;
382
- }, {});
360
+ return keys.reduce((data, prop) => {
361
+ data[prop] = value;
362
+ return data;
363
+ }, {});
383
364
  }
384
365
 
385
366
  var Component = {
367
+ mixins: [Parallax],
386
368
 
387
- mixins: [Parallax],
369
+ data: {
370
+ selItem: '!li' },
388
371
 
389
- data: {
390
- selItem: '!li'
391
- },
392
372
 
393
- computed: {
373
+ computed: {
374
+ item(_ref, $el) {let { selItem } = _ref;
375
+ return uikitUtil.query(selItem, $el);
376
+ } },
394
377
 
395
- item: function(ref, $el) {
396
- var selItem = ref.selItem;
397
-
398
- return uikitUtil.query(selItem, $el);
399
- }
400
-
401
- },
402
378
 
403
- events: [
379
+ events: [
380
+ {
381
+ name: 'itemin itemout',
404
382
 
405
- {
406
- name: 'itemin itemout',
407
-
408
- self: true,
409
-
410
- el: function() {
411
- return this.item;
412
- },
413
-
414
- handler: function(ref) {
415
- var this$1$1 = this;
416
- var type = ref.type;
417
- var ref_detail = ref.detail;
418
- var percent = ref_detail.percent;
419
- var duration = ref_detail.duration;
420
- var timing = ref_detail.timing;
421
- var dir = ref_detail.dir;
383
+ self: true,
422
384
 
385
+ el() {
386
+ return this.item;
387
+ },
423
388
 
424
- uikitUtil.fastdom.read(function () {
425
- var propsFrom = this$1$1.getCss(getCurrentPercent(type, dir, percent));
426
- var propsTo = this$1$1.getCss(isIn(type) ? .5 : dir > 0 ? 1 : 0);
427
- uikitUtil.fastdom.write(function () {
428
- uikitUtil.css(this$1$1.$el, propsFrom);
429
- uikitUtil.Transition.start(this$1$1.$el, propsTo, duration, timing).catch(uikitUtil.noop);
430
- });
431
- });
389
+ handler(_ref2) {let { type, detail: { percent, duration, timing, dir } } = _ref2;
390
+ uikitUtil.fastdom.read(() => {
391
+ const propsFrom = this.getCss(getCurrentPercent(type, dir, percent));
392
+ const propsTo = this.getCss(isIn(type) ? 0.5 : dir > 0 ? 1 : 0);
393
+ uikitUtil.fastdom.write(() => {
394
+ uikitUtil.css(this.$el, propsFrom);
395
+ uikitUtil.Transition.start(this.$el, propsTo, duration, timing).catch(uikitUtil.noop);
396
+ });
397
+ });
398
+ } },
432
399
 
433
- }
434
- },
435
400
 
436
- {
437
- name: 'transitioncanceled transitionend',
401
+ {
402
+ name: 'transitioncanceled transitionend',
438
403
 
439
- self: true,
404
+ self: true,
440
405
 
441
- el: function() {
442
- return this.item;
443
- },
406
+ el() {
407
+ return this.item;
408
+ },
444
409
 
445
- handler: function() {
446
- uikitUtil.Transition.cancel(this.$el);
447
- }
410
+ handler() {
411
+ uikitUtil.Transition.cancel(this.$el);
412
+ } },
448
413
 
449
- },
450
414
 
451
- {
452
- name: 'itemtranslatein itemtranslateout',
415
+ {
416
+ name: 'itemtranslatein itemtranslateout',
453
417
 
454
- self: true,
418
+ self: true,
455
419
 
456
- el: function() {
457
- return this.item;
458
- },
420
+ el() {
421
+ return this.item;
422
+ },
459
423
 
460
- handler: function(ref) {
461
- var this$1$1 = this;
462
- var type = ref.type;
463
- var ref_detail = ref.detail;
464
- var percent = ref_detail.percent;
465
- var dir = ref_detail.dir;
424
+ handler(_ref3) {let { type, detail: { percent, dir } } = _ref3;
425
+ uikitUtil.fastdom.read(() => {
426
+ const props = this.getCss(getCurrentPercent(type, dir, percent));
427
+ uikitUtil.fastdom.write(() => uikitUtil.css(this.$el, props));
428
+ });
429
+ } }] };
466
430
 
467
- uikitUtil.fastdom.read(function () {
468
- var props = this$1$1.getCss(getCurrentPercent(type, dir, percent));
469
- uikitUtil.fastdom.write(function () { return uikitUtil.css(this$1$1.$el, props); });
470
- });
471
- }
472
- }
473
431
 
474
- ]
475
432
 
476
- };
477
433
 
478
434
  function isIn(type) {
479
- return uikitUtil.endsWith(type, 'in');
435
+ return uikitUtil.endsWith(type, 'in');
480
436
  }
481
437
 
482
438
  function getCurrentPercent(type, dir, percent) {
439
+ percent /= 2;
483
440
 
484
- percent /= 2;
485
-
486
- return isIn(type) ^ dir < 0 ? percent : 1 - percent;
441
+ return isIn(type) ^ dir < 0 ? percent : 1 - percent;
487
442
  }
488
443
 
489
444
  if (typeof window !== 'undefined' && window.UIkit) {
490
- window.UIkit.component('slideshowParallax', Component);
445
+ window.UIkit.component('slideshowParallax', Component);
491
446
  }
492
447
 
493
448
  return Component;