{"version":3,"sources":["webpack:///./src/feature/lazyload/lazyload.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/function-bind.js"],"names":["LazyLoad","element","elm","lazyload","debouncedHandleResize","debounce","handleResize","window","addEventListener","supportScroll","test","navigator","userAgent","supportIntersectionObserver","this","observe","reveal","observer","IntersectionObserver","handleIntersect","bind","rootMargin","entries","forEach","entry","isIntersecting","disconnect","calculateSize","width","Math","round","dom","img","offsetWidth","document","documentElement","clientWidth","setAttribute","src","onload","classList","add","getAttribute","BaseFeature","$","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","target","stat","forced","sham","getPrototypeOf","it","getBuiltIn","aConstructor","anObject","isObject","create","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","FORCED","construct","Target","args","newTarget","arguments","length","$args","push","apply","proto","prototype","instance","Object","result","Function","call","aCallable","slice","factories","C","argsLength","list","i","join","module","exports","that","fn","partArgs","boundFunction","concat"],"mappings":"yhDAGqBA,E,sQACpB,WAAYC,GAAS,a,4FAAA,UACpB,cAAMA,IAEDC,IAAMD,EACX,EAAKE,WAEL,EAAKC,sBAAwBC,aAAS,WACrC,EAAKC,iBACH,KAEHC,OAAOC,iBAAiB,SAAU,EAAKJ,uBAVnB,E,qCAarB,WAGC,IAAMK,EAAiB,aAAcF,SAAa,SAASG,KAAKC,UAAUC,WAGpEC,EAA8B,yBAA0BN,OAE1DE,GAAiBI,EACpBC,KAAKC,UAELD,KAAKE,W,qBAIP,WAMCF,KAAKG,SAAW,IAAIC,qBAAqBJ,KAAKK,gBAAgBC,KAAKN,MAL3C,CAEvBO,WAAY,QAIbP,KAAKG,SAASF,QAAQD,KAAKZ,O,6BAG5B,SAAgBoB,EAASL,GAAU,WAClCK,EAAQC,SAAQ,SAACC,GACZA,EAAMC,iBACT,EAAKT,SACLC,EAASS,mB,0BAKZ,WACCZ,KAAKa,kB,2BAGN,WACC,IAAMC,EAAQC,KAAKC,MAAMhB,KAAKiB,IAAIC,IAAIC,YAAcC,SAASC,gBAAgBC,YAAc,KAC3FtB,KAAKiB,IAAIC,IAAIK,aAAa,QAA1B,oCAAgET,EAAhE,OACAd,KAAKiB,IAAIO,IAAID,aAAa,QAA1B,oCAAgET,EAAhE,S,oBAGD,WAAS,WACRd,KAAKa,gBAELb,KAAKiB,IAAIC,IAAIO,OAAS,WACrB,EAAKtC,QAAQuC,UAAUC,IAAI,cAG5B3B,KAAKiB,IAAIO,IAAID,aAAa,SAAUvB,KAAKiB,IAAIO,IAAII,aAAa,gBAC9D5B,KAAKiB,IAAIC,IAAIK,aAAa,SAAUvB,KAAKiB,IAAIC,IAAIU,aAAa,gBAC9D5B,KAAKiB,IAAIC,IAAIK,aAAa,MAAOvB,KAAKiB,IAAIC,IAAIU,aAAa,kB,8BAnEvBC,M,oBCHtC,IAAIC,EAAI,EAAQ,GACZC,EAAQ,EAAQ,GAChBC,EAAW,EAAQ,IACnBC,EAAuB,EAAQ,IAC/BC,EAA2B,EAAQ,KAMvCJ,EAAE,CAAEK,OAAQ,SAAUC,MAAM,EAAMC,OAJRN,GAAM,WAAcE,EAAqB,MAIJK,MAAOJ,GAA4B,CAChGK,eAAgB,SAAwBC,GACtC,OAAOP,EAAqBD,EAASQ,Q,oBCZzC,IAAIV,EAAI,EAAQ,GACZW,EAAa,EAAQ,IACrBC,EAAe,EAAQ,KACvBC,EAAW,EAAQ,GACnBC,EAAW,EAAQ,GACnBC,EAAS,EAAQ,IACjBvC,EAAO,EAAQ,KACfyB,EAAQ,EAAQ,GAEhBe,EAAkBL,EAAW,UAAW,aAMxCM,EAAiBhB,GAAM,WACzB,SAASiB,KACT,QAASF,GAAgB,cAA6B,GAAIE,aAAcA,MAEtEC,GAAYlB,GAAM,WACpBe,GAAgB,kBAEdI,EAASH,GAAkBE,EAE/BnB,EAAE,CAAEK,OAAQ,UAAWC,MAAM,EAAMC,OAAQa,EAAQZ,KAAMY,GAAU,CACjEC,UAAW,SAAmBC,EAAQC,GACpCX,EAAaU,GACbT,EAASU,GACT,IAAIC,EAAYC,UAAUC,OAAS,EAAIJ,EAASV,EAAaa,UAAU,IACvE,GAAIN,IAAaF,EAAgB,OAAOD,EAAgBM,EAAQC,EAAMC,GACtE,GAAIF,GAAUE,EAAW,CAEvB,OAAQD,EAAKG,QACX,KAAK,EAAG,OAAO,IAAIJ,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOC,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAID,EAAOC,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAID,EAAOC,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAID,EAAOC,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAII,EAAQ,CAAC,MAEb,OADAA,EAAMC,KAAKC,MAAMF,EAAOJ,GACjB,IAAK/C,EAAKqD,MAAMP,EAAQK,IAGjC,IAAIG,EAAQN,EAAUO,UAClBC,EAAWjB,EAAOD,EAASgB,GAASA,EAAQG,OAAOF,WACnDG,EAASC,SAASN,MAAMO,KAAKd,EAAQU,EAAUT,GACnD,OAAOT,EAASoB,GAAUA,EAASF,M,iCC/CvC,IAAIK,EAAY,EAAQ,IACpBvB,EAAW,EAAQ,GAEnBwB,EAAQ,GAAGA,MACXC,EAAY,GAEZlB,EAAY,SAAUmB,EAAGC,EAAYlB,GACvC,KAAMkB,KAAcF,GAAY,CAC9B,IAAK,IAAIG,EAAO,GAAIC,EAAI,EAAGA,EAAIF,EAAYE,IAAKD,EAAKC,GAAK,KAAOA,EAAI,IAErEJ,EAAUE,GAAcN,SAAS,MAAO,gBAAkBO,EAAKE,KAAK,KAAO,KAC3E,OAAOL,EAAUE,GAAYD,EAAGjB,IAKpCsB,EAAOC,QAAUX,SAAS3D,MAAQ,SAAcuE,GAC9C,IAAIC,EAAKX,EAAUnE,MACf+E,EAAWX,EAAMF,KAAKX,UAAW,GACjCyB,EAAgB,WAClB,IAAI3B,EAAO0B,EAASE,OAAOb,EAAMF,KAAKX,YACtC,OAAOvD,gBAAgBgF,EAAgB7B,EAAU2B,EAAIzB,EAAKG,OAAQH,GAAQyB,EAAGnB,MAAMkB,EAAMxB,IAG3F,OADIT,EAASkC,EAAGjB,aAAYmB,EAAcnB,UAAYiB,EAAGjB,WAClDmB","file":"30-b50806be.pkg.js","sourcesContent":["import BaseFeature from '../../foundation/base/base';\r\nimport { debounce } from '../../foundation/utilities/debounce';\r\n\r\nexport default class LazyLoad extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.elm = element;\r\n\t\tthis.lazyload();\r\n\r\n\t\tthis.debouncedHandleResize = debounce(() => {\r\n\t\t\tthis.handleResize();\r\n\t\t}, 250);\r\n\r\n\t\twindow.addEventListener('resize', this.debouncedHandleResize);\r\n\t}\r\n\r\n\tlazyload() {\r\n\t\t// If useragent doens't support scroll, then it is probably a Google Bot\r\n\t\t// Therefore all images should be rendered for SEO purposes\r\n\t\tconst supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\r\n\r\n\t\t// If the useragent doesn't support IntersectionObserver, we need to render all images\r\n\t\tconst supportIntersectionObserver = 'IntersectionObserver' in window;\r\n\r\n\t\tif (supportScroll && supportIntersectionObserver) {\r\n\t\t\tthis.observe();\r\n\t\t} else {\r\n\t\t\tthis.reveal();\r\n\t\t}\r\n\t}\r\n\r\n\tobserve() {\r\n\t\tconst observerOptions = {\r\n\t\t\t// Offset the IntersectionObserver by 20%\r\n\t\t\trootMargin: '20%'\r\n\t\t};\r\n\r\n\t\tthis.observer = new IntersectionObserver(this.handleIntersect.bind(this), observerOptions);\r\n\t\tthis.observer.observe(this.elm);\r\n\t}\r\n\r\n\thandleIntersect(entries, observer) {\r\n\t\tentries.forEach((entry) => {\r\n\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\tthis.reveal();\r\n\t\t\t\tobserver.disconnect();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\thandleResize() {\r\n\t\tthis.calculateSize();\r\n\t}\r\n\r\n\tcalculateSize() {\r\n\t\tconst width = Math.round(this.dom.img.offsetWidth / document.documentElement.clientWidth * 100);\r\n\t\tthis.dom.img.setAttribute('sizes', `(max-width: 768px) 100vw, ${width}vw`);\r\n\t\tthis.dom.src.setAttribute('sizes', `(max-width: 768px) 100vw, ${width}vw`);\r\n\t}\r\n\r\n\treveal() {\r\n\t\tthis.calculateSize();\r\n\r\n\t\tthis.dom.img.onload = () => {\r\n\t\t\tthis.element.classList.add('is-loaded');\r\n\t\t};\r\n\r\n\t\tthis.dom.src.setAttribute('srcset', this.dom.src.getAttribute('data-srcset'));\r\n\t\tthis.dom.img.setAttribute('srcset', this.dom.img.getAttribute('data-srcset'));\r\n\t\tthis.dom.img.setAttribute('src', this.dom.img.getAttribute('data-src'));\r\n\t}\r\n}\r\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aCallable(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n"],"sourceRoot":""}