[{"data":1,"prerenderedAt":3838},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-api-reference-infinite-query":342,"-fr-api-reference-infinite-query-surround":3833},[4,45,91,137,195,236,257,291,327],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Prise en main","i-lucide-rocket","/fr/getting-started","fr/01.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Qu'est-ce que Qora ?","/fr/getting-started/what-is-qora","fr/01.getting-started/2.what-is-qora","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/fr/getting-started/installation","fr/01.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":6},"Démarrage rapide","/fr/getting-started/quick-start","fr/01.getting-started/4.quick-start",{"title":25,"path":26,"stem":27,"icon":28},"Comparaison","/fr/getting-started/comparison","fr/01.getting-started/5.comparison","i-lucide-scale",{"title":30,"path":31,"stem":32,"icon":33},"Venant de TanStack Query","/fr/getting-started/coming-from-tanstack-query","fr/01.getting-started/6.coming-from-tanstack-query","i-lucide-arrow-left-right",{"title":35,"path":36,"stem":37,"icon":38},"Migrer depuis d'Autres Librairies","/fr/getting-started/migrating-from-other-libraries","fr/01.getting-started/7.migrating-from-other-libraries","i-lucide-arrow-right-left",{"title":40,"path":41,"stem":42,"icon":43},"Assistants IA","/fr/getting-started/ai-assistants","fr/01.getting-started/8.ai-assistants","i-lucide-sparkles",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"Concepts clés","i-lucide-book-open","/fr/core-concepts","fr/02.core-concepts",[51,56,61,66,71,76,81,86],{"title":52,"path":53,"stem":54,"icon":55},"Requêtes","/fr/core-concepts/queries","fr/02.core-concepts/1.queries","i-lucide-database",{"title":57,"path":58,"stem":59,"icon":60},"Clés de requête","/fr/core-concepts/query-keys","fr/02.core-concepts/2.query-keys","i-lucide-key-round",{"title":62,"path":63,"stem":64,"icon":65},"États des requêtes","/fr/core-concepts/query-states","fr/02.core-concepts/3.query-states","i-lucide-activity",{"title":67,"path":68,"stem":69,"icon":70},"Cache","/fr/core-concepts/caching","fr/02.core-concepts/4.caching","i-lucide-layers-3",{"title":72,"path":73,"stem":74,"icon":75},"Stale-While-Revalidate","/fr/core-concepts/stale-while-revalidate","fr/02.core-concepts/5.stale-while-revalidate","i-lucide-timer-reset",{"title":77,"path":78,"stem":79,"icon":80},"Déduplication","/fr/core-concepts/deduplication","fr/02.core-concepts/6.deduplication","i-lucide-copy-minus",{"title":82,"path":83,"stem":84,"icon":85},"Mutations et invalidation","/fr/core-concepts/mutations","fr/02.core-concepts/7.mutations","i-lucide-pencil-line",{"title":87,"path":88,"stem":89,"icon":90},"Hors-ligne et réseau","/fr/core-concepts/offline","fr/02.core-concepts/8.offline","i-lucide-wifi-off",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":44},"Usage avec Flutter","i-lucide-smartphone","/fr/flutter-integration","fr/03.flutter-integration",[97,102,107,112,117,122,127,132],{"title":98,"path":99,"stem":100,"icon":101},"Configuration","/fr/flutter-integration/setup","fr/03.flutter-integration/1.setup","i-lucide-wrench",{"title":103,"path":104,"stem":105,"icon":106},"QoraScope","/fr/flutter-integration/qora-scope","fr/03.flutter-integration/2.qora-scope","i-lucide-share-2",{"title":108,"path":109,"stem":110,"icon":111},"QoraBuilder","/fr/flutter-integration/qora-builder","fr/03.flutter-integration/3.qora-builder","i-lucide-blocks",{"title":113,"path":114,"stem":115,"icon":116},"QoraMutationBuilder","/fr/flutter-integration/qora-mutation-builder","fr/03.flutter-integration/4.qora-mutation-builder","i-lucide-pencil",{"title":118,"path":119,"stem":120,"icon":121},"InfiniteQueryBuilder","/fr/flutter-integration/infinite-query-builder","fr/03.flutter-integration/5.infinite-query-builder","i-lucide-infinity",{"title":123,"path":124,"stem":125,"icon":126},"Hooks (flutter_hooks)","/fr/flutter-integration/hooks","fr/03.flutter-integration/6.hooks","i-lucide-anchor",{"title":128,"path":129,"stem":130,"icon":131},"Widgets de statut réseau","/fr/flutter-integration/network-status","fr/03.flutter-integration/7.network-status","i-lucide-wifi",{"title":133,"path":134,"stem":135,"icon":136},"Bonnes pratiques","/fr/flutter-integration/best-practices","fr/03.flutter-integration/8.best-practices","i-lucide-badge-check",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":44},"Guides Pratiques","i-lucide-chef-hat","/fr/recipes","fr/04.recipes",[143,147,152,157,162,166,171,176,181,186,191],{"title":144,"path":145,"stem":146,"icon":85},"Mutations","/fr/recipes/mutations","fr/04.recipes/02.mutations",{"title":148,"path":149,"stem":150,"icon":151},"Mises à jour optimistes","/fr/recipes/optimistic-updates","fr/04.recipes/03.optimistic-updates","i-lucide-zap",{"title":153,"path":154,"stem":155,"icon":156},"Persistance","/fr/recipes/persistence","fr/04.recipes/04.persistence","i-lucide-hard-drive",{"title":158,"path":159,"stem":160,"icon":161},"Réseau adaptatif","/fr/recipes/network-aware","fr/04.recipes/05.network-aware","i-lucide-signal",{"title":163,"path":164,"stem":165,"icon":121},"Requêtes infinies","/fr/recipes/infinite-queries","fr/04.recipes/06.infinite-queries",{"title":167,"path":168,"stem":169,"icon":170},"Requêtes dépendantes","/fr/recipes/dependent-queries","fr/04.recipes/07.dependent-queries","i-lucide-link-2",{"title":172,"path":173,"stem":174,"icon":175},"Annulation","/fr/recipes/cancel-token","fr/04.recipes/08.cancel-token","i-lucide-circle-slash",{"title":177,"path":178,"stem":179,"icon":180},"Hydratation SSR","/fr/recipes/ssr-hydration","fr/04.recipes/09.ssr-hydration","i-lucide-server",{"title":182,"path":183,"stem":184,"icon":185},"Gestion des erreurs","/fr/recipes/error-handling","fr/04.recipes/10.error-handling","i-lucide-shield-alert",{"title":187,"path":188,"stem":189,"icon":190},"Tests","/fr/recipes/testing","fr/04.recipes/11.testing","i-lucide-flask-conical",{"title":192,"path":193,"stem":194},"Prefetch au Niveau des Routes","/fr/recipes/prefetch","fr/04.recipes/12.prefetch",{"title":196,"icon":197,"path":198,"stem":199,"children":200,"page":44},"Référence de l'API","i-lucide-file-code","/fr/api-reference","fr/05.api-reference",[201,206,210,214,219,224,228,232],{"title":202,"path":203,"stem":204,"icon":205},"QoraClient","/fr/api-reference/qora-client","fr/05.api-reference/1.qora-client","i-lucide-cpu",{"title":207,"path":208,"stem":209,"icon":60},"QoraKey","/fr/api-reference/qora-key","fr/05.api-reference/2.qora-key",{"title":211,"path":212,"stem":213,"icon":65},"QoraState","/fr/api-reference/qora-state","fr/05.api-reference/3.qora-state",{"title":215,"path":216,"stem":217,"icon":218},"QoraOptions","/fr/api-reference/qora-options","fr/05.api-reference/4.qora-options","i-lucide-sliders-horizontal",{"title":220,"path":221,"stem":222,"icon":223},"QoraClientConfig","/fr/api-reference/qora-client-config","fr/05.api-reference/5.qora-client-config","i-lucide-settings-2",{"title":225,"path":226,"stem":227,"icon":85},"API Mutation","/fr/api-reference/qora-mutation","fr/05.api-reference/6.qora-mutation",{"title":229,"path":230,"stem":231,"icon":156},"PersistQoraClient","/fr/api-reference/persist-qora-client","fr/05.api-reference/7.persist-qora-client",{"title":233,"path":234,"stem":235,"icon":121},"Requête infinie","/fr/api-reference/infinite-query","fr/05.api-reference/8.infinite-query",{"title":237,"icon":238,"path":239,"stem":240,"children":241,"page":44},"Outils de debug","i-lucide-bug","/fr/devtools","fr/06.devtools",[242,247,252],{"title":243,"path":244,"stem":245,"icon":246},"Vue d'ensemble","/fr/devtools/overview","fr/06.devtools/1.overview","i-lucide-layout-dashboard",{"title":248,"path":249,"stem":250,"icon":251},"Overlay intégré","/fr/devtools/overlay","fr/06.devtools/2.overlay","i-lucide-layers",{"title":253,"path":254,"stem":255,"icon":256},"Sérialisation des données","/fr/devtools/data-display","fr/06.devtools/4.data-display","i-lucide-eye",{"title":258,"icon":259,"path":260,"stem":261,"children":262,"page":44},"Intégrations tierces","i-lucide-puzzle","/fr/third-party","fr/07.third-party",[263,268,272,277,282,286],{"title":264,"path":265,"stem":266,"icon":267},"Avec Provider","/fr/third-party/with-provider","fr/07.third-party/1.with-provider","i-lucide-plug",{"title":269,"path":270,"stem":271,"icon":111},"Avec BLoC","/fr/third-party/with-bloc","fr/07.third-party/2.with-bloc",{"title":273,"path":274,"stem":275,"icon":276},"Avec Riverpod","/fr/third-party/with-riverpod","fr/07.third-party/3.with-riverpod","i-lucide-droplets",{"title":278,"path":279,"stem":280,"icon":281},"Avec RxDart","/fr/third-party/with-rxdart","fr/07.third-party/4.with-rxdart","i-lucide-git-branch",{"title":283,"path":284,"stem":285},"Avec Dio","/fr/third-party/with-dio","fr/07.third-party/5.with-dio",{"title":287,"path":288,"stem":289,"icon":290},"Avec GraphQL","/fr/third-party/with-graphql","fr/07.third-party/6.with-graphql","i-lucide-binary",{"title":292,"icon":190,"path":293,"stem":294,"children":295,"page":44},"Exemples","/fr/examples","fr/08.examples",[296,301,305,310,314,318,322],{"title":297,"path":298,"stem":299,"icon":300},"Étude de cas : Liste et détail utilisateur","/fr/examples/basic-query","fr/08.examples/1.basic-query","i-lucide-play-circle",{"title":302,"path":303,"stem":304,"icon":151},"Étude de cas : Mutations optimistes et rollback","/fr/examples/mutations-optimistic","fr/08.examples/2.mutations-optimistic",{"title":306,"path":307,"stem":308,"icon":309},"Étude de cas : Feed à défilement infini","/fr/examples/infinite-scroll","fr/08.examples/3.infinite-scroll","i-lucide-scroll",{"title":311,"path":312,"stem":313,"icon":90},"Étude de cas : Application Todo offline-first","/fr/examples/offline-first","fr/08.examples/4.offline-first",{"title":315,"path":316,"stem":317,"icon":161},"Étude de cas : Conscience réseau","/fr/examples/network-awareness","fr/08.examples/5.network-awareness",{"title":319,"path":320,"stem":321,"icon":126},"Étude de cas : Intégration des hooks","/fr/examples/hooks-integration","fr/08.examples/6.hooks-integration",{"title":323,"path":324,"stem":325,"icon":326},"Étude de cas : Application Todo complète","/fr/examples/complete-todo-app","fr/08.examples/7.complete-todo-app","i-lucide-check-square",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"Aide","i-lucide-life-buoy","/fr/help","fr/09.help",[333,338],{"title":334,"path":335,"stem":336,"icon":337},"FAQ","/fr/help/faq","fr/09.help/1.faq","i-lucide-circle-help",{"title":339,"path":340,"stem":341,"icon":101},"Dépannage","/fr/help/troubleshooting","fr/09.help/2.troubleshooting",{"id":343,"title":233,"body":344,"description":3824,"extension":3825,"links":3826,"meta":3827,"navigation":3828,"path":234,"seo":3829,"stem":235,"__hash__":3832},"docs_fr/fr/05.api-reference/8.infinite-query.md",{"type":345,"value":346,"toc":3783},"minimark",[347,355,359,381,399,404,473,479,483,590,594,600,648,654,735,740,777,793,798,831,843,849,873,884,890,913,922,925,931,938,1224,1230,1271,1274,1276,1282,1319,1327,1345,1347,1352,1389,1392,1395,1518,1524,1629,1632,1634,1640,1677,1684,1687,1745,1751,1753,1759,1765,1768,1893,1899,1902,2041,2043,2049,2052,2066,2077,2080,2159,2162,2205,2208,2213,2234,2237,2249,2261,2263,2268,2287,2290,2308,2323,2325,2330,2349,2352,2368,2378,2380,2385,2404,2417,2440,2442,2447,2461,2468,2470,2474,2498,2500,2506,2515,2518,2681,2685,2825,2827,2833,2845,2848,2918,2920,2925,2977,2995,2997,3003,3009,3052,3061,3063,3069,3104,3111,3113,3119,3157,3171,3218,3220,3226,3302,3311,3602,3604,3610,3662,3674,3676,3681,3699,3710,3746,3748,3752,3779],[348,349,351],"h2",{"id":350},"infinitedatatdata-tpageparam",[352,353,354],"code",{},"InfiniteData\u003CTData, TPageParam>",[356,357,358],"p",{},"Conteneur immuable contenant toutes les pages récupérées et leurs paramètres de page correspondants.",[356,360,361,364,365,368,369,372,373,376,377,380],{},[352,362,363],{},"TData"," est le type d'une seule page (ex. ",[352,366,367],{},"List\u003CPost>","). ",[352,370,371],{},"TPageParam"," est le type du paramètre de page (ex. ",[352,374,375],{},"int",", ",[352,378,379],{},"String?",").",[356,382,383,386,387,390,391,394,395,398],{},[352,384,385],{},"pages"," et ",[352,388,389],{},"pageParams"," ont toujours la même longueur : ",[352,392,393],{},"pages[i]"," a été récupéré en utilisant ",[352,396,397],{},"pageParams[i]",".",[400,401,403],"h3",{"id":402},"constructeur","Constructeur",[405,406,411],"pre",{"className":407,"code":408,"language":409,"meta":410,"style":410},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const InfiniteData({\n  required List\u003CTData> pages,\n  required List\u003CTPageParam> pageParams,\n})\n","dart","",[352,412,413,430,451,467],{"__ignoreMap":410},[414,415,418,422,426],"span",{"class":416,"line":417},"line",1,[414,419,421],{"class":420},"spNyl","const",[414,423,425],{"class":424},"sBMFI"," InfiniteData",[414,427,429],{"class":428},"sTEyZ","({\n",[414,431,433,436,439,442,444,447],{"class":416,"line":432},2,[414,434,435],{"class":420},"  required",[414,437,438],{"class":424}," List",[414,440,441],{"class":428},"\u003C",[414,443,363],{"class":424},[414,445,446],{"class":428},"> pages",[414,448,450],{"class":449},"sMK4o",",\n",[414,452,454,456,458,460,462,465],{"class":416,"line":453},3,[414,455,435],{"class":420},[414,457,438],{"class":424},[414,459,441],{"class":428},[414,461,371],{"class":424},[414,463,464],{"class":428},"> pageParams",[414,466,450],{"class":449},[414,468,470],{"class":416,"line":469},4,[414,471,472],{"class":428},"})\n",[356,474,475,476,398],{},"Vérifie que ",[352,477,478],{},"pages.length == pageParams.length",[400,480,482],{"id":481},"propriétés","Propriétés",[484,485,486],"collapsible",{},[487,488,489,505],"table",{},[490,491,492],"thead",{},[493,494,495,499,502],"tr",{},[496,497,498],"th",{},"Propriété",[496,500,501],{},"Type",[496,503,504],{},"Description",[506,507,508,523,542,556,574],"tbody",{},[493,509,510,515,520],{},[511,512,513],"td",{},[352,514,385],{},[511,516,517],{},[352,518,519],{},"List\u003CTData>",[511,521,522],{},"Toutes les pages récupérées dans l'ordre : première page à l'index 0.",[493,524,525,529,534],{},[511,526,527],{},[352,528,389],{},[511,530,531],{},[352,532,533],{},"List\u003CTPageParam>",[511,535,536,537,539,540,380],{},"Paramètres utilisés pour récupérer chaque page (",[352,538,397],{}," → ",[352,541,393],{},[493,543,544,549,553],{},[511,545,546],{},[352,547,548],{},"pageCount",[511,550,551],{},[352,552,375],{},[511,554,555],{},"Nombre total de pages actuellement chargées.",[493,557,558,563,568],{},[511,559,560],{},[352,561,562],{},"isEmpty",[511,564,565],{},[352,566,567],{},"bool",[511,569,570,573],{},[352,571,572],{},"true"," quand aucune page n'a été chargée.",[493,575,576,581,585],{},[511,577,578],{},[352,579,580],{},"isNotEmpty",[511,582,583],{},[352,584,567],{},[511,586,587,589],{},[352,588,572],{}," quand au moins une page a été chargée.",[400,591,593],{"id":592},"méthodes","Méthodes",[595,596,598],"h4",{"id":597},"flatten",[352,599,597],{},[405,601,603],{"className":407,"code":602,"language":409,"meta":410,"style":410},"List\u003CTItem> flatten\u003CTItem>(Iterable\u003CTItem> Function(TData page) selector)\n",[352,604,605],{"__ignoreMap":410},[414,606,607,610,612,615,618,621,623,625,628,631,633,635,637,640,643,645],{"class":416,"line":417},[414,608,609],{"class":424},"List",[414,611,441],{"class":428},[414,613,614],{"class":424},"TItem",[414,616,617],{"class":428},"> ",[414,619,597],{"class":620},"s2Zo4",[414,622,441],{"class":428},[414,624,614],{"class":424},[414,626,627],{"class":428},">(",[414,629,630],{"class":424},"Iterable",[414,632,441],{"class":428},[414,634,614],{"class":424},[414,636,617],{"class":428},[414,638,639],{"class":424},"Function",[414,641,642],{"class":428},"(",[414,644,363],{"class":424},[414,646,647],{"class":428}," page) selector)\n",[356,649,650,651,398],{},"Aplatit toutes les pages en une seule liste : la façon canonique de convertir les données paginées pour ",[352,652,653],{},"ListView.builder",[405,655,657],{"className":407,"code":656,"language":409,"meta":410,"style":410},"// TData == List\u003CPost>\nfinal posts = data.flatten((page) => page);\n\n// TData est un objet de réponse avec une liste imbriquée\nfinal posts = data.flatten((page) => page.items);\n",[352,658,659,665,695,701,706],{"__ignoreMap":410},[414,660,661],{"class":416,"line":417},[414,662,664],{"class":663},"sHwdD","// TData == List\u003CPost>\n",[414,666,667,670,673,676,679,681,683,686,689,692],{"class":416,"line":432},[414,668,669],{"class":420},"final",[414,671,672],{"class":428}," posts ",[414,674,675],{"class":449},"=",[414,677,678],{"class":428}," data",[414,680,398],{"class":449},[414,682,597],{"class":620},[414,684,685],{"class":428},"((page) ",[414,687,688],{"class":449},"=>",[414,690,691],{"class":428}," page)",[414,693,694],{"class":449},";\n",[414,696,697],{"class":416,"line":453},[414,698,700],{"emptyLinePlaceholder":699},true,"\n",[414,702,703],{"class":416,"line":469},[414,704,705],{"class":663},"// TData est un objet de réponse avec une liste imbriquée\n",[414,707,709,711,713,715,717,719,721,723,725,728,730,733],{"class":416,"line":708},5,[414,710,669],{"class":420},[414,712,672],{"class":428},[414,714,675],{"class":449},[414,716,678],{"class":428},[414,718,398],{"class":449},[414,720,597],{"class":620},[414,722,685],{"class":428},[414,724,688],{"class":449},[414,726,727],{"class":428}," page",[414,729,398],{"class":449},[414,731,732],{"class":428},"items)",[414,734,694],{"class":449},[595,736,738],{"id":737},"append",[352,739,737],{},[405,741,743],{"className":407,"code":742,"language":409,"meta":410,"style":410},"InfiniteData\u003CTData, TPageParam> append(TData page, TPageParam param)\n",[352,744,745],{"__ignoreMap":410},[414,746,747,750,752,754,756,758,760,762,764,766,768,771,774],{"class":416,"line":417},[414,748,749],{"class":424},"InfiniteData",[414,751,441],{"class":428},[414,753,363],{"class":424},[414,755,376],{"class":428},[414,757,371],{"class":424},[414,759,617],{"class":428},[414,761,737],{"class":620},[414,763,642],{"class":428},[414,765,363],{"class":424},[414,767,727],{"class":428},[414,769,770],{"class":449},",",[414,772,773],{"class":424}," TPageParam",[414,775,776],{"class":428}," param)\n",[356,778,779,780,782,783,386,786,789,790,398],{},"Retourne un nouvel ",[352,781,749],{}," avec ",[352,784,785],{},"page",[352,787,788],{},"param"," ajoutés à la fin. Utilisé en interne par ",[352,791,792],{},"fetchNextPage",[595,794,796],{"id":795},"prepend",[352,797,795],{},[405,799,801],{"className":407,"code":800,"language":409,"meta":410,"style":410},"InfiniteData\u003CTData, TPageParam> prepend(TData page, TPageParam param)\n",[352,802,803],{"__ignoreMap":410},[414,804,805,807,809,811,813,815,817,819,821,823,825,827,829],{"class":416,"line":417},[414,806,749],{"class":424},[414,808,441],{"class":428},[414,810,363],{"class":424},[414,812,376],{"class":428},[414,814,371],{"class":424},[414,816,617],{"class":428},[414,818,795],{"class":620},[414,820,642],{"class":428},[414,822,363],{"class":424},[414,824,727],{"class":428},[414,826,770],{"class":449},[414,828,773],{"class":424},[414,830,776],{"class":428},[356,832,779,833,782,835,386,837,839,840,398],{},[352,834,749],{},[352,836,785],{},[352,838,788],{}," ajoutés au début. Utilisé en interne par ",[352,841,842],{},"fetchPreviousPage",[595,844,846],{"id":845},"dropfirst",[352,847,848],{},"dropFirst",[405,850,852],{"className":407,"code":851,"language":409,"meta":410,"style":410},"InfiniteData\u003CTData, TPageParam> dropFirst()\n",[352,853,854],{"__ignoreMap":410},[414,855,856,858,860,862,864,866,868,870],{"class":416,"line":417},[414,857,749],{"class":424},[414,859,441],{"class":428},[414,861,363],{"class":424},[414,863,376],{"class":428},[414,865,371],{"class":424},[414,867,617],{"class":428},[414,869,848],{"class":620},[414,871,872],{"class":428},"()\n",[356,874,779,875,877,878,881,882,398],{},[352,876,749],{}," sans sa première page. Appelé lors du paging fenêtré quand ",[352,879,880],{},"maxPages"," est dépassé après un ",[352,883,792],{},[595,885,887],{"id":886},"droplast",[352,888,889],{},"dropLast",[405,891,893],{"className":407,"code":892,"language":409,"meta":410,"style":410},"InfiniteData\u003CTData, TPageParam> dropLast()\n",[352,894,895],{"__ignoreMap":410},[414,896,897,899,901,903,905,907,909,911],{"class":416,"line":417},[414,898,749],{"class":424},[414,900,441],{"class":428},[414,902,363],{"class":424},[414,904,376],{"class":428},[414,906,371],{"class":424},[414,908,617],{"class":428},[414,910,889],{"class":620},[414,912,872],{"class":428},[356,914,779,915,917,918,881,920,398],{},[352,916,749],{}," sans sa dernière page. Appelé lors du paging fenêtré quand ",[352,919,880],{},[352,921,842],{},[923,924],"hr",{},[348,926,928],{"id":927},"infinitequerystatetdata-tpageparam",[352,929,930],{},"InfiniteQueryState\u003CTData, TPageParam>",[356,932,933,934,937],{},"Machine à états de classe sealed pour une requête infinie. Pattern matching exhaustif avec ",[352,935,936],{},"switch"," :",[405,939,941],{"className":407,"code":940,"language":409,"meta":410,"style":410},"switch (state) {\n  case InfiniteInitial() || InfiniteLoading():\n    return const CircularProgressIndicator();\n  case InfiniteSuccess(:final data, :final hasNextPage, :final isFetchingNextPage):\n    return PostFeed(\n      items: data.flatten((page) => page),\n      hasMore: hasNextPage,\n      loadingMore: isFetchingNextPage,\n    );\n  case InfiniteFailure(:final error, :final previousData):\n    if (previousData != null) {\n      return Column(children: [\n        PostFeed(items: previousData.flatten((p) => p)),\n        ErrorBanner(error),\n      ]);\n    }\n    return ErrorScreen(error);\n}\n",[352,942,943,951,974,989,1025,1035,1057,1069,1082,1090,1118,1136,1153,1181,1192,1200,1206,1218],{"__ignoreMap":410},[414,944,945,948],{"class":416,"line":417},[414,946,936],{"class":947},"s7zQu",[414,949,950],{"class":428}," (state) {\n",[414,952,953,956,959,962,965,968,971],{"class":416,"line":432},[414,954,955],{"class":947},"  case",[414,957,958],{"class":424}," InfiniteInitial",[414,960,961],{"class":428},"() ",[414,963,964],{"class":449},"||",[414,966,967],{"class":424}," InfiniteLoading",[414,969,970],{"class":428},"()",[414,972,973],{"class":449},":\n",[414,975,976,979,982,985,987],{"class":416,"line":453},[414,977,978],{"class":947},"    return",[414,980,981],{"class":420}," const",[414,983,984],{"class":424}," CircularProgressIndicator",[414,986,970],{"class":428},[414,988,694],{"class":449},[414,990,991,993,996,998,1001,1003,1005,1007,1009,1011,1014,1016,1018,1020,1023],{"class":416,"line":469},[414,992,955],{"class":947},[414,994,995],{"class":424}," InfiniteSuccess",[414,997,642],{"class":428},[414,999,1000],{"class":449},":",[414,1002,669],{"class":420},[414,1004,678],{"class":428},[414,1006,770],{"class":449},[414,1008,937],{"class":449},[414,1010,669],{"class":420},[414,1012,1013],{"class":428}," hasNextPage",[414,1015,770],{"class":449},[414,1017,937],{"class":449},[414,1019,669],{"class":420},[414,1021,1022],{"class":428}," isFetchingNextPage)",[414,1024,973],{"class":449},[414,1026,1027,1029,1032],{"class":416,"line":708},[414,1028,978],{"class":947},[414,1030,1031],{"class":424}," PostFeed",[414,1033,1034],{"class":428},"(\n",[414,1036,1038,1041,1043,1045,1047,1049,1051,1053,1055],{"class":416,"line":1037},6,[414,1039,1040],{"class":428},"      items",[414,1042,1000],{"class":449},[414,1044,678],{"class":428},[414,1046,398],{"class":449},[414,1048,597],{"class":620},[414,1050,685],{"class":428},[414,1052,688],{"class":449},[414,1054,691],{"class":428},[414,1056,450],{"class":449},[414,1058,1060,1063,1065,1067],{"class":416,"line":1059},7,[414,1061,1062],{"class":428},"      hasMore",[414,1064,1000],{"class":449},[414,1066,1013],{"class":428},[414,1068,450],{"class":449},[414,1070,1072,1075,1077,1080],{"class":416,"line":1071},8,[414,1073,1074],{"class":428},"      loadingMore",[414,1076,1000],{"class":449},[414,1078,1079],{"class":428}," isFetchingNextPage",[414,1081,450],{"class":449},[414,1083,1085,1088],{"class":416,"line":1084},9,[414,1086,1087],{"class":428},"    )",[414,1089,694],{"class":449},[414,1091,1093,1095,1098,1100,1102,1104,1107,1109,1111,1113,1116],{"class":416,"line":1092},10,[414,1094,955],{"class":947},[414,1096,1097],{"class":424}," InfiniteFailure",[414,1099,642],{"class":428},[414,1101,1000],{"class":449},[414,1103,669],{"class":420},[414,1105,1106],{"class":428}," error",[414,1108,770],{"class":449},[414,1110,937],{"class":449},[414,1112,669],{"class":420},[414,1114,1115],{"class":428}," previousData)",[414,1117,973],{"class":449},[414,1119,1121,1124,1127,1130,1133],{"class":416,"line":1120},11,[414,1122,1123],{"class":947},"    if",[414,1125,1126],{"class":428}," (previousData ",[414,1128,1129],{"class":449},"!=",[414,1131,1132],{"class":449}," null",[414,1134,1135],{"class":428},") {\n",[414,1137,1139,1142,1145,1148,1150],{"class":416,"line":1138},12,[414,1140,1141],{"class":947},"      return",[414,1143,1144],{"class":424}," Column",[414,1146,1147],{"class":428},"(children",[414,1149,1000],{"class":449},[414,1151,1152],{"class":428}," [\n",[414,1154,1156,1159,1162,1164,1167,1169,1171,1174,1176,1179],{"class":416,"line":1155},13,[414,1157,1158],{"class":424},"        PostFeed",[414,1160,1161],{"class":428},"(items",[414,1163,1000],{"class":449},[414,1165,1166],{"class":428}," previousData",[414,1168,398],{"class":449},[414,1170,597],{"class":620},[414,1172,1173],{"class":428},"((p) ",[414,1175,688],{"class":449},[414,1177,1178],{"class":428}," p))",[414,1180,450],{"class":449},[414,1182,1184,1187,1190],{"class":416,"line":1183},14,[414,1185,1186],{"class":424},"        ErrorBanner",[414,1188,1189],{"class":428},"(error)",[414,1191,450],{"class":449},[414,1193,1195,1198],{"class":416,"line":1194},15,[414,1196,1197],{"class":428},"      ])",[414,1199,694],{"class":449},[414,1201,1203],{"class":416,"line":1202},16,[414,1204,1205],{"class":428},"    }\n",[414,1207,1209,1211,1214,1216],{"class":416,"line":1208},17,[414,1210,978],{"class":947},[414,1212,1213],{"class":424}," ErrorScreen",[414,1215,1189],{"class":428},[414,1217,694],{"class":449},[414,1219,1221],{"class":416,"line":1220},18,[414,1222,1223],{"class":428},"}\n",[400,1225,1227],{"id":1226},"infiniteinitial",[352,1228,1229],{},"InfiniteInitial",[405,1231,1233],{"className":407,"code":1232,"language":409,"meta":410,"style":410},"final class InfiniteInitial\u003CTData, TPageParam> extends InfiniteQueryState\u003CTData, TPageParam>\n",[352,1234,1235],{"__ignoreMap":410},[414,1236,1237,1239,1242,1244,1246,1248,1250,1252,1254,1257,1260,1262,1264,1266,1268],{"class":416,"line":417},[414,1238,669],{"class":420},[414,1240,1241],{"class":449}," class",[414,1243,958],{"class":424},[414,1245,441],{"class":428},[414,1247,363],{"class":424},[414,1249,376],{"class":428},[414,1251,371],{"class":424},[414,1253,617],{"class":428},[414,1255,1256],{"class":449},"extends",[414,1258,1259],{"class":424}," InfiniteQueryState",[414,1261,441],{"class":428},[414,1263,363],{"class":424},[414,1265,376],{"class":428},[414,1267,371],{"class":424},[414,1269,1270],{"class":428},">\n",[356,1272,1273],{},"La requête n'a pas encore été exécutée. État par défaut quand aucun fetch n'a été déclenché.",[923,1275],{},[400,1277,1279],{"id":1278},"infiniteloading",[352,1280,1281],{},"InfiniteLoading",[405,1283,1285],{"className":407,"code":1284,"language":409,"meta":410,"style":410},"final class InfiniteLoading\u003CTData, TPageParam> extends InfiniteQueryState\u003CTData, TPageParam>\n",[352,1286,1287],{"__ignoreMap":410},[414,1288,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317],{"class":416,"line":417},[414,1290,669],{"class":420},[414,1292,1241],{"class":449},[414,1294,967],{"class":424},[414,1296,441],{"class":428},[414,1298,363],{"class":424},[414,1300,376],{"class":428},[414,1302,371],{"class":424},[414,1304,617],{"class":428},[414,1306,1256],{"class":449},[414,1308,1259],{"class":424},[414,1310,441],{"class":428},[414,1312,363],{"class":424},[414,1314,376],{"class":428},[414,1316,371],{"class":424},[414,1318,1270],{"class":428},[356,1320,1321,1322,1326],{},"Le fetch de la ",[1323,1324,1325],"strong",{},"première"," page est en cours. Aucune page n'a encore été chargée.",[356,1328,1329,1330,1332,1333,1336,1337,1340,1341,1344],{},"Après le chargement de la première page, l'état ne revient jamais à ",[352,1331,1281],{},". Les fetches de pages suivantes signalent leur progression via ",[352,1334,1335],{},"isFetchingNextPage","/",[352,1338,1339],{},"isFetchingPreviousPage"," sur ",[352,1342,1343],{},"InfiniteSuccess",", gardant les pages existantes visibles.",[923,1346],{},[400,1348,1350],{"id":1349},"infinitesuccess",[352,1351,1343],{},[405,1353,1355],{"className":407,"code":1354,"language":409,"meta":410,"style":410},"final class InfiniteSuccess\u003CTData, TPageParam> extends InfiniteQueryState\u003CTData, TPageParam>\n",[352,1356,1357],{"__ignoreMap":410},[414,1358,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387],{"class":416,"line":417},[414,1360,669],{"class":420},[414,1362,1241],{"class":449},[414,1364,995],{"class":424},[414,1366,441],{"class":428},[414,1368,363],{"class":424},[414,1370,376],{"class":428},[414,1372,371],{"class":424},[414,1374,617],{"class":428},[414,1376,1256],{"class":449},[414,1378,1259],{"class":424},[414,1380,441],{"class":428},[414,1382,363],{"class":424},[414,1384,376],{"class":428},[414,1386,371],{"class":424},[414,1388,1270],{"class":428},[356,1390,1391],{},"Toutes les pages actuellement chargées, avec les indicateurs de statut de pagination.",[595,1393,482],{"id":1394},"propriétés-1",[487,1396,1397,1407],{},[490,1398,1399],{},[493,1400,1401,1403,1405],{},[496,1402,498],{},[496,1404,501],{},[496,1406,504],{},[506,1408,1409,1423,1443,1468,1483,1501],{},[493,1410,1411,1416,1420],{},[511,1412,1413],{},[352,1414,1415],{},"data",[511,1417,1418],{},[352,1419,354],{},[511,1421,1422],{},"Toutes les pages chargées et leurs paramètres de page.",[493,1424,1425,1430,1434],{},[511,1426,1427],{},[352,1428,1429],{},"hasNextPage",[511,1431,1432],{},[352,1433,567],{},[511,1435,1436,1438,1439,1442],{},[352,1437,572],{}," quand ",[352,1440,1441],{},"getNextPageParam"," retourne non-null pour la dernière page.",[493,1444,1445,1450,1454],{},[511,1446,1447],{},[352,1448,1449],{},"hasPreviousPage",[511,1451,1452],{},[352,1453,567],{},[511,1455,1456,1438,1458,1461,1462,1465,1466,398],{},[352,1457,572],{},[352,1459,1460],{},"getPreviousPageParam"," retourne non-null pour la première page. Toujours ",[352,1463,1464],{},"false"," si pas de ",[352,1467,1460],{},[493,1469,1470,1475,1480],{},[511,1471,1472],{},[352,1473,1474],{},"updatedAt",[511,1476,1477],{},[352,1478,1479],{},"DateTime",[511,1481,1482],{},"Quand cet état a été mis à jour avec succès pour la dernière fois.",[493,1484,1485,1489,1493],{},[511,1486,1487],{},[352,1488,1335],{},[511,1490,1491],{},[352,1492,567],{},[511,1494,1495,1497,1498,1500],{},[352,1496,572],{}," pendant un fetch de page suivante. Afficher un indicateur de chargement en bas ; ",[352,1499,1415],{}," reste valide.",[493,1502,1503,1507,1511],{},[511,1504,1505],{},[352,1506,1339],{},[511,1508,1509],{},[352,1510,567],{},[511,1512,1513,1515,1516,1500],{},[352,1514,572],{}," pendant un fetch de page précédente. Afficher un indicateur de chargement en haut ; ",[352,1517,1415],{},[595,1519,1521],{"id":1520},"copywith",[352,1522,1523],{},"copyWith",[405,1525,1527],{"className":407,"code":1526,"language":409,"meta":410,"style":410},"InfiniteSuccess\u003CTData, TPageParam> copyWith({\n  InfiniteData\u003CTData, TPageParam>? data,\n  bool? isFetchingNextPage,\n  bool? isFetchingPreviousPage,\n  bool? hasNextPage,\n  bool? hasPreviousPage,\n  DateTime? updatedAt,\n})\n",[352,1528,1529,1547,1570,1581,1592,1602,1613,1625],{"__ignoreMap":410},[414,1530,1531,1533,1535,1537,1539,1541,1543,1545],{"class":416,"line":417},[414,1532,1343],{"class":424},[414,1534,441],{"class":428},[414,1536,363],{"class":424},[414,1538,376],{"class":428},[414,1540,371],{"class":424},[414,1542,617],{"class":428},[414,1544,1523],{"class":620},[414,1546,429],{"class":428},[414,1548,1549,1552,1554,1556,1558,1560,1563,1566,1568],{"class":416,"line":432},[414,1550,1551],{"class":424},"  InfiniteData",[414,1553,441],{"class":428},[414,1555,363],{"class":424},[414,1557,376],{"class":428},[414,1559,371],{"class":424},[414,1561,1562],{"class":428},">",[414,1564,1565],{"class":449},"?",[414,1567,678],{"class":428},[414,1569,450],{"class":449},[414,1571,1572,1575,1577,1579],{"class":416,"line":453},[414,1573,1574],{"class":424},"  bool",[414,1576,1565],{"class":449},[414,1578,1079],{"class":428},[414,1580,450],{"class":449},[414,1582,1583,1585,1587,1590],{"class":416,"line":469},[414,1584,1574],{"class":424},[414,1586,1565],{"class":449},[414,1588,1589],{"class":428}," isFetchingPreviousPage",[414,1591,450],{"class":449},[414,1593,1594,1596,1598,1600],{"class":416,"line":708},[414,1595,1574],{"class":424},[414,1597,1565],{"class":449},[414,1599,1013],{"class":428},[414,1601,450],{"class":449},[414,1603,1604,1606,1608,1611],{"class":416,"line":1037},[414,1605,1574],{"class":424},[414,1607,1565],{"class":449},[414,1609,1610],{"class":428}," hasPreviousPage",[414,1612,450],{"class":449},[414,1614,1615,1618,1620,1623],{"class":416,"line":1059},[414,1616,1617],{"class":424},"  DateTime",[414,1619,1565],{"class":449},[414,1621,1622],{"class":428}," updatedAt",[414,1624,450],{"class":449},[414,1626,1627],{"class":416,"line":1071},[414,1628,472],{"class":428},[356,1630,1631],{},"Retourne une copie avec les champs spécifiés remplacés. Les champs non spécifiés conservent leurs valeurs actuelles.",[923,1633],{},[400,1635,1637],{"id":1636},"infinitefailure",[352,1638,1639],{},"InfiniteFailure",[405,1641,1643],{"className":407,"code":1642,"language":409,"meta":410,"style":410},"final class InfiniteFailure\u003CTData, TPageParam> extends InfiniteQueryState\u003CTData, TPageParam>\n",[352,1644,1645],{"__ignoreMap":410},[414,1646,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675],{"class":416,"line":417},[414,1648,669],{"class":420},[414,1650,1241],{"class":449},[414,1652,1097],{"class":424},[414,1654,441],{"class":428},[414,1656,363],{"class":424},[414,1658,376],{"class":428},[414,1660,371],{"class":424},[414,1662,617],{"class":428},[414,1664,1256],{"class":449},[414,1666,1259],{"class":424},[414,1668,441],{"class":428},[414,1670,363],{"class":424},[414,1672,376],{"class":428},[414,1674,371],{"class":424},[414,1676,1270],{"class":428},[356,1678,1679,1680,1683],{},"Un échec de fetch, avec ",[352,1681,1682],{},"previousData"," optionnel pour la dégradation gracieuse.",[595,1685,482],{"id":1686},"propriétés-2",[487,1688,1689,1699],{},[490,1690,1691],{},[493,1692,1693,1695,1697],{},[496,1694,498],{},[496,1696,501],{},[496,1698,504],{},[506,1700,1701,1716,1731],{},[493,1702,1703,1708,1713],{},[511,1704,1705],{},[352,1706,1707],{},"error",[511,1709,1710],{},[352,1711,1712],{},"Object",[511,1714,1715],{},"L'erreur levée par la fonction de fetch (après tous les retries).",[493,1717,1718,1723,1728],{},[511,1719,1720],{},[352,1721,1722],{},"stackTrace",[511,1724,1725],{},[352,1726,1727],{},"StackTrace?",[511,1729,1730],{},"Stack trace optionnelle.",[493,1732,1733,1737,1742],{},[511,1734,1735],{},[352,1736,1682],{},[511,1738,1739],{},[352,1740,1741],{},"InfiniteData\u003CTData, TPageParam>?",[511,1743,1744],{},"Dernières pages chargées avec succès, le cas échéant. Non-null quand l'échec survient après le chargement de pages.",[356,1746,1747,1748,1750],{},"Quand ",[352,1749,1682],{}," est non-null, afficher le contenu existant à côté d'un indicateur d'erreur plutôt que de remplacer toute la vue.",[923,1752],{},[348,1754,1756],{"id":1755},"infinitequeryoptionstdata-tpageparam",[352,1757,1758],{},"InfiniteQueryOptions\u003CTData, TPageParam>",[356,1760,1761,1762,1764],{},"Configuration pour une requête infinie. Combine les ",[352,1763,215],{}," standard avec des paramètres spécifiques à la pagination.",[400,1766,403],{"id":1767},"constructeur-1",[405,1769,1771],{"className":407,"code":1770,"language":409,"meta":410,"style":410},"const InfiniteQueryOptions({\n  required TPageParam initialPageParam,\n  required TPageParam? Function(TData lastPage, List\u003CTData> allPages) getNextPageParam,\n  TPageParam? Function(TData firstPage, List\u003CTData> allPages)? getPreviousPageParam,\n  int? maxPages,\n  QoraOptions baseOptions = const QoraOptions(),\n})\n",[352,1772,1773,1782,1793,1824,1858,1870,1889],{"__ignoreMap":410},[414,1774,1775,1777,1780],{"class":416,"line":417},[414,1776,421],{"class":420},[414,1778,1779],{"class":424}," InfiniteQueryOptions",[414,1781,429],{"class":428},[414,1783,1784,1786,1788,1791],{"class":416,"line":432},[414,1785,435],{"class":420},[414,1787,773],{"class":424},[414,1789,1790],{"class":428}," initialPageParam",[414,1792,450],{"class":449},[414,1794,1795,1797,1799,1801,1804,1806,1808,1811,1813,1815,1817,1819,1822],{"class":416,"line":453},[414,1796,435],{"class":420},[414,1798,773],{"class":424},[414,1800,1565],{"class":449},[414,1802,1803],{"class":424}," Function",[414,1805,642],{"class":428},[414,1807,363],{"class":424},[414,1809,1810],{"class":428}," lastPage",[414,1812,770],{"class":449},[414,1814,438],{"class":424},[414,1816,441],{"class":428},[414,1818,363],{"class":424},[414,1820,1821],{"class":428},"> allPages) getNextPageParam",[414,1823,450],{"class":449},[414,1825,1826,1829,1831,1833,1835,1837,1840,1842,1844,1846,1848,1851,1853,1856],{"class":416,"line":469},[414,1827,1828],{"class":424},"  TPageParam",[414,1830,1565],{"class":449},[414,1832,1803],{"class":424},[414,1834,642],{"class":428},[414,1836,363],{"class":424},[414,1838,1839],{"class":428}," firstPage",[414,1841,770],{"class":449},[414,1843,438],{"class":424},[414,1845,441],{"class":428},[414,1847,363],{"class":424},[414,1849,1850],{"class":428},"> allPages)",[414,1852,1565],{"class":449},[414,1854,1855],{"class":428}," getPreviousPageParam",[414,1857,450],{"class":449},[414,1859,1860,1863,1865,1868],{"class":416,"line":708},[414,1861,1862],{"class":424},"  int",[414,1864,1565],{"class":449},[414,1866,1867],{"class":428}," maxPages",[414,1869,450],{"class":449},[414,1871,1872,1875,1878,1880,1882,1885,1887],{"class":416,"line":1037},[414,1873,1874],{"class":424},"  QoraOptions",[414,1876,1877],{"class":428}," baseOptions ",[414,1879,675],{"class":449},[414,1881,981],{"class":420},[414,1883,1884],{"class":424}," QoraOptions",[414,1886,970],{"class":428},[414,1888,450],{"class":449},[414,1890,1891],{"class":416,"line":1059},[414,1892,472],{"class":428},[356,1894,1895,1896,398],{},"Vérifie ",[352,1897,1898],{},"maxPages == null || maxPages >= 1",[400,1900,482],{"id":1901},"propriétés-3",[487,1903,1904,1917],{},[490,1905,1906],{},[493,1907,1908,1910,1912,1915],{},[496,1909,498],{},[496,1911,501],{},[496,1913,1914],{},"Requis",[496,1916,504],{},[506,1918,1919,1949,1973,1997,2022],{},[493,1920,1921,1926,1930,1933],{},[511,1922,1923],{},[352,1924,1925],{},"initialPageParam",[511,1927,1928],{},[352,1929,371],{},[511,1931,1932],{},"Oui",[511,1934,1935,1936,376,1939,376,1942,1945,1946,380],{},"Paramètre pour la toute première page (ex. ",[352,1937,1938],{},"1",[352,1940,1941],{},"0",[352,1943,1944],{},"null"," ou ",[352,1947,1948],{},"''",[493,1950,1951,1955,1960,1962],{},[511,1952,1953],{},[352,1954,1441],{},[511,1956,1957],{},[352,1958,1959],{},"TPageParam? Function(TData lastPage, List\u003CTData> allPages)",[511,1961,1932],{},[511,1963,1964,1965,1967,1968,1970,1971,380],{},"Retourne le paramètre de la prochaine page, ou ",[352,1966,1944],{}," quand il n'y a plus de pages (définit ",[352,1969,1429],{}," à ",[352,1972,1464],{},[493,1974,1975,1979,1984,1987],{},[511,1976,1977],{},[352,1978,1460],{},[511,1980,1981],{},[352,1982,1983],{},"TPageParam? Function(TData firstPage, List\u003CTData> allPages)?",[511,1985,1986],{},"Non",[511,1988,1989,1990,376,1992,1994,1995,398],{},"Retourne le paramètre de la page précédente. Nécessaire uniquement pour le scroll bidirectionnel. Quand ",[352,1991,1944],{},[352,1993,1449],{}," est toujours ",[352,1996,1464],{},[493,1998,1999,2003,2008,2010],{},[511,2000,2001],{},[352,2002,880],{},[511,2004,2005],{},[352,2006,2007],{},"int?",[511,2009,1986],{},[511,2011,2012,2013,2015,2016,2018,2019,398],{},"Pages maximum gardées en mémoire. Quand dépassé, la page la plus ancienne est supprimée à ",[352,2014,792],{}," (ou la plus récente à ",[352,2017,842],{},"). Doit être ",[352,2020,2021],{},">= 1",[493,2023,2024,2029,2033,2035],{},[511,2025,2026],{},[352,2027,2028],{},"baseOptions",[511,2030,2031],{},[352,2032,215],{},[511,2034,1986],{},[511,2036,2037,2038,398],{},"Options standard de retry, stale time, cache time et network mode appliquées à chaque fetch de page. Fusionnées par-dessus ",[352,2039,2040],{},"QoraClientConfig.defaultOptions",[923,2042],{},[348,2044,2046],{"id":2045},"infinitequeryobservertdata-tpageparam",[352,2047,2048],{},"InfiniteQueryObserver\u003CTData, TPageParam>",[356,2050,2051],{},"Le moteur de pagination central. Gère le cycle de vie complet d'une seule requête infinie : récupération des pages, émission des transitions d'état et respect des gardes de concurrence.",[356,2053,2054,2055,2058,2059,2062,2063,2065],{},"Typiquement créé dans ",[352,2056,2057],{},"State.initState"," d'un widget Flutter et disposé dans ",[352,2060,2061],{},"State.dispose",". Pour un binding Flutter prêt à l'emploi, utiliser ",[352,2064,118],{}," à la place.",[356,2067,2068,2069,2072,2073,2076],{},"Plusieurs observateurs partageant la même ",[352,2070,2071],{},"key"," sur le même ",[352,2074,2075],{},"client"," partagent la même entrée de cache sous-jacente, de sorte que tous les listeners reçoivent les mêmes transitions d'état en synchronie.",[400,2078,403],{"id":2079},"constructeur-2",[405,2081,2083],{"className":407,"code":2082,"language":409,"meta":410,"style":410},"InfiniteQueryObserver({\n  required QoraClient client,\n  required Object key,\n  required InfiniteQueryFunction\u003CTData, TPageParam> fetcher,\n  required InfiniteQueryOptions\u003CTData, TPageParam> options,\n})\n",[352,2084,2085,2092,2104,2116,2136,2155],{"__ignoreMap":410},[414,2086,2087,2090],{"class":416,"line":417},[414,2088,2089],{"class":424},"InfiniteQueryObserver",[414,2091,429],{"class":428},[414,2093,2094,2096,2099,2102],{"class":416,"line":432},[414,2095,435],{"class":420},[414,2097,2098],{"class":424}," QoraClient",[414,2100,2101],{"class":428}," client",[414,2103,450],{"class":449},[414,2105,2106,2108,2111,2114],{"class":416,"line":453},[414,2107,435],{"class":420},[414,2109,2110],{"class":424}," Object",[414,2112,2113],{"class":428}," key",[414,2115,450],{"class":449},[414,2117,2118,2120,2123,2125,2127,2129,2131,2134],{"class":416,"line":469},[414,2119,435],{"class":420},[414,2121,2122],{"class":424}," InfiniteQueryFunction",[414,2124,441],{"class":428},[414,2126,363],{"class":424},[414,2128,376],{"class":428},[414,2130,371],{"class":424},[414,2132,2133],{"class":428},"> fetcher",[414,2135,450],{"class":449},[414,2137,2138,2140,2142,2144,2146,2148,2150,2153],{"class":416,"line":708},[414,2139,435],{"class":420},[414,2141,1779],{"class":424},[414,2143,441],{"class":428},[414,2145,363],{"class":424},[414,2147,376],{"class":428},[414,2149,371],{"class":424},[414,2151,2152],{"class":428},"> options",[414,2154,450],{"class":449},[414,2156,2157],{"class":416,"line":1037},[414,2158,472],{"class":428},[400,2160,482],{"id":2161},"propriétés-4",[487,2163,2164,2174],{},[490,2165,2166],{},[493,2167,2168,2170,2172],{},[496,2169,498],{},[496,2171,501],{},[496,2173,504],{},[506,2175,2176,2191],{},[493,2177,2178,2183,2188],{},[511,2179,2180],{},[352,2181,2182],{},"stream",[511,2184,2185],{},[352,2186,2187],{},"Stream\u003CInfiniteQueryState\u003CTData, TPageParam>>",[511,2189,2190],{},"Émet l'état actuel immédiatement, puis toutes les futures transitions.",[493,2192,2193,2198,2202],{},[511,2194,2195],{},[352,2196,2197],{},"state",[511,2199,2200],{},[352,2201,930],{},[511,2203,2204],{},"Snapshot synchrone de l'état actuel.",[400,2206,593],{"id":2207},"méthodes-1",[595,2209,2211],{"id":2210},"fetch",[352,2212,2210],{},[405,2214,2216],{"className":407,"code":2215,"language":409,"meta":410,"style":410},"Future\u003Cvoid> fetch()\n",[352,2217,2218],{"__ignoreMap":410},[414,2219,2220,2223,2225,2228,2230,2232],{"class":416,"line":417},[414,2221,2222],{"class":424},"Future",[414,2224,441],{"class":428},[414,2226,2227],{"class":420},"void",[414,2229,617],{"class":428},[414,2231,2210],{"class":620},[414,2233,872],{"class":428},[356,2235,2236],{},"Récupère la première page. Sans effet quand :",[2238,2239,2240,2246],"ul",{},[2241,2242,2243,2244,380],"li",{},"Des données sont déjà chargées (l'état n'est pas ",[352,2245,1229],{},[2241,2247,2248],{},"Un fetch initial est déjà en cours.",[356,2250,2251,2252,539,2254,539,2256,2258,2259,398],{},"Transitions : ",[352,2253,1229],{},[352,2255,1281],{},[352,2257,1343],{}," | ",[352,2260,1639],{},[923,2262],{},[595,2264,2266],{"id":2265},"fetchnextpage",[352,2267,792],{},[405,2269,2271],{"className":407,"code":2270,"language":409,"meta":410,"style":410},"Future\u003Cvoid> fetchNextPage()\n",[352,2272,2273],{"__ignoreMap":410},[414,2274,2275,2277,2279,2281,2283,2285],{"class":416,"line":417},[414,2276,2222],{"class":424},[414,2278,441],{"class":428},[414,2280,2227],{"class":420},[414,2282,617],{"class":428},[414,2284,792],{"class":620},[414,2286,872],{"class":428},[356,2288,2289],{},"Récupère la page suivante et l'ajoute. Sans effet quand :",[2238,2291,2292,2298,2305],{},[2241,2293,2294,2295,2297],{},"Aucune donnée n'a encore été chargée (appeler ",[352,2296,2210],{}," d'abord).",[2241,2299,2300,2302,2303,398],{},[352,2301,1429],{}," est ",[352,2304,1464],{},[2241,2306,2307],{},"Un fetch de page suivante ou précédente est déjà en cours.",[356,2309,2310,2311,2314,2315,2317,2318,782,2320,2322],{},"Pendant le fetch, définit ",[352,2312,2313],{},"isFetchingNextPage: true"," sur l'",[352,2316,1343],{}," actuel : les pages existantes restent visibles. En cas d'échec, transite vers ",[352,2319,1639],{},[352,2321,1682],{}," renseigné.",[923,2324],{},[595,2326,2328],{"id":2327},"fetchpreviouspage",[352,2329,842],{},[405,2331,2333],{"className":407,"code":2332,"language":409,"meta":410,"style":410},"Future\u003Cvoid> fetchPreviousPage()\n",[352,2334,2335],{"__ignoreMap":410},[414,2336,2337,2339,2341,2343,2345,2347],{"class":416,"line":417},[414,2338,2222],{"class":424},[414,2340,441],{"class":428},[414,2342,2227],{"class":420},[414,2344,617],{"class":428},[414,2346,842],{"class":620},[414,2348,872],{"class":428},[356,2350,2351],{},"Récupère la page précédente et la prépend. Sans effet quand :",[2238,2353,2354,2359,2365],{},[2241,2355,2356,2358],{},[352,2357,1460],{}," n'est pas configuré.",[2241,2360,2361,2302,2363,398],{},[352,2362,1449],{},[352,2364,1464],{},[2241,2366,2367],{},"Un fetch est déjà en cours.",[356,2369,2310,2370,2373,2374,782,2376,398],{},[352,2371,2372],{},"isFetchingPreviousPage: true",". En cas d'échec, transite vers ",[352,2375,1639],{},[352,2377,1682],{},[923,2379],{},[595,2381,2383],{"id":2382},"refetch",[352,2384,2382],{},[405,2386,2388],{"className":407,"code":2387,"language":409,"meta":410,"style":410},"Future\u003Cvoid> refetch()\n",[352,2389,2390],{"__ignoreMap":410},[414,2391,2392,2394,2396,2398,2400,2402],{"class":416,"line":417},[414,2393,2222],{"class":424},[414,2395,441],{"class":428},[414,2397,2227],{"class":420},[414,2399,617],{"class":428},[414,2401,2382],{"class":620},[414,2403,872],{"class":428},[356,2405,2406,2407,2409,2410,2412,2413,2416],{},"Re-récupère toutes les pages actuellement chargées en séquence, en préservant le nombre de pages. Utilise les ",[352,2408,389],{}," originaux stockés dans ",[352,2411,749],{},". Utile après ",[352,2414,2415],{},"client.invalidateInfiniteQuery(key)"," ou un pull-to-refresh.",[2238,2418,2419,2425,2433],{},[2241,2420,2421,2422,398],{},"Si aucune donnée n'est chargée, délègue à ",[352,2423,2424],{},"fetch()",[2241,2426,2427,2428,2314,2430,2432],{},"Signale la progression via ",[352,2429,2313],{},[352,2431,1343],{}," actuel.",[2241,2434,2435,2436,782,2438,398],{},"En cas d'échec, transite vers ",[352,2437,1639],{},[352,2439,1682],{},[923,2441],{},[595,2443,2445],{"id":2444},"dispose",[352,2446,2444],{},[405,2448,2450],{"className":407,"code":2449,"language":409,"meta":410,"style":410},"void dispose()\n",[352,2451,2452],{"__ignoreMap":410},[414,2453,2454,2456,2459],{"class":416,"line":417},[414,2455,2227],{"class":420},[414,2457,2458],{"class":620}," dispose",[414,2460,872],{"class":428},[356,2462,2463,2464,2467],{},"Libère cet observateur. Après le dispose, tous les appels de méthodes ultérieurs sont ignorés silencieusement. L'entrée de cache sous-jacente ",[1323,2465,2466],{},"n'est pas supprimée"," : les autres observateurs partageant la même clé continuent de fonctionner normalement.",[923,2469],{},[400,2471,2473],{"id":2472},"garanties-de-concurrence","Garanties de concurrence",[356,2475,2476,2477,376,2480,376,2483,376,2486,2489,2490,2493,2494,2497],{},"Tous les gardes (",[352,2478,2479],{},"_isFetchingInitial",[352,2481,2482],{},"_isFetchingNext",[352,2484,2485],{},"_isFetchingPrevious",[352,2487,2488],{},"_isRefetching",") sont définis comme ",[1323,2491,2492],{},"première instruction synchrone"," dans leur méthode : avant tout ",[352,2495,2496],{},"await",". Cela prévient les conditions de course dues aux événements de scroll rapide ou aux interactions UI même avant le premier aller-retour réseau.",[923,2499],{},[348,2501,2503],{"id":2502},"infinitequerybuildertdata-tpageparam",[352,2504,2505],{},"InfiniteQueryBuilder\u003CTData, TPageParam>",[356,2507,2508,2509,2514],{},"Widget Flutter qui lie une requête infinie à l'arbre de widgets. Voir le ",[2510,2511,2513],"a",{"href":2512},"../flutter-integration/infinite-query-builder","guide InfiniteQueryBuilder"," pour des exemples d'utilisation.",[400,2516,403],{"id":2517},"constructeur-3",[405,2519,2521],{"className":407,"code":2520,"language":409,"meta":410,"style":410},"const InfiniteQueryBuilder({\n  Key? key,\n  required Object queryKey,\n  required InfiniteQueryFunction\u003CTData, TPageParam> fetcher,\n  required InfiniteQueryOptions\u003CTData, TPageParam> options,\n  required Widget Function(\n    BuildContext context,\n    InfiniteQueryState\u003CTData, TPageParam> state,\n    InfiniteQueryController\u003CTData, TPageParam> controller,\n  ) builder,\n  QoraClient? client,\n  bool enabled = true,\n})\n",[352,2522,2523,2532,2543,2554,2572,2590,2601,2611,2629,2647,2654,2665,2677],{"__ignoreMap":410},[414,2524,2525,2527,2530],{"class":416,"line":417},[414,2526,421],{"class":420},[414,2528,2529],{"class":424}," InfiniteQueryBuilder",[414,2531,429],{"class":428},[414,2533,2534,2537,2539,2541],{"class":416,"line":432},[414,2535,2536],{"class":424},"  Key",[414,2538,1565],{"class":449},[414,2540,2113],{"class":428},[414,2542,450],{"class":449},[414,2544,2545,2547,2549,2552],{"class":416,"line":453},[414,2546,435],{"class":420},[414,2548,2110],{"class":424},[414,2550,2551],{"class":428}," queryKey",[414,2553,450],{"class":449},[414,2555,2556,2558,2560,2562,2564,2566,2568,2570],{"class":416,"line":469},[414,2557,435],{"class":420},[414,2559,2122],{"class":424},[414,2561,441],{"class":428},[414,2563,363],{"class":424},[414,2565,376],{"class":428},[414,2567,371],{"class":424},[414,2569,2133],{"class":428},[414,2571,450],{"class":449},[414,2573,2574,2576,2578,2580,2582,2584,2586,2588],{"class":416,"line":708},[414,2575,435],{"class":420},[414,2577,1779],{"class":424},[414,2579,441],{"class":428},[414,2581,363],{"class":424},[414,2583,376],{"class":428},[414,2585,371],{"class":424},[414,2587,2152],{"class":428},[414,2589,450],{"class":449},[414,2591,2592,2594,2597,2599],{"class":416,"line":1037},[414,2593,435],{"class":420},[414,2595,2596],{"class":424}," Widget",[414,2598,1803],{"class":424},[414,2600,1034],{"class":428},[414,2602,2603,2606,2609],{"class":416,"line":1059},[414,2604,2605],{"class":424},"    BuildContext",[414,2607,2608],{"class":428}," context",[414,2610,450],{"class":449},[414,2612,2613,2616,2618,2620,2622,2624,2627],{"class":416,"line":1071},[414,2614,2615],{"class":424},"    InfiniteQueryState",[414,2617,441],{"class":428},[414,2619,363],{"class":424},[414,2621,376],{"class":428},[414,2623,371],{"class":424},[414,2625,2626],{"class":428},"> state",[414,2628,450],{"class":449},[414,2630,2631,2634,2636,2638,2640,2642,2645],{"class":416,"line":1084},[414,2632,2633],{"class":424},"    InfiniteQueryController",[414,2635,441],{"class":428},[414,2637,363],{"class":424},[414,2639,376],{"class":428},[414,2641,371],{"class":424},[414,2643,2644],{"class":428},"> controller",[414,2646,450],{"class":449},[414,2648,2649,2652],{"class":416,"line":1092},[414,2650,2651],{"class":428},"  ) builder",[414,2653,450],{"class":449},[414,2655,2656,2659,2661,2663],{"class":416,"line":1120},[414,2657,2658],{"class":424},"  QoraClient",[414,2660,1565],{"class":449},[414,2662,2101],{"class":428},[414,2664,450],{"class":449},[414,2666,2667,2669,2672,2674],{"class":416,"line":1138},[414,2668,1574],{"class":424},[414,2670,2671],{"class":428}," enabled ",[414,2673,675],{"class":449},[414,2675,2676],{"class":449}," true,\n",[414,2678,2679],{"class":416,"line":1155},[414,2680,472],{"class":428},[400,2682,2684],{"id":2683},"props","Props",[487,2686,2687,2701],{},[490,2688,2689],{},[493,2690,2691,2694,2696,2699],{},[496,2692,2693],{},"Prop",[496,2695,501],{},[496,2697,2698],{},"Défaut",[496,2700,504],{},[506,2702,2703,2728,2748,2764,2781,2805],{},[493,2704,2705,2710,2720,2723],{},[511,2706,2707],{},[352,2708,2709],{},"queryKey",[511,2711,2712,2714,2715,1945,2717,2719],{},[352,2713,1712],{}," (",[352,2716,609],{},[352,2718,207],{},")",[511,2721,2722],{},"requis",[511,2724,2725,2726,398],{},"Clé de cache. La changer dispose l'observateur actuel et repart de ",[352,2727,1925],{},[493,2729,2730,2735,2740,2742],{},[511,2731,2732],{},[352,2733,2734],{},"fetcher",[511,2736,2737],{},[352,2738,2739],{},"InfiniteQueryFunction\u003CTData, TPageParam>",[511,2741,2722],{},[511,2743,2744,2747],{},[352,2745,2746],{},"Future\u003CTData> Function(TPageParam pageParam)"," : récupère une seule page.",[493,2749,2750,2755,2759,2761],{},[511,2751,2752],{},[352,2753,2754],{},"options",[511,2756,2757],{},[352,2758,1758],{},[511,2760,2722],{},[511,2762,2763],{},"Configuration de pagination.",[493,2765,2766,2771,2776,2778],{},[511,2767,2768],{},[352,2769,2770],{},"builder",[511,2772,2773],{},[352,2774,2775],{},"Widget Function(BuildContext, InfiniteQueryState, InfiniteQueryController)",[511,2777,2722],{},[511,2779,2780],{},"Construit l'arbre de widgets depuis l'état et le contrôleur.",[493,2782,2783,2787,2792,2796],{},[511,2784,2785],{},[352,2786,2075],{},[511,2788,2789],{},[352,2790,2791],{},"QoraClient?",[511,2793,2794],{},[352,2795,1944],{},[511,2797,2798,2799,2801,2802,2804],{},"Remplace le ",[352,2800,202],{}," depuis ",[352,2803,103],{},". Utile pour les tests.",[493,2806,2807,2812,2816,2820],{},[511,2808,2809],{},[352,2810,2811],{},"enabled",[511,2813,2814],{},[352,2815,567],{},[511,2817,2818],{},[352,2819,572],{},[511,2821,1747,2822,2824],{},[352,2823,1464],{},", le fetch de la première page est supprimé. Le widget observe toujours l'état en cache actuel.",[923,2826],{},[348,2828,2830],{"id":2829},"infinitequerycontrollertdata-tpageparam",[352,2831,2832],{},"InfiniteQueryController\u003CTData, TPageParam>",[356,2834,2835,2836,2839,2840,386,2842,2844],{},"Interface stable exposant les actions de pagination au callback ",[352,2837,2838],{},"InfiniteQueryBuilder.builder",". La référence du contrôleur est stable tant que ",[352,2841,2709],{},[352,2843,2075],{}," restent inchangés.",[400,2846,593],{"id":2847},"méthodes-2",[487,2849,2850,2862],{},[490,2851,2852],{},[493,2853,2854,2857,2860],{},[496,2855,2856],{},"Méthode",[496,2858,2859],{},"Signature",[496,2861,504],{},[506,2863,2864,2884,2901],{},[493,2865,2866,2871,2876],{},[511,2867,2868],{},[352,2869,2870],{},"fetchNextPage()",[511,2872,2873],{},[352,2874,2875],{},"Future\u003Cvoid>",[511,2877,2878,2879,2302,2881,2883],{},"Récupère et ajoute la page suivante. Sans effet si ",[352,2880,1429],{},[352,2882,1464],{}," ou un fetch est en cours.",[493,2885,2886,2891,2895],{},[511,2887,2888],{},[352,2889,2890],{},"fetchPreviousPage()",[511,2892,2893],{},[352,2894,2875],{},[511,2896,2897,2898,2900],{},"Récupère et prépend la page précédente. Nécessite ",[352,2899,1460],{}," configuré.",[493,2902,2903,2908,2912],{},[511,2904,2905],{},[352,2906,2907],{},"refetch()",[511,2909,2910],{},[352,2911,2875],{},[511,2913,2914,2915,380],{},"Re-récupère toutes les pages chargées en séquence. Utile pour le pull-to-refresh (",[352,2916,2917],{},"onRefresh: controller.refetch",[923,2919],{},[348,2921,2923],{"id":2922},"infinitequeryfunctiontdata-tpageparam",[352,2924,2739],{},[405,2926,2928],{"className":407,"code":2927,"language":409,"meta":410,"style":410},"typedef InfiniteQueryFunction\u003CTData, TPageParam> = Future\u003CTData> Function(\n  TPageParam pageParam,\n);\n",[352,2929,2930,2962,2971],{"__ignoreMap":410},[414,2931,2932,2935,2937,2939,2941,2943,2945,2947,2949,2952,2954,2956,2958,2960],{"class":416,"line":417},[414,2933,2934],{"class":449},"typedef",[414,2936,2122],{"class":424},[414,2938,441],{"class":428},[414,2940,363],{"class":424},[414,2942,376],{"class":428},[414,2944,371],{"class":424},[414,2946,617],{"class":428},[414,2948,675],{"class":449},[414,2950,2951],{"class":424}," Future",[414,2953,441],{"class":428},[414,2955,363],{"class":424},[414,2957,617],{"class":428},[414,2959,639],{"class":424},[414,2961,1034],{"class":428},[414,2963,2964,2966,2969],{"class":416,"line":432},[414,2965,1828],{"class":424},[414,2967,2968],{"class":428}," pageParam",[414,2970,450],{"class":449},[414,2972,2973,2975],{"class":416,"line":453},[414,2974,2719],{"class":428},[414,2976,694],{"class":449},[356,2978,2979,2980,1340,2982,386,2984,2986,2987,1336,2989,2991,2992,2994],{},"Le type du paramètre ",[352,2981,2734],{},[352,2983,2089],{},[352,2985,118],{},". Reçoit le paramètre de page calculé par ",[352,2988,1441],{},[352,2990,1460],{}," et retourne un ",[352,2993,2222],{}," résolvant en une seule page de données.",[923,2996],{},[348,2998,3000,3002],{"id":2999},"qoraclient-méthodes-de-requête-infinie",[352,3001,202],{}," : Méthodes de requête infinie",[400,3004,3006],{"id":3005},"watchinfinitestate",[352,3007,3008],{},"watchInfiniteState",[405,3010,3012],{"className":407,"code":3011,"language":409,"meta":410,"style":410},"Stream\u003CInfiniteQueryState\u003CTData, TPageParam>> watchInfiniteState\u003CTData, TPageParam>(Object key)\n",[352,3013,3014],{"__ignoreMap":410},[414,3015,3016,3019,3021,3024,3026,3028,3030,3032,3035,3037,3039,3041,3043,3045,3047,3049],{"class":416,"line":417},[414,3017,3018],{"class":424},"Stream",[414,3020,441],{"class":428},[414,3022,3023],{"class":424},"InfiniteQueryState",[414,3025,441],{"class":428},[414,3027,363],{"class":424},[414,3029,376],{"class":428},[414,3031,371],{"class":424},[414,3033,3034],{"class":428},">> ",[414,3036,3008],{"class":620},[414,3038,441],{"class":428},[414,3040,363],{"class":424},[414,3042,376],{"class":428},[414,3044,371],{"class":424},[414,3046,627],{"class":428},[414,3048,1712],{"class":424},[414,3050,3051],{"class":428}," key)\n",[356,3053,3054,3055,3057,3058,3060],{},"Retourne un stream broadcast qui émet immédiatement l'",[352,3056,3023],{}," actuel pour ",[352,3059,2071],{},", puis émet toutes les futures transitions. S'abonner empêche le GC de l'entrée de cache.",[923,3062],{},[400,3064,3066],{"id":3065},"getinfinitequerystate",[352,3067,3068],{},"getInfiniteQueryState",[405,3070,3072],{"className":407,"code":3071,"language":409,"meta":410,"style":410},"InfiniteQueryState\u003CTData, TPageParam> getInfiniteQueryState\u003CTData, TPageParam>(Object key)\n",[352,3073,3074],{"__ignoreMap":410},[414,3075,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102],{"class":416,"line":417},[414,3077,3023],{"class":424},[414,3079,441],{"class":428},[414,3081,363],{"class":424},[414,3083,376],{"class":428},[414,3085,371],{"class":424},[414,3087,617],{"class":428},[414,3089,3068],{"class":620},[414,3091,441],{"class":428},[414,3093,363],{"class":424},[414,3095,376],{"class":428},[414,3097,371],{"class":424},[414,3099,627],{"class":428},[414,3101,1712],{"class":424},[414,3103,3051],{"class":428},[356,3105,3106,3107,3110],{},"Snapshot synchrone de l'état actuel. Retourne ",[352,3108,3109],{},"InfiniteInitial()"," si aucune entrée n'existe en cache.",[923,3112],{},[400,3114,3116],{"id":3115},"getinfinitequerydata",[352,3117,3118],{},"getInfiniteQueryData",[405,3120,3122],{"className":407,"code":3121,"language":409,"meta":410,"style":410},"InfiniteData\u003CTData, TPageParam>? getInfiniteQueryData\u003CTData, TPageParam>(Object key)\n",[352,3123,3124],{"__ignoreMap":410},[414,3125,3126,3128,3130,3132,3134,3136,3138,3140,3143,3145,3147,3149,3151,3153,3155],{"class":416,"line":417},[414,3127,749],{"class":424},[414,3129,441],{"class":428},[414,3131,363],{"class":424},[414,3133,376],{"class":428},[414,3135,371],{"class":424},[414,3137,1562],{"class":428},[414,3139,1565],{"class":449},[414,3141,3142],{"class":620}," getInfiniteQueryData",[414,3144,441],{"class":428},[414,3146,363],{"class":424},[414,3148,376],{"class":428},[414,3150,371],{"class":424},[414,3152,627],{"class":428},[414,3154,1712],{"class":424},[414,3156,3051],{"class":428},[356,3158,3159,3160,3162,3163,3165,3166,3168,3169,398],{},"Retourne l'",[352,3161,749],{}," de l'état ",[352,3164,1343],{}," actuel, ou ",[352,3167,1944],{}," si l'état n'est pas ",[352,3170,1343],{},[405,3172,3175],{"className":407,"code":3173,"filename":3174,"language":409,"meta":410,"style":410},"final snapshot = client.getInfiniteQueryData\u003CList\u003CPost>, int>(['posts']);\n","posts_screen.dart",[352,3176,3177],{"__ignoreMap":410},[414,3178,3179,3181,3184,3186,3188,3190,3192,3194,3196,3198,3201,3204,3206,3209,3213,3216],{"class":416,"line":417},[414,3180,669],{"class":420},[414,3182,3183],{"class":428}," snapshot ",[414,3185,675],{"class":449},[414,3187,2101],{"class":428},[414,3189,398],{"class":449},[414,3191,3118],{"class":620},[414,3193,441],{"class":428},[414,3195,609],{"class":424},[414,3197,441],{"class":428},[414,3199,3200],{"class":424},"Post",[414,3202,3203],{"class":428},">, ",[414,3205,375],{"class":424},[414,3207,3208],{"class":428},">([",[414,3210,3212],{"class":3211},"sfazB","'posts'",[414,3214,3215],{"class":428},"])",[414,3217,694],{"class":449},[923,3219],{},[400,3221,3223],{"id":3222},"setinfinitequerydata",[352,3224,3225],{},"setInfiniteQueryData",[405,3227,3229],{"className":407,"code":3228,"language":409,"meta":410,"style":410},"void setInfiniteQueryData\u003CTData, TPageParam>(\n  Object key,\n  InfiniteData\u003CTData, TPageParam> data, {\n  bool? hasNextPage,\n  bool? hasPreviousPage,\n})\n",[352,3230,3231,3249,3258,3278,3288,3298],{"__ignoreMap":410},[414,3232,3233,3235,3238,3240,3242,3244,3246],{"class":416,"line":417},[414,3234,2227],{"class":420},[414,3236,3237],{"class":620}," setInfiniteQueryData",[414,3239,441],{"class":428},[414,3241,363],{"class":424},[414,3243,376],{"class":428},[414,3245,371],{"class":424},[414,3247,3248],{"class":428},">(\n",[414,3250,3251,3254,3256],{"class":416,"line":432},[414,3252,3253],{"class":424},"  Object",[414,3255,2113],{"class":428},[414,3257,450],{"class":449},[414,3259,3260,3262,3264,3266,3268,3270,3273,3275],{"class":416,"line":453},[414,3261,1551],{"class":424},[414,3263,441],{"class":428},[414,3265,363],{"class":424},[414,3267,376],{"class":428},[414,3269,371],{"class":424},[414,3271,3272],{"class":428},"> data",[414,3274,770],{"class":449},[414,3276,3277],{"class":428}," {\n",[414,3279,3280,3282,3284,3286],{"class":416,"line":469},[414,3281,1574],{"class":424},[414,3283,1565],{"class":449},[414,3285,1013],{"class":428},[414,3287,450],{"class":449},[414,3289,3290,3292,3294,3296],{"class":416,"line":708},[414,3291,1574],{"class":424},[414,3293,1565],{"class":449},[414,3295,1610],{"class":428},[414,3297,450],{"class":449},[414,3299,3300],{"class":416,"line":1037},[414,3301,472],{"class":428},[356,3303,3304,3305,3307,3308,3310],{},"Injecte directement ",[352,3306,749],{}," dans le cache, poussant un état ",[352,3309,1343],{}," vers tous les abonnés actifs. Utiliser pour les mises à jour optimistes.",[405,3312,3314],{"className":407,"code":3313,"filename":3174,"language":409,"meta":410,"style":410},"// Prépendre optimistement un nouveau post à la page 1\nfinal snapshot = client.getInfiniteQueryData\u003CList\u003CPost>, int>(['posts']);\nif (snapshot != null) {\n  client.setInfiniteQueryData(\n    ['posts'],\n    InfiniteData(\n      pages: [\n        [Post.optimistic(title), ...snapshot.pages.first],\n        ...snapshot.pages.skip(1),\n      ],\n      pageParams: snapshot.pageParams,\n    ),\n  );\n}\n\ntry {\n  await api.createPost(title);\n  client.invalidateInfiniteQuery(['posts']);\n} catch (_) {\n  if (snapshot != null) client.setInfiniteQueryData(['posts'], snapshot);\n}\n",[352,3315,3316,3321,3355,3369,3380,3392,3399,3408,3442,3467,3474,3490,3496,3503,3507,3511,3518,3535,3553,3565,3597],{"__ignoreMap":410},[414,3317,3318],{"class":416,"line":417},[414,3319,3320],{"class":663},"// Prépendre optimistement un nouveau post à la page 1\n",[414,3322,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353],{"class":416,"line":432},[414,3324,669],{"class":420},[414,3326,3183],{"class":428},[414,3328,675],{"class":449},[414,3330,2101],{"class":428},[414,3332,398],{"class":449},[414,3334,3118],{"class":620},[414,3336,441],{"class":428},[414,3338,609],{"class":424},[414,3340,441],{"class":428},[414,3342,3200],{"class":424},[414,3344,3203],{"class":428},[414,3346,375],{"class":424},[414,3348,3208],{"class":428},[414,3350,3212],{"class":3211},[414,3352,3215],{"class":428},[414,3354,694],{"class":449},[414,3356,3357,3360,3363,3365,3367],{"class":416,"line":453},[414,3358,3359],{"class":947},"if",[414,3361,3362],{"class":428}," (snapshot ",[414,3364,1129],{"class":449},[414,3366,1132],{"class":449},[414,3368,1135],{"class":428},[414,3370,3371,3374,3376,3378],{"class":416,"line":469},[414,3372,3373],{"class":428},"  client",[414,3375,398],{"class":449},[414,3377,3225],{"class":620},[414,3379,1034],{"class":428},[414,3381,3382,3385,3387,3390],{"class":416,"line":708},[414,3383,3384],{"class":428},"    [",[414,3386,3212],{"class":3211},[414,3388,3389],{"class":428},"]",[414,3391,450],{"class":449},[414,3393,3394,3397],{"class":416,"line":1037},[414,3395,3396],{"class":424},"    InfiniteData",[414,3398,1034],{"class":428},[414,3400,3401,3404,3406],{"class":416,"line":1059},[414,3402,3403],{"class":428},"      pages",[414,3405,1000],{"class":449},[414,3407,1152],{"class":428},[414,3409,3410,3413,3415,3417,3420,3423,3425,3428,3431,3433,3435,3437,3440],{"class":416,"line":1071},[414,3411,3412],{"class":428},"        [",[414,3414,3200],{"class":424},[414,3416,398],{"class":449},[414,3418,3419],{"class":620},"optimistic",[414,3421,3422],{"class":428},"(title)",[414,3424,770],{"class":449},[414,3426,3427],{"class":449}," ...",[414,3429,3430],{"class":428},"snapshot",[414,3432,398],{"class":449},[414,3434,385],{"class":428},[414,3436,398],{"class":449},[414,3438,3439],{"class":428},"first]",[414,3441,450],{"class":449},[414,3443,3444,3447,3449,3451,3453,3455,3458,3460,3463,3465],{"class":416,"line":1084},[414,3445,3446],{"class":449},"        ...",[414,3448,3430],{"class":428},[414,3450,398],{"class":449},[414,3452,385],{"class":428},[414,3454,398],{"class":449},[414,3456,3457],{"class":620},"skip",[414,3459,642],{"class":428},[414,3461,1938],{"class":3462},"sbssI",[414,3464,2719],{"class":428},[414,3466,450],{"class":449},[414,3468,3469,3472],{"class":416,"line":1092},[414,3470,3471],{"class":428},"      ]",[414,3473,450],{"class":449},[414,3475,3476,3479,3481,3484,3486,3488],{"class":416,"line":1120},[414,3477,3478],{"class":428},"      pageParams",[414,3480,1000],{"class":449},[414,3482,3483],{"class":428}," snapshot",[414,3485,398],{"class":449},[414,3487,389],{"class":428},[414,3489,450],{"class":449},[414,3491,3492,3494],{"class":416,"line":1138},[414,3493,1087],{"class":428},[414,3495,450],{"class":449},[414,3497,3498,3501],{"class":416,"line":1155},[414,3499,3500],{"class":428},"  )",[414,3502,694],{"class":449},[414,3504,3505],{"class":416,"line":1183},[414,3506,1223],{"class":428},[414,3508,3509],{"class":416,"line":1194},[414,3510,700],{"emptyLinePlaceholder":699},[414,3512,3513,3516],{"class":416,"line":1202},[414,3514,3515],{"class":947},"try",[414,3517,3277],{"class":428},[414,3519,3520,3523,3526,3528,3531,3533],{"class":416,"line":1208},[414,3521,3522],{"class":947},"  await",[414,3524,3525],{"class":428}," api",[414,3527,398],{"class":449},[414,3529,3530],{"class":620},"createPost",[414,3532,3422],{"class":428},[414,3534,694],{"class":449},[414,3536,3537,3539,3541,3544,3547,3549,3551],{"class":416,"line":1220},[414,3538,3373],{"class":428},[414,3540,398],{"class":449},[414,3542,3543],{"class":620},"invalidateInfiniteQuery",[414,3545,3546],{"class":428},"([",[414,3548,3212],{"class":3211},[414,3550,3215],{"class":428},[414,3552,694],{"class":449},[414,3554,3556,3559,3562],{"class":416,"line":3555},19,[414,3557,3558],{"class":428},"} ",[414,3560,3561],{"class":947},"catch",[414,3563,3564],{"class":428}," (_) {\n",[414,3566,3568,3571,3573,3575,3577,3580,3582,3584,3586,3588,3590,3592,3595],{"class":416,"line":3567},20,[414,3569,3570],{"class":947},"  if",[414,3572,3362],{"class":428},[414,3574,1129],{"class":449},[414,3576,1132],{"class":449},[414,3578,3579],{"class":428},") client",[414,3581,398],{"class":449},[414,3583,3225],{"class":620},[414,3585,3546],{"class":428},[414,3587,3212],{"class":3211},[414,3589,3389],{"class":428},[414,3591,770],{"class":449},[414,3593,3594],{"class":428}," snapshot)",[414,3596,694],{"class":449},[414,3598,3600],{"class":416,"line":3599},21,[414,3601,1223],{"class":428},[923,3603],{},[400,3605,3607],{"id":3606},"updateinfinitequerystate",[352,3608,3609],{},"updateInfiniteQueryState",[405,3611,3613],{"className":407,"code":3612,"language":409,"meta":410,"style":410},"void updateInfiniteQueryState\u003CTData, TPageParam>(\n  Object key,\n  InfiniteQueryState\u003CTData, TPageParam> state,\n)\n",[352,3614,3615,3632,3640,3657],{"__ignoreMap":410},[414,3616,3617,3619,3622,3624,3626,3628,3630],{"class":416,"line":417},[414,3618,2227],{"class":420},[414,3620,3621],{"class":620}," updateInfiniteQueryState",[414,3623,441],{"class":428},[414,3625,363],{"class":424},[414,3627,376],{"class":428},[414,3629,371],{"class":424},[414,3631,3248],{"class":428},[414,3633,3634,3636,3638],{"class":416,"line":432},[414,3635,3253],{"class":424},[414,3637,2113],{"class":428},[414,3639,450],{"class":449},[414,3641,3642,3645,3647,3649,3651,3653,3655],{"class":416,"line":453},[414,3643,3644],{"class":424},"  InfiniteQueryState",[414,3646,441],{"class":428},[414,3648,363],{"class":424},[414,3650,376],{"class":428},[414,3652,371],{"class":424},[414,3654,2626],{"class":428},[414,3656,450],{"class":449},[414,3658,3659],{"class":416,"line":469},[414,3660,3661],{"class":428},")\n",[356,3663,3664,3665,3667,3668,3670,3671,3673],{},"Le chemin d'écriture brut pour n'importe quel ",[352,3666,3023],{},". Utilisé en interne par ",[352,3669,2089],{},". Préférer ",[352,3672,3225],{}," pour les mises à jour uniquement des données.",[923,3675],{},[400,3677,3679],{"id":3678},"invalidateinfinitequery",[352,3680,3543],{},[405,3682,3684],{"className":407,"code":3683,"language":409,"meta":410,"style":410},"void invalidateInfiniteQuery(Object key)\n",[352,3685,3686],{"__ignoreMap":410},[414,3687,3688,3690,3693,3695,3697],{"class":416,"line":417},[414,3689,2227],{"class":420},[414,3691,3692],{"class":620}," invalidateInfiniteQuery",[414,3694,642],{"class":428},[414,3696,1712],{"class":424},[414,3698,3051],{"class":428},[356,3700,3701,3702,1970,3704,3706,3707,3709],{},"Réinitialise l'entrée de cache pour ",[352,3703,2071],{},[352,3705,1229],{},". Les instances ",[352,3708,118],{}," actives détectent la réinitialisation et re-récupèrent automatiquement la première page, de sorte que l'UI ne reste jamais vide.",[405,3711,3714],{"className":407,"code":3712,"filename":3713,"language":409,"meta":410,"style":410},"await api.createPost(title);\nclient.invalidateInfiniteQuery(['posts']);\n","anywhere.dart",[352,3715,3716,3730],{"__ignoreMap":410},[414,3717,3718,3720,3722,3724,3726,3728],{"class":416,"line":417},[414,3719,2496],{"class":947},[414,3721,3525],{"class":428},[414,3723,398],{"class":449},[414,3725,3530],{"class":620},[414,3727,3422],{"class":428},[414,3729,694],{"class":449},[414,3731,3732,3734,3736,3738,3740,3742,3744],{"class":416,"line":432},[414,3733,2075],{"class":428},[414,3735,398],{"class":449},[414,3737,3543],{"class":620},[414,3739,3546],{"class":428},[414,3741,3212],{"class":3211},[414,3743,3215],{"class":428},[414,3745,694],{"class":449},[923,3747],{},[348,3749,3751],{"id":3750},"voir-aussi","Voir aussi",[2238,3753,3754,3761,3766,3773],{},[2241,3755,3756,3760],{},[2510,3757,3759],{"href":3758},"../recipes/infinite-queries","Guide des requêtes infinies"," : machine à états, stratégies de pagination, scroll bidirectionnel, paging fenêtré",[2241,3762,3763,3765],{},[2510,3764,118],{"href":2512}," : référence du widget Flutter avec patterns et exemples",[2241,3767,3768,3772],{},[2510,3769,3771],{"href":3770},"./qora-client","API QoraClient"," : référence complète du client pour les requêtes standard (non paginées)",[2241,3774,3775,3778],{},[2510,3776,215],{"href":3777},"./qora-options"," : retry, stale time, cache time et network mode",[3780,3781,3782],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":410,"searchDepth":432,"depth":432,"links":3784},[3785,3790,3796,3800,3806,3810,3813,3814,3823],{"id":350,"depth":432,"text":354,"children":3786},[3787,3788,3789],{"id":402,"depth":453,"text":403},{"id":481,"depth":453,"text":482},{"id":592,"depth":453,"text":593},{"id":927,"depth":432,"text":930,"children":3791},[3792,3793,3794,3795],{"id":1226,"depth":453,"text":1229},{"id":1278,"depth":453,"text":1281},{"id":1349,"depth":453,"text":1343},{"id":1636,"depth":453,"text":1639},{"id":1755,"depth":432,"text":1758,"children":3797},[3798,3799],{"id":1767,"depth":453,"text":403},{"id":1901,"depth":453,"text":482},{"id":2045,"depth":432,"text":2048,"children":3801},[3802,3803,3804,3805],{"id":2079,"depth":453,"text":403},{"id":2161,"depth":453,"text":482},{"id":2207,"depth":453,"text":593},{"id":2472,"depth":453,"text":2473},{"id":2502,"depth":432,"text":2505,"children":3807},[3808,3809],{"id":2517,"depth":453,"text":403},{"id":2683,"depth":453,"text":2684},{"id":2829,"depth":432,"text":2832,"children":3811},[3812],{"id":2847,"depth":453,"text":593},{"id":2922,"depth":432,"text":2739},{"id":2999,"depth":432,"text":3815,"children":3816},"QoraClient : Méthodes de requête infinie",[3817,3818,3819,3820,3821,3822],{"id":3005,"depth":453,"text":3008},{"id":3065,"depth":453,"text":3068},{"id":3115,"depth":453,"text":3118},{"id":3222,"depth":453,"text":3225},{"id":3606,"depth":453,"text":3609},{"id":3678,"depth":453,"text":3543},{"id":3750,"depth":432,"text":3751},"Référence complète de InfiniteData, InfiniteQueryState, InfiniteQueryOptions, InfiniteQueryObserver, InfiniteQueryBuilder, InfiniteQueryController et les méthodes de requête infinie de QoraClient.","md",null,{},{"icon":121},{"title":3830,"description":3831},"Référence API Requête infinie - Qora","Référence API complète pour les types de requêtes infinies (paginées) de Qora : InfiniteData, InfiniteQueryState, InfiniteQueryObserver et InfiniteQueryBuilder.","vGyuWAiJvUx8mIQM3olALVyY2UKr-mhAAKxyF4aOrbA",[3834,3836],{"title":229,"path":230,"stem":231,"description":3835,"icon":156,"children":-1},"Sous-classe de QoraClient qui persiste les résultats des requêtes dans un StorageAdapter et les restaure au démarrage via hydrate().",{"title":243,"path":244,"stem":245,"description":3837,"icon":246,"children":-1},"Voir chaque requête, mutation et entrée de cache de l'application en cours d'exécution, et agir dessus, depuis un panneau intégré à l'application.",1794040409261]