uikit 3.9.5-dev.ab814f7fb → 3.9.5-dev.ce77459c6

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 (44) hide show
  1. package/CHANGELOG.md +1 -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 +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 +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +33 -106
  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 +33 -106
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/img.js +33 -96
  44. package/tests/image.html +14 -40
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.9.5-dev.ab814f7fb | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.9.5-dev.ce77459c6 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -3465,7 +3465,7 @@
3465
3465
  UIkit.data = '__uikit__';
3466
3466
  UIkit.prefix = 'uk-';
3467
3467
  UIkit.options = {};
3468
- UIkit.version = '3.9.5-dev.ab814f7fb';
3468
+ UIkit.version = '3.9.5-dev.ce77459c6';
3469
3469
 
3470
3470
  globalAPI(UIkit);
3471
3471
  hooksAPI(UIkit);
@@ -5790,8 +5790,6 @@
5790
5790
 
5791
5791
  props: {
5792
5792
  dataSrc: String,
5793
- width: Number,
5794
- height: Number,
5795
5793
  offsetTop: String,
5796
5794
  offsetLeft: String,
5797
5795
  target: String
@@ -5799,8 +5797,6 @@
5799
5797
 
5800
5798
  data: {
5801
5799
  dataSrc: '',
5802
- width: false,
5803
- height: false,
5804
5800
  offsetTop: '50vh',
5805
5801
  offsetLeft: '50vw',
5806
5802
  target: false
@@ -5808,12 +5804,6 @@
5808
5804
 
5809
5805
  computed: {
5810
5806
 
5811
- cacheKey: function(ref) {
5812
- var dataSrc = ref.dataSrc;
5813
-
5814
- return ((this.$name) + "." + dataSrc);
5815
- },
5816
-
5817
5807
  target: {
5818
5808
 
5819
5809
  get: function(ref) {
@@ -5826,18 +5816,6 @@
5826
5816
  this.observe();
5827
5817
  }
5828
5818
 
5829
- },
5830
-
5831
- offsetTop: function(ref) {
5832
- var offsetTop = ref.offsetTop;
5833
-
5834
- return toPx(offsetTop, 'height');
5835
- },
5836
-
5837
- offsetLeft: function(ref) {
5838
- var offsetLeft = ref.offsetLeft;
5839
-
5840
- return toPx(offsetLeft, 'width');
5841
5819
  }
5842
5820
 
5843
5821
  },
@@ -5845,21 +5823,13 @@
5845
5823
  connected: function() {
5846
5824
 
5847
5825
  if (!window.IntersectionObserver) {
5848
- setSrcAttrs(this.$el);
5826
+ setSrcAttrs(this.$el, this.dataSrc);
5849
5827
  return;
5850
5828
  }
5851
5829
 
5852
- if (storage[this.cacheKey]) {
5853
- setSrcAttrs(this.$el, storage[this.cacheKey]);
5854
- } else if (isImg(this.$el) && this.width && this.height) {
5855
- attr(this.$el, 'src', getPlaceholderImage(this.$el));
5856
- }
5857
-
5858
- this.observer = new IntersectionObserver(this.load, {
5859
- rootMargin: ((this.offsetTop) + "px " + (this.offsetLeft) + "px")
5860
- });
5861
-
5862
- requestAnimationFrame(this.observe);
5830
+ var rootMargin = (toPx(this.offsetTop, 'height')) + "px " + (toPx(this.offsetLeft, 'width')) + "px";
5831
+ this.observer = new IntersectionObserver(this.load, {rootMargin: rootMargin});
5832
+ this.observe();
5863
5833
 
5864
5834
  },
5865
5835
 
@@ -5870,23 +5840,14 @@
5870
5840
  update: {
5871
5841
 
5872
5842
  read: function(ref) {
5873
- var this$1$1 = this;
5874
5843
  var image = ref.image;
5875
5844
 
5876
5845
 
5877
- if (!this.observer) {
5846
+ if (!this.observer || isImg(this.$el)) {
5878
5847
  return false;
5879
5848
  }
5880
5849
 
5881
- if (!image && document.readyState === 'complete') {
5882
- this.load(this.observer.takeRecords());
5883
- }
5884
-
5885
- if (isImg(this.$el)) {
5886
- return false;
5887
- }
5888
-
5889
- image && image.then(function (img) { return img && img.currentSrc !== '' && setSrcAttrs(this$1$1.$el, currentSrc(img)); });
5850
+ setSrcAttrs(this.$el, image && image.currentSrc);
5890
5851
 
5891
5852
  },
5892
5853
 
@@ -5912,21 +5873,19 @@
5912
5873
  methods: {
5913
5874
 
5914
5875
  load: function(entries) {
5915
- var this$1$1 = this;
5916
-
5917
5876
 
5918
5877
  // Old chromium based browsers (UC Browser) did not implement `isIntersecting`
5919
5878
  if (!entries.some(function (entry) { return isUndefined(entry.isIntersecting) || entry.isIntersecting; })) {
5920
5879
  return;
5921
5880
  }
5922
5881
 
5923
- this._data.image = getImageFromElement(this.$el, this.dataSrc).then(function (img) {
5924
-
5925
- setSrcAttrs(this$1$1.$el, currentSrc(img));
5926
- storage[this$1$1.cacheKey] = currentSrc(img);
5927
- return img;
5882
+ if (this._data.image) {
5883
+ return this._data.image;
5884
+ }
5928
5885
 
5929
- }, function (e) { return trigger(this$1$1.$el, new e.constructor(e.type, e)); });
5886
+ var image = isImg(this.$el) ? this.$el : getImageFromElement(this.$el, this.dataSrc);
5887
+ this._data.image = image;
5888
+ setSrcAttrs(this.$el, image.currentSrc);
5930
5889
 
5931
5890
  this.observer.disconnect();
5932
5891
  },
@@ -5943,18 +5902,12 @@
5943
5902
 
5944
5903
  };
5945
5904
 
5946
- var srcProps = ['data-src', 'data-srcset', 'sizes'];
5947
5905
  function setSrcAttrs(el, src) {
5948
5906
 
5949
- var parentNode = parent(el);
5950
5907
  if (isImg(el)) {
5951
- (isPicture(parentNode) ? children(parentNode) : [el]).forEach(function (el) { return srcProps.forEach(function (prop) {
5952
- var value = data(el, prop);
5953
- if (value) {
5954
- attr(el, prop.replace(/^(data-)+/, ''), value);
5955
- }
5956
- }); }
5957
- );
5908
+ var parentNode = parent(el);
5909
+ var elements = isPicture(parentNode) ? children(parentNode) : [el];
5910
+ elements.forEach(setSourceProps);
5958
5911
  src && attr(el, 'src', src);
5959
5912
  } else if (src) {
5960
5913
 
@@ -5968,18 +5921,26 @@
5968
5921
 
5969
5922
  }
5970
5923
 
5971
- function getPlaceholderImage(el) {
5972
- var assign;
5924
+ var srcProps = ['data-src', 'data-srcset', 'sizes'];
5925
+ function setSourceProps(sourceEl, targetEl) {
5926
+ srcProps.forEach(function (prop) {
5927
+ var value = data(sourceEl, prop);
5928
+ if (value) {
5929
+ attr(targetEl || sourceEl, prop.replace(/^(data-)+/, ''), value);
5930
+ }
5931
+ });
5932
+ }
5973
5933
 
5974
- var sizes = data(el, 'sizes');
5975
- var width = data(el, 'width');
5976
- var height = data(el, 'height');
5934
+ function getImageFromElement(el, src) {
5977
5935
 
5978
- if (sizes) {
5979
- ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));
5936
+ if (!src) {
5937
+ return false;
5980
5938
  }
5981
5939
 
5982
- return ("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"" + width + "\" height=\"" + height + "\"></svg>");
5940
+ var img = new Image();
5941
+ setSourceProps(el, img);
5942
+ attr(img, 'src', src);
5943
+ return img;
5983
5944
  }
5984
5945
 
5985
5946
  var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;
@@ -5998,24 +5959,6 @@
5998
5959
  return matches || '100vw';
5999
5960
  }
6000
5961
 
6001
- function getImageFromElement(el, src) {
6002
- var parentNode = parent(el);
6003
-
6004
- if (!src) {
6005
- return Promise.reject(createEvent('error', false));
6006
- }
6007
-
6008
- if (!isPicture(parentNode)) {
6009
- return getImage.apply(void 0, [ src ].concat( srcProps.slice(1).map(function (prop) { return data(el, prop); }) ));
6010
- }
6011
-
6012
- return new Promise(function (resolve, reject) {
6013
- var picture = parentNode.cloneNode(true);
6014
- once(picture, 'load error', function (e) { return e.type === 'error' ? reject(e) : resolve(e.target); }, true);
6015
- setSrcAttrs($('img', picture));
6016
- });
6017
- }
6018
-
6019
5962
  var sizeRe = /\d+(?:\w+|%)/g;
6020
5963
  var additionRe = /[+-]?(\d+)/g;
6021
5964
  function evaluateSize(size) {
@@ -6049,22 +5992,6 @@
6049
5992
  return el && el.tagName === tagName;
6050
5993
  }
6051
5994
 
6052
- function currentSrc(el) {
6053
- return el.currentSrc || el.src;
6054
- }
6055
-
6056
- var key = '__test__';
6057
- var storage;
6058
-
6059
- // workaround for Safari's private browsing mode and accessing sessionStorage in Blink
6060
- try {
6061
- storage = window.sessionStorage || {};
6062
- storage[key] = 1;
6063
- delete storage[key];
6064
- } catch (e) {
6065
- storage = {};
6066
- }
6067
-
6068
5995
  var Media = {
6069
5996
 
6070
5997
  props: {