{"version":3,"sources":["webpack:///./src/foundation/utilities/pxToRem.js","webpack:///./src/feature/clusternav-mobile/clusternav-mobile.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":["pxToRem","px","parseFloat","getComputedStyle","document","documentElement","fontSize","ClusternavMobile","element","el","clusterLinkArrow","querySelector","offCanvasPlate","slideValue","isPseudoLevel","init","addEventListener","log","window","e","clusterArrowClick","clusterLinkClick","clusterLinkBackClick","clusterLinkBackToMainClick","this","setMenuHeight","nextElementSibling","children","length","classList","add","closest","contains","goToSpecificCluster","_moveOneMore","levels","querySelectorAll","_slidevalue","forEach","style","transform","link","target","tagName","preventDefault","span","toggle","setAttribute","scrollTop","remove","parentNode","isSubisPseudoLevelpage","listItems","menuHeight","containerHeight","clientHeight","serviceMenuHeight","totalHeight","reducedHeight","primaryNavItems","i","setTimeout","marginTop","BaseFeature","$","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","stat","forced","sham","getPrototypeOf","it","getBuiltIn","aConstructor","anObject","isObject","create","bind","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","FORCED","construct","Target","args","newTarget","arguments","$args","push","apply","proto","prototype","instance","Object","result","Function","call","aCallable","slice","factories","C","argsLength","list","join","module","exports","that","fn","partArgs","boundFunction","concat"],"mappings":"6NAOeA,G,OAPC,SAACC,GAIhB,OAAOA,EAFcC,WAAWC,iBAAiBC,SAASC,iBAAiBC,Y,wzCCKrE,IAAMC,EAAb,a,kOAAA,U,MAAA,OACC,WAAYC,GAAS,a,4FAAA,UACpB,cAAMA,IAEDC,GAAKD,EACV,EAAKE,iBAAmB,EAAKD,GAAGE,cAAc,wBAC9C,EAAKC,eAAiBR,SAASO,cAAc,kCAC7C,EAAKE,WAAa,EAClB,EAAKC,eAAgB,EAErB,EAAKC,OACL,EAAKC,mBAGL,EAAKC,IAAI,cAbW,EADtB,O,EAAA,G,EAAA,+BAiBC,WAAmB,WAClBC,OAAOF,iBAAiB,QAAQ,SAACG,GAChC,EAAKC,oBACL,EAAKC,iBAAiBF,GACtB,EAAKG,qBAAqBH,GACtBf,SAASO,cAAc,qBAC1B,EAAKY,2BAA2BJ,QAvBpC,kBA4BC,WAEKK,KAAKf,GAAGE,cAAc,uCACzBa,KAAKC,cAAcD,KAAKf,GAAGE,cAAc,sCAAsCe,mBAAmBC,SAASC,QAE3GxB,SAASO,cAAc,sCAAsCe,mBAAmBG,UAAUC,IAAI,aAG1F1B,SAASO,cAAc,sCAAsCoB,QAAQ,MAAMF,UAAUG,SAAS,iBACjG5B,SAASO,cAAc,sCAAsCoB,QAAQ,MAAMF,UAAUC,IAAI,sBAGrF1B,SAASO,cAAc,sCAAsCoB,QAAQ,MAAMF,UAAUG,SAAS,iCAGlGR,KAAKS,sBAFLT,KAAKS,qBAAoB,KAM1BT,KAAKS,uBACsB,IAAvBT,KAAKV,eACRU,KAAKC,cAAcD,KAAKf,GAAGE,cAAc,0BAA0BgB,SAASC,WAjDhF,iCAuDC,SAAoBM,GACnB,IAAMC,EAASX,KAAKf,GAAG2B,iBAAiB,uBACpCC,EAAc,GAEG,IAAjBH,IACHV,KAAKV,eAAgB,EACrBuB,EAAc,KAEfF,EAAOG,SAAQ,WACdD,GAAe,IACfjC,SAASO,cAAc,yBAAyB4B,MAAMC,UAAY,eAAiBH,EAAc,QAElGb,KAAKX,WAAawB,IAnEpB,8BAsEC,WACsBjC,SAASgC,iBAAiB,6CAClCE,SAAQ,SAACG,GACrBA,EAAKzB,iBAAiB,SAAS,SAACG,GACN,SAArBA,EAAEuB,OAAOC,SACZxB,EAAEyB,yBA3EP,+BAiFC,WAAoB,WACGxC,SAASgC,iBAAiB,iDAClCE,SAAQ,SAACO,GACtBA,EAAK7B,iBAAiB,SAAS,SAACG,GAC/B,EAAKM,cAAcN,EAAEuB,OAAOX,QAAQ,KAAKL,mBAAmBC,SAASC,QACrET,EAAEuB,OAAOX,QAAQ,KAAKL,mBAAmBG,UAAUiB,OAAO,aAC1D3B,EAAEuB,OAAOX,QAAQ,MAAMF,UAAUC,IAAI,sBACrCX,EAAEuB,OAAOX,QAAQ,MAAMF,UAAUiB,OAAO,aACxC1C,SAASO,cAAc,yBAAyBoC,aAAa,QAAS,2BAA6B,EAAKlC,WAAa,KAAO,OAC5H,EAAKA,YAAc,IACnBT,SAASO,cAAc,4BAA4BqC,UAAY,UA3FnE,kCAgGC,WAAuB,WACL5C,SAASgC,iBAAiB,+BAClCE,SAAQ,SAACG,GACjBA,EAAKzB,iBAAiB,SAAS,SAACG,GAC/BA,EAAEuB,OAAOX,QAAQ,MAAMF,UAAUoB,OAAO,aACxC9B,EAAEuB,OAAOX,QAAQ,MAAMF,UAAUoB,OAAO,aACpC9B,EAAEuB,OAAOX,QAAQ,SAASA,QAAQ,MAAMF,UAAUG,SAAS,uBAC9Db,EAAEuB,OAAOX,QAAQ,iBAAiBF,UAAUiB,OAAO,sBAEpD1C,SAASO,cAAc,yBAAyBoC,aAAa,QAAS,0BAA+C,IAAlB,EAAKlC,YAAoB,OAC5H,EAAKA,YAAc,IACnB,EAAKY,cAAcN,EAAEuB,OAAOX,QAAQ,MAAMmB,WAAWA,WAAWvB,SAASC,QACzET,EAAEyB,iBAEF,EAAKO,+BA9GT,wCAmHC,WAA6B,WACL/C,SAASO,cAAc,oBAC/BK,iBAAiB,SAAS,SAACG,GACzCA,EAAEuB,OAAOX,QAAQ,YAAYF,UAAUoB,OAAO,aAC9C9B,EAAEuB,OAAOX,QAAQ,YAAYF,UAAUoB,OAAO,aAC1C9B,EAAEuB,OAAOX,QAAQ,SAASA,QAAQ,MAAMF,UAAUG,SAAS,uBAC9Db,EAAEuB,OAAOX,QAAQ,iBAAiBF,UAAUiB,OAAO,sBAEpD1C,SAASO,cAAc,yBAAyBoC,aAAa,QAAS,0BAA+C,IAAlB,EAAKlC,YAAoB,OAC5H,EAAKA,YAAc,IACnB,EAAKY,cAAcN,EAAEuB,OAAOX,QAAQ,YAAYJ,SAASC,QACzDT,EAAEyB,iBAEF,EAAKO,4BAhIR,2BAoIC,SAAcC,GACb,IAAIC,EACAC,EAAkBlD,SAASO,cAAc,sCAAsC4C,aAC/EC,EAAoBpD,SAASO,cAAc,wBAAwB4C,aACjEE,EAAczD,EAAQsD,EAAkBE,GACxCE,EAAgB1D,EAAQsD,EAAkBE,GAG9B,IAAdJ,IACHC,EAAa,IAGVD,EAAY,IAMdC,EAJGD,EAAY,GAIFE,EAAkB,IAAMG,EAAc,EAAIA,EAAcL,EAG7DA,EAAY,EAEPK,EAAcL,EAOdE,EAAkB,IAAMI,EAA6B,EAAZN,EAAiBM,EAAgBN,GAOzF,IAHA,IAAMO,EAAkBvD,SAASgC,iBAAiB,6CAA+ChC,SAASgC,iBAAiB,gBAGlHwB,EAAI,EAAGA,EAAID,EAAgB/B,OAAQgC,IACvCD,EAAgBC,GAAG/B,UAAUG,SAAS,mBAAqB2B,EAAgBC,GAAG/B,UAAUG,SAAS,cAMtGd,OAAO2C,YAAW,WACjBzD,SAASO,cAAc,sCAAsC4B,MAAMuB,UAAYT,EAAa,QAC1F,U,2BAlLL,GAAsCU,KAsLvBxD,a,oBC7Lf,IAAIyD,EAAI,EAAQ,GACZC,EAAQ,EAAQ,GAChBC,EAAW,EAAQ,IACnBC,EAAuB,EAAQ,IAC/BC,EAA2B,EAAQ,KAMvCJ,EAAE,CAAEtB,OAAQ,SAAU2B,MAAM,EAAMC,OAJRL,GAAM,WAAcE,EAAqB,MAIJI,MAAOH,GAA4B,CAChGI,eAAgB,SAAwBC,GACtC,OAAON,EAAqBD,EAASO,Q,oBCZzC,IAAIT,EAAI,EAAQ,GACZU,EAAa,EAAQ,IACrBC,EAAe,EAAQ,KACvBC,EAAW,EAAQ,GACnBC,EAAW,EAAQ,GACnBC,EAAS,EAAQ,IACjBC,EAAO,EAAQ,KACfd,EAAQ,EAAQ,GAEhBe,EAAkBN,EAAW,UAAW,aAMxCO,EAAiBhB,GAAM,WACzB,SAASiB,KACT,QAASF,GAAgB,cAA6B,GAAIE,aAAcA,MAEtEC,GAAYlB,GAAM,WACpBe,GAAgB,kBAEdI,EAASH,GAAkBE,EAE/BnB,EAAE,CAAEtB,OAAQ,UAAW2B,MAAM,EAAMC,OAAQc,EAAQb,KAAMa,GAAU,CACjEC,UAAW,SAAmBC,EAAQC,GACpCZ,EAAaW,GACbV,EAASW,GACT,IAAIC,EAAYC,UAAU7D,OAAS,EAAI0D,EAASX,EAAac,UAAU,IACvE,GAAIN,IAAaF,EAAgB,OAAOD,EAAgBM,EAAQC,EAAMC,GACtE,GAAIF,GAAUE,EAAW,CAEvB,OAAQD,EAAK3D,QACX,KAAK,EAAG,OAAO,IAAI0D,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,IAAIG,EAAQ,CAAC,MAEb,OADAA,EAAMC,KAAKC,MAAMF,EAAOH,GACjB,IAAKR,EAAKa,MAAMN,EAAQI,IAGjC,IAAIG,EAAQL,EAAUM,UAClBC,EAAWjB,EAAOD,EAASgB,GAASA,EAAQG,OAAOF,WACnDG,EAASC,SAASN,MAAMO,KAAKb,EAAQS,EAAUR,GACnD,OAAOV,EAASoB,GAAUA,EAASF,M,iCC/CvC,IAAIK,EAAY,EAAQ,IACpBvB,EAAW,EAAQ,GAEnBwB,EAAQ,GAAGA,MACXC,EAAY,GAEZjB,EAAY,SAAUkB,EAAGC,EAAYjB,GACvC,KAAMiB,KAAcF,GAAY,CAC9B,IAAK,IAAIG,EAAO,GAAI7C,EAAI,EAAGA,EAAI4C,EAAY5C,IAAK6C,EAAK7C,GAAK,KAAOA,EAAI,IAErE0C,EAAUE,GAAcN,SAAS,MAAO,gBAAkBO,EAAKC,KAAK,KAAO,KAC3E,OAAOJ,EAAUE,GAAYD,EAAGhB,IAKpCoB,EAAOC,QAAUV,SAASnB,MAAQ,SAAc8B,GAC9C,IAAIC,EAAKV,EAAU5E,MACfuF,EAAWV,EAAMF,KAAKV,UAAW,GACjCuB,EAAgB,WAClB,IAAIzB,EAAOwB,EAASE,OAAOZ,EAAMF,KAAKV,YACtC,OAAOjE,gBAAgBwF,EAAgB3B,EAAUyB,EAAIvB,EAAK3D,OAAQ2D,GAAQuB,EAAGlB,MAAMiB,EAAMtB,IAG3F,OADIV,EAASiC,EAAGhB,aAAYkB,EAAclB,UAAYgB,EAAGhB,WAClDkB","file":"24-3612717b.pkg.js","sourcesContent":["const pxToRem = (px) => {\r\n\t// Get the root font size (usually from the element)\r\n\tconst rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n\t// Convert px to rem\r\n\treturn px / rootFontSize;\r\n}\r\n\r\nexport default pxToRem;\r\n","/* eslint-disable class-methods-use-this */\r\n/* eslint-disable no-underscore-dangle */\r\nimport BaseFeature from '../../foundation/base/base';\r\nimport '../../foundation/utilities/polyfills';\r\nimport '../../foundation/utilities/pxToRem';\r\nimport pxToRem from '../../foundation/utilities/pxToRem';\r\n\r\nexport class ClusternavMobile extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.el = element;\r\n\t\tthis.clusterLinkArrow = this.el.querySelector('.js-isopen li a span');\r\n\t\tthis.offCanvasPlate = document.querySelector('[data-ref=\"off-canvas__plate\"]')\r\n\t\tthis.slideValue = 0;\r\n\t\tthis.isPseudoLevel = false;\r\n\r\n\t\tthis.init();\r\n\t\tthis.addEventListener();\r\n\r\n\r\n\t\tthis.log('Clusternav');\r\n\t}\r\n\r\n\taddEventListener() {\r\n\t\twindow.addEventListener('load', (e) => {\r\n\t\t\tthis.clusterArrowClick();\r\n\t\t\tthis.clusterLinkClick(e);\r\n\t\t\tthis.clusterLinkBackClick(e);\r\n\t\t\tif (document.querySelector('.back-link--main')) {\r\n\t\t\t\tthis.clusterLinkBackToMainClick(e);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinit() {\r\n\t\t// We are on a sublevel\r\n\t\tif (this.el.querySelector('.o-cluster-nav-mobile__active-link')) {\r\n\t\t\tthis.setMenuHeight(this.el.querySelector('.o-cluster-nav-mobile__active-link').nextElementSibling.children.length);\r\n\r\n\t\t\tdocument.querySelector('.o-cluster-nav-mobile__active-link').nextElementSibling.classList.add('is-active');\r\n\t\t\t// Follow the logic and add --open class to previous level,\r\n\t\t\t// when we are on \"active pseudoLevel\"\r\n\t\t\tif (document.querySelector('.o-cluster-nav-mobile__active-link').closest('li').classList.contains('has-children')) {\r\n\t\t\t\tdocument.querySelector('.o-cluster-nav-mobile__active-link').closest('li').classList.add('has-children--open');\r\n\t\t\t}\r\n\t\t\t// More than one level down we need to go one level deeper: \"active pseudoLevel\"\r\n\t\t\tif (!document.querySelector('.o-cluster-nav-mobile__active-link').closest('li').classList.contains('o-cluster-nav-mobile__level-1')) {\r\n\t\t\t\tthis.goToSpecificCluster(true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.goToSpecificCluster();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// We are on an area page (Viden, Om os etc)\r\n\t\t\tthis.goToSpecificCluster();\r\n\t\t\tif (this.isPseudoLevel === true) {\r\n\t\t\t\tthis.setMenuHeight(this.el.querySelector('.has-children--open ul').children.length);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tgoToSpecificCluster(_moveOneMore) {\r\n\t\tconst levels = this.el.querySelectorAll('.has-children--open');\r\n\t\tlet _slidevalue = 0;\r\n\t\t// If we are in a level below main areapages this is true\r\n\t\tif (_moveOneMore === true) {\r\n\t\t\tthis.isPseudoLevel = true;\r\n\t\t\t_slidevalue = 100;\r\n\t\t}\r\n\t\tlevels.forEach(() => {\r\n\t\t\t_slidevalue += 100;\r\n\t\t\tdocument.querySelector('.o-cluster-nav-mobile').style.transform = 'translateX(-' + _slidevalue + '%)';\r\n\t\t});\r\n\t\tthis.slideValue = _slidevalue;\r\n\t}\r\n\r\n\tclusterLinkClick() {\r\n\t\tconst linkDisabled = document.querySelectorAll('.o-cluster-nav-mobile ul .has-children a');\r\n\t\tlinkDisabled.forEach((link) => {\r\n\t\t\tlink.addEventListener('click', (e) => {\r\n\t\t\t\tif (e.target.tagName === 'SPAN') {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tclusterArrowClick() {\r\n\t\tconst clusterToggle = document.querySelectorAll('.o-cluster-nav-mobile ul .has-children>a span');\r\n\t\tclusterToggle.forEach((span) => {\r\n\t\t\tspan.addEventListener('click', (e) => {\r\n\t\t\t\tthis.setMenuHeight(e.target.closest('a').nextElementSibling.children.length);\r\n\t\t\t\te.target.closest('a').nextElementSibling.classList.toggle('js-isopen');// Open next\r\n\t\t\t\te.target.closest('li').classList.add('has-children--open');// Open next\r\n\t\t\t\te.target.closest('ul').classList.toggle('js-isopen');// Close previous\r\n\t\t\t\tdocument.querySelector('.o-cluster-nav-mobile').setAttribute('style', 'transform: translateX(' + (-this.slideValue - 100) + '%);');\r\n\t\t\t\tthis.slideValue += 100;\r\n\t\t\t\tdocument.querySelector('.o-off-canvas__container').scrollTop = 0;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tclusterLinkBackClick() {\r\n\t\tconst backLink = document.querySelectorAll('.o-cluster-nav-mobile__back');\r\n\t\tbackLink.forEach((link) => {\r\n\t\t\tlink.addEventListener('click', (e) => {\r\n\t\t\t\te.target.closest('ul').classList.remove('js-isopen');\r\n\t\t\t\te.target.closest('ul').classList.remove('is-active');\r\n\t\t\t\tif (e.target.closest('li ul').closest('li').classList.contains('has-children--open')) {\r\n\t\t\t\t\te.target.closest('.has-children').classList.toggle('has-children--open');// reset\r\n\t\t\t\t}\r\n\t\t\t\tdocument.querySelector('.o-cluster-nav-mobile').setAttribute('style', 'transform: translateX(' + (-this.slideValue + 100) + '%);');\r\n\t\t\t\tthis.slideValue -= 100;\r\n\t\t\t\tthis.setMenuHeight(e.target.closest('ul').parentNode.parentNode.children.length);\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\tthis.isSubisPseudoLevelpage === false;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tclusterLinkBackToMainClick() {\r\n\t\tconst backToMainLink = document.querySelector('.back-link--main');\r\n\t\tbackToMainLink.addEventListener('click', (e) => {\r\n\t\t\te.target.closest('nav > ul').classList.remove('js-isopen');\r\n\t\t\te.target.closest('nav > ul').classList.remove('is-active');\r\n\t\t\tif (e.target.closest('li ul').closest('li').classList.contains('has-children--open')) {\r\n\t\t\t\te.target.closest('.has-children').classList.toggle('has-children--open');// reset\r\n\t\t\t}\r\n\t\t\tdocument.querySelector('.o-cluster-nav-mobile').setAttribute('style', 'transform: translateX(' + (-this.slideValue + 200) + '%);');\r\n\t\t\tthis.slideValue -= 200;\r\n\t\t\tthis.setMenuHeight(e.target.closest('nav > ul').children.length);\r\n\t\t\te.preventDefault();\r\n\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\tthis.isSubisPseudoLevelpage === false;\r\n\t\t});\r\n\t}\r\n\r\n\tsetMenuHeight(listItems) {\r\n\t\tlet menuHeight;\r\n\t\tlet containerHeight = document.querySelector('[data-ref=\"off-canvas__container\"]').clientHeight;\r\n\t\tlet serviceMenuHeight = document.querySelector('.o-service-nav__list').clientHeight;\r\n\t\tconst totalHeight = pxToRem(containerHeight + serviceMenuHeight);\r\n\t\tconst reducedHeight = pxToRem(containerHeight - serviceMenuHeight);\r\n\r\n\t\t// Base case: If there are exactly 2 list items, set a fixed menu height of 10 rem\r\n\t\tif (listItems === 2) {\r\n\t\t\tmenuHeight = 10; // rem\r\n\t\t}\r\n\r\n\t\tif (listItems > 2) {\r\n\t\t\t// Case 1: Large lists (more than 10 items)\r\n\t\t\tif (listItems > 10) {\r\n\t\t\t\t// Adjust menuHeight based on screen size:\r\n\t\t\t\t// - Subtract 3 rem for larger screens\r\n\t\t\t\t// - Add listItems count for smaller screens to avoid overflow\r\n\t\t\t\tmenuHeight = containerHeight > 600 ? totalHeight - 3 : totalHeight + listItems;\r\n\t\t\t}\r\n\t\t\t// Case 2: Moderate large lists (7-10 items)\r\n\t\t\telse if (listItems > 6) {\r\n\t\t\t\t// Subtract the listItems count from totalHeight to save space\r\n\t\t\t\tmenuHeight = totalHeight - listItems;\r\n\t\t\t}\r\n\t\t\t// Case 3: Smaller lists (3-6 items)\r\n\t\t\telse {\r\n\t\t\t\t// Adjust menuHeight based on screen size:\r\n\t\t\t\t// - Subtract (listItems * 3) rem for larger screens to ensure compact spacing\r\n\t\t\t\t// - Subtract listItems count directly for smaller screens\r\n\t\t\t\tmenuHeight = containerHeight > 600 ? reducedHeight - (listItems * 3) : reducedHeight - listItems;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst primaryNavItems = document.querySelectorAll('.o-primary-nav .m-nav-list__item .a-link') || document.querySelectorAll('.profile-tab');\r\n\t\t// eslint-disable-next-line no-unused-vars\r\n\t\tlet primaryNavHasActive = false;\r\n\t\tfor (let i = 0; i < primaryNavItems.length; i++) {\r\n\t\t\tif (primaryNavItems[i].classList.contains('a-link--active') || primaryNavItems[i].classList.contains('active-tab')) {\r\n\t\t\t\tprimaryNavHasActive = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Only calculate service nav position if cluster mobile nav is present.\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tdocument.querySelector('.o-off-canvas .o-service-nav__list').style.marginTop = menuHeight + 'rem';\r\n\t\t}, 200);\r\n\t}\r\n}\r\n\r\nexport default ClusternavMobile;\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":""}