{"version":3,"file":"useMatchMedia-Dch0HtmF.cjs","sources":["../../src/composables/useMatchMedia.ts"],"sourcesContent":["import { getCurrentInstance, ref, type Ref } from \"vue\";\nimport { getOption } from \"@/utils/config\";\nimport { isClient } from \"@/utils/ssr\";\nimport { useEventListener } from \"./useEventListener\";\n\n/**\n * Checks if the match media is mobile.\n * @param mobileBreakpoint px breakpoint\n */\nexport function useMatchMedia(mobileBreakpoint?: string): {\n    isMobile: Ref<boolean>;\n} {\n    const isMobile = ref(false);\n    const mediaQuery = ref<MediaQueryList>();\n\n    // getting a hold of the internal instance in setup()\n    const vm = getCurrentInstance();\n    if (!vm)\n        throw new Error(\n            \"useMatchMedia must be called within a component setup function.\",\n        );\n    // get component props\n    const props = vm.props;\n\n    const componentKey = vm.proxy?.$options.configField;\n    if (!componentKey)\n        throw new Error(\"component must define the 'configField' option.\");\n\n    // get mobileBreakpoint width value\n    let width = props.mobileBreakpoint;\n    if (!width) {\n        const defaultWidth = getOption(`mobileBreakpoint`, mobileBreakpoint);\n        width = getOption(`${componentKey}.mobileBreakpoint`, defaultWidth);\n    }\n    if (!width) return { isMobile };\n\n    // define match media query ref\n    mediaQuery.value = isClient\n        ? window.matchMedia(`(max-width: ${width})`)\n        : undefined;\n\n    if (mediaQuery.value) {\n        isMobile.value = mediaQuery.value.matches;\n        useEventListener(mediaQuery.value, \"change\", onMatchMedia);\n    } else {\n        isMobile.value = false;\n    }\n\n    function onMatchMedia(event: any): void {\n        isMobile.value = event.matches;\n    }\n\n    return { isMobile };\n}\n"],"names":["ref","getCurrentInstance","getOption","isClient","useEventListener"],"mappings":";;;;;AASO,SAAS,cAAc,kBAE5B;AACE,QAAM,WAAWA,IAAAA,IAAI,KAAK;AAC1B,QAAM,aAAaA,IAAAA,IAAA;AAGnB,QAAM,KAAKC,IAAAA,mBAAA;AACX,MAAI,CAAC;AACD,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAGR,QAAM,QAAQ,GAAG;AAEjB,QAAM,eAAe,GAAG,OAAO,SAAS;AACxC,MAAI,CAAC;AACD,UAAM,IAAI,MAAM,iDAAiD;AAGrE,MAAI,QAAQ,MAAM;AAClB,MAAI,CAAC,OAAO;AACR,UAAM,eAAeC,OAAAA,UAAU,oBAAoB,gBAAgB;AACnE,YAAQA,OAAAA,UAAU,GAAG,YAAY,qBAAqB,YAAY;AAAA,EACtE;AACA,MAAI,CAAC,MAAO,QAAO,EAAE,SAAA;AAGrB,aAAW,QAAQC,OAAAA,WACb,OAAO,WAAW,eAAe,KAAK,GAAG,IACzC;AAEN,MAAI,WAAW,OAAO;AAClB,aAAS,QAAQ,WAAW,MAAM;AAClCC,qBAAAA,iBAAiB,WAAW,OAAO,UAAU,YAAY;AAAA,EAC7D,OAAO;AACH,aAAS,QAAQ;AAAA,EACrB;AAEA,WAAS,aAAa,OAAkB;AACpC,aAAS,QAAQ,MAAM;AAAA,EAC3B;AAEA,SAAO,EAAE,SAAA;AACb;;"}