[{"data":1,"prerenderedAt":1362},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload":358,"\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload-surround":1357},[4,14,36,69,140,341],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17,"children":18,"page":35},"Guides","\u002Fguides","2.guides",[19,23,27,31],{"title":20,"path":21,"stem":22},"Your First Layout","\u002Fguides\u002Fyour-first-layout","2.guides\u002F1.your-first-layout",{"title":24,"path":25,"stem":26},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","2.guides\u002F2.your-first-page-template",{"title":28,"path":29,"stem":30},"Your First Component","\u002Fguides\u002Fyour-first-component","2.guides\u002F3.your-first-component",{"title":32,"path":33,"stem":34},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","2.guides\u002F4.alternative-ui-variants",false,{"title":37,"path":38,"stem":39,"children":40,"page":35},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[41,45,49,53,57,61,65],{"title":42,"path":43,"stem":44},"How It All Works","\u002Fcore-concepts\u002Farchitecture","3.core-concepts\u002F1.architecture",{"title":46,"path":47,"stem":48},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","3.core-concepts\u002F2.the-data-model",{"title":50,"path":51,"stem":52},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","3.core-concepts\u002F3.layouts-and-pages",{"title":54,"path":55,"stem":56},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","3.core-concepts\u002F4.dynamic-pages",{"title":58,"path":59,"stem":60},"Components","\u002Fcore-concepts\u002Fcomponents","3.core-concepts\u002F5.components",{"title":62,"path":63,"stem":64},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","3.core-concepts\u002F6.draft-and-publish",{"title":66,"path":67,"stem":68},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","3.core-concepts\u002F7.admin-panel",{"title":70,"path":71,"stem":72,"children":73,"page":35},"Api","\u002Fapi","4.api",[74,78,116,120,124,128,132,136],{"title":75,"path":76,"stem":77},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F1.bundle-setup",{"title":58,"path":79,"stem":80,"children":81,"page":35},"\u002Fapi\u002Fcomponents","4.api\u002F2.components",[82,86,103],{"title":83,"path":84,"stem":85},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F2.components\u002F1.creating-components",{"title":87,"path":88,"stem":89,"children":90,"page":35},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F2.components\u002F2.annotations",[91,95,99],{"title":92,"path":93,"stem":94},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F2.components\u002F2.annotations\u002F1.publishable",{"title":96,"path":97,"stem":98},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F2.components\u002F2.annotations\u002F2.uploadable",{"title":100,"path":101,"stem":102},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F2.components\u002F2.annotations\u002F3.timestamped",{"title":104,"path":105,"stem":106,"children":107,"page":35},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F2.components\u002F3.built-ins",[108,112],{"title":109,"path":110,"stem":111},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F2.components\u002F3.built-ins\u002F1.collection-component",{"title":113,"path":114,"stem":115},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F2.components\u002F3.built-ins\u002F2.form-component",{"title":117,"path":118,"stem":119},"Dynamic & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F3.dynamic-pages",{"title":121,"path":122,"stem":123},"Users & Security","\u002Fapi\u002Fusers-and-security","4.api\u002F4.users-and-security",{"title":125,"path":126,"stem":127},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F5.data-fixtures",{"title":129,"path":130,"stem":131},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F6.configuration",{"title":133,"path":134,"stem":135},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F7.console-commands",{"title":137,"path":138,"stem":139},"Debugging & Profiler","\u002Fapi\u002Fdebugging","4.api\u002F8.debugging",{"title":141,"path":142,"stem":143,"children":144,"page":35},"Nuxt Module","\u002Fnuxt-module","5.nuxt-module",[145,149,162,182,207,211,295,320,324],{"title":146,"path":147,"stem":148},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F1.module-setup",{"title":150,"path":151,"stem":152,"children":153,"page":35},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F2.configuration",[154,158],{"title":155,"path":156,"stem":157},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F2.configuration\u002F1.nuxt-config",{"title":159,"path":160,"stem":161},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F2.configuration\u002F2.site-config-and-seo",{"title":163,"path":164,"stem":165,"children":166,"page":35},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F3.building-your-ui",[167,171,175,178],{"title":168,"path":169,"stem":170},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F3.building-your-ui\u002F1.creating-layouts",{"title":172,"path":173,"stem":174},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F3.building-your-ui\u002F2.creating-page-templates",{"title":83,"path":176,"stem":177},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F3.building-your-ui\u002F3.creating-components",{"title":179,"path":180,"stem":181},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F3.building-your-ui\u002F4.cwa-cli",{"title":183,"path":184,"stem":185,"children":186,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[187,191,195,199,203],{"title":188,"path":189,"stem":190},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":192,"path":193,"stem":194},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":196,"path":197,"stem":198},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":200,"path":201,"stem":202},"\u003CCwaImage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-image","5.nuxt-module\u002F4.cwa-components\u002F4.cwa-image",{"title":204,"path":205,"stem":206},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":208,"path":209,"stem":210},"The useCwa() API","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",{"title":212,"path":213,"stem":214,"children":215,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[216,224,261,278],{"title":217,"path":218,"stem":219,"children":220,"page":35},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F6.composables\u002F0.layout",[221],{"title":217,"path":222,"stem":223},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F6.composables\u002F0.layout\u002F1.use-cwa-layout",{"title":225,"path":226,"stem":227,"children":228,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[229,233,237,241,245,249,253,257],{"title":230,"path":231,"stem":232},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F6.composables\u002F1.component\u002F0.use-cwa-component",{"title":234,"path":235,"stem":236},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":238,"path":239,"stem":240},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":242,"path":243,"stem":244},"Image Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-image-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-image-resource",{"title":246,"path":247,"stem":248},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":250,"path":251,"stem":252},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":254,"path":255,"stem":256},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":258,"path":259,"stem":260},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":262,"path":263,"stem":264,"children":265,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[266,270,274],{"title":267,"path":268,"stem":269},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":271,"path":272,"stem":273},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F2.use-cwa-resource-model",{"title":275,"path":276,"stem":277},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F3.use-cwa-resource-upload",{"title":279,"path":280,"stem":281,"children":282,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[283,287,291],{"title":284,"path":285,"stem":286},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":288,"path":289,"stem":290},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":292,"path":293,"stem":294},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":296,"path":297,"stem":298,"children":299,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[300,304,308,312,316],{"title":301,"path":302,"stem":303},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":305,"path":306,"stem":307},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":309,"path":310,"stem":311},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":313,"path":314,"stem":315},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":317,"path":318,"stem":319},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":321,"path":322,"stem":323},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":325,"path":326,"stem":327,"children":328,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[329,333,337],{"title":330,"path":331,"stem":332},"Overview","\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":334,"path":335,"stem":336},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":338,"path":339,"stem":340},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":342,"path":343,"stem":344,"children":345,"page":35},"Deployment","\u002Fdeployment","6.deployment",[346,350,354],{"title":347,"path":348,"stem":349},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":351,"path":352,"stem":353},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":355,"path":356,"stem":357},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":359,"title":360,"badge":361,"body":364,"description":1350,"extension":1351,"links":1352,"meta":1353,"navigation":1354,"path":276,"seo":1355,"stem":277,"__hash__":1356},"docs\u002F5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F3.use-cwa-resource-upload.md","useCwaResourceUpload",{"label":362,"color":363},"Draft","amber",{"type":365,"value":366,"toc":1342},"minimark",[367,376,560,689,694,762,816,820,932,936,955,970,982,988,1068,1072,1338],[368,369,370,371,375],"p",{},"Use in ",[372,373,374],"strong",{},"admin tab components"," for uploadable components. Not for display components.",[377,378,383],"pre",{"className":379,"code":380,"language":381,"meta":382,"style":382},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","import { useCwaResourceManagerTab, useCwaResourceUpload } from '#imports'\n\nconst { exposeMeta, iri } = useCwaResourceManagerTab({ name: 'Upload' })\nconst {\n  filenameInputModel,\n  updating,\n  fileExists,\n  handleInputChangeFile,\n  handleInputDeleteFile\n} = useCwaResourceUpload(iri)\n\ndefineExpose(exposeMeta)\n","ts","",[384,385,386,426,433,486,494,503,511,519,527,533,546,551],"code",{"__ignoreMap":382},[387,388,391,395,399,403,406,409,412,415,419,423],"span",{"class":389,"line":390},"line",1,[387,392,394],{"class":393},"sm4w6","import",[387,396,398],{"class":397},"sOvfz"," {",[387,400,402],{"class":401},"sPB8G"," useCwaResourceManagerTab",[387,404,405],{"class":397},",",[387,407,408],{"class":401}," useCwaResourceUpload",[387,410,411],{"class":397}," }",[387,413,414],{"class":393}," from",[387,416,418],{"class":417},"seSrl"," '",[387,420,422],{"class":421},"sLL54","#imports",[387,424,425],{"class":417},"'\n",[387,427,429],{"class":389,"line":428},2,[387,430,432],{"emptyLinePlaceholder":431},true,"\n",[387,434,436,440,442,446,448,451,453,457,460,463,466,470,473,475,478,481,483],{"class":389,"line":435},3,[387,437,439],{"class":438},"swB56","const",[387,441,398],{"class":397},[387,443,445],{"class":444},"sc2zw"," exposeMeta",[387,447,405],{"class":397},[387,449,450],{"class":444}," iri",[387,452,411],{"class":397},[387,454,456],{"class":455},"sVlFx"," =",[387,458,402],{"class":459},"sKpYG",[387,461,462],{"class":401},"(",[387,464,465],{"class":397},"{",[387,467,469],{"class":468},"sDHlG"," name",[387,471,472],{"class":397},":",[387,474,418],{"class":417},[387,476,477],{"class":421},"Upload",[387,479,480],{"class":417},"'",[387,482,411],{"class":397},[387,484,485],{"class":401},")\n",[387,487,489,491],{"class":389,"line":488},4,[387,490,439],{"class":438},[387,492,493],{"class":397}," {\n",[387,495,497,500],{"class":389,"line":496},5,[387,498,499],{"class":444},"  filenameInputModel",[387,501,502],{"class":397},",\n",[387,504,506,509],{"class":389,"line":505},6,[387,507,508],{"class":444},"  updating",[387,510,502],{"class":397},[387,512,514,517],{"class":389,"line":513},7,[387,515,516],{"class":444},"  fileExists",[387,518,502],{"class":397},[387,520,522,525],{"class":389,"line":521},8,[387,523,524],{"class":444},"  handleInputChangeFile",[387,526,502],{"class":397},[387,528,530],{"class":389,"line":529},9,[387,531,532],{"class":444},"  handleInputDeleteFile\n",[387,534,536,539,541,543],{"class":389,"line":535},10,[387,537,538],{"class":397},"}",[387,540,456],{"class":455},[387,542,408],{"class":459},[387,544,545],{"class":401},"(iri)\n",[387,547,549],{"class":389,"line":548},11,[387,550,432],{"emptyLinePlaceholder":431},[387,552,554,557],{"class":389,"line":553},12,[387,555,556],{"class":459},"defineExpose",[387,558,559],{"class":401},"(exposeMeta)\n",[377,561,565],{"className":562,"code":563,"language":564,"meta":382,"style":382},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003Ctemplate>\n  \u003CCwaUiFormFile\n    v-model=\"filenameInputModel\"\n    label=\"Upload Image\"\n    :disabled=\"updating\"\n    :file-exists=\"fileExists\"\n    @change=\"handleInputChangeFile\"\n    @delete=\"handleInputDeleteFile\"\n  \u002F>\n\u003C\u002Ftemplate>\n","vue",[384,566,567,579,587,605,619,633,647,661,675,680],{"__ignoreMap":382},[387,568,569,572,576],{"class":389,"line":390},[387,570,571],{"class":397},"\u003C",[387,573,575],{"class":574},"s-h7I","template",[387,577,578],{"class":397},">\n",[387,580,581,584],{"class":389,"line":428},[387,582,583],{"class":397},"  \u003C",[387,585,586],{"class":574},"CwaUiFormFile\n",[387,588,589,593,596,599,602],{"class":389,"line":435},[387,590,592],{"class":591},"sGtlX","    v-model",[387,594,595],{"class":397},"=",[387,597,598],{"class":417},"\"",[387,600,601],{"class":421},"filenameInputModel",[387,603,604],{"class":417},"\"\n",[387,606,607,610,612,614,617],{"class":389,"line":488},[387,608,609],{"class":591},"    label",[387,611,595],{"class":397},[387,613,598],{"class":417},[387,615,616],{"class":421},"Upload Image",[387,618,604],{"class":417},[387,620,621,624,626,628,631],{"class":389,"line":496},[387,622,623],{"class":591},"    :disabled",[387,625,595],{"class":397},[387,627,598],{"class":417},[387,629,630],{"class":421},"updating",[387,632,604],{"class":417},[387,634,635,638,640,642,645],{"class":389,"line":505},[387,636,637],{"class":591},"    :file-exists",[387,639,595],{"class":397},[387,641,598],{"class":417},[387,643,644],{"class":421},"fileExists",[387,646,604],{"class":417},[387,648,649,652,654,656,659],{"class":389,"line":513},[387,650,651],{"class":591},"    @change",[387,653,595],{"class":397},[387,655,598],{"class":417},[387,657,658],{"class":421},"handleInputChangeFile",[387,660,604],{"class":417},[387,662,663,666,668,670,673],{"class":389,"line":521},[387,664,665],{"class":591},"    @delete",[387,667,595],{"class":397},[387,669,598],{"class":417},[387,671,672],{"class":421},"handleInputDeleteFile",[387,674,604],{"class":417},[387,676,677],{"class":389,"line":529},[387,678,679],{"class":397},"  \u002F>\n",[387,681,682,685,687],{"class":389,"line":535},[387,683,684],{"class":397},"\u003C\u002F",[387,686,575],{"class":574},[387,688,578],{"class":397},[690,691,693],"h2",{"id":692},"signature","Signature",[377,695,697],{"className":379,"code":696,"language":381,"meta":382,"style":382},"useCwaResourceUpload(\n  iri: ComputedRef\u003Cstring | undefined>,\n  filename: string = 'file',\n  fileDisplayType: string = 'Image'\n)\n",[384,698,699,706,728,744,758],{"__ignoreMap":382},[387,700,701,703],{"class":389,"line":390},[387,702,360],{"class":459},[387,704,705],{"class":401},"(\n",[387,707,708,711,713,716,719,723,726],{"class":389,"line":428},[387,709,710],{"class":401},"  iri: ComputedRef",[387,712,571],{"class":455},[387,714,715],{"class":401},"string ",[387,717,718],{"class":455},"|",[387,720,722],{"class":721},"sBtbT"," undefined",[387,724,725],{"class":455},">",[387,727,502],{"class":397},[387,729,730,733,735,737,740,742],{"class":389,"line":435},[387,731,732],{"class":401},"  filename: string ",[387,734,595],{"class":455},[387,736,418],{"class":417},[387,738,739],{"class":421},"file",[387,741,480],{"class":417},[387,743,502],{"class":397},[387,745,746,749,751,753,756],{"class":389,"line":488},[387,747,748],{"class":401},"  fileDisplayType: string ",[387,750,595],{"class":455},[387,752,418],{"class":417},[387,754,755],{"class":421},"Image",[387,757,425],{"class":417},[387,759,760],{"class":389,"line":496},[387,761,485],{"class":401},[763,764,765,778,798],"ul",{},[766,767,768,773,774,777],"li",{},[372,769,770],{},[384,771,772],{},"iri"," — the reactive IRI ref from ",[384,775,776],{},"useCwaResourceManagerTab",". Identifies which resource to PATCH.",[766,779,780,785,786,789,790,793,794,797],{},[372,781,782],{},[384,783,784],{},"filename"," — the PHP entity property name \u002F media object key for the file field. Defaults to ",[384,787,788],{},"'file'",". Pass the actual property name if your entity uses a different name (e.g. ",[384,791,792],{},"'image'",", ",[384,795,796],{},"'document'",").",[766,799,800,805,806,793,809,812,813,815],{},[372,801,802],{},[384,803,804],{},"fileDisplayType"," — label used in confirmation dialogs (e.g. ",[384,807,808],{},"'Image'",[384,810,811],{},"'Document'","). Defaults to ",[384,814,808],{},".",[690,817,819],{"id":818},"return-values","Return values",[821,822,823,839],"table",{},[824,825,826],"thead",{},[827,828,829,833,836],"tr",{},[830,831,832],"th",{},"Return",[830,834,835],{},"Type",[830,837,838],{},"Purpose",[840,841,842,865,882,898,916],"tbody",{},[827,843,844,849,854],{},[845,846,847],"td",{},[384,848,601],{},[845,850,851],{},[384,852,853],{},"Ref\u003Cstring>",[845,855,856,857,860,861,864],{},"Bind via ",[384,858,859],{},"v-model"," on ",[384,862,863],{},"CwaUiFormFile"," — shows current filename",[827,866,867,871,876],{},[845,868,869],{},[384,870,630],{},[845,872,873],{},[384,874,875],{},"Ref\u003Cboolean>",[845,877,878,881],{},[384,879,880],{},"true"," while an upload\u002Fdelete is in progress",[827,883,884,888,893],{},[845,885,886],{},[384,887,644],{},[845,889,890],{},[384,891,892],{},"ComputedRef\u003Cboolean>",[845,894,895,897],{},[384,896,880],{}," when a file is already uploaded for this resource",[827,899,900,904,909],{},[845,901,902],{},[384,903,658],{},[845,905,906],{},[384,907,908],{},"(file: File | undefined) => Promise\u003Cvoid>",[845,910,911,912,915],{},"Pass to ",[384,913,914],{},"@change"," on the file input",[827,917,918,922,927],{},[845,919,920],{},[384,921,672],{},[845,923,924],{},[384,925,926],{},"() => Promise\u003Cvoid>",[845,928,911,929,915],{},[384,930,931],{},"@delete",[690,933,935],{"id":934},"how-it-works","How it works",[368,937,938,942,943,946,947,950,951,954],{},[372,939,940],{},[384,941,658],{}," — sends the selected file to ",[384,944,945],{},"{iri}\u002Fupload"," as ",[384,948,949],{},"multipart\u002Fform-data"," (not base64). Sets ",[384,952,953],{},"updating.value = true"," during the upload. On success the resource store updates automatically.",[368,956,957,961,962,965,966,969],{},[372,958,959],{},[384,960,672],{}," — shows a confirmation dialog, then sends ",[384,963,964],{},"PATCH {iri}"," with ",[384,967,968],{},"{ [filename]: null }",". The API deletes the stored file.",[368,971,972,976,977,860,979,981],{},[372,973,974],{},[384,975,601],{}," — bind with ",[384,978,859],{},[384,980,863],{},". Shows the current filename when a file exists, empty otherwise.",[690,983,985,987],{"id":984},"cwauiformfile-props",[384,986,863],{}," props",[377,989,991],{"className":562,"code":990,"language":564,"meta":382,"style":382},"\u003CCwaUiFormFile\n  v-model=\"filenameInputModel\"   \u003C!-- current filename for display -->\n  label=\"Image\"\n  :disabled=\"updating\"           \u003C!-- disable input while uploading -->\n  :file-exists=\"fileExists\"      \u003C!-- shows delete button when true -->\n  accept=\"image\u002F*\"               \u003C!-- optional MIME restriction -->\n  @change=\"handleInputChangeFile\"\n  @delete=\"handleInputDeleteFile\"\n\u002F>\n",[384,992,993,999,1033,1038,1043,1048,1053,1058,1063],{"__ignoreMap":382},[387,994,995,997],{"class":389,"line":390},[387,996,571],{"class":397},[387,998,586],{"class":574},[387,1000,1001,1004,1006,1008,1010,1012,1016,1019,1022,1025,1028,1031],{"class":389,"line":428},[387,1002,1003],{"class":591},"  v-model",[387,1005,595],{"class":397},[387,1007,598],{"class":417},[387,1009,601],{"class":401},[387,1011,598],{"class":417},[387,1013,1015],{"class":1014},"s0uA6","   \u003C!--",[387,1017,1018],{"class":591}," current",[387,1020,1021],{"class":591}," filename",[387,1023,1024],{"class":591}," for",[387,1026,1027],{"class":591}," display",[387,1029,1030],{"class":591}," --",[387,1032,578],{"class":397},[387,1034,1035],{"class":389,"line":435},[387,1036,1037],{"class":401},"  label=\"Image\"\n",[387,1039,1040],{"class":389,"line":488},[387,1041,1042],{"class":401},"  :disabled=\"updating\"           \u003C!-- disable input while uploading -->\n",[387,1044,1045],{"class":389,"line":496},[387,1046,1047],{"class":401},"  :file-exists=\"fileExists\"      \u003C!-- shows delete button when true -->\n",[387,1049,1050],{"class":389,"line":505},[387,1051,1052],{"class":401},"  accept=\"image\u002F*\"               \u003C!-- optional MIME restriction -->\n",[387,1054,1055],{"class":389,"line":513},[387,1056,1057],{"class":401},"  @change=\"handleInputChangeFile\"\n",[387,1059,1060],{"class":389,"line":521},[387,1061,1062],{"class":401},"  @delete=\"handleInputDeleteFile\"\n",[387,1064,1065],{"class":389,"line":529},[387,1066,1067],{"class":401},"\u002F>\n",[690,1069,1071],{"id":1070},"complete-admin-upload-tab-example","Complete admin upload tab example",[377,1073,1075],{"className":562,"code":1074,"language":564,"meta":382,"style":382},"\u003C!-- app\u002Fcwa\u002Fcomponents\u002FHeroSection\u002Fadmin\u002FImageTab.vue -->\n\u003Ctemplate>\n  \u003CCwaUiFormFile\n    v-model=\"filenameInputModel\"\n    label=\"Upload Image\"\n    :disabled=\"updating\"\n    :file-exists=\"fileExists\"\n    @change=\"handleInputChangeFile\"\n    @delete=\"handleInputDeleteFile\"\n  \u002F>\n\u003C\u002Ftemplate>\n\n\u003Cscript setup lang=\"ts\">\nimport { useCwaResourceManagerTab, useCwaResourceUpload } from '#imports'\n\nconst { exposeMeta, iri } = useCwaResourceManagerTab({ name: 'Upload' })\nconst { filenameInputModel, updating, fileExists, handleInputChangeFile, handleInputDeleteFile }\n  = useCwaResourceUpload(iri)\n\ndefineExpose(exposeMeta)\n\u003C\u002Fscript>\n",[384,1076,1077,1083,1091,1097,1109,1121,1133,1145,1157,1169,1173,1181,1185,1209,1232,1237,1274,1307,1317,1322,1329],{"__ignoreMap":382},[387,1078,1079],{"class":389,"line":390},[387,1080,1082],{"class":1081},"sTBSN","\u003C!-- app\u002Fcwa\u002Fcomponents\u002FHeroSection\u002Fadmin\u002FImageTab.vue -->\n",[387,1084,1085,1087,1089],{"class":389,"line":428},[387,1086,571],{"class":397},[387,1088,575],{"class":574},[387,1090,578],{"class":397},[387,1092,1093,1095],{"class":389,"line":435},[387,1094,583],{"class":397},[387,1096,586],{"class":574},[387,1098,1099,1101,1103,1105,1107],{"class":389,"line":488},[387,1100,592],{"class":591},[387,1102,595],{"class":397},[387,1104,598],{"class":417},[387,1106,601],{"class":421},[387,1108,604],{"class":417},[387,1110,1111,1113,1115,1117,1119],{"class":389,"line":496},[387,1112,609],{"class":591},[387,1114,595],{"class":397},[387,1116,598],{"class":417},[387,1118,616],{"class":421},[387,1120,604],{"class":417},[387,1122,1123,1125,1127,1129,1131],{"class":389,"line":505},[387,1124,623],{"class":591},[387,1126,595],{"class":397},[387,1128,598],{"class":417},[387,1130,630],{"class":421},[387,1132,604],{"class":417},[387,1134,1135,1137,1139,1141,1143],{"class":389,"line":513},[387,1136,637],{"class":591},[387,1138,595],{"class":397},[387,1140,598],{"class":417},[387,1142,644],{"class":421},[387,1144,604],{"class":417},[387,1146,1147,1149,1151,1153,1155],{"class":389,"line":521},[387,1148,651],{"class":591},[387,1150,595],{"class":397},[387,1152,598],{"class":417},[387,1154,658],{"class":421},[387,1156,604],{"class":417},[387,1158,1159,1161,1163,1165,1167],{"class":389,"line":529},[387,1160,665],{"class":591},[387,1162,595],{"class":397},[387,1164,598],{"class":417},[387,1166,672],{"class":421},[387,1168,604],{"class":417},[387,1170,1171],{"class":389,"line":535},[387,1172,679],{"class":397},[387,1174,1175,1177,1179],{"class":389,"line":548},[387,1176,684],{"class":397},[387,1178,575],{"class":574},[387,1180,578],{"class":397},[387,1182,1183],{"class":389,"line":553},[387,1184,432],{"emptyLinePlaceholder":431},[387,1186,1188,1190,1193,1196,1199,1201,1203,1205,1207],{"class":389,"line":1187},13,[387,1189,571],{"class":397},[387,1191,1192],{"class":574},"script",[387,1194,1195],{"class":591}," setup",[387,1197,1198],{"class":591}," lang",[387,1200,595],{"class":397},[387,1202,598],{"class":417},[387,1204,381],{"class":421},[387,1206,598],{"class":417},[387,1208,578],{"class":397},[387,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230],{"class":389,"line":1211},14,[387,1213,394],{"class":393},[387,1215,398],{"class":397},[387,1217,402],{"class":401},[387,1219,405],{"class":397},[387,1221,408],{"class":401},[387,1223,411],{"class":397},[387,1225,414],{"class":393},[387,1227,418],{"class":417},[387,1229,422],{"class":421},[387,1231,425],{"class":417},[387,1233,1235],{"class":389,"line":1234},15,[387,1236,432],{"emptyLinePlaceholder":431},[387,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272],{"class":389,"line":1239},16,[387,1241,439],{"class":438},[387,1243,398],{"class":397},[387,1245,445],{"class":444},[387,1247,405],{"class":397},[387,1249,450],{"class":444},[387,1251,411],{"class":397},[387,1253,456],{"class":455},[387,1255,402],{"class":459},[387,1257,462],{"class":401},[387,1259,465],{"class":397},[387,1261,469],{"class":468},[387,1263,472],{"class":397},[387,1265,418],{"class":417},[387,1267,477],{"class":421},[387,1269,480],{"class":417},[387,1271,411],{"class":397},[387,1273,485],{"class":401},[387,1275,1277,1279,1281,1284,1286,1289,1291,1294,1296,1299,1301,1304],{"class":389,"line":1276},17,[387,1278,439],{"class":438},[387,1280,398],{"class":397},[387,1282,1283],{"class":444}," filenameInputModel",[387,1285,405],{"class":397},[387,1287,1288],{"class":444}," updating",[387,1290,405],{"class":397},[387,1292,1293],{"class":444}," fileExists",[387,1295,405],{"class":397},[387,1297,1298],{"class":444}," handleInputChangeFile",[387,1300,405],{"class":397},[387,1302,1303],{"class":444}," handleInputDeleteFile",[387,1305,1306],{"class":397}," }\n",[387,1308,1310,1313,1315],{"class":389,"line":1309},18,[387,1311,1312],{"class":455},"  =",[387,1314,408],{"class":459},[387,1316,545],{"class":401},[387,1318,1320],{"class":389,"line":1319},19,[387,1321,432],{"emptyLinePlaceholder":431},[387,1323,1325,1327],{"class":389,"line":1324},20,[387,1326,556],{"class":459},[387,1328,559],{"class":401},[387,1330,1332,1334,1336],{"class":389,"line":1331},21,[387,1333,684],{"class":397},[387,1335,1192],{"class":574},[387,1337,578],{"class":397},[1339,1340,1341],"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 .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 .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 .sBtbT, html code.shiki .sBtbT{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#89DDFF}html pre.shiki code .s0uA6, html code.shiki .s0uA6{--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-default:#FDAEB7;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:inherit}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}",{"title":382,"searchDepth":428,"depth":428,"links":1343},[1344,1345,1346,1347,1349],{"id":692,"depth":428,"text":693},{"id":818,"depth":428,"text":819},{"id":934,"depth":428,"text":935},{"id":984,"depth":428,"text":1348},"CwaUiFormFile props",{"id":1070,"depth":428,"text":1071},"Admin tab composable for file upload fields — handles selection, upload, and deletion via the API.","md",null,{},{"title":275},{"title":360,"description":1350},"0y8hwD_ebgwxmgtGjagFvb9RnlDQdzjAZjSdOsYiIzE",[1358,1360],{"title":271,"path":272,"stem":273,"description":1359,"children":-1},"Two-way reactive binding between an admin form input and a single API resource field — every change PATCHes the API automatically.",{"title":284,"path":285,"stem":286,"description":1361,"children":-1},"Resolves the correct API endpoint URL for a resource, accounting for draft\u002Fpublished state in admin edit mode.",1782512902810]