@real-router/vue 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +245 -231
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.mts +245 -231
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +8 -8
- package/dist/cjs/metafile-cjs.json +0 -1
- package/dist/esm/metafile-esm.json +0 -1
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/RouteView/components.ts","../../src/components/RouteView/helpers.ts","../../src/useRefFromSource.ts","../../src/context.ts","../../src/composables/useRouter.ts","../../src/composables/useRouteNode.ts","../../src/components/RouteView/RouteView.ts","../../src/composables/useIsActiveRoute.ts","../../src/constants.ts","../../src/components/Link.ts","../../src/composables/useRouterError.ts","../../src/components/RouterErrorBoundary.ts","../../src/directives/vLink.ts","../../src/composables/useNavigator.ts","../../src/composables/useRouteUtils.ts","../../src/composables/useRoute.ts","../../src/composables/useRouterTransition.ts","../../src/createRouterPlugin.ts","../../src/RouterProvider.ts"],"names":["defineComponent","startsWithSegment","isVNode","Fragment","UNKNOWN_ROUTE","ref","shallowRef","onScopeDispose","inject","createRouteNodeSource","getNavigator","watch","cache","markRaw","Suspense","h","KeepAlive","createActiveRouteSource","computed","buildHref","buildActiveClassName","shouldNavigate","createErrorSource","applyLinkA11y","getRouteUtils","getPluginApi","createTransitionSource","createRouteSource","onMounted","createRouteAnnouncer","onUnmounted","provide"],"mappings":"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","file":"index.js","sourcesContent":["import { defineComponent } from \"vue\";\n\nimport type { PropType, VNode } from \"vue\";\n\nfunction renderNull() {\n return null;\n}\n\nexport const Match = defineComponent({\n name: \"RouteView.Match\",\n props: {\n segment: {\n type: String as PropType<string>,\n required: true,\n },\n exact: {\n type: Boolean,\n default: false,\n },\n fallback: {\n type: [Object, Function] as PropType<VNode | (() => VNode)>,\n default: undefined,\n },\n },\n render: renderNull,\n});\n\nexport const NotFound = defineComponent({\n name: \"RouteView.NotFound\",\n render: renderNull,\n});\n","import { UNKNOWN_ROUTE } from \"@real-router/core\";\nimport { startsWithSegment } from \"@real-router/route-utils\";\nimport { Fragment, isVNode } from \"vue\";\n\nimport { Match, NotFound } from \"./components\";\n\nimport type { VNode } from \"vue\";\n\ntype FallbackType = VNode | (() => VNode) | undefined;\n\nfunction isSegmentMatch(\n routeName: string,\n fullSegmentName: string,\n exact: boolean,\n): boolean {\n if (exact) {\n return routeName === fullSegmentName;\n }\n\n return startsWithSegment(routeName, fullSegmentName);\n}\n\nfunction normalizeChildren(children: unknown): VNode[] {\n if (Array.isArray(children)) {\n const result: VNode[] = [];\n\n for (const child of children) {\n if (Array.isArray(child)) {\n result.push(...normalizeChildren(child));\n } else if (isVNode(child)) {\n result.push(child);\n }\n }\n\n return result;\n }\n\n if (isVNode(children)) {\n return [children];\n }\n\n return [];\n}\n\nexport function collectElements(children: unknown, result: VNode[]): void {\n const vnodes = normalizeChildren(children);\n\n for (const child of vnodes) {\n if (child.type === Match || child.type === NotFound) {\n result.push(child);\n } else if (child.type === Fragment) {\n collectElements(child.children, result);\n }\n }\n}\n\nexport function buildRenderList(\n elements: VNode[],\n routeName: string,\n nodeName: string,\n): {\n rendered: VNode[];\n activeMatchFound: boolean;\n fallback?: FallbackType;\n} {\n let notFoundChildren: unknown = null;\n let activeMatchFound = false;\n let fallback: FallbackType = undefined;\n const rendered: VNode[] = [];\n\n for (const child of elements) {\n if (child.type === NotFound) {\n notFoundChildren = child.children;\n continue;\n }\n\n const props = child.props as {\n segment: string;\n exact?: boolean;\n fallback?: FallbackType;\n } | null;\n const segment = props?.segment ?? \"\";\n const exact = props?.exact ?? false;\n const fullSegmentName = nodeName ? `${nodeName}.${segment}` : segment;\n const isActive =\n !activeMatchFound && isSegmentMatch(routeName, fullSegmentName, exact);\n\n if (isActive) {\n activeMatchFound = true;\n fallback = props?.fallback;\n rendered.push(child);\n }\n }\n\n if (\n !activeMatchFound &&\n routeName === UNKNOWN_ROUTE &&\n notFoundChildren !== null\n ) {\n const nfElements = elements.filter((element) => element.type === NotFound);\n /* v8 ignore next 3 */\n const lastNf = nfElements.at(-1);\n\n if (lastNf) {\n rendered.push(lastNf);\n }\n }\n\n return { rendered, activeMatchFound, fallback };\n}\n","import { shallowRef, onScopeDispose } from \"vue\";\n\nimport type { RouterSource } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useRefFromSource<T>(source: RouterSource<T>): ShallowRef<T> {\n const ref = shallowRef(source.getSnapshot());\n\n const unsub = source.subscribe(() => {\n ref.value = source.getSnapshot();\n });\n\n onScopeDispose(unsub);\n\n return ref;\n}\n","import type { RouteContext as RouteContextType } from \"./types\";\nimport type { Router, Navigator } from \"@real-router/core\";\nimport type { InjectionKey } from \"vue\";\n\nexport const RouterKey: InjectionKey<Router> = Symbol(\"RouterKey\");\n\nexport const NavigatorKey: InjectionKey<Navigator> = Symbol(\"NavigatorKey\");\n\nexport const RouteKey: InjectionKey<RouteContextType> = Symbol(\"RouteKey\");\n","import { inject } from \"vue\";\n\nimport { RouterKey } from \"../context\";\n\nimport type { Router } from \"@real-router/core\";\n\nexport const useRouter = (): Router => {\n const router = inject(RouterKey);\n\n if (!router) {\n throw new Error(\"useRouter must be used within a RouterProvider\");\n }\n\n return router;\n};\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteNodeSource } from \"@real-router/sources\";\nimport { shallowRef, watch } from \"vue\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouteContext } from \"../types\";\nimport type { State } from \"@real-router/core\";\n\nexport function useRouteNode(nodeName: string): RouteContext {\n const router = useRouter();\n\n const source = createRouteNodeSource(router, nodeName);\n const snapshot = useRefFromSource(source);\n\n const navigator = getNavigator(router);\n\n const route = shallowRef<State | undefined>(snapshot.value.route);\n const previousRoute = shallowRef<State | undefined>(\n snapshot.value.previousRoute,\n );\n\n watch(\n snapshot,\n (newSnapshot) => {\n route.value = newSnapshot.route;\n previousRoute.value = newSnapshot.previousRoute;\n },\n { flush: \"sync\" },\n );\n\n return {\n navigator,\n route,\n previousRoute,\n };\n}\n","import {\n Fragment,\n defineComponent,\n h,\n KeepAlive,\n markRaw,\n Suspense,\n} from \"vue\";\n\nimport { Match, NotFound } from \"./components\";\nimport { buildRenderList, collectElements } from \"./helpers\";\nimport { useRouteNode } from \"../../composables/useRouteNode\";\n\nimport type { Component, VNode } from \"vue\";\n\ntype SlotChildren = Record<string, (() => VNode[]) | undefined> | null;\n\nfunction getSlotContent(vnode: VNode): VNode[] | null {\n const slots = vnode.children as SlotChildren;\n\n return slots?.default?.() ?? null;\n}\n\nfunction getOrCreateWrapper(\n cache: Map<string, Component>,\n segment: string,\n): Component {\n const existing = cache.get(segment);\n\n if (existing) {\n return existing;\n }\n\n const wrapper = markRaw(\n defineComponent({\n name: `KeepAlive-${segment}`,\n setup(_wrapperProps, wrapperCtx) {\n return () => wrapperCtx.slots.default?.();\n },\n }),\n );\n\n cache.set(segment, wrapper);\n\n return wrapper;\n}\n\nfunction wrapWithSuspense(content: VNode, fallback: unknown): VNode {\n if (fallback === undefined) {\n return content;\n }\n\n const fallbackContent =\n typeof fallback === \"function\" ? (fallback as () => VNode)() : fallback;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n const suspenseComponent = Suspense as any;\n\n return h(\n suspenseComponent,\n {},\n {\n default: () => content,\n fallback: () => fallbackContent,\n },\n );\n}\n\nconst RouteViewComponent = defineComponent({\n name: \"RouteView\",\n props: {\n nodeName: {\n type: String,\n required: true,\n },\n keepAlive: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const routeContext = useRouteNode(props.nodeName);\n\n const wrapperCache = new Map<string, Component>();\n\n return (): VNode | null => {\n const route = routeContext.route.value;\n\n if (!route) {\n return null;\n }\n\n const elements: VNode[] = [];\n\n collectElements(slots.default?.(), elements);\n\n const { rendered, fallback } = buildRenderList(\n elements,\n route.name,\n props.nodeName,\n );\n\n if (rendered.length === 0) {\n return null;\n }\n\n const activeChild = rendered[0];\n\n if (!props.keepAlive) {\n if (activeChild.type === Match || activeChild.type === NotFound) {\n const content = getSlotContent(activeChild);\n\n if (!content) {\n return null;\n }\n\n const fragment = h(Fragment, content);\n\n return wrapWithSuspense(fragment, fallback);\n }\n\n /* v8 ignore start */\n return null;\n /* v8 ignore stop */\n }\n\n const activeProps = activeChild.props as {\n segment?: string;\n } | null;\n const segment = activeProps?.segment ?? \"__not-found__\";\n\n const WrapperComponent = getOrCreateWrapper(wrapperCache, segment);\n /* v8 ignore next */\n const slotContent = getSlotContent(activeChild) ?? [];\n\n const keepAliveContent = h(KeepAlive, null, {\n default: () =>\n h(WrapperComponent, { key: segment }, { default: () => slotContent }),\n });\n\n return wrapWithSuspense(keepAliveContent, fallback);\n };\n },\n});\n\nexport const RouteView = Object.assign(RouteViewComponent, { Match, NotFound });\n\nexport type {\n RouteViewProps,\n MatchProps as RouteViewMatchProps,\n NotFoundProps as RouteViewNotFoundProps,\n} from \"./types\";\n","import { createActiveRouteSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { Params } from \"@real-router/core\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useIsActiveRoute(\n routeName: string,\n params?: Params,\n strict = false,\n ignoreQueryParams = true,\n): ShallowRef<boolean> {\n const router = useRouter();\n\n const source = createActiveRouteSource(router, routeName, params, {\n strict,\n ignoreQueryParams,\n });\n\n return useRefFromSource(source);\n}\n","/**\n * Stable empty object for default params\n */\nexport const EMPTY_PARAMS = Object.freeze({});\n\n/**\n * Stable empty options object\n */\nexport const EMPTY_OPTIONS = Object.freeze({});\n","import { shouldNavigate, buildHref, buildActiveClassName } from \"dom-utils\";\nimport { defineComponent, h, computed } from \"vue\";\n\nimport { useIsActiveRoute } from \"../composables/useIsActiveRoute\";\nimport { useRouter } from \"../composables/useRouter\";\nimport { EMPTY_PARAMS, EMPTY_OPTIONS } from \"../constants\";\n\nimport type { Params, NavigationOptions } from \"@real-router/core\";\nimport type { PropType } from \"vue\";\n\nexport const Link = defineComponent({\n name: \"Link\",\n props: {\n routeName: {\n type: String,\n required: true,\n },\n routeParams: {\n type: Object as PropType<Params>,\n default: () => EMPTY_PARAMS,\n },\n routeOptions: {\n type: Object as PropType<NavigationOptions>,\n default: () => EMPTY_OPTIONS,\n },\n class: {\n type: String,\n default: undefined,\n },\n activeClassName: {\n type: String,\n default: \"active\",\n },\n activeStrict: {\n type: Boolean,\n default: false,\n },\n ignoreQueryParams: {\n type: Boolean,\n default: true,\n },\n target: {\n type: String,\n default: undefined,\n },\n },\n setup(props, { slots, attrs }) {\n const router = useRouter();\n\n const isActive = useIsActiveRoute(\n props.routeName,\n props.routeParams,\n props.activeStrict,\n props.ignoreQueryParams,\n );\n\n const href = computed(() =>\n buildHref(router, props.routeName, props.routeParams),\n );\n\n const finalClassName = computed(() =>\n buildActiveClassName(isActive.value, props.activeClassName, props.class),\n );\n\n const handleClick = (evt: MouseEvent) => {\n if (attrs.onClick && typeof attrs.onClick === \"function\") {\n (attrs.onClick as (evt: MouseEvent) => void)(evt);\n\n if (evt.defaultPrevented) {\n return;\n }\n }\n\n if (!shouldNavigate(evt) || props.target === \"_blank\") {\n return;\n }\n\n evt.preventDefault();\n router\n .navigate(props.routeName, props.routeParams, props.routeOptions)\n .catch(() => {});\n };\n\n return () =>\n h(\n \"a\",\n {\n ...attrs,\n href: href.value,\n class: finalClassName.value,\n target: props.target,\n onClick: handleClick,\n },\n slots.default?.(),\n );\n },\n});\n","import { createErrorSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { RouterErrorSnapshot, RouterSource } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nconst cache = new WeakMap<Router, RouterSource<RouterErrorSnapshot>>();\n\nexport function useRouterError(): ShallowRef<RouterErrorSnapshot> {\n const router = useRouter();\n\n let source = cache.get(router);\n\n if (!source) {\n source = createErrorSource(router);\n cache.set(router, source);\n }\n\n return useRefFromSource(source);\n}\n","import { defineComponent, h, ref, watch, computed, Fragment } from \"vue\";\n\nimport { useRouterError } from \"../composables/useRouterError\";\n\nimport type { RouterError, State } from \"@real-router/core\";\nimport type { VNode, PropType } from \"vue\";\n\nexport const RouterErrorBoundary = defineComponent({\n name: \"RouterErrorBoundary\",\n props: {\n fallback: {\n type: Function as PropType<\n (error: RouterError, resetError: () => void) => VNode\n >,\n required: true,\n },\n onError: {\n type: Function as PropType<\n (\n error: RouterError,\n toRoute: State | null,\n fromRoute: State | null,\n ) => void\n >,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const snapshot = useRouterError();\n const dismissedVersion = ref(-1);\n\n watch(\n () => snapshot.value.version,\n () => {\n if (snapshot.value.error) {\n props.onError?.(\n snapshot.value.error,\n snapshot.value.toRoute,\n snapshot.value.fromRoute,\n );\n }\n },\n { immediate: true },\n );\n\n const visibleError = computed(() =>\n snapshot.value.version > dismissedVersion.value\n ? snapshot.value.error\n : null,\n );\n\n const resetError = () => {\n dismissedVersion.value = snapshot.value.version;\n };\n\n return () => {\n const children = slots.default?.() ?? [];\n const errorVNode = visibleError.value\n ? props.fallback(visibleError.value, resetError)\n : null;\n\n return h(Fragment, null, [...children, errorVNode]);\n };\n },\n});\n\nexport type RouterErrorBoundaryProps = InstanceType<\n typeof RouterErrorBoundary\n>[\"$props\"];\n","import { shouldNavigate, applyLinkA11y } from \"dom-utils\";\n\nimport type { Router, NavigationOptions, Params } from \"@real-router/core\";\nimport type { Directive } from \"vue\";\n\nexport interface LinkDirectiveValue {\n name: string;\n params?: Params;\n options?: NavigationOptions;\n}\n\nlet _router: Router | null = null;\n\nexport function setDirectiveRouter(router: Router): void {\n _router = router;\n}\n\nexport function getDirectiveRouter(): Router {\n if (!_router) {\n /* v8 ignore next 3 -- @preserve Defensive: router always initialized by RouterProvider */\n throw new Error(\n \"v-link directive requires a RouterProvider ancestor. Make sure RouterProvider is mounted.\",\n );\n }\n\n return _router;\n}\n\nconst clickHandlers = new WeakMap<HTMLElement, (evt: MouseEvent) => void>();\nconst keydownHandlers = new WeakMap<\n HTMLElement,\n (evt: KeyboardEvent) => void\n>();\n\nfunction createClickHandler(\n router: Router,\n value: LinkDirectiveValue,\n): (evt: MouseEvent) => void {\n return (evt: MouseEvent) => {\n if (!shouldNavigate(evt)) {\n return;\n }\n\n evt.preventDefault();\n router\n .navigate(value.name, value.params ?? {}, value.options ?? {})\n .catch(() => {});\n };\n}\n\nfunction createKeydownHandler(\n router: Router,\n value: LinkDirectiveValue,\n element: HTMLElement,\n): (evt: KeyboardEvent) => void {\n return (evt: KeyboardEvent) => {\n if (evt.key === \"Enter\" && !(element instanceof HTMLButtonElement)) {\n router\n .navigate(value.name, value.params ?? {}, value.options ?? {})\n .catch(() => {});\n }\n };\n}\n\nfunction attachHandlers(\n element: HTMLElement,\n router: Router,\n value: LinkDirectiveValue,\n): void {\n const handleClick = createClickHandler(router, value);\n const handleKeyDown = createKeydownHandler(router, value, element);\n\n element.addEventListener(\"click\", handleClick);\n element.addEventListener(\"keydown\", handleKeyDown);\n\n clickHandlers.set(element, handleClick);\n keydownHandlers.set(element, handleKeyDown);\n}\n\nfunction detachHandlers(element: HTMLElement): void {\n const clickHandler = clickHandlers.get(element);\n const keydownHandler = keydownHandlers.get(element);\n\n if (clickHandler) {\n element.removeEventListener(\"click\", clickHandler);\n }\n if (keydownHandler) {\n element.removeEventListener(\"keydown\", keydownHandler);\n }\n\n clickHandlers.delete(element);\n keydownHandlers.delete(element);\n}\n\nexport const vLink: Directive<HTMLElement, LinkDirectiveValue> = {\n mounted(element, binding) {\n const router = getDirectiveRouter();\n\n applyLinkA11y(element);\n\n element.style.cursor = \"pointer\";\n\n attachHandlers(element, router, binding.value);\n },\n\n updated(element, binding) {\n const router = getDirectiveRouter();\n\n detachHandlers(element);\n attachHandlers(element, router, binding.value);\n },\n\n beforeUnmount(element) {\n detachHandlers(element);\n },\n};\n","import { inject } from \"vue\";\n\nimport { NavigatorKey } from \"../context\";\n\nimport type { Navigator } from \"@real-router/core\";\n\nexport const useNavigator = (): Navigator => {\n const navigator = inject(NavigatorKey);\n\n if (!navigator) {\n throw new Error(\"useNavigator must be used within a RouterProvider\");\n }\n\n return navigator;\n};\n","import { getPluginApi } from \"@real-router/core/api\";\nimport { getRouteUtils } from \"@real-router/route-utils\";\n\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouteUtils } from \"@real-router/route-utils\";\n\nexport const useRouteUtils = (): RouteUtils => {\n const router = useRouter();\n\n return getRouteUtils(getPluginApi(router).getTree());\n};\n","import { inject } from \"vue\";\n\nimport { RouteKey } from \"../context\";\n\nimport type { RouteContext } from \"../types\";\n\nexport const useRoute = (): RouteContext => {\n const routeContext = inject(RouteKey);\n\n if (!routeContext) {\n throw new Error(\"useRoute must be used within a RouterProvider\");\n }\n\n return routeContext;\n};\n","import { createTransitionSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouterTransitionSnapshot } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useRouterTransition(): ShallowRef<RouterTransitionSnapshot> {\n const router = useRouter();\n\n const source = createTransitionSource(router);\n\n return useRefFromSource(source);\n}\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteSource } from \"@real-router/sources\";\nimport { shallowRef } from \"vue\";\n\nimport { NavigatorKey, RouteKey, RouterKey } from \"./context\";\nimport { setDirectiveRouter } from \"./directives/vLink\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { Plugin } from \"vue\";\n\nexport function createRouterPlugin(router: Router): Plugin<[]> {\n return {\n install(app): void {\n const navigator = getNavigator(router);\n\n setDirectiveRouter(router);\n\n const source = createRouteSource(router);\n const initialSnapshot = source.getSnapshot();\n\n const route = shallowRef(initialSnapshot.route);\n const previousRoute = shallowRef(initialSnapshot.previousRoute);\n\n source.subscribe(() => {\n const snapshot = source.getSnapshot();\n\n route.value = snapshot.route;\n previousRoute.value = snapshot.previousRoute;\n });\n\n app.provide(RouterKey, router);\n app.provide(NavigatorKey, navigator);\n app.provide(RouteKey, { navigator, route, previousRoute });\n },\n };\n}\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteSource } from \"@real-router/sources\";\nimport { createRouteAnnouncer } from \"dom-utils\";\nimport {\n defineComponent,\n onMounted,\n onUnmounted,\n provide,\n shallowRef,\n onScopeDispose,\n} from \"vue\";\n\nimport { NavigatorKey, RouteKey, RouterKey } from \"./context\";\nimport { setDirectiveRouter } from \"./directives/vLink\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { PropType } from \"vue\";\n\nexport const RouterProvider = defineComponent({\n name: \"RouterProvider\",\n props: {\n router: {\n type: Object as PropType<Router>,\n required: true,\n },\n announceNavigation: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n onMounted(() => {\n if (!props.announceNavigation) {\n return;\n }\n\n const announcer = createRouteAnnouncer(props.router);\n\n onUnmounted(() => {\n announcer.destroy();\n });\n });\n\n const navigator = getNavigator(props.router);\n\n setDirectiveRouter(props.router);\n\n const source = createRouteSource(props.router);\n const initialSnapshot = source.getSnapshot();\n\n const route = shallowRef(initialSnapshot.route);\n const previousRoute = shallowRef(initialSnapshot.previousRoute);\n\n const unsub = source.subscribe(() => {\n const snapshot = source.getSnapshot();\n\n route.value = snapshot.route;\n previousRoute.value = snapshot.previousRoute;\n });\n\n onScopeDispose(unsub);\n\n provide(RouterKey, props.router);\n provide(NavigatorKey, navigator);\n provide(RouteKey, { navigator, route, previousRoute });\n\n return () => slots.default?.();\n },\n});\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Fragment","UNKNOWN_ROUTE","Suspense","Fragment","KeepAlive","Fragment"],"sources":["../../src/components/RouteView/components.ts","../../src/components/RouteView/helpers.ts","../../src/useRefFromSource.ts","../../src/context.ts","../../src/composables/useRouter.ts","../../src/composables/useRouteNode.ts","../../src/components/RouteView/RouteView.ts","../../src/composables/useIsActiveRoute.ts","../../src/constants.ts","../../src/components/Link.ts","../../src/composables/useRouterError.ts","../../src/components/RouterErrorBoundary.ts","../../src/directives/vLink.ts","../../src/composables/useNavigator.ts","../../src/composables/useRouteUtils.ts","../../src/composables/useRoute.ts","../../src/composables/useRouterTransition.ts","../../src/createRouterPlugin.ts","../../src/RouterProvider.ts"],"sourcesContent":["import { defineComponent } from \"vue\";\n\nimport type { PropType, VNode } from \"vue\";\n\nfunction renderNull() {\n return null;\n}\n\nexport const Match = defineComponent({\n name: \"RouteView.Match\",\n props: {\n segment: {\n type: String as PropType<string>,\n required: true,\n },\n exact: {\n type: Boolean,\n default: false,\n },\n fallback: {\n type: [Object, Function] as PropType<VNode | (() => VNode)>,\n default: undefined,\n },\n },\n render: renderNull,\n});\n\nexport const NotFound = defineComponent({\n name: \"RouteView.NotFound\",\n render: renderNull,\n});\n","import { UNKNOWN_ROUTE } from \"@real-router/core\";\nimport { startsWithSegment } from \"@real-router/route-utils\";\nimport { Fragment, isVNode } from \"vue\";\n\nimport { Match, NotFound } from \"./components\";\n\nimport type { VNode } from \"vue\";\n\ntype FallbackType = VNode | (() => VNode) | undefined;\n\nfunction isSegmentMatch(\n routeName: string,\n fullSegmentName: string,\n exact: boolean,\n): boolean {\n if (exact) {\n return routeName === fullSegmentName;\n }\n\n return startsWithSegment(routeName, fullSegmentName);\n}\n\nfunction normalizeChildren(children: unknown): VNode[] {\n if (Array.isArray(children)) {\n const result: VNode[] = [];\n\n for (const child of children) {\n if (Array.isArray(child)) {\n result.push(...normalizeChildren(child));\n } else if (isVNode(child)) {\n result.push(child);\n }\n }\n\n return result;\n }\n\n if (isVNode(children)) {\n return [children];\n }\n\n return [];\n}\n\nexport function collectElements(children: unknown, result: VNode[]): void {\n const vnodes = normalizeChildren(children);\n\n for (const child of vnodes) {\n if (child.type === Match || child.type === NotFound) {\n result.push(child);\n } else if (child.type === Fragment) {\n collectElements(child.children, result);\n }\n }\n}\n\nexport function buildRenderList(\n elements: VNode[],\n routeName: string,\n nodeName: string,\n): {\n rendered: VNode[];\n activeMatchFound: boolean;\n fallback?: FallbackType;\n} {\n let notFoundChildren: unknown = null;\n let activeMatchFound = false;\n let fallback: FallbackType = undefined;\n const rendered: VNode[] = [];\n\n for (const child of elements) {\n if (child.type === NotFound) {\n notFoundChildren = child.children;\n continue;\n }\n\n const props = child.props as {\n segment: string;\n exact?: boolean;\n fallback?: FallbackType;\n } | null;\n const segment = props?.segment ?? \"\";\n const exact = props?.exact ?? false;\n const fullSegmentName = nodeName ? `${nodeName}.${segment}` : segment;\n const isActive =\n !activeMatchFound && isSegmentMatch(routeName, fullSegmentName, exact);\n\n if (isActive) {\n activeMatchFound = true;\n fallback = props?.fallback;\n rendered.push(child);\n }\n }\n\n if (\n !activeMatchFound &&\n routeName === UNKNOWN_ROUTE &&\n notFoundChildren !== null\n ) {\n const nfElements = elements.filter((element) => element.type === NotFound);\n /* v8 ignore next 3 */\n const lastNf = nfElements.at(-1);\n\n if (lastNf) {\n rendered.push(lastNf);\n }\n }\n\n return { rendered, activeMatchFound, fallback };\n}\n","import { shallowRef, onScopeDispose } from \"vue\";\n\nimport type { RouterSource } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useRefFromSource<T>(source: RouterSource<T>): ShallowRef<T> {\n const ref = shallowRef(source.getSnapshot());\n\n const unsub = source.subscribe(() => {\n ref.value = source.getSnapshot();\n });\n\n onScopeDispose(unsub);\n\n return ref;\n}\n","import type { RouteContext as RouteContextType } from \"./types\";\nimport type { Router, Navigator } from \"@real-router/core\";\nimport type { InjectionKey } from \"vue\";\n\nexport const RouterKey: InjectionKey<Router> = Symbol(\"RouterKey\");\n\nexport const NavigatorKey: InjectionKey<Navigator> = Symbol(\"NavigatorKey\");\n\nexport const RouteKey: InjectionKey<RouteContextType> = Symbol(\"RouteKey\");\n","import { inject } from \"vue\";\n\nimport { RouterKey } from \"../context\";\n\nimport type { Router } from \"@real-router/core\";\n\nexport const useRouter = (): Router => {\n const router = inject(RouterKey);\n\n if (!router) {\n throw new Error(\"useRouter must be used within a RouterProvider\");\n }\n\n return router;\n};\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteNodeSource } from \"@real-router/sources\";\nimport { shallowRef, watch } from \"vue\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouteContext } from \"../types\";\nimport type { State } from \"@real-router/core\";\n\nexport function useRouteNode(nodeName: string): RouteContext {\n const router = useRouter();\n\n const source = createRouteNodeSource(router, nodeName);\n const snapshot = useRefFromSource(source);\n\n const navigator = getNavigator(router);\n\n const route = shallowRef<State | undefined>(snapshot.value.route);\n const previousRoute = shallowRef<State | undefined>(\n snapshot.value.previousRoute,\n );\n\n watch(\n snapshot,\n (newSnapshot) => {\n route.value = newSnapshot.route;\n previousRoute.value = newSnapshot.previousRoute;\n },\n { flush: \"sync\" },\n );\n\n return {\n navigator,\n route,\n previousRoute,\n };\n}\n","import {\n Fragment,\n defineComponent,\n h,\n KeepAlive,\n markRaw,\n Suspense,\n} from \"vue\";\n\nimport { Match, NotFound } from \"./components\";\nimport { buildRenderList, collectElements } from \"./helpers\";\nimport { useRouteNode } from \"../../composables/useRouteNode\";\n\nimport type { Component, VNode } from \"vue\";\n\ntype SlotChildren = Record<string, (() => VNode[]) | undefined> | null;\n\nfunction getSlotContent(vnode: VNode): VNode[] | null {\n const slots = vnode.children as SlotChildren;\n\n return slots?.default?.() ?? null;\n}\n\nfunction getOrCreateWrapper(\n cache: Map<string, Component>,\n segment: string,\n): Component {\n const existing = cache.get(segment);\n\n if (existing) {\n return existing;\n }\n\n const wrapper = markRaw(\n defineComponent({\n name: `KeepAlive-${segment}`,\n setup(_wrapperProps, wrapperCtx) {\n return () => wrapperCtx.slots.default?.();\n },\n }),\n );\n\n cache.set(segment, wrapper);\n\n return wrapper;\n}\n\nfunction wrapWithSuspense(content: VNode, fallback: unknown): VNode {\n if (fallback === undefined) {\n return content;\n }\n\n const fallbackContent =\n typeof fallback === \"function\" ? (fallback as () => VNode)() : fallback;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n const suspenseComponent = Suspense as any;\n\n return h(\n suspenseComponent,\n {},\n {\n default: () => content,\n fallback: () => fallbackContent,\n },\n );\n}\n\nconst RouteViewComponent = defineComponent({\n name: \"RouteView\",\n props: {\n nodeName: {\n type: String,\n required: true,\n },\n keepAlive: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n const routeContext = useRouteNode(props.nodeName);\n\n const wrapperCache = new Map<string, Component>();\n\n return (): VNode | null => {\n const route = routeContext.route.value;\n\n if (!route) {\n return null;\n }\n\n const elements: VNode[] = [];\n\n collectElements(slots.default?.(), elements);\n\n const { rendered, fallback } = buildRenderList(\n elements,\n route.name,\n props.nodeName,\n );\n\n if (rendered.length === 0) {\n return null;\n }\n\n const activeChild = rendered[0];\n\n if (!props.keepAlive) {\n if (activeChild.type === Match || activeChild.type === NotFound) {\n const content = getSlotContent(activeChild);\n\n if (!content) {\n return null;\n }\n\n const fragment = h(Fragment, content);\n\n return wrapWithSuspense(fragment, fallback);\n }\n\n /* v8 ignore start */\n return null;\n /* v8 ignore stop */\n }\n\n const activeProps = activeChild.props as {\n segment?: string;\n } | null;\n const segment = activeProps?.segment ?? \"__not-found__\";\n\n const WrapperComponent = getOrCreateWrapper(wrapperCache, segment);\n /* v8 ignore next */\n const slotContent = getSlotContent(activeChild) ?? [];\n\n const keepAliveContent = h(KeepAlive, null, {\n default: () =>\n h(WrapperComponent, { key: segment }, { default: () => slotContent }),\n });\n\n return wrapWithSuspense(keepAliveContent, fallback);\n };\n },\n});\n\nexport const RouteView = Object.assign(RouteViewComponent, { Match, NotFound });\n\nexport type {\n RouteViewProps,\n MatchProps as RouteViewMatchProps,\n NotFoundProps as RouteViewNotFoundProps,\n} from \"./types\";\n","import { createActiveRouteSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { Params } from \"@real-router/core\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useIsActiveRoute(\n routeName: string,\n params?: Params,\n strict = false,\n ignoreQueryParams = true,\n): ShallowRef<boolean> {\n const router = useRouter();\n\n const source = createActiveRouteSource(router, routeName, params, {\n strict,\n ignoreQueryParams,\n });\n\n return useRefFromSource(source);\n}\n","/**\n * Stable empty object for default params\n */\nexport const EMPTY_PARAMS = Object.freeze({});\n\n/**\n * Stable empty options object\n */\nexport const EMPTY_OPTIONS = Object.freeze({});\n","import { shouldNavigate, buildHref, buildActiveClassName } from \"dom-utils\";\nimport { defineComponent, h, computed } from \"vue\";\n\nimport { useIsActiveRoute } from \"../composables/useIsActiveRoute\";\nimport { useRouter } from \"../composables/useRouter\";\nimport { EMPTY_PARAMS, EMPTY_OPTIONS } from \"../constants\";\n\nimport type { Params, NavigationOptions } from \"@real-router/core\";\nimport type { PropType } from \"vue\";\n\nexport const Link = defineComponent({\n name: \"Link\",\n props: {\n routeName: {\n type: String,\n required: true,\n },\n routeParams: {\n type: Object as PropType<Params>,\n default: () => EMPTY_PARAMS,\n },\n routeOptions: {\n type: Object as PropType<NavigationOptions>,\n default: () => EMPTY_OPTIONS,\n },\n class: {\n type: String,\n default: undefined,\n },\n activeClassName: {\n type: String,\n default: \"active\",\n },\n activeStrict: {\n type: Boolean,\n default: false,\n },\n ignoreQueryParams: {\n type: Boolean,\n default: true,\n },\n target: {\n type: String,\n default: undefined,\n },\n },\n setup(props, { slots, attrs }) {\n const router = useRouter();\n\n const isActive = useIsActiveRoute(\n props.routeName,\n props.routeParams,\n props.activeStrict,\n props.ignoreQueryParams,\n );\n\n const href = computed(() =>\n buildHref(router, props.routeName, props.routeParams),\n );\n\n const finalClassName = computed(() =>\n buildActiveClassName(isActive.value, props.activeClassName, props.class),\n );\n\n const handleClick = (evt: MouseEvent) => {\n if (attrs.onClick && typeof attrs.onClick === \"function\") {\n (attrs.onClick as (evt: MouseEvent) => void)(evt);\n\n if (evt.defaultPrevented) {\n return;\n }\n }\n\n if (!shouldNavigate(evt) || props.target === \"_blank\") {\n return;\n }\n\n evt.preventDefault();\n router\n .navigate(props.routeName, props.routeParams, props.routeOptions)\n .catch(() => {});\n };\n\n return () =>\n h(\n \"a\",\n {\n ...attrs,\n href: href.value,\n class: finalClassName.value,\n target: props.target,\n onClick: handleClick,\n },\n slots.default?.(),\n );\n },\n});\n","import { createErrorSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { RouterErrorSnapshot, RouterSource } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nconst cache = new WeakMap<Router, RouterSource<RouterErrorSnapshot>>();\n\nexport function useRouterError(): ShallowRef<RouterErrorSnapshot> {\n const router = useRouter();\n\n let source = cache.get(router);\n\n if (!source) {\n source = createErrorSource(router);\n cache.set(router, source);\n }\n\n return useRefFromSource(source);\n}\n","import { defineComponent, h, ref, watch, computed, Fragment } from \"vue\";\n\nimport { useRouterError } from \"../composables/useRouterError\";\n\nimport type { RouterError, State } from \"@real-router/core\";\nimport type { VNode, PropType } from \"vue\";\n\nexport const RouterErrorBoundary = defineComponent({\n name: \"RouterErrorBoundary\",\n props: {\n fallback: {\n type: Function as PropType<\n (error: RouterError, resetError: () => void) => VNode\n >,\n required: true,\n },\n onError: {\n type: Function as PropType<\n (\n error: RouterError,\n toRoute: State | null,\n fromRoute: State | null,\n ) => void\n >,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const snapshot = useRouterError();\n const dismissedVersion = ref(-1);\n\n watch(\n () => snapshot.value.version,\n () => {\n if (snapshot.value.error) {\n props.onError?.(\n snapshot.value.error,\n snapshot.value.toRoute,\n snapshot.value.fromRoute,\n );\n }\n },\n { immediate: true },\n );\n\n const visibleError = computed(() =>\n snapshot.value.version > dismissedVersion.value\n ? snapshot.value.error\n : null,\n );\n\n const resetError = () => {\n dismissedVersion.value = snapshot.value.version;\n };\n\n return () => {\n const children = slots.default?.() ?? [];\n const errorVNode = visibleError.value\n ? props.fallback(visibleError.value, resetError)\n : null;\n\n return h(Fragment, null, [...children, errorVNode]);\n };\n },\n});\n\nexport type RouterErrorBoundaryProps = InstanceType<\n typeof RouterErrorBoundary\n>[\"$props\"];\n","import { shouldNavigate, applyLinkA11y } from \"dom-utils\";\n\nimport type { Router, NavigationOptions, Params } from \"@real-router/core\";\nimport type { Directive } from \"vue\";\n\nexport interface LinkDirectiveValue {\n name: string;\n params?: Params;\n options?: NavigationOptions;\n}\n\nlet _router: Router | null = null;\n\nexport function setDirectiveRouter(router: Router): void {\n _router = router;\n}\n\nexport function getDirectiveRouter(): Router {\n if (!_router) {\n /* v8 ignore next 3 -- @preserve Defensive: router always initialized by RouterProvider */\n throw new Error(\n \"v-link directive requires a RouterProvider ancestor. Make sure RouterProvider is mounted.\",\n );\n }\n\n return _router;\n}\n\nconst clickHandlers = new WeakMap<HTMLElement, (evt: MouseEvent) => void>();\nconst keydownHandlers = new WeakMap<\n HTMLElement,\n (evt: KeyboardEvent) => void\n>();\n\nfunction createClickHandler(\n router: Router,\n value: LinkDirectiveValue,\n): (evt: MouseEvent) => void {\n return (evt: MouseEvent) => {\n if (!shouldNavigate(evt)) {\n return;\n }\n\n evt.preventDefault();\n router\n .navigate(value.name, value.params ?? {}, value.options ?? {})\n .catch(() => {});\n };\n}\n\nfunction createKeydownHandler(\n router: Router,\n value: LinkDirectiveValue,\n element: HTMLElement,\n): (evt: KeyboardEvent) => void {\n return (evt: KeyboardEvent) => {\n if (evt.key === \"Enter\" && !(element instanceof HTMLButtonElement)) {\n router\n .navigate(value.name, value.params ?? {}, value.options ?? {})\n .catch(() => {});\n }\n };\n}\n\nfunction attachHandlers(\n element: HTMLElement,\n router: Router,\n value: LinkDirectiveValue,\n): void {\n const handleClick = createClickHandler(router, value);\n const handleKeyDown = createKeydownHandler(router, value, element);\n\n element.addEventListener(\"click\", handleClick);\n element.addEventListener(\"keydown\", handleKeyDown);\n\n clickHandlers.set(element, handleClick);\n keydownHandlers.set(element, handleKeyDown);\n}\n\nfunction detachHandlers(element: HTMLElement): void {\n const clickHandler = clickHandlers.get(element);\n const keydownHandler = keydownHandlers.get(element);\n\n if (clickHandler) {\n element.removeEventListener(\"click\", clickHandler);\n }\n if (keydownHandler) {\n element.removeEventListener(\"keydown\", keydownHandler);\n }\n\n clickHandlers.delete(element);\n keydownHandlers.delete(element);\n}\n\nexport const vLink: Directive<HTMLElement, LinkDirectiveValue> = {\n mounted(element, binding) {\n const router = getDirectiveRouter();\n\n applyLinkA11y(element);\n\n element.style.cursor = \"pointer\";\n\n attachHandlers(element, router, binding.value);\n },\n\n updated(element, binding) {\n const router = getDirectiveRouter();\n\n detachHandlers(element);\n attachHandlers(element, router, binding.value);\n },\n\n beforeUnmount(element) {\n detachHandlers(element);\n },\n};\n","import { inject } from \"vue\";\n\nimport { NavigatorKey } from \"../context\";\n\nimport type { Navigator } from \"@real-router/core\";\n\nexport const useNavigator = (): Navigator => {\n const navigator = inject(NavigatorKey);\n\n if (!navigator) {\n throw new Error(\"useNavigator must be used within a RouterProvider\");\n }\n\n return navigator;\n};\n","import { getPluginApi } from \"@real-router/core/api\";\nimport { getRouteUtils } from \"@real-router/route-utils\";\n\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouteUtils } from \"@real-router/route-utils\";\n\nexport const useRouteUtils = (): RouteUtils => {\n const router = useRouter();\n\n return getRouteUtils(getPluginApi(router).getTree());\n};\n","import { inject } from \"vue\";\n\nimport { RouteKey } from \"../context\";\n\nimport type { RouteContext } from \"../types\";\n\nexport const useRoute = (): RouteContext => {\n const routeContext = inject(RouteKey);\n\n if (!routeContext) {\n throw new Error(\"useRoute must be used within a RouterProvider\");\n }\n\n return routeContext;\n};\n","import { createTransitionSource } from \"@real-router/sources\";\n\nimport { useRefFromSource } from \"../useRefFromSource\";\nimport { useRouter } from \"./useRouter\";\n\nimport type { RouterTransitionSnapshot } from \"@real-router/sources\";\nimport type { ShallowRef } from \"vue\";\n\nexport function useRouterTransition(): ShallowRef<RouterTransitionSnapshot> {\n const router = useRouter();\n\n const source = createTransitionSource(router);\n\n return useRefFromSource(source);\n}\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteSource } from \"@real-router/sources\";\nimport { shallowRef } from \"vue\";\n\nimport { NavigatorKey, RouteKey, RouterKey } from \"./context\";\nimport { setDirectiveRouter } from \"./directives/vLink\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { Plugin } from \"vue\";\n\nexport function createRouterPlugin(router: Router): Plugin<[]> {\n return {\n install(app): void {\n const navigator = getNavigator(router);\n\n setDirectiveRouter(router);\n\n const source = createRouteSource(router);\n const initialSnapshot = source.getSnapshot();\n\n const route = shallowRef(initialSnapshot.route);\n const previousRoute = shallowRef(initialSnapshot.previousRoute);\n\n source.subscribe(() => {\n const snapshot = source.getSnapshot();\n\n route.value = snapshot.route;\n previousRoute.value = snapshot.previousRoute;\n });\n\n app.provide(RouterKey, router);\n app.provide(NavigatorKey, navigator);\n app.provide(RouteKey, { navigator, route, previousRoute });\n },\n };\n}\n","import { getNavigator } from \"@real-router/core\";\nimport { createRouteSource } from \"@real-router/sources\";\nimport { createRouteAnnouncer } from \"dom-utils\";\nimport {\n defineComponent,\n onMounted,\n onUnmounted,\n provide,\n shallowRef,\n onScopeDispose,\n} from \"vue\";\n\nimport { NavigatorKey, RouteKey, RouterKey } from \"./context\";\nimport { setDirectiveRouter } from \"./directives/vLink\";\n\nimport type { Router } from \"@real-router/core\";\nimport type { PropType } from \"vue\";\n\nexport const RouterProvider = defineComponent({\n name: \"RouterProvider\",\n props: {\n router: {\n type: Object as PropType<Router>,\n required: true,\n },\n announceNavigation: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { slots }) {\n onMounted(() => {\n if (!props.announceNavigation) {\n return;\n }\n\n const announcer = createRouteAnnouncer(props.router);\n\n onUnmounted(() => {\n announcer.destroy();\n });\n });\n\n const navigator = getNavigator(props.router);\n\n setDirectiveRouter(props.router);\n\n const source = createRouteSource(props.router);\n const initialSnapshot = source.getSnapshot();\n\n const route = shallowRef(initialSnapshot.route);\n const previousRoute = shallowRef(initialSnapshot.previousRoute);\n\n const unsub = source.subscribe(() => {\n const snapshot = source.getSnapshot();\n\n route.value = snapshot.route;\n previousRoute.value = snapshot.previousRoute;\n });\n\n onScopeDispose(unsub);\n\n provide(RouterKey, props.router);\n provide(NavigatorKey, navigator);\n provide(RouteKey, { navigator, route, previousRoute });\n\n return () => slots.default?.();\n },\n});\n"],"mappings":"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"}
|