[{"data":1,"prerenderedAt":2497},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-api-reference-qora-state":342,"-fr-api-reference-qora-state-surround":2492},[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":211,"body":344,"description":2485,"extension":2486,"links":2487,"meta":2488,"navigation":2489,"path":212,"seo":2490,"stem":213,"__hash__":2491},"docs_fr/fr/05.api-reference/3.qora-state.md",{"type":345,"value":346,"toc":2450},"minimark",[347,352,526,529,536,541,693,699,713,762,768,771,890,896,906,982,984,990,993,1053,1055,1061,1064,1068,1096,1134,1138,1205,1289,1291,1297,1300,1303,1345,1349,1417,1507,1511,1531,1533,1539,1542,1545,1601,1731,1733,1739,1749,1753,1809,1813,1938,1942,2058,2060,2066,2188,2190,2197,2366,2368,2375,2378,2446],[348,349,351],"h2",{"id":350},"hiérarchie-de-classes","Hiérarchie de classes",[353,354,360],"pre",{"className":355,"code":356,"filename":357,"language":358,"meta":359,"style":359},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sealed class QoraState\u003CT> { ... }\n\nfinal class Initial\u003CT>  extends QoraState\u003CT> { ... }\nfinal class Loading\u003CT>  extends QoraState\u003CT> { ... }\nfinal class Success\u003CT>  extends QoraState\u003CT> { ... }\nfinal class Failure\u003CT>  extends QoraState\u003CT> { ... }\n","lib/src/state/qora_state.dart","dart","",[361,362,363,395,402,436,466,496],"code",{"__ignoreMap":359},[364,365,368,372,375,379,383,386,389,392],"span",{"class":366,"line":367},"line",1,[364,369,371],{"class":370},"sMK4o","sealed",[364,373,374],{"class":370}," class",[364,376,378],{"class":377},"sBMFI"," QoraState",[364,380,382],{"class":381},"sTEyZ","\u003C",[364,384,385],{"class":377},"T",[364,387,388],{"class":381},"> { ",[364,390,391],{"class":370},"...",[364,393,394],{"class":381}," }\n",[364,396,398],{"class":366,"line":397},2,[364,399,401],{"emptyLinePlaceholder":400},true,"\n",[364,403,405,409,411,414,416,418,421,424,426,428,430,432,434],{"class":366,"line":404},3,[364,406,408],{"class":407},"spNyl","final",[364,410,374],{"class":370},[364,412,413],{"class":377}," Initial",[364,415,382],{"class":381},[364,417,385],{"class":377},[364,419,420],{"class":381},">  ",[364,422,423],{"class":370},"extends",[364,425,378],{"class":377},[364,427,382],{"class":381},[364,429,385],{"class":377},[364,431,388],{"class":381},[364,433,391],{"class":370},[364,435,394],{"class":381},[364,437,439,441,443,446,448,450,452,454,456,458,460,462,464],{"class":366,"line":438},4,[364,440,408],{"class":407},[364,442,374],{"class":370},[364,444,445],{"class":377}," Loading",[364,447,382],{"class":381},[364,449,385],{"class":377},[364,451,420],{"class":381},[364,453,423],{"class":370},[364,455,378],{"class":377},[364,457,382],{"class":381},[364,459,385],{"class":377},[364,461,388],{"class":381},[364,463,391],{"class":370},[364,465,394],{"class":381},[364,467,469,471,473,476,478,480,482,484,486,488,490,492,494],{"class":366,"line":468},5,[364,470,408],{"class":407},[364,472,374],{"class":370},[364,474,475],{"class":377}," Success",[364,477,382],{"class":381},[364,479,385],{"class":377},[364,481,420],{"class":381},[364,483,423],{"class":370},[364,485,378],{"class":377},[364,487,382],{"class":381},[364,489,385],{"class":377},[364,491,388],{"class":381},[364,493,391],{"class":370},[364,495,394],{"class":381},[364,497,499,501,503,506,508,510,512,514,516,518,520,522,524],{"class":366,"line":498},6,[364,500,408],{"class":407},[364,502,374],{"class":370},[364,504,505],{"class":377}," Failure",[364,507,382],{"class":381},[364,509,385],{"class":377},[364,511,420],{"class":381},[364,513,423],{"class":370},[364,515,378],{"class":377},[364,517,382],{"class":381},[364,519,385],{"class":377},[364,521,388],{"class":381},[364,523,391],{"class":370},[364,525,394],{"class":381},[527,528],"hr",{},[348,530,532,535],{"id":531},"qorastatet-base",[361,533,534],{},"QoraState\u003CT>"," : Base",[537,538,540],"h3",{"id":539},"propriétés-disponibles-sur-tous-les-états","Propriétés (disponibles sur tous les états)",[542,543,544,560],"table",{},[545,546,547],"thead",{},[548,549,550,554,557],"tr",{},[551,552,553],"th",{},"Propriété",[551,555,556],{},"Type",[551,558,559],{},"Description",[561,562,563,582,600,619,637,655,673],"tbody",{},[548,564,565,571,576],{},[566,567,568],"td",{},[361,569,570],{},"hasData",[566,572,573],{},[361,574,575],{},"bool",[566,577,578,581],{},[361,579,580],{},"true"," pour Success, ou Loading/Failure avec des données précédentes",[548,583,584,589,594],{},[566,585,586],{},[361,587,588],{},"dataOrNull",[566,590,591],{},[361,592,593],{},"T?",[566,595,596,597],{},"Meilleures données disponibles dans tous les états, ou ",[361,598,599],{},"null",[548,601,602,607,611],{},[566,603,604],{},[361,605,606],{},"isInitial",[566,608,609],{},[361,610,575],{},[566,612,613,615,616],{},[361,614,580],{}," si ",[361,617,618],{},"Initial",[548,620,621,626,630],{},[566,622,623],{},[361,624,625],{},"isLoading",[566,627,628],{},[361,629,575],{},[566,631,632,615,634],{},[361,633,580],{},[361,635,636],{},"Loading",[548,638,639,644,648],{},[566,640,641],{},[361,642,643],{},"isSuccess",[566,645,646],{},[361,647,575],{},[566,649,650,615,652],{},[361,651,580],{},[361,653,654],{},"Success",[548,656,657,662,666],{},[566,658,659],{},[361,660,661],{},"isError",[566,663,664],{},[361,665,575],{},[566,667,668,615,670],{},[361,669,580],{},[361,671,672],{},"Failure",[548,674,675,680,685],{},[566,676,677],{},[361,678,679],{},"errorOrNull",[566,681,682],{},[361,683,684],{},"Object?",[566,686,687,688,690,691],{},"Erreur de ",[361,689,672],{},", ou ",[361,692,599],{},[537,694,696],{"id":695},"maprr-functiont-transform",[361,697,698],{},"map\u003CR>(R Function(T) transform)",[700,701,702,703,706,707,709,710,712],"p",{},"Transforme le type de données tout en préservant la structure d'état. ",[361,704,705],{},"previousData"," dans ",[361,708,636],{},"/",[361,711,672],{}," est également transformé.",[353,714,717],{"className":355,"code":715,"filename":716,"language":358,"meta":359,"style":359},"final nameState = userState.map((user) => user.name);\n// Success\u003CUser> → Success\u003CString>\n","main.dart",[361,718,719,756],{"__ignoreMap":359},[364,720,721,723,726,729,732,735,739,742,745,748,750,753],{"class":366,"line":367},[364,722,408],{"class":407},[364,724,725],{"class":381}," nameState ",[364,727,728],{"class":370},"=",[364,730,731],{"class":381}," userState",[364,733,734],{"class":370},".",[364,736,738],{"class":737},"s2Zo4","map",[364,740,741],{"class":381},"((user) ",[364,743,744],{"class":370},"=>",[364,746,747],{"class":381}," user",[364,749,734],{"class":370},[364,751,752],{"class":381},"name)",[364,754,755],{"class":370},";\n",[364,757,758],{"class":366,"line":397},[364,759,761],{"class":760},"sHwdD","// Success\u003CUser> → Success\u003CString>\n",[537,763,765],{"id":764},"whenoninitial-onloading-onsuccess-onerror",[361,766,767],{},"when({onInitial, onLoading, onSuccess, onError})",[700,769,770],{},"Exécute des callbacks pour l'état actuel. Les quatre callbacks sont optionnels.",[353,772,774],{"className":355,"code":773,"filename":716,"language":358,"meta":359,"style":359},"state.when(\n  onSuccess: (data, updatedAt) => print('Chargé : ${data.name}'),\n  onError: (error, stackTrace, previousData) => showSnackBar('$error'),\n);\n",[361,775,776,790,843,884],{"__ignoreMap":359},[364,777,778,781,783,787],{"class":366,"line":367},[364,779,780],{"class":381},"state",[364,782,734],{"class":370},[364,784,786],{"class":785},"s7zQu","when",[364,788,789],{"class":381},"(\n",[364,791,792,795,798,801,804,807,809,812,815,819,822,826,828,831,834,837,840],{"class":366,"line":397},[364,793,794],{"class":381},"  onSuccess",[364,796,797],{"class":370},":",[364,799,800],{"class":381}," (data",[364,802,803],{"class":370},",",[364,805,806],{"class":381}," updatedAt) ",[364,808,744],{"class":370},[364,810,811],{"class":737}," print",[364,813,814],{"class":381},"(",[364,816,818],{"class":817},"sfazB","'Chargé : ",[364,820,821],{"class":381},"${",[364,823,825],{"class":824},"sHdIc","data",[364,827,734],{"class":381},[364,829,830],{"class":824},"name",[364,832,833],{"class":381},"}",[364,835,836],{"class":817},"'",[364,838,839],{"class":381},")",[364,841,842],{"class":370},",\n",[364,844,845,848,850,853,855,858,860,863,865,868,870,872,875,878,880,882],{"class":366,"line":404},[364,846,847],{"class":381},"  onError",[364,849,797],{"class":370},[364,851,852],{"class":381}," (error",[364,854,803],{"class":370},[364,856,857],{"class":381}," stackTrace",[364,859,803],{"class":370},[364,861,862],{"class":381}," previousData) ",[364,864,744],{"class":370},[364,866,867],{"class":737}," showSnackBar",[364,869,814],{"class":381},[364,871,836],{"class":817},[364,873,874],{"class":381},"$",[364,876,877],{"class":824},"error",[364,879,836],{"class":817},[364,881,839],{"class":381},[364,883,842],{"class":370},[364,885,886,888],{"class":366,"line":438},[364,887,839],{"class":381},[364,889,755],{"class":370},[537,891,893],{"id":892},"maybewhenrrequired-orelse-oninitial-onloading-onsuccess-onerror",[361,894,895],{},"maybeWhen\u003CR>({required orElse, onInitial, onLoading, onSuccess, onError})",[700,897,898,899,902,903,734],{},"Mappe l'état vers une valeur de type ",[361,900,901],{},"R",". Les états non gérés tombent dans ",[361,904,905],{},"orElse",[353,907,909],{"className":355,"code":908,"filename":716,"language":358,"meta":359,"style":359},"final widget = state.maybeWhen(\n  onSuccess: (data, _) => UserCard(data),\n  orElse: () => const CircularProgressIndicator(),\n);\n",[361,910,911,930,953,976],{"__ignoreMap":359},[364,912,913,915,918,920,923,925,928],{"class":366,"line":367},[364,914,408],{"class":407},[364,916,917],{"class":381}," widget ",[364,919,728],{"class":370},[364,921,922],{"class":381}," state",[364,924,734],{"class":370},[364,926,927],{"class":737},"maybeWhen",[364,929,789],{"class":381},[364,931,932,934,936,938,940,943,945,948,951],{"class":366,"line":397},[364,933,794],{"class":381},[364,935,797],{"class":370},[364,937,800],{"class":381},[364,939,803],{"class":370},[364,941,942],{"class":381}," _) ",[364,944,744],{"class":370},[364,946,947],{"class":377}," UserCard",[364,949,950],{"class":381},"(data)",[364,952,842],{"class":370},[364,954,955,958,960,963,965,968,971,974],{"class":366,"line":404},[364,956,957],{"class":381},"  orElse",[364,959,797],{"class":370},[364,961,962],{"class":381}," () ",[364,964,744],{"class":370},[364,966,967],{"class":407}," const",[364,969,970],{"class":377}," CircularProgressIndicator",[364,972,973],{"class":381},"()",[364,975,842],{"class":370},[364,977,978,980],{"class":366,"line":438},[364,979,839],{"class":381},[364,981,755],{"class":370},[527,983],{},[348,985,987],{"id":986},"initialt",[361,988,989],{},"Initial\u003CT>",[700,991,992],{},"La requête n'a pas encore été exécutée. État par défaut pour toute clé qui n'a jamais été chargée ou a été supprimée du cache.",[353,994,996],{"className":355,"code":995,"filename":716,"language":358,"meta":359,"style":359},"const Initial\u003CUser>()\n\nstate.isInitial   // true\nstate.hasData     // false\nstate.dataOrNull  // null\n",[361,997,998,1013,1017,1029,1041],{"__ignoreMap":359},[364,999,1000,1003,1005,1007,1010],{"class":366,"line":367},[364,1001,1002],{"class":407},"const",[364,1004,413],{"class":377},[364,1006,382],{"class":381},[364,1008,1009],{"class":377},"User",[364,1011,1012],{"class":381},">()\n",[364,1014,1015],{"class":366,"line":397},[364,1016,401],{"emptyLinePlaceholder":400},[364,1018,1019,1021,1023,1026],{"class":366,"line":404},[364,1020,780],{"class":381},[364,1022,734],{"class":370},[364,1024,1025],{"class":381},"isInitial   ",[364,1027,1028],{"class":760},"// true\n",[364,1030,1031,1033,1035,1038],{"class":366,"line":438},[364,1032,780],{"class":381},[364,1034,734],{"class":370},[364,1036,1037],{"class":381},"hasData     ",[364,1039,1040],{"class":760},"// false\n",[364,1042,1043,1045,1047,1050],{"class":366,"line":468},[364,1044,780],{"class":381},[364,1046,734],{"class":370},[364,1048,1049],{"class":381},"dataOrNull  ",[364,1051,1052],{"class":760},"// null\n",[527,1054],{},[348,1056,1058],{"id":1057},"loadingt",[361,1059,1060],{},"Loading\u003CT>",[700,1062,1063],{},"Un fetch est activement en cours.",[537,1065,1067],{"id":1066},"champs","Champs",[542,1069,1070,1081],{},[545,1071,1072],{},[548,1073,1074,1077,1079],{},[551,1075,1076],{},"Champ",[551,1078,556],{},[551,1080,559],{},[561,1082,1083],{},[548,1084,1085,1089,1093],{},[566,1086,1087],{},[361,1088,705],{},[566,1090,1091],{},[361,1092,593],{},[566,1094,1095],{},"Dernières données réussies (null lors du premier fetch)",[353,1097,1099],{"className":355,"code":1098,"filename":716,"language":358,"meta":359,"style":359},"Loading\u003CUser>()                          // premier fetch\nLoading\u003CUser>(previousData: cachedUser)  // rechargement en arrière-plan\n",[361,1100,1101,1115],{"__ignoreMap":359},[364,1102,1103,1105,1107,1109,1112],{"class":366,"line":367},[364,1104,636],{"class":377},[364,1106,382],{"class":381},[364,1108,1009],{"class":377},[364,1110,1111],{"class":381},">()                          ",[364,1113,1114],{"class":760},"// premier fetch\n",[364,1116,1117,1119,1121,1123,1126,1128,1131],{"class":366,"line":397},[364,1118,636],{"class":377},[364,1120,382],{"class":381},[364,1122,1009],{"class":377},[364,1124,1125],{"class":381},">(previousData",[364,1127,797],{"class":370},[364,1129,1130],{"class":381}," cachedUser)  ",[364,1132,1133],{"class":760},"// rechargement en arrière-plan\n",[537,1135,1137],{"id":1136},"propriétés-extensions","Propriétés (extensions)",[542,1139,1140,1150],{},[545,1141,1142],{},[548,1143,1144,1146,1148],{},[551,1145,553],{},[551,1147,556],{},[551,1149,559],{},[561,1151,1152,1171,1189],{},[548,1153,1154,1159,1163],{},[566,1155,1156],{},[361,1157,1158],{},"isFirstLoad",[566,1160,1161],{},[361,1162,575],{},[566,1164,1165,1167,1168],{},[361,1166,580],{}," quand ",[361,1169,1170],{},"previousData == null",[548,1172,1173,1178,1182],{},[566,1174,1175],{},[361,1176,1177],{},"isRefreshing",[566,1179,1180],{},[361,1181,575],{},[566,1183,1184,1167,1186],{},[361,1185,580],{},[361,1187,1188],{},"previousData != null",[548,1190,1191,1195,1199],{},[566,1192,1193],{},[361,1194,570],{},[566,1196,1197],{},[361,1198,575],{},[566,1200,1201,1167,1203],{},[361,1202,580],{},[361,1204,1188],{},[353,1206,1209],{"className":355,"code":1207,"filename":1208,"language":358,"meta":359,"style":359},"case Loading(:final previousData):\n  return previousData != null\n    ? Stack(children: [UserCard(previousData), const LinearProgressIndicator()])\n    : const CircularProgressIndicator();\n","user_page.dart",[361,1210,1211,1230,1244,1276],{"__ignoreMap":359},[364,1212,1213,1216,1218,1220,1222,1224,1227],{"class":366,"line":367},[364,1214,1215],{"class":785},"case",[364,1217,445],{"class":377},[364,1219,814],{"class":381},[364,1221,797],{"class":370},[364,1223,408],{"class":407},[364,1225,1226],{"class":381}," previousData)",[364,1228,1229],{"class":370},":\n",[364,1231,1232,1235,1238,1241],{"class":366,"line":397},[364,1233,1234],{"class":785},"  return",[364,1236,1237],{"class":381}," previousData ",[364,1239,1240],{"class":370},"!=",[364,1242,1243],{"class":370}," null\n",[364,1245,1246,1249,1252,1255,1257,1260,1263,1266,1268,1270,1273],{"class":366,"line":404},[364,1247,1248],{"class":370},"    ?",[364,1250,1251],{"class":377}," Stack",[364,1253,1254],{"class":381},"(children",[364,1256,797],{"class":370},[364,1258,1259],{"class":381}," [",[364,1261,1262],{"class":377},"UserCard",[364,1264,1265],{"class":381},"(previousData)",[364,1267,803],{"class":370},[364,1269,967],{"class":407},[364,1271,1272],{"class":377}," LinearProgressIndicator",[364,1274,1275],{"class":381},"()])\n",[364,1277,1278,1281,1283,1285,1287],{"class":366,"line":438},[364,1279,1280],{"class":370},"    :",[364,1282,967],{"class":407},[364,1284,970],{"class":377},[364,1286,973],{"class":381},[364,1288,755],{"class":370},[527,1290],{},[348,1292,1294],{"id":1293},"successt",[361,1295,1296],{},"Success\u003CT>",[700,1298,1299],{},"Les données ont été récupérées avec succès.",[537,1301,1067],{"id":1302},"champs-1",[542,1304,1305,1315],{},[545,1306,1307],{},[548,1308,1309,1311,1313],{},[551,1310,1076],{},[551,1312,556],{},[551,1314,559],{},[561,1316,1317,1330],{},[548,1318,1319,1323,1327],{},[566,1320,1321],{},[361,1322,825],{},[566,1324,1325],{},[361,1326,385],{},[566,1328,1329],{},"Les données récupérées",[548,1331,1332,1337,1342],{},[566,1333,1334],{},[361,1335,1336],{},"updatedAt",[566,1338,1339],{},[361,1340,1341],{},"DateTime",[566,1343,1344],{},"Horodatage du dernier fetch réussi",[537,1346,1348],{"id":1347},"propriétés-et-méthodes","Propriétés et méthodes",[542,1350,1351,1362],{},[545,1352,1353],{},[548,1354,1355,1358,1360],{},[551,1356,1357],{},"Membre",[551,1359,556],{},[551,1361,559],{},[561,1363,1364,1381,1399],{},[548,1365,1366,1371,1376],{},[566,1367,1368],{},[361,1369,1370],{},"age",[566,1372,1373],{},[361,1374,1375],{},"Duration",[566,1377,1378,1379],{},"Temps écoulé depuis ",[361,1380,1336],{},[548,1382,1383,1388,1392],{},[566,1384,1385],{},[361,1386,1387],{},"isStale(Duration threshold)",[566,1389,1390],{},[361,1391,575],{},[566,1393,1394,615,1396],{},[361,1395,580],{},[361,1397,1398],{},"age > threshold",[548,1400,1401,1407,1411],{},[566,1402,1403,1406],{},[361,1404,1405],{},"successDataOrNull"," (ext.)",[566,1408,1409],{},[361,1410,593],{},[566,1412,1413,1414,1416],{},"Retourne ",[361,1415,825],{}," (null pour les autres états)",[353,1418,1420],{"className":355,"code":1419,"filename":1208,"language":358,"meta":359,"style":359},"case Success(:final data, :final updatedAt):\n  return Column(children: [\n    UserCard(data),\n    Text('Mis à jour ${_timeAgo(updatedAt)}'),\n  ]);\n",[361,1421,1422,1449,1463,1472,1500],{"__ignoreMap":359},[364,1423,1424,1426,1428,1430,1432,1434,1437,1439,1442,1444,1447],{"class":366,"line":367},[364,1425,1215],{"class":785},[364,1427,475],{"class":377},[364,1429,814],{"class":381},[364,1431,797],{"class":370},[364,1433,408],{"class":407},[364,1435,1436],{"class":381}," data",[364,1438,803],{"class":370},[364,1440,1441],{"class":370}," :",[364,1443,408],{"class":407},[364,1445,1446],{"class":381}," updatedAt)",[364,1448,1229],{"class":370},[364,1450,1451,1453,1456,1458,1460],{"class":366,"line":397},[364,1452,1234],{"class":785},[364,1454,1455],{"class":377}," Column",[364,1457,1254],{"class":381},[364,1459,797],{"class":370},[364,1461,1462],{"class":381}," [\n",[364,1464,1465,1468,1470],{"class":366,"line":404},[364,1466,1467],{"class":377},"    UserCard",[364,1469,950],{"class":381},[364,1471,842],{"class":370},[364,1473,1474,1477,1479,1482,1484,1487,1489,1491,1494,1496,1498],{"class":366,"line":438},[364,1475,1476],{"class":377},"    Text",[364,1478,814],{"class":381},[364,1480,1481],{"class":817},"'Mis à jour ",[364,1483,821],{"class":381},[364,1485,1486],{"class":737},"_timeAgo",[364,1488,814],{"class":381},[364,1490,1336],{"class":824},[364,1492,1493],{"class":381},")}",[364,1495,836],{"class":817},[364,1497,839],{"class":381},[364,1499,842],{"class":370},[364,1501,1502,1505],{"class":366,"line":468},[364,1503,1504],{"class":381},"  ])",[364,1506,755],{"class":370},[537,1508,1510],{"id":1509},"factory","Factory",[353,1512,1514],{"className":355,"code":1513,"filename":716,"language":358,"meta":359,"style":359},"Success.now(data)  // équivalent à Success(data: data, updatedAt: DateTime.now())\n",[361,1515,1516],{"__ignoreMap":359},[364,1517,1518,1520,1522,1525,1528],{"class":366,"line":367},[364,1519,654],{"class":377},[364,1521,734],{"class":370},[364,1523,1524],{"class":737},"now",[364,1526,1527],{"class":381},"(data)  ",[364,1529,1530],{"class":760},"// équivalent à Success(data: data, updatedAt: DateTime.now())\n",[527,1532],{},[348,1534,1536],{"id":1535},"failuret",[361,1537,1538],{},"Failure\u003CT>",[700,1540,1541],{},"Le fetch a échoué après toutes les tentatives de retry.",[537,1543,1067],{"id":1544},"champs-2",[542,1546,1547,1557],{},[545,1548,1549],{},[548,1550,1551,1553,1555],{},[551,1552,1076],{},[551,1554,556],{},[551,1556,559],{},[561,1558,1559,1573,1588],{},[548,1560,1561,1565,1570],{},[566,1562,1563],{},[361,1564,877],{},[566,1566,1567],{},[361,1568,1569],{},"Object",[566,1571,1572],{},"L'erreur levée",[548,1574,1575,1580,1585],{},[566,1576,1577],{},[361,1578,1579],{},"stackTrace",[566,1581,1582],{},[361,1583,1584],{},"StackTrace?",[566,1586,1587],{},"Stack trace optionnelle",[548,1589,1590,1594,1598],{},[566,1591,1592],{},[361,1593,705],{},[566,1595,1596],{},[361,1597,593],{},[566,1599,1600],{},"Dernières données réussies (permet la dégradation gracieuse)",[353,1602,1604],{"className":355,"code":1603,"filename":1208,"language":358,"meta":359,"style":359},"case Failure(:final error, :final previousData):\n  return Column(children: [\n    if (previousData != null) ...[\n      UserCard(previousData),   // afficher les données périmées\n      const SizedBox(height: 8),\n    ],\n    ErrorBanner('$error'),\n  ]);\n",[361,1605,1606,1631,1643,1664,1676,1697,1704,1724],{"__ignoreMap":359},[364,1607,1608,1610,1612,1614,1616,1618,1621,1623,1625,1627,1629],{"class":366,"line":367},[364,1609,1215],{"class":785},[364,1611,505],{"class":377},[364,1613,814],{"class":381},[364,1615,797],{"class":370},[364,1617,408],{"class":407},[364,1619,1620],{"class":381}," error",[364,1622,803],{"class":370},[364,1624,1441],{"class":370},[364,1626,408],{"class":407},[364,1628,1226],{"class":381},[364,1630,1229],{"class":370},[364,1632,1633,1635,1637,1639,1641],{"class":366,"line":397},[364,1634,1234],{"class":785},[364,1636,1455],{"class":377},[364,1638,1254],{"class":381},[364,1640,797],{"class":370},[364,1642,1462],{"class":381},[364,1644,1645,1648,1651,1653,1656,1659,1661],{"class":366,"line":404},[364,1646,1647],{"class":785},"    if",[364,1649,1650],{"class":381}," (previousData ",[364,1652,1240],{"class":370},[364,1654,1655],{"class":370}," null",[364,1657,1658],{"class":381},") ",[364,1660,391],{"class":370},[364,1662,1663],{"class":381},"[\n",[364,1665,1666,1669,1671,1673],{"class":366,"line":438},[364,1667,1668],{"class":377},"      UserCard",[364,1670,1265],{"class":381},[364,1672,803],{"class":370},[364,1674,1675],{"class":760},"   // afficher les données périmées\n",[364,1677,1678,1681,1684,1687,1689,1693,1695],{"class":366,"line":468},[364,1679,1680],{"class":407},"      const",[364,1682,1683],{"class":377}," SizedBox",[364,1685,1686],{"class":381},"(height",[364,1688,797],{"class":370},[364,1690,1692],{"class":1691},"sbssI"," 8",[364,1694,839],{"class":381},[364,1696,842],{"class":370},[364,1698,1699,1702],{"class":366,"line":498},[364,1700,1701],{"class":381},"    ]",[364,1703,842],{"class":370},[364,1705,1707,1710,1712,1714,1716,1718,1720,1722],{"class":366,"line":1706},7,[364,1708,1709],{"class":377},"    ErrorBanner",[364,1711,814],{"class":381},[364,1713,836],{"class":817},[364,1715,874],{"class":381},[364,1717,877],{"class":824},[364,1719,836],{"class":817},[364,1721,839],{"class":381},[364,1723,842],{"class":370},[364,1725,1727,1729],{"class":366,"line":1726},8,[364,1728,1504],{"class":381},[364,1730,755],{"class":370},[527,1732],{},[348,1734,1736,1737],{"id":1735},"extensions-sur-qorastatet","Extensions sur ",[361,1738,534],{},[700,1740,1741,1742,1745,1746,734],{},"Exportées depuis ",[361,1743,1744],{},"package:qora/qora.dart"," via ",[361,1747,1748],{},"state_extensions.dart",[537,1750,1752],{"id":1751},"accès-aux-données","Accès aux données",[353,1754,1756],{"className":355,"code":1755,"filename":716,"language":358,"meta":359,"style":359},"state.requireData()        // T : lève StateError si pas de données\nstate.successDataOrNull    // T? : données uniquement depuis Success\nstate.updatedAt            // DateTime? : updatedAt depuis Success, null sinon\nstate.status               // enum QoraStatus (initial/loading/success/error)\n",[361,1757,1758,1773,1785,1797],{"__ignoreMap":359},[364,1759,1760,1762,1764,1767,1770],{"class":366,"line":367},[364,1761,780],{"class":381},[364,1763,734],{"class":370},[364,1765,1766],{"class":737},"requireData",[364,1768,1769],{"class":381},"()        ",[364,1771,1772],{"class":760},"// T : lève StateError si pas de données\n",[364,1774,1775,1777,1779,1782],{"class":366,"line":397},[364,1776,780],{"class":381},[364,1778,734],{"class":370},[364,1780,1781],{"class":381},"successDataOrNull    ",[364,1783,1784],{"class":760},"// T? : données uniquement depuis Success\n",[364,1786,1787,1789,1791,1794],{"class":366,"line":404},[364,1788,780],{"class":381},[364,1790,734],{"class":370},[364,1792,1793],{"class":381},"updatedAt            ",[364,1795,1796],{"class":760},"// DateTime? : updatedAt depuis Success, null sinon\n",[364,1798,1799,1801,1803,1806],{"class":366,"line":438},[364,1800,780],{"class":381},[364,1802,734],{"class":370},[364,1804,1805],{"class":381},"status               ",[364,1807,1808],{"class":760},"// enum QoraStatus (initial/loading/success/error)\n",[537,1810,1812],{"id":1811},"mapping","Mapping",[353,1814,1816],{"className":355,"code":1815,"filename":716,"language":358,"meta":359,"style":359},"state.mapData((data) => data.name)      // comme map : données Success et previousData\nstate.fold(\n  onInitial: () => 'non chargé',\n  onLoading: (prev) => 'chargement...',\n  onSuccess: (data, _) => data.name,\n  onError: (error, _, __) => 'erreur',\n)\n",[361,1817,1818,1842,1853,1869,1886,1908,1933],{"__ignoreMap":359},[364,1819,1820,1822,1824,1827,1830,1832,1834,1836,1839],{"class":366,"line":367},[364,1821,780],{"class":381},[364,1823,734],{"class":370},[364,1825,1826],{"class":737},"mapData",[364,1828,1829],{"class":381},"((data) ",[364,1831,744],{"class":370},[364,1833,1436],{"class":381},[364,1835,734],{"class":370},[364,1837,1838],{"class":381},"name)      ",[364,1840,1841],{"class":760},"// comme map : données Success et previousData\n",[364,1843,1844,1846,1848,1851],{"class":366,"line":397},[364,1845,780],{"class":381},[364,1847,734],{"class":370},[364,1849,1850],{"class":737},"fold",[364,1852,789],{"class":381},[364,1854,1855,1858,1860,1862,1864,1867],{"class":366,"line":404},[364,1856,1857],{"class":381},"  onInitial",[364,1859,797],{"class":370},[364,1861,962],{"class":381},[364,1863,744],{"class":370},[364,1865,1866],{"class":817}," 'non chargé'",[364,1868,842],{"class":370},[364,1870,1871,1874,1876,1879,1881,1884],{"class":366,"line":438},[364,1872,1873],{"class":381},"  onLoading",[364,1875,797],{"class":370},[364,1877,1878],{"class":381}," (prev) ",[364,1880,744],{"class":370},[364,1882,1883],{"class":817}," 'chargement...'",[364,1885,842],{"class":370},[364,1887,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906],{"class":366,"line":468},[364,1889,794],{"class":381},[364,1891,797],{"class":370},[364,1893,800],{"class":381},[364,1895,803],{"class":370},[364,1897,942],{"class":381},[364,1899,744],{"class":370},[364,1901,1436],{"class":381},[364,1903,734],{"class":370},[364,1905,830],{"class":381},[364,1907,842],{"class":370},[364,1909,1910,1912,1914,1916,1918,1921,1923,1926,1928,1931],{"class":366,"line":498},[364,1911,847],{"class":381},[364,1913,797],{"class":370},[364,1915,852],{"class":381},[364,1917,803],{"class":370},[364,1919,1920],{"class":381}," _",[364,1922,803],{"class":370},[364,1924,1925],{"class":381}," __) ",[364,1927,744],{"class":370},[364,1929,1930],{"class":817}," 'erreur'",[364,1932,842],{"class":370},[364,1934,1935],{"class":366,"line":1706},[364,1936,1937],{"class":381},")\n",[537,1939,1941],{"id":1940},"combinaison","Combinaison",[353,1943,1945],{"className":355,"code":1944,"filename":716,"language":358,"meta":359,"style":359},"// Deux états → un état combiné (Success uniquement quand les deux sont Success)\nuserState.combine(postsState, (user, posts) => UserWithPosts(user, posts))\n\n// Listes et tuples\nQoraStateUtils.combineList([s1, s2, s3])\nQoraStateUtils.combine2(userState, settingsState)\nQoraStateUtils.combine3(userState, postsState, tagsState)\n",[361,1946,1947,1952,1988,1992,1997,2020,2037],{"__ignoreMap":359},[364,1948,1949],{"class":366,"line":367},[364,1950,1951],{"class":760},"// Deux états → un état combiné (Success uniquement quand les deux sont Success)\n",[364,1953,1954,1957,1959,1962,1965,1967,1970,1972,1975,1977,1980,1983,1985],{"class":366,"line":397},[364,1955,1956],{"class":381},"userState",[364,1958,734],{"class":370},[364,1960,1961],{"class":737},"combine",[364,1963,1964],{"class":381},"(postsState",[364,1966,803],{"class":370},[364,1968,1969],{"class":381}," (user",[364,1971,803],{"class":370},[364,1973,1974],{"class":381}," posts) ",[364,1976,744],{"class":370},[364,1978,1979],{"class":377}," UserWithPosts",[364,1981,1982],{"class":381},"(user",[364,1984,803],{"class":370},[364,1986,1987],{"class":381}," posts))\n",[364,1989,1990],{"class":366,"line":404},[364,1991,401],{"emptyLinePlaceholder":400},[364,1993,1994],{"class":366,"line":438},[364,1995,1996],{"class":760},"// Listes et tuples\n",[364,1998,1999,2002,2004,2007,2010,2012,2015,2017],{"class":366,"line":468},[364,2000,2001],{"class":377},"QoraStateUtils",[364,2003,734],{"class":370},[364,2005,2006],{"class":737},"combineList",[364,2008,2009],{"class":381},"([s1",[364,2011,803],{"class":370},[364,2013,2014],{"class":381}," s2",[364,2016,803],{"class":370},[364,2018,2019],{"class":381}," s3])\n",[364,2021,2022,2024,2026,2029,2032,2034],{"class":366,"line":498},[364,2023,2001],{"class":377},[364,2025,734],{"class":370},[364,2027,2028],{"class":737},"combine2",[364,2030,2031],{"class":381},"(userState",[364,2033,803],{"class":370},[364,2035,2036],{"class":381}," settingsState)\n",[364,2038,2039,2041,2043,2046,2048,2050,2053,2055],{"class":366,"line":1706},[364,2040,2001],{"class":377},[364,2042,734],{"class":370},[364,2044,2045],{"class":737},"combine3",[364,2047,2031],{"class":381},[364,2049,803],{"class":370},[364,2051,2052],{"class":381}," postsState",[364,2054,803],{"class":370},[364,2056,2057],{"class":381}," tagsState)\n",[527,2059],{},[348,2061,1736,2063],{"id":2062},"extensions-sur-streamqorastatet",[361,2064,2065],{},"Stream\u003CQoraState\u003CT>>",[353,2067,2069],{"className":355,"code":2068,"filename":716,"language":358,"meta":359,"style":359},"stream.whereHasData()                   // uniquement les états avec des données\nstream.whereSuccess()                   // uniquement les états Success\nstream.whereError()                     // uniquement les états Failure\nstream.dataOrNull()                     // Stream\u003CT?> : null pour les états sans données\nstream.data()                           // Stream\u003CT> : ignore les états sans données\nstream.mapData((data) => transform(data)) // Stream\u003CQoraState\u003CR>>\nstream.delayLoading(Duration(milliseconds: 300))\n",[361,2070,2071,2087,2101,2116,2129,2143,2164],{"__ignoreMap":359},[364,2072,2073,2076,2078,2081,2084],{"class":366,"line":367},[364,2074,2075],{"class":381},"stream",[364,2077,734],{"class":370},[364,2079,2080],{"class":737},"whereHasData",[364,2082,2083],{"class":381},"()                   ",[364,2085,2086],{"class":760},"// uniquement les états avec des données\n",[364,2088,2089,2091,2093,2096,2098],{"class":366,"line":397},[364,2090,2075],{"class":381},[364,2092,734],{"class":370},[364,2094,2095],{"class":737},"whereSuccess",[364,2097,2083],{"class":381},[364,2099,2100],{"class":760},"// uniquement les états Success\n",[364,2102,2103,2105,2107,2110,2113],{"class":366,"line":404},[364,2104,2075],{"class":381},[364,2106,734],{"class":370},[364,2108,2109],{"class":737},"whereError",[364,2111,2112],{"class":381},"()                     ",[364,2114,2115],{"class":760},"// uniquement les états Failure\n",[364,2117,2118,2120,2122,2124,2126],{"class":366,"line":438},[364,2119,2075],{"class":381},[364,2121,734],{"class":370},[364,2123,588],{"class":737},[364,2125,2112],{"class":381},[364,2127,2128],{"class":760},"// Stream\u003CT?> : null pour les états sans données\n",[364,2130,2131,2133,2135,2137,2140],{"class":366,"line":468},[364,2132,2075],{"class":381},[364,2134,734],{"class":370},[364,2136,825],{"class":737},[364,2138,2139],{"class":381},"()                           ",[364,2141,2142],{"class":760},"// Stream\u003CT> : ignore les états sans données\n",[364,2144,2145,2147,2149,2151,2153,2155,2158,2161],{"class":366,"line":498},[364,2146,2075],{"class":381},[364,2148,734],{"class":370},[364,2150,1826],{"class":737},[364,2152,1829],{"class":381},[364,2154,744],{"class":370},[364,2156,2157],{"class":737}," transform",[364,2159,2160],{"class":381},"(data)) ",[364,2162,2163],{"class":760},"// Stream\u003CQoraState\u003CR>>\n",[364,2165,2166,2168,2170,2173,2175,2177,2180,2182,2185],{"class":366,"line":1706},[364,2167,2075],{"class":381},[364,2169,734],{"class":370},[364,2171,2172],{"class":737},"delayLoading",[364,2174,814],{"class":381},[364,2176,1375],{"class":377},[364,2178,2179],{"class":381},"(milliseconds",[364,2181,797],{"class":370},[364,2183,2184],{"class":1691}," 300",[364,2186,2187],{"class":381},"))\n",[527,2189],{},[348,2191,2193,2194],{"id":2192},"sérialisation-qorastatecodect","Sérialisation : ",[361,2195,2196],{},"QoraStateCodec\u003CT>",[353,2198,2201],{"className":355,"code":2199,"filename":2200,"language":358,"meta":359,"style":359},"final codec = QoraStateCodec\u003CUser>(\n  encode: (user) => user.toJson(),\n  decode: (json) => User.fromJson(json as Map\u003CString, dynamic>),\n);\n\n// Encoder\nfinal json = codec.encodeState(state); // Map\u003CString, dynamic>\n\n// Décoder\nfinal restored = codec.decodeState(json); // QoraState\u003CUser>\n","cache_storage.dart",[361,2202,2203,2222,2245,2290,2296,2300,2305,2331,2335,2341],{"__ignoreMap":359},[364,2204,2205,2207,2210,2212,2215,2217,2219],{"class":366,"line":367},[364,2206,408],{"class":407},[364,2208,2209],{"class":381}," codec ",[364,2211,728],{"class":370},[364,2213,2214],{"class":377}," QoraStateCodec",[364,2216,382],{"class":381},[364,2218,1009],{"class":377},[364,2220,2221],{"class":381},">(\n",[364,2223,2224,2227,2229,2232,2234,2236,2238,2241,2243],{"class":366,"line":397},[364,2225,2226],{"class":381},"  encode",[364,2228,797],{"class":370},[364,2230,2231],{"class":381}," (user) ",[364,2233,744],{"class":370},[364,2235,747],{"class":381},[364,2237,734],{"class":370},[364,2239,2240],{"class":737},"toJson",[364,2242,973],{"class":381},[364,2244,842],{"class":370},[364,2246,2247,2250,2252,2255,2257,2260,2262,2265,2268,2271,2274,2276,2279,2282,2285,2288],{"class":366,"line":404},[364,2248,2249],{"class":381},"  decode",[364,2251,797],{"class":370},[364,2253,2254],{"class":381}," (json) ",[364,2256,744],{"class":370},[364,2258,2259],{"class":377}," User",[364,2261,734],{"class":370},[364,2263,2264],{"class":737},"fromJson",[364,2266,2267],{"class":381},"(json ",[364,2269,2270],{"class":370},"as",[364,2272,2273],{"class":377}," Map",[364,2275,382],{"class":381},[364,2277,2278],{"class":377},"String",[364,2280,2281],{"class":381},", ",[364,2283,2284],{"class":377},"dynamic",[364,2286,2287],{"class":381},">)",[364,2289,842],{"class":370},[364,2291,2292,2294],{"class":366,"line":438},[364,2293,839],{"class":381},[364,2295,755],{"class":370},[364,2297,2298],{"class":366,"line":468},[364,2299,401],{"emptyLinePlaceholder":400},[364,2301,2302],{"class":366,"line":498},[364,2303,2304],{"class":760},"// Encoder\n",[364,2306,2307,2309,2312,2314,2317,2319,2322,2325,2328],{"class":366,"line":1706},[364,2308,408],{"class":407},[364,2310,2311],{"class":381}," json ",[364,2313,728],{"class":370},[364,2315,2316],{"class":381}," codec",[364,2318,734],{"class":370},[364,2320,2321],{"class":737},"encodeState",[364,2323,2324],{"class":381},"(state)",[364,2326,2327],{"class":370},";",[364,2329,2330],{"class":760}," // Map\u003CString, dynamic>\n",[364,2332,2333],{"class":366,"line":1726},[364,2334,401],{"emptyLinePlaceholder":400},[364,2336,2338],{"class":366,"line":2337},9,[364,2339,2340],{"class":760},"// Décoder\n",[364,2342,2344,2346,2349,2351,2353,2355,2358,2361,2363],{"class":366,"line":2343},10,[364,2345,408],{"class":407},[364,2347,2348],{"class":381}," restored ",[364,2350,728],{"class":370},[364,2352,2316],{"class":381},[364,2354,734],{"class":370},[364,2356,2357],{"class":737},"decodeState",[364,2359,2360],{"class":381},"(json)",[364,2362,2327],{"class":370},[364,2364,2365],{"class":760}," // QoraState\u003CUser>\n",[527,2367],{},[348,2369,2371,2372],{"id":2370},"enum-qorastatus","Enum ",[361,2373,2374],{},"QoraStatus",[700,2376,2377],{},"Un enum de statut simplifié pour les cas où la classe sealed complète n'est pas nécessaire :",[353,2379,2381],{"className":355,"code":2380,"filename":716,"language":358,"meta":359,"style":359},"state.status  // QoraStatus.initial | .loading | .success | .error\n\nstate.status.isLoading  // bool\nstate.status.isSuccess  // bool\nstate.status.isError    // bool\n",[361,2382,2383,2395,2399,2416,2431],{"__ignoreMap":359},[364,2384,2385,2387,2389,2392],{"class":366,"line":367},[364,2386,780],{"class":381},[364,2388,734],{"class":370},[364,2390,2391],{"class":381},"status  ",[364,2393,2394],{"class":760},"// QoraStatus.initial | .loading | .success | .error\n",[364,2396,2397],{"class":366,"line":397},[364,2398,401],{"emptyLinePlaceholder":400},[364,2400,2401,2403,2405,2408,2410,2413],{"class":366,"line":404},[364,2402,780],{"class":381},[364,2404,734],{"class":370},[364,2406,2407],{"class":381},"status",[364,2409,734],{"class":370},[364,2411,2412],{"class":381},"isLoading  ",[364,2414,2415],{"class":760},"// bool\n",[364,2417,2418,2420,2422,2424,2426,2429],{"class":366,"line":438},[364,2419,780],{"class":381},[364,2421,734],{"class":370},[364,2423,2407],{"class":381},[364,2425,734],{"class":370},[364,2427,2428],{"class":381},"isSuccess  ",[364,2430,2415],{"class":760},[364,2432,2433,2435,2437,2439,2441,2444],{"class":366,"line":468},[364,2434,780],{"class":381},[364,2436,734],{"class":370},[364,2438,2407],{"class":381},[364,2440,734],{"class":370},[364,2442,2443],{"class":381},"isError    ",[364,2445,2415],{"class":760},[2447,2448,2449],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":359,"searchDepth":397,"depth":397,"links":2451},[2452,2453,2460,2461,2465,2470,2473,2479,2481,2483],{"id":350,"depth":397,"text":351},{"id":531,"depth":397,"text":2454,"children":2455},"QoraState\u003CT> : Base",[2456,2457,2458,2459],{"id":539,"depth":404,"text":540},{"id":695,"depth":404,"text":698},{"id":764,"depth":404,"text":767},{"id":892,"depth":404,"text":895},{"id":986,"depth":397,"text":989},{"id":1057,"depth":397,"text":1060,"children":2462},[2463,2464],{"id":1066,"depth":404,"text":1067},{"id":1136,"depth":404,"text":1137},{"id":1293,"depth":397,"text":1296,"children":2466},[2467,2468,2469],{"id":1302,"depth":404,"text":1067},{"id":1347,"depth":404,"text":1348},{"id":1509,"depth":404,"text":1510},{"id":1535,"depth":397,"text":1538,"children":2471},[2472],{"id":1544,"depth":404,"text":1067},{"id":1735,"depth":397,"text":2474,"children":2475},"Extensions sur QoraState\u003CT>",[2476,2477,2478],{"id":1751,"depth":404,"text":1752},{"id":1811,"depth":404,"text":1812},{"id":1940,"depth":404,"text":1941},{"id":2062,"depth":397,"text":2480},"Extensions sur Stream\u003CQoraState\u003CT>>",{"id":2192,"depth":397,"text":2482},"Sérialisation : QoraStateCodec\u003CT>",{"id":2370,"depth":397,"text":2484},"Enum QoraStatus","Hiérarchie de classes sealed représentant les quatre états possibles d'une requête. Le pattern matching exhaustif est imposé à la compilation.","md",null,{},{"icon":65},{"title":211,"description":2485},"bQN45pKZXo7YsXo7ESDKZcgFGarQfC6E7d18DHC911k",[2493,2495],{"title":207,"path":208,"stem":209,"description":2494,"icon":60,"children":-1},"Clé de requête typée et immuable avec égalité structurelle. Supporte à la fois la syntaxe List brute et QoraKey.",{"title":215,"path":216,"stem":217,"description":2496,"icon":218,"children":-1},"Configuration par requête qui remplace les défauts de QoraClientConfig. Passer à fetchQuery ou watchQuery pour personnaliser le cache, les retries, la fraîcheur et le polling.",1794040409118]