uikit 3.11.2-dev.31cd2ba38 → 3.11.2-dev.4274bc35b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +4 -49
- package/.prettierignore +14 -0
- package/.prettierrc.json +13 -0
- package/.webstorm.js +3 -3
- package/CHANGELOG.md +38 -28
- package/build/.eslintrc.json +1 -3
- package/build/build.js +26 -28
- package/build/icons.js +7 -11
- package/build/less.js +48 -36
- package/build/package.json +2 -2
- package/build/prefix.js +21 -18
- package/build/publishDev.js +6 -8
- package/build/release.js +20 -17
- package/build/scope.js +21 -11
- package/build/scss.js +72 -39
- package/build/util.js +71 -62
- package/build/wrapper/icons.js +0 -2
- package/dist/css/uikit-core-rtl.css +121 -202
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +121 -202
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +123 -208
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +123 -208
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +88 -133
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +408 -439
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +1098 -1316
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +1144 -1393
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +94 -114
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +326 -358
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +324 -357
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +768 -843
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +324 -357
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +645 -793
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +587 -620
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +324 -356
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +155 -167
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +5405 -6716
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +7 -9
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +7997 -9703
- package/dist/js/uikit.min.js +1 -1
- package/jsconfig.json +1 -1
- package/package.json +64 -60
- package/src/js/api/boot.js +25 -32
- package/src/js/api/component.js +15 -28
- package/src/js/api/global.js +6 -12
- package/src/js/api/hooks.js +14 -33
- package/src/js/api/instance.js +7 -15
- package/src/js/api/state.js +79 -100
- package/src/js/components/countdown.js +24 -50
- package/src/js/components/filter.js +70 -66
- package/src/js/components/index.js +13 -13
- package/src/js/components/internal/lightbox-animations.js +14 -25
- package/src/js/components/internal/slider-preload.js +37 -0
- package/src/js/components/internal/slider-transitioner.js +66 -45
- package/src/js/components/internal/slideshow-animations.js +46 -64
- package/src/js/components/lightbox-panel.js +107 -105
- package/src/js/components/lightbox.js +17 -39
- package/src/js/components/notification.js +49 -43
- package/src/js/components/parallax.js +16 -30
- package/src/js/components/slider-parallax.js +13 -23
- package/src/js/components/slider.js +95 -64
- package/src/js/components/slideshow-parallax.js +1 -1
- package/src/js/components/slideshow.js +15 -13
- package/src/js/components/sortable.js +125 -106
- package/src/js/components/tooltip.js +41 -31
- package/src/js/components/upload.js +52 -63
- package/src/js/core/accordion.js +53 -48
- package/src/js/core/alert.js +9 -17
- package/src/js/core/core.js +74 -53
- package/src/js/core/cover.js +11 -15
- package/src/js/core/drop.js +106 -92
- package/src/js/core/form-custom.js +20 -25
- package/src/js/core/gif.js +3 -7
- package/src/js/core/grid.js +57 -58
- package/src/js/core/height-match.js +16 -29
- package/src/js/core/height-viewport.js +28 -35
- package/src/js/core/icon.js +38 -50
- package/src/js/core/img.js +127 -87
- package/src/js/core/index.js +39 -39
- package/src/js/core/leader.js +9 -18
- package/src/js/core/margin.js +21 -37
- package/src/js/core/modal.js +49 -36
- package/src/js/core/nav.js +2 -4
- package/src/js/core/navbar.js +112 -88
- package/src/js/core/offcanvas.js +49 -53
- package/src/js/core/overflow-auto.js +13 -17
- package/src/js/core/responsive.js +14 -12
- package/src/js/core/scroll.js +10 -20
- package/src/js/core/scrollspy-nav.js +34 -31
- package/src/js/core/scrollspy.js +37 -54
- package/src/js/core/sticky.js +130 -91
- package/src/js/core/svg.js +68 -83
- package/src/js/core/switcher.js +47 -46
- package/src/js/core/tab.js +7 -10
- package/src/js/core/toggle.js +66 -67
- package/src/js/core/video.js +11 -22
- package/src/js/mixin/animate.js +19 -20
- package/src/js/mixin/class.js +2 -4
- package/src/js/mixin/container.js +7 -11
- package/src/js/mixin/internal/animate-fade.js +73 -30
- package/src/js/mixin/internal/animate-slide.js +58 -41
- package/src/js/mixin/internal/slideshow-animations.js +7 -14
- package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
- package/src/js/mixin/media.js +5 -10
- package/src/js/mixin/modal.js +89 -66
- package/src/js/mixin/parallax.js +130 -106
- package/src/js/mixin/position.js +26 -20
- package/src/js/mixin/slider-autoplay.js +12 -21
- package/src/js/mixin/slider-drag.js +64 -65
- package/src/js/mixin/slider-nav.js +26 -35
- package/src/js/mixin/slider-reactive.js +2 -8
- package/src/js/mixin/slider.js +48 -55
- package/src/js/mixin/slideshow.js +13 -19
- package/src/js/mixin/togglable.js +89 -63
- package/src/js/uikit-core.js +2 -4
- package/src/js/uikit.js +2 -4
- package/src/js/util/ajax.js +20 -39
- package/src/js/util/animation.js +77 -75
- package/src/js/util/attr.js +17 -21
- package/src/js/util/class.js +14 -52
- package/src/js/util/dimensions.js +56 -43
- package/src/js/util/dom.js +44 -80
- package/src/js/util/env.js +7 -12
- package/src/js/util/event.js +60 -59
- package/src/js/util/fastdom.js +1 -6
- package/src/js/util/filter.js +17 -34
- package/src/js/util/index.js +0 -1
- package/src/js/util/lang.js +82 -121
- package/src/js/util/mouse.js +19 -17
- package/src/js/util/options.js +33 -47
- package/src/js/util/player.js +41 -36
- package/src/js/util/position.js +54 -46
- package/src/js/util/selector.js +43 -58
- package/src/js/util/style.js +39 -49
- package/src/js/util/viewport.js +75 -64
- package/src/less/components/base.less +10 -33
- package/src/less/components/flex.less +0 -9
- package/src/less/components/form-range.less +52 -97
- package/src/less/components/form.less +0 -1
- package/src/less/components/leader.less +0 -1
- package/src/less/components/lightbox.less +0 -1
- package/src/less/components/modal.less +3 -7
- package/src/less/components/navbar.less +0 -7
- package/src/less/components/progress.less +14 -36
- package/src/less/components/slider.less +0 -3
- package/src/less/components/slideshow.less +0 -3
- package/src/less/components/text.less +16 -32
- package/src/less/components/utility.less +22 -0
- package/src/scss/components/base.scss +10 -33
- package/src/scss/components/flex.scss +0 -9
- package/src/scss/components/form-range.scss +52 -97
- package/src/scss/components/form.scss +3 -4
- package/src/scss/components/icon.scss +2 -2
- package/src/scss/components/leader.scss +0 -1
- package/src/scss/components/lightbox.scss +0 -1
- package/src/scss/components/modal.scss +3 -7
- package/src/scss/components/navbar.scss +0 -7
- package/src/scss/components/progress.scss +14 -36
- package/src/scss/components/search.scss +1 -1
- package/src/scss/components/slider.scss +0 -3
- package/src/scss/components/slideshow.scss +0 -3
- package/src/scss/components/text.scss +16 -32
- package/src/scss/components/utility.scss +22 -0
- package/src/scss/mixins-theme.scss +1 -1
- package/src/scss/mixins.scss +1 -1
- package/src/scss/variables-theme.scss +9 -9
- package/src/scss/variables.scss +9 -9
- package/tests/align.html +10 -10
- package/tests/animation.html +2 -2
- package/tests/article.html +2 -2
- package/tests/base.html +3 -3
- package/tests/card.html +10 -10
- package/tests/column.html +3 -3
- package/tests/comment.html +9 -9
- package/tests/dotnav.html +3 -3
- package/tests/image.html +296 -48
- package/tests/images/image-type.avif +0 -0
- package/tests/images/image-type.jpeg +0 -0
- package/tests/images/image-type.webp +0 -0
- package/tests/index.html +8 -8
- package/tests/js/index.js +114 -85
- package/tests/lightbox.html +10 -10
- package/tests/marker.html +2 -2
- package/tests/modal.html +8 -9
- package/tests/navbar.html +2 -2
- package/tests/overlay.html +7 -7
- package/tests/parallax.html +14 -5
- package/tests/position.html +12 -12
- package/tests/slidenav.html +12 -12
- package/tests/slider.html +20 -20
- package/tests/sortable.html +1 -1
- package/tests/sticky-parallax.html +47 -62
- package/tests/svg.html +6 -6
- package/tests/table.html +11 -11
- package/tests/thumbnav.html +12 -12
- package/tests/transition.html +30 -30
- package/tests/utility.html +33 -33
- package/tests/video.html +1 -1
- package/tests/width.html +1 -1
- package/src/js/mixin/flex-bug.js +0 -56
- package/src/js/util/promise.js +0 -191
- package/tests/images/animated.gif +0 -0
- package/tests/images/test.avif +0 -0
- package/tests/images/test.webp +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! UIkit 3.11.2-dev.
|
|
1
|
+
/*! UIkit 3.11.2-dev.4274bc35b | 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(require('uikit-util')) :
|
|
@@ -7,589 +7,558 @@
|
|
|
7
7
|
})(this, (function (uikitUtil) { 'use strict';
|
|
8
8
|
|
|
9
9
|
function getRows(items) {
|
|
10
|
-
|
|
10
|
+
return sortBy(items, 'top', 'bottom');
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
function sortBy(items, startProp, endProp) {
|
|
14
|
+
const sorted = [[]];
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var el = items[i];
|
|
20
|
-
|
|
21
|
-
if (!uikitUtil.isVisible(el)) {
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var dim = getOffset(el);
|
|
26
|
-
|
|
27
|
-
for (var j = sorted.length - 1; j >= 0; j--) {
|
|
28
|
-
|
|
29
|
-
var current = sorted[j];
|
|
30
|
-
|
|
31
|
-
if (!current[0]) {
|
|
32
|
-
current.push(el);
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
16
|
+
for (const el of items) {
|
|
17
|
+
if (!uikitUtil.isVisible(el)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
35
20
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
21
|
+
let dim = getOffset(el);
|
|
22
|
+
|
|
23
|
+
for (let i = sorted.length - 1; i >= 0; i--) {
|
|
24
|
+
const current = sorted[i];
|
|
25
|
+
|
|
26
|
+
if (!current[0]) {
|
|
27
|
+
current.push(el);
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
let startDim;
|
|
32
|
+
if (current[0].offsetParent === el.offsetParent) {
|
|
33
|
+
startDim = getOffset(current[0]);
|
|
34
|
+
} else {
|
|
35
|
+
dim = getOffset(el, true);
|
|
36
|
+
startDim = getOffset(current[0], true);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (dim[startProp] >= startDim[endProp] - 1 && dim[startProp] !== startDim[startProp]) {
|
|
40
|
+
sorted.push([el]);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (dim[endProp] - 1 > startDim[startProp] || dim[startProp] === startDim[startProp]) {
|
|
45
|
+
current.push(el);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (i === 0) {
|
|
50
|
+
sorted.unshift([el]);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
43
55
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
56
|
+
return sorted;
|
|
57
|
+
}
|
|
48
58
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
59
|
+
function getOffset(element, offset) {if (offset === void 0) {offset = false;}
|
|
60
|
+
let { offsetTop, offsetLeft, offsetHeight, offsetWidth } = element;
|
|
53
61
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
62
|
+
if (offset) {
|
|
63
|
+
[offsetTop, offsetLeft] = uikitUtil.offsetPosition(element);
|
|
64
|
+
}
|
|
58
65
|
|
|
59
|
-
|
|
66
|
+
return {
|
|
67
|
+
top: offsetTop,
|
|
68
|
+
left: offsetLeft,
|
|
69
|
+
bottom: offsetTop + offsetHeight,
|
|
70
|
+
right: offsetLeft + offsetWidth };
|
|
60
71
|
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return sorted;
|
|
64
72
|
}
|
|
65
73
|
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
const clsLeave = 'uk-transition-leave';
|
|
75
|
+
const clsEnter = 'uk-transition-enter';
|
|
68
76
|
|
|
69
|
-
|
|
77
|
+
function fade(action, target, duration, stagger) {if (stagger === void 0) {stagger = 0;}
|
|
78
|
+
const index = transitionIndex(target, true);
|
|
79
|
+
const propsIn = { opacity: 1 };
|
|
80
|
+
const propsOut = { opacity: 0 };
|
|
70
81
|
|
|
71
|
-
|
|
72
|
-
var offsetLeft = element.offsetLeft;
|
|
73
|
-
var offsetHeight = element.offsetHeight;
|
|
74
|
-
var offsetWidth = element.offsetWidth;
|
|
82
|
+
const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();
|
|
75
83
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
84
|
+
const leaveFn = wrapIndexFn(() => {
|
|
85
|
+
uikitUtil.addClass(target, clsLeave);
|
|
79
86
|
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
return Promise.all(
|
|
88
|
+
getTransitionNodes(target).map(
|
|
89
|
+
(child, i) =>
|
|
90
|
+
new Promise((resolve) =>
|
|
91
|
+
setTimeout(
|
|
92
|
+
() =>
|
|
93
|
+
uikitUtil.Transition.start(child, propsOut, duration / 2, 'ease').then(
|
|
94
|
+
resolve),
|
|
87
95
|
|
|
88
|
-
|
|
89
|
-
var clsEnter = 'uk-transition-enter';
|
|
96
|
+
i * stagger)))).
|
|
90
97
|
|
|
91
|
-
function fade(action, target, duration, stagger) {
|
|
92
|
-
if ( stagger === void 0 ) stagger = 0;
|
|
93
98
|
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var propsOut = {opacity: 0};
|
|
100
|
+
then(() => uikitUtil.removeClass(target, clsLeave));
|
|
101
|
+
});
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
const enterFn = wrapIndexFn(() => {
|
|
104
|
+
const oldHeight = uikitUtil.height(target);
|
|
100
105
|
|
|
101
|
-
|
|
106
|
+
uikitUtil.addClass(target, clsEnter);
|
|
107
|
+
action();
|
|
102
108
|
|
|
103
|
-
|
|
109
|
+
uikitUtil.css(uikitUtil.children(target), { opacity: 0 });
|
|
104
110
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
111
|
+
// Ensure UIkit updates have propagated
|
|
112
|
+
return new Promise((resolve) =>
|
|
113
|
+
requestAnimationFrame(() => {
|
|
114
|
+
const nodes = uikitUtil.children(target);
|
|
115
|
+
const newHeight = uikitUtil.height(target);
|
|
108
116
|
|
|
109
|
-
|
|
117
|
+
// Ensure Grid cells do not stretch when height is applied
|
|
118
|
+
uikitUtil.css(target, 'alignContent', 'flex-start');
|
|
119
|
+
uikitUtil.height(target, oldHeight);
|
|
110
120
|
|
|
111
|
-
|
|
121
|
+
const transitionNodes = getTransitionNodes(target);
|
|
122
|
+
uikitUtil.css(nodes, propsOut);
|
|
112
123
|
|
|
113
|
-
|
|
124
|
+
const transitions = transitionNodes.map(
|
|
125
|
+
(child, i) =>
|
|
126
|
+
new Promise((resolve) =>
|
|
127
|
+
setTimeout(
|
|
128
|
+
() =>
|
|
129
|
+
uikitUtil.Transition.start(child, propsIn, duration / 2, 'ease').then(
|
|
130
|
+
resolve),
|
|
114
131
|
|
|
115
|
-
|
|
116
|
-
action();
|
|
132
|
+
i * stagger)));
|
|
117
133
|
|
|
118
|
-
uikitUtil.css(uikitUtil.children(target), {opacity: 0});
|
|
119
134
|
|
|
120
|
-
// Ensure UIkit updates have propagated
|
|
121
|
-
return new uikitUtil.Promise(function (resolve) { return requestAnimationFrame(function () {
|
|
122
135
|
|
|
123
|
-
var nodes = uikitUtil.children(target);
|
|
124
|
-
var newHeight = uikitUtil.height(target);
|
|
125
136
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
137
|
+
if (oldHeight !== newHeight) {
|
|
138
|
+
transitions.push(
|
|
139
|
+
uikitUtil.Transition.start(
|
|
140
|
+
target,
|
|
141
|
+
{ height: newHeight },
|
|
142
|
+
duration / 2 + transitionNodes.length * stagger,
|
|
143
|
+
'ease'));
|
|
129
144
|
|
|
130
|
-
var transitionNodes = getTransitionNodes(target);
|
|
131
|
-
uikitUtil.css(nodes, propsOut);
|
|
132
145
|
|
|
133
|
-
|
|
134
|
-
); }
|
|
135
|
-
);
|
|
146
|
+
}
|
|
136
147
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
Promise.all(transitions).then(() => {
|
|
149
|
+
uikitUtil.removeClass(target, clsEnter);
|
|
150
|
+
if (index === transitionIndex(target)) {
|
|
151
|
+
uikitUtil.css(target, { height: '', alignContent: '' });
|
|
152
|
+
uikitUtil.css(nodes, { opacity: '' });
|
|
153
|
+
delete target.dataset.transition;
|
|
154
|
+
}
|
|
155
|
+
resolve();
|
|
156
|
+
});
|
|
157
|
+
}));
|
|
140
158
|
|
|
141
|
-
|
|
142
|
-
uikitUtil.removeClass(target, clsEnter);
|
|
143
|
-
if (index === transitionIndex(target)) {
|
|
144
|
-
uikitUtil.css(target, {height: '', alignContent: ''});
|
|
145
|
-
uikitUtil.css(nodes, {opacity: ''});
|
|
146
|
-
delete target.dataset.transition;
|
|
147
|
-
}
|
|
148
|
-
resolve();
|
|
149
|
-
});
|
|
150
|
-
}); }
|
|
151
|
-
);
|
|
152
|
-
});
|
|
159
|
+
});
|
|
153
160
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
return uikitUtil.hasClass(target, clsLeave) ?
|
|
162
|
+
waitTransitionend(target).then(enterFn) :
|
|
163
|
+
uikitUtil.hasClass(target, clsEnter) ?
|
|
164
|
+
waitTransitionend(target).then(leaveFn).then(enterFn) :
|
|
165
|
+
leaveFn().then(enterFn);
|
|
159
166
|
}
|
|
160
167
|
|
|
161
168
|
function transitionIndex(target, next) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
169
|
+
if (next) {
|
|
170
|
+
target.dataset.transition = 1 + transitionIndex(target);
|
|
171
|
+
}
|
|
165
172
|
|
|
166
|
-
|
|
173
|
+
return uikitUtil.toNumber(target.dataset.transition) || 0;
|
|
167
174
|
}
|
|
168
175
|
|
|
169
176
|
function waitTransitionend(target) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
177
|
+
return Promise.all(
|
|
178
|
+
uikitUtil.children(target).
|
|
179
|
+
filter(uikitUtil.Transition.inProgress).
|
|
180
|
+
map(
|
|
181
|
+
(el) =>
|
|
182
|
+
new Promise((resolve) => uikitUtil.once(el, 'transitionend transitioncanceled', resolve))));
|
|
173
183
|
|
|
174
|
-
function getTransitionNodes(target) {
|
|
175
|
-
return getRows(uikitUtil.children(target)).reduce(function (nodes, row) { return nodes.concat(uikitUtil.sortBy(row.filter(function (el) { return uikitUtil.isInView(el); }), 'offsetLeft')); }, []);
|
|
176
|
-
}
|
|
177
184
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return new uikitUtil.Promise(function (resolve) { return requestAnimationFrame(function () {
|
|
181
|
-
|
|
182
|
-
var nodes = uikitUtil.children(target);
|
|
183
|
-
|
|
184
|
-
// Get current state
|
|
185
|
-
var currentProps = nodes.map(function (el) { return getProps(el, true); });
|
|
186
|
-
var targetProps = uikitUtil.css(target, ['height', 'padding']);
|
|
187
|
-
|
|
188
|
-
// Cancel previous animations
|
|
189
|
-
uikitUtil.Transition.cancel(target);
|
|
190
|
-
nodes.forEach(uikitUtil.Transition.cancel);
|
|
191
|
-
reset(target);
|
|
192
|
-
|
|
193
|
-
// Adding, sorting, removing nodes
|
|
194
|
-
action();
|
|
195
|
-
|
|
196
|
-
// Find new nodes
|
|
197
|
-
nodes = nodes.concat(uikitUtil.children(target).filter(function (el) { return !uikitUtil.includes(nodes, el); }));
|
|
198
|
-
|
|
199
|
-
// Wait for update to propagate
|
|
200
|
-
uikitUtil.Promise.resolve().then(function () {
|
|
201
|
-
|
|
202
|
-
// Force update
|
|
203
|
-
uikitUtil.fastdom.flush();
|
|
185
|
+
}
|
|
204
186
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
187
|
+
function getTransitionNodes(target) {
|
|
188
|
+
return getRows(uikitUtil.children(target)).reduce(
|
|
189
|
+
(nodes, row) =>
|
|
190
|
+
nodes.concat(
|
|
191
|
+
uikitUtil.sortBy(
|
|
192
|
+
row.filter((el) => uikitUtil.isInView(el)),
|
|
193
|
+
'offsetLeft')),
|
|
210
194
|
|
|
211
|
-
// Reset to previous state
|
|
212
|
-
nodes.forEach(function (el, i) { return propsFrom[i] && uikitUtil.css(el, propsFrom[i]); });
|
|
213
|
-
uikitUtil.css(target, uikitUtil.assign({display: 'block'}, targetProps));
|
|
214
195
|
|
|
215
|
-
|
|
216
|
-
requestAnimationFrame(function () {
|
|
196
|
+
[]);
|
|
217
197
|
|
|
218
|
-
|
|
219
|
-
).concat(uikitUtil.Transition.start(target, targetPropsTo, duration, 'ease'));
|
|
198
|
+
}
|
|
220
199
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
200
|
+
function slide (action, target, duration) {
|
|
201
|
+
return new Promise((resolve) =>
|
|
202
|
+
requestAnimationFrame(() => {
|
|
203
|
+
let nodes = uikitUtil.children(target);
|
|
204
|
+
|
|
205
|
+
// Get current state
|
|
206
|
+
const currentProps = nodes.map((el) => getProps(el, true));
|
|
207
|
+
const targetProps = uikitUtil.css(target, ['height', 'padding']);
|
|
208
|
+
|
|
209
|
+
// Cancel previous animations
|
|
210
|
+
uikitUtil.Transition.cancel(target);
|
|
211
|
+
nodes.forEach(uikitUtil.Transition.cancel);
|
|
212
|
+
reset(target);
|
|
213
|
+
|
|
214
|
+
// Adding, sorting, removing nodes
|
|
215
|
+
action();
|
|
216
|
+
|
|
217
|
+
// Find new nodes
|
|
218
|
+
nodes = nodes.concat(uikitUtil.children(target).filter((el) => !uikitUtil.includes(nodes, el)));
|
|
219
|
+
|
|
220
|
+
// Wait for update to propagate
|
|
221
|
+
Promise.resolve().then(() => {
|
|
222
|
+
// Force update
|
|
223
|
+
uikitUtil.fastdom.flush();
|
|
224
|
+
|
|
225
|
+
// Get new state
|
|
226
|
+
const targetPropsTo = uikitUtil.css(target, ['height', 'padding']);
|
|
227
|
+
const [propsTo, propsFrom] = getTransitionProps(target, nodes, currentProps);
|
|
228
|
+
|
|
229
|
+
// Reset to previous state
|
|
230
|
+
nodes.forEach((el, i) => propsFrom[i] && uikitUtil.css(el, propsFrom[i]));
|
|
231
|
+
uikitUtil.css(target, { display: 'block', ...targetProps });
|
|
232
|
+
|
|
233
|
+
// Start transitions on next frame
|
|
234
|
+
requestAnimationFrame(() => {
|
|
235
|
+
const transitions = nodes.
|
|
236
|
+
map(
|
|
237
|
+
(el, i) =>
|
|
238
|
+
uikitUtil.parent(el) === target &&
|
|
239
|
+
uikitUtil.Transition.start(el, propsTo[i], duration, 'ease')).
|
|
240
|
+
|
|
241
|
+
concat(uikitUtil.Transition.start(target, targetPropsTo, duration, 'ease'));
|
|
242
|
+
|
|
243
|
+
Promise.all(transitions).
|
|
244
|
+
then(() => {
|
|
245
|
+
nodes.forEach(
|
|
246
|
+
(el, i) =>
|
|
247
|
+
uikitUtil.parent(el) === target &&
|
|
248
|
+
uikitUtil.css(el, 'display', propsTo[i].opacity === 0 ? 'none' : ''));
|
|
249
|
+
|
|
250
|
+
reset(target);
|
|
251
|
+
}, uikitUtil.noop).
|
|
252
|
+
then(resolve);
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
}));
|
|
225
256
|
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
}); });
|
|
229
257
|
}
|
|
230
258
|
|
|
231
259
|
function getProps(el, opacity) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
260
|
+
const zIndex = uikitUtil.css(el, 'zIndex');
|
|
261
|
+
|
|
262
|
+
return uikitUtil.isVisible(el) ?
|
|
263
|
+
{
|
|
264
|
+
display: '',
|
|
265
|
+
opacity: opacity ? uikitUtil.css(el, 'opacity') : '0',
|
|
266
|
+
pointerEvents: 'none',
|
|
267
|
+
position: 'absolute',
|
|
268
|
+
zIndex: zIndex === 'auto' ? uikitUtil.index(el) : zIndex,
|
|
269
|
+
...getPositionWithMargin(el) } :
|
|
270
|
+
|
|
271
|
+
false;
|
|
244
272
|
}
|
|
245
273
|
|
|
246
274
|
function getTransitionProps(target, nodes, currentProps) {
|
|
275
|
+
const propsTo = nodes.map((el, i) =>
|
|
276
|
+
uikitUtil.parent(el) && i in currentProps ?
|
|
277
|
+
currentProps[i] ?
|
|
278
|
+
uikitUtil.isVisible(el) ?
|
|
279
|
+
getPositionWithMargin(el) :
|
|
280
|
+
{ opacity: 0 } :
|
|
281
|
+
{ opacity: uikitUtil.isVisible(el) ? 1 : 0 } :
|
|
282
|
+
false);
|
|
247
283
|
|
|
248
|
-
var propsTo = nodes.map(function (el, i) { return uikitUtil.parent(el) && i in currentProps
|
|
249
|
-
? currentProps[i]
|
|
250
|
-
? uikitUtil.isVisible(el)
|
|
251
|
-
? getPositionWithMargin(el)
|
|
252
|
-
: {opacity: 0}
|
|
253
|
-
: {opacity: uikitUtil.isVisible(el) ? 1 : 0}
|
|
254
|
-
: false; });
|
|
255
|
-
|
|
256
|
-
var propsFrom = propsTo.map(function (props, i) {
|
|
257
284
|
|
|
258
|
-
|
|
285
|
+
const propsFrom = propsTo.map((props, i) => {
|
|
286
|
+
const from = uikitUtil.parent(nodes[i]) === target && (currentProps[i] || getProps(nodes[i]));
|
|
259
287
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
288
|
+
if (!from) {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
263
291
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
292
|
+
if (!props) {
|
|
293
|
+
delete from.opacity;
|
|
294
|
+
} else if (!('opacity' in props)) {
|
|
295
|
+
const { opacity } = from;
|
|
268
296
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
297
|
+
if (opacity % 1) {
|
|
298
|
+
props.opacity = 1;
|
|
299
|
+
} else {
|
|
300
|
+
delete from.opacity;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
275
303
|
|
|
276
|
-
|
|
277
|
-
|
|
304
|
+
return from;
|
|
305
|
+
});
|
|
278
306
|
|
|
279
|
-
|
|
307
|
+
return [propsTo, propsFrom];
|
|
280
308
|
}
|
|
281
309
|
|
|
282
310
|
function reset(el) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
311
|
+
uikitUtil.css(el.children, {
|
|
312
|
+
height: '',
|
|
313
|
+
left: '',
|
|
314
|
+
opacity: '',
|
|
315
|
+
pointerEvents: '',
|
|
316
|
+
position: '',
|
|
317
|
+
top: '',
|
|
318
|
+
marginTop: '',
|
|
319
|
+
marginLeft: '',
|
|
320
|
+
transform: '',
|
|
321
|
+
width: '',
|
|
322
|
+
zIndex: '' });
|
|
323
|
+
|
|
324
|
+
uikitUtil.css(el, { height: '', display: '', padding: '' });
|
|
297
325
|
}
|
|
298
326
|
|
|
299
327
|
function getPositionWithMargin(el) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
var left = ref$1.left;
|
|
306
|
-
var ref$2 = uikitUtil.css(el, ['marginTop', 'marginLeft']);
|
|
307
|
-
var marginLeft = ref$2.marginLeft;
|
|
308
|
-
var marginTop = ref$2.marginTop;
|
|
309
|
-
|
|
310
|
-
return {top: top, left: left, height: height, width: width, marginLeft: marginLeft, marginTop: marginTop, transform: ''};
|
|
328
|
+
const { height, width } = uikitUtil.offset(el);
|
|
329
|
+
const { top, left } = uikitUtil.position(el);
|
|
330
|
+
const { marginLeft, marginTop } = uikitUtil.css(el, ['marginTop', 'marginLeft']);
|
|
331
|
+
|
|
332
|
+
return { top, left, height, width, marginLeft, marginTop, transform: '' };
|
|
311
333
|
}
|
|
312
334
|
|
|
313
335
|
var Animate = {
|
|
336
|
+
props: {
|
|
337
|
+
duration: Number,
|
|
338
|
+
animation: Boolean },
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
data: {
|
|
342
|
+
duration: 150,
|
|
343
|
+
animation: 'slide' },
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
methods: {
|
|
347
|
+
animate(action, target) {if (target === void 0) {target = this.$el;}
|
|
348
|
+
const name = this.animation;
|
|
349
|
+
const animationFn =
|
|
350
|
+
name === 'fade' ?
|
|
351
|
+
fade :
|
|
352
|
+
name === 'delayed-fade' ?
|
|
353
|
+
function () {for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}return fade(...args, 40);} :
|
|
354
|
+
name ?
|
|
355
|
+
slide :
|
|
356
|
+
() => {
|
|
357
|
+
action();
|
|
358
|
+
return Promise.resolve();
|
|
359
|
+
};
|
|
314
360
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
},
|
|
319
|
-
|
|
320
|
-
data: {
|
|
321
|
-
duration: 150,
|
|
322
|
-
animation: 'slide'
|
|
323
|
-
},
|
|
324
|
-
|
|
325
|
-
methods: {
|
|
326
|
-
|
|
327
|
-
animate: function(action, target) {
|
|
328
|
-
var this$1$1 = this;
|
|
329
|
-
if ( target === void 0 ) target = this.$el;
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
var name = this.animation;
|
|
333
|
-
var animationFn = name === 'fade'
|
|
334
|
-
? fade
|
|
335
|
-
: name === 'delayed-fade'
|
|
336
|
-
? function () {
|
|
337
|
-
var args = [], len = arguments.length;
|
|
338
|
-
while ( len-- ) args[ len ] = arguments[ len ];
|
|
339
|
-
|
|
340
|
-
return fade.apply(void 0, args.concat( [40] ));
|
|
341
|
-
}
|
|
342
|
-
: name
|
|
343
|
-
? slide
|
|
344
|
-
: function () {
|
|
345
|
-
action();
|
|
346
|
-
return uikitUtil.Promise.resolve();
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
return animationFn(action, target, this.duration)
|
|
350
|
-
.then(function () { return this$1$1.$update(target, 'resize'); }, uikitUtil.noop);
|
|
351
|
-
}
|
|
361
|
+
return animationFn(action, target, this.duration).then(
|
|
362
|
+
() => this.$update(target, 'resize'),
|
|
363
|
+
uikitUtil.noop);
|
|
352
364
|
|
|
353
|
-
}
|
|
354
|
-
};
|
|
365
|
+
} } };
|
|
355
366
|
|
|
356
367
|
var Component = {
|
|
368
|
+
mixins: [Animate],
|
|
357
369
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
args: 'target',
|
|
361
|
-
|
|
362
|
-
props: {
|
|
363
|
-
target: Boolean,
|
|
364
|
-
selActive: Boolean
|
|
365
|
-
},
|
|
366
|
-
|
|
367
|
-
data: {
|
|
368
|
-
target: null,
|
|
369
|
-
selActive: false,
|
|
370
|
-
attrItem: 'uk-filter-control',
|
|
371
|
-
cls: 'uk-active',
|
|
372
|
-
duration: 250
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
computed: {
|
|
376
|
-
|
|
377
|
-
toggles: {
|
|
378
|
-
|
|
379
|
-
get: function(ref, $el) {
|
|
380
|
-
var attrItem = ref.attrItem;
|
|
381
|
-
|
|
382
|
-
return uikitUtil.$$(("[" + attrItem + "],[data-" + attrItem + "]"), $el);
|
|
383
|
-
},
|
|
384
|
-
|
|
385
|
-
watch: function() {
|
|
386
|
-
var this$1$1 = this;
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
this.updateState();
|
|
390
|
-
|
|
391
|
-
if (this.selActive !== false) {
|
|
392
|
-
var actives = uikitUtil.$$(this.selActive, this.$el);
|
|
393
|
-
this.toggles.forEach(function (el) { return uikitUtil.toggleClass(el, this$1$1.cls, uikitUtil.includes(actives, el)); });
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
},
|
|
397
|
-
|
|
398
|
-
immediate: true
|
|
370
|
+
args: 'target',
|
|
399
371
|
|
|
400
|
-
|
|
372
|
+
props: {
|
|
373
|
+
target: Boolean,
|
|
374
|
+
selActive: Boolean },
|
|
401
375
|
|
|
402
|
-
children: {
|
|
403
376
|
|
|
404
|
-
|
|
405
|
-
|
|
377
|
+
data: {
|
|
378
|
+
target: null,
|
|
379
|
+
selActive: false,
|
|
380
|
+
attrItem: 'uk-filter-control',
|
|
381
|
+
cls: 'uk-active',
|
|
382
|
+
duration: 250 },
|
|
406
383
|
|
|
407
|
-
return uikitUtil.$$((target + " > *"), $el);
|
|
408
|
-
},
|
|
409
384
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
385
|
+
computed: {
|
|
386
|
+
toggles: {
|
|
387
|
+
get(_ref, $el) {let { attrItem } = _ref;
|
|
388
|
+
return uikitUtil.$$("[" + attrItem + "],[data-" + attrItem + "]", $el);
|
|
389
|
+
},
|
|
415
390
|
|
|
416
|
-
|
|
391
|
+
watch() {
|
|
392
|
+
this.updateState();
|
|
417
393
|
|
|
394
|
+
if (this.selActive !== false) {
|
|
395
|
+
const actives = uikitUtil.$$(this.selActive, this.$el);
|
|
396
|
+
this.toggles.forEach((el) => uikitUtil.toggleClass(el, this.cls, uikitUtil.includes(actives, el)));
|
|
418
397
|
}
|
|
398
|
+
},
|
|
419
399
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
events: [
|
|
423
|
-
|
|
424
|
-
{
|
|
400
|
+
immediate: true },
|
|
425
401
|
|
|
426
|
-
name: 'click',
|
|
427
402
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
403
|
+
children: {
|
|
404
|
+
get(_ref2, $el) {let { target } = _ref2;
|
|
405
|
+
return uikitUtil.$$(target + " > *", $el);
|
|
406
|
+
},
|
|
431
407
|
|
|
432
|
-
|
|
408
|
+
watch(list, old) {
|
|
409
|
+
if (old && !isEqualList(list, old)) {
|
|
410
|
+
this.updateState();
|
|
411
|
+
}
|
|
412
|
+
},
|
|
433
413
|
|
|
434
|
-
|
|
435
|
-
this.apply(e.current);
|
|
414
|
+
immediate: true } },
|
|
436
415
|
|
|
437
|
-
}
|
|
438
416
|
|
|
439
|
-
}
|
|
440
417
|
|
|
441
|
-
|
|
418
|
+
events: [
|
|
419
|
+
{
|
|
420
|
+
name: 'click',
|
|
442
421
|
|
|
443
|
-
|
|
422
|
+
delegate() {
|
|
423
|
+
return "[" + this.attrItem + "],[data-" + this.attrItem + "]";
|
|
424
|
+
},
|
|
444
425
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
426
|
+
handler(e) {
|
|
427
|
+
e.preventDefault();
|
|
428
|
+
this.apply(e.current);
|
|
429
|
+
} }],
|
|
448
430
|
|
|
449
|
-
if (!isEqualState(prevState, newState)) {
|
|
450
|
-
this.setState(newState);
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
431
|
|
|
454
|
-
getState: function() {
|
|
455
|
-
var this$1$1 = this;
|
|
456
432
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
433
|
+
methods: {
|
|
434
|
+
apply(el) {
|
|
435
|
+
const prevState = this.getState();
|
|
436
|
+
const newState = mergeState(el, this.attrItem, this.getState());
|
|
461
437
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
438
|
+
if (!isEqualState(prevState, newState)) {
|
|
439
|
+
this.setState(newState);
|
|
440
|
+
}
|
|
441
|
+
},
|
|
465
442
|
|
|
443
|
+
getState() {
|
|
444
|
+
return this.toggles.
|
|
445
|
+
filter((item) => uikitUtil.hasClass(item, this.cls)).
|
|
446
|
+
reduce((state, el) => mergeState(el, this.attrItem, state), {
|
|
447
|
+
filter: { '': '' },
|
|
448
|
+
sort: [] });
|
|
466
449
|
|
|
467
|
-
|
|
450
|
+
},
|
|
468
451
|
|
|
469
|
-
|
|
452
|
+
setState(state, animate) {if (animate === void 0) {animate = true;}
|
|
453
|
+
state = { filter: { '': '' }, sort: [], ...state };
|
|
470
454
|
|
|
471
|
-
|
|
455
|
+
uikitUtil.trigger(this.$el, 'beforeFilter', [this, state]);
|
|
472
456
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
applyState(state, target, uikitUtil.children(target));
|
|
476
|
-
this$1$1.$update(this$1$1.$el);
|
|
477
|
-
};
|
|
478
|
-
return animate ? this$1$1.animate(filterFn, target) : filterFn();
|
|
479
|
-
})).then(function () { return uikitUtil.trigger(this$1$1.$el, 'afterFilter', [this$1$1]); });
|
|
457
|
+
this.toggles.forEach((el) =>
|
|
458
|
+
uikitUtil.toggleClass(el, this.cls, !!matchFilter(el, this.attrItem, state)));
|
|
480
459
|
|
|
481
|
-
},
|
|
482
460
|
|
|
483
|
-
|
|
484
|
-
|
|
461
|
+
Promise.all(
|
|
462
|
+
uikitUtil.$$(this.target, this.$el).map((target) => {
|
|
463
|
+
const filterFn = () => {
|
|
464
|
+
applyState(state, target, uikitUtil.children(target));
|
|
465
|
+
this.$update(this.$el);
|
|
466
|
+
};
|
|
467
|
+
return animate ? this.animate(filterFn, target) : filterFn();
|
|
468
|
+
})).
|
|
469
|
+
then(() => uikitUtil.trigger(this.$el, 'afterFilter', [this]));
|
|
470
|
+
},
|
|
485
471
|
|
|
486
|
-
|
|
487
|
-
|
|
472
|
+
updateState() {
|
|
473
|
+
uikitUtil.fastdom.write(() => this.setState(this.getState(), false));
|
|
474
|
+
} } };
|
|
488
475
|
|
|
489
|
-
}
|
|
490
476
|
|
|
491
|
-
};
|
|
492
477
|
|
|
493
478
|
function getFilter(el, attr) {
|
|
494
|
-
|
|
479
|
+
return uikitUtil.parseOptions(uikitUtil.data(el, attr), ['filter']);
|
|
495
480
|
}
|
|
496
481
|
|
|
497
482
|
function isEqualState(stateA, stateB) {
|
|
498
|
-
|
|
483
|
+
return ['filter', 'sort'].every((prop) => uikitUtil.isEqual(stateA[prop], stateB[prop]));
|
|
499
484
|
}
|
|
500
485
|
|
|
501
486
|
function applyState(state, target, children) {
|
|
502
|
-
|
|
487
|
+
const selector = getSelector(state);
|
|
503
488
|
|
|
504
|
-
|
|
489
|
+
children.forEach((el) => uikitUtil.css(el, 'display', selector && !uikitUtil.matches(el, selector) ? 'none' : ''));
|
|
505
490
|
|
|
506
|
-
|
|
507
|
-
var sort = ref[0];
|
|
508
|
-
var order = ref[1];
|
|
491
|
+
const [sort, order] = state.sort;
|
|
509
492
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
}
|
|
493
|
+
if (sort) {
|
|
494
|
+
const sorted = sortItems(children, sort, order);
|
|
495
|
+
if (!uikitUtil.isEqual(sorted, children)) {
|
|
496
|
+
uikitUtil.append(target, sorted);
|
|
515
497
|
}
|
|
498
|
+
}
|
|
516
499
|
}
|
|
517
500
|
|
|
518
501
|
function mergeState(el, attr, state) {
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
state.filter[group] = filter;
|
|
533
|
-
} else {
|
|
534
|
-
delete state.filter[group];
|
|
535
|
-
|
|
536
|
-
if (uikitUtil.isEmpty(state.filter) || '' in state.filter) {
|
|
537
|
-
state.filter = {'': filter || ''};
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
} else {
|
|
543
|
-
state.filter = {'': filter || ''};
|
|
502
|
+
const filterBy = getFilter(el, attr);
|
|
503
|
+
const { filter, group, sort, order = 'asc' } = filterBy;
|
|
504
|
+
|
|
505
|
+
if (filter || uikitUtil.isUndefined(sort)) {
|
|
506
|
+
if (group) {
|
|
507
|
+
if (filter) {
|
|
508
|
+
delete state.filter[''];
|
|
509
|
+
state.filter[group] = filter;
|
|
510
|
+
} else {
|
|
511
|
+
delete state.filter[group];
|
|
512
|
+
|
|
513
|
+
if (uikitUtil.isEmpty(state.filter) || '' in state.filter) {
|
|
514
|
+
state.filter = { '': filter || '' };
|
|
544
515
|
}
|
|
545
|
-
|
|
516
|
+
}
|
|
517
|
+
} else {
|
|
518
|
+
state.filter = { '': filter || '' };
|
|
546
519
|
}
|
|
520
|
+
}
|
|
547
521
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
522
|
+
if (!uikitUtil.isUndefined(sort)) {
|
|
523
|
+
state.sort = [sort, order];
|
|
524
|
+
}
|
|
551
525
|
|
|
552
|
-
|
|
526
|
+
return state;
|
|
553
527
|
}
|
|
554
528
|
|
|
555
|
-
function matchFilter(
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
var stateSort = ref_sort[0];
|
|
559
|
-
var stateOrder = ref_sort[1];
|
|
529
|
+
function matchFilter(
|
|
530
|
+
el,
|
|
531
|
+
attr, _ref3)
|
|
560
532
|
|
|
533
|
+
{let { filter: stateFilter = { '': '' }, sort: [stateSort, stateOrder] } = _ref3;
|
|
534
|
+
const { filter = '', group = '', sort, order = 'asc' } = getFilter(el, attr);
|
|
561
535
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
var order = ref$1.order; if ( order === void 0 ) order = 'asc';
|
|
567
|
-
|
|
568
|
-
return uikitUtil.isUndefined(sort)
|
|
569
|
-
? group in stateFilter && filter === stateFilter[group]
|
|
570
|
-
|| !filter && group && !(group in stateFilter) && !stateFilter['']
|
|
571
|
-
: stateSort === sort && stateOrder === order;
|
|
536
|
+
return uikitUtil.isUndefined(sort) ?
|
|
537
|
+
group in stateFilter && filter === stateFilter[group] ||
|
|
538
|
+
!filter && group && !(group in stateFilter) && !stateFilter[''] :
|
|
539
|
+
stateSort === sort && stateOrder === order;
|
|
572
540
|
}
|
|
573
541
|
|
|
574
542
|
function isEqualList(listA, listB) {
|
|
575
|
-
|
|
576
|
-
&& listA.every(function (el) { return ~listB.indexOf(el); });
|
|
543
|
+
return listA.length === listB.length && listA.every((el) => ~listB.indexOf(el));
|
|
577
544
|
}
|
|
578
545
|
|
|
579
|
-
function getSelector(
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
uikitUtil.each(filter, function (value) { return selector += value || ''; });
|
|
584
|
-
return selector;
|
|
546
|
+
function getSelector(_ref4) {let { filter } = _ref4;
|
|
547
|
+
let selector = '';
|
|
548
|
+
uikitUtil.each(filter, (value) => selector += value || '');
|
|
549
|
+
return selector;
|
|
585
550
|
}
|
|
586
551
|
|
|
587
552
|
function sortItems(nodes, sort, order) {
|
|
588
|
-
|
|
553
|
+
return [...nodes].sort(
|
|
554
|
+
(a, b) =>
|
|
555
|
+
uikitUtil.data(a, sort).localeCompare(uikitUtil.data(b, sort), undefined, { numeric: true }) * (
|
|
556
|
+
order === 'asc' || -1));
|
|
557
|
+
|
|
589
558
|
}
|
|
590
559
|
|
|
591
560
|
if (typeof window !== 'undefined' && window.UIkit) {
|
|
592
|
-
|
|
561
|
+
window.UIkit.component('filter', Component);
|
|
593
562
|
}
|
|
594
563
|
|
|
595
564
|
return Component;
|