[{"data":1,"prerenderedAt":913},["ShallowReactive",2],{"navigation-en":3,"page-\u002Fen\u002Fcomposables\u002Fuse-gsheet-as-object":134,"\u002Fen\u002Fcomposables\u002Fuse-gsheet-as-object-surround":908},[4],{"title":5,"path":6,"stem":7,"children":8,"page":26},"En","\u002Fen","en",[9,27,48,77,90,97],{"title":10,"path":11,"stem":12,"children":13,"page":26},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[14,18,22],{"title":15,"path":16,"stem":17},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction",{"title":19,"path":20,"stem":21},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation",{"title":23,"path":24,"stem":25},"Configuration Reference","\u002Fen\u002Fgetting-started\u002Fconfiguration","en\u002F1.getting-started\u002F3.configuration",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"Composables","\u002Fen\u002Fcomposables","en\u002F2.composables",[32,36,40,44],{"title":33,"path":34,"stem":35},"useGSheet","\u002Fen\u002Fcomposables\u002Fuse-gsheet","en\u002F2.composables\u002F1.use-gsheet",{"title":37,"path":38,"stem":39},"useGSheetAsObject","\u002Fen\u002Fcomposables\u002Fuse-gsheet-as-object","en\u002F2.composables\u002F2.use-gsheet-as-object",{"title":41,"path":42,"stem":43},"useGSheetRow","\u002Fen\u002Fcomposables\u002Fuse-gsheet-row","en\u002F2.composables\u002F3.use-gsheet-row",{"title":45,"path":46,"stem":47},"useGSheetWrite","\u002Fen\u002Fcomposables\u002Fuse-gsheet-write","en\u002F2.composables\u002F4.use-gsheet-write",{"title":49,"path":50,"stem":51,"children":52,"page":26},"Authentication Modes","\u002Fen\u002Fauth-modes","en\u002F3.auth-modes",[53,57,61,65,69,73],{"title":54,"path":55,"stem":56},"Authentication Modes Overview","\u002Fen\u002Fauth-modes\u002Foverview","en\u002F3.auth-modes\u002F1.overview",{"title":58,"path":59,"stem":60},"GViz Mode (Google Visualization API)","\u002Fen\u002Fauth-modes\u002Fgviz","en\u002F3.auth-modes\u002F2.gviz",{"title":62,"path":63,"stem":64},"CSV Export Mode","\u002Fen\u002Fauth-modes\u002Fcsv","en\u002F3.auth-modes\u002F3.csv",{"title":66,"path":67,"stem":68},"Google Apps Script Mode","\u002Fen\u002Fauth-modes\u002Fappscript","en\u002F3.auth-modes\u002F4.appscript",{"title":70,"path":71,"stem":72},"API Key Mode","\u002Fen\u002Fauth-modes\u002Fapikey","en\u002F3.auth-modes\u002F5.apikey",{"title":74,"path":75,"stem":76},"Service Account Mode","\u002Fen\u002Fauth-modes\u002Fservice-account","en\u002F3.auth-modes\u002F6.service-account",{"title":78,"path":79,"stem":80,"children":81,"page":26},"AI","\u002Fen\u002Fai","en\u002F4.ai",[82,86],{"title":83,"path":84,"stem":85},"Agent Skills (AI Integration)","\u002Fen\u002Fai\u002Fagent-skills","en\u002F4.ai\u002F1.agent-skills",{"title":87,"path":88,"stem":89},"Model Context Protocol (MCP)","\u002Fen\u002Fai\u002Fmcp","en\u002F4.ai\u002F2.mcp",{"title":91,"path":92,"stem":93,"children":94},"Demos","\u002Fen\u002Fdemos","en\u002F5.demos\u002Findex",[95],{"title":96,"path":92,"stem":93},"Live Demos",{"title":98,"path":99,"stem":100,"children":101,"page":26},"Tutorials","\u002Fen\u002Ftutorials","en\u002F6.tutorials",[102,106,110,114,118,122,126,130],{"title":103,"path":104,"stem":105},"Tutorials Overview","\u002Fen\u002Ftutorials\u002Foverview","en\u002F6.tutorials\u002F0.overview",{"title":107,"path":108,"stem":109},"Apps Script Web App Tutorial","\u002Fen\u002Ftutorials\u002Fappscript-tutorial","en\u002F6.tutorials\u002F1.appscript-tutorial",{"title":111,"path":112,"stem":113},"Complete Step-by-Step Tutorial","\u002Fen\u002Ftutorials\u002Fstep-by-step","en\u002F6.tutorials\u002F1.step-by-step",{"title":115,"path":116,"stem":117},"GViz SQL Analytics Tutorial","\u002Fen\u002Ftutorials\u002Fgviz-sql-tutorial","en\u002F6.tutorials\u002F2.gviz-sql-tutorial",{"title":119,"path":120,"stem":121},"CSV Product Catalog Tutorial","\u002Fen\u002Ftutorials\u002Fcsv-catalog-tutorial","en\u002F6.tutorials\u002F3.csv-catalog-tutorial",{"title":123,"path":124,"stem":125},"API Key Inventory Tutorial","\u002Fen\u002Ftutorials\u002Fapikey-tutorial","en\u002F6.tutorials\u002F4.apikey-tutorial",{"title":127,"path":128,"stem":129},"Service Account HR & Payroll Tutorial","\u002Fen\u002Ftutorials\u002Fservice-account-tutorial","en\u002F6.tutorials\u002F5.service-account-tutorial",{"title":131,"path":132,"stem":133},"Sheet Routing Map Tutorial","\u002Fen\u002Ftutorials\u002Fsheets-routing-tutorial","en\u002F6.tutorials\u002F6.sheets-routing-tutorial",{"id":135,"title":37,"body":136,"description":902,"extension":903,"icon":904,"links":904,"meta":905,"navigation":904,"path":38,"seo":906,"stem":39,"__hash__":907},"docs_en\u002Fen\u002F2.composables\u002F2.use-gsheet-as-object.md",{"type":137,"value":138,"toc":897},"minimark",[139,147,152,396,400,407,471,477,593,597,893],[140,141,142,143,146],"p",{},"The ",[144,145,37],"code",{}," composable maps spreadsheet rows into an array of typed key-value objects using the column headers in the first row.",[148,149,151],"h2",{"id":150},"signature","Signature",[153,154,159],"pre",{"className":155,"code":156,"language":157,"meta":158,"style":158},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function useGSheetAsObject\u003CT = any[]>(\n  range: string,\n  options?: ComposablesOptions\n): {\n  data: Ref\u003CT | null>\n  pending: Ref\u003Cboolean>\n  error: Ref\u003CFetchError | null>\n  refresh: () => Promise\u003Cvoid>\n  execute: () => Promise\u003Cvoid>\n  status: Ref\u003C'idle' | 'pending' | 'success' | 'error'>\n}\n","ts","",[144,160,161,195,211,223,232,257,274,295,319,339,390],{"__ignoreMap":158},[162,163,166,170,174,178,182,185,188,192],"span",{"class":164,"line":165},"line",1,[162,167,169],{"class":168},"spNyl","function",[162,171,173],{"class":172},"s2Zo4"," useGSheetAsObject",[162,175,177],{"class":176},"sMK4o","\u003C",[162,179,181],{"class":180},"sBMFI","T",[162,183,184],{"class":176}," =",[162,186,187],{"class":180}," any",[162,189,191],{"class":190},"sTEyZ","[]",[162,193,194],{"class":176},">(\n",[162,196,198,202,205,208],{"class":164,"line":197},2,[162,199,201],{"class":200},"sHdIc","  range",[162,203,204],{"class":176},":",[162,206,207],{"class":180}," string",[162,209,210],{"class":176},",\n",[162,212,214,217,220],{"class":164,"line":213},3,[162,215,216],{"class":200},"  options",[162,218,219],{"class":176},"?:",[162,221,222],{"class":180}," ComposablesOptions\n",[162,224,226,229],{"class":164,"line":225},4,[162,227,228],{"class":176},"):",[162,230,231],{"class":176}," {\n",[162,233,235,239,241,244,246,248,251,254],{"class":164,"line":234},5,[162,236,238],{"class":237},"swJcz","  data",[162,240,204],{"class":176},[162,242,243],{"class":180}," Ref",[162,245,177],{"class":176},[162,247,181],{"class":180},[162,249,250],{"class":176}," |",[162,252,253],{"class":180}," null",[162,255,256],{"class":176},">\n",[162,258,260,263,265,267,269,272],{"class":164,"line":259},6,[162,261,262],{"class":237},"  pending",[162,264,204],{"class":176},[162,266,243],{"class":180},[162,268,177],{"class":176},[162,270,271],{"class":180},"boolean",[162,273,256],{"class":176},[162,275,277,280,282,284,286,289,291,293],{"class":164,"line":276},7,[162,278,279],{"class":237},"  error",[162,281,204],{"class":176},[162,283,243],{"class":180},[162,285,177],{"class":176},[162,287,288],{"class":180},"FetchError",[162,290,250],{"class":176},[162,292,253],{"class":180},[162,294,256],{"class":176},[162,296,298,301,303,306,309,312,314,317],{"class":164,"line":297},8,[162,299,300],{"class":237},"  refresh",[162,302,204],{"class":176},[162,304,305],{"class":176}," ()",[162,307,308],{"class":168}," =>",[162,310,311],{"class":180}," Promise",[162,313,177],{"class":176},[162,315,316],{"class":180},"void",[162,318,256],{"class":176},[162,320,322,325,327,329,331,333,335,337],{"class":164,"line":321},9,[162,323,324],{"class":237},"  execute",[162,326,204],{"class":176},[162,328,305],{"class":176},[162,330,308],{"class":168},[162,332,311],{"class":180},[162,334,177],{"class":176},[162,336,316],{"class":180},[162,338,256],{"class":176},[162,340,342,345,347,349,351,354,358,360,362,365,368,370,372,374,377,379,381,383,386,388],{"class":164,"line":341},10,[162,343,344],{"class":237},"  status",[162,346,204],{"class":176},[162,348,243],{"class":180},[162,350,177],{"class":176},[162,352,353],{"class":176},"'",[162,355,357],{"class":356},"sfazB","idle",[162,359,353],{"class":176},[162,361,250],{"class":176},[162,363,364],{"class":176}," '",[162,366,367],{"class":356},"pending",[162,369,353],{"class":176},[162,371,250],{"class":176},[162,373,364],{"class":176},[162,375,376],{"class":356},"success",[162,378,353],{"class":176},[162,380,250],{"class":176},[162,382,364],{"class":176},[162,384,385],{"class":356},"error",[162,387,353],{"class":176},[162,389,256],{"class":176},[162,391,393],{"class":164,"line":392},11,[162,394,395],{"class":176},"}\n",[148,397,399],{"id":398},"how-it-works","How It Works",[140,401,402,403,406],{},"If your spreadsheet range ",[144,404,405],{},"A1:C3"," contains:",[408,409,410,427],"table",{},[411,412,413],"thead",{},[414,415,416,421,424],"tr",{},[417,418,420],"th",{"align":419},"left","A",[417,422,423],{"align":419},"B",[417,425,426],{"align":419},"C",[428,429,430,449,460],"tbody",{},[414,431,432,439,444],{},[433,434,435],"td",{"align":419},[436,437,438],"strong",{},"id",[433,440,441],{"align":419},[436,442,443],{},"name",[433,445,446],{"align":419},[436,447,448],{},"price",[414,450,451,454,457],{},[433,452,453],{"align":419},"101",[433,455,456],{"align":419},"Wireless Mouse",[433,458,459],{"align":419},"29.99",[414,461,462,465,468],{},[433,463,464],{"align":419},"102",[433,466,467],{"align":419},"Mechanical Keyboard",[433,469,470],{"align":419},"89.99",[140,472,473,476],{},[144,474,475],{},"useGSheetAsObject('A1:C3')"," outputs:",[153,478,482],{"className":479,"code":480,"language":481,"meta":158,"style":158},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[\n  { \"id\": 101, \"name\": \"Wireless Mouse\", \"price\": 29.99 },\n  { \"id\": 102, \"name\": \"Mechanical Keyboard\", \"price\": 89.99 }\n]\n","json",[144,483,484,489,541,588],{"__ignoreMap":158},[162,485,486],{"class":164,"line":165},[162,487,488],{"class":176},"[\n",[162,490,491,494,497,499,502,504,508,511,513,515,517,519,521,523,525,527,529,531,533,535,538],{"class":164,"line":197},[162,492,493],{"class":176},"  {",[162,495,496],{"class":176}," \"",[162,498,438],{"class":168},[162,500,501],{"class":176},"\"",[162,503,204],{"class":176},[162,505,507],{"class":506},"sbssI"," 101",[162,509,510],{"class":176},",",[162,512,496],{"class":176},[162,514,443],{"class":168},[162,516,501],{"class":176},[162,518,204],{"class":176},[162,520,496],{"class":176},[162,522,456],{"class":356},[162,524,501],{"class":176},[162,526,510],{"class":176},[162,528,496],{"class":176},[162,530,448],{"class":168},[162,532,501],{"class":176},[162,534,204],{"class":176},[162,536,537],{"class":506}," 29.99",[162,539,540],{"class":176}," },\n",[162,542,543,545,547,549,551,553,556,558,560,562,564,566,568,570,572,574,576,578,580,582,585],{"class":164,"line":213},[162,544,493],{"class":176},[162,546,496],{"class":176},[162,548,438],{"class":168},[162,550,501],{"class":176},[162,552,204],{"class":176},[162,554,555],{"class":506}," 102",[162,557,510],{"class":176},[162,559,496],{"class":176},[162,561,443],{"class":168},[162,563,501],{"class":176},[162,565,204],{"class":176},[162,567,496],{"class":176},[162,569,467],{"class":356},[162,571,501],{"class":176},[162,573,510],{"class":176},[162,575,496],{"class":176},[162,577,448],{"class":168},[162,579,501],{"class":176},[162,581,204],{"class":176},[162,583,584],{"class":506}," 89.99",[162,586,587],{"class":176}," }\n",[162,589,590],{"class":164,"line":225},[162,591,592],{"class":176},"]\n",[148,594,596],{"id":595},"basic-example","Basic Example",[153,598,603],{"className":599,"code":600,"filename":601,"language":602,"meta":158,"style":158},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\ninterface Product {\n  id: string\n  name: string\n  price: string\n}\n\nconst { data: products, pending } = await useGSheetAsObject\u003CProduct[]>('A1:C50', {\n  sheet: 'products'\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"pending\">Loading products...\u003C\u002Fdiv>\n  \u003Cul v-else>\n    \u003Cli v-for=\"product in products\" :key=\"product.id\">\n      {{ product.name }} - ${{ product.price }}\n    \u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Ftemplate>\n","pages\u002Fproducts.vue","vue",[144,604,605,629,639,649,658,667,671,677,733,748,755,764,769,779,810,823,858,864,874,884],{"__ignoreMap":158},[162,606,607,609,612,615,618,621,623,625,627],{"class":164,"line":165},[162,608,177],{"class":176},[162,610,611],{"class":237},"script",[162,613,614],{"class":168}," setup",[162,616,617],{"class":168}," lang",[162,619,620],{"class":176},"=",[162,622,501],{"class":176},[162,624,157],{"class":356},[162,626,501],{"class":176},[162,628,256],{"class":176},[162,630,631,634,637],{"class":164,"line":197},[162,632,633],{"class":168},"interface",[162,635,636],{"class":180}," Product",[162,638,231],{"class":176},[162,640,641,644,646],{"class":164,"line":213},[162,642,643],{"class":237},"  id",[162,645,204],{"class":176},[162,647,648],{"class":180}," string\n",[162,650,651,654,656],{"class":164,"line":225},[162,652,653],{"class":237},"  name",[162,655,204],{"class":176},[162,657,648],{"class":180},[162,659,660,663,665],{"class":164,"line":234},[162,661,662],{"class":237},"  price",[162,664,204],{"class":176},[162,666,648],{"class":180},[162,668,669],{"class":164,"line":259},[162,670,395],{"class":176},[162,672,673],{"class":164,"line":276},[162,674,676],{"emptyLinePlaceholder":675},true,"\n",[162,678,679,682,685,688,690,693,695,698,701,703,707,709,711,714,716,719,722,724,727,729,731],{"class":164,"line":297},[162,680,681],{"class":168},"const",[162,683,684],{"class":176}," {",[162,686,687],{"class":237}," data",[162,689,204],{"class":176},[162,691,692],{"class":190}," products",[162,694,510],{"class":176},[162,696,697],{"class":190}," pending ",[162,699,700],{"class":176},"}",[162,702,184],{"class":176},[162,704,706],{"class":705},"s7zQu"," await",[162,708,173],{"class":172},[162,710,177],{"class":176},[162,712,713],{"class":180},"Product",[162,715,191],{"class":190},[162,717,718],{"class":176},">",[162,720,721],{"class":190},"(",[162,723,353],{"class":176},[162,725,726],{"class":356},"A1:C50",[162,728,353],{"class":176},[162,730,510],{"class":176},[162,732,231],{"class":176},[162,734,735,738,740,742,745],{"class":164,"line":321},[162,736,737],{"class":237},"  sheet",[162,739,204],{"class":176},[162,741,364],{"class":176},[162,743,744],{"class":356},"products",[162,746,747],{"class":176},"'\n",[162,749,750,752],{"class":164,"line":341},[162,751,700],{"class":176},[162,753,754],{"class":190},")\n",[162,756,757,760,762],{"class":164,"line":392},[162,758,759],{"class":176},"\u003C\u002F",[162,761,611],{"class":237},[162,763,256],{"class":176},[162,765,767],{"class":164,"line":766},12,[162,768,676],{"emptyLinePlaceholder":675},[162,770,772,774,777],{"class":164,"line":771},13,[162,773,177],{"class":176},[162,775,776],{"class":237},"template",[162,778,256],{"class":176},[162,780,782,785,788,791,793,795,797,799,801,804,806,808],{"class":164,"line":781},14,[162,783,784],{"class":176},"  \u003C",[162,786,787],{"class":237},"div",[162,789,790],{"class":168}," v-if",[162,792,620],{"class":176},[162,794,501],{"class":176},[162,796,367],{"class":356},[162,798,501],{"class":176},[162,800,718],{"class":176},[162,802,803],{"class":190},"Loading products...",[162,805,759],{"class":176},[162,807,787],{"class":237},[162,809,256],{"class":176},[162,811,813,815,818,821],{"class":164,"line":812},15,[162,814,784],{"class":176},[162,816,817],{"class":237},"ul",[162,819,820],{"class":168}," v-else",[162,822,256],{"class":176},[162,824,826,829,832,835,837,839,842,844,847,849,851,854,856],{"class":164,"line":825},16,[162,827,828],{"class":176},"    \u003C",[162,830,831],{"class":237},"li",[162,833,834],{"class":168}," v-for",[162,836,620],{"class":176},[162,838,501],{"class":176},[162,840,841],{"class":356},"product in products",[162,843,501],{"class":176},[162,845,846],{"class":168}," :key",[162,848,620],{"class":176},[162,850,501],{"class":176},[162,852,853],{"class":356},"product.id",[162,855,501],{"class":176},[162,857,256],{"class":176},[162,859,861],{"class":164,"line":860},17,[162,862,863],{"class":190},"      {{ product.name }} - ${{ product.price }}\n",[162,865,867,870,872],{"class":164,"line":866},18,[162,868,869],{"class":176},"    \u003C\u002F",[162,871,831],{"class":237},[162,873,256],{"class":176},[162,875,877,880,882],{"class":164,"line":876},19,[162,878,879],{"class":176},"  \u003C\u002F",[162,881,817],{"class":237},[162,883,256],{"class":176},[162,885,887,889,891],{"class":164,"line":886},20,[162,888,759],{"class":176},[162,890,776],{"class":237},[162,892,256],{"class":176},[894,895,896],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":158,"searchDepth":165,"depth":197,"links":898},[899,900,901],{"id":150,"depth":197,"text":151},{"id":398,"depth":197,"text":399},{"id":595,"depth":197,"text":596},"Map first-row header labels to JavaScript objects automatically.","md",null,{},{"title":37,"description":902},"P62sH94BUOvqjQp-cVN9d9OBU-Up7_zeGQInbdR2VFE",[909,911],{"title":33,"path":34,"stem":35,"description":910,"children":-1},"Fetch raw 2D cell grids from Google Sheets ranges.",{"title":41,"path":42,"stem":43,"description":912,"children":-1},"Extract a single row by index from a spreadsheet range.",1786088229173]