uikit 3.9.5-dev.43d9beccd → 3.9.5-dev.4839a0a03

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 -97
  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 -97
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/core/img.js +33 -87
  44. package/tests/image.html +14 -40
package/dist/js/uikit.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.9.5-dev.43d9beccd | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.9.5-dev.4839a0a03 | 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.43d9beccd';
3468
+ UIkit.version = '3.9.5-dev.4839a0a03';
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,40 +5816,20 @@
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
  },
5844
5822
 
5845
5823
  connected: function() {
5846
5824
 
5847
- if (window.IntersectionObserver) {
5825
+ if (!window.IntersectionObserver) {
5848
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,7 +5840,6 @@
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
 
@@ -5878,15 +5847,13 @@
5878
5847
  return false;
5879
5848
  }
5880
5849
 
5881
- if (!image && document.readyState === 'complete') {
5882
- this.load(this.observer.takeRecords());
5883
- }
5884
-
5885
5850
  if (isImg(this.$el)) {
5886
5851
  return false;
5887
5852
  }
5888
5853
 
5889
- image && image.then(function (img) { return img && img.currentSrc !== '' && setSrcAttrs(this$1$1.$el, currentSrc(img)); });
5854
+ if (image && image.currentSrc !== '') {
5855
+ setSrcAttrs(this.$el, currentSrc(image));
5856
+ }
5890
5857
 
5891
5858
  },
5892
5859
 
@@ -5912,21 +5879,18 @@
5912
5879
  methods: {
5913
5880
 
5914
5881
  load: function(entries) {
5915
- var this$1$1 = this;
5916
-
5917
5882
 
5918
5883
  // Old chromium based browsers (UC Browser) did not implement `isIntersecting`
5919
5884
  if (!entries.some(function (entry) { return isUndefined(entry.isIntersecting) || entry.isIntersecting; })) {
5920
5885
  return;
5921
5886
  }
5922
5887
 
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;
5888
+ if (this._data.image) {
5889
+ return this._data.image;
5890
+ }
5928
5891
 
5929
- }, function (e) { return trigger(this$1$1.$el, new e.constructor(e.type, e)); });
5892
+ this._data.image = isImg(this.$el) ? this.$el : getImageFromElement(this.$el, this.dataSrc);
5893
+ setSrcAttrs(this.$el, currentSrc(this._data.image));
5930
5894
 
5931
5895
  this.observer.disconnect();
5932
5896
  },
@@ -5943,18 +5907,12 @@
5943
5907
 
5944
5908
  };
5945
5909
 
5946
- var srcProps = ['data-src', 'data-srcset', 'sizes'];
5947
5910
  function setSrcAttrs(el, src) {
5948
5911
 
5949
- var parentNode = parent(el);
5950
5912
  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
- );
5913
+ var parentNode = parent(el);
5914
+ var elements = isPicture(parentNode) ? children(parentNode) : [el];
5915
+ elements.forEach(setSourceProps);
5958
5916
  src && attr(el, 'src', src);
5959
5917
  } else if (src) {
5960
5918
 
@@ -5968,18 +5926,26 @@
5968
5926
 
5969
5927
  }
5970
5928
 
5971
- function getPlaceholderImage(el) {
5972
- var assign;
5929
+ var srcProps = ['data-src', 'data-srcset', 'sizes'];
5930
+ function setSourceProps(sourceEl, targetEl) {
5931
+ srcProps.forEach(function (prop) {
5932
+ var value = data(sourceEl, prop);
5933
+ if (value) {
5934
+ attr(targetEl || sourceEl, prop.replace(/^(data-)+/, ''), value);
5935
+ }
5936
+ });
5937
+ }
5973
5938
 
5974
- var sizes = data(el, 'sizes');
5975
- var width = data(el, 'width');
5976
- var height = data(el, 'height');
5939
+ function getImageFromElement(el, src) {
5977
5940
 
5978
- if (sizes) {
5979
- ((assign = Dimensions.ratio({width: width, height: height}, 'width', toPx(sizesToPixel(sizes))), width = assign.width, height = assign.height));
5941
+ if (!src) {
5942
+ return false;
5980
5943
  }
5981
5944
 
5982
- return ("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"" + width + "\" height=\"" + height + "\"></svg>");
5945
+ var img = new Image();
5946
+ setSourceProps(el, img);
5947
+ attr(img, 'src', src);
5948
+ return img;
5983
5949
  }
5984
5950
 
5985
5951
  var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;
@@ -5998,24 +5964,6 @@
5998
5964
  return matches || '100vw';
5999
5965
  }
6000
5966
 
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
5967
  var sizeRe = /\d+(?:\w+|%)/g;
6020
5968
  var additionRe = /[+-]?(\d+)/g;
6021
5969
  function evaluateSize(size) {
@@ -6053,18 +6001,6 @@
6053
6001
  return el.currentSrc || el.src;
6054
6002
  }
6055
6003
 
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
6004
  var Media = {
6069
6005
 
6070
6006
  props: {