{"version":3,"sources":["webpack:///../node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./js/modules/init-object-fit.js"],"names":["OFI","propRegex","testImg","Image","style","object-position","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","img","width","height","placeholder","call","onImageReady","callback","naturalWidth","setTimeout","fixOne","el","parsed","getComputedStyle","fontFamily","props","exec","getStyle","ofi","skipTest","srcset","src","naturalHeight","descriptors","get","prop","set","value","Object","defineProperty","ss","keepSrcUsable","err","window","console","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","replace","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","document","getElementsByTagName","querySelectorAll","i","length","body","addEventListener","e","target","tagName","watchMQ","bind","getOfiImageMaybe","name","HTMLImageElement","prototype","this","String","hijackAttributes","module","exports","__webpack_require__","r","__webpack_exports__","_netc_when_window_loaded__WEBPACK_IMPORTED_MODULE_0__","object_fit_images__WEBPACK_IMPORTED_MODULE_1__","object_fit_images__WEBPACK_IMPORTED_MODULE_1___default","n","whenWindowLoaded","then","images","objectFitImages"],"mappings":"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","file":"object-fit-41206a1093febefac6d5.js","sourcesContent":["/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","import whenWindowLoaded from '@netc/when-window-loaded';\r\nimport objectFitImages from 'object-fit-images';\r\n\r\nfunction initialise() {\r\n const images = document.querySelectorAll('.js-object-fit');\r\n objectFitImages(images, { watchMQ: true });\r\n}\r\n\r\nwhenWindowLoaded().then(initialise);\r\n"],"sourceRoot":""}