uikit 3.11.2-dev.c08a5b5f0 → 3.11.2-dev.d8c101f07
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/.eslintrc.json +4 -49
- package/.prettierignore +14 -0
- package/.prettierrc.json +13 -0
- package/.webstorm.js +3 -3
- package/CHANGELOG.md +5 -15
- package/build/.eslintrc.json +1 -3
- package/build/build.js +26 -28
- package/build/icons.js +7 -11
- package/build/less.js +48 -36
- package/build/package.json +2 -2
- package/build/prefix.js +21 -18
- package/build/publishDev.js +6 -8
- package/build/release.js +20 -17
- package/build/scope.js +21 -11
- package/build/scss.js +72 -39
- package/build/util.js +71 -62
- package/build/wrapper/icons.js +0 -2
- 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 +88 -133
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +408 -439
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +1098 -1316
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +1144 -1393
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +94 -114
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +294 -345
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +292 -344
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +722 -852
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +292 -344
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +609 -834
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +587 -620
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +324 -356
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +155 -167
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +5244 -6600
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +7 -9
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +8041 -9907
- package/dist/js/uikit.min.js +1 -1
- package/jsconfig.json +1 -1
- package/package.json +64 -60
- package/src/js/api/boot.js +25 -32
- package/src/js/api/component.js +15 -28
- package/src/js/api/global.js +6 -12
- package/src/js/api/hooks.js +14 -33
- package/src/js/api/instance.js +7 -15
- package/src/js/api/state.js +65 -82
- package/src/js/components/countdown.js +24 -50
- package/src/js/components/filter.js +70 -66
- package/src/js/components/index.js +13 -13
- package/src/js/components/internal/lightbox-animations.js +14 -25
- package/src/js/components/internal/slider-transitioner.js +66 -45
- package/src/js/components/internal/slideshow-animations.js +46 -64
- package/src/js/components/lightbox-panel.js +107 -105
- package/src/js/components/lightbox.js +17 -39
- package/src/js/components/notification.js +49 -43
- package/src/js/components/parallax.js +16 -30
- package/src/js/components/slider-parallax.js +13 -23
- package/src/js/components/slider.js +75 -64
- package/src/js/components/slideshow-parallax.js +1 -1
- package/src/js/components/slideshow.js +8 -44
- package/src/js/components/sortable.js +125 -106
- package/src/js/components/tooltip.js +41 -31
- package/src/js/components/upload.js +52 -63
- package/src/js/core/accordion.js +53 -48
- package/src/js/core/alert.js +9 -17
- package/src/js/core/core.js +74 -53
- package/src/js/core/cover.js +11 -15
- package/src/js/core/drop.js +106 -92
- package/src/js/core/form-custom.js +20 -25
- package/src/js/core/gif.js +3 -7
- package/src/js/core/grid.js +57 -58
- package/src/js/core/height-match.js +16 -29
- package/src/js/core/height-viewport.js +28 -35
- package/src/js/core/icon.js +38 -50
- package/src/js/core/img.js +133 -152
- package/src/js/core/index.js +39 -39
- package/src/js/core/leader.js +9 -18
- package/src/js/core/margin.js +21 -37
- package/src/js/core/modal.js +49 -36
- package/src/js/core/nav.js +2 -4
- package/src/js/core/navbar.js +112 -88
- package/src/js/core/offcanvas.js +49 -53
- package/src/js/core/overflow-auto.js +13 -17
- package/src/js/core/responsive.js +14 -12
- package/src/js/core/scroll.js +10 -20
- package/src/js/core/scrollspy-nav.js +34 -31
- package/src/js/core/scrollspy.js +37 -54
- package/src/js/core/sticky.js +130 -91
- package/src/js/core/svg.js +60 -79
- package/src/js/core/switcher.js +47 -46
- package/src/js/core/tab.js +7 -10
- package/src/js/core/toggle.js +64 -66
- package/src/js/core/video.js +11 -22
- package/src/js/mixin/animate.js +19 -20
- package/src/js/mixin/class.js +2 -4
- package/src/js/mixin/container.js +7 -11
- package/src/js/mixin/internal/animate-fade.js +73 -30
- package/src/js/mixin/internal/animate-slide.js +58 -41
- package/src/js/mixin/internal/slideshow-animations.js +7 -14
- package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
- package/src/js/mixin/media.js +5 -10
- package/src/js/mixin/modal.js +89 -66
- package/src/js/mixin/parallax.js +53 -48
- package/src/js/mixin/position.js +26 -20
- package/src/js/mixin/slider-autoplay.js +12 -21
- package/src/js/mixin/slider-drag.js +64 -65
- package/src/js/mixin/slider-nav.js +26 -35
- package/src/js/mixin/slider-reactive.js +2 -8
- package/src/js/mixin/slider.js +48 -55
- package/src/js/mixin/slideshow.js +13 -19
- package/src/js/mixin/togglable.js +89 -63
- package/src/js/uikit-core.js +2 -4
- package/src/js/uikit.js +2 -4
- package/src/js/util/ajax.js +20 -39
- package/src/js/util/animation.js +77 -75
- package/src/js/util/attr.js +17 -21
- package/src/js/util/class.js +14 -52
- package/src/js/util/dimensions.js +56 -43
- package/src/js/util/dom.js +40 -73
- package/src/js/util/env.js +7 -12
- package/src/js/util/event.js +60 -59
- package/src/js/util/fastdom.js +1 -6
- package/src/js/util/filter.js +17 -34
- package/src/js/util/index.js +0 -1
- package/src/js/util/lang.js +81 -121
- package/src/js/util/mouse.js +19 -17
- package/src/js/util/options.js +32 -46
- package/src/js/util/player.js +40 -36
- package/src/js/util/position.js +54 -46
- package/src/js/util/selector.js +34 -49
- package/src/js/util/style.js +36 -46
- package/src/js/util/viewport.js +75 -64
- package/tests/image.html +37 -33
- package/tests/js/index.js +114 -85
- package/src/js/mixin/flex-bug.js +0 -56
- package/src/js/util/promise.js +0 -191
- package/tests/images/test.avif +0 -0
- package/tests/images/test.webp +0 -0
package/src/js/util/viewport.js
CHANGED
|
@@ -1,30 +1,39 @@
|
|
|
1
|
-
import {css} from './style';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { css } from './style';
|
|
2
|
+
import { isVisible, parents } from './filter';
|
|
3
|
+
import { offset, offsetPosition } from './dimensions';
|
|
4
|
+
import {
|
|
5
|
+
clamp,
|
|
6
|
+
findIndex,
|
|
7
|
+
intersectRect,
|
|
8
|
+
isDocument,
|
|
9
|
+
isUndefined,
|
|
10
|
+
isWindow,
|
|
11
|
+
toNode,
|
|
12
|
+
toWindow,
|
|
13
|
+
} from './lang';
|
|
6
14
|
|
|
7
15
|
export function isInView(element, offsetTop = 0, offsetLeft = 0) {
|
|
8
|
-
|
|
9
16
|
if (!isVisible(element)) {
|
|
10
17
|
return false;
|
|
11
18
|
}
|
|
12
19
|
|
|
13
|
-
return intersectRect(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
return intersectRect(
|
|
21
|
+
...scrollParents(element)
|
|
22
|
+
.map((parent) => {
|
|
23
|
+
const { top, left, bottom, right } = offset(getViewport(parent));
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
top: top - offsetTop,
|
|
27
|
+
left: left - offsetLeft,
|
|
28
|
+
bottom: bottom + offsetTop,
|
|
29
|
+
right: right + offsetLeft,
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
.concat(offset(element))
|
|
33
|
+
);
|
|
24
34
|
}
|
|
25
35
|
|
|
26
36
|
export function scrollTop(element, top) {
|
|
27
|
-
|
|
28
37
|
if (isWindow(element) || isDocument(element)) {
|
|
29
38
|
element = getScrollingElement(element);
|
|
30
39
|
} else {
|
|
@@ -38,49 +47,44 @@ export function scrollTop(element, top) {
|
|
|
38
47
|
}
|
|
39
48
|
}
|
|
40
49
|
|
|
41
|
-
export function scrollIntoView(element, {offset: offsetBy = 0} = {}) {
|
|
42
|
-
|
|
50
|
+
export function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
|
|
43
51
|
const parents = isVisible(element) ? scrollParents(element) : [];
|
|
44
|
-
return parents.reduce(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
+
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
top
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}, () => Promise.resolve())();
|
|
52
|
+
return parents.reduce(
|
|
53
|
+
(fn, scrollElement, i) => {
|
|
54
|
+
const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
|
|
55
|
+
const maxScroll = scrollHeight - getViewportClientHeight(scrollElement);
|
|
56
|
+
const { height: elHeight, top: elTop } = offset(parents[i - 1] || element);
|
|
57
|
+
|
|
58
|
+
let top = Math.ceil(
|
|
59
|
+
elTop - offset(getViewport(scrollElement)).top - offsetBy + scrollTop
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
|
|
63
|
+
top += offsetBy;
|
|
64
|
+
} else {
|
|
65
|
+
offsetBy = 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (top > maxScroll) {
|
|
69
|
+
offsetBy -= top - maxScroll;
|
|
70
|
+
top = maxScroll;
|
|
71
|
+
} else if (top < 0) {
|
|
72
|
+
offsetBy -= top;
|
|
73
|
+
top = 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return () => scrollTo(scrollElement, top - scrollTop).then(fn);
|
|
77
|
+
},
|
|
78
|
+
() => Promise.resolve()
|
|
79
|
+
)();
|
|
74
80
|
|
|
75
81
|
function scrollTo(element, top) {
|
|
76
|
-
return new Promise(resolve => {
|
|
77
|
-
|
|
82
|
+
return new Promise((resolve) => {
|
|
78
83
|
const scroll = element.scrollTop;
|
|
79
84
|
const duration = getDuration(Math.abs(top));
|
|
80
85
|
const start = Date.now();
|
|
81
86
|
|
|
82
87
|
(function step() {
|
|
83
|
-
|
|
84
88
|
const percent = ease(clamp((Date.now() - start) / duration));
|
|
85
89
|
|
|
86
90
|
scrollTop(element, scroll + top * percent);
|
|
@@ -91,29 +95,26 @@ export function scrollIntoView(element, {offset: offsetBy = 0} = {}) {
|
|
|
91
95
|
} else {
|
|
92
96
|
requestAnimationFrame(step);
|
|
93
97
|
}
|
|
94
|
-
|
|
95
98
|
})();
|
|
96
99
|
});
|
|
97
100
|
}
|
|
98
101
|
|
|
99
102
|
function getDuration(dist) {
|
|
100
|
-
return 40 * Math.pow(dist, .375);
|
|
103
|
+
return 40 * Math.pow(dist, 0.375);
|
|
101
104
|
}
|
|
102
105
|
|
|
103
106
|
function ease(k) {
|
|
104
107
|
return 0.5 * (1 - Math.cos(Math.PI * k));
|
|
105
108
|
}
|
|
106
|
-
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
export function scrolledOver(element, startOffset = 0, endOffset = 0) {
|
|
110
|
-
|
|
111
112
|
if (!isVisible(element)) {
|
|
112
113
|
return 0;
|
|
113
114
|
}
|
|
114
115
|
|
|
115
116
|
const [scrollElement] = scrollParents(element, /auto|scroll/, true);
|
|
116
|
-
const {scrollHeight, scrollTop} = scrollElement;
|
|
117
|
+
const { scrollHeight, scrollTop } = scrollElement;
|
|
117
118
|
const viewportHeight = getViewportClientHeight(scrollElement);
|
|
118
119
|
const maxScroll = scrollHeight - viewportHeight;
|
|
119
120
|
const elementOffsetTop = offsetPosition(element)[0] - offsetPosition(scrollElement)[0];
|
|
@@ -130,14 +131,20 @@ export function scrollParents(element, overflowRe = /auto|scroll|hidden/, scroll
|
|
|
130
131
|
let ancestors = parents(element).reverse();
|
|
131
132
|
ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);
|
|
132
133
|
|
|
133
|
-
const fixedIndex = findIndex(ancestors, el => css(el, 'position') === 'fixed');
|
|
134
|
+
const fixedIndex = findIndex(ancestors, (el) => css(el, 'position') === 'fixed');
|
|
134
135
|
if (~fixedIndex) {
|
|
135
136
|
ancestors = ancestors.slice(fixedIndex);
|
|
136
137
|
}
|
|
137
138
|
|
|
138
|
-
return [scrollEl]
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
return [scrollEl]
|
|
140
|
+
.concat(
|
|
141
|
+
ancestors.filter(
|
|
142
|
+
(parent) =>
|
|
143
|
+
overflowRe.test(css(parent, 'overflow')) &&
|
|
144
|
+
(!scrollable || parent.scrollHeight > getViewportClientHeight(parent))
|
|
145
|
+
)
|
|
146
|
+
)
|
|
147
|
+
.reverse();
|
|
141
148
|
}
|
|
142
149
|
|
|
143
150
|
export function getViewport(scrollElement) {
|
|
@@ -146,10 +153,14 @@ export function getViewport(scrollElement) {
|
|
|
146
153
|
|
|
147
154
|
// iOS 12 returns <body> as scrollingElement
|
|
148
155
|
export function getViewportClientHeight(scrollElement) {
|
|
149
|
-
return (
|
|
156
|
+
return (
|
|
157
|
+
scrollElement === getScrollingElement(scrollElement)
|
|
158
|
+
? document.documentElement
|
|
159
|
+
: scrollElement
|
|
160
|
+
).clientHeight;
|
|
150
161
|
}
|
|
151
162
|
|
|
152
163
|
export function getScrollingElement(element) {
|
|
153
|
-
const {document} = toWindow(element);
|
|
164
|
+
const { document } = toWindow(element);
|
|
154
165
|
return document.scrollingElement || document.documentElement;
|
|
155
166
|
}
|
package/tests/image.html
CHANGED
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
<h1>Image</h1>
|
|
16
16
|
|
|
17
|
-
<
|
|
17
|
+
<p><button class="uk-button uk-button-default" onclick="sessionStorage.clear()">Clear Session Storage</button></p>
|
|
18
|
+
|
|
19
|
+
<div class="uk-child-width-1-2@m" uk-grid>
|
|
18
20
|
<div>
|
|
19
21
|
<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>
|
|
20
22
|
</div>
|
|
@@ -23,17 +25,7 @@
|
|
|
23
25
|
</div>
|
|
24
26
|
</div>
|
|
25
27
|
|
|
26
|
-
<div class="uk-background-
|
|
27
|
-
<picture>
|
|
28
|
-
<source type="image/webp" sizes="(min-width: 780px) 780px" srcset="http://localhost/site/image?src=WyJzaXRlXC9pbWFnZXNcL2hvbWVcL3lvb3RoZW1lLXByby5qcGciLFtbInR5cGUiLFsid2VicCIsIjg1Il1dLFsiZG9SZXNpemUiLFs3ODEsNDg4LDc4MSw0ODhdXSxbImRvQ3JvcCIsWzc4MCw0ODgsMCwwXV1dXQ%3D%3D&hash=9a3c6f9c 780w, /site/cache/images/yootheme-pro-5db7acab.webp 1560w">
|
|
29
|
-
<img src="/site/cache/images/yootheme-pro-0d67d545.jpeg" width="780" height="488" alt="Introduction Video on using the YOOtheme Pro Page Builder for WordPress and Joomla">
|
|
30
|
-
</picture>
|
|
31
|
-
</div>
|
|
32
|
-
<div class="uk-height-large uk-background-cover uk-margin-medium uk-flex uk-flex-center uk-flex-middle uk-light" data-src="https://images.unsplash.com/photo-1490822180406-880c226c150b?fit=crop&w=1200&h=450&q=80" data-sources="srcset: images/test.avif; type: image/avif" uk-img>
|
|
33
|
-
<h1>Background Image</h1>
|
|
34
|
-
</div>
|
|
35
|
-
|
|
36
|
-
<div class="uk-height-large uk-background-cover uk-margin-medium uk-flex uk-flex-center uk-flex-middle uk-light" data-src="https://images.unsplash.com/photo-1490822180406-880c226c150b?fit=crop&w=1200&h=450&q=80" data-sources="[{"srcset": "images/test.avif", "type": "image/avif"},{"srcset": "images/test.webp", "type": "image/webp"}]" uk-img>
|
|
28
|
+
<div class="uk-height-large uk-background-cover uk-margin-medium uk-flex uk-flex-center uk-flex-middle uk-light" data-src="https://images.unsplash.com/photo-1490822180406-880c226c150b?fit=crop&w=1200&h=450&q=80" uk-img>
|
|
37
29
|
<h1>Background Image</h1>
|
|
38
30
|
</div>
|
|
39
31
|
|
|
@@ -263,28 +255,28 @@
|
|
|
263
255
|
|
|
264
256
|
<ul class="uk-slideshow-items">
|
|
265
257
|
<li>
|
|
266
|
-
<img data-src="images/photo.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !.uk-slideshow-items > :last-child, !* +*">
|
|
258
|
+
<img data-src="images/photo.jpg" alt="" uk-cover data-width="1800" data-height="1200" uk-img="target: !.uk-slideshow-items > :last-child, !* +*">
|
|
267
259
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
268
260
|
<h2 uk-slideshow-parallax="x: 100,-100">Heading</h2>
|
|
269
261
|
<p uk-slideshow-parallax="x: 200,-200">Lorem ipsum dolor sit amet.</p>
|
|
270
262
|
</div>
|
|
271
263
|
</li>
|
|
272
264
|
<li>
|
|
273
|
-
<img data-src="images/dark.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !* +*">
|
|
265
|
+
<img data-src="images/dark.jpg" alt="" uk-cover data-width="1800" data-height="1200" uk-img="target: !* -*, !* +*">
|
|
274
266
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
275
267
|
<h2 uk-slideshow-parallax="x: 100,-100">Heading</h2>
|
|
276
268
|
<p uk-slideshow-parallax="x: 200,-200">Lorem ipsum dolor sit amet.</p>
|
|
277
269
|
</div>
|
|
278
270
|
</li>
|
|
279
271
|
<li>
|
|
280
|
-
<img data-src="images/light.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !* +*">
|
|
272
|
+
<img data-src="images/light.jpg" alt="" uk-cover data-width="1800" data-height="1200" uk-img="target: !* -*, !* +*">
|
|
281
273
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
282
274
|
<h2 uk-slideshow-parallax="y: -50,0,0; opacity: 1,1,0">Heading</h2>
|
|
283
275
|
<p uk-slideshow-parallax="y: 50,0,0; opacity: 1,1,0">Lorem ipsum dolor sit amet.</p>
|
|
284
276
|
</div>
|
|
285
277
|
</li>
|
|
286
278
|
<li>
|
|
287
|
-
<img data-src="images/photo2.jpg" alt="" uk-cover width="1800" height="1200" uk-img="target: !* -*, !.uk-slideshow-items > :first-child">
|
|
279
|
+
<img data-src="images/photo2.jpg" alt="" uk-cover data-width="1800" data-height="1200" uk-img="target: !* -*, !.uk-slideshow-items > :first-child">
|
|
288
280
|
<div class="uk-position-center uk-position-small uk-text-center">
|
|
289
281
|
<h2 uk-slideshow-parallax="x: 200,0,0">Heading</h2>
|
|
290
282
|
<p uk-slideshow-parallax="x: 0,0,-200">Lorem ipsum dolor sit amet.</p>
|
|
@@ -304,43 +296,43 @@
|
|
|
304
296
|
|
|
305
297
|
<ul class="uk-slider-items uk-child-width-1-2@s uk-child-width-1-3@m">
|
|
306
298
|
<li>
|
|
307
|
-
<img data-src="images/slider1.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
299
|
+
<img data-src="images/slider1.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
308
300
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">1</h1></div>
|
|
309
301
|
</li>
|
|
310
302
|
<li>
|
|
311
|
-
<img data-src="images/slider2.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
303
|
+
<img data-src="images/slider2.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
312
304
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">2</h1></div>
|
|
313
305
|
</li>
|
|
314
306
|
<li>
|
|
315
|
-
<img data-src="images/slider3.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
307
|
+
<img data-src="images/slider3.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
316
308
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">3</h1></div>
|
|
317
309
|
</li>
|
|
318
310
|
<li>
|
|
319
|
-
<img data-src="images/slider4.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
311
|
+
<img data-src="images/slider4.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
320
312
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">4</h1></div>
|
|
321
313
|
</li>
|
|
322
314
|
<li>
|
|
323
|
-
<img data-src="images/slider5.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
315
|
+
<img data-src="images/slider5.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
324
316
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">5</h1></div>
|
|
325
317
|
</li>
|
|
326
318
|
<li>
|
|
327
|
-
<img data-src="images/slider1.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
319
|
+
<img data-src="images/slider1.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
328
320
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">6</h1></div>
|
|
329
321
|
</li>
|
|
330
322
|
<li>
|
|
331
|
-
<img data-src="images/slider2.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
323
|
+
<img data-src="images/slider2.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
332
324
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">7</h1></div>
|
|
333
325
|
</li>
|
|
334
326
|
<li>
|
|
335
|
-
<img data-src="images/slider3.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
327
|
+
<img data-src="images/slider3.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
336
328
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">8</h1></div>
|
|
337
329
|
</li>
|
|
338
330
|
<li>
|
|
339
|
-
<img data-src="images/slider4.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
331
|
+
<img data-src="images/slider4.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
340
332
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">9</h1></div>
|
|
341
333
|
</li>
|
|
342
334
|
<li>
|
|
343
|
-
<img data-src="images/slider5.jpg" alt="" width="400" height="600" uk-img="target: !.uk-slider-items">
|
|
335
|
+
<img data-src="images/slider5.jpg" alt="" data-width="400" data-height="600" uk-img="target: !.uk-slider-items">
|
|
344
336
|
<div class="uk-position-center uk-panel"><h1 class="uk-transition-slide-bottom-small">10</h1></div>
|
|
345
337
|
</li>
|
|
346
338
|
</ul>
|
|
@@ -373,16 +365,28 @@
|
|
|
373
365
|
<td>The image's `src` attribute.</td>
|
|
374
366
|
</tr>
|
|
375
367
|
<tr>
|
|
376
|
-
<td><code>
|
|
368
|
+
<td><code>dataSrcset</code></td>
|
|
377
369
|
<td>String</td>
|
|
378
|
-
<td>
|
|
379
|
-
<td>The image's
|
|
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>
|
|
380
378
|
</tr>
|
|
381
379
|
<tr>
|
|
382
|
-
<td><code>
|
|
383
|
-
<td
|
|
384
|
-
<td
|
|
385
|
-
<td>
|
|
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>
|
|
386
390
|
</tr>
|
|
387
391
|
<tr>
|
|
388
392
|
<td><code>offsetTop</code></td>
|
package/tests/js/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* global UIkit, TESTS */
|
|
2
|
-
import {addClass, css, fastdom, on, prepend, removeClass, ucfirst} from 'uikit-util';
|
|
2
|
+
import { addClass, css, fastdom, on, prepend, removeClass, ucfirst } from 'uikit-util';
|
|
3
3
|
|
|
4
4
|
const tests = TESTS;
|
|
5
5
|
const storage = window.sessionStorage;
|
|
@@ -14,10 +14,13 @@ request.send(null);
|
|
|
14
14
|
|
|
15
15
|
const themes = request.status === 200 ? JSON.parse(request.responseText) : {};
|
|
16
16
|
const styles = {
|
|
17
|
-
core: {css: '../dist/css/uikit-core.css'},
|
|
18
|
-
theme: {css: '../dist/css/uikit.css'}
|
|
17
|
+
core: { css: '../dist/css/uikit-core.css' },
|
|
18
|
+
theme: { css: '../dist/css/uikit.css' },
|
|
19
19
|
};
|
|
20
|
-
const component = location.pathname
|
|
20
|
+
const component = location.pathname
|
|
21
|
+
.split('/')
|
|
22
|
+
.pop()
|
|
23
|
+
.replace(/.html$/, '');
|
|
21
24
|
|
|
22
25
|
for (const theme in themes) {
|
|
23
26
|
styles[theme] = themes[theme];
|
|
@@ -26,7 +29,7 @@ for (const theme in themes) {
|
|
|
26
29
|
const variations = {
|
|
27
30
|
'': 'Default',
|
|
28
31
|
light: 'Dark',
|
|
29
|
-
dark: 'Light'
|
|
32
|
+
dark: 'Light',
|
|
30
33
|
};
|
|
31
34
|
|
|
32
35
|
if (getParam('style') && getParam('style').match(/\.(json|css)$/)) {
|
|
@@ -44,102 +47,128 @@ docEl.dir = dir;
|
|
|
44
47
|
const style = styles[storage[key]] || styles.theme;
|
|
45
48
|
|
|
46
49
|
// add style
|
|
47
|
-
document.writeln(
|
|
50
|
+
document.writeln(
|
|
51
|
+
`<link rel="stylesheet" href="${
|
|
52
|
+
dir !== 'rtl' ? style.css : style.css.replace('.css', '-rtl.css')
|
|
53
|
+
}">`
|
|
54
|
+
);
|
|
48
55
|
|
|
49
56
|
// add javascript
|
|
50
57
|
document.writeln('<script src="../dist/js/uikit.js"></script>');
|
|
51
|
-
document.writeln(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
document.writeln(
|
|
59
|
+
`<script src="${style.icons ? style.icons : '../dist/js/uikit-icons.js'}"></script>`
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
on(window, 'load', () =>
|
|
63
|
+
setTimeout(
|
|
64
|
+
() =>
|
|
65
|
+
fastdom.write(() => {
|
|
66
|
+
const $body = document.body;
|
|
67
|
+
const $container = prepend(
|
|
68
|
+
$body,
|
|
69
|
+
`
|
|
57
70
|
<div class="uk-container">
|
|
58
71
|
<select class="uk-select uk-form-width-small" style="margin: 20px 20px 20px 0">
|
|
59
72
|
<option value="index.html">Overview</option>
|
|
60
|
-
${tests
|
|
73
|
+
${tests
|
|
74
|
+
.map(
|
|
75
|
+
(name) =>
|
|
76
|
+
`<option value="${name}.html">${name
|
|
77
|
+
.split('-')
|
|
78
|
+
.map(ucfirst)
|
|
79
|
+
.join(' ')}</option>`
|
|
80
|
+
)
|
|
81
|
+
.join('')}
|
|
61
82
|
</select>
|
|
62
83
|
<select class="uk-select uk-form-width-small" style="margin: 20px">
|
|
63
|
-
${Object.keys(styles)
|
|
84
|
+
${Object.keys(styles)
|
|
85
|
+
.map((style) => `<option value="${style}">${ucfirst(style)}</option>`)
|
|
86
|
+
.join('')}
|
|
64
87
|
</select>
|
|
65
88
|
<select class="uk-select uk-form-width-small" style="margin: 20px">
|
|
66
|
-
${Object.keys(variations)
|
|
89
|
+
${Object.keys(variations)
|
|
90
|
+
.map((name) => `<option value="${name}">${variations[name]}</option>`)
|
|
91
|
+
.join('')}
|
|
67
92
|
</select>
|
|
68
93
|
<label style="margin: 20px">
|
|
69
94
|
<input type="checkbox" class="uk-checkbox"/>
|
|
70
95
|
<span style="margin: 5px">RTL</span>
|
|
71
96
|
</label>
|
|
72
97
|
</div>
|
|
73
|
-
`
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
98
|
+
`
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const [$tests, $styles, $inverse, $rtl] = $container.children;
|
|
102
|
+
|
|
103
|
+
// Tests
|
|
104
|
+
// ------------------------------
|
|
105
|
+
|
|
106
|
+
on($tests, 'change', () => {
|
|
107
|
+
if ($tests.value) {
|
|
108
|
+
location.href = `${$tests.value}${
|
|
109
|
+
styles.custom ? `?style=${getParam('style')}` : ''
|
|
110
|
+
}`;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
$tests.value = `${component || 'index'}.html`;
|
|
114
|
+
|
|
115
|
+
// Styles
|
|
116
|
+
// ------------------------------
|
|
117
|
+
|
|
118
|
+
on($styles, 'change', () => {
|
|
119
|
+
storage[key] = $styles.value;
|
|
120
|
+
location.reload();
|
|
121
|
+
});
|
|
122
|
+
$styles.value = storage[key];
|
|
123
|
+
|
|
124
|
+
// Variations
|
|
125
|
+
// ------------------------------
|
|
126
|
+
|
|
127
|
+
$inverse.value = storage[keyinverse];
|
|
128
|
+
|
|
129
|
+
if ($inverse.value) {
|
|
130
|
+
removeClass(
|
|
131
|
+
document.querySelectorAll('*'),
|
|
132
|
+
'uk-navbar-container',
|
|
133
|
+
'uk-card-default',
|
|
134
|
+
'uk-card-muted',
|
|
135
|
+
'uk-card-primary',
|
|
136
|
+
'uk-card-secondary',
|
|
137
|
+
'uk-tile-default',
|
|
138
|
+
'uk-tile-muted',
|
|
139
|
+
'uk-tile-primary',
|
|
140
|
+
'uk-tile-secondary',
|
|
141
|
+
'uk-section-default',
|
|
142
|
+
'uk-section-muted',
|
|
143
|
+
'uk-section-primary',
|
|
144
|
+
'uk-section-secondary',
|
|
145
|
+
'uk-overlay-default',
|
|
146
|
+
'uk-overlay-primary'
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
css(docEl, 'background', $inverse.value === 'dark' ? '#fff' : '#222');
|
|
150
|
+
addClass($body, `uk-${$inverse.value}`);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
on($inverse, 'change', () => {
|
|
154
|
+
storage[keyinverse] = $inverse.value;
|
|
155
|
+
location.reload();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// RTL
|
|
159
|
+
// ------------------------------
|
|
160
|
+
|
|
161
|
+
on($rtl, 'change', ({ target }) => {
|
|
162
|
+
storage._uikit_dir = target.checked ? 'rtl' : 'ltr';
|
|
163
|
+
location.reload();
|
|
164
|
+
});
|
|
165
|
+
$rtl.firstElementChild.checked = dir === 'rtl';
|
|
166
|
+
|
|
167
|
+
css(docEl, 'paddingTop', '');
|
|
168
|
+
}),
|
|
169
|
+
100
|
|
170
|
+
)
|
|
171
|
+
);
|
|
143
172
|
|
|
144
173
|
css(docEl, 'paddingTop', '80px');
|
|
145
174
|
|