@ethlete/query 0.1.0-next.1 → 0.1.0-next.11
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/esm2020/lib/auth/auth-provider.types.mjs +1 -1
- package/esm2020/lib/auth/basic-auth-provider.mjs +5 -5
- package/esm2020/lib/auth/bearer-auth-provider.mjs +12 -9
- package/esm2020/lib/auth/custom-header-auth-provider.mjs +4 -4
- package/esm2020/lib/directives/infinity-query-trigger.directive.mjs +3 -3
- package/esm2020/lib/directives/infinity-query.directive.mjs +36 -11
- package/esm2020/lib/directives/query.directive.mjs +17 -17
- package/esm2020/lib/infinite-query/infinity-query.mjs +11 -11
- package/esm2020/lib/infinite-query/infinity-query.types.mjs +1 -1
- package/esm2020/lib/query/query.mjs +49 -23
- package/esm2020/lib/query/query.types.mjs +1 -1
- package/esm2020/lib/query/query.utils.mjs +17 -2
- package/esm2020/lib/query-client/query-client.mjs +7 -7
- package/esm2020/lib/query-client/query-client.types.mjs +1 -1
- package/esm2020/lib/query-form/query-form.mjs +10 -7
- package/esm2020/lib/query-form/query-form.types.mjs +1 -1
- package/esm2020/lib/query-form/query-form.utils.mjs +21 -1
- package/esm2020/lib/request/request.mjs +5 -3
- package/esm2020/lib/request/request.types.mjs +1 -1
- package/esm2020/lib/request/request.util.mjs +24 -6
- package/esm2020/lib/utils/deep-freeze.util.mjs +5 -1
- package/fesm2015/ethlete-query.mjs +240 -117
- package/fesm2015/ethlete-query.mjs.map +1 -1
- package/fesm2020/ethlete-query.mjs +231 -114
- package/fesm2020/ethlete-query.mjs.map +1 -1
- package/lib/auth/auth-provider.types.d.ts +11 -1
- package/lib/directives/infinity-query-trigger.directive.d.ts +1 -1
- package/lib/directives/infinity-query.directive.d.ts +7 -2
- package/lib/directives/query.directive.d.ts +1 -1
- package/lib/infinite-query/infinity-query.types.d.ts +7 -4
- package/lib/query/query.d.ts +5 -3
- package/lib/query/query.types.d.ts +17 -14
- package/lib/query/query.utils.d.ts +8 -3
- package/lib/query-client/query-client.d.ts +9 -9
- package/lib/query-client/query-client.types.d.ts +9 -9
- package/lib/query-form/query-form.d.ts +1 -1
- package/lib/query-form/query-form.types.d.ts +13 -3
- package/lib/query-form/query-form.utils.d.ts +5 -0
- package/lib/request/request.types.d.ts +12 -10
- package/lib/request/request.util.d.ts +2 -2
- package/lib/utils/deep-freeze.util.d.ts +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethlete-query.mjs","sources":["../../../../libs/query/src/lib/auth/custom-header-auth-provider.ts","../../../../libs/query/src/lib/auth/basic-auth-provider.ts","../../../../libs/query/src/lib/logger/logger.ts","../../../../libs/query/src/lib/request/request.util.ts","../../../../libs/query/src/lib/request/request.ts","../../../../libs/query/src/lib/auth/auth-provider.utils.ts","../../../../libs/query/src/lib/auth/bearer-auth-provider.ts","../../../../libs/query/src/lib/gql/gql.ts","../../../../libs/query/src/lib/utils/deep-freeze.util.ts","../../../../libs/query/src/lib/utils/def.util.ts","../../../../libs/query/src/lib/query/query.utils.ts","../../../../libs/query/src/lib/query/query.ts","../../../../libs/query/src/lib/directives/query.directive.ts","../../../../libs/query/src/lib/infinite-query/infinity-query.ts","../../../../libs/query/src/lib/infinite-query/infinity-query.utils.ts","../../../../libs/query/src/lib/directives/infinity-query.directive.ts","../../../../libs/query/src/lib/directives/infinity-query-trigger.directive.ts","../../../../libs/query/src/lib/query-store/query-store.ts","../../../../libs/query/src/lib/query-client/query-client.utils.ts","../../../../libs/query/src/lib/query-client/query-client.ts","../../../../libs/query/src/lib/query-form/query-form.ts","../../../../libs/query/src/lib/query-form/query-form.utils.ts","../../../../libs/query/src/ethlete-query.ts"],"sourcesContent":["import { QueryClient } from '../query-client';\nimport { AuthProvider, AuthProviderCustomHeaderConfig } from './auth-provider.types';\n\nexport class CustomHeaderAuthProvider implements AuthProvider {\n get header() {\n return { [this._config.name]: this._config.value };\n }\n\n queryClient: QueryClient | null = null;\n\n constructor(private _config: AuthProviderCustomHeaderConfig) {}\n\n cleanUp(): void {\n // noop\n }\n}\n","import { QueryClient } from '../query-client';\nimport { AuthProvider, AuthProviderBasicConfig } from './auth-provider.types';\n\nexport class BasicAuthProvider implements AuthProvider {\n get header() {\n return { Authorization: `Basic ${this._basicAuthString}` };\n }\n\n private get _basicAuthString() {\n return btoa(`${this._config.username}:${this._config.password}`);\n }\n\n queryClient: QueryClient | null = null;\n\n constructor(private _config: AuthProviderBasicConfig) {}\n\n cleanUp(): void {\n // noop\n }\n}\n","export const buildErrorMessage = (code: string, message: string) => `[@ethlete\\\\query:${code}] ${message}`;\n\nexport class QueryError extends Error {\n data?: unknown;\n\n constructor(code: string, message: string, data?: unknown) {\n super(buildErrorMessage(code, message));\n this.name = 'QueryError';\n this.data = data;\n }\n}\n\nexport const invalidBaseRouteError = (data: unknown) =>\n new QueryError('001', 'The baseRoute must not end with a slash', data);\n\nexport const invalidRouteError = (data: unknown) => new QueryError('002', 'The route must start with a slash', data);\n\nexport const pathParamsMissingInRouteFunctionError = (data: unknown) =>\n new QueryError('003', 'The route is a function but pathParams are missing', data);\n\nexport const queryStateAlreadyHasKeyError = (data: unknown) =>\n new QueryError('004', 'The query state already contains the provided key', data);\n\nexport const queryStateDoesNotContainKeyError = (data: unknown) =>\n new QueryError('005', 'The query state does not contain the provided key', data);\n\nexport const queryStateCannotTransformError = (data: unknown) =>\n new QueryError('006', 'The query state cannot be transformed because it is not loading', data);\n\nexport const invalidBodyError = (data: unknown) => new QueryError('007', 'The body is not valid or upsupported', data);\n","import {\n invalidBaseRouteError,\n invalidBodyError,\n invalidRouteError,\n pathParamsMissingInRouteFunctionError,\n} from '../logger';\nimport { QueryParams, Params, RequestError, ParamArray, UnfilteredParamPrimitive, Method } from './request.types';\n\nexport const isRequestError = (error: unknown): error is RequestError =>\n error instanceof Object && 'code' in error && 'message' in error;\n\nexport const isAbortRequestError = (error: unknown): error is RequestError =>\n isRequestError(error) && error.code === -1;\n\nexport const buildRoute = (options: {\n base: string;\n route: ((args: Record<string, unknown>) => string) | string | null | undefined;\n pathParams?: Record<string, unknown>;\n queryParams?: QueryParams;\n}) => {\n if (options.base.endsWith('/')) {\n throw invalidBaseRouteError(options.base);\n }\n\n let route: string | null = null;\n\n if (typeof options.route === 'function') {\n if (!options.pathParams) {\n throw pathParamsMissingInRouteFunctionError(options.route({}));\n }\n\n route = options.route(options.pathParams);\n } else {\n route = options.route ?? null;\n }\n\n if (route && !route.startsWith('/')) {\n throw invalidRouteError(route);\n }\n\n if (options.queryParams) {\n const queryString = buildQueryString(options.queryParams);\n\n if (queryString) {\n route = route ? `${route}?${queryString}` : `/?${queryString}`;\n }\n }\n\n return `${options.base}${route ?? ''}`;\n};\n\nexport const buildQueryString = (params: QueryParams) => {\n const validParams = filterInvalidParams(params);\n\n const queryString = Object.keys(validParams)\n .map((key) =>\n Array.isArray(validParams[key])\n ? buildQueryArrayString(key, validParams[key] as ParamArray)\n : `${key}=${encodeURIComponent(validParams[key] as string | number | boolean)}`,\n )\n .join('&');\n\n return queryString || null;\n};\n\nexport const buildQueryArrayString = (key: string, array: ParamArray) => {\n const uriBrackets = encodeURIComponent('[]');\n\n return array\n .slice()\n .map((item) => `${key}${uriBrackets}=${encodeURIComponent(item as string | number | boolean)}`)\n .join('&');\n};\n\nexport const isFetchResponse = (response: unknown): response is Response =>\n typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'statusText' in response &&\n 'json' in response &&\n typeof (response as Response)['json'] === 'function';\n\nexport const filterInvalidParams = (params: QueryParams) => {\n const filteredParams: Params = Object.entries(params)\n .map(([key, value]) => {\n if (!Array.isArray(value)) {\n return [key, value];\n }\n\n return [key, value.filter((v) => isParamValid(v))];\n })\n .filter(([, value]) => isParamValid(value as UnfilteredParamPrimitive))\n .reduce((acc, [key, value]) => ({ ...acc, [key as string]: value }), {});\n\n return filteredParams;\n};\n\nexport const isParamValid = (primitive: UnfilteredParamPrimitive) => {\n if (primitive === undefined || primitive === null || primitive === '') {\n return false;\n }\n\n if (typeof primitive === 'string' && primitive.trim() === '') {\n return false;\n }\n\n if (typeof primitive === 'number' && isNaN(primitive)) {\n return false;\n }\n\n return true;\n};\n\nexport const extractExpiresInSeconds = (headers: Headers) => {\n const cacheControl = headers.get('cache-control');\n const age = headers.get('age');\n const expires = headers.get('expires');\n\n // In seconds\n let expiresIn: number | null = null;\n let maxAge: number | null = null;\n\n if (cacheControl?.includes('no-cache')) {\n return null;\n }\n\n if (cacheControl?.includes('max-age')) {\n maxAge = parseInt(cacheControl.split('max-age=')[1]);\n } else if (cacheControl?.includes('s-maxage')) {\n maxAge = parseInt(cacheControl.split('s-maxage=')[1]);\n }\n\n if (maxAge && age) {\n const ageSeconds = parseInt(age);\n\n expiresIn = maxAge - ageSeconds;\n } else if (expires) {\n // Used by some apis to tell the response will never expire\n // In this case we let the response expire after 1 hour\n if (expires === '-1') {\n expiresIn = 3600;\n } else {\n const expiresDate = new Date(expires);\n\n // check if the date is valid\n if (expiresDate.toString() !== 'Invalid Date') {\n expiresIn = Math.floor((expiresDate.getTime() - Date.now()) / 1000);\n }\n }\n }\n\n return expiresIn;\n};\n\nexport const buildTimestampFromSeconds = (seconds: number | null) => {\n if (seconds === null) {\n return null;\n }\n\n return new Date(Date.now() + seconds * 1000).getTime();\n};\n\nexport const buildRequestError = async <ErrorResponse = unknown>(error: unknown) => {\n if (error instanceof DOMException && error.code === error.ABORT_ERR) {\n const err: RequestError<null> = {\n code: -1,\n message: 'Request aborted',\n detail: null,\n raw: error,\n };\n\n return err;\n }\n\n if (error instanceof SyntaxError) {\n const err: RequestError<null> = {\n code: -3,\n message: 'Syntax error',\n detail: null,\n raw: error,\n };\n\n return err;\n }\n\n if (error instanceof Error) {\n const err: RequestError<null> = {\n code: -2,\n message: `${error.name}: ${error.message}`,\n detail: null,\n raw: error,\n };\n\n return err;\n }\n\n if (isFetchResponse(error)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let detail: any;\n\n try {\n detail = await error.text();\n } catch (err) {\n detail = null;\n }\n\n const err: RequestError<ErrorResponse> = {\n code: error.status,\n message: error.statusText,\n detail,\n raw: error,\n };\n\n return err;\n }\n\n const err: RequestError<null> = {\n code: 0,\n message: 'Unknown error',\n detail: null,\n raw: error,\n };\n\n return err;\n};\n\nexport const buildBody = (body: unknown) => {\n if (body === undefined || body === null) {\n return null;\n }\n\n if (typeof body === 'string') {\n return body;\n }\n\n if (typeof body === 'object') {\n return JSON.stringify(body);\n }\n\n if (body instanceof FormData) {\n return body;\n }\n\n throw invalidBodyError(body);\n};\n\nexport const transformMethod = (method: Method) => {\n if (method === 'GQL_QUERY' || method === 'GQL_MUTATE') {\n return 'POST';\n }\n\n return method;\n};\n\nexport const guessContentType = (body: unknown) => {\n if (body === null || body === undefined) {\n return null;\n }\n\n if (typeof body === 'string') {\n return 'text/plain';\n }\n\n if (body instanceof FormData) {\n return 'multipart/form-data';\n }\n\n if (typeof body === 'object') {\n return 'application/json';\n }\n\n return null;\n};\n","import { CacheAdapterFn } from './request.types';\nimport { buildRequestError, buildTimestampFromSeconds, extractExpiresInSeconds } from './request.util';\n\nexport const request = async <Response = unknown>(options: {\n route: string;\n init?: RequestInit;\n cacheAdapter?: CacheAdapterFn;\n}) => {\n try {\n const response = await fetch(options.route, options.init);\n\n if (!response.ok) {\n throw response;\n }\n\n const data = (await response.json()) as Response;\n\n const expiresInSeconds = options.cacheAdapter\n ? options.cacheAdapter(response.headers)\n : extractExpiresInSeconds(response.headers);\n\n const expiresInTimestamp = buildTimestampFromSeconds(expiresInSeconds);\n\n return { data, expiresInTimestamp };\n } catch (error) {\n throw await buildRequestError(error);\n }\n};\n","import { AuthProvider } from './auth-provider.types';\nimport { BasicAuthProvider } from './basic-auth-provider';\nimport { BearerAuthProvider } from './bearer-auth-provider';\nimport { CustomHeaderAuthProvider } from './custom-header-auth-provider';\n\nexport const isBasicAuthProvider = (authProvider: AuthProvider): authProvider is BasicAuthProvider =>\n authProvider instanceof BasicAuthProvider;\n\nexport const isBearerAuthProvider = (authProvider: AuthProvider): authProvider is BearerAuthProvider =>\n authProvider instanceof BearerAuthProvider;\n\nexport const isCustomHeaderAuthProvider = (authProvider: AuthProvider): authProvider is CustomHeaderAuthProvider =>\n authProvider instanceof CustomHeaderAuthProvider;\n\nexport const decryptBearer = <Result = Record<string, unknown>>(token: string) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''),\n );\n\n return JSON.parse(jsonPayload) as Result;\n } catch (error) {\n console.error(`Invalid bearer token: ${token}`, error);\n\n return null;\n }\n};\n","import { Subject, Subscription, timer } from 'rxjs';\nimport { QueryClient } from '../query-client';\nimport { buildBody, buildRequestError, buildRoute, request, RequestError } from '../request';\nimport {\n AuthBearerRefreshStrategy,\n AuthProvider,\n AuthProviderBearerConfig,\n BearerRefreshConfig,\n TokenResponse,\n} from './auth-provider.types';\nimport { decryptBearer } from './auth-provider.utils';\n\nexport class BearerAuthProvider implements AuthProvider {\n private _token: string;\n private _refreshToken: string | null = null;\n private _refreshTimerSubscription: Subscription | null = null;\n\n get header() {\n return { Authorization: `Bearer ${this._token}` };\n }\n\n queryClient: QueryClient | null = null;\n\n onRefreshInitiation$ = new Subject<void>();\n onRefreshSuccess$ = new Subject<TokenResponse>();\n onRefreshFailure$ = new Subject<RequestError>();\n\n constructor(private _config: AuthProviderBearerConfig) {\n this._token = _config.token;\n this._refreshToken = _config.refreshConfig?.token ?? null;\n\n if (this._config.refreshConfig) {\n this._setupRefresh(this._config.refreshConfig);\n }\n }\n\n cleanUp(): void {\n this._refreshTimerSubscription?.unsubscribe();\n this._refreshTimerSubscription = null;\n }\n\n private _setupRefresh(config: BearerRefreshConfig) {\n const bearer = decryptBearer(this._token);\n\n if (!bearer) {\n return;\n }\n\n const expiresInPropertyName = config.expiresInPropertyName || 'exp';\n const expiresIn = bearer[expiresInPropertyName] as number | undefined;\n const fiveMinutes = 5 * 60 * 1000;\n\n if (expiresIn === undefined) {\n throw new Error(`Bearer token does not contain an '${expiresInPropertyName}' property`);\n }\n\n const remainingTime = new Date(expiresIn * 1000).getTime() - fiveMinutes - new Date().getTime();\n\n const strategy = config.strategy ?? AuthBearerRefreshStrategy.BeforeExpiration;\n\n switch (strategy) {\n case AuthBearerRefreshStrategy.BeforeExpiration:\n this._refreshTimerSubscription = timer(remainingTime).subscribe(() => this._refresh(config));\n break;\n }\n }\n\n private async _refresh(config: BearerRefreshConfig) {\n if (!this._refreshToken) {\n throw new Error('No refresh token found');\n }\n\n if (!this.queryClient) {\n throw new Error('Query client instance is null');\n }\n\n const { method, route, bodyAdapter, responseAdapter } = config;\n\n const fullRoute = buildRoute({\n base: this.queryClient.config.baseRoute,\n route,\n });\n\n const body = bodyAdapter ? bodyAdapter(this._refreshToken) : { refreshToken: this._refreshToken };\n\n this.onRefreshInitiation$.next();\n\n try {\n const result = await request({\n route: fullRoute,\n init: { body: buildBody(body), method },\n });\n\n const tokens = responseAdapter ? responseAdapter(result.data) : (result.data as TokenResponse);\n\n if (!tokens.token) {\n throw new Error('Token not found in response');\n }\n\n if (!tokens.refreshToken) {\n throw new Error('Refresh token not found in response');\n }\n\n this._token = tokens.token;\n this._refreshToken = tokens.refreshToken;\n\n this.onRefreshSuccess$.next(tokens);\n } catch (error) {\n if (error instanceof Error) {\n this.onRefreshFailure$.next(await buildRequestError(error));\n } else {\n this.onRefreshFailure$.next(error as RequestError);\n }\n }\n }\n}\n","const getOpName = /(query|mutation) ?([\\w\\d-_]+)? ?\\(.*?\\)? \\{/;\n\nexport const transformGql = (str: string) => {\n str = Array.isArray(str) ? str.join('') : str;\n const name = getOpName.exec(str);\n return function (variables: Record<string, unknown> | null | undefined) {\n const data: Record<string, unknown> = { query: str };\n if (variables) data['variables'] = JSON.stringify(variables);\n if (name && name.length) {\n const operationName = name[2];\n if (operationName) data['operationName'] = name[2];\n }\n return JSON.stringify(data);\n };\n};\n\nexport const gql = (strings: TemplateStringsArray, ...values: string[]) => {\n const str = strings.reduce((acc, cur, i) => {\n return acc + cur + (values[i] || '');\n }, '');\n return str;\n};\n","export const deepFreeze = <T extends Record<string, unknown>>(object: T) => {\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing self\n\n for (const name of propNames) {\n const value = object[name];\n\n if (value && typeof value === 'object') {\n deepFreeze(value as T);\n }\n }\n\n return Object.freeze(object);\n};\n","/**\n * Dummy function for providing types while not breaking inference.\n * **This function always returns null.**\n * @see https://github.com/microsoft/TypeScript/issues/26242\n * @returns null\n */\nexport const def = <Data>() => null as unknown as Data;\n","import { filter, Observable, takeWhile } from 'rxjs';\nimport { ResponseTransformerType } from '../query-client';\nimport { RequestHeaders } from '../request';\nimport {\n BaseArguments,\n Cancelled,\n Failure,\n GqlQueryConfig,\n Loading,\n Prepared,\n QueryState,\n QueryStateData,\n QueryStateRawData,\n QueryStateType,\n RouteType,\n Success,\n} from './query.types';\n\nexport function filterSuccess() {\n return function <T extends QueryState, Response extends QueryStateData<T>, RawResponse extends QueryStateRawData<T>>(\n source: Observable<T>,\n ) {\n return source.pipe(filter((value) => isQueryStateSuccess(value))) as Observable<Success<Response, RawResponse>>;\n };\n}\n\nexport function filterFailure() {\n return function <T extends QueryState>(source: Observable<T>) {\n return source.pipe(filter((value) => isQueryStateFailure(value))) as Observable<Failure>;\n };\n}\n\nexport function takeUntilResponse() {\n return function <T extends QueryState>(source: Observable<T>) {\n return source.pipe(takeWhile((value) => isQueryStateLoading(value), true));\n };\n}\n\nexport const isQueryStateLoading = (state: QueryState | null | undefined): state is Loading =>\n state?.type === QueryStateType.Loading;\n\nexport const isQueryStateSuccess = (state: QueryState | null | undefined): state is Success =>\n state?.type === QueryStateType.Success;\n\nexport const isQueryStateFailure = (state: QueryState | null | undefined): state is Failure =>\n state?.type === QueryStateType.Failure;\n\nexport const isQueryStateCancelled = (state: QueryState | null | undefined): state is Cancelled =>\n state?.type === QueryStateType.Cancelled;\n\nexport const isQueryStatePrepared = (state: QueryState | null | undefined): state is Prepared =>\n state?.type === QueryStateType.Prepared;\n\nexport const mergeHeaders = (...headers: Array<RequestHeaders | null | undefined>) => {\n return headers.reduce((acc, headers) => {\n if (!headers) {\n return acc;\n }\n\n return {\n ...acc,\n ...headers,\n };\n }, {});\n};\n\nexport const isGqlQueryConfig = <\n Response,\n Arguments extends BaseArguments | undefined,\n Route extends RouteType<Arguments> | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> | undefined,\n>(\n config: unknown,\n): config is GqlQueryConfig<Route, Response, Arguments, ResponseTransformer> => {\n if (!config || typeof config !== 'object' || Array.isArray(config)) {\n return false;\n }\n\n if (!('query' in config)) {\n return false;\n }\n\n return true;\n};\n","import { BehaviorSubject, interval, Subscription, takeUntil } from 'rxjs';\nimport { transformGql } from '../gql';\nimport { DefaultResponseTransformer, QueryClient, ResponseTransformerType } from '../query-client';\nimport {\n buildBody,\n guessContentType,\n isAbortRequestError,\n isRequestError,\n Method as MethodType,\n request,\n transformMethod,\n} from '../request';\nimport { deepFreeze } from '../utils';\nimport {\n BaseArguments,\n GqlQueryConfig,\n PollConfig,\n QueryConfig,\n QueryState,\n QueryStateMeta,\n QueryStateType,\n RouteType,\n RunQueryOptions,\n} from './query.types';\nimport { isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, mergeHeaders } from './query.utils';\n\nexport class Query<\n Response,\n Arguments extends BaseArguments | undefined,\n Route extends RouteType<Arguments>,\n Method extends MethodType,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n> {\n private _currentId = 0;\n private _abortController = new AbortController();\n private _pollingSubscription: Subscription | null = null;\n\n private readonly _state$: BehaviorSubject<QueryState<ReturnType<ResponseTransformer>, Response>>;\n\n private get _nextId() {\n return this._currentId++;\n }\n\n get state$() {\n return this._state$.asObservable();\n }\n\n get state() {\n return this._state$.value;\n }\n\n get isExpired() {\n if (!isQueryStateSuccess(this.state)) {\n return false;\n }\n\n const ts = this.state.meta.expiresAt;\n\n if (!ts) {\n return true;\n }\n\n return ts < Date.now();\n }\n\n constructor(\n private _client: QueryClient,\n private _queryConfig:\n | QueryConfig<Route, Response, Arguments, ResponseTransformer>\n | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>,\n private _route: Route,\n private _args: Arguments | undefined,\n ) {\n this._state$ = new BehaviorSubject<QueryState<ReturnType<ResponseTransformer>, Response>>({\n type: QueryStateType.Prepared,\n meta: { id: this._currentId },\n });\n }\n\n clone() {\n return this._client.fetch<Route, Response, Arguments, Method, ResponseTransformer>(this._queryConfig);\n }\n\n execute<ComputedResponse extends ReturnType<ResponseTransformer>>(options?: RunQueryOptions) {\n if (!this.isExpired && !options?.skipCache && isQueryStateSuccess(this.state)) {\n return this;\n }\n\n if (this._queryConfig.secure && !this._client.authProvider) {\n throw new Error('Cannot execute secure query without auth provider');\n }\n\n const id = this._nextId;\n\n if (isQueryStateLoading(this._state$.value)) {\n this.abort();\n }\n\n const meta = deepFreeze({ id });\n\n this._state$.next({\n type: QueryStateType.Loading,\n meta,\n });\n\n let body: string | FormData | null = null;\n let contentType: string | null = null;\n\n if (isGqlQueryConfig(this._queryConfig)) {\n const queryTemplate = this._queryConfig.query;\n const query = transformGql(queryTemplate);\n\n contentType = 'application/json';\n body = query(this._args?.variables);\n } else {\n body = buildBody(this._args?.body);\n contentType = guessContentType(this._args?.body);\n }\n\n let authHeader: Record<string, string> | null = null;\n\n if (this._queryConfig.secure) {\n const header = this._client.authProvider?.header;\n\n if (header) {\n authHeader = header;\n }\n } else if (this._client.authProvider?.header) {\n if (this._queryConfig.secure === undefined || this._queryConfig.secure) {\n authHeader = this._client.authProvider.header;\n }\n }\n\n let headers = mergeHeaders(authHeader, this._args?.headers);\n\n if (contentType && !headers?.['Content-Type'] && !headers?.['content-type']) {\n if (headers) {\n headers['Content-Type'] = contentType;\n } else {\n headers = {\n 'Content-Type': contentType,\n };\n }\n }\n\n request<Response>({\n route: this._route,\n init: {\n method: transformMethod(this._queryConfig.method),\n signal: this._abortController.signal,\n body,\n headers: headers || undefined,\n },\n cacheAdapter: this._client.config.request?.cacheAdapter,\n })\n .then((response) => {\n const isResponseObject = typeof response === 'object';\n\n const isGql = isGqlQueryConfig(this._queryConfig);\n\n let responseData: Response | null = null;\n if (isGql && isResponseObject && 'data' in response.data) {\n responseData = (response.data as Record<string, unknown>)['data'] as Response;\n } else {\n responseData = response.data as Response;\n }\n\n const transformedResponse = this._queryConfig.responseTransformer\n ? this._queryConfig.responseTransformer(responseData)\n : responseData;\n\n this._state$.next({\n type: QueryStateType.Success,\n response: deepFreeze(transformedResponse as Record<string, unknown>) as ComputedResponse,\n rawResponse: deepFreeze(responseData as Record<string, unknown>) as Response,\n meta: deepFreeze({ ...meta, expiresAt: response.expiresInTimestamp }),\n });\n })\n .catch((error) => this._handleExecuteError(error, meta));\n\n return this;\n }\n\n abort() {\n this._abortController.abort();\n this._abortController = new AbortController();\n\n return this;\n }\n\n poll(config: PollConfig) {\n if (this._pollingSubscription) {\n return this;\n }\n\n this._pollingSubscription = interval(config.interval)\n .pipe(takeUntil(config.takeUntil))\n .subscribe(() => this.execute({ skipCache: true }));\n\n return this;\n }\n\n stopPolling() {\n this._pollingSubscription?.unsubscribe();\n this._pollingSubscription = null;\n\n return this;\n }\n\n private _handleExecuteError(error: unknown, meta: QueryStateMeta) {\n if (isAbortRequestError(error)) {\n this._state$.next({\n type: QueryStateType.Cancelled,\n meta,\n });\n } else if (isRequestError(error)) {\n this._state$.next({\n type: QueryStateType.Failure,\n error,\n meta,\n });\n } else {\n throw error;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ErrorHandler,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription, tap } from 'rxjs';\nimport {\n AnyQuery,\n isQueryStateFailure,\n isQueryStateLoading,\n isQueryStateSuccess,\n QueryRawResponseType,\n QueryResponseType,\n QueryState,\n} from '../query';\nimport { RequestError } from '../request';\n\ninterface QueryContext<Q extends AnyQuery | null> {\n $implicit: QueryResponseType<Q>;\n query: QueryResponseType<Q>;\n raw: QueryRawResponseType<Q>;\n loading: boolean;\n error: RequestError<unknown> | null;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[query]',\n standalone: true,\n})\nexport class QueryDirective<Q extends AnyQuery | null> implements OnInit, OnDestroy {\n private _isMainViewCreated = false;\n private _subscription: Subscription | null = null;\n\n private readonly _viewContext: QueryContext<Q> = {\n $implicit: null as QueryResponseType<Q>,\n query: null as QueryResponseType<Q>,\n raw: null as QueryRawResponseType<Q>,\n loading: false,\n error: null,\n };\n\n @Input()\n get query(): Q {\n return this._query;\n }\n set query(v: Q) {\n this._query = v;\n\n this._subscribeToQuery();\n }\n private _query!: Q;\n\n @Input('queryCache')\n get cache(): boolean {\n return this._cache;\n }\n set cache(v: boolean) {\n this._cache = v;\n }\n private _cache = false;\n\n constructor(\n private _mainTemplateRef: TemplateRef<QueryContext<Q>>,\n private _viewContainerRef: ViewContainerRef,\n private _errorHandler: ErrorHandler,\n private _cdr: ChangeDetectorRef,\n ) {}\n\n static ngTemplateContextGuard<Q extends AnyQuery | null>(\n dir: QueryDirective<Q>,\n ctx: unknown,\n ): ctx is QueryContext<Q> {\n return true;\n }\n\n ngOnInit(): void {\n this._renderMainView();\n }\n\n ngOnDestroy(): void {\n this._subscription?.unsubscribe();\n }\n\n private _subscribeToQuery(): void {\n this._subscription?.unsubscribe();\n this._subscription = null;\n\n if (!this.query) {\n return;\n }\n\n const sub = this.query.state$.pipe(tap((state) => this._updateView(state))).subscribe();\n\n this._subscription = sub;\n }\n\n private _updateView(state: QueryState) {\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n } else {\n this._viewContext.loading = false;\n }\n\n if (isQueryStateSuccess(state)) {\n this._viewContext.query = state.response as QueryResponseType<Q>;\n this._viewContext.$implicit = state.response as QueryResponseType<Q>;\n this._viewContext.raw = state.rawResponse as QueryRawResponseType<Q>;\n } else if (!this.cache) {\n this._viewContext.query = null as QueryResponseType<Q>;\n this._viewContext.$implicit = null as QueryResponseType<Q>;\n this._viewContext.raw = null as QueryRawResponseType<Q>;\n }\n\n if (isQueryStateFailure(state)) {\n this._viewContext.error = state.error;\n\n this._errorHandler.handleError(state.error);\n } else {\n this._viewContext.error = null;\n }\n\n this._cdr.markForCheck();\n }\n\n private _renderMainView(): void {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { filterSuccess, QueryStateData, takeUntilResponse } from '../query';\nimport { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';\nimport { InfinityQueryConfig, InfinityQueryParamLocation } from './infinity-query.types';\n\nexport class InfinityQuery<\n QueryCreator extends AnyQueryCreator,\n Query extends QueryCreatorReturnType<QueryCreator>,\n Args extends QueryCreatorArgs<QueryCreator>,\n QueryResponse extends QueryStateData<Query['state']>,\n InfinityResponse extends unknown[],\n> {\n private readonly _currentPage$ = new BehaviorSubject<number | null>(null);\n private readonly _currentCalculatedPage$ = new BehaviorSubject<number | null>(null);\n private readonly _totalPages$ = new BehaviorSubject<number | null>(null);\n private readonly _itemsPerPage$ = new BehaviorSubject<number>(this._config.limitParam?.value ?? 10);\n private readonly _currentQuery$ = new BehaviorSubject<Query | null>(null);\n private readonly _data$ = new BehaviorSubject<InfinityResponse>([] as any as InfinityResponse);\n\n private _subscriptions: Subscription[] = [];\n\n get currentPage$() {\n return this._currentPage$.asObservable();\n }\n\n get currentPage() {\n return this._currentPage$.getValue();\n }\n\n get currentCalculatedPage$() {\n return this._currentCalculatedPage$.asObservable();\n }\n\n get currentCalculatedPage() {\n return this._currentCalculatedPage$.getValue();\n }\n\n get totalPages$() {\n return this._totalPages$.asObservable();\n }\n\n get totalPages() {\n return this._totalPages$.getValue();\n }\n\n get itemsPerPage$() {\n return this._itemsPerPage$.asObservable();\n }\n\n get itemsPerPage() {\n return this._itemsPerPage$.getValue();\n }\n\n get currentQuery$() {\n return this._currentQuery$.asObservable();\n }\n\n get currentQuery() {\n return this._currentQuery$.getValue();\n }\n\n get data$() {\n return this._data$.asObservable();\n }\n\n get data() {\n return this._data$.getValue();\n }\n\n constructor(private _config: InfinityQueryConfig<QueryCreator, Args, QueryResponse, InfinityResponse>) {}\n\n nextPage() {\n const newPage = (this._currentPage$.value ?? 0) + 1;\n const calculatedPage =\n this._config?.pageParam?.valueCalculator?.({\n page: newPage,\n totalPages: this.totalPages,\n itemsPerPage: this.itemsPerPage,\n }) ?? newPage;\n\n const args = this._prepareArgs(this._config, calculatedPage);\n\n const query = this._config.queryCreator.prepare(args).execute() as Query;\n this._handleNewQuery(query);\n\n this._currentPage$.next(newPage);\n this._currentCalculatedPage$.next(calculatedPage);\n this._currentQuery$.next(query);\n }\n\n reset(\n newConfig?: Omit<\n InfinityQueryConfig<QueryCreator, Args, QueryResponse, InfinityResponse>,\n 'queryCreator' | 'response'\n >,\n ) {\n this._destroy();\n\n this._config = { ...this._config, ...(newConfig ?? {}) };\n\n this._currentPage$.next(null);\n this._currentCalculatedPage$.next(null);\n this._totalPages$.next(null);\n this._itemsPerPage$.next(this._config.limitParam?.value ?? 10);\n this._currentQuery$.next(null);\n\n this._data$.next([] as any as InfinityResponse);\n }\n\n _destroy() {\n this._subscriptions.forEach((sub) => sub.unsubscribe());\n this._subscriptions = [];\n }\n\n private _handleNewQuery(query: Query) {\n const stateChangesSub = query.state$.pipe(takeUntilResponse(), filterSuccess()).subscribe({\n next: (state) => {\n let newData = this._config?.response.valueExtractor(state.response);\n\n if (this._config.response.reverse) {\n newData = [...newData].reverse() as InfinityResponse;\n }\n\n if (this._config.response.appendItemsTo === 'start') {\n newData = [...newData, ...this.data] as InfinityResponse;\n } else {\n newData = [...this.data, ...newData] as InfinityResponse;\n }\n\n this._data$.next(newData);\n\n const totalPages =\n this._config.response.totalPagesExtractor?.({\n response: state.response,\n itemsPerPage: this.itemsPerPage,\n }) ??\n state.response?.totalPages ??\n null;\n\n this._totalPages$.next(totalPages);\n },\n complete: () => {\n this._subscriptions = this._subscriptions.filter((sub) => sub !== stateChangesSub);\n },\n });\n\n this._subscriptions.push(stateChangesSub);\n }\n\n private _prepareArgs(config: InfinityQueryConfig<QueryCreator, Args, QueryResponse, InfinityResponse>, page: number) {\n const pageParamLocation = this._getPageParamLocation(config?.pageParam?.location);\n\n const pageArgs = {\n [pageParamLocation]: {\n [config?.pageParam?.key ?? 'page']: page,\n },\n };\n\n const limitParamLocation = this._getPageParamLocation(config?.limitParam?.location);\n\n const limitArgs = {\n [limitParamLocation]: {\n [config?.limitParam?.key ?? 'limit']: config?.limitParam?.value ?? 10,\n },\n };\n\n const defaultConfig = config?.defaultArgs ?? {};\n\n const mergedArgs =\n pageParamLocation === limitParamLocation\n ? {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[limitParamLocation],\n ...limitArgs[limitParamLocation],\n },\n }\n : {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[pageParamLocation],\n },\n [limitParamLocation]: {\n ...(config?.defaultArgs?.[limitParamLocation] ?? {}),\n ...limitArgs[limitParamLocation],\n },\n };\n\n return mergedArgs;\n }\n\n private _getPageParamLocation(location: InfinityQueryParamLocation | undefined) {\n const loc = location ?? 'query';\n\n switch (loc) {\n case 'path':\n return 'pathParams';\n case 'query':\n return 'queryParams';\n case 'body':\n return 'body';\n case 'header':\n return 'headers';\n case 'variable':\n return 'variables';\n default:\n throw new Error(`Invalid pageParamLocation: ${loc}`);\n }\n }\n}\n","import { QueryStateData } from '../query';\nimport { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';\nimport { InfinityQueryConfig, PageParamCalculatorOptions } from './infinity-query.types';\n\nexport const createInfinityQueryConfig = <\n QueryCreator extends AnyQueryCreator,\n Query extends QueryCreatorReturnType<QueryCreator>,\n Args extends QueryCreatorArgs<QueryCreator>,\n QueryResponse extends QueryStateData<Query['state']>,\n InfinityResponse extends unknown[],\n>(\n config: InfinityQueryConfig<QueryCreator, Args, QueryResponse, InfinityResponse>,\n) => config;\n\nexport const skipPaginationPageParamCalculator = ({ page, itemsPerPage }: PageParamCalculatorOptions) =>\n itemsPerPage * (page - 1);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ChangeDetectorRef,\n Directive,\n ErrorHandler,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { InfinityQuery, InfinityQueryConfig } from '../infinite-query';\nimport { BaseArguments, isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess } from '../query';\nimport { AnyQueryCreator } from '../query-client';\nimport { RequestError } from '../request';\n\ninterface InfinityQueryContext<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>> {\n $implicit: Q['response']['arrayType'] | null;\n infinityQuery: Q['response']['arrayType'] | null;\n loading: boolean;\n error: RequestError<unknown> | null;\n\n isFirstLoad: boolean;\n canLoadMore: boolean;\n currentPage: number | null;\n currentCalculatedPage: number | null;\n totalPages: number | null;\n itemsPerPage: number | null;\n}\n\nexport const INFINITY_QUERY_TOKEN = new InjectionToken<InfinityQueryDirective<any>>('INFINITY_QUERY_TOKEN');\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQuery]',\n standalone: true,\n providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }],\n})\nexport class InfinityQueryDirective<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>>\n implements OnInit, OnDestroy\n{\n private readonly _viewContext: InfinityQueryContext<Q> = {\n $implicit: null,\n infinityQuery: null,\n loading: false,\n error: null,\n\n isFirstLoad: false,\n canLoadMore: false,\n currentPage: null,\n currentCalculatedPage: null,\n totalPages: null,\n itemsPerPage: null,\n };\n private _infinityQueryInstance: ReturnType<typeof this._setupInfinityQuery> | null = null;\n\n private _destroy$ = new Subject<boolean>();\n private readonly _cdr = inject(ChangeDetectorRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _mainTemplateRef = inject(TemplateRef<InfinityQueryContext<Q>>);\n private readonly _errorHandler = inject(ErrorHandler);\n\n private _isMainViewCreated = false;\n\n @Input()\n get infinityQuery(): Q {\n return this._infinityQuery;\n }\n set infinityQuery(v: Q) {\n this._infinityQuery = v;\n\n this._infinityQueryInstance = this._setupInfinityQuery(v);\n this._loadNextPage();\n }\n private _infinityQuery!: Q;\n\n get context() {\n return this._viewContext;\n }\n\n get instance() {\n return this._infinityQueryInstance;\n }\n\n static ngTemplateContextGuard<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>>(\n dir: InfinityQueryDirective<Q>,\n ctx: unknown,\n ): ctx is InfinityQueryContext<Q> {\n return true;\n }\n\n ngOnInit(): void {\n this._renderMainView();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next(true);\n this._destroy$.unsubscribe();\n this.instance?._destroy();\n }\n\n private _setupInfinityQuery(config: Q) {\n const instance = new InfinityQuery(config);\n\n instance.currentQuery$\n .pipe(\n switchMap((q) => q?.state$ ?? of(null)),\n tap((state) => {\n this._viewContext.currentPage = instance.currentPage;\n this._viewContext.totalPages = instance.totalPages;\n this._viewContext.itemsPerPage = instance.itemsPerPage;\n this._viewContext.canLoadMore =\n (instance.totalPages && instance.currentPage && instance.totalPages > instance.currentPage) || false;\n this._viewContext.currentCalculatedPage = instance.currentCalculatedPage;\n\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = this.context.infinityQuery === null;\n } else if (isQueryStateFailure(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = state.error;\n this._viewContext.isFirstLoad = false;\n this._errorHandler.handleError(state.error);\n } else if (isQueryStateSuccess(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = false;\n } else {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n }\n\n this._cdr.markForCheck();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n instance.data$\n .pipe(\n tap((data) => {\n this._viewContext.infinityQuery = this._viewContext.$implicit = data as Q['response']['arrayType'] | null;\n\n this._cdr.markForCheck();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n\n return instance;\n }\n\n _loadNextPage() {\n if (!this._infinityQueryInstance) {\n return;\n }\n\n this._infinityQueryInstance.nextPage();\n }\n\n private _renderMainView(): void {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n}\n","import { Directive, ElementRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { INFINITY_QUERY_TOKEN } from './infinity-query.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQueryTrigger], infinity-query-trigger',\n standalone: true,\n})\nexport class InfinityQueryTriggerDirective implements OnInit, OnDestroy {\n private _elementRef = inject(ElementRef<HTMLElement>);\n private _infinityQuery = inject(INFINITY_QUERY_TOKEN);\n\n private _destroy = new Subject<boolean>();\n private _observer: IntersectionObserver | null = null;\n\n click$ = fromEvent(this._elementRef.nativeElement, 'click');\n\n @Input()\n scrollContainerSelector: string | null = null;\n\n ngOnInit(): void {\n const isInteractive = this._elementRef.nativeElement.hasAttribute('infinityQueryTrigger');\n\n if (isInteractive) {\n this.click$.pipe(takeUntil(this._destroy)).subscribe(() => this._infinityQuery._loadNextPage());\n } else {\n this._setupIntersectionObserver();\n }\n }\n\n ngOnDestroy(): void {\n this._destroy.next(true);\n this._destroy.unsubscribe();\n this._observer?.disconnect();\n }\n\n private _setupIntersectionObserver(): void {\n this._observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n\n if (entry.isIntersecting && !this._infinityQuery.context.loading) {\n this._infinityQuery._loadNextPage();\n }\n },\n {\n root: this.scrollContainerSelector ? document.querySelector(this.scrollContainerSelector) : null,\n rootMargin: '0px',\n threshold: 1.0,\n },\n );\n\n this._observer.observe(this._elementRef.nativeElement);\n }\n}\n","import { AnyQuery } from '../query';\n\nexport class QueryStore {\n private readonly _store = new Map<string, AnyQuery>();\n private _garbageCollector: number | null = null;\n\n constructor(\n private _config?: {\n enableChangeLogging?: boolean;\n enableGarbageCollectorLogging?: boolean;\n },\n ) {}\n\n add(id: string, query: AnyQuery) {\n this._store.set(id, query);\n\n this._initGarbageCollector();\n\n this._logState(id, query, 'SET');\n }\n\n get(id: string) {\n return this._store.get(id) ?? null;\n }\n\n remove(id: string) {\n this._store.delete(id);\n\n this._logState(id, null, 'REMOVE');\n }\n\n private _logState(key: string | null, item: AnyQuery | null, operation: string) {\n if (!this._config?.enableChangeLogging) return;\n\n const stateAsJson: Record<string, AnyQuery> = {};\n\n this._store.forEach((value, key) => {\n stateAsJson[key] = value;\n });\n\n console.log(`%c[${operation}] ${key}`, 'font-weight: bold');\n\n console.log({ operation, key, item });\n console.log(stateAsJson);\n }\n\n private _initGarbageCollector() {\n if (this._garbageCollector !== null) {\n return;\n }\n\n this._logGarbageCollector('Start');\n\n this._garbageCollector = window.setInterval(() => {\n this._runGarbageCollector();\n }, 15000);\n }\n\n private _stopGarbageCollector() {\n if (this._garbageCollector !== null) {\n window.clearInterval(this._garbageCollector);\n this._garbageCollector = null;\n }\n }\n\n private _runGarbageCollector() {\n this._logGarbageCollector('Collecting...');\n\n this._store.forEach((item, key) => {\n if (item.isExpired) {\n this.remove(key);\n }\n });\n\n this._logGarbageCollector('Collection done');\n\n if (!this._store.size) {\n this._stopGarbageCollector();\n this._logGarbageCollector('Stop');\n }\n }\n\n private _logGarbageCollector(action: string) {\n if (!this._config?.enableGarbageCollectorLogging) return;\n\n console.log(`%cGC: ${action}`, 'color: yellow; font-weight: bold');\n }\n}\n","import { BaseArguments, GqlQueryConfig } from '../query/query.types';\nimport { Method } from '../request';\n\nexport const shouldCacheQuery = (method: Method) => {\n return method === 'GET' || method === 'OPTIONS' || method === 'HEAD' || method === 'GQL_QUERY';\n};\n\nexport const buildGqlCacheKey = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n config: GqlQueryConfig<any, any, any, any>,\n args: BaseArguments | undefined,\n) => {\n const { query } = config;\n const variables = args?.variables || {};\n\n const queryWithoutNewLinesAndWhitespace = query.replace(/\\s/g, '');\n\n const queryFirst50Chars = queryWithoutNewLinesAndWhitespace.slice(0, 50);\n const queryMiddle25Chars = queryWithoutNewLinesAndWhitespace.slice(\n queryWithoutNewLinesAndWhitespace.length / 2 - 25,\n queryWithoutNewLinesAndWhitespace.length / 2 + 25,\n );\n const queryLast50Chars = queryWithoutNewLinesAndWhitespace.slice(-50);\n\n const vars = JSON.stringify(variables);\n\n return `${queryFirst50Chars}...${queryMiddle25Chars}...${queryLast50Chars}...${vars}`;\n};\n","import { BehaviorSubject } from 'rxjs';\nimport { AuthProvider } from '../auth';\nimport {\n BaseArguments,\n GqlQueryConfig,\n GqlQueryConfigWithoutMethod,\n isGqlQueryConfig,\n Query,\n QueryConfig,\n QueryConfigWithoutMethod,\n RouteType,\n} from '../query';\nimport { QueryStore } from '../query-store';\nimport { buildRoute, Method as MethodType } from '../request';\nimport {\n DefaultResponseTransformer,\n QueryClientConfig,\n QueryCreator,\n ResponseTransformerType,\n} from './query-client.types';\nimport { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';\n\nexport class QueryClient {\n private readonly _store: QueryStore;\n private _authProvider: AuthProvider | null = null;\n\n get config() {\n return this._clientConfig;\n }\n\n get authProvider() {\n return this._authProvider;\n }\n\n constructor(private _clientConfig: QueryClientConfig) {\n this._store = new QueryStore({\n enableChangeLogging: _clientConfig.logging?.queryStateChanges,\n enableGarbageCollectorLogging: _clientConfig.logging?.queryStateGarbageCollector,\n });\n }\n\n get = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: QueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'GET', ResponseTransformer>({\n ...queryConfig,\n method: 'GET',\n });\n\n post = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: QueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'POST', ResponseTransformer>({\n ...queryConfig,\n method: 'POST',\n });\n\n put = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: QueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'PUT', ResponseTransformer>({\n ...queryConfig,\n method: 'PUT',\n });\n\n patch = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: QueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'PATCH', ResponseTransformer>({\n ...queryConfig,\n method: 'PATCH',\n });\n\n delete = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: QueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'DELETE', ResponseTransformer>({\n ...queryConfig,\n method: 'DELETE',\n });\n\n gqlQuery = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: GqlQueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'GQL_QUERY', ResponseTransformer>({\n ...queryConfig,\n method: 'GQL_QUERY',\n });\n\n gqlMutate = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig: GqlQueryConfigWithoutMethod<Route, Response, Arguments, ResponseTransformer>,\n ) =>\n this.fetch<Route, Response, Arguments, 'GQL_MUTATE', ResponseTransformer>({\n ...queryConfig,\n method: 'GQL_MUTATE',\n });\n\n fetch = <\n Route extends RouteType<Arguments>,\n Response,\n Arguments extends BaseArguments | undefined,\n Method extends MethodType,\n ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>,\n >(\n queryConfig:\n | QueryConfig<Route, Response, Arguments, ResponseTransformer>\n | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>,\n ): QueryCreator<Arguments, Method, Response, Route, ResponseTransformer> => {\n const prepare = (args?: Arguments) => {\n const route = buildRoute({\n base: this._clientConfig.baseRoute,\n route: queryConfig.route,\n pathParams: (args as BaseArguments)?.pathParams,\n queryParams: (args as BaseArguments)?.queryParams,\n }) as Route;\n\n const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;\n\n if (shouldCacheQuery(queryConfig.method)) {\n const existingQuery = this._store.get(cacheKey);\n\n if (existingQuery) {\n return existingQuery as Query<Response, Arguments, Route, Method, ResponseTransformer>;\n }\n }\n\n const query = new Query<Response, Arguments, Route, Method, ResponseTransformer>(this, queryConfig, route, args);\n\n if (shouldCacheQuery(queryConfig.method)) {\n this._store.add(cacheKey, query);\n }\n\n return query;\n };\n\n const behaviorSubject = <T extends ReturnType<typeof prepare>>(initialValue: T | null = null) =>\n new BehaviorSubject<T | null>(initialValue);\n\n return {\n prepare,\n behaviorSubject,\n } as unknown as QueryCreator<Arguments, Method, Response, Route, ResponseTransformer>;\n };\n\n setAuthProvider = (authProvider: AuthProvider) => {\n if (this._authProvider) {\n throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');\n }\n\n this._authProvider = authProvider;\n authProvider.queryClient = this;\n };\n\n clearAuthProvider = () => {\n this._authProvider?.cleanUp();\n this._authProvider = null;\n };\n}\n","import { inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, concat, debounceTime, distinctUntilChanged, map, Observable, startWith, take, tap } from 'rxjs';\nimport { QueryFormGroup, QueryFieldOptions, QueryFormValue } from './query-form.types';\n\nexport class QueryField<T> {\n changes$ = this._setupChangesObservable();\n\n get control() {\n return this.data.control;\n }\n\n private _currentDebounceTimeout: number | null = null;\n\n constructor(public data: QueryFieldOptions<T>) {}\n\n setValue(value: T | null) {\n if (this._currentDebounceTimeout !== null) {\n clearTimeout(this._currentDebounceTimeout);\n }\n\n if (this.data.debounce) {\n this._currentDebounceTimeout = window.setTimeout(() => {\n this.control.setValue(value);\n }, this.data.debounce);\n } else {\n this.control.setValue(value);\n }\n }\n\n private _setupChangesObservable() {\n const obs = this.control.valueChanges.pipe(startWith(this.control.value));\n\n if (!this.data.debounce) {\n return obs;\n }\n\n // The initial value should get emitted immediately\n // concat switches to the debounced observable after the first observable is completed\n return concat(obs.pipe(take(1)), this.control.valueChanges.pipe(debounceTime(this.data.debounce)));\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class QueryForm<T extends Record<string, QueryField<any>>> {\n private _router = inject(Router, { optional: true });\n private _activatedRoute = inject(ActivatedRoute, { optional: true });\n private _defaultValues = this._extractDefaultValues();\n\n form = this._setupFormGroup();\n\n constructor(private _fields: T) {}\n\n observe(options?: { syncViaUrlQueryParams?: boolean }) {\n return combineLatest(Object.values(this._fields).map((field) => field.changes$)).pipe(\n map(() => this.form.getRawValue()),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n tap((values) => {\n if (options?.syncViaUrlQueryParams !== false) {\n this._syncViaUrlQueryParams(values);\n }\n }),\n\n // This type cast is needed since ng-packagr will break the type inference otherwise.\n ) as Observable<QueryFormValue<T>>;\n }\n\n setFormValueFromUrlQueryParams() {\n if (!this._activatedRoute) {\n throw new Error('Cannot set form value from url query params without ActivatedRoute');\n }\n\n const queryParams = this._activatedRoute.snapshot.queryParams;\n\n for (const [key, field] of Object.entries(this._fields)) {\n const value = queryParams[key];\n\n if (value === undefined) {\n continue;\n }\n\n const deserializedValue = field.data.queryParamTransformFn?.(value) ?? value;\n\n field.setValue(deserializedValue);\n }\n }\n\n updateFormOnUrlQueryParamsChange() {\n if (!this._activatedRoute) {\n throw new Error('Cannot update form on url query params change without ActivatedRoute');\n }\n\n return this._activatedRoute.queryParams.pipe(tap(() => this.setFormValueFromUrlQueryParams()));\n }\n\n private _getDefaultValue(key: string) {\n return this._defaultValues[key] ?? null;\n }\n\n private _isDefaultValue(key: string, value: unknown) {\n const normalizedValue = Array.isArray(value) ? JSON.stringify(value) : value;\n\n return this._getDefaultValue(key) === normalizedValue;\n }\n\n private _setupFormGroup() {\n const group = new FormGroup({} as QueryFormGroup<T>);\n\n for (const [key, field] of Object.entries(this._fields)) {\n group.addControl(key, field.control);\n }\n\n return group;\n }\n\n private _extractDefaultValues() {\n const defaultValues: Record<string, unknown> = {};\n\n for (const [key, field] of Object.entries(this._fields)) {\n const value = field.control.value;\n\n if (value === null || value === undefined) {\n continue;\n }\n\n if (Array.isArray(value)) {\n defaultValues[key] = JSON.stringify(value);\n } else {\n defaultValues[key] = value;\n }\n }\n\n return defaultValues;\n }\n\n private _syncViaUrlQueryParams(values: Record<string, unknown>) {\n if (!this._router || !this._activatedRoute) {\n return;\n }\n\n const queryParams = structuredClone(this._activatedRoute.snapshot.queryParams);\n\n for (const [key, value] of Object.entries(values)) {\n if (this._isDefaultValue(key, value) || this._fields[key].data.appendToUrl === false) {\n delete queryParams[key];\n } else {\n queryParams[key] = value;\n }\n }\n\n this._router.navigate([], {\n queryParams,\n });\n }\n}\n","export const transformToString = (value: unknown) => {\n if (typeof value === 'string') {\n return value;\n }\n\n return null;\n};\n\nexport const transformToStringArray = (value: unknown) => {\n if (Array.isArray(value)) {\n return value.map(transformToString).filter(Boolean) as string[];\n } else if (typeof value === 'string') {\n return [transformToString(value)] as string[];\n }\n\n return null;\n};\n\nexport const transformToNumber = (value: unknown) => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n return null;\n};\n\nexport const transformToNumberArray = (value: unknown) => {\n if (Array.isArray(value)) {\n return value.map(transformToNumber).filter((item) => item !== null) as number[];\n } else if (typeof value === 'number') {\n return [value] as number[];\n }\n\n return null;\n};\n\nexport const transformToBoolean = (value: unknown) => {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value === 'true' || value === '1';\n }\n return null;\n};\n\nexport const transformToBooleanArray = (value: unknown) => {\n if (Array.isArray(value)) {\n return value.map(transformToBoolean).filter((item) => item !== null) as boolean[];\n } else if (typeof value === 'string' || typeof value === 'boolean') {\n return [transformToBoolean(value)] as boolean[];\n }\n\n return null;\n};\n\nexport const transformToDate = (value: unknown) => {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'string') {\n const date = new Date(value);\n\n if (isNaN(date.getTime())) {\n return null;\n }\n\n return date;\n }\n return null;\n};\n\nexport const transformToDateArray = (value: unknown) => {\n if (Array.isArray(value)) {\n return value.map(transformToDate).filter((item) => item !== null) as Date[];\n } else if (typeof value === 'string' || value instanceof Date) {\n return [transformToDate(value)] as Date[];\n }\n\n return null;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ethlete-query.mjs","sources":["../esm2020/lib/auth/custom-header-auth-provider.mjs","../esm2020/lib/auth/basic-auth-provider.mjs","../esm2020/lib/logger/logger.mjs","../esm2020/lib/request/request.util.mjs","../esm2020/lib/request/request.mjs","../esm2020/lib/auth/auth-provider.utils.mjs","../esm2020/lib/auth/bearer-auth-provider.mjs","../esm2020/lib/gql/gql.mjs","../esm2020/lib/query/query.utils.mjs","../esm2020/lib/query/query.mjs","../esm2020/lib/directives/query.directive.mjs","../esm2020/lib/infinite-query/infinity-query.mjs","../esm2020/lib/infinite-query/infinity-query.utils.mjs","../esm2020/lib/directives/infinity-query.directive.mjs","../esm2020/lib/directives/infinity-query-trigger.directive.mjs","../esm2020/lib/query-store/query-store.mjs","../esm2020/lib/query-client/query-client.utils.mjs","../esm2020/lib/query-client/query-client.mjs","../esm2020/lib/query-form/query-form.mjs","../esm2020/lib/query-form/query-form.utils.mjs","../esm2020/lib/utils/deep-freeze.util.mjs","../esm2020/lib/utils/def.util.mjs","../esm2020/ethlete-query.mjs"],"sourcesContent":["export class CustomHeaderAuthProvider {\n get header() {\n return { [this._config.name]: this._config.value };\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2F1dGgvY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFJRCxZQUFvQixPQUF1QztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQztRQUYzRCxnQkFBVyxHQUF1QixJQUFJLENBQUM7SUFFdUIsQ0FBQztJQUUvRCxPQUFPO1FBQ0wsT0FBTztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IEF1dGhQcm92aWRlciwgQXV0aFByb3ZpZGVyQ3VzdG9tSGVhZGVyQ29uZmlnIH0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgW3RoaXMuX2NvbmZpZy5uYW1lXTogdGhpcy5fY29uZmlnLnZhbHVlIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IEF1dGhQcm92aWRlckN1c3RvbUhlYWRlckNvbmZpZykge31cblxuICBjbGVhblVwKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIl19","export class BasicAuthProvider {\n get header() {\n return { Authorization: `Basic ${this._basicAuthString}` };\n }\n get _basicAuthString() {\n return btoa(`${this._config.username}:${this._config.password}`);\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtYXV0aC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUlELFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBRnBELGdCQUFXLEdBQXVCLElBQUksQ0FBQztJQUVnQixDQUFDO0lBRXhELE9BQU87UUFDTCxPQUFPO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgQXV0aFByb3ZpZGVyLCBBdXRoUHJvdmlkZXJCYXNpY0NvbmZpZyB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0F1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7dGhpcy5fYmFzaWNBdXRoU3RyaW5nfWAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9iYXNpY0F1dGhTdHJpbmcoKSB7XG4gICAgcmV0dXJuIGJ0b2EoYCR7dGhpcy5fY29uZmlnLnVzZXJuYW1lfToke3RoaXMuX2NvbmZpZy5wYXNzd29yZH1gKTtcbiAgfVxuXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogQXV0aFByb3ZpZGVyQmFzaWNDb25maWcpIHt9XG5cbiAgY2xlYW5VcCgpOiB2b2lkIHtcbiAgICAvLyBub29wXG4gIH1cbn1cbiJdfQ==","export const buildErrorMessage = (code, message) => `[@ethlete\\\\query:${code}] ${message}`;\nexport class QueryError extends Error {\n constructor(code, message, data) {\n super(buildErrorMessage(code, message));\n this.name = 'QueryError';\n this.data = data;\n }\n}\nexport const invalidBaseRouteError = (data) => new QueryError('001', 'The baseRoute must not end with a slash', data);\nexport const invalidRouteError = (data) => new QueryError('002', 'The route must start with a slash', data);\nexport const pathParamsMissingInRouteFunctionError = (data) => new QueryError('003', 'The route is a function but pathParams are missing', data);\nexport const queryStateAlreadyHasKeyError = (data) => new QueryError('004', 'The query state already contains the provided key', data);\nexport const queryStateDoesNotContainKeyError = (data) => new QueryError('005', 'The query state does not contain the provided key', data);\nexport const queryStateCannotTransformError = (data) => new QueryError('006', 'The query state cannot be transformed because it is not loading', data);\nexport const invalidBodyError = (data) => new QueryError('007', 'The body is not valid or upsupported', data);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2xvZ2dlci9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO0FBRTNHLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQUduQyxZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBYztRQUN2RCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUNyRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUseUNBQXlDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3JFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxvREFBb0QsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVwRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzVELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ2hFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzlELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxpRUFBaUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGJ1aWxkRXJyb3JNZXNzYWdlID0gKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiBgW0BldGhsZXRlXFxcXHF1ZXJ5OiR7Y29kZX1dICR7bWVzc2FnZX1gO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGF0YT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoY29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoYnVpbGRFcnJvck1lc3NhZ2UoY29kZSwgbWVzc2FnZSkpO1xuICAgIHRoaXMubmFtZSA9ICdRdWVyeUVycm9yJztcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkQmFzZVJvdXRlRXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwMScsICdUaGUgYmFzZVJvdXRlIG11c3Qgbm90IGVuZCB3aXRoIGEgc2xhc2gnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSb3V0ZUVycm9yID0gKGRhdGE6IHVua25vd24pID0+IG5ldyBRdWVyeUVycm9yKCcwMDInLCAnVGhlIHJvdXRlIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoJywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBwYXRoUGFyYW1zTWlzc2luZ0luUm91dGVGdW5jdGlvbkVycm9yID0gKGRhdGE6IHVua25vd24pID0+XG4gIG5ldyBRdWVyeUVycm9yKCcwMDMnLCAnVGhlIHJvdXRlIGlzIGEgZnVuY3Rpb24gYnV0IHBhdGhQYXJhbXMgYXJlIG1pc3NpbmcnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVBbHJlYWR5SGFzS2V5RXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwNCcsICdUaGUgcXVlcnkgc3RhdGUgYWxyZWFkeSBjb250YWlucyB0aGUgcHJvdmlkZWQga2V5JywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeVN0YXRlRG9lc05vdENvbnRhaW5LZXlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA1JywgJ1RoZSBxdWVyeSBzdGF0ZSBkb2VzIG5vdCBjb250YWluIHRoZSBwcm92aWRlZCBrZXknLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVDYW5ub3RUcmFuc2Zvcm1FcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA2JywgJ1RoZSBxdWVyeSBzdGF0ZSBjYW5ub3QgYmUgdHJhbnNmb3JtZWQgYmVjYXVzZSBpdCBpcyBub3QgbG9hZGluZycsIGRhdGEpO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZEJvZHlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PiBuZXcgUXVlcnlFcnJvcignMDA3JywgJ1RoZSBib2R5IGlzIG5vdCB2YWxpZCBvciB1cHN1cHBvcnRlZCcsIGRhdGEpO1xuIl19","import { invalidBaseRouteError, invalidBodyError, invalidRouteError, pathParamsMissingInRouteFunctionError, } from '../logger';\nexport const isRequestError = (error) => error instanceof Object && 'code' in error && 'message' in error;\nexport const isAbortRequestError = (error) => isRequestError(error) && error.code === -1;\nexport const buildRoute = (options) => {\n if (options.base.endsWith('/')) {\n throw invalidBaseRouteError(options.base);\n }\n let route = null;\n if (typeof options.route === 'function') {\n if (!options.pathParams) {\n throw pathParamsMissingInRouteFunctionError(options.route({}));\n }\n route = options.route(options.pathParams);\n }\n else {\n route = options.route ?? null;\n }\n if (route && !route.startsWith('/')) {\n throw invalidRouteError(route);\n }\n if (options.queryParams) {\n const queryString = buildQueryString(options.queryParams);\n if (queryString) {\n route = route ? `${route}?${queryString}` : `/?${queryString}`;\n }\n }\n return `${options.base}${route ?? ''}`;\n};\nexport const buildQueryString = (params) => {\n const validParams = filterInvalidParams(params);\n const queryString = Object.keys(validParams)\n .map((key) => Array.isArray(validParams[key])\n ? buildQueryArrayString(key, validParams[key])\n : `${key}=${encodeURIComponent(validParams[key])}`)\n .join('&');\n return queryString || null;\n};\nexport const buildQueryArrayString = (key, array) => {\n const uriBrackets = encodeURIComponent('[]');\n return array\n .slice()\n .map((item) => `${key}${uriBrackets}=${encodeURIComponent(item)}`)\n .join('&');\n};\nexport const isFetchResponse = (response) => typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'statusText' in response &&\n 'json' in response &&\n typeof response['json'] === 'function';\nexport const filterInvalidParams = (params) => {\n const filteredParams = Object.entries(params)\n .map(([key, value]) => {\n if (!Array.isArray(value)) {\n return [key, value];\n }\n return [key, value.filter((v) => isParamValid(v))];\n })\n .filter(([, value]) => isParamValid(value))\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n return filteredParams;\n};\nexport const isParamValid = (primitive) => {\n if (primitive === undefined || primitive === null || primitive === '') {\n return false;\n }\n if (typeof primitive === 'string' && primitive.trim() === '') {\n return false;\n }\n if (typeof primitive === 'number' && isNaN(primitive)) {\n return false;\n }\n return true;\n};\nexport const extractExpiresInSeconds = (headers) => {\n const cacheControl = headers.get('cache-control');\n const age = headers.get('age');\n const expires = headers.get('expires');\n // In seconds\n let expiresIn = null;\n let maxAge = null;\n if (cacheControl?.includes('no-cache')) {\n return null;\n }\n if (cacheControl?.includes('max-age')) {\n maxAge = parseInt(cacheControl.split('max-age=')[1]);\n }\n else if (cacheControl?.includes('s-maxage')) {\n maxAge = parseInt(cacheControl.split('s-maxage=')[1]);\n }\n if (maxAge && age) {\n const ageSeconds = parseInt(age);\n expiresIn = maxAge - ageSeconds;\n }\n else if (expires) {\n // Used by some apis to tell the response will never expire\n // In this case we let the response expire after 1 hour\n if (expires === '-1') {\n expiresIn = 3600;\n }\n else {\n const expiresDate = new Date(expires);\n // check if the date is valid\n if (expiresDate.toString() !== 'Invalid Date') {\n expiresIn = Math.floor((expiresDate.getTime() - Date.now()) / 1000);\n }\n }\n }\n return expiresIn;\n};\nexport const buildTimestampFromSeconds = (seconds) => {\n if (seconds === null) {\n return null;\n }\n return new Date(Date.now() + seconds * 1000).getTime();\n};\nexport const buildRequestError = async (error, route, requestInit) => {\n if (error instanceof DOMException && error.code === error.ABORT_ERR) {\n const err = {\n code: -1,\n message: 'Request aborted',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof SyntaxError) {\n const err = {\n code: -3,\n message: 'Syntax error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof Error) {\n const err = {\n code: -2,\n message: `${error.name}: ${error.message}`,\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (isFetchResponse(error)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let detail = null;\n try {\n detail = await error.json();\n }\n catch {\n // noop\n }\n if (!detail) {\n try {\n detail = await error.text();\n }\n catch {\n // noop\n }\n }\n const err = {\n code: error.status,\n message: error.statusText,\n detail,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n const err = {\n code: 0,\n message: 'Unknown error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n};\nexport const buildBody = (body) => {\n if (body === undefined || body === null) {\n return null;\n }\n if (typeof body === 'string') {\n return body;\n }\n if (typeof body === 'object') {\n return JSON.stringify(body);\n }\n if (body instanceof FormData) {\n return body;\n }\n throw invalidBodyError(body);\n};\nexport const transformMethod = (method) => {\n if (method === 'GQL_QUERY' || method === 'GQL_MUTATE') {\n return 'POST';\n }\n return method;\n};\nexport const guessContentType = (body) => {\n if (body === null || body === undefined) {\n return null;\n }\n if (typeof body === 'string') {\n return 'text/plain';\n }\n if (body instanceof FormData) {\n return 'multipart/form-data';\n }\n if (typeof body === 'object') {\n return 'application/json';\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3JlcXVlc3QvcmVxdWVzdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixxQ0FBcUMsR0FDdEMsTUFBTSxXQUFXLENBQUM7QUFHbkIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQ3RFLEtBQUssWUFBWSxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQzNFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BSzFCLEVBQUUsRUFBRTtJQUNILElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRWhDLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN2QixNQUFNLHFDQUFxQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztTQUFNO1FBQ0wsS0FBSyxHQUFH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SUFBSSxZQUFZLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNoRCxJQUFJLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxLQUFLLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRTtJQUNoRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxZQUFZLENBQUM7S0FDckI7SUFFRCxJQUFJLElBQUksWUFBWSxRQUFRLEVBQUU7UUFDNUIsT0FBTyxxQkFBcUIsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sa0JBQWtCLENBQUM7S0FDM0I7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGludmFsaWRCYXNlUm91dGVFcnJvcixcbiAgaW52YWxpZEJvZHlFcnJvcixcbiAgaW52YWxpZFJvdXRlRXJyb3IsXG4gIHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3IsXG59IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXRob2QsIFBhcmFtQXJyYXksIFBhcmFtcywgUXVlcnlQYXJhbXMsIFJlcXVlc3RFcnJvciwgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzUmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGVycm9yIGluc3RhbmNlb2YgT2JqZWN0ICYmICdjb2RlJyBpbiBlcnJvciAmJiAnbWVzc2FnZScgaW4gZXJyb3I7XG5cbmV4cG9ydCBjb25zdCBpc0Fib3J0UmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGlzUmVxdWVzdEVycm9yKGVycm9yKSAmJiBlcnJvci5jb2RlID09PSAtMTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUm91dGUgPSAob3B0aW9uczoge1xuICBiYXNlOiBzdHJpbmc7XG4gIHJvdXRlOiAoKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBzdHJpbmcpIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aFBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBxdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5iYXNlLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkQmFzZVJvdXRlRXJyb3Iob3B0aW9ucy5iYXNlKTtcbiAgfVxuXG4gIGxldCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnJvdXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhdGhQYXJhbXMpIHtcbiAgICAgIHRocm93IHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3Iob3B0aW9ucy5yb3V0ZSh7fSkpO1xuICAgIH1cblxuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZShvcHRpb25zLnBhdGhQYXJhbXMpO1xuICB9IGVsc2Uge1xuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZSA/PyBudWxsO1xuICB9XG5cbiAgaWYgKHJvdXRlICYmICFyb3V0ZS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkUm91dGVFcnJvcihyb3V0ZSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5xdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYnVpbGRRdWVyeVN0cmluZyhvcHRpb25zLnF1ZXJ5UGFyYW1zKTtcblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgcm91dGUgPSByb3V0ZSA/IGAke3JvdXRlfT8ke3F1ZXJ5U3RyaW5nfWAgOiBgLz8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGAke29wdGlvbnMuYmFzZX0ke3JvdXRlID8/ICcnfWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeVN0cmluZyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IHZhbGlkUGFyYW1zID0gZmlsdGVySW52YWxpZFBhcmFtcyhwYXJhbXMpO1xuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmtleXModmFsaWRQYXJhbXMpXG4gICAgLm1hcCgoa2V5KSA9PlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWxpZFBhcmFtc1trZXldKVxuICAgICAgICA/IGJ1aWxkUXVlcnlBcnJheVN0cmluZyhrZXksIHZhbGlkUGFyYW1zW2tleV0gYXMgUGFyYW1BcnJheSlcbiAgICAgICAgOiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbGlkUGFyYW1zW2tleV0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YCxcbiAgICApXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gcXVlcnlTdHJpbmcgfHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcgPSAoa2V5OiBzdHJpbmcsIGFycmF5OiBQYXJhbUFycmF5KSA9PiB7XG4gIGNvbnN0IHVyaUJyYWNrZXRzID0gZW5jb2RlVVJJQ29tcG9uZW50KCdbXScpO1xuXG4gIHJldHVybiBhcnJheVxuICAgIC5zbGljZSgpXG4gICAgLm1hcCgoaXRlbSkgPT4gYCR7a2V5fSR7dXJpQnJhY2tldHN9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGl0ZW0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YClcbiAgICAuam9pbignJicpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmV0Y2hSZXNwb25zZSA9IChyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIFJlc3BvbnNlID0+XG4gIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiZcbiAgcmVzcG9uc2UgIT09IG51bGwgJiZcbiAgJ3N0YXR1cycgaW4gcmVzcG9uc2UgJiZcbiAgJ3N0YXR1c1RleHQnIGluIHJlc3BvbnNlICYmXG4gICdqc29uJyBpbiByZXNwb25zZSAmJlxuICB0eXBlb2YgKHJlc3BvbnNlIGFzIFJlc3BvbnNlKVsnanNvbiddID09PSAnZnVuY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgZmlsdGVySW52YWxpZFBhcmFtcyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQYXJhbXMgPSBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZS5maWx0ZXIoKHYpID0+IGlzUGFyYW1WYWxpZCh2KSldO1xuICAgIH0pXG4gICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiBpc1BhcmFtVmFsaWQodmFsdWUgYXMgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlKSlcbiAgICAucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5IGFzIHN0cmluZ106IHZhbHVlIH0pLCB7fSk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGFyYW1WYWxpZCA9IChwcmltaXRpdmU6IFVuZmlsdGVyZWRQYXJhbVByaW1pdGl2ZSkgPT4ge1xuICBpZiAocHJpbWl0aXZlID09PSB1bmRlZmluZWQgfHwgcHJpbWl0aXZlID09PSBudWxsIHx8IHByaW1pdGl2ZSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ3N0cmluZycgJiYgcHJpbWl0aXZlLnRyaW0oKSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ251bWJlcicgJiYgaXNOYU4ocHJpbWl0aXZlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFeHBpcmVzSW5TZWNvbmRzID0gKGhlYWRlcnM6IEhlYWRlcnMpID0+IHtcbiAgY29uc3QgY2FjaGVDb250cm9sID0gaGVhZGVycy5nZXQoJ2NhY2hlLWNvbnRyb2wnKTtcbiAgY29uc3QgYWdlID0gaGVhZGVycy5nZXQoJ2FnZScpO1xuICBjb25zdCBleHBpcmVzID0gaGVhZGVycy5nZXQoJ2V4cGlyZXMnKTtcblxuICAvLyBJbiBzZWNvbmRzXG4gIGxldCBleHBpcmVzSW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4QWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygnbm8tY2FjaGUnKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ21heC1hZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgnbWF4LWFnZT0nKVsxXSk7XG4gIH0gZWxzZSBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygncy1tYXhhZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgncy1tYXhhZ2U9JylbMV0pO1xuICB9XG5cbiAgaWYgKG1heEFnZSAmJiBhZ2UpIHtcbiAgICBjb25zdCBhZ2VTZWNvbmRzID0gcGFyc2VJbnQoYWdlKTtcblxuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAtIGFnZVNlY29uZHM7XG4gIH0gZWxzZSBpZiAoZXhwaXJlcykge1xuICAgIC8vIFVzZWQgYnkgc29tZSBhcGlzIHRvIHRlbGwgdGhlIHJlc3BvbnNlIHdpbGwgbmV2ZXIgZXhwaXJlXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGxldCB0aGUgcmVzcG9uc2UgZXhwaXJlIGFmdGVyIDEgaG91clxuICAgIGlmIChleHBpcmVzID09PSAnLTEnKSB7XG4gICAgICBleHBpcmVzSW4gPSAzNjAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleHBpcmVzRGF0ZSA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuXG4gICAgICAvLyBjaGVjayBpZiB0aGUgZGF0ZSBpcyB2YWxpZFxuICAgICAgaWYgKGV4cGlyZXNEYXRlLnRvU3RyaW5nKCkgIT09ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgIGV4cGlyZXNJbiA9IE1hdGguZmxvb3IoKGV4cGlyZXNEYXRlLmdldFRpbWUoKSAtIERhdGUubm93KCkpIC8gMTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4cGlyZXNJbjtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzID0gKHNlY29uZHM6IG51bWJlciB8IG51bGwpID0+IHtcbiAgaWYgKHNlY29uZHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc2Vjb25kcyAqIDEwMDApLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFJlcXVlc3RFcnJvciA9IGFzeW5jIDxFcnJvclJlc3BvbnNlID0gdW5rbm93bj4oXG4gIGVycm9yOiB1bmtub3duLFxuICByb3V0ZTogc3RyaW5nLFxuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0LFxuKSA9PiB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnJvci5jb2RlID09PSBlcnJvci5BQk9SVF9FUlIpIHtcbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxudWxsPiA9IHtcbiAgICAgIGNvZGU6IC0xLFxuICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgYWJvcnRlZCcsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgY29uc3QgZXJyOiBSZXF1ZXN0RXJyb3I8bnVsbD4gPSB7XG4gICAgICBjb2RlOiAtMyxcbiAgICAgIG1lc3NhZ2U6ICdTeW50YXggZXJyb3InLFxuICAgICAgZGV0YWlsOiBudWxsLFxuICAgICAgcmF3OiBlcnJvcixcbiAgICAgIHJvdXRlLFxuICAgICAgcmVxdWVzdEluaXQsXG4gICAgfTtcblxuICAgIHJldHVybiBlcnI7XG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgICAgY29kZTogLTIsXG4gICAgICBtZXNzYWdlOiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChpc0ZldGNoUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgZGV0YWlsOiBhbnkgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRldGFpbCA9IGF3YWl0IGVycm9yLmpzb24oKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICBpZiAoIWRldGFpbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGV0YWlsID0gYXdhaXQgZXJyb3IudGV4dCgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIG5vb3BcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxFcnJvclJlc3BvbnNlPiA9IHtcbiAgICAgIGNvZGU6IGVycm9yLnN0YXR1cyxcbiAgICAgIG1lc3NhZ2U6IGVycm9yLnN0YXR1c1RleHQsXG4gICAgICBkZXRhaWwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgIGNvZGU6IDAsXG4gICAgbWVzc2FnZTogJ1Vua25vd24gZXJyb3InLFxuICAgIGRldGFpbDogbnVsbCxcbiAgICByYXc6IGVycm9yLFxuICAgIHJvdXRlLFxuICAgIHJlcXVlc3RJbml0LFxuICB9O1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCb2R5ID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICB9XG5cbiAgaWYgKGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgdGhyb3cgaW52YWxpZEJvZHlFcnJvcihib2R5KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSAobWV0aG9kOiBNZXRob2QpID0+IHtcbiAgaWYgKG1ldGhvZCA9PT0gJ0dRTF9RVUVSWScgfHwgbWV0aG9kID09PSAnR1FMX01VVEFURScpIHtcbiAgICByZXR1cm4gJ1BPU1QnO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZDtcbn07XG5cbmV4cG9ydCBjb25zdCBndWVzc0NvbnRlbnRUeXBlID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICd0ZXh0L3BsYWluJztcbiAgfVxuXG4gIGlmIChib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICByZXR1cm4gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbic7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4iXX0=","import { buildRequestError, buildTimestampFromSeconds, extractExpiresInSeconds } from './request.util';\nexport const request = async (options) => {\n try {\n const response = await fetch(options.route, options.init);\n if (!response.ok) {\n throw response;\n }\n const isJsonResponse = response.headers.get('Content-Type')?.includes('application/json');\n const isTextResponse = response.headers.get('Content-Type')?.includes('text/plain');\n const data = (isJsonResponse ? await response.json() : isTextResponse ? await response.text() : null);\n const expiresInSeconds = options.cacheAdapter\n ? options.cacheAdapter(response.headers)\n : extractExpiresInSeconds(response.headers);\n const expiresInTimestamp = buildTimestampFromSeconds(expiresInSeconds);\n return { data, expiresInTimestamp };\n }\n catch (error) {\n throw await buildRequestError(error, options.route, options.init);\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9yZXF1ZXN0L3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkcsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBc0IsT0FJakQsRUFBRSxFQUFFO0lBQ0gsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBGLE1BQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFhLENBQUM7UUFFbEgsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsWUFBWTtZQUMzQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsTUFBTSxNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuRTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlQWRhcHRlckZuIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcbmltcG9ydCB7IGJ1aWxkUmVxdWVzdEVycm9yLCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzLCBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyB9IGZyb20gJy4vcmVxdWVzdC51dGlsJztcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3QgPSBhc3luYyA8UmVzcG9uc2UgPSB1bmtub3duPihvcHRpb25zOiB7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGluaXQ/OiBSZXF1ZXN0SW5pdDtcbiAgY2FjaGVBZGFwdGVyPzogQ2FjaGVBZGFwdGVyRm47XG59KSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChvcHRpb25zLnJvdXRlLCBvcHRpb25zLmluaXQpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaXNKc29uUmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgY29uc3QgaXNUZXh0UmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCd0ZXh0L3BsYWluJyk7XG5cbiAgICBjb25zdCBkYXRhID0gKGlzSnNvblJlc3BvbnNlID8gYXdhaXQgcmVzcG9uc2UuanNvbigpIDogaXNUZXh0UmVzcG9uc2UgPyBhd2FpdCByZXNwb25zZS50ZXh0KCkgOiBudWxsKSBhcyBSZXNwb25zZTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblNlY29uZHMgPSBvcHRpb25zLmNhY2hlQWRhcHRlclxuICAgICAgPyBvcHRpb25zLmNhY2hlQWRhcHRlcihyZXNwb25zZS5oZWFkZXJzKVxuICAgICAgOiBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyhyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblRpbWVzdGFtcCA9IGJ1aWxkVGltZXN0YW1wRnJvbVNlY29uZHMoZXhwaXJlc0luU2Vjb25kcyk7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcmVzSW5UaW1lc3RhbXAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBhd2FpdCBidWlsZFJlcXVlc3RFcnJvcihlcnJvciwgb3B0aW9ucy5yb3V0ZSwgb3B0aW9ucy5pbml0KTtcbiAgfVxufTtcbiJdfQ==","import { BasicAuthProvider } from './basic-auth-provider';\nimport { BearerAuthProvider } from './bearer-auth-provider';\nimport { CustomHeaderAuthProvider } from './custom-header-auth-provider';\nexport const isBasicAuthProvider = (authProvider) => authProvider instanceof BasicAuthProvider;\nexport const isBearerAuthProvider = (authProvider) => authProvider instanceof BearerAuthProvider;\nexport const isCustomHeaderAuthProvider = (authProvider) => authProvider instanceof CustomHeaderAuthProvider;\nexport const decryptBearer = (token) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''));\n return JSON.parse(jsonPayload);\n }\n catch (error) {\n console.error(`Invalid bearer token: ${token}`, error);\n return null;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wcm92aWRlci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2F1dGgtcHJvdmlkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUEwQixFQUFxQyxFQUFFLENBQ25HLFlBQVksWUFBWSxpQkFBaUIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQXNDLEVBQUUsQ0FDckcsWUFBWSxZQUFZLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsWUFBMEIsRUFBNEMsRUFBRSxDQUNqSCxZQUFZLFlBQVksd0JBQXdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQW1DLEtBQWEsRUFBRSxFQUFFO0lBQy9FLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDVCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQVcsQ0FBQztLQUMxQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5pbXBvcnQgeyBCYXNpY0F1dGhQcm92aWRlciB9IGZyb20gJy4vYmFzaWMtYXV0aC1wcm92aWRlcic7XG5pbXBvcnQgeyBCZWFyZXJBdXRoUHJvdmlkZXIgfSBmcm9tICcuL2JlYXJlci1hdXRoLXByb3ZpZGVyJztcbmltcG9ydCB7IEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciB9IGZyb20gJy4vY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyJztcblxuZXhwb3J0IGNvbnN0IGlzQmFzaWNBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQmFzaWNBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmFzaWNBdXRoUHJvdmlkZXI7XG5cbmV4cG9ydCBjb25zdCBpc0JlYXJlckF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcik6IGF1dGhQcm92aWRlciBpcyBCZWFyZXJBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmVhcmVyQXV0aFByb3ZpZGVyO1xuXG5leHBvcnQgY29uc3QgaXNDdXN0b21IZWFkZXJBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQ3VzdG9tSGVhZGVyQXV0aFByb3ZpZGVyID0+XG4gIGF1dGhQcm92aWRlciBpbnN0YW5jZW9mIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlcjtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHRCZWFyZXIgPSA8UmVzdWx0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHRva2VuOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgIGNvbnN0IGpzb25QYXlsb2FkID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgICAgYXRvYihiYXNlNjQpXG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoYykgPT4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpXG4gICAgICAgIC5qb2luKCcnKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblBheWxvYWQpIGFzIFJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGJlYXJlciB0b2tlbjogJHt0b2tlbn1gLCBlcnJvcik7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdfQ==","import { Subject, timer } from 'rxjs';\nimport { buildBody, buildRequestError, buildRoute, request } from '../request';\nimport { decryptBearer } from './auth-provider.utils';\nexport class BearerAuthProvider {\n get header() {\n return { Authorization: `Bearer ${this._token}` };\n }\n constructor(_config) {\n this._config = _config;\n this._refreshToken = null;\n this._refreshTimerSubscription = null;\n this.queryClient = null;\n this.onRefreshInitiation$ = new Subject();\n this.onRefreshSuccess$ = new Subject();\n this.onRefreshFailure$ = new Subject();\n this._token = _config.token;\n this._refreshToken = _config.refreshConfig?.token ?? null;\n if (this._config.refreshConfig) {\n this._setupRefresh(this._config.refreshConfig);\n }\n }\n cleanUp() {\n this._refreshTimerSubscription?.unsubscribe();\n this._refreshTimerSubscription = null;\n }\n _setupRefresh(config) {\n const bearer = decryptBearer(this._token);\n if (!bearer) {\n return;\n }\n const expiresInPropertyName = config.expiresInPropertyName || 'exp';\n const expiresIn = bearer[expiresInPropertyName];\n const fiveMinutes = 5 * 60 * 1000;\n const refreshBuffer = config.refreshBuffer ?? fiveMinutes;\n if (expiresIn === undefined) {\n throw new Error(`Bearer token does not contain an '${expiresInPropertyName}' property`);\n }\n const remainingTime = new Date(expiresIn * 1000).getTime() - refreshBuffer - new Date().getTime();\n const strategy = config.strategy ?? \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */;\n switch (strategy) {\n case \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */:\n this._refreshTimerSubscription = timer(remainingTime).subscribe(() => this._refresh(config));\n break;\n }\n }\n async _refresh(config) {\n if (!this._refreshToken) {\n throw new Error('No refresh token found');\n }\n if (!this.queryClient) {\n throw new Error('Query client instance is null');\n }\n const { method, route, requestAdapter, responseAdapter, paramLocation } = config;\n const data = requestAdapter?.(this._refreshToken) ?? { refreshToken: this._refreshToken };\n const fullRoute = buildRoute({\n base: this.queryClient.config.baseRoute,\n route,\n queryParams: paramLocation === 'query' ? data : undefined,\n });\n const requestInit = { body: paramLocation === 'body' ? buildBody(data) : undefined, method };\n this.onRefreshInitiation$.next();\n try {\n const result = await request({\n route: fullRoute,\n init: requestInit,\n });\n const tokens = responseAdapter ? responseAdapter(result.data) : result.data;\n if (!tokens.token) {\n throw new Error('Token not found in response');\n }\n if (!tokens.refreshToken) {\n throw new Error('Refresh token not found in response');\n }\n this._token = tokens.token;\n this._refreshToken = tokens.refreshToken;\n this.onRefreshSuccess$.next(tokens);\n }\n catch (error) {\n if (error instanceof Error) {\n this.onRefreshFailure$.next(await buildRequestError(error, fullRoute, requestInit));\n }\n else {\n this.onRefreshFailure$.next(error);\n }\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvYXV0aC9iZWFyZXItYXV0aC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQVE3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQVFELFlBQW9CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBYjdDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUNwQyw4QkFBeUIsR0FBd0IsSUFBSSxDQUFDO1FBTTlELGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUV2Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBRzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FB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QUFDLElBQXNCLENBQUM7WUFFL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQzthQUNoRDtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7YUFDeEQ7WUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBRXpDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNyRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQXFCLENBQUMsQ0FBQzthQUNwRDtTQUNGO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgYnVpbGRCb2R5LCBidWlsZFJlcXVlc3RFcnJvciwgYnVpbGRSb3V0ZSwgcmVxdWVzdCwgUmVxdWVzdEVycm9yIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQge1xuICBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LFxuICBBdXRoUHJvdmlkZXIsXG4gIEF1dGhQcm92aWRlckJlYXJlckNvbmZpZyxcbiAgQmVhcmVyUmVmcmVzaENvbmZpZyxcbiAgVG9rZW5SZXNwb25zZSxcbn0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcbmltcG9ydCB7IGRlY3J5cHRCZWFyZXIgfSBmcm9tICcuL2F1dGgtcHJvdmlkZXIudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQmVhcmVyQXV0aFByb3ZpZGVyIGltcGxlbWVudHMgQXV0aFByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBnZXQgaGVhZGVyKCkge1xuICAgIHJldHVybiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLl90b2tlbn1gIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBvblJlZnJlc2hJbml0aWF0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9uUmVmcmVzaFN1Y2Nlc3MkID0gbmV3IFN1YmplY3Q8VG9rZW5SZXNwb25zZT4oKTtcbiAgb25SZWZyZXNoRmFpbHVyZSQgPSBuZXcgU3ViamVjdDxSZXF1ZXN0RXJyb3I+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBBdXRoUHJvdmlkZXJCZWFyZXJDb25maWcpIHtcbiAgICB0aGlzLl90b2tlbiA9IF9jb25maWcudG9rZW47XG4gICAgdGhpcy5fcmVmcmVzaFRva2VuID0gX2NvbmZpZy5yZWZyZXNoQ29uZmlnPy50b2tlbiA/PyBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yZWZyZXNoQ29uZmlnKSB7XG4gICAgICB0aGlzLl9zZXR1cFJlZnJlc2godGhpcy5fY29uZmlnLnJlZnJlc2hDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFuVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3JlZnJlc2hUaW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cFJlZnJlc2goY29uZmlnOiBCZWFyZXJSZWZyZXNoQ29uZmlnKSB7XG4gICAgY29uc3QgYmVhcmVyID0gZGVjcnlwdEJlYXJlcih0aGlzLl90b2tlbik7XG5cbiAgICBpZiAoIWJlYXJlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGlyZXNJblByb3BlcnR5TmFtZSA9IGNvbmZpZy5leHBpcmVzSW5Qcm9wZXJ0eU5hbWUgfHwgJ2V4cCc7XG4gICAgY29uc3QgZXhwaXJlc0luID0gYmVhcmVyW2V4cGlyZXNJblByb3BlcnR5TmFtZV0gYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpdmVNaW51dGVzID0gNSAqIDYwICogMTAwMDtcbiAgICBjb25zdCByZWZyZXNoQnVmZmVyID0gY29uZmlnLnJlZnJlc2hCdWZmZXIgPz8gZml2ZU1pbnV0ZXM7XG5cbiAgICBpZiAoZXhwaXJlc0luID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQmVhcmVyIHRva2VuIGRvZXMgbm90IGNvbnRhaW4gYW4gJyR7ZXhwaXJlc0luUHJvcGVydHlOYW1lfScgcHJvcGVydHlgKTtcbiAgICB9XG5cbiAgICBjb25zdCByZW1haW5pbmdUaW1lID0gbmV3IERhdGUoZXhwaXJlc0luICogMTAwMCkuZ2V0VGltZSgpIC0gcmVmcmVzaEJ1ZmZlciAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSBjb25maWcuc3RyYXRlZ3kgPz8gQXV0aEJlYXJlclJlZnJlc2hTdHJhdGVneS5CZWZvcmVFeHBpcmF0aW9uO1xuXG4gICAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgICAgY2FzZSBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LkJlZm9yZUV4cGlyYXRpb246XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUaW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKHJlbWFpbmluZ1RpbWUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWZyZXNoKGNvbmZpZykpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWZyZXNoKGNvbmZpZzogQmVhcmVyUmVmcmVzaENvbmZpZykge1xuICAgIGlmICghdGhpcy5fcmVmcmVzaFRva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlZnJlc2ggdG9rZW4gZm91bmQnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucXVlcnlDbGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUXVlcnkgY2xpZW50IGluc3RhbmNlIGlzIG51bGwnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG1ldGhvZCwgcm91dGUsIHJlcXVlc3RBZGFwdGVyLCByZXNwb25zZUFkYXB0ZXIsIHBhcmFtTG9jYXRpb24gfSA9IGNvbmZpZztcblxuICAgIGNvbnN0IGRhdGEgPSByZXF1ZXN0QWRhcHRlcj8uKHRoaXMuX3JlZnJlc2hUb2tlbikgPz8geyByZWZyZXNoVG9rZW46IHRoaXMuX3JlZnJlc2hUb2tlbiB9O1xuXG4gICAgY29uc3QgZnVsbFJvdXRlID0gYnVpbGRSb3V0ZSh7XG4gICAgICBiYXNlOiB0aGlzLnF1ZXJ5Q2xpZW50LmNvbmZpZy5iYXNlUm91dGUsXG4gICAgICByb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbUxvY2F0aW9uID09PSAncXVlcnknID8gZGF0YSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcXVlc3RJbml0OiBSZXF1ZXN0SW5pdCA9IHsgYm9keTogcGFyYW1Mb2NhdGlvbiA9PT0gJ2JvZHknID8gYnVpbGRCb2R5KGRhdGEpIDogdW5kZWZpbmVkLCBtZXRob2QgfTtcblxuICAgIHRoaXMub25SZWZyZXNoSW5pdGlhdGlvbiQubmV4dCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3Qoe1xuICAgICAgICByb3V0ZTogZnVsbFJvdXRlLFxuICAgICAgICBpbml0OiByZXF1ZXN0SW5pdCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB0b2tlbnMgPSByZXNwb25zZUFkYXB0ZXIgPyByZXNwb25zZUFkYXB0ZXIocmVzdWx0LmRhdGEpIDogKHJlc3VsdC5kYXRhIGFzIFRva2VuUmVzcG9uc2UpO1xuXG4gICAgICBpZiAoIXRva2Vucy50b2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rva2VuIG5vdCBmb3VuZCBpbiByZXNwb25zZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRva2Vucy5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWZyZXNoIHRva2VuIG5vdCBmb3VuZCBpbiByZXNwb25zZScpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl90b2tlbiA9IHRva2Vucy50b2tlbjtcbiAgICAgIHRoaXMuX3JlZnJlc2hUb2tlbiA9IHRva2Vucy5yZWZyZXNoVG9rZW47XG5cbiAgICAgIHRoaXMub25SZWZyZXNoU3VjY2VzcyQubmV4dCh0b2tlbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aGlzLm9uUmVmcmVzaEZhaWx1cmUkLm5leHQoYXdhaXQgYnVpbGRSZXF1ZXN0RXJyb3IoZXJyb3IsIGZ1bGxSb3V0ZSwgcmVxdWVzdEluaXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25SZWZyZXNoRmFpbHVyZSQubmV4dChlcnJvciBhcyBSZXF1ZXN0RXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","const getOpName = /(query|mutation) ?([\\w\\d-_]+)? ?\\(.*?\\)? \\{/;\nexport const transformGql = (str) => {\n str = Array.isArray(str) ? str.join('') : str;\n const name = getOpName.exec(str);\n return function (variables) {\n const data = { query: str };\n if (variables)\n data['variables'] = JSON.stringify(variables);\n if (name && name.length) {\n const operationName = name[2];\n if (operationName)\n data['operationName'] = name[2];\n }\n return JSON.stringify(data);\n };\n};\nexport const gql = (strings, ...values) => {\n const str = strings.reduce((acc, cur, i) => {\n return acc + cur + (values[i] || '');\n }, '');\n return str;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2dxbC9ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxTQUFTLEdBQUcsNkNBQTZDLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDMUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sVUFBVSxTQUFxRDtRQUNwRSxNQUFNLElBQUksR0FBNEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDckQsSUFBSSxTQUFTO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxhQUFhO2dCQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBNkIsRUFBRSxHQUFHLE1BQWdCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRPcE5hbWUgPSAvKHF1ZXJ5fG11dGF0aW9uKSA/KFtcXHdcXGQtX10rKT8gP1xcKC4qP1xcKT8gXFx7LztcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUdxbCA9IChzdHI6IHN0cmluZykgPT4ge1xuICBzdHIgPSBBcnJheS5pc0FycmF5KHN0cikgPyBzdHIuam9pbignJykgOiBzdHI7XG4gIGNvbnN0IG5hbWUgPSBnZXRPcE5hbWUuZXhlYyhzdHIpO1xuICByZXR1cm4gZnVuY3Rpb24gKHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IHF1ZXJ5OiBzdHIgfTtcbiAgICBpZiAodmFyaWFibGVzKSBkYXRhWyd2YXJpYWJsZXMnXSA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG4gICAgaWYgKG5hbWUgJiYgbmFtZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBuYW1lWzJdO1xuICAgICAgaWYgKG9wZXJhdGlvbk5hbWUpIGRhdGFbJ29wZXJhdGlvbk5hbWUnXSA9IG5hbWVbMl07XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBncWwgPSAoc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLnZhbHVlczogc3RyaW5nW10pID0+IHtcbiAgY29uc3Qgc3RyID0gc3RyaW5ncy5yZWR1Y2UoKGFjYywgY3VyLCBpKSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIGN1ciArICh2YWx1ZXNbaV0gfHwgJycpO1xuICB9LCAnJyk7XG4gIHJldHVybiBzdHI7XG59O1xuIl19","import { filter, of, switchMap, takeWhile } from 'rxjs';\nexport function filterSuccess() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateSuccess(value)));\n };\n}\nexport function filterFailure() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateFailure(value)));\n };\n}\nexport function filterQueryStates(allowedStates) {\n return function (source) {\n return source.pipe(filter((value) => value && allowedStates.includes(value.type)));\n };\n}\nexport function takeUntilResponse() {\n return function (source) {\n return source.pipe(takeWhile((value) => isQueryStateLoading(value), true));\n };\n}\nexport function filterNull() {\n return function (source) {\n return source.pipe(filter((value) => value !== null));\n };\n}\nexport function switchQueryState() {\n return function (source) {\n return source.pipe(switchMap((value) => value?.state$ ?? of(null)));\n };\n}\nexport const isQueryStateLoading = (state) => state?.type === \"LOADING\" /* QueryStateType.Loading */;\nexport const isQueryStateSuccess = (state) => state?.type === \"SUCCESS\" /* QueryStateType.Success */;\nexport const isQueryStateFailure = (state) => state?.type === \"FAILURE\" /* QueryStateType.Failure */;\nexport const isQueryStateCancelled = (state) => state?.type === \"CANCELLED\" /* QueryStateType.Cancelled */;\nexport const isQueryStatePrepared = (state) => state?.type === \"PREPARED\" /* QueryStateType.Prepared */;\nexport const mergeHeaders = (...headers) => {\n return headers.reduce((acc, headers) => {\n if (!headers) {\n return acc;\n }\n return {\n ...acc,\n ...headers,\n };\n }, {});\n};\nexport const isGqlQueryConfig = (config) => {\n if (!config || typeof config !== 'object' || Array.isArray(config)) {\n return false;\n }\n if (!('query' in config)) {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXVCcEUsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUlMLE1BQXFCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQStDLENBQUM7SUFDbEgsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sVUFBdUMsTUFBcUI7UUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztJQUMzRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGFBQStCO0lBQy9ELE9BQU8sVUFBdUMsTUFBcUI7UUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWtCLENBQUM7SUFDdEcsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxVQUFnQyxNQUFxQjtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFVBQWEsTUFBcUI7UUFDdkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBd0IsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sVUFJTCxNQUFxQjtRQUNyQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUd6RCxDQUFDO0lBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBb0MsRUFBb0IsRUFBRSxDQUM1RixLQUFLLEVBQUUsSUFBSSwyQ0FBMkIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQW9DLEVBQW9CLEVBQUUsQ0FDNUYsS0FBSyxFQUFFLElBQUksMkNBQTJCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFvQyxFQUFvQixFQUFFLENBQzVGLEtBQUssRUFBRSxJQUFJLDJDQUEyQixDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBb0MsRUFBc0IsRUFBRSxDQUNoRyxLQUFLLEVBQUUsSUFBSSwrQ0FBNkIsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQW9DLEVBQXFCLEVBQUUsQ0FDOUYsS0FBSyxFQUFFLElBQUksNkNBQTRCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFpRCxFQUFFLEVBQUU7SUFDbkYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQU05QixNQUFlLEVBQzRELEVBQUU7SUFDN0UsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNsRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBSZXF1ZXN0SGVhZGVycyB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEJhc2VBcmd1bWVudHMsXG4gIENhbmNlbGxlZCxcbiAgRmFpbHVyZSxcbiAgR3FsUXVlcnlDb25maWcsXG4gIExvYWRpbmcsXG4gIFByZXBhcmVkLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVEYXRhLFxuICBRdWVyeVN0YXRlUmF3RGF0YSxcbiAgUXVlcnlTdGF0ZVR5cGUsXG4gIFJvdXRlVHlwZSxcbiAgU3VjY2Vzcyxcbn0gZnJvbSAnLi9xdWVyeS50eXBlcyc7XG5cbnR5cGUgT21pdE51bGw8VD4gPSBUIGV4dGVuZHMgbnVsbCA/IG5ldmVyIDogVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclN1Y2Nlc3MoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgVCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsLFxuICAgIFJlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZURhdGE8T21pdE51bGw8VD4+LFxuICAgIFJhd1Jlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZVJhd0RhdGE8T21pdE51bGw8VD4+LFxuICA+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8U3VjY2VzczxSZXNwb25zZSwgUmF3UmVzcG9uc2U+PjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhaWx1cmUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gaXNRdWVyeVN0YXRlRmFpbHVyZSh2YWx1ZSkpKSBhcyBPYnNlcnZhYmxlPEZhaWx1cmU+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUXVlcnlTdGF0ZXMoYWxsb3dlZFN0YXRlczogUXVlcnlTdGF0ZVR5cGVbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICYmIGFsbG93ZWRTdGF0ZXMuaW5jbHVkZXModmFsdWUudHlwZSkpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFrZVVudGlsUmVzcG9uc2UoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGU+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZSh0YWtlV2hpbGUoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVMb2FkaW5nKHZhbHVlKSwgdHJ1ZSkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTnVsbCgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIE9taXROdWxsPFQ+ID0+IHZhbHVlICE9PSBudWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hRdWVyeVN0YXRlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFxuICAgIFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGwsXG4gICAgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gICAgUmF3UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gID4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHN3aXRjaE1hcCgodmFsdWUpID0+IHZhbHVlPy5zdGF0ZSQgPz8gb2YobnVsbCkpKSBhcyBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8XG4gICAgICBPbWl0TnVsbDxSZXNwb25zZT4sXG4gICAgICBPbWl0TnVsbDxSYXdSZXNwb25zZT5cbiAgICA+IHwgbnVsbD47XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVMb2FkaW5nID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIExvYWRpbmcgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmc7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVTdWNjZXNzID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIFN1Y2Nlc3MgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3M7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVGYWlsdXJlID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIEZhaWx1cmUgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmU7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVDYW5jZWxsZWQgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgQ2FuY2VsbGVkID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5DYW5jZWxsZWQ7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVQcmVwYXJlZCA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBQcmVwYXJlZCA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuUHJlcGFyZWQ7XG5cbmV4cG9ydCBjb25zdCBtZXJnZUhlYWRlcnMgPSAoLi4uaGVhZGVyczogQXJyYXk8UmVxdWVzdEhlYWRlcnMgfCBudWxsIHwgdW5kZWZpbmVkPikgPT4ge1xuICByZXR1cm4gaGVhZGVycy5yZWR1Y2UoKGFjYywgaGVhZGVycykgPT4ge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWNjLFxuICAgICAgLi4uaGVhZGVycyxcbiAgICB9O1xuICB9LCB7fSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNHcWxRdWVyeUNvbmZpZyA9IDxcbiAgUmVzcG9uc2UsXG4gIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4gfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gfCB1bmRlZmluZWQsXG4+KFxuICBjb25maWc6IHVua25vd24sXG4pOiBjb25maWcgaXMgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+ID0+IHtcbiAgaWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShjb25maWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3F1ZXJ5JyBpbiBjb25maWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl19","import { BehaviorSubject, interval, Subject, takeUntil, tap } from 'rxjs';\nimport { transformGql } from '../gql';\nimport { buildBody, guessContentType, isAbortRequestError, isRequestError, request, transformMethod, } from '../request';\nimport { filterSuccess, isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, mergeHeaders, takeUntilResponse, } from './query.utils';\nexport class Query {\n get _nextId() {\n return ++this._currentId;\n }\n get state$() {\n return this._state$.asObservable();\n }\n get state() {\n return this._state$.value;\n }\n get isExpired() {\n if (!isQueryStateSuccess(this.state)) {\n return false;\n }\n const ts = this.state.meta.expiresAt;\n if (!ts) {\n return true;\n }\n return ts < Date.now();\n }\n constructor(_client, _queryConfig, _route, _args) {\n this._client = _client;\n this._queryConfig = _queryConfig;\n this._route = _route;\n this._args = _args;\n this._currentId = 0;\n this._abortController = new AbortController();\n this._pollingSubscription = null;\n this._onAbort$ = new Subject();\n this._state$ = new BehaviorSubject({\n type: \"PREPARED\" /* QueryStateType.Prepared */,\n meta: { id: this._currentId },\n });\n }\n clone() {\n return this._client.fetch(this._queryConfig);\n }\n execute(options) {\n if (!this.isExpired && !options?.skipCache && isQueryStateSuccess(this.state)) {\n return this;\n }\n if (this._queryConfig.secure && !this._client.authProvider) {\n throw new Error('Cannot execute secure query without auth provider');\n }\n const id = this._nextId;\n if (isQueryStateLoading(this._state$.value)) {\n this.abort();\n }\n const meta = { id };\n this._state$.next({\n type: \"LOADING\" /* QueryStateType.Loading */,\n meta,\n });\n this._updateUseResultInDependencies();\n let body = null;\n let contentType = null;\n if (isGqlQueryConfig(this._queryConfig)) {\n const queryTemplate = this._queryConfig.query;\n const query = transformGql(queryTemplate);\n contentType = 'application/json';\n body = query(this._args?.variables);\n }\n else {\n body = buildBody(this._args?.body);\n contentType = guessContentType(this._args?.body);\n }\n let authHeader = null;\n if (this._queryConfig.secure) {\n const header = this._client.authProvider?.header;\n if (header) {\n authHeader = header;\n }\n }\n else if (this._client.authProvider?.header) {\n if (this._queryConfig.secure === undefined || this._queryConfig.secure) {\n authHeader = this._client.authProvider.header;\n }\n }\n let headers = mergeHeaders(authHeader, this._args?.headers);\n if (contentType && !headers?.['Content-Type'] && !headers?.['content-type']) {\n if (headers) {\n headers['Content-Type'] = contentType;\n }\n else {\n headers = {\n 'Content-Type': contentType,\n };\n }\n }\n request({\n route: this._route,\n init: {\n method: transformMethod(this._queryConfig.method),\n signal: this._abortController.signal,\n body,\n headers: headers || undefined,\n },\n cacheAdapter: this._client.config.request?.cacheAdapter,\n })\n .then((response) => {\n const isResponseObject = typeof response === 'object';\n const isGql = isGqlQueryConfig(this._queryConfig);\n let responseData = null;\n if (isGql &&\n isResponseObject &&\n !!response.data &&\n typeof response.data === 'object' &&\n 'data' in response.data) {\n responseData = response.data['data'];\n }\n else {\n responseData = response.data;\n }\n const transformedResponse = this._queryConfig.responseTransformer\n ? this._queryConfig.responseTransformer(responseData)\n : responseData;\n this._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n response: transformedResponse,\n rawResponse: responseData,\n meta: { ...meta, expiresAt: response.expiresInTimestamp },\n });\n })\n .catch((error) => this._handleExecuteError(error, meta));\n return this;\n }\n abort() {\n this._abortController.abort();\n this._abortController = new AbortController();\n this._onAbort$.next();\n return this;\n }\n poll(config) {\n if (this._pollingSubscription) {\n return this;\n }\n this._pollingSubscription = interval(config.interval)\n .pipe(takeUntil(config.takeUntil))\n .subscribe(() => this.execute({ skipCache: true }));\n return this;\n }\n stopPolling() {\n this._pollingSubscription?.unsubscribe();\n this._pollingSubscription = null;\n return this;\n }\n _updateUseResultInDependencies() {\n if (!this._args?.useResultIn?.length) {\n return;\n }\n this.state$\n .pipe(filterSuccess(), takeUntil(this._onAbort$), takeUntilResponse(), tap((state) => {\n if (!this._args?.useResultIn) {\n return;\n }\n for (const query of this._args.useResultIn) {\n query._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n meta: { ...state.meta, id: query._nextId },\n rawResponse: state.rawResponse,\n response: state.response,\n });\n }\n }))\n .subscribe();\n }\n _handleExecuteError(error, meta) {\n if (isAbortRequestError(error)) {\n this._state$.next({\n type: \"CANCELLED\" /* QueryStateType.Cancelled */,\n meta,\n });\n }\n else if (isRequestError(error)) {\n this._state$.next({\n type: \"FAILURE\" /* QueryStateType.Failure */,\n error,\n meta,\n });\n }\n else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEMsT0FBTyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCxPQUFPLEVBQ1AsZUFBZSxHQUNoQixNQUFNLFlBQVksQ0FBQztBQWFwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsTUFBTSxPQUFPLEtBQUs7SUFjaEIsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVyQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sRUFBRSxH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UUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2lCQUN6QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxJQUFvQjtRQUM5RCxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixJQUFJLDRDQUEwQjtnQkFDOUIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLElBQUksd0NBQXdCO2dCQUM1QixLQUFLO2dCQUNMLElBQUk7YUFDTCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUM7U0FDYjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyYW5zZm9ybUdxbCB9IGZyb20gJy4uL2dxbCc7XG5pbXBvcnQgeyBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lciwgUXVlcnlDbGllbnQsIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7XG4gIGJ1aWxkQm9keSxcbiAgZ3Vlc3NDb250ZW50VHlwZSxcbiAgaXNBYm9ydFJlcXVlc3RFcnJvcixcbiAgaXNSZXF1ZXN0RXJyb3IsXG4gIE1ldGhvZCBhcyBNZXRob2RUeXBlLFxuICByZXF1ZXN0LFxuICB0cmFuc2Zvcm1NZXRob2QsXG59IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQmFzZUFyZ3VtZW50cyxcbiAgR3FsUXVlcnlDb25maWcsXG4gIFBvbGxDb25maWcsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVNZXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG4gIFJ1blF1ZXJ5T3B0aW9ucyxcbiAgV2l0aFVzZVJlc3VsdEluLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcbmltcG9ydCB7XG4gIGZpbHRlclN1Y2Nlc3MsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIGlzUXVlcnlTdGF0ZUxvYWRpbmcsXG4gIGlzUXVlcnlTdGF0ZVN1Y2Nlc3MsXG4gIG1lcmdlSGVhZGVycyxcbiAgdGFrZVVudGlsUmVzcG9uc2UsXG59IGZyb20gJy4vcXVlcnkudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnk8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyAoQmFzZUFyZ3VtZW50cyAmIFdpdGhVc2VSZXN1bHRJbjxSZXNwb25zZSwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4pIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBNZXRob2QgZXh0ZW5kcyBNZXRob2RUeXBlLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuPiB7XG4gIHByaXZhdGUgX2N1cnJlbnRJZCA9IDA7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBfcG9sbGluZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uQWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeVN0YXRlPFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4sIFJlc3BvbnNlPj47XG5cbiAgcHJpdmF0ZSBnZXQgX25leHRJZCgpIHtcbiAgICByZXR1cm4gKyt0aGlzLl9jdXJyZW50SWQ7XG4gIH1cblxuICBnZXQgc3RhdGUkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0V4cGlyZWQoKSB7XG4gICAgaWYgKCFpc1F1ZXJ5U3RhdGVTdWNjZXNzKHRoaXMuc3RhdGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdHMgPSB0aGlzLnN0YXRlLm1ldGEuZXhwaXJlc0F0O1xuXG4gICAgaWYgKCF0cykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRzIDwgRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NsaWVudDogUXVlcnlDbGllbnQsXG4gICAgcHJpdmF0ZSBfcXVlcnlDb25maWc6XG4gICAgICB8IFJlc3RRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICAgIHByaXZhdGUgX3JvdXRlOiBSb3V0ZSxcbiAgICBwcml2YXRlIF9hcmdzOiBBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMuX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlTdGF0ZTxSZXR1cm5UeXBlPFJlc3BvbnNlVHJhbnNmb3JtZXI+LCBSZXNwb25zZT4+KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlByZXBhcmVkLFxuICAgICAgbWV0YTogeyBpZDogdGhpcy5fY3VycmVudElkIH0sXG4gICAgfSk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBNZXRob2QsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHRoaXMuX3F1ZXJ5Q29uZmlnKTtcbiAgfVxuXG4gIGV4ZWN1dGU8Q29tcHV0ZWRSZXNwb25zZSBleHRlbmRzIFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4+KG9wdGlvbnM/OiBSdW5RdWVyeU9wdGlvbnMpIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBpcmVkICYmICFvcHRpb25zPy5za2lwQ2FjaGUgJiYgaXNRdWVyeVN0YXRlU3VjY2Vzcyh0aGlzLnN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSAmJiAhdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZXhlY3V0ZSBzZWN1cmUgcXVlcnkgd2l0aG91dCBhdXRoIHByb3ZpZGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLl9uZXh0SWQ7XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlTG9hZGluZyh0aGlzLl9zdGF0ZSQudmFsdWUpKSB7XG4gICAgICB0aGlzLmFib3J0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHsgaWQgfTtcblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmcsXG4gICAgICBtZXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVXNlUmVzdWx0SW5EZXBlbmRlbmNpZXMoKTtcblxuICAgIGxldCBib2R5OiBzdHJpbmcgfCBGb3JtRGF0YSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZykpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5VGVtcGxhdGUgPSB0aGlzLl9xdWVyeUNvbmZpZy5xdWVyeTtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdHJhbnNmb3JtR3FsKHF1ZXJ5VGVtcGxhdGUpO1xuXG4gICAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgIGJvZHkgPSBxdWVyeSh0aGlzLl9hcmdzPy52YXJpYWJsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBib2R5ID0gYnVpbGRCb2R5KHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgICAgY29udGVudFR5cGUgPSBndWVzc0NvbnRlbnRUeXBlKHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgIH1cblxuICAgIGxldCBhdXRoSGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5fcXVlcnlDb25maWcuc2VjdXJlKSB7XG4gICAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl9jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXI7XG5cbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgYXV0aEhlYWRlciA9IGhlYWRlcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NsaWVudC5hdXRoUHJvdmlkZXI/LmhlYWRlcikge1xuICAgICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSkge1xuICAgICAgICBhdXRoSGVhZGVyID0gdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlci5oZWFkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGhlYWRlcnMgPSBtZXJnZUhlYWRlcnMoYXV0aEhlYWRlciwgdGhpcy5fYXJncz8uaGVhZGVycyk7XG5cbiAgICBpZiAoY29udGVudFR5cGUgJiYgIWhlYWRlcnM/LlsnQ29udGVudC1UeXBlJ10gJiYgIWhlYWRlcnM/LlsnY29udGVudC10eXBlJ10pIHtcbiAgICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29udGVudFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0PFJlc3BvbnNlPih7XG4gICAgICByb3V0ZTogdGhpcy5fcm91dGUsXG4gICAgICBpbml0OiB7XG4gICAgICAgIG1ldGhvZDogdHJhbnNmb3JtTWV0aG9kKHRoaXMuX3F1ZXJ5Q29uZmlnLm1ldGhvZCksXG4gICAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgY2FjaGVBZGFwdGVyOiB0aGlzLl9jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmNhY2hlQWRhcHRlcixcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUmVzcG9uc2VPYmplY3QgPSB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnO1xuXG4gICAgICAgIGNvbnN0IGlzR3FsID0gaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZyk7XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlRGF0YTogUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzR3FsICYmXG4gICAgICAgICAgaXNSZXNwb25zZU9iamVjdCAmJlxuICAgICAgICAgICEhcmVzcG9uc2UuZGF0YSAmJlxuICAgICAgICAgIHR5cGVvZiByZXNwb25zZS5kYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICdkYXRhJyBpbiByZXNwb25zZS5kYXRhXG4gICAgICAgICkge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IChyZXNwb25zZS5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnZGF0YSddIGFzIFJlc3BvbnNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLmRhdGEgYXMgUmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFJlc3BvbnNlID0gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lclxuICAgICAgICAgID8gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lcihyZXNwb25zZURhdGEpXG4gICAgICAgICAgOiByZXNwb25zZURhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3MsXG4gICAgICAgICAgcmVzcG9uc2U6IHRyYW5zZm9ybWVkUmVzcG9uc2UgYXMgQ29tcHV0ZWRSZXNwb25zZSxcbiAgICAgICAgICByYXdSZXNwb25zZTogcmVzcG9uc2VEYXRhIGFzIFJlc3BvbnNlLFxuICAgICAgICAgIG1ldGE6IHsgLi4ubWV0YSwgZXhwaXJlc0F0OiByZXNwb25zZS5leHBpcmVzSW5UaW1lc3RhbXAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gdGhpcy5faGFuZGxlRXhlY3V0ZUVycm9yKGVycm9yLCBtZXRhKSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9vbkFib3J0JC5uZXh0KCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvbGwoY29uZmlnOiBQb2xsQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBpbnRlcnZhbChjb25maWcuaW50ZXJ2YWwpXG4gICAgICAucGlwZSh0YWtlVW50aWwoY29uZmlnLnRha2VVbnRpbCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSB9KSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0b3BQb2xsaW5nKCkge1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVVzZVJlc3VsdEluRGVwZW5kZW5jaWVzKCkge1xuICAgIGlmICghdGhpcy5fYXJncz8udXNlUmVzdWx0SW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyU3VjY2VzcygpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fb25BYm9ydCQpLFxuICAgICAgICB0YWtlVW50aWxSZXNwb25zZSgpLFxuICAgICAgICB0YXAoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9hcmdzPy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgcXVlcnkgb2YgdGhpcy5fYXJncy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcXVlcnkuX3N0YXRlJC5uZXh0KHtcbiAgICAgICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcyxcbiAgICAgICAgICAgICAgbWV0YTogeyAuLi5zdGF0ZS5tZXRhLCBpZDogcXVlcnkuX25leHRJZCB9LFxuICAgICAgICAgICAgICByYXdSZXNwb25zZTogc3RhdGUucmF3UmVzcG9uc2UsXG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBzdGF0ZS5yZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVFeGVjdXRlRXJyb3IoZXJyb3I6IHVua25vd24sIG1ldGE6IFF1ZXJ5U3RhdGVNZXRhKSB7XG4gICAgaWYgKGlzQWJvcnRSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZCxcbiAgICAgICAgbWV0YSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBtZXRhLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19","import { ChangeDetectorRef, Directive, ErrorHandler, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '../query';\nimport * as i0 from \"@angular/core\";\nexport class QueryDirective {\n get query() {\n return this._query;\n }\n set query(v) {\n this._query = v;\n this._subscribeToQuery();\n }\n get cache() {\n return this._cache;\n }\n set cache(v) {\n this._cache = v;\n }\n constructor(_mainTemplateRef, _viewContainerRef, _errorHandler, _cdr) {\n this._mainTemplateRef = _mainTemplateRef;\n this._viewContainerRef = _viewContainerRef;\n this._errorHandler = _errorHandler;\n this._cdr = _cdr;\n this._isMainViewCreated = false;\n this._subscription = null;\n this._viewContext = {\n $implicit: null,\n query: null,\n raw: null,\n loading: false,\n error: null,\n };\n this._cache = false;\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n _subscribeToQuery() {\n this._subscription?.unsubscribe();\n this._subscription = null;\n if (!this.query) {\n return;\n }\n const sub = this.query.state$.pipe(tap((state) => this._updateView(state))).subscribe();\n this._subscription = sub;\n }\n _updateView(state) {\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n }\n else {\n this._viewContext.loading = false;\n }\n if (isQueryStateSuccess(state)) {\n this._viewContext.query = state.response;\n this._viewContext.$implicit = state.response;\n this._viewContext.raw = state.rawResponse;\n }\n else if (!this.cache) {\n this._viewContext.query = null;\n this._viewContext.$implicit = null;\n this._viewContext.raw = null;\n }\n if (isQueryStateFailure(state)) {\n this._viewContext.error = state.error;\n this._errorHandler.handleError(state.error);\n }\n else {\n this._viewContext.error = null;\n }\n this._cdr.markForCheck();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n}\nQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ErrorHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\nQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: QueryDirective, isStandalone: true, selector: \"[query]\", inputs: { query: \"query\", cache: [\"queryCache\", \"cache\"] }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[query]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ErrorHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { query: [{\n type: Input\n }], cache: [{\n type: Input,\n args: ['queryCache']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixtQkFBbUIsR0FJcEIsTUFBTSxVQUFVLENBQUM7O0FBZ0JsQixNQUFNLE9BQU8sY0FBYztJQVl6QixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLENBQUk7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHRCxZQUNVLGdCQUE4QyxFQUM5QyxpQkFBbUMsRUFDbkMsYUFBMkIsRUFDM0IsSUFBdUI7UUFIdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBbkN6Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBd0Is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OUQsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs0TEFjSyxLQUFLO3NCQURSLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFcnJvckhhbmRsZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFueVF1ZXJ5LFxuICBpc1F1ZXJ5U3RhdGVGYWlsdXJlLFxuICBpc1F1ZXJ5U3RhdGVMb2FkaW5nLFxuICBpc1F1ZXJ5U3RhdGVTdWNjZXNzLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgUXVlcnlDb250ZXh0PFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+IHtcbiAgJGltcGxpY2l0OiBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgcXVlcnk6IFF1ZXJ5UmVzcG9uc2VUeXBlPFE+O1xuICByYXc6IFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogUmVxdWVzdEVycm9yPHVua25vd24+IHwgbnVsbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3F1ZXJ5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RGlyZWN0aXZlPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9pc01haW5WaWV3Q3JlYXRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250ZXh0OiBRdWVyeUNvbnRleHQ8UT4gPSB7XG4gICAgJGltcGxpY2l0OiBudWxsIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFE+LFxuICAgIHF1ZXJ5OiBudWxsIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFE+LFxuICAgIHJhdzogbnVsbCBhcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxRPixcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfTtcblxuICBASW5wdXQoKVxuICBnZXQgcXVlcnkoKTogUSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG4gIHNldCBxdWVyeSh2OiBRKSB7XG4gICAgdGhpcy5fcXVlcnkgPSB2O1xuXG4gICAgdGhpcy5fc3Vic2NyaWJlVG9RdWVyeSgpO1xuICB9XG4gIHByaXZhdGUgX3F1ZXJ5ITogUTtcblxuICBASW5wdXQoJ3F1ZXJ5Q2FjaGUnKVxuICBnZXQgY2FjaGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlO1xuICB9XG4gIHNldCBjYWNoZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2FjaGUgPSB2O1xuICB9XG4gIHByaXZhdGUgX2NhY2hlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWFpblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxRdWVyeUNvbnRleHQ8UT4+LFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICAgIGRpcjogUXVlcnlEaXJlY3RpdmU8UT4sXG4gICAgY3R4OiB1bmtub3duLFxuICApOiBjdHggaXMgUXVlcnlDb250ZXh0PFE+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlck1haW5WaWV3KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb1F1ZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gdGhpcy5xdWVyeS5zdGF0ZSQucGlwZSh0YXAoKHN0YXRlKSA9PiB0aGlzLl91cGRhdGVWaWV3KHN0YXRlKSkpLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmlldyhzdGF0ZTogUXVlcnlTdGF0ZSkge1xuICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSkge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlU3VjY2VzcyhzdGF0ZSkpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnF1ZXJ5ID0gc3RhdGUucmVzcG9uc2UgYXMgUXVlcnlSZXNwb25zZVR5cGU8UT47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBzdGF0ZS5yZXNwb25zZSBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnJhdyA9IHN0YXRlLnJhd1Jlc3BvbnNlIGFzIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnF1ZXJ5ID0gbnVsbCBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LiRpbXBsaWNpdCA9IG51bGwgYXMgUXVlcnlSZXNwb25zZVR5cGU8UT47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5yYXcgPSBudWxsIGFzIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICAgIH1cblxuICAgIGlmIChpc1F1ZXJ5U3RhdGVGYWlsdXJlKHN0YXRlKSkge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQuZXJyb3IgPSBzdGF0ZS5lcnJvcjtcblxuICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKHN0YXRlLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQuZXJyb3IgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlck1haW5WaWV3KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNNYWluVmlld0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuX2lzTWFpblZpZXdDcmVhdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX21haW5UZW1wbGF0ZVJlZiwgdGhpcy5fdmlld0NvbnRleHQpO1xuICAgIH1cbiAgfVxufVxuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BehaviorSubject } from 'rxjs';\nimport { filterSuccess, takeUntilResponse } from '../query';\nexport class InfinityQuery {\n get currentPage$() {\n return this._currentPage$.asObservable();\n }\n get currentPage() {\n return this._currentPage$.getValue();\n }\n get currentCalculatedPage$() {\n return this._currentCalculatedPage$.asObservable();\n }\n get currentCalculatedPage() {\n return this._currentCalculatedPage$.getValue();\n }\n get totalPages$() {\n return this._totalPages$.asObservable();\n }\n get totalPages() {\n return this._totalPages$.getValue();\n }\n get itemsPerPage$() {\n return this._itemsPerPage$.asObservable();\n }\n get itemsPerPage() {\n return this._itemsPerPage$.getValue();\n }\n get currentQuery$() {\n return this._currentQuery$.asObservable();\n }\n get currentQuery() {\n return this._currentQuery$.getValue();\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n constructor(_config) {\n this._config = _config;\n this._currentPage$ = new BehaviorSubject(null);\n this._currentCalculatedPage$ = new BehaviorSubject(null);\n this._totalPages$ = new BehaviorSubject(null);\n this._itemsPerPage$ = new BehaviorSubject(this._config.limitParam?.value ?? 10);\n this._currentQuery$ = new BehaviorSubject(null);\n this._data$ = new BehaviorSubject([]);\n this._subscriptions = [];\n }\n nextPage() {\n const newPage = (this._currentPage$.value ?? 0) + 1;\n const calculatedPage = this._config?.pageParam?.valueCalculator?.({\n page: newPage,\n totalPages: this.totalPages,\n itemsPerPage: this.itemsPerPage,\n }) ?? newPage;\n const args = this._prepareArgs(this._config, calculatedPage);\n const query = this._config.queryCreator.prepare(args).execute();\n this._handleNewQuery(query);\n this._currentPage$.next(newPage);\n this._currentCalculatedPage$.next(calculatedPage);\n this._currentQuery$.next(query);\n }\n reset(newConfig) {\n this._destroy();\n this._config = { ...this._config, ...(newConfig ?? {}) };\n this._currentPage$.next(null);\n this._currentCalculatedPage$.next(null);\n this._totalPages$.next(null);\n this._itemsPerPage$.next(this._config.limitParam?.value ?? 10);\n this._currentQuery$.next(null);\n this._data$.next([]);\n }\n _destroy() {\n this._subscriptions.forEach((sub) => sub.unsubscribe());\n this._subscriptions = [];\n }\n _handleNewQuery(query) {\n const stateChangesSub = query.state$.pipe(takeUntilResponse(), filterSuccess()).subscribe({\n next: (state) => {\n let newData = this._config?.response.valueExtractor(state.response);\n if (this._config.response.reverse) {\n newData = [...newData].reverse();\n }\n if (this._config.response.appendItemsTo === 'start') {\n newData = [...newData, ...this.data];\n }\n else {\n newData = [...this.data, ...newData];\n }\n this._data$.next(newData);\n const totalPages = this._config.response.totalPagesExtractor?.({\n response: state.response,\n itemsPerPage: this.itemsPerPage,\n }) ??\n state.response?.totalPages ??\n null;\n this._totalPages$.next(totalPages);\n },\n complete: () => {\n this._subscriptions = this._subscriptions.filter((sub) => sub !== stateChangesSub);\n },\n });\n this._subscriptions.push(stateChangesSub);\n }\n _prepareArgs(config, page) {\n const pageParamLocation = this._getPageParamLocation(config?.pageParam?.location);\n const pageArgs = {\n [pageParamLocation]: {\n [config?.pageParam?.key ?? 'page']: page,\n },\n };\n const limitParamLocation = this._getPageParamLocation(config?.limitParam?.location);\n const limitArgs = {\n [limitParamLocation]: {\n [config?.limitParam?.key ?? 'limit']: config?.limitParam?.value ?? 10,\n },\n };\n const defaultConfig = config?.defaultArgs ?? {};\n const mergedArgs = pageParamLocation === limitParamLocation\n ? {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[limitParamLocation],\n ...limitArgs[limitParamLocation],\n },\n }\n : {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[pageParamLocation],\n },\n [limitParamLocation]: {\n ...(config?.defaultArgs?.[limitParamLocation] ?? {}),\n ...limitArgs[limitParamLocation],\n },\n };\n return mergedArgs;\n }\n _getPageParamLocation(location) {\n const loc = location ?? 'query';\n switch (loc) {\n case 'path':\n return 'pathParams';\n case 'query':\n return 'queryParams';\n case 'body':\n return 'body';\n case 'header':\n return 'headers';\n case 'variable':\n return 'variables';\n default:\n throw new Error(`Invalid pageParamLocation: ${loc}`);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSTVFLE1BQU0sT0FBTyxhQUFhO0lBZ0J4QixJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBb0IsT0FBaUY7UUFBakYsWUFBTyxHQUFQLE9BQU8sQ0FBMEU7UUF6RHBGLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3pELDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNuRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBQ3pELFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBNkIsQ0FBQyxDQUFDO1FBRXZGLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztJQWtENEQsQ0FBQztJQUV6RyxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLElBQUksT0FBTyxDQUFDO1FBRWhCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUU3RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFXLENBQUM7UUFDekUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQ0gsU0FHQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUE2QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFZO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEYsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFcEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFzQixDQUFDO2lCQUN0RDtnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsS0FBSyxPQUFPLEVBQUU7b0JBQ25ELE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBcUIsQ0FBQztpQkFDMUQ7cUJBQU07b0JBQ0wsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFxQixDQUFDO2lCQUMxRDtnQkFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFMUIsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDMUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQ2hDLENBQUM7b0JBQ0YsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVO29CQUMxQixJQUFJLENBQUM7Z0JBRVAsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWdGLEVBQUUsSUFBWTtRQUNqSCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWxGLE1BQU0sUUFBUSxHQUFHO1lBQ2YsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUk7YUFDekM7U0FDRixDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRixNQUFNLFNBQVMsR0FBRztZQUNoQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3BCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTthQUN0RTtTQUNGLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUVoRCxNQUFNLFVBQVUsR0FDZCxpQkFBaUIsS0FBSyxrQkFBa0I7WUFDdEMsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsYUFBYTtnQkFDaEIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO29CQUNuQixHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO29CQUNuRCxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDL0IsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUM7aUJBQ2pDO2FBQ0Y7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsR0FBRyxhQUFhO2dCQUNoQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7b0JBQ25CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25ELEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQjtnQkFDRCxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQ3BCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BELEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFDO2lCQUNqQzthQUNGLENBQUM7UUFFUixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBZ0Q7UUFDNUUsTUFBTSxHQUFHLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUVoQyxRQUFRLEdBQUcsRUFBRTtZQUNYLEtBQUssTUFBTTtnQkFDVCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxhQUFhLENBQUM7WUFDdkIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxXQUFXLENBQUM7WUFDckI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJTdWNjZXNzLCBRdWVyeVN0YXRlRGF0YSwgdGFrZVVudGlsUmVzcG9uc2UgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnk8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudENhbGN1bGF0ZWRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsUGFnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXNQZXJQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5maW5pdHlSZXNwb25zZT4oW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgZ2V0IGN1cnJlbnRQYWdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFnZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50Q2FsY3VsYXRlZFBhZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Q2FsY3VsYXRlZFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRDYWxjdWxhdGVkUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudENhbGN1bGF0ZWRQYWdlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IHRvdGFsUGFnZXMkKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0b3RhbFBhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXRlbXNQZXJQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudFF1ZXJ5JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50UXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRRdWVyeSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBkYXRhJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogSW5maW5pdHlRdWVyeUNvbmZpZzxRdWVyeUNyZWF0b3IsIEFyZ3MsIFF1ZXJ5UmVzcG9uc2UsIEluZmluaXR5UmVzcG9uc2U+KSB7fVxuXG4gIG5leHRQYWdlKCkge1xuICAgIGNvbnN0IG5ld1BhZ2UgPSAodGhpcy5fY3VycmVudFBhZ2UkLnZhbHVlID8/IDApICsgMTtcbiAgICBjb25zdCBjYWxjdWxhdGVkUGFnZSA9XG4gICAgICB0aGlzLl9jb25maWc/LnBhZ2VQYXJhbT8udmFsdWVDYWxjdWxhdG9yPy4oe1xuICAgICAgICBwYWdlOiBuZXdQYWdlLFxuICAgICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMsXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5pdGVtc1BlclBhZ2UsXG4gICAgICB9KSA/PyBuZXdQYWdlO1xuXG4gICAgY29uc3QgYXJncyA9IHRoaXMuX3ByZXBhcmVBcmdzKHRoaXMuX2NvbmZpZywgY2FsY3VsYXRlZFBhZ2UpO1xuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLl9jb25maWcucXVlcnlDcmVhdG9yLnByZXBhcmUoYXJncykuZXhlY3V0ZSgpIGFzIFF1ZXJ5O1xuICAgIHRoaXMuX2hhbmRsZU5ld1F1ZXJ5KHF1ZXJ5KTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG5ld1BhZ2UpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChjYWxjdWxhdGVkUGFnZSk7XG4gICAgdGhpcy5fY3VycmVudFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcbiAgfVxuXG4gIHJlc2V0KFxuICAgIG5ld0NvbmZpZz86IE9taXQ8XG4gICAgICBJbmZpbml0eVF1ZXJ5Q29uZmlnPFF1ZXJ5Q3JlYXRvciwgQXJncywgUXVlcnlSZXNwb25zZSwgSW5maW5pdHlSZXNwb25zZT4sXG4gICAgICAncXVlcnlDcmVhdG9yJyB8ICdyZXNwb25zZSdcbiAgICA+LFxuICApIHtcbiAgICB0aGlzLl9kZXN0cm95KCk7XG5cbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuX2NvbmZpZywgLi4uKG5ld0NvbmZpZyA/PyB7fSkgfTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChudWxsKTtcbiAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2l0ZW1zUGVyUGFnZSQubmV4dCh0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICAgIHRoaXMuX2N1cnJlbnRRdWVyeSQubmV4dChudWxsKTtcblxuICAgIHRoaXMuX2RhdGEkLm5leHQoW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuICB9XG5cbiAgX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOZXdRdWVyeShxdWVyeTogUXVlcnkpIHtcbiAgICBjb25zdCBzdGF0ZUNoYW5nZXNTdWIgPSBxdWVyeS5zdGF0ZSQucGlwZSh0YWtlVW50aWxSZXNwb25zZSgpLCBmaWx0ZXJTdWNjZXNzKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoc3RhdGUpID0+IHtcbiAgICAgICAgbGV0IG5ld0RhdGEgPSB0aGlzLl9jb25maWc/LnJlc3BvbnNlLnZhbHVlRXh0cmFjdG9yKHN0YXRlLnJlc3BvbnNlKTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLnJlc3BvbnNlLnJldmVyc2UpIHtcbiAgICAgICAgICBuZXdEYXRhID0gWy4uLm5ld0RhdGFdLnJldmVyc2UoKSBhcyBJbmZpbml0eVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5yZXNwb25zZS5hcHBlbmRJdGVtc1RvID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5uZXdEYXRhLCAuLi50aGlzLmRhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGEsIC4uLm5ld0RhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KG5ld0RhdGEpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPVxuICAgICAgICAgIHRoaXMuX2NvbmZpZy5yZXNwb25zZS50b3RhbFBhZ2VzRXh0cmFjdG9yPy4oe1xuICAgICAgICAgICAgcmVzcG9uc2U6IHN0YXRlLnJlc3BvbnNlLFxuICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLml0ZW1zUGVyUGFnZSxcbiAgICAgICAgICB9KSA/P1xuICAgICAgICAgIHN0YXRlLnJlc3BvbnNlPy50b3RhbFBhZ2VzID8/XG4gICAgICAgICAgbnVsbDtcblxuICAgICAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KHRvdGFsUGFnZXMpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmZpbHRlcigoc3ViKSA9PiBzdWIgIT09IHN0YXRlQ2hhbmdlc1N1Yik7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHN0YXRlQ2hhbmdlc1N1Yik7XG4gIH1cblxuICBwcml2YXRlIF9wcmVwYXJlQXJncyhjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPiwgcGFnZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZVBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LnBhZ2VQYXJhbT8ubG9jYXRpb24pO1xuXG4gICAgY29uc3QgcGFnZUFyZ3MgPSB7XG4gICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LnBhZ2VQYXJhbT8ua2V5ID8/ICdwYWdlJ106IHBhZ2UsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBsaW1pdFBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LmxpbWl0UGFyYW0/LmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IGxpbWl0QXJncyA9IHtcbiAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LmxpbWl0UGFyYW0/LmtleSA/PyAnbGltaXQnXTogY29uZmlnPy5saW1pdFBhcmFtPy52YWx1ZSA/PyAxMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBjb25maWc/LmRlZmF1bHRBcmdzID8/IHt9O1xuXG4gICAgY29uc3QgbWVyZ2VkQXJncyA9XG4gICAgICBwYWdlUGFyYW1Mb2NhdGlvbiA9PT0gbGltaXRQYXJhbUxvY2F0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdENvbmZpZyxcbiAgICAgICAgICAgIFtwYWdlUGFyYW1Mb2NhdGlvbl06IHtcbiAgICAgICAgICAgICAgLi4uKGNvbmZpZz8uZGVmYXVsdEFyZ3M/LltwYWdlUGFyYW1Mb2NhdGlvbl0gPz8ge30pLFxuICAgICAgICAgICAgICAuLi5wYWdlQXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgICAuLi5saW1pdEFyZ3NbbGltaXRQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRDb25maWcsXG4gICAgICAgICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bcGFnZVBhcmFtTG9jYXRpb25dID8/IHt9KSxcbiAgICAgICAgICAgICAgLi4ucGFnZUFyZ3NbcGFnZVBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bbGltaXRQYXJhbUxvY2F0aW9uXSA/PyB7fSksXG4gICAgICAgICAgICAgIC4uLmxpbWl0QXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEFyZ3M7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYWdlUGFyYW1Mb2NhdGlvbihsb2NhdGlvbjogSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiA/PyAncXVlcnknO1xuXG4gICAgc3dpdGNoIChsb2MpIHtcbiAgICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgICByZXR1cm4gJ3BhdGhQYXJhbXMnO1xuICAgICAgY2FzZSAncXVlcnknOlxuICAgICAgICByZXR1cm4gJ3F1ZXJ5UGFyYW1zJztcbiAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgICByZXR1cm4gJ2JvZHknO1xuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgcmV0dXJuICdoZWFkZXJzJztcbiAgICAgIGNhc2UgJ3ZhcmlhYmxlJzpcbiAgICAgICAgcmV0dXJuICd2YXJpYWJsZXMnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhZ2VQYXJhbUxvY2F0aW9uOiAke2xvY31gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","export const createInfinityQueryConfig = (config) => config;\nexport const skipPaginationPageParamCalculator = ({ page, itemsPerPage }) => itemsPerPage * (page - 1);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FPdkMsTUFBZ0YsRUFDaEYsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUE4QixFQUFFLEVBQUUsQ0FDdEcsWUFBWSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTdGF0ZURhdGEgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgUGFnZVBhcmFtQ2FsY3VsYXRvck9wdGlvbnMgfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZmluaXR5UXVlcnlDb25maWcgPSA8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+KFxuICBjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPixcbikgPT4gY29uZmlnO1xuXG5leHBvcnQgY29uc3Qgc2tpcFBhZ2luYXRpb25QYWdlUGFyYW1DYWxjdWxhdG9yID0gKHsgcGFnZSwgaXRlbXNQZXJQYWdlIH06IFBhZ2VQYXJhbUNhbGN1bGF0b3JPcHRpb25zKSA9PlxuICBpdGVtc1BlclBhZ2UgKiAocGFnZSAtIDEpO1xuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectorRef, Directive, ErrorHandler, inject, InjectionToken, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { DestroyService } from '@ethlete/core';\nimport { BehaviorSubject, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { InfinityQuery } from '../infinite-query';\nimport { isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess } from '../query';\nimport * as i0 from \"@angular/core\";\nexport const INFINITY_QUERY_TOKEN = new InjectionToken('INFINITY_QUERY_TOKEN');\nexport class InfinityQueryDirective {\n constructor() {\n this._queryConfigChanged$ = new Subject();\n this._viewContext = {\n $implicit: null,\n infinityQuery: null,\n loading: false,\n error: null,\n isFirstLoad: false,\n canLoadMore: false,\n currentPage: null,\n currentCalculatedPage: null,\n totalPages: null,\n itemsPerPage: null,\n };\n this._infinityQueryInstance = null;\n this._destroy$ = inject(DestroyService).destroy$;\n this._cdr = inject(ChangeDetectorRef);\n this._viewContainerRef = inject(ViewContainerRef);\n this._mainTemplateRef = inject((TemplateRef));\n this._errorHandler = inject(ErrorHandler);\n this._data$ = new BehaviorSubject([]);\n this._isMainViewCreated = false;\n }\n get infinityQuery() {\n return this._infinityQuery;\n }\n set infinityQuery(v) {\n this._cleanup();\n this._infinityQuery = v;\n this._infinityQueryInstance = this._setupInfinityQuery(v);\n this._loadNextPage();\n }\n get context() {\n return this._viewContext;\n }\n get instance() {\n return this._infinityQueryInstance;\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this.instance?._destroy();\n }\n _setupInfinityQuery(config) {\n const instance = new InfinityQuery(config);\n instance.currentQuery$\n .pipe(switchMap((q) => q?.state$ ?? of(null)), tap((state) => {\n this._viewContext.currentPage = instance.currentPage;\n this._viewContext.totalPages = instance.totalPages;\n this._viewContext.itemsPerPage = instance.itemsPerPage;\n this._viewContext.canLoadMore =\n (instance.totalPages && instance.currentPage && instance.totalPages > instance.currentPage) || false;\n this._viewContext.currentCalculatedPage = instance.currentCalculatedPage;\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = this.context.infinityQuery === null;\n }\n else if (isQueryStateFailure(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = state.error;\n this._viewContext.isFirstLoad = false;\n this._errorHandler.handleError(state.error);\n }\n else if (isQueryStateSuccess(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = false;\n }\n else {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n instance.data$\n .pipe(tap((data) => {\n this._viewContext.infinityQuery = this._viewContext.$implicit = data;\n this._data$.next(data);\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n return instance;\n }\n _loadNextPage() {\n if (!this._infinityQueryInstance) {\n return;\n }\n this._infinityQueryInstance.nextPage();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n _cleanup() {\n this._queryConfigChanged$.next(true);\n this.instance?._destroy();\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n}\nInfinityQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryDirective, isStandalone: true, selector: \"[infinityQuery]\", inputs: { infinityQuery: \"infinityQuery\" }, providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService], exportAs: [\"infinityQuery\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQuery]',\n exportAs: 'infinityQuery',\n standalone: true,\n providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService],\n }]\n }], propDecorators: { infinityQuery: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBaUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBa0J4RyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsc0JBQXNCLENBQUMsQ0FBQztBQVM1RyxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBVW1CLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDOUMsaUJBQVksR0FBNEI7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxJQUFJO1lBRVgsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLElBQUk7WUFDakIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZ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RUFBRSxFQUFFLGNBQWMsQ0FBQztpQkFDcEc7OEJBK0JLLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFcnJvckhhbmRsZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluZmluaXR5UXVlcnksIEluZmluaXR5UXVlcnlDb25maWcgfSBmcm9tICcuLi9pbmZpbml0ZS1xdWVyeSc7XG5pbXBvcnQgeyBCYXNlQXJndW1lbnRzLCBpc1F1ZXJ5U3RhdGVGYWlsdXJlLCBpc1F1ZXJ5U3RhdGVMb2FkaW5nLCBpc1F1ZXJ5U3RhdGVTdWNjZXNzIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgQW55UXVlcnlDcmVhdG9yIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgSW5maW5pdHlRdWVyeUNvbnRleHQ8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+IHtcbiAgJGltcGxpY2l0OiBRWydyZXNwb25zZSddWydhcnJheVR5cGUnXSB8IG51bGw7XG4gIGluZmluaXR5UXVlcnk6IFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IFJlcXVlc3RFcnJvcjx1bmtub3duPiB8IG51bGw7XG5cbiAgaXNGaXJzdExvYWQ6IGJvb2xlYW47XG4gIGNhbkxvYWRNb3JlOiBib29sZWFuO1xuICBjdXJyZW50UGFnZTogbnVtYmVyIHwgbnVsbDtcbiAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudW1iZXIgfCBudWxsO1xuICB0b3RhbFBhZ2VzOiBudW1iZXIgfCBudWxsO1xuICBpdGVtc1BlclBhZ2U6IG51bWJlciB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBJTkZJTklUWV9RVUVSWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPGFueT4+KCdJTkZJTklUWV9RVUVSWV9UT0tFTicpO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeV0nLFxuICBleHBvcnRBczogJ2luZmluaXR5UXVlcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElORklOSVRZX1FVRVJZX1RPS0VOLCB1c2VFeGlzdGluZzogSW5maW5pdHlRdWVyeURpcmVjdGl2ZSB9LCBEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnlEaXJlY3RpdmU8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlDb25maWdDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250ZXh0OiBJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPiA9IHtcbiAgICAkaW1wbGljaXQ6IG51bGwsXG4gICAgaW5maW5pdHlRdWVyeTogbnVsbCxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcblxuICAgIGlzRmlyc3RMb2FkOiBmYWxzZSxcbiAgICBjYW5Mb2FkTW9yZTogZmFsc2UsXG4gICAgY3VycmVudFBhZ2U6IG51bGwsXG4gICAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudWxsLFxuICAgIHRvdGFsUGFnZXM6IG51bGwsXG4gICAgaXRlbXNQZXJQYWdlOiBudWxsLFxuICB9O1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX3NldHVwSW5maW5pdHlRdWVyeT4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95U2VydmljZSkuZGVzdHJveSQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21haW5UZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPj4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcnJvckhhbmRsZXIgPSBpbmplY3QoRXJyb3JIYW5kbGVyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UVsncmVzcG9uc2UnXVsnYXJyYXlUeXBlJ10+KFtdKTtcblxuICBwcml2YXRlIF9pc01haW5WaWV3Q3JlYXRlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbmZpbml0eVF1ZXJ5KCk6IFEge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5O1xuICB9XG4gIHNldCBpbmZpbml0eVF1ZXJ5KHY6IFEpIHtcbiAgICB0aGlzLl9jbGVhbnVwKCk7XG5cbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5ID0gdjtcbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2UgPSB0aGlzLl9zZXR1cEluZmluaXR5UXVlcnkodik7XG4gICAgdGhpcy5fbG9hZE5leHRQYWdlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfaW5maW5pdHlRdWVyeSE6IFE7XG5cbiAgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdDb250ZXh0O1xuICB9XG5cbiAgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U7XG4gIH1cblxuICBnZXQgZGF0YSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmdldFZhbHVlKCk7XG4gIH1cblxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxRIGV4dGVuZHMgSW5maW5pdHlRdWVyeUNvbmZpZzxBbnlRdWVyeUNyZWF0b3IsIEJhc2VBcmd1bWVudHMsIGFueSwgdW5rbm93bltdPj4oXG4gICAgZGlyOiBJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPFE+LFxuICAgIGN0eDogdW5rbm93bixcbiAgKTogY3R4IGlzIEluZmluaXR5UXVlcnlDb250ZXh0PFE+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlck1haW5WaWV3KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbmZpbml0eVF1ZXJ5KGNvbmZpZzogUSkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEluZmluaXR5UXVlcnkoY29uZmlnKTtcblxuICAgIGluc3RhbmNlLmN1cnJlbnRRdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHEpID0+IHE/LnN0YXRlJCA/PyBvZihudWxsKSksXG4gICAgICAgIHRhcCgoc3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jdXJyZW50UGFnZSA9IGluc3RhbmNlLmN1cnJlbnRQYWdlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBpbnN0YW5jZS50b3RhbFBhZ2VzO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0Lml0ZW1zUGVyUGFnZSA9IGluc3RhbmNlLml0ZW1zUGVyUGFnZTtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9XG4gICAgICAgICAgICAoaW5zdGFuY2UudG90YWxQYWdlcyAmJiBpbnN0YW5jZS5jdXJyZW50UGFnZSAmJiBpbnN0YW5jZS50b3RhbFBhZ2VzID4gaW5zdGFuY2UuY3VycmVudFBhZ2UpIHx8IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRDYWxjdWxhdGVkUGFnZSA9IGluc3RhbmNlLmN1cnJlbnRDYWxjdWxhdGVkUGFnZTtcblxuICAgICAgICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IHRoaXMuY29udGV4dC5pbmZpbml0eVF1ZXJ5ID09PSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gc3RhdGUuZXJyb3I7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKHN0YXRlLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LiRpbXBsaWNpdCA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmlzRmlyc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuY3VycmVudFBhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuaXRlbXNQZXJQYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KFtdKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fcXVlcnlDb25maWdDaGFuZ2VkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBpbnN0YW5jZS5kYXRhJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmluZmluaXR5UXVlcnkgPSB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBkYXRhIGFzIFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KGRhdGEpO1xuXG4gICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3F1ZXJ5Q29uZmlnQ2hhbmdlZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgX2xvYWROZXh0UGFnZSgpIHtcbiAgICBpZiAoIXRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZS5uZXh0UGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTWFpblZpZXcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01haW5WaWV3Q3JlYXRlZCkge1xuICAgICAgdGhpcy5faXNNYWluVmlld0NyZWF0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbWFpblRlbXBsYXRlUmVmLCB0aGlzLl92aWV3Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW51cCgpIHtcbiAgICB0aGlzLl9xdWVyeUNvbmZpZ0NoYW5nZWQkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBudWxsO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQuaXNGaXJzdExvYWQgPSBmYWxzZTtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRQYWdlID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pdGVtc1BlclBhZ2UgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgdGhpcy5fZGF0YSQubmV4dChbXSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, inject, Input } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { INFINITY_QUERY_TOKEN } from './infinity-query.directive';\nimport * as i0 from \"@angular/core\";\nexport class InfinityQueryTriggerDirective {\n constructor() {\n this._elementRef = inject((ElementRef));\n this._infinityQuery = inject(INFINITY_QUERY_TOKEN);\n this._destroy = new Subject();\n this._observer = null;\n this.click$ = fromEvent(this._elementRef.nativeElement, 'click');\n this.scrollContainerSelector = null;\n }\n ngOnInit() {\n const isInteractive = this._elementRef.nativeElement.hasAttribute('infinityQueryTrigger');\n if (isInteractive) {\n this.click$.pipe(takeUntil(this._destroy)).subscribe(() => this._infinityQuery._loadNextPage());\n }\n else {\n this._setupIntersectionObserver();\n }\n }\n ngOnDestroy() {\n this._destroy.next(true);\n this._destroy.unsubscribe();\n this._observer?.disconnect();\n }\n _setupIntersectionObserver() {\n this._observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !this._infinityQuery.context.loading) {\n this._infinityQuery._loadNextPage();\n }\n }, {\n root: this.scrollContainerSelector ? document.querySelector(this.scrollContainerSelector) : null,\n rootMargin: '0px',\n threshold: 1.0,\n });\n this._observer.observe(this._elementRef.nativeElement);\n }\n}\nInfinityQueryTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryTriggerDirective, isStandalone: true, selector: \"[infinityQueryTrigger], infinity-query-trigger\", inputs: { scrollContainerSelector: \"scrollContainerSelector\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQueryTrigger], infinity-query-trigger',\n standalone: true,\n }]\n }], propDecorators: { scrollContainerSelector: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnktdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZGlyZWN0aXZlcy9pbmZpbml0eS1xdWVyeS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsY0FBUyxHQUFnQyxJQUFJLENBQUM7UUFFdEQsV0FBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUc1RCw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0tBb0MvQztJQWxDQyxRQUFRO1FBQ04sTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFMUYsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDakc7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQ3ZDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekIsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxFQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRyxVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsR0FBRztTQUNmLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7MEhBN0NVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBV0MsdUJBQXVCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElORklOSVRZX1FVRVJZX1RPS0VOIH0gZnJvbSAnLi9pbmZpbml0eS1xdWVyeS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeVRyaWdnZXJdLCBpbmZpbml0eS1xdWVyeS10cmlnZ2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5maW5pdHlRdWVyeVRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5ID0gaW5qZWN0KElORklOSVRZX1FVRVJZX1RPS0VOKTtcblxuICBwcml2YXRlIF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY2xpY2skID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyk7XG5cbiAgQElucHV0KClcbiAgc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW50ZXJhY3RpdmUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdpbmZpbml0eVF1ZXJ5VHJpZ2dlcicpO1xuXG4gICAgaWYgKGlzSW50ZXJhY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xpY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2Rlc3Ryb3kudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcblxuICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgIXRoaXMuX2luZmluaXR5UXVlcnkuY29udGV4dC5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IpIDogbnVsbCxcbiAgICAgICAgcm9vdE1hcmdpbjogJzBweCcsXG4gICAgICAgIHRocmVzaG9sZDogMS4wLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iXX0=","export class QueryStore {\n constructor(_config) {\n this._config = _config;\n this._store = new Map();\n this._garbageCollector = null;\n }\n add(id, query) {\n this._store.set(id, query);\n this._initGarbageCollector();\n this._logState(id, query, 'SET');\n }\n get(id) {\n return this._store.get(id) ?? null;\n }\n remove(id) {\n this._store.delete(id);\n this._logState(id, null, 'REMOVE');\n }\n _logState(key, item, operation) {\n if (!this._config?.enableChangeLogging)\n return;\n const stateAsJson = {};\n this._store.forEach((value, key) => {\n stateAsJson[key] = value;\n });\n console.log(`%c[${operation}] ${key}`, 'font-weight: bold');\n console.log({ operation, key, item });\n console.log(stateAsJson);\n }\n _initGarbageCollector() {\n if (this._garbageCollector !== null) {\n return;\n }\n this._logGarbageCollector('Start');\n this._garbageCollector = window.setInterval(() => {\n this._runGarbageCollector();\n }, 15000);\n }\n _stopGarbageCollector() {\n if (this._garbageCollector !== null) {\n window.clearInterval(this._garbageCollector);\n this._garbageCollector = null;\n }\n }\n _runGarbageCollector() {\n this._logGarbageCollector('Collecting...');\n this._store.forEach((item, key) => {\n if (item.isExpired) {\n this.remove(key);\n }\n });\n this._logGarbageCollector('Collection done');\n if (!this._store.size) {\n this._stopGarbageCollector();\n this._logGarbageCollector('Stop');\n }\n }\n _logGarbageCollector(action) {\n if (!this._config?.enableGarbageCollectorLogging)\n return;\n console.log(`%cGC: ${action}`, 'color: yellow; font-weight: bold');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktc3RvcmUvcXVlcnktc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFDVSxPQUdQO1FBSE8sWUFBTyxHQUFQLE9BQU8sQ0FHZDtRQVBjLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0lBTzdDLENBQUM7SUFFSixHQUFHLENBQUMsRUFBVSxFQUFFLEtBQWU7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFrQixFQUFFLElBQXFCLEVBQUUsU0FBaUI7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1lBQUUsT0FBTztRQUUvQyxNQUFNLFdBQVcsR0FBNkIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2pDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sU0FBUyxLQUFLLEdBQUcsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCO1lBQUUsT0FBTztRQUV6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5JztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5U3RvcmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IG5ldyBNYXA8c3RyaW5nLCBBbnlRdWVyeT4oKTtcbiAgcHJpdmF0ZSBfZ2FyYmFnZUNvbGxlY3RvcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29uZmlnPzoge1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZz86IGJvb2xlYW47XG4gICAgICBlbmFibGVHYXJiYWdlQ29sbGVjdG9yTG9nZ2luZz86IGJvb2xlYW47XG4gICAgfSxcbiAgKSB7fVxuXG4gIGFkZChpZDogc3RyaW5nLCBxdWVyeTogQW55UXVlcnkpIHtcbiAgICB0aGlzLl9zdG9yZS5zZXQoaWQsIHF1ZXJ5KTtcblxuICAgIHRoaXMuX2luaXRHYXJiYWdlQ29sbGVjdG9yKCk7XG5cbiAgICB0aGlzLl9sb2dTdGF0ZShpZCwgcXVlcnksICdTRVQnKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmdldChpZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3RvcmUuZGVsZXRlKGlkKTtcblxuICAgIHRoaXMuX2xvZ1N0YXRlKGlkLCBudWxsLCAnUkVNT1ZFJyk7XG4gIH1cblxuICBwcml2YXRlIF9sb2dTdGF0ZShrZXk6IHN0cmluZyB8IG51bGwsIGl0ZW06IEFueVF1ZXJ5IHwgbnVsbCwgb3BlcmF0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlQ2hhbmdlTG9nZ2luZykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhdGVBc0pzb246IFJlY29yZDxzdHJpbmcsIEFueVF1ZXJ5PiA9IHt9O1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgc3RhdGVBc0pzb25ba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYCVjWyR7b3BlcmF0aW9ufV0gJHtrZXl9YCwgJ2ZvbnQtd2VpZ2h0OiBib2xkJyk7XG5cbiAgICBjb25zb2xlLmxvZyh7IG9wZXJhdGlvbiwga2V5LCBpdGVtIH0pO1xuICAgIGNvbnNvbGUubG9nKHN0YXRlQXNKc29uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RhcnQnKTtcblxuICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5fcnVuR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH0sIDE1MDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0b3BHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yKTtcbiAgICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3J1bkdhcmJhZ2VDb2xsZWN0b3IoKSB7XG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignQ29sbGVjdGluZy4uLicpO1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc0V4cGlyZWQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ0NvbGxlY3Rpb24gZG9uZScpO1xuXG4gICAgaWYgKCF0aGlzLl9zdG9yZS5zaXplKSB7XG4gICAgICB0aGlzLl9zdG9wR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RvcCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmcpIHJldHVybjtcblxuICAgIGNvbnNvbGUubG9nKGAlY0dDOiAke2FjdGlvbn1gLCAnY29sb3I6IHllbGxvdzsgZm9udC13ZWlnaHQ6IGJvbGQnKTtcbiAgfVxufVxuIl19","export const shouldCacheQuery = (method) => {\n return method === 'GET' || method === 'OPTIONS' || method === 'HEAD' || method === 'GQL_QUERY';\n};\nexport const buildGqlCacheKey = (\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconfig, args) => {\n const { query } = config;\n const variables = args?.variables || {};\n const queryWithoutNewLinesAndWhitespace = query.replace(/\\s/g, '');\n const queryFirst50Chars = queryWithoutNewLinesAndWhitespace.slice(0, 50);\n const queryMiddle25Chars = queryWithoutNewLinesAndWhitespace.slice(queryWithoutNewLinesAndWhitespace.length / 2 - 25, queryWithoutNewLinesAndWhitespace.length / 2 + 25);\n const queryLast50Chars = queryWithoutNewLinesAndWhitespace.slice(-50);\n const vars = JSON.stringify(variables);\n return `${queryFirst50Chars}...${queryMiddle25Chars}...${queryLast50Chars}...${vars}`;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNqRCxPQUFPLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDakcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7QUFDOUIsOERBQThEO0FBQzlELE1BQTBDLEVBQzFDLElBQStCLEVBQy9CLEVBQUU7SUFDRixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO0lBRXhDLE1BQU0saUNBQWlDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsaUNBQWlDLENBQUMsS0FBSyxDQUNoRSxpQ0FBaUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFDakQsaUNBQWlDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQ2xELENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkMsT0FBTyxHQUFHLGlCQUFpQixNQUFNLGtCQUFrQixNQUFNLGdCQUFnQixNQUFNLElBQUksRUFBRSxDQUFDO0FBQ3hGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBcmd1bWVudHMsIEdxbFF1ZXJ5Q29uZmlnIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBzaG91bGRDYWNoZVF1ZXJ5ID0gKG1ldGhvZDogTWV0aG9kKSA9PiB7XG4gIHJldHVybiBtZXRob2QgPT09ICdHRVQnIHx8IG1ldGhvZCA9PT0gJ09QVElPTlMnIHx8IG1ldGhvZCA9PT0gJ0hFQUQnIHx8IG1ldGhvZCA9PT0gJ0dRTF9RVUVSWSc7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRHcWxDYWNoZUtleSA9IChcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uZmlnOiBHcWxRdWVyeUNvbmZpZzxhbnksIGFueSwgYW55LCBhbnk+LFxuICBhcmdzOiBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuKSA9PiB7XG4gIGNvbnN0IHsgcXVlcnkgfSA9IGNvbmZpZztcbiAgY29uc3QgdmFyaWFibGVzID0gYXJncz8udmFyaWFibGVzIHx8IHt9O1xuXG4gIGNvbnN0IHF1ZXJ5V2l0aG91dE5ld0xpbmVzQW5kV2hpdGVzcGFjZSA9IHF1ZXJ5LnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgY29uc3QgcXVlcnlGaXJzdDUwQ2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoMCwgNTApO1xuICBjb25zdCBxdWVyeU1pZGRsZTI1Q2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoXG4gICAgcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLmxlbmd0aCAvIDIgLSAyNSxcbiAgICBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2UubGVuZ3RoIC8gMiArIDI1LFxuICApO1xuICBjb25zdCBxdWVyeUxhc3Q1MENoYXJzID0gcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLnNsaWNlKC01MCk7XG5cbiAgY29uc3QgdmFycyA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG5cbiAgcmV0dXJuIGAke3F1ZXJ5Rmlyc3Q1MENoYXJzfS4uLiR7cXVlcnlNaWRkbGUyNUNoYXJzfS4uLiR7cXVlcnlMYXN0NTBDaGFyc30uLi4ke3ZhcnN9YDtcbn07XG4iXX0=","import { BehaviorSubject } from 'rxjs';\nimport { isGqlQueryConfig, Query, } from '../query';\nimport { QueryStore } from '../query-store';\nimport { buildRoute } from '../request';\nimport { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';\nexport class QueryClient {\n get config() {\n return this._clientConfig;\n }\n get authProvider() {\n return this._authProvider;\n }\n constructor(_clientConfig) {\n this._clientConfig = _clientConfig;\n this._authProvider = null;\n this.get = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GET',\n });\n this.post = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'POST',\n });\n this.put = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PUT',\n });\n this.patch = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PATCH',\n });\n this.delete = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'DELETE',\n });\n this.gqlQuery = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_QUERY',\n });\n this.gqlMutate = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_MUTATE',\n });\n this.fetch = (queryConfig) => {\n const prepare = (args) => {\n const route = buildRoute({\n base: this._clientConfig.baseRoute,\n route: queryConfig.route,\n pathParams: args?.pathParams,\n queryParams: args?.queryParams,\n });\n const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;\n if (shouldCacheQuery(queryConfig.method)) {\n const existingQuery = this._store.get(cacheKey);\n if (existingQuery) {\n return existingQuery;\n }\n }\n const query = new Query(this, queryConfig, route, args);\n if (shouldCacheQuery(queryConfig.method)) {\n this._store.add(cacheKey, query);\n }\n return query;\n };\n const behaviorSubject = (initialValue = null) => new BehaviorSubject(initialValue);\n return {\n prepare,\n behaviorSubject,\n };\n };\n this.setAuthProvider = (authProvider) => {\n if (this._authProvider) {\n throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');\n }\n this._authProvider = authProvider;\n authProvider.queryClient = this;\n };\n this.clearAuthProvider = () => {\n this._authProvider?.cleanUp();\n this._authProvider = null;\n };\n this._store = new QueryStore({\n enableChangeLogging: _clientConfig.logging?.queryStateChanges,\n enableGarbageCollectorLogging: _clientConfig.logging?.queryStateGarbageCollector,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLEtBQUssR0FJTixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxZQUFZLENBQUM7QUFPOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsTUFBTSxPQUFPLFdBQVc7SUFJdEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQW9CLGFBQWdDO1FBQWhDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVY1QyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFpQmxELFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVMLFNBQUksR0FBRyxDQU1MLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUEwRDtZQUNsRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUVMLFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxH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Q0FBQztZQUMzQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLGlCQUFpQjtZQUM3RCw2QkFBNkIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLDBCQUEwQjtTQUNqRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBeUpGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIFF1ZXJ5LFxuICBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFJlc3RRdWVyeUNvbmZpZyxcbiAgUm91dGVUeXBlLFxufSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcnktc3RvcmUnO1xuaW1wb3J0IHsgYnVpbGRSb3V0ZSwgTWV0aG9kIGFzIE1ldGhvZFR5cGUgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyLFxuICBRdWVyeUNsaWVudENvbmZpZyxcbiAgUXVlcnlDcmVhdG9yLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSxcbn0gZnJvbSAnLi9xdWVyeS1jbGllbnQudHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRHcWxDYWNoZUtleSwgc2hvdWxkQ2FjaGVRdWVyeSB9IGZyb20gJy4vcXVlcnktY2xpZW50LnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5Q2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmU6IFF1ZXJ5U3RvcmU7XG4gIHByaXZhdGUgX2F1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50Q29uZmlnO1xuICB9XG5cbiAgZ2V0IGF1dGhQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aFByb3ZpZGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2xpZW50Q29uZmlnOiBRdWVyeUNsaWVudENvbmZpZykge1xuICAgIHRoaXMuX3N0b3JlID0gbmV3IFF1ZXJ5U3RvcmUoe1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZzogX2NsaWVudENvbmZpZy5sb2dnaW5nPy5xdWVyeVN0YXRlQ2hhbmdlcyxcbiAgICAgIGVuYWJsZUdhcmJhZ2VDb2xsZWN0b3JMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVHYXJiYWdlQ29sbGVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dFVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KTtcblxuICBwb3N0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ1BPU1QnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuXG4gIHB1dCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdQVVQnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgfSk7XG5cbiAgcGF0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnUEFUQ0gnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICB9KTtcblxuICBkZWxldGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnREVMRVRFJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgIH0pO1xuXG4gIGdxbFF1ZXJ5ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dRTF9RVUVSWScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX1FVRVJZJyxcbiAgICB9KTtcblxuICBncWxNdXRhdGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR1FMX01VVEFURScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX01VVEFURScsXG4gICAgfSk7XG5cbiAgZmV0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIE1ldGhvZCBleHRlbmRzIE1ldGhvZFR5cGUsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzpcbiAgICAgIHwgUmVzdFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICk6IFF1ZXJ5Q3JlYXRvcjxBcmd1bWVudHMsIE1ldGhvZCwgUmVzcG9uc2UsIFJvdXRlLCBSZXNwb25zZVRyYW5zZm9ybWVyPiA9PiB7XG4gICAgY29uc3QgcHJlcGFyZSA9IChhcmdzPzogQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgICBiYXNlOiB0aGlzLl9jbGllbnRDb25maWcuYmFzZVJvdXRlLFxuICAgICAgICByb3V0ZTogcXVlcnlDb25maWcucm91dGUsXG4gICAgICAgIHBhdGhQYXJhbXM6IChhcmdzIGFzIEJhc2VBcmd1bWVudHMpPy5wYXRoUGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtczogKGFyZ3MgYXMgQmFzZUFyZ3VtZW50cyk/LnF1ZXJ5UGFyYW1zLFxuICAgICAgfSkgYXMgUm91dGU7XG5cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gaXNHcWxRdWVyeUNvbmZpZyhxdWVyeUNvbmZpZykgPyBidWlsZEdxbENhY2hlS2V5KHF1ZXJ5Q29uZmlnLCBhcmdzKSA6IHJvdXRlO1xuXG4gICAgICBpZiAoc2hvdWxkQ2FjaGVRdWVyeShxdWVyeUNvbmZpZy5tZXRob2QpKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUXVlcnkgPSB0aGlzLl9zdG9yZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgICAgIGlmIChleGlzdGluZ1F1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVlcnkgYXMgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4odGhpcywgcXVlcnlDb25maWcsIHJvdXRlLCBhcmdzKTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICB0aGlzLl9zdG9yZS5hZGQoY2FjaGVLZXksIHF1ZXJ5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH07XG5cbiAgICBjb25zdCBiZWhhdmlvclN1YmplY3QgPSA8VCBleHRlbmRzIFJldHVyblR5cGU8dHlwZW9mIHByZXBhcmU+Pihpbml0aWFsVmFsdWU6IFQgfCBudWxsID0gbnVsbCkgPT5cbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+KGluaXRpYWxWYWx1ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJlcGFyZSxcbiAgICAgIGJlaGF2aW9yU3ViamVjdCxcbiAgICB9IGFzIHVua25vd24gYXMgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgTWV0aG9kLCBSZXNwb25zZSwgUm91dGUsIFJlc3BvbnNlVHJhbnNmb3JtZXI+O1xuICB9O1xuXG4gIHNldEF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcikgPT4ge1xuICAgIGlmICh0aGlzLl9hdXRoUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGF1dGggcHJvdmlkZXIgaXMgYWxyZWFkeSBzZXQuIFBsZWFzZSBjYWxsIGNsZWFyQXV0aFByb3ZpZGVyKCkgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gYXV0aFByb3ZpZGVyO1xuICAgIGF1dGhQcm92aWRlci5xdWVyeUNsaWVudCA9IHRoaXM7XG4gIH07XG5cbiAgY2xlYXJBdXRoUHJvdmlkZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gbnVsbDtcbiAgfTtcbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, concat, debounceTime, distinctUntilChanged, map, startWith, take, tap } from 'rxjs';\nexport class QueryField {\n get control() {\n return this.data.control;\n }\n constructor(data) {\n this.data = data;\n this.changes$ = this._setupChangesObservable();\n this._currentDebounceTimeout = null;\n }\n setValue(value) {\n if (this._currentDebounceTimeout !== null) {\n clearTimeout(this._currentDebounceTimeout);\n }\n if (this.data.debounce) {\n this._currentDebounceTimeout = window.setTimeout(() => {\n this.control.setValue(value);\n }, this.data.debounce);\n }\n else {\n this.control.setValue(value);\n }\n }\n _setupChangesObservable() {\n const obs = this.control.valueChanges.pipe(startWith(this.control.value));\n if (!this.data.debounce) {\n return obs;\n }\n // The initial value should get emitted immediately\n // concat switches to the debounced observable after the first observable is completed\n return concat(obs.pipe(take(1)), this.control.valueChanges.pipe(debounceTime(this.data.debounce)));\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class QueryForm {\n constructor(_fields) {\n this._fields = _fields;\n this._router = inject(Router, { optional: true });\n this._activatedRoute = inject(ActivatedRoute, { optional: true });\n this._defaultValues = this._extractDefaultValues();\n this.form = this._setupFormGroup();\n }\n observe(options) {\n return combineLatest(Object.values(this._fields).map((field) => field.changes$)).pipe(map(() => this.form.getRawValue()), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), tap((values) => {\n if (options?.syncViaUrlQueryParams !== false) {\n this._syncViaUrlQueryParams(values);\n }\n }));\n }\n setFormValueFromUrlQueryParams() {\n if (!this._activatedRoute) {\n throw new Error('Cannot set form value from url query params without ActivatedRoute');\n }\n const queryParams = this._activatedRoute.snapshot.queryParams;\n for (const [key, field] of Object.entries(this._fields)) {\n const value = queryParams[key];\n // We only check using == because the value types can be different (e.g. \"1\" and 1)\n if (value === undefined || value == field.control.value) {\n continue;\n }\n const deserializedValue = field.data.queryParamToValueTransformFn?.(value) ?? value;\n field.setValue(deserializedValue);\n }\n }\n updateFormOnUrlQueryParamsChange() {\n if (!this._activatedRoute) {\n throw new Error('Cannot update form on url query params change without ActivatedRoute');\n }\n return this._activatedRoute.queryParams.pipe(tap(() => this.setFormValueFromUrlQueryParams()));\n }\n _getDefaultValue(key) {\n return this._defaultValues[key] ?? null;\n }\n _isDefaultValue(key, value) {\n const normalizedValue = Array.isArray(value) ? JSON.stringify(value) : value;\n return this._getDefaultValue(key) === normalizedValue;\n }\n _setupFormGroup() {\n const group = new FormGroup({});\n for (const [key, field] of Object.entries(this._fields)) {\n group.addControl(key, field.control);\n }\n return group;\n }\n _extractDefaultValues() {\n const defaultValues = {};\n for (const [key, field] of Object.entries(this._fields)) {\n const value = field.control.value;\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n defaultValues[key] = JSON.stringify(value);\n }\n else {\n defaultValues[key] = value;\n }\n }\n return defaultValues;\n }\n _syncViaUrlQueryParams(values) {\n if (!this._router || !this._activatedRoute) {\n return;\n }\n const queryParams = structuredClone(this._activatedRoute.snapshot.queryParams);\n for (const [key, value] of Object.entries(values)) {\n if (this._isDefaultValue(key, value) || this._fields[key].data.appendToUrl === false) {\n delete queryParams[key];\n }\n else {\n queryParams[key] = this._fields[key].data.valueToQueryParamTransformFn\n ? this._fields[key].data.valueToQueryParamTransformFn?.(value)\n : value;\n }\n }\n this._router.navigate([], {\n queryParams,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hILE1BQU0sT0FBTyxVQUFVO0lBR3JCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUlELFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO1FBUjdDLGFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQU1sQyw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0lBRU4sQ0FBQztJQUVqRCxRQUFRLENBQUMsS0FBZTtRQUN0QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxJQUFJLEVBQUU7WUFDekMsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsRUFBRSxJQUFJLENB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QyxJQUFJLENBQUMsNEJBQTRCO29CQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDWDtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgY29uY2F0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBRdWVyeUZpZWxkT3B0aW9ucywgUXVlcnlGb3JtR3JvdXAsIFF1ZXJ5Rm9ybVZhbHVlIH0gZnJvbSAnLi9xdWVyeS1mb3JtLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5RmllbGQ8VD4ge1xuICBjaGFuZ2VzJCA9IHRoaXMuX3NldHVwQ2hhbmdlc09ic2VydmFibGUoKTtcblxuICBnZXQgY29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50RGVib3VuY2VUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogUXVlcnlGaWVsZE9wdGlvbnM8VD4pIHt9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnREZWJvdW5jZVRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhLmRlYm91bmNlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSwgdGhpcy5kYXRhLmRlYm91bmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cENoYW5nZXNPYnNlcnZhYmxlKCkge1xuICAgIGNvbnN0IG9icyA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb250cm9sLnZhbHVlKSk7XG5cbiAgICBpZiAoIXRoaXMuZGF0YS5kZWJvdW5jZSkge1xuICAgICAgcmV0dXJuIG9icztcbiAgICB9XG5cbiAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBzaG91bGQgZ2V0IGVtaXR0ZWQgaW1tZWRpYXRlbHlcbiAgICAvLyBjb25jYXQgc3dpdGNoZXMgdG8gdGhlIGRlYm91bmNlZCBvYnNlcnZhYmxlIGFmdGVyIHRoZSBmaXJzdCBvYnNlcnZhYmxlIGlzIGNvbXBsZXRlZFxuICAgIHJldHVybiBjb25jYXQob2JzLnBpcGUodGFrZSgxKSksIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kYXRhLmRlYm91bmNlKSkpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgUXVlcnlGb3JtPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBRdWVyeUZpZWxkPGFueT4+PiB7XG4gIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWVzID0gdGhpcy5fZXh0cmFjdERlZmF1bHRWYWx1ZXMoKTtcblxuICBmb3JtID0gdGhpcy5fc2V0dXBGb3JtR3JvdXAoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWVsZHM6IFQpIHt9XG5cbiAgb2JzZXJ2ZShvcHRpb25zPzogeyBzeW5jVmlhVXJsUXVlcnlQYXJhbXM/OiBib29sZWFuIH0pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChPYmplY3QudmFsdWVzKHRoaXMuX2ZpZWxkcykubWFwKChmaWVsZCkgPT4gZmllbGQuY2hhbmdlcyQpKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuICAgICAgdGFwKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnN5bmNWaWFVcmxRdWVyeVBhcmFtcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLl9zeW5jVmlhVXJsUXVlcnlQYXJhbXModmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSksXG5cbiAgICAgIC8vIFRoaXMgdHlwZSBjYXN0IGlzIG5lZWRlZCBzaW5jZSBuZy1wYWNrYWdyIHdpbGwgYnJlYWsgdGhlIHR5cGUgaW5mZXJlbmNlIG90aGVyd2lzZS5cbiAgICApIGFzIE9ic2VydmFibGU8UXVlcnlGb3JtVmFsdWU8VD4+O1xuICB9XG5cbiAgc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZhdGVkUm91dGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCBmb3JtIHZhbHVlIGZyb20gdXJsIHF1ZXJ5IHBhcmFtcyB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbXNba2V5XTtcblxuICAgICAgLy8gV2Ugb25seSBjaGVjayB1c2luZyA9PSBiZWNhdXNlIHRoZSB2YWx1ZSB0eXBlcyBjYW4gYmUgZGlmZmVyZW50IChlLmcuIFwiMVwiIGFuZCAxKVxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gZmllbGQuY29udHJvbC52YWx1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWUgPSBmaWVsZC5kYXRhLnF1ZXJ5UGFyYW1Ub1ZhbHVlVHJhbnNmb3JtRm4/Lih2YWx1ZSkgPz8gdmFsdWU7XG5cbiAgICAgIGZpZWxkLnNldFZhbHVlKGRlc2VyaWFsaXplZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGb3JtT25VcmxRdWVyeVBhcmFtc0NoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgZm9ybSBvbiB1cmwgcXVlcnkgcGFyYW1zIGNoYW5nZSB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlZmF1bHRWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWVzW2tleV0gPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRGVmYXVsdFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0RGVmYXVsdFZhbHVlKGtleSkgPT09IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwRm9ybUdyb3VwKCkge1xuICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSBhcyBRdWVyeUZvcm1Hcm91cDxUPik7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9maWVsZHMpKSB7XG4gICAgICBncm91cC5hZGRDb250cm9sKGtleSwgZmllbGQuY29udHJvbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXh0cmFjdERlZmF1bHRWYWx1ZXMoKSB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmllbGQuY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNWaWFVcmxRdWVyeVBhcmFtcyh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgaWYgKCF0aGlzLl9yb3V0ZXIgfHwgIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkge1xuICAgICAgaWYgKHRoaXMuX2lzRGVmYXVsdFZhbHVlKGtleSwgdmFsdWUpIHx8IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEuYXBwZW5kVG9VcmwgPT09IGZhbHNlKSB7XG4gICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1trZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEudmFsdWVUb1F1ZXJ5UGFyYW1UcmFuc2Zvcm1GblxuICAgICAgICAgID8gdGhpcy5fZmllbGRzW2tleV0uZGF0YS52YWx1ZVRvUXVlcnlQYXJhbVRyYW5zZm9ybUZuPy4odmFsdWUpXG4gICAgICAgICAgOiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","export const transformToString = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n return null;\n};\nexport const transformToStringArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToString).filter(Boolean);\n }\n else if (typeof value === 'string') {\n return [transformToString(value)];\n }\n return null;\n};\nexport const transformToNumber = (value) => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n return null;\n};\nexport const transformToNumberArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToNumber).filter((item) => item !== null);\n }\n else if (typeof value === 'number') {\n return [value];\n }\n return null;\n};\nexport const transformToBoolean = (value) => {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value === 'true' || value === '1';\n }\n return null;\n};\nexport const transformToBooleanArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToBoolean).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || typeof value === 'boolean') {\n return [transformToBoolean(value)];\n }\n return null;\n};\nexport const transformToDate = (value) => {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'string') {\n const date = new Date(value);\n if (isNaN(date.getTime())) {\n return null;\n }\n return date;\n }\n return null;\n};\nexport const transformToDateArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToDate).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || value instanceof Date) {\n return [transformToDate(value)];\n }\n return null;\n};\nexport const transformToSort = (value) => {\n if (typeof value === 'string') {\n const [active, direction] = value.split(':');\n return {\n active,\n direction: direction,\n };\n }\n return null;\n};\nexport const transformToSortQueryParam = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n if (value && typeof value === 'object' && 'active' in value && 'direction' in value) {\n const valAsSort = value;\n return valAsSort.direction ? `${valAsSort.active}:${valAsSort.direction}` : null;\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3ZELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7S0FDakU7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUNwQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQWEsQ0FBQztLQUMvQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDdkQsSUFB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RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQzFELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFO1FBQ25GLE1BQU0sU0FBUyxHQUFHLEtBR2pCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUNsRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9TdHJpbmdBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvU3RyaW5nKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBbdHJhbnNmb3JtVG9TdHJpbmcodmFsdWUpXSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvTnVtYmVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9OdW1iZXJBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvTnVtYmVyKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIG51bWJlcltdO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gW3ZhbHVlXSBhcyBudW1iZXJbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbiA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJzEnO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbkFycmF5ID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAodHJhbnNmb3JtVG9Cb29sZWFuKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIGJvb2xlYW5bXTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIFt0cmFuc2Zvcm1Ub0Jvb2xlYW4odmFsdWUpXSBhcyBib29sZWFuW107XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGUgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvRGF0ZSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKSBhcyBEYXRlW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gW3RyYW5zZm9ybVRvRGF0ZSh2YWx1ZSldIGFzIERhdGVbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU29ydCA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IFthY3RpdmUsIGRpcmVjdGlvbl0gPSB2YWx1ZS5zcGxpdCgnOicpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uIGFzICdhc2MnIHwgJ2Rlc2MnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub1NvcnRRdWVyeVBhcmFtID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdhY3RpdmUnIGluIHZhbHVlICYmICdkaXJlY3Rpb24nIGluIHZhbHVlKSB7XG4gICAgY29uc3QgdmFsQXNTb3J0ID0gdmFsdWUgYXMge1xuICAgICAgYWN0aXZlOiBzdHJpbmc7XG4gICAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xuICAgIH07XG5cbiAgICByZXR1cm4gdmFsQXNTb3J0LmRpcmVjdGlvbiA/IGAke3ZhbEFzU29ydC5hY3RpdmV9OiR7dmFsQXNTb3J0LmRpcmVjdGlvbn1gIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==","export const deepFreeze = (object) => {\n // check if object is actually an object or frozen\n if (!object || typeof object !== 'object' || Object.isFrozen(object)) {\n return object;\n }\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1mcmVlemUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi91dGlscy9kZWVwLWZyZWV6ZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFvQyxNQUFTLEVBQUUsRUFBRTtJQUN6RSxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwRSxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCx5Q0FBeUM7SUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7UUFDNUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxVQUFVLENBQUMsS0FBVSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVlcEZyZWV6ZSA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KG9iamVjdDogVCkgPT4ge1xuICAvLyBjaGVjayBpZiBvYmplY3QgaXMgYWN0dWFsbHkgYW4gb2JqZWN0IG9yIGZyb3plblxuICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBPYmplY3QuaXNGcm96ZW4ob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcbiAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtuYW1lXTtcblxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBkZWVwRnJlZXplKHZhbHVlIGFzIFQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG59O1xuIl19","/**\n * Dummy function for providing types while not breaking inference.\n * **This function always returns null.**\n * @see https://github.com/microsoft/TypeScript/issues/26242\n * @returns null\n */\nexport const def = () => null;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvdXRpbHMvZGVmLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRHVtbXkgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyB0eXBlcyB3aGlsZSBub3QgYnJlYWtpbmcgaW5mZXJlbmNlLlxuICogKipUaGlzIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIG51bGwuKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8yNjI0MlxuICogQHJldHVybnMgbnVsbFxuICovXG5leHBvcnQgY29uc3QgZGVmID0gPERhdGE+KCkgPT4gbnVsbCBhcyB1bmtub3duIGFzIERhdGE7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRobGV0ZS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2V0aGxldGUtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;;;;;MAAa,wBAAwB,CAAA;AACjC,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtD;AACD,IAAA,WAAA,CAAY,OAAO,EAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IACD,OAAO,GAAA;;KAEN;AACJ;;MCXY,iBAAiB,CAAA;AAC1B,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,EAAE,aAAa,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,gBAAgB,CAAE,CAAA,EAAE,CAAC;KAC9D;AACD,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA,CAAE,CAAC,CAAC;KACpE;AACD,IAAA,WAAA,CAAY,OAAO,EAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IACD,OAAO,GAAA;;KAEN;AACJ;;ACdY,MAAA,iBAAiB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAoB,iBAAA,EAAA,IAAI,CAAK,EAAA,EAAA,OAAO,GAAG;AACrF,MAAO,UAAW,SAAQ,KAAK,CAAA;AACjC,IAAA,WAAA,CAAY,IAAI,EAAE,OAAO,EAAE,IAAI,EAAA;QAC3B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;AACJ,CAAA;AACY,MAAA,qBAAqB,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,yCAAyC,EAAE,IAAI,EAAE;AACzG,MAAA,iBAAiB,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,mCAAmC,EAAE,IAAI,EAAE;AAC/F,MAAA,qCAAqC,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,oDAAoD,EAAE,IAAI,EAAE;AACpI,MAAA,4BAA4B,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,mDAAmD,EAAE,IAAI,EAAE;AAC1H,MAAA,gCAAgC,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,mDAAmD,EAAE,IAAI,EAAE;AAC9H,MAAA,8BAA8B,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,iEAAiE,EAAE,IAAI,EAAE;AAC1I,MAAA,gBAAgB,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,sCAAsC,EAAE,IAAI;;MCb/F,cAAc,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,MAAM;MAC7F,mBAAmB,GAAG,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAC5E,MAAA,UAAU,GAAG,CAAC,OAAO,KAAI;;IAClC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAA,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,KAAA;IACD,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAA,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACrB,MAAM,qCAAqC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,SAAA;QACD,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7C,KAAA;AACI,SAAA;AACD,QAAA,KAAK,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;AACjC,KAAA;IACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACjC,QAAA,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,KAAA;IACD,IAAI,OAAO,CAAC,WAAW,EAAE;QACrB,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1D,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,KAAK,GAAG,KAAK,GAAG,GAAG,KAAK,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,CAAK,EAAA,EAAA,WAAW,EAAE,CAAC;AAClE,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,CAAG,EAAA,OAAO,CAAC,IAAI,CAAG,EAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,EAAE,EAAE,CAAC;AAC3C,EAAE;AACW,MAAA,gBAAgB,GAAG,CAAC,MAAM,KAAI;AACvC,IAAA,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAChD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,SAAA,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;UAC3C,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9C,UAAE,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC;SAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,WAAW,IAAI,IAAI,CAAC;AAC/B,EAAE;MACW,qBAAqB,GAAG,CAAC,GAAG,EAAE,KAAK,KAAI;AAChD,IAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAA,OAAO,KAAK;AACP,SAAA,KAAK,EAAE;AACP,SAAA,GAAG,CAAC,CAAC,IAAI,KAAK,CAAG,EAAA,GAAG,CAAG,EAAA,WAAW,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;SACjE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,EAAE;AACK,MAAM,eAAe,GAAG,CAAC,QAAQ,KAAK,OAAO,QAAQ,KAAK,QAAQ;AACrE,IAAA,QAAQ,KAAK,IAAI;AACjB,IAAA,QAAQ,IAAI,QAAQ;AACpB,IAAA,YAAY,IAAI,QAAQ;AACxB,IAAA,MAAM,IAAI,QAAQ;AAClB,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,WAAW;AAC9B,MAAA,mBAAmB,GAAG,CAAC,MAAM,KAAI;AAC1C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,KAAC,CAAC;AACG,SAAA,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,sCAAW,GAAG,CAAA,EAAA,EAAE,CAAC,GAAG,GAAG,KAAK,EAAG,CAAA,CAAA,EAAE,EAAE,CAAC,CAAC;AACnE,IAAA,OAAO,cAAc,CAAC;AAC1B,EAAE;AACW,MAAA,YAAY,GAAG,CAAC,SAAS,KAAI;IACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;AACnE,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC1D,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;AACnD,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,uBAAuB,GAAG,CAAC,OAAO,KAAI;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;IAEvC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;AACpC,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;IACD,IAAI,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,QAAA,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,KAAA;SACI,IAAI,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;AACzC,QAAA,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,KAAA;IACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACf,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,QAAA,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AACnC,KAAA;AACI,SAAA,IAAI,OAAO,EAAE;;;QAGd,IAAI,OAAO,KAAK,IAAI,EAAE;YAClB,SAAS,GAAG,IAAI,CAAC;AACpB,SAAA;AACI,aAAA;AACD,YAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;;AAEtC,YAAA,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK,cAAc,EAAE;AAC3C,gBAAA,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;AACvE,aAAA;AACJ,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,SAAS,CAAC;AACrB,EAAE;AACW,MAAA,yBAAyB,GAAG,CAAC,OAAO,KAAI;IACjD,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3D,EAAE;AACW,MAAA,iBAAiB,GAAG,CAAO,KAAK,EAAE,KAAK,EAAE,WAAW,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;IACjE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE;AACjE,QAAA,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,CAAC,CAAC;AACR,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,GAAG,EAAE,KAAK;YACV,KAAK;YACL,WAAW;SACd,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;IACD,IAAI,KAAK,YAAY,WAAW,EAAE;AAC9B,QAAA,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,CAAC,CAAC;AACR,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,GAAG,EAAE,KAAK;YACV,KAAK;YACL,WAAW;SACd,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;IACD,IAAI,KAAK,YAAY,KAAK,EAAE;AACxB,QAAA,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,CAAC,CAAC;YACR,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAK,EAAA,EAAA,KAAK,CAAC,OAAO,CAAE,CAAA;AAC1C,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,GAAG,EAAE,KAAK;YACV,KAAK;YACL,WAAW;SACd,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AACD,IAAA,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;;QAExB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI;AACA,YAAA,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,SAAA;QACD,OAAM,EAAA,EAAA;;AAEL,SAAA;QACD,IAAI,CAAC,MAAM,EAAE;YACT,IAAI;AACA,gBAAA,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,aAAA;YACD,OAAM,EAAA,EAAA;;AAEL,aAAA;AACJ,SAAA;AACD,QAAA,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,MAAM;AACN,YAAA,GAAG,EAAE,KAAK;YACV,KAAK;YACL,WAAW;SACd,CAAC;AACF,QAAA,OAAO,GAAG,CAAC;AACd,KAAA;AACD,IAAA,MAAM,GAAG,GAAG;AACR,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,GAAG,EAAE,KAAK;QACV,KAAK;QACL,WAAW;KACd,CAAC;AACF,IAAA,OAAO,GAAG,CAAC;AACf,CAAC,EAAC;AACW,MAAA,SAAS,GAAG,CAAC,IAAI,KAAI;AAC9B,IAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;AACrC,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,KAAA;IACD,IAAI,IAAI,YAAY,QAAQ,EAAE;AAC1B,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE;AACW,MAAA,eAAe,GAAG,CAAC,MAAM,KAAI;AACtC,IAAA,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,YAAY,EAAE;AACnD,QAAA,OAAO,MAAM,CAAC;AACjB,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAClB,EAAE;AACW,MAAA,gBAAgB,GAAG,CAAC,IAAI,KAAI;AACrC,IAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACrC,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,YAAY,CAAC;AACvB,KAAA;IACD,IAAI,IAAI,YAAY,QAAQ,EAAE;AAC1B,QAAA,OAAO,qBAAqB,CAAC;AAChC,KAAA;AACD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,kBAAkB,CAAC;AAC7B,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;AC7Na,MAAA,OAAO,GAAG,CAAO,OAAO,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;IACrC,IAAI;AACA,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACd,YAAA,MAAM,QAAQ,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC1F,QAAA,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,YAAY,CAAC,CAAC;AACpF,QAAA,MAAM,IAAI,IAAI,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtG,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY;cACvC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxC,cAAE,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChD,QAAA,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;AACvE,QAAA,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACvC,KAAA;AACD,IAAA,OAAO,KAAK,EAAE;AACV,QAAA,MAAM,MAAM,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACrE,KAAA;AACL,CAAC;;AChBM,MAAM,mBAAmB,GAAG,CAAC,YAAY,KAAK,YAAY,YAAY,kBAAkB;AACxF,MAAM,oBAAoB,GAAG,CAAC,YAAY,KAAK,YAAY,YAAY,mBAAmB;AAC1F,MAAM,0BAA0B,GAAG,CAAC,YAAY,KAAK,YAAY,YAAY,yBAAyB;AAChG,MAAA,aAAa,GAAG,CAAC,KAAK,KAAI;IACnC,IAAI;QACA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/D,QAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9C,KAAK,CAAC,EAAE,CAAC;AACT,aAAA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,aAAA,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClC,KAAA;AACD,IAAA,OAAO,KAAK,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,KAAK,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACL;;MCjBa,kBAAkB,CAAA;AAC3B,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,MAAM,CAAE,CAAA,EAAE,CAAC;KACrD;AACD,IAAA,WAAA,CAAY,OAAO,EAAA;;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAClD,SAAA;KACJ;IACD,OAAO,GAAA;;AACH,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,yBAAyB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;AACD,IAAA,aAAa,CAAC,MAAM,EAAA;;QAChB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACT,OAAO;AACV,SAAA;AACD,QAAA,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,KAAK,CAAC;AACpE,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAChD,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,WAAW,CAAC;QAC1D,IAAI,SAAS,KAAK,SAAS,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,qBAAqB,CAAA,UAAA,CAAY,CAAC,CAAC;AAC3F,SAAA;QACD,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,kBAAkB,kDAAkD;AACxG,QAAA,QAAQ,QAAQ;YACZ,KAAK,kBAAkB;gBACnB,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7F,MAAM;AACb,SAAA;KACJ;AACK,IAAA,QAAQ,CAAC,MAAM,EAAA;;;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC7C,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACpD,aAAA;AACD,YAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;YACjF,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,cAAc,aAAd,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAd,cAAc,CAAG,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1F,MAAM,SAAS,GAAG,UAAU,CAAC;AACzB,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;gBACvC,KAAK;gBACL,WAAW,EAAE,aAAa,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS;AAC5D,aAAA,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC;AAC7F,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI;AACA,gBAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;AACzB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,WAAW;AACpB,iBAAA,CAAC,CAAC;AACH,gBAAA,MAAM,MAAM,GAAG,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5E,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,oBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAClD,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AACtB,oBAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AAC1D,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,aAAA;AACD,YAAA,OAAO,KAAK,EAAE;gBACV,IAAI,KAAK,YAAY,KAAK,EAAE;AACxB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AACvF,iBAAA;AACI,qBAAA;AACD,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,iBAAA;AACJ,aAAA;;AACJ,KAAA;AACJ;;ACtFD,MAAM,SAAS,GAAG,6CAA6C,CAAC;AACnD,MAAA,YAAY,GAAG,CAAC,GAAG,KAAI;IAChC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,IAAA,OAAO,UAAU,SAAS,EAAA;AACtB,QAAA,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,SAAS;YACT,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,IAAI,aAAa;gBACb,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChC,KAAC,CAAC;AACN,EAAE;AACW,MAAA,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,KAAI;AACtC,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACvC,QAAA,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACxC,EAAE,EAAE,CAAC,CAAC;AACP,IAAA,OAAO,GAAG,CAAC;AACf;;SCpBgB,aAAa,GAAA;AACzB,IAAA,OAAO,UAAU,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,KAAC,CAAC;AACN,CAAC;SACe,aAAa,GAAA;AACzB,IAAA,OAAO,UAAU,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,KAAC,CAAC;AACN,CAAC;AACK,SAAU,iBAAiB,CAAC,aAAa,EAAA;AAC3C,IAAA,OAAO,UAAU,MAAM,EAAA;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvF,KAAC,CAAC;AACN,CAAC;SACe,iBAAiB,GAAA;AAC7B,IAAA,OAAO,UAAU,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,KAAC,CAAC;AACN,CAAC;SACe,UAAU,GAAA;AACtB,IAAA,OAAO,UAAU,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAC;AACN,CAAC;SACe,gBAAgB,GAAA;AAC5B,IAAA,OAAO,UAAU,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;AACxE,KAAC,CAAC;AACN,CAAC;MACY,mBAAmB,GAAG,CAAC,KAAK,KAAK,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,SAAS,8BAA8B;MACxF,mBAAmB,GAAG,CAAC,KAAK,KAAK,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,SAAS,8BAA8B;MACxF,mBAAmB,GAAG,CAAC,KAAK,KAAK,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,SAAS,8BAA8B;MACxF,qBAAqB,GAAG,CAAC,KAAK,KAAK,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,WAAW,gCAAgC;MAC9F,oBAAoB,GAAG,CAAC,KAAK,KAAK,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,UAAU,+BAA+B;MAC3F,YAAY,GAAG,CAAC,GAAG,OAAO,KAAI;IACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;QACnC,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;QACD,OACO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACH,EAAA,OAAO,CACZ,CAAA;KACL,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACW,MAAA,gBAAgB,GAAG,CAAC,MAAM,KAAI;AACvC,IAAA,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAChE,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;MCnDa,KAAK,CAAA;AACd,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;KAC5B;AACD,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACtC;AACD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC7B;AACD,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,EAAE,EAAE;AACL,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;KAC1B;AACD,IAAA,WAAA,CAAY,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC;YAC/B,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;AAChC,SAAA,CAAC,CAAC;KACN;IACD,KAAK,GAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAChD;AACD,IAAA,OAAO,CAAC,OAAO,EAAA;;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,CAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3E,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACxD,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACxE,SAAA;AACD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,IAAI;AACP,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC9C,YAAA,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YAC1C,WAAW,GAAG,kBAAkB,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,CAAC;AACvC,SAAA;AACI,aAAA;YACD,IAAI,GAAG,SAAS,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC;YACnC,WAAW,GAAG,gBAAgB,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1B,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC;AACjD,YAAA,IAAI,MAAM,EAAE;gBACR,UAAU,GAAG,MAAM,CAAC;AACvB,aAAA;AACJ,SAAA;aACI,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACpE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;AACjD,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC;QAC5D,IAAI,WAAW,IAAI,EAAC,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,cAAc,CAAC,CAAA,IAAI,EAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAG,cAAc,CAAC,CAAA,EAAE;AACzE,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;AACzC,aAAA;AACI,iBAAA;AACD,gBAAA,OAAO,GAAG;AACN,oBAAA,cAAc,EAAE,WAAW;iBAC9B,CAAC;AACL,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,CAAC;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;AAClB,YAAA,IAAI,EAAE;gBACF,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACjD,gBAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;gBACpC,IAAI;gBACJ,OAAO,EAAE,OAAO,IAAI,SAAS;AAChC,aAAA;YACD,YAAY,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY;SAC1D,CAAC;AACG,aAAA,IAAI,CAAC,CAAC,QAAQ,KAAI;AACnB,YAAA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC;YACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClD,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,KAAK;gBACL,gBAAgB;gBAChB,CAAC,CAAC,QAAQ,CAAC,IAAI;AACf,gBAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;AACjC,gBAAA,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AACzB,gBAAA,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,aAAA;AACI,iBAAA;AACD,gBAAA,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;AAChC,aAAA;AACD,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB;kBAC3D,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC;kBACnD,YAAY,CAAC;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;AACf,gBAAA,QAAQ,EAAE,mBAAmB;AAC7B,gBAAA,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,IAAI,CAAE,EAAA,EAAA,SAAS,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAA;AAC5D,aAAA,CAAC,CAAC;AACP,SAAC,CAAC;AACG,aAAA,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,QAAA,OAAO,IAAI,CAAC;KACf;IACD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,IAAI,CAAC,MAAM,EAAA;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QACD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChD,aAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,QAAA,OAAO,IAAI,CAAC;KACf;IACD,WAAW,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC;KACf;IACD,8BAA8B,GAAA;;AAC1B,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;YAClC,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,MAAM;AACN,aAAA,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,KAAI;;YACrF,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAA,EAAE;gBAC1B,OAAO;AACV,aAAA;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxC,gBAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,SAAS;oBACf,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,KAAK,CAAC,IAAI,CAAA,EAAA,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;oBAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC3B,iBAAA,CAAC,CAAC;AACN,aAAA;AACL,SAAC,CAAC,CAAC;AACE,aAAA,SAAS,EAAE,CAAC;KACpB;IACD,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAA;AAC3B,QAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,IAAI;AACP,aAAA,CAAC,CAAC;AACN,SAAA;AACI,aAAA,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,KAAK;gBACL,IAAI;AACP,aAAA,CAAC,CAAC;AACN,SAAA;AACI,aAAA;AACD,YAAA,MAAM,KAAK,CAAC;AACf,SAAA;KACJ;AACJ;;MCxLY,cAAc,CAAA;AACvB,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAC,EAAA;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAC,EAAA;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACnB;AACD,IAAA,WAAA,CAAY,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAA;AAChE,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACzC,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EAAE,IAAI;SACd,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;AACD,IAAA,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC;KACf;IACD,QAAQ,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IACD,WAAW,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KACrC;IACD,iBAAiB,GAAA;;AACb,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,OAAO;AACV,SAAA;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACxF,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;KAC5B;AACD,IAAA,WAAW,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;AAC7C,SAAA;AACI,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IACD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvF,SAAA;KACJ;AACJ,CAAA;AACD,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnS,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACpO,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC5G,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,CAAC;;AAEC,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,UAAU,EAAE,IAAI;iBACnB,CAAC;SACT,CAAC,EAAE,cAAc,EAAE,YAAA,EAAc,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;AACpL,gBAAA,IAAI,EAAE,KAAK;aACd,CAAC,EAAE,KAAK,EAAE,CAAC;AACR,gBAAA,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,CAAC,YAAY,CAAC;aACvB,CAAC,EAAE,EAAE,CAAC;;ACnGnB;MAGa,aAAa,CAAA;AACtB,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC5C;AACD,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACxC;AACD,IAAA,IAAI,sBAAsB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;KACtD;AACD,IAAA,IAAI,qBAAqB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;KAClD;AACD,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KAC3C;AACD,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KACvC;AACD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC7C;AACD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACzC;AACD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC7C;AACD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACzC;AACD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACrC;AACD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACjC;AACD,IAAA,WAAA,CAAY,OAAO,EAAA;;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAC,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC5B;IACD,QAAQ,GAAA;;AACJ,QAAA,MAAM,OAAO,GAAG,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,IAAI,CAAC,CAAC;AACpD,QAAA,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,eAAe,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA;AAC9D,YAAA,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,OAAO,CAAC;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC7D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AACD,IAAA,KAAK,CAAC,SAAS,EAAA;;QACX,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,OAAO,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,OAAO,CAAK,GAAC,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,KAAA,CAAA,GAAA,SAAS,GAAI,EAAE,EAAG,CAAC;AACzD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxB;IACD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC5B;AACD,IAAA,eAAe,CAAC,KAAK,EAAA;AACjB,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC;AACtF,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;;AACZ,gBAAA,IAAI,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpE,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;oBAC/B,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,iBAAA;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE;oBACjD,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,iBAAA;AACI,qBAAA;oBACD,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;AACxC,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,gBAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,mBAAmB,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA;oBAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAClC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GACE,MAAA,KAAK,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,MAC1B,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACtC;YACD,QAAQ,EAAE,MAAK;AACX,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,eAAe,CAAC,CAAC;aACtF;AACJ,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC7C;IACD,YAAY,CAAC,MAAM,EAAE,IAAI,EAAA;;AACrB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,CAAC;AAClF,QAAA,MAAM,QAAQ,GAAG;YACb,CAAC,iBAAiB,GAAG;AACjB,gBAAA,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,0CAAE,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,MAAM,GAAG,IAAI;AAC3C,aAAA;SACJ,CAAC;AACF,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,CAAC;AACpF,QAAA,MAAM,SAAS,GAAG;YACd,CAAC,kBAAkB,GAAG;gBAClB,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;AACxE,aAAA;SACJ,CAAC;AACF,QAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAChD,QAAA,MAAM,UAAU,GAAG,iBAAiB,KAAK,kBAAkB;AACvD,8CACO,aAAa,CAAA,EAAA,EAChB,CAAC,iBAAiB,kDACV,CAAA,EAAA,GAAA,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,iBAAiB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAC,EAChD,QAAQ,CAAC,kBAAkB,CAAC,CAC5B,EAAA,SAAS,CAAC,kBAAkB,CAAC,OAGvC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACM,aAAa,CAChB,EAAA,EAAA,CAAC,iBAAiB,GAAC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GACX,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,iBAAiB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAC,EAChD,QAAQ,CAAC,iBAAiB,CAAC,CAElC,EAAA,CAAC,kBAAkB,GAAC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GACZ,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,WAAW,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,kBAAkB,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAChD,EAAA,SAAS,CAAC,kBAAkB,CAAC,IAEvC,CAAC;AACN,QAAA,OAAO,UAAU,CAAC;KACrB;AACD,IAAA,qBAAqB,CAAC,QAAQ,EAAA;QAC1B,MAAM,GAAG,GAAG,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,QAAQ,GAAI,OAAO,CAAC;AAChC,QAAA,QAAQ,GAAG;AACP,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,YAAY,CAAC;AACxB,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,aAAa,CAAC;AACzB,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC;AAClB,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,SAAS,CAAC;AACrB,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,WAAW,CAAC;AACvB,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAA,CAAE,CAAC,CAAC;AAC5D,SAAA;KACJ;AACJ;;AC/JY,MAAA,yBAAyB,GAAG,CAAC,MAAM,KAAK,OAAO;MAC/C,iCAAiC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,YAAY,IAAI,IAAI,GAAG,CAAC;;ACDrG;MAOa,oBAAoB,GAAG,IAAI,cAAc,CAAC,sBAAsB,EAAE;MAClE,sBAAsB,CAAA;AAC/B,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,YAAY,EAAE,IAAI;SACrB,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC;AACjD,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACnC;AACD,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,CAAC,EAAA;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;AACD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;AACD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACtC;AACD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACrC;AACD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACjC;AACD,IAAA,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC;KACf;IACD,QAAQ,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IACD,WAAW,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;KAC7B;AACD,IAAA,mBAAmB,CAAC,MAAM,EAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAA,QAAQ,CAAC,aAAa;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,KAAI;YAC7D,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,WAAW;AACzB,gBAAA,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC;YACzG,IAAI,CAAC,YAAY,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;AACzE,YAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACjC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC;AACvE,aAAA;AACI,iBAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACtC,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C,aAAA;AACI,iBAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACzC,aAAA;AACI,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACtC,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACtC,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AACtC,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7B,SAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC/D,aAAA,SAAS,EAAE,CAAC;AACjB,QAAA,QAAQ,CAAC,KAAK;AACT,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;AACrE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7B,SAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC/D,aAAA,SAAS,EAAE,CAAC;AACjB,QAAA,OAAO,QAAQ,CAAC;KACnB;IACD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC9B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;KAC1C;IACD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvF,SAAA;KACJ;IACD,QAAQ,GAAA;;AACJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxB;AACJ,CAAA;AACD,sBAAsB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,sBAAsB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9W,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AACpH,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,CAAC;;AAEC,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,cAAc,CAAC;iBACtG,CAAC;AACT,SAAA,CAAC,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC;AAC9B,gBAAA,IAAI,EAAE,KAAK;aACd,CAAC,EAAE,EAAE,CAAC;;MCpJN,6BAA6B,CAAA;AACtC,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACvC;IACD,QAAQ,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAC1F,QAAA,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;AACnG,SAAA;AACI,aAAA;YACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACrC,SAAA;KACJ;IACD,WAAW,GAAA;;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC5B,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;KAChC;IACD,0BAA0B,GAAA;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AAClD,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,YAAA,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9D,gBAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACvC,aAAA;AACL,SAAC,EAAE;AACC,YAAA,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAChG,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,SAAS,EAAE,GAAG;AACjB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KAC1D;AACJ,CAAA;AACD,6BAA6B,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3M,6BAA6B,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gDAAgD,EAAE,MAAM,EAAE,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7S,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,CAAC;;AAEC,oBAAA,QAAQ,EAAE,gDAAgD;AAC1D,oBAAA,UAAU,EAAE,IAAI;iBACnB,CAAC;AACT,SAAA,CAAC,EAAE,cAAc,EAAE,EAAE,uBAAuB,EAAE,CAAC;AACxC,gBAAA,IAAI,EAAE,KAAK;aACd,CAAC,EAAE,EAAE,CAAC;;MCpDN,UAAU,CAAA;AACnB,IAAA,WAAA,CAAY,OAAO,EAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IACD,GAAG,CAAC,EAAE,EAAE,KAAK,EAAA;QACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KACpC;AACD,IAAA,GAAG,CAAC,EAAE,EAAA;;QACF,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;KACtC;AACD,IAAA,MAAM,CAAC,EAAE,EAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtC;AACD,IAAA,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAA;;QAC1B,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,mBAAmB,CAAA;YAClC,OAAO;QACX,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AAC/B,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7B,SAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAM,GAAA,EAAA,SAAS,CAAK,EAAA,EAAA,GAAG,CAAE,CAAA,EAAE,mBAAmB,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KAC5B;IACD,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;YACjC,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;YAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B,EAAE,KAAK,CAAC,CAAC;KACb;IACD,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;AACjC,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACjC,SAAA;KACJ;IACD,oBAAoB,GAAA;AAChB,QAAA,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;YAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACrC,SAAA;KACJ;AACD,IAAA,oBAAoB,CAAC,MAAM,EAAA;;QACvB,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,6BAA6B,CAAA;YAC5C,OAAO;QACX,OAAO,CAAC,GAAG,CAAC,CAAA,MAAA,EAAS,MAAM,CAAE,CAAA,EAAE,kCAAkC,CAAC,CAAC;KACtE;AACJ;;AC9DY,MAAA,gBAAgB,GAAG,CAAC,MAAM,KAAI;AACvC,IAAA,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,CAAC;AACnG,EAAE;AACW,MAAA,gBAAgB,GAAG;AAChC;AACA,MAAM,EAAE,IAAI,KAAI;AACZ,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;AACzB,IAAA,MAAM,SAAS,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,SAAS,KAAI,EAAE,CAAC;IACxC,MAAM,iCAAiC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,KAAK,CAAC,iCAAiC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,iCAAiC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACzK,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,CAAA,EAAG,iBAAiB,CAAM,GAAA,EAAA,kBAAkB,MAAM,gBAAgB,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,CAAC;AAC1F;;MCTa,WAAW,CAAA;AACpB,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;AACD,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;AACD,IAAA,WAAA,CAAY,aAAa,EAAA;;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCAC/B,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,KAAK,IACf,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCAChC,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,MAAM,IAChB,CAAC;AACH,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCAC/B,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,KAAK,IACf,CAAC;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCACjC,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,OAAO,IACjB,CAAC;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCAClC,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,QAAQ,IAClB,CAAC;AACH,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCACpC,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,WAAW,IACrB,CAAC;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,iCACrC,WAAW,CAAA,EAAA,EACd,MAAM,EAAE,YAAY,IACtB,CAAC;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,KAAI;AACzB,YAAA,MAAM,OAAO,GAAG,CAAC,IAAI,KAAI;gBACrB,MAAM,KAAK,GAAG,UAAU,CAAC;AACrB,oBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;oBAClC,KAAK,EAAE,WAAW,CAAC,KAAK;AACxB,oBAAA,UAAU,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,UAAU;AAC5B,oBAAA,WAAW,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,WAAW;AACjC,iBAAA,CAAC,CAAC;AACH,gBAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAC7F,gBAAA,IAAI,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,oBAAA,IAAI,aAAa,EAAE;AACf,wBAAA,OAAO,aAAa,CAAC;AACxB,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,gBAAA,IAAI,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpC,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC;AACF,YAAA,MAAM,eAAe,GAAG,CAAC,YAAY,GAAG,IAAI,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;YACnF,OAAO;gBACH,OAAO;gBACP,eAAe;aAClB,CAAC;AACN,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,YAAY,KAAI;YACpC,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;AAC/F,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,YAAA,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;AACpC,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAK;;AAC1B,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC;AACzB,YAAA,mBAAmB,EAAE,CAAA,EAAA,GAAA,aAAa,CAAC,OAAO,0CAAE,iBAAiB;AAC7D,YAAA,6BAA6B,EAAE,CAAA,EAAA,GAAA,aAAa,CAAC,OAAO,0CAAE,0BAA0B;AACnF,SAAA,CAAC,CAAC;KACN;AACJ;;MClFY,UAAU,CAAA;AACnB,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KAC5B;AACD,IAAA,WAAA,CAAY,IAAI,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACvC;AACD,IAAA,QAAQ,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,EAAE;AACvC,YAAA,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAClD,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjC,aAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1B,SAAA;AACI,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;KACJ;IACD,uBAAuB,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACrB,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;;;AAGD,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KACtG;AACJ,CAAA;AACD;MACa,SAAS,CAAA;AAClB,IAAA,WAAA,CAAY,OAAO,EAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;KACtC;AACD,IAAA,OAAO,CAAC,OAAO,EAAA;AACX,QAAA,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;YAC9M,IAAI,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,qBAAqB,MAAK,KAAK,EAAE;AAC1C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACvC,aAAA;SACJ,CAAC,CAAC,CAAC;KACP;IACD,8BAA8B,GAAA;;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACzF,SAAA;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9D,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;;YAE/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;gBACrD,SAAS;AACZ,aAAA;AACD,YAAA,MAAM,iBAAiB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,KAAK,CAAC,IAAI,EAAC,4BAA4B,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC;AACpF,YAAA,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACrC,SAAA;KACJ;IACD,gCAAgC,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;AAC3F,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;KAClG;AACD,IAAA,gBAAgB,CAAC,GAAG,EAAA;;QAChB,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;KAC3C;IACD,eAAe,CAAC,GAAG,EAAE,KAAK,EAAA;QACtB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC7E,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC;KACzD;IACD,eAAe,GAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IACD,qBAAqB,GAAA;QACjB,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvC,SAAS;AACZ,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9C,aAAA;AACI,iBAAA;AACD,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACxB;AACD,IAAA,sBAAsB,CAAC,MAAM,EAAA;;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACxC,OAAO;AACV,SAAA;AACD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC/E,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAClF,gBAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC3B,aAAA;AACI,iBAAA;AACD,gBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4BAA4B;AAClE,sBAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,4BAA4B,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,KAAK,CAAC;sBAC5D,KAAK,CAAC;AACf,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;YACtB,WAAW;AACd,SAAA,CAAC,CAAC;KACN;AACJ;;AC1HY,MAAA,iBAAiB,GAAG,CAAC,KAAK,KAAI;AACvC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,sBAAsB,GAAG,CAAC,KAAK,KAAI;AAC5C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvD,KAAA;AACI,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChC,QAAA,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,iBAAiB,GAAG,CAAC,KAAK,KAAI;AACvC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,sBAAsB,GAAG,CAAC,KAAK,KAAI;AAC5C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AACvE,KAAA;AACI,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClB,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,kBAAkB,GAAG,CAAC,KAAK,KAAI;AACxC,IAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC5B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;AAC5C,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,uBAAuB,GAAG,CAAC,KAAK,KAAI;AAC7C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AACxE,KAAA;SACI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC9D,QAAA,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,eAAe,GAAG,CAAC,KAAK,KAAI;IACrC,IAAI,KAAK,YAAY,IAAI,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,oBAAoB,GAAG,CAAC,KAAK,KAAI;AAC1C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;AACrE,KAAA;SACI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE;AACzD,QAAA,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,eAAe,GAAG,CAAC,KAAK,KAAI;AACrC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO;YACH,MAAM;AACN,YAAA,SAAS,EAAE,SAAS;SACvB,CAAC;AACL,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AACW,MAAA,yBAAyB,GAAG,CAAC,KAAK,KAAI;AAC/C,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE;QACjF,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,QAAA,OAAO,SAAS,CAAC,SAAS,GAAG,GAAG,SAAS,CAAC,MAAM,CAAI,CAAA,EAAA,SAAS,CAAC,SAAS,CAAA,CAAE,GAAG,IAAI,CAAC;AACpF,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;AC5Fa,MAAA,UAAU,GAAG,CAAC,MAAM,KAAI;;AAEjC,IAAA,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClE,QAAA,OAAO,MAAM,CAAC;AACjB,KAAA;;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;;AAErD,IAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC1B,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,UAAU,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC;;ACfA;;;;;AAKG;MACU,GAAG,GAAG,MAAM;;ACNzB;;AAEG;;;;"}
|