uikit 3.14.4-dev.a02c81d72 → 3.14.4-dev.a3fc077ea
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 +34 -17
- package/build/util.js +1 -0
- package/dist/css/uikit-core-rtl.css +339 -109
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +339 -109
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +359 -113
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +359 -113
- 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 +89 -132
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +89 -132
- 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 +4 -5
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +4 -5
- 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 +4 -5
- 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 +102 -147
- 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 +476 -452
- package/dist/js/uikit-core.min.js +14 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +476 -452
- package/dist/js/uikit.min.js +14 -1
- package/package.json +1 -1
- package/src/images/{backgrounds/nav-parent-close.svg → components/nav-parent-icon-large.svg} +0 -0
- package/src/images/{backgrounds/navbar-parent-close.svg → components/nav-parent-icon.svg} +0 -0
- package/src/images/{backgrounds/navbar-parent-open.svg → components/navbar-parent-icon.svg} +1 -1
- package/src/images/components/navbar-toggle-icon.svg +22 -3
- package/src/js/api/state.js +2 -2
- package/src/js/core/accordion.js +9 -17
- package/src/js/core/alert.js +35 -14
- package/src/js/core/drop.js +89 -62
- package/src/js/core/height-viewport.js +4 -2
- package/src/js/core/icon.js +16 -0
- package/src/js/core/index.js +2 -0
- package/src/js/core/leader.js +2 -2
- package/src/js/core/navbar.js +30 -45
- package/src/js/core/scroll.js +37 -10
- package/src/js/core/toggle.js +3 -5
- package/src/js/mixin/media.js +4 -5
- package/src/js/mixin/modal.js +9 -6
- package/src/js/mixin/position.js +24 -26
- package/src/js/mixin/style.js +11 -0
- package/src/js/mixin/togglable.js +88 -133
- package/src/js/util/animation.js +4 -3
- package/src/js/util/class.js +3 -1
- package/src/js/util/filter.js +3 -7
- package/src/js/util/position.js +107 -107
- package/src/js/util/style.js +4 -13
- package/src/js/util/viewport.js +3 -5
- package/src/less/components/_import.less +1 -0
- package/src/less/components/drop.less +1 -18
- package/src/less/components/dropbar.less +115 -0
- package/src/less/components/dropdown.less +11 -19
- package/src/less/components/leader.less +1 -1
- package/src/less/components/nav.less +218 -59
- package/src/less/components/navbar.less +54 -47
- package/src/less/components/utility.less +10 -2
- package/src/less/theme/_import.less +1 -0
- package/src/less/theme/dropbar.less +44 -0
- package/src/less/theme/dropdown.less +0 -11
- package/src/less/theme/nav.less +45 -7
- package/src/less/theme/navbar.less +1 -5
- package/src/scss/components/_import.scss +1 -0
- package/src/scss/components/drop.scss +1 -18
- package/src/scss/components/dropbar.scss +115 -0
- package/src/scss/components/dropdown.scss +11 -19
- package/src/scss/components/leader.scss +1 -1
- package/src/scss/components/nav.scss +167 -47
- package/src/scss/components/navbar.scss +42 -47
- package/src/scss/components/utility.scss +8 -1
- package/src/scss/mixins-theme.scss +92 -21
- package/src/scss/mixins.scss +89 -17
- package/src/scss/theme/_import.scss +1 -0
- package/src/scss/theme/dropbar.scss +44 -0
- package/src/scss/theme/dropdown.scss +0 -8
- package/src/scss/theme/nav.scss +43 -7
- package/src/scss/theme/navbar.scss +1 -5
- package/src/scss/variables-theme.scss +56 -19
- package/src/scss/variables.scss +45 -17
- package/tests/accordion.html +2 -2
- package/tests/alert.html +2 -2
- package/tests/countdown.html +1 -1
- package/tests/drop.html +442 -412
- package/tests/dropbar.html +456 -0
- package/tests/dropdown.html +8 -470
- package/tests/filter.html +9 -12
- package/tests/form.html +1 -1
- package/tests/index.html +126 -107
- package/tests/js/index.js +1 -4
- package/tests/lightbox.html +5 -5
- package/tests/list.html +8 -8
- package/tests/modal.html +13 -13
- package/tests/nav.html +117 -75
- package/tests/navbar.html +102 -237
- package/tests/offcanvas.html +17 -21
- package/tests/parallax.html +1 -1
- package/tests/position.html +18 -16
- package/tests/progress.html +9 -9
- package/tests/scroll.html +7 -10
- package/tests/search.html +5 -5
- package/tests/slider.html +6 -5
- package/tests/slideshow.html +8 -8
- package/tests/sortable.html +6 -8
- package/tests/sticky-navbar.html +6 -6
- package/tests/sticky.html +8 -8
- package/tests/switcher.html +1 -1
- package/tests/tab.html +1 -1
- package/tests/table.html +7 -7
- package/tests/toggle.html +2 -2
- package/tests/tooltip.html +1 -1
- package/tests/upload.html +11 -11
- package/tests/utility.html +19 -0
- package/src/images/backgrounds/nav-parent-open.svg +0 -3
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.14.4-dev.
|
|
5
|
+
"version": "3.14.4-dev.a3fc077ea",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
package/src/images/{backgrounds/nav-parent-close.svg → components/nav-parent-icon-large.svg}
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<style>
|
|
3
|
+
|
|
4
|
+
.uk-navbar-toggle svg > [class*='line-'] {
|
|
5
|
+
transition: 0.2s ease-in-out;
|
|
6
|
+
transition-property: transform, opacity,;
|
|
7
|
+
transform-origin: center;
|
|
8
|
+
opacity: 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-2 { transform: rotate(45deg); }
|
|
12
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-3 { transform: rotate(-45deg); }
|
|
13
|
+
|
|
14
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-1,
|
|
15
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-4 { opacity: 0; }
|
|
16
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-1 { transform: translateY(6px) scaleX(0); }
|
|
17
|
+
.uk-navbar-toggle[aria-expanded="true"] svg > .line-4 { transform: translateY(-6px) scaleX(0); }
|
|
18
|
+
|
|
19
|
+
</style>
|
|
20
|
+
<rect class="line-1" y="3" width="20" height="2" />
|
|
21
|
+
<rect class="line-2" y="9" width="20" height="2" />
|
|
22
|
+
<rect class="line-3" y="9" width="20" height="2" />
|
|
23
|
+
<rect class="line-4" y="15" width="20" height="2" />
|
|
5
24
|
</svg>
|
package/src/js/api/state.js
CHANGED
|
@@ -142,7 +142,7 @@ function getProps(opts, name) {
|
|
|
142
142
|
|
|
143
143
|
value = props[key] === Boolean && value === '' ? true : coerce(props[key], value);
|
|
144
144
|
|
|
145
|
-
if (prop === 'target' &&
|
|
145
|
+
if (prop === 'target' && startsWith(value, '_')) {
|
|
146
146
|
continue;
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -153,7 +153,7 @@ function getProps(opts, name) {
|
|
|
153
153
|
|
|
154
154
|
for (const key in options) {
|
|
155
155
|
const prop = camelize(key);
|
|
156
|
-
if (props[prop]
|
|
156
|
+
if (!isUndefined(props[prop])) {
|
|
157
157
|
data[prop] = coerce(props[prop], options[key]);
|
|
158
158
|
}
|
|
159
159
|
}
|
package/src/js/core/accordion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Class from '../mixin/class';
|
|
2
2
|
import Lazyload from '../mixin/lazyload';
|
|
3
|
-
import {
|
|
3
|
+
import { default as Togglable, toggleTransition } from '../mixin/togglable';
|
|
4
4
|
import {
|
|
5
5
|
$,
|
|
6
6
|
$$,
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
isInView,
|
|
15
15
|
scrollIntoView,
|
|
16
16
|
toggleClass,
|
|
17
|
-
|
|
18
|
-
wrapAll,
|
|
17
|
+
within,
|
|
19
18
|
} from 'uikit-util';
|
|
20
19
|
|
|
21
20
|
export default {
|
|
22
21
|
mixins: [Class, Lazyload, Togglable],
|
|
23
22
|
|
|
24
23
|
props: {
|
|
24
|
+
animation: Boolean,
|
|
25
25
|
targets: String,
|
|
26
26
|
active: null,
|
|
27
27
|
collapsible: Boolean,
|
|
@@ -34,7 +34,7 @@ export default {
|
|
|
34
34
|
data: {
|
|
35
35
|
targets: '> *',
|
|
36
36
|
active: false,
|
|
37
|
-
animation:
|
|
37
|
+
animation: true,
|
|
38
38
|
collapsible: true,
|
|
39
39
|
multiple: false,
|
|
40
40
|
clsOpen: 'uk-open',
|
|
@@ -80,7 +80,7 @@ export default {
|
|
|
80
80
|
hide(
|
|
81
81
|
el,
|
|
82
82
|
!hasClass(
|
|
83
|
-
this.items.find((item) =>
|
|
83
|
+
this.items.find((item) => within(el, item)),
|
|
84
84
|
this.clsOpen
|
|
85
85
|
)
|
|
86
86
|
);
|
|
@@ -132,23 +132,15 @@ export default {
|
|
|
132
132
|
toggleClass(el, this.clsOpen, show);
|
|
133
133
|
attr($(this.$props.toggle, el), 'aria-expanded', show);
|
|
134
134
|
|
|
135
|
-
const content = $(
|
|
135
|
+
const content = $(this.content, el);
|
|
136
136
|
|
|
137
|
-
if (animate === false || !this.
|
|
137
|
+
if (animate === false || !this.animation) {
|
|
138
|
+
content.hidden = !show;
|
|
138
139
|
hide(content, !show);
|
|
139
140
|
return;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
|
|
143
|
-
el._wrapper = wrapAll(content, `<div${show ? ' hidden' : ''}>`);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
hide(content, false);
|
|
147
|
-
await slide(this)(el._wrapper, show);
|
|
148
|
-
hide(content, !show);
|
|
149
|
-
|
|
150
|
-
delete el._wrapper;
|
|
151
|
-
unwrap(content);
|
|
143
|
+
await toggleTransition(this)(content, show);
|
|
152
144
|
|
|
153
145
|
if (show) {
|
|
154
146
|
const toggle = $(this.$props.toggle, el);
|
package/src/js/core/alert.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Class from '../mixin/class';
|
|
2
2
|
import Togglable from '../mixin/togglable';
|
|
3
|
+
import { css, toFloat, Transition } from 'uikit-util';
|
|
3
4
|
|
|
4
5
|
export default {
|
|
5
6
|
mixins: [Class, Togglable],
|
|
@@ -7,35 +8,55 @@ export default {
|
|
|
7
8
|
args: 'animation',
|
|
8
9
|
|
|
9
10
|
props: {
|
|
11
|
+
animation: Boolean,
|
|
10
12
|
close: String,
|
|
11
13
|
},
|
|
12
14
|
|
|
13
15
|
data: {
|
|
14
|
-
animation:
|
|
16
|
+
animation: true,
|
|
15
17
|
selClose: '.uk-alert-close',
|
|
16
18
|
duration: 150,
|
|
17
|
-
hideProps: { opacity: 0, ...Togglable.data.hideProps },
|
|
18
19
|
},
|
|
19
20
|
|
|
20
|
-
events:
|
|
21
|
-
|
|
22
|
-
name: 'click',
|
|
21
|
+
events: {
|
|
22
|
+
name: 'click',
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
delegate() {
|
|
25
|
+
return this.selClose;
|
|
26
|
+
},
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
28
|
+
handler(e) {
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
this.close();
|
|
32
31
|
},
|
|
33
|
-
|
|
32
|
+
},
|
|
34
33
|
|
|
35
34
|
methods: {
|
|
36
35
|
async close() {
|
|
37
|
-
await this.toggleElement(this.$el);
|
|
36
|
+
await this.toggleElement(this.$el, false, animate(this));
|
|
38
37
|
this.$destroy(true);
|
|
39
38
|
},
|
|
40
39
|
},
|
|
41
40
|
};
|
|
41
|
+
|
|
42
|
+
function animate({ duration, transition, velocity }) {
|
|
43
|
+
return (el) => {
|
|
44
|
+
const height = toFloat(css(el, 'height'));
|
|
45
|
+
css(el, 'height', height);
|
|
46
|
+
return Transition.start(
|
|
47
|
+
el,
|
|
48
|
+
{
|
|
49
|
+
height: 0,
|
|
50
|
+
marginTop: 0,
|
|
51
|
+
marginBottom: 0,
|
|
52
|
+
paddingTop: 0,
|
|
53
|
+
paddingBottom: 0,
|
|
54
|
+
borderTop: 0,
|
|
55
|
+
borderBottom: 0,
|
|
56
|
+
opacity: 0,
|
|
57
|
+
},
|
|
58
|
+
velocity * height + duration,
|
|
59
|
+
transition
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
}
|
package/src/js/core/drop.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Container from '../mixin/container';
|
|
2
2
|
import Lazyload from '../mixin/lazyload';
|
|
3
3
|
import Position from '../mixin/position';
|
|
4
|
+
import Style from '../mixin/style';
|
|
4
5
|
import Togglable from '../mixin/togglable';
|
|
5
6
|
import {
|
|
6
7
|
addClass,
|
|
@@ -27,7 +28,6 @@ import {
|
|
|
27
28
|
query,
|
|
28
29
|
removeClass,
|
|
29
30
|
scrollParents,
|
|
30
|
-
toggleClass,
|
|
31
31
|
within,
|
|
32
32
|
} from 'uikit-util';
|
|
33
33
|
import { preventBackgroundScroll, preventOverscroll } from '../mixin/modal';
|
|
@@ -35,7 +35,7 @@ import { preventBackgroundScroll, preventOverscroll } from '../mixin/modal';
|
|
|
35
35
|
export let active;
|
|
36
36
|
|
|
37
37
|
export default {
|
|
38
|
-
mixins: [Container, Lazyload, Position, Togglable],
|
|
38
|
+
mixins: [Container, Lazyload, Position, Style, Togglable],
|
|
39
39
|
|
|
40
40
|
args: 'pos',
|
|
41
41
|
|
|
@@ -43,7 +43,10 @@ export default {
|
|
|
43
43
|
mode: 'list',
|
|
44
44
|
toggle: Boolean,
|
|
45
45
|
boundary: Boolean,
|
|
46
|
-
|
|
46
|
+
target: Boolean,
|
|
47
|
+
targetX: Boolean,
|
|
48
|
+
targetY: Boolean,
|
|
49
|
+
stretch: Boolean,
|
|
47
50
|
delayShow: Number,
|
|
48
51
|
delayHide: Number,
|
|
49
52
|
display: String,
|
|
@@ -55,17 +58,32 @@ export default {
|
|
|
55
58
|
data: {
|
|
56
59
|
mode: ['click', 'hover'],
|
|
57
60
|
toggle: '- *',
|
|
58
|
-
boundary:
|
|
59
|
-
|
|
61
|
+
boundary: false,
|
|
62
|
+
target: false,
|
|
63
|
+
targetX: false,
|
|
64
|
+
targetY: false,
|
|
65
|
+
stretch: false,
|
|
60
66
|
delayShow: 0,
|
|
61
67
|
delayHide: 800,
|
|
62
68
|
display: null,
|
|
63
69
|
clsDrop: false,
|
|
70
|
+
animateOut: false,
|
|
71
|
+
bgScroll: true,
|
|
64
72
|
animation: ['uk-animation-fade'],
|
|
65
73
|
cls: 'uk-open',
|
|
66
74
|
container: false,
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
computed: {
|
|
78
|
+
target({ target, targetX, targetY }, $el) {
|
|
79
|
+
targetX = targetX || target || this.targetEl;
|
|
80
|
+
targetY = targetY || target || this.targetEl;
|
|
81
|
+
|
|
82
|
+
return [
|
|
83
|
+
targetX === true ? window : query(targetX, $el),
|
|
84
|
+
targetY === true ? window : query(targetY, $el),
|
|
85
|
+
];
|
|
86
|
+
},
|
|
69
87
|
},
|
|
70
88
|
|
|
71
89
|
created() {
|
|
@@ -79,13 +97,13 @@ export default {
|
|
|
79
97
|
connected() {
|
|
80
98
|
addClass(this.$el, this.clsDrop);
|
|
81
99
|
|
|
82
|
-
if (this.toggle && !this.
|
|
83
|
-
this.
|
|
100
|
+
if (this.toggle && !this.targetEl) {
|
|
101
|
+
this.targetEl = this.$create('toggle', query(this.toggle, this.$el), {
|
|
84
102
|
target: this.$el,
|
|
85
103
|
mode: this.mode,
|
|
86
104
|
}).$el;
|
|
87
|
-
attr(this.
|
|
88
|
-
this.lazyload(this.
|
|
105
|
+
attr(this.targetEl, 'aria-haspopup', true);
|
|
106
|
+
this.lazyload(this.targetEl);
|
|
89
107
|
}
|
|
90
108
|
},
|
|
91
109
|
|
|
@@ -238,7 +256,7 @@ export default {
|
|
|
238
256
|
!defaultPrevented &&
|
|
239
257
|
type === pointerUp &&
|
|
240
258
|
target === newTarget &&
|
|
241
|
-
!(this.
|
|
259
|
+
!(this.targetEl && within(target, this.targetEl))
|
|
242
260
|
) {
|
|
243
261
|
this.hide(false);
|
|
244
262
|
}
|
|
@@ -257,13 +275,13 @@ export default {
|
|
|
257
275
|
? []
|
|
258
276
|
: [preventOverscroll(this.$el), preventBackgroundScroll()]),
|
|
259
277
|
|
|
260
|
-
...(this.display === 'static'
|
|
278
|
+
...(this.display === 'static'
|
|
261
279
|
? []
|
|
262
280
|
: (() => {
|
|
263
281
|
const handler = () => this.$emit();
|
|
264
282
|
return [
|
|
265
283
|
on(window, 'resize', handler),
|
|
266
|
-
on(document, 'scroll', handler
|
|
284
|
+
on([document, scrollParents(this.$el)], 'scroll', handler),
|
|
267
285
|
(() => {
|
|
268
286
|
const observer = observeResize(
|
|
269
287
|
scrollParents(this.$el),
|
|
@@ -316,12 +334,12 @@ export default {
|
|
|
316
334
|
},
|
|
317
335
|
|
|
318
336
|
methods: {
|
|
319
|
-
show(target = this.
|
|
320
|
-
if (this.isToggled() && target && this.
|
|
337
|
+
show(target = this.targetEl, delay = true) {
|
|
338
|
+
if (this.isToggled() && target && this.targetEl && target !== this.targetEl) {
|
|
321
339
|
this.hide(false, false);
|
|
322
340
|
}
|
|
323
341
|
|
|
324
|
-
this.
|
|
342
|
+
this.targetEl = target;
|
|
325
343
|
|
|
326
344
|
this.clearTimers();
|
|
327
345
|
|
|
@@ -384,60 +402,69 @@ export default {
|
|
|
384
402
|
|
|
385
403
|
position() {
|
|
386
404
|
removeClass(this.$el, `${this.clsDrop}-stack`);
|
|
387
|
-
|
|
388
|
-
|
|
405
|
+
attr(this.$el, 'style', this._style);
|
|
406
|
+
|
|
407
|
+
// Ensure none positioned element does not generate scrollbars
|
|
408
|
+
this.$el.hidden = true;
|
|
389
409
|
|
|
390
410
|
const boundary = query(this.boundary, this.$el);
|
|
391
|
-
const
|
|
392
|
-
const
|
|
393
|
-
boundary && this.boundaryAlign ? boundary : this.$el
|
|
394
|
-
);
|
|
395
|
-
const scrollParentOffset = offset(scrollParent);
|
|
396
|
-
const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
|
|
411
|
+
const boundaryOffset = offsetViewport(boundary || window);
|
|
412
|
+
const viewports = this.target.map((target) => offsetViewport(scrollParents(target)[0]));
|
|
397
413
|
const viewportOffset = this.getViewportOffset(this.$el);
|
|
398
414
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
css(this.$el, {
|
|
421
|
-
width:
|
|
422
|
-
this.axis === 'y'
|
|
423
|
-
? viewport.width
|
|
424
|
-
: (this.dir === 'left'
|
|
425
|
-
? targetDim.left - viewport.left
|
|
426
|
-
: viewport.right - targetDim.right) - elOffset,
|
|
427
|
-
height:
|
|
428
|
-
this.axis === 'x'
|
|
429
|
-
? viewport.height
|
|
430
|
-
: (this.dir === 'top'
|
|
431
|
-
? targetDim.top - viewport.top
|
|
432
|
-
: viewport.bottom - targetDim.bottom) - elOffset,
|
|
433
|
-
});
|
|
434
|
-
} else if (this.$el.offsetWidth > maxWidth) {
|
|
415
|
+
const dirs = [
|
|
416
|
+
[0, ['x', 'width', 'left', 'right']],
|
|
417
|
+
[1, ['y', 'height', 'top', 'bottom']],
|
|
418
|
+
];
|
|
419
|
+
|
|
420
|
+
for (const [i, [axis, prop]] of dirs) {
|
|
421
|
+
if (this.axis !== axis && includes([axis, true], this.stretch)) {
|
|
422
|
+
css(this.$el, {
|
|
423
|
+
[prop]: Math.min(
|
|
424
|
+
boundaryOffset[prop],
|
|
425
|
+
viewports[i][prop] - 2 * viewportOffset
|
|
426
|
+
),
|
|
427
|
+
[`overflow-${axis}`]: 'auto',
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
const maxWidth = viewports[0].width - 2 * viewportOffset;
|
|
433
|
+
|
|
434
|
+
if (this.$el.offsetWidth > maxWidth) {
|
|
435
435
|
addClass(this.$el, `${this.clsDrop}-stack`);
|
|
436
436
|
}
|
|
437
437
|
|
|
438
438
|
css(this.$el, 'maxWidth', maxWidth);
|
|
439
439
|
|
|
440
|
-
this
|
|
440
|
+
this.$el.hidden = false;
|
|
441
|
+
|
|
442
|
+
this.positionAt(this.$el, this.target, boundary);
|
|
443
|
+
|
|
444
|
+
for (const [i, [axis, prop, start, end]] of dirs) {
|
|
445
|
+
if (this.axis === axis && includes([axis, true], this.stretch)) {
|
|
446
|
+
const positionOffset = Math.abs(this.getPositionOffset(this.$el));
|
|
447
|
+
const targetOffset = offset(this.target[i]);
|
|
448
|
+
const elOffset = offset(this.$el);
|
|
449
|
+
|
|
450
|
+
css(this.$el, {
|
|
451
|
+
[prop]:
|
|
452
|
+
(targetOffset[start] > elOffset[start]
|
|
453
|
+
? targetOffset[start] -
|
|
454
|
+
Math.max(
|
|
455
|
+
boundaryOffset[start],
|
|
456
|
+
viewports[i][start] + viewportOffset
|
|
457
|
+
)
|
|
458
|
+
: Math.min(
|
|
459
|
+
boundaryOffset[end],
|
|
460
|
+
viewports[i][end] - viewportOffset
|
|
461
|
+
) - targetOffset[end]) - positionOffset,
|
|
462
|
+
[`overflow-${axis}`]: 'auto',
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
this.positionAt(this.$el, this.target, boundary);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
441
468
|
},
|
|
442
469
|
},
|
|
443
470
|
};
|
|
@@ -45,8 +45,11 @@ export default {
|
|
|
45
45
|
let minHeight = '';
|
|
46
46
|
const box = boxModelAdjust(this.$el, 'height', 'content-box');
|
|
47
47
|
|
|
48
|
+
const { body, scrollingElement } = document;
|
|
48
49
|
const [scrollElement] = scrollParents(this.$el, /auto|scroll/);
|
|
49
|
-
const { height: viewportHeight } = offsetViewport(
|
|
50
|
+
const { height: viewportHeight } = offsetViewport(
|
|
51
|
+
scrollElement === body ? scrollingElement : scrollElement
|
|
52
|
+
);
|
|
50
53
|
|
|
51
54
|
if (this.expand) {
|
|
52
55
|
minHeight = Math.max(
|
|
@@ -56,7 +59,6 @@ export default {
|
|
|
56
59
|
0
|
|
57
60
|
);
|
|
58
61
|
} else {
|
|
59
|
-
const { body, scrollingElement } = document;
|
|
60
62
|
const isScrollingElement =
|
|
61
63
|
scrollingElement === scrollElement || body === scrollElement;
|
|
62
64
|
|
package/src/js/core/icon.js
CHANGED
|
@@ -2,6 +2,9 @@ import SVG from './svg';
|
|
|
2
2
|
import closeIcon from '../../images/components/close-icon.svg';
|
|
3
3
|
import closeLarge from '../../images/components/close-large.svg';
|
|
4
4
|
import marker from '../../images/components/marker.svg';
|
|
5
|
+
import navParentIcon from '../../images/components/nav-parent-icon.svg';
|
|
6
|
+
import navParentIconLarge from '../../images/components/nav-parent-icon-large.svg';
|
|
7
|
+
import navbarParentIcon from '../../images/components/navbar-parent-icon.svg';
|
|
5
8
|
import navbarToggleIcon from '../../images/components/navbar-toggle-icon.svg';
|
|
6
9
|
import overlayIcon from '../../images/components/overlay-icon.svg';
|
|
7
10
|
import paginationNext from '../../images/components/pagination-next.svg';
|
|
@@ -19,6 +22,7 @@ import {
|
|
|
19
22
|
$,
|
|
20
23
|
addClass,
|
|
21
24
|
apply,
|
|
25
|
+
closest,
|
|
22
26
|
css,
|
|
23
27
|
each,
|
|
24
28
|
hasClass,
|
|
@@ -35,6 +39,9 @@ const icons = {
|
|
|
35
39
|
marker,
|
|
36
40
|
'close-icon': closeIcon,
|
|
37
41
|
'close-large': closeLarge,
|
|
42
|
+
'nav-parent-icon': navParentIcon,
|
|
43
|
+
'nav-parent-icon-large': navParentIconLarge,
|
|
44
|
+
'navbar-parent-icon': navbarParentIcon,
|
|
38
45
|
'navbar-toggle-icon': navbarToggleIcon,
|
|
39
46
|
'overlay-icon': overlayIcon,
|
|
40
47
|
'pagination-next': paginationNext,
|
|
@@ -96,6 +103,15 @@ export const IconComponent = {
|
|
|
96
103
|
},
|
|
97
104
|
};
|
|
98
105
|
|
|
106
|
+
export const NavParentIcon = {
|
|
107
|
+
extends: IconComponent,
|
|
108
|
+
|
|
109
|
+
beforeConnect() {
|
|
110
|
+
const icon = this.$props.icon;
|
|
111
|
+
this.icon = closest(this.$el, '.uk-nav-primary') ? `${icon}-large` : icon;
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
99
115
|
export const Slidenav = {
|
|
100
116
|
extends: IconComponent,
|
|
101
117
|
|
package/src/js/core/index.js
CHANGED
|
@@ -29,10 +29,12 @@ export { default as Video } from './video';
|
|
|
29
29
|
// Icon components
|
|
30
30
|
export { Close } from './icon';
|
|
31
31
|
export { Spinner } from './icon';
|
|
32
|
+
export { NavParentIcon } from './icon';
|
|
32
33
|
export { Slidenav as SlidenavNext } from './icon';
|
|
33
34
|
export { Slidenav as SlidenavPrevious } from './icon';
|
|
34
35
|
export { Search as SearchIcon } from './icon';
|
|
35
36
|
export { IconComponent as Marker } from './icon';
|
|
37
|
+
export { IconComponent as NavbarParentIcon } from './icon';
|
|
36
38
|
export { IconComponent as NavbarToggleIcon } from './icon';
|
|
37
39
|
export { IconComponent as OverlayIcon } from './icon';
|
|
38
40
|
export { IconComponent as PaginationNext } from './icon';
|
package/src/js/core/leader.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Class from '../mixin/class';
|
|
2
2
|
import Media from '../mixin/media';
|
|
3
|
-
import { attr,
|
|
3
|
+
import { attr, css, toggleClass, unwrap, wrapInner } from 'uikit-util';
|
|
4
4
|
import Resize from '../mixin/resize';
|
|
5
5
|
|
|
6
6
|
export default {
|
|
@@ -19,7 +19,7 @@ export default {
|
|
|
19
19
|
|
|
20
20
|
computed: {
|
|
21
21
|
fill({ fill }) {
|
|
22
|
-
return fill ||
|
|
22
|
+
return fill || css(this.$el, '--uk-leader-fill-content');
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
|