@rpcbase/router 0.108.0 → 0.109.0
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/Link.d.ts +12 -0
- package/dist/Link.d.ts.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/lazyRoute.d.ts +23 -0
- package/dist/lazyRoute.d.ts.map +1 -0
- package/dist/navigationGuards.d.ts +18 -0
- package/dist/navigationGuards.d.ts.map +1 -0
- package/dist/queryOverlay.d.ts +13 -0
- package/dist/queryOverlay.d.ts.map +1 -0
- package/dist/routePrefetch.d.ts +22 -0
- package/dist/routePrefetch.d.ts.map +1 -0
- package/dist/routePrefetchHandles.d.ts +13 -0
- package/dist/routePrefetchHandles.d.ts.map +1 -0
- package/dist/shortcutPrefetchNavigate.d.ts +22 -0
- package/dist/shortcutPrefetchNavigate.d.ts.map +1 -0
- package/dist/useApplyMeta.d.ts +13 -0
- package/dist/useApplyMeta.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/Link.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LinkProps as RouterLinkProps } from 'react-router';
|
|
2
|
+
import { RoutePrefetchBehavior } from './routePrefetch';
|
|
3
|
+
type LinkProps = Omit<RouterLinkProps, "prefetch"> & {
|
|
4
|
+
prefetch?: RoutePrefetchBehavior;
|
|
5
|
+
prefetchData?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const Link: import('react').ForwardRefExoticComponent<Omit<RouterLinkProps, "prefetch"> & {
|
|
8
|
+
prefetch?: RoutePrefetchBehavior;
|
|
9
|
+
prefetchData?: boolean;
|
|
10
|
+
} & import('react').RefAttributes<HTMLAnchorElement>>;
|
|
11
|
+
export type { LinkProps };
|
|
12
|
+
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,SAAS,IAAI,eAAe,EAAE,MAAM,cAAc,CAAA;AAEpF,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,iBAAiB,CAAA;AAK9E,KAAK,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACnD,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAgED,eAAO,MAAM,IAAI;eAlEJ,qBAAqB;mBACjB,OAAO;qDAgJvB,CAAA;AAID,YAAY,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from 'react-router';
|
|
2
|
+
export { Link } from './Link';
|
|
3
|
+
export type { LinkProps } from './Link';
|
|
4
|
+
export * from './lazyRoute';
|
|
5
|
+
export * from './useApplyMeta';
|
|
6
|
+
export * from './navigationGuards';
|
|
7
|
+
export * from './routePrefetch';
|
|
8
|
+
export * from './queryOverlay';
|
|
9
|
+
export * from './shortcutPrefetchNavigate';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LoaderFunction } from 'react-router';
|
|
2
|
+
import { Loader } from '@rpcbase/client';
|
|
3
|
+
import { RouteHandleObject } from './routePrefetchHandles';
|
|
4
|
+
type RouteModule = {
|
|
5
|
+
default: React.ComponentType<unknown>;
|
|
6
|
+
loader?: Loader;
|
|
7
|
+
};
|
|
8
|
+
type RouteModuleImporter = () => Promise<RouteModule>;
|
|
9
|
+
type RouteOptions = {
|
|
10
|
+
handle?: unknown;
|
|
11
|
+
prefetchData?: boolean;
|
|
12
|
+
prefetchDataKey?: string;
|
|
13
|
+
};
|
|
14
|
+
type LazyRouteResult = {
|
|
15
|
+
lazy: () => Promise<{
|
|
16
|
+
Component: React.ComponentType<unknown>;
|
|
17
|
+
loader?: LoaderFunction;
|
|
18
|
+
}>;
|
|
19
|
+
handle: RouteHandleObject;
|
|
20
|
+
};
|
|
21
|
+
export declare const lazyRoute: (importer: RouteModuleImporter, opts?: RouteOptions) => LazyRouteResult;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=lazyRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyRoute.d.ts","sourceRoot":"","sources":["../src/lazyRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAoB,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG5E,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;AAErD,KAAK,YAAY,GAAG;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC;QAClB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,cAAc,CAAA;KACxB,CAAC,CAAA;IACF,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAiBD,eAAO,MAAM,SAAS,GAAI,UAAU,mBAAmB,EAAE,OAAO,YAAY,KAAG,eAyB9E,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BlockerFunction } from 'react-router';
|
|
2
|
+
export type NavigationGuard = {
|
|
3
|
+
id: string;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
priority?: number;
|
|
6
|
+
message: string;
|
|
7
|
+
blockOnSearch?: boolean;
|
|
8
|
+
shouldBlockNavigation: BlockerFunction;
|
|
9
|
+
shouldBlockUnload: boolean;
|
|
10
|
+
};
|
|
11
|
+
type NavigationGuardsListener = () => void;
|
|
12
|
+
export declare const upsertNavigationGuard: (guard: NavigationGuard) => void;
|
|
13
|
+
export declare const removeNavigationGuard: (id: string) => void;
|
|
14
|
+
export declare const getNavigationGuards: () => NavigationGuard[];
|
|
15
|
+
export declare const subscribeNavigationGuards: (listener: NavigationGuardsListener) => (() => void);
|
|
16
|
+
export declare const useRegisterNavigationGuard: (guard: NavigationGuard) => void;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=navigationGuards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationGuards.d.ts","sourceRoot":"","sources":["../src/navigationGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGnD,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,eAAe,CAAA;IACtC,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,KAAK,wBAAwB,GAAG,MAAM,IAAI,CAAA;AA2C1C,eAAO,MAAM,qBAAqB,GAAI,OAAO,eAAe,KAAG,IAS9D,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,IAAI,MAAM,KAAG,IAMlD,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAO,eAAe,EACE,CAAA;AAExD,eAAO,MAAM,yBAAyB,GACpC,UAAU,wBAAwB,KACjC,CAAC,MAAM,IAAI,CAMb,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,OAAO,eAAe,KAAG,IA+BnE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type UseQueryOverlayOptions<TOverlay extends string> = {
|
|
2
|
+
param: string;
|
|
3
|
+
parse: (value: string | null) => TOverlay | null;
|
|
4
|
+
};
|
|
5
|
+
export type QueryOverlayApi<TOverlay extends string> = {
|
|
6
|
+
value: TOverlay | null;
|
|
7
|
+
isOpen: boolean;
|
|
8
|
+
buildHref: (nextValue: TOverlay | null) => string;
|
|
9
|
+
openOverlay: (nextValue: TOverlay) => void;
|
|
10
|
+
closeOverlay: () => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const useQueryOverlay: <TOverlay extends string>({ param, parse, }: UseQueryOverlayOptions<TOverlay>) => QueryOverlayApi<TOverlay>;
|
|
13
|
+
//# sourceMappingURL=queryOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryOverlay.d.ts","sourceRoot":"","sources":["../src/queryOverlay.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,CAAC,QAAQ,SAAS,MAAM,IAAI;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,MAAM,IAAI;IACrD,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAA;IACjD,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,MAAM,EAAE,mBAGtD,sBAAsB,CAAC,QAAQ,CAAC,KAAG,eAAe,CAAC,QAAQ,CAgC7D,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type RoutePrefetchBehavior = "intent" | "render" | "none" | "viewport";
|
|
3
|
+
export type RoutePrefetchCallOptions = {
|
|
4
|
+
prefetchCode?: boolean;
|
|
5
|
+
prefetchData?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type RoutePrefetchApi = {
|
|
8
|
+
defaultPrefetch: RoutePrefetchBehavior;
|
|
9
|
+
prefetch: (href: string, opts?: RoutePrefetchCallOptions) => Promise<void>;
|
|
10
|
+
prefetchCode: (href: string) => Promise<void>;
|
|
11
|
+
prefetchData: (href: string) => Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
type RoutePrefetchProviderProps = {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
defaultPrefetch?: RoutePrefetchBehavior;
|
|
16
|
+
dataPrefetchTtlMs?: number;
|
|
17
|
+
dataPrefetchHandleKey?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare const RoutePrefetchProvider: ({ children, defaultPrefetch, dataPrefetchTtlMs, dataPrefetchHandleKey, }: RoutePrefetchProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const useRoutePrefetch: () => RoutePrefetchApi;
|
|
21
|
+
export type { RoutePrefetchProviderProps };
|
|
22
|
+
//# sourceMappingURL=routePrefetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routePrefetch.d.ts","sourceRoot":"","sources":["../src/routePrefetch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAA;AAepE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;AAE7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,qBAAqB,CAAA;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C,CAAA;AASD,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,eAAe,CAAC,EAAE,qBAAqB,CAAA;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AA4DD,eAAO,MAAM,qBAAqB,GAAI,0EAKnC,0BAA0B,4CAsJ5B,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAO,gBAAoD,CAAA;AAExF,YAAY,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const ROUTE_MODULE_IMPORTER_HANDLE = "__rpcbaseRouteModuleImporter";
|
|
2
|
+
export declare const ROUTE_PREFETCH_DATA_HANDLE = "prefetchData";
|
|
3
|
+
export type RouteHandleObject = Record<string, unknown>;
|
|
4
|
+
type RouteModuleImporter = () => Promise<unknown>;
|
|
5
|
+
export declare const getRouteModuleImporterFromHandle: (handle: unknown) => RouteModuleImporter | null;
|
|
6
|
+
export declare const getRoutePrefetchDataFromHandle: (handle: unknown, key?: string) => boolean | undefined;
|
|
7
|
+
export declare const mergeRouteHandle: (handle: unknown, { importer, prefetchData, prefetchDataKey, }: {
|
|
8
|
+
importer?: RouteModuleImporter;
|
|
9
|
+
prefetchData?: boolean;
|
|
10
|
+
prefetchDataKey?: string;
|
|
11
|
+
}) => RouteHandleObject;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=routePrefetchHandles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routePrefetchHandles.d.ts","sourceRoot":"","sources":["../src/routePrefetchHandles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAC1E,eAAO,MAAM,0BAA0B,iBAAiB,CAAA;AAExD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEvD,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAKjD,eAAO,MAAM,gCAAgC,GAAI,QAAQ,OAAO,KAAG,mBAAmB,GAAG,IAKxF,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,QAAQ,OAAO,EACf,YAAgC,KAC/B,OAAO,GAAG,SAKZ,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,OAAO,EACf,8CAIG;IACD,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,KACA,iBAYF,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type KeyboardShortcut = {
|
|
2
|
+
key: string;
|
|
3
|
+
mod?: boolean;
|
|
4
|
+
ctrl?: boolean;
|
|
5
|
+
meta?: boolean;
|
|
6
|
+
alt?: boolean;
|
|
7
|
+
shift?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type ShortcutTrigger = "keydown" | "keyup";
|
|
10
|
+
export type UseShortcutPrefetchNavigateOptions = {
|
|
11
|
+
shortcut: KeyboardShortcut;
|
|
12
|
+
getHref: () => string;
|
|
13
|
+
prefetch?: (href: string) => Promise<void> | void;
|
|
14
|
+
navigate?: (href: string) => Promise<void> | void;
|
|
15
|
+
trigger?: ShortcutTrigger;
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
preventDefault?: boolean;
|
|
18
|
+
ignoreTypingTarget?: boolean;
|
|
19
|
+
isTypingTarget?: (target: EventTarget | null) => boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare const useShortcutPrefetchNavigate: ({ shortcut, getHref, prefetch, navigate, trigger, enabled, preventDefault, ignoreTypingTarget, isTypingTarget, }: UseShortcutPrefetchNavigateOptions) => void;
|
|
22
|
+
//# sourceMappingURL=shortcutPrefetchNavigate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcutPrefetchNavigate.d.ts","sourceRoot":"","sources":["../src/shortcutPrefetchNavigate.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,CAAA;AAEjD,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjD,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,OAAO,CAAA;CACzD,CAAA;AAoCD,eAAO,MAAM,2BAA2B,GAAI,kHAUzC,kCAAkC,KAAG,IAwFvC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type MetaAttributeValue = string | number | boolean | undefined;
|
|
2
|
+
type MetaEntry = Record<string, MetaAttributeValue>;
|
|
3
|
+
type PageMeta = {
|
|
4
|
+
title: string;
|
|
5
|
+
meta: MetaEntry[];
|
|
6
|
+
};
|
|
7
|
+
export declare const useApplyMeta: ({ defaultTitle, defaultMeta, pagesMeta }?: {
|
|
8
|
+
defaultTitle?: string;
|
|
9
|
+
defaultMeta?: MetaEntry[];
|
|
10
|
+
pagesMeta?: Record<string, PageMeta>;
|
|
11
|
+
}) => void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=useApplyMeta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApplyMeta.d.ts","sourceRoot":"","sources":["../src/useApplyMeta.tsx"],"names":[],"mappings":"AAIA,KAAK,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAC/D,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAEnD,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB,CAAA;AAGD,eAAO,MAAM,YAAY,GAAI,2CAI1B;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAChC,SAiDL,CAAA"}
|