@tanstack/react-query-devtools 4.0.0 → 4.0.5

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.
Files changed (73) hide show
  1. package/build/cjs/node_modules/@tanstack/match-sorter-utils/build/esm/index.js +757 -0
  2. package/build/cjs/node_modules/@tanstack/match-sorter-utils/build/esm/index.js.map +1 -0
  3. package/build/stats-html.html +1 -1
  4. package/build/stats.json +423 -0
  5. package/build/types/query-core/src/focusManager.d.ts +16 -0
  6. package/build/types/query-core/src/hydration.d.ts +34 -0
  7. package/build/types/query-core/src/index.d.ts +20 -0
  8. package/build/types/query-core/src/infiniteQueryBehavior.d.ts +15 -0
  9. package/build/types/query-core/src/infiniteQueryObserver.d.ts +18 -0
  10. package/build/types/query-core/src/logger.d.ts +8 -0
  11. package/build/types/query-core/src/mutation.d.ts +70 -0
  12. package/build/types/query-core/src/mutationCache.d.ts +52 -0
  13. package/build/types/query-core/src/mutationObserver.d.ts +23 -0
  14. package/build/types/query-core/src/notifyManager.d.ts +18 -0
  15. package/build/types/query-core/src/onlineManager.d.ts +16 -0
  16. package/build/types/query-core/src/queriesObserver.d.ts +23 -0
  17. package/build/types/query-core/src/query.d.ts +119 -0
  18. package/build/types/query-core/src/queryCache.d.ts +59 -0
  19. package/build/types/query-core/src/queryClient.d.ts +65 -0
  20. package/build/types/query-core/src/queryObserver.d.ts +61 -0
  21. package/build/types/query-core/src/removable.d.ts +9 -0
  22. package/build/types/query-core/src/retryer.d.ts +33 -0
  23. package/build/types/query-core/src/subscribable.d.ts +10 -0
  24. package/build/types/query-core/src/types.d.ts +417 -0
  25. package/build/types/query-core/src/utils.d.ts +99 -0
  26. package/build/types/react-query/src/Hydrate.d.ts +10 -0
  27. package/build/types/react-query/src/QueryClientProvider.d.ts +24 -0
  28. package/build/types/react-query/src/QueryErrorResetBoundary.d.ts +12 -0
  29. package/build/types/react-query/src/index.d.ts +17 -0
  30. package/build/types/react-query/src/isRestoring.d.ts +3 -0
  31. package/build/types/react-query/src/reactBatchedUpdates.d.ts +2 -0
  32. package/build/types/react-query/src/setBatchUpdatesFn.d.ts +1 -0
  33. package/build/types/react-query/src/types.d.ts +35 -0
  34. package/build/types/react-query/src/useBaseQuery.d.ts +3 -0
  35. package/build/types/react-query/src/useInfiniteQuery.d.ts +5 -0
  36. package/build/types/react-query/src/useIsFetching.d.ts +7 -0
  37. package/build/types/react-query/src/useIsMutating.d.ts +7 -0
  38. package/build/types/react-query/src/useMutation.d.ts +6 -0
  39. package/build/types/react-query/src/useQueries.d.ts +49 -0
  40. package/build/types/react-query/src/useQuery.d.ts +20 -0
  41. package/build/types/react-query/src/utils.d.ts +1 -0
  42. package/build/types/react-query-devtools/src/Explorer.d.ts +48 -0
  43. package/build/types/react-query-devtools/src/Logo.d.ts +2 -0
  44. package/build/types/react-query-devtools/src/__tests__/Explorer.test.d.ts +1 -0
  45. package/build/types/react-query-devtools/src/__tests__/devtools.test.d.ts +6 -0
  46. package/build/types/react-query-devtools/src/__tests__/utils.d.ts +22 -0
  47. package/build/types/react-query-devtools/src/devtools.d.ts +65 -0
  48. package/build/types/react-query-devtools/src/index.d.ts +1 -0
  49. package/build/types/react-query-devtools/src/noop.d.ts +2 -0
  50. package/build/types/react-query-devtools/src/styledComponents.d.ts +9 -0
  51. package/build/types/react-query-devtools/src/theme.d.ts +36 -0
  52. package/build/types/react-query-devtools/src/useLocalStorage.d.ts +1 -0
  53. package/build/types/react-query-devtools/src/useMediaQuery.d.ts +1 -0
  54. package/build/types/react-query-devtools/src/utils.d.ts +21 -0
  55. package/package.json +2 -2
  56. package/build/cjs/Explorer.js +0 -215
  57. package/build/cjs/Explorer.js.map +0 -1
  58. package/build/cjs/Logo.js +0 -66
  59. package/build/cjs/Logo.js.map +0 -1
  60. package/build/cjs/devtools.js +0 -822
  61. package/build/cjs/devtools.js.map +0 -1
  62. package/build/cjs/index.js +0 -21
  63. package/build/cjs/index.js.map +0 -1
  64. package/build/cjs/styledComponents.js +0 -113
  65. package/build/cjs/styledComponents.js.map +0 -1
  66. package/build/cjs/theme.js +0 -68
  67. package/build/cjs/theme.js.map +0 -1
  68. package/build/cjs/useLocalStorage.js +0 -81
  69. package/build/cjs/useLocalStorage.js.map +0 -1
  70. package/build/cjs/useMediaQuery.js +0 -66
  71. package/build/cjs/useMediaQuery.js.map +0 -1
  72. package/build/cjs/utils.js +0 -100
  73. package/build/cjs/utils.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import { MutationKey, MutationFilters } from '@tanstack/query-core';
