uikit 3.17.12-dev.f1425d280 → 3.18.1-dev.0856bd8a6
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 +31 -0
- package/dist/css/uikit-core-rtl.css +577 -504
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +577 -504
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +600 -527
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +600 -527
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +2 -4
- 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 +96 -60
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +96 -60
- 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 +11 -6
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +8 -3
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +735 -37
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +8 -3
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +792 -129
- 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 +2 -8
- 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 +299 -273
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +9 -4
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +505 -365
- package/dist/js/uikit.min.js +1 -1
- package/package.json +3 -3
- package/src/images/components/navbar-toggle-icon.svg +1 -1
- package/src/images/icons/arrow-up-right.svg +4 -0
- package/src/images/icons/git-branch.svg +4 -4
- package/src/images/icons/git-fork.svg +4 -4
- package/src/images/icons/link-external.svg +5 -0
- package/src/images/icons/signal.svg +3 -0
- package/src/images/icons/telegram.svg +3 -0
- package/src/images/icons/threads.svg +3 -0
- package/src/images/icons/x.svg +3 -0
- package/src/js/components/countdown.js +1 -3
- package/src/js/components/internal/slider-preload.js +6 -0
- package/src/js/components/lightbox-panel.js +2 -6
- package/src/js/components/parallax.js +1 -20
- package/src/js/components/slider.js +38 -18
- package/src/js/components/slideshow.js +14 -46
- package/src/js/components/sortable.js +7 -6
- package/src/js/components/tooltip.js +1 -7
- package/src/js/core/accordion.js +1 -1
- package/src/js/core/drop.js +3 -5
- package/src/js/core/dropnav.js +24 -20
- package/src/js/core/height-match.js +7 -3
- package/src/js/core/height-placeholder.js +32 -0
- package/src/js/core/icon.js +12 -5
- package/src/js/core/index.js +2 -0
- package/src/js/core/inverse.js +103 -0
- package/src/js/core/modal.js +13 -0
- package/src/js/core/navbar.js +32 -172
- package/src/js/core/responsive.js +2 -29
- package/src/js/core/sticky.js +45 -29
- package/src/js/core/video.js +5 -1
- package/src/js/mixin/modal.js +1 -1
- package/src/js/mixin/parallax.js +19 -0
- package/src/js/mixin/slider-autoplay.js +1 -3
- package/src/js/mixin/slider-drag.js +22 -19
- package/src/js/mixin/slider-nav.js +10 -1
- package/src/js/mixin/slider-parallax.js +138 -0
- package/src/js/mixin/slider-reactive.js +1 -1
- package/src/js/mixin/slider.js +25 -3
- package/src/js/util/animation.js +14 -14
- package/src/js/util/dom.js +2 -2
- package/src/js/util/mouse.js +8 -11
- package/src/js/util/scroll.js +58 -0
- package/src/js/util/selector.js +4 -2
- package/src/js/util/style.js +3 -3
- package/src/js/util/viewport.js +8 -4
- package/src/less/components/align.less +2 -2
- package/src/less/components/animation.less +2 -2
- package/src/less/components/article.less +2 -2
- package/src/less/components/base.less +3 -3
- package/src/less/components/card.less +13 -6
- package/src/less/components/column.less +3 -3
- package/src/less/components/container.less +3 -3
- package/src/less/components/divider.less +2 -2
- package/src/less/components/dropbar.less +1 -1
- package/src/less/components/dropdown.less +1 -1
- package/src/less/components/dropnav.less +1 -1
- package/src/less/components/form.less +1 -1
- package/src/less/components/grid.less +3 -3
- package/src/less/components/height.less +1 -1
- package/src/less/components/icon.less +3 -3
- package/src/less/components/inverse.less +12 -0
- package/src/less/components/link.less +1 -1
- package/src/less/components/modal.less +3 -3
- package/src/less/components/nav.less +66 -0
- package/src/less/components/navbar.less +7 -11
- package/src/less/components/overlay.less +5 -0
- package/src/less/components/position.less +7 -7
- package/src/less/components/section.less +6 -5
- package/src/less/components/sticky.less +1 -1
- package/src/less/components/svg.less +3 -3
- package/src/less/components/tile.less +10 -0
- package/src/less/components/transition.less +9 -9
- package/src/less/components/utility.less +4 -4
- package/src/less/components/width.less +7 -7
- package/src/less/theme/alert.less +1 -1
- package/src/less/theme/align.less +1 -1
- package/src/less/theme/animation.less +1 -1
- package/src/less/theme/article.less +1 -1
- package/src/less/theme/background.less +1 -1
- package/src/less/theme/badge.less +1 -1
- package/src/less/theme/base.less +1 -1
- package/src/less/theme/breadcrumb.less +1 -1
- package/src/less/theme/button.less +1 -1
- package/src/less/theme/card.less +1 -1
- package/src/less/theme/close.less +1 -1
- package/src/less/theme/column.less +1 -1
- package/src/less/theme/comment.less +1 -1
- package/src/less/theme/container.less +1 -1
- package/src/less/theme/description-list.less +1 -1
- package/src/less/theme/divider.less +1 -1
- package/src/less/theme/dotnav.less +1 -1
- package/src/less/theme/drop.less +1 -1
- package/src/less/theme/dropbar.less +1 -1
- package/src/less/theme/dropdown.less +1 -1
- package/src/less/theme/form-range.less +1 -1
- package/src/less/theme/height.less +1 -1
- package/src/less/theme/icon.less +1 -1
- package/src/less/theme/iconnav.less +1 -1
- package/src/less/theme/inverse.less +1 -1
- package/src/less/theme/label.less +1 -1
- package/src/less/theme/leader.less +1 -1
- package/src/less/theme/lightbox.less +1 -1
- package/src/less/theme/margin.less +1 -1
- package/src/less/theme/modal.less +1 -1
- package/src/less/theme/nav.less +1 -1
- package/src/less/theme/navbar.less +3 -3
- package/src/less/theme/notification.less +1 -1
- package/src/less/theme/offcanvas.less +1 -1
- package/src/less/theme/overlay.less +1 -1
- package/src/less/theme/padding.less +1 -1
- package/src/less/theme/pagination.less +1 -1
- package/src/less/theme/position.less +1 -1
- package/src/less/theme/search.less +1 -1
- package/src/less/theme/spinner.less +1 -1
- package/src/less/theme/sticky.less +1 -1
- package/src/less/theme/tab.less +2 -2
- package/src/less/theme/table.less +1 -1
- package/src/less/theme/thumbnav.less +1 -1
- package/src/less/theme/tile.less +1 -1
- package/src/less/theme/tooltip.less +1 -1
- package/src/less/theme/totop.less +1 -1
- package/src/less/theme/transition.less +1 -1
- package/src/less/theme/utility.less +1 -1
- package/src/less/theme/variables.less +1 -1
- package/src/less/theme/width.less +1 -1
- package/src/less/uikit.less +1 -1
- package/src/scss/components/align.scss +2 -2
- package/src/scss/components/animation.scss +2 -2
- package/src/scss/components/base.scss +2 -2
- package/src/scss/components/card.scss +12 -6
- package/src/scss/components/column.scss +3 -3
- package/src/scss/components/container.scss +3 -3
- package/src/scss/components/divider.scss +2 -2
- package/src/scss/components/dropnav.scss +1 -1
- package/src/scss/components/form.scss +1 -1
- package/src/scss/components/grid.scss +3 -3
- package/src/scss/components/height.scss +1 -1
- package/src/scss/components/icon.scss +3 -3
- package/src/scss/components/inverse.scss +12 -0
- package/src/scss/components/modal.scss +3 -3
- package/src/scss/components/nav.scss +63 -0
- package/src/scss/components/navbar.scss +5 -8
- package/src/scss/components/overlay.scss +4 -0
- package/src/scss/components/position.scss +7 -7
- package/src/scss/components/section.scss +6 -5
- package/src/scss/components/sticky.scss +1 -1
- package/src/scss/components/svg.scss +3 -3
- package/src/scss/components/tile.scss +8 -0
- package/src/scss/components/transition.scss +9 -9
- package/src/scss/components/utility.scss +4 -4
- package/src/scss/components/width.scss +7 -7
- package/src/scss/mixins-theme.scss +10 -7
- package/src/scss/mixins.scss +7 -4
- package/src/scss/theme/alert.scss +1 -0
- package/src/scss/theme/align.scss +1 -1
- package/src/scss/theme/animation.scss +1 -1
- package/src/scss/theme/article.scss +1 -1
- package/src/scss/theme/background.scss +1 -1
- package/src/scss/theme/badge.scss +1 -1
- package/src/scss/theme/base.scss +1 -1
- package/src/scss/theme/breadcrumb.scss +1 -1
- package/src/scss/theme/button.scss +1 -1
- package/src/scss/theme/card.scss +1 -0
- package/src/scss/theme/close.scss +1 -1
- package/src/scss/theme/column.scss +1 -1
- package/src/scss/theme/comment.scss +1 -1
- package/src/scss/theme/container.scss +1 -1
- package/src/scss/theme/description-list.scss +1 -1
- package/src/scss/theme/divider.scss +1 -1
- package/src/scss/theme/dotnav.scss +1 -0
- package/src/scss/theme/drop.scss +1 -1
- package/src/scss/theme/dropbar.scss +1 -1
- package/src/scss/theme/dropdown.scss +1 -1
- package/src/scss/theme/form-range.scss +1 -1
- package/src/scss/theme/height.scss +1 -1
- package/src/scss/theme/icon.scss +1 -1
- package/src/scss/theme/iconnav.scss +1 -1
- package/src/scss/theme/inverse.scss +1 -1
- package/src/scss/theme/label.scss +1 -1
- package/src/scss/theme/leader.scss +1 -1
- package/src/scss/theme/lightbox.scss +1 -1
- package/src/scss/theme/margin.scss +1 -1
- package/src/scss/theme/modal.scss +1 -0
- package/src/scss/theme/nav.scss +1 -1
- package/src/scss/theme/navbar.scss +1 -1
- package/src/scss/theme/notification.scss +1 -1
- package/src/scss/theme/offcanvas.scss +1 -1
- package/src/scss/theme/overlay.scss +1 -1
- package/src/scss/theme/padding.scss +1 -1
- package/src/scss/theme/pagination.scss +1 -1
- package/src/scss/theme/position.scss +1 -1
- package/src/scss/theme/search.scss +1 -1
- package/src/scss/theme/spinner.scss +1 -1
- package/src/scss/theme/sticky.scss +1 -1
- package/src/scss/theme/tab.scss +1 -1
- package/src/scss/theme/table.scss +1 -0
- package/src/scss/theme/thumbnav.scss +1 -1
- package/src/scss/theme/tile.scss +1 -1
- package/src/scss/theme/tooltip.scss +1 -1
- package/src/scss/theme/totop.scss +1 -1
- package/src/scss/theme/transition.scss +1 -1
- package/src/scss/theme/utility.scss +1 -1
- package/src/scss/theme/variables.scss +1 -1
- package/src/scss/theme/width.scss +1 -1
- package/src/scss/uikit.scss +1 -1
- package/src/scss/variables-theme.scss +20 -5
- package/src/scss/variables.scss +20 -5
- package/tests/height.html +58 -1
- package/tests/icon.html +38 -10
- package/tests/nav.html +42 -0
- package/tests/navbar.html +1 -1
- package/tests/offcanvas.html +8 -8
- package/tests/search.html +300 -202
- package/tests/slider.html +58 -0
- package/tests/slideshow.html +66 -0
- package/tests/sticky-navbar.html +381 -23
- package/src/images/icons/pagekit.svg +0 -3
- package/src/js/mixin/internal/scroll.js +0 -39
package/dist/js/uikit-core.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! UIkit 3.
|
|
1
|
+
/*! UIkit 3.18.1-dev.0856bd8a6 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */
|
|
2
2
|
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
function removeClasses
|
|
248
|
+
function removeClasses(element, clsRegex) {
|
|
249
249
|
clsRegex = new RegExp(clsRegex);
|
|
250
250
|
for (const node of toNodes(element)) {
|
|
251
251
|
node.classList.remove(...toArray(node.classList).filter((cls) => cls.match(clsRegex)));
|
|
@@ -402,7 +402,9 @@
|
|
|
402
402
|
selector += `${selector ? "," : ""}${domPath(ctx)} ${sel}`;
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
|
-
context
|
|
405
|
+
if (!isDocument(context)) {
|
|
406
|
+
context = context.ownerDocument;
|
|
407
|
+
}
|
|
406
408
|
}
|
|
407
409
|
try {
|
|
408
410
|
return context[queryFn](selector);
|
|
@@ -410,7 +412,7 @@
|
|
|
410
412
|
return null;
|
|
411
413
|
}
|
|
412
414
|
}
|
|
413
|
-
const selectorRe = /.*?[^\\](?:,|$)/g;
|
|
415
|
+
const selectorRe = /.*?[^\\](?![^(]*\))(?:,|$)/g;
|
|
414
416
|
const splitSelector = memoize(
|
|
415
417
|
(selector) => selector.match(selectorRe).map((selector2) => selector2.replace(/,$/, "").trim())
|
|
416
418
|
);
|
|
@@ -576,8 +578,9 @@
|
|
|
576
578
|
}
|
|
577
579
|
return props;
|
|
578
580
|
} else if (isObject(property)) {
|
|
579
|
-
|
|
580
|
-
|
|
581
|
+
for (const prop in property) {
|
|
582
|
+
css(element2, prop, property[prop], value);
|
|
583
|
+
}
|
|
581
584
|
}
|
|
582
585
|
}
|
|
583
586
|
return elements[0];
|
|
@@ -601,8 +604,8 @@
|
|
|
601
604
|
}
|
|
602
605
|
|
|
603
606
|
const clsTransition = "uk-transition";
|
|
604
|
-
const
|
|
605
|
-
const
|
|
607
|
+
const transitionEnd = "transitionend";
|
|
608
|
+
const transitionCanceled = "transitioncanceled";
|
|
606
609
|
function transition$1(element, props, duration = 400, timing = "linear") {
|
|
607
610
|
duration = Math.round(duration);
|
|
608
611
|
return Promise.all(
|
|
@@ -614,10 +617,10 @@
|
|
|
614
617
|
css(element2, name, value);
|
|
615
618
|
}
|
|
616
619
|
}
|
|
617
|
-
const timer = setTimeout(() => trigger(element2,
|
|
620
|
+
const timer = setTimeout(() => trigger(element2, transitionEnd), duration);
|
|
618
621
|
once(
|
|
619
622
|
element2,
|
|
620
|
-
[
|
|
623
|
+
[transitionEnd, transitionCanceled],
|
|
621
624
|
({ type }) => {
|
|
622
625
|
clearTimeout(timer);
|
|
623
626
|
removeClass(element2, clsTransition);
|
|
@@ -626,7 +629,7 @@
|
|
|
626
629
|
transitionDuration: "",
|
|
627
630
|
transitionTimingFunction: ""
|
|
628
631
|
});
|
|
629
|
-
type ===
|
|
632
|
+
type === transitionCanceled ? reject() : resolve(element2);
|
|
630
633
|
},
|
|
631
634
|
{ self: true }
|
|
632
635
|
);
|
|
@@ -644,11 +647,11 @@
|
|
|
644
647
|
const Transition = {
|
|
645
648
|
start: transition$1,
|
|
646
649
|
async stop(element) {
|
|
647
|
-
trigger(element,
|
|
650
|
+
trigger(element, transitionEnd);
|
|
648
651
|
await Promise.resolve();
|
|
649
652
|
},
|
|
650
653
|
async cancel(element) {
|
|
651
|
-
trigger(element,
|
|
654
|
+
trigger(element, transitionCanceled);
|
|
652
655
|
await Promise.resolve();
|
|
653
656
|
},
|
|
654
657
|
inProgress(element) {
|
|
@@ -656,22 +659,22 @@
|
|
|
656
659
|
}
|
|
657
660
|
};
|
|
658
661
|
const animationPrefix = "uk-animation-";
|
|
659
|
-
const
|
|
660
|
-
const
|
|
662
|
+
const animationEnd = "animationend";
|
|
663
|
+
const animationCanceled = "animationcanceled";
|
|
661
664
|
function animate$2(element, animation, duration = 200, origin, out) {
|
|
662
665
|
return Promise.all(
|
|
663
666
|
toNodes(element).map(
|
|
664
667
|
(element2) => new Promise((resolve, reject) => {
|
|
665
|
-
trigger(element2,
|
|
666
|
-
const timer = setTimeout(() => trigger(element2,
|
|
668
|
+
trigger(element2, animationCanceled);
|
|
669
|
+
const timer = setTimeout(() => trigger(element2, animationEnd), duration);
|
|
667
670
|
once(
|
|
668
671
|
element2,
|
|
669
|
-
[
|
|
672
|
+
[animationEnd, animationCanceled],
|
|
670
673
|
({ type }) => {
|
|
671
674
|
clearTimeout(timer);
|
|
672
|
-
type ===
|
|
675
|
+
type === animationCanceled ? reject() : resolve(element2);
|
|
673
676
|
css(element2, "animationDuration", "");
|
|
674
|
-
removeClasses
|
|
677
|
+
removeClasses(element2, `${animationPrefix}\\S*`);
|
|
675
678
|
},
|
|
676
679
|
{ self: true }
|
|
677
680
|
);
|
|
@@ -695,7 +698,7 @@
|
|
|
695
698
|
return inProgressRe.test(attr(element, "class"));
|
|
696
699
|
},
|
|
697
700
|
cancel(element) {
|
|
698
|
-
trigger(element,
|
|
701
|
+
trigger(element, animationCanceled);
|
|
699
702
|
}
|
|
700
703
|
};
|
|
701
704
|
|
|
@@ -737,8 +740,8 @@
|
|
|
737
740
|
}
|
|
738
741
|
function wrapAll(element, structure) {
|
|
739
742
|
structure = toNode(before(element, structure));
|
|
740
|
-
while (structure.
|
|
741
|
-
structure = structure.
|
|
743
|
+
while (structure.firstElementChild) {
|
|
744
|
+
structure = structure.firstElementChild;
|
|
742
745
|
}
|
|
743
746
|
append(structure, element);
|
|
744
747
|
return structure;
|
|
@@ -1005,10 +1008,7 @@
|
|
|
1005
1008
|
return ~index && array.splice(index, 1);
|
|
1006
1009
|
}
|
|
1007
1010
|
|
|
1008
|
-
|
|
1009
|
-
}
|
|
1010
|
-
MouseTracker.prototype = {
|
|
1011
|
-
positions: [],
|
|
1011
|
+
class MouseTracker {
|
|
1012
1012
|
init() {
|
|
1013
1013
|
this.positions = [];
|
|
1014
1014
|
let position;
|
|
@@ -1022,17 +1022,17 @@
|
|
|
1022
1022
|
this.positions.shift();
|
|
1023
1023
|
}
|
|
1024
1024
|
}, 50);
|
|
1025
|
-
}
|
|
1025
|
+
}
|
|
1026
1026
|
cancel() {
|
|
1027
1027
|
var _a;
|
|
1028
1028
|
(_a = this.unbind) == null ? void 0 : _a.call(this);
|
|
1029
1029
|
clearInterval(this.interval);
|
|
1030
|
-
}
|
|
1030
|
+
}
|
|
1031
1031
|
movesTo(target) {
|
|
1032
|
-
if (this.positions.length < 2) {
|
|
1032
|
+
if (!this.positions || this.positions.length < 2) {
|
|
1033
1033
|
return false;
|
|
1034
1034
|
}
|
|
1035
|
-
const p = target
|
|
1035
|
+
const p = dimensions(target);
|
|
1036
1036
|
const { left, right, top, bottom } = p;
|
|
1037
1037
|
const [prevPosition] = this.positions;
|
|
1038
1038
|
const position = last(this.positions);
|
|
@@ -1055,7 +1055,7 @@
|
|
|
1055
1055
|
return intersection && pointInRect(intersection, p);
|
|
1056
1056
|
});
|
|
1057
1057
|
}
|
|
1058
|
-
}
|
|
1058
|
+
}
|
|
1059
1059
|
function intersect([{ x: x1, y: y1 }, { x: x2, y: y2 }], [{ x: x3, y: y3 }, { x: x4, y: y4 }]) {
|
|
1060
1060
|
const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);
|
|
1061
1061
|
if (denominator === 0) {
|
|
@@ -1268,7 +1268,7 @@
|
|
|
1268
1268
|
const elementOffsetTop = offsetPosition(element)[0] - offsetPosition(scrollElement)[0];
|
|
1269
1269
|
const start = Math.max(0, elementOffsetTop - viewportHeight + startOffset);
|
|
1270
1270
|
const end = Math.min(maxScroll, elementOffsetTop + element.offsetHeight - endOffset);
|
|
1271
|
-
return clamp((scrollTop - start) / (end - start));
|
|
1271
|
+
return start < end ? clamp((scrollTop - start) / (end - start)) : 1;
|
|
1272
1272
|
}
|
|
1273
1273
|
function scrollParents(element, scrollable = false, props = []) {
|
|
1274
1274
|
const scrollEl = scrollingElement(element);
|
|
@@ -1308,7 +1308,7 @@
|
|
|
1308
1308
|
["height", "y", "top", "bottom"]
|
|
1309
1309
|
]) {
|
|
1310
1310
|
if (isWindow(viewportElement)) {
|
|
1311
|
-
viewportElement =
|
|
1311
|
+
viewportElement = scrollElement.ownerDocument;
|
|
1312
1312
|
} else {
|
|
1313
1313
|
rect[start] += toFloat(css(viewportElement, `border-${start}-width`));
|
|
1314
1314
|
}
|
|
@@ -1319,8 +1319,10 @@
|
|
|
1319
1319
|
return rect;
|
|
1320
1320
|
}
|
|
1321
1321
|
function getCoveringElement(target) {
|
|
1322
|
-
|
|
1323
|
-
|
|
1322
|
+
const { left, width, top } = dimensions(target);
|
|
1323
|
+
return target.ownerDocument.elementsFromPoint(left + width / 2, top).find(
|
|
1324
|
+
(el) => !el.contains(target) && // If e.g. Offcanvas is not yet closed
|
|
1325
|
+
!hasClass(el, "uk-togglable-leave") && (hasPosition(el, "fixed") && zIndex(
|
|
1324
1326
|
parents(target).reverse().find((parent2) => !parent2.contains(el) && !hasPosition(parent2, "static"))
|
|
1325
1327
|
) < zIndex(el) || hasPosition(el, "sticky") && parent(el).contains(target))
|
|
1326
1328
|
);
|
|
@@ -1628,7 +1630,7 @@
|
|
|
1628
1630
|
remove: remove$1,
|
|
1629
1631
|
removeAttr: removeAttr,
|
|
1630
1632
|
removeClass: removeClass,
|
|
1631
|
-
removeClasses: removeClasses
|
|
1633
|
+
removeClasses: removeClasses,
|
|
1632
1634
|
replaceClass: replaceClass,
|
|
1633
1635
|
scrollIntoView: scrollIntoView,
|
|
1634
1636
|
scrollParent: scrollParent,
|
|
@@ -2147,7 +2149,7 @@
|
|
|
2147
2149
|
};
|
|
2148
2150
|
App.util = util;
|
|
2149
2151
|
App.options = {};
|
|
2150
|
-
App.version = "3.
|
|
2152
|
+
App.version = "3.18.1-dev.0856bd8a6";
|
|
2151
2153
|
|
|
2152
2154
|
const PREFIX = "uk-";
|
|
2153
2155
|
const DATA = "__uikit__";
|
|
@@ -2831,7 +2833,7 @@
|
|
|
2831
2833
|
let frame;
|
|
2832
2834
|
(function scroll() {
|
|
2833
2835
|
frame = requestAnimationFrame(() => {
|
|
2834
|
-
const { top } = el
|
|
2836
|
+
const { top } = dimensions(el);
|
|
2835
2837
|
if (top < 0) {
|
|
2836
2838
|
scrollElement.scrollTop += top;
|
|
2837
2839
|
}
|
|
@@ -2915,7 +2917,7 @@
|
|
|
2915
2917
|
intersection({
|
|
2916
2918
|
filter: ({ $el, autoplay }) => autoplay && isVideo($el),
|
|
2917
2919
|
handler([{ isIntersecting }]) {
|
|
2918
|
-
if (isIntersecting) {
|
|
2920
|
+
if (isIntersecting || this.$el.webkitDisplayingFullscreen || document.fullscreenElement === this.$el) {
|
|
2919
2921
|
play(this.$el);
|
|
2920
2922
|
} else {
|
|
2921
2923
|
pause(this.$el);
|
|
@@ -3007,39 +3009,6 @@
|
|
|
3007
3009
|
}
|
|
3008
3010
|
};
|
|
3009
3011
|
|
|
3010
|
-
let prevented;
|
|
3011
|
-
function preventBackgroundScroll(el) {
|
|
3012
|
-
const off = on(
|
|
3013
|
-
el,
|
|
3014
|
-
"touchmove",
|
|
3015
|
-
(e) => {
|
|
3016
|
-
if (e.targetTouches.length !== 1 || matches(e.target, 'input[type="range"')) {
|
|
3017
|
-
return;
|
|
3018
|
-
}
|
|
3019
|
-
let { scrollHeight, clientHeight, scrollWidth, clientWidth } = scrollParent(e.target);
|
|
3020
|
-
if (e.cancelable && clientHeight >= scrollHeight && clientWidth >= scrollWidth) {
|
|
3021
|
-
e.preventDefault();
|
|
3022
|
-
}
|
|
3023
|
-
},
|
|
3024
|
-
{ passive: false }
|
|
3025
|
-
);
|
|
3026
|
-
if (prevented) {
|
|
3027
|
-
return off;
|
|
3028
|
-
}
|
|
3029
|
-
prevented = true;
|
|
3030
|
-
const { scrollingElement } = document;
|
|
3031
|
-
css(scrollingElement, {
|
|
3032
|
-
overflowY: CSS.supports("overflow", "clip") ? "clip" : "hidden",
|
|
3033
|
-
touchAction: "none",
|
|
3034
|
-
paddingRight: width(window) - scrollingElement.clientWidth || ""
|
|
3035
|
-
});
|
|
3036
|
-
return () => {
|
|
3037
|
-
prevented = false;
|
|
3038
|
-
off();
|
|
3039
|
-
css(scrollingElement, { overflowY: "", touchAction: "", paddingRight: "" });
|
|
3040
|
-
};
|
|
3041
|
-
}
|
|
3042
|
-
|
|
3043
3012
|
var Position = {
|
|
3044
3013
|
props: {
|
|
3045
3014
|
pos: String,
|
|
@@ -3116,6 +3085,53 @@
|
|
|
3116
3085
|
};
|
|
3117
3086
|
}
|
|
3118
3087
|
|
|
3088
|
+
let prevented;
|
|
3089
|
+
function preventBackgroundScroll(el) {
|
|
3090
|
+
const off = on(el, "touchstart", (e) => {
|
|
3091
|
+
if (e.targetTouches.length !== 1 || matches(e.target, 'input[type="range"')) {
|
|
3092
|
+
return;
|
|
3093
|
+
}
|
|
3094
|
+
let prev = getEventPos(e).y;
|
|
3095
|
+
const offMove = on(
|
|
3096
|
+
el,
|
|
3097
|
+
"touchmove",
|
|
3098
|
+
(e2) => {
|
|
3099
|
+
const pos = getEventPos(e2).y;
|
|
3100
|
+
if (pos === prev) {
|
|
3101
|
+
return;
|
|
3102
|
+
}
|
|
3103
|
+
prev = pos;
|
|
3104
|
+
if (!scrollParents(e2.target).some((scrollParent) => {
|
|
3105
|
+
if (!el.contains(scrollParent)) {
|
|
3106
|
+
return false;
|
|
3107
|
+
}
|
|
3108
|
+
let { scrollHeight, clientHeight } = scrollParent;
|
|
3109
|
+
return clientHeight < scrollHeight;
|
|
3110
|
+
})) {
|
|
3111
|
+
e2.preventDefault();
|
|
3112
|
+
}
|
|
3113
|
+
},
|
|
3114
|
+
{ passive: false }
|
|
3115
|
+
);
|
|
3116
|
+
once(el, "scroll touchend touchcanel", offMove, { capture: true });
|
|
3117
|
+
});
|
|
3118
|
+
if (prevented) {
|
|
3119
|
+
return off;
|
|
3120
|
+
}
|
|
3121
|
+
prevented = true;
|
|
3122
|
+
const { scrollingElement } = document;
|
|
3123
|
+
css(scrollingElement, {
|
|
3124
|
+
overflowY: CSS.supports("overflow", "clip") ? "clip" : "hidden",
|
|
3125
|
+
touchAction: "none",
|
|
3126
|
+
paddingRight: width(window) - scrollingElement.clientWidth || ""
|
|
3127
|
+
});
|
|
3128
|
+
return () => {
|
|
3129
|
+
prevented = false;
|
|
3130
|
+
off();
|
|
3131
|
+
css(scrollingElement, { overflowY: "", touchAction: "", paddingRight: "" });
|
|
3132
|
+
};
|
|
3133
|
+
}
|
|
3134
|
+
|
|
3119
3135
|
let active$1;
|
|
3120
3136
|
var drop = {
|
|
3121
3137
|
mixins: [Container, Position, Togglable],
|
|
@@ -3315,9 +3331,7 @@
|
|
|
3315
3331
|
{
|
|
3316
3332
|
name: "beforehide",
|
|
3317
3333
|
self: true,
|
|
3318
|
-
handler
|
|
3319
|
-
this.clearTimers();
|
|
3320
|
-
}
|
|
3334
|
+
handler: "clearTimers"
|
|
3321
3335
|
},
|
|
3322
3336
|
{
|
|
3323
3337
|
name: "hide",
|
|
@@ -3541,8 +3555,12 @@
|
|
|
3541
3555
|
dropbar = this._dropbar || query(dropbar, this.$el) || $(`+ .${this.clsDropbar}`, this.$el);
|
|
3542
3556
|
return dropbar ? dropbar : this._dropbar = $("<div></div>");
|
|
3543
3557
|
},
|
|
3544
|
-
dropbarOffset() {
|
|
3545
|
-
|
|
3558
|
+
dropbarOffset({ target, targetY }, $el) {
|
|
3559
|
+
const { offsetTop, offsetHeight } = query(targetY || target || $el, $el);
|
|
3560
|
+
return offsetTop + offsetHeight + this.dropbarPositionOffset;
|
|
3561
|
+
},
|
|
3562
|
+
dropbarPositionOffset(_, $el) {
|
|
3563
|
+
return toPx(css($el, "--uk-position-offset"));
|
|
3546
3564
|
},
|
|
3547
3565
|
dropContainer(_, $el) {
|
|
3548
3566
|
return this.container || $el;
|
|
@@ -3701,17 +3719,12 @@
|
|
|
3701
3719
|
}
|
|
3702
3720
|
const drop = this.getDropdown(target);
|
|
3703
3721
|
const adjustHeight = () => {
|
|
3704
|
-
const
|
|
3705
|
-
|
|
3706
|
-
const maxBottom = Math.max(...targetOffsets.map(({ bottom }) => bottom));
|
|
3707
|
-
const dropbarOffset = offset(this.dropbar);
|
|
3708
|
-
css(
|
|
3709
|
-
this.dropbar,
|
|
3710
|
-
"top",
|
|
3711
|
-
this.dropbar.offsetTop - (dropbarOffset.top - minTop) - this.dropbarOffset
|
|
3722
|
+
const maxBottom = Math.max(
|
|
3723
|
+
...parents(target, `.${this.clsDrop}`).concat(target).map((el) => offset(el).bottom)
|
|
3712
3724
|
);
|
|
3725
|
+
css(this.dropbar, "top", this.dropbarOffset);
|
|
3713
3726
|
this.transitionTo(
|
|
3714
|
-
maxBottom -
|
|
3727
|
+
maxBottom - offset(this.dropbar).top + toFloat(css(target, "marginBottom")),
|
|
3715
3728
|
target
|
|
3716
3729
|
);
|
|
3717
3730
|
};
|
|
@@ -3765,17 +3778,21 @@
|
|
|
3765
3778
|
const oldHeight = height(dropbar);
|
|
3766
3779
|
el = oldHeight < newHeight && el;
|
|
3767
3780
|
await Transition.cancel([el, dropbar]);
|
|
3781
|
+
if (el) {
|
|
3782
|
+
const diff = offset(el).top - offset(dropbar).top - oldHeight;
|
|
3783
|
+
if (diff > 0) {
|
|
3784
|
+
css(el, "transitionDelay", `${diff / newHeight * this.duration}ms`);
|
|
3785
|
+
}
|
|
3786
|
+
}
|
|
3768
3787
|
css(el, "clipPath", `polygon(0 0,100% 0,100% ${oldHeight}px,0 ${oldHeight}px)`);
|
|
3769
3788
|
height(dropbar, oldHeight);
|
|
3770
3789
|
await Promise.all([
|
|
3771
3790
|
Transition.start(dropbar, { height: newHeight }, this.duration),
|
|
3772
3791
|
Transition.start(
|
|
3773
3792
|
el,
|
|
3774
|
-
{
|
|
3775
|
-
clipPath: `polygon(0 0,100% 0,100% ${newHeight}px,0 ${newHeight}px)`
|
|
3776
|
-
},
|
|
3793
|
+
{ clipPath: `polygon(0 0,100% 0,100% ${newHeight}px,0 ${newHeight}px)` },
|
|
3777
3794
|
this.duration
|
|
3778
|
-
).finally(() => css(el, { clipPath: "" }))
|
|
3795
|
+
).finally(() => css(el, { clipPath: "", transitionDelay: "" }))
|
|
3779
3796
|
]).catch(noop);
|
|
3780
3797
|
},
|
|
3781
3798
|
getDropdown(el) {
|
|
@@ -4160,7 +4177,9 @@
|
|
|
4160
4177
|
let heights = elements.map(getHeight);
|
|
4161
4178
|
const max = Math.max(...heights);
|
|
4162
4179
|
return {
|
|
4163
|
-
heights: elements.map(
|
|
4180
|
+
heights: elements.map(
|
|
4181
|
+
(el, i) => heights[i].toFixed(2) === max.toFixed(2) ? "" : max - boxModelAdjust(el, "height", "content-box")
|
|
4182
|
+
),
|
|
4164
4183
|
elements
|
|
4165
4184
|
};
|
|
4166
4185
|
}
|
|
@@ -4170,11 +4189,34 @@
|
|
|
4170
4189
|
css(element, "display", "block", "important");
|
|
4171
4190
|
}
|
|
4172
4191
|
css(element, "minHeight", "");
|
|
4173
|
-
const height =
|
|
4192
|
+
const height = element.offsetHeight;
|
|
4174
4193
|
css(element, style);
|
|
4175
4194
|
return height;
|
|
4176
4195
|
}
|
|
4177
4196
|
|
|
4197
|
+
var heightPlaceholder = {
|
|
4198
|
+
args: "target",
|
|
4199
|
+
props: {
|
|
4200
|
+
target: String
|
|
4201
|
+
},
|
|
4202
|
+
data: {
|
|
4203
|
+
target: ""
|
|
4204
|
+
},
|
|
4205
|
+
computed: {
|
|
4206
|
+
target: ({ target }, $el) => query(target, $el)
|
|
4207
|
+
},
|
|
4208
|
+
observe: resize({ target: ({ target }) => target }),
|
|
4209
|
+
update: {
|
|
4210
|
+
read() {
|
|
4211
|
+
return { height: height(this.target) };
|
|
4212
|
+
},
|
|
4213
|
+
write({ height: height2 }) {
|
|
4214
|
+
css(this.$el, { minHeight: height2 });
|
|
4215
|
+
},
|
|
4216
|
+
events: ["resize"]
|
|
4217
|
+
}
|
|
4218
|
+
};
|
|
4219
|
+
|
|
4178
4220
|
var heightViewport = {
|
|
4179
4221
|
props: {
|
|
4180
4222
|
expand: Boolean,
|
|
@@ -4254,7 +4296,7 @@
|
|
|
4254
4296
|
|
|
4255
4297
|
var navbarParentIcon = "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"><polyline fill=\"none\" stroke=\"#000\" stroke-width=\"1.1\" points=\"1 3.5 6 8.5 11 3.5\"/></svg>";
|
|
4256
4298
|
|
|
4257
|
-
var navbarToggleIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><style>.uk-navbar-toggle-animate svg>[class*="line-"]{transition:0.2s ease-in-out;transition-property:transform, opacity;transform-origin:center;opacity:1}.uk-navbar-toggle svg>.line-3{opacity:0}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-3{opacity:1}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-2{transform:rotate(45deg)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-3{transform:rotate(-45deg)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-1,.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-4{opacity:0}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-1{transform:translateY(6px) scaleX(0)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-4{transform:translateY(-6px) scaleX(0)}</style><rect class=\"line-1\" y=\"3\" width=\"20\" height=\"2\"/><rect class=\"line-2\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-3\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-4\" y=\"15\" width=\"20\" height=\"2\"/></svg>";
|
|
4299
|
+
var navbarToggleIcon = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><style>.uk-navbar-toggle-animate svg>[class*="line-"]{transition:0.2s ease-in-out;transition-property:transform, opacity;transform-origin:center;opacity:1}.uk-navbar-toggle-animate svg>.line-3{opacity:0}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-3{opacity:1}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-2{transform:rotate(45deg)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-3{transform:rotate(-45deg)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-1,.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-4{opacity:0}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-1{transform:translateY(6px) scaleX(0)}.uk-navbar-toggle-animate[aria-expanded="true"] svg>.line-4{transform:translateY(-6px) scaleX(0)}</style><rect class=\"line-1\" y=\"3\" width=\"20\" height=\"2\"/><rect class=\"line-2\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-3\" y=\"9\" width=\"20\" height=\"2\"/><rect class=\"line-4\" y=\"15\" width=\"20\" height=\"2\"/></svg>";
|
|
4258
4300
|
|
|
4259
4301
|
var overlayIcon = "<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"><rect x=\"19\" y=\"0\" width=\"1\" height=\"40\"/><rect x=\"0\" y=\"19\" width=\"40\" height=\"1\"/></svg>";
|
|
4260
4302
|
|
|
@@ -4382,6 +4424,7 @@
|
|
|
4382
4424
|
"search-icon": searchIcon,
|
|
4383
4425
|
"search-large": searchLarge,
|
|
4384
4426
|
"search-navbar": searchNavbar,
|
|
4427
|
+
"search-toggle-icon": searchIcon,
|
|
4385
4428
|
"slidenav-next": slidenavNext,
|
|
4386
4429
|
"slidenav-next-large": slidenavNextLarge,
|
|
4387
4430
|
"slidenav-previous": slidenavPrevious,
|
|
@@ -4428,11 +4471,12 @@
|
|
|
4428
4471
|
mixins: [I18n],
|
|
4429
4472
|
i18n: { toggle: "Open Search", submit: "Submit Search" },
|
|
4430
4473
|
beforeConnect() {
|
|
4431
|
-
|
|
4474
|
+
const isToggle = hasClass(this.$el, "uk-search-toggle") || hasClass(this.$el, "uk-navbar-toggle");
|
|
4475
|
+
this.icon = isToggle ? "search-toggle-icon" : hasClass(this.$el, "uk-search-icon") && closest(this.$el, ".uk-search-large") ? "search-large" : closest(this.$el, ".uk-search-navbar") ? "search-navbar" : this.$props.icon;
|
|
4432
4476
|
if (hasAttr(this.$el, "aria-label")) {
|
|
4433
4477
|
return;
|
|
4434
4478
|
}
|
|
4435
|
-
if (
|
|
4479
|
+
if (isToggle) {
|
|
4436
4480
|
const label = this.t("toggle");
|
|
4437
4481
|
attr(this.$el, "aria-label", label);
|
|
4438
4482
|
} else {
|
|
@@ -4526,7 +4570,9 @@
|
|
|
4526
4570
|
}
|
|
4527
4571
|
};
|
|
4528
4572
|
}
|
|
4573
|
+
const aliases = { twitter: "x" };
|
|
4529
4574
|
function getIcon(icon) {
|
|
4575
|
+
icon = aliases[icon] || icon;
|
|
4530
4576
|
if (!icons[icon]) {
|
|
4531
4577
|
return null;
|
|
4532
4578
|
}
|
|
@@ -4665,6 +4711,90 @@
|
|
|
4665
4711
|
return isTag(el, "img");
|
|
4666
4712
|
}
|
|
4667
4713
|
|
|
4714
|
+
var inverse = {
|
|
4715
|
+
props: {
|
|
4716
|
+
target: String,
|
|
4717
|
+
selActive: String
|
|
4718
|
+
},
|
|
4719
|
+
data: {
|
|
4720
|
+
target: false,
|
|
4721
|
+
selActive: false
|
|
4722
|
+
},
|
|
4723
|
+
computed: {
|
|
4724
|
+
target: ({ target }, $el) => target ? $$(target, $el) : [$el]
|
|
4725
|
+
},
|
|
4726
|
+
observe: [
|
|
4727
|
+
mutation({
|
|
4728
|
+
target: ({ target }) => target,
|
|
4729
|
+
options: { attributes: true, attributeFilter: ["class"], attributeOldValue: true }
|
|
4730
|
+
}),
|
|
4731
|
+
{
|
|
4732
|
+
target: ({ target }) => target,
|
|
4733
|
+
observe: (target, handler) => {
|
|
4734
|
+
const observer = observeResize([...target, document.documentElement], handler);
|
|
4735
|
+
const listener = [
|
|
4736
|
+
on(document, "scroll itemshown itemhidden", handler, {
|
|
4737
|
+
passive: true,
|
|
4738
|
+
capture: true
|
|
4739
|
+
}),
|
|
4740
|
+
on(document, "show hide transitionstart", (e) => {
|
|
4741
|
+
handler();
|
|
4742
|
+
return observer.observe(e.target);
|
|
4743
|
+
}),
|
|
4744
|
+
on(document, "shown hidden transitionend transitioncancel", (e) => {
|
|
4745
|
+
handler();
|
|
4746
|
+
return observer.unobserve(e.target);
|
|
4747
|
+
})
|
|
4748
|
+
];
|
|
4749
|
+
return {
|
|
4750
|
+
disconnect() {
|
|
4751
|
+
observer.disconnect();
|
|
4752
|
+
listener.map((off) => off());
|
|
4753
|
+
}
|
|
4754
|
+
};
|
|
4755
|
+
},
|
|
4756
|
+
handler() {
|
|
4757
|
+
this.$emit();
|
|
4758
|
+
}
|
|
4759
|
+
}
|
|
4760
|
+
],
|
|
4761
|
+
update: {
|
|
4762
|
+
read() {
|
|
4763
|
+
for (const target of this.target) {
|
|
4764
|
+
replaceClass(
|
|
4765
|
+
target,
|
|
4766
|
+
"uk-light,uk-dark",
|
|
4767
|
+
!this.selActive || matches(target, this.selActive) ? findTargetColor(target) : ""
|
|
4768
|
+
);
|
|
4769
|
+
}
|
|
4770
|
+
}
|
|
4771
|
+
}
|
|
4772
|
+
};
|
|
4773
|
+
function findTargetColor(target) {
|
|
4774
|
+
const { left, top, height, width } = dimensions(target);
|
|
4775
|
+
let last;
|
|
4776
|
+
for (const percent of [0.25, 0.5, 0.75]) {
|
|
4777
|
+
const elements = target.ownerDocument.elementsFromPoint(
|
|
4778
|
+
Math.max(0, left) + width * percent,
|
|
4779
|
+
Math.max(0, top) + height / 2
|
|
4780
|
+
);
|
|
4781
|
+
for (const element of elements) {
|
|
4782
|
+
if (target.contains(element) || element.closest('[class*="-leave"]') && elements.some((el) => element !== el && matches(el, '[class*="-enter"]'))) {
|
|
4783
|
+
continue;
|
|
4784
|
+
}
|
|
4785
|
+
const color = css(element, "--uk-inverse");
|
|
4786
|
+
if (color) {
|
|
4787
|
+
if (color === last) {
|
|
4788
|
+
return `uk-${color}`;
|
|
4789
|
+
}
|
|
4790
|
+
last = color;
|
|
4791
|
+
break;
|
|
4792
|
+
}
|
|
4793
|
+
}
|
|
4794
|
+
}
|
|
4795
|
+
return last ? `uk-${last}` : "";
|
|
4796
|
+
}
|
|
4797
|
+
|
|
4668
4798
|
var Media = {
|
|
4669
4799
|
props: {
|
|
4670
4800
|
media: Boolean
|
|
@@ -4964,6 +5094,15 @@
|
|
|
4964
5094
|
selClose: ".uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full"
|
|
4965
5095
|
},
|
|
4966
5096
|
events: [
|
|
5097
|
+
{
|
|
5098
|
+
name: "fullscreenchange webkitendfullscreen",
|
|
5099
|
+
capture: true,
|
|
5100
|
+
handler(e) {
|
|
5101
|
+
if (isTag(e.target, "video") && this.isToggled() && !document.fullscreenElement) {
|
|
5102
|
+
this.hide();
|
|
5103
|
+
}
|
|
5104
|
+
}
|
|
5105
|
+
},
|
|
4967
5106
|
{
|
|
4968
5107
|
name: "show",
|
|
4969
5108
|
self: true,
|
|
@@ -5065,6 +5204,7 @@
|
|
|
5065
5204
|
}
|
|
5066
5205
|
};
|
|
5067
5206
|
|
|
5207
|
+
const clsNavbarTransparent = "uk-navbar-transparent";
|
|
5068
5208
|
var navbar = {
|
|
5069
5209
|
extends: Dropnav,
|
|
5070
5210
|
props: {
|
|
@@ -5074,49 +5214,25 @@
|
|
|
5074
5214
|
clsDrop: "uk-navbar-dropdown",
|
|
5075
5215
|
selNavItem: ".uk-navbar-nav > li > a,a.uk-navbar-item,button.uk-navbar-item,.uk-navbar-item a,.uk-navbar-item button,.uk-navbar-toggle",
|
|
5076
5216
|
// Simplify with :where() selector once browser target is Safari 14+
|
|
5077
|
-
selTransparentTarget: '[class*="uk-section"]',
|
|
5078
5217
|
dropbarTransparentMode: false
|
|
5079
5218
|
},
|
|
5080
5219
|
computed: {
|
|
5081
5220
|
navbarContainer: (_, $el) => $el.closest(".uk-navbar-container"),
|
|
5082
|
-
dropbarOffset
|
|
5221
|
+
dropbarOffset({ dropbarTransparentMode }) {
|
|
5222
|
+
const { offsetTop, offsetHeight } = this.navbarContainer;
|
|
5223
|
+
return offsetTop + (dropbarTransparentMode === "behind" ? 0 : offsetHeight + this.dropbarPositionOffset);
|
|
5224
|
+
}
|
|
5083
5225
|
},
|
|
5084
5226
|
watch: {
|
|
5085
5227
|
items() {
|
|
5086
5228
|
const justify = hasClass(this.$el, "uk-navbar-justify");
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
css(
|
|
5092
|
-
container,
|
|
5093
|
-
"flexGrow",
|
|
5094
|
-
justify ? $$(
|
|
5095
|
-
".uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle",
|
|
5096
|
-
container
|
|
5097
|
-
).length : ""
|
|
5098
|
-
);
|
|
5229
|
+
const containers = $$(".uk-navbar-nav, .uk-navbar-left, .uk-navbar-right", this.$el);
|
|
5230
|
+
for (const container of containers) {
|
|
5231
|
+
const items = justify ? $$(".uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle", container).length : "";
|
|
5232
|
+
css(container, "flexGrow", items);
|
|
5099
5233
|
}
|
|
5100
5234
|
}
|
|
5101
5235
|
},
|
|
5102
|
-
disconnect() {
|
|
5103
|
-
var _a;
|
|
5104
|
-
(_a = this._colorListener) == null ? void 0 : _a.call(this);
|
|
5105
|
-
},
|
|
5106
|
-
observe: [
|
|
5107
|
-
mutation({
|
|
5108
|
-
target: ({ navbarContainer }) => navbarContainer,
|
|
5109
|
-
handler: "registerColorListener",
|
|
5110
|
-
options: { attributes: true, attributeFilter: ["class"], attributeOldValue: true }
|
|
5111
|
-
}),
|
|
5112
|
-
intersection({
|
|
5113
|
-
handler(records) {
|
|
5114
|
-
this._isIntersecting = records[0].isIntersecting;
|
|
5115
|
-
this.registerColorListener();
|
|
5116
|
-
},
|
|
5117
|
-
args: { intersecting: false }
|
|
5118
|
-
})
|
|
5119
|
-
],
|
|
5120
5236
|
events: [
|
|
5121
5237
|
{
|
|
5122
5238
|
name: "show",
|
|
@@ -5124,21 +5240,9 @@
|
|
|
5124
5240
|
return this.dropContainer;
|
|
5125
5241
|
},
|
|
5126
5242
|
handler({ target }) {
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
}
|
|
5131
|
-
const storePrevColor = () => this._mode = removeClasses(this.navbarContainer, "uk-light", "uk-dark");
|
|
5132
|
-
if (transparentMode === "behind") {
|
|
5133
|
-
const mode = getDropbarBehindColor(this.$el);
|
|
5134
|
-
if (mode) {
|
|
5135
|
-
storePrevColor();
|
|
5136
|
-
addClass(this.navbarContainer, `uk-${mode}`);
|
|
5137
|
-
}
|
|
5138
|
-
}
|
|
5139
|
-
if (transparentMode === "remove") {
|
|
5140
|
-
storePrevColor();
|
|
5141
|
-
removeClass(this.navbarContainer, "uk-navbar-transparent");
|
|
5243
|
+
if (this.getTransparentMode(target) === "remove" && hasClass(this.navbarContainer, clsNavbarTransparent)) {
|
|
5244
|
+
removeClass(this.navbarContainer, clsNavbarTransparent);
|
|
5245
|
+
this._transparent = true;
|
|
5142
5246
|
}
|
|
5143
5247
|
}
|
|
5144
5248
|
},
|
|
@@ -5147,26 +5251,12 @@
|
|
|
5147
5251
|
el() {
|
|
5148
5252
|
return this.dropContainer;
|
|
5149
5253
|
},
|
|
5150
|
-
async handler(
|
|
5151
|
-
const transparentMode = this.getTransparentMode(target);
|
|
5152
|
-
if (!transparentMode || !this._mode) {
|
|
5153
|
-
return;
|
|
5154
|
-
}
|
|
5254
|
+
async handler() {
|
|
5155
5255
|
await awaitMacroTask();
|
|
5156
|
-
if (this.getActive()) {
|
|
5157
|
-
|
|
5256
|
+
if (!this.getActive() && this._transparent) {
|
|
5257
|
+
addClass(this.navbarContainer, clsNavbarTransparent);
|
|
5258
|
+
this._transparent = null;
|
|
5158
5259
|
}
|
|
5159
|
-
if (transparentMode === "behind") {
|
|
5160
|
-
const mode = getDropbarBehindColor(this.$el);
|
|
5161
|
-
if (mode) {
|
|
5162
|
-
removeClass(this.navbarContainer, `uk-${mode}`);
|
|
5163
|
-
}
|
|
5164
|
-
}
|
|
5165
|
-
addClass(this.navbarContainer, this._mode);
|
|
5166
|
-
if (transparentMode === "remove") {
|
|
5167
|
-
addClass(this.navbarContainer, "uk-navbar-transparent");
|
|
5168
|
-
}
|
|
5169
|
-
this._mode = null;
|
|
5170
5260
|
}
|
|
5171
5261
|
}
|
|
5172
5262
|
],
|
|
@@ -5179,70 +5269,15 @@
|
|
|
5179
5269
|
return this.dropbarTransparentMode;
|
|
5180
5270
|
}
|
|
5181
5271
|
const drop = this.getDropdown(el);
|
|
5182
|
-
if (
|
|
5183
|
-
return;
|
|
5272
|
+
if (drop && hasClass(el, "uk-dropbar")) {
|
|
5273
|
+
return drop.inset ? "behind" : "remove";
|
|
5184
5274
|
}
|
|
5185
|
-
return drop.inset ? "behind" : "remove";
|
|
5186
|
-
},
|
|
5187
|
-
registerColorListener() {
|
|
5188
|
-
const active = this._isIntersecting && hasClass(this.navbarContainer, "uk-navbar-transparent") && !isWithinMixBlendMode(this.navbarContainer) && !$$(".uk-drop", this.dropContainer).map(this.getDropdown).some(
|
|
5189
|
-
(drop) => drop.isToggled() && (drop.inset || this.getTransparentMode(drop.$el) === "behind")
|
|
5190
|
-
);
|
|
5191
|
-
if (this._colorListener) {
|
|
5192
|
-
if (!active) {
|
|
5193
|
-
this._colorListener();
|
|
5194
|
-
this._colorListener = null;
|
|
5195
|
-
}
|
|
5196
|
-
return;
|
|
5197
|
-
}
|
|
5198
|
-
if (!active) {
|
|
5199
|
-
return;
|
|
5200
|
-
}
|
|
5201
|
-
this._colorListener = listenForPositionChange(this.navbarContainer, () => {
|
|
5202
|
-
const { left, top, height } = offset(this.navbarContainer);
|
|
5203
|
-
const startPoint = { x: left, y: Math.max(0, top) + height / 2 };
|
|
5204
|
-
const target = $$(this.selTransparentTarget).find(
|
|
5205
|
-
(target2) => pointInRect(startPoint, offset(target2))
|
|
5206
|
-
);
|
|
5207
|
-
const color = css(target, "--uk-navbar-color");
|
|
5208
|
-
if (color) {
|
|
5209
|
-
replaceClass(this.navbarContainer, "uk-light,uk-dark", `uk-${color}`);
|
|
5210
|
-
}
|
|
5211
|
-
});
|
|
5212
5275
|
}
|
|
5213
5276
|
}
|
|
5214
5277
|
};
|
|
5215
|
-
function
|
|
5216
|
-
for (const cls of classes) {
|
|
5217
|
-
if (hasClass(el, cls)) {
|
|
5218
|
-
removeClass(el, cls);
|
|
5219
|
-
return cls;
|
|
5220
|
-
}
|
|
5221
|
-
}
|
|
5222
|
-
}
|
|
5223
|
-
async function awaitMacroTask() {
|
|
5278
|
+
function awaitMacroTask() {
|
|
5224
5279
|
return new Promise((resolve) => setTimeout(resolve));
|
|
5225
5280
|
}
|
|
5226
|
-
function getDropbarBehindColor(el) {
|
|
5227
|
-
return css(el, "--uk-navbar-dropbar-behind-color");
|
|
5228
|
-
}
|
|
5229
|
-
function listenForPositionChange(el, handler) {
|
|
5230
|
-
const parent2 = scrollParent(el, true);
|
|
5231
|
-
const scrollEl = parent2 === document.documentElement ? document : parent2;
|
|
5232
|
-
const off = on(scrollEl, "scroll", handler, { passive: true });
|
|
5233
|
-
const observer = observeResize([el, parent2], handler);
|
|
5234
|
-
return () => {
|
|
5235
|
-
off();
|
|
5236
|
-
observer.disconnect();
|
|
5237
|
-
};
|
|
5238
|
-
}
|
|
5239
|
-
function isWithinMixBlendMode(el) {
|
|
5240
|
-
do {
|
|
5241
|
-
if (css(el, "mixBlendMode") !== "normal") {
|
|
5242
|
-
return true;
|
|
5243
|
-
}
|
|
5244
|
-
} while (el = parent(el));
|
|
5245
|
-
}
|
|
5246
5281
|
|
|
5247
5282
|
var offcanvas = {
|
|
5248
5283
|
mixins: [Modal],
|
|
@@ -5410,27 +5445,7 @@
|
|
|
5410
5445
|
props: ["width", "height"],
|
|
5411
5446
|
connected() {
|
|
5412
5447
|
addClass(this.$el, "uk-responsive-width");
|
|
5413
|
-
|
|
5414
|
-
observe: resize({
|
|
5415
|
-
target: ({ $el }) => [$el, parent($el)]
|
|
5416
|
-
}),
|
|
5417
|
-
update: {
|
|
5418
|
-
read() {
|
|
5419
|
-
return isVisible(this.$el) && this.width && this.height ? { width: width(parent(this.$el)), height: this.height } : false;
|
|
5420
|
-
},
|
|
5421
|
-
write(dim) {
|
|
5422
|
-
height(
|
|
5423
|
-
this.$el,
|
|
5424
|
-
Dimensions.contain(
|
|
5425
|
-
{
|
|
5426
|
-
height: this.height,
|
|
5427
|
-
width: this.width
|
|
5428
|
-
},
|
|
5429
|
-
dim
|
|
5430
|
-
).height
|
|
5431
|
-
);
|
|
5432
|
-
},
|
|
5433
|
-
events: ["resize"]
|
|
5448
|
+
css(this.$el, "aspectRatio", `${this.width}/${this.height}`);
|
|
5434
5449
|
}
|
|
5435
5450
|
};
|
|
5436
5451
|
|
|
@@ -5576,7 +5591,7 @@
|
|
|
5576
5591
|
toggleClass(el, this.inViewClass, inview);
|
|
5577
5592
|
toggleClass(el, state.cls);
|
|
5578
5593
|
if (/\buk-animation-/.test(state.cls)) {
|
|
5579
|
-
const removeAnimationClasses = () => removeClasses
|
|
5594
|
+
const removeAnimationClasses = () => removeClasses(el, "uk-animation-[\\w-]+");
|
|
5580
5595
|
if (inview) {
|
|
5581
5596
|
state.off = once(el, "animationcancel animationend", removeAnimationClasses, {
|
|
5582
5597
|
self: true
|
|
@@ -5703,7 +5718,7 @@
|
|
|
5703
5718
|
targetOffset: false
|
|
5704
5719
|
},
|
|
5705
5720
|
computed: {
|
|
5706
|
-
|
|
5721
|
+
target: ({ selTarget }, $el) => selTarget && $(selTarget, $el) || $el
|
|
5707
5722
|
},
|
|
5708
5723
|
connected() {
|
|
5709
5724
|
this.start = coerce(this.start || this.top);
|
|
@@ -5715,16 +5730,26 @@
|
|
|
5715
5730
|
beforeDisconnect() {
|
|
5716
5731
|
if (this.isFixed) {
|
|
5717
5732
|
this.hide();
|
|
5718
|
-
removeClass(this.
|
|
5733
|
+
removeClass(this.target, this.clsInactive);
|
|
5719
5734
|
}
|
|
5720
5735
|
reset(this.$el);
|
|
5721
5736
|
remove$1(this.placeholder);
|
|
5722
5737
|
this.placeholder = null;
|
|
5723
5738
|
},
|
|
5724
5739
|
observe: [
|
|
5725
|
-
viewport(
|
|
5740
|
+
viewport({
|
|
5741
|
+
handler() {
|
|
5742
|
+
if (toPx("100vh", "height") !== this._data.viewport) {
|
|
5743
|
+
this.$emit("resize");
|
|
5744
|
+
}
|
|
5745
|
+
}
|
|
5746
|
+
}),
|
|
5726
5747
|
scroll$1({ target: () => document.scrollingElement }),
|
|
5727
|
-
resize({
|
|
5748
|
+
resize({
|
|
5749
|
+
target: () => document.scrollingElement,
|
|
5750
|
+
options: { box: "content-box" }
|
|
5751
|
+
}),
|
|
5752
|
+
resize({ target: ({ $el }) => $el })
|
|
5728
5753
|
],
|
|
5729
5754
|
events: [
|
|
5730
5755
|
{
|
|
@@ -5769,7 +5794,7 @@
|
|
|
5769
5794
|
}
|
|
5770
5795
|
const hide = this.isFixed && !this.transitionInProgress;
|
|
5771
5796
|
if (hide) {
|
|
5772
|
-
preventTransition(this
|
|
5797
|
+
preventTransition(this.target);
|
|
5773
5798
|
this.hide();
|
|
5774
5799
|
}
|
|
5775
5800
|
if (!this.active) {
|
|
@@ -5804,20 +5829,20 @@
|
|
|
5804
5829
|
);
|
|
5805
5830
|
sticky = maxScrollHeight && !this.showOnUp && start + offset$1 === topOffset && end === Math.min(
|
|
5806
5831
|
maxScrollHeight,
|
|
5807
|
-
parseProp(
|
|
5832
|
+
parseProp(true, this.$el, 0, true) - elHeight - offset$1 + overflow
|
|
5808
5833
|
) && css(parent(this.$el), "overflowY") === "visible";
|
|
5809
5834
|
return {
|
|
5810
5835
|
start,
|
|
5811
5836
|
end,
|
|
5812
5837
|
offset: offset$1,
|
|
5813
5838
|
overflow,
|
|
5814
|
-
topOffset,
|
|
5815
5839
|
height: height$1,
|
|
5816
5840
|
elHeight,
|
|
5817
5841
|
width,
|
|
5818
5842
|
margin,
|
|
5819
5843
|
top: offsetPosition(referenceElement)[0],
|
|
5820
|
-
sticky
|
|
5844
|
+
sticky,
|
|
5845
|
+
viewport: viewport2
|
|
5821
5846
|
};
|
|
5822
5847
|
},
|
|
5823
5848
|
write({ height, width, margin, offset, sticky }) {
|
|
@@ -5833,10 +5858,10 @@
|
|
|
5833
5858
|
}
|
|
5834
5859
|
const { placeholder } = this;
|
|
5835
5860
|
css(placeholder, { height, width, margin });
|
|
5836
|
-
if (
|
|
5861
|
+
if (parent(placeholder) !== parent(this.$el) || sticky ^ index(placeholder) < index(this.$el)) {
|
|
5862
|
+
(sticky ? before : after)(this.$el, placeholder);
|
|
5837
5863
|
placeholder.hidden = true;
|
|
5838
5864
|
}
|
|
5839
|
-
(sticky ? before : after)(this.$el, placeholder);
|
|
5840
5865
|
},
|
|
5841
5866
|
events: ["resize"]
|
|
5842
5867
|
},
|
|
@@ -5847,18 +5872,21 @@
|
|
|
5847
5872
|
overflow,
|
|
5848
5873
|
overflowScroll = 0,
|
|
5849
5874
|
start,
|
|
5850
|
-
end
|
|
5875
|
+
end,
|
|
5876
|
+
elHeight,
|
|
5877
|
+
height,
|
|
5878
|
+
sticky
|
|
5851
5879
|
}) {
|
|
5852
5880
|
const scroll2 = document.scrollingElement.scrollTop;
|
|
5853
5881
|
const dir = prevScroll <= scroll2 ? "down" : "up";
|
|
5882
|
+
const referenceElement = this.isFixed ? this.placeholder : this.$el;
|
|
5854
5883
|
return {
|
|
5855
5884
|
dir,
|
|
5856
5885
|
prevDir,
|
|
5857
5886
|
scroll: scroll2,
|
|
5858
5887
|
prevScroll,
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
).top,
|
|
5888
|
+
below: scroll2 > offset(referenceElement).top + (sticky ? Math.min(height, elHeight) : height),
|
|
5889
|
+
offsetParentTop: offset(referenceElement.offsetParent).top,
|
|
5862
5890
|
overflowScroll: clamp(
|
|
5863
5891
|
overflowScroll + clamp(scroll2, start, end) - clamp(prevScroll, start, end),
|
|
5864
5892
|
0,
|
|
@@ -5876,8 +5904,7 @@
|
|
|
5876
5904
|
prevScroll = 0,
|
|
5877
5905
|
top,
|
|
5878
5906
|
start,
|
|
5879
|
-
|
|
5880
|
-
height
|
|
5907
|
+
below
|
|
5881
5908
|
} = data;
|
|
5882
5909
|
if (scroll2 < 0 || scroll2 === prevScroll && isScrollUpdate || this.showOnUp && !isScrollUpdate && !this.isFixed) {
|
|
5883
5910
|
return;
|
|
@@ -5890,7 +5917,7 @@
|
|
|
5890
5917
|
if (this.showOnUp && !this.isFixed && Math.abs(data.initScroll - scroll2) <= 30 && Math.abs(prevScroll - scroll2) <= 10) {
|
|
5891
5918
|
return;
|
|
5892
5919
|
}
|
|
5893
|
-
if (this.inactive || scroll2 < start || this.showOnUp && (scroll2 <= start || dir === "down" && isScrollUpdate || dir === "up" && !this.isFixed &&
|
|
5920
|
+
if (this.inactive || scroll2 < start || this.showOnUp && (scroll2 <= start || dir === "down" && isScrollUpdate || dir === "up" && !this.isFixed && !below)) {
|
|
5894
5921
|
if (!this.isFixed) {
|
|
5895
5922
|
if (Animation.inProgress(this.$el) && top > scroll2) {
|
|
5896
5923
|
Animation.cancel(this.$el);
|
|
@@ -5898,7 +5925,7 @@
|
|
|
5898
5925
|
}
|
|
5899
5926
|
return;
|
|
5900
5927
|
}
|
|
5901
|
-
if (this.animation &&
|
|
5928
|
+
if (this.animation && below) {
|
|
5902
5929
|
if (hasClass(this.$el, "uk-animation-leave")) {
|
|
5903
5930
|
return;
|
|
5904
5931
|
}
|
|
@@ -5908,11 +5935,11 @@
|
|
|
5908
5935
|
}
|
|
5909
5936
|
} else if (this.isFixed) {
|
|
5910
5937
|
this.update();
|
|
5911
|
-
} else if (this.animation &&
|
|
5938
|
+
} else if (this.animation && below) {
|
|
5912
5939
|
this.show();
|
|
5913
5940
|
Animation.in(this.$el, this.animation).catch(noop);
|
|
5914
5941
|
} else {
|
|
5915
|
-
preventTransition(this.
|
|
5942
|
+
preventTransition(this.target);
|
|
5916
5943
|
this.show();
|
|
5917
5944
|
}
|
|
5918
5945
|
},
|
|
@@ -5951,11 +5978,9 @@
|
|
|
5951
5978
|
start,
|
|
5952
5979
|
end,
|
|
5953
5980
|
offset,
|
|
5954
|
-
topOffset,
|
|
5955
|
-
height,
|
|
5956
|
-
elHeight,
|
|
5957
5981
|
offsetParentTop,
|
|
5958
|
-
sticky
|
|
5982
|
+
sticky,
|
|
5983
|
+
below
|
|
5959
5984
|
} = this._data;
|
|
5960
5985
|
const active = start !== 0 || scroll2 > start;
|
|
5961
5986
|
if (!sticky) {
|
|
@@ -5968,22 +5993,21 @@
|
|
|
5968
5993
|
}
|
|
5969
5994
|
css(this.$el, "top", offset - overflowScroll);
|
|
5970
5995
|
this.setActive(active);
|
|
5971
|
-
toggleClass(
|
|
5972
|
-
this.$el,
|
|
5973
|
-
this.clsBelow,
|
|
5974
|
-
scroll2 > topOffset + (sticky ? Math.min(height, elHeight) : height)
|
|
5975
|
-
);
|
|
5996
|
+
toggleClass(this.$el, this.clsBelow, below);
|
|
5976
5997
|
addClass(this.$el, this.clsFixed);
|
|
5977
5998
|
},
|
|
5978
5999
|
setActive(active) {
|
|
5979
6000
|
const prev = this.active;
|
|
5980
6001
|
this.active = active;
|
|
5981
6002
|
if (active) {
|
|
5982
|
-
replaceClass(this.
|
|
6003
|
+
replaceClass(this.target, this.clsInactive, this.clsActive);
|
|
5983
6004
|
prev !== active && trigger(this.$el, "active");
|
|
5984
6005
|
} else {
|
|
5985
|
-
replaceClass(this.
|
|
5986
|
-
prev !== active
|
|
6006
|
+
replaceClass(this.target, this.clsActive, this.clsInactive);
|
|
6007
|
+
if (prev !== active) {
|
|
6008
|
+
preventTransition(this.target);
|
|
6009
|
+
trigger(this.$el, "inactive");
|
|
6010
|
+
}
|
|
5987
6011
|
}
|
|
5988
6012
|
}
|
|
5989
6013
|
}
|
|
@@ -6487,9 +6511,11 @@
|
|
|
6487
6511
|
FormCustom: formCustom,
|
|
6488
6512
|
Grid: grid,
|
|
6489
6513
|
HeightMatch: heightMatch,
|
|
6514
|
+
HeightPlaceholder: heightPlaceholder,
|
|
6490
6515
|
HeightViewport: heightViewport,
|
|
6491
6516
|
Icon: Icon,
|
|
6492
6517
|
Img: img,
|
|
6518
|
+
Inverse: inverse,
|
|
6493
6519
|
Leader: leader,
|
|
6494
6520
|
Margin: Margin,
|
|
6495
6521
|
Marker: Marker,
|