{"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/use-router/index.ts"],"sourcesContent":["/**\n * Vue Router support\n */\nimport {\n  type ComponentPublicInstance,\n  type ExtractPropTypes,\n  type PropType,\n  getCurrentInstance,\n} from 'vue'\nimport type { RouteLocationRaw, Router } from 'vue-router'\n\nexport const routeProps = {\n  to: [String, Object] as PropType<RouteLocationRaw>,\n  url: String,\n  replace: Boolean,\n}\n\nexport type RouteProps = ExtractPropTypes<typeof routeProps>\n\nexport function route({\n  to,\n  url,\n  replace,\n  $router: router,\n}: ComponentPublicInstance<RouteProps> & { $router: Router }) {\n  if (to && router) {\n    router[replace ? 'replace' : 'push'](to)\n  } else if (url) {\n    replace ? location.replace(url) : (location.href = url)\n  }\n}\n\nexport function useRoute() {\n  const vm = getCurrentInstance()!\n    .proxy as ComponentPublicInstance<RouteProps> & { $router: Router }\n  return () => route(vm)\n}\n"],"names":[],"mappings":";;AAWO,MAAM,UAAa,GAAA;AAAA,EACxB,EAAA,EAAI,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EACnB,GAAK,EAAA,MAAA;AAAA,EACL,OAAS,EAAA,OAAA;AACX,EAAA;AAIO,SAAS,KAAM,CAAA;AAAA,EACpB,EAAA;AAAA,EACA,GAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAS,EAAA,MAAA;AACX,CAA8D,EAAA;AAC5D,EAAA,IAAI,MAAM,MAAQ,EAAA;AAChB,IAAO,MAAA,CAAA,OAAA,GAAU,SAAY,GAAA,MAAA,CAAA,CAAQ,EAAE,CAAA,CAAA;AAAA,aAC9B,GAAK,EAAA;AACd,IAAA,OAAA,GAAU,QAAS,CAAA,OAAA,CAAQ,GAAG,CAAA,GAAK,SAAS,IAAO,GAAA,GAAA,CAAA;AAAA,GACrD;AACF,CAAA;AAEO,SAAS,QAAW,GAAA;AACzB,EAAM,MAAA,EAAA,GAAK,oBACR,CAAA,KAAA,CAAA;AACH,EAAO,OAAA,MAAM,MAAM,EAAE,CAAA,CAAA;AACvB;;;;"}