react-listing-engine 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { P as Page, B as Bounds, E as EntityId, M as MapPoint, U as Unsubscribe, a as MapProvider, Q as QueryParams, L as LatLng } from './map-provider.interface-B5Law7gE.js';
2
- export { b as EntityAdapter, c as MapHandle, d as MapInitOptions, e as MapOverlayHandle, f as PageRequest, R as RenderedLayer } from './map-provider.interface-B5Law7gE.js';
3
- import { P as PaginationMode, D as DatasetDefinition, I as IListingConfigOptions, F as FilterRegistry, a as IListingToolbarProps } from './listing-app-CKWKPJrW.js';
4
- export { C as ClusterOptions, b as FallbackPopup, c as FilterControlProps, d as FilterDefinition, e as IListingCardProps, f as IListingComponents, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, L as ListingApp, o as ListingAppProps, p as ListingComponentsProvider, M as MarkerRenderer, u as useListingComponents } from './listing-app-CKWKPJrW.js';
1
+ import { P as Page, B as Bounds, E as EntityId, M as MapPoint, U as Unsubscribe, a as MapProvider, b as MapHandle, Q as QueryParams, L as LatLng } from './map-provider.interface-l-oTHRTZ.js';
2
+ export { c as EntityAdapter, d as MapInitOptions, e as MapOverlayHandle, f as PageRequest, R as RenderedLayer } from './map-provider.interface-l-oTHRTZ.js';
3
+ import { P as PaginationMode, D as DatasetDefinition, I as IListingConfigOptions, F as FilterRegistry, a as IListingToolbarProps } from './listing-app-B8kWOP7r.js';
4
+ export { C as ClusterOptions, b as FallbackPopup, c as FilterControlProps, d as FilterDefinition, e as IListingCardProps, f as IListingComponents, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, L as ListingApp, o as ListingAppProps, p as ListingComponentsProvider, M as MarkerRenderer, q as MobileSheetFooterContext, u as useListingComponents } from './listing-app-B8kWOP7r.js';
5
5
  import * as react from 'react';
6
6
  import { ReactNode } from 'react';
7
7
 
