uikit 3.13.9 → 3.13.11-dev.3b88fea57
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 +38 -1
- package/build/build.js +4 -1
- package/dist/css/uikit-core-rtl.css +49 -8
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +49 -8
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +49 -6
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +49 -6
- 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 +7 -3
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +7 -3
- 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 +21 -12
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +21 -12
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +2 -2
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +21 -12
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +1 -1
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +2 -2
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +62 -30
- 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 +386 -301
- 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 +433 -309
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/components/slider.js +1 -1
- package/src/js/components/sortable.js +2 -3
- package/src/js/components/tooltip.js +38 -3
- package/src/js/core/drop.js +20 -16
- package/src/js/core/navbar.js +18 -6
- package/src/js/core/scrollspy-nav.js +6 -11
- package/src/js/core/sticky.js +58 -22
- package/src/js/core/toggle.js +8 -8
- package/src/js/mixin/media.js +12 -9
- package/src/js/mixin/modal.js +6 -2
- package/src/js/mixin/parallax.js +8 -3
- package/src/js/mixin/position.js +24 -24
- package/src/js/uikit-core.js +0 -4
- package/src/js/util/lang.js +34 -42
- package/src/js/util/position.js +177 -125
- package/src/js/util/viewport.js +42 -22
- package/src/less/components/drop.less +0 -1
- package/src/less/components/dropdown.less +11 -1
- package/src/less/components/icon.less +3 -0
- package/src/less/components/nav.less +23 -0
- package/src/less/components/navbar.less +26 -2
- package/src/less/components/search.less +2 -0
- package/src/less/components/sticky.less +8 -3
- package/src/less/components/utility.less +1 -0
- package/src/less/theme/dropdown.less +4 -0
- package/src/less/theme/nav.less +6 -0
- package/src/less/theme/navbar.less +4 -0
- package/src/less/theme/search.less +6 -0
- package/src/scss/components/drop.scss +0 -1
- package/src/scss/components/dropdown.scss +11 -1
- package/src/scss/components/icon.scss +3 -0
- package/src/scss/components/nav.scss +23 -0
- package/src/scss/components/navbar.scss +26 -2
- package/src/scss/components/search.scss +2 -0
- package/src/scss/components/sticky.scss +8 -3
- package/src/scss/components/utility.scss +1 -0
- package/src/scss/mixins-theme.scss +5 -0
- package/src/scss/mixins.scss +5 -0
- package/src/scss/theme/dropdown.scss +4 -0
- package/src/scss/theme/nav.scss +6 -0
- package/src/scss/theme/navbar.scss +4 -0
- package/src/scss/theme/search.scss +6 -0
- package/src/scss/variables-theme.scss +5 -1
- package/src/scss/variables.scss +5 -1
- package/tests/alert.html +1 -1
- package/tests/animation.html +216 -214
- package/tests/drop.html +129 -80
- package/tests/dropdown.html +16 -2
- package/tests/nav.html +27 -0
- package/tests/navbar.html +56 -5
- package/tests/parallax.html +5 -5
- package/tests/position.html +38 -39
- package/tests/sticky-navbar.html +6 -6
- package/tests/sticky-parallax.html +169 -148
- package/tests/sticky.html +300 -49
- package/src/js/core/core.js +0 -25
package/dist/js/uikit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! UIkit 3.13.
|
|
1
|
+
/*! UIkit 3.13.11-dev.3b88fea57 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
|
|
2
2
|
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -141,10 +141,6 @@
|
|
|
141
141
|
return (document == null ? void 0 : document.defaultView) || window;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
function toMs(time) {
|
|
145
|
-
return time ? endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000 : 0;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
144
|
function isEqual(value, other) {
|
|
149
145
|
return (
|
|
150
146
|
value === other ||
|
|
@@ -212,48 +208,44 @@
|
|
|
212
208
|
|
|
213
209
|
}
|
|
214
210
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
const aProp = prop === 'width' ? 'height' : 'width';
|
|
211
|
+
function ratio(dimensions, prop, value) {
|
|
212
|
+
const aProp = prop === 'width' ? 'height' : 'width';
|
|
218
213
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
214
|
+
return {
|
|
215
|
+
[aProp]: dimensions[prop] ?
|
|
216
|
+
Math.round(value * dimensions[aProp] / dimensions[prop]) :
|
|
217
|
+
dimensions[aProp],
|
|
218
|
+
[prop]: value };
|
|
224
219
|
|
|
225
|
-
|
|
220
|
+
}
|
|
226
221
|
|
|
227
|
-
|
|
228
|
-
|
|
222
|
+
function contain(dimensions, maxDimensions) {
|
|
223
|
+
dimensions = { ...dimensions };
|
|
229
224
|
|
|
230
|
-
|
|
231
|
-
dimensions,
|
|
232
|
-
(_, prop) =>
|
|
225
|
+
for (const prop in dimensions) {
|
|
233
226
|
dimensions =
|
|
234
227
|
dimensions[prop] > maxDimensions[prop] ?
|
|
235
|
-
|
|
236
|
-
dimensions
|
|
237
|
-
|
|
228
|
+
ratio(dimensions, prop, maxDimensions[prop]) :
|
|
229
|
+
dimensions;
|
|
230
|
+
}
|
|
238
231
|
|
|
239
|
-
|
|
240
|
-
|
|
232
|
+
return dimensions;
|
|
233
|
+
}
|
|
241
234
|
|
|
242
|
-
|
|
243
|
-
|
|
235
|
+
function cover$1(dimensions, maxDimensions) {
|
|
236
|
+
dimensions = contain(dimensions, maxDimensions);
|
|
244
237
|
|
|
245
|
-
|
|
246
|
-
dimensions,
|
|
247
|
-
(_, prop) =>
|
|
238
|
+
for (const prop in dimensions) {
|
|
248
239
|
dimensions =
|
|
249
240
|
dimensions[prop] < maxDimensions[prop] ?
|
|
250
|
-
|
|
251
|
-
dimensions
|
|
252
|
-
|
|
241
|
+
ratio(dimensions, prop, maxDimensions[prop]) :
|
|
242
|
+
dimensions;
|
|
243
|
+
}
|
|
253
244
|
|
|
254
|
-
|
|
255
|
-
|
|
245
|
+
return dimensions;
|
|
246
|
+
}
|
|
256
247
|
|
|
248
|
+
const Dimensions = { ratio, contain, cover: cover$1 };
|
|
257
249
|
|
|
258
250
|
function getIndex(i, elements, current, finite) {if (current === void 0) {current = 0;}if (finite === void 0) {finite = false;}
|
|
259
251
|
elements = toNodes(elements);
|
|
@@ -1788,7 +1780,7 @@
|
|
|
1788
1780
|
return intersectRect(
|
|
1789
1781
|
...scrollParents(element).
|
|
1790
1782
|
map((parent) => {
|
|
1791
|
-
const { top, left, bottom, right } =
|
|
1783
|
+
const { top, left, bottom, right } = offsetViewport(parent);
|
|
1792
1784
|
|
|
1793
1785
|
return {
|
|
1794
1786
|
top: top - offsetTop,
|
|
@@ -1803,7 +1795,7 @@
|
|
|
1803
1795
|
|
|
1804
1796
|
function scrollTop(element, top) {
|
|
1805
1797
|
if (isWindow(element) || isDocument(element)) {
|
|
1806
|
-
element =
|
|
1798
|
+
element = scrollingElement(element);
|
|
1807
1799
|
} else {
|
|
1808
1800
|
element = toNode(element);
|
|
1809
1801
|
}
|
|
@@ -1820,12 +1812,13 @@
|
|
|
1820
1812
|
return parents.reduce(
|
|
1821
1813
|
(fn, scrollElement, i) => {
|
|
1822
1814
|
const { scrollTop, scrollHeight, offsetHeight } = scrollElement;
|
|
1823
|
-
const
|
|
1824
|
-
const
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1815
|
+
const viewport = offsetViewport(scrollElement);
|
|
1816
|
+
const maxScroll = scrollHeight - viewport.height;
|
|
1817
|
+
const { height: elHeight, top: elTop } = parents[i - 1] ?
|
|
1818
|
+
offsetViewport(parents[i - 1]) :
|
|
1819
|
+
offset(element);
|
|
1828
1820
|
|
|
1821
|
+
let top = Math.ceil(elTop - viewport.top - offsetBy + scrollTop);
|
|
1829
1822
|
|
|
1830
1823
|
if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {
|
|
1831
1824
|
top += offsetBy;
|
|
@@ -1883,7 +1876,7 @@
|
|
|
1883
1876
|
|
|
1884
1877
|
const [scrollElement] = scrollParents(element, /auto|scroll/, true);
|
|
1885
1878
|
const { scrollHeight, scrollTop } = scrollElement;
|
|
1886
|
-
const viewportHeight =
|
|
1879
|
+
const { height: viewportHeight } = offsetViewport(scrollElement);
|
|
1887
1880
|
const maxScroll = scrollHeight - viewportHeight;
|
|
1888
1881
|
const elementOffsetTop = offsetPosition(element)[0] - offsetPosition(scrollElement)[0];
|
|
1889
1882
|
|
|
@@ -1894,7 +1887,7 @@
|
|
|
1894
1887
|
}
|
|
1895
1888
|
|
|
1896
1889
|
function scrollParents(element, overflowRe, scrollable) {if (overflowRe === void 0) {overflowRe = /auto|scroll|hidden/;}if (scrollable === void 0) {scrollable = false;}
|
|
1897
|
-
const scrollEl =
|
|
1890
|
+
const scrollEl = scrollingElement(element);
|
|
1898
1891
|
|
|
1899
1892
|
let ancestors = parents(element).reverse();
|
|
1900
1893
|
ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);
|
|
@@ -1909,181 +1902,250 @@
|
|
|
1909
1902
|
ancestors.filter(
|
|
1910
1903
|
(parent) =>
|
|
1911
1904
|
overflowRe.test(css(parent, 'overflow')) && (
|
|
1912
|
-
!scrollable || parent.scrollHeight >
|
|
1905
|
+
!scrollable || parent.scrollHeight > offsetViewport(parent).height))).
|
|
1913
1906
|
|
|
1914
1907
|
|
|
1915
1908
|
reverse();
|
|
1916
1909
|
}
|
|
1917
1910
|
|
|
1918
|
-
function
|
|
1919
|
-
|
|
1911
|
+
function offsetViewport(scrollElement) {
|
|
1912
|
+
let viewportElement = getViewport$1(scrollElement);
|
|
1913
|
+
|
|
1914
|
+
// iOS 12 returns <body> as scrollingElement
|
|
1915
|
+
if (viewportElement === scrollingElement(viewportElement)) {
|
|
1916
|
+
viewportElement = document.documentElement;
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1919
|
+
let rect = offset(viewportElement);
|
|
1920
|
+
for (let [prop, dir, start, end] of [
|
|
1921
|
+
['width', 'x', 'left', 'right'],
|
|
1922
|
+
['height', 'y', 'top', 'bottom']])
|
|
1923
|
+
{
|
|
1924
|
+
if (!isWindow(getViewport$1(viewportElement))) {
|
|
1925
|
+
rect[start] += toFloat(css(viewportElement, "border" + ucfirst(start) + "Width"));
|
|
1926
|
+
}
|
|
1927
|
+
rect[prop] = rect[dir] = (
|
|
1928
|
+
isWindow(viewportElement) ? scrollingElement(viewportElement) : viewportElement)["client" +
|
|
1929
|
+
ucfirst(prop)];
|
|
1930
|
+
rect[end] = rect[prop] + rect[start];
|
|
1931
|
+
}
|
|
1932
|
+
return rect;
|
|
1920
1933
|
}
|
|
1921
1934
|
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
scrollElement).
|
|
1928
|
-
clientHeight;
|
|
1935
|
+
function scrollingElement(element) {
|
|
1936
|
+
const {
|
|
1937
|
+
document: { scrollingElement } } =
|
|
1938
|
+
toWindow(element);
|
|
1939
|
+
return scrollingElement;
|
|
1929
1940
|
}
|
|
1930
1941
|
|
|
1931
|
-
function
|
|
1932
|
-
|
|
1933
|
-
return document.scrollingElement || document.documentElement;
|
|
1942
|
+
function getViewport$1(scrollElement) {
|
|
1943
|
+
return scrollElement === scrollingElement(scrollElement) ? window : scrollElement;
|
|
1934
1944
|
}
|
|
1935
1945
|
|
|
1936
|
-
const dirs =
|
|
1937
|
-
|
|
1938
|
-
|
|
1946
|
+
const dirs = [
|
|
1947
|
+
['width', 'x', 'left', 'right'],
|
|
1948
|
+
['height', 'y', 'top', 'bottom']];
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
function positionAt(element, target, options) {
|
|
1952
|
+
options = {
|
|
1953
|
+
attach: {
|
|
1954
|
+
element: ['left', 'top'],
|
|
1955
|
+
target: ['left', 'top'],
|
|
1956
|
+
...options.attach },
|
|
1939
1957
|
|
|
1958
|
+
offset: [0, 0],
|
|
1959
|
+
...options };
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
const dim = options.flip ?
|
|
1963
|
+
attachToWithFlip(element, target, options) :
|
|
1964
|
+
attachTo(element, target, options);
|
|
1940
1965
|
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
{
|
|
1951
|
-
elAttach = getPos(elAttach);
|
|
1952
|
-
targetAttach = getPos(targetAttach);
|
|
1966
|
+
offset(element, dim);
|
|
1967
|
+
}
|
|
1968
|
+
|
|
1969
|
+
function attachTo(element, target, options) {
|
|
1970
|
+
let { attach, offset: offsetBy } = {
|
|
1971
|
+
attach: {
|
|
1972
|
+
element: ['left', 'top'],
|
|
1973
|
+
target: ['left', 'top'],
|
|
1974
|
+
...options.attach },
|
|
1953
1975
|
|
|
1954
|
-
|
|
1976
|
+
offset: [0, 0],
|
|
1977
|
+
...options };
|
|
1955
1978
|
|
|
1956
|
-
|
|
1957
|
-
|
|
1979
|
+
|
|
1980
|
+
const position = offset(element);
|
|
1981
|
+
const targetOffset = offset(target);
|
|
1982
|
+
for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
|
|
1983
|
+
position[start] = position[dir] =
|
|
1984
|
+
targetOffset[start] +
|
|
1985
|
+
moveBy(attach.target[i], end, targetOffset[prop]) -
|
|
1986
|
+
moveBy(attach.element[i], end, position[prop]) +
|
|
1987
|
+
+offsetBy[i];
|
|
1988
|
+
position[end] = position[start] + position[prop];
|
|
1958
1989
|
}
|
|
1990
|
+
return position;
|
|
1991
|
+
}
|
|
1959
1992
|
|
|
1960
|
-
|
|
1993
|
+
function attachToWithFlip(element, target, options) {
|
|
1994
|
+
const position = attachTo(element, target, options);
|
|
1961
1995
|
const targetDim = offset(target);
|
|
1962
|
-
const
|
|
1996
|
+
const viewports = scrollParents(element);
|
|
1997
|
+
const [scrollElement] = viewports;
|
|
1998
|
+
|
|
1999
|
+
let {
|
|
2000
|
+
flip,
|
|
2001
|
+
attach: { element: elAttach, target: targetAttach },
|
|
2002
|
+
offset: elOffset,
|
|
2003
|
+
boundary,
|
|
2004
|
+
viewport,
|
|
2005
|
+
viewportPadding } =
|
|
2006
|
+
options;
|
|
2007
|
+
|
|
2008
|
+
viewports.push(viewport);
|
|
2009
|
+
|
|
2010
|
+
const offsetPosition = { ...position };
|
|
2011
|
+
for (const [i, [prop, dir, start, end]] of Object.entries(dirs)) {
|
|
2012
|
+
if (flip !== true && !includes(flip, dir)) {
|
|
2013
|
+
continue;
|
|
2014
|
+
}
|
|
1963
2015
|
|
|
1964
|
-
|
|
1965
|
-
|
|
2016
|
+
const willFlip =
|
|
2017
|
+
!intersectLine(position, targetDim, i) && intersectLine(position, targetDim, 1 - i);
|
|
1966
2018
|
|
|
1967
|
-
|
|
1968
|
-
targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height);
|
|
2019
|
+
viewport = getIntersectionArea(...viewports.filter(Boolean).map(offsetViewport));
|
|
1969
2020
|
|
|
1970
|
-
|
|
1971
|
-
|
|
2021
|
+
if (viewportPadding) {
|
|
2022
|
+
viewport[start] += viewportPadding;
|
|
2023
|
+
viewport[end] -= viewportPadding;
|
|
2024
|
+
}
|
|
1972
2025
|
|
|
1973
|
-
|
|
1974
|
-
|
|
2026
|
+
if (boundary && !(willFlip || position[prop] > offset(boundary)[prop])) {
|
|
2027
|
+
viewport = getIntersectionArea(viewport, offset(boundary));
|
|
2028
|
+
}
|
|
1975
2029
|
|
|
1976
|
-
|
|
1977
|
-
|
|
2030
|
+
const isInStartBoundary = position[start] >= viewport[start];
|
|
2031
|
+
const isInEndBoundary = position[end] <= viewport[end];
|
|
1978
2032
|
|
|
1979
|
-
if (
|
|
1980
|
-
|
|
2033
|
+
if (isInStartBoundary && isInEndBoundary) {
|
|
2034
|
+
continue;
|
|
1981
2035
|
}
|
|
1982
2036
|
|
|
1983
|
-
|
|
2037
|
+
let offsetBy;
|
|
1984
2038
|
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
2039
|
+
// Flip
|
|
2040
|
+
if (willFlip) {
|
|
2041
|
+
if (
|
|
2042
|
+
elAttach[i] === end && isInStartBoundary ||
|
|
2043
|
+
elAttach[i] === start && isInEndBoundary)
|
|
2044
|
+
{
|
|
2045
|
+
continue;
|
|
1988
2046
|
}
|
|
1989
2047
|
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
-targetDim[prop] :
|
|
2003
|
-
0;
|
|
2048
|
+
offsetBy =
|
|
2049
|
+
(elAttach[i] === start ?
|
|
2050
|
+
-position[prop] :
|
|
2051
|
+
elAttach[i] === end ?
|
|
2052
|
+
position[prop] :
|
|
2053
|
+
0) + (
|
|
2054
|
+
targetAttach[i] === start ?
|
|
2055
|
+
targetDim[prop] :
|
|
2056
|
+
targetAttach[i] === end ?
|
|
2057
|
+
-targetDim[prop] :
|
|
2058
|
+
0) -
|
|
2059
|
+
elOffset[i] * 2;
|
|
2004
2060
|
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
targetAttach[dir] === 'center' ? -targetDim[prop] / 2 : 0;
|
|
2061
|
+
if (
|
|
2062
|
+
!isInScrollArea(
|
|
2063
|
+
{
|
|
2064
|
+
...position,
|
|
2065
|
+
[start]: position[start] + offsetBy,
|
|
2066
|
+
[end]: position[end] + offsetBy },
|
|
2012
2067
|
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
apply(centerOffset, centerTargetOffset) ||
|
|
2016
|
-
apply(-centerOffset, -centerTargetOffset)) ||
|
|
2017
|
-
apply(elemOffset, targetOffset));
|
|
2068
|
+
scrollElement,
|
|
2069
|
+
i))
|
|
2018
2070
|
|
|
2071
|
+
{
|
|
2072
|
+
if (isInScrollArea(position, scrollElement, i)) {
|
|
2073
|
+
continue;
|
|
2019
2074
|
}
|
|
2020
2075
|
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2076
|
+
if (options.recursion) {
|
|
2077
|
+
return false;
|
|
2078
|
+
}
|
|
2024
2079
|
|
|
2080
|
+
const newPos = attachToWithFlip(element, target, {
|
|
2081
|
+
...options,
|
|
2082
|
+
attach: {
|
|
2083
|
+
element: elAttach.map(flipDir).reverse(),
|
|
2084
|
+
target: targetAttach.map(flipDir).reverse() },
|
|
2025
2085
|
|
|
2026
|
-
|
|
2027
|
-
|
|
2086
|
+
offset: elOffset.reverse(),
|
|
2087
|
+
flip: flip === true ? flip : [...flip, dirs[1 - i][1]],
|
|
2088
|
+
recursion: true });
|
|
2028
2089
|
|
|
2029
|
-
for (const el of ['element', 'target']) {
|
|
2030
|
-
if (elemOffset) {
|
|
2031
|
-
flipped[el][dir] =
|
|
2032
|
-
flipped[el][dir] === dirs[prop][1] ?
|
|
2033
|
-
dirs[prop][2] :
|
|
2034
|
-
dirs[prop][1];
|
|
2035
|
-
}
|
|
2036
|
-
}
|
|
2037
2090
|
|
|
2038
|
-
|
|
2039
|
-
|
|
2091
|
+
if (newPos && isInScrollArea(newPos, scrollElement, 1 - i)) {
|
|
2092
|
+
return newPos;
|
|
2040
2093
|
}
|
|
2041
|
-
}
|
|
2042
|
-
});
|
|
2043
|
-
}
|
|
2094
|
+
}
|
|
2044
2095
|
|
|
2045
|
-
|
|
2096
|
+
// Move
|
|
2097
|
+
} else {
|
|
2098
|
+
offsetBy =
|
|
2099
|
+
clamp(
|
|
2100
|
+
clamp(position[start], viewport[start], viewport[end] - position[prop]),
|
|
2101
|
+
targetDim[start] - position[prop] + elOffset[i],
|
|
2102
|
+
targetDim[end] - elOffset[i]) -
|
|
2103
|
+
position[start];
|
|
2104
|
+
}
|
|
2046
2105
|
|
|
2047
|
-
|
|
2048
|
-
|
|
2106
|
+
offsetPosition[start] = position[dir] = position[start] + offsetBy;
|
|
2107
|
+
offsetPosition[end] += offsetBy;
|
|
2108
|
+
}
|
|
2049
2109
|
|
|
2050
|
-
|
|
2051
|
-
each(dirs, (_ref2, prop) => {let [dir, align, alignFlip] = _ref2;
|
|
2052
|
-
if (attach[dir] === alignFlip) {
|
|
2053
|
-
position[align] += dim[prop] * factor;
|
|
2054
|
-
} else if (attach[dir] === 'center') {
|
|
2055
|
-
position[align] += dim[prop] * factor / 2;
|
|
2056
|
-
}
|
|
2057
|
-
});
|
|
2110
|
+
return offsetPosition;
|
|
2058
2111
|
}
|
|
2059
2112
|
|
|
2060
|
-
function
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
pos = (pos || '').split(' ');
|
|
2113
|
+
function moveBy(start, end, dim) {
|
|
2114
|
+
return start === 'center' ? dim / 2 : start === end ? dim : 0;
|
|
2115
|
+
}
|
|
2065
2116
|
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2117
|
+
function getIntersectionArea() {
|
|
2118
|
+
let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}
|
|
2119
|
+
for (const rect of rects) {
|
|
2120
|
+
for (const [,, start, end] of dirs) {
|
|
2121
|
+
area[start] = Math.max(area[start] || 0, rect[start]);
|
|
2122
|
+
area[end] = Math.min(...[area[end], rect[end]].filter(Boolean));
|
|
2123
|
+
}
|
|
2072
2124
|
}
|
|
2125
|
+
return area;
|
|
2126
|
+
}
|
|
2073
2127
|
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2128
|
+
function isInScrollArea(position, scrollElement, dir) {
|
|
2129
|
+
const viewport = offsetViewport(scrollElement);
|
|
2130
|
+
const [prop,, start, end] = dirs[dir];
|
|
2131
|
+
viewport[start] -= scrollElement["scroll" + ucfirst(start)];
|
|
2132
|
+
viewport[end] = viewport[start] + scrollElement["scroll" + ucfirst(prop)];
|
|
2077
2133
|
|
|
2134
|
+
return position[start] >= viewport[start] && position[end] <= viewport[end];
|
|
2078
2135
|
}
|
|
2079
2136
|
|
|
2080
|
-
function
|
|
2081
|
-
const [
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
x: x ? toFloat(x) * (endsWith(x, '%') ? width / 100 : 1) : 0,
|
|
2085
|
-
y: y ? toFloat(y) * (endsWith(y, '%') ? height / 100 : 1) : 0 };
|
|
2137
|
+
function intersectLine(dimA, dimB, dir) {
|
|
2138
|
+
const [,, start, end] = dirs[dir];
|
|
2139
|
+
return dimA[end] > dimB[start] && dimB[end] > dimA[start];
|
|
2140
|
+
}
|
|
2086
2141
|
|
|
2142
|
+
function flipDir(prop) {
|
|
2143
|
+
for (let i = 0; i < dirs.length; i++) {
|
|
2144
|
+
const index = dirs[i].indexOf(prop);
|
|
2145
|
+
if (~index) {
|
|
2146
|
+
return dirs[1 - i][index % 2 + 2];
|
|
2147
|
+
}
|
|
2148
|
+
}
|
|
2087
2149
|
}
|
|
2088
2150
|
|
|
2089
2151
|
var util = /*#__PURE__*/Object.freeze({
|
|
@@ -2192,7 +2254,6 @@
|
|
|
2192
2254
|
toNode: toNode,
|
|
2193
2255
|
toNodes: toNodes,
|
|
2194
2256
|
toWindow: toWindow,
|
|
2195
|
-
toMs: toMs,
|
|
2196
2257
|
isEqual: isEqual,
|
|
2197
2258
|
swap: swap,
|
|
2198
2259
|
last: last,
|
|
@@ -2231,9 +2292,7 @@
|
|
|
2231
2292
|
scrollIntoView: scrollIntoView,
|
|
2232
2293
|
scrolledOver: scrolledOver,
|
|
2233
2294
|
scrollParents: scrollParents,
|
|
2234
|
-
|
|
2235
|
-
getViewportClientHeight: getViewportClientHeight,
|
|
2236
|
-
getScrollingElement: getScrollingElement
|
|
2295
|
+
offsetViewport: offsetViewport
|
|
2237
2296
|
});
|
|
2238
2297
|
|
|
2239
2298
|
function globalAPI (UIkit) {
|
|
@@ -2550,7 +2609,7 @@
|
|
|
2550
2609
|
continue;
|
|
2551
2610
|
}
|
|
2552
2611
|
|
|
2553
|
-
value = props[key] === Boolean && value === '' ? true : coerce(props[key], value);
|
|
2612
|
+
value = props[key] === Boolean && value === '' ? true : coerce$1(props[key], value);
|
|
2554
2613
|
|
|
2555
2614
|
if (prop === 'target' && (!value || startsWith(value, '_'))) {
|
|
2556
2615
|
continue;
|
|
@@ -2564,7 +2623,7 @@
|
|
|
2564
2623
|
for (const key in options) {
|
|
2565
2624
|
const prop = camelize(key);
|
|
2566
2625
|
if (props[prop] !== undefined) {
|
|
2567
|
-
data$1[prop] = coerce(props[prop], options[key]);
|
|
2626
|
+
data$1[prop] = coerce$1(props[prop], options[key]);
|
|
2568
2627
|
}
|
|
2569
2628
|
}
|
|
2570
2629
|
|
|
@@ -2629,7 +2688,7 @@
|
|
|
2629
2688
|
return options.every((arr) => !arr || !hasOwn(arr, key));
|
|
2630
2689
|
}
|
|
2631
2690
|
|
|
2632
|
-
function coerce(type, value) {
|
|
2691
|
+
function coerce$1(type, value) {
|
|
2633
2692
|
if (type === Boolean) {
|
|
2634
2693
|
return toBoolean(value);
|
|
2635
2694
|
} else if (type === Number) {
|
|
@@ -2667,7 +2726,7 @@
|
|
|
2667
2726
|
if (isUndefined(data[key])) {
|
|
2668
2727
|
delete data[key];
|
|
2669
2728
|
} else if (props[key]) {
|
|
2670
|
-
data[key] = coerce(props[key], data[key]);
|
|
2729
|
+
data[key] = coerce$1(props[key], data[key]);
|
|
2671
2730
|
}
|
|
2672
2731
|
}
|
|
2673
2732
|
|
|
@@ -2892,7 +2951,7 @@
|
|
|
2892
2951
|
UIkit.data = '__uikit__';
|
|
2893
2952
|
UIkit.prefix = 'uk-';
|
|
2894
2953
|
UIkit.options = {};
|
|
2895
|
-
UIkit.version = '3.13.
|
|
2954
|
+
UIkit.version = '3.13.11-dev.3b88fea57';
|
|
2896
2955
|
|
|
2897
2956
|
globalAPI(UIkit);
|
|
2898
2957
|
hooksAPI(UIkit);
|
|
@@ -2900,30 +2959,6 @@
|
|
|
2900
2959
|
componentAPI(UIkit);
|
|
2901
2960
|
instanceAPI(UIkit);
|
|
2902
2961
|
|
|
2903
|
-
function Core () {
|
|
2904
|
-
if (!inBrowser) {
|
|
2905
|
-
return;
|
|
2906
|
-
}
|
|
2907
|
-
|
|
2908
|
-
let started = 0;
|
|
2909
|
-
on(
|
|
2910
|
-
document,
|
|
2911
|
-
'animationstart',
|
|
2912
|
-
(_ref) => {let { target } = _ref;
|
|
2913
|
-
if ((css(target, 'animationName') || '').match(/^uk-.*(left|right)/)) {
|
|
2914
|
-
started++;
|
|
2915
|
-
css(document.documentElement, 'overflowX', 'hidden');
|
|
2916
|
-
setTimeout(() => {
|
|
2917
|
-
if (! --started) {
|
|
2918
|
-
css(document.documentElement, 'overflowX', '');
|
|
2919
|
-
}
|
|
2920
|
-
}, toMs(css(target, 'animationDuration')) + 100);
|
|
2921
|
-
}
|
|
2922
|
-
},
|
|
2923
|
-
true);
|
|
2924
|
-
|
|
2925
|
-
}
|
|
2926
|
-
|
|
2927
2962
|
function boot (UIkit) {
|
|
2928
2963
|
const { connect, disconnect } = UIkit;
|
|
2929
2964
|
|
|
@@ -3501,50 +3536,49 @@
|
|
|
3501
3536
|
data: {
|
|
3502
3537
|
pos: "bottom-" + (isRtl ? 'right' : 'left'),
|
|
3503
3538
|
flip: true,
|
|
3504
|
-
offset: false
|
|
3539
|
+
offset: false,
|
|
3540
|
+
viewportPadding: 10 },
|
|
3505
3541
|
|
|
3506
3542
|
|
|
3507
3543
|
connected() {
|
|
3508
3544
|
this.pos = this.$props.pos.split('-').concat('center').slice(0, 2);
|
|
3509
|
-
this.
|
|
3510
|
-
this.align = this.pos[1];
|
|
3545
|
+
this.axis = includes(['top', 'bottom'], this.pos[0]) ? 'y' : 'x';
|
|
3511
3546
|
},
|
|
3512
3547
|
|
|
3513
3548
|
methods: {
|
|
3514
3549
|
positionAt(element, target, boundary) {
|
|
3515
|
-
const
|
|
3516
|
-
const dir = this.pos[0];
|
|
3517
|
-
const align = this.pos[1];
|
|
3550
|
+
const [dir, align] = this.pos;
|
|
3518
3551
|
|
|
3519
3552
|
let { offset: offset$1 } = this;
|
|
3520
3553
|
if (!isNumeric(offset$1)) {
|
|
3521
3554
|
const node = $(offset$1);
|
|
3522
3555
|
offset$1 = node ?
|
|
3523
|
-
offset(node)[axis === 'x' ? 'left' : 'top'] -
|
|
3524
|
-
offset(target)[axis === 'x' ? 'right' : 'bottom'] :
|
|
3556
|
+
offset(node)[this.axis === 'x' ? 'left' : 'top'] -
|
|
3557
|
+
offset(target)[this.axis === 'x' ? 'right' : 'bottom'] :
|
|
3525
3558
|
0;
|
|
3526
3559
|
}
|
|
3527
3560
|
offset$1 = toPx(offset$1) + toPx(getCssVar('position-offset', element));
|
|
3561
|
+
offset$1 = [includes(['left', 'top'], dir) ? -offset$1 : +offset$1, 0];
|
|
3562
|
+
|
|
3563
|
+
const attach = {
|
|
3564
|
+
element: [flipPosition(dir), align],
|
|
3565
|
+
target: [dir, align] };
|
|
3566
|
+
|
|
3567
|
+
|
|
3568
|
+
if (this.axis === 'y') {
|
|
3569
|
+
for (const prop in attach) {
|
|
3570
|
+
attach[prop] = attach[prop].reverse();
|
|
3571
|
+
}
|
|
3572
|
+
offset$1 = offset$1.reverse();
|
|
3573
|
+
}
|
|
3574
|
+
|
|
3575
|
+
positionAt(element, target, {
|
|
3576
|
+
attach,
|
|
3577
|
+
offset: offset$1,
|
|
3578
|
+
boundary,
|
|
3579
|
+
viewportPadding: this.viewportPadding,
|
|
3580
|
+
flip: this.flip });
|
|
3528
3581
|
|
|
3529
|
-
const { x, y } = positionAt(
|
|
3530
|
-
element,
|
|
3531
|
-
target,
|
|
3532
|
-
axis === 'x' ? flipPosition(dir) + " " + align : align + " " + flipPosition(dir),
|
|
3533
|
-
axis === 'x' ? dir + " " + align : align + " " + dir,
|
|
3534
|
-
axis === 'x' ? "" + (
|
|
3535
|
-
dir === 'left' ? -offset$1 : offset$1) : " " + (
|
|
3536
|
-
dir === 'top' ? -offset$1 : offset$1),
|
|
3537
|
-
null,
|
|
3538
|
-
this.flip,
|
|
3539
|
-
boundary).
|
|
3540
|
-
target;
|
|
3541
|
-
|
|
3542
|
-
this.dir = axis === 'x' ? x : y;
|
|
3543
|
-
this.align = axis === 'x' ? y : x;
|
|
3544
|
-
},
|
|
3545
|
-
|
|
3546
|
-
getAxis() {
|
|
3547
|
-
return this.dir === 'top' || this.dir === 'bottom' ? 'y' : 'x';
|
|
3548
3582
|
} } };
|
|
3549
3583
|
|
|
3550
3584
|
let active$1;
|
|
@@ -3761,13 +3795,7 @@
|
|
|
3761
3795
|
this.hide(false);
|
|
3762
3796
|
}
|
|
3763
3797
|
}),
|
|
3764
|
-
on(window, 'resize', () => this.$emit())
|
|
3765
|
-
on(
|
|
3766
|
-
document,
|
|
3767
|
-
'scroll',
|
|
3768
|
-
(_ref4) => {let { target } = _ref4;return target.contains(this.$el) && this.$emit();},
|
|
3769
|
-
true)])
|
|
3770
|
-
|
|
3798
|
+
on(window, 'resize', () => this.$emit())])
|
|
3771
3799
|
{
|
|
3772
3800
|
once(this.$el, 'hide', handler, { self: true });
|
|
3773
3801
|
}
|
|
@@ -3787,7 +3815,7 @@
|
|
|
3787
3815
|
{
|
|
3788
3816
|
name: 'hide',
|
|
3789
3817
|
|
|
3790
|
-
handler(
|
|
3818
|
+
handler(_ref4) {let { target } = _ref4;
|
|
3791
3819
|
if (this.$el !== target) {
|
|
3792
3820
|
active$1 =
|
|
3793
3821
|
active$1 === null && within(target, this.$el) && this.isToggled() ?
|
|
@@ -3878,25 +3906,33 @@
|
|
|
3878
3906
|
},
|
|
3879
3907
|
|
|
3880
3908
|
position() {
|
|
3881
|
-
const boundary = query(this.boundary, this.$el) || window;
|
|
3882
3909
|
removeClass(this.$el, this.clsDrop + "-stack");
|
|
3883
3910
|
toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign);
|
|
3884
3911
|
|
|
3885
|
-
const
|
|
3886
|
-
const
|
|
3887
|
-
const
|
|
3912
|
+
const boundary = query(this.boundary, this.$el);
|
|
3913
|
+
const [scrollParent] = scrollParents(this.$el);
|
|
3914
|
+
const scrollParentOffset = offsetViewport(scrollParent);
|
|
3915
|
+
const boundaryOffset = boundary ? offset(boundary) : scrollParentOffset;
|
|
3916
|
+
|
|
3917
|
+
css(this.$el, 'maxWidth', '');
|
|
3918
|
+
const maxWidth = scrollParentOffset.width - (boundary ? 0 : 2 * this.viewportPadding);
|
|
3888
3919
|
|
|
3889
3920
|
if (this.pos[1] === 'justify') {
|
|
3890
|
-
const prop = this.
|
|
3921
|
+
const prop = this.axis === 'y' ? 'width' : 'height';
|
|
3922
|
+
const targetOffset = offset(this.target);
|
|
3923
|
+
const alignTo = this.boundaryAlign ? boundaryOffset : targetOffset;
|
|
3891
3924
|
css(this.$el, prop, alignTo[prop]);
|
|
3892
|
-
} else if (
|
|
3893
|
-
this.$el.offsetWidth >
|
|
3894
|
-
Math.max(boundaryOffset.right - alignTo.left, alignTo.right - boundaryOffset.left))
|
|
3895
|
-
{
|
|
3925
|
+
} else if (this.$el.offsetWidth > maxWidth) {
|
|
3896
3926
|
addClass(this.$el, this.clsDrop + "-stack");
|
|
3897
3927
|
}
|
|
3898
3928
|
|
|
3899
|
-
|
|
3929
|
+
css(this.$el, 'maxWidth', maxWidth);
|
|
3930
|
+
|
|
3931
|
+
this.positionAt(
|
|
3932
|
+
this.$el,
|
|
3933
|
+
boundary && this.boundaryAlign ? boundary : this.target,
|
|
3934
|
+
boundary);
|
|
3935
|
+
|
|
3900
3936
|
} } };
|
|
3901
3937
|
|
|
3902
3938
|
|
|
@@ -5000,16 +5036,19 @@
|
|
|
5000
5036
|
|
|
5001
5037
|
connected() {
|
|
5002
5038
|
const media = toMedia(this.media);
|
|
5003
|
-
this.
|
|
5004
|
-
|
|
5005
|
-
this.
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5039
|
+
this.matchMedia = true;
|
|
5040
|
+
if (media) {
|
|
5041
|
+
this.mediaObj = window.matchMedia(media);
|
|
5042
|
+
const handler = () => {
|
|
5043
|
+
this.matchMedia = this.mediaObj.matches;
|
|
5044
|
+
trigger(this.$el, createEvent('mediachange', false, true, [this.mediaObj]));
|
|
5045
|
+
};
|
|
5046
|
+
this.offMediaObj = on(this.mediaObj, 'change', () => {
|
|
5047
|
+
handler();
|
|
5048
|
+
this.$emit('resize');
|
|
5049
|
+
});
|
|
5009
5050
|
handler();
|
|
5010
|
-
|
|
5011
|
-
});
|
|
5012
|
-
handler();
|
|
5051
|
+
}
|
|
5013
5052
|
},
|
|
5014
5053
|
|
|
5015
5054
|
disconnected() {var _this$offMediaObj;
|
|
@@ -5298,7 +5337,7 @@
|
|
|
5298
5337
|
return (el, show) =>
|
|
5299
5338
|
new Promise((resolve, reject) =>
|
|
5300
5339
|
once(el, 'show hide', () => {
|
|
5301
|
-
el._reject
|
|
5340
|
+
el._reject == null ? void 0 : el._reject();
|
|
5302
5341
|
el._reject = reject;
|
|
5303
5342
|
|
|
5304
5343
|
_toggle(el, show);
|
|
@@ -5323,6 +5362,10 @@
|
|
|
5323
5362
|
then(() => delete el._reject);
|
|
5324
5363
|
}
|
|
5325
5364
|
|
|
5365
|
+
function toMs(time) {
|
|
5366
|
+
return time ? endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000 : 0;
|
|
5367
|
+
}
|
|
5368
|
+
|
|
5326
5369
|
var modal = {
|
|
5327
5370
|
install: install$2,
|
|
5328
5371
|
|
|
@@ -5476,8 +5519,6 @@
|
|
|
5476
5519
|
toggle: '> a',
|
|
5477
5520
|
content: '> ul' } };
|
|
5478
5521
|
|
|
5479
|
-
const navItem = '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle';
|
|
5480
|
-
|
|
5481
5522
|
var navbar = {
|
|
5482
5523
|
mixins: [Class, Container],
|
|
5483
5524
|
|
|
@@ -5497,7 +5538,7 @@
|
|
|
5497
5538
|
|
|
5498
5539
|
|
|
5499
5540
|
data: {
|
|
5500
|
-
dropdown:
|
|
5541
|
+
dropdown: '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle',
|
|
5501
5542
|
align: isRtl ? 'right' : 'left',
|
|
5502
5543
|
clsDrop: 'uk-navbar-dropdown',
|
|
5503
5544
|
mode: undefined,
|
|
@@ -5583,9 +5624,23 @@
|
|
|
5583
5624
|
immediate: true },
|
|
5584
5625
|
|
|
5585
5626
|
|
|
5586
|
-
toggles
|
|
5587
|
-
|
|
5588
|
-
|
|
5627
|
+
toggles: {
|
|
5628
|
+
get(_ref6, $el) {let { dropdown } = _ref6;
|
|
5629
|
+
return $$(dropdown, $el);
|
|
5630
|
+
},
|
|
5631
|
+
|
|
5632
|
+
watch() {
|
|
5633
|
+
const justify = hasClass(this.$el, 'uk-navbar-justify');
|
|
5634
|
+
for (const container of $$(
|
|
5635
|
+
'.uk-navbar-nav, .uk-navbar-left, .uk-navbar-right',
|
|
5636
|
+
this.$el))
|
|
5637
|
+
{
|
|
5638
|
+
css(container, 'flexGrow', justify ? $$(this.dropdown, container).length : '');
|
|
5639
|
+
}
|
|
5640
|
+
},
|
|
5641
|
+
|
|
5642
|
+
immediate: true } },
|
|
5643
|
+
|
|
5589
5644
|
|
|
5590
5645
|
|
|
5591
5646
|
disconnected() {
|
|
@@ -5746,7 +5801,7 @@
|
|
|
5746
5801
|
return this.dropbar;
|
|
5747
5802
|
},
|
|
5748
5803
|
|
|
5749
|
-
handler(_, _ref10) {let { $el, dir } = _ref10;
|
|
5804
|
+
handler(_, _ref10) {let { $el, pos: [dir] = [] } = _ref10;
|
|
5750
5805
|
if (!hasClass($el, this.clsDrop)) {
|
|
5751
5806
|
return;
|
|
5752
5807
|
}
|
|
@@ -6480,19 +6535,15 @@
|
|
|
6480
6535
|
|
|
6481
6536
|
const [scrollElement] = scrollParents(targets, /auto|scroll/, true);
|
|
6482
6537
|
const { scrollTop, scrollHeight } = scrollElement;
|
|
6483
|
-
const
|
|
6538
|
+
const viewport = offsetViewport(scrollElement);
|
|
6539
|
+
const max = scrollHeight - viewport.height;
|
|
6484
6540
|
let active = false;
|
|
6485
6541
|
|
|
6486
6542
|
if (scrollTop === max) {
|
|
6487
6543
|
active = length - 1;
|
|
6488
6544
|
} else {
|
|
6489
|
-
for (
|
|
6490
|
-
if (
|
|
6491
|
-
offset(targets[i]).top -
|
|
6492
|
-
offset(getViewport$1(scrollElement)).top -
|
|
6493
|
-
this.offset >
|
|
6494
|
-
0)
|
|
6495
|
-
{
|
|
6545
|
+
for (let i = 0; i < targets.length; i++) {
|
|
6546
|
+
if (offset(targets[i]).top - viewport.top - this.offset > 0) {
|
|
6496
6547
|
break;
|
|
6497
6548
|
}
|
|
6498
6549
|
active = +i;
|
|
@@ -6510,7 +6561,7 @@
|
|
|
6510
6561
|
const changed = active !== false && !hasClass(this.elements[active], this.cls);
|
|
6511
6562
|
|
|
6512
6563
|
this.links.forEach((el) => el.blur());
|
|
6513
|
-
for (
|
|
6564
|
+
for (let i = 0; i < this.elements.length; i++) {
|
|
6514
6565
|
toggleClass(this.elements[i], this.cls, +i === active);
|
|
6515
6566
|
}
|
|
6516
6567
|
|
|
@@ -6527,8 +6578,11 @@
|
|
|
6527
6578
|
props: {
|
|
6528
6579
|
position: String,
|
|
6529
6580
|
top: null,
|
|
6530
|
-
bottom:
|
|
6581
|
+
bottom: null,
|
|
6582
|
+
start: null,
|
|
6583
|
+
end: null,
|
|
6531
6584
|
offset: String,
|
|
6585
|
+
overflowFlip: Boolean,
|
|
6532
6586
|
animation: String,
|
|
6533
6587
|
clsActive: String,
|
|
6534
6588
|
clsInactive: String,
|
|
@@ -6541,9 +6595,12 @@
|
|
|
6541
6595
|
|
|
6542
6596
|
data: {
|
|
6543
6597
|
position: 'top',
|
|
6544
|
-
top:
|
|
6598
|
+
top: false,
|
|
6545
6599
|
bottom: false,
|
|
6600
|
+
start: false,
|
|
6601
|
+
end: false,
|
|
6546
6602
|
offset: 0,
|
|
6603
|
+
overflowFlip: false,
|
|
6547
6604
|
animation: '',
|
|
6548
6605
|
clsActive: 'uk-active',
|
|
6549
6606
|
clsInactive: '',
|
|
@@ -6565,6 +6622,9 @@
|
|
|
6565
6622
|
},
|
|
6566
6623
|
|
|
6567
6624
|
connected() {
|
|
6625
|
+
this.start = coerce(this.start || this.top);
|
|
6626
|
+
this.end = coerce(this.end || this.bottom);
|
|
6627
|
+
|
|
6568
6628
|
this.placeholder =
|
|
6569
6629
|
$('+ .uk-sticky-placeholder', this.$el) ||
|
|
6570
6630
|
$('<div class="uk-sticky-placeholder"></div>');
|
|
@@ -6583,6 +6643,17 @@
|
|
|
6583
6643
|
},
|
|
6584
6644
|
|
|
6585
6645
|
events: [
|
|
6646
|
+
{
|
|
6647
|
+
name: 'resize',
|
|
6648
|
+
|
|
6649
|
+
el() {
|
|
6650
|
+
return window;
|
|
6651
|
+
},
|
|
6652
|
+
|
|
6653
|
+
handler() {
|
|
6654
|
+
this.$emit('resize');
|
|
6655
|
+
} },
|
|
6656
|
+
|
|
6586
6657
|
{
|
|
6587
6658
|
name: 'load hashchange popstate',
|
|
6588
6659
|
|
|
@@ -6599,7 +6670,7 @@
|
|
|
6599
6670
|
return;
|
|
6600
6671
|
}
|
|
6601
6672
|
|
|
6602
|
-
|
|
6673
|
+
setTimeout(() => {
|
|
6603
6674
|
const targetOffset = offset($(location.hash));
|
|
6604
6675
|
const elOffset = offset(this.$el);
|
|
6605
6676
|
|
|
@@ -6608,8 +6679,8 @@
|
|
|
6608
6679
|
window,
|
|
6609
6680
|
targetOffset.top -
|
|
6610
6681
|
elOffset.height -
|
|
6611
|
-
toPx(this.targetOffset, 'height') -
|
|
6612
|
-
toPx(this.offset, 'height'));
|
|
6682
|
+
toPx(this.targetOffset, 'height', this.placeholder) -
|
|
6683
|
+
toPx(this.offset, 'height', this.placeholder));
|
|
6613
6684
|
|
|
6614
6685
|
}
|
|
6615
6686
|
});
|
|
@@ -6639,32 +6710,38 @@
|
|
|
6639
6710
|
|
|
6640
6711
|
if (hide) {
|
|
6641
6712
|
this.show();
|
|
6642
|
-
|
|
6713
|
+
requestAnimationFrame(() => css(this.selTarget, 'transition', ''));
|
|
6643
6714
|
}
|
|
6644
6715
|
|
|
6645
6716
|
const referenceElement = this.isFixed ? this.placeholder : this.$el;
|
|
6646
6717
|
const windowHeight = height(window);
|
|
6647
6718
|
|
|
6648
6719
|
let position = this.position;
|
|
6649
|
-
if (
|
|
6650
|
-
position = 'bottom';
|
|
6720
|
+
if (this.overflowFlip && height$1 > windowHeight) {
|
|
6721
|
+
position = position === 'top' ? 'bottom' : 'top';
|
|
6651
6722
|
}
|
|
6652
6723
|
|
|
6653
6724
|
let offset$1 = toPx(this.offset, 'height', referenceElement);
|
|
6654
|
-
if (position === 'bottom') {
|
|
6725
|
+
if (position === 'bottom' && (height$1 < windowHeight || this.overflowFlip)) {
|
|
6655
6726
|
offset$1 += windowHeight - height$1;
|
|
6656
6727
|
}
|
|
6657
6728
|
|
|
6658
|
-
const overflow =
|
|
6729
|
+
const overflow = this.overflowFlip ?
|
|
6730
|
+
0 :
|
|
6731
|
+
Math.max(0, height$1 + offset$1 - windowHeight);
|
|
6659
6732
|
const topOffset = offset(referenceElement).top;
|
|
6660
6733
|
|
|
6661
|
-
const
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
const end =
|
|
6666
|
-
|
|
6667
|
-
|
|
6734
|
+
const start =
|
|
6735
|
+
(this.start === false ?
|
|
6736
|
+
topOffset :
|
|
6737
|
+
parseProp(this.start, this.$el, topOffset)) - offset$1;
|
|
6738
|
+
const end =
|
|
6739
|
+
this.end === false ?
|
|
6740
|
+
document.scrollingElement.scrollHeight - windowHeight :
|
|
6741
|
+
parseProp(this.end, this.$el, topOffset + height$1, true) -
|
|
6742
|
+
offset(this.$el).height +
|
|
6743
|
+
overflow -
|
|
6744
|
+
offset$1;
|
|
6668
6745
|
|
|
6669
6746
|
return {
|
|
6670
6747
|
start,
|
|
@@ -6710,7 +6787,9 @@
|
|
|
6710
6787
|
prevDir,
|
|
6711
6788
|
scroll,
|
|
6712
6789
|
prevScroll,
|
|
6713
|
-
offsetParentTop: offset(
|
|
6790
|
+
offsetParentTop: offset(
|
|
6791
|
+
(this.isFixed ? this.placeholder : this.$el).offsetParent).
|
|
6792
|
+
top,
|
|
6714
6793
|
overflowScroll: clamp(
|
|
6715
6794
|
overflowScroll + clamp(scroll, start, end) - clamp(prevScroll, start, end),
|
|
6716
6795
|
0,
|
|
@@ -6865,8 +6944,8 @@
|
|
|
6865
6944
|
return 0;
|
|
6866
6945
|
}
|
|
6867
6946
|
|
|
6868
|
-
if (isString(value) && value.match(/^-?\d/)) {
|
|
6869
|
-
return propOffset + toPx(value);
|
|
6947
|
+
if (isNumeric(value) || isString(value) && value.match(/^-?\d/)) {
|
|
6948
|
+
return propOffset + toPx(value, 'height', el, true);
|
|
6870
6949
|
} else {
|
|
6871
6950
|
const refElement = value === true ? parent(el) : query(value, el);
|
|
6872
6951
|
return (
|
|
@@ -6878,6 +6957,15 @@
|
|
|
6878
6957
|
}
|
|
6879
6958
|
}
|
|
6880
6959
|
|
|
6960
|
+
function coerce(value) {
|
|
6961
|
+
if (value === 'true') {
|
|
6962
|
+
return true;
|
|
6963
|
+
} else if (value === 'false') {
|
|
6964
|
+
return false;
|
|
6965
|
+
}
|
|
6966
|
+
return value;
|
|
6967
|
+
}
|
|
6968
|
+
|
|
6881
6969
|
var Switcher = {
|
|
6882
6970
|
mixins: [Lazyload, Swipe, Togglable],
|
|
6883
6971
|
|
|
@@ -7186,15 +7274,7 @@
|
|
|
7186
7274
|
{
|
|
7187
7275
|
name: 'click',
|
|
7188
7276
|
|
|
7189
|
-
filter() {
|
|
7190
|
-
return includes(this.mode, 'click');
|
|
7191
|
-
},
|
|
7192
|
-
|
|
7193
7277
|
handler(e) {
|
|
7194
|
-
if (this._preventClick) {
|
|
7195
|
-
return this._preventClick = null;
|
|
7196
|
-
}
|
|
7197
|
-
|
|
7198
7278
|
let link;
|
|
7199
7279
|
if (
|
|
7200
7280
|
closest(e.target, 'a[href="#"], a[href=""]') ||
|
|
@@ -7205,6 +7285,14 @@
|
|
|
7205
7285
|
e.preventDefault();
|
|
7206
7286
|
}
|
|
7207
7287
|
|
|
7288
|
+
if (this._preventClick) {
|
|
7289
|
+
return this._preventClick = null;
|
|
7290
|
+
}
|
|
7291
|
+
|
|
7292
|
+
if (!includes(this.mode, 'click')) {
|
|
7293
|
+
return;
|
|
7294
|
+
}
|
|
7295
|
+
|
|
7208
7296
|
this.toggle();
|
|
7209
7297
|
} },
|
|
7210
7298
|
|
|
@@ -7330,9 +7418,6 @@
|
|
|
7330
7418
|
// register components
|
|
7331
7419
|
each(components$1, (component, name) => UIkit.component(name, component));
|
|
7332
7420
|
|
|
7333
|
-
// core functionality
|
|
7334
|
-
UIkit.use(Core);
|
|
7335
|
-
|
|
7336
7421
|
boot(UIkit);
|
|
7337
7422
|
|
|
7338
7423
|
const units = ['days', 'hours', 'minutes', 'seconds'];
|
|
@@ -9213,7 +9298,9 @@
|
|
|
9213
9298
|
|
|
9214
9299
|
methods: {
|
|
9215
9300
|
reset() {
|
|
9216
|
-
|
|
9301
|
+
for (const prop in this.getCss(0)) {
|
|
9302
|
+
css(this.$el, prop, '');
|
|
9303
|
+
}
|
|
9217
9304
|
},
|
|
9218
9305
|
|
|
9219
9306
|
getCss(percent) {
|
|
@@ -9227,12 +9314,16 @@
|
|
|
9227
9314
|
|
|
9228
9315
|
|
|
9229
9316
|
function transformFn(prop, el, stops) {
|
|
9230
|
-
|
|
9317
|
+
let unit = getUnit(stops) || { x: 'px', y: 'px', rotate: 'deg' }[prop] || '';
|
|
9231
9318
|
let transformFn;
|
|
9232
9319
|
|
|
9233
9320
|
if (prop === 'x' || prop === 'y') {
|
|
9234
9321
|
prop = "translate" + ucfirst(prop);
|
|
9235
9322
|
transformFn = (stop) => toFloat(toFloat(stop).toFixed(unit === 'px' ? 0 : 6));
|
|
9323
|
+
} else if (prop === 'scale') {
|
|
9324
|
+
unit = '';
|
|
9325
|
+
transformFn = (stop) =>
|
|
9326
|
+
getUnit([stop]) ? toPx(stop, 'width', el, true) / el.offsetWidth : stop;
|
|
9236
9327
|
}
|
|
9237
9328
|
|
|
9238
9329
|
if (stops.length === 1) {
|
|
@@ -9829,7 +9920,7 @@
|
|
|
9829
9920
|
let left = 0;
|
|
9830
9921
|
const sets = [];
|
|
9831
9922
|
const width = dimensions$1(this.list).width;
|
|
9832
|
-
for (let i
|
|
9923
|
+
for (let i = 0; i < this.slides.length; i++) {
|
|
9833
9924
|
const slideWidth = dimensions$1(this.slides[i]).width;
|
|
9834
9925
|
|
|
9835
9926
|
if (left + slideWidth > width) {
|
|
@@ -10546,7 +10637,7 @@
|
|
|
10546
10637
|
some((scrollEl) => {
|
|
10547
10638
|
let { scrollTop: scroll, scrollHeight } = scrollEl;
|
|
10548
10639
|
|
|
10549
|
-
const { top, bottom, height } =
|
|
10640
|
+
const { top, bottom, height } = offsetViewport(scrollEl);
|
|
10550
10641
|
|
|
10551
10642
|
if (top < y && top + 35 > y) {
|
|
10552
10643
|
scroll -= dist;
|
|
@@ -10749,10 +10840,12 @@
|
|
|
10749
10840
|
|
|
10750
10841
|
this.positionAt(this.tooltip, this.$el);
|
|
10751
10842
|
|
|
10843
|
+
const [dir, align] = getAlignment(this.tooltip, this.$el, this.pos);
|
|
10844
|
+
|
|
10752
10845
|
this.origin =
|
|
10753
|
-
this.
|
|
10754
|
-
flipPosition(
|
|
10755
|
-
|
|
10846
|
+
this.axis === 'y' ?
|
|
10847
|
+
flipPosition(dir) + "-" + align :
|
|
10848
|
+
align + "-" + flipPosition(dir);
|
|
10756
10849
|
});
|
|
10757
10850
|
|
|
10758
10851
|
this.toggleElement(this.tooltip, true);
|
|
@@ -10789,6 +10882,37 @@
|
|
|
10789
10882
|
}
|
|
10790
10883
|
}
|
|
10791
10884
|
|
|
10885
|
+
function getAlignment(el, target, _ref) {let [dir, align] = _ref;
|
|
10886
|
+
const elOffset = offset(el);
|
|
10887
|
+
const targetOffset = offset(target);
|
|
10888
|
+
const properties = [
|
|
10889
|
+
['left', 'right'],
|
|
10890
|
+
['top', 'bottom']];
|
|
10891
|
+
|
|
10892
|
+
|
|
10893
|
+
for (const props of properties) {
|
|
10894
|
+
if (elOffset[props[0]] >= targetOffset[props[1]]) {
|
|
10895
|
+
dir = props[1];
|
|
10896
|
+
break;
|
|
10897
|
+
}
|
|
10898
|
+
if (elOffset[props[1]] <= targetOffset[props[0]]) {
|
|
10899
|
+
dir = props[0];
|
|
10900
|
+
break;
|
|
10901
|
+
}
|
|
10902
|
+
}
|
|
10903
|
+
|
|
10904
|
+
const props = includes(properties[0], dir) ? properties[1] : properties[0];
|
|
10905
|
+
if (elOffset[props[0]] === targetOffset[props[0]]) {
|
|
10906
|
+
align = props[0];
|
|
10907
|
+
} else if (elOffset[props[1]] === targetOffset[props[1]]) {
|
|
10908
|
+
align = props[1];
|
|
10909
|
+
} else {
|
|
10910
|
+
align = 'center';
|
|
10911
|
+
}
|
|
10912
|
+
|
|
10913
|
+
return [dir, align];
|
|
10914
|
+
}
|
|
10915
|
+
|
|
10792
10916
|
var upload = {
|
|
10793
10917
|
props: {
|
|
10794
10918
|
allow: String,
|