uikit 3.9.5-dev.ab814f7fb → 3.9.5-dev.ce77459c6
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 +1 -0
- 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 +1 -1
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +1 -1
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +1 -1
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +1 -1
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +1 -1
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +1 -1
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +1 -1
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +1 -1
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +1 -1
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +1 -1
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +1 -1
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +1 -1
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +1 -1
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +33 -106
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +33 -106
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/core/img.js +33 -96
- package/tests/image.html +14 -40
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.9.5-dev.
|
|
5
|
+
"version": "3.9.5-dev.ce77459c6",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
package/src/js/core/img.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {attr, children, createEvent, css, data, escape, includes, isUndefined, parent, queryAll, startsWith, toFloat, toPx, trigger} from 'uikit-util';
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
4
|
|
|
@@ -6,8 +6,6 @@ export default {
|
|
|
6
6
|
|
|
7
7
|
props: {
|
|
8
8
|
dataSrc: String,
|
|
9
|
-
width: Number,
|
|
10
|
-
height: Number,
|
|
11
9
|
offsetTop: String,
|
|
12
10
|
offsetLeft: String,
|
|
13
11
|
target: String
|
|
@@ -15,8 +13,6 @@ export default {
|
|
|
15
13
|
|
|
16
14
|
data: {
|
|
17
15
|
dataSrc: '',
|
|
18
|
-
width: false,
|
|
19
|
-
height: false,
|
|
20
16
|
offsetTop: '50vh',
|
|
21
17
|
offsetLeft: '50vw',
|
|
22
18
|
target: false
|
|
@@ -24,10 +20,6 @@ export default {
|
|
|
24
20
|
|
|
25
21
|
computed: {
|
|
26
22
|
|
|
27
|
-
cacheKey({dataSrc}) {
|
|
28
|
-
return `${this.$name}.${dataSrc}`;
|
|
29
|
-
},
|
|
30
|
-
|
|
31
23
|
target: {
|
|
32
24
|
|
|
33
25
|
get({target}) {
|
|
@@ -38,14 +30,6 @@ export default {
|
|
|
38
30
|
this.observe();
|
|
39
31
|
}
|
|
40
32
|
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
offsetTop({offsetTop}) {
|
|
44
|
-
return toPx(offsetTop, 'height');
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
offsetLeft({offsetLeft}) {
|
|
48
|
-
return toPx(offsetLeft, 'width');
|
|
49
33
|
}
|
|
50
34
|
|
|
51
35
|
},
|
|
@@ -53,21 +37,13 @@ export default {
|
|
|
53
37
|
connected() {
|
|
54
38
|
|
|
55
39
|
if (!window.IntersectionObserver) {
|
|
56
|
-
setSrcAttrs(this.$el);
|
|
40
|
+
setSrcAttrs(this.$el, this.dataSrc);
|
|
57
41
|
return;
|
|
58
42
|
}
|
|
59
43
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
attr(this.$el, 'src', getPlaceholderImage(this.$el));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
this.observer = new IntersectionObserver(this.load, {
|
|
67
|
-
rootMargin: `${this.offsetTop}px ${this.offsetLeft}px`
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
requestAnimationFrame(this.observe);
|
|
44
|
+
const rootMargin = `${toPx(this.offsetTop, 'height')}px ${toPx(this.offsetLeft, 'width')}px`;
|
|
45
|
+
this.observer = new IntersectionObserver(this.load, {rootMargin});
|
|
46
|
+
this.observe();
|
|
71
47
|
|
|
72
48
|
},
|
|
73
49
|
|
|
@@ -79,19 +55,11 @@ export default {
|
|
|
79
55
|
|
|
80
56
|
read({image}) {
|
|
81
57
|
|
|
82
|
-
if (!this.observer) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (!image && document.readyState === 'complete') {
|
|
87
|
-
this.load(this.observer.takeRecords());
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (isImg(this.$el)) {
|
|
58
|
+
if (!this.observer || isImg(this.$el)) {
|
|
91
59
|
return false;
|
|
92
60
|
}
|
|
93
61
|
|
|
94
|
-
|
|
62
|
+
setSrcAttrs(this.$el, image && image.currentSrc);
|
|
95
63
|
|
|
96
64
|
},
|
|
97
65
|
|
|
@@ -123,13 +91,13 @@ export default {
|
|
|
123
91
|
return;
|
|
124
92
|
}
|
|
125
93
|
|
|
126
|
-
this._data.image
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
storage[this.cacheKey] = currentSrc(img);
|
|
130
|
-
return img;
|
|
94
|
+
if (this._data.image) {
|
|
95
|
+
return this._data.image;
|
|
96
|
+
}
|
|
131
97
|
|
|
132
|
-
|
|
98
|
+
const image = isImg(this.$el) ? this.$el : getImageFromElement(this.$el, this.dataSrc);
|
|
99
|
+
this._data.image = image;
|
|
100
|
+
setSrcAttrs(this.$el, image.currentSrc);
|
|
133
101
|
|
|
134
102
|
this.observer.disconnect();
|
|
135
103
|
},
|
|
@@ -144,19 +112,12 @@ export default {
|
|
|
144
112
|
|
|
145
113
|
};
|
|
146
114
|
|
|
147
|
-
const srcProps = ['data-src', 'data-srcset', 'sizes'];
|
|
148
115
|
function setSrcAttrs(el, src) {
|
|
149
116
|
|
|
150
|
-
const parentNode = parent(el);
|
|
151
117
|
if (isImg(el)) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (value) {
|
|
156
|
-
attr(el, prop.replace(/^(data-)+/, ''), value);
|
|
157
|
-
}
|
|
158
|
-
})
|
|
159
|
-
);
|
|
118
|
+
const parentNode = parent(el);
|
|
119
|
+
const elements = isPicture(parentNode) ? children(parentNode) : [el];
|
|
120
|
+
elements.forEach(setSourceProps);
|
|
160
121
|
src && attr(el, 'src', src);
|
|
161
122
|
} else if (src) {
|
|
162
123
|
|
|
@@ -170,16 +131,26 @@ function setSrcAttrs(el, src) {
|
|
|
170
131
|
|
|
171
132
|
}
|
|
172
133
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
134
|
+
const srcProps = ['data-src', 'data-srcset', 'sizes'];
|
|
135
|
+
function setSourceProps(sourceEl, targetEl) {
|
|
136
|
+
srcProps.forEach(prop => {
|
|
137
|
+
const value = data(sourceEl, prop);
|
|
138
|
+
if (value) {
|
|
139
|
+
attr(targetEl || sourceEl, prop.replace(/^(data-)+/, ''), value);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function getImageFromElement(el, src) {
|
|
177
145
|
|
|
178
|
-
if (
|
|
179
|
-
|
|
146
|
+
if (!src) {
|
|
147
|
+
return false;
|
|
180
148
|
}
|
|
181
149
|
|
|
182
|
-
|
|
150
|
+
const img = new Image();
|
|
151
|
+
setSourceProps(el, img);
|
|
152
|
+
attr(img, 'src', src);
|
|
153
|
+
return img;
|
|
183
154
|
}
|
|
184
155
|
|
|
185
156
|
const sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;
|
|
@@ -198,24 +169,6 @@ function sizesToPixel(sizes) {
|
|
|
198
169
|
return matches || '100vw';
|
|
199
170
|
}
|
|
200
171
|
|
|
201
|
-
function getImageFromElement(el, src) {
|
|
202
|
-
const parentNode = parent(el);
|
|
203
|
-
|
|
204
|
-
if (!src) {
|
|
205
|
-
return Promise.reject(createEvent('error', false));
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
if (!isPicture(parentNode)) {
|
|
209
|
-
return getImage(src, ...srcProps.slice(1).map(prop => data(el, prop)));
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return new Promise((resolve, reject) => {
|
|
213
|
-
const picture = parentNode.cloneNode(true);
|
|
214
|
-
once(picture, 'load error', e => e.type === 'error' ? reject(e) : resolve(e.target), true);
|
|
215
|
-
setSrcAttrs($('img', picture));
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
|
|
219
172
|
const sizeRe = /\d+(?:\w+|%)/g;
|
|
220
173
|
const additionRe = /[+-]?(\d+)/g;
|
|
221
174
|
function evaluateSize(size) {
|
|
@@ -248,19 +201,3 @@ function isImg(el) {
|
|
|
248
201
|
function isA(el, tagName) {
|
|
249
202
|
return el && el.tagName === tagName;
|
|
250
203
|
}
|
|
251
|
-
|
|
252
|
-
function currentSrc(el) {
|
|
253
|
-
return el.currentSrc || el.src;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
const key = '__test__';
|
|
257
|
-
let storage;
|
|
258
|
-
|
|
259
|
-
// workaround for Safari's private browsing mode and accessing sessionStorage in Blink
|
|
260
|
-
try {
|
|
261
|
-
storage = window.sessionStorage || {};
|
|
262
|
-
storage[key] = 1;
|
|
263
|
-
delete storage[key];
|
|
264
|
-
} catch (e) {
|
|
265
|
-
storage = {};
|
|
266
|
-
}
|
package/tests/image.html
CHANGED
|
@@ -14,8 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
<h1>Image</h1>
|
|
16
16
|
|
|
17
|
-
<p><button class="uk-button uk-button-default" onclick="sessionStorage.clear()">Clear Session Storage</button></p>
|
|
18
|
-
|
|
19
17
|
<div class="uk-child-width-1-2@m" uk-grid>
|
|
20
18
|
<div>
|
|
21
19
|
<img data-src="https://images.unsplash.com/photo-1522201949034-507737bce479?fit=crop&w=900&h=600&q=80" width="900" height="600" alt="" uk-img>
|
|
@@ -255,28 +253,28 @@
|
|
|
255
253
|
|
|
256
254
|
<ul class="uk-slideshow-items">
|
|
257
255
|
<li>
|
|
258
|
-
<img data-src="images/photo.jpg" alt="" uk-cover
|
|
256
|
+
<img data-src="images/photo.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !.uk-slideshow-items > :last-child, !* +*">
|
|
259
257
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
260
258
|
<h2 uk-slideshow-parallax="x: 100,-100">Heading</h2>
|
|
261
259
|
<p uk-slideshow-parallax="x: 200,-200">Lorem ipsum dolor sit amet.</p>
|
|
262
260
|
</div>
|
|
263
261
|
</li>
|
|
264
262
|
<li>
|
|
265
|
-
<img data-src="images/dark.jpg" alt="" uk-cover
|
|
263
|
+
<img data-src="images/dark.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !* +*">
|
|
266
264
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
267
265
|
<h2 uk-slideshow-parallax="x: 100,-100">Heading</h2>
|
|
268
266
|
<p uk-slideshow-parallax="x: 200,-200">Lorem ipsum dolor sit amet.</p>
|
|
269
267
|
</div>
|
|
270
268
|
</li>
|
|
271
269
|
<li>
|
|
272
|
-
<img data-src="images/light.jpg" alt="" uk-cover
|
|
270
|
+
<img data-src="images/light.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !* +*">
|
|
273
271
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
274
272
|
<h2 uk-slideshow-parallax="y: -50,0,0; opacity: 1,1,0">Heading</h2>
|
|
275
273
|
<p uk-slideshow-parallax="y: 50,0,0; opacity: 1,1,0">Lorem ipsum dolor sit amet.</p>
|
|
276
274
|
</div>
|
|
277
275
|
</li>
|
|
278
276
|
<li>
|
|
279
|
-
<img data-src="images/photo2.jpg" alt="" uk-cover
|
|
277
|
+
<img data-src="images/photo2.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !.uk-slideshow-items > :first-child">
|
|
280
278
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
281
279
|
<h2 uk-slideshow-parallax="x: 200,0,0">Heading</h2>
|
|
282
280
|
<p uk-slideshow-parallax="x: 0,0,-200">Lorem ipsum dolor sit amet.</p>
|
|
@@ -296,43 +294,43 @@
|
|
|
296
294
|
|
|
297
295
|
<ul class="uk-slider-items uk-child-width-1-2@s uk-child-width-1-3@m">
|
|
298
296
|
<li>
|
|
299
|
-
<img data-src="images/slider1.jpg" alt=""
|
|
297
|
+
<img data-src="images/slider1.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
300
298
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">1</h1></div>
|
|
301
299
|
</li>
|
|
302
300
|
<li>
|
|
303
|
-
<img data-src="images/slider2.jpg" alt=""
|
|
301
|
+
<img data-src="images/slider2.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
304
302
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">2</h1></div>
|
|
305
303
|
</li>
|
|
306
304
|
<li>
|
|
307
|
-
<img data-src="images/slider3.jpg" alt=""
|
|
305
|
+
<img data-src="images/slider3.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
308
306
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">3</h1></div>
|
|
309
307
|
</li>
|
|
310
308
|
<li>
|
|
311
|
-
<img data-src="images/slider4.jpg" alt=""
|
|
309
|
+
<img data-src="images/slider4.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
312
310
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">4</h1></div>
|
|
313
311
|
</li>
|
|
314
312
|
<li>
|
|
315
|
-
<img data-src="images/slider5.jpg" alt=""
|
|
313
|
+
<img data-src="images/slider5.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
316
314
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">5</h1></div>
|
|
317
315
|
</li>
|
|
318
316
|
<li>
|
|
319
|
-
<img data-src="images/slider1.jpg" alt=""
|
|
317
|
+
<img data-src="images/slider1.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
320
318
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">6</h1></div>
|
|
321
319
|
</li>
|
|
322
320
|
<li>
|
|
323
|
-
<img data-src="images/slider2.jpg" alt=""
|
|
321
|
+
<img data-src="images/slider2.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
324
322
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">7</h1></div>
|
|
325
323
|
</li>
|
|
326
324
|
<li>
|
|
327
|
-
<img data-src="images/slider3.jpg" alt=""
|
|
325
|
+
<img data-src="images/slider3.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
328
326
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">8</h1></div>
|
|
329
327
|
</li>
|
|
330
328
|
<li>
|
|
331
|
-
<img data-src="images/slider4.jpg" alt=""
|
|
329
|
+
<img data-src="images/slider4.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
332
330
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">9</h1></div>
|
|
333
331
|
</li>
|
|
334
332
|
<li>
|
|
335
|
-
<img data-src="images/slider5.jpg" alt=""
|
|
333
|
+
<img data-src="images/slider5.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
336
334
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">10</h1></div>
|
|
337
335
|
</li>
|
|
338
336
|
</ul>
|
|
@@ -364,30 +362,6 @@
|
|
|
364
362
|
<td>''</td>
|
|
365
363
|
<td>The image's `src` attribute.</td>
|
|
366
364
|
</tr>
|
|
367
|
-
<tr>
|
|
368
|
-
<td><code>dataSrcset</code></td>
|
|
369
|
-
<td>String</td>
|
|
370
|
-
<td>false</td>
|
|
371
|
-
<td>The image's `srcset` attribute.</td>
|
|
372
|
-
</tr>
|
|
373
|
-
<tr>
|
|
374
|
-
<td><code>sizes</code></td>
|
|
375
|
-
<td>String</td>
|
|
376
|
-
<td>false</td>
|
|
377
|
-
<td>The image's `sizes` attribute.</td>
|
|
378
|
-
</tr>
|
|
379
|
-
<tr>
|
|
380
|
-
<td><code>width</code></td>
|
|
381
|
-
<td>String</td>
|
|
382
|
-
<td>false</td>
|
|
383
|
-
<td>The image's `width` attribute. It will be used to determine the placeholder's width and the images position in the document.</td>
|
|
384
|
-
</tr>
|
|
385
|
-
<tr>
|
|
386
|
-
<td><code>height</code></td>
|
|
387
|
-
<td>String</td>
|
|
388
|
-
<td>false</td>
|
|
389
|
-
<td>The image's `height` attribute. It will be used to determine the placeholder's height and the images position in the document.</td>
|
|
390
|
-
</tr>
|
|
391
365
|
<tr>
|
|
392
366
|
<td><code>offsetTop</code></td>
|
|
393
367
|
<td>String</td>
|