[{"data":1,"prerenderedAt":1333},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-collection":604,"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-collection-surround":1328},[4,24,67,93,236,533],{"title":5,"path":6,"stem":7,"children":8,"collapsed":23},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":16,"path":17,"stem":18},"Key Ideas","\u002Fgetting-started\u002Fkey-ideas","1.getting-started\u002F3.key-ideas",{"title":20,"path":21,"stem":22},"Releases","\u002Fgetting-started\u002Freleases","1.getting-started\u002F4.releases",true,{"title":25,"path":26,"stem":27,"children":28,"collapsed":23},"Core Concepts","\u002Fcore-concepts","2.core-concepts\u002F0.index",[29,31,35,39,43,47,51,55,59,63],{"title":30,"path":26,"stem":27},"Overview",{"title":32,"path":33,"stem":34},"How It All Works","\u002Fcore-concepts\u002Farchitecture","2.core-concepts\u002F1.architecture",{"title":36,"path":37,"stem":38},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","2.core-concepts\u002F2.the-data-model",{"title":40,"path":41,"stem":42},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","2.core-concepts\u002F3.layouts-and-pages",{"title":44,"path":45,"stem":46},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","2.core-concepts\u002F4.dynamic-pages",{"title":48,"path":49,"stem":50},"Components","\u002Fcore-concepts\u002Fcomponents","2.core-concepts\u002F5.components",{"title":52,"path":53,"stem":54},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","2.core-concepts\u002F6.draft-and-publish",{"title":56,"path":57,"stem":58},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","2.core-concepts\u002F7.admin-panel",{"title":60,"path":61,"stem":62},"Caching","\u002Fcore-concepts\u002Fcaching","2.core-concepts\u002F8.caching",{"title":64,"path":65,"stem":66},"Glossary","\u002Fcore-concepts\u002Fglossary","2.core-concepts\u002F9.glossary",{"title":68,"path":69,"stem":70,"children":71,"collapsed":23},"Guides","\u002Fguides","3.guides\u002F0.index",[72,73,77,81,85,89],{"title":30,"path":69,"stem":70},{"title":74,"path":75,"stem":76},"Your First Layout","\u002Fguides\u002Fyour-first-layout","3.guides\u002F1.your-first-layout",{"title":78,"path":79,"stem":80},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","3.guides\u002F2.your-first-page-template",{"title":82,"path":83,"stem":84},"Your First Component","\u002Fguides\u002Fyour-first-component","3.guides\u002F3.your-first-component",{"title":86,"path":87,"stem":88},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","3.guides\u002F4.alternative-ui-variants",{"title":90,"path":91,"stem":92},"Your First Dynamic Page","\u002Fguides\u002Fyour-first-dynamic-page","3.guides\u002F5.your-first-dynamic-page",{"title":94,"path":95,"stem":96,"children":97,"collapsed":23},"API Bundle (Back-End)","\u002Fapi","4.api\u002F0.index",[98,99,103,107,129,175,179,183,212,216,220,224,228,232],{"title":30,"path":95,"stem":96},{"title":100,"path":101,"stem":102},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F02.bundle-setup",{"title":104,"path":105,"stem":106},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F03.configuration",{"title":108,"path":109,"stem":110,"children":111,"page":128},"Users","\u002Fapi\u002Fusers","4.api\u002F04.users",[112,116,120,124],{"title":113,"path":114,"stem":115},"Authentication","\u002Fapi\u002Fusers\u002Fauthentication","4.api\u002F04.users\u002F1.authentication",{"title":117,"path":118,"stem":119},"User Emails","\u002Fapi\u002Fusers\u002Fuser-emails","4.api\u002F04.users\u002F2.user-emails",{"title":121,"path":122,"stem":123},"Access Control","\u002Fapi\u002Fusers\u002Faccess-control","4.api\u002F04.users\u002F3.access-control",{"title":125,"path":126,"stem":127},"Sites with Non-Admin Users","\u002Fapi\u002Fusers\u002Fnon-admin-users","4.api\u002F04.users\u002F4.non-admin-users",false,{"title":48,"path":130,"stem":131,"children":132,"page":128},"\u002Fapi\u002Fcomponents","4.api\u002F05.components",[133,137,158,171],{"title":134,"path":135,"stem":136},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F05.components\u002F1.creating-components",{"title":138,"path":139,"stem":140,"children":141,"page":128},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F05.components\u002F2.annotations",[142,146,150,154],{"title":143,"path":144,"stem":145},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F05.components\u002F2.annotations\u002F1.publishable",{"title":147,"path":148,"stem":149},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F05.components\u002F2.annotations\u002F2.uploadable",{"title":151,"path":152,"stem":153},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F05.components\u002F2.annotations\u002F3.timestamped",{"title":155,"path":156,"stem":157},"Explicit Allow Only","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only","4.api\u002F05.components\u002F2.annotations\u002F4.explicit-allow-only",{"title":159,"path":160,"stem":161,"children":162,"page":128},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F05.components\u002F3.built-ins",[163,167],{"title":164,"path":165,"stem":166},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F05.components\u002F3.built-ins\u002F1.collection-component",{"title":168,"path":169,"stem":170},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F05.components\u002F3.built-ins\u002F2.form-component",{"title":172,"path":173,"stem":174},"Groups & Positions","\u002Fapi\u002Fcomponents\u002Fcomponent-groups","4.api\u002F05.components\u002F4.component-groups",{"title":176,"path":177,"stem":178},"Page Data & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F06.dynamic-pages",{"title":180,"path":181,"stem":182},"Routes","\u002Fapi\u002Froutes","4.api\u002F07.routes",{"title":184,"path":185,"stem":186,"children":187,"page":128},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F08.data-fixtures",[188,192,196,200,204,208],{"title":189,"path":190,"stem":191},"Getting Started with Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgetting-started","4.api\u002F08.data-fixtures\u002F1.getting-started",{"title":193,"path":194,"stem":195},"Writing a Scaffold","\u002Fapi\u002Fdata-fixtures\u002Fwriting-a-scaffold","4.api\u002F08.data-fixtures\u002F2.writing-a-scaffold",{"title":197,"path":198,"stem":199},"Builder Reference","\u002Fapi\u002Fdata-fixtures\u002Fbuilder-reference","4.api\u002F08.data-fixtures\u002F3.builder-reference",{"title":201,"path":202,"stem":203},"Seeding Content","\u002Fapi\u002Fdata-fixtures\u002Fseeding-content","4.api\u002F08.data-fixtures\u002F4.seeding-content",{"title":205,"path":206,"stem":207},"Appending & Multiple Scaffolds","\u002Fapi\u002Fdata-fixtures\u002Fappending","4.api\u002F08.data-fixtures\u002F5.appending",{"title":209,"path":210,"stem":211},"Generating Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgenerating-fixtures","4.api\u002F08.data-fixtures\u002F6.generating-fixtures",{"title":213,"path":214,"stem":215},"Real-Time (Mercure)","\u002Fapi\u002Freal-time","4.api\u002F09.real-time",{"title":217,"path":218,"stem":219},"Versions & Conflicts","\u002Fapi\u002Fversions-and-conflicts","4.api\u002F09.versions-and-conflicts",{"title":221,"path":222,"stem":223},"HTTP Caching","\u002Fapi\u002Fhttp-caching","4.api\u002F10.http-caching",{"title":225,"path":226,"stem":227},"Orphaned Data","\u002Fapi\u002Forphaned-data","4.api\u002F11.orphaned-data",{"title":229,"path":230,"stem":231},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F12.console-commands",{"title":233,"path":234,"stem":235},"Debugging & Errors","\u002Fapi\u002Fdebugging","4.api\u002F13.debugging",{"title":237,"path":238,"stem":239,"children":240,"collapsed":23},"Nuxt Module (Front-End)","\u002Fnuxt-module","5.nuxt-module\u002F0.index",[241,242,246,259,279,308,329,460,494,497,525,529],{"title":30,"path":238,"stem":239},{"title":243,"path":244,"stem":245},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F01.module-setup",{"title":247,"path":248,"stem":249,"children":250,"page":128},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F02.configuration",[251,255],{"title":252,"path":253,"stem":254},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F02.configuration\u002F1.nuxt-config",{"title":256,"path":257,"stem":258},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F02.configuration\u002F2.site-config-and-seo",{"title":260,"path":261,"stem":262,"children":263,"page":128},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F03.building-your-ui",[264,268,272,275],{"title":265,"path":266,"stem":267},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F03.building-your-ui\u002F1.creating-layouts",{"title":269,"path":270,"stem":271},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F03.building-your-ui\u002F2.creating-page-templates",{"title":48,"path":273,"stem":274},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F03.building-your-ui\u002F3.creating-components",{"title":276,"path":277,"stem":278},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F03.building-your-ui\u002F4.cwa-cli",{"title":280,"path":281,"stem":282,"children":283,"page":128},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F04.component-helpers",[284,288,292,296,300,304],{"title":285,"path":286,"stem":287},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F04.component-helpers\u002F1.images-and-uploads",{"title":289,"path":290,"stem":291},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F04.component-helpers\u002F2.collections-and-pagination",{"title":293,"path":294,"stem":295},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F04.component-helpers\u002F3.html-content",{"title":297,"path":298,"stem":299},"Rich-Text Editor","\u002Fnuxt-module\u002Fcomponent-helpers\u002Frich-text-editor","5.nuxt-module\u002F04.component-helpers\u002F4.rich-text-editor",{"title":301,"path":302,"stem":303},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F04.component-helpers\u002F5.real-time-updates",{"title":305,"path":306,"stem":307},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F04.component-helpers\u002F6.forms",{"title":309,"path":310,"stem":311,"children":312,"page":128},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F05.cwa-components",[313,317,321,325],{"title":314,"path":315,"stem":316},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F05.cwa-components\u002F1.cwa-component-group",{"title":318,"path":319,"stem":320},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F05.cwa-components\u002F2.cwa-page",{"title":322,"path":323,"stem":324},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F05.cwa-components\u002F3.cwa-link",{"title":326,"path":327,"stem":328},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F05.cwa-components\u002F5.cwa-default-layout",{"title":330,"path":331,"stem":332,"children":333,"page":128},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F06.composables",[334,337,345,370,390,415,435],{"title":30,"path":335,"stem":336},"\u002Fnuxt-module\u002Fcomposables\u002Foverview","5.nuxt-module\u002F06.composables\u002F0.overview",{"title":338,"path":339,"stem":340,"children":341,"page":128},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F06.composables\u002F1.layout",[342],{"title":338,"path":343,"stem":344},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F06.composables\u002F1.layout\u002F1.use-cwa-layout",{"title":346,"path":347,"stem":348,"children":349,"page":128},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F06.composables\u002F2.component",[350,354,358,362,366],{"title":351,"path":352,"stem":353},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F06.composables\u002F2.component\u002F1.use-cwa-component",{"title":355,"path":356,"stem":357},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F2.use-cwa-resource",{"title":359,"path":360,"stem":361},"File Field","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-file-field","5.nuxt-module\u002F06.composables\u002F2.component\u002F3.use-cwa-file-field",{"title":363,"path":364,"stem":365},"Collection Pagination","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-pagination","5.nuxt-module\u002F06.composables\u002F2.component\u002F4.use-cwa-collection-pagination",{"title":367,"path":368,"stem":369},"Collection Resource (deprecated)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F9.use-cwa-collection-resource",{"title":371,"path":372,"stem":373,"children":374,"page":128},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fform","5.nuxt-module\u002F06.composables\u002F3.form",[375,378,382,386],{"title":371,"path":376,"stem":377},"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form","5.nuxt-module\u002F06.composables\u002F3.form\u002F1.use-cwa-form",{"title":379,"path":380,"stem":381},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-input","5.nuxt-module\u002F06.composables\u002F3.form\u002F2.use-cwa-form-input",{"title":383,"path":384,"stem":385},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F06.composables\u002F3.form\u002F3.use-cwa-form-repeated",{"title":387,"path":388,"stem":389},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-collection","5.nuxt-module\u002F06.composables\u002F3.form\u002F4.use-cwa-form-collection",{"title":391,"path":392,"stem":393,"children":394,"page":128},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F06.composables\u002F4.admin-manager",[395,399,403,407,411],{"title":396,"path":397,"stem":398},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":400,"path":401,"stem":402},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F2.use-cwa-resource-model",{"title":404,"path":405,"stem":406},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F3.use-cwa-resource-upload",{"title":408,"path":409,"stem":410},"Remote Changes","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fon-remote-change","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F4.on-remote-change",{"title":412,"path":413,"stem":414},"Real-Time Events","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-realtime","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F5.use-cwa-realtime",{"title":416,"path":417,"stem":418,"children":419,"page":128},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F06.composables\u002F5.utilities",[420,424,428,432],{"title":421,"path":422,"stem":423},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F1.use-cwa-resource-endpoint",{"title":425,"path":426,"stem":427},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F2.use-query-bound-model",{"title":429,"path":430,"stem":431},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F3.use-cwa-resource-route",{"title":293,"path":433,"stem":434},"\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-html-content","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F4.use-html-content",{"title":436,"path":437,"stem":438,"children":439,"page":128},"Auth","\u002Fnuxt-module\u002Fcomposables\u002Fauth","5.nuxt-module\u002F06.composables\u002F6.auth",[440,444,448,452,456],{"title":441,"path":442,"stem":443},"Login","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-login","5.nuxt-module\u002F06.composables\u002F6.auth\u002F1.use-login",{"title":445,"path":446,"stem":447},"Forgot Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-forgot-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F2.use-forgot-password",{"title":449,"path":450,"stem":451},"Reset Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-reset-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F3.use-reset-password",{"title":453,"path":454,"stem":455},"Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F4.use-verify-email",{"title":457,"path":458,"stem":459},"Resend Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-resend-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F5.use-resend-verify-email",{"title":461,"path":462,"stem":463,"children":464,"page":128},"Cwa Api","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F07.cwa-api",[465,468,472,476,479,482,486,490],{"title":30,"path":466,"stem":467},"\u002Fnuxt-module\u002Fcwa-api\u002Foverview","5.nuxt-module\u002F07.cwa-api\u002F1.overview",{"title":469,"path":470,"stem":471},"Resources","\u002Fnuxt-module\u002Fcwa-api\u002Fresources","5.nuxt-module\u002F07.cwa-api\u002F2.resources",{"title":473,"path":474,"stem":475},"Resources Manager","\u002Fnuxt-module\u002Fcwa-api\u002Fresources-manager","5.nuxt-module\u002F07.cwa-api\u002F3.resources-manager",{"title":436,"path":477,"stem":478},"\u002Fnuxt-module\u002Fcwa-api\u002Fauth","5.nuxt-module\u002F07.cwa-api\u002F4.auth",{"title":305,"path":480,"stem":481},"\u002Fnuxt-module\u002Fcwa-api\u002Fforms","5.nuxt-module\u002F07.cwa-api\u002F5.forms",{"title":483,"path":484,"stem":485},"Admin","\u002Fnuxt-module\u002Fcwa-api\u002Fadmin","5.nuxt-module\u002F07.cwa-api\u002F6.admin",{"title":487,"path":488,"stem":489},"Site Config","\u002Fnuxt-module\u002Fcwa-api\u002Fsite-config","5.nuxt-module\u002F07.cwa-api\u002F7.site-config",{"title":491,"path":492,"stem":493},"Orphaned Resources","\u002Fnuxt-module\u002Fcwa-api\u002Forphaned-resources","5.nuxt-module\u002F07.cwa-api\u002F8.orphaned-resources",{"title":113,"path":495,"stem":496},"\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F08.authentication",{"title":498,"path":499,"stem":500,"children":501,"page":128},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[502,505,509,513,517,521],{"title":30,"path":503,"stem":504},"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":506,"path":507,"stem":508},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":510,"path":511,"stem":512},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":514,"path":515,"stem":516},"Styling","\u002Fnuxt-module\u002Fcwa-layer\u002Fstyling","5.nuxt-module\u002F9.cwa-layer\u002F4.styling",{"title":518,"path":519,"stem":520},"Date Pickers","\u002Fnuxt-module\u002Fcwa-layer\u002Fdate-pickers","5.nuxt-module\u002F9.cwa-layer\u002F5.date-pickers",{"title":522,"path":523,"stem":524},"Maintenance","\u002Fnuxt-module\u002Fcwa-layer\u002Fmaintenance","5.nuxt-module\u002F9.cwa-layer\u002F6.maintenance",{"title":526,"path":527,"stem":528},"PWA & Offline","\u002Fnuxt-module\u002Fpwa","5.nuxt-module\u002F91.pwa",{"title":530,"path":531,"stem":532},"Page Caching","\u002Fnuxt-module\u002Fpage-caching","5.nuxt-module\u002F92.page-caching",{"title":534,"path":535,"stem":536,"children":537,"collapsed":23},"Deployment & Operations","\u002Fdeployment","6.deployment\u002F0.index",[538,540,544,548,552,556,560,564,568,572,576,580,584,588,592,596,600],{"title":539,"path":535,"stem":536},"Deploying a CWA Site",{"title":541,"path":542,"stem":543},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":545,"path":546,"stem":547},"Deploy to One Server","\u002Fdeployment\u002Fone-server","6.deployment\u002F1.one-server",{"title":549,"path":550,"stem":551},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":553,"path":554,"stem":555},"Moving From One Server to Kubernetes","\u002Fdeployment\u002Fmoving-to-kubernetes","6.deployment\u002F2.moving-to-kubernetes",{"title":557,"path":558,"stem":559},"Scaled Mode","\u002Fdeployment\u002Fscaled-mode","6.deployment\u002F2.scaled-mode",{"title":561,"path":562,"stem":563},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"title":565,"path":566,"stem":567},"Migrations and Backups","\u002Fdeployment\u002Fmigrations-and-backups","6.deployment\u002F3.migrations-and-backups",{"title":569,"path":570,"stem":571},"CI\u002FCD Variables","\u002Fdeployment\u002Fvariables","6.deployment\u002F4.variables",{"title":573,"path":574,"stem":575},"Cloudflare","\u002Fdeployment\u002Fcloudflare","6.deployment\u002F5.cloudflare",{"title":577,"path":578,"stem":579},"Origin Protection","\u002Fdeployment\u002Forigin-protection","6.deployment\u002F5.origin-protection",{"title":581,"path":582,"stem":583},"Load Testing","\u002Fdeployment\u002Fload-testing","6.deployment\u002F6.load-testing",{"title":585,"path":586,"stem":587},"Performance Audit","\u002Fdeployment\u002Fperformance-audit","6.deployment\u002F6.performance-audit",{"title":589,"path":590,"stem":591},"Reading Lighthouse Scores","\u002Fdeployment\u002Freading-lighthouse-scores","6.deployment\u002F6.reading-lighthouse-scores",{"title":593,"path":594,"stem":595},"Browser Tests","\u002Fdeployment\u002Fbrowser-tests","6.deployment\u002F7.browser-tests",{"title":597,"path":598,"stem":599},"Faster Functional Tests","\u002Fdeployment\u002Ffaster-functional-tests","6.deployment\u002F7.faster-functional-tests",{"title":601,"path":602,"stem":603},"Troubleshooting","\u002Fdeployment\u002Ftroubleshooting","6.deployment\u002F7.troubleshooting",{"id":605,"title":606,"badge":607,"body":608,"description":1322,"extension":1323,"links":607,"meta":1324,"navigation":1325,"path":388,"seo":1326,"stem":389,"__hash__":1327},"docs\u002F5.nuxt-module\u002F06.composables\u002F3.form\u002F4.use-cwa-form-collection.md","useCwaFormCollection",null,{"type":609,"value":610,"toc":1311},"minimark",[611,646,719,724,757,761,820,824,915,919,998,1002,1007,1014,1018,1039,1259,1263,1307],[612,613,614,617,618,627,628,631,632,635,636,639,640,645],"p",{},[615,616,606],"code",{}," manages a Symfony ",[619,620,624],"a",{"href":621,"rel":622},"https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Freference\u002Fforms\u002Ftypes\u002Fcollection.html",[623],"nofollow",[615,625,626],{},"CollectionType"," field. It clones the ",[615,629,630],{},"prototype"," from the API response each time ",[615,633,634],{},"addEntry()"," is called, assigns a monotonic index, and tracks the list of active entry ",[615,637,638],{},"full_name"," strings. Child components then call ",[619,641,642],{"href":380},[615,643,644],{},"useCwaFormInput"," for each sub-field; their lifecycle hooks handle registration\u002Funregistration automatically.",[647,648,653],"pre",{"className":649,"code":650,"language":651,"meta":652,"style":652},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","const { entries, addEntry, removeEntry, vars } = useCwaFormCollection(iri, 'form_name[fieldName]')\n","ts","",[615,654,655],{"__ignoreMap":652},[656,657,660,664,668,672,675,678,680,683,685,688,691,695,699,703,705,709,713,716],"span",{"class":658,"line":659},"line",1,[656,661,663],{"class":662},"swB56","const",[656,665,667],{"class":666},"sOvfz"," {",[656,669,671],{"class":670},"sc2zw"," entries",[656,673,674],{"class":666},",",[656,676,677],{"class":670}," addEntry",[656,679,674],{"class":666},[656,681,682],{"class":670}," removeEntry",[656,684,674],{"class":666},[656,686,687],{"class":670}," vars",[656,689,690],{"class":666}," }",[656,692,694],{"class":693},"sVlFx"," =",[656,696,698],{"class":697},"sKpYG"," useCwaFormCollection",[656,700,702],{"class":701},"sPB8G","(iri",[656,704,674],{"class":666},[656,706,708],{"class":707},"seSrl"," '",[656,710,712],{"class":711},"sLL54","form_name[fieldName]",[656,714,715],{"class":707},"'",[656,717,718],{"class":701},")\n",[720,721,723],"h2",{"id":722},"signature","Signature",[647,725,727],{"className":649,"code":726,"language":651,"meta":652,"style":652},"useCwaFormCollection(iri: Ref\u003Cstring | undefined>, collectionFullName: string)\n",[615,728,729],{"__ignoreMap":652},[656,730,731,733,736,739,742,745,749,752,754],{"class":658,"line":659},[656,732,606],{"class":697},[656,734,735],{"class":701},"(iri: Ref",[656,737,738],{"class":693},"\u003C",[656,740,741],{"class":701},"string ",[656,743,744],{"class":693},"|",[656,746,748],{"class":747},"sBtbT"," undefined",[656,750,751],{"class":693},">",[656,753,674],{"class":666},[656,755,756],{"class":701}," collectionFullName: string)\n",[720,758,760],{"id":759},"parameters","Parameters",[762,763,764,780],"table",{},[765,766,767],"thead",{},[768,769,770,774,777],"tr",{},[771,772,773],"th",{},"Parameter",[771,775,776],{},"Type",[771,778,779],{},"Description",[781,782,783,799],"tbody",{},[768,784,785,791,796],{},[786,787,788],"td",{},[615,789,790],{},"iri",[786,792,793],{},[615,794,795],{},"Ref\u003Cstring | undefined>",[786,797,798],{},"IRI of the Form component resource",[768,800,801,806,811],{},[786,802,803],{},[615,804,805],{},"collectionFullName",[786,807,808],{},[615,809,810],{},"string",[786,812,813,815,816,819],{},[615,814,638],{}," of the CollectionType field (e.g. ",[615,817,818],{},"registration[tags]",")",[720,821,823],{"id":822},"return-values","Return Values",[762,825,826,837],{},[765,827,828],{},[768,829,830,833,835],{},[771,831,832],{},"Property",[771,834,776],{},[771,836,779],{},[781,838,839,857,872,889],{},[768,840,841,846,851],{},[786,842,843],{},[615,844,845],{},"entries",[786,847,848],{},[615,849,850],{},"ComputedRef\u003Cstring[]>",[786,852,853,854,856],{},"Ordered list of active entry ",[615,855,638],{}," strings. Starts with the entries already in the form view, so an edit form lists its existing items",[768,858,859,864,869],{},[786,860,861],{},[615,862,863],{},"addEntry",[786,865,866],{},[615,867,868],{},"() => void",[786,870,871],{},"Clone the prototype and append a new entry",[768,873,874,879,884],{},[786,875,876],{},[615,877,878],{},"removeEntry",[786,880,881],{},[615,882,883],{},"(fullName: string) => void",[786,885,886,887],{},"Remove an entry by its ",[615,888,638],{},[768,890,891,896,901],{},[786,892,893],{},[615,894,895],{},"vars",[786,897,898],{},[615,899,900],{},"ComputedRef",[786,902,903,904,907,908,907,911,914],{},"Collection field vars from the API (",[615,905,906],{},"label",", ",[615,909,910],{},"allow_add",[615,912,913],{},"allow_delete",", errors, etc.)",[720,916,918],{"id":917},"how-it-works","How It Works",[920,921,922,943,950,957,966,969,976,979],"ul",{},[923,924,925,927,928,930,931,935,936,938,939,942],"li",{},[615,926,634],{}," deep-clones the collection field's ",[615,929,630],{},". The prototype is a ",[932,933,934],"strong",{},"sibling"," of ",[615,937,895],{}," on the form view (",[615,940,941],{},"$cwa.forms.getForm(iri)[collectionFullName].prototype","), not one of its vars.",[923,944,945,946,949],{},"It replaces every ",[615,947,948],{},"__name__"," placeholder with a monotonic counter, recursively through nested children.",[923,951,952,953,956],{},"Symfony's ",[615,954,955],{},"__name__label__"," sentinel label is dropped.",[923,958,959,960,962,963,965],{},"It then pushes the resolved ",[615,961,638],{}," onto ",[615,964,845],{},".",[923,967,968],{},"Entries already in the form view are read when it loads and can be removed like added ones. New entries take the next free index after them",[923,970,971,972,975],{},"Indices are never reused after removal, so Vue ",[615,973,974],{},"v-for"," keys remain stable",[923,977,978],{},"The prototype is never mutated",[923,980,981,982,985,986,989,990,993,994,997],{},"Child components must call ",[615,983,984],{},"useCwaFormInput(iriRef, entryFullName)"," (or ",[615,987,988],{},"useCwaFormInput(iriRef, \\","${entryFullName}",[656,991,992],{},"subField","`)",[615,995,996],{},"for compound types) — each child registers its field value with the form store during setup (immediately, not on mount) and clears it in","onBeforeUnmount`",[720,999,1001],{"id":1000},"example","Example",[1003,1004,1006],"h3",{"id":1005},"simple-collection-texttype-entries","Simple Collection (TextType Entries)",[612,1008,1009,1013],{},[619,1010,1012],{"href":1011},"\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms#collectiontype","Working with Forms › CollectionType"," has a full parent and entry component with Nuxt UI, including a validation icon on each entry.",[1003,1015,1017],{"id":1016},"compound-collection-sub-fields-per-entry","Compound Collection (Sub-Fields per Entry)",[612,1019,1020,1021,1023,1024,1027,1028,1031,1032,1035,1036,1038],{},"For a ",[615,1022,626],{}," where each entry is a compound type (e.g. a ",[615,1025,1026],{},"ChildType"," with ",[615,1029,1030],{},"name"," and ",[615,1033,1034],{},"age"," sub-fields), the child component calls ",[615,1037,644],{}," for each sub-field:",[647,1040,1044],{"className":1041,"code":1042,"language":1043,"meta":652,"style":652},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003C!-- ChildEntry.vue -->\n\u003Cscript setup lang=\"ts\">\nconst props = defineProps\u003C{ iri: string | undefined, entryFullName: string }>()\ndefineEmits\u003C{ remove: [] }>()\nconst iriRef = toRef(props, 'iri')\nconst name = useCwaFormInput(iriRef, `${props.entryFullName}[name]`)\nconst age  = useCwaFormInput(iriRef, `${props.entryFullName}[age]`)\n\u003C\u002Fscript>\n","vue",[615,1045,1046,1052,1081,1128,1149,1175,1215,1249],{"__ignoreMap":652},[656,1047,1048],{"class":658,"line":659},[656,1049,1051],{"class":1050},"sTBSN","\u003C!-- ChildEntry.vue -->\n",[656,1053,1055,1057,1061,1065,1068,1071,1074,1076,1078],{"class":658,"line":1054},2,[656,1056,738],{"class":666},[656,1058,1060],{"class":1059},"s-h7I","script",[656,1062,1064],{"class":1063},"sGtlX"," setup",[656,1066,1067],{"class":1063}," lang",[656,1069,1070],{"class":666},"=",[656,1072,1073],{"class":707},"\"",[656,1075,651],{"class":711},[656,1077,1073],{"class":707},[656,1079,1080],{"class":666},">\n",[656,1082,1084,1086,1089,1091,1094,1097,1101,1104,1108,1111,1113,1115,1118,1120,1122,1125],{"class":658,"line":1083},3,[656,1085,663],{"class":662},[656,1087,1088],{"class":670}," props",[656,1090,694],{"class":693},[656,1092,1093],{"class":697}," defineProps",[656,1095,1096],{"class":666},"\u003C{",[656,1098,1100],{"class":1099},"ssFBz"," iri",[656,1102,1103],{"class":693},":",[656,1105,1107],{"class":1106},"sbW4m"," string",[656,1109,1110],{"class":693}," |",[656,1112,748],{"class":1106},[656,1114,674],{"class":666},[656,1116,1117],{"class":1099}," entryFullName",[656,1119,1103],{"class":693},[656,1121,1107],{"class":1106},[656,1123,1124],{"class":666}," }>",[656,1126,1127],{"class":701},"()\n",[656,1129,1131,1134,1136,1139,1141,1144,1147],{"class":658,"line":1130},4,[656,1132,1133],{"class":697},"defineEmits",[656,1135,1096],{"class":666},[656,1137,1138],{"class":1099}," remove",[656,1140,1103],{"class":693},[656,1142,1143],{"class":701}," [] ",[656,1145,1146],{"class":666},"}>",[656,1148,1127],{"class":701},[656,1150,1152,1154,1157,1159,1162,1165,1167,1169,1171,1173],{"class":658,"line":1151},5,[656,1153,663],{"class":662},[656,1155,1156],{"class":670}," iriRef",[656,1158,694],{"class":693},[656,1160,1161],{"class":697}," toRef",[656,1163,1164],{"class":701},"(props",[656,1166,674],{"class":666},[656,1168,708],{"class":707},[656,1170,790],{"class":711},[656,1172,715],{"class":707},[656,1174,718],{"class":701},[656,1176,1178,1180,1183,1185,1188,1191,1193,1196,1199,1201,1204,1207,1210,1213],{"class":658,"line":1177},6,[656,1179,663],{"class":662},[656,1181,1182],{"class":670}," name",[656,1184,694],{"class":693},[656,1186,1187],{"class":697}," useCwaFormInput",[656,1189,1190],{"class":701},"(iriRef",[656,1192,674],{"class":666},[656,1194,1195],{"class":707}," `${",[656,1197,1198],{"class":701},"props",[656,1200,965],{"class":707},[656,1202,1203],{"class":701},"entryFullName",[656,1205,1206],{"class":707},"}",[656,1208,1209],{"class":711},"[name]",[656,1211,1212],{"class":707},"`",[656,1214,718],{"class":701},[656,1216,1218,1220,1223,1226,1228,1230,1232,1234,1236,1238,1240,1242,1245,1247],{"class":658,"line":1217},7,[656,1219,663],{"class":662},[656,1221,1222],{"class":670}," age",[656,1224,1225],{"class":693},"  =",[656,1227,1187],{"class":697},[656,1229,1190],{"class":701},[656,1231,674],{"class":666},[656,1233,1195],{"class":707},[656,1235,1198],{"class":701},[656,1237,965],{"class":707},[656,1239,1203],{"class":701},[656,1241,1206],{"class":707},[656,1243,1244],{"class":711},"[age]",[656,1246,1212],{"class":707},[656,1248,718],{"class":701},[656,1250,1252,1255,1257],{"class":658,"line":1251},8,[656,1253,1254],{"class":666},"\u003C\u002F",[656,1256,1060],{"class":1059},[656,1258,1080],{"class":666},[720,1260,1262],{"id":1261},"notes","Notes",[920,1264,1265,1276,1283,1300],{},[923,1266,1267,1268,1271,1272,1275],{},"Use ",[615,1269,1270],{},"vars.value?.allow_add"," \u002F ",[615,1273,1274],{},"vars.value?.allow_delete"," (from the API response) to conditionally show add\u002Fremove controls",[923,1277,1278,1279,1282],{},"Collection-level errors (e.g. min\u002Fmax count violations) are in ",[615,1280,1281],{},"vars.value?.errors"," — render them separately from individual entry errors",[923,1284,1285,1286,1289,1290,1292,1293,1295,1296,1299],{},"Entries removed via ",[615,1287,1288],{},"removeEntry()"," are immediately dropped from ",[615,1291,845],{},"; the child component unmounts and ",[615,1294,644],{}," unregisters the field values, so they are excluded from the next ",[615,1297,1298],{},"submit()"," payload automatically",[923,1301,1302,1303,1306],{},"See ",[619,1304,1305],{"href":306},"Working with Forms"," for full field-type examples",[1308,1309,1310],"style",{},"html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}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 .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 .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 .sBtbT, html code.shiki .sBtbT{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#89DDFF}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 .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}html pre.shiki code .ssFBz, html code.shiki .ssFBz{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#F07178}html pre.shiki code .sbW4m, html code.shiki .sbW4m{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}",{"title":652,"searchDepth":1054,"depth":1054,"links":1312},[1313,1314,1315,1316,1317,1321],{"id":722,"depth":1054,"text":723},{"id":759,"depth":1054,"text":760},{"id":822,"depth":1054,"text":823},{"id":917,"depth":1054,"text":918},{"id":1000,"depth":1054,"text":1001,"children":1318},[1319,1320],{"id":1005,"depth":1083,"text":1006},{"id":1016,"depth":1083,"text":1017},{"id":1261,"depth":1054,"text":1262},"Manage a Symfony CollectionType field — dynamically add and remove entries at runtime.","md",{},{"title":387},{"title":606,"description":1322},"zDr87RAQ7d600GGgoMMZB3I9hQsnY8j232knfhpXGg8",[1329,1331],{"title":383,"path":384,"stem":385,"description":1330,"children":-1},"Bind a Symfony RepeatedType field (e.g. new password + confirmation) with cross-field validation.",{"title":396,"path":397,"stem":398,"description":1332,"children":-1},"Register a Vue file as a tab in the admin manager panel and get the IRI of the currently selected component.",1793565699844]