[{"data":1,"prerenderedAt":448},["ShallowReactive",2],{"navigation_docs":3,"-nuxt-composables":225,"-nuxt-composables-surround":443},[4,27,77,123,157,211],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Get started","majesticons:rocket-3-start-line","\u002Fget-started","1.get-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"How it works","\u002Fget-started\u002Fhow-it-works","1.get-started\u002F10.how-it-works",{"title":15,"path":16,"stem":17},"Play online","\u002Fget-started\u002Fplay-online","1.get-started\u002F20.play-online",{"title":19,"path":20,"stem":21},"Create a new project","\u002Fget-started\u002Fcreate-new-project","1.get-started\u002F30.create-new-project",{"title":23,"path":24,"stem":25},"First steps","\u002Fget-started\u002Ffirst-steps","1.get-started\u002F40.first-steps",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Guide","mdi:book-open-page-variant-outline","\u002Fguide","2.guide",[33,37,41,45,49,53,57,61,65,69,73],{"title":34,"path":35,"stem":36},"Customized API Output","\u002Fguide\u002Fcustomized-api-output","2.guide\u002F05.customized-api-output",{"title":38,"path":39,"stem":40},"Pages & Routing","\u002Fguide\u002Fpages-routing","2.guide\u002F10.pages-routing",{"title":42,"path":43,"stem":44},"Site layout & Menus","\u002Fguide\u002Fsite-layout-menus","2.guide\u002F20.site-layout-menus",{"title":46,"path":47,"stem":48},"Authentication","\u002Fguide\u002Fauthentication","2.guide\u002F40.authentication",{"title":50,"path":51,"stem":52},"Metatags & Local tasks","\u002Fguide\u002Fmetatags-local-tasks","2.guide\u002F50.metatags-local-tasks",{"title":54,"path":55,"stem":56},"Breadcrumbs & Messages","\u002Fguide\u002Fbreadcrumbs-messages","2.guide\u002F60.breadcrumbs-messages",{"title":58,"path":59,"stem":60},"Redirects","\u002Fguide\u002Fredirects","2.guide\u002F65.redirects",{"title":62,"path":63,"stem":64},"Editorial previews","\u002Fguide\u002Feditorial-previews","2.guide\u002F70.editorial-previews",{"title":66,"path":67,"stem":68},"Layout builder","\u002Fguide\u002Flayout-builder","2.guide\u002F80.layout-builder",{"title":70,"path":71,"stem":72},"Drupal Canvas","\u002Fguide\u002Fcanvas","2.guide\u002F90.canvas",{"title":74,"path":75,"stem":76},"Drupal CMS","\u002Fguide\u002Fdrupal-cms","2.guide\u002F95.drupal-cms",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":26},"Advanced topics","bi:diagram-3","\u002Fadvanced-topics","3.advanced-topics",[83,87,91,95,99,103,107,111,115,119],{"title":84,"path":85,"stem":86},"Multi-frontend","\u002Fadvanced-topics\u002Fmulti-frontend","3.advanced-topics\u002F05.multi-frontend",{"title":88,"path":89,"stem":90},"Listings, Views","\u002Fadvanced-topics\u002Flistings-views","3.advanced-topics\u002F10.listings-views",{"title":92,"path":93,"stem":94},"Searches","\u002Fadvanced-topics\u002Fsearches","3.advanced-topics\u002F20.searches",{"title":96,"path":97,"stem":98},"JSON-API & GraphQL","\u002Fadvanced-topics\u002Fjsonapi-graphql","3.advanced-topics\u002F30.jsonapi-graphql",{"title":100,"path":101,"stem":102},"Caching","\u002Fadvanced-topics\u002Fcaching","3.advanced-topics\u002F40.caching",{"title":104,"path":105,"stem":106},"Error pages","\u002Fadvanced-topics\u002Ferror-pages","3.advanced-topics\u002F50.error-pages",{"title":108,"path":109,"stem":110},"Drupal forms","\u002Fadvanced-topics\u002Fdrupal-forms","3.advanced-topics\u002F60.drupal-forms",{"title":112,"path":113,"stem":114},"Site Templates","\u002Fadvanced-topics\u002Fsite-templates","3.advanced-topics\u002F65.site-templates",{"title":116,"path":117,"stem":118},"Block layout","\u002Fadvanced-topics\u002Fblock-layout","3.advanced-topics\u002F70.block-layout",{"title":120,"path":121,"stem":122},"Debugging API requests","\u002Fadvanced-topics\u002Fdebugging","3.advanced-topics\u002F80.debugging",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":26},"Drupal","simple-icons:drupal","\u002Fdrupal","4.drupal",[129,133,137,141,145,149,153],{"title":130,"path":131,"stem":132},"Key modules","\u002Fdrupal\u002Fkey-modules","4.drupal\u002F10.key-modules",{"title":134,"path":135,"stem":136},"Custom elements","\u002Fdrupal\u002Fcustom-elements","4.drupal\u002F20.custom-elements",{"title":138,"path":139,"stem":140},"Routes","\u002Fdrupal\u002Froutes","4.drupal\u002F30.routes",{"title":142,"path":143,"stem":144},"Providing blocks","\u002Fdrupal\u002Fproviding-blocks","4.drupal\u002F40.providing-blocks",{"title":146,"path":147,"stem":148},"Custom Element Processors","\u002Fdrupal\u002Fcustom-element-processors","4.drupal\u002F50.custom-element-processors",{"title":150,"path":151,"stem":152},"Adding Drupal forms","\u002Fdrupal\u002Fadd-drupal-forms","4.drupal\u002F60.add-drupal-forms",{"title":154,"path":155,"stem":156},"Providing themes","\u002Fdrupal\u002Fthemes","4.drupal\u002F70.themes",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":26},"Nuxt","simple-icons:nuxtdotjs","\u002Fnuxt","5.nuxt",[163,167,171,175,179,183,187,191,195,199,203,207],{"title":164,"path":165,"stem":166},"Introduction","\u002Fnuxt\u002Fintroduction","5.nuxt\u002F10.introduction",{"title":168,"path":169,"stem":170},"Setup","\u002Fnuxt\u002Fsetup","5.nuxt\u002F20.setup",{"title":172,"path":173,"stem":174},"Rendering Custom Elements","\u002Fnuxt\u002Frender-custom-elements","5.nuxt\u002F30.render-custom-elements",{"title":176,"path":177,"stem":178},"Default components","\u002Fnuxt\u002Fdefault-components","5.nuxt\u002F32.default-components",{"title":180,"path":181,"stem":182},"Composables","\u002Fnuxt\u002Fcomposables","5.nuxt\u002F35.composables",{"title":184,"path":185,"stem":186},"Custom Routes","\u002Fnuxt\u002Fcustom-routes","5.nuxt\u002F40.custom-routes",{"title":188,"path":189,"stem":190},"Page Layouts","\u002Fnuxt\u002Fpage-layouts","5.nuxt\u002F50.page-layouts",{"title":192,"path":193,"stem":194},"Component Previews","\u002Fnuxt\u002Fcomponent-previews","5.nuxt\u002F55.component-previews",{"title":196,"path":197,"stem":198},"Component Index","\u002Fnuxt\u002Fcanvas-components","5.nuxt\u002F57.canvas-components",{"title":200,"path":201,"stem":202},"Rendering modes","\u002Fnuxt\u002Frendering-modes","5.nuxt\u002F60.rendering-modes",{"title":204,"path":205,"stem":206},"Deployment options","\u002Fnuxt\u002Fdeployment","5.nuxt\u002F70.deployment",{"title":208,"path":209,"stem":210},"Resources","\u002Fnuxt\u002Fresources","5.nuxt\u002F90.resources",{"title":212,"icon":213,"path":214,"stem":215,"children":216,"page":26},"Deployment","solar:server-square-cloud-linear","\u002Fdeployment","6.deployment",[217,221],{"title":218,"path":219,"stem":220},"Deployment Strategies","\u002Fdeployment\u002Fdeployment-strategy","6.deployment\u002F10.deployment-strategy",{"title":222,"path":223,"stem":224},"Unified Hosting","\u002Fdeployment\u002Funified-hosting","6.deployment\u002F20.unified-hosting",{"id":226,"title":180,"body":227,"description":233,"extension":437,"links":438,"meta":439,"navigation":440,"path":181,"seo":441,"stem":182,"__hash__":442},"docs\u002F5.nuxt\u002F35.composables.md",{"type":228,"value":229,"toc":433},"minimark",[230,234,239,242,247,276,280,288,292,306,310,318,322,354,358,365,429],[231,232,233],"p",{},"The composable provided by the module provides helpers to fetch page and menu data, handle errors, and render custom components.",[235,236,238],"h3",{"id":237},"usedrupalce","useDrupalCe",[231,240,241],{},"This composable exports a collection of utilities to handle Drupal content and functionality.",[243,244,246],"h4",{"id":245},"page-handling","Page Handling",[248,249,250,258,264,270],"ul",{},[251,252,253,257],"li",{},[254,255,256],"code",{},"fetchPage(path: string, query?: Object, errorHandler?: Function, skipProxy?: boolean)"," - Fetches a page by path",[251,259,260,263],{},[254,261,262],{},"getPage()"," - Returns the current page state",[251,265,266,269],{},[254,267,268],{},"usePageHead(page: Ref\u003Cany>, include?: Array\u003C'title' | 'meta' | 'link' | 'jsonld'>)"," - Sets page head metadata from Drupal data",[251,271,272,275],{},[254,273,274],{},"getPageLayout(page?: Ref\u003Cany>)"," - Gets current page layout name (defaults to 'default')",[243,277,279],{"id":278},"menu-handling","Menu Handling",[248,281,282],{},[251,283,284,287],{},[254,285,286],{},"fetchMenu(name: string, options?: Object, errorHandler?: Function, skipProxy?: boolean)"," - Fetches a menu by name",[243,289,291],{"id":290},"component-rendering","Component Rendering",[248,293,294,300],{},[251,295,296,299],{},[254,297,298],{},"renderCustomElements(elements: string | object | Array)"," - Renders one or multiple custom elements from JSON data",[251,301,302,305],{},[254,303,304],{},"resolveCustomElement(element: string)"," - Resolves a custom element name to a Vue component",[243,307,309],{"id":308},"messages","Messages",[248,311,312],{},[251,313,314,317],{},[254,315,316],{},"getMessages()"," - Returns Drupal messages of the current page",[243,319,321],{"id":320},"api-utilities","API Utilities",[248,323,324,330,336,342,348],{},[251,325,326,329],{},[254,327,328],{},"$ceApi(options?: Object, skipProxy?: boolean)"," - Creates a configured fetch instance",[251,331,332,335],{},[254,333,334],{},"useCeApi(path: string, options?: Object, passThroughHeaders?: boolean, skipProxy?: boolean)"," - Fetches data from Drupal CE API endpoint",[251,337,338,341],{},[254,339,340],{},"getCeApiEndpoint(localize?: boolean)"," - Gets API endpoint with optional localization",[251,343,344,347],{},[254,345,346],{},"getDrupalBaseUrl()"," - Gets configured Drupal base URL",[251,349,350,353],{},[254,351,352],{},"getMenuBaseUrl()"," - Gets configured menu base URL",[235,355,357],{"id":356},"example-usage","Example usage",[231,359,360,361,364],{},"The following example makes use of the ",[254,362,363],{},"fetchPage"," method to get the current page:",[366,367,372],"pre",{"className":368,"code":369,"language":370,"meta":371,"style":371},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\n  const { fetchPage } = useDrupalCe()\n  const page = await fetchPage(useRoute().path)\n\u003C\u002Fscript>\n","js","",[254,373,374,394,413,419],{"__ignoreMap":371},[375,376,379,383,387,391],"span",{"class":377,"line":378},"line",1,[375,380,382],{"class":381},"sMK4o","\u003C",[375,384,386],{"class":385},"swJcz","script",[375,388,390],{"class":389},"spNyl"," setup",[375,392,393],{"class":381},">\n",[375,395,397,401,404,407,410],{"class":377,"line":396},2,[375,398,400],{"class":399},"sTEyZ","  const ",[375,402,403],{"class":381},"{",[375,405,406],{"class":399}," fetchPage ",[375,408,409],{"class":381},"}",[375,411,412],{"class":399}," = useDrupalCe()\n",[375,414,416],{"class":377,"line":415},3,[375,417,418],{"class":399},"  const page = await fetchPage(useRoute().path)\n",[375,420,422,425,427],{"class":377,"line":421},4,[375,423,424],{"class":381},"\u003C\u002F",[375,426,386],{"class":385},[375,428,393],{"class":381},[430,431,432],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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);}",{"title":371,"searchDepth":396,"depth":396,"links":434},[435,436],{"id":237,"depth":415,"text":238},{"id":356,"depth":415,"text":357},"md",null,{},true,{"title":180,"description":233},"hTYlH5_J4uWn9DokJT0cWcOMq0PQCNFBxswav4301ec",[444,446],{"title":176,"path":177,"stem":178,"description":445,"children":-1},"Note: This feature is atm only available when using the (default) JSON-based rendered of custom elements.",{"title":184,"path":185,"stem":186,"description":447,"children":-1},"Custom frontend routes are routes that are not defined in Drupal. They are defined in the frontend and can be used create custom pages.",1779292116271]