{"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"}