uikit 3.25.17-dev.80dfe87 → 3.25.17-dev.8c70e44
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 +33 -0
- package/build/prefix.js +1 -1
- package/build/publishDev.js +1 -1
- package/build/release.js +2 -2
- package/build/scope.js +1 -1
- package/build/scss.js +1 -1
- package/dist/css/uikit-core-rtl.css +892 -802
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +892 -802
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +893 -803
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +893 -803
- 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 +133 -132
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +134 -133
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/marquee.js +179 -0
- package/dist/js/components/marquee.min.js +1 -0
- package/dist/js/components/notification.js +1 -1
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +8 -12
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +8 -12
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +41 -25
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +8 -12
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +71 -102
- 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 +19 -19
- 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 +754 -262
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +629 -374
- package/dist/js/uikit.min.js +1 -1
- package/package.json +2 -2
- package/src/js/api/component.js +2 -3
- package/src/js/api/observables.js +2 -4
- package/src/js/api/options.js +6 -3
- package/src/js/api/props.js +1 -4
- package/src/js/api/state.js +7 -8
- package/src/js/components/index.js +1 -0
- package/src/js/components/internal/lightbox-animations.js +7 -26
- package/src/js/components/internal/slideshow-animations.js +15 -62
- package/src/js/components/lightbox-panel.js +121 -96
- package/src/js/components/lightbox.js +5 -8
- package/src/js/components/marquee.js +123 -0
- package/src/js/components/tooltip.js +4 -2
- package/src/js/core/accordion.js +78 -29
- package/src/js/core/drop.js +5 -4
- package/src/js/core/dropnav.js +3 -3
- package/src/js/core/grid.js +5 -19
- package/src/js/core/height-match.js +1 -2
- package/src/js/core/margin.js +3 -0
- package/src/js/core/overflow-fade.js +5 -5
- package/src/js/core/sticky.js +1 -1
- package/src/js/core/switcher.js +24 -44
- package/src/js/core/video.js +172 -15
- package/src/js/mixin/connect.js +57 -0
- package/src/js/mixin/internal/slideshow-animations.js +5 -13
- package/src/js/mixin/internal/slideshow-transitioner.js +2 -2
- package/src/js/mixin/modal.js +4 -3
- package/src/js/mixin/parallax.js +1 -4
- package/src/js/mixin/position.js +1 -1
- package/src/js/mixin/scroll-driven.js +57 -0
- package/src/js/mixin/slider-nav.js +1 -1
- package/src/js/mixin/slider-parallax.js +9 -38
- package/src/js/mixin/togglable.js +13 -14
- package/src/js/util/attr.js +7 -7
- package/src/js/util/class.js +1 -1
- package/src/js/util/dom.js +3 -4
- package/src/js/util/lang.js +1 -1
- package/src/js/util/player.js +4 -4
- package/src/js/util/style.js +10 -15
- package/src/js/util/viewport.js +22 -25
- package/src/less/components/_import.less +6 -1
- package/src/less/components/base.less +1 -1
- package/src/less/components/button.less +1 -1
- package/src/less/components/dropcap.less +71 -0
- package/src/less/components/floating-shadow.less +65 -0
- package/src/less/components/form.less +5 -5
- package/src/less/components/grid.less +57 -64
- package/src/less/components/logo.less +94 -0
- package/src/less/components/margin.less +81 -81
- package/src/less/components/marquee.less +133 -0
- package/src/less/components/nav.less +1 -1
- package/src/less/components/padding.less +9 -9
- package/src/less/components/utility.less +0 -157
- package/src/less/theme/_import.less +5 -1
- package/src/less/theme/dropcap.less +29 -0
- package/src/less/theme/floating-shadow.less +20 -0
- package/src/less/theme/logo.less +29 -0
- package/src/less/theme/marquee.less +14 -0
- package/src/less/theme/utility.less +0 -32
- package/src/scss/components/_import.scss +6 -1
- package/src/scss/components/base.scss +1 -1
- package/src/scss/components/button.scss +1 -1
- package/src/scss/components/dropcap.scss +63 -0
- package/src/scss/components/floating-shadow.scss +62 -0
- package/src/scss/components/form.scss +5 -5
- package/src/scss/components/grid.scss +57 -64
- package/src/scss/components/logo.scss +75 -0
- package/src/scss/components/margin.scss +81 -81
- package/src/scss/components/marquee.scss +136 -0
- package/src/scss/components/nav.scss +1 -1
- package/src/scss/components/padding.scss +9 -9
- package/src/scss/components/utility.scss +0 -128
- package/src/scss/mixins-theme.scss +41 -32
- package/src/scss/mixins.scss +38 -29
- package/src/scss/variables-theme.scss +14 -9
- package/src/scss/variables.scss +14 -9
- package/tests/accordion.html +77 -10
- package/tests/alert.html +1 -1
- package/tests/align.html +5 -5
- package/tests/animation.html +4 -4
- package/tests/article.html +7 -7
- package/tests/background.html +2 -2
- package/tests/badge.html +1 -1
- package/tests/base.html +2 -2
- package/tests/button.html +1 -1
- package/tests/card.html +15 -15
- package/tests/close.html +2 -2
- package/tests/comment.html +9 -9
- package/tests/container.html +2 -2
- package/tests/countdown.html +21 -21
- package/tests/cover.html +3 -3
- package/tests/description-list.html +1 -1
- package/tests/divider.html +3 -3
- package/tests/dotnav.html +1 -1
- package/tests/drop.html +7 -7
- package/tests/dropbar.html +5 -5
- package/tests/dropcap.html +26 -0
- package/tests/dropdown.html +1 -1
- package/tests/dropnav.html +18 -18
- package/tests/filter.html +3 -3
- package/tests/floating-shadow.html +44 -0
- package/tests/form.html +14 -14
- package/tests/grid.html +41 -47
- package/tests/heading.html +2 -2
- package/tests/height-viewport.html +4 -4
- package/tests/height.html +5 -5
- package/tests/icon.html +8 -8
- package/tests/image.html +6 -6
- package/tests/index.html +13 -13
- package/tests/js/index.js +1 -1
- package/tests/leader.html +5 -5
- package/tests/lightbox.html +6 -6
- package/tests/link.html +1 -1
- package/tests/list.html +4 -4
- package/tests/logo.html +84 -0
- package/tests/margin.html +7 -7
- package/tests/marker.html +3 -3
- package/tests/marquee.html +617 -0
- package/tests/modal.html +3 -3
- package/tests/nav.html +5 -5
- package/tests/navbar.html +27 -27
- package/tests/notification.html +2 -2
- package/tests/offcanvas.html +12 -12
- package/tests/overlay.html +3 -3
- package/tests/padding.html +1 -1
- package/tests/pagination.html +3 -3
- package/tests/parallax.html +1 -1
- package/tests/position.html +6 -6
- package/tests/scrollspy.html +12 -12
- package/tests/search.html +5 -5
- package/tests/section.html +17 -17
- package/tests/slidenav.html +3 -3
- package/tests/slider.html +5 -5
- package/tests/slideshow.html +3 -3
- package/tests/sortable.html +15 -15
- package/tests/sticky-navbar.html +4 -4
- package/tests/sticky-parallax.html +3 -3
- package/tests/sticky.html +3 -3
- package/tests/svg.html +3 -2
- package/tests/switcher.html +6 -6
- package/tests/tab.html +4 -4
- package/tests/text.html +3 -3
- package/tests/tile.html +4 -4
- package/tests/toggle.html +1 -1
- package/tests/tooltip.html +3 -3
- package/tests/totop.html +2 -2
- package/tests/transition.html +1 -1
- package/tests/upload.html +5 -5
- package/tests/utility.html +16 -116
- package/tests/video.html +224 -24
- package/tests/visibility.html +4 -4
- package/tests/width.html +12 -12
package/dist/js/uikit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! UIkit 3.25.17-dev.
|
|
1
|
+
/*! UIkit 3.25.17-dev.8c70e44 | https://www.getuikit.com | (c) 2014 - 2026 YOOtheme | MIT License */
|
|
2
2
|
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
return array.filter(({ [prop]: check }) => seen.has(check) ? false : seen.add(check));
|
|
135
135
|
}
|
|
136
136
|
function pick(obj, props) {
|
|
137
|
-
return props.
|
|
137
|
+
return Object.fromEntries(props.map((key) => [key, obj[key]]));
|
|
138
138
|
}
|
|
139
139
|
function clamp(number, min = 0, max = 1) {
|
|
140
140
|
return Math.min(Math.max(toNumber(number) || 0, min), max);
|
|
@@ -230,7 +230,7 @@
|
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
function toClasses(str) {
|
|
233
|
-
return str ? isArray(str) ? str.
|
|
233
|
+
return str ? isArray(str) ? str.flatMap(toClasses) : String(str).split(" ").filter(Boolean) : [];
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
function attr(element, name, value) {
|
|
@@ -243,13 +243,12 @@
|
|
|
243
243
|
}
|
|
244
244
|
if (isUndefined(value)) {
|
|
245
245
|
return (_a = toNode(element)) == null ? void 0 : _a.getAttribute(name);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
246
|
+
}
|
|
247
|
+
for (const el of toNodes(element)) {
|
|
248
|
+
if (value === null) {
|
|
249
|
+
removeAttr(el, name);
|
|
250
|
+
} else {
|
|
251
|
+
el.setAttribute(name, value);
|
|
253
252
|
}
|
|
254
253
|
}
|
|
255
254
|
}
|
|
@@ -591,19 +590,14 @@
|
|
|
591
590
|
property = propName(property);
|
|
592
591
|
if (isUndefined(value)) {
|
|
593
592
|
return getComputedStyle(element2).getPropertyValue(property);
|
|
594
|
-
} else {
|
|
595
|
-
element2.style.setProperty(
|
|
596
|
-
property,
|
|
597
|
-
isNumeric(value) && !cssNumber[property] && !isCustomProperty(property) ? `${value}px` : value || isNumber(value) ? value : "",
|
|
598
|
-
priority
|
|
599
|
-
);
|
|
600
593
|
}
|
|
594
|
+
element2.style.setProperty(
|
|
595
|
+
property,
|
|
596
|
+
isNumeric(value) && !cssNumber[property] && !isCustomProperty(property) ? `${value}px` : value || isNumber(value) ? value : "",
|
|
597
|
+
priority
|
|
598
|
+
);
|
|
601
599
|
} else if (isArray(property)) {
|
|
602
|
-
|
|
603
|
-
for (const prop of property) {
|
|
604
|
-
props[prop] = css(element2, prop);
|
|
605
|
-
}
|
|
606
|
-
return props;
|
|
600
|
+
return Object.fromEntries(property.map((prop) => [prop, css(element2, prop)]));
|
|
607
601
|
} else if (isObject(property)) {
|
|
608
602
|
for (const prop in property) {
|
|
609
603
|
css(element2, prop, property[prop], value);
|
|
@@ -787,7 +781,9 @@
|
|
|
787
781
|
);
|
|
788
782
|
}
|
|
789
783
|
function unwrap(element) {
|
|
790
|
-
toNodes(element).map(parent)
|
|
784
|
+
for (const elementParent of new Set(toNodes(element).map(parent))) {
|
|
785
|
+
elementParent.replaceWith(...elementParent.childNodes);
|
|
786
|
+
}
|
|
791
787
|
}
|
|
792
788
|
const singleTagRe = /^<(\w+)\s*\/?>(?:<\/\1>)?$/;
|
|
793
789
|
function fragment(html2) {
|
|
@@ -1149,12 +1145,12 @@
|
|
|
1149
1145
|
return isTag(el, "iframe") && (isYoutube(el) || isVimeo(el));
|
|
1150
1146
|
}
|
|
1151
1147
|
function isYoutube(el) {
|
|
1152
|
-
return
|
|
1153
|
-
|
|
1148
|
+
return /\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/.test(
|
|
1149
|
+
el.src
|
|
1154
1150
|
);
|
|
1155
1151
|
}
|
|
1156
1152
|
function isVimeo(el) {
|
|
1157
|
-
return
|
|
1153
|
+
return /vimeo\.com\/video\/.*/.test(el.src);
|
|
1158
1154
|
}
|
|
1159
1155
|
async function call(el, cmd) {
|
|
1160
1156
|
await enableApi(el);
|
|
@@ -1163,7 +1159,7 @@
|
|
|
1163
1159
|
function post(el, cmd) {
|
|
1164
1160
|
el.contentWindow.postMessage(JSON.stringify({ event: "command", ...cmd }), "*");
|
|
1165
1161
|
}
|
|
1166
|
-
const stateKey =
|
|
1162
|
+
const stateKey = /* @__PURE__ */ Symbol();
|
|
1167
1163
|
let counter = 0;
|
|
1168
1164
|
function enableApi(el) {
|
|
1169
1165
|
if (el[stateKey]) {
|
|
@@ -1194,17 +1190,16 @@
|
|
|
1194
1190
|
if (!isVisible(element)) {
|
|
1195
1191
|
return false;
|
|
1196
1192
|
}
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
);
|
|
1193
|
+
const rects = overflowParents(element).map((parent2) => {
|
|
1194
|
+
const { top, left, bottom, right } = offsetViewport(parent2);
|
|
1195
|
+
return {
|
|
1196
|
+
top: top - offsetTop,
|
|
1197
|
+
left: left - offsetLeft,
|
|
1198
|
+
bottom: bottom + offsetTop,
|
|
1199
|
+
right: right + offsetLeft
|
|
1200
|
+
};
|
|
1201
|
+
});
|
|
1202
|
+
return intersectRect(...rects, offset(element));
|
|
1208
1203
|
}
|
|
1209
1204
|
function scrollIntoView(element, { offset: offsetBy = 0 } = {}) {
|
|
1210
1205
|
const parents2 = isVisible(element) ? scrollParents(element, false, ["hidden"]) : [];
|
|
@@ -1288,11 +1283,12 @@
|
|
|
1288
1283
|
if (~fixedIndex) {
|
|
1289
1284
|
ancestors = ancestors.slice(fixedIndex);
|
|
1290
1285
|
}
|
|
1291
|
-
return [
|
|
1292
|
-
|
|
1286
|
+
return [
|
|
1287
|
+
scrollEl,
|
|
1288
|
+
...ancestors.filter(
|
|
1293
1289
|
(parent2) => css(parent2, "overflow").split(" ").some((prop) => includes(["auto", "scroll", ...props], prop)) && (!scrollable || parent2.scrollHeight > offsetViewport(parent2).height)
|
|
1294
1290
|
)
|
|
1295
|
-
|
|
1291
|
+
].reverse();
|
|
1296
1292
|
}
|
|
1297
1293
|
function scrollParent(...args) {
|
|
1298
1294
|
return scrollParents(...args)[0];
|
|
@@ -1874,11 +1870,14 @@
|
|
|
1874
1870
|
function coerce$1(type, value) {
|
|
1875
1871
|
if (type === Boolean) {
|
|
1876
1872
|
return toBoolean(value);
|
|
1877
|
-
}
|
|
1873
|
+
}
|
|
1874
|
+
if (type === Number) {
|
|
1878
1875
|
return toNumber(value);
|
|
1879
|
-
}
|
|
1876
|
+
}
|
|
1877
|
+
if (type === "list") {
|
|
1880
1878
|
return toList(value);
|
|
1881
|
-
}
|
|
1879
|
+
}
|
|
1880
|
+
if (type === Object && isString(value)) {
|
|
1882
1881
|
return parseOptions(value);
|
|
1883
1882
|
}
|
|
1884
1883
|
return type ? type(value) : value;
|
|
@@ -1958,8 +1957,8 @@
|
|
|
1958
1957
|
for (const el of toNodes(isFunction(targets) ? targets(this) : targets)) {
|
|
1959
1958
|
$$('[loading="lazy"]', el).slice(0, preload - 1).forEach((el2) => removeAttr(el2, "loading"));
|
|
1960
1959
|
}
|
|
1961
|
-
for (const
|
|
1962
|
-
observer.unobserve(
|
|
1960
|
+
for (const { target } of entries.filter(({ isIntersecting }) => isIntersecting)) {
|
|
1961
|
+
observer.unobserve(target);
|
|
1963
1962
|
}
|
|
1964
1963
|
},
|
|
1965
1964
|
...options
|
|
@@ -2028,10 +2027,12 @@
|
|
|
2028
2027
|
var Margin = {
|
|
2029
2028
|
props: {
|
|
2030
2029
|
margin: String,
|
|
2030
|
+
firstRow: Boolean,
|
|
2031
2031
|
firstColumn: Boolean
|
|
2032
2032
|
},
|
|
2033
2033
|
data: {
|
|
2034
2034
|
margin: "uk-margin-small-top",
|
|
2035
|
+
firstRow: false,
|
|
2035
2036
|
firstColumn: "uk-first-column"
|
|
2036
2037
|
},
|
|
2037
2038
|
observe: [
|
|
@@ -2071,6 +2072,7 @@
|
|
|
2071
2072
|
for (const row of rows) {
|
|
2072
2073
|
for (const el of row) {
|
|
2073
2074
|
toggleClass(el, this.margin, rows[0] !== row);
|
|
2075
|
+
toggleClass(el, this.firstRow, rows[0] === row);
|
|
2074
2076
|
toggleClass(el, this.firstColumn, row[isRtl ? row.length - 1 : 0] === el);
|
|
2075
2077
|
}
|
|
2076
2078
|
}
|
|
@@ -2789,20 +2791,18 @@
|
|
|
2789
2791
|
if (show) {
|
|
2790
2792
|
_toggle(el, true);
|
|
2791
2793
|
}
|
|
2792
|
-
const prevProps =
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
].map((key) => [key, el.style[key]])
|
|
2805
|
-
);
|
|
2794
|
+
const prevProps = pick(el.style, [
|
|
2795
|
+
"padding",
|
|
2796
|
+
"border",
|
|
2797
|
+
"width",
|
|
2798
|
+
"height",
|
|
2799
|
+
"minWidth",
|
|
2800
|
+
"minHeight",
|
|
2801
|
+
"overflowY",
|
|
2802
|
+
"overflowX",
|
|
2803
|
+
marginProp,
|
|
2804
|
+
marginStartProp
|
|
2805
|
+
]);
|
|
2806
2806
|
const dim = dimensions$1(el);
|
|
2807
2807
|
const currentMargin = toFloat(css(el, marginProp));
|
|
2808
2808
|
const marginStart = toFloat(css(el, marginStartProp));
|
|
@@ -3023,12 +3023,13 @@
|
|
|
3023
3023
|
}
|
|
3024
3024
|
}
|
|
3025
3025
|
};
|
|
3026
|
+
const rejectKey = /* @__PURE__ */ Symbol();
|
|
3026
3027
|
function animate$1(el, show, { transitionElement, _toggle }) {
|
|
3027
3028
|
return new Promise(
|
|
3028
3029
|
(resolve, reject) => once(el, "show hide", () => {
|
|
3029
3030
|
var _a;
|
|
3030
|
-
(_a = el
|
|
3031
|
-
el
|
|
3031
|
+
(_a = el[rejectKey]) == null ? void 0 : _a.call(el);
|
|
3032
|
+
el[rejectKey] = reject;
|
|
3032
3033
|
_toggle(el, show);
|
|
3033
3034
|
const off = once(
|
|
3034
3035
|
transitionElement,
|
|
@@ -3049,7 +3050,7 @@
|
|
|
3049
3050
|
toMs(css(transitionElement, "transitionDuration"))
|
|
3050
3051
|
);
|
|
3051
3052
|
})
|
|
3052
|
-
).then(() => delete el
|
|
3053
|
+
).then(() => delete el[rejectKey]);
|
|
3053
3054
|
}
|
|
3054
3055
|
function toMs(time) {
|
|
3055
3056
|
return time ? endsWith(time, "ms") ? toFloat(time) : toFloat(time) * 1e3 : 0;
|
|
@@ -3099,18 +3100,11 @@
|
|
|
3099
3100
|
|
|
3100
3101
|
var Animations$2 = {
|
|
3101
3102
|
slide: {
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
},
|
|
3108
|
-
translate(percent, dir) {
|
|
3109
|
-
return [
|
|
3110
|
-
{ transform: translate(dir * -100 * percent) },
|
|
3111
|
-
{ transform: translate(dir * 100 * (1 - percent)) }
|
|
3112
|
-
];
|
|
3113
|
-
}
|
|
3103
|
+
percent: translated,
|
|
3104
|
+
translate: (percent, dir) => [
|
|
3105
|
+
{ transform: translate(dir * -100 * percent) },
|
|
3106
|
+
{ transform: translate(dir * 100 * (1 - percent)) }
|
|
3107
|
+
]
|
|
3114
3108
|
}
|
|
3115
3109
|
};
|
|
3116
3110
|
function translated(el) {
|
|
@@ -3121,8 +3115,8 @@
|
|
|
3121
3115
|
}
|
|
3122
3116
|
|
|
3123
3117
|
function Transitioner$1(prev, next, dir, { animation, easing }) {
|
|
3124
|
-
const { percent, translate
|
|
3125
|
-
const props =
|
|
3118
|
+
const { percent, translate } = animation;
|
|
3119
|
+
const props = translate(1, dir);
|
|
3126
3120
|
const { promise, resolve } = withResolvers();
|
|
3127
3121
|
return {
|
|
3128
3122
|
dir,
|
|
@@ -3403,7 +3397,7 @@
|
|
|
3403
3397
|
return Math.atan2(Math.abs(pos2.y - pos1.y), Math.abs(pos2.x - pos1.x)) * 180 / Math.PI;
|
|
3404
3398
|
}
|
|
3405
3399
|
|
|
3406
|
-
var VERSION = '3.25.17-dev.
|
|
3400
|
+
var VERSION = '3.25.17-dev.8c70e44';
|
|
3407
3401
|
|
|
3408
3402
|
function initWatches(instance) {
|
|
3409
3403
|
instance._watches = [];
|
|
@@ -3612,7 +3606,7 @@
|
|
|
3612
3606
|
}
|
|
3613
3607
|
const getAttributes = memoize((id, props) => {
|
|
3614
3608
|
const attributes = Object.keys(props);
|
|
3615
|
-
const filter = attributes
|
|
3609
|
+
const filter = [...attributes, id].flatMap((key) => [hyphenate(key), `data-${hyphenate(key)}`]);
|
|
3616
3610
|
return { attributes, filter };
|
|
3617
3611
|
});
|
|
3618
3612
|
function initPropsObserver(instance) {
|
|
@@ -3702,14 +3696,10 @@
|
|
|
3702
3696
|
}
|
|
3703
3697
|
function normalizeData({ data = {} }, { args = [], props = {} }) {
|
|
3704
3698
|
if (isArray(data)) {
|
|
3705
|
-
data = data.slice(0, args.length).reduce(
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
data2[args[index]] = value;
|
|
3710
|
-
}
|
|
3711
|
-
return data2;
|
|
3712
|
-
}, {});
|
|
3699
|
+
data = data.slice(0, args.length).reduce(
|
|
3700
|
+
(data2, value, index) => assign(data2, isPlainObject(value) ? value : { [args[index]]: value }),
|
|
3701
|
+
{}
|
|
3702
|
+
);
|
|
3713
3703
|
}
|
|
3714
3704
|
for (const key in data) {
|
|
3715
3705
|
if (isUndefined(data[key])) {
|
|
@@ -3757,11 +3747,10 @@
|
|
|
3757
3747
|
function init(element2) {
|
|
3758
3748
|
const instance = getComponent(element2, name);
|
|
3759
3749
|
if (instance) {
|
|
3760
|
-
if (data) {
|
|
3761
|
-
instance.$destroy();
|
|
3762
|
-
} else {
|
|
3750
|
+
if (!data) {
|
|
3763
3751
|
return instance;
|
|
3764
3752
|
}
|
|
3753
|
+
instance.$destroy();
|
|
3765
3754
|
}
|
|
3766
3755
|
return new Component({ el: element2, data });
|
|
3767
3756
|
}
|
|
@@ -3901,7 +3890,7 @@
|
|
|
3901
3890
|
computed: {
|
|
3902
3891
|
nav: ({ selNav }, $el) => $$(selNav, $el),
|
|
3903
3892
|
navChildren() {
|
|
3904
|
-
return this.nav.
|
|
3893
|
+
return this.nav.flatMap((nav) => children(nav));
|
|
3905
3894
|
},
|
|
3906
3895
|
selNavItem: ({ attrItem }) => `[${attrItem}],[data-${attrItem}]`,
|
|
3907
3896
|
navItems(_, $el) {
|
|
@@ -4258,75 +4247,35 @@
|
|
|
4258
4247
|
var Animations$1 = {
|
|
4259
4248
|
...Animations$2,
|
|
4260
4249
|
fade: {
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
},
|
|
4264
|
-
percent(current) {
|
|
4265
|
-
return 1 - css(current, "opacity");
|
|
4266
|
-
},
|
|
4267
|
-
translate(percent) {
|
|
4268
|
-
return [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }];
|
|
4269
|
-
}
|
|
4250
|
+
percent: (current) => 1 - css(current, "opacity"),
|
|
4251
|
+
translate: (percent) => [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }]
|
|
4270
4252
|
},
|
|
4271
4253
|
scale: {
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
},
|
|
4278
|
-
translate(percent) {
|
|
4279
|
-
return [
|
|
4280
|
-
{ opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },
|
|
4281
|
-
{ zIndex: -1 }
|
|
4282
|
-
];
|
|
4283
|
-
}
|
|
4254
|
+
percent: (current) => 1 - css(current, "opacity"),
|
|
4255
|
+
translate: (percent) => [
|
|
4256
|
+
{ opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },
|
|
4257
|
+
{ zIndex: -1 }
|
|
4258
|
+
]
|
|
4284
4259
|
},
|
|
4285
4260
|
pull: {
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
},
|
|
4295
|
-
percent(current, next, dir) {
|
|
4296
|
-
return dir < 0 ? 1 - translated(next) : translated(current);
|
|
4297
|
-
},
|
|
4298
|
-
translate(percent, dir) {
|
|
4299
|
-
return dir < 0 ? [
|
|
4300
|
-
{ transform: translate(30 * percent), zIndex: -1 },
|
|
4301
|
-
{ transform: translate(-100 * (1 - percent)), zIndex: 0 }
|
|
4302
|
-
] : [
|
|
4303
|
-
{ transform: translate(-percent * 100), zIndex: 0 },
|
|
4304
|
-
{ transform: translate(30 * (1 - percent)), zIndex: -1 }
|
|
4305
|
-
];
|
|
4306
|
-
}
|
|
4261
|
+
percent: (current, next, dir) => dir < 0 ? 1 - translated(next) : translated(current),
|
|
4262
|
+
translate: (percent, dir) => dir < 0 ? [
|
|
4263
|
+
{ transform: translate(30 * percent), zIndex: -1 },
|
|
4264
|
+
{ transform: translate(-100 * (1 - percent)), zIndex: 0 }
|
|
4265
|
+
] : [
|
|
4266
|
+
{ transform: translate(-percent * 100), zIndex: 0 },
|
|
4267
|
+
{ transform: translate(30 * (1 - percent)), zIndex: -1 }
|
|
4268
|
+
]
|
|
4307
4269
|
},
|
|
4308
4270
|
push: {
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
},
|
|
4318
|
-
percent(current, next, dir) {
|
|
4319
|
-
return dir > 0 ? 1 - translated(next) : translated(current);
|
|
4320
|
-
},
|
|
4321
|
-
translate(percent, dir) {
|
|
4322
|
-
return dir < 0 ? [
|
|
4323
|
-
{ transform: translate(percent * 100), zIndex: 0 },
|
|
4324
|
-
{ transform: translate(-30 * (1 - percent)), zIndex: -1 }
|
|
4325
|
-
] : [
|
|
4326
|
-
{ transform: translate(-30 * percent), zIndex: -1 },
|
|
4327
|
-
{ transform: translate(100 * (1 - percent)), zIndex: 0 }
|
|
4328
|
-
];
|
|
4329
|
-
}
|
|
4271
|
+
percent: (current, next, dir) => dir > 0 ? 1 - translated(next) : translated(current),
|
|
4272
|
+
translate: (percent, dir) => dir < 0 ? [
|
|
4273
|
+
{ transform: translate(percent * 100), zIndex: 0 },
|
|
4274
|
+
{ transform: translate(-30 * (1 - percent)), zIndex: -1 }
|
|
4275
|
+
] : [
|
|
4276
|
+
{ transform: translate(-30 * percent), zIndex: -1 },
|
|
4277
|
+
{ transform: translate(100 * (1 - percent)), zIndex: 0 }
|
|
4278
|
+
]
|
|
4330
4279
|
}
|
|
4331
4280
|
};
|
|
4332
4281
|
function scale3d(value) {
|
|
@@ -4336,32 +4285,15 @@
|
|
|
4336
4285
|
var Animations = {
|
|
4337
4286
|
...Animations$2,
|
|
4338
4287
|
fade: {
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
},
|
|
4342
|
-
percent(current) {
|
|
4343
|
-
return 1 - css(current, "opacity");
|
|
4344
|
-
},
|
|
4345
|
-
translate(percent) {
|
|
4346
|
-
return [{ opacity: 1 - percent }, { opacity: percent }];
|
|
4347
|
-
}
|
|
4288
|
+
percent: (current) => 1 - css(current, "opacity"),
|
|
4289
|
+
translate: (percent) => [{ opacity: 1 - percent }, { opacity: percent }]
|
|
4348
4290
|
},
|
|
4349
4291
|
scale: {
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
},
|
|
4356
|
-
percent(current) {
|
|
4357
|
-
return 1 - css(current, "opacity");
|
|
4358
|
-
},
|
|
4359
|
-
translate(percent) {
|
|
4360
|
-
return [
|
|
4361
|
-
{ opacity: 1 - percent, transform: scale3d(1 - 0.2 * percent) },
|
|
4362
|
-
{ opacity: percent, transform: scale3d(1 - 0.2 + 0.2 * percent) }
|
|
4363
|
-
];
|
|
4364
|
-
}
|
|
4292
|
+
percent: (current) => 1 - css(current, "opacity"),
|
|
4293
|
+
translate: (percent) => [
|
|
4294
|
+
{ opacity: 1 - percent, transform: scale3d(1 - 0.2 * percent) },
|
|
4295
|
+
{ opacity: percent, transform: scale3d(1 - 0.2 + 0.2 * percent) }
|
|
4296
|
+
]
|
|
4365
4297
|
}
|
|
4366
4298
|
};
|
|
4367
4299
|
|
|
@@ -4544,81 +4476,22 @@
|
|
|
4544
4476
|
if (!src) {
|
|
4545
4477
|
return;
|
|
4546
4478
|
}
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
...attrs
|
|
4561
|
-
});
|
|
4562
|
-
on(img, "load", () => this.setItem(item, parent(img) || img));
|
|
4563
|
-
on(img, "error", () => this.setError(item));
|
|
4564
|
-
} else if (type === "video" || isVideo(src)) {
|
|
4565
|
-
const inline = this.videoAutoplay === "inline";
|
|
4566
|
-
const video = createEl("video", {
|
|
4567
|
-
src,
|
|
4568
|
-
playsinline: "",
|
|
4569
|
-
controls: inline ? null : "",
|
|
4570
|
-
loop: inline ? "" : null,
|
|
4571
|
-
muted: inline ? "" : null,
|
|
4572
|
-
poster: this.videoAutoplay ? null : item.poster,
|
|
4573
|
-
"uk-video": Boolean(this.videoAutoplay),
|
|
4574
|
-
...attrs
|
|
4575
|
-
});
|
|
4576
|
-
on(video, "loadedmetadata", () => this.setItem(item, video));
|
|
4577
|
-
on(video, "error", () => this.setError(item));
|
|
4578
|
-
} else if (type === "iframe" || src.match(/\.(html|php)($|\?)/i)) {
|
|
4579
|
-
this.setItem(
|
|
4580
|
-
item,
|
|
4581
|
-
createEl("iframe", {
|
|
4582
|
-
src,
|
|
4583
|
-
allowfullscreen: "",
|
|
4584
|
-
class: "uk-lightbox-iframe",
|
|
4585
|
-
...attrs
|
|
4586
|
-
})
|
|
4587
|
-
);
|
|
4588
|
-
} else if (matches2 = src.match(
|
|
4589
|
-
/\/\/(?:.*?youtube(-nocookie)?\..*?(?:[?&]v=|\/shorts\/)|youtu\.be\/)([\w-]{11})[&?]?(.*)?/
|
|
4590
|
-
)) {
|
|
4591
|
-
this.setItem(
|
|
4592
|
-
item,
|
|
4593
|
-
createEl("iframe", {
|
|
4594
|
-
src: `https://www.youtube${matches2[1] || ""}.com/embed/${matches2[2]}${matches2[3] ? `?${matches2[3]}` : ""}`,
|
|
4595
|
-
width: 1920,
|
|
4596
|
-
height: 1080,
|
|
4597
|
-
...iframeAttrs,
|
|
4598
|
-
...attrs
|
|
4599
|
-
})
|
|
4600
|
-
);
|
|
4601
|
-
} else if (matches2 = src.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/)) {
|
|
4602
|
-
try {
|
|
4603
|
-
const { height, width } = await (await fetch(
|
|
4604
|
-
`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${encodeURI(
|
|
4605
|
-
src
|
|
4606
|
-
)}`,
|
|
4607
|
-
{ credentials: "omit" }
|
|
4608
|
-
)).json();
|
|
4609
|
-
this.setItem(
|
|
4610
|
-
item,
|
|
4611
|
-
createEl("iframe", {
|
|
4612
|
-
src: `https://player.vimeo.com/video/${matches2[1]}${matches2[2] ? `?${matches2[2]}` : ""}`,
|
|
4613
|
-
width,
|
|
4614
|
-
height,
|
|
4615
|
-
...iframeAttrs,
|
|
4616
|
-
...attrs
|
|
4617
|
-
})
|
|
4618
|
-
);
|
|
4619
|
-
} catch {
|
|
4620
|
-
this.setError(item);
|
|
4479
|
+
try {
|
|
4480
|
+
for (const loader of [
|
|
4481
|
+
loadImage,
|
|
4482
|
+
loadVideo,
|
|
4483
|
+
loadIframe,
|
|
4484
|
+
loadYouTube,
|
|
4485
|
+
loadVimeo
|
|
4486
|
+
]) {
|
|
4487
|
+
const content = await loader({ src, type, attrs, item, cmp: this });
|
|
4488
|
+
if (content) {
|
|
4489
|
+
this.setItem(item, content);
|
|
4490
|
+
return;
|
|
4491
|
+
}
|
|
4621
4492
|
}
|
|
4493
|
+
} catch {
|
|
4494
|
+
this.setError(item);
|
|
4622
4495
|
}
|
|
4623
4496
|
}
|
|
4624
4497
|
},
|
|
@@ -4678,6 +4551,91 @@
|
|
|
4678
4551
|
attr(el, attrs);
|
|
4679
4552
|
return el;
|
|
4680
4553
|
}
|
|
4554
|
+
async function loadImage({ src, type, attrs, item }) {
|
|
4555
|
+
if (type !== "image" && !isImage(src)) {
|
|
4556
|
+
return;
|
|
4557
|
+
}
|
|
4558
|
+
const img = createEl("img");
|
|
4559
|
+
wrapInPicture(img, item.sources);
|
|
4560
|
+
attr(img, {
|
|
4561
|
+
src,
|
|
4562
|
+
...pick(item, ["alt", "srcset", "sizes"]),
|
|
4563
|
+
...attrs
|
|
4564
|
+
});
|
|
4565
|
+
await img.decode();
|
|
4566
|
+
return parent(img) || img;
|
|
4567
|
+
}
|
|
4568
|
+
function loadVideo({ src, type, attrs, item, cmp }) {
|
|
4569
|
+
if (type !== "video" && !isVideo(src)) {
|
|
4570
|
+
return;
|
|
4571
|
+
}
|
|
4572
|
+
const inline = cmp.videoAutoplay === "inline";
|
|
4573
|
+
const video = createEl("video", {
|
|
4574
|
+
src,
|
|
4575
|
+
playsinline: "",
|
|
4576
|
+
controls: inline ? null : "",
|
|
4577
|
+
loop: inline ? "" : null,
|
|
4578
|
+
muted: inline ? "" : null,
|
|
4579
|
+
poster: cmp.videoAutoplay ? null : item.poster,
|
|
4580
|
+
"uk-video": Boolean(cmp.videoAutoplay),
|
|
4581
|
+
...attrs
|
|
4582
|
+
});
|
|
4583
|
+
return new Promise((resolve, reject) => {
|
|
4584
|
+
on(video, "loadedmetadata", () => resolve(video));
|
|
4585
|
+
on(video, "error", reject);
|
|
4586
|
+
});
|
|
4587
|
+
}
|
|
4588
|
+
function loadIframe({ src, type, attrs }) {
|
|
4589
|
+
if (type !== "iframe" && !/\.(html|php)($|\?)/i.test(src)) {
|
|
4590
|
+
return;
|
|
4591
|
+
}
|
|
4592
|
+
return createEl("iframe", {
|
|
4593
|
+
src,
|
|
4594
|
+
allowfullscreen: "",
|
|
4595
|
+
class: "uk-lightbox-iframe",
|
|
4596
|
+
...attrs
|
|
4597
|
+
});
|
|
4598
|
+
}
|
|
4599
|
+
function loadYouTube({ src, attrs, cmp }) {
|
|
4600
|
+
const matches2 = src.match(
|
|
4601
|
+
/\/\/(?:.*?youtube(-nocookie)?\..*?(?:[?&]v=|\/shorts\/)|youtu\.be\/)([\w-]{11})[&?]?(.*)?/
|
|
4602
|
+
);
|
|
4603
|
+
if (!matches2) {
|
|
4604
|
+
return;
|
|
4605
|
+
}
|
|
4606
|
+
return createEl("iframe", {
|
|
4607
|
+
src: `https://www.youtube${matches2[1] || ""}.com/embed/${matches2[2]}${matches2[3] ? `?${matches2[3]}` : ""}`,
|
|
4608
|
+
width: 1920,
|
|
4609
|
+
height: 1080,
|
|
4610
|
+
...getIframeAttrs(cmp),
|
|
4611
|
+
...attrs
|
|
4612
|
+
});
|
|
4613
|
+
}
|
|
4614
|
+
async function loadVimeo({ src, attrs, cmp }) {
|
|
4615
|
+
const matches2 = src.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/);
|
|
4616
|
+
if (!matches2) {
|
|
4617
|
+
return;
|
|
4618
|
+
}
|
|
4619
|
+
const { height, width } = await (await fetch(
|
|
4620
|
+
`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${encodeURIComponent(src)}`,
|
|
4621
|
+
{ credentials: "omit" }
|
|
4622
|
+
)).json();
|
|
4623
|
+
return createEl("iframe", {
|
|
4624
|
+
src: `https://player.vimeo.com/video/${matches2[1]}${matches2[2] ? `?${matches2[2]}` : ""}`,
|
|
4625
|
+
width,
|
|
4626
|
+
height,
|
|
4627
|
+
...getIframeAttrs(cmp),
|
|
4628
|
+
...attrs
|
|
4629
|
+
});
|
|
4630
|
+
}
|
|
4631
|
+
function getIframeAttrs(cmp) {
|
|
4632
|
+
return {
|
|
4633
|
+
allowfullscreen: "",
|
|
4634
|
+
style: "max-width: 100%; box-sizing: border-box;",
|
|
4635
|
+
"uk-responsive": "",
|
|
4636
|
+
"uk-video": Boolean(cmp.videoAutoplay)
|
|
4637
|
+
};
|
|
4638
|
+
}
|
|
4681
4639
|
function toThumbnavItem(item, videoAutoplay) {
|
|
4682
4640
|
const el = item.poster || item.thumb && (item.type === "image" || isImage(item.thumb)) ? createEl("img", { src: item.poster || item.thumb, alt: "" }) : item.thumb && (item.type === "video" || isVideo(item.thumb)) ? createEl("video", {
|
|
4683
4641
|
src: item.thumb,
|
|
@@ -4763,7 +4721,7 @@
|
|
|
4763
4721
|
if (items[i].thumb) {
|
|
4764
4722
|
continue;
|
|
4765
4723
|
}
|
|
4766
|
-
const parent = parents(toggle).reverse()
|
|
4724
|
+
const parent = [...parents(toggle).reverse(), toggle].find(
|
|
4767
4725
|
(parent2) => this.$el.contains(parent2) && (parent2 === toggle || $$(this.toggle, parent2).length === 1)
|
|
4768
4726
|
);
|
|
4769
4727
|
if (!parent) {
|
|
@@ -4786,6 +4744,94 @@
|
|
|
4786
4744
|
return item;
|
|
4787
4745
|
}
|
|
4788
4746
|
|
|
4747
|
+
const hasAnimationApi = inBrowser && window.Animation;
|
|
4748
|
+
var marquee = {
|
|
4749
|
+
mixins: [Class],
|
|
4750
|
+
props: {
|
|
4751
|
+
velocity: Number,
|
|
4752
|
+
start: Number,
|
|
4753
|
+
reverse: Boolean,
|
|
4754
|
+
pause: Boolean,
|
|
4755
|
+
pauseVelocity: Number,
|
|
4756
|
+
fadeSize: null
|
|
4757
|
+
},
|
|
4758
|
+
data: {
|
|
4759
|
+
velocity: 25,
|
|
4760
|
+
start: 0,
|
|
4761
|
+
reverse: false,
|
|
4762
|
+
pause: false,
|
|
4763
|
+
pauseVelocity: 10,
|
|
4764
|
+
selList: ".uk-marquee-items",
|
|
4765
|
+
fadeSize: 0
|
|
4766
|
+
},
|
|
4767
|
+
computed: {
|
|
4768
|
+
list: ({ selList }, $el) => $(selList, $el),
|
|
4769
|
+
items() {
|
|
4770
|
+
return children(this.list);
|
|
4771
|
+
}
|
|
4772
|
+
},
|
|
4773
|
+
observe: [
|
|
4774
|
+
resize({
|
|
4775
|
+
target: ({ $el, items }) => [$el, ...items]
|
|
4776
|
+
}),
|
|
4777
|
+
intersection({
|
|
4778
|
+
handler(entries) {
|
|
4779
|
+
for (const entry of entries) {
|
|
4780
|
+
entry.target.inert = !entry.isIntersecting;
|
|
4781
|
+
}
|
|
4782
|
+
},
|
|
4783
|
+
target: ({ items }) => items,
|
|
4784
|
+
args: { intersecting: false },
|
|
4785
|
+
options: ({ $el }) => ({ root: $el })
|
|
4786
|
+
})
|
|
4787
|
+
],
|
|
4788
|
+
events: {
|
|
4789
|
+
name: [pointerEnter, pointerLeave],
|
|
4790
|
+
el: ({ $el }) => $el,
|
|
4791
|
+
self: true,
|
|
4792
|
+
filter: ({ pause }) => hasAnimationApi && pause,
|
|
4793
|
+
handler(e) {
|
|
4794
|
+
for (const el of this.items) {
|
|
4795
|
+
for (const animation of el.getAnimations()) {
|
|
4796
|
+
animation.playbackRate = e.type === pointerEnter ? this.pauseVelocity / this.velocity : 1;
|
|
4797
|
+
}
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
},
|
|
4801
|
+
update: {
|
|
4802
|
+
write() {
|
|
4803
|
+
const prefix = this.$options.id;
|
|
4804
|
+
const items = this.items;
|
|
4805
|
+
const vertical = hasClass(this.$el, `${prefix}-vertical`);
|
|
4806
|
+
css(items, "offset", "none");
|
|
4807
|
+
const dir = vertical ? ["top", "bottom"] : ["left", "right"];
|
|
4808
|
+
if (!vertical && isRtl) {
|
|
4809
|
+
dir.reverse();
|
|
4810
|
+
}
|
|
4811
|
+
const listStart = dimensions$1(this.list)[dir[0]];
|
|
4812
|
+
const listEnd = Math[!vertical && isRtl ? "min" : "max"](
|
|
4813
|
+
...items.map((el) => dimensions$1(el)[dir[1]])
|
|
4814
|
+
);
|
|
4815
|
+
for (const el of items) {
|
|
4816
|
+
const elEnd = dimensions$1(el)[dir[1]];
|
|
4817
|
+
const line1 = listEnd - elEnd;
|
|
4818
|
+
const line2 = elEnd - listStart;
|
|
4819
|
+
const path = vertical ? `"M0 0 v${line1}M0 ${-line2} v${line2}"` : `"M0 0 h${line1}M${-line2} 0 h${line2}"`;
|
|
4820
|
+
css(el, `--${prefix}-path`, path);
|
|
4821
|
+
}
|
|
4822
|
+
css(this.$el, {
|
|
4823
|
+
[`--${prefix}-duration`]: `${Math.abs(listStart - listEnd) / this.velocity}s`,
|
|
4824
|
+
[`--${prefix}-start`]: this.start,
|
|
4825
|
+
[`--${prefix}-direction`]: this.reverse ? "reverse" : "normal",
|
|
4826
|
+
"--uk-overflow-fade-size": this.fadeSize ? `${toPx(this.fadeSize, vertical ? "height" : "width", this.$el, true)}px` : ""
|
|
4827
|
+
});
|
|
4828
|
+
toggleClass(this.$el, `${prefix}-fade`, this.fadeSize);
|
|
4829
|
+
css(items, "offset", "");
|
|
4830
|
+
},
|
|
4831
|
+
events: ["resize"]
|
|
4832
|
+
}
|
|
4833
|
+
};
|
|
4834
|
+
|
|
4789
4835
|
var notification = {
|
|
4790
4836
|
mixins: [Container],
|
|
4791
4837
|
functional: true,
|
|
@@ -5218,10 +5264,7 @@
|
|
|
5218
5264
|
return val;
|
|
5219
5265
|
}
|
|
5220
5266
|
function fillObject(keys2, value) {
|
|
5221
|
-
return keys2.
|
|
5222
|
-
data[prop] = value;
|
|
5223
|
-
return data;
|
|
5224
|
-
}, {});
|
|
5267
|
+
return Object.fromEntries(keys2.map((prop) => [prop, value]));
|
|
5225
5268
|
}
|
|
5226
5269
|
function ease(percent, easing) {
|
|
5227
5270
|
return easing >= 0 ? Math.pow(percent, easing + 1) : 1 - Math.pow(1 - percent, 1 - easing);
|
|
@@ -5295,16 +5338,14 @@
|
|
|
5295
5338
|
return el ? "offsetTop" in el ? el : getOffsetElement(parent(el)) : document.documentElement;
|
|
5296
5339
|
}
|
|
5297
5340
|
|
|
5298
|
-
var
|
|
5341
|
+
var ScrollDriven = {
|
|
5299
5342
|
props: {
|
|
5300
|
-
parallax: Boolean,
|
|
5301
5343
|
parallaxTarget: Boolean,
|
|
5302
5344
|
parallaxStart: String,
|
|
5303
5345
|
parallaxEnd: String,
|
|
5304
5346
|
parallaxEasing: Number
|
|
5305
5347
|
},
|
|
5306
5348
|
data: {
|
|
5307
|
-
parallax: false,
|
|
5308
5349
|
parallaxTarget: false,
|
|
5309
5350
|
parallaxStart: 0,
|
|
5310
5351
|
parallaxEnd: 0,
|
|
@@ -5318,26 +5359,48 @@
|
|
|
5318
5359
|
scroll$1({ filter: ({ parallax }) => parallax })
|
|
5319
5360
|
],
|
|
5320
5361
|
computed: {
|
|
5362
|
+
parallaxTargetFallback: ($props, $el) => $el,
|
|
5321
5363
|
parallaxTarget({ parallaxTarget }, $el) {
|
|
5322
|
-
return parallaxTarget && query(parallaxTarget, $el) || this.
|
|
5364
|
+
return parallaxTarget && query(parallaxTarget, $el) || this.parallaxTargetFallback;
|
|
5323
5365
|
}
|
|
5324
5366
|
},
|
|
5325
5367
|
update: {
|
|
5326
5368
|
read() {
|
|
5327
5369
|
if (!this.parallax) {
|
|
5328
|
-
return
|
|
5370
|
+
return;
|
|
5329
5371
|
}
|
|
5330
5372
|
const target = this.parallaxTarget;
|
|
5331
5373
|
if (!target) {
|
|
5332
|
-
return
|
|
5374
|
+
return;
|
|
5333
5375
|
}
|
|
5334
5376
|
const start = toPx(this.parallaxStart, "height", target, true);
|
|
5335
5377
|
const end = toPx(this.parallaxEnd, "height", target, true);
|
|
5336
5378
|
const percent = ease(scrolledOver(target, start, end), this.parallaxEasing);
|
|
5337
|
-
return {
|
|
5379
|
+
return { percent };
|
|
5338
5380
|
},
|
|
5339
|
-
|
|
5340
|
-
|
|
5381
|
+
events: ["scroll", "resize"]
|
|
5382
|
+
}
|
|
5383
|
+
};
|
|
5384
|
+
|
|
5385
|
+
var SliderParallax = {
|
|
5386
|
+
mixins: [ScrollDriven],
|
|
5387
|
+
props: {
|
|
5388
|
+
parallax: Boolean
|
|
5389
|
+
},
|
|
5390
|
+
data: {
|
|
5391
|
+
parallax: false
|
|
5392
|
+
},
|
|
5393
|
+
computed: {
|
|
5394
|
+
parallaxTargetFallback() {
|
|
5395
|
+
return this.list;
|
|
5396
|
+
}
|
|
5397
|
+
},
|
|
5398
|
+
update: {
|
|
5399
|
+
write({ percent }) {
|
|
5400
|
+
if (!this.parallax) {
|
|
5401
|
+
return;
|
|
5402
|
+
}
|
|
5403
|
+
const [prevIndex, slidePercent] = this.getIndexAt(percent);
|
|
5341
5404
|
const nextIndex = this.getValidIndex(prevIndex + Math.ceil(slidePercent));
|
|
5342
5405
|
const prev = this.slides[prevIndex];
|
|
5343
5406
|
const next = this.slides[nextIndex];
|
|
@@ -6247,7 +6310,7 @@
|
|
|
6247
6310
|
inset: false
|
|
6248
6311
|
},
|
|
6249
6312
|
connected() {
|
|
6250
|
-
this.pos = this.$props.pos.split("-")
|
|
6313
|
+
this.pos = [...this.$props.pos.split("-"), "center"].slice(0, 2);
|
|
6251
6314
|
[this.dir, this.align] = this.pos;
|
|
6252
6315
|
this.axis = includes(["top", "bottom"], this.dir) ? "y" : "x";
|
|
6253
6316
|
},
|
|
@@ -6426,10 +6489,12 @@
|
|
|
6426
6489
|
}
|
|
6427
6490
|
function parseProps(options) {
|
|
6428
6491
|
const { el, id, data: data$1 } = options;
|
|
6429
|
-
return
|
|
6492
|
+
return {
|
|
6493
|
+
delay: data(el, "delay"),
|
|
6494
|
+
title: data(el, "title"),
|
|
6430
6495
|
...parseOptions(data(el, id), ["title"]),
|
|
6431
6496
|
...data$1
|
|
6432
|
-
}
|
|
6497
|
+
};
|
|
6433
6498
|
}
|
|
6434
6499
|
|
|
6435
6500
|
var upload = {
|
|
@@ -6648,6 +6713,7 @@
|
|
|
6648
6713
|
Filter: filter,
|
|
6649
6714
|
Lightbox: lightbox,
|
|
6650
6715
|
LightboxPanel: LightboxPanel,
|
|
6716
|
+
Marquee: marquee,
|
|
6651
6717
|
Notification: notification,
|
|
6652
6718
|
Parallax: parallax,
|
|
6653
6719
|
Slider: slider,
|
|
@@ -6731,28 +6797,78 @@
|
|
|
6731
6797
|
globalApi(App);
|
|
6732
6798
|
instanceApi(App);
|
|
6733
6799
|
|
|
6800
|
+
var Connect = {
|
|
6801
|
+
mixins: [Togglable],
|
|
6802
|
+
props: {
|
|
6803
|
+
connect: String
|
|
6804
|
+
},
|
|
6805
|
+
data: {
|
|
6806
|
+
connect: "",
|
|
6807
|
+
cls: "uk-active"
|
|
6808
|
+
},
|
|
6809
|
+
computed: {
|
|
6810
|
+
connects: {
|
|
6811
|
+
get: ({ connect }, $el) => connect ? queryAll(connect, $el) : [],
|
|
6812
|
+
observe: ({ connect }) => connect
|
|
6813
|
+
},
|
|
6814
|
+
connectChildren() {
|
|
6815
|
+
return this.connects.flatMap((el) => children(el));
|
|
6816
|
+
}
|
|
6817
|
+
},
|
|
6818
|
+
watch: {
|
|
6819
|
+
connects(connects) {
|
|
6820
|
+
for (const el of connects) {
|
|
6821
|
+
if (isTag(el, "ul")) {
|
|
6822
|
+
el.role = "presentation";
|
|
6823
|
+
}
|
|
6824
|
+
}
|
|
6825
|
+
}
|
|
6826
|
+
},
|
|
6827
|
+
observe: lazyload({ targets: ({ connectChildren }) => connectChildren }),
|
|
6828
|
+
methods: {
|
|
6829
|
+
showConnects(index, animate) {
|
|
6830
|
+
const toggle = async ({ children: children2 }) => {
|
|
6831
|
+
const actives = toArray(children2).filter(
|
|
6832
|
+
(child, i) => i !== index && hasClass(child, this.cls)
|
|
6833
|
+
);
|
|
6834
|
+
if (await this.toggleElement(actives, false, animate)) {
|
|
6835
|
+
if (!hasClass(children2[index], this.cls)) {
|
|
6836
|
+
await this.toggleElement(children2[index], true, animate);
|
|
6837
|
+
}
|
|
6838
|
+
}
|
|
6839
|
+
};
|
|
6840
|
+
return Promise.all(this.connects.map(toggle));
|
|
6841
|
+
}
|
|
6842
|
+
}
|
|
6843
|
+
};
|
|
6844
|
+
|
|
6734
6845
|
var Accordion = {
|
|
6735
|
-
mixins: [Class,
|
|
6846
|
+
mixins: [Class, Connect],
|
|
6736
6847
|
props: {
|
|
6737
|
-
animation: Boolean,
|
|
6738
6848
|
targets: String,
|
|
6739
6849
|
active: null,
|
|
6740
6850
|
collapsible: Boolean,
|
|
6741
6851
|
multiple: Boolean,
|
|
6742
6852
|
toggle: String,
|
|
6743
6853
|
content: String,
|
|
6744
|
-
offset: Number
|
|
6854
|
+
offset: Number,
|
|
6855
|
+
switcherConnect: String
|
|
6745
6856
|
},
|
|
6746
6857
|
data: {
|
|
6747
6858
|
targets: "> *",
|
|
6748
6859
|
active: false,
|
|
6749
|
-
animation: true,
|
|
6860
|
+
animation: [true],
|
|
6750
6861
|
collapsible: true,
|
|
6751
6862
|
multiple: false,
|
|
6752
6863
|
clsOpen: "uk-open",
|
|
6864
|
+
cls: "uk-active",
|
|
6753
6865
|
toggle: ".uk-accordion-title",
|
|
6754
6866
|
content: ".uk-accordion-content",
|
|
6755
|
-
offset: 0
|
|
6867
|
+
offset: 0,
|
|
6868
|
+
switcherConnect: ""
|
|
6869
|
+
},
|
|
6870
|
+
beforeConnect() {
|
|
6871
|
+
this.connect = this.$props.connect = this.switcherConnect;
|
|
6756
6872
|
},
|
|
6757
6873
|
computed: {
|
|
6758
6874
|
items: ({ targets }, $el) => $$(targets, $el),
|
|
@@ -6776,6 +6892,12 @@
|
|
|
6776
6892
|
this.toggle(active, false);
|
|
6777
6893
|
}
|
|
6778
6894
|
},
|
|
6895
|
+
connectChildren() {
|
|
6896
|
+
this.showConnects(
|
|
6897
|
+
findIndex(this.items, (el) => hasClass(el, this.clsOpen)),
|
|
6898
|
+
false
|
|
6899
|
+
);
|
|
6900
|
+
},
|
|
6779
6901
|
toggles() {
|
|
6780
6902
|
this.$emit();
|
|
6781
6903
|
},
|
|
@@ -6826,43 +6948,66 @@
|
|
|
6826
6948
|
continue;
|
|
6827
6949
|
}
|
|
6828
6950
|
toggle.id = generateId(this, toggle);
|
|
6829
|
-
content.id = generateId(this, content);
|
|
6830
6951
|
const active = includes(activeItems, this.items[index2]);
|
|
6952
|
+
attr(content, {
|
|
6953
|
+
id: generateId(this, content),
|
|
6954
|
+
role: "region",
|
|
6955
|
+
"aria-labelledby": toggle.id
|
|
6956
|
+
});
|
|
6957
|
+
if (isTag(content, "ul")) {
|
|
6958
|
+
attr(children(content), "role", "presentation");
|
|
6959
|
+
}
|
|
6960
|
+
const controls = [content.id];
|
|
6961
|
+
for (const { children: children2 } of this.connects) {
|
|
6962
|
+
const item = children2[index2];
|
|
6963
|
+
if (!item) {
|
|
6964
|
+
continue;
|
|
6965
|
+
}
|
|
6966
|
+
attr(item, {
|
|
6967
|
+
id: generateId(this, item),
|
|
6968
|
+
role: "tabpanel",
|
|
6969
|
+
"aria-labelledby": toggle.id
|
|
6970
|
+
});
|
|
6971
|
+
controls.push(item.id);
|
|
6972
|
+
}
|
|
6831
6973
|
attr(toggle, {
|
|
6832
6974
|
role: isTag(toggle, "a") ? "button" : null,
|
|
6833
|
-
"aria-controls":
|
|
6975
|
+
"aria-controls": controls.join(" "),
|
|
6834
6976
|
"aria-expanded": active,
|
|
6835
6977
|
"aria-disabled": !this.collapsible && activeItems.length < 2 && active
|
|
6836
6978
|
});
|
|
6837
|
-
attr(content, { role: "region", "aria-labelledby": toggle.id });
|
|
6838
|
-
if (isTag(content, "ul")) {
|
|
6839
|
-
attr(children(content), "role", "presentation");
|
|
6840
|
-
}
|
|
6841
6979
|
}
|
|
6842
6980
|
},
|
|
6843
6981
|
methods: {
|
|
6844
|
-
toggle(item, animate) {
|
|
6845
|
-
|
|
6982
|
+
async toggle(item, animate) {
|
|
6983
|
+
animate = animate !== false;
|
|
6984
|
+
const next = getIndex(item, this.items);
|
|
6985
|
+
item = this.items[next];
|
|
6846
6986
|
let items = [item];
|
|
6847
6987
|
const activeItems = filter$1(this.items, `.${this.clsOpen}`);
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
)
|
|
6865
|
-
|
|
6988
|
+
const isActive = includes(activeItems, item);
|
|
6989
|
+
if (isActive && !this.collapsible && activeItems.length < 2) {
|
|
6990
|
+
return;
|
|
6991
|
+
}
|
|
6992
|
+
if (!isActive && !this.multiple) {
|
|
6993
|
+
items.push(...activeItems);
|
|
6994
|
+
}
|
|
6995
|
+
const toggle = (el) => this.toggleElement(el, !includes(activeItems, el), (el2, show) => {
|
|
6996
|
+
toggleClass(el2, this.clsOpen, show);
|
|
6997
|
+
if (!animate || !this.hasAnimation) {
|
|
6998
|
+
hide($(this.content, el2), !show);
|
|
6999
|
+
return;
|
|
7000
|
+
}
|
|
7001
|
+
return transition(el2, show, this);
|
|
7002
|
+
});
|
|
7003
|
+
const hideIndex = () => {
|
|
7004
|
+
const index2 = findIndex(children(this.connects[0]), (el) => hasClass(el, this.cls));
|
|
7005
|
+
return index2 === next ? findIndex(this.items, (i) => i !== item && includes(activeItems, i)) : index2;
|
|
7006
|
+
};
|
|
7007
|
+
return Promise.all([
|
|
7008
|
+
...items.map(toggle),
|
|
7009
|
+
this.showConnects(isActive ? hideIndex() : next, animate)
|
|
7010
|
+
]);
|
|
6866
7011
|
}
|
|
6867
7012
|
}
|
|
6868
7013
|
};
|
|
@@ -6953,22 +7098,40 @@
|
|
|
6953
7098
|
);
|
|
6954
7099
|
}
|
|
6955
7100
|
|
|
7101
|
+
const loopKey = /* @__PURE__ */ Symbol();
|
|
6956
7102
|
var Video = {
|
|
7103
|
+
mixins: [ScrollDriven],
|
|
6957
7104
|
args: "autoplay",
|
|
6958
7105
|
props: {
|
|
6959
7106
|
automute: Boolean,
|
|
6960
7107
|
autoplay: Boolean,
|
|
6961
7108
|
restart: Boolean,
|
|
6962
|
-
|
|
7109
|
+
inviewMargin: String,
|
|
7110
|
+
inviewQueued: Number,
|
|
7111
|
+
hoverTarget: Boolean,
|
|
7112
|
+
hoverRewind: Number,
|
|
7113
|
+
reducedMotionTime: Number
|
|
6963
7114
|
},
|
|
6964
7115
|
data: {
|
|
6965
7116
|
automute: false,
|
|
6966
7117
|
autoplay: true,
|
|
6967
7118
|
restart: false,
|
|
6968
|
-
|
|
7119
|
+
inviewMargin: "0px",
|
|
7120
|
+
inviewQueued: 0,
|
|
7121
|
+
hoverTarget: false,
|
|
7122
|
+
hoverRewind: 0,
|
|
7123
|
+
reducedMotionTime: 0
|
|
6969
7124
|
},
|
|
6970
7125
|
beforeConnect() {
|
|
6971
7126
|
const isVideo = isTag(this.$el, "video");
|
|
7127
|
+
this.restart = isVideo && this.restart;
|
|
7128
|
+
this.parallax = isVideo && this.autoplay === "parallax";
|
|
7129
|
+
this.manualControl = ["hover", "parallax"].includes(this.autoplay);
|
|
7130
|
+
this.inviewQueued = this.autoplay === "inview" && this.inviewQueued;
|
|
7131
|
+
if (this.inviewQueued) {
|
|
7132
|
+
this.$el[loopKey] = this.$el.loop;
|
|
7133
|
+
this.$el.loop = false;
|
|
7134
|
+
}
|
|
6972
7135
|
if (this.autoplay === "inview" && isVideo && !hasAttr(this.$el, "preload")) {
|
|
6973
7136
|
this.$el.preload = "none";
|
|
6974
7137
|
}
|
|
@@ -6977,7 +7140,10 @@
|
|
|
6977
7140
|
}
|
|
6978
7141
|
if (this.autoplay === "hover") {
|
|
6979
7142
|
if (isVideo) {
|
|
6980
|
-
this
|
|
7143
|
+
this.hoverTarget = query(this.hoverTarget, this.$el) || this.$el;
|
|
7144
|
+
if (!isFocusable(this.hoverTarget)) {
|
|
7145
|
+
this.hoverTarget.tabIndex = 0;
|
|
7146
|
+
}
|
|
6981
7147
|
} else {
|
|
6982
7148
|
this.autoplay = true;
|
|
6983
7149
|
}
|
|
@@ -6986,27 +7152,48 @@
|
|
|
6986
7152
|
mute(this.$el);
|
|
6987
7153
|
}
|
|
6988
7154
|
},
|
|
7155
|
+
disconnected() {
|
|
7156
|
+
if (this.$el[loopKey]) {
|
|
7157
|
+
this.$el.loop = true;
|
|
7158
|
+
}
|
|
7159
|
+
queue.delete(this.$el);
|
|
7160
|
+
},
|
|
6989
7161
|
events: [
|
|
6990
7162
|
{
|
|
6991
7163
|
name: `${pointerEnter} focusin`,
|
|
6992
|
-
el: ({ hoverTarget
|
|
7164
|
+
el: ({ hoverTarget }) => hoverTarget,
|
|
6993
7165
|
filter: ({ autoplay }) => autoplay === "hover",
|
|
6994
7166
|
handler(e) {
|
|
7167
|
+
var _a;
|
|
7168
|
+
(_a = this._reverseAbort) == null ? void 0 : _a.abort();
|
|
6995
7169
|
if (!isTouch(e) || !isPlaying(this.$el)) {
|
|
6996
|
-
play(
|
|
7170
|
+
this.play();
|
|
6997
7171
|
} else {
|
|
6998
|
-
|
|
7172
|
+
this.pause();
|
|
6999
7173
|
}
|
|
7000
7174
|
}
|
|
7001
7175
|
},
|
|
7002
7176
|
{
|
|
7003
7177
|
name: `${pointerLeave} focusout`,
|
|
7004
|
-
el: ({ hoverTarget
|
|
7178
|
+
el: ({ hoverTarget }) => hoverTarget,
|
|
7005
7179
|
filter: ({ autoplay }) => autoplay === "hover",
|
|
7006
7180
|
handler(e) {
|
|
7181
|
+
var _a;
|
|
7007
7182
|
if (!isTouch(e)) {
|
|
7008
|
-
|
|
7183
|
+
(_a = this._reverseAbort) == null ? void 0 : _a.abort();
|
|
7184
|
+
this.pause();
|
|
7185
|
+
this._reverseAbort = playReverse(this.$el, this.hoverRewind);
|
|
7186
|
+
}
|
|
7187
|
+
}
|
|
7188
|
+
},
|
|
7189
|
+
{
|
|
7190
|
+
name: "error pause ended",
|
|
7191
|
+
filter: ({ inviewQueued }) => inviewQueued,
|
|
7192
|
+
handler(e) {
|
|
7193
|
+
if (e.type === "error" || e.type === "ended" && !this.$el[loopKey]) {
|
|
7194
|
+
queue.delete(this.$el);
|
|
7009
7195
|
}
|
|
7196
|
+
playNextQueued();
|
|
7010
7197
|
}
|
|
7011
7198
|
}
|
|
7012
7199
|
],
|
|
@@ -7019,33 +7206,118 @@
|
|
|
7019
7206
|
}
|
|
7020
7207
|
}),
|
|
7021
7208
|
intersection({
|
|
7022
|
-
filter: ({ $el,
|
|
7023
|
-
handler([{ isIntersecting
|
|
7209
|
+
filter: ({ $el, manualControl }) => !manualControl && $el.preload !== "none",
|
|
7210
|
+
handler([{ isIntersecting }]) {
|
|
7024
7211
|
if (!document.fullscreenElement) {
|
|
7025
7212
|
if (isIntersecting) {
|
|
7026
7213
|
if (this.autoplay) {
|
|
7027
|
-
|
|
7214
|
+
this._autoplay();
|
|
7028
7215
|
}
|
|
7029
7216
|
} else {
|
|
7030
|
-
|
|
7217
|
+
this.pause();
|
|
7031
7218
|
}
|
|
7032
7219
|
}
|
|
7033
7220
|
},
|
|
7034
7221
|
args: { intersecting: false },
|
|
7035
|
-
options: ({ $el, autoplay }) => ({
|
|
7036
|
-
root: autoplay === "inview" ? null : parent($el).closest(":not(a)")
|
|
7222
|
+
options: ({ $el, autoplay, inviewMargin }) => ({
|
|
7223
|
+
root: autoplay === "inview" ? null : parent($el).closest(":not(a)"),
|
|
7224
|
+
rootMargin: autoplay === "inview" ? inviewMargin : "0px"
|
|
7037
7225
|
})
|
|
7038
7226
|
})
|
|
7039
|
-
]
|
|
7227
|
+
],
|
|
7228
|
+
update: {
|
|
7229
|
+
write({ percent }) {
|
|
7230
|
+
if (!this.parallax) {
|
|
7231
|
+
return;
|
|
7232
|
+
}
|
|
7233
|
+
const { duration, seeking } = this.$el;
|
|
7234
|
+
if (!isNaN(duration) && !seeking) {
|
|
7235
|
+
this.$el.currentTime = percent * duration;
|
|
7236
|
+
}
|
|
7237
|
+
},
|
|
7238
|
+
events: ["scroll", "resize"]
|
|
7239
|
+
},
|
|
7240
|
+
methods: {
|
|
7241
|
+
_autoplay() {
|
|
7242
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
7243
|
+
this.pause();
|
|
7244
|
+
if (isTag(this.$el, "video")) {
|
|
7245
|
+
this.$el.currentTime = this.reducedMotionTime;
|
|
7246
|
+
}
|
|
7247
|
+
} else {
|
|
7248
|
+
this.play();
|
|
7249
|
+
}
|
|
7250
|
+
},
|
|
7251
|
+
play() {
|
|
7252
|
+
if (this.inviewQueued) {
|
|
7253
|
+
queue.set(this.$el, this.inviewQueued);
|
|
7254
|
+
playNextQueued();
|
|
7255
|
+
} else {
|
|
7256
|
+
play(this.$el);
|
|
7257
|
+
}
|
|
7258
|
+
},
|
|
7259
|
+
pause() {
|
|
7260
|
+
pause(this.$el);
|
|
7261
|
+
queue.delete(this.$el);
|
|
7262
|
+
if (this.restart) {
|
|
7263
|
+
this.$el.currentTime = 0;
|
|
7264
|
+
}
|
|
7265
|
+
}
|
|
7266
|
+
}
|
|
7040
7267
|
};
|
|
7041
7268
|
function isPlaying(videoEl) {
|
|
7042
7269
|
return !videoEl.paused && !videoEl.ended;
|
|
7043
7270
|
}
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7271
|
+
const queue = /* @__PURE__ */ new Map();
|
|
7272
|
+
const played = /* @__PURE__ */ new WeakMap();
|
|
7273
|
+
let frame;
|
|
7274
|
+
async function playNextQueued() {
|
|
7275
|
+
cancelAnimationFrame(frame);
|
|
7276
|
+
await new Promise((resolve) => frame = requestAnimationFrame(resolve));
|
|
7277
|
+
const getPlayed = (el) => {
|
|
7278
|
+
var _a;
|
|
7279
|
+
return (_a = played.get(el)) != null ? _a : 0;
|
|
7280
|
+
};
|
|
7281
|
+
const videos = shuffle(queue.keys()).sort((a, b) => getPlayed(a) - getPlayed(b));
|
|
7282
|
+
for (const el of videos) {
|
|
7283
|
+
const maxQueued = queue.get(el);
|
|
7284
|
+
if (isPlaying(el) || videos.filter(isPlaying).length / queue.size >= maxQueued) {
|
|
7285
|
+
continue;
|
|
7286
|
+
}
|
|
7287
|
+
played.set(el, getPlayed(el) + 1);
|
|
7288
|
+
play(el);
|
|
7289
|
+
}
|
|
7290
|
+
}
|
|
7291
|
+
function shuffle(array) {
|
|
7292
|
+
array = [...array];
|
|
7293
|
+
for (let i = array.length - 1; i > 0; i--) {
|
|
7294
|
+
let j = Math.floor(Math.random() * (i + 1));
|
|
7295
|
+
[array[i], array[j]] = [array[j], array[i]];
|
|
7048
7296
|
}
|
|
7297
|
+
return array;
|
|
7298
|
+
}
|
|
7299
|
+
function playReverse(el, playbackRate) {
|
|
7300
|
+
const start = el.currentTime;
|
|
7301
|
+
if (isNaN(start) || !playbackRate) {
|
|
7302
|
+
return;
|
|
7303
|
+
}
|
|
7304
|
+
playbackRate *= Math.max(1, start / 10 + 0.5);
|
|
7305
|
+
const controller = new AbortController();
|
|
7306
|
+
const time = Date.now();
|
|
7307
|
+
(function next() {
|
|
7308
|
+
requestAnimationFrame(() => {
|
|
7309
|
+
if (controller.signal.aborted) {
|
|
7310
|
+
return;
|
|
7311
|
+
}
|
|
7312
|
+
if (!el.seeking) {
|
|
7313
|
+
el.currentTime = Math.max(0, start - (Date.now() - time) * playbackRate / 1e3);
|
|
7314
|
+
}
|
|
7315
|
+
if (el.currentTime > 0) {
|
|
7316
|
+
next();
|
|
7317
|
+
}
|
|
7318
|
+
});
|
|
7319
|
+
})();
|
|
7320
|
+
return controller;
|
|
7049
7321
|
}
|
|
7050
7322
|
|
|
7051
7323
|
var cover = {
|
|
@@ -7363,6 +7635,7 @@
|
|
|
7363
7635
|
css(this.$el, this._style);
|
|
7364
7636
|
this.$el.hidden = true;
|
|
7365
7637
|
const viewports = this.target.map((target) => getViewport$1(this.$el, target));
|
|
7638
|
+
const boundaryOffsets = this.boundary.map((el) => offset(el));
|
|
7366
7639
|
const viewportOffset = this.getViewportOffset(this.$el);
|
|
7367
7640
|
const dirs = [
|
|
7368
7641
|
[0, ["x", "width", "left", "right"]],
|
|
@@ -7372,7 +7645,7 @@
|
|
|
7372
7645
|
if (this.axis !== axis && includes([axis, true], this.stretch)) {
|
|
7373
7646
|
css(this.$el, {
|
|
7374
7647
|
[prop]: Math.min(
|
|
7375
|
-
|
|
7648
|
+
boundaryOffsets[i][prop],
|
|
7376
7649
|
viewports[i][prop] - 2 * viewportOffset
|
|
7377
7650
|
),
|
|
7378
7651
|
[`overflow-${axis}`]: "auto"
|
|
@@ -7394,10 +7667,10 @@
|
|
|
7394
7667
|
const elOffset = offset(this.$el);
|
|
7395
7668
|
css(this.$el, {
|
|
7396
7669
|
[prop]: (targetOffset[start] > elOffset[start] ? targetOffset[this.inset ? end : start] - Math.max(
|
|
7397
|
-
|
|
7670
|
+
boundaryOffsets[i][start],
|
|
7398
7671
|
viewports[i][start] + viewportOffset
|
|
7399
7672
|
) : Math.min(
|
|
7400
|
-
|
|
7673
|
+
boundaryOffsets[i][end],
|
|
7401
7674
|
viewports[i][end] - viewportOffset
|
|
7402
7675
|
) - targetOffset[this.inset ? start : end]) - positionOffset,
|
|
7403
7676
|
[`overflow-${axis}`]: "auto"
|
|
@@ -7426,7 +7699,7 @@
|
|
|
7426
7699
|
observeViewportResize(update),
|
|
7427
7700
|
observeResize(overflowParents(drop.$el).concat(drop.target), update)
|
|
7428
7701
|
];
|
|
7429
|
-
return () => off.
|
|
7702
|
+
return () => off.forEach((observer) => observer.disconnect());
|
|
7430
7703
|
}
|
|
7431
7704
|
function listenForScroll(drop, fn = () => drop.$emit()) {
|
|
7432
7705
|
return on([document, ...overflowParents(drop.$el)], "scroll", fn, {
|
|
@@ -7661,7 +7934,9 @@
|
|
|
7661
7934
|
const drop = this.getDropdown(target);
|
|
7662
7935
|
const adjustHeight = () => {
|
|
7663
7936
|
const maxBottom = Math.max(
|
|
7664
|
-
...parents(target, `.${this.clsDrop}`)
|
|
7937
|
+
...[...parents(target, `.${this.clsDrop}`), target].map(
|
|
7938
|
+
(el) => offset(el).bottom
|
|
7939
|
+
)
|
|
7665
7940
|
);
|
|
7666
7941
|
offset(this.dropbar, {
|
|
7667
7942
|
left: offset(this.dropbar).left,
|
|
@@ -7850,7 +8125,8 @@
|
|
|
7850
8125
|
parallaxJustify: Boolean
|
|
7851
8126
|
},
|
|
7852
8127
|
data: {
|
|
7853
|
-
margin: "
|
|
8128
|
+
margin: "",
|
|
8129
|
+
firstRow: "uk-first-row",
|
|
7854
8130
|
clsStack: "uk-grid-stack",
|
|
7855
8131
|
masonry: false,
|
|
7856
8132
|
parallax: 0,
|
|
@@ -7872,14 +8148,14 @@
|
|
|
7872
8148
|
{
|
|
7873
8149
|
read(data) {
|
|
7874
8150
|
const { rows } = data;
|
|
7875
|
-
let { masonry, parallax, parallaxJustify
|
|
8151
|
+
let { masonry, parallax, parallaxJustify } = this;
|
|
7876
8152
|
parallax = Math.max(0, toPx(parallax));
|
|
7877
8153
|
if (!(masonry || parallax || parallaxJustify) || positionedAbsolute(rows) || rows[0].some(
|
|
7878
8154
|
(el, i) => rows.some((row) => row[i] && row[i].offsetWidth !== el.offsetWidth)
|
|
7879
8155
|
)) {
|
|
7880
8156
|
return data.translates = data.scrollColumns = false;
|
|
7881
8157
|
}
|
|
7882
|
-
let gutter =
|
|
8158
|
+
let gutter = toFloat(css(this.$el, "row-gap"));
|
|
7883
8159
|
let columns;
|
|
7884
8160
|
let translates;
|
|
7885
8161
|
if (masonry) {
|
|
@@ -7972,10 +8248,6 @@
|
|
|
7972
8248
|
}
|
|
7973
8249
|
return [columns, translates];
|
|
7974
8250
|
}
|
|
7975
|
-
function getGutter(rows, cls) {
|
|
7976
|
-
const node = rows.flat().find((el) => hasClass(el, cls));
|
|
7977
|
-
return toFloat(node ? css(node, "marginTop") : css(rows[0][0], "paddingLeft"));
|
|
7978
|
-
}
|
|
7979
8251
|
function transpose(rows) {
|
|
7980
8252
|
const columns = [];
|
|
7981
8253
|
for (const row of rows) {
|
|
@@ -8006,7 +8278,7 @@
|
|
|
8006
8278
|
elements: ({ target }, $el) => $$(target, $el)
|
|
8007
8279
|
},
|
|
8008
8280
|
observe: resize({
|
|
8009
|
-
target: ({ $el, elements }) => elements.
|
|
8281
|
+
target: ({ $el, elements }) => [$el, ...elements.flatMap((el) => [el, ...el.children])]
|
|
8010
8282
|
}),
|
|
8011
8283
|
events: {
|
|
8012
8284
|
// Hidden elements may change height when fonts load
|
|
@@ -9015,11 +9287,11 @@
|
|
|
9015
9287
|
],
|
|
9016
9288
|
update: {
|
|
9017
9289
|
read() {
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9290
|
+
return {
|
|
9291
|
+
overflow: ["Width", "Height"].map(
|
|
9292
|
+
(prop) => this.$el[`scroll${prop}`] - this.$el[`client${prop}`]
|
|
9293
|
+
)
|
|
9294
|
+
};
|
|
9023
9295
|
},
|
|
9024
9296
|
write({ overflow }) {
|
|
9025
9297
|
for (let i = 0; i < 2; i++) {
|
|
@@ -9650,7 +9922,7 @@
|
|
|
9650
9922
|
if (!value) {
|
|
9651
9923
|
return 0;
|
|
9652
9924
|
}
|
|
9653
|
-
if (isNumeric(value) || isString(value) &&
|
|
9925
|
+
if (isNumeric(value) || isString(value) && /^-?\d/.test(value)) {
|
|
9654
9926
|
return propOffset + toPx(value, "height", el, true);
|
|
9655
9927
|
} else {
|
|
9656
9928
|
const refElement = value === true ? getVisibleParent(el) : query(value, el);
|
|
@@ -9765,10 +10037,9 @@
|
|
|
9765
10037
|
|
|
9766
10038
|
const selDisabled = ".uk-disabled *, .uk-disabled, [disabled]";
|
|
9767
10039
|
var Switcher = {
|
|
9768
|
-
mixins: [
|
|
10040
|
+
mixins: [Connect],
|
|
9769
10041
|
args: "connect",
|
|
9770
10042
|
props: {
|
|
9771
|
-
connect: String,
|
|
9772
10043
|
toggle: String,
|
|
9773
10044
|
itemNav: String,
|
|
9774
10045
|
active: Number,
|
|
@@ -9780,20 +10051,12 @@
|
|
|
9780
10051
|
toggle: "> * > :first-child",
|
|
9781
10052
|
itemNav: false,
|
|
9782
10053
|
active: 0,
|
|
9783
|
-
cls: "uk-active",
|
|
9784
10054
|
attrItem: "uk-switcher-item",
|
|
9785
10055
|
selVertical: ".uk-nav",
|
|
9786
10056
|
followFocus: false,
|
|
9787
10057
|
swiping: true
|
|
9788
10058
|
},
|
|
9789
10059
|
computed: {
|
|
9790
|
-
connects: {
|
|
9791
|
-
get: ({ connect }, $el) => queryAll(connect, $el),
|
|
9792
|
-
observe: ({ connect }) => connect
|
|
9793
|
-
},
|
|
9794
|
-
connectChildren() {
|
|
9795
|
-
return this.connects.map((el) => children(el)).flat();
|
|
9796
|
-
},
|
|
9797
10060
|
toggles: ({ toggle }, $el) => $$(toggle, $el),
|
|
9798
10061
|
children(_, $el) {
|
|
9799
10062
|
return children($el).filter(
|
|
@@ -9824,10 +10087,7 @@
|
|
|
9824
10087
|
connected() {
|
|
9825
10088
|
this.$el.role = "tablist";
|
|
9826
10089
|
},
|
|
9827
|
-
observe:
|
|
9828
|
-
lazyload({ targets: ({ connectChildren }) => connectChildren }),
|
|
9829
|
-
swipe({ target: ({ connects }) => connects, filter: ({ swiping }) => swiping })
|
|
9830
|
-
],
|
|
10090
|
+
observe: swipe({ target: ({ connects }) => connects, filter: ({ swiping }) => swiping }),
|
|
9831
10091
|
events: [
|
|
9832
10092
|
{
|
|
9833
10093
|
name: "click keydown",
|
|
@@ -9877,24 +10137,27 @@
|
|
|
9877
10137
|
}
|
|
9878
10138
|
],
|
|
9879
10139
|
update() {
|
|
9880
|
-
var _a;
|
|
9881
|
-
for (const el of this.connects) {
|
|
9882
|
-
if (isTag(el, "ul")) {
|
|
9883
|
-
el.role = "presentation";
|
|
9884
|
-
}
|
|
9885
|
-
}
|
|
9886
10140
|
attr(children(this.$el), "role", "presentation");
|
|
9887
10141
|
for (const index in this.toggles) {
|
|
9888
10142
|
const toggle = this.toggles[index];
|
|
9889
|
-
const item = (_a = this.connects[0]) == null ? void 0 : _a.children[index];
|
|
9890
|
-
toggle.role = "tab";
|
|
9891
|
-
if (!item) {
|
|
9892
|
-
continue;
|
|
9893
|
-
}
|
|
9894
10143
|
toggle.id = generateId(this, toggle);
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
10144
|
+
const controls = [];
|
|
10145
|
+
for (const { children: children2 } of this.connects) {
|
|
10146
|
+
const item = children2[index];
|
|
10147
|
+
if (!item) {
|
|
10148
|
+
continue;
|
|
10149
|
+
}
|
|
10150
|
+
attr(item, {
|
|
10151
|
+
id: generateId(this, item),
|
|
10152
|
+
role: "tabpanel",
|
|
10153
|
+
"aria-labelledby": toggle.id
|
|
10154
|
+
});
|
|
10155
|
+
controls.push(item.id);
|
|
10156
|
+
}
|
|
10157
|
+
attr(toggle, {
|
|
10158
|
+
role: "tab",
|
|
10159
|
+
"aria-controls": controls.join(" ")
|
|
10160
|
+
});
|
|
9898
10161
|
}
|
|
9899
10162
|
attr(this.$el, "aria-orientation", matches(this.$el, this.selVertical) ? "vertical" : null);
|
|
9900
10163
|
},
|
|
@@ -9927,15 +10190,7 @@
|
|
|
9927
10190
|
tabindex: next === i ? null : -1
|
|
9928
10191
|
});
|
|
9929
10192
|
});
|
|
9930
|
-
|
|
9931
|
-
this.connects.forEach(async ({ children: children2 }) => {
|
|
9932
|
-
const actives = toArray(children2).filter(
|
|
9933
|
-
(child, i) => i !== next && hasClass(child, this.cls)
|
|
9934
|
-
);
|
|
9935
|
-
if (await this.toggleElement(actives, false, animate)) {
|
|
9936
|
-
await this.toggleElement(children2[next], true, animate);
|
|
9937
|
-
}
|
|
9938
|
-
});
|
|
10193
|
+
return this.showConnects(next, prev >= 0);
|
|
9939
10194
|
}
|
|
9940
10195
|
}
|
|
9941
10196
|
};
|