@kimesh/router-runtime 0.2.35 → 0.2.36
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as vue13 from "vue";
|
|
2
|
-
import { App, Component, ComputedRef, InjectionKey, KeepAliveProps, PropType, Ref, TransitionProps, VNode } from "vue";
|
|
2
|
+
import { App, Component, ComputedRef, InjectionKey, KeepAliveProps, MaybeRefOrGetter, PropType, Ref, TransitionProps, VNode } from "vue";
|
|
3
3
|
import * as vue_router0 from "vue-router";
|
|
4
|
-
import { NavigationFailure, NavigationGuard, NavigationHookAfter, RouteLocationNormalized, RouteLocationNormalized as RouteLocationNormalized$1, RouteLocationNormalizedLoaded, RouteLocationNormalizedLoaded as RouteLocationNormalizedLoaded$1, RouteRecordRaw, RouteRecordRaw as RouteRecordRaw$1, Router, Router as Router$1, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute as useRoute$1, useRouter as useRouter$1 } from "vue-router";
|
|
4
|
+
import { LocationQueryValue, NavigationFailure, NavigationGuard, NavigationHookAfter, RouteLocationNormalized, RouteLocationNormalized as RouteLocationNormalized$1, RouteLocationNormalizedLoaded, RouteLocationNormalizedLoaded as RouteLocationNormalizedLoaded$1, RouteRecordRaw, RouteRecordRaw as RouteRecordRaw$1, Router, Router as Router$1, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute as useRoute$1, useRouter as useRouter$1 } from "vue-router";
|
|
5
5
|
import { QueryClient, QueryClientConfig } from "@tanstack/vue-query";
|
|
6
6
|
import { Hookable } from "hookable";
|
|
7
7
|
|
|
@@ -1386,6 +1386,102 @@ declare function useLayoutData<T = unknown>(): ComputedRef<T | undefined>;
|
|
|
1386
1386
|
*/
|
|
1387
1387
|
declare function useRouteLoaderData(): ComputedRef<Record<string, unknown>>;
|
|
1388
1388
|
//#endregion
|
|
1389
|
+
//#region src/composables/use-route-query.d.ts
|
|
1390
|
+
/**
|
|
1391
|
+
* Query value types supported by vue-router
|
|
1392
|
+
*/
|
|
1393
|
+
type RouteQueryValueRaw = LocationQueryValue | LocationQueryValue[];
|
|
1394
|
+
/**
|
|
1395
|
+
* Transform function to convert between URL string and typed value
|
|
1396
|
+
*/
|
|
1397
|
+
interface RouteQueryTransform<T, K = T> {
|
|
1398
|
+
/** Transform value when reading from URL */
|
|
1399
|
+
get?: (value: T) => K;
|
|
1400
|
+
/** Transform value when writing to URL */
|
|
1401
|
+
set?: (value: K) => T;
|
|
1402
|
+
}
|
|
1403
|
+
/**
|
|
1404
|
+
* Options for useRouteQuery
|
|
1405
|
+
*/
|
|
1406
|
+
interface UseRouteQueryOptions<T, K = T> {
|
|
1407
|
+
/**
|
|
1408
|
+
* Navigation mode when updating query
|
|
1409
|
+
* @default 'replace'
|
|
1410
|
+
*/
|
|
1411
|
+
mode?: MaybeRefOrGetter<'replace' | 'push'>;
|
|
1412
|
+
/**
|
|
1413
|
+
* Custom route instance (for testing or advanced usage)
|
|
1414
|
+
*/
|
|
1415
|
+
route?: RouteLocationNormalizedLoaded;
|
|
1416
|
+
/**
|
|
1417
|
+
* Custom router instance (for testing or advanced usage)
|
|
1418
|
+
*/
|
|
1419
|
+
router?: Router;
|
|
1420
|
+
/**
|
|
1421
|
+
* Transform function(s) for reading/writing values
|
|
1422
|
+
* Can be a single function (get only) or object with get/set
|
|
1423
|
+
*/
|
|
1424
|
+
transform?: ((value: T) => K) | RouteQueryTransform<T, K>;
|
|
1425
|
+
}
|
|
1426
|
+
/**
|
|
1427
|
+
* Reactive route query parameter binding - Suspense compatible
|
|
1428
|
+
*
|
|
1429
|
+
* A drop-in replacement for @vueuse/router's useRouteQuery that works
|
|
1430
|
+
* inside Kimesh's Suspense boundaries. Creates a two-way binding between
|
|
1431
|
+
* a ref and a URL query parameter.
|
|
1432
|
+
*
|
|
1433
|
+
* @example Basic usage
|
|
1434
|
+
* ```ts
|
|
1435
|
+
* const page = useRouteQuery('page', '1')
|
|
1436
|
+
* // URL: ?page=2 -> page.value === '2'
|
|
1437
|
+
* page.value = '3' // URL becomes ?page=3
|
|
1438
|
+
* ```
|
|
1439
|
+
*
|
|
1440
|
+
* @example With number transform
|
|
1441
|
+
* ```ts
|
|
1442
|
+
* const page = useRouteQuery('page', 1, {
|
|
1443
|
+
* transform: {
|
|
1444
|
+
* get: (v) => v ? Number(v) : 1,
|
|
1445
|
+
* set: (v) => String(v),
|
|
1446
|
+
* },
|
|
1447
|
+
* })
|
|
1448
|
+
* // page.value is a number
|
|
1449
|
+
* ```
|
|
1450
|
+
*
|
|
1451
|
+
* @example With push mode
|
|
1452
|
+
* ```ts
|
|
1453
|
+
* const tab = useRouteQuery('tab', 'list', { mode: 'push' })
|
|
1454
|
+
* // Changes create new history entries
|
|
1455
|
+
* ```
|
|
1456
|
+
*
|
|
1457
|
+
* @param name - The query parameter name
|
|
1458
|
+
* @param defaultValue - Default value when query param is not present
|
|
1459
|
+
* @param options - Configuration options
|
|
1460
|
+
* @returns A ref that syncs with the URL query parameter
|
|
1461
|
+
*/
|
|
1462
|
+
declare function useRouteQuery(name: string): Ref<undefined | null | string | string[]>;
|
|
1463
|
+
declare function useRouteQuery<T extends RouteQueryValueRaw = RouteQueryValueRaw, K = T>(name: string, defaultValue?: MaybeRefOrGetter<T>, options?: UseRouteQueryOptions<T, K>): Ref<K>;
|
|
1464
|
+
/**
|
|
1465
|
+
* Shorthand for useRouteQuery with number transform
|
|
1466
|
+
*
|
|
1467
|
+
* @example
|
|
1468
|
+
* ```ts
|
|
1469
|
+
* const page = useRouteQueryNumber('page', 1)
|
|
1470
|
+
* // page.value is always a number
|
|
1471
|
+
* ```
|
|
1472
|
+
*/
|
|
1473
|
+
declare function useRouteQueryNumber(name: string, defaultValue?: number, options?: Omit<UseRouteQueryOptions<string, number>, 'transform'>): Ref<number>;
|
|
1474
|
+
/**
|
|
1475
|
+
* Shorthand for useRouteQuery with boolean transform
|
|
1476
|
+
*
|
|
1477
|
+
* @example
|
|
1478
|
+
* ```ts
|
|
1479
|
+
* const showFilters = useRouteQueryBoolean('filters', false)
|
|
1480
|
+
* // URL: ?filters=true -> showFilters.value === true
|
|
1481
|
+
* ```
|
|
1482
|
+
*/
|
|
1483
|
+
declare function useRouteQueryBoolean(name: string, defaultValue?: boolean, options?: Omit<UseRouteQueryOptions<string | null, boolean>, 'transform'>): Ref<boolean>;
|
|
1484
|
+
//#endregion
|
|
1389
1485
|
//#region src/types/layout.d.ts
|
|
1390
1486
|
/**
|
|
1391
1487
|
* Layout loader data access result
|
|
@@ -1725,4 +1821,4 @@ declare function createMiddlewareExecutor(appContext: KimeshAppContext): {
|
|
|
1725
1821
|
executeChain(middlewares: RouteMiddleware[], context: MiddlewareContext): Promise<void | false | NavigationRedirect>;
|
|
1726
1822
|
};
|
|
1727
1823
|
//#endregion
|
|
1728
|
-
export {
|
|
1824
|
+
export { NavigationMiddlewareOptions as $, BeforeLoadContext as $t, MiddlewareRegistryEntry as A, RoutePath as An, mergeAllRouteHeads as At, isLayoutRouteMeta as B, KimeshRuntimePluginMeta as Bn, defineKimeshRuntimePlugin as Bt, navigateTo as C, RouteHeadFn as Cn, KmLinkProps as Ct, MiddlewareDefinition as D, RouteNames as Dn, applyTitleTemplate as Dt, MiddlewareContext as E, RouteNamedMap as En, applyHeadConfigNative as Et, LayoutLoaderData as F, TypedRedirectStatic as Fn, routerPlugin as Ft, useRouteQueryBoolean as G, RuntimeConfigPublic as Gn, defineContext as Gt, RouteQueryValueRaw as H, NavigationAfterHookContext as Hn, getPluginMeta as Ht, LayoutRouteMeta as I, KimeshAppContext as In, applyPlugin as It, useLoaderData as J, defineRoute as Jt, useRouteQueryNumber as K, useKimeshContext as Kt, LoaderDataKey as L, KimeshRuntimeHooks as Ln, applyPlugins as Lt, NavigationRedirect as M, SearchSchema as Mn, QueryPluginOptions as Mt, RouteMiddleware as N, TypedNavigationRedirect as Nn, getCorePlugins as Nt, MiddlewareOption as O, RouteParams as On, collectRouteHeads as Ot, TypedRouteMiddleware as P, TypedRedirectDynamic as Pn, queryPlugin as Pt, NavigationErrorContext as Q, AugmentedContext as Qt, UseMatchLoaderDataOptions as R, KimeshRuntimePlugin as Rn, applyPluginsWithParallel as Rt, defineKimeshMiddleware as S, RouteHeadContext as Sn, KmLink as St, KnownMiddleware as T, RouteLocationRaw as Tn, HeadPluginOptions as Tt, UseRouteQueryOptions as U, NavigationErrorHookContext as Un, getPluginName as Ut, RouteQueryTransform as V, KimeshRuntimePluginResult as Vn, getPluginHooks as Vt, useRouteQuery as W, NavigationHookContext as Wn, isKimeshRuntimePlugin as Wt, useRouteLoaderData as X, KIMESH_APP_CONTEXT_KEY as Xt, useMatchLoaderData as Y, CreateKimeshAppOptionsExtended as Yt, NavigationContext as Z, createKimeshApp as Zt, createMiddlewarePlugin as _, ParamValueZeroOrOne as _n, useSearch as _t, RouteRecordRaw$1 as a, FullContext as an, getKmStateKeys as at, TypedNavigateToOptions as b, RouteDefinition as bn, installLoaderGuard as bt, onBeforeRouteUpdate as c, InlineRouteMiddleware as cn, tryUseKimeshApp as ct, useRouter$1 as d, KimeshContext as dn, useRuntimeConfig as dt, BeforeLoadContextFull as en, useAfterNavigation as et, createMiddlewareExecutor as f, LoaderContext as fn, NavigateOptions as ft, MiddlewarePluginOptions as g, ParamValueZeroOrMore as gn, UseSearchReturn as gt, createMiddlewareContext as h, ParamValueOneOrMore as hn, useReactiveParams as ht, RouteLocationNormalizedLoaded$1 as i, FileRouteOptions as in, clearKmState as it, MiddlewareResult as j, RouteRecordInfo as jn, mergeHeadConfigs as jt, MiddlewareRegistry as k, RouteParamsRaw as kn, createHeadPlugin as kt, useLink as l, KIMESH_CONTEXT_KEY as ln, useKimeshApp as lt, executeMiddlewareChain as m, ParamValue as mn, useParams as mt, NavigationHookAfter as n, CreateKimeshAppOptions as nn, useNavigationMiddleware as nt, Router$1 as o, HasParams as on, hasKmState as ot, executeMiddleware as p, LoaderFn as pn, useNavigate as pt, useLayoutData as q, createFileRoute as qt, RouteLocationNormalized$1 as r, ExtractRouteParams as rn, STATE_KEY_PREFIX as rt, onBeforeRouteLeave as s, InlineMiddlewareContext as sn, useState as st, NavigationGuard as t, BeforeLoadFn as tn, useNavigationGuard as tt, useRoute$1 as u, KimeshApp as un, RuntimeConfig as ut, middlewarePlugin as v, PendingConfig as vn, LoaderGuardOptions as vt, KimeshMiddlewareNames as w, RouteInfoByName as wn, KmOutlet as wt, abortNavigation as x, RouteHeadConfig as xn, KmDeferred as xt, NavigateToOptions as y, RouteContext as yn, createLoaderGuard as yt, createLoaderDataKey as z, KimeshRuntimePluginDefinition as zn, KIMESH_PLUGIN_INDICATOR as zt };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { AugmentedContext, BeforeLoadContext, BeforeLoadContextFull, BeforeLoadFn, CreateKimeshAppOptions, CreateKimeshAppOptionsExtended, ExtractRouteParams, FileRouteOptions, FullContext, HasParams, HeadPluginOptions, InlineMiddlewareContext, InlineRouteMiddleware, KIMESH_APP_CONTEXT_KEY, KIMESH_CONTEXT_KEY, KIMESH_PLUGIN_INDICATOR, KimeshApp, KimeshAppContext, KimeshContext, KimeshMiddlewareNames, KimeshRuntimeHooks, KimeshRuntimePlugin, KimeshRuntimePluginDefinition, KimeshRuntimePluginMeta, KimeshRuntimePluginResult, KmDeferred, KmLink, KmLinkProps, KmOutlet, KnownMiddleware, LayoutLoaderData, LayoutRouteMeta, LoaderContext, LoaderDataKey, LoaderFn, LoaderGuardOptions, MiddlewareContext, MiddlewareDefinition, MiddlewareOption, MiddlewarePluginOptions, MiddlewareResult, NavigateOptions, NavigateToOptions, NavigationAfterHookContext, NavigationContext, NavigationErrorContext, NavigationErrorHookContext, NavigationGuard, NavigationHookAfter, NavigationHookContext, NavigationMiddlewareOptions, NavigationRedirect, ParamValue, ParamValueOneOrMore, ParamValueZeroOrMore, ParamValueZeroOrOne, PendingConfig, QueryPluginOptions, RouteContext, RouteDefinition, RouteHeadConfig, RouteHeadContext, RouteHeadFn, RouteInfoByName, RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteLocationRaw, RouteMiddleware, RouteNamedMap, RouteNames, RouteParams, RouteParamsRaw, RoutePath, RouteRecordInfo, RouteRecordRaw, Router, RuntimeConfig, RuntimeConfigPublic, STATE_KEY_PREFIX, SearchSchema, TypedNavigationRedirect, TypedRedirectDynamic, TypedRedirectStatic, TypedRouteMiddleware, UseMatchLoaderDataOptions, UseSearchReturn, abortNavigation, applyHeadConfigNative, applyPlugin, applyPlugins, applyPluginsWithParallel, applyTitleTemplate, clearKmState, collectRouteHeads, createFileRoute, createHeadPlugin, createKimeshApp, createLoaderDataKey, createLoaderGuard, createMiddlewareContext, createMiddlewareExecutor, createMiddlewarePlugin, defineContext, defineKimeshMiddleware, defineKimeshRuntimePlugin, defineRoute, getCorePlugins, getKmStateKeys, getPluginHooks, getPluginMeta, getPluginName, hasKmState, installLoaderGuard, isKimeshRuntimePlugin, isLayoutRouteMeta, mergeAllRouteHeads, mergeHeadConfigs, middlewarePlugin, navigateTo, onBeforeRouteLeave, onBeforeRouteUpdate, queryPlugin, routerPlugin, tryUseKimeshApp, useAfterNavigation, useKimeshApp, useKimeshContext, useLayoutData, useLink, useLoaderData, useMatchLoaderData, useNavigate, useNavigationGuard, useNavigationMiddleware, useParams, useReactiveParams, useRoute, useRouteLoaderData, useRouter, useRuntimeConfig, useSearch, useState };
|
|
1
|
+
import { $ as NavigationMiddlewareOptions, $t as BeforeLoadContext, An as RoutePath, At as mergeAllRouteHeads, B as isLayoutRouteMeta, Bn as KimeshRuntimePluginMeta, Bt as defineKimeshRuntimePlugin, C as navigateTo, Cn as RouteHeadFn, Ct as KmLinkProps, D as MiddlewareDefinition, Dn as RouteNames, Dt as applyTitleTemplate, E as MiddlewareContext, En as RouteNamedMap, Et as applyHeadConfigNative, F as LayoutLoaderData, Fn as TypedRedirectStatic, Ft as routerPlugin, G as useRouteQueryBoolean, Gn as RuntimeConfigPublic, Gt as defineContext, H as RouteQueryValueRaw, Hn as NavigationAfterHookContext, Ht as getPluginMeta, I as LayoutRouteMeta, In as KimeshAppContext, It as applyPlugin, J as useLoaderData, Jt as defineRoute, K as useRouteQueryNumber, Kt as useKimeshContext, L as LoaderDataKey, Ln as KimeshRuntimeHooks, Lt as applyPlugins, M as NavigationRedirect, Mn as SearchSchema, Mt as QueryPluginOptions, N as RouteMiddleware, Nn as TypedNavigationRedirect, Nt as getCorePlugins, O as MiddlewareOption, On as RouteParams, Ot as collectRouteHeads, P as TypedRouteMiddleware, Pn as TypedRedirectDynamic, Pt as queryPlugin, Q as NavigationErrorContext, Qt as AugmentedContext, R as UseMatchLoaderDataOptions, Rn as KimeshRuntimePlugin, Rt as applyPluginsWithParallel, S as defineKimeshMiddleware, Sn as RouteHeadContext, St as KmLink, T as KnownMiddleware, Tn as RouteLocationRaw, Tt as HeadPluginOptions, U as UseRouteQueryOptions, Un as NavigationErrorHookContext, Ut as getPluginName, V as RouteQueryTransform, Vn as KimeshRuntimePluginResult, Vt as getPluginHooks, W as useRouteQuery, Wn as NavigationHookContext, Wt as isKimeshRuntimePlugin, X as useRouteLoaderData, Xt as KIMESH_APP_CONTEXT_KEY, Y as useMatchLoaderData, Yt as CreateKimeshAppOptionsExtended, Z as NavigationContext, Zt as createKimeshApp, _ as createMiddlewarePlugin, _n as ParamValueZeroOrOne, _t as useSearch, a as RouteRecordRaw, an as FullContext, at as getKmStateKeys, bn as RouteDefinition, bt as installLoaderGuard, c as onBeforeRouteUpdate, cn as InlineRouteMiddleware, ct as tryUseKimeshApp, d as useRouter, dn as KimeshContext, dt as useRuntimeConfig, en as BeforeLoadContextFull, et as useAfterNavigation, f as createMiddlewareExecutor, fn as LoaderContext, ft as NavigateOptions, g as MiddlewarePluginOptions, gn as ParamValueZeroOrMore, gt as UseSearchReturn, h as createMiddlewareContext, hn as ParamValueOneOrMore, ht as useReactiveParams, i as RouteLocationNormalizedLoaded, in as FileRouteOptions, it as clearKmState, j as MiddlewareResult, jn as RouteRecordInfo, jt as mergeHeadConfigs, kn as RouteParamsRaw, kt as createHeadPlugin, l as useLink, ln as KIMESH_CONTEXT_KEY, lt as useKimeshApp, mn as ParamValue, mt as useParams, n as NavigationHookAfter, nn as CreateKimeshAppOptions, nt as useNavigationMiddleware, o as Router, on as HasParams, ot as hasKmState, pn as LoaderFn, pt as useNavigate, q as useLayoutData, qt as createFileRoute, r as RouteLocationNormalized, rn as ExtractRouteParams, rt as STATE_KEY_PREFIX, s as onBeforeRouteLeave, sn as InlineMiddlewareContext, st as useState, t as NavigationGuard, tn as BeforeLoadFn, tt as useNavigationGuard, u as useRoute, un as KimeshApp, ut as RuntimeConfig, v as middlewarePlugin, vn as PendingConfig, vt as LoaderGuardOptions, w as KimeshMiddlewareNames, wn as RouteInfoByName, wt as KmOutlet, x as abortNavigation, xn as RouteHeadConfig, xt as KmDeferred, y as NavigateToOptions, yn as RouteContext, yt as createLoaderGuard, z as createLoaderDataKey, zn as KimeshRuntimePluginDefinition, zt as KIMESH_PLUGIN_INDICATOR } from "./index-B2f-KCQg.mjs";
|
|
2
|
+
export { AugmentedContext, BeforeLoadContext, BeforeLoadContextFull, BeforeLoadFn, CreateKimeshAppOptions, CreateKimeshAppOptionsExtended, ExtractRouteParams, FileRouteOptions, FullContext, HasParams, HeadPluginOptions, InlineMiddlewareContext, InlineRouteMiddleware, KIMESH_APP_CONTEXT_KEY, KIMESH_CONTEXT_KEY, KIMESH_PLUGIN_INDICATOR, KimeshApp, KimeshAppContext, KimeshContext, KimeshMiddlewareNames, KimeshRuntimeHooks, KimeshRuntimePlugin, KimeshRuntimePluginDefinition, KimeshRuntimePluginMeta, KimeshRuntimePluginResult, KmDeferred, KmLink, KmLinkProps, KmOutlet, KnownMiddleware, LayoutLoaderData, LayoutRouteMeta, LoaderContext, LoaderDataKey, LoaderFn, LoaderGuardOptions, MiddlewareContext, MiddlewareDefinition, MiddlewareOption, MiddlewarePluginOptions, MiddlewareResult, NavigateOptions, NavigateToOptions, NavigationAfterHookContext, NavigationContext, NavigationErrorContext, NavigationErrorHookContext, NavigationGuard, NavigationHookAfter, NavigationHookContext, NavigationMiddlewareOptions, NavigationRedirect, ParamValue, ParamValueOneOrMore, ParamValueZeroOrMore, ParamValueZeroOrOne, PendingConfig, QueryPluginOptions, RouteContext, RouteDefinition, RouteHeadConfig, RouteHeadContext, RouteHeadFn, RouteInfoByName, RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteLocationRaw, RouteMiddleware, RouteNamedMap, RouteNames, RouteParams, RouteParamsRaw, RoutePath, RouteQueryTransform, RouteQueryValueRaw, RouteRecordInfo, RouteRecordRaw, Router, RuntimeConfig, RuntimeConfigPublic, STATE_KEY_PREFIX, SearchSchema, TypedNavigationRedirect, TypedRedirectDynamic, TypedRedirectStatic, TypedRouteMiddleware, UseMatchLoaderDataOptions, UseRouteQueryOptions, UseSearchReturn, abortNavigation, applyHeadConfigNative, applyPlugin, applyPlugins, applyPluginsWithParallel, applyTitleTemplate, clearKmState, collectRouteHeads, createFileRoute, createHeadPlugin, createKimeshApp, createLoaderDataKey, createLoaderGuard, createMiddlewareContext, createMiddlewareExecutor, createMiddlewarePlugin, defineContext, defineKimeshMiddleware, defineKimeshRuntimePlugin, defineRoute, getCorePlugins, getKmStateKeys, getPluginHooks, getPluginMeta, getPluginName, hasKmState, installLoaderGuard, isKimeshRuntimePlugin, isLayoutRouteMeta, mergeAllRouteHeads, mergeHeadConfigs, middlewarePlugin, navigateTo, onBeforeRouteLeave, onBeforeRouteUpdate, queryPlugin, routerPlugin, tryUseKimeshApp, useAfterNavigation, useKimeshApp, useKimeshContext, useLayoutData, useLink, useLoaderData, useMatchLoaderData, useNavigate, useNavigationGuard, useNavigationMiddleware, useParams, useReactiveParams, useRoute, useRouteLoaderData, useRouteQuery, useRouteQueryBoolean, useRouteQueryNumber, useRouter, useRuntimeConfig, useSearch, useState };
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as KIMESH_PLUGIN_INDICATOR, c as getPluginMeta, i as createMiddlewareContext, l as getPluginName, n as middlewarePlugin, o as defineKimeshRuntimePlugin, s as getPluginHooks, t as createMiddlewarePlugin, u as isKimeshRuntimePlugin } from "./plugin-0r5-meph.mjs";
|
|
2
2
|
import { a as defineKimeshMiddleware, i as abortNavigation, o as navigateTo, t as createMiddlewareExecutor } from "./middleware-DvCiATAB.mjs";
|
|
3
|
-
import { KeepAlive, Suspense, Transition, computed, createApp, defineComponent, h, inject, isRef, nextTick, onErrorCaptured, reactive, ref, toRef } from "vue";
|
|
4
|
-
import { RouterLink, RouterView, createRouter, createWebHashHistory, createWebHistory, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRoute as useRoute$1, useRouter, useRouter as useRouter$1 } from "vue-router";
|
|
3
|
+
import { KeepAlive, Suspense, Transition, computed, createApp, customRef, defineComponent, getCurrentInstance, h, inject, isRef, nextTick, onErrorCaptured, onScopeDispose, reactive, ref, toRef, toValue, watch } from "vue";
|
|
4
|
+
import { RouterLink, RouterView, createRouter, createWebHashHistory, createWebHistory, onBeforeRouteLeave, onBeforeRouteUpdate, routeLocationKey, routerKey, useLink, useRoute, useRoute as useRoute$1, useRouter, useRouter as useRouter$1 } from "vue-router";
|
|
5
5
|
import { QueryClient, VueQueryPlugin } from "@tanstack/vue-query";
|
|
6
6
|
import { createHooks } from "hookable";
|
|
7
7
|
|
|
@@ -1543,4 +1543,123 @@ function useAfterNavigation(callback) {
|
|
|
1543
1543
|
}
|
|
1544
1544
|
|
|
1545
1545
|
//#endregion
|
|
1546
|
-
|
|
1546
|
+
//#region src/composables/use-route-query.ts
|
|
1547
|
+
/**
|
|
1548
|
+
* WeakMap to batch query updates per router instance
|
|
1549
|
+
*/
|
|
1550
|
+
const _queue = /* @__PURE__ */ new WeakMap();
|
|
1551
|
+
/**
|
|
1552
|
+
* Safely get the router instance
|
|
1553
|
+
* Works inside Suspense boundaries by using direct injection
|
|
1554
|
+
*/
|
|
1555
|
+
function safeUseRouter() {
|
|
1556
|
+
const injectedRouter = inject(routerKey, null);
|
|
1557
|
+
if (injectedRouter) return injectedRouter;
|
|
1558
|
+
const instance = getCurrentInstance();
|
|
1559
|
+
if (!instance) throw new Error("[useRouteQuery] Must be called inside setup() or a component. If used in a composable, ensure it is called during component setup.");
|
|
1560
|
+
const router = instance.appContext.config.globalProperties.$router;
|
|
1561
|
+
if (router) return router;
|
|
1562
|
+
throw new Error("[useRouteQuery] Router not found. Make sure vue-router is installed and the component is inside <RouterView>.");
|
|
1563
|
+
}
|
|
1564
|
+
/**
|
|
1565
|
+
* Safely get the current route
|
|
1566
|
+
* Works inside Suspense boundaries by using direct injection
|
|
1567
|
+
*/
|
|
1568
|
+
function safeUseRoute() {
|
|
1569
|
+
const injectedRoute = inject(routeLocationKey, null);
|
|
1570
|
+
if (injectedRoute) return injectedRoute;
|
|
1571
|
+
return safeUseRouter().currentRoute.value;
|
|
1572
|
+
}
|
|
1573
|
+
function useRouteQuery(name, defaultValue, options = {}) {
|
|
1574
|
+
const { mode = "replace", route = safeUseRoute(), router = safeUseRouter(), transform } = options;
|
|
1575
|
+
let transformGet = (value) => value;
|
|
1576
|
+
let transformSet = (value) => value;
|
|
1577
|
+
if (typeof transform === "function") transformGet = transform;
|
|
1578
|
+
else if (transform) {
|
|
1579
|
+
if (transform.get) transformGet = transform.get;
|
|
1580
|
+
if (transform.set) transformSet = transform.set;
|
|
1581
|
+
}
|
|
1582
|
+
if (!_queue.has(router)) _queue.set(router, /* @__PURE__ */ new Map());
|
|
1583
|
+
const queriesQueue = _queue.get(router);
|
|
1584
|
+
let query = route.query[name];
|
|
1585
|
+
onScopeDispose(() => {
|
|
1586
|
+
query = void 0;
|
|
1587
|
+
});
|
|
1588
|
+
let _trigger;
|
|
1589
|
+
const proxy = customRef((track, trigger) => {
|
|
1590
|
+
_trigger = trigger;
|
|
1591
|
+
return {
|
|
1592
|
+
get() {
|
|
1593
|
+
track();
|
|
1594
|
+
return transformGet(query !== void 0 ? query : toValue(defaultValue));
|
|
1595
|
+
},
|
|
1596
|
+
set(v) {
|
|
1597
|
+
const transformed = transformSet(v);
|
|
1598
|
+
if (query === transformed) return;
|
|
1599
|
+
query = transformed === toValue(defaultValue) ? void 0 : transformed;
|
|
1600
|
+
queriesQueue.set(name, query);
|
|
1601
|
+
trigger();
|
|
1602
|
+
nextTick(() => {
|
|
1603
|
+
if (queriesQueue.size === 0) return;
|
|
1604
|
+
const newQueries = Object.fromEntries(queriesQueue.entries());
|
|
1605
|
+
queriesQueue.clear();
|
|
1606
|
+
const { params, query: currentQuery, hash } = route;
|
|
1607
|
+
router[toValue(mode)]({
|
|
1608
|
+
params,
|
|
1609
|
+
query: {
|
|
1610
|
+
...currentQuery,
|
|
1611
|
+
...newQueries
|
|
1612
|
+
},
|
|
1613
|
+
hash
|
|
1614
|
+
});
|
|
1615
|
+
});
|
|
1616
|
+
}
|
|
1617
|
+
};
|
|
1618
|
+
});
|
|
1619
|
+
watch(() => route.query[name], (v) => {
|
|
1620
|
+
const transformed = transformGet(v);
|
|
1621
|
+
if (query === transformed) return;
|
|
1622
|
+
query = v;
|
|
1623
|
+
_trigger();
|
|
1624
|
+
}, { flush: "sync" });
|
|
1625
|
+
return proxy;
|
|
1626
|
+
}
|
|
1627
|
+
/**
|
|
1628
|
+
* Shorthand for useRouteQuery with number transform
|
|
1629
|
+
*
|
|
1630
|
+
* @example
|
|
1631
|
+
* ```ts
|
|
1632
|
+
* const page = useRouteQueryNumber('page', 1)
|
|
1633
|
+
* // page.value is always a number
|
|
1634
|
+
* ```
|
|
1635
|
+
*/
|
|
1636
|
+
function useRouteQueryNumber(name, defaultValue = 0, options = {}) {
|
|
1637
|
+
return useRouteQuery(name, String(defaultValue), {
|
|
1638
|
+
...options,
|
|
1639
|
+
transform: {
|
|
1640
|
+
get: (v) => v ? Number(v) : defaultValue,
|
|
1641
|
+
set: (v) => String(v)
|
|
1642
|
+
}
|
|
1643
|
+
});
|
|
1644
|
+
}
|
|
1645
|
+
/**
|
|
1646
|
+
* Shorthand for useRouteQuery with boolean transform
|
|
1647
|
+
*
|
|
1648
|
+
* @example
|
|
1649
|
+
* ```ts
|
|
1650
|
+
* const showFilters = useRouteQueryBoolean('filters', false)
|
|
1651
|
+
* // URL: ?filters=true -> showFilters.value === true
|
|
1652
|
+
* ```
|
|
1653
|
+
*/
|
|
1654
|
+
function useRouteQueryBoolean(name, defaultValue = false, options = {}) {
|
|
1655
|
+
return useRouteQuery(name, defaultValue ? "true" : null, {
|
|
1656
|
+
...options,
|
|
1657
|
+
transform: {
|
|
1658
|
+
get: (v) => v === "true",
|
|
1659
|
+
set: (v) => v ? "true" : null
|
|
1660
|
+
}
|
|
1661
|
+
});
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
//#endregion
|
|
1665
|
+
export { KIMESH_APP_CONTEXT_KEY, KIMESH_CONTEXT_KEY, KIMESH_PLUGIN_INDICATOR, KmDeferred, KmLink, KmOutlet, STATE_KEY_PREFIX, abortNavigation, applyHeadConfigNative, applyPlugin, applyPlugins, applyPluginsWithParallel, applyTitleTemplate, clearKmState, collectRouteHeads, createFileRoute, createHeadPlugin, createKimeshApp, createLoaderDataKey, createLoaderGuard, createMiddlewareContext, createMiddlewareExecutor, createMiddlewarePlugin, defineContext, defineKimeshMiddleware, defineKimeshRuntimePlugin, defineRoute, getCorePlugins, getKmStateKeys, getPluginHooks, getPluginMeta, getPluginName, hasKmState, installLoaderGuard, isKimeshRuntimePlugin, isLayoutRouteMeta, mergeAllRouteHeads, mergeHeadConfigs, middlewarePlugin, navigateTo, onBeforeRouteLeave, onBeforeRouteUpdate, queryPlugin, routerPlugin, tryUseKimeshApp, useAfterNavigation, useKimeshApp, useKimeshContext, useLayoutData, useLink, useLoaderData, useMatchLoaderData, useNavigate, useNavigationGuard, useNavigationMiddleware, useParams, useReactiveParams, useRoute, useRouteLoaderData, useRouteQuery, useRouteQueryBoolean, useRouteQueryNumber, useRouter, useRuntimeConfig, useSearch, useState };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as MiddlewareRegistryEntry, C as navigateTo, D as MiddlewareDefinition, E as MiddlewareContext, M as NavigationRedirect, N as RouteMiddleware, O as MiddlewareOption, P as TypedRouteMiddleware, S as defineKimeshMiddleware, T as KnownMiddleware, _ as createMiddlewarePlugin, b as TypedNavigateToOptions, f as createMiddlewareExecutor, g as MiddlewarePluginOptions, h as createMiddlewareContext, j as MiddlewareResult, k as MiddlewareRegistry, m as executeMiddlewareChain, p as executeMiddleware, v as middlewarePlugin, w as KimeshMiddlewareNames, x as abortNavigation, y as NavigateToOptions } from "../index-
|
|
1
|
+
import { A as MiddlewareRegistryEntry, C as navigateTo, D as MiddlewareDefinition, E as MiddlewareContext, M as NavigationRedirect, N as RouteMiddleware, O as MiddlewareOption, P as TypedRouteMiddleware, S as defineKimeshMiddleware, T as KnownMiddleware, _ as createMiddlewarePlugin, b as TypedNavigateToOptions, f as createMiddlewareExecutor, g as MiddlewarePluginOptions, h as createMiddlewareContext, j as MiddlewareResult, k as MiddlewareRegistry, m as executeMiddlewareChain, p as executeMiddleware, v as middlewarePlugin, w as KimeshMiddlewareNames, x as abortNavigation, y as NavigateToOptions } from "../index-B2f-KCQg.mjs";
|
|
2
2
|
export { KimeshMiddlewareNames, KnownMiddleware, MiddlewareContext, MiddlewareDefinition, MiddlewareOption, MiddlewarePluginOptions, MiddlewareRegistry, MiddlewareRegistryEntry, MiddlewareResult, NavigateToOptions, NavigationRedirect, RouteMiddleware, TypedNavigateToOptions, TypedRouteMiddleware, abortNavigation, createMiddlewareContext, createMiddlewareExecutor, createMiddlewarePlugin, defineKimeshMiddleware, executeMiddleware, executeMiddlewareChain, middlewarePlugin, navigateTo };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as createMiddlewarePlugin, g as MiddlewarePluginOptions, v as middlewarePlugin } from "../index-
|
|
1
|
+
import { _ as createMiddlewarePlugin, g as MiddlewarePluginOptions, v as middlewarePlugin } from "../index-B2f-KCQg.mjs";
|
|
2
2
|
export { MiddlewarePluginOptions, createMiddlewarePlugin, middlewarePlugin as default, middlewarePlugin };
|