uikit 3.15.17 → 3.15.18-dev.014d8e608
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.
- package/CHANGELOG.md +9 -0
- package/build/util.js +2 -3
- package/dist/css/uikit-core-rtl.css +1 -1
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +1 -1
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +1 -1
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +1 -1
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +2 -2
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +15 -15
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +77 -84
- package/dist/js/components/lightbox-panel.min.js +9 -1
- package/dist/js/components/lightbox.js +80 -87
- package/dist/js/components/lightbox.min.js +9 -1
- package/dist/js/components/notification.js +14 -14
- package/dist/js/components/notification.min.js +4 -1
- package/dist/js/components/parallax.js +22 -22
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +18 -18
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +93 -45
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +18 -18
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +33 -38
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +7 -7
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +24 -24
- package/dist/js/components/tooltip.min.js +3 -1
- package/dist/js/components/upload.js +7 -7
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +303 -282
- package/dist/js/uikit-core.min.js +21 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +499 -432
- package/dist/js/uikit.min.js +34 -1
- package/package.json +1 -1
- package/src/js/components/lightbox-panel.js +3 -5
- package/src/js/components/slider.js +62 -7
- package/src/js/core/sticky.js +26 -9
- package/src/js/mixin/slider-drag.js +1 -1
- package/src/js/mixin/slider.js +2 -7
- package/src/js/util/viewport.js +4 -0
- package/tests/tooltip.html +1 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "uikit",
|
|
3
3
|
"title": "UIkit",
|
|
4
4
|
"description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
|
|
5
|
-
"version": "3.15.
|
|
5
|
+
"version": "3.15.18-dev.014d8e608",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
|
@@ -84,15 +84,13 @@ export default {
|
|
|
84
84
|
self: true,
|
|
85
85
|
|
|
86
86
|
delegate() {
|
|
87
|
-
return this.
|
|
87
|
+
return `${this.selList} > *`;
|
|
88
88
|
},
|
|
89
89
|
|
|
90
90
|
handler(e) {
|
|
91
|
-
if (e.defaultPrevented) {
|
|
92
|
-
|
|
91
|
+
if (!e.defaultPrevented) {
|
|
92
|
+
this.hide();
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
this.hide();
|
|
96
94
|
},
|
|
97
95
|
},
|
|
98
96
|
|
|
@@ -11,8 +11,10 @@ import {
|
|
|
11
11
|
data,
|
|
12
12
|
dimensions,
|
|
13
13
|
findIndex,
|
|
14
|
+
getIndex,
|
|
14
15
|
includes,
|
|
15
16
|
last,
|
|
17
|
+
sumBy,
|
|
16
18
|
toFloat,
|
|
17
19
|
toggleClass,
|
|
18
20
|
toNumber,
|
|
@@ -42,11 +44,7 @@ export default {
|
|
|
42
44
|
},
|
|
43
45
|
|
|
44
46
|
finite({ finite }) {
|
|
45
|
-
return (
|
|
46
|
-
finite ||
|
|
47
|
-
Math.ceil(getWidth(this.list)) <
|
|
48
|
-
Math.trunc(dimensions(this.list).width + getMaxElWidth(this.list) + this.center)
|
|
49
|
-
);
|
|
47
|
+
return finite || isFinite(this.list, this.center);
|
|
50
48
|
},
|
|
51
49
|
|
|
52
50
|
maxIndex() {
|
|
@@ -79,7 +77,7 @@ export default {
|
|
|
79
77
|
let left = 0;
|
|
80
78
|
const sets = [];
|
|
81
79
|
const width = dimensions(this.list).width;
|
|
82
|
-
for (let i = 0; i < this.
|
|
80
|
+
for (let i = 0; i < this.length; i++) {
|
|
83
81
|
const slideWidth = dimensions(this.slides[i]).width;
|
|
84
82
|
|
|
85
83
|
if (left + slideWidth > width) {
|
|
@@ -271,13 +269,70 @@ export default {
|
|
|
271
269
|
const slide = this.slides[this.getIndex(this.index + i + j++ * i)];
|
|
272
270
|
currentLeft += dimensions(slide).width * i;
|
|
273
271
|
slides.add(slide);
|
|
274
|
-
} while (this.
|
|
272
|
+
} while (this.length > j && currentLeft > left && currentLeft < right);
|
|
275
273
|
}
|
|
276
274
|
return Array.from(slides);
|
|
277
275
|
},
|
|
278
276
|
},
|
|
279
277
|
};
|
|
280
278
|
|
|
279
|
+
function isFinite(list, center) {
|
|
280
|
+
const { length } = list;
|
|
281
|
+
|
|
282
|
+
if (length < 2) {
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const { width: listWidth } = dimensions(list);
|
|
287
|
+
if (!center) {
|
|
288
|
+
return Math.ceil(getWidth(list)) < Math.trunc(listWidth + getMaxElWidth(list));
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const slides = children(list);
|
|
292
|
+
const listHalf = Math.trunc(listWidth / 2);
|
|
293
|
+
for (const index in slides) {
|
|
294
|
+
const slide = slides[index];
|
|
295
|
+
const slideWidth = dimensions(slide).width;
|
|
296
|
+
const slidesInView = new Set([slide]);
|
|
297
|
+
|
|
298
|
+
let diff = 0;
|
|
299
|
+
for (const i of [-1, 1]) {
|
|
300
|
+
let left = slideWidth / 2;
|
|
301
|
+
|
|
302
|
+
let j = 0;
|
|
303
|
+
|
|
304
|
+
while (left < listHalf) {
|
|
305
|
+
const nextSlide = slides[getIndex(+index + i + j++ * i, slides)];
|
|
306
|
+
|
|
307
|
+
if (slidesInView.has(nextSlide)) {
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
left += dimensions(nextSlide).width;
|
|
312
|
+
slidesInView.add(nextSlide);
|
|
313
|
+
}
|
|
314
|
+
diff = Math.max(
|
|
315
|
+
diff,
|
|
316
|
+
slideWidth / 2 +
|
|
317
|
+
dimensions(slides[getIndex(+index + i, slides)]).width / 2 -
|
|
318
|
+
(left - listHalf)
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (
|
|
323
|
+
diff >
|
|
324
|
+
sumBy(
|
|
325
|
+
slides.filter((slide) => !slidesInView.has(slide)),
|
|
326
|
+
(slide) => dimensions(slide).width
|
|
327
|
+
)
|
|
328
|
+
) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
|
|
281
336
|
function getMaxElWidth(list) {
|
|
282
337
|
return Math.max(0, ...children(list).map((el) => dimensions(el).width));
|
|
283
338
|
}
|
package/src/js/core/sticky.js
CHANGED
|
@@ -98,7 +98,7 @@ export default {
|
|
|
98
98
|
this.hide();
|
|
99
99
|
removeClass(this.selTarget, this.clsInactive);
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
reset(this.$el);
|
|
102
102
|
|
|
103
103
|
remove(this.placeholder);
|
|
104
104
|
this.placeholder = null;
|
|
@@ -156,10 +156,10 @@ export default {
|
|
|
156
156
|
this.inactive = !this.matchMedia || !isVisible(this.$el);
|
|
157
157
|
|
|
158
158
|
if (this.inactive) {
|
|
159
|
-
return
|
|
159
|
+
return;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
const hide = this.isFixed && types.has('resize');
|
|
162
|
+
const hide = this.isFixed && types.has('resize') && !sticky;
|
|
163
163
|
if (hide) {
|
|
164
164
|
css(this.selTarget, 'transition', '0s');
|
|
165
165
|
this.hide();
|
|
@@ -210,6 +210,7 @@ export default {
|
|
|
210
210
|
);
|
|
211
211
|
|
|
212
212
|
sticky =
|
|
213
|
+
maxScrollHeight &&
|
|
213
214
|
!this.showOnUp &&
|
|
214
215
|
start + offset === topOffset &&
|
|
215
216
|
end ===
|
|
@@ -225,6 +226,7 @@ export default {
|
|
|
225
226
|
overflow,
|
|
226
227
|
topOffset,
|
|
227
228
|
height,
|
|
229
|
+
elHeight,
|
|
228
230
|
width,
|
|
229
231
|
margin,
|
|
230
232
|
top: offsetPosition(referenceElement)[0],
|
|
@@ -233,10 +235,19 @@ export default {
|
|
|
233
235
|
},
|
|
234
236
|
|
|
235
237
|
write({ height, width, margin, offset, sticky }) {
|
|
238
|
+
if (this.inactive || sticky || !this.isFixed) {
|
|
239
|
+
reset(this.$el);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (this.inactive) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
|
|
236
246
|
if (sticky) {
|
|
237
247
|
height = width = margin = 0;
|
|
238
248
|
css(this.$el, { position: 'sticky', top: offset });
|
|
239
249
|
}
|
|
250
|
+
|
|
240
251
|
const { placeholder } = this;
|
|
241
252
|
|
|
242
253
|
css(placeholder, { height, width, margin });
|
|
@@ -349,7 +360,7 @@ export default {
|
|
|
349
360
|
}
|
|
350
361
|
},
|
|
351
362
|
|
|
352
|
-
events: ['resize', 'scroll'],
|
|
363
|
+
events: ['resize', 'resizeViewport', 'scroll'],
|
|
353
364
|
},
|
|
354
365
|
],
|
|
355
366
|
|
|
@@ -389,6 +400,7 @@ export default {
|
|
|
389
400
|
offset,
|
|
390
401
|
topOffset,
|
|
391
402
|
height,
|
|
403
|
+
elHeight,
|
|
392
404
|
offsetParentTop,
|
|
393
405
|
sticky,
|
|
394
406
|
} = this._data;
|
|
@@ -402,10 +414,7 @@ export default {
|
|
|
402
414
|
position = 'absolute';
|
|
403
415
|
}
|
|
404
416
|
|
|
405
|
-
css(this.$el, {
|
|
406
|
-
position,
|
|
407
|
-
width,
|
|
408
|
-
});
|
|
417
|
+
css(this.$el, { position, width });
|
|
409
418
|
css(this.$el, 'marginTop', 0, 'important');
|
|
410
419
|
}
|
|
411
420
|
|
|
@@ -416,7 +425,11 @@ export default {
|
|
|
416
425
|
css(this.$el, 'top', offset);
|
|
417
426
|
|
|
418
427
|
this.setActive(active);
|
|
419
|
-
toggleClass(
|
|
428
|
+
toggleClass(
|
|
429
|
+
this.$el,
|
|
430
|
+
this.clsBelow,
|
|
431
|
+
scroll > topOffset + (sticky ? Math.min(height, elHeight) : height)
|
|
432
|
+
);
|
|
420
433
|
addClass(this.$el, this.clsFixed);
|
|
421
434
|
},
|
|
422
435
|
|
|
@@ -460,3 +473,7 @@ function coerce(value) {
|
|
|
460
473
|
}
|
|
461
474
|
return value;
|
|
462
475
|
}
|
|
476
|
+
|
|
477
|
+
function reset(el) {
|
|
478
|
+
css(el, { position: '', top: '', marginTop: '', width: '' });
|
|
479
|
+
}
|
package/src/js/mixin/slider.js
CHANGED
|
@@ -4,7 +4,7 @@ import SliderDrag from './slider-drag';
|
|
|
4
4
|
import SliderNav from './slider-nav';
|
|
5
5
|
import {
|
|
6
6
|
$,
|
|
7
|
-
|
|
7
|
+
children,
|
|
8
8
|
clamp,
|
|
9
9
|
getIndex,
|
|
10
10
|
hasClass,
|
|
@@ -23,7 +23,6 @@ export default {
|
|
|
23
23
|
index: Number,
|
|
24
24
|
finite: Boolean,
|
|
25
25
|
velocity: Number,
|
|
26
|
-
selSlides: String,
|
|
27
26
|
},
|
|
28
27
|
|
|
29
28
|
data: () => ({
|
|
@@ -63,13 +62,9 @@ export default {
|
|
|
63
62
|
return this.length - 1;
|
|
64
63
|
},
|
|
65
64
|
|
|
66
|
-
selSlides({ selList, selSlides }) {
|
|
67
|
-
return `${selList} ${selSlides || '> *'}`;
|
|
68
|
-
},
|
|
69
|
-
|
|
70
65
|
slides: {
|
|
71
66
|
get() {
|
|
72
|
-
return
|
|
67
|
+
return children(this.list);
|
|
73
68
|
},
|
|
74
69
|
|
|
75
70
|
watch() {
|
package/src/js/util/viewport.js
CHANGED
|
@@ -142,6 +142,10 @@ export function offsetViewport(scrollElement) {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
let rect = offset(viewportElement);
|
|
145
|
+
if (css(viewportElement, 'display') === 'inline') {
|
|
146
|
+
return rect;
|
|
147
|
+
}
|
|
148
|
+
|
|
145
149
|
for (let [prop, dir, start, end] of [
|
|
146
150
|
['width', 'x', 'left', 'right'],
|
|
147
151
|
['height', 'y', 'top', 'bottom'],
|