@planningcenter/chat-react-native 4.2.1-qa-staging.4 → 4.2.1-qa-staging.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.
- package/build/contexts/api_provider.d.ts.map +1 -1
- package/build/contexts/api_provider.js +2 -1
- package/build/contexts/api_provider.js.map +1 -1
- package/build/hooks/use_fetch_newer_messages.d.ts +2 -1
- package/build/hooks/use_fetch_newer_messages.d.ts.map +1 -1
- package/build/hooks/use_fetch_newer_messages.js +16 -9
- package/build/hooks/use_fetch_newer_messages.js.map +1 -1
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +259 -256
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/utils/cache/invalidate_refetchable_queries.d.ts +3 -0
- package/build/utils/cache/invalidate_refetchable_queries.d.ts.map +1 -0
- package/build/utils/cache/invalidate_refetchable_queries.js +8 -0
- package/build/utils/cache/invalidate_refetchable_queries.js.map +1 -0
- package/package.json +3 -3
- package/src/contexts/api_provider.tsx +2 -1
- package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +27 -0
- package/src/hooks/use_fetch_newer_messages.ts +11 -3
- package/src/screens/conversation_screen.tsx +6 -1
- package/src/utils/cache/__tests__/invalidate_refetchable_queries.test.ts +23 -0
- package/src/utils/cache/invalidate_refetchable_queries.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_provider.d.ts","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"api_provider.d.ts","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAiCxC,eAAO,MAAM,eAAe,aAO1B,CAAA;AAEF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,2CA6BlD;AAiBD,wBAAgB,eAAe,WAQ9B"}
|
|
@@ -7,6 +7,7 @@ import { appGrantsRequestArgs } from '../hooks/use_chat_permissions';
|
|
|
7
7
|
import { featuresQueryOptions } from '../hooks/use_features';
|
|
8
8
|
import { getRequestQueryKey } from '../hooks/use_suspense_api';
|
|
9
9
|
import { emitAuthRefresh } from '../utils/auth_events';
|
|
10
|
+
import { invalidateRefetchableQueries } from '../utils/cache/invalidate_refetchable_queries';
|
|
10
11
|
import { ResponseError } from '../utils/response_error';
|
|
11
12
|
import { ChatContext } from './chat_context';
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -71,7 +72,7 @@ export function ApiProvider(t0) {
|
|
|
71
72
|
}
|
|
72
73
|
emitAuthRefresh();
|
|
73
74
|
if (chatQueryClient.isFetching()) {
|
|
74
|
-
chatQueryClient
|
|
75
|
+
invalidateRefetchableQueries(chatQueryClient);
|
|
75
76
|
return;
|
|
76
77
|
}
|
|
77
78
|
chatQueryClient.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_provider.js","names":["focusManager","QueryClient","QueryClientProvider","usePrefetchQuery","React","useContext","useEffect","useRef","useApiClient","useAppState","appGrantsRequestArgs","featuresQueryOptions","getRequestQueryKey","emitAuthRefresh","ResponseError","ChatContext","jsx","_jsx","jsxs","_jsxs","apiClient","defaultQueryFn","queryKey","Error","url","data","headers","app","get","configuredRetry","failureCount","error","is429Error","status","chatQueryClient","defaultOptions","queries","queryFn","retry","ApiProvider","t0","$","_c","children","token","env","t1","sessionChanged","useSessionChanged","client","t2","t3","isFetching","
|
|
1
|
+
{"version":3,"file":"api_provider.js","names":["focusManager","QueryClient","QueryClientProvider","usePrefetchQuery","React","useContext","useEffect","useRef","useApiClient","useAppState","appGrantsRequestArgs","featuresQueryOptions","getRequestQueryKey","emitAuthRefresh","invalidateRefetchableQueries","ResponseError","ChatContext","jsx","_jsx","jsxs","_jsxs","apiClient","defaultQueryFn","queryKey","Error","url","data","headers","app","get","configuredRetry","failureCount","error","is429Error","status","chatQueryClient","defaultOptions","queries","queryFn","retry","ApiProvider","t0","$","_c","children","token","env","t1","sessionChanged","useSessionChanged","client","t2","t3","isFetching","clear","t4","t5","t6","Symbol","for","PrefetchQueries","t7","useFocusManager","appState","setFocused","value","newToken","newEnv","prevToken","prevEnv","usePrevious","isInitialLogin","tokenChanged","Boolean","access_token","envChanged","ref","current"],"sources":["../../src/contexts/api_provider.tsx"],"sourcesContent":["import {\n focusManager,\n QueryClient,\n QueryClientProvider,\n QueryKey,\n usePrefetchQuery,\n} from '@tanstack/react-query'\nimport React, { useContext, useEffect, useRef } from 'react'\nimport { ViewProps } from 'react-native'\nimport { ApiClient, useApiClient } from '../hooks/use_api_client'\nimport { useAppState } from '../hooks/use_app_state'\nimport { appGrantsRequestArgs } from '../hooks/use_chat_permissions'\nimport { featuresQueryOptions } from '../hooks/use_features'\nimport { getRequestQueryKey, RequestQueryKey } from '../hooks/use_suspense_api'\nimport { emitAuthRefresh } from '../utils/auth_events'\nimport { invalidateRefetchableQueries } from '../utils/cache/invalidate_refetchable_queries'\nimport { ResponseError } from '../utils/response_error'\nimport { ChatContext, ChatContextValue } from './chat_context'\n\nlet apiClient: ApiClient | undefined\n\nconst defaultQueryFn = ({ queryKey }: { queryKey: QueryKey }) => {\n if (!apiClient) {\n throw new Error('No token present')\n }\n\n const [url, data, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data, headers })\n}\n\nconst configuredRetry = (failureCount: number, error: any) => {\n if (is429Error(error)) return false\n\n return failureCount < 3\n}\n\nconst is429Error = (error: any): boolean => {\n return error instanceof ResponseError && error.status === 429\n}\n\nexport const chatQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: defaultQueryFn,\n retry: configuredRetry,\n },\n },\n})\n\nexport function ApiProvider({ children }: ViewProps) {\n const { token, env } = useContext(ChatContext)\n const sessionChanged = useSessionChanged({ token, env })\n\n const client = useApiClient()\n\n useEffect(() => {\n if (!sessionChanged) return\n\n emitAuthRefresh()\n\n if (chatQueryClient.isFetching()) {\n invalidateRefetchableQueries(chatQueryClient)\n return\n }\n\n chatQueryClient.clear()\n }, [sessionChanged])\n\n useEffect(() => {\n apiClient = client\n }, [client])\n\n return (\n <QueryClientProvider client={chatQueryClient}>\n <PrefetchQueries />\n {children}\n </QueryClientProvider>\n )\n}\n\n// Component to prefetch queries when the app is focused\n// This needs to live in the provider so that it can access the api client\n// and the chat query client\nconst PrefetchQueries = () => {\n const client = useApiClient()\n\n usePrefetchQuery({\n queryKey: getRequestQueryKey(appGrantsRequestArgs),\n queryFn: defaultQueryFn,\n })\n usePrefetchQuery(featuresQueryOptions(client))\n\n return null\n}\n\nexport function useFocusManager() {\n const appState = useAppState()\n\n useEffect(() => {\n focusManager.setFocused(appState === 'active')\n }, [appState])\n\n return appState\n}\n\nfunction useSessionChanged(value: Pick<ChatContextValue, 'token' | 'env'>): boolean {\n const { token: newToken, env: newEnv } = value\n const { token: prevToken, env: prevEnv } = usePrevious<typeof value>(value)\n\n const isInitialLogin = !prevToken && !!newToken\n if (isInitialLogin) return false\n\n const tokenChanged = Boolean(\n prevToken?.access_token && newToken?.access_token !== prevToken?.access_token\n )\n\n const envChanged = Boolean(prevEnv && newEnv !== prevEnv)\n\n return tokenChanged || envChanged\n}\n\nfunction usePrevious<T>(value: T): T {\n const ref = useRef<T>(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,8 @@ type Options = {
|
|
|
2
2
|
conversation_id: number;
|
|
3
3
|
reply_root_id?: string | null;
|
|
4
4
|
queryKey: unknown[];
|
|
5
|
+
onTooFarBehind?: () => void;
|
|
5
6
|
};
|
|
6
|
-
export declare const useFetchNewerMessages: ({ conversation_id, reply_root_id, queryKey }: Options) => (newestMessageId: string) => Promise<void>;
|
|
7
|
+
export declare const useFetchNewerMessages: ({ conversation_id, reply_root_id, queryKey, onTooFarBehind, }: Options) => (newestMessageId: string) => Promise<void>;
|
|
7
8
|
export {};
|
|
8
9
|
//# sourceMappingURL=use_fetch_newer_messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_fetch_newer_messages.d.ts","sourceRoot":"","sources":["../../src/hooks/use_fetch_newer_messages.ts"],"names":[],"mappings":"AASA,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"use_fetch_newer_messages.d.ts","sourceRoot":"","sources":["../../src/hooks/use_fetch_newer_messages.ts"],"names":[],"mappings":"AASA,KAAK,OAAO,GAAG;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,+DAKnC,OAAO,uBAKkB,MAAM,kBAyBjC,CAAA"}
|
|
@@ -6,16 +6,17 @@ import { getMessagesRequestArgs } from '../utils/request/get_messages';
|
|
|
6
6
|
import { useApiClient } from './use_api_client';
|
|
7
7
|
const MAX_PAGES = 5;
|
|
8
8
|
export const useFetchNewerMessages = t0 => {
|
|
9
|
-
const $ = _c(
|
|
9
|
+
const $ = _c(7);
|
|
10
10
|
const {
|
|
11
11
|
conversation_id,
|
|
12
12
|
reply_root_id,
|
|
13
|
-
queryKey
|
|
13
|
+
queryKey,
|
|
14
|
+
onTooFarBehind
|
|
14
15
|
} = t0;
|
|
15
16
|
const queryClient = useQueryClient();
|
|
16
17
|
const apiClient = useApiClient();
|
|
17
18
|
let t1;
|
|
18
|
-
if ($[0] !== apiClient || $[1] !== conversation_id || $[2] !==
|
|
19
|
+
if ($[0] !== apiClient || $[1] !== conversation_id || $[2] !== onTooFarBehind || $[3] !== queryClient || $[4] !== queryKey || $[5] !== reply_root_id) {
|
|
19
20
|
t1 = async newestMessageId => {
|
|
20
21
|
const {
|
|
21
22
|
url,
|
|
@@ -42,7 +43,12 @@ export const useFetchNewerMessages = t0 => {
|
|
|
42
43
|
}
|
|
43
44
|
queryClient.setQueryData(queryKey, prev => prependNewerPage(prev, pages));
|
|
44
45
|
const moreThanWeFetched = !!cursor;
|
|
45
|
-
if (moreThanWeFetched) {
|
|
46
|
+
if (!moreThanWeFetched) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (onTooFarBehind) {
|
|
50
|
+
onTooFarBehind();
|
|
51
|
+
} else {
|
|
46
52
|
await queryClient.invalidateQueries({
|
|
47
53
|
queryKey
|
|
48
54
|
});
|
|
@@ -50,12 +56,13 @@ export const useFetchNewerMessages = t0 => {
|
|
|
50
56
|
};
|
|
51
57
|
$[0] = apiClient;
|
|
52
58
|
$[1] = conversation_id;
|
|
53
|
-
$[2] =
|
|
54
|
-
$[3] =
|
|
55
|
-
$[4] =
|
|
56
|
-
$[5] =
|
|
59
|
+
$[2] = onTooFarBehind;
|
|
60
|
+
$[3] = queryClient;
|
|
61
|
+
$[4] = queryKey;
|
|
62
|
+
$[5] = reply_root_id;
|
|
63
|
+
$[6] = t1;
|
|
57
64
|
} else {
|
|
58
|
-
t1 = $[
|
|
65
|
+
t1 = $[6];
|
|
59
66
|
}
|
|
60
67
|
return t1;
|
|
61
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_fetch_newer_messages.js","names":["useQueryClient","useCallback","prependNewerPage","getMessagesRequestArgs","useApiClient","MAX_PAGES","useFetchNewerMessages","t0","$","_c","conversation_id","reply_root_id","queryKey","queryClient","apiClient","t1","newestMessageId","url","data","pages","cursor","length","page","chat","get","where","id_gt","order","push","meta","next","idGt","setQueryData","prev","moreThanWeFetched","invalidateQueries"],"sources":["../../src/hooks/use_fetch_newer_messages.ts"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection, MessageResource } from '../types'\nimport { prependNewerPage } from '../utils/cache/prepend_newer_page'\nimport { getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { useApiClient } from './use_api_client'\n\nconst MAX_PAGES = 5\n\ntype Options = {\n conversation_id: number\n reply_root_id?: string | null\n queryKey: unknown[]\n}\n\nexport const useFetchNewerMessages = ({
|
|
1
|
+
{"version":3,"file":"use_fetch_newer_messages.js","names":["useQueryClient","useCallback","prependNewerPage","getMessagesRequestArgs","useApiClient","MAX_PAGES","useFetchNewerMessages","t0","$","_c","conversation_id","reply_root_id","queryKey","onTooFarBehind","queryClient","apiClient","t1","newestMessageId","url","data","pages","cursor","length","page","chat","get","where","id_gt","order","push","meta","next","idGt","setQueryData","prev","moreThanWeFetched","invalidateQueries"],"sources":["../../src/hooks/use_fetch_newer_messages.ts"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useCallback } from 'react'\nimport { ApiCollection, MessageResource } from '../types'\nimport { prependNewerPage } from '../utils/cache/prepend_newer_page'\nimport { getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { useApiClient } from './use_api_client'\n\nconst MAX_PAGES = 5\n\ntype Options = {\n conversation_id: number\n reply_root_id?: string | null\n queryKey: unknown[]\n onTooFarBehind?: () => void\n}\n\nexport const useFetchNewerMessages = ({\n conversation_id,\n reply_root_id,\n queryKey,\n onTooFarBehind,\n}: Options) => {\n const queryClient = useQueryClient()\n const apiClient = useApiClient()\n\n return useCallback(\n async (newestMessageId: string) => {\n const { url, data } = getMessagesRequestArgs({ conversation_id, reply_root_id })\n const pages: ApiCollection<MessageResource>[] = []\n let cursor: string | undefined = newestMessageId\n\n while (cursor && pages.length < MAX_PAGES) {\n const page: ApiCollection<MessageResource> = await apiClient.chat.get({\n url,\n data: { ...data, where: { id_gt: cursor }, order: 'asc' },\n })\n pages.push(page)\n cursor = page.meta?.next?.idGt\n }\n\n queryClient.setQueryData<Parameters<typeof prependNewerPage<MessageResource>>[0]>(\n queryKey,\n prev => prependNewerPage(prev, pages)\n )\n const moreThanWeFetched = !!cursor\n if (!moreThanWeFetched) return\n if (onTooFarBehind) onTooFarBehind()\n else await queryClient.invalidateQueries({ queryKey })\n },\n [apiClient, conversation_id, onTooFarBehind, queryClient, queryKey, reply_root_id]\n )\n}\n"],"mappings":";AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,WAAW,QAAQ,OAAO;AAEnC,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,MAAMC,SAAS,GAAG,CAAC;AASnB,OAAO,MAAMC,qBAAqB,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC,eAAA;IAAAC,aAAA;IAAAC,QAAA;IAAAC;EAAA,IAAAN,EAK5B;EACR,MAAAO,WAAA,GAAoBd,cAAc,CAAC,CAAC;EACpC,MAAAe,SAAA,GAAkBX,YAAY,CAAC,CAAC;EAAA,IAAAY,EAAA;EAAA,IAAAR,CAAA,QAAAO,SAAA,IAAAP,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAK,cAAA,IAAAL,CAAA,QAAAM,WAAA,IAAAN,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAG,aAAA;IAG9BK,EAAA,SAAAC,eAAA;MACE;QAAAC,GAAA;QAAAC;MAAA,IAAsBhB,sBAAsB,CAAC;QAAAO,eAAA;QAAAC;MAAiC,CAAC,CAAC;MAChF,MAAAS,KAAA,GAAgD,EAAE;MAClD,IAAAC,MAAA,GAAiCJ,eAAe;MAEhD,OAAOI,MAAkC,IAAxBD,KAAK,CAAAE,MAAO,GAAGjB,SAO/B;QANC,MAAAkB,IAAA,GAA6C,MAAMR,SAAS,CAAAS,IAAK,CAAAC,GAAI,CAAC;UAAAP,GAAA;UAAAC,IAAA,EAE9D;YAAA,GAAKA,IAAI;YAAAO,KAAA,EAAS;cAAAC,KAAA,EAASN;YAAO,CAAC;YAAAO,KAAA,EAAS;UAAM;QAC1D,CAAC,CAAC;QACFR,KAAK,CAAAS,IAAK,CAACN,IAAI,CAAC;QAChBF,MAAA,CAAAA,CAAA,CAASE,IAAI,CAAAO,IAAW,EAAAC,IAAM,EAAAC,IAAA;MAAxB;MAGRlB,WAAW,CAAAmB,YAAa,CACtBrB,QAAQ,EACRsB,IAAA,IAAQhC,gBAAgB,CAACgC,IAAI,EAAEd,KAAK,CACtC,CAAC;MACD,MAAAe,iBAAA,GAA0B,CAAC,CAACd,MAAM;MAClC,IAAI,CAACc,iBAAiB;QAAA;MAAA;MACtB,IAAItB,cAAc;QAAEA,cAAc,CAAC,CAAC;MAAA;QAC/B,MAAMC,WAAW,CAAAsB,iBAAkB,CAAC;UAAAxB;QAAW,CAAC,CAAC;MAAA;IAAA,CACvD;IAAAJ,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAK,cAAA;IAAAL,CAAA,MAAAM,WAAA;IAAAN,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,OAvBIQ,EAyBN;AAAA,CACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAqCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAOjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,2CAwCpE;
|
|
1
|
+
{"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAqCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAOjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,2CAwCpE;AAyPD,UAAU,4BAA6B,SAAQ,gBAAgB;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,uBAAuB,GAAI,8DAOrC,4BAA4B,4CAqC9B,CAAA"}
|