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