{"version":3,"file":"useMatchMedia-EgWTgaUx.cjs","sources":["../../src/composables/useMatchMedia.ts"],"sourcesContent":["import { getCurrentInstance, ref, type Ref } from \"vue\";\nimport { getOption } from \"@/utils/config\";\nimport { useEventListener } from \"./useEventListener\";\nimport { isClient } from \"@/utils/ssr\";\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;;AACQ,QAAA,WAAWA,QAAI,KAAK;AAC1B,QAAM,aAAaA,IAAAA,IAAoB;AAGvC,QAAM,KAAKC,IAAAA,mBAAmB;AAC9B,MAAI,CAAC;AACD,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAEJ,QAAM,QAAQ,GAAG;AAEX,QAAA,gBAAe,QAAG,UAAH,mBAAU,SAAS;AACxC,MAAI,CAAC;AACK,UAAA,IAAI,MAAM,iDAAiD;AAGrE,MAAI,QAAQ,MAAM;AAClB,MAAI,CAAC,OAAO;AACF,UAAA,eAAeC,OAAU,UAAA,oBAAoB,gBAAgB;AACnE,YAAQA,OAAU,UAAA,GAAG,YAAY,qBAAqB,YAAY;AAAA,EAAA;AAEtE,MAAI,CAAC,MAAc,QAAA,EAAE,SAAS;AAG9B,aAAW,QAAQC,OACb,WAAA,OAAO,WAAW,eAAe,KAAK,GAAG,IACzC;AAEN,MAAI,WAAW,OAAO;AACT,aAAA,QAAQ,WAAW,MAAM;AACjBC,qBAAAA,iBAAA,WAAW,OAAO,UAAU,YAAY;AAAA,EAAA,OACtD;AACH,aAAS,QAAQ;AAAA,EAAA;AAGrB,WAAS,aAAa,OAAkB;AACpC,aAAS,QAAQ,MAAM;AAAA,EAAA;AAG3B,SAAO,EAAE,SAAS;AACtB;;"}