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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/chunk-2V5CEBHB.js +2 -0
- package/dist/chunk-7N4WNE7P.cjs +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +23 -5
- package/dist/index.d.ts +23 -5
- package/dist/index.js +1 -1
- package/dist/{listing-app-CKWKPJrW.d.ts → listing-app-B8kWOP7r.d.ts} +42 -5
- package/dist/{listing-app-S7zz1ovr.d.cts → listing-app-DSyKxCod.d.cts} +42 -5
- package/dist/{map-provider.interface-B5Law7gE.d.cts → map-provider.interface-l-oTHRTZ.d.cts} +1 -1
- package/dist/{map-provider.interface-B5Law7gE.d.ts → map-provider.interface-l-oTHRTZ.d.ts} +1 -1
- package/dist/maps/google/index.d.cts +1 -1
- package/dist/maps/google/index.d.ts +1 -1
- package/dist/styled/index.cjs +1 -1
- package/dist/styled/index.d.cts +3 -3
- package/dist/styled/index.d.ts +3 -3
- package/dist/styled/index.js +1 -1
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/chunk-PG33Q2EN.js +0 -2
- package/dist/chunk-SR7UMK4U.cjs +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# react-listing-engine
|
|
2
2
|
|
|
3
|
+
## 0.7.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Expose `fitBounds(bounds)` on `useListingMap()` so consumers can fly the map to a bounding box programmatically (e.g. a search-autocomplete "select a destination" flow). The resulting bounds-changed event flows through the normal pipeline (bounds store + point reload + consumer bounds-sync), and a consumer-initiated fly counts as a user move — the one-time initial auto-fit never yanks the view away afterwards. Safe no-op when no map is mounted.
|
|
8
|
+
|
|
9
|
+
## 0.7.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Add a `mobileSheetFooter` render-prop to `ListingApp` so consumers can own the mobile filters bottom-sheet footer. It receives `{ draft, apply, clear, resultCount, loading }` (exported as `MobileSheetFooterContext`), letting the consumer render a LIVE preview count for the deferred draft (e.g. via its own count endpoint) instead of the default applied count. When the prop is omitted, the default footer (Clear all + "Show N results") is unchanged.
|
|
14
|
+
|
|
3
15
|
## 0.7.4
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -136,7 +136,7 @@ Every visual value is a `--rle-*` CSS variable declared on `:root`, so you rethe
|
|
|
136
136
|
- `useListingState()` — the full store snapshot, subscribed via `useSyncExternalStore`.
|
|
137
137
|
- `useListingResults()` — just the paginated results slice.
|
|
138
138
|
- `useListingFilters()` — current filters plus `set(patch)` / `setField(key, value)`.
|
|
139
|
-
- `useListingMap()` — bounds + per-dataset points, plus `loadPoints(bounds)` / `selectPoint(datasetId, id)
|
|
139
|
+
- `useListingMap()` — bounds + per-dataset points, plus `loadPoints(bounds)` / `selectPoint(datasetId, id)` and map actions: `zoomIn()` / `zoomOut()` / `toggleFullscreen()` / `fitBounds(bounds)` (flies the mounted map to a bounding box; safe no-op without a mounted map — the resulting bounds-changed event then reloads points for the new area like any user pan).
|
|
140
140
|
- `useListingLayer(id)` — one dataset's visibility, points, and a `toggle()`.
|
|
141
141
|
- `useListingEvent(type | '*', handler)` — subscribe to engine events for the component's lifetime.
|
|
142
142
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var X=class{state;listeners=new Set;constructor(e){this.state=this.freezeState({filters:{...e.filters},results:{items:[],nextCursor:null},bounds:null,selection:null,hovered:null,pagination:{mode:e.mode??"paged",loading:!1},layers:{},points:{}})}getState(){return this.state}setFilters(e){this.setState({filters:{...this.state.filters,...e}})}setResults(e){this.setState({results:{items:[...e.items],nextCursor:e.nextCursor,total:e.total}})}appendResults(e){this.setState({results:{items:[...this.state.results.items,...e.items],nextCursor:e.nextCursor,total:e.total}})}setBounds(e){this.setState({bounds:e?{...e}:null})}setSelection(e){this.setState({selection:e})}setHovered(e){this.setState({hovered:e})}setLayerVisible(e,i){this.setState({layers:{...this.state.layers,[e]:i}})}setLoading(e){this.setState({pagination:{...this.state.pagination,loading:e}})}setPoints(e,i){this.setState({points:{...this.state.points,[e]:[...i]}})}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=this.freezeState({...this.state,...e}),this.notify()}notify(){for(let e of this.listeners)e()}freezeState(e){Object.freeze(e.filters),Object.freeze(e.results.items),Object.freeze(e.results),e.bounds&&Object.freeze(e.bounds),Object.freeze(e.pagination),Object.freeze(e.layers);for(let i of Object.values(e.points))Object.freeze(i);return Object.freeze(e.points),Object.freeze(e)}};var z=class{defs=new Map;add(e){if(this.defs.has(e.key))throw new Error(`FilterRegistry: filter "${e.key}" is already registered`);return this.defs.set(e.key,{...e}),this}remove(e){return this.defs.delete(e),this}replace(e,i){if(!this.defs.has(e))throw new Error(`FilterRegistry: cannot replace unregistered filter "${e}"`);return this.defs.set(e,{...i,key:e}),this}reorder(e){let i=this.list(),r=e.filter(n=>this.defs.has(n));r.forEach((n,o)=>{this.defs.get(n).order=o});let s=new Set(r);return i.filter(n=>!s.has(n.key)).forEach((n,o)=>{n.order=r.length+o}),this}list(){return[...this.defs.values()].sort((e,i)=>e.order-i.order)}has(e){return this.defs.has(e)}toFilters(e){return this.list().filter(r=>Object.hasOwn(e,r.key)).map(r=>r.toParams(e[r.key])).reduce((r,s)=>({...r,...s}),{})}activeKeys(e){return this.list().filter(i=>i.isActive?.(e)).map(i=>i.key)}clearedParams(){return this.list().reduce((e,i)=>Object.assign(e,i.toParams(i.fromParams({}))),{})}};var J=class{defs=new Map;add(e){if(this.defs.has(e.id))throw new Error(`DatasetRegistry: dataset "${e.id}" is already registered`);return this.defs.set(e.id,{...e}),this}get(e){return this.defs.get(e)}has(e){return this.defs.has(e)}list(){return[...this.defs.values()]}visibleIds(){return this.list().filter(e=>e.visible?.()!==!1).map(e=>e.id)}};var Y=class{map=new Map;dispose(){this.map.clear()}emit(e){let i=this.map.get(e.type);if(i)for(let s of[...i])s(e);let r=this.map.get("*");if(r)for(let s of[...r])s(e)}on(e,i){let r=this.map.get(e);return r||(r=new Set,this.map.set(e,r)),r.add(i),()=>{r.delete(i)}}};var Re={pagination:"paged",pageSize:20,debounceMs:250};var ee=class{options;constructor(e){this.options=Object.freeze({...Re,...e})}};var te=class{filters;map;datasets;primaryDatasetId;store;emitter=new Y;config;debounceTimer=null;debounceResolve=null;queryToken=0;pointsToken=0;mapHandle=null;constructor(e){this.datasets=e.datasets,this.filters=e.filters??new z,this.map=e.map,this.config=new ee(e.config);let i=e.primaryDatasetId??this.datasets.list()[0]?.id;if(i==null||!this.datasets.has(i))throw new Error(`ListingEngine: primary dataset "${i??""}" is not registered \u2014 pass a valid primaryDatasetId or register at least one dataset`);this.primaryDatasetId=i,this.store=new X({filters:e.initialFilters??{},mode:this.config.options.pagination})}get state(){return this.store.getState()}get options(){return this.config.options}applyFilters(e){this.store.setFilters(e),this.emitter.emit({type:"FiltersChanged",filters:this.currentFilters()}),this.clearDebounce();let i=++this.queryToken,r=this.config.options.debounceMs;return r<=0?this.runQuery(i):new Promise(s=>{this.debounceResolve=s,this.debounceTimer=setTimeout(()=>{this.debounceTimer=null,this.debounceResolve=null,s(this.runQuery(i))},r)})}async loadPage(){let e=this.state.results.nextCursor;if(e===null)return;let i=++this.queryToken,r=this.primaryDataset();this.store.setLoading(!0);try{let s=await r.adapter.list(this.currentFilters(),{cursor:e,limit:this.config.options.pageSize});if(i!==this.queryToken)return;this.config.options.pagination==="infinite"?this.store.appendResults(s):this.store.setResults(s),this.emitter.emit({type:"ResultsLoaded",datasetId:this.primaryDatasetId,count:s.items.length})}finally{i===this.queryToken&&this.store.setLoading(!1)}}async loadPoints(e){this.store.setBounds(e),this.emitter.emit({type:"BoundsChanged",bounds:e});let i=this.currentFilters(),r=++this.pointsToken;await Promise.allSettled(this.datasets.visibleIds().map(async s=>{let n=this.datasets.get(s);if(!n)return;let o=await n.adapter.getPoints(i,e);r===this.pointsToken&&this.store.setPoints(s,o)}))}setMapHandle(e){this.mapHandle=e}fitBounds(e){!this.map||!this.mapHandle||this.map.fitBounds(this.mapHandle,e)}selectPoint(e,i){this.store.setSelection(i);let r=this.state.points[e]?.find(s=>s.id===i);r&&this.emitter.emit({type:"PointClicked",datasetId:e,id:r.id,entity:r.entity})}setHovered(e,i){this.store.setHovered(i)}toggleLayer(e){let r=!(this.state.layers[e]??!0);this.store.setLayerVisible(e,r),this.emitter.emit({type:"LayerToggled",datasetId:e,visible:r})}subscribe(e){return this.store.subscribe(e)}on(e,i){return this.emitter.on(e,i)}dispose(){this.clearDebounce(),this.emitter.dispose(),this.mapHandle=null}async runQuery(e){if(e!==this.queryToken)return;let i=this.primaryDataset();this.store.setLoading(!0);try{let r=await i.adapter.list(this.currentFilters(),{cursor:null,limit:this.config.options.pageSize});if(e!==this.queryToken)return;this.store.setResults(r),this.emitter.emit({type:"ResultsLoaded",datasetId:this.primaryDatasetId,count:r.items.length})}finally{e===this.queryToken&&this.store.setLoading(!1)}}primaryDataset(){return this.datasets.get(this.primaryDatasetId)}currentFilters(){return this.store.getState().filters}clearDebounce(){this.debounceTimer!==null&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.debounceResolve!==null&&(this.debounceResolve(),this.debounceResolve=null)}};function Me(...t){let e={config:{},filters:new z,datasets:new J};for(let i of t)i(e);return e}var De=t=>e=>{e.config={...e.config,...t}},Oe=t=>e=>{e.map=t},_e=t=>e=>{e.datasets.add(t)},Be=t=>e=>{t(e.filters)},Si=t=>e=>{e.urlSync=t},He=t=>e=>{e.initialFilters=t},ki=t=>e=>{e.primaryDatasetId=t};import{createContext as ut,useContext as mt}from"react";import{jsx as N,jsxs as Ct}from"react/jsx-runtime";function ft(t){return String(t?.title??"")}var gt=({item:t})=>N("div",{children:ft(t)}),yt=()=>N("div",{}),ce=()=>N("div",{}),ht=({children:t})=>N("div",{children:t}),vt=({children:t})=>N("div",{children:t}),Lt=({value:t,onChange:e,placeholder:i})=>N("input",{type:"search",value:t,placeholder:i,onChange:r=>e(r.target.value),"aria-label":i??"Search"}),bt=()=>N("div",{role:"status",children:"No results"}),Tt=()=>N("div",{role:"status","aria-busy":"true",children:"Loading\u2026"}),Pt=({count:t})=>Ct("div",{children:[t," results"]}),Ft=({children:t})=>N("div",{children:t}),k={Card:gt,Marker:yt,Popup:ce,Sidebar:ht,FilterPanel:vt,Search:Lt,Empty:bt,Loading:Tt,ResultHeader:Pt,Toolbar:Ft},Ae=ut(k);function ze(t){let{Card:e,Marker:i,Popup:r,Sidebar:s,FilterPanel:n,Search:o,Empty:l,Loading:d,ResultHeader:c,Toolbar:a,children:L}=t,g={Card:e??k.Card,Marker:i??k.Marker,Popup:r??k.Popup,Sidebar:s??k.Sidebar,FilterPanel:n??k.FilterPanel,Search:o??k.Search,Empty:l??k.Empty,Loading:d??k.Loading,ResultHeader:c??k.ResultHeader,Toolbar:a??k.Toolbar};return N(Ae.Provider,{value:g,children:L})}function F(){return mt(Ae)}import{createContext as wt}from"react";var ie=wt(null);import{useContext as St}from"react";function h(){let t=St(ie);if(t===null)throw new Error("useListing must be used within a <ListingProvider>");return t}import{useCallback as Ue,useSyncExternalStore as kt}from"react";function C(){let t=h(),e=Ue(r=>t.subscribe(r),[t]),i=Ue(()=>t.state,[t]);return kt(e,i,i)}import{useCallback as Ke}from"react";function re(){let t=h(),e=C(),i=Ke(s=>t.applyFilters(s),[t]),r=Ke((s,n)=>t.applyFilters({[s]:n}),[t]);return{filters:e.filters,set:i,setField:r}}import{jsx as q,jsxs as It}from"react/jsx-runtime";function ue({className:t,groupClassName:e,hideLabels:i,draft:r,onDraftChange:s}={}){let n=h(),{FilterPanel:o}=F(),{filters:l}=re(),d=r!==void 0&&s!==void 0,c=d?r:l;return q(o,{children:q("div",{className:t??"space-y-5",children:n.filters.list().map(a=>{if(typeof a.render=="string")return q("div",{"data-filter":a.key,className:e},a.key);let L=a.render;return It("div",{className:e,children:[a.label&&!i&&q("div",{className:"mb-1.5 text-[13px] font-medium text-foreground",children:a.label}),q(L,{value:a.fromParams(c),onChange:g=>d?s(a.toParams(g)):void n.applyFilters(a.toParams(g))})]},a.key)})})})}function U(){return C().results}import{jsx as ne}from"react/jsx-runtime";function Et(t,e){if(t&&typeof t=="object"&&"id"in t){let i=t.id;if(typeof i=="string"||typeof i=="number")return i}return e}function Ve({className:t}={}){let e=h(),{items:i}=U(),{pagination:r,selection:s}=C(),{Card:n,Empty:o,Loading:l}=F();return r.loading&&i.length===0?ne(l,{}):i.length===0?ne(o,{}):ne("div",{role:"list",className:t,children:i.map((d,c)=>{let a=Et(d,c);return ne(n,{item:d,selected:s===a,onSelect:()=>e.selectPoint(e.primaryDatasetId,a)},a)})})}import{useEffect as j,useRef as _,useState as $e}from"react";import{createPortal as xt}from"react-dom";import{jsx as me,jsxs as je}from"react/jsx-runtime";var Nt={west:-179.9,south:-85,east:179.9,north:85},We=.1,qe=.02;function Rt(t){if(t.length===0)return null;let e=t[0].lng,i=t[0].lng,r=t[0].lat,s=t[0].lat;for(let{lat:l,lng:d}of t)d<e&&(e=d),d>i&&(i=d),l<r&&(r=l),l>s&&(s=l);let n=s>r?(s-r)*We:qe,o=i>e?(i-e)*We:qe;return{west:e-o,east:i+o,south:r-n,north:s+n}}function Qe(t){let{center:e,zoom:i,fallback:r,mapControls:s}=t,n=h(),o=C(),l=_(null),d=_(null),c=_(null),[a,L]=$e(!1),g=_(!1),P=_(!1),O=_(!1),p=n.map;j(()=>{let T=c.current;if(!p||!T)return;let f=[];for(let u of Object.keys(o.points)){if(o.layers[u]===!1)continue;let y=n.datasets.get(u),x=o.points[u]??[],A={id:u,markers:x.map(S=>({id:S.id,position:S.position,iconUrl:y?.marker.iconUrl?.(S.entity),element:y?.marker.element?.(S.entity)})),clustering:y?.clustering,onMarkerClick:S=>n.selectPoint(u,S)};f.push(p.renderLayer(T,A))}return()=>{f.forEach(u=>u())}},[n,p,a,o.points,o.layers]),j(()=>{if(!l.current||!p)return;let T=l.current,f=!1,u=null;return(async()=>{let y=await p.mount(T,{center:e,zoom:i,fullscreenTarget:d.current??void 0});if(f){p.destroy(y);return}c.current=y,n.setMapHandle(y),u=p.onBoundsChange(y,x=>{O.current?O.current=!1:P.current=!0,n.loadPoints(x)}),L(!0),n.loadPoints(Nt)})(),()=>{f=!0,u?.(),c.current&&(p.destroy(c.current),c.current=null,n.setMapHandle(null)),L(!1)}},[n,p]),j(()=>{let T=c.current;if(!p||!T||e||g.current||P.current)return;let f=[];for(let y of Object.keys(o.points))if(o.layers[y]!==!1)for(let x of o.points[y]??[])f.push(x.position);let u=Rt(f);u&&(g.current=!0,O.current=!0,p.fitBounds(T,u))},[p,e,a,o.points,o.layers]),j(()=>{p?.updateMarkerStates(o.selection,o.hovered)},[p,a,o.selection,o.hovered]);let{Popup:R}=F(),b=R!==ce,$=o.points[n.primaryDatasetId]??[],I=o.selection!=null?$.find(T=>T.id===o.selection):void 0,[E,G]=$e(null),Z=_(I);return Z.current=I,j(()=>{let T=c.current;if(!p||!T||!b)return;let f=Z.current;if(!f)return;let u=p.mountOverlay(f.position);G({entity:f.entity,position:f.position,container:u.container});let y=()=>n.selectPoint(n.primaryDatasetId,null),x=S=>{S.key==="Escape"&&y()};document.addEventListener("keydown",x);let A=p.onMapClick(y);return()=>{document.removeEventListener("keydown",x),A(),u.unmount(),G(null)}},[n,p,a,o.selection,b]),je("div",{ref:d,className:"relative h-full min-h-0 w-full",children:[je("div",{ref:l,className:!p&&r?"flex h-full min-h-0 w-full items-center justify-center":"h-full min-h-0 w-full",children:[!p&&r,b&&E?xt(me(R,{entity:E.entity,onClose:()=>n.selectPoint(n.primaryDatasetId,null)}),E.container):null]}),s!=null&&me("div",{className:"pointer-events-none absolute inset-0",children:me("div",{className:"pointer-events-auto",children:s})})]})}import{jsx as Mt}from"react/jsx-runtime";function Ge(){let t=h(),{results:e,pagination:i}=C();return e.nextCursor==null?null:Mt("button",{type:"button",disabled:i.loading,onClick:()=>{t.loadPage()},children:"Load more"})}import{jsx as Dt}from"react/jsx-runtime";function Ze(){let{items:t,total:e}=U(),{ResultHeader:i}=F();return Dt(i,{count:t.length,total:e})}import{useEffect as Ot,useRef as _t}from"react";function Xe(t,e){let i=h(),r=_t(e);r.current=e,Ot(()=>i.on(t,s=>r.current(s)),[i,t])}import{useEffect as Bt,useState as Je}from"react";import{jsx as Ht}from"react/jsx-runtime";function Ye(t){let{children:e,...i}=t,[r]=Je(()=>i),[s,n]=Je(null);return Bt(()=>{let o=new te({datasets:r.datasets,filters:r.filters,config:r.config,map:r.map,initialFilters:r.initialFilters,primaryDatasetId:r.primaryDatasetId});return r.urlSync&&r.urlSync.start(o),n(o),()=>{r.urlSync&&r.urlSync.stop(),o.dispose(),n(l=>l===o?null:l)}},[r]),s?Ht(ie.Provider,{value:s,children:e}):null}function K(t){return typeof t!="number"?t:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(t)}import{Fragment as zt,jsx as M,jsxs as et}from"react/jsx-runtime";function At(t){return t?"rle-card rle-card--selected":"rle-card"}function fe({item:t,selected:e,onSelect:i}){let r=t??{},s=At(e),n=et(zt,{children:[r.imageUrl?M("img",{src:r.imageUrl,alt:r.title??"",className:"rle-card-media"}):M("div",{className:"rle-card-media rle-card-media--placeholder","aria-hidden":"true"}),et("div",{className:"rle-card-body",children:[r.title&&M("span",{className:"rle-card-title",children:r.title}),r.subtitle&&M("span",{className:"rle-card-address",children:r.subtitle}),r.badge&&M("div",{className:"rle-card-info",children:M("span",{className:"rle-card-info-item",children:r.badge})}),r.price!=null&&M("span",{className:"rle-card-price",children:K(r.price)})]})]});return i?M("button",{type:"button",onClick:i,"aria-pressed":e??!1,className:s,children:n}):M("article",{className:s,children:n})}import{jsx as se,jsxs as tt}from"react/jsx-runtime";function ge(t){return tt("div",{role:"status",className:"rle-empty",children:[tt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"rle-empty-icon","aria-hidden":"true",children:[se("circle",{cx:"11",cy:"11",r:"7"}),se("path",{d:"m21 21-4.3-4.3"})]}),se("p",{className:"rle-empty-title",children:"No results"}),se("p",{className:"rle-empty-hint",children:"Try adjusting your filters or search terms."})]})}import{jsx as Ut}from"react/jsx-runtime";function ye({children:t}){return Ut("div",{className:"rle-filter-panel",children:t})}import{jsx as oe,jsxs as Kt}from"react/jsx-runtime";function he(t){return oe("div",{className:"rle-loading",role:"status","aria-busy":"true","aria-label":"Loading results",children:Array.from({length:3}).map((e,i)=>Kt("div",{className:"rle-loading-item",children:[oe("div",{className:"rle-skeleton",style:{aspectRatio:"4 / 3",width:"100%"}}),oe("div",{className:"rle-skeleton",style:{height:16,width:"65%"}}),oe("div",{className:"rle-skeleton",style:{height:12,width:"35%"}})]},i))})}import{jsx as Vt}from"react/jsx-runtime";function ve({point:t}){let e=t.entity??{};return Vt("span",{className:"rle-pin",children:e.price!=null?K(e.price):""})}import{jsx as V,jsxs as Le}from"react/jsx-runtime";function be({entity:t,onClose:e}){let i=t??{};return Le("div",{className:"rle-popup",role:"group","aria-label":"Location details",children:[V("button",{type:"button",onClick:e,"aria-label":"Close",className:"rle-popup-close",children:Le("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[V("path",{d:"M18 6 6 18"}),V("path",{d:"m6 6 12 12"})]})}),Le("div",{children:[i.title&&V("div",{className:"rle-card-title",children:i.title}),i.subtitle&&V("div",{className:"rle-card-address",children:i.subtitle}),i.price!=null&&V("div",{className:"rle-card-price",children:K(i.price)})]})]})}import{jsx as $t}from"react/jsx-runtime";function Te({count:t,total:e}){let i=e!=null&&e!==t?`${t} of ${e} results`:`${t} results`;return $t("div",{className:"rle-result-header",children:i})}import{jsx as Wt}from"react/jsx-runtime";function Pe({value:t,onChange:e,placeholder:i}){return Wt("input",{type:"search",value:t,placeholder:i,onChange:r=>e(r.target.value),"aria-label":i??"Search",className:"rle-input"})}import{jsx as qt}from"react/jsx-runtime";function Fe({children:t}){return qt("aside",{className:"rle-sidebar",children:t})}import{jsx as jt}from"react/jsx-runtime";function Ce({children:t}){return jt("div",{className:"rle-toolbar",children:t})}var it={Card:fe,Marker:ve,Popup:be,Sidebar:Fe,FilterPanel:ye,Search:Pe,Empty:ge,Loading:he,ResultHeader:Te,Toolbar:Ce};import{jsx as w,jsxs as Q}from"react/jsx-runtime";function rt({view:t,onViewChange:e}){return w("nav",{className:"rle-bottom-nav","aria-label":"Listing navigation",children:Q("div",{className:"rle-viewtoggle",role:"group","aria-label":"View",children:[Q("button",{type:"button",className:`rle-viewtoggle__btn${t==="list"?" rle-viewtoggle__btn--active":""}`,"aria-pressed":t==="list",onClick:()=>e("list"),children:[w(Qt,{}),"List"]}),Q("button",{type:"button",className:`rle-viewtoggle__btn${t==="map"?" rle-viewtoggle__btn--active":""}`,"aria-pressed":t==="map",onClick:()=>e("map"),children:[w(Gt,{}),"Map"]})]})})}function Qt(){return Q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[w("line",{x1:"8",y1:"6",x2:"20",y2:"6"}),w("line",{x1:"8",y1:"12",x2:"20",y2:"12"}),w("line",{x1:"8",y1:"18",x2:"20",y2:"18"}),w("line",{x1:"4",y1:"6",x2:"4.01",y2:"6"}),w("line",{x1:"4",y1:"12",x2:"4.01",y2:"12"}),w("line",{x1:"4",y1:"18",x2:"4.01",y2:"18"})]})}function Gt(){return Q("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[w("polygon",{points:"1 6 8 3 16 6 23 3 23 18 16 21 8 18 1 21 1 6"}),w("line",{x1:"8",y1:"3",x2:"8",y2:"18"}),w("line",{x1:"16",y1:"6",x2:"16",y2:"21"})]})}import{useEffect as we,useRef as Zt,useState as nt}from"react";import{createPortal as Xt}from"react-dom";import{Fragment as Yt,jsx as D,jsxs as ae}from"react/jsx-runtime";function st({open:t,onOpenChange:e,title:i,children:r,footer:s}){let n=Zt(null),[o,l]=nt(!1),[d,c]=nt(!1);return we(()=>{if(!t){c(!1),l(!1);return}l(!0);let a=requestAnimationFrame(()=>c(!0));return()=>cancelAnimationFrame(a)},[t]),we(()=>{if(!o)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[o]),we(()=>{if(!o)return;n.current?.focus();function a(L){L.key==="Escape"&&e(!1)}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[o,e]),!o||typeof document>"u"?null:Xt(ae(Yt,{children:[D("div",{className:`rle-sheet-backdrop${d?" rle-sheet-backdrop--open":""}`,onClick:()=>e(!1),"aria-hidden":"true"}),ae("div",{ref:n,className:`rle-sheet${d?" rle-sheet--open":""}`,role:"dialog","aria-modal":"true","aria-label":i,tabIndex:-1,children:[D("div",{className:"rle-sheet__handle","aria-hidden":"true"}),ae("div",{className:"rle-sheet__header",children:[i&&D("div",{className:"rle-sheet__title",children:i}),D("button",{type:"button",className:"rle-sheet__close",onClick:()=>e(!1),"aria-label":"Close",children:D(Jt,{})})]}),D("div",{className:"rle-sheet__body",children:r}),s&&D("div",{className:"rle-sheet__footer",children:s})]})]}),document.body)}function Jt(){return ae("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[D("path",{d:"M18 6 6 18"}),D("path",{d:"m6 6 12 12"})]})}import{useEffect as Se,useRef as at,useState as H}from"react";import{jsx as v,jsxs as le}from"react/jsx-runtime";function ot({search:t,onFiltersClick:e,filterCount:i=0,action:r}){let{Search:s}=F();return le("header",{className:"rle-mobile-header",children:[t&&v("div",{className:"rle-mobile-header__search",children:v(s,{value:t.value,onChange:t.onChange,placeholder:t.placeholder})}),le("button",{type:"button",className:"rle-btn rle-mobile-header__btn",onClick:e,children:[v(ei,{}),v("span",{children:"Filters"}),i>0&&v("span",{className:"rle-mobile-header__count",children:i})]}),r&&v("button",{type:"button",className:"rle-btn rle-mobile-header__btn rle-mobile-header__btn--icon",onClick:r.onClick,"aria-label":r.label,children:r.icon??v(ti,{})})]})}function ei(){return le("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[v("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),v("circle",{cx:"9",cy:"6",r:"2",fill:"currentColor",stroke:"none"}),v("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),v("circle",{cx:"15",cy:"12",r:"2",fill:"currentColor",stroke:"none"}),v("line",{x1:"4",y1:"18",x2:"20",y2:"18"}),v("circle",{cx:"11",cy:"18",r:"2",fill:"currentColor",stroke:"none"})]})}function ti(){return le("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[v("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),v("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}import{Fragment as si,jsx as m,jsxs as B}from"react/jsx-runtime";var ii=m("div",{className:"rle-empty",children:"Map unavailable"});function ri(){let t=at(null),[e,i]=H(!0),[r,s]=H(!0);return Se(()=>{let n=t.current;if(!n)return;let o=()=>{let{clientWidth:L,scrollLeft:g,scrollWidth:P}=n;i(g<=0),s(g+L>=P-1)},l=0,d=()=>{l||(l=requestAnimationFrame(()=>{l=0,o()}))};o(),n.addEventListener("scroll",o,{passive:!0});let c,a;return typeof ResizeObserver<"u"&&(c=new ResizeObserver(o),c.observe(n)),typeof MutationObserver<"u"&&(a=new MutationObserver(d),a.observe(n,{characterData:!0,childList:!0,subtree:!0})),()=>{n.removeEventListener("scroll",o),c?.disconnect(),a?.disconnect(),l&&cancelAnimationFrame(l)}},[]),{atEnd:r,atStart:e,ref:t}}function ni(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;let i=t,r=e,s=new Set([...Object.keys(i),...Object.keys(r)]);for(let n of s)if(i[n]!==r[n])return!1;return!0}function lt({search:t,toolbarEnd:e,mobileAction:i,autoFetch:r=!0,hasMap:s,mapCenter:n,mapZoom:o,mapControls:l,mobileSheetFooter:d,className:c}){let a=h(),{Search:L}=F(),g=U(),{filters:P,set:O}=re(),{pagination:p}=C(),R=s??a.map!=null,[b,$]=H("list"),[I,E]=H(!1),{atEnd:G,atStart:Z,ref:T}=ri(),[f,u]=H(P),[y,x]=H(I);I!==y&&(x(I),I&&u(P));let A=pe=>u(ct=>({...ct,...pe})),[S,Ie]=H(!1),de=at(!1);Se(()=>{if(S){if(p.loading){de.current=!0;return}de.current&&(de.current=!1,Ie(!1),E(!1))}},[S,p.loading]);let W=t?{value:String(P[t.filterKey]??""),onChange:pe=>{O({[t.filterKey]:pe||void 0})},placeholder:t.placeholder}:void 0;Se(()=>{r!==!1&&a.applyFilters({})},[a,r]);let Ee=()=>{A(a.filters.clearedParams())},xe=()=>{if(ni(f,P)){E(!1);return}Ie(!0),a.applyFilters(f)},pt=a.filters.activeKeys(P).length,Ne=g.total??g.items.length;return B("div",{className:c?`rle-app ${c}`:"rle-app",children:[B("div",{className:"rle-filter-bar",children:[B("div",{className:"rle-filter-bar__scroll",ref:T,children:[W&&m("div",{className:"rle-filter-bar__search",children:m(L,{value:W.value,onChange:W.onChange,placeholder:W.placeholder})}),m(ue,{className:"rle-filters-row",groupClassName:"rle-filter-group",hideLabels:!0})]}),!Z&&m("div",{className:"rle-filter-bar__fade rle-filter-bar__fade--start","aria-hidden":"true"}),!G&&m("div",{className:"rle-filter-bar__fade rle-filter-bar__fade--end","aria-hidden":"true"})]}),m(ot,{search:W,onFiltersClick:()=>E(!0),filterCount:pt,action:i}),B("div",{className:`rle-body ${R?"rle-split":"rle-body--list-only"}`,"data-mobile-view":b,children:[B("div",{className:"rle-list",children:[B("div",{className:"rle-list-header",children:[m(Ze,{}),e&&m("div",{className:"rle-list-header__toolbar",children:e})]}),m(Ve,{className:"rle-list-grid"}),m(Ge,{})]}),R&&m("div",{className:"rle-map",children:m(Qe,{center:n,zoom:o,fallback:ii,mapControls:l})})]}),R&&m(rt,{view:b,onViewChange:$}),m(st,{title:"Filters",open:I,onOpenChange:E,footer:d?d({draft:f,apply:xe,clear:Ee,resultCount:Ne,loading:p.loading}):B(si,{children:[m("button",{type:"button",className:"rle-btn rle-btn--ghost",onClick:Ee,children:"Clear all"}),m("button",{type:"button",className:"rle-btn rle-btn--primary rle-sheet__apply",disabled:p.loading,onClick:xe,children:p.loading?m("span",{className:"rle-spinner","aria-label":"Updating results"}):`Show ${Ne} results`})]}),children:m(ue,{className:"rle-filter-stack",groupClassName:"rle-filter-group",draft:f,onDraftChange:A})})]})}import{useEffect as oi,useRef as ai,useState as li}from"react";import{jsx as ke,jsxs as ci}from"react/jsx-runtime";function dt(t){return"provider"in t}function di(t){let e=t!=null&&!dt(t),i=e?t.apiKey:void 0,r=e?t.mapId:void 0,s=e?t.mapOptions:void 0,n=e?t.styles:void 0,[o,l]=li(()=>!t||dt(t)?{ready:!0,provider:t?.provider}:{ready:!1});return oi(()=>{if(!i)return;let d=!1;return import("./maps/google/index.js").then(({googleProvider:c})=>{d||l({ready:!0,provider:c({apiKey:i,mapId:r,mapOptions:s,styles:n})})}),()=>{d=!0}},[i,r]),o}function pi({onFiltersChange:t}){let e=ai(t);return e.current=t,Xe("FiltersChanged",i=>{i.type==="FiltersChanged"&&e.current(i.filters)}),null}function Nn(t){let{datasets:e,filters:i,map:r,components:s,initialFilters:n,onFiltersChange:o,mobileAction:l,search:d,toolbarEnd:c,mapControls:a,mobileSheetFooter:L,config:g,autoFetch:P,className:O}=t,{ready:p,provider:R}=di(r);if(!p)return null;let b=[];for(let E of e)b.push(_e(E));i&&b.push(Be(i)),R&&b.push(Oe(R)),n&&b.push(He(n)),g&&b.push(De(g));let $=Me(...b),I={...it,...s};return ci(Ye,{...$,children:[o&&ke(pi,{onFiltersChange:o}),ke(ze,{...I,children:ke(lt,{className:O,search:d,toolbarEnd:c,mobileAction:l,autoFetch:P,mapCenter:r?.center,mapZoom:r?.zoom,mapControls:a,mobileSheetFooter:L})})]})}export{X as a,z as b,J as c,Y as d,Re as e,ee as f,te as g,Me as h,De as i,Oe as j,_e as k,Be as l,Si as m,He as n,ki as o,ce as p,ze as q,F as r,ie as s,h as t,C as u,re as v,ue as w,U as x,Ve as y,Qe as z,Ge as A,Ze as B,Xe as C,Ye as D,fe as E,ge as F,ye as G,he as H,ve as I,be as J,Te as K,Pe as L,Fe as M,Ce as N,it as O,rt as P,st as Q,lt as R,Nn as S};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5;"use client";
|
|
2
|
+
var X= (_class =class{__init() {this.listeners=new Set}constructor(e){;_class.prototype.__init.call(this);this.state=this.freezeState({filters:{...e.filters},results:{items:[],nextCursor:null},bounds:null,selection:null,hovered:null,pagination:{mode:_nullishCoalesce(e.mode, () => ("paged")),loading:!1},layers:{},points:{}})}getState(){return this.state}setFilters(e){this.setState({filters:{...this.state.filters,...e}})}setResults(e){this.setState({results:{items:[...e.items],nextCursor:e.nextCursor,total:e.total}})}appendResults(e){this.setState({results:{items:[...this.state.results.items,...e.items],nextCursor:e.nextCursor,total:e.total}})}setBounds(e){this.setState({bounds:e?{...e}:null})}setSelection(e){this.setState({selection:e})}setHovered(e){this.setState({hovered:e})}setLayerVisible(e,i){this.setState({layers:{...this.state.layers,[e]:i}})}setLoading(e){this.setState({pagination:{...this.state.pagination,loading:e}})}setPoints(e,i){this.setState({points:{...this.state.points,[e]:[...i]}})}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=this.freezeState({...this.state,...e}),this.notify()}notify(){for(let e of this.listeners)e()}freezeState(e){Object.freeze(e.filters),Object.freeze(e.results.items),Object.freeze(e.results),e.bounds&&Object.freeze(e.bounds),Object.freeze(e.pagination),Object.freeze(e.layers);for(let i of Object.values(e.points))Object.freeze(i);return Object.freeze(e.points),Object.freeze(e)}}, _class);var z= (_class2 =class{constructor() { _class2.prototype.__init2.call(this); }__init2() {this.defs=new Map}add(e){if(this.defs.has(e.key))throw new Error(`FilterRegistry: filter "${e.key}" is already registered`);return this.defs.set(e.key,{...e}),this}remove(e){return this.defs.delete(e),this}replace(e,i){if(!this.defs.has(e))throw new Error(`FilterRegistry: cannot replace unregistered filter "${e}"`);return this.defs.set(e,{...i,key:e}),this}reorder(e){let i=this.list(),r=e.filter(n=>this.defs.has(n));r.forEach((n,o)=>{this.defs.get(n).order=o});let s=new Set(r);return i.filter(n=>!s.has(n.key)).forEach((n,o)=>{n.order=r.length+o}),this}list(){return[...this.defs.values()].sort((e,i)=>e.order-i.order)}has(e){return this.defs.has(e)}toFilters(e){return this.list().filter(r=>Object.hasOwn(e,r.key)).map(r=>r.toParams(e[r.key])).reduce((r,s)=>({...r,...s}),{})}activeKeys(e){return this.list().filter(i=>_optionalChain([i, 'access', _2 => _2.isActive, 'optionalCall', _3 => _3(e)])).map(i=>i.key)}clearedParams(){return this.list().reduce((e,i)=>Object.assign(e,i.toParams(i.fromParams({}))),{})}}, _class2);var J= (_class3 =class{constructor() { _class3.prototype.__init3.call(this); }__init3() {this.defs=new Map}add(e){if(this.defs.has(e.id))throw new Error(`DatasetRegistry: dataset "${e.id}" is already registered`);return this.defs.set(e.id,{...e}),this}get(e){return this.defs.get(e)}has(e){return this.defs.has(e)}list(){return[...this.defs.values()]}visibleIds(){return this.list().filter(e=>_optionalChain([e, 'access', _4 => _4.visible, 'optionalCall', _5 => _5()])!==!1).map(e=>e.id)}}, _class3);var Y= (_class4 =class{constructor() { _class4.prototype.__init4.call(this); }__init4() {this.map=new Map}dispose(){this.map.clear()}emit(e){let i=this.map.get(e.type);if(i)for(let s of[...i])s(e);let r=this.map.get("*");if(r)for(let s of[...r])s(e)}on(e,i){let r=this.map.get(e);return r||(r=new Set,this.map.set(e,r)),r.add(i),()=>{r.delete(i)}}}, _class4);var Re={pagination:"paged",pageSize:20,debounceMs:250};var ee=class{constructor(e){this.options=Object.freeze({...Re,...e})}};var te= (_class5 =class{__init5() {this.emitter=new Y}__init6() {this.debounceTimer=null}__init7() {this.debounceResolve=null}__init8() {this.queryToken=0}__init9() {this.pointsToken=0}__init10() {this.mapHandle=null}constructor(e){;_class5.prototype.__init5.call(this);_class5.prototype.__init6.call(this);_class5.prototype.__init7.call(this);_class5.prototype.__init8.call(this);_class5.prototype.__init9.call(this);_class5.prototype.__init10.call(this);this.datasets=e.datasets,this.filters=_nullishCoalesce(e.filters, () => (new z)),this.map=e.map,this.config=new ee(e.config);let i=_nullishCoalesce(e.primaryDatasetId, () => (_optionalChain([this, 'access', _6 => _6.datasets, 'access', _7 => _7.list, 'call', _8 => _8(), 'access', _9 => _9[0], 'optionalAccess', _10 => _10.id])));if(i==null||!this.datasets.has(i))throw new Error(`ListingEngine: primary dataset "${_nullishCoalesce(i, () => (""))}" is not registered \u2014 pass a valid primaryDatasetId or register at least one dataset`);this.primaryDatasetId=i,this.store=new X({filters:_nullishCoalesce(e.initialFilters, () => ({})),mode:this.config.options.pagination})}get state(){return this.store.getState()}get options(){return this.config.options}applyFilters(e){this.store.setFilters(e),this.emitter.emit({type:"FiltersChanged",filters:this.currentFilters()}),this.clearDebounce();let i=++this.queryToken,r=this.config.options.debounceMs;return r<=0?this.runQuery(i):new Promise(s=>{this.debounceResolve=s,this.debounceTimer=setTimeout(()=>{this.debounceTimer=null,this.debounceResolve=null,s(this.runQuery(i))},r)})}async loadPage(){let e=this.state.results.nextCursor;if(e===null)return;let i=++this.queryToken,r=this.primaryDataset();this.store.setLoading(!0);try{let s=await r.adapter.list(this.currentFilters(),{cursor:e,limit:this.config.options.pageSize});if(i!==this.queryToken)return;this.config.options.pagination==="infinite"?this.store.appendResults(s):this.store.setResults(s),this.emitter.emit({type:"ResultsLoaded",datasetId:this.primaryDatasetId,count:s.items.length})}finally{i===this.queryToken&&this.store.setLoading(!1)}}async loadPoints(e){this.store.setBounds(e),this.emitter.emit({type:"BoundsChanged",bounds:e});let i=this.currentFilters(),r=++this.pointsToken;await Promise.allSettled(this.datasets.visibleIds().map(async s=>{let n=this.datasets.get(s);if(!n)return;let o=await n.adapter.getPoints(i,e);r===this.pointsToken&&this.store.setPoints(s,o)}))}setMapHandle(e){this.mapHandle=e}fitBounds(e){!this.map||!this.mapHandle||this.map.fitBounds(this.mapHandle,e)}selectPoint(e,i){this.store.setSelection(i);let r=_optionalChain([this, 'access', _11 => _11.state, 'access', _12 => _12.points, 'access', _13 => _13[e], 'optionalAccess', _14 => _14.find, 'call', _15 => _15(s=>s.id===i)]);r&&this.emitter.emit({type:"PointClicked",datasetId:e,id:r.id,entity:r.entity})}setHovered(e,i){this.store.setHovered(i)}toggleLayer(e){let r=!(_nullishCoalesce(this.state.layers[e], () => (!0)));this.store.setLayerVisible(e,r),this.emitter.emit({type:"LayerToggled",datasetId:e,visible:r})}subscribe(e){return this.store.subscribe(e)}on(e,i){return this.emitter.on(e,i)}dispose(){this.clearDebounce(),this.emitter.dispose(),this.mapHandle=null}async runQuery(e){if(e!==this.queryToken)return;let i=this.primaryDataset();this.store.setLoading(!0);try{let r=await i.adapter.list(this.currentFilters(),{cursor:null,limit:this.config.options.pageSize});if(e!==this.queryToken)return;this.store.setResults(r),this.emitter.emit({type:"ResultsLoaded",datasetId:this.primaryDatasetId,count:r.items.length})}finally{e===this.queryToken&&this.store.setLoading(!1)}}primaryDataset(){return this.datasets.get(this.primaryDatasetId)}currentFilters(){return this.store.getState().filters}clearDebounce(){this.debounceTimer!==null&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.debounceResolve!==null&&(this.debounceResolve(),this.debounceResolve=null)}}, _class5);function Me(...t){let e={config:{},filters:new z,datasets:new J};for(let i of t)i(e);return e}var De=t=>e=>{e.config={...e.config,...t}},Oe= exports.j =t=>e=>{e.map=t},_e= exports.k =t=>e=>{e.datasets.add(t)},Be= exports.l =t=>e=>{t(e.filters)},Si= exports.m =t=>e=>{e.urlSync=t},He= exports.n =t=>e=>{e.initialFilters=t},ki= exports.o =t=>e=>{e.primaryDatasetId=t};var _react = require('react');var _jsxruntime = require('react/jsx-runtime');function ft(t){return String(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _16 => _16.title]), () => ("")))}var gt=({item:t})=>_jsxruntime.jsx.call(void 0, "div",{children:ft(t)}),yt=()=>_jsxruntime.jsx.call(void 0, "div",{}),ce= exports.p =()=>_jsxruntime.jsx.call(void 0, "div",{}),ht=({children:t})=>_jsxruntime.jsx.call(void 0, "div",{children:t}),vt=({children:t})=>_jsxruntime.jsx.call(void 0, "div",{children:t}),Lt=({value:t,onChange:e,placeholder:i})=>_jsxruntime.jsx.call(void 0, "input",{type:"search",value:t,placeholder:i,onChange:r=>e(r.target.value),"aria-label":_nullishCoalesce(i, () => ("Search"))}),bt=()=>_jsxruntime.jsx.call(void 0, "div",{role:"status",children:"No results"}),Tt=()=>_jsxruntime.jsx.call(void 0, "div",{role:"status","aria-busy":"true",children:"Loading\u2026"}),Pt=({count:t})=>_jsxruntime.jsxs.call(void 0, "div",{children:[t," results"]}),Ft=({children:t})=>_jsxruntime.jsx.call(void 0, "div",{children:t}),k={Card:gt,Marker:yt,Popup:ce,Sidebar:ht,FilterPanel:vt,Search:Lt,Empty:bt,Loading:Tt,ResultHeader:Pt,Toolbar:Ft},Ae=_react.createContext.call(void 0, k);function ze(t){let{Card:e,Marker:i,Popup:r,Sidebar:s,FilterPanel:n,Search:o,Empty:l,Loading:d,ResultHeader:c,Toolbar:a,children:L}=t,g={Card:_nullishCoalesce(e, () => (k.Card)),Marker:_nullishCoalesce(i, () => (k.Marker)),Popup:_nullishCoalesce(r, () => (k.Popup)),Sidebar:_nullishCoalesce(s, () => (k.Sidebar)),FilterPanel:_nullishCoalesce(n, () => (k.FilterPanel)),Search:_nullishCoalesce(o, () => (k.Search)),Empty:_nullishCoalesce(l, () => (k.Empty)),Loading:_nullishCoalesce(d, () => (k.Loading)),ResultHeader:_nullishCoalesce(c, () => (k.ResultHeader)),Toolbar:_nullishCoalesce(a, () => (k.Toolbar))};return _jsxruntime.jsx.call(void 0, Ae.Provider,{value:g,children:L})}function F(){return _react.useContext.call(void 0, Ae)}var ie=_react.createContext.call(void 0, null);function h(){let t=_react.useContext.call(void 0, ie);if(t===null)throw new Error("useListing must be used within a <ListingProvider>");return t}function C(){let t=h(),e=_react.useCallback.call(void 0, r=>t.subscribe(r),[t]),i=_react.useCallback.call(void 0, ()=>t.state,[t]);return _react.useSyncExternalStore.call(void 0, e,i,i)}function re(){let t=h(),e=C(),i=_react.useCallback.call(void 0, s=>t.applyFilters(s),[t]),r=_react.useCallback.call(void 0, (s,n)=>t.applyFilters({[s]:n}),[t]);return{filters:e.filters,set:i,setField:r}}function ue({className:t,groupClassName:e,hideLabels:i,draft:r,onDraftChange:s}={}){let n=h(),{FilterPanel:o}=F(),{filters:l}=re(),d=r!==void 0&&s!==void 0,c=d?r:l;return _jsxruntime.jsx.call(void 0, o,{children:_jsxruntime.jsx.call(void 0, "div",{className:_nullishCoalesce(t, () => ("space-y-5")),children:n.filters.list().map(a=>{if(typeof a.render=="string")return _jsxruntime.jsx.call(void 0, "div",{"data-filter":a.key,className:e},a.key);let L=a.render;return _jsxruntime.jsxs.call(void 0, "div",{className:e,children:[a.label&&!i&&_jsxruntime.jsx.call(void 0, "div",{className:"mb-1.5 text-[13px] font-medium text-foreground",children:a.label}),_jsxruntime.jsx.call(void 0, L,{value:a.fromParams(c),onChange:g=>d?s(a.toParams(g)):void n.applyFilters(a.toParams(g))})]},a.key)})})})}function U(){return C().results}function Et(t,e){if(t&&typeof t=="object"&&"id"in t){let i=t.id;if(typeof i=="string"||typeof i=="number")return i}return e}function Ve({className:t}={}){let e=h(),{items:i}=U(),{pagination:r,selection:s}=C(),{Card:n,Empty:o,Loading:l}=F();return r.loading&&i.length===0?_jsxruntime.jsx.call(void 0, l,{}):i.length===0?_jsxruntime.jsx.call(void 0, o,{}):_jsxruntime.jsx.call(void 0, "div",{role:"list",className:t,children:i.map((d,c)=>{let a=Et(d,c);return _jsxruntime.jsx.call(void 0, n,{item:d,selected:s===a,onSelect:()=>e.selectPoint(e.primaryDatasetId,a)},a)})})}var _reactdom = require('react-dom');var Nt={west:-179.9,south:-85,east:179.9,north:85},We=.1,qe=.02;function Rt(t){if(t.length===0)return null;let e=t[0].lng,i=t[0].lng,r=t[0].lat,s=t[0].lat;for(let{lat:l,lng:d}of t)d<e&&(e=d),d>i&&(i=d),l<r&&(r=l),l>s&&(s=l);let n=s>r?(s-r)*We:qe,o=i>e?(i-e)*We:qe;return{west:e-o,east:i+o,south:r-n,north:s+n}}function Qe(t){let{center:e,zoom:i,fallback:r,mapControls:s}=t,n=h(),o=C(),l=_react.useRef.call(void 0, null),d=_react.useRef.call(void 0, null),c=_react.useRef.call(void 0, null),[a,L]=_react.useState.call(void 0, !1),g=_react.useRef.call(void 0, !1),P=_react.useRef.call(void 0, !1),O=_react.useRef.call(void 0, !1),p=n.map;_react.useEffect.call(void 0, ()=>{let T=c.current;if(!p||!T)return;let f=[];for(let u of Object.keys(o.points)){if(o.layers[u]===!1)continue;let y=n.datasets.get(u),x=_nullishCoalesce(o.points[u], () => ([])),A={id:u,markers:x.map(S=>({id:S.id,position:S.position,iconUrl:_optionalChain([y, 'optionalAccess', _17 => _17.marker, 'access', _18 => _18.iconUrl, 'optionalCall', _19 => _19(S.entity)]),element:_optionalChain([y, 'optionalAccess', _20 => _20.marker, 'access', _21 => _21.element, 'optionalCall', _22 => _22(S.entity)])})),clustering:_optionalChain([y, 'optionalAccess', _23 => _23.clustering]),onMarkerClick:S=>n.selectPoint(u,S)};f.push(p.renderLayer(T,A))}return()=>{f.forEach(u=>u())}},[n,p,a,o.points,o.layers]),_react.useEffect.call(void 0, ()=>{if(!l.current||!p)return;let T=l.current,f=!1,u=null;return(async()=>{let y=await p.mount(T,{center:e,zoom:i,fullscreenTarget:_nullishCoalesce(d.current, () => (void 0))});if(f){p.destroy(y);return}c.current=y,n.setMapHandle(y),u=p.onBoundsChange(y,x=>{O.current?O.current=!1:P.current=!0,n.loadPoints(x)}),L(!0),n.loadPoints(Nt)})(),()=>{f=!0,_optionalChain([u, 'optionalCall', _24 => _24()]),c.current&&(p.destroy(c.current),c.current=null,n.setMapHandle(null)),L(!1)}},[n,p]),_react.useEffect.call(void 0, ()=>{let T=c.current;if(!p||!T||e||g.current||P.current)return;let f=[];for(let y of Object.keys(o.points))if(o.layers[y]!==!1)for(let x of _nullishCoalesce(o.points[y], () => ([])))f.push(x.position);let u=Rt(f);u&&(g.current=!0,O.current=!0,p.fitBounds(T,u))},[p,e,a,o.points,o.layers]),_react.useEffect.call(void 0, ()=>{_optionalChain([p, 'optionalAccess', _25 => _25.updateMarkerStates, 'call', _26 => _26(o.selection,o.hovered)])},[p,a,o.selection,o.hovered]);let{Popup:R}=F(),b=R!==ce,$=_nullishCoalesce(o.points[n.primaryDatasetId], () => ([])),I=o.selection!=null?$.find(T=>T.id===o.selection):void 0,[E,G]=_react.useState.call(void 0, null),Z=_react.useRef.call(void 0, I);return Z.current=I,_react.useEffect.call(void 0, ()=>{let T=c.current;if(!p||!T||!b)return;let f=Z.current;if(!f)return;let u=p.mountOverlay(f.position);G({entity:f.entity,position:f.position,container:u.container});let y=()=>n.selectPoint(n.primaryDatasetId,null),x=S=>{S.key==="Escape"&&y()};document.addEventListener("keydown",x);let A=p.onMapClick(y);return()=>{document.removeEventListener("keydown",x),A(),u.unmount(),G(null)}},[n,p,a,o.selection,b]),_jsxruntime.jsxs.call(void 0, "div",{ref:d,className:"relative h-full min-h-0 w-full",children:[_jsxruntime.jsxs.call(void 0, "div",{ref:l,className:!p&&r?"flex h-full min-h-0 w-full items-center justify-center":"h-full min-h-0 w-full",children:[!p&&r,b&&E?_reactdom.createPortal.call(void 0, _jsxruntime.jsx.call(void 0, R,{entity:E.entity,onClose:()=>n.selectPoint(n.primaryDatasetId,null)}),E.container):null]}),s!=null&&_jsxruntime.jsx.call(void 0, "div",{className:"pointer-events-none absolute inset-0",children:_jsxruntime.jsx.call(void 0, "div",{className:"pointer-events-auto",children:s})})]})}function Ge(){let t=h(),{results:e,pagination:i}=C();return e.nextCursor==null?null:_jsxruntime.jsx.call(void 0, "button",{type:"button",disabled:i.loading,onClick:()=>{t.loadPage()},children:"Load more"})}function Ze(){let{items:t,total:e}=U(),{ResultHeader:i}=F();return _jsxruntime.jsx.call(void 0, i,{count:t.length,total:e})}function Xe(t,e){let i=h(),r=_react.useRef.call(void 0, e);r.current=e,_react.useEffect.call(void 0, ()=>i.on(t,s=>r.current(s)),[i,t])}function Ye(t){let{children:e,...i}=t,[r]=_react.useState.call(void 0, ()=>i),[s,n]=_react.useState.call(void 0, null);return _react.useEffect.call(void 0, ()=>{let o=new te({datasets:r.datasets,filters:r.filters,config:r.config,map:r.map,initialFilters:r.initialFilters,primaryDatasetId:r.primaryDatasetId});return r.urlSync&&r.urlSync.start(o),n(o),()=>{r.urlSync&&r.urlSync.stop(),o.dispose(),n(l=>l===o?null:l)}},[r]),s?_jsxruntime.jsx.call(void 0, ie.Provider,{value:s,children:e}):null}function K(t){return typeof t!="number"?t:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(t)}function At(t){return t?"rle-card rle-card--selected":"rle-card"}function fe({item:t,selected:e,onSelect:i}){let r=_nullishCoalesce(t, () => ({})),s=At(e),n=_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[r.imageUrl?_jsxruntime.jsx.call(void 0, "img",{src:r.imageUrl,alt:_nullishCoalesce(r.title, () => ("")),className:"rle-card-media"}):_jsxruntime.jsx.call(void 0, "div",{className:"rle-card-media rle-card-media--placeholder","aria-hidden":"true"}),_jsxruntime.jsxs.call(void 0, "div",{className:"rle-card-body",children:[r.title&&_jsxruntime.jsx.call(void 0, "span",{className:"rle-card-title",children:r.title}),r.subtitle&&_jsxruntime.jsx.call(void 0, "span",{className:"rle-card-address",children:r.subtitle}),r.badge&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-card-info",children:_jsxruntime.jsx.call(void 0, "span",{className:"rle-card-info-item",children:r.badge})}),r.price!=null&&_jsxruntime.jsx.call(void 0, "span",{className:"rle-card-price",children:K(r.price)})]})]});return i?_jsxruntime.jsx.call(void 0, "button",{type:"button",onClick:i,"aria-pressed":_nullishCoalesce(e, () => (!1)),className:s,children:n}):_jsxruntime.jsx.call(void 0, "article",{className:s,children:n})}function ge(t){return _jsxruntime.jsxs.call(void 0, "div",{role:"status",className:"rle-empty",children:[_jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"rle-empty-icon","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "circle",{cx:"11",cy:"11",r:"7"}),_jsxruntime.jsx.call(void 0, "path",{d:"m21 21-4.3-4.3"})]}),_jsxruntime.jsx.call(void 0, "p",{className:"rle-empty-title",children:"No results"}),_jsxruntime.jsx.call(void 0, "p",{className:"rle-empty-hint",children:"Try adjusting your filters or search terms."})]})}function ye({children:t}){return _jsxruntime.jsx.call(void 0, "div",{className:"rle-filter-panel",children:t})}function he(t){return _jsxruntime.jsx.call(void 0, "div",{className:"rle-loading",role:"status","aria-busy":"true","aria-label":"Loading results",children:Array.from({length:3}).map((e,i)=>_jsxruntime.jsxs.call(void 0, "div",{className:"rle-loading-item",children:[_jsxruntime.jsx.call(void 0, "div",{className:"rle-skeleton",style:{aspectRatio:"4 / 3",width:"100%"}}),_jsxruntime.jsx.call(void 0, "div",{className:"rle-skeleton",style:{height:16,width:"65%"}}),_jsxruntime.jsx.call(void 0, "div",{className:"rle-skeleton",style:{height:12,width:"35%"}})]},i))})}function ve({point:t}){let e=_nullishCoalesce(t.entity, () => ({}));return _jsxruntime.jsx.call(void 0, "span",{className:"rle-pin",children:e.price!=null?K(e.price):""})}function be({entity:t,onClose:e}){let i=_nullishCoalesce(t, () => ({}));return _jsxruntime.jsxs.call(void 0, "div",{className:"rle-popup",role:"group","aria-label":"Location details",children:[_jsxruntime.jsx.call(void 0, "button",{type:"button",onClick:e,"aria-label":"Close",className:"rle-popup-close",children:_jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "path",{d:"M18 6 6 18"}),_jsxruntime.jsx.call(void 0, "path",{d:"m6 6 12 12"})]})}),_jsxruntime.jsxs.call(void 0, "div",{children:[i.title&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-card-title",children:i.title}),i.subtitle&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-card-address",children:i.subtitle}),i.price!=null&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-card-price",children:K(i.price)})]})]})}function Te({count:t,total:e}){let i=e!=null&&e!==t?`${t} of ${e} results`:`${t} results`;return _jsxruntime.jsx.call(void 0, "div",{className:"rle-result-header",children:i})}function Pe({value:t,onChange:e,placeholder:i}){return _jsxruntime.jsx.call(void 0, "input",{type:"search",value:t,placeholder:i,onChange:r=>e(r.target.value),"aria-label":_nullishCoalesce(i, () => ("Search")),className:"rle-input"})}function Fe({children:t}){return _jsxruntime.jsx.call(void 0, "aside",{className:"rle-sidebar",children:t})}function Ce({children:t}){return _jsxruntime.jsx.call(void 0, "div",{className:"rle-toolbar",children:t})}var it={Card:fe,Marker:ve,Popup:be,Sidebar:Fe,FilterPanel:ye,Search:Pe,Empty:ge,Loading:he,ResultHeader:Te,Toolbar:Ce};function rt({view:t,onViewChange:e}){return _jsxruntime.jsx.call(void 0, "nav",{className:"rle-bottom-nav","aria-label":"Listing navigation",children:_jsxruntime.jsxs.call(void 0, "div",{className:"rle-viewtoggle",role:"group","aria-label":"View",children:[_jsxruntime.jsxs.call(void 0, "button",{type:"button",className:`rle-viewtoggle__btn${t==="list"?" rle-viewtoggle__btn--active":""}`,"aria-pressed":t==="list",onClick:()=>e("list"),children:[_jsxruntime.jsx.call(void 0, Qt,{}),"List"]}),_jsxruntime.jsxs.call(void 0, "button",{type:"button",className:`rle-viewtoggle__btn${t==="map"?" rle-viewtoggle__btn--active":""}`,"aria-pressed":t==="map",onClick:()=>e("map"),children:[_jsxruntime.jsx.call(void 0, Gt,{}),"Map"]})]})})}function Qt(){return _jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "line",{x1:"8",y1:"6",x2:"20",y2:"6"}),_jsxruntime.jsx.call(void 0, "line",{x1:"8",y1:"12",x2:"20",y2:"12"}),_jsxruntime.jsx.call(void 0, "line",{x1:"8",y1:"18",x2:"20",y2:"18"}),_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"6",x2:"4.01",y2:"6"}),_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"12",x2:"4.01",y2:"12"}),_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"18",x2:"4.01",y2:"18"})]})}function Gt(){return _jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "polygon",{points:"1 6 8 3 16 6 23 3 23 18 16 21 8 18 1 21 1 6"}),_jsxruntime.jsx.call(void 0, "line",{x1:"8",y1:"3",x2:"8",y2:"18"}),_jsxruntime.jsx.call(void 0, "line",{x1:"16",y1:"6",x2:"16",y2:"21"})]})}function st({open:t,onOpenChange:e,title:i,children:r,footer:s}){let n=_react.useRef.call(void 0, null),[o,l]=_react.useState.call(void 0, !1),[d,c]=_react.useState.call(void 0, !1);return _react.useEffect.call(void 0, ()=>{if(!t){c(!1),l(!1);return}l(!0);let a=requestAnimationFrame(()=>c(!0));return()=>cancelAnimationFrame(a)},[t]),_react.useEffect.call(void 0, ()=>{if(!o)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[o]),_react.useEffect.call(void 0, ()=>{if(!o)return;_optionalChain([n, 'access', _27 => _27.current, 'optionalAccess', _28 => _28.focus, 'call', _29 => _29()]);function a(L){L.key==="Escape"&&e(!1)}return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[o,e]),!o||typeof document>"u"?null:_reactdom.createPortal.call(void 0, _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "div",{className:`rle-sheet-backdrop${d?" rle-sheet-backdrop--open":""}`,onClick:()=>e(!1),"aria-hidden":"true"}),_jsxruntime.jsxs.call(void 0, "div",{ref:n,className:`rle-sheet${d?" rle-sheet--open":""}`,role:"dialog","aria-modal":"true","aria-label":i,tabIndex:-1,children:[_jsxruntime.jsx.call(void 0, "div",{className:"rle-sheet__handle","aria-hidden":"true"}),_jsxruntime.jsxs.call(void 0, "div",{className:"rle-sheet__header",children:[i&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-sheet__title",children:i}),_jsxruntime.jsx.call(void 0, "button",{type:"button",className:"rle-sheet__close",onClick:()=>e(!1),"aria-label":"Close",children:_jsxruntime.jsx.call(void 0, Jt,{})})]}),_jsxruntime.jsx.call(void 0, "div",{className:"rle-sheet__body",children:r}),s&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-sheet__footer",children:s})]})]}),document.body)}function Jt(){return _jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",width:"16",height:"16","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "path",{d:"M18 6 6 18"}),_jsxruntime.jsx.call(void 0, "path",{d:"m6 6 12 12"})]})}function ot({search:t,onFiltersClick:e,filterCount:i=0,action:r}){let{Search:s}=F();return _jsxruntime.jsxs.call(void 0, "header",{className:"rle-mobile-header",children:[t&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-mobile-header__search",children:_jsxruntime.jsx.call(void 0, s,{value:t.value,onChange:t.onChange,placeholder:t.placeholder})}),_jsxruntime.jsxs.call(void 0, "button",{type:"button",className:"rle-btn rle-mobile-header__btn",onClick:e,children:[_jsxruntime.jsx.call(void 0, ei,{}),_jsxruntime.jsx.call(void 0, "span",{children:"Filters"}),i>0&&_jsxruntime.jsx.call(void 0, "span",{className:"rle-mobile-header__count",children:i})]}),r&&_jsxruntime.jsx.call(void 0, "button",{type:"button",className:"rle-btn rle-mobile-header__btn rle-mobile-header__btn--icon",onClick:r.onClick,"aria-label":r.label,children:_nullishCoalesce(r.icon, () => (_jsxruntime.jsx.call(void 0, ti,{})))})]})}function ei(){return _jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"6",x2:"20",y2:"6"}),_jsxruntime.jsx.call(void 0, "circle",{cx:"9",cy:"6",r:"2",fill:"currentColor",stroke:"none"}),_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"12",x2:"20",y2:"12"}),_jsxruntime.jsx.call(void 0, "circle",{cx:"15",cy:"12",r:"2",fill:"currentColor",stroke:"none"}),_jsxruntime.jsx.call(void 0, "line",{x1:"4",y1:"18",x2:"20",y2:"18"}),_jsxruntime.jsx.call(void 0, "circle",{cx:"11",cy:"18",r:"2",fill:"currentColor",stroke:"none"})]})}function ti(){return _jsxruntime.jsxs.call(void 0, "svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[_jsxruntime.jsx.call(void 0, "line",{x1:"12",y1:"5",x2:"12",y2:"19"}),_jsxruntime.jsx.call(void 0, "line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}var ii=_jsxruntime.jsx.call(void 0, "div",{className:"rle-empty",children:"Map unavailable"});function ri(){let t=_react.useRef.call(void 0, null),[e,i]=_react.useState.call(void 0, !0),[r,s]=_react.useState.call(void 0, !0);return _react.useEffect.call(void 0, ()=>{let n=t.current;if(!n)return;let o=()=>{let{clientWidth:L,scrollLeft:g,scrollWidth:P}=n;i(g<=0),s(g+L>=P-1)},l=0,d=()=>{l||(l=requestAnimationFrame(()=>{l=0,o()}))};o(),n.addEventListener("scroll",o,{passive:!0});let c,a;return typeof ResizeObserver<"u"&&(c=new ResizeObserver(o),c.observe(n)),typeof MutationObserver<"u"&&(a=new MutationObserver(d),a.observe(n,{characterData:!0,childList:!0,subtree:!0})),()=>{n.removeEventListener("scroll",o),_optionalChain([c, 'optionalAccess', _30 => _30.disconnect, 'call', _31 => _31()]),_optionalChain([a, 'optionalAccess', _32 => _32.disconnect, 'call', _33 => _33()]),l&&cancelAnimationFrame(l)}},[]),{atEnd:r,atStart:e,ref:t}}function ni(t,e){if(t===e)return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;let i=t,r=e,s=new Set([...Object.keys(i),...Object.keys(r)]);for(let n of s)if(i[n]!==r[n])return!1;return!0}function lt({search:t,toolbarEnd:e,mobileAction:i,autoFetch:r=!0,hasMap:s,mapCenter:n,mapZoom:o,mapControls:l,mobileSheetFooter:d,className:c}){let a=h(),{Search:L}=F(),g=U(),{filters:P,set:O}=re(),{pagination:p}=C(),R=_nullishCoalesce(s, () => (a.map!=null)),[b,$]=_react.useState.call(void 0, "list"),[I,E]=_react.useState.call(void 0, !1),{atEnd:G,atStart:Z,ref:T}=ri(),[f,u]=_react.useState.call(void 0, P),[y,x]=_react.useState.call(void 0, I);I!==y&&(x(I),I&&u(P));let A=pe=>u(ct=>({...ct,...pe})),[S,Ie]=_react.useState.call(void 0, !1),de=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{if(S){if(p.loading){de.current=!0;return}de.current&&(de.current=!1,Ie(!1),E(!1))}},[S,p.loading]);let W=t?{value:String(_nullishCoalesce(P[t.filterKey], () => (""))),onChange:pe=>{O({[t.filterKey]:pe||void 0})},placeholder:t.placeholder}:void 0;_react.useEffect.call(void 0, ()=>{r!==!1&&a.applyFilters({})},[a,r]);let Ee=()=>{A(a.filters.clearedParams())},xe=()=>{if(ni(f,P)){E(!1);return}Ie(!0),a.applyFilters(f)},pt=a.filters.activeKeys(P).length,Ne=_nullishCoalesce(g.total, () => (g.items.length));return _jsxruntime.jsxs.call(void 0, "div",{className:c?`rle-app ${c}`:"rle-app",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"rle-filter-bar",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"rle-filter-bar__scroll",ref:T,children:[W&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-filter-bar__search",children:_jsxruntime.jsx.call(void 0, L,{value:W.value,onChange:W.onChange,placeholder:W.placeholder})}),_jsxruntime.jsx.call(void 0, ue,{className:"rle-filters-row",groupClassName:"rle-filter-group",hideLabels:!0})]}),!Z&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-filter-bar__fade rle-filter-bar__fade--start","aria-hidden":"true"}),!G&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-filter-bar__fade rle-filter-bar__fade--end","aria-hidden":"true"})]}),_jsxruntime.jsx.call(void 0, ot,{search:W,onFiltersClick:()=>E(!0),filterCount:pt,action:i}),_jsxruntime.jsxs.call(void 0, "div",{className:`rle-body ${R?"rle-split":"rle-body--list-only"}`,"data-mobile-view":b,children:[_jsxruntime.jsxs.call(void 0, "div",{className:"rle-list",children:[_jsxruntime.jsxs.call(void 0, "div",{className:"rle-list-header",children:[_jsxruntime.jsx.call(void 0, Ze,{}),e&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-list-header__toolbar",children:e})]}),_jsxruntime.jsx.call(void 0, Ve,{className:"rle-list-grid"}),_jsxruntime.jsx.call(void 0, Ge,{})]}),R&&_jsxruntime.jsx.call(void 0, "div",{className:"rle-map",children:_jsxruntime.jsx.call(void 0, Qe,{center:n,zoom:o,fallback:ii,mapControls:l})})]}),R&&_jsxruntime.jsx.call(void 0, rt,{view:b,onViewChange:$}),_jsxruntime.jsx.call(void 0, st,{title:"Filters",open:I,onOpenChange:E,footer:d?d({draft:f,apply:xe,clear:Ee,resultCount:Ne,loading:p.loading}):_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "button",{type:"button",className:"rle-btn rle-btn--ghost",onClick:Ee,children:"Clear all"}),_jsxruntime.jsx.call(void 0, "button",{type:"button",className:"rle-btn rle-btn--primary rle-sheet__apply",disabled:p.loading,onClick:xe,children:p.loading?_jsxruntime.jsx.call(void 0, "span",{className:"rle-spinner","aria-label":"Updating results"}):`Show ${Ne} results`})]}),children:_jsxruntime.jsx.call(void 0, ue,{className:"rle-filter-stack",groupClassName:"rle-filter-group",draft:f,onDraftChange:A})})]})}function dt(t){return"provider"in t}function di(t){let e=t!=null&&!dt(t),i=e?t.apiKey:void 0,r=e?t.mapId:void 0,s=e?t.mapOptions:void 0,n=e?t.styles:void 0,[o,l]=_react.useState.call(void 0, ()=>!t||dt(t)?{ready:!0,provider:_optionalChain([t, 'optionalAccess', _34 => _34.provider])}:{ready:!1});return _react.useEffect.call(void 0, ()=>{if(!i)return;let d=!1;return Promise.resolve().then(() => _interopRequireWildcard(require("./maps/google/index.cjs"))).then(({googleProvider:c})=>{d||l({ready:!0,provider:c({apiKey:i,mapId:r,mapOptions:s,styles:n})})}),()=>{d=!0}},[i,r]),o}function pi({onFiltersChange:t}){let e=_react.useRef.call(void 0, t);return e.current=t,Xe("FiltersChanged",i=>{i.type==="FiltersChanged"&&e.current(i.filters)}),null}function Nn(t){let{datasets:e,filters:i,map:r,components:s,initialFilters:n,onFiltersChange:o,mobileAction:l,search:d,toolbarEnd:c,mapControls:a,mobileSheetFooter:L,config:g,autoFetch:P,className:O}=t,{ready:p,provider:R}=di(r);if(!p)return null;let b=[];for(let E of e)b.push(_e(E));i&&b.push(Be(i)),R&&b.push(Oe(R)),n&&b.push(He(n)),g&&b.push(De(g));let $=Me(...b),I={...it,...s};return _jsxruntime.jsxs.call(void 0, Ye,{...$,children:[o&&_jsxruntime.jsx.call(void 0, pi,{onFiltersChange:o}),_jsxruntime.jsx.call(void 0, ze,{...I,children:_jsxruntime.jsx.call(void 0, lt,{className:O,search:d,toolbarEnd:c,mobileAction:l,autoFetch:P,mapCenter:_optionalChain([r, 'optionalAccess', _35 => _35.center]),mapZoom:_optionalChain([r, 'optionalAccess', _36 => _36.zoom]),mapControls:a,mobileSheetFooter:L})})]})}exports.a = X; exports.b = z; exports.c = J; exports.d = Y; exports.e = Re; exports.f = ee; exports.g = te; exports.h = Me; exports.i = De; exports.j = Oe; exports.k = _e; exports.l = Be; exports.m = Si; exports.n = He; exports.o = ki; exports.p = ce; exports.q = ze; exports.r = F; exports.s = ie; exports.t = h; exports.u = C; exports.v = re; exports.w = ue; exports.x = U; exports.y = Ve; exports.z = Qe; exports.A = Ge; exports.B = Ze; exports.C = Xe; exports.D = Ye; exports.E = fe; exports.F = ge; exports.G = ye; exports.H = he; exports.I = ve; exports.J = be; exports.K = Te; exports.L = Pe; exports.M = Fe; exports.N = Ce; exports.O = it; exports.P = rt; exports.Q = st; exports.R = lt; exports.S = Nn;
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;"use client";
|
|
2
|
-
var
|
|
2
|
+
var _chunk7N4WNE7Pcjs = require('./chunk-7N4WNE7P.cjs');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 =class{__init() {this.listeners=new Set}constructor(t={}){;_class.prototype.__init.call(this);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()}}, _class);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= (_class2 =class{__init2() {this.isSyncing=!1}__init3() {this.unsubscribeEngine=null}__init4() {this.unsubscribeHistory=null}constructor(t){;_class2.prototype.__init2.call(this);_class2.prototype.__init3.call(this);_class2.prototype.__init4.call(this);this.history=t.history,this.toQueryFn=t.toQuery,this.toFiltersFn=t.toFilters,this.hydrateOnStart=_nullishCoalesce(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(){_optionalChain([this, 'access', _ => _.unsubscribeEngine, 'optionalCall', _2 => _2()]),this.unsubscribeEngine=null,_optionalChain([this, 'access', _3 => _3.unsubscribeHistory, 'optionalCall', _4 => _4()]),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}}}, _class2);var f=class{constructor(t={}){this.mode=_nullishCoalesce(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)})}};var _jsxruntime = require('react/jsx-runtime');function st({children:e}){let{Toolbar:t}=_chunk7N4WNE7Pcjs.r.call(void 0, );return _jsxruntime.jsx.call(void 0, t,{children:e})}var _react = require('react');function ut(){let e=_chunk7N4WNE7Pcjs.t.call(void 0, ),t=_chunk7N4WNE7Pcjs.u.call(void 0, ),r=_react.useCallback.call(void 0, n=>e.loadPoints(n),[e]),s=_react.useCallback.call(void 0, (n,g)=>e.selectPoint(n,g),[e]),o=_react.useCallback.call(void 0, n=>e.setHovered(e.primaryDatasetId,n),[e]),i=_react.useCallback.call(void 0, ()=>_optionalChain([e, 'access', _5 => _5.map, 'optionalAccess', _6 => _6.zoomIn, 'call', _7 => _7()]),[e]),c=_react.useCallback.call(void 0, ()=>_optionalChain([e, 'access', _8 => _8.map, 'optionalAccess', _9 => _9.zoomOut, 'call', _10 => _10()]),[e]),l=_react.useCallback.call(void 0, ()=>_optionalChain([e, 'access', _11 => _11.map, 'optionalAccess', _12 => _12.toggleFullscreen, 'call', _13 => _13()]),[e]),m=_react.useCallback.call(void 0, 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}}function ht(e){let t=_chunk7N4WNE7Pcjs.t.call(void 0, ),r=_chunk7N4WNE7Pcjs.u.call(void 0, ),s=_react.useCallback.call(void 0, ()=>t.toggleLayer(e),[t,e]);return{visible:_nullishCoalesce(r.layers[e], () => (!0)),points:_nullishCoalesce(r.points[e], () => ([])),toggle:s}}exports.BrowserHistoryPort = f; exports.DatasetRegistry = _chunk7N4WNE7Pcjs.c; exports.FallbackPopup = _chunk7N4WNE7Pcjs.p; exports.FilterRegistry = _chunk7N4WNE7Pcjs.b; exports.ListingApp = _chunk7N4WNE7Pcjs.S; exports.ListingComponentsProvider = _chunk7N4WNE7Pcjs.q; exports.ListingConfig = _chunk7N4WNE7Pcjs.f; exports.ListingEngine = _chunk7N4WNE7Pcjs.g; exports.ListingEngineContext = _chunk7N4WNE7Pcjs.s; exports.ListingEventType = v; exports.ListingFilters = _chunk7N4WNE7Pcjs.w; exports.ListingList = _chunk7N4WNE7Pcjs.y; exports.ListingMap = _chunk7N4WNE7Pcjs.z; exports.ListingPagination = _chunk7N4WNE7Pcjs.A; exports.ListingProvider = _chunk7N4WNE7Pcjs.D; exports.ListingResultHeader = _chunk7N4WNE7Pcjs.B; exports.ListingStore = _chunk7N4WNE7Pcjs.a; exports.ListingToolbar = st; exports.MemoryHistoryPort = d; exports.PaginationMode = b; exports.TypedEmitter = _chunk7N4WNE7Pcjs.d; exports.UrlSyncController = h; exports.composeListingProviders = _chunk7N4WNE7Pcjs.h; exports.listingDefaultConfig = _chunk7N4WNE7Pcjs.e; exports.useListing = _chunk7N4WNE7Pcjs.t; exports.useListingComponents = _chunk7N4WNE7Pcjs.r; exports.useListingEvent = _chunk7N4WNE7Pcjs.C; exports.useListingFilters = _chunk7N4WNE7Pcjs.v; exports.useListingLayer = ht; exports.useListingMap = ut; exports.useListingResults = _chunk7N4WNE7Pcjs.x; exports.useListingState = _chunk7N4WNE7Pcjs.u; exports.withConfig = _chunk7N4WNE7Pcjs.i; exports.withDataset = _chunk7N4WNE7Pcjs.k; exports.withFilters = _chunk7N4WNE7Pcjs.l; exports.withInitialFilters = _chunk7N4WNE7Pcjs.n; exports.withMap = _chunk7N4WNE7Pcjs.j; exports.withPrimaryDataset = _chunk7N4WNE7Pcjs.o; exports.withUrlSync = _chunk7N4WNE7Pcjs.m;
|
package/dist/index.d.cts
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-
|
|
2
|
-
export {
|
|
3
|
-
import { P as PaginationMode, D as DatasetDefinition, I as IListingConfigOptions, F as FilterRegistry, a as IListingToolbarProps } from './listing-app-
|
|
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-
|
|
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.cjs';
|
|
2
|
+
export { c as EntityAdapter, d as MapInitOptions, e as MapOverlayHandle, f as PageRequest, R as RenderedLayer } from './map-provider.interface-l-oTHRTZ.cjs';
|
|
3
|
+
import { P as PaginationMode, D as DatasetDefinition, I as IListingConfigOptions, F as FilterRegistry, a as IListingToolbarProps } from './listing-app-DSyKxCod.cjs';
|
|
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-DSyKxCod.cjs';
|
|
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 };
|