[{"data":1,"prerenderedAt":1275},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcwa-api\u002Foverview":393,"\u002Fnuxt-module\u002Fcwa-api\u002Foverview-surround":1270},[4,14,36,69,144,376],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17,"children":18,"page":35},"Guides","\u002Fguides","2.guides",[19,23,27,31],{"title":20,"path":21,"stem":22},"Your First Layout","\u002Fguides\u002Fyour-first-layout","2.guides\u002F1.your-first-layout",{"title":24,"path":25,"stem":26},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","2.guides\u002F2.your-first-page-template",{"title":28,"path":29,"stem":30},"Your First Component","\u002Fguides\u002Fyour-first-component","2.guides\u002F3.your-first-component",{"title":32,"path":33,"stem":34},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","2.guides\u002F4.alternative-ui-variants",false,{"title":37,"path":38,"stem":39,"children":40,"page":35},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[41,45,49,53,57,61,65],{"title":42,"path":43,"stem":44},"How It All Works","\u002Fcore-concepts\u002Farchitecture","3.core-concepts\u002F1.architecture",{"title":46,"path":47,"stem":48},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","3.core-concepts\u002F2.the-data-model",{"title":50,"path":51,"stem":52},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","3.core-concepts\u002F3.layouts-and-pages",{"title":54,"path":55,"stem":56},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","3.core-concepts\u002F4.dynamic-pages",{"title":58,"path":59,"stem":60},"Components","\u002Fcore-concepts\u002Fcomponents","3.core-concepts\u002F5.components",{"title":62,"path":63,"stem":64},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","3.core-concepts\u002F6.draft-and-publish",{"title":66,"path":67,"stem":68},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","3.core-concepts\u002F7.admin-panel",{"title":70,"path":71,"stem":72,"children":73,"page":35},"Api","\u002Fapi","4.api",[74,78,120,124,128,132,136,140],{"title":75,"path":76,"stem":77},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F1.bundle-setup",{"title":58,"path":79,"stem":80,"children":81,"page":35},"\u002Fapi\u002Fcomponents","4.api\u002F2.components",[82,86,107],{"title":83,"path":84,"stem":85},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F2.components\u002F1.creating-components",{"title":87,"path":88,"stem":89,"children":90,"page":35},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F2.components\u002F2.annotations",[91,95,99,103],{"title":92,"path":93,"stem":94},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F2.components\u002F2.annotations\u002F1.publishable",{"title":96,"path":97,"stem":98},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F2.components\u002F2.annotations\u002F2.uploadable",{"title":100,"path":101,"stem":102},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F2.components\u002F2.annotations\u002F3.timestamped",{"title":104,"path":105,"stem":106},"Explicit Allow Only","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only","4.api\u002F2.components\u002F2.annotations\u002F4.explicit-allow-only",{"title":108,"path":109,"stem":110,"children":111,"page":35},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F2.components\u002F3.built-ins",[112,116],{"title":113,"path":114,"stem":115},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F2.components\u002F3.built-ins\u002F1.collection-component",{"title":117,"path":118,"stem":119},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F2.components\u002F3.built-ins\u002F2.form-component",{"title":121,"path":122,"stem":123},"Dynamic & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F3.dynamic-pages",{"title":125,"path":126,"stem":127},"Users & Security","\u002Fapi\u002Fusers-and-security","4.api\u002F4.users-and-security",{"title":129,"path":130,"stem":131},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F5.data-fixtures",{"title":133,"path":134,"stem":135},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F6.configuration",{"title":137,"path":138,"stem":139},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F7.console-commands",{"title":141,"path":142,"stem":143},"Debugging & Profiler","\u002Fapi\u002Fdebugging","4.api\u002F8.debugging",{"title":145,"path":146,"stem":147,"children":148,"page":35},"Nuxt Module","\u002Fnuxt-module","5.nuxt-module",[149,153,157,170,190,211,244,328,352,356],{"title":150,"path":151,"stem":152},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F1.module-setup",{"title":154,"path":155,"stem":156},"PWA & Offline","\u002Fnuxt-module\u002Fpwa","5.nuxt-module\u002F10.pwa",{"title":158,"path":159,"stem":160,"children":161,"page":35},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F2.configuration",[162,166],{"title":163,"path":164,"stem":165},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F2.configuration\u002F1.nuxt-config",{"title":167,"path":168,"stem":169},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F2.configuration\u002F2.site-config-and-seo",{"title":171,"path":172,"stem":173,"children":174,"page":35},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F3.building-your-ui",[175,179,183,186],{"title":176,"path":177,"stem":178},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F3.building-your-ui\u002F1.creating-layouts",{"title":180,"path":181,"stem":182},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F3.building-your-ui\u002F2.creating-page-templates",{"title":83,"path":184,"stem":185},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F3.building-your-ui\u002F3.creating-components",{"title":187,"path":188,"stem":189},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F3.building-your-ui\u002F4.cwa-cli",{"title":191,"path":192,"stem":193,"children":194,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[195,199,203,207],{"title":196,"path":197,"stem":198},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":200,"path":201,"stem":202},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":204,"path":205,"stem":206},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":208,"path":209,"stem":210},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":212,"path":213,"stem":214,"children":215,"page":35},"Cwa Api","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",[216,220,224,228,232,236,240],{"title":217,"path":218,"stem":219},"Overview","\u002Fnuxt-module\u002Fcwa-api\u002Foverview","5.nuxt-module\u002F5.cwa-api\u002F1.overview",{"title":221,"path":222,"stem":223},"Resources","\u002Fnuxt-module\u002Fcwa-api\u002Fresources","5.nuxt-module\u002F5.cwa-api\u002F2.resources",{"title":225,"path":226,"stem":227},"Resources Manager","\u002Fnuxt-module\u002Fcwa-api\u002Fresources-manager","5.nuxt-module\u002F5.cwa-api\u002F3.resources-manager",{"title":229,"path":230,"stem":231},"Auth","\u002Fnuxt-module\u002Fcwa-api\u002Fauth","5.nuxt-module\u002F5.cwa-api\u002F4.auth",{"title":233,"path":234,"stem":235},"Forms","\u002Fnuxt-module\u002Fcwa-api\u002Fforms","5.nuxt-module\u002F5.cwa-api\u002F5.forms",{"title":237,"path":238,"stem":239},"Admin","\u002Fnuxt-module\u002Fcwa-api\u002Fadmin","5.nuxt-module\u002F5.cwa-api\u002F6.admin",{"title":241,"path":242,"stem":243},"Site Config","\u002Fnuxt-module\u002Fcwa-api\u002Fsite-config","5.nuxt-module\u002F5.cwa-api\u002F7.site-config",{"title":245,"path":246,"stem":247,"children":248,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[249,257,294,311],{"title":250,"path":251,"stem":252,"children":253,"page":35},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F6.composables\u002F0.layout",[254],{"title":250,"path":255,"stem":256},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F6.composables\u002F0.layout\u002F1.use-cwa-layout",{"title":258,"path":259,"stem":260,"children":261,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[262,266,270,274,278,282,286,290],{"title":263,"path":264,"stem":265},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F6.composables\u002F1.component\u002F0.use-cwa-component",{"title":267,"path":268,"stem":269},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":271,"path":272,"stem":273},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":275,"path":276,"stem":277},"File Field","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-file-field","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-file-field",{"title":279,"path":280,"stem":281},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":283,"path":284,"stem":285},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":287,"path":288,"stem":289},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":291,"path":292,"stem":293},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":295,"path":296,"stem":297,"children":298,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[299,303,307],{"title":300,"path":301,"stem":302},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":304,"path":305,"stem":306},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F2.use-cwa-resource-model",{"title":308,"path":309,"stem":310},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F3.use-cwa-resource-upload",{"title":312,"path":313,"stem":314,"children":315,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[316,320,324],{"title":317,"path":318,"stem":319},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":321,"path":322,"stem":323},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":325,"path":326,"stem":327},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":329,"path":330,"stem":331,"children":332,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[333,337,341,345,349],{"title":334,"path":335,"stem":336},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":338,"path":339,"stem":340},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":342,"path":343,"stem":344},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":346,"path":347,"stem":348},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":233,"path":350,"stem":351},"\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":353,"path":354,"stem":355},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":357,"path":358,"stem":359,"children":360,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[361,364,368,372],{"title":217,"path":362,"stem":363},"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":365,"path":366,"stem":367},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":369,"path":370,"stem":371},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":373,"path":374,"stem":375},"Styling","\u002Fnuxt-module\u002Fcwa-layer\u002Fstyling","5.nuxt-module\u002F9.cwa-layer\u002F4.styling",{"title":377,"path":378,"stem":379,"children":380,"page":35},"Deployment","\u002Fdeployment","6.deployment",[381,385,389],{"title":382,"path":383,"stem":384},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":386,"path":387,"stem":388},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":390,"path":391,"stem":392},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":394,"title":217,"badge":395,"body":398,"description":1264,"extension":1265,"links":1266,"meta":1267,"navigation":470,"path":218,"seo":1268,"stem":219,"__hash__":1269},"docs\u002F5.nuxt-module\u002F5.cwa-api\u002F1.overview.md",{"label":396,"color":397},"Draft","amber",{"type":399,"value":400,"toc":1255},"minimark",[401,424,499,505,627,630,638,641,904,906,910,915,939,1047,1051,1145,1175,1179,1251],[402,403,404,408,409,412,413,416,417,420,421,423],"p",{},[405,406,407],"code",{},"useCwa()"," returns the singleton ",[405,410,411],{},"Cwa"," instance injected by the module plugin. In templates you can use ",[405,414,415],{},"$cwa"," directly. In ",[405,418,419],{},"\u003Cscript setup>"," and composables, call ",[405,422,407],{},".",[425,426,431],"pre",{"className":427,"code":428,"language":429,"meta":430,"style":430},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","\u002F\u002F In \u003Cscript setup>\nconst cwa = useCwa()\n\n\u002F\u002F In templates\n$cwa.auth.signedIn.value\n","ts","",[405,432,433,442,465,472,478],{"__ignoreMap":430},[434,435,438],"span",{"class":436,"line":437},"line",1,[434,439,441],{"class":440},"sTBSN","\u002F\u002F In \u003Cscript setup>\n",[434,443,445,449,453,457,461],{"class":436,"line":444},2,[434,446,448],{"class":447},"swB56","const",[434,450,452],{"class":451},"sc2zw"," cwa",[434,454,456],{"class":455},"sVlFx"," =",[434,458,460],{"class":459},"sKpYG"," useCwa",[434,462,464],{"class":463},"sPB8G","()\n",[434,466,468],{"class":436,"line":467},3,[434,469,471],{"emptyLinePlaceholder":470},true,"\n",[434,473,475],{"class":436,"line":474},4,[434,476,477],{"class":440},"\u002F\u002F In templates\n",[434,479,481,483,486,489,491,494,496],{"class":436,"line":480},5,[434,482,415],{"class":463},[434,484,423],{"class":485},"sOvfz",[434,487,488],{"class":463},"auth",[434,490,423],{"class":485},[434,492,493],{"class":463},"signedIn",[434,495,423],{"class":485},[434,497,498],{"class":463},"value\n",[402,500,501,502,504],{},"The ",[405,503,411],{}," class has six public sub-services, each documented on its own page:",[506,507,508,524],"table",{},[509,510,511],"thead",{},[512,513,514,518,521],"tr",{},[515,516,517],"th",{},"Property",[515,519,520],{},"Class",[515,522,523],{},"Purpose",[525,526,527,545,562,578,594,610],"tbody",{},[512,528,529,538,542],{},[530,531,532],"td",{},[533,534,535],"a",{"href":222},[405,536,537],{},"cwa.resources",[530,539,540],{},[405,541,221],{},[530,543,544],{},"Read-only view of fetched resource state",[512,546,547,554,559],{},[530,548,549],{},[533,550,551],{"href":226},[405,552,553],{},"cwa.resourcesManager",[530,555,556],{},[405,557,558],{},"ResourcesManager",[530,560,561],{},"CRUD operations on resources",[512,563,564,571,575],{},[530,565,566],{},[533,567,568],{"href":230},[405,569,570],{},"cwa.auth",[530,572,573],{},[405,574,229],{},[530,576,577],{},"Authentication state and actions",[512,579,580,587,591],{},[530,581,582],{},[533,583,584],{"href":234},[405,585,586],{},"cwa.forms",[530,588,589],{},[405,590,233],{},[530,592,593],{},"Form view state and error access",[512,595,596,603,607],{},[530,597,598],{},[533,599,600],{"href":238},[405,601,602],{},"cwa.admin",[530,604,605],{},[405,606,237],{},[530,608,609],{},"Edit mode, component stack, admin panel",[512,611,612,619,624],{},[530,613,614],{},[533,615,616],{"href":242},[405,617,618],{},"cwa.siteConfig",[530,620,621],{},[405,622,623],{},"SiteConfig",[530,625,626],{},"Site-wide settings from the API",[628,629],"hr",{},[631,632,634,635],"h2",{"id":633},"top-level-methods-on-cwa","Top-Level Methods on ",[405,636,637],{},"cwa",[402,639,640],{},"These are lower-level fetch primitives. Most application code uses the composables instead.",[425,642,644],{"className":427,"code":643,"language":429,"meta":430,"style":430},"\u002F\u002F Fetch a specific resource by IRI\ncwa.fetchResource({ path: '\u002Fcomponent\u002Ftitles\u002F018e-...', isPrimary: false })\n\n\u002F\u002F Fetch the route manifest for a given Vue Router route\ncwa.fetchRoute(route)\n\n\u002F\u002F Generic fetch (used internally)\ncwa.fetch(event)\n\n\u002F\u002F Cancel the current primary page fetch\ncwa.clearPrimaryFetch()\n\n\u002F\u002F Get the API Platform documentation (for component metadata)\nawait cwa.getApiDocumentation()\nawait cwa.getComponentMetadata(refresh, includePosition)\n\n\u002F\u002F Access the resolved API URL\ncwa.apiUrlBase   \u002F\u002F string\n\n\u002F\u002F Access the module's nuxt.config registrations\ncwa.resourcesConfig    \u002F\u002F the cwa.resources: {} config object\ncwa.layoutsConfig      \u002F\u002F the cwa.layouts: {} config object\ncwa.pagesConfig        \u002F\u002F the cwa.pages: {} config object\ncwa.pageDataConfig     \u002F\u002F the cwa.pageData: {} config object\n",[405,645,646,651,702,706,711,723,728,734,747,752,758,770,775,781,797,817,822,828,841,846,852,865,878,891],{"__ignoreMap":430},[434,647,648],{"class":436,"line":437},[434,649,650],{"class":440},"\u002F\u002F Fetch a specific resource by IRI\n",[434,652,653,655,657,660,663,666,670,673,677,681,684,687,690,692,696,699],{"class":436,"line":444},[434,654,637],{"class":463},[434,656,423],{"class":485},[434,658,659],{"class":459},"fetchResource",[434,661,662],{"class":463},"(",[434,664,665],{"class":485},"{",[434,667,669],{"class":668},"sDHlG"," path",[434,671,672],{"class":485},":",[434,674,676],{"class":675},"seSrl"," '",[434,678,680],{"class":679},"sLL54","\u002Fcomponent\u002Ftitles\u002F018e-...",[434,682,683],{"class":675},"'",[434,685,686],{"class":485},",",[434,688,689],{"class":668}," isPrimary",[434,691,672],{"class":485},[434,693,695],{"class":694},"swWMF"," false",[434,697,698],{"class":485}," }",[434,700,701],{"class":463},")\n",[434,703,704],{"class":436,"line":467},[434,705,471],{"emptyLinePlaceholder":470},[434,707,708],{"class":436,"line":474},[434,709,710],{"class":440},"\u002F\u002F Fetch the route manifest for a given Vue Router route\n",[434,712,713,715,717,720],{"class":436,"line":480},[434,714,637],{"class":463},[434,716,423],{"class":485},[434,718,719],{"class":459},"fetchRoute",[434,721,722],{"class":463},"(route)\n",[434,724,726],{"class":436,"line":725},6,[434,727,471],{"emptyLinePlaceholder":470},[434,729,731],{"class":436,"line":730},7,[434,732,733],{"class":440},"\u002F\u002F Generic fetch (used internally)\n",[434,735,737,739,741,744],{"class":436,"line":736},8,[434,738,637],{"class":463},[434,740,423],{"class":485},[434,742,743],{"class":459},"fetch",[434,745,746],{"class":463},"(event)\n",[434,748,750],{"class":436,"line":749},9,[434,751,471],{"emptyLinePlaceholder":470},[434,753,755],{"class":436,"line":754},10,[434,756,757],{"class":440},"\u002F\u002F Cancel the current primary page fetch\n",[434,759,761,763,765,768],{"class":436,"line":760},11,[434,762,637],{"class":463},[434,764,423],{"class":485},[434,766,767],{"class":459},"clearPrimaryFetch",[434,769,464],{"class":463},[434,771,773],{"class":436,"line":772},12,[434,774,471],{"emptyLinePlaceholder":470},[434,776,778],{"class":436,"line":777},13,[434,779,780],{"class":440},"\u002F\u002F Get the API Platform documentation (for component metadata)\n",[434,782,784,788,790,792,795],{"class":436,"line":783},14,[434,785,787],{"class":786},"sm4w6","await",[434,789,452],{"class":463},[434,791,423],{"class":485},[434,793,794],{"class":459},"getApiDocumentation",[434,796,464],{"class":463},[434,798,800,802,804,806,809,812,814],{"class":436,"line":799},15,[434,801,787],{"class":786},[434,803,452],{"class":463},[434,805,423],{"class":485},[434,807,808],{"class":459},"getComponentMetadata",[434,810,811],{"class":463},"(refresh",[434,813,686],{"class":485},[434,815,816],{"class":463}," includePosition)\n",[434,818,820],{"class":436,"line":819},16,[434,821,471],{"emptyLinePlaceholder":470},[434,823,825],{"class":436,"line":824},17,[434,826,827],{"class":440},"\u002F\u002F Access the resolved API URL\n",[434,829,831,833,835,838],{"class":436,"line":830},18,[434,832,637],{"class":463},[434,834,423],{"class":485},[434,836,837],{"class":463},"apiUrlBase   ",[434,839,840],{"class":440},"\u002F\u002F string\n",[434,842,844],{"class":436,"line":843},19,[434,845,471],{"emptyLinePlaceholder":470},[434,847,849],{"class":436,"line":848},20,[434,850,851],{"class":440},"\u002F\u002F Access the module's nuxt.config registrations\n",[434,853,855,857,859,862],{"class":436,"line":854},21,[434,856,637],{"class":463},[434,858,423],{"class":485},[434,860,861],{"class":463},"resourcesConfig    ",[434,863,864],{"class":440},"\u002F\u002F the cwa.resources: {} config object\n",[434,866,868,870,872,875],{"class":436,"line":867},22,[434,869,637],{"class":463},[434,871,423],{"class":485},[434,873,874],{"class":463},"layoutsConfig      ",[434,876,877],{"class":440},"\u002F\u002F the cwa.layouts: {} config object\n",[434,879,881,883,885,888],{"class":436,"line":880},23,[434,882,637],{"class":463},[434,884,423],{"class":485},[434,886,887],{"class":463},"pagesConfig        ",[434,889,890],{"class":440},"\u002F\u002F the cwa.pages: {} config object\n",[434,892,894,896,898,901],{"class":436,"line":893},24,[434,895,637],{"class":463},[434,897,423],{"class":485},[434,899,900],{"class":463},"pageDataConfig     ",[434,902,903],{"class":440},"\u002F\u002F the cwa.pageData: {} config object\n",[628,905],{},[631,907,909],{"id":908},"common-patterns","Common Patterns",[911,912,914],"h3",{"id":913},"auth-conditional-rendering","Auth-conditional rendering",[402,916,917,919,920,923,924,927,928,931,932,935,936,423],{},[405,918,493],{}," is SSR-safe — it is derived from the ",[405,921,922],{},"cwa_auth"," cookie, which is available during server rendering. The user object is not: ",[405,925,926],{},"cwa.auth.user",", ",[405,929,930],{},"cwa.auth.roles"," and ",[405,933,934],{},"cwa.auth.isAdmin"," are only populated after client-side init, so wrap anything reading those in ",[405,937,938],{},"\u003CClientOnly>",[425,940,944],{"className":941,"code":942,"language":943,"meta":430,"style":430},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003CUserMenu v-if=\"$cwa.auth.signedIn.value\" \u002F>\n\u003CNuxtLink v-else to=\"\u002Flogin\">Sign in\u003C\u002FNuxtLink>\n\n\u003CClientOnly>\n    \u003CAdminBar v-if=\"$cwa.auth.isAdmin.value\" :name=\"$cwa.auth.user?.username\" \u002F>\n\u003C\u002FClientOnly>\n","vue",[405,945,946,984,1021,1025,1034,1039],{"__ignoreMap":430},[434,947,948,951,955,958,961,964,966,968,970,972,974,976,979,981],{"class":436,"line":437},[434,949,950],{"class":485},"\u003C",[434,952,954],{"class":953},"s-h7I","UserMenu",[434,956,957],{"class":786}," v-if",[434,959,960],{"class":485},"=",[434,962,963],{"class":675},"\"",[434,965,415],{"class":463},[434,967,423],{"class":485},[434,969,488],{"class":463},[434,971,423],{"class":485},[434,973,493],{"class":463},[434,975,423],{"class":485},[434,977,978],{"class":463},"value",[434,980,963],{"class":675},[434,982,983],{"class":485}," \u002F>\n",[434,985,986,988,991,994,998,1000,1002,1005,1007,1010,1013,1016,1018],{"class":436,"line":444},[434,987,950],{"class":485},[434,989,990],{"class":953},"NuxtLink",[434,992,993],{"class":786}," v-else",[434,995,997],{"class":996},"sGtlX"," to",[434,999,960],{"class":485},[434,1001,963],{"class":675},[434,1003,1004],{"class":679},"\u002Flogin",[434,1006,963],{"class":675},[434,1008,1009],{"class":485},">",[434,1011,1012],{"class":463},"Sign in",[434,1014,1015],{"class":485},"\u003C\u002F",[434,1017,990],{"class":953},[434,1019,1020],{"class":485},">\n",[434,1022,1023],{"class":436,"line":467},[434,1024,471],{"emptyLinePlaceholder":470},[434,1026,1027,1029,1032],{"class":436,"line":474},[434,1028,950],{"class":485},[434,1030,1031],{"class":953},"ClientOnly",[434,1033,1020],{"class":485},[434,1035,1036],{"class":436,"line":480},[434,1037,1038],{"class":463},"    \u003CAdminBar v-if=\"$cwa.auth.isAdmin.value\" :name=\"$cwa.auth.user?.username\" \u002F>\n",[434,1040,1041,1043,1045],{"class":436,"line":725},[434,1042,1015],{"class":485},[434,1044,1031],{"class":953},[434,1046,1020],{"class":485},[911,1048,1050],{"id":1049},"accessing-the-current-page-title","Accessing the current page title",[425,1052,1054],{"className":427,"code":1053,"language":429,"meta":430,"style":430},"const pageTitle = computed(() =>\n    cwa.resources.pageData?.value?.data?.title\n    ?? cwa.resources.page?.value?.data?.title\n    ?? ''\n)\n",[405,1055,1056,1076,1106,1134,1141],{"__ignoreMap":430},[434,1057,1058,1060,1063,1065,1068,1070,1073],{"class":436,"line":437},[434,1059,448],{"class":447},[434,1061,1062],{"class":451}," pageTitle",[434,1064,456],{"class":455},[434,1066,1067],{"class":459}," computed",[434,1069,662],{"class":463},[434,1071,1072],{"class":485},"()",[434,1074,1075],{"class":447}," =>\n",[434,1077,1078,1081,1083,1086,1088,1091,1094,1096,1098,1101,1103],{"class":436,"line":444},[434,1079,1080],{"class":463},"    cwa",[434,1082,423],{"class":485},[434,1084,1085],{"class":463},"resources",[434,1087,423],{"class":485},[434,1089,1090],{"class":463},"pageData",[434,1092,1093],{"class":485},"?.",[434,1095,978],{"class":463},[434,1097,1093],{"class":485},[434,1099,1100],{"class":463},"data",[434,1102,1093],{"class":485},[434,1104,1105],{"class":463},"title\n",[434,1107,1108,1111,1113,1115,1117,1119,1122,1124,1126,1128,1130,1132],{"class":436,"line":467},[434,1109,1110],{"class":455},"    ??",[434,1112,452],{"class":463},[434,1114,423],{"class":485},[434,1116,1085],{"class":463},[434,1118,423],{"class":485},[434,1120,1121],{"class":463},"page",[434,1123,1093],{"class":485},[434,1125,978],{"class":463},[434,1127,1093],{"class":485},[434,1129,1100],{"class":463},[434,1131,1093],{"class":485},[434,1133,1105],{"class":463},[434,1135,1136,1138],{"class":436,"line":474},[434,1137,1110],{"class":455},[434,1139,1140],{"class":675}," ''\n",[434,1142,1143],{"class":436,"line":480},[434,1144,701],{"class":463},[1146,1147,1150],"callout",{"color":1148,"icon":1149},"warning","i-heroicons-exclamation-triangle",[402,1151,1152,927,1154,931,1156,1159,1160,1163,1164,1167,1168,1171,1172,423],{},[405,1153,1121],{},[405,1155,1090],{},[405,1157,1158],{},"displayPage"," are ",[405,1161,1162],{},"ComputedRef | undefined"," — the getter itself returns ",[405,1165,1166],{},"undefined"," while the corresponding IRI is unresolved. Optional-chain the getter (",[405,1169,1170],{},"cwa.resources.page?.value","), not just ",[405,1173,1174],{},".value",[911,1176,1178],{"id":1177},"checking-load-state-before-rendering","Checking load state before rendering",[425,1180,1182],{"className":427,"code":1181,"language":429,"meta":430,"style":430},"const isReady = computed(() =>\n    !cwa.resources.isLoading.value && !!cwa.resources.page?.value?.data\n)\n",[405,1183,1184,1201,1247],{"__ignoreMap":430},[434,1185,1186,1188,1191,1193,1195,1197,1199],{"class":436,"line":437},[434,1187,448],{"class":447},[434,1189,1190],{"class":451}," isReady",[434,1192,456],{"class":455},[434,1194,1067],{"class":459},[434,1196,662],{"class":463},[434,1198,1072],{"class":485},[434,1200,1075],{"class":447},[434,1202,1203,1206,1208,1210,1212,1214,1217,1219,1222,1225,1228,1230,1232,1234,1236,1238,1240,1242,1244],{"class":436,"line":444},[434,1204,1205],{"class":455},"    !",[434,1207,637],{"class":463},[434,1209,423],{"class":485},[434,1211,1085],{"class":463},[434,1213,423],{"class":485},[434,1215,1216],{"class":463},"isLoading",[434,1218,423],{"class":485},[434,1220,1221],{"class":463},"value ",[434,1223,1224],{"class":455},"&&",[434,1226,1227],{"class":455}," !!",[434,1229,637],{"class":463},[434,1231,423],{"class":485},[434,1233,1085],{"class":463},[434,1235,423],{"class":485},[434,1237,1121],{"class":463},[434,1239,1093],{"class":485},[434,1241,978],{"class":463},[434,1243,1093],{"class":485},[434,1245,1246],{"class":463},"data\n",[434,1248,1249],{"class":436,"line":467},[434,1250,701],{"class":463},[1252,1253,1254],"style",{},"html pre.shiki code .sTBSN, html code.shiki .sTBSN{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sc2zw, html code.shiki .sc2zw{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#BABED8}html pre.shiki code .sVlFx, html code.shiki .sVlFx{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#89DDFF}html pre.shiki code .sKpYG, html code.shiki .sKpYG{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .sPB8G, html code.shiki .sPB8G{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--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 .sDHlG, html code.shiki .sDHlG{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#F07178}html pre.shiki code .seSrl, html code.shiki .seSrl{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .sLL54, html code.shiki .sLL54{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .swWMF, html code.shiki .swWMF{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FF9CAC}html pre.shiki code .sm4w6, html code.shiki .sm4w6{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#F97583;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s-h7I, html code.shiki .s-h7I{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#F07178}html pre.shiki code .sGtlX, html code.shiki .sGtlX{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#C792EA}",{"title":430,"searchDepth":444,"depth":444,"links":1256},[1257,1259],{"id":633,"depth":444,"text":1258},"Top-Level Methods on cwa",{"id":908,"depth":444,"text":909,"children":1260},[1261,1262,1263],{"id":913,"depth":467,"text":914},{"id":1049,"depth":467,"text":1050},{"id":1177,"depth":467,"text":1178},"The Cwa class — the central access point for resources, auth, forms, admin, and site config.","md",null,{},{"title":217,"description":1264},"SZgQvOYeVbtWOtcZOmdZ5Q_vga2DNJlbaGcD9D2s61s",[1271,1273],{"title":208,"path":209,"stem":210,"description":1272,"children":-1},"A minimal flex-column layout shell used as a fallback when no layout component is resolved.",{"title":221,"path":222,"stem":223,"description":1274,"children":-1},"The read-only store view — page, pageData, layout, arbitrary resource lookup, and loading state.",1786542479836]