uikit 3.25.16 → 3.25.17-dev.20f2548

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/css/uikit-core-rtl.css +7 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +7 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +7 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +7 -1
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +11 -2
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +1 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +1 -1
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +1 -1
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +1 -1
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -1
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +11 -3
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +2 -2
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +22 -5
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/components/filter.js +12 -4
  44. package/src/js/components/upload.js +12 -2
  45. package/src/less/components/slideshow.less +5 -0
  46. package/src/scss/components/slideshow.scss +5 -0
  47. package/tests/upload.html +67 -0
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.25.16",
5
+ "version": "3.25.17-dev.20f2548",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -192,11 +192,19 @@ function matchFilter(
192
192
  { filter: stateFilter = { '': '' }, sort: [stateSort, stateOrder] },
193
193
  ) {
194
194
  const { filter = '', group = '', sort, order = 'asc' } = getFilter(el, attr);
195
+ const defaultFilterMatches = !group && filter === stateFilter[''];
196
+ const groupFilterMatches = group in stateFilter && filter === stateFilter[group];
197
+ const groupResetMatches = !filter && group && !(group in stateFilter) && !stateFilter[''];
198
+ const filterMatches = defaultFilterMatches || groupFilterMatches || groupResetMatches;
195
199
 
196
- return isUndefined(sort)
197
- ? (group in stateFilter && filter === stateFilter[group]) ||
198
- (!filter && group && !(group in stateFilter) && !stateFilter[''])
199
- : stateSort === sort && stateOrder === order;
200
+ if (isUndefined(sort)) {
201
+ return filterMatches;
202
+ }
203
+
204
+ const sortMatches = stateSort === sort && stateOrder === order;
205
+ const hasFilter = filter || group;
206
+
207
+ return sortMatches && (!hasFilter || filterMatches);
200
208
  }
201
209
 
202
210
  function sortItems(nodes, sort, order) {
@@ -160,7 +160,9 @@ export default {
160
160
  this.completeAll(xhr);
161
161
  }
162
162
  } catch (e) {
163
- this.error(e);
163
+ if (e.name !== 'AbortError') {
164
+ this.error(e);
165
+ }
164
166
  }
165
167
  };
166
168
 
@@ -206,7 +208,10 @@ async function ajax(url, options) {
206
208
  responseType: '',
207
209
  ...options,
208
210
  };
209
- await env.beforeSend(env);
211
+ if ((await env.beforeSend(env)) === false) {
212
+ throw abortError(env.xhr);
213
+ }
214
+
210
215
  return send(env.url, env);
211
216
  }
212
217
 
@@ -243,7 +248,12 @@ function send(url, env) {
243
248
 
244
249
  on(xhr, 'error', () => reject(assign(Error('Network Error'), { xhr })));
245
250
  on(xhr, 'timeout', () => reject(assign(Error('Network Timeout'), { xhr })));
251
+ on(xhr, 'abort', () => reject(abortError(xhr)));
246
252
 
247
253
  xhr.send(env.data);
248
254
  });
249
255
  }
256
+
257
+ function abortError(xhr) {
258
+ return assign(Error('Network Abort'), { xhr, name: 'AbortError' });
259
+ }
@@ -83,6 +83,11 @@
83
83
 
84
84
  .uk-slideshow-items > :not(.uk-active) { display: none; }
85
85
 
86
+ /*
87
+ * Reset animations on hidden slides so the Ken Burns effect restarts in Safari.
88
+ */
89
+ .uk-slideshow-items > :not(.uk-active) [class*="uk-animation-"] { animation-name: none; }
90
+
86
91
 
87
92
  // Hooks
88
93
  // ========================================================================
@@ -85,6 +85,11 @@
85
85
 
86
86
  .uk-slideshow-items > :not(.uk-active) { display: none; }
87
87
 
88
+ /*
89
+ * Reset animations on hidden slides so the Ken Burns effect restarts in Safari.
90
+ */
91
+ .uk-slideshow-items > :not(.uk-active) [class*="uk-animation-"] { animation-name: none; }
92
+
88
93
 
89
94
  // Hooks
90
95
  // ========================================================================
package/tests/upload.html CHANGED
@@ -34,9 +34,21 @@
34
34
 
35
35
  <progress id="js-progressbar" class="uk-progress" value="0" max="100" hidden></progress>
36
36
 
37
+ <h2>Abort After Send</h2>
38
+
39
+ <p>Select one or more files and check the console. The request aborts from <code>loadStart</code>, so <code>abort</code> should fire while <code>error</code> and <code>completeAll</code> should not.</p>
40
+
41
+ <div class="js-upload-abort" uk-form-custom>
42
+ <input type="file" multiple>
43
+ <button class="uk-button uk-button-danger" type="button" tabindex="-1">Select and abort</button>
44
+ </div>
45
+
46
+ <progress id="js-abort-progressbar" class="uk-progress" value="0" max="100" hidden></progress>
47
+
37
48
  <script>
38
49
 
39
50
  const bar = UIkit.util.$('#js-progressbar');
51
+ const abortBar = UIkit.util.$('#js-abort-progressbar');
40
52
 
41
53
  UIkit.upload('.js-upload', {
42
54
 
@@ -96,6 +108,61 @@
96
108
 
97
109
  });
98
110
 
111
+ UIkit.upload('.js-upload-abort', {
112
+
113
+ url: '',
114
+ multiple: true,
115
+
116
+ beforeSend() {
117
+ console.log('abort test beforeSend', arguments);
118
+ },
119
+
120
+ loadStart(e) {
121
+ console.log('abort test loadStart', arguments);
122
+
123
+ abortBar.hidden = false;
124
+ abortBar.max = e.total;
125
+ abortBar.value = e.loaded;
126
+
127
+ e.target.abort();
128
+ },
129
+
130
+ progress(e) {
131
+ console.log('abort test progress', arguments);
132
+
133
+ abortBar.max = e.total;
134
+ abortBar.value = e.loaded;
135
+ },
136
+
137
+ loadEnd(e) {
138
+ console.log('abort test loadEnd', arguments);
139
+
140
+ abortBar.max = e.total;
141
+ abortBar.value = e.loaded;
142
+ },
143
+
144
+ abort() {
145
+ console.log('abort test abort', arguments);
146
+
147
+ setTimeout(() => {
148
+ abortBar.hidden = true;
149
+ }, 300);
150
+ },
151
+
152
+ error() {
153
+ console.error('abort test error', arguments);
154
+ },
155
+
156
+ complete() {
157
+ console.error('abort test complete', arguments);
158
+ },
159
+
160
+ completeAll() {
161
+ console.error('abort test completeAll', arguments);
162
+ }
163
+
164
+ });
165
+
99
166
  </script>
100
167
 
101
168
  <h2>JavaScript Options</h2>