(sets, elem, img)
| 56 | } |
| 57 | }; |
| 58 | var createPicture = function(sets, elem, img){ |
| 59 | var picture = document.createElement('picture'); |
| 60 | var sizes = elem.getAttribute(lazySizesCfg.sizesAttr); |
| 61 | var ratio = elem.getAttribute('data-ratio'); |
| 62 | var optimumx = elem.getAttribute('data-optimumx'); |
| 63 | |
| 64 | if(elem._lazybgset && elem._lazybgset.parentNode == elem){ |
| 65 | elem.removeChild(elem._lazybgset); |
| 66 | } |
| 67 | |
| 68 | Object.defineProperty(img, '_lazybgset', { |
| 69 | value: elem, |
| 70 | writable: true |
| 71 | }); |
| 72 | Object.defineProperty(elem, '_lazybgset', { |
| 73 | value: picture, |
| 74 | writable: true |
| 75 | }); |
| 76 | |
| 77 | sets = sets.replace(regWhite, ' ').split(regSplitSet); |
| 78 | |
| 79 | picture.style.display = 'none'; |
| 80 | img.className = lazySizesCfg.lazyClass; |
| 81 | |
| 82 | if(sets.length == 1 && !sizes){ |
| 83 | sizes = 'auto'; |
| 84 | } |
| 85 | |
| 86 | sets.forEach(function(set){ |
| 87 | var match; |
| 88 | var source = document.createElement('source'); |
| 89 | |
| 90 | if(sizes && sizes != 'auto'){ |
| 91 | source.setAttribute('sizes', sizes); |
| 92 | } |
| 93 | |
| 94 | if((match = set.match(regSource))){ |
| 95 | source.setAttribute(lazySizesCfg.srcsetAttr, match[1]); |
| 96 | |
| 97 | setTypeOrMedia(source, match[2]); |
| 98 | setTypeOrMedia(source, match[3]); |
| 99 | } else { |
| 100 | source.setAttribute(lazySizesCfg.srcsetAttr, set); |
| 101 | } |
| 102 | |
| 103 | picture.appendChild(source); |
| 104 | }); |
| 105 | |
| 106 | if(sizes){ |
| 107 | img.setAttribute(lazySizesCfg.sizesAttr, sizes); |
| 108 | elem.removeAttribute(lazySizesCfg.sizesAttr); |
| 109 | elem.removeAttribute('sizes'); |
| 110 | } |
| 111 | if(optimumx){ |
| 112 | img.setAttribute('data-optimumx', optimumx); |
| 113 | } |
| 114 | if(ratio) { |
| 115 | img.setAttribute('data-ratio', ratio); |
no test coverage detected
searching dependent graphs…