2
+ import { ContextOptions } from './types';
3
+ interface Options extends ContextOptions {
4
+ }
5
+ export declare function useIsMutating(filters?: MutationFilters, options?: Options): number;
6
+ export declare function useIsMutating(mutationKey?: MutationKey, filters?: Omit<MutationFilters, 'mutationKey'>, options?: Options): number;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ import { MutationFunction, MutationKey } from '@tanstack/query-core';
2
+ import { UseMutationOptions, UseMutationResult } from './types';
3
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, TError, TVariables, TContext>): UseMutationResult<TData, TError, TVariables, TContext>;
4
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationFn: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationFn'>): UseMutationResult<TData, TError, TVariables, TContext>;
5
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'>): UseMutationResult<TData, TError, TVariables, TContext>;
6
+ export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, mutationFn?: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>): UseMutationResult<TData, TError, TVariables, TContext>;
@@ -0,0 +1,49 @@
1
+ import { QueryKey, QueryFunction } from '@tanstack/query-core';
2
+ import { UseQueryOptions, UseQueryResult } from './types';
3
+ declare type UseQueryOptionsForUseQueries<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'context'>;
4
+ declare type MAXIMUM_DEPTH = 20;
5
+ declare type GetOptions<T> = T extends {
6
+ queryFnData: infer TQueryFnData;
7
+ error?: infer TError;
8
+ data: infer TData;
9
+ } ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData> : T extends {
10
+ queryFnData: infer TQueryFnData;
11
+ error?: infer TError;
12
+ } ? UseQueryOptionsForUseQueries<TQueryFnData, TError> : T extends {
13
+ data: infer TData;
14
+ error?: infer TError;
15
+ } ? UseQueryOptionsForUseQueries<unknown, TError, TData> : T extends [infer TQueryFnData, infer TError, infer TData] ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData> : T extends [infer TQueryFnData, infer TError] ? UseQueryOptionsForUseQueries<TQueryFnData, TError> : T extends [infer TQueryFnData] ? UseQueryOptionsForUseQueries<TQueryFnData> : T extends {
16
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
17
+ select: (data: any) => infer TData;
18
+ } ? UseQueryOptionsForUseQueries<TQueryFnData, unknown, TData, TQueryKey> : T extends {
19
+ queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
20
+ } ? UseQueryOptionsForUseQueries<TQueryFnData, unknown, TQueryFnData, TQueryKey> : UseQueryOptionsForUseQueries;
21
+ declare type GetResults<T> = T extends {
22
+ queryFnData: any;
23
+ error?: infer TError;
24
+ data: infer TData;
25
+ } ? UseQueryResult<TData, TError> : T extends {
26
+ queryFnData: infer TQueryFnData;
27
+ error?: infer TError;
28
+ } ? UseQueryResult<TQueryFnData, TError> : T extends {
29
+ data: infer TData;
30
+ error?: infer TError;
31
+ } ? UseQueryResult<TData, TError> : T extends [any, infer TError, infer TData] ? UseQueryResult<TData, TError> : T extends [infer TQueryFnData, infer TError] ? UseQueryResult<TQueryFnData, TError> : T extends [infer TQueryFnData] ? UseQueryResult<TQueryFnData> : T extends {
32
+ queryFn?: QueryFunction<unknown, any>;
33
+ select: (data: any) => infer TData;
34
+ } ? UseQueryResult<TData> : T extends {
35
+ queryFn?: QueryFunction<infer TQueryFnData, any>;
36
+ } ? UseQueryResult<TQueryFnData> : UseQueryResult;
37
+ /**
38
+ * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
39
+ */
40
+ export declare type QueriesOptions<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryOptionsForUseQueries[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetOptions<Head>] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]> : unknown[] extends T ? T : T extends UseQueryOptionsForUseQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[] : UseQueryOptionsForUseQueries[];
41
+ /**
42
+ * QueriesResults reducer recursively maps type param to results
43
+ */
44
+ export declare type QueriesResults<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryResult[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]> : T extends UseQueryOptionsForUseQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? UseQueryResult<unknown extends TData ? TQueryFnData : TData, TError>[] : UseQueryResult[];
45
+ export declare function useQueries<T extends any[]>({ queries, context, }: {
46
+ queries: readonly [...QueriesOptions<T>];
47
+ context?: UseQueryOptions['context'];
48
+ }): QueriesResults<T>;
49
+ export {};
@@ -0,0 +1,20 @@
1
+ import { QueryFunction, QueryKey } from '@tanstack/query-core';
2
+ import { DefinedUseQueryResult, UseQueryOptions, UseQueryResult } from './types';
3
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'initialData'> & {
4
+ initialData?: () => undefined;
5
+ }): UseQueryResult<TData, TError>;
6
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'initialData'> & {
7
+ initialData: TQueryFnData | (() => TQueryFnData);
8
+ }): DefinedUseQueryResult<TData, TError>;
9
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'initialData'> & {
10
+ initialData?: () => undefined;
11
+ }): UseQueryResult<TData, TError>;
12
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'initialData'> & {
13
+ initialData: TQueryFnData | (() => TQueryFnData);
14
+ }): DefinedUseQueryResult<TData, TError>;
15
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn' | 'initialData'> & {
16
+ initialData?: () => undefined;
17
+ }): UseQueryResult<TData, TError>;
18
+ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn' | 'initialData'> & {
19
+ initialData: TQueryFnData | (() => TQueryFnData);
20
+ }): DefinedUseQueryResult<TData, TError>;
@@ -0,0 +1 @@
1
+ export declare function shouldThrowError<T extends (...args: any[]) => boolean>(_useErrorBoundary: boolean | T | undefined, params: Parameters<T>): boolean;
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+ export declare const Entry: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ export declare const Label: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
4
+ export declare const LabelButton: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & React.RefAttributes<HTMLButtonElement>>;
5
+ export declare const ExpandButton: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & React.RefAttributes<HTMLButtonElement>>;
6
+ export declare const Value: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
7
+ export declare const SubEntries: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export declare const Info: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
9
+ declare type ExpanderProps = {
10
+ expanded: boolean;
11
+ style?: React.CSSProperties;
12
+ };
13
+ export declare const Expander: ({ expanded, style }: ExpanderProps) => JSX.Element;
14
+ declare type Entry = {
15
+ label: string;
16
+ };
17
+ declare type RendererProps = {
18
+ HandleEntry: HandleEntryComponent;
19
+ label?: string;
20
+ value: unknown;
21
+ subEntries: Entry[];
22
+ subEntryPages: Entry[][];
23
+ type: string;
24
+ expanded: boolean;
25
+ toggleExpanded: () => void;
26
+ pageSize: number;
27
+ };
28
+ /**
29
+ * Chunk elements in the array by size
30
+ *
31
+ * when the array cannot be chunked evenly by size, the last chunk will be
32
+ * filled with the remaining elements
33
+ *
34
+ * @example
35
+ * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
36
+ */
37
+ export declare function chunkArray<T>(array: T[], size: number): T[][];
38
+ declare type Renderer = (props: RendererProps) => JSX.Element;
39
+ export declare const DefaultRenderer: Renderer;
40
+ declare type HandleEntryComponent = (props: {
41
+ entry: Entry;
42
+ }) => JSX.Element;
43
+ declare type ExplorerProps = Partial<RendererProps> & {
44
+ renderer?: Renderer;
45
+ defaultExpanded?: true | Record<string, boolean>;
46
+ };
47
+ export default function Explorer({ value, defaultExpanded, renderer, pageSize, ...rest }: ExplorerProps): JSX.Element;
48
+ export {};
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function Logo(props: any): JSX.Element;
@@ -0,0 +1,6 @@
1
+ import '@testing-library/jest-dom';
2
+ declare module 'react-error-boundary' {
3
+ interface ErrorBoundaryPropsWithFallback {
4
+ children: any;
5
+ }
6
+ }
@@ -0,0 +1,22 @@
1
+ import { MatcherFunction } from '@testing-library/dom/types/matches';
2
+ import { render } from '@testing-library/react';
3
+ import * as React from 'react';
4
+ import { ReactQueryDevtools } from '..';
5
+ import { QueryClient, QueryCache } from '@tanstack/react-query';
6
+ export declare function renderWithClient(client: QueryClient, ui: React.ReactElement, devtoolsOptions?: Parameters<typeof ReactQueryDevtools>[number]): ReturnType<typeof render>;
7
+ export declare function sleep(timeout: number): Promise<void>;
8
+ /**
9
+ * This method is useful for matching by text content when the text is splitted
10
+ * across different HTML elements which cannot be searched by normal
11
+ * *ByText methods. It returns a function that can be passed to the testing
12
+ * library's *ByText methods.
13
+ * @param textToMatch The string that needs to be matched
14
+ * @reference https://stackoverflow.com/a/56859650/8252081
15
+ */
16
+ export declare const getByTextContent: (textToMatch: string) => MatcherFunction;
17
+ interface CreateQueryClientResponse {
18
+ queryClient: QueryClient;
19
+ queryCache: QueryCache;
20
+ }
21
+ export declare const createQueryClient: () => CreateQueryClientResponse;
22
+ export {};
@@ -0,0 +1,65 @@
1
+ import * as React from 'react';
2
+ import { Query, ContextOptions } from '@tanstack/react-query';
3
+ interface DevtoolsOptions extends ContextOptions {
4
+ /**
5
+ * Set this true if you want the dev tools to default to being open
6
+ */
7
+ initialIsOpen?: boolean;
8
+ /**
9
+ * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.
10
+ */
11
+ panelProps?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
12
+ /**
13
+ * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.
14
+ */
15
+ closeButtonProps?: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
16
+ /**
17
+ * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.
18
+ */
19
+ toggleButtonProps?: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
20
+ /**
21
+ * The position of the React Query logo to open and close the devtools panel.
22
+ * Defaults to 'bottom-left'.
23
+ */
24
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
25
+ /**
26
+ * Use this to render the devtools inside a different type of container element for a11y purposes.
27
+ * Any string which corresponds to a valid intrinsic JSX element is allowed.
28
+ * Defaults to 'aside'.
29
+ */
30
+ containerElement?: string | any;
31
+ /**
32
+ * nonce for style element for CSP
33
+ */
34
+ styleNonce?: string;
35
+ }
36
+ interface DevtoolsPanelOptions extends ContextOptions {
37
+ /**
38
+ * The standard React style object used to style a component with inline styles
39
+ */
40
+ style?: React.CSSProperties;
41
+ /**
42
+ * The standard React className property used to style a component with classes
43
+ */
44
+ className?: string;
45
+ /**
46
+ * A boolean variable indicating whether the panel is open or closed
47
+ */
48
+ isOpen?: boolean;
49
+ /**
50
+ * nonce for style element for CSP
51
+ */
52
+ styleNonce?: string;
53
+ /**
54
+ * A function that toggles the open and close state of the panel
55
+ */
56
+ setIsOpen: (isOpen: boolean) => void;
57
+ /**
58
+ * Handles the opening and closing the devtools panel
59
+ */
60
+ handleDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
61
+ }
62
+ export declare function ReactQueryDevtools({ initialIsOpen, panelProps, closeButtonProps, toggleButtonProps, position, containerElement: Container, context, styleNonce, }: DevtoolsOptions): React.ReactElement | null;
63
+ export declare const sortFns: Record<string, (a: Query, b: Query) => number>;
64
+ export declare const ReactQueryDevtoolsPanel: React.ForwardRefExoticComponent<DevtoolsPanelOptions & React.RefAttributes<HTMLDivElement>>;
65
+ export {};
@@ -0,0 +1 @@
1
+ export * from './devtools';
@@ -0,0 +1,2 @@
1
+ export declare function ReactQueryDevtools(): null;
2
+ export declare function ReactQueryDevtoolsPanel(): null;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare const Panel: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
3
+ export declare const ActiveQueryPanel: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
4
+ export declare const Button: import("react").ForwardRefExoticComponent<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement>> & import("react").RefAttributes<HTMLButtonElement>>;
5
+ export declare const QueryKeys: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
6
+ export declare const QueryKey: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
7
+ export declare const Code: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
8
+ export declare const Input: import("react").ForwardRefExoticComponent<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & import("react").RefAttributes<HTMLInputElement>>;
9
+ export declare const Select: import("react").ForwardRefExoticComponent<Pick<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, "key" | keyof import("react").SelectHTMLAttributes<HTMLSelectElement>> & import("react").RefAttributes<HTMLSelectElement>>;
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ export declare const defaultTheme: {
3
+ readonly background: "#0b1521";
4
+ readonly backgroundAlt: "#132337";
5
+ readonly foreground: "white";
6
+ readonly gray: "#3f4e60";
7
+ readonly grayAlt: "#222e3e";
8
+ readonly inputBackgroundColor: "#fff";
9
+ readonly inputTextColor: "#000";
10
+ readonly success: "#00ab52";
11
+ readonly danger: "#ff0085";
12
+ readonly active: "#006bff";
13
+ readonly paused: "#8c49eb";
14
+ readonly warning: "#ffb200";
15
+ };
16
+ export declare type Theme = typeof defaultTheme;
17
+ interface ProviderProps {
18
+ theme: Theme;
19
+ children?: React.ReactNode;
20
+ }
21
+ export declare function ThemeProvider({ theme, ...rest }: ProviderProps): JSX.Element;
22
+ export declare function useTheme(): {
23
+ readonly background: "#0b1521";
24
+ readonly backgroundAlt: "#132337";
25
+ readonly foreground: "white";
26
+ readonly gray: "#3f4e60";
27
+ readonly grayAlt: "#222e3e";
28
+ readonly inputBackgroundColor: "#fff";
29
+ readonly inputTextColor: "#000";
30
+ readonly success: "#00ab52";
31
+ readonly danger: "#ff0085";
32
+ readonly active: "#006bff";
33
+ readonly paused: "#8c49eb";
34
+ readonly warning: "#ffb200";
35
+ };
36
+ export {};
@@ -0,0 +1 @@
1
+ export default function useLocalStorage<T>(key: string, defaultValue: T | undefined): [T | undefined, (newVal: T | ((prevVal: T) => T)) => void];
@@ -0,0 +1 @@
1
+ export default function useMediaQuery(query: string): boolean | undefined;
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import type { Query } from '@tanstack/react-query';
3
+ import { Theme } from './theme';
4
+ export declare const isServer: boolean;
5
+ declare type StyledComponent<T> = T extends 'button' ? React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> : T extends 'input' ? React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> : T extends 'select' ? React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> : T extends keyof HTMLElementTagNameMap ? React.HTMLAttributes<HTMLElementTagNameMap[T]> : never;
6
+ export declare function getQueryStatusColor({ queryState, observerCount, isStale, theme, }: {
7
+ queryState: Query['state'];
8
+ observerCount: number;
9
+ isStale: boolean;
10
+ theme: Theme;
11
+ }): "#3f4e60" | "#00ab52" | "#006bff" | "#8c49eb" | "#ffb200";
12
+ export declare function getQueryStatusLabel(query: Query): "fetching" | "paused" | "inactive" | "stale" | "fresh";
13
+ declare type Styles = React.CSSProperties | ((props: Record<string, any>, theme: Theme) => React.CSSProperties);
14
+ export declare function styled<T extends keyof HTMLElementTagNameMap>(type: T, newStyles: Styles, queries?: Record<string, Styles>): React.ForwardRefExoticComponent<React.PropsWithoutRef<StyledComponent<T>> & React.RefAttributes<HTMLElementTagNameMap[T]>>;
15
+ export declare function useIsMounted(): () => boolean;
16
+ /**
17
+ * Displays a string regardless the type of the data
18
+ * @param {unknown} value Value to be stringified
19
+ */
20
+ export declare const displayValue: (value: unknown) => string;
21
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-query-devtools",
3
- "version": "4.0.0",
3
+ "version": "4.0.5",
4
4
  "description": "TODO",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -15,7 +15,7 @@
