uikit 3.12.3-dev.6377276f3 → 3.12.3-dev.8ce29ae1a

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 (64) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/css/uikit-core-rtl.css +1 -1
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +1 -1
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +1 -1
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +1 -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 +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +13 -2
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +13 -2
  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 +13 -2
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +9 -7
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +13 -2
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +9 -7
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +13 -2
  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 +12 -20
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +178 -146
  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 +188 -154
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/hooks.js +3 -3
  44. package/src/js/api/state.js +25 -15
  45. package/src/js/components/parallax.js +2 -1
  46. package/src/js/components/slider-parallax.js +6 -4
  47. package/src/js/core/core.js +2 -17
  48. package/src/js/core/cover.js +3 -6
  49. package/src/js/core/drop.js +5 -10
  50. package/src/js/core/gif.js +5 -3
  51. package/src/js/core/height-match.js +21 -1
  52. package/src/js/core/height-viewport.js +1 -6
  53. package/src/js/core/img.js +1 -2
  54. package/src/js/core/leader.js +7 -13
  55. package/src/js/core/margin.js +18 -1
  56. package/src/js/core/overflow-auto.js +8 -7
  57. package/src/js/core/sticky.js +6 -1
  58. package/src/js/core/svg.js +16 -14
  59. package/src/js/core/video.js +2 -8
  60. package/src/js/mixin/position.js +10 -18
  61. package/src/js/mixin/resize.js +13 -0
  62. package/src/js/mixin/slider.js +2 -1
  63. package/src/js/util/class.js +1 -6
  64. package/src/js/util/observer.js +57 -20
@@ -1,33 +1,70 @@
1
+ import { on } from './event';
1
2
  import { toNodes } from './lang';
3
+ import { fastdom } from './fastdom';
2
4
 
3
- // Old chromium based browsers (UC Browser) did not implement `isIntersecting`
4
- export const hasIntersectionObserver =
5
- window.IntersectionObserver && 'isIntersecting' in IntersectionObserverEntry.prototype;
6
5
  export function observeIntersection(targets, cb, options, intersecting = true) {
7
- if (!hasIntersectionObserver) {
8
- return;
9
- }
10
-
11
- const observer = new IntersectionObserver((entries, observer) => {
12
- if (!intersecting || entries.some((entry) => entry.isIntersecting)) {
13
- cb(entries, observer);
14
- }
15
- }, options);
16
- for (const el of toNodes(targets)) {
17
- observer.observe(el);
18
- }
19
- return observer;
6
+ return observe(
7
+ IntersectionObserver,
8
+ targets,
9
+ intersecting
10
+ ? (entries, observer) => {
11
+ if (entries.some((entry) => entry.isIntersecting)) {
12
+ cb(entries, observer);
13
+ }
14
+ }
15
+ : cb,
16
+ options
17
+ );
20
18
  }
21
19
 
22
20
  const hasResizeObserver = window.ResizeObserver;
23
21
  export function observeResize(targets, cb, options = { box: 'border-box' }) {
24
- if (!hasResizeObserver) {
22
+ if (hasResizeObserver) {
23
+ return observe(ResizeObserver, targets, cb, options);
24
+ }
25
+
26
+ // Fallback Safari < 13.1
27
+ initResizeListener();
28
+ listeners.add(cb);
29
+
30
+ return {
31
+ disconnect() {
32
+ listeners.delete(cb);
33
+ },
34
+ };
35
+ }
36
+
37
+ let listeners;
38
+ function initResizeListener() {
39
+ if (listeners) {
25
40
  return;
26
41
  }
27
42
 
28
- const observer = new ResizeObserver((entries, observer) => {
29
- cb(entries, observer);
30
- });
43
+ listeners = new Set();
44
+
45
+ // throttle 'resize'
46
+ let pendingResize;
47
+ const handleResize = () => {
48
+ if (pendingResize) {
49
+ return;
50
+ }
51
+ pendingResize = true;
52
+ fastdom.read(() => (pendingResize = false));
53
+ for (const listener of listeners) {
54
+ listener();
55
+ }
56
+ };
57
+
58
+ on(window, 'load resize', handleResize);
59
+ on(document, 'loadedmetadata load', handleResize, true);
60
+ }
61
+
62
+ export function observeMutation(targets, cb, options) {
63
+ return observe(MutationObserver, targets, cb, options);
64
+ }
65
+
66
+ function observe(Observer, targets, cb, options) {
67
+ const observer = new Observer(cb);
31
68
  for (const el of toNodes(targets)) {
32
69
  observer.observe(el, options);
33
70
  }