{"version":3,"sources":["../../src/useResponsive/utils.ts"],"names":["EMPTY_BREAKPOINT","createMediaQueries","breakpoints","sortedBreakpoints","a","b","breakpoint","index","query","minWidth","nextBreakpoint","maxWidth","getCurrentBreakPoint","mediaQueries","defaultBreakpoint","_a","_b","__objRest"],"mappings":"0CAOO,MAAMA,EAAoC,CAC/C,WAAY,OACZ,SAAU,OACV,SAAU,MACZ,EAEaC,EAAyCC,GAAe,CACnE,MAAMC,EAAoB,OAAO,KAAKD,CAAW,EAAE,KACjD,CAACE,EAAGC,IAAMH,EAAYG,CAAC,EAAIH,EAAYE,CAAC,CAC1C,EAEA,OAAOD,EAAkB,IAAI,CAACG,EAAYC,IAAU,CAClD,IAAIC,EAAQ,GAEZ,MAAMC,EAAWP,EAAYI,CAAU,EAEjCI,EAAiBP,EAAkBI,EAAQ,CAAC,EAE5CI,EAAWD,EAAiBR,EAAYQ,CAAc,EAAI,KAEhE,OAAID,GAAY,IACdD,EAAQ,eAAeC,QAGrBE,IAAa,OACXH,IACFA,GAAS,SAGXA,GAAS,eAAeG,EAAW,QAGc,CACjD,WAAAL,EACA,SAAUK,EAAWA,EAAW,EAAI,KACpC,SAAAF,EACA,MAAAD,CACF,CAGF,CAAC,CACH,EAEaI,EAA6C,CAACC,EAAcC,IAAsB,CAC7F,UAAWC,KAA4BF,EACrC,CADG,MAAAG,EAAAD,EAAQ,OAAAP,CAnDf,EAmDOQ,EAAkBV,EAAAW,EAAlBD,EAAkB,CAAV,UACX,GAAI,OAAO,QAAW,aAAe,CAACF,GAGpC,GAFmB,OAAO,WAAWN,CAAK,EAE3B,QACb,OAAOF,UAEAA,EAAW,aAAeQ,EACnC,OAAOR,EAIX,OAAON,CACT","sourcesContent":["import type {\n  CreateMediaQueries,\n  MediaQuery,\n  GetCurrentBreakPoint,\n  EmptyBreakpoint\n} from './types';\n\nexport const EMPTY_BREAKPOINT: EmptyBreakpoint = {\n  breakpoint: undefined,\n  minWidth: undefined,\n  maxWidth: undefined\n};\n\nexport const createMediaQueries: CreateMediaQueries = breakpoints => {\n  const sortedBreakpoints = Object.keys(breakpoints).sort(\n    (a, b) => breakpoints[b] - breakpoints[a]\n  );\n\n  return sortedBreakpoints.map((breakpoint, index) => {\n    let query = '';\n\n    const minWidth = breakpoints[breakpoint] as (typeof breakpoints)[keyof typeof breakpoints];\n\n    const nextBreakpoint = sortedBreakpoints[index - 1] as string | undefined;\n\n    const maxWidth = nextBreakpoint ? breakpoints[nextBreakpoint] : null;\n\n    if (minWidth >= 0) {\n      query = `(min-width: ${minWidth}px)`;\n    }\n\n    if (maxWidth !== null) {\n      if (query) {\n        query += ' and ';\n      }\n\n      query += `(max-width: ${maxWidth - 1}px)`;\n    }\n\n    const mediaQuery: MediaQuery<typeof breakpoints> = {\n      breakpoint,\n      maxWidth: maxWidth ? maxWidth - 1 : null,\n      minWidth,\n      query\n    };\n\n    return mediaQuery;\n  });\n};\n\nexport const getCurrentBreakPoint: GetCurrentBreakPoint = (mediaQueries, defaultBreakpoint) => {\n  for (const { query, ...breakpoint } of mediaQueries) {\n    if (typeof window !== 'undefined' && !defaultBreakpoint) {\n      const mediaQuery = window.matchMedia(query);\n\n      if (mediaQuery.matches) {\n        return breakpoint;\n      }\n    } else if (breakpoint.breakpoint === defaultBreakpoint) {\n      return breakpoint;\n    }\n  }\n\n  return EMPTY_BREAKPOINT;\n};\n"]}