15
15
  "browser": "build/umd/index.production.js",
16
16
  "types": "build/types/react-query-devtools/src/index.d.ts",
17
17
  "files": [
18
- "build",
18
+ "build/*",
19
19
  "src"
20
20
  ],
21
21
  "scripts": {
@@ -1,215 +0,0 @@
1
- /**
2
- * react-query-devtools
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
- var React = require('react');
17
- var utils = require('./utils.js');
18
-
19
- function _interopNamespace(e) {
20
- if (e && e.__esModule) return e;
21
- var n = Object.create(null);
22
- if (e) {
23
- Object.keys(e).forEach(function (k) {
24
- if (k !== 'default') {
25
- var d = Object.getOwnPropertyDescriptor(e, k);
26
- Object.defineProperty(n, k, d.get ? d : {
27
- enumerable: true,
28
- get: function () { return e[k]; }
29
- });
30
- }
31
- });
32
- }
33
- n["default"] = e;
34
- return Object.freeze(n);
35
- }
36
-
37
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
38
-
39
- const Entry = utils.styled('div', {
40
- fontFamily: 'Menlo, monospace',
41
- fontSize: '1em',
42
- lineHeight: '1.7',
43
- outline: 'none',
44
- wordBreak: 'break-word'
45
- });
46
- const Label = utils.styled('span', {
47
- color: 'white'
48
- });
49
- const LabelButton = utils.styled('button', {
50
- cursor: 'pointer',
51
- color: 'white'
52
- });
53
- const ExpandButton = utils.styled('button', {
54
- cursor: 'pointer',
55
- color: 'inherit',
56
- font: 'inherit',
57
- outline: 'inherit',
58
- background: 'transparent',
59
- border: 'none',
60
- padding: 0
61
- });
62
- const Value = utils.styled('span', (_props, theme) => ({
63
- color: theme.danger
64
- }));
65
- const SubEntries = utils.styled('div', {
66
- marginLeft: '.1em',
67
- paddingLeft: '1em',
68
- borderLeft: '2px solid rgba(0,0,0,.15)'
69
- });
70
- const Info = utils.styled('span', {
71
- color: 'grey',
72
- fontSize: '.7em'
73
- });
74
- const Expander = ({
75
- expanded,
76
- style = {}
77
- }) => /*#__PURE__*/React__namespace.createElement("span", {
78
- style: {
79
- display: 'inline-block',
80
- transition: 'all .1s ease',
81
- transform: "rotate(" + (expanded ? 90 : 0) + "deg) " + (style.transform || ''),
82
- ...style
83
- }
84
- }, "\u25B6");
85
-
86
- /**
87
- * Chunk elements in the array by size
88
- *
89
- * when the array cannot be chunked evenly by size, the last chunk will be
90
- * filled with the remaining elements
91
- *
92
- * @example
93
- * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
94
- */
95
- function chunkArray(array, size) {
96
- if (size < 1) return [];
97
- let i = 0;
98
- const result = [];
99
-
100
- while (i < array.length) {
101
- result.push(array.slice(i, i + size));
102
- i = i + size;
103
- }
104
-
105
- return result;
106
- }
107
- const DefaultRenderer = ({
108
- HandleEntry,
109
- label,
110
- value,
111
- subEntries,
112
- subEntryPages,
113
- type,
114
- expanded,
115
- toggleExpanded,
116
- pageSize
117
- }) => {
118
- const [expandedPages, setExpandedPages] = React__namespace.useState([]);
119
- return /*#__PURE__*/React__namespace.createElement(Entry, {
120
- key: label
121
- }, subEntryPages.length ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ExpandButton, {
122
- onClick: () => toggleExpanded()
123
- }, /*#__PURE__*/React__namespace.createElement(Expander, {
124
- expanded: expanded
125
- }), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntries.map(entry => /*#__PURE__*/React__namespace.createElement(HandleEntry, {
126
- key: entry.label,
127
- entry: entry
128
- }))) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
129
- key: index
130
- }, /*#__PURE__*/React__namespace.createElement(Entry, null, /*#__PURE__*/React__namespace.createElement(LabelButton, {
131
- onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
132
- }, /*#__PURE__*/React__namespace.createElement(Expander, {
133
- expanded: expanded
134
- }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(entry => /*#__PURE__*/React__namespace.createElement(HandleEntry, {
135
- key: entry.label,
136
- entry: entry
137
- }))) : null)))) : null) : /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Label, null, label, ":"), " ", /*#__PURE__*/React__namespace.createElement(Value, null, utils.displayValue(value))));
138
- };
139
-
140
- function isIterable(x) {
141
- return Symbol.iterator in x;
142
- }
143
-
144
- function Explorer({
145
- value,
146
- defaultExpanded,
147
- renderer = DefaultRenderer,
148
- pageSize = 100,
149
- ...rest
150
- }) {
151
- const [expanded, setExpanded] = React__namespace.useState(Boolean(defaultExpanded));
152
- const toggleExpanded = React__namespace.useCallback(() => setExpanded(old => !old), []);
153
- let type = typeof value;
154
- let subEntries = [];
155
-
156
- const makeProperty = sub => {
157
- const subDefaultExpanded = defaultExpanded === true ? {
158
- [sub.label]: true
159
- } : defaultExpanded == null ? void 0 : defaultExpanded[sub.label];
160
- return { ...sub,
161
- defaultExpanded: subDefaultExpanded
162
- };
163
- };
164
-
165
- if (Array.isArray(value)) {
166
- type = 'array';
167
- subEntries = value.map((d, i) => makeProperty({
168
- label: i.toString(),
169
- value: d
170
- }));
171
- } else if (value !== null && typeof value === 'object' && isIterable(value) && typeof value[Symbol.iterator] === 'function') {
172
- type = 'Iterable';
173
- subEntries = Array.from(value, (val, i) => makeProperty({
174
- label: i.toString(),
175
- value: val
176
- }));
177
- } else if (typeof value === 'object' && value !== null) {
178
- type = 'object';
179
- subEntries = Object.entries(value).map(([key, val]) => makeProperty({
180
- label: key,
181
- value: val
182
- }));
183
- }
184
-
185
- const subEntryPages = chunkArray(subEntries, pageSize);
186
- return renderer({
187
- HandleEntry: ({
188
- entry
189
- }) => /*#__PURE__*/React__namespace.createElement(Explorer, _rollupPluginBabelHelpers["extends"]({
190
- value: value,
191
- renderer: renderer
192
- }, rest, entry)),
193
- type,
194
- subEntries,
195
- subEntryPages,
196
- value,
197
- expanded,
198
- toggleExpanded,
199
- pageSize,
200
- ...rest
201
- });
202
- }
203
-
204
- exports.DefaultRenderer = DefaultRenderer;
205
- exports.Entry = Entry;
206
- exports.ExpandButton = ExpandButton;
207
- exports.Expander = Expander;
208
- exports.Info = Info;
209
- exports.Label = Label;
210
- exports.LabelButton = LabelButton;
211
- exports.SubEntries = SubEntries;
212
- exports.Value = Value;
213
- exports.chunkArray = chunkArray;
214
- exports["default"] = Explorer;
215
- //# sourceMappingURL=Explorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Explorer.js","sources":["../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '1em',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n HandleEntry: HandleEntryComponent\n label?: string\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n HandleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n\n return (\n <Entry key={label}>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryComponent = (props: { entry: Entry }) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n HandleEntry: ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","HandleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","expandedPages","setExpandedPages","useState","String","toLowerCase","map","entry","entries","index","old","includes","filter","d","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","renderer","rest","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key","_extends"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIaA,KAAK,GAAGC,YAAM,CAAC,KAAD,EAAQ;AACjCC,EAAAA,UAAU,EAAE,kBADqB;AAEjCC,EAAAA,QAAQ,EAAE,KAFuB;AAGjCC,EAAAA,UAAU,EAAE,KAHqB;AAIjCC,EAAAA,OAAO,EAAE,MAJwB;AAKjCC,EAAAA,SAAS,EAAE,YAAA;AALsB,CAAR,EAApB;MAQMC,KAAK,GAAGN,YAAM,CAAC,MAAD,EAAS;AAClCO,EAAAA,KAAK,EAAE,OAAA;AAD2B,CAAT,EAApB;MAIMC,WAAW,GAAGR,YAAM,CAAC,QAAD,EAAW;AAC1CS,EAAAA,MAAM,EAAE,SADkC;AAE1CF,EAAAA,KAAK,EAAE,OAAA;AAFmC,CAAX,EAA1B;MAKMG,YAAY,GAAGV,YAAM,CAAC,QAAD,EAAW;AAC3CS,EAAAA,MAAM,EAAE,SADmC;AAE3CF,EAAAA,KAAK,EAAE,SAFoC;AAG3CI,EAAAA,IAAI,EAAE,SAHqC;AAI3CP,EAAAA,OAAO,EAAE,SAJkC;AAK3CQ,EAAAA,UAAU,EAAE,aAL+B;AAM3CC,EAAAA,MAAM,EAAE,MANmC;AAO3CC,EAAAA,OAAO,EAAE,CAAA;AAPkC,CAAX,EAA3B;AAUA,MAAMC,KAAK,GAAGf,YAAM,CAAC,MAAD,EAAS,CAACgB,MAAD,EAASC,KAAT,MAAoB;EACtDV,KAAK,EAAEU,KAAK,CAACC,MAAAA;AADyC,CAApB,CAAT,EAApB;MAIMC,UAAU,GAAGnB,YAAM,CAAC,KAAD,EAAQ;AACtCoB,EAAAA,UAAU,EAAE,MAD0B;AAEtCC,EAAAA,WAAW,EAAE,KAFyB;AAGtCC,EAAAA,UAAU,EAAE,2BAAA;AAH0B,CAAR,EAAzB;MAMMC,IAAI,GAAGvB,YAAM,CAAC,MAAD,EAAS;AACjCO,EAAAA,KAAK,EAAE,MAD0B;AAEjCL,EAAAA,QAAQ,EAAE,MAAA;AAFuB,CAAT,EAAnB;AAUA,MAAMsB,QAAQ,GAAG,CAAC;EAAEC,QAAF;AAAYC,EAAAA,KAAK,GAAG,EAAA;AAApB,CAAD,kBACtBC,gBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,EAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,cADJ;AAELC,IAAAA,UAAU,EAAE,cAFP;AAGLC,IAAAA,SAAS,EAAYL,SAAAA,IAAAA,QAAQ,GAAG,EAAH,GAAQ,CAA5B,CAAqCC,GAAAA,OAAAA,IAAAA,KAAK,CAACI,SAAN,IAAmB,EAAxD,CAHJ;IAIL,GAAGJ,KAAAA;AAJE,GAAA;AADT,CADK,EAAA,QAAA,EAAA;;AA6BP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,UAAT,CAAuBC,KAAvB,EAAmCC,IAAnC,EAAwD;AAC7D,EAAA,IAAIA,IAAI,GAAG,CAAX,EAAc,OAAO,EAAP,CAAA;EACd,IAAIC,CAAC,GAAG,CAAR,CAAA;EACA,MAAMC,MAAa,GAAG,EAAtB,CAAA;;AACA,EAAA,OAAOD,CAAC,GAAGF,KAAK,CAACI,MAAjB,EAAyB;AACvBD,IAAAA,MAAM,CAACE,IAAP,CAAYL,KAAK,CAACM,KAAN,CAAYJ,CAAZ,EAAeA,CAAC,GAAGD,IAAnB,CAAZ,CAAA,CAAA;IACAC,CAAC,GAAGA,CAAC,GAAGD,IAAR,CAAA;AACD,GAAA;;AACD,EAAA,OAAOE,MAAP,CAAA;AACD,CAAA;AAIM,MAAMI,eAAyB,GAAG,CAAC;EACxCC,WADwC;EAExCC,KAFwC;EAGxCC,KAHwC;AAIxCC,EAAAA,UAJwC;AAKxCC,EAAAA,aALwC;EAMxCC,IANwC;AAOxCpB,EAAAA,QAPwC;EAQxCqB,cARwC;AASxCC,EAAAA,QAAAA;AATwC,CAAD,KAUnC;EACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,CAAA,GAAoCtB,gBAAK,CAACuB,QAAN,CAAyB,EAAzB,CAA1C,CAAA;AAEA,EAAA,oBACEvB,+BAAC,KAAD,EAAA;AAAO,IAAA,GAAG,EAAEc,KAAAA;AAAZ,GAAA,EACGG,aAAa,CAACR,MAAd,gBACCT,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eACEA,+BAAC,YAAD,EAAA;IAAc,OAAO,EAAE,MAAMmB,cAAc,EAAA;AAA3C,GAAA,eACEnB,+BAAC,QAAD,EAAA;AAAU,IAAA,QAAQ,EAAEF,QAAAA;GADtB,CAAA,EAAA,GAAA,EACoCgB,KADpC,EAC2C,GAD3C,eAEEd,+BAAC,IAAD,EAAA,IAAA,EACGwB,MAAM,CAACN,IAAD,CAAN,CAAaO,WAAb,EAAA,KAA+B,UAA/B,GAA4C,aAA5C,GAA4D,EAD/D,EAEGT,UAAU,CAACP,MAFd,EAEuBO,GAAAA,EAAAA,UAAU,CAACP,MAAX,GAAoB,CAApB,GAAA,OAAA,GAAA,MAFvB,CAFF,CADF,EAQGX,QAAQ,GACPmB,aAAa,CAACR,MAAd,KAAyB,CAAzB,gBACET,gBAAA,CAAA,aAAA,CAAC,UAAD,EAAA,IAAA,EACGgB,UAAU,CAACU,GAAX,CAAgBC,KAAD,iBACd3B,gBAAA,CAAA,aAAA,CAAC,WAAD,EAAA;IAAa,GAAG,EAAE2B,KAAK,CAACb,KAAxB;AAA+B,IAAA,KAAK,EAAEa,KAAAA;AAAtC,GAAA,CADD,CADH,CADF,gBAOE3B,gBAAA,CAAA,aAAA,CAAC,UAAD,EACGiB,IAAAA,EAAAA,aAAa,CAACS,GAAd,CAAkB,CAACE,OAAD,EAAUC,KAAV,kBACjB7B,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,GAAG,EAAE6B,KAAAA;AAAV,GAAA,eACE7B,gBAAC,CAAA,aAAA,CAAA,KAAD,EACE,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AACE,IAAA,OAAO,EAAE,MACPsB,gBAAgB,CAAEQ,GAAD,IACfA,GAAG,CAACC,QAAJ,CAAaF,KAAb,CAAA,GACIC,GAAG,CAACE,MAAJ,CAAYC,CAAD,IAAOA,CAAC,KAAKJ,KAAxB,CADJ,GAEI,CAAC,GAAGC,GAAJ,EAASD,KAAT,CAHU,CAAA;AAFpB,GAAA,eASE7B,+BAAC,QAAD,EAAA;AAAU,IAAA,QAAQ,EAAEF,QAAAA;AAApB,GAAA,CATF,EASqC+B,IAAAA,EAAAA,KAAK,GAAGT,QAT7C,UAS2D,GAT3D,EAUGS,KAAK,GAAGT,QAAR,GAAmBA,QAAnB,GAA8B,CAVjC,EADF,GAAA,CAAA,EAaGC,aAAa,CAACU,QAAd,CAAuBF,KAAvB,CAAA,gBACC7B,+BAAC,UAAD,EAAA,IAAA,EACG4B,OAAO,CAACF,GAAR,CAAaC,KAAD,iBACX3B,+BAAC,WAAD,EAAA;IAAa,GAAG,EAAE2B,KAAK,CAACb,KAAxB;AAA+B,IAAA,KAAK,EAAEa,KAAAA;AAAtC,GAAA,CADD,CADH,CADD,GAMG,IAnBN,CADF,CADD,CADH,CARK,GAoCL,IA5CN,CADD,gBAgDC3B,gBACE,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAC,KAAD,EAAA,IAAA,EAAQc,KAAR,EAAA,GAAA,CADF,EAC0B,GAAA,eAAAd,gBAAA,CAAA,aAAA,CAAC,KAAD,EAAA,IAAA,EAAQkC,kBAAY,CAACnB,KAAD,CAApB,CAD1B,CAjDJ,CADF,CAAA;AAwDD,EArEM;;AAoFP,SAASoB,UAAT,CAAoBC,CAApB,EAAoD;AAClD,EAAA,OAAOC,MAAM,CAACC,QAAP,IAAmBF,CAA1B,CAAA;AACD,CAAA;;AAEc,SAASG,QAAT,CAAkB;EAC/BxB,KAD+B;EAE/ByB,eAF+B;AAG/BC,EAAAA,QAAQ,GAAG7B,eAHoB;AAI/BQ,EAAAA,QAAQ,GAAG,GAJoB;EAK/B,GAAGsB,IAAAA;AAL4B,CAAlB,EAMG;AAChB,EAAA,MAAM,CAAC5C,QAAD,EAAW6C,WAAX,CAA0B3C,GAAAA,gBAAK,CAACuB,QAAN,CAAeqB,OAAO,CAACJ,eAAD,CAAtB,CAAhC,CAAA;AACA,EAAA,MAAMrB,cAAc,GAAGnB,gBAAK,CAAC6C,WAAN,CAAkB,MAAMF,WAAW,CAAEb,GAAD,IAAS,CAACA,GAAX,CAAnC,EAAoD,EAApD,CAAvB,CAAA;EAEA,IAAIZ,IAAY,GAAG,OAAOH,KAA1B,CAAA;EACA,IAAIC,UAAsB,GAAG,EAA7B,CAAA;;EAEA,MAAM8B,YAAY,GAAIC,GAAD,IAAsD;AACzE,IAAA,MAAMC,kBAAkB,GACtBR,eAAe,KAAK,IAApB,GACI;MAAE,CAACO,GAAG,CAACjC,KAAL,GAAa,IAAA;KADnB,GAEI0B,eAFJ,IAEIA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAGO,GAAG,CAACjC,KAAP,CAHrB,CAAA;IAIA,OAAO,EACL,GAAGiC,GADE;AAELP,MAAAA,eAAe,EAAEQ,kBAAAA;KAFnB,CAAA;GALF,CAAA;;AAWA,EAAA,IAAIC,KAAK,CAACC,OAAN,CAAcnC,KAAd,CAAJ,EAA0B;AACxBG,IAAAA,IAAI,GAAG,OAAP,CAAA;IACAF,UAAU,GAAGD,KAAK,CAACW,GAAN,CAAU,CAACO,CAAD,EAAI1B,CAAJ,KACrBuC,YAAY,CAAC;AACXhC,MAAAA,KAAK,EAAEP,CAAC,CAAC4C,QAAF,EADI;AAEXpC,MAAAA,KAAK,EAAEkB,CAAAA;AAFI,KAAD,CADD,CAAb,CAAA;GAFF,MAQO,IACLlB,KAAK,KAAK,IAAV,IACA,OAAOA,KAAP,KAAiB,QADjB,IAEAoB,UAAU,CAACpB,KAAD,CAFV,IAGA,OAAOA,KAAK,CAACsB,MAAM,CAACC,QAAR,CAAZ,KAAkC,UAJ7B,EAKL;AACApB,IAAAA,IAAI,GAAG,UAAP,CAAA;AACAF,IAAAA,UAAU,GAAGiC,KAAK,CAACG,IAAN,CAAWrC,KAAX,EAAkB,CAACsC,GAAD,EAAM9C,CAAN,KAC7BuC,YAAY,CAAC;AACXhC,MAAAA,KAAK,EAAEP,CAAC,CAAC4C,QAAF,EADI;AAEXpC,MAAAA,KAAK,EAAEsC,GAAAA;AAFI,KAAD,CADD,CAAb,CAAA;GAPK,MAaA,IAAI,OAAOtC,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAA3C,EAAiD;AACtDG,IAAAA,IAAI,GAAG,QAAP,CAAA;AACAF,IAAAA,UAAU,GAAGsC,MAAM,CAAC1B,OAAP,CAAeb,KAAf,CAAsBW,CAAAA,GAAtB,CAA0B,CAAC,CAAC6B,GAAD,EAAMF,GAAN,CAAD,KACrCP,YAAY,CAAC;AACXhC,MAAAA,KAAK,EAAEyC,GADI;AAEXxC,MAAAA,KAAK,EAAEsC,GAAAA;AAFI,KAAD,CADD,CAAb,CAAA;AAMD,GAAA;;AAED,EAAA,MAAMpC,aAAa,GAAGb,UAAU,CAACY,UAAD,EAAaI,QAAb,CAAhC,CAAA;AAEA,EAAA,OAAOqB,QAAQ,CAAC;AACd5B,IAAAA,WAAW,EAAE,CAAC;AAAEc,MAAAA,KAAAA;KAAH,kBACX3B,+BAAC,QAAD,EAAAwD,oCAAA,CAAA;AAAU,MAAA,KAAK,EAAEzC,KAAjB;AAAwB,MAAA,QAAQ,EAAE0B,QAAAA;KAAcC,EAAAA,IAAhD,EAA0Df,KAA1D,CAFY,CAAA;IAIdT,IAJc;IAKdF,UALc;IAMdC,aANc;IAOdF,KAPc;IAQdjB,QARc;IASdqB,cATc;IAUdC,QAVc;IAWd,GAAGsB,IAAAA;AAXW,GAAD,CAAf,CAAA;AAaD;;;;;;;;;;;;;;"}