[{"data":1,"prerenderedAt":1376},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-flutter-integration-setup":342,"-fr-flutter-integration-setup-surround":1371},[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":98,"body":344,"description":1364,"extension":1365,"links":1366,"meta":1367,"navigation":1368,"path":99,"seo":1369,"stem":100,"__hash__":1370},"docs_fr/fr/03.flutter-integration/1.setup.md",{"type":345,"value":346,"toc":1354},"minimark",[347,351,364,399,402,421,435,438,442,452,629,636,638,642,655,809,820,822,826,831,987,1040,1052,1060,1066,1138,1153,1247,1327,1329,1333,1350],[348,349,16],"h2",{"id":350},"installation",[352,353,354,355,359,360,363],"p",{},"Ajouter ",[356,357,358],"code",{},"qora_flutter"," à ",[356,361,362],{},"pubspec.yaml"," :",[365,366,371],"pre",{"className":367,"code":368,"filename":362,"language":369,"meta":370,"style":370},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dependencies:\n  qora_flutter: ^ 1.3.1\n","yaml","",[356,372,373,386],{"__ignoreMap":370},[374,375,378,382],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"swJcz","dependencies",[374,383,385],{"class":384},"sMK4o",":\n",[374,387,389,392,395],{"class":376,"line":388},2,[374,390,391],{"class":380},"  qora_flutter",[374,393,394],{"class":384},":",[374,396,398],{"class":397},"sfazB"," ^ 1.3.1\n",[352,400,401],{},"Puis récupérer les dépendances :",[365,403,407],{"className":404,"code":405,"language":406,"meta":370,"style":370},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flutter pub get\n","bash",[356,408,409],{"__ignoreMap":370},[374,410,411,415,418],{"class":376,"line":377},[374,412,414],{"class":413},"sBMFI","flutter",[374,416,417],{"class":397}," pub",[374,419,420],{"class":397}," get\n",[422,423,424,426,427,430,431,434],"tip",{},[356,425,358],{}," inclut automatiquement ",[356,428,429],{},"qora"," et ",[356,432,433],{},"connectivity_plus"," comme dépendances. Ces packages n'ont pas besoin d'être ajoutés séparément.",[436,437],"hr",{},[348,439,441],{"id":440},"créer-le-client","Créer le client",[352,443,444,446,447,451],{},[356,445,202],{}," est le cache central et l'orchestrateur de requêtes. Créer ",[448,449,450],"strong",{},"une seule instance par application"," (ou par scope DI) :",[365,453,458],{"className":454,"code":455,"filename":456,"language":457,"meta":370,"style":370},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import 'package:flutter/foundation.dart';\nimport 'package:qora_flutter/qora_flutter.dart';\n\nfinal client = QoraClient(\n  config: QoraClientConfig(\n    defaultOptions: QoraOptions(\n      staleTime: Duration(minutes: 5),\n      gcTime: Duration(minutes: 10),\n      retryCount: 3,\n    ),\n    debugMode: kDebugMode,\n  ),\n);\n","main.dart","dart",[356,459,460,472,481,488,508,521,534,559,580,593,601,614,622],{"__ignoreMap":370},[374,461,462,466,469],{"class":376,"line":377},[374,463,465],{"class":464},"sbssI","import",[374,467,468],{"class":397}," 'package:flutter/foundation.dart'",[374,470,471],{"class":384},";\n",[374,473,474,476,479],{"class":376,"line":388},[374,475,465],{"class":464},[374,477,478],{"class":397}," 'package:qora_flutter/qora_flutter.dart'",[374,480,471],{"class":384},[374,482,484],{"class":376,"line":483},3,[374,485,487],{"emptyLinePlaceholder":486},true,"\n",[374,489,491,495,499,502,505],{"class":376,"line":490},4,[374,492,494],{"class":493},"spNyl","final",[374,496,498],{"class":497},"sTEyZ"," client ",[374,500,501],{"class":384},"=",[374,503,504],{"class":413}," QoraClient",[374,506,507],{"class":497},"(\n",[374,509,511,514,516,519],{"class":376,"line":510},5,[374,512,513],{"class":497},"  config",[374,515,394],{"class":384},[374,517,518],{"class":413}," QoraClientConfig",[374,520,507],{"class":497},[374,522,524,527,529,532],{"class":376,"line":523},6,[374,525,526],{"class":497},"    defaultOptions",[374,528,394],{"class":384},[374,530,531],{"class":413}," QoraOptions",[374,533,507],{"class":497},[374,535,537,540,542,545,548,550,553,556],{"class":376,"line":536},7,[374,538,539],{"class":497},"      staleTime",[374,541,394],{"class":384},[374,543,544],{"class":413}," Duration",[374,546,547],{"class":497},"(minutes",[374,549,394],{"class":384},[374,551,552],{"class":464}," 5",[374,554,555],{"class":497},")",[374,557,558],{"class":384},",\n",[374,560,562,565,567,569,571,573,576,578],{"class":376,"line":561},8,[374,563,564],{"class":497},"      gcTime",[374,566,394],{"class":384},[374,568,544],{"class":413},[374,570,547],{"class":497},[374,572,394],{"class":384},[374,574,575],{"class":464}," 10",[374,577,555],{"class":497},[374,579,558],{"class":384},[374,581,583,586,588,591],{"class":376,"line":582},9,[374,584,585],{"class":497},"      retryCount",[374,587,394],{"class":384},[374,589,590],{"class":464}," 3",[374,592,558],{"class":384},[374,594,596,599],{"class":376,"line":595},10,[374,597,598],{"class":497},"    )",[374,600,558],{"class":384},[374,602,604,607,609,612],{"class":376,"line":603},11,[374,605,606],{"class":497},"    debugMode",[374,608,394],{"class":384},[374,610,611],{"class":497}," kDebugMode",[374,613,558],{"class":384},[374,615,617,620],{"class":376,"line":616},12,[374,618,619],{"class":497},"  )",[374,621,558],{"class":384},[374,623,625,627],{"class":376,"line":624},13,[374,626,555],{"class":497},[374,628,471],{"class":384},[422,630,631,632,635],{},"Définir ",[356,633,634],{},"debugMode: kDebugMode"," pour obtenir des logs détaillés en développement sans coût de performance en production.",[436,637],{},[348,639,641],{"id":640},"encapsuler-lapplication-avec-qorascope","Encapsuler l'application avec QoraScope",[352,643,644,646,647,650,651,654],{},[356,645,103],{}," est un ",[356,648,649],{},"StatefulWidget"," qui expose le client à tous les descendants via un ",[356,652,653],{},"InheritedWidget"," interne. Le placer aussi près de la racine que possible :",[365,656,658],{"className":454,"code":657,"filename":456,"language":457,"meta":370,"style":370},"import 'package:flutter/foundation.dart';\nimport 'package:flutter/material.dart';\nimport 'package:qora_flutter/qora_flutter.dart';\n\nvoid main() {\n  final client = QoraClient(\n    config: const QoraClientConfig(debugMode: kDebugMode),\n  );\n\n  runApp(\n    QoraScope(\n      client: client,\n      child: const MyApp(),\n    ),\n  );\n}\n",[356,659,660,668,677,685,689,701,714,736,742,746,753,760,772,789,796,803],{"__ignoreMap":370},[374,661,662,664,666],{"class":376,"line":377},[374,663,465],{"class":464},[374,665,468],{"class":397},[374,667,471],{"class":384},[374,669,670,672,675],{"class":376,"line":388},[374,671,465],{"class":464},[374,673,674],{"class":397}," 'package:flutter/material.dart'",[374,676,471],{"class":384},[374,678,679,681,683],{"class":376,"line":483},[374,680,465],{"class":464},[374,682,478],{"class":397},[374,684,471],{"class":384},[374,686,687],{"class":376,"line":490},[374,688,487],{"emptyLinePlaceholder":486},[374,690,691,694,698],{"class":376,"line":510},[374,692,693],{"class":493},"void",[374,695,697],{"class":696},"s2Zo4"," main",[374,699,700],{"class":497},"() {\n",[374,702,703,706,708,710,712],{"class":376,"line":523},[374,704,705],{"class":493},"  final",[374,707,498],{"class":497},[374,709,501],{"class":384},[374,711,504],{"class":413},[374,713,507],{"class":497},[374,715,716,719,721,724,726,729,731,734],{"class":376,"line":536},[374,717,718],{"class":497},"    config",[374,720,394],{"class":384},[374,722,723],{"class":493}," const",[374,725,518],{"class":413},[374,727,728],{"class":497},"(debugMode",[374,730,394],{"class":384},[374,732,733],{"class":497}," kDebugMode)",[374,735,558],{"class":384},[374,737,738,740],{"class":376,"line":561},[374,739,619],{"class":497},[374,741,471],{"class":384},[374,743,744],{"class":376,"line":582},[374,745,487],{"emptyLinePlaceholder":486},[374,747,748,751],{"class":376,"line":595},[374,749,750],{"class":696},"  runApp",[374,752,507],{"class":497},[374,754,755,758],{"class":376,"line":603},[374,756,757],{"class":413},"    QoraScope",[374,759,507],{"class":497},[374,761,762,765,767,770],{"class":376,"line":616},[374,763,764],{"class":497},"      client",[374,766,394],{"class":384},[374,768,769],{"class":497}," client",[374,771,558],{"class":384},[374,773,774,777,779,781,784,787],{"class":376,"line":624},[374,775,776],{"class":497},"      child",[374,778,394],{"class":384},[374,780,723],{"class":493},[374,782,783],{"class":413}," MyApp",[374,785,786],{"class":497},"()",[374,788,558],{"class":384},[374,790,792,794],{"class":376,"line":791},14,[374,793,598],{"class":497},[374,795,558],{"class":384},[374,797,799,801],{"class":376,"line":798},15,[374,800,619],{"class":497},[374,802,471],{"class":384},[374,804,806],{"class":376,"line":805},16,[374,807,808],{"class":497},"}\n",[352,810,811,812,815,816,819],{},"Tout widget descendant peut désormais accéder au client via ",[356,813,814],{},"context.qora"," ou ",[356,817,818],{},"QoraScope.of(context)",".",[436,821],{},[348,823,825],{"id":824},"optionnel-gestionnaires-de-cycle-de-vie-et-de-connectivité","Optionnel : gestionnaires de cycle de vie et de connectivité",[352,827,828,829,363],{},"Pour le refetch automatique à la reprise de l'application et à la reconnexion réseau, passer les gestionnaires intégrés à ",[356,830,103],{},[365,832,834],{"className":454,"code":833,"filename":456,"language":457,"meta":370,"style":370},"void main() {\n  final client = QoraClient();\n\n  runApp(\n    QoraScope(\n      client: client,\n      lifecycleManager: FlutterLifecycleManager(\n        qoraClient: client,\n        // Invalider toutes les requêtes si l'app était en arrière-plan depuis plus de 30 s\n        minBackgroundDuration: const Duration(seconds: 30),\n      ),\n      connectivityManager: FlutterConnectivityManager(),\n      child: const MyApp(),\n    ),\n  );\n}\n",[356,835,836,844,858,862,868,874,884,896,907,913,936,943,957,971,977,983],{"__ignoreMap":370},[374,837,838,840,842],{"class":376,"line":377},[374,839,693],{"class":493},[374,841,697],{"class":696},[374,843,700],{"class":497},[374,845,846,848,850,852,854,856],{"class":376,"line":388},[374,847,705],{"class":493},[374,849,498],{"class":497},[374,851,501],{"class":384},[374,853,504],{"class":413},[374,855,786],{"class":497},[374,857,471],{"class":384},[374,859,860],{"class":376,"line":483},[374,861,487],{"emptyLinePlaceholder":486},[374,863,864,866],{"class":376,"line":490},[374,865,750],{"class":696},[374,867,507],{"class":497},[374,869,870,872],{"class":376,"line":510},[374,871,757],{"class":413},[374,873,507],{"class":497},[374,875,876,878,880,882],{"class":376,"line":523},[374,877,764],{"class":497},[374,879,394],{"class":384},[374,881,769],{"class":497},[374,883,558],{"class":384},[374,885,886,889,891,894],{"class":376,"line":536},[374,887,888],{"class":497},"      lifecycleManager",[374,890,394],{"class":384},[374,892,893],{"class":413}," FlutterLifecycleManager",[374,895,507],{"class":497},[374,897,898,901,903,905],{"class":376,"line":561},[374,899,900],{"class":497},"        qoraClient",[374,902,394],{"class":384},[374,904,769],{"class":497},[374,906,558],{"class":384},[374,908,909],{"class":376,"line":582},[374,910,912],{"class":911},"sHwdD","        // Invalider toutes les requêtes si l'app était en arrière-plan depuis plus de 30 s\n",[374,914,915,918,920,922,924,927,929,932,934],{"class":376,"line":595},[374,916,917],{"class":497},"        minBackgroundDuration",[374,919,394],{"class":384},[374,921,723],{"class":493},[374,923,544],{"class":413},[374,925,926],{"class":497},"(seconds",[374,928,394],{"class":384},[374,930,931],{"class":464}," 30",[374,933,555],{"class":497},[374,935,558],{"class":384},[374,937,938,941],{"class":376,"line":603},[374,939,940],{"class":497},"      )",[374,942,558],{"class":384},[374,944,945,948,950,953,955],{"class":376,"line":616},[374,946,947],{"class":497},"      connectivityManager",[374,949,394],{"class":384},[374,951,952],{"class":413}," FlutterConnectivityManager",[374,954,786],{"class":497},[374,956,558],{"class":384},[374,958,959,961,963,965,967,969],{"class":376,"line":624},[374,960,776],{"class":497},[374,962,394],{"class":384},[374,964,723],{"class":493},[374,966,783],{"class":413},[374,968,786],{"class":497},[374,970,558],{"class":384},[374,972,973,975],{"class":376,"line":791},[374,974,598],{"class":497},[374,976,558],{"class":384},[374,978,979,981],{"class":376,"line":798},[374,980,619],{"class":497},[374,982,471],{"class":384},[374,984,985],{"class":376,"line":805},[374,986,808],{"class":497},[988,989,990,1003],"table",{},[991,992,993],"thead",{},[994,995,996,1000],"tr",{},[997,998,999],"th",{},"Gestionnaire",[997,1001,1002],{},"Comportement",[1004,1005,1006,1020],"tbody",{},[994,1007,1008,1014],{},[1009,1010,1011],"td",{},[356,1012,1013],{},"FlutterLifecycleManager",[1009,1015,1016,1017,819],{},"Invalide toutes les requêtes quand l'application reprend après une pause supérieure à ",[356,1018,1019],{},"minBackgroundDuration",[994,1021,1022,1027],{},[1009,1023,1024],{},[356,1025,1026],{},"FlutterConnectivityManager",[1009,1028,1029,1030,1033,1034,1036,1037,819],{},"Émet des événements ",[356,1031,1032],{},"NetworkStatus"," ; la logique de reconnexion est déléguée à ",[356,1035,202],{}," via ",[356,1038,1039],{},"reconnectStrategy",[352,1041,1042,1044,1045,430,1048,1051],{},[356,1043,103],{}," appelle automatiquement ",[356,1046,1047],{},"start()",[356,1049,1050],{},"dispose()"," sur les deux gestionnaires : aucun câblage manuel du cycle de vie n'est requis.",[1053,1054,1056,1057],"h3",{"id":1055},"raccourci-qorascopeauto","Raccourci : ",[356,1058,1059],{},"QoraScope.auto()",[352,1061,1062,1063,1065],{},"Pour plus de commodité, utilisez ",[356,1064,1059],{}," pour câbler les deux gestionnaires en un seul appel :",[365,1067,1069],{"className":454,"code":1068,"filename":456,"language":457,"meta":370,"style":370},"void main() {\n  runApp(\n    QoraScope.auto(\n      client: QoraClient(),\n      child: const MyApp(),\n    ),\n  );\n}\n",[356,1070,1071,1079,1085,1096,1108,1122,1128,1134],{"__ignoreMap":370},[374,1072,1073,1075,1077],{"class":376,"line":377},[374,1074,693],{"class":493},[374,1076,697],{"class":696},[374,1078,700],{"class":497},[374,1080,1081,1083],{"class":376,"line":388},[374,1082,750],{"class":696},[374,1084,507],{"class":497},[374,1086,1087,1089,1091,1094],{"class":376,"line":483},[374,1088,757],{"class":413},[374,1090,819],{"class":384},[374,1092,1093],{"class":696},"auto",[374,1095,507],{"class":497},[374,1097,1098,1100,1102,1104,1106],{"class":376,"line":490},[374,1099,764],{"class":497},[374,1101,394],{"class":384},[374,1103,504],{"class":413},[374,1105,786],{"class":497},[374,1107,558],{"class":384},[374,1109,1110,1112,1114,1116,1118,1120],{"class":376,"line":510},[374,1111,776],{"class":497},[374,1113,394],{"class":384},[374,1115,723],{"class":493},[374,1117,783],{"class":413},[374,1119,786],{"class":497},[374,1121,558],{"class":384},[374,1123,1124,1126],{"class":376,"line":523},[374,1125,598],{"class":497},[374,1127,558],{"class":384},[374,1129,1130,1132],{"class":376,"line":536},[374,1131,619],{"class":497},[374,1133,471],{"class":384},[374,1135,1136],{"class":376,"line":561},[374,1137,808],{"class":497},[352,1139,1140,1141,430,1143,1145,1146,430,1149,1152],{},"C'est équivalent à passer manuellement ",[356,1142,1013],{},[356,1144,1026],{},". Utilisez ",[356,1147,1148],{},"enableLifecycle",[356,1150,1151],{},"enableConnectivity"," pour désactiver des listeners spécifiques :",[365,1154,1156],{"className":454,"code":1155,"filename":456,"language":457,"meta":370,"style":370},"QoraScope.auto(\n  client: QoraClient(),\n  enableLifecycle: false,               // désactiver le refetch à la reprise\n  enableConnectivity: false,            // désactiver le refetch à la reconnexion\n  minBackgroundDuration: const Duration(seconds: 30),\n  child: const MyApp(),\n)\n",[356,1157,1158,1168,1181,1194,1206,1227,1242],{"__ignoreMap":370},[374,1159,1160,1162,1164,1166],{"class":376,"line":377},[374,1161,103],{"class":413},[374,1163,819],{"class":384},[374,1165,1093],{"class":696},[374,1167,507],{"class":497},[374,1169,1170,1173,1175,1177,1179],{"class":376,"line":388},[374,1171,1172],{"class":497},"  client",[374,1174,394],{"class":384},[374,1176,504],{"class":413},[374,1178,786],{"class":497},[374,1180,558],{"class":384},[374,1182,1183,1186,1188,1191],{"class":376,"line":483},[374,1184,1185],{"class":497},"  enableLifecycle",[374,1187,394],{"class":384},[374,1189,1190],{"class":384}," false,",[374,1192,1193],{"class":911},"               // désactiver le refetch à la reprise\n",[374,1195,1196,1199,1201,1203],{"class":376,"line":490},[374,1197,1198],{"class":497},"  enableConnectivity",[374,1200,394],{"class":384},[374,1202,1190],{"class":384},[374,1204,1205],{"class":911},"            // désactiver le refetch à la reconnexion\n",[374,1207,1208,1211,1213,1215,1217,1219,1221,1223,1225],{"class":376,"line":510},[374,1209,1210],{"class":497},"  minBackgroundDuration",[374,1212,394],{"class":384},[374,1214,723],{"class":493},[374,1216,544],{"class":413},[374,1218,926],{"class":497},[374,1220,394],{"class":384},[374,1222,931],{"class":464},[374,1224,555],{"class":497},[374,1226,558],{"class":384},[374,1228,1229,1232,1234,1236,1238,1240],{"class":376,"line":523},[374,1230,1231],{"class":497},"  child",[374,1233,394],{"class":384},[374,1235,723],{"class":493},[374,1237,783],{"class":413},[374,1239,786],{"class":497},[374,1241,558],{"class":384},[374,1243,1244],{"class":376,"line":536},[374,1245,1246],{"class":497},")\n",[988,1248,1249,1265],{},[991,1250,1251],{},[994,1252,1253,1256,1259,1262],{},[997,1254,1255],{},"Paramètre",[997,1257,1258],{},"Type",[997,1260,1261],{},"Défaut",[997,1263,1264],{},"Description",[1004,1266,1267,1289,1308],{},[994,1268,1269,1273,1278,1283],{},[1009,1270,1271],{},[356,1272,1148],{},[1009,1274,1275],{},[356,1276,1277],{},"bool",[1009,1279,1280],{},[356,1281,1282],{},"true",[1009,1284,1285,1286,1288],{},"Active ",[356,1287,1013],{}," (refetch à la reprise).",[994,1290,1291,1295,1299,1303],{},[1009,1292,1293],{},[356,1294,1151],{},[1009,1296,1297],{},[356,1298,1277],{},[1009,1300,1301],{},[356,1302,1282],{},[1009,1304,1285,1305,1307],{},[356,1306,1026],{}," (refetch à la reconnexion).",[994,1309,1310,1314,1319,1324],{},[1009,1311,1312],{},[356,1313,1019],{},[1009,1315,1316],{},[356,1317,1318],{},"Duration",[1009,1320,1321],{},[356,1322,1323],{},"Duration(seconds: 5)",[1009,1325,1326],{},"Pause minimale avant invalidation à la reprise.",[436,1328],{},[348,1330,1332],{"id":1331},"étapes-suivantes","Étapes suivantes",[1334,1335,1336,1344],"ul",{},[1337,1338,1339,1343],"li",{},[1340,1341,103],"a",{"href":1342},"./qora-scope"," : API détaillée et patterns de scopes imbriqués",[1337,1345,1346,1349],{},[1340,1347,108],{"href":1348},"./qora-builder"," : Récupération de données et rendu des états dans les widgets",[1351,1352,1353],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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}",{"title":370,"searchDepth":388,"depth":388,"links":1355},[1356,1357,1358,1359,1363],{"id":350,"depth":388,"text":16},{"id":440,"depth":388,"text":441},{"id":640,"depth":388,"text":641},{"id":824,"depth":388,"text":825,"children":1360},[1361],{"id":1055,"depth":483,"text":1362},"Raccourci : QoraScope.auto()",{"id":1331,"depth":388,"text":1332},"Installer qora_flutter, créer une instance QoraClient et la fournir à l'arbre de widgets avec QoraScope.","md",null,{},{"icon":101},{"title":98,"description":1364},"iIe3evv9OJubyiY9A1w7ZZVNJnvOoxJpgnGR6Q-xYG0",[1372,1374],{"title":87,"path":88,"stem":89,"description":1373,"icon":90,"children":-1},"Ce que Qora fait des lectures et des écritures quand l'appareil est hors-ligne, ce qui se passe à la reconnexion, et ce qui survit à un redémarrage.",{"title":103,"path":104,"stem":105,"description":1375,"icon":106,"children":-1},"Le StatefulWidget qui fournit un QoraClient à l'arbre de widgets et gère le cycle de vie des gestionnaires de plateforme optionnels.",1794040407156]