{"version":3,"file":"bs-breakpoints.min.js","sources":["../src/polyfill.js","../src/index.js"],"sourcesContent":["(() => {\n // Add polyfill for Custom Events\n function CustomEvent (ev, params) {\n const evt = document.createEvent('CustomEvent')\n params = params || { bubbles: false, cancelable: false, detail: undefined }\n evt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n\n if (typeof window.CustomEvent !== 'function') {\n CustomEvent.prototype = window.Event.prototype\n window.CustomEvent = CustomEvent\n }\n})()\n","import './polyfill'\r\n\r\nconst breakPoints = {\r\n xSmall: {\r\n min: 0,\r\n max: 575\r\n },\r\n small: {\r\n min: 576,\r\n max: 767\r\n },\r\n medium: {\r\n min: 768,\r\n max: 991\r\n },\r\n large: {\r\n min: 992,\r\n max: 1199\r\n },\r\n xLarge: {\r\n min: 1200,\r\n max: Infinity\r\n }\r\n}\r\n\r\nlet breakPointsDetected = false\r\nlet currentBreakpoint = null\r\n\r\nconst Events = {\r\n INIT: 'init.bs.breakpoint',\r\n NEW: 'new.bs.breakpoint'\r\n}\r\n\r\nconst getJQuery = () => window.jQuery\r\n\r\nconst getBreakPoints = () => {\r\n const minSmall = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-sm'), 10)\r\n const minMedium = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-md'), 10)\r\n const minLarge = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-lg'), 10)\r\n const minXlarge = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-xl'), 10)\r\n\r\n // update xSmall\r\n breakPoints.xSmall.max = minSmall - 1\r\n\r\n // update small\r\n breakPoints.small.min = minSmall\r\n breakPoints.small.max = minMedium - 1\r\n\r\n // update medium\r\n breakPoints.medium.min = minMedium\r\n breakPoints.medium.max = minLarge - 1\r\n\r\n // update large\r\n breakPoints.large.min = minLarge\r\n breakPoints.large.max = minXlarge - 1\r\n\r\n // update XL\r\n breakPoints.xLarge.min = minXlarge\r\n\r\n breakPointsDetected = true\r\n}\r\n\r\nconst _detectBreakPoint = () => {\r\n const widthWindow = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)\r\n\r\n for (const key in breakPoints) {\r\n if (widthWindow <= breakPoints[key].max && widthWindow >= breakPoints[key].min) {\r\n return key\r\n }\r\n }\r\n\r\n return currentBreakpoint\r\n}\r\n\r\nconst dispatchBreakpoint = (breakPointKey, eventName = Events.NEW) => {\r\n if (!currentBreakpoint || currentBreakpoint !== breakPointKey) {\r\n currentBreakpoint = breakPointKey\r\n const $ = getJQuery()\r\n\r\n if ($) {\r\n const $event = $.Event(eventName, {\r\n breakpoint: breakPointKey\r\n })\r\n\r\n $(window).trigger($event)\r\n } else {\r\n const event = new window.CustomEvent(eventName, {\r\n detail: breakPointKey\r\n })\r\n\r\n window.dispatchEvent(event)\r\n }\r\n }\r\n}\r\n\r\nconst bsBreakpoints = {\r\n init () {\r\n getBreakPoints()\r\n dispatchBreakpoint(_detectBreakPoint(), Events.INIT)\r\n\r\n window.addEventListener('resize', () => {\r\n dispatchBreakpoint(_detectBreakPoint())\r\n })\r\n },\r\n\r\n detectBreakpoint () {\r\n if (!breakPointsDetected) {\r\n getBreakPoints()\r\n }\r\n\r\n currentBreakpoint = _detectBreakPoint()\r\n return currentBreakpoint\r\n },\r\n\r\n getCurrentBreakpoint () {\r\n return currentBreakpoint\r\n }\r\n}\r\n\r\nexport default bsBreakpoints\r\n"],"names":["CustomEvent","ev","params","evt","document","createEvent","bubbles","cancelable","detail","undefined","initCustomEvent","window","prototype","Event","getBreakPoints","minSmall","parseInt","getComputedStyle","documentElement","getPropertyValue","minMedium","minLarge","minXlarge","breakPoints","xSmall","max","small","min","medium","large","xLarge","breakPointsDetected","_detectBreakPoint","widthWindow","Math","clientWidth","innerWidth","key","currentBreakpoint","dispatchBreakpoint","breakPointKey","eventName","Events","$","jQuery","$event","breakpoint","trigger","event","dispatchEvent","Infinity","init","addEventListener","detectBreakpoint","getCurrentBreakpoint"],"mappings":";;;;;4MAEWA,EAAaC,EAAIC,OAClBC,EAAMC,SAASC,YAAY,sBACjCH,EAASA,GAAU,CAAEI,SAAS,EAAOC,YAAY,EAAOC,YAAQC,GAChEN,EAAIO,gBAAgBT,EAAIC,EAAOI,QAASJ,EAAOK,WAAYL,EAAOM,QAC3DL,EAGyB,mBAAvBQ,OAAOX,cAChBA,EAAYY,UAAYD,OAAOE,MAAMD,UACrCD,OAAOX,YAAcA,GCwBF,SAAjBc,QACEC,EAAWC,SAASL,OAAOM,iBAAiBb,SAASc,iBAAiBC,iBAAiB,mBAAoB,IAC3GC,EAAYJ,SAASL,OAAOM,iBAAiBb,SAASc,iBAAiBC,iBAAiB,mBAAoB,IAC5GE,EAAWL,SAASL,OAAOM,iBAAiBb,SAASc,iBAAiBC,iBAAiB,mBAAoB,IAC3GG,EAAYN,SAASL,OAAOM,iBAAiBb,SAASc,iBAAiBC,iBAAiB,mBAAoB,IAGlHI,EAAYC,OAAOC,IAAMV,EAAW,EAGpCQ,EAAYG,MAAMC,IAAMZ,EACxBQ,EAAYG,MAAMD,IAAML,EAAY,EAGpCG,EAAYK,OAAOD,IAAMP,EACzBG,EAAYK,OAAOH,IAAMJ,EAAW,EAGpCE,EAAYM,MAAMF,IAAMN,EACxBE,EAAYM,MAAMJ,IAAMH,EAAY,EAGpCC,EAAYO,OAAOH,IAAML,EAEzBS,GAAsB,EAGE,SAApBC,QACEC,EAAcC,KAAKT,IAAIrB,SAASc,gBAAgBiB,YAAaxB,OAAOyB,YAAc,OAEnF,IAAMC,KAAOd,KACZU,GAAeV,EAAYc,GAAKZ,KAAOQ,GAAeV,EAAYc,GAAKV,WAClEU,SAIJC,EAGkB,SAArBC,EAAsBC,EAAeC,eAAAA,IAAAA,EAAYC,IAChDJ,GAAqBA,IAAsBE,EAAe,CAC7DF,EAAoBE,MACdG,EA5CchC,OAAOiC,UA8CvBD,EAAG,KACCE,EAASF,EAAE9B,MAAM4B,EAAW,CAChCK,WAAYN,IAGdG,EAAEhC,QAAQoC,QAAQF,OACb,KACCG,EAAQ,IAAIrC,OAAOX,YAAYyC,EAAW,CAC9CjC,OAAQgC,IAGV7B,OAAOsC,cAAcD,SAxFrBzB,EAAc,CAClBC,OAAQ,CACNG,IAAK,EACLF,IAAK,KAEPC,MAAO,CACLC,IAAK,IACLF,IAAK,KAEPG,OAAQ,CACND,IAAK,IACLF,IAAK,KAEPI,MAAO,CACLF,IAAK,IACLF,IAAK,MAEPK,OAAQ,CACNH,IAAK,KACLF,IAAKyB,EAAAA,IAILnB,GAAsB,EACtBO,EAAoB,KAElBI,EACE,qBADFA,EAEC,0BAiEe,CACpBS,gBACErC,IACAyB,EAAmBP,IAAqBU,GAExC/B,OAAOyC,iBAAiB,SAAU,WAChCb,EAAmBP,QAIvBqB,mCACOtB,GACHjB,IAGFwB,EAAoBN,KAItBsB,uCACShB"}