@@ -164,6 +164,7 @@ declare class ListingEngine<TEntity, TFilters> {
164
164
  private debounceResolve;
165
165
  private queryToken;
166
166
  private pointsToken;
167
+ private mapHandle;
167
168
  constructor(options: ListingEngineOptions<TFilters>);
168
169
  get state(): {
169
170
  readonly filters: TFilters extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly /*elided*/ any[] : T extends object ? { readonly [K_2 in keyof T]: /*elided*/ any; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly /*elided*/ any[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: /*elided*/ any; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly /*elided*/ any[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: /*elided*/ any; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly /*elided*/ any[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: /*elided*/ any; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly /*elided*/ any[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: /*elided*/ any; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T ? T extends U[K] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T extends object ? { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : U)[] : TFilters extends object ? { readonly [K_1 in keyof TFilters]: TFilters[K_1] extends infer T ? T extends TFilters[K_1] ? T extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly /*elided*/ any[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: /*elided*/ any; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly /*elided*/ any[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: /*elided*/ any; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly /*elided*/ any[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: /*elided*/ any; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly /*elided*/ any[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: /*elided*/ any; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_1 extends object ? { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : U)[] : T extends object ? { readonly [K_3 in keyof T]: T[K_3] extends infer T_1 ? T_1 extends T[K_3] ? T_1 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly /*elided*/ any[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: /*elided*/ any; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly /*elided*/ any[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: /*elided*/ any; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly /*elided*/ any[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: /*elided*/ any; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_2 ? T_2 extends U[K] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_2 extends object ? { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : U)[] : T_1 extends object ? { readonly [K_4 in keyof T_1]: T_1[K_4] extends infer T_2 ? T_2 extends T_1[K_4] ? T_2 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly /*elided*/ any[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: /*elided*/ any; } : T_3 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly /*elided*/ any[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: /*elided*/ any; } : T_4 : never : never; } : T_3 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_3 extends object ? { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : U)[] : T_2 extends object ? { readonly [K_5 in keyof T_2]: T_2[K_5] extends infer T_3 ? T_3 extends T_2[K_5] ? T_3 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_4 ? T_4 extends U[K] ? T_4 extends (infer U)[] ? readonly /*elided*/ any[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: /*elided*/ any; } : T_4 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_4 ? T_4 extends U[K] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : T_4 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_4 ? T_4 extends U[K] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_4 ? T_4 extends U[K] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_4 ? T_4 extends U[K] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_4 extends object ? { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : U)[] : T_3 extends object ? { readonly [K_6 in keyof T_3]: T_3[K_6] extends infer T_4 ? T_4 extends T_3[K_6] ? T_4 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends (infer U)[] ? readonly /*elided*/ any[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: /*elided*/ any; } : T_5 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : T_5 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_5 extends object ? { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : U)[] : T_4 extends object ? { readonly [K_7 in keyof T_4]: T_4[K_7] extends infer T_5 ? T_5 extends T_4[K_7] ? T_5 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_6 ? T_6 extends U[K] ? T_6 extends (infer U)[] ? readonly /*elided*/ any[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: /*elided*/ any; } : T_6 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_6 ? T_6 extends U[K] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : T_6 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_6 ? T_6 extends U[K] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : U extends object ? /*elided*/ any : U)[] : T_6 extends object ? { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : U)[] : T_5 extends object ? { readonly [K_8 in keyof T_5]: T_5[K_8] extends infer T_6 ? T_6 extends T_5[K_8] ? T_6 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends (infer U)[] ? readonly /*elided*/ any[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: /*elided*/ any; } : T_7 : never : never; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? /*elided*/ any : U)[] : T_7 extends object ? { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : T_7 : never : never; } : U)[] : T_6 extends object ? { readonly [K_9 in keyof T_6]: T_6[K_9] extends infer T_7 ? T_7 extends T_6[K_9] ? T_7 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : U extends object ? { readonly [K in keyof U]: U[K] extends infer T_8 ? T_8 extends U[K] ? T_8 extends (infer U)[] ? readonly /*elided*/ any[] : T_8 extends object ? { readonly [K_10 in keyof T_8]: /*elided*/ any; } : T_8 : never : never; } : U)[] : T_7 extends object ? { readonly [K_10 in keyof T_7]: T_7[K_10] extends infer T_8 ? T_8 extends T_7[K_10] ? T_8 extends (infer U)[] ? readonly (U extends (infer U)[] ? readonly /*elided*/ any[] : U extends object ? { readonly [K in keyof U]: /*elided*/ any; } : U)[] : T_8 extends object ? { readonly [K_11 in keyof T_8]: T_8[K_11] extends infer T_9 ? T_9 extends T_8[K_11] ? T_9 extends (infer U)[] ? readonly /*elided*/ any[] : T_9 extends object ? /*elided*/ any : T_9 : never : never; } : T_8 : never : never; } : T_7 : never : never; } : T_6 : never : never; } : T_5 : never : never; } : T_4 : never : never; } : T_3 : never : never; } : T_2 : never : never; } : T_1 : never : never; } : T : never : never; } : TFilters;
@@ -202,6 +203,22 @@ declare class ListingEngine<TEntity, TFilters> {
202
203
  applyFilters(patch: Partial<TFilters>): Promise<void>;
203
204
  loadPage(): Promise<void>;
204
205
  loadPoints(bounds: Bounds): Promise<void>;
206
+ setMapHandle(handle: MapHandle | null): void;
207
+ /**
208
+ * Flies the currently-mounted map to `bounds` via
209
+ * `MapProvider.fitBounds(handle, bounds)`. Safe no-op when no `MapProvider`
210
+ * is configured OR no map is currently mounted (no registered handle) —
211
+ * the same tolerance as the provider's own `zoomIn`/`zoomOut`.
212
+ *
213
+ * Deliberately does NOT write `state.bounds` or emit `BoundsChanged`
214
+ * itself: the map SDK fires its own bounds-changed event once the view
215
+ * settles, which flows through the map component's normal
216
+ * `onBoundsChange` → `loadPoints(actualBounds)` path — the single source
217
+ * of truth for the ACTUAL resulting viewport (a real SDK pads/clamps the
218
+ * requested box to the container's aspect ratio, so echoing the requested
219
+ * `bounds` here would briefly publish a viewport the map never shows).
220
+ */
221
+ fitBounds(bounds: Bounds): void;
205
222
  selectPoint(datasetId: string, id: EntityId | null): void;
206
223
  setHovered(_datasetId: string, id: EntityId | null): void;
207
224
  toggleLayer(id: string): void;
@@ -791,6 +808,7 @@ declare function useListingMap(): {
791
808
  zoomIn: () => void | undefined;
792
809
  zoomOut: () => void | undefined;
793
810
  toggleFullscreen: () => void | undefined;
811
+ fitBounds: (bounds: Bounds) => void;
794
812
  };
795
813
 
796
814
  /**
@@ -842,4 +860,4 @@ interface IListingProviderComponentProps<TFilters> extends IListingProviderProps
842
860
  */
843
861
  declare function ListingProvider<TEntity, TFilters>(props: IListingProviderComponentProps<TFilters>): react.JSX.Element | null;
844
862
 
845
- export { Bounds, BrowserHistoryPort, type BrowserHistoryPortOptions, DatasetDefinition, DatasetRegistry, EntityId, FilterRegistry, type HistoryPort, IListingConfigOptions, type IListingFiltersProps, type IListingMapProps, type IListingProviderProps, IListingToolbarProps, LatLng, ListingConfig, ListingEngine, ListingEngineContext, type ListingEngineOptions, type ListingEvent, ListingEventType, ListingFilters, ListingList, ListingMap, ListingPagination, ListingProvider, type ListingProviderMod, ListingResultHeader, type ListingState, ListingStore, type ListingStoreInit, ListingToolbar, MapPoint, MapProvider, MemoryHistoryPort, Page, PaginationMode, QueryParams, TypedEmitter, Unsubscribe, UrlSyncController, type UrlSyncEngine, type UrlSyncOptions, composeListingProviders, listingDefaultConfig, useListing, useListingEvent, useListingFilters, useListingLayer, useListingMap, useListingResults, useListingState, withConfig, withDataset, withFilters, withInitialFilters, withMap, withPrimaryDataset, withUrlSync };
863
+ export { Bounds, BrowserHistoryPort, type BrowserHistoryPortOptions, DatasetDefinition, DatasetRegistry, EntityId, FilterRegistry, type HistoryPort, IListingConfigOptions, type IListingFiltersProps, type IListingMapProps, type IListingProviderProps, IListingToolbarProps, LatLng, ListingConfig, ListingEngine, ListingEngineContext, type ListingEngineOptions, type ListingEvent, ListingEventType, ListingFilters, ListingList, ListingMap, ListingPagination, ListingProvider, type ListingProviderMod, ListingResultHeader, type ListingState, ListingStore, type ListingStoreInit, ListingToolbar, MapHandle, MapPoint, MapProvider, MemoryHistoryPort, Page, PaginationMode, QueryParams, TypedEmitter, Unsubscribe, UrlSyncController, type UrlSyncEngine, type UrlSyncOptions, composeListingProviders, listingDefaultConfig, useListing, useListingEvent, useListingFilters, useListingLayer, useListingMap, useListingResults, useListingState, withConfig, withDataset, withFilters, withInitialFilters, withMap, withPrimaryDataset, withUrlSync };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{A as N,B as V,C as W,D as X,S as g,a as S,b as Q,c as x,d as T,e as L,f as H,g as O,h as E,i as k,j as q,k as I,l as C,m as U,n as B,o as z,p as G,q as R,r as p,s as $,t as u,u as y,v as j,w as A,x as D,y as J,z as K}from"./chunk-PG33Q2EN.js";var P=(r=>(r.Paged="paged",r.Infinite="infinite",r))(P||{});var v=(i=>(i.FiltersChanged="FiltersChanged",i.ResultsLoaded="ResultsLoaded",i.PointClicked="PointClicked",i.BoundsChanged="BoundsChanged",i.LayerToggled="LayerToggled",i))(v||{});var d=class{query;listeners=new Set;constructor(t={}){this.query={...t}}getQuery(){return{...this.query}}setQuery(t){this.query={...t},this.notify()}subscribe(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}notify(){for(let t of[...this.listeners])t()}};function b(e,t){let r=new Set([...Object.keys(e),...Object.keys(t)]);for(let s of r)if(e[s]!==t[s])return!1;return!0}var h=class{history;toQueryFn;toFiltersFn;hydrateOnStart;isSyncing=!1;unsubscribeEngine=null;unsubscribeHistory=null;constructor(t){this.history=t.history,this.toQueryFn=t.toQuery,this.toFiltersFn=t.toFilters,this.hydrateOnStart=t.hydrateOnStart??!0}start(t){this.stop(),this.unsubscribeEngine=t.subscribe(()=>{this.isSyncing||this.syncEngineToHistory(t)}),this.unsubscribeHistory=this.history.subscribe(()=>{this.isSyncing||this.withSyncGuard(()=>{this.applyFiltersSafely(t,this.toFiltersFn(this.history.getQuery()))})}),this.hydrateOnStart&&this.withSyncGuard(()=>{this.applyFiltersSafely(t,this.toFiltersFn(this.history.getQuery()))})}stop(){this.unsubscribeEngine?.(),this.unsubscribeEngine=null,this.unsubscribeHistory?.(),this.unsubscribeHistory=null}syncEngineToHistory(t){let r=this.toQueryFn(t.state.filters);b(r,this.history.getQuery())||this.withSyncGuard(()=>this.history.setQuery(r))}applyFiltersSafely(t,r){Promise.resolve(t.applyFilters(r)).catch(()=>{})}withSyncGuard(t){this.isSyncing=!0;try{t()}finally{this.isSyncing=!1}}};var m=class{mode;constructor(t={}){this.mode=t.mode??"replace"}getQuery(){if(typeof window>"u")return{};let t=new URLSearchParams(window.location.search),r={};for(let[s,o]of t)o!==""&&(r[s]=o);return r}setQuery(t){if(typeof window>"u")return;let r=new URLSearchParams;for(let[c,a]of Object.entries(t))a===void 0||a===""||r.set(c,a);let s=r.toString(),o=s?`?${s}`:"";if(o===window.location.search)return;let i=`${window.location.pathname}${o}${window.location.hash}`;this.mode==="push"?window.history.pushState(window.history.state,"",i):window.history.replaceState(window.history.state,"",i)}subscribe(t){return typeof window>"u"?()=>{}:(window.addEventListener("popstate",t),()=>{window.removeEventListener("popstate",t)})}};import{jsx as F}from"react/jsx-runtime";function rt({children:e}){let{Toolbar:t}=p();return F(t,{children:e})}import{useCallback as n}from"react";function lt(){let e=u(),t=y(),r=n(l=>e.loadPoints(l),[e]),s=n((l,f)=>e.selectPoint(l,f),[e]),o=n(l=>e.setHovered(e.primaryDatasetId,l),[e]),i=n(()=>e.map?.zoomIn(),[e]),c=n(()=>e.map?.zoomOut(),[e]),a=n(()=>e.map?.toggleFullscreen(),[e]);return{bounds:t.bounds,points:t.points,hovered:t.hovered,loadPoints:r,selectPoint:s,setHovered:o,zoomIn:i,zoomOut:c,toggleFullscreen:a}}import{useCallback as w}from"react";function dt(e){let t=u(),r=y(),s=w(()=>t.toggleLayer(e),[t,e]);return{visible:r.layers[e]??!0,points:r.points[e]??[],toggle:s}}export{m as BrowserHistoryPort,x as DatasetRegistry,G as FallbackPopup,Q as FilterRegistry,g as ListingApp,R as ListingComponentsProvider,H as ListingConfig,O as ListingEngine,$ as ListingEngineContext,v as ListingEventType,A as ListingFilters,J as ListingList,K as ListingMap,N as ListingPagination,X as ListingProvider,V as ListingResultHeader,S as ListingStore,rt as ListingToolbar,d as MemoryHistoryPort,P as PaginationMode,T as TypedEmitter,h as UrlSyncController,E as composeListingProviders,L as listingDefaultConfig,u as useListing,p as useListingComponents,W as useListingEvent,j as useListingFilters,dt as useListingLayer,lt as useListingMap,D as useListingResults,y as useListingState,k as withConfig,I as withDataset,C as withFilters,B as withInitialFilters,q as withMap,z as withPrimaryDataset,U as withUrlSync};
2
+ import{A as V,B as W,C as X,D as Y,S as P,a as Q,b as x,c as T,d as L,e as H,f as O,g as E,h as k,i as q,j as C,k as I,l as B,m as U,n as z,o as G,p as R,q as $,r as p,s as j,t as u,u as y,v as A,w as D,x as J,y as K,z as N}from"./chunk-2V5CEBHB.js";var b=(r=>(r.Paged="paged",r.Infinite="infinite",r))(b||{});var v=(i=>(i.FiltersChanged="FiltersChanged",i.ResultsLoaded="ResultsLoaded",i.PointClicked="PointClicked",i.BoundsChanged="BoundsChanged",i.LayerToggled="LayerToggled",i))(v||{});var d=class{query;listeners=new Set;constructor(t={}){this.query={...t}}getQuery(){return{...this.query}}setQuery(t){this.query={...t},this.notify()}subscribe(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}notify(){for(let t of[...this.listeners])t()}};function F(e,t){let r=new Set([...Object.keys(e),...Object.keys(t)]);for(let s of r)if(e[s]!==t[s])return!1;return!0}var h=class{history;toQueryFn;toFiltersFn;hydrateOnStart;isSyncing=!1;unsubscribeEngine=null;unsubscribeHistory=null;constructor(t){this.history=t.history,this.toQueryFn=t.toQuery,this.toFiltersFn=t.toFilters,this.hydrateOnStart=t.hydrateOnStart??!0}start(t){this.stop(),this.unsubscribeEngine=t.subscribe(()=>{this.isSyncing||this.syncEngineToHistory(t)}),this.unsubscribeHistory=this.history.subscribe(()=>{this.isSyncing||this.withSyncGuard(()=>{this.applyFiltersSafely(t,this.toFiltersFn(this.history.getQuery()))})}),this.hydrateOnStart&&this.withSyncGuard(()=>{this.applyFiltersSafely(t,this.toFiltersFn(this.history.getQuery()))})}stop(){this.unsubscribeEngine?.(),this.unsubscribeEngine=null,this.unsubscribeHistory?.(),this.unsubscribeHistory=null}syncEngineToHistory(t){let r=this.toQueryFn(t.state.filters);F(r,this.history.getQuery())||this.withSyncGuard(()=>this.history.setQuery(r))}applyFiltersSafely(t,r){Promise.resolve(t.applyFilters(r)).catch(()=>{})}withSyncGuard(t){this.isSyncing=!0;try{t()}finally{this.isSyncing=!1}}};var f=class{mode;constructor(t={}){this.mode=t.mode??"replace"}getQuery(){if(typeof window>"u")return{};let t=new URLSearchParams(window.location.search),r={};for(let[s,o]of t)o!==""&&(r[s]=o);return r}setQuery(t){if(typeof window>"u")return;let r=new URLSearchParams;for(let[c,l]of Object.entries(t))l===void 0||l===""||r.set(c,l);let s=r.toString(),o=s?`?${s}`:"";if(o===window.location.search)return;let i=`${window.location.pathname}${o}${window.location.hash}`;this.mode==="push"?window.history.pushState(window.history.state,"",i):window.history.replaceState(window.history.state,"",i)}subscribe(t){return typeof window>"u"?()=>{}:(window.addEventListener("popstate",t),()=>{window.removeEventListener("popstate",t)})}};import{jsx as w}from"react/jsx-runtime";function st({children:e}){let{Toolbar:t}=p();return w(t,{children:e})}import{useCallback as a}from"react";function ut(){let e=u(),t=y(),r=a(n=>e.loadPoints(n),[e]),s=a((n,g)=>e.selectPoint(n,g),[e]),o=a(n=>e.setHovered(e.primaryDatasetId,n),[e]),i=a(()=>e.map?.zoomIn(),[e]),c=a(()=>e.map?.zoomOut(),[e]),l=a(()=>e.map?.toggleFullscreen(),[e]),m=a(n=>e.fitBounds(n),[e]);return{bounds:t.bounds,points:t.points,hovered:t.hovered,loadPoints:r,selectPoint:s,setHovered:o,zoomIn:i,zoomOut:c,toggleFullscreen:l,fitBounds:m}}import{useCallback as S}from"react";function ht(e){let t=u(),r=y(),s=S(()=>t.toggleLayer(e),[t,e]);return{visible:r.layers[e]??!0,points:r.points[e]??[],toggle:s}}export{f as BrowserHistoryPort,T as DatasetRegistry,R as FallbackPopup,x as FilterRegistry,P as ListingApp,$ as ListingComponentsProvider,O as ListingConfig,E as ListingEngine,j as ListingEngineContext,v as ListingEventType,D as ListingFilters,K as ListingList,N as ListingMap,V as ListingPagination,Y as ListingProvider,W as ListingResultHeader,Q as ListingStore,st as ListingToolbar,d as MemoryHistoryPort,b as PaginationMode,L as TypedEmitter,h as UrlSyncController,k as composeListingProviders,H as listingDefaultConfig,u as useListing,p as useListingComponents,X as useListingEvent,A as useListingFilters,ht as useListingLayer,ut as useListingMap,J as useListingResults,y as useListingState,q as withConfig,I as withDataset,B as withFilters,z as withInitialFilters,C as withMap,G as withPrimaryDataset,U as withUrlSync};
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ComponentType, ReactNode } from 'react';
3
- import { b as EntityAdapter, M as MapPoint, L as LatLng, a as MapProvider } from './map-provider.interface-B5Law7gE.js';
3
+ import { c as EntityAdapter, M as MapPoint, L as LatLng, a as MapProvider } from './map-provider.interface-l-oTHRTZ.js';
4
4
 
5
5
  interface FilterControlProps<TValue> {
6
6
  value: TValue;
@@ -158,7 +158,23 @@ interface IBottomNavProps {
158
158
  */
159
159
  declare function BottomNav({ view, onViewChange }: IBottomNavProps): react.JSX.Element;
160
160
 
161
- interface IStyledListingLayoutProps {
161
+ /**
162
+ * Handed to `IStyledListingLayoutProps.mobileSheetFooter` -- see that prop's
163
+ * doc comment for why this render-prop override exists.
164
+ */
165
+ interface MobileSheetFooterContext<TFilters> {
166
+ /** The sheet's current DRAFT filters -- buffered edits not yet applied to the engine (see the class doc's `BottomSheet` section). */
167
+ draft: TFilters;
168
+ /** Commits `draft` to the engine and closes the sheet once the resulting refetch settles -- identical to what the default "Show N results" button does (`handleApplyDraft`). */
169
+ apply: () => void;
170
+ /** Resets the DRAFT (not the applied filters) via `engine.filters.clearedParams()` -- identical to what the default "Clear all" button does (`handleClearAll`). */
171
+ clear: () => void;
172
+ /** The currently APPLIED result count -- NOT a live preview of `draft` (see `mobileSheetFooter`'s doc comment for why). */
173
+ resultCount: number;
174
+ /** `pagination.loading` -- true while a commit-triggered (or any other) refetch is in flight. */
175
+ loading: boolean;
176
+ }
177
+ interface IStyledListingLayoutProps<TFilters = unknown> {
162
178
  /**
163
179
  * Optional header search box, LIBRARY-wired: name the `TFilters` field it
164
180
  * drives via
@@ -192,6 +208,21 @@ interface IStyledListingLayoutProps {
192
208
  mapZoom?: number;
193
209
  /** Forwarded verbatim to `<ListingMap mapControls={mapControls} />` -- see that prop's doc comment. */
194
210
  mapControls?: ReactNode;
211
+ /**
212
+ * Render-prop override for the mobile filters sheet's footer -- when
213
+ * given, replaces the default "Clear all" + "Show N results" buttons
214
+ * entirely, called with the sheet's current draft plus its
215
+ * commit/clear/count/loading state (see `MobileSheetFooterContext`'s own
216
+ * field docs). Exists because the default footer's result count is always
217
+ * the currently APPLIED count (see the class doc's `BottomSheet` section)
218
+ * -- it never previews what applying `draft` WOULD return, since that
219
+ * requires a query only the consumer's own data source can run (e.g. a
220
+ * live-count endpoint keyed off the draft). A consumer with such a source
221
+ * renders its own footer here, driving `apply`/`clear` exactly like the
222
+ * default buttons do. Omitted (the default), the built-in footer renders
223
+ * unchanged.
224
+ */
225
+ mobileSheetFooter?: (ctx: MobileSheetFooterContext<TFilters>) => ReactNode;
195
226
  className?: string;
196
227
  }
197
228
  /**
@@ -248,12 +279,16 @@ interface IStyledListingLayoutProps {
248
279
  * user close onto a stale count. `.rle-sheet__apply` pins a `min-width` so
249
280
  * that swap never changes the button's footprint. The result count itself
250
281
  * (`Show N results`) always reflects the currently APPLIED results, not a
251
- * live preview of the draft -- it only changes once a commit lands.
282
+ * live preview of the draft -- it only changes once a commit lands. A
283
+ * consumer needing a live preview (e.g. its own count endpoint keyed off
284
+ * the draft) can replace this whole footer via the `mobileSheetFooter`
285
+ * render prop -- see `IStyledListingLayoutProps.mobileSheetFooter`'s doc
286
+ * comment; omitted (the default), the footer above renders unchanged.
252
287
  * - Fetches the first page itself on mount (`engine.applyFilters({})`) by
253
288
  * default -- pass `autoFetch={false}`
254
289
  * to opt out and drive the first fetch yourself.
255
290
  */
256
- declare function StyledListingLayout({ search, toolbarEnd, mobileAction, autoFetch, hasMap: hasMapProp, mapCenter, mapZoom, mapControls, className, }: IStyledListingLayoutProps): react.JSX.Element;
291
+ declare function StyledListingLayout<TFilters = unknown>({ search, toolbarEnd, mobileAction, autoFetch, hasMap: hasMapProp, mapCenter, mapZoom, mapControls, mobileSheetFooter, className, }: IStyledListingLayoutProps<TFilters>): react.JSX.Element;
257
292
 
258
293
  /**
259
294
  * Two-shape `map` prop: pass a ready `MapProvider`, or the `{ apiKey, mapId? }`
@@ -335,6 +370,8 @@ interface ListingAppProps<TFilters> {
335
370
  * drops the map region entirely in that case).
336
371
  */
337
372
  mapControls?: ReactNode;
373
+ /** Forwarded verbatim to `StyledListingLayout`'s `mobileSheetFooter` -- see that prop's doc comment. */
374
+ mobileSheetFooter?: (ctx: MobileSheetFooterContext<TFilters>) => ReactNode;
338
375
  config?: Partial<IListingConfigOptions>;
339
376
  autoFetch?: boolean;
340
377
  className?: string;
@@ -374,4 +411,4 @@ interface ListingAppProps<TFilters> {
374
411
  */
375
412
  declare function ListingApp<TEntity, TFilters>(props: ListingAppProps<TFilters>): react.JSX.Element | null;
376
413
 
377
- export { BottomNav as B, type ClusterOptions as C, type DatasetDefinition as D, FilterRegistry as F, type IListingConfigOptions as I, ListingApp as L, type MarkerRenderer as M, PaginationMode as P, StyledListingLayout as S, type IListingToolbarProps as a, FallbackPopup as b, type FilterControlProps as c, type FilterDefinition as d, type IListingCardProps as e, type IListingComponents as f, type IListingEmptyProps as g, type IListingFilterPanelProps as h, type IListingLoadingProps as i, type IListingMarkerProps as j, type IListingPopupProps as k, type IListingResultHeaderProps as l, type IListingSearchProps as m, type IListingSidebarProps as n, type ListingAppProps as o, ListingComponentsProvider as p, type BottomNavView as q, type IBottomNavAction as r, type IBottomNavProps as s, type IStyledListingLayoutProps as t, useListingComponents as u, type ListingAppMapProp as v };
414
+ export { BottomNav as B, type ClusterOptions as C, type DatasetDefinition as D, FilterRegistry as F, type IListingConfigOptions as I, ListingApp as L, type MarkerRenderer as M, PaginationMode as P, StyledListingLayout as S, type IListingToolbarProps as a, FallbackPopup as b, type FilterControlProps as c, type FilterDefinition as d, type IListingCardProps as e, type IListingComponents as f, type IListingEmptyProps as g, type IListingFilterPanelProps as h, type IListingLoadingProps as i, type IListingMarkerProps as j, type IListingPopupProps as k, type IListingResultHeaderProps as l, type IListingSearchProps as m, type IListingSidebarProps as n, type ListingAppProps as o, ListingComponentsProvider as p, type MobileSheetFooterContext as q, type BottomNavView as r, type IBottomNavAction as s, type IBottomNavProps as t, useListingComponents as u, type IStyledListingLayoutProps as v, type ListingAppMapProp as w };
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ComponentType, ReactNode } from 'react';
3
- import { b as EntityAdapter, M as MapPoint, L as LatLng, a as MapProvider } from './map-provider.interface-B5Law7gE.cjs';
3
+ import { c as EntityAdapter, M as MapPoint, L as LatLng, a as MapProvider } from './map-provider.interface-l-oTHRTZ.cjs';
4
4
 
5
5
  interface FilterControlProps<TValue> {
6
6
  value: TValue;
@@ -158,7 +158,23 @@ interface IBottomNavProps {
158
158
  */
159
159
  declare function BottomNav({ view, onViewChange }: IBottomNavProps): react.JSX.Element;
160
160
 
161
- interface IStyledListingLayoutProps {
161
+ /**
162
+ * Handed to `IStyledListingLayoutProps.mobileSheetFooter` -- see that prop's
163
+ * doc comment for why this render-prop override exists.
164
+ */
165
+ interface MobileSheetFooterContext<TFilters> {
166
+ /** The sheet's current DRAFT filters -- buffered edits not yet applied to the engine (see the class doc's `BottomSheet` section). */
167
+ draft: TFilters;
168
+ /** Commits `draft` to the engine and closes the sheet once the resulting refetch settles -- identical to what the default "Show N results" button does (`handleApplyDraft`). */
169
+ apply: () => void;
170
+ /** Resets the DRAFT (not the applied filters) via `engine.filters.clearedParams()` -- identical to what the default "Clear all" button does (`handleClearAll`). */
171
+ clear: () => void;
172
+ /** The currently APPLIED result count -- NOT a live preview of `draft` (see `mobileSheetFooter`'s doc comment for why). */
173
+ resultCount: number;
174
+ /** `pagination.loading` -- true while a commit-triggered (or any other) refetch is in flight. */
175
+ loading: boolean;
176
+ }
177
+ interface IStyledListingLayoutProps<TFilters = unknown> {
162
178
  /**
163
179
  * Optional header search box, LIBRARY-wired: name the `TFilters` field it
164
180
  * drives via
@@ -192,6 +208,21 @@ interface IStyledListingLayoutProps {
192
208
  mapZoom?: number;
193
209
  /** Forwarded verbatim to `<ListingMap mapControls={mapControls} />` -- see that prop's doc comment. */
194
210
  mapControls?: ReactNode;
211
+ /**
212
+ * Render-prop override for the mobile filters sheet's footer -- when
213
+ * given, replaces the default "Clear all" + "Show N results" buttons
214
+ * entirely, called with the sheet's current draft plus its
215
+ * commit/clear/count/loading state (see `MobileSheetFooterContext`'s own
216
+ * field docs). Exists because the default footer's result count is always
217
+ * the currently APPLIED count (see the class doc's `BottomSheet` section)
218
+ * -- it never previews what applying `draft` WOULD return, since that
219
+ * requires a query only the consumer's own data source can run (e.g. a
220
+ * live-count endpoint keyed off the draft). A consumer with such a source
221
+ * renders its own footer here, driving `apply`/`clear` exactly like the
222
+ * default buttons do. Omitted (the default), the built-in footer renders
223
+ * unchanged.
224
+ */
225
+ mobileSheetFooter?: (ctx: MobileSheetFooterContext<TFilters>) => ReactNode;
195
226
  className?: string;
196
227
  }
197
228
  /**
@@ -248,12 +279,16 @@ interface IStyledListingLayoutProps {
248
279
  * user close onto a stale count. `.rle-sheet__apply` pins a `min-width` so
249
280
  * that swap never changes the button's footprint. The result count itself
250
281
  * (`Show N results`) always reflects the currently APPLIED results, not a
251
- * live preview of the draft -- it only changes once a commit lands.
282
+ * live preview of the draft -- it only changes once a commit lands. A
283
+ * consumer needing a live preview (e.g. its own count endpoint keyed off
284
+ * the draft) can replace this whole footer via the `mobileSheetFooter`
285
+ * render prop -- see `IStyledListingLayoutProps.mobileSheetFooter`'s doc
286
+ * comment; omitted (the default), the footer above renders unchanged.
252
287
  * - Fetches the first page itself on mount (`engine.applyFilters({})`) by
253
288
  * default -- pass `autoFetch={false}`
254
289
  * to opt out and drive the first fetch yourself.
255
290
  */
256
- declare function StyledListingLayout({ search, toolbarEnd, mobileAction, autoFetch, hasMap: hasMapProp, mapCenter, mapZoom, mapControls, className, }: IStyledListingLayoutProps): react.JSX.Element;
291
+ declare function StyledListingLayout<TFilters = unknown>({ search, toolbarEnd, mobileAction, autoFetch, hasMap: hasMapProp, mapCenter, mapZoom, mapControls, mobileSheetFooter, className, }: IStyledListingLayoutProps<TFilters>): react.JSX.Element;
257
292
 
258
293
  /**
259
294
  * Two-shape `map` prop: pass a ready `MapProvider`, or the `{ apiKey, mapId? }`
@@ -335,6 +370,8 @@ interface ListingAppProps<TFilters> {
335
370
  * drops the map region entirely in that case).
336
371
  */
337
372
  mapControls?: ReactNode;
373
+ /** Forwarded verbatim to `StyledListingLayout`'s `mobileSheetFooter` -- see that prop's doc comment. */
374
+ mobileSheetFooter?: (ctx: MobileSheetFooterContext<TFilters>) => ReactNode;
338
375
  config?: Partial<IListingConfigOptions>;
339
376
  autoFetch?: boolean;
340
377
  className?: string;
@@ -374,4 +411,4 @@ interface ListingAppProps<TFilters> {
374
411
  */
375
412
  declare function ListingApp<TEntity, TFilters>(props: ListingAppProps<TFilters>): react.JSX.Element | null;
376
413
 
377
- export { BottomNav as B, type ClusterOptions as C, type DatasetDefinition as D, FilterRegistry as F, type IListingConfigOptions as I, ListingApp as L, type MarkerRenderer as M, PaginationMode as P, StyledListingLayout as S, type IListingToolbarProps as a, FallbackPopup as b, type FilterControlProps as c, type FilterDefinition as d, type IListingCardProps as e, type IListingComponents as f, type IListingEmptyProps as g, type IListingFilterPanelProps as h, type IListingLoadingProps as i, type IListingMarkerProps as j, type IListingPopupProps as k, type IListingResultHeaderProps as l, type IListingSearchProps as m, type IListingSidebarProps as n, type ListingAppProps as o, ListingComponentsProvider as p, type BottomNavView as q, type IBottomNavAction as r, type IBottomNavProps as s, type IStyledListingLayoutProps as t, useListingComponents as u, type ListingAppMapProp as v };
414
+ export { BottomNav as B, type ClusterOptions as C, type DatasetDefinition as D, FilterRegistry as F, type IListingConfigOptions as I, ListingApp as L, type MarkerRenderer as M, PaginationMode as P, StyledListingLayout as S, type IListingToolbarProps as a, FallbackPopup as b, type FilterControlProps as c, type FilterDefinition as d, type IListingCardProps as e, type IListingComponents as f, type IListingEmptyProps as g, type IListingFilterPanelProps as h, type IListingLoadingProps as i, type IListingMarkerProps as j, type IListingPopupProps as k, type IListingResultHeaderProps as l, type IListingSearchProps as m, type IListingSidebarProps as n, type ListingAppProps as o, ListingComponentsProvider as p, type MobileSheetFooterContext as q, type BottomNavView as r, type IBottomNavAction as s, type IBottomNavProps as t, useListingComponents as u, type IStyledListingLayoutProps as v, type ListingAppMapProp as w };
@@ -140,4 +140,4 @@ interface MapProvider {
140
140
  toggleFullscreen(): void;
141
141
  }
142
142
 
143
- export type { Bounds as B, EntityId as E, LatLng as L, MapPoint as M, Page as P, QueryParams as Q, RenderedLayer as R, Unsubscribe as U, MapProvider as a, EntityAdapter as b, MapHandle as c, MapInitOptions as d, MapOverlayHandle as e, PageRequest as f };
143
+ export type { Bounds as B, EntityId as E, LatLng as L, MapPoint as M, Page as P, QueryParams as Q, RenderedLayer as R, Unsubscribe as U, MapProvider as a, MapHandle as b, EntityAdapter as c, MapInitOptions as d, MapOverlayHandle as e, PageRequest as f };
@@ -140,4 +140,4 @@ interface MapProvider {
140
140
  toggleFullscreen(): void;
141
141
  }
142
142
 
143
- export type { Bounds as B, EntityId as E, LatLng as L, MapPoint as M, Page as P, QueryParams as Q, RenderedLayer as R, Unsubscribe as U, MapProvider as a, EntityAdapter as b, MapHandle as c, MapInitOptions as d, MapOverlayHandle as e, PageRequest as f };
143
+ export type { Bounds as B, EntityId as E, LatLng as L, MapPoint as M, Page as P, QueryParams as Q, RenderedLayer as R, Unsubscribe as U, MapProvider as a, MapHandle as b, EntityAdapter as c, MapInitOptions as d, MapOverlayHandle as e, PageRequest as f };
@@ -1,5 +1,5 @@
1
1
  import { APIOptions } from '@googlemaps/js-api-loader';
2
- import { a as MapProvider } from '../../map-provider.interface-B5Law7gE.cjs';
2
+ import { a as MapProvider } from '../../map-provider.interface-l-oTHRTZ.cjs';
3
3
 
4
4
  interface GoogleMapsProviderConfig {
5
5
  /** Google Maps JavaScript API key. Required -- there is no hardcoded fallback. */
@@ -1,5 +1,5 @@
1
1
  import { APIOptions } from '@googlemaps/js-api-loader';
2
- import { a as MapProvider } from '../../map-provider.interface-B5Law7gE.js';
2
+ import { a as MapProvider } from '../../map-provider.interface-l-oTHRTZ.js';
3
3
 
4
4
  interface GoogleMapsProviderConfig {
5
5
  /** Google Maps JavaScript API key. Required -- there is no hardcoded fallback. */
@@ -1,2 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
- var _chunkSR7UMK4Ucjs = require('../chunk-SR7UMK4U.cjs');var _jsxruntime = require('react/jsx-runtime');function L({children:o}){return _jsxruntime.jsx.call(void 0, _chunkSR7UMK4Ucjs.q,{..._chunkSR7UMK4Ucjs.O,children:o})}exports.BottomNav = _chunkSR7UMK4Ucjs.P; exports.BottomSheet = _chunkSR7UMK4Ucjs.Q; exports.ListingApp = _chunkSR7UMK4Ucjs.S; exports.StyledCard = _chunkSR7UMK4Ucjs.E; exports.StyledComponentsProviderWithDefaults = L; exports.StyledEmpty = _chunkSR7UMK4Ucjs.F; exports.StyledFilterPanel = _chunkSR7UMK4Ucjs.G; exports.StyledListingLayout = _chunkSR7UMK4Ucjs.R; exports.StyledLoading = _chunkSR7UMK4Ucjs.H; exports.StyledMarker = _chunkSR7UMK4Ucjs.I; exports.StyledPopup = _chunkSR7UMK4Ucjs.J; exports.StyledResultHeader = _chunkSR7UMK4Ucjs.K; exports.StyledSearch = _chunkSR7UMK4Ucjs.L; exports.StyledSidebar = _chunkSR7UMK4Ucjs.M; exports.StyledToolbar = _chunkSR7UMK4Ucjs.N; exports.styledDefaultComponents = _chunkSR7UMK4Ucjs.O;
2
+ var _chunk7N4WNE7Pcjs = require('../chunk-7N4WNE7P.cjs');var _jsxruntime = require('react/jsx-runtime');function L({children:o}){return _jsxruntime.jsx.call(void 0, _chunk7N4WNE7Pcjs.q,{..._chunk7N4WNE7Pcjs.O,children:o})}exports.BottomNav = _chunk7N4WNE7Pcjs.P; exports.BottomSheet = _chunk7N4WNE7Pcjs.Q; exports.ListingApp = _chunk7N4WNE7Pcjs.S; exports.StyledCard = _chunk7N4WNE7Pcjs.E; exports.StyledComponentsProviderWithDefaults = L; exports.StyledEmpty = _chunk7N4WNE7Pcjs.F; exports.StyledFilterPanel = _chunk7N4WNE7Pcjs.G; exports.StyledListingLayout = _chunk7N4WNE7Pcjs.R; exports.StyledLoading = _chunk7N4WNE7Pcjs.H; exports.StyledMarker = _chunk7N4WNE7Pcjs.I; exports.StyledPopup = _chunk7N4WNE7Pcjs.J; exports.StyledResultHeader = _chunk7N4WNE7Pcjs.K; exports.StyledSearch = _chunk7N4WNE7Pcjs.L; exports.StyledSidebar = _chunk7N4WNE7Pcjs.M; exports.StyledToolbar = _chunk7N4WNE7Pcjs.N; exports.styledDefaultComponents = _chunk7N4WNE7Pcjs.O;
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { e as IListingCardProps, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, a as IListingToolbarProps, f as IListingComponents } from '../listing-app-S7zz1ovr.cjs';
4
- export { B as BottomNav, q as BottomNavView, r as IBottomNavAction, s as IBottomNavProps, t as IStyledListingLayoutProps, L as ListingApp, v as ListingAppMapProp, o as ListingAppProps, S as StyledListingLayout } from '../listing-app-S7zz1ovr.cjs';
5
- import '../map-provider.interface-B5Law7gE.cjs';
3
+ import { e as IListingCardProps, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, a as IListingToolbarProps, f as IListingComponents } from '../listing-app-DSyKxCod.cjs';
4
+ export { B as BottomNav, r as BottomNavView, s as IBottomNavAction, t as IBottomNavProps, v as IStyledListingLayoutProps, L as ListingApp, w as ListingAppMapProp, o as ListingAppProps, q as MobileSheetFooterContext, S as StyledListingLayout } from '../listing-app-DSyKxCod.cjs';
5
+ import '../map-provider.interface-l-oTHRTZ.cjs';
6
6
 
7
7
  /**
8
8
  * Default `/styled` `Card` slot. Renders an optional image, title, subtitle,
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { e as IListingCardProps, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, a as IListingToolbarProps, f as IListingComponents } from '../listing-app-CKWKPJrW.js';
4
- export { B as BottomNav, q as BottomNavView, r as IBottomNavAction, s as IBottomNavProps, t as IStyledListingLayoutProps, L as ListingApp, v as ListingAppMapProp, o as ListingAppProps, S as StyledListingLayout } from '../listing-app-CKWKPJrW.js';
5
- import '../map-provider.interface-B5Law7gE.js';
3
+ import { e as IListingCardProps, g as IListingEmptyProps, h as IListingFilterPanelProps, i as IListingLoadingProps, j as IListingMarkerProps, k as IListingPopupProps, l as IListingResultHeaderProps, m as IListingSearchProps, n as IListingSidebarProps, a as IListingToolbarProps, f as IListingComponents } from '../listing-app-B8kWOP7r.js';
4
+ export { B as BottomNav, r as BottomNavView, s as IBottomNavAction, t as IBottomNavProps, v as IStyledListingLayoutProps, L as ListingApp, w as ListingAppMapProp, o as ListingAppProps, q as MobileSheetFooterContext, S as StyledListingLayout } from '../listing-app-B8kWOP7r.js';
5
+ import '../map-provider.interface-l-oTHRTZ.js';
6
6
 
7
7
  /**
8
8
  * Default `/styled` `Card` slot. Renders an optional image, title, subtitle,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{E as r,F as p,G as i,H as d,I as y,J as l,K as n,L as m,M as s,N as a,O as t,P as S,Q as f,R as P,S as u,q as e}from"../chunk-PG33Q2EN.js";import{jsx as g}from"react/jsx-runtime";function L({children:o}){return g(e,{...t,children:o})}export{S as BottomNav,f as BottomSheet,u as ListingApp,r as StyledCard,L as StyledComponentsProviderWithDefaults,p as StyledEmpty,i as StyledFilterPanel,P as StyledListingLayout,d as StyledLoading,y as StyledMarker,l as StyledPopup,n as StyledResultHeader,m as StyledSearch,s as StyledSidebar,a as StyledToolbar,t as styledDefaultComponents};
2
+ import{E as r,F as p,G as i,H as y,I as d,J as l,K as n,L as m,M as s,N as a,O as t,P as S,Q as f,R as P,S as u,q as e}from"../chunk-2V5CEBHB.js";import{jsx as g}from"react/jsx-runtime";function L({children:o}){return g(e,{...t,children:o})}export{S as BottomNav,f as BottomSheet,u as ListingApp,r as StyledCard,L as StyledComponentsProviderWithDefaults,p as StyledEmpty,i as StyledFilterPanel,P as StyledListingLayout,y as StyledLoading,d as StyledMarker,l as StyledPopup,n as StyledResultHeader,m as StyledSearch,s as StyledSidebar,a as StyledToolbar,t as styledDefaultComponents};
@@ -1,4 +1,4 @@
1
- import { a as MapProvider, c as MapHandle, R as RenderedLayer, B as Bounds, E as EntityId, L as LatLng, d as MapInitOptions, U as Unsubscribe, e as MapOverlayHandle, b as EntityAdapter, f as PageRequest, P as Page, M as MapPoint } from '../map-provider.interface-B5Law7gE.cjs';
1
+ import { a as MapProvider, b as MapHandle, R as RenderedLayer, B as Bounds, E as EntityId, L as LatLng, d as MapInitOptions, U as Unsubscribe, e as MapOverlayHandle, c as EntityAdapter, f as PageRequest, P as Page, M as MapPoint } from '../map-provider.interface-l-oTHRTZ.cjs';
2
2
 
3
3
  type BoundsListener = (b: Bounds) => void;
4
4
  /** One live overlay record kept by `FakeMapProvider.mountOverlay` for assertions. */
@@ -1,4 +1,4 @@
1
- import { a as MapProvider, c as MapHandle, R as RenderedLayer, B as Bounds, E as EntityId, L as LatLng, d as MapInitOptions, U as Unsubscribe, e as MapOverlayHandle, b as EntityAdapter, f as PageRequest, P as Page, M as MapPoint } from '../map-provider.interface-B5Law7gE.js';
1
+ import { a as MapProvider, b as MapHandle, R as RenderedLayer, B as Bounds, E as EntityId, L as LatLng, d as MapInitOptions, U as Unsubscribe, e as MapOverlayHandle, c as EntityAdapter, f as PageRequest, P as Page, M as MapPoint } from '../map-provider.interface-l-oTHRTZ.js';
2
2
 
3
3
  type BoundsListener = (b: Bounds) => void;
4
4
  /** One live overlay record kept by `FakeMapProvider.mountOverlay` for assertions. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-listing-engine",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "license": "MIT",
5
5
  "description": "Headless, composable listing engine for React: filterable list + Google-Maps multi-layer map, with pluggable data adapters, a filter/dataset registry, injectable components, and a Tailwind-free styled adapter.",
6
6
  "funding": [