[{"data":1,"prerenderedAt":1101},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fon-remote-change":584,"\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fon-remote-change-surround":1096},[4,24,67,93,228,521],{"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,125,171,175,179,208,212,216,220,224],{"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":124},"Users","\u002Fapi\u002Fusers","4.api\u002F04.users",[112,116,120],{"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",false,{"title":48,"path":126,"stem":127,"children":128,"page":124},"\u002Fapi\u002Fcomponents","4.api\u002F05.components",[129,133,154,167],{"title":130,"path":131,"stem":132},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F05.components\u002F1.creating-components",{"title":134,"path":135,"stem":136,"children":137,"page":124},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F05.components\u002F2.annotations",[138,142,146,150],{"title":139,"path":140,"stem":141},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F05.components\u002F2.annotations\u002F1.publishable",{"title":143,"path":144,"stem":145},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F05.components\u002F2.annotations\u002F2.uploadable",{"title":147,"path":148,"stem":149},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F05.components\u002F2.annotations\u002F3.timestamped",{"title":151,"path":152,"stem":153},"Explicit Allow Only","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only","4.api\u002F05.components\u002F2.annotations\u002F4.explicit-allow-only",{"title":155,"path":156,"stem":157,"children":158,"page":124},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F05.components\u002F3.built-ins",[159,163],{"title":160,"path":161,"stem":162},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F05.components\u002F3.built-ins\u002F1.collection-component",{"title":164,"path":165,"stem":166},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F05.components\u002F3.built-ins\u002F2.form-component",{"title":168,"path":169,"stem":170},"Groups & Positions","\u002Fapi\u002Fcomponents\u002Fcomponent-groups","4.api\u002F05.components\u002F4.component-groups",{"title":172,"path":173,"stem":174},"Page Data & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F06.dynamic-pages",{"title":176,"path":177,"stem":178},"Routes","\u002Fapi\u002Froutes","4.api\u002F07.routes",{"title":180,"path":181,"stem":182,"children":183,"page":124},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F08.data-fixtures",[184,188,192,196,200,204],{"title":185,"path":186,"stem":187},"Getting Started with Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgetting-started","4.api\u002F08.data-fixtures\u002F1.getting-started",{"title":189,"path":190,"stem":191},"Writing a Scaffold","\u002Fapi\u002Fdata-fixtures\u002Fwriting-a-scaffold","4.api\u002F08.data-fixtures\u002F2.writing-a-scaffold",{"title":193,"path":194,"stem":195},"Builder Reference","\u002Fapi\u002Fdata-fixtures\u002Fbuilder-reference","4.api\u002F08.data-fixtures\u002F3.builder-reference",{"title":197,"path":198,"stem":199},"Seeding Content","\u002Fapi\u002Fdata-fixtures\u002Fseeding-content","4.api\u002F08.data-fixtures\u002F4.seeding-content",{"title":201,"path":202,"stem":203},"Appending & Multiple Scaffolds","\u002Fapi\u002Fdata-fixtures\u002Fappending","4.api\u002F08.data-fixtures\u002F5.appending",{"title":205,"path":206,"stem":207},"Generating Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgenerating-fixtures","4.api\u002F08.data-fixtures\u002F6.generating-fixtures",{"title":209,"path":210,"stem":211},"Real-Time (Mercure)","\u002Fapi\u002Freal-time","4.api\u002F09.real-time",{"title":213,"path":214,"stem":215},"HTTP Caching","\u002Fapi\u002Fhttp-caching","4.api\u002F10.http-caching",{"title":217,"path":218,"stem":219},"Orphaned Data","\u002Fapi\u002Forphaned-data","4.api\u002F11.orphaned-data",{"title":221,"path":222,"stem":223},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F12.console-commands",{"title":225,"path":226,"stem":227},"Debugging & Errors","\u002Fapi\u002Fdebugging","4.api\u002F13.debugging",{"title":229,"path":230,"stem":231,"children":232,"collapsed":23},"Nuxt Module (Front-End)","\u002Fnuxt-module","5.nuxt-module\u002F0.index",[233,234,238,251,271,300,321,448,482,485,513,517],{"title":30,"path":230,"stem":231},{"title":235,"path":236,"stem":237},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F01.module-setup",{"title":239,"path":240,"stem":241,"children":242,"page":124},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F02.configuration",[243,247],{"title":244,"path":245,"stem":246},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F02.configuration\u002F1.nuxt-config",{"title":248,"path":249,"stem":250},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F02.configuration\u002F2.site-config-and-seo",{"title":252,"path":253,"stem":254,"children":255,"page":124},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F03.building-your-ui",[256,260,264,267],{"title":257,"path":258,"stem":259},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F03.building-your-ui\u002F1.creating-layouts",{"title":261,"path":262,"stem":263},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F03.building-your-ui\u002F2.creating-page-templates",{"title":48,"path":265,"stem":266},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F03.building-your-ui\u002F3.creating-components",{"title":268,"path":269,"stem":270},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F03.building-your-ui\u002F4.cwa-cli",{"title":272,"path":273,"stem":274,"children":275,"page":124},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F04.component-helpers",[276,280,284,288,292,296],{"title":277,"path":278,"stem":279},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F04.component-helpers\u002F1.images-and-uploads",{"title":281,"path":282,"stem":283},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F04.component-helpers\u002F2.collections-and-pagination",{"title":285,"path":286,"stem":287},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F04.component-helpers\u002F3.html-content",{"title":289,"path":290,"stem":291},"Rich-Text Editor","\u002Fnuxt-module\u002Fcomponent-helpers\u002Frich-text-editor","5.nuxt-module\u002F04.component-helpers\u002F4.rich-text-editor",{"title":293,"path":294,"stem":295},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F04.component-helpers\u002F5.real-time-updates",{"title":297,"path":298,"stem":299},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F04.component-helpers\u002F6.forms",{"title":301,"path":302,"stem":303,"children":304,"page":124},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F05.cwa-components",[305,309,313,317],{"title":306,"path":307,"stem":308},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F05.cwa-components\u002F1.cwa-component-group",{"title":310,"path":311,"stem":312},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F05.cwa-components\u002F2.cwa-page",{"title":314,"path":315,"stem":316},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F05.cwa-components\u002F3.cwa-link",{"title":318,"path":319,"stem":320},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F05.cwa-components\u002F5.cwa-default-layout",{"title":322,"path":323,"stem":324,"children":325,"page":124},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F06.composables",[326,329,337,362,382,403,423],{"title":30,"path":327,"stem":328},"\u002Fnuxt-module\u002Fcomposables\u002Foverview","5.nuxt-module\u002F06.composables\u002F0.overview",{"title":330,"path":331,"stem":332,"children":333,"page":124},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F06.composables\u002F1.layout",[334],{"title":330,"path":335,"stem":336},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F06.composables\u002F1.layout\u002F1.use-cwa-layout",{"title":338,"path":339,"stem":340,"children":341,"page":124},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F06.composables\u002F2.component",[342,346,350,354,358],{"title":343,"path":344,"stem":345},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F06.composables\u002F2.component\u002F1.use-cwa-component",{"title":347,"path":348,"stem":349},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F2.use-cwa-resource",{"title":351,"path":352,"stem":353},"File Field","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-file-field","5.nuxt-module\u002F06.composables\u002F2.component\u002F3.use-cwa-file-field",{"title":355,"path":356,"stem":357},"Collection Pagination","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-pagination","5.nuxt-module\u002F06.composables\u002F2.component\u002F4.use-cwa-collection-pagination",{"title":359,"path":360,"stem":361},"Collection Resource (deprecated)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F9.use-cwa-collection-resource",{"title":363,"path":364,"stem":365,"children":366,"page":124},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fform","5.nuxt-module\u002F06.composables\u002F3.form",[367,370,374,378],{"title":363,"path":368,"stem":369},"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form","5.nuxt-module\u002F06.composables\u002F3.form\u002F1.use-cwa-form",{"title":371,"path":372,"stem":373},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-input","5.nuxt-module\u002F06.composables\u002F3.form\u002F2.use-cwa-form-input",{"title":375,"path":376,"stem":377},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F06.composables\u002F3.form\u002F3.use-cwa-form-repeated",{"title":379,"path":380,"stem":381},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-collection","5.nuxt-module\u002F06.composables\u002F3.form\u002F4.use-cwa-form-collection",{"title":383,"path":384,"stem":385,"children":386,"page":124},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F06.composables\u002F4.admin-manager",[387,391,395,399],{"title":388,"path":389,"stem":390},"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":392,"path":393,"stem":394},"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":396,"path":397,"stem":398},"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":400,"path":401,"stem":402},"Remote Changes","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fon-remote-change","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F4.on-remote-change",{"title":404,"path":405,"stem":406,"children":407,"page":124},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F06.composables\u002F5.utilities",[408,412,416,420],{"title":409,"path":410,"stem":411},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F1.use-cwa-resource-endpoint",{"title":413,"path":414,"stem":415},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F2.use-query-bound-model",{"title":417,"path":418,"stem":419},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F3.use-cwa-resource-route",{"title":285,"path":421,"stem":422},"\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-html-content","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F4.use-html-content",{"title":424,"path":425,"stem":426,"children":427,"page":124},"Auth","\u002Fnuxt-module\u002Fcomposables\u002Fauth","5.nuxt-module\u002F06.composables\u002F6.auth",[428,432,436,440,444],{"title":429,"path":430,"stem":431},"Login","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-login","5.nuxt-module\u002F06.composables\u002F6.auth\u002F1.use-login",{"title":433,"path":434,"stem":435},"Forgot Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-forgot-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F2.use-forgot-password",{"title":437,"path":438,"stem":439},"Reset Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-reset-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F3.use-reset-password",{"title":441,"path":442,"stem":443},"Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F4.use-verify-email",{"title":445,"path":446,"stem":447},"Resend Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-resend-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F5.use-resend-verify-email",{"title":449,"path":450,"stem":451,"children":452,"page":124},"Cwa Api","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F07.cwa-api",[453,456,460,464,467,470,474,478],{"title":30,"path":454,"stem":455},"\u002Fnuxt-module\u002Fcwa-api\u002Foverview","5.nuxt-module\u002F07.cwa-api\u002F1.overview",{"title":457,"path":458,"stem":459},"Resources","\u002Fnuxt-module\u002Fcwa-api\u002Fresources","5.nuxt-module\u002F07.cwa-api\u002F2.resources",{"title":461,"path":462,"stem":463},"Resources Manager","\u002Fnuxt-module\u002Fcwa-api\u002Fresources-manager","5.nuxt-module\u002F07.cwa-api\u002F3.resources-manager",{"title":424,"path":465,"stem":466},"\u002Fnuxt-module\u002Fcwa-api\u002Fauth","5.nuxt-module\u002F07.cwa-api\u002F4.auth",{"title":297,"path":468,"stem":469},"\u002Fnuxt-module\u002Fcwa-api\u002Fforms","5.nuxt-module\u002F07.cwa-api\u002F5.forms",{"title":471,"path":472,"stem":473},"Admin","\u002Fnuxt-module\u002Fcwa-api\u002Fadmin","5.nuxt-module\u002F07.cwa-api\u002F6.admin",{"title":475,"path":476,"stem":477},"Site Config","\u002Fnuxt-module\u002Fcwa-api\u002Fsite-config","5.nuxt-module\u002F07.cwa-api\u002F7.site-config",{"title":479,"path":480,"stem":481},"Orphaned Resources","\u002Fnuxt-module\u002Fcwa-api\u002Forphaned-resources","5.nuxt-module\u002F07.cwa-api\u002F8.orphaned-resources",{"title":113,"path":483,"stem":484},"\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F08.authentication",{"title":486,"path":487,"stem":488,"children":489,"page":124},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[490,493,497,501,505,509],{"title":30,"path":491,"stem":492},"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":494,"path":495,"stem":496},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":498,"path":499,"stem":500},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":502,"path":503,"stem":504},"Styling","\u002Fnuxt-module\u002Fcwa-layer\u002Fstyling","5.nuxt-module\u002F9.cwa-layer\u002F4.styling",{"title":506,"path":507,"stem":508},"Date Pickers","\u002Fnuxt-module\u002Fcwa-layer\u002Fdate-pickers","5.nuxt-module\u002F9.cwa-layer\u002F5.date-pickers",{"title":510,"path":511,"stem":512},"Maintenance","\u002Fnuxt-module\u002Fcwa-layer\u002Fmaintenance","5.nuxt-module\u002F9.cwa-layer\u002F6.maintenance",{"title":514,"path":515,"stem":516},"PWA & Offline","\u002Fnuxt-module\u002Fpwa","5.nuxt-module\u002F91.pwa",{"title":518,"path":519,"stem":520},"Page Caching","\u002Fnuxt-module\u002Fpage-caching","5.nuxt-module\u002F92.page-caching",{"title":522,"path":523,"stem":524,"children":525,"collapsed":23},"Deployment & Operations","\u002Fdeployment","6.deployment\u002F0.index",[526,528,532,536,540,544,548,552,556,560,564,568,572,576,580],{"title":527,"path":523,"stem":524},"Deploying a CWA Site",{"title":529,"path":530,"stem":531},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":533,"path":534,"stem":535},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":537,"path":538,"stem":539},"Scaled Mode","\u002Fdeployment\u002Fscaled-mode","6.deployment\u002F2.scaled-mode",{"title":541,"path":542,"stem":543},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"title":545,"path":546,"stem":547},"Migrations and Backups","\u002Fdeployment\u002Fmigrations-and-backups","6.deployment\u002F3.migrations-and-backups",{"title":549,"path":550,"stem":551},"CI\u002FCD Variables","\u002Fdeployment\u002Fvariables","6.deployment\u002F4.variables",{"title":553,"path":554,"stem":555},"Cloudflare","\u002Fdeployment\u002Fcloudflare","6.deployment\u002F5.cloudflare",{"title":557,"path":558,"stem":559},"Origin Protection","\u002Fdeployment\u002Forigin-protection","6.deployment\u002F5.origin-protection",{"title":561,"path":562,"stem":563},"Load Testing","\u002Fdeployment\u002Fload-testing","6.deployment\u002F6.load-testing",{"title":565,"path":566,"stem":567},"Performance Audit","\u002Fdeployment\u002Fperformance-audit","6.deployment\u002F6.performance-audit",{"title":569,"path":570,"stem":571},"Reading Lighthouse Scores","\u002Fdeployment\u002Freading-lighthouse-scores","6.deployment\u002F6.reading-lighthouse-scores",{"title":573,"path":574,"stem":575},"Browser Tests","\u002Fdeployment\u002Fbrowser-tests","6.deployment\u002F7.browser-tests",{"title":577,"path":578,"stem":579},"Faster Functional Tests","\u002Fdeployment\u002Ffaster-functional-tests","6.deployment\u002F7.faster-functional-tests",{"title":581,"path":582,"stem":583},"Troubleshooting","\u002Fdeployment\u002Ftroubleshooting","6.deployment\u002F7.troubleshooting",{"id":585,"title":586,"badge":587,"body":588,"description":1090,"extension":1091,"links":587,"meta":1092,"navigation":1093,"path":401,"seo":1094,"stem":402,"__hash__":1095},"docs\u002F5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F4.on-remote-change.md","onRemoteChange",null,{"type":589,"value":590,"toc":1085},"minimark",[591,604,626,844,849,922,932,936,1039,1043,1063,1081],[592,593,594,597,598,603],"p",{},[595,596,586],"code",{}," calls a handler when another admin saves a change to a resource. It's for components that keep their own state, such as an editor that holds its text outside the store, and need to know that the stored copy moved under them. The module already shows the change in place (see ",[599,600,602],"a",{"href":601},"\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates#co-editing-in-the-admin","Real-Time Updates › Co-Editing in the Admin","), so most components need nothing.",[592,605,606],{},[607,608,609,610,619,620,625],"em",{},"Since ",[599,611,615,618],{"href":612,"rel":613},"https:\u002F\u002Fgithub.com\u002Fcomponents-web-app\u002Fcwa-nuxt-module\u002Freleases\u002Ftag\u002Fv2.0.0-alpha.26",[614],"nofollow",[595,616,617],{},"@cwa\u002Fnuxt"," 2.0.0-alpha.26"," (",[599,621,624],{"href":622,"rel":623},"https:\u002F\u002Fgithub.com\u002Fcomponents-web-app\u002Fcwa-nuxt-module\u002Fissues\u002F429",[614],"#429",").",[627,628,633],"pre",{"className":629,"code":630,"language":631,"meta":632,"style":632},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight has-focused","import { onRemoteChange, useCwaResourceManagerTab } from '#imports'\n\nconst { exposeMeta, iri } = useCwaResourceManagerTab({ name: 'Content' })\n\nonRemoteChange(iri, ({ changedFields, accept }) => { \u002F\u002F [!code focus]\n  if (changedFields.includes('html')) { \u002F\u002F [!code focus]\n    accept() \u002F\u002F [!code focus]\n  } \u002F\u002F [!code focus]\n}) \u002F\u002F [!code focus]\n\ndefineExpose(exposeMeta)\n","ts","",[595,634,635,675,681,734,739,771,803,813,820,830,835],{"__ignoreMap":632},[636,637,640,644,648,652,655,658,661,664,668,672],"span",{"class":638,"line":639},"line",1,[636,641,643],{"class":642},"sm4w6","import",[636,645,647],{"class":646},"sOvfz"," {",[636,649,651],{"class":650},"sPB8G"," onRemoteChange",[636,653,654],{"class":646},",",[636,656,657],{"class":650}," useCwaResourceManagerTab",[636,659,660],{"class":646}," }",[636,662,663],{"class":642}," from",[636,665,667],{"class":666},"seSrl"," '",[636,669,671],{"class":670},"sLL54","#imports",[636,673,674],{"class":666},"'\n",[636,676,678],{"class":638,"line":677},2,[636,679,680],{"emptyLinePlaceholder":23},"\n",[636,682,684,688,690,694,696,699,701,705,708,711,714,718,721,723,726,729,731],{"class":638,"line":683},3,[636,685,687],{"class":686},"swB56","const",[636,689,647],{"class":646},[636,691,693],{"class":692},"sc2zw"," exposeMeta",[636,695,654],{"class":646},[636,697,698],{"class":692}," iri",[636,700,660],{"class":646},[636,702,704],{"class":703},"sVlFx"," =",[636,706,657],{"class":707},"sKpYG",[636,709,710],{"class":650},"(",[636,712,713],{"class":646},"{",[636,715,717],{"class":716},"sDHlG"," name",[636,719,720],{"class":646},":",[636,722,667],{"class":666},[636,724,725],{"class":670},"Content",[636,727,728],{"class":666},"'",[636,730,660],{"class":646},[636,732,733],{"class":650},")\n",[636,735,737],{"class":638,"line":736},4,[636,738,680],{"emptyLinePlaceholder":23},[636,740,744,746,749,751,754,758,760,763,766,769],{"class":741,"line":743},[638,742],"focused",5,[636,745,586],{"class":707},[636,747,748],{"class":650},"(iri",[636,750,654],{"class":646},[636,752,753],{"class":646}," ({",[636,755,757],{"class":756},"sNTR6"," changedFields",[636,759,654],{"class":646},[636,761,762],{"class":756}," accept",[636,764,765],{"class":646}," })",[636,767,768],{"class":686}," =>",[636,770,647],{"class":646},[636,772,775,778,780,783,786,789,791,793,796,798,801],{"class":773,"line":774},[638,742],6,[636,776,777],{"class":642},"  if",[636,779,619],{"class":716},[636,781,782],{"class":650},"changedFields",[636,784,785],{"class":646},".",[636,787,788],{"class":707},"includes",[636,790,710],{"class":716},[636,792,728],{"class":666},[636,794,795],{"class":670},"html",[636,797,728],{"class":666},[636,799,800],{"class":716},")) ",[636,802,713],{"class":646},[636,804,807,810],{"class":805,"line":806},[638,742],7,[636,808,809],{"class":707},"    accept",[636,811,812],{"class":716},"() ",[636,814,817],{"class":815,"line":816},[638,742],8,[636,818,819],{"class":646},"  }",[636,821,824,827],{"class":822,"line":823},[638,742],9,[636,825,826],{"class":646},"}",[636,828,829],{"class":650},") ",[636,831,833],{"class":638,"line":832},10,[636,834,680],{"emptyLinePlaceholder":23},[636,836,838,841],{"class":638,"line":837},11,[636,839,840],{"class":707},"defineExpose",[636,842,843],{"class":650},"(exposeMeta)\n",[845,846,848],"h2",{"id":847},"signature","Signature",[627,850,853],{"className":851,"code":852,"language":631,"meta":632,"style":632},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","onRemoteChange(\n  iri: MaybeRefOrGetter\u003Cstring | undefined>,\n  handler: (event: RemoteChangeEvent) => void\n): () => void\n",[595,854,855,862,886,910],{"__ignoreMap":632},[636,856,857,859],{"class":638,"line":639},[636,858,586],{"class":707},[636,860,861],{"class":650},"(\n",[636,863,864,867,870,873,876,880,883],{"class":638,"line":677},[636,865,866],{"class":650},"  iri: MaybeRefOrGetter",[636,868,869],{"class":703},"\u003C",[636,871,872],{"class":650},"string ",[636,874,875],{"class":703},"|",[636,877,879],{"class":878},"sBtbT"," undefined",[636,881,882],{"class":703},">",[636,884,885],{"class":646},",\n",[636,887,888,891,893,896,898,902,905,907],{"class":638,"line":683},[636,889,890],{"class":650},"  handler: ",[636,892,710],{"class":646},[636,894,895],{"class":756},"event",[636,897,720],{"class":703},[636,899,901],{"class":900},"sRCss"," RemoteChangeEvent",[636,903,904],{"class":646},")",[636,906,768],{"class":686},[636,908,909],{"class":703}," void\n",[636,911,912,915,918,920],{"class":638,"line":736},[636,913,914],{"class":650},"): ",[636,916,917],{"class":646},"()",[636,919,768],{"class":686},[636,921,909],{"class":703},[592,923,924,927,928,931],{},[595,925,926],{},"iri"," can be a string, a ref or a getter, so the handler follows the selected resource. It returns a function that stops listening. Called inside a component's ",[595,929,930],{},"setup",", it stops by itself when the component unmounts.",[845,933,935],{"id":934},"the-event","The Event",[937,938,939,955],"table",{},[940,941,942],"thead",{},[943,944,945,949,952],"tr",{},[946,947,948],"th",{},"Property",[946,950,951],{},"Type",[946,953,954],{},"Description",[956,957,958,974,1000,1019],"tbody",{},[943,959,960,966,971],{},[961,962,963],"td",{},[595,964,965],{},"resource",[961,967,968],{},[595,969,970],{},"CwaResource",[961,972,973],{},"The resource as the other admin saved it",[943,975,976,980,985],{},[961,977,978],{},[595,979,782],{},[961,981,982],{},[595,983,984],{},"string[]",[961,986,987,988,991,992,995,996,999],{},"Top-level properties whose value differs from the copy you had. ",[595,989,990],{},"@id",", ",[595,993,994],{},"@context"," and ",[595,997,998],{},"_metadata"," are never listed",[943,1001,1002,1007,1012],{},[961,1003,1004],{},[595,1005,1006],{},"user",[961,1008,1009],{},[595,1010,1011],{},"{ id: string } | undefined",[961,1013,1014,1015,1018],{},"The IRI of the user who saved it, from ",[595,1016,1017],{},"_metadata.lastWrite.userId",". There's no name",[943,1020,1021,1026,1031],{},[961,1022,1023],{},[595,1024,1025],{},"accept",[961,1027,1028],{},[595,1029,1030],{},"() => void",[961,1032,1033,1034,1038],{},"Chooses ",[1035,1036,1037],"strong",{},"Use theirs"," for every control on this resource that's waiting for a choice. It does nothing once a newer change has arrived",[845,1040,1042],{"id":1041},"when-its-called","When It's Called",[1044,1045,1046,1054,1057,1060],"ul",{},[1047,1048,1049,1050,1053],"li",{},"Only for a signed-in admin, in the browser, while co-editing is on. Visitors, the server render and an app with ",[595,1051,1052],{},"cwa.realtime.enabled: false"," never call it.",[1047,1055,1056],{},"Only for someone else's save. Your own saves coming back over Mercure, and a re-fetch after a reconnect that changed nothing, don't call it.",[1047,1058,1059],{},"For the draft and the live version alike: a handler on a draft's IRI hears a change to its live version, and the other way round.",[1047,1061,1062],{},"Not for a delete. The module deselects a removed component itself.",[1064,1065,1067],"callout",{"icon":1066},"i-heroicons-information-circle",[592,1068,1069,1072,1073,1076,1077,1080],{},[1035,1070,1071],{},"The change is already in the store when the handler runs",", except for a control that's waiting for ",[1035,1074,1075],{},"Use theirs \u002F Keep mine",": that control keeps the admin's value until they choose. Call ",[595,1078,1079],{},"accept()"," only when your component can't offer the choice itself.",[1082,1083,1084],"style",{},"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 .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}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 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 .sDHlG, html code.shiki .sDHlG{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#F07178}html pre.shiki code .sNTR6, html code.shiki .sNTR6{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#FFAB70;--shiki-default-font-style:inherit;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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 .sRCss, html code.shiki .sRCss{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}",{"title":632,"searchDepth":677,"depth":677,"links":1086},[1087,1088,1089],{"id":847,"depth":677,"text":848},{"id":934,"depth":677,"text":935},{"id":1041,"depth":677,"text":1042},"Run your own code when another admin saves a change to a resource you're showing, with the fields that changed.","md",{},{"title":400},{"title":586,"description":1090},"Mcv8fkQWlIw_P6oqhy-4zFMDQwJKvknmMosLRNbtt8k",[1097,1099],{"title":396,"path":397,"stem":398,"description":1098,"children":-1},"Admin tab composable for file upload fields — handles selection, upload, and deletion via the API.",{"title":409,"path":410,"stem":411,"description":1100,"children":-1},"Resolves the correct API endpoint URL for a resource, accounting for draft\u002Fpublished state in admin edit mode.",1792620137846]