[{"data":1,"prerenderedAt":1314},["ShallowReactive",2],{"navigation-id":3,"page-\u002Fid\u002Ftutorials\u002Fgviz-sql-tutorial":133,"\u002Fid\u002Ftutorials\u002Fgviz-sql-tutorial-surround":1309},[4],{"title":5,"path":6,"stem":7,"children":8,"page":26},"Id","\u002Fid","id",[9,27,48,77,90,96],{"title":10,"path":11,"stem":12,"children":13,"page":26},"Panduan Memulai","\u002Fid\u002Fgetting-started","id\u002F1.getting-started",[14,18,22],{"title":15,"path":16,"stem":17},"Pengenalan","\u002Fid\u002Fgetting-started\u002Fintroduction","id\u002F1.getting-started\u002F1.introduction",{"title":19,"path":20,"stem":21},"Instalasi","\u002Fid\u002Fgetting-started\u002Finstallation","id\u002F1.getting-started\u002F2.installation",{"title":23,"path":24,"stem":25},"Referensi Konfigurasi","\u002Fid\u002Fgetting-started\u002Fconfiguration","id\u002F1.getting-started\u002F3.configuration",false,{"title":28,"path":29,"stem":30,"children":31,"page":26},"Composables","\u002Fid\u002Fcomposables","id\u002F2.composables",[32,36,40,44],{"title":33,"path":34,"stem":35},"useGSheet","\u002Fid\u002Fcomposables\u002Fuse-gsheet","id\u002F2.composables\u002F1.use-gsheet",{"title":37,"path":38,"stem":39},"useGSheetAsObject","\u002Fid\u002Fcomposables\u002Fuse-gsheet-as-object","id\u002F2.composables\u002F2.use-gsheet-as-object",{"title":41,"path":42,"stem":43},"useGSheetRow","\u002Fid\u002Fcomposables\u002Fuse-gsheet-row","id\u002F2.composables\u002F3.use-gsheet-row",{"title":45,"path":46,"stem":47},"useGSheetWrite","\u002Fid\u002Fcomposables\u002Fuse-gsheet-write","id\u002F2.composables\u002F4.use-gsheet-write",{"title":49,"path":50,"stem":51,"children":52,"page":26},"Mode Autentikasi","\u002Fid\u002Fauth-modes","id\u002F3.auth-modes",[53,57,61,65,69,73],{"title":54,"path":55,"stem":56},"Gambaran Umum Mode Autentikasi","\u002Fid\u002Fauth-modes\u002Foverview","id\u002F3.auth-modes\u002F1.overview",{"title":58,"path":59,"stem":60},"Mode GViz (Google Visualization API)","\u002Fid\u002Fauth-modes\u002Fgviz","id\u002F3.auth-modes\u002F2.gviz",{"title":62,"path":63,"stem":64},"Mode Ekspor CSV","\u002Fid\u002Fauth-modes\u002Fcsv","id\u002F3.auth-modes\u002F3.csv",{"title":66,"path":67,"stem":68},"Mode Google Apps Script","\u002Fid\u002Fauth-modes\u002Fappscript","id\u002F3.auth-modes\u002F4.appscript",{"title":70,"path":71,"stem":72},"Mode API Key","\u002Fid\u002Fauth-modes\u002Fapikey","id\u002F3.auth-modes\u002F5.apikey",{"title":74,"path":75,"stem":76},"Mode Service Account","\u002Fid\u002Fauth-modes\u002Fservice-account","id\u002F3.auth-modes\u002F6.service-account",{"title":78,"path":79,"stem":80,"children":81,"page":26},"Integrasi AI","\u002Fid\u002Fai","id\u002F4.ai",[82,86],{"title":83,"path":84,"stem":85},"Agent Skills (Integrasi AI)","\u002Fid\u002Fai\u002Fagent-skills","id\u002F4.ai\u002F1.agent-skills",{"title":87,"path":88,"stem":89},"Model Context Protocol (MCP)","\u002Fid\u002Fai\u002Fmcp","id\u002F4.ai\u002F2.mcp",{"title":91,"path":92,"stem":93,"children":94},"Demo Langsung","\u002Fid\u002Fdemos","id\u002F5.demos\u002Findex",[95],{"title":91,"path":92,"stem":93},{"title":97,"path":98,"stem":99,"children":100,"page":26},"Tutorial Praktis","\u002Fid\u002Ftutorials","id\u002F6.tutorials",[101,105,109,113,117,121,125,129],{"title":102,"path":103,"stem":104},"Gambaran Umum Tutorial","\u002Fid\u002Ftutorials\u002Foverview","id\u002F6.tutorials\u002F0.overview",{"title":106,"path":107,"stem":108},"Tutorial Apps Script Web App","\u002Fid\u002Ftutorials\u002Fappscript-tutorial","id\u002F6.tutorials\u002F1.appscript-tutorial",{"title":110,"path":111,"stem":112},"Tutorial Langkah demi Langkah Lengkap","\u002Fid\u002Ftutorials\u002Fstep-by-step","id\u002F6.tutorials\u002F1.step-by-step",{"title":114,"path":115,"stem":116},"Tutorial Analytics GViz SQL","\u002Fid\u002Ftutorials\u002Fgviz-sql-tutorial","id\u002F6.tutorials\u002F2.gviz-sql-tutorial",{"title":118,"path":119,"stem":120},"Tutorial Katalog Produk CSV","\u002Fid\u002Ftutorials\u002Fcsv-catalog-tutorial","id\u002F6.tutorials\u002F3.csv-catalog-tutorial",{"title":122,"path":123,"stem":124},"Tutorial Inventaris API Key","\u002Fid\u002Ftutorials\u002Fapikey-tutorial","id\u002F6.tutorials\u002F4.apikey-tutorial",{"title":126,"path":127,"stem":128},"Tutorial HR & Payroll Service Account","\u002Fid\u002Ftutorials\u002Fservice-account-tutorial","id\u002F6.tutorials\u002F5.service-account-tutorial",{"title":130,"path":131,"stem":132},"Tutorial Sheet Routing Map","\u002Fid\u002Ftutorials\u002Fsheets-routing-tutorial","id\u002F6.tutorials\u002F6.sheets-routing-tutorial",{"id":134,"title":114,"body":135,"description":1303,"extension":1304,"icon":1305,"links":1305,"meta":1306,"navigation":1305,"path":115,"seo":1307,"stem":116,"__hash__":1308},"docs_id\u002Fid\u002F6.tutorials\u002F2.gviz-sql-tutorial.md",{"type":136,"value":137,"toc":1299},"minimark",[138,142,145,150,200,216,218,222,1295],[139,140,141],"p",{},"Pelajari cara me-query, memfilter, dan mengagregasi data langsung di server Google menggunakan Google Visualization API (GViz) dan query SQL.",[143,144],"hr",{},[146,147,149],"h2",{"id":148},"_1-setup-google-sheets","1. Setup Google Sheets",[151,152,153,162,171,187,193],"ol",{},[154,155,156,157,161],"li",{},"Buat Google Sheet publik bernama ",[158,159,160],"strong",{},"Analitik Penjualan",".",[154,163,164,165,161],{},"Beri nama tab sheet ",[158,166,167],{},[168,169,170],"code",{},"sales",[154,172,173,174,177,178,177,181,177,184,161],{},"Header di Baris 1: ",[168,175,176],{},"region",", ",[168,179,180],{},"salesperson",[168,182,183],{},"revenue",[168,185,186],{},"status",[154,188,189,190,161],{},"Bagikan sheet sebagai ",[158,191,192],{},"Anyone with the link can view",[154,194,195,196,199],{},"Tambahkan Spreadsheet ID ke ",[168,197,198],{},".env",":",[201,202,207],"pre",{"className":203,"code":204,"filename":198,"language":205,"meta":206,"style":206},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GSHEET_SPREADSHEET_ID=1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms\n","env","",[168,208,209],{"__ignoreMap":206},[210,211,214],"span",{"class":212,"line":213},"line",1,[210,215,204],{},[143,217],{},[146,219,221],{"id":220},"_2-komponen-vue-filter-sql-dinamis","2. Komponen Vue Filter SQL Dinamis",[201,223,228],{"className":224,"code":225,"filename":226,"language":227,"meta":206,"style":206},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\ninterface SaleRecord {\n  region: string\n  salesperson: string\n  revenue: number\n  status: string\n}\n\nconst selectedRegion = ref('North')\nconst minRevenue = ref(1000)\n\n\u002F\u002F Computed string query GViz SQL\nconst sqlQuery = computed(() => {\n  return `SELECT A, B, C, D WHERE A = '${selectedRegion.value}' AND C >= ${minRevenue.value} ORDER BY C DESC`\n})\n\n\u002F\u002F Fetch data terfilter menggunakan query reaktif\nconst { data: sales, pending, refresh } = await useGSheetAsObject\u003CSaleRecord[]>('A1:D100', {\n  sheet: 'sales',\n  query: sqlQuery.value\n})\n\nwatch([selectedRegion, minRevenue], () => {\n  refresh()\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"analytics-dashboard\">\n    \u003Ch1>Dashboard Analitik Penjualan\u003C\u002Fh1>\n\n    \u003Cdiv class=\"filters\">\n      \u003Clabel>Wilayah:\u003C\u002Flabel>\n      \u003Cselect v-model=\"selectedRegion\">\n        \u003Coption value=\"North\">\n          Utara (North)\n        \u003C\u002Foption>\n        \u003Coption value=\"South\">\n          Selatan (South)\n        \u003C\u002Foption>\n        \u003Coption value=\"East\">\n          Timur (East)\n        \u003C\u002Foption>\n      \u003C\u002Fselect>\n\n      \u003Clabel>Min Pendapatan ($):\u003C\u002Flabel>\n      \u003Cinput\n        v-model.number=\"minRevenue\"\n        type=\"number\"\n      >\n    \u003C\u002Fdiv>\n\n    \u003Cdiv v-if=\"pending\">\n      Mengeksekusi Query GViz SQL...\n    \u003C\u002Fdiv>\n    \u003Ctable v-else>\n      \u003Cthead>\n        \u003Ctr>\n          \u003Cth>Wilayah\u003C\u002Fth>\n          \u003Cth>Salesperson\u003C\u002Fth>\n          \u003Cth>Pendapatan\u003C\u002Fth>\n          \u003Cth>Status\u003C\u002Fth>\n        \u003C\u002Ftr>\n      \u003C\u002Fthead>\n      \u003Ctbody>\n        \u003Ctr\n          v-for=\"(row, idx) in sales\"\n          :key=\"idx\"\n        >\n          \u003Ctd>{{ row.region }}\u003C\u002Ftd>\n          \u003Ctd>{{ row.salesperson }}\u003C\u002Ftd>\n          \u003Ctd>${{ row.revenue }}\u003C\u002Ftd>\n          \u003Ctd>{{ row.status }}\u003C\u002Ftd>\n        \u003C\u002Ftr>\n      \u003C\u002Ftbody>\n    \u003C\u002Ftable>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","pages\u002Fanalytics.vue","vue",[168,229,230,262,275,286,296,307,317,323,330,360,380,385,392,415,462,469,474,480,542,560,576,583,588,611,620,627,637,642,652,675,695,700,720,740,761,783,789,799,819,825,834,854,860,869,879,884,902,910,925,940,946,956,961,982,988,997,1010,1020,1030,1050,1068,1086,1104,1113,1122,1132,1140,1155,1170,1176,1195,1213,1231,1249,1258,1267,1276,1286],{"__ignoreMap":206},[210,231,232,236,240,244,247,250,253,257,259],{"class":212,"line":213},[210,233,235],{"class":234},"sMK4o","\u003C",[210,237,239],{"class":238},"swJcz","script",[210,241,243],{"class":242},"spNyl"," setup",[210,245,246],{"class":242}," lang",[210,248,249],{"class":234},"=",[210,251,252],{"class":234},"\"",[210,254,256],{"class":255},"sfazB","ts",[210,258,252],{"class":234},[210,260,261],{"class":234},">\n",[210,263,265,268,272],{"class":212,"line":264},2,[210,266,267],{"class":242},"interface",[210,269,271],{"class":270},"sBMFI"," SaleRecord",[210,273,274],{"class":234}," {\n",[210,276,278,281,283],{"class":212,"line":277},3,[210,279,280],{"class":238},"  region",[210,282,199],{"class":234},[210,284,285],{"class":270}," string\n",[210,287,289,292,294],{"class":212,"line":288},4,[210,290,291],{"class":238},"  salesperson",[210,293,199],{"class":234},[210,295,285],{"class":270},[210,297,299,302,304],{"class":212,"line":298},5,[210,300,301],{"class":238},"  revenue",[210,303,199],{"class":234},[210,305,306],{"class":270}," number\n",[210,308,310,313,315],{"class":212,"line":309},6,[210,311,312],{"class":238},"  status",[210,314,199],{"class":234},[210,316,285],{"class":270},[210,318,320],{"class":212,"line":319},7,[210,321,322],{"class":234},"}\n",[210,324,326],{"class":212,"line":325},8,[210,327,329],{"emptyLinePlaceholder":328},true,"\n",[210,331,333,336,340,342,346,349,352,355,357],{"class":212,"line":332},9,[210,334,335],{"class":242},"const",[210,337,339],{"class":338},"sTEyZ"," selectedRegion ",[210,341,249],{"class":234},[210,343,345],{"class":344},"s2Zo4"," ref",[210,347,348],{"class":338},"(",[210,350,351],{"class":234},"'",[210,353,354],{"class":255},"North",[210,356,351],{"class":234},[210,358,359],{"class":338},")\n",[210,361,363,365,368,370,372,374,378],{"class":212,"line":362},10,[210,364,335],{"class":242},[210,366,367],{"class":338}," minRevenue ",[210,369,249],{"class":234},[210,371,345],{"class":344},[210,373,348],{"class":338},[210,375,377],{"class":376},"sbssI","1000",[210,379,359],{"class":338},[210,381,383],{"class":212,"line":382},11,[210,384,329],{"emptyLinePlaceholder":328},[210,386,388],{"class":212,"line":387},12,[210,389,391],{"class":390},"sHwdD","\u002F\u002F Computed string query GViz SQL\n",[210,393,395,397,400,402,405,407,410,413],{"class":212,"line":394},13,[210,396,335],{"class":242},[210,398,399],{"class":338}," sqlQuery ",[210,401,249],{"class":234},[210,403,404],{"class":344}," computed",[210,406,348],{"class":338},[210,408,409],{"class":234},"()",[210,411,412],{"class":242}," =>",[210,414,274],{"class":234},[210,416,418,422,425,428,431,434,436,439,442,445,447,450,452,454,456,459],{"class":212,"line":417},14,[210,419,421],{"class":420},"s7zQu","  return",[210,423,424],{"class":234}," `",[210,426,427],{"class":255},"SELECT A, B, C, D WHERE A = '",[210,429,430],{"class":234},"${",[210,432,433],{"class":338},"selectedRegion",[210,435,161],{"class":234},[210,437,438],{"class":338},"value",[210,440,441],{"class":234},"}",[210,443,444],{"class":255},"' AND C >= ",[210,446,430],{"class":234},[210,448,449],{"class":338},"minRevenue",[210,451,161],{"class":234},[210,453,438],{"class":338},[210,455,441],{"class":234},[210,457,458],{"class":255}," ORDER BY C DESC",[210,460,461],{"class":234},"`\n",[210,463,465,467],{"class":212,"line":464},15,[210,466,441],{"class":234},[210,468,359],{"class":338},[210,470,472],{"class":212,"line":471},16,[210,473,329],{"emptyLinePlaceholder":328},[210,475,477],{"class":212,"line":476},17,[210,478,479],{"class":390},"\u002F\u002F Fetch data terfilter menggunakan query reaktif\n",[210,481,483,485,488,491,493,496,499,502,504,507,509,512,515,518,520,523,526,529,531,533,536,538,540],{"class":212,"line":482},18,[210,484,335],{"class":242},[210,486,487],{"class":234}," {",[210,489,490],{"class":238}," data",[210,492,199],{"class":234},[210,494,495],{"class":338}," sales",[210,497,498],{"class":234},",",[210,500,501],{"class":338}," pending",[210,503,498],{"class":234},[210,505,506],{"class":338}," refresh ",[210,508,441],{"class":234},[210,510,511],{"class":234}," =",[210,513,514],{"class":420}," await",[210,516,517],{"class":344}," useGSheetAsObject",[210,519,235],{"class":234},[210,521,522],{"class":270},"SaleRecord",[210,524,525],{"class":338},"[]",[210,527,528],{"class":234},">",[210,530,348],{"class":338},[210,532,351],{"class":234},[210,534,535],{"class":255},"A1:D100",[210,537,351],{"class":234},[210,539,498],{"class":234},[210,541,274],{"class":234},[210,543,545,548,550,553,555,557],{"class":212,"line":544},19,[210,546,547],{"class":238},"  sheet",[210,549,199],{"class":234},[210,551,552],{"class":234}," '",[210,554,170],{"class":255},[210,556,351],{"class":234},[210,558,559],{"class":234},",\n",[210,561,563,566,568,571,573],{"class":212,"line":562},20,[210,564,565],{"class":238},"  query",[210,567,199],{"class":234},[210,569,570],{"class":338}," sqlQuery",[210,572,161],{"class":234},[210,574,575],{"class":338},"value\n",[210,577,579,581],{"class":212,"line":578},21,[210,580,441],{"class":234},[210,582,359],{"class":338},[210,584,586],{"class":212,"line":585},22,[210,587,329],{"emptyLinePlaceholder":328},[210,589,591,594,597,599,602,604,607,609],{"class":212,"line":590},23,[210,592,593],{"class":344},"watch",[210,595,596],{"class":338},"([selectedRegion",[210,598,498],{"class":234},[210,600,601],{"class":338}," minRevenue]",[210,603,498],{"class":234},[210,605,606],{"class":234}," ()",[210,608,412],{"class":242},[210,610,274],{"class":234},[210,612,614,617],{"class":212,"line":613},24,[210,615,616],{"class":344},"  refresh",[210,618,619],{"class":238},"()\n",[210,621,623,625],{"class":212,"line":622},25,[210,624,441],{"class":234},[210,626,359],{"class":338},[210,628,630,633,635],{"class":212,"line":629},26,[210,631,632],{"class":234},"\u003C\u002F",[210,634,239],{"class":238},[210,636,261],{"class":234},[210,638,640],{"class":212,"line":639},27,[210,641,329],{"emptyLinePlaceholder":328},[210,643,645,647,650],{"class":212,"line":644},28,[210,646,235],{"class":234},[210,648,649],{"class":238},"template",[210,651,261],{"class":234},[210,653,655,658,661,664,666,668,671,673],{"class":212,"line":654},29,[210,656,657],{"class":234},"  \u003C",[210,659,660],{"class":238},"div",[210,662,663],{"class":242}," class",[210,665,249],{"class":234},[210,667,252],{"class":234},[210,669,670],{"class":255},"analytics-dashboard",[210,672,252],{"class":234},[210,674,261],{"class":234},[210,676,678,681,684,686,689,691,693],{"class":212,"line":677},30,[210,679,680],{"class":234},"    \u003C",[210,682,683],{"class":238},"h1",[210,685,528],{"class":234},[210,687,688],{"class":338},"Dashboard Analitik Penjualan",[210,690,632],{"class":234},[210,692,683],{"class":238},[210,694,261],{"class":234},[210,696,698],{"class":212,"line":697},31,[210,699,329],{"emptyLinePlaceholder":328},[210,701,703,705,707,709,711,713,716,718],{"class":212,"line":702},32,[210,704,680],{"class":234},[210,706,660],{"class":238},[210,708,663],{"class":242},[210,710,249],{"class":234},[210,712,252],{"class":234},[210,714,715],{"class":255},"filters",[210,717,252],{"class":234},[210,719,261],{"class":234},[210,721,723,726,729,731,734,736,738],{"class":212,"line":722},33,[210,724,725],{"class":234},"      \u003C",[210,727,728],{"class":238},"label",[210,730,528],{"class":234},[210,732,733],{"class":338},"Wilayah:",[210,735,632],{"class":234},[210,737,728],{"class":238},[210,739,261],{"class":234},[210,741,743,745,748,751,753,755,757,759],{"class":212,"line":742},34,[210,744,725],{"class":234},[210,746,747],{"class":238},"select",[210,749,750],{"class":242}," v-model",[210,752,249],{"class":234},[210,754,252],{"class":234},[210,756,433],{"class":255},[210,758,252],{"class":234},[210,760,261],{"class":234},[210,762,764,767,770,773,775,777,779,781],{"class":212,"line":763},35,[210,765,766],{"class":234},"        \u003C",[210,768,769],{"class":238},"option",[210,771,772],{"class":242}," value",[210,774,249],{"class":234},[210,776,252],{"class":234},[210,778,354],{"class":255},[210,780,252],{"class":234},[210,782,261],{"class":234},[210,784,786],{"class":212,"line":785},36,[210,787,788],{"class":338},"          Utara (North)\n",[210,790,792,795,797],{"class":212,"line":791},37,[210,793,794],{"class":234},"        \u003C\u002F",[210,796,769],{"class":238},[210,798,261],{"class":234},[210,800,802,804,806,808,810,812,815,817],{"class":212,"line":801},38,[210,803,766],{"class":234},[210,805,769],{"class":238},[210,807,772],{"class":242},[210,809,249],{"class":234},[210,811,252],{"class":234},[210,813,814],{"class":255},"South",[210,816,252],{"class":234},[210,818,261],{"class":234},[210,820,822],{"class":212,"line":821},39,[210,823,824],{"class":338},"          Selatan (South)\n",[210,826,828,830,832],{"class":212,"line":827},40,[210,829,794],{"class":234},[210,831,769],{"class":238},[210,833,261],{"class":234},[210,835,837,839,841,843,845,847,850,852],{"class":212,"line":836},41,[210,838,766],{"class":234},[210,840,769],{"class":238},[210,842,772],{"class":242},[210,844,249],{"class":234},[210,846,252],{"class":234},[210,848,849],{"class":255},"East",[210,851,252],{"class":234},[210,853,261],{"class":234},[210,855,857],{"class":212,"line":856},42,[210,858,859],{"class":338},"          Timur (East)\n",[210,861,863,865,867],{"class":212,"line":862},43,[210,864,794],{"class":234},[210,866,769],{"class":238},[210,868,261],{"class":234},[210,870,872,875,877],{"class":212,"line":871},44,[210,873,874],{"class":234},"      \u003C\u002F",[210,876,747],{"class":238},[210,878,261],{"class":234},[210,880,882],{"class":212,"line":881},45,[210,883,329],{"emptyLinePlaceholder":328},[210,885,887,889,891,893,896,898,900],{"class":212,"line":886},46,[210,888,725],{"class":234},[210,890,728],{"class":238},[210,892,528],{"class":234},[210,894,895],{"class":338},"Min Pendapatan ($):",[210,897,632],{"class":234},[210,899,728],{"class":238},[210,901,261],{"class":234},[210,903,905,907],{"class":212,"line":904},47,[210,906,725],{"class":234},[210,908,909],{"class":238},"input\n",[210,911,913,916,918,920,922],{"class":212,"line":912},48,[210,914,915],{"class":242},"        v-model.number",[210,917,249],{"class":234},[210,919,252],{"class":234},[210,921,449],{"class":255},[210,923,924],{"class":234},"\"\n",[210,926,928,931,933,935,938],{"class":212,"line":927},49,[210,929,930],{"class":242},"        type",[210,932,249],{"class":234},[210,934,252],{"class":234},[210,936,937],{"class":255},"number",[210,939,924],{"class":234},[210,941,943],{"class":212,"line":942},50,[210,944,945],{"class":234},"      >\n",[210,947,949,952,954],{"class":212,"line":948},51,[210,950,951],{"class":234},"    \u003C\u002F",[210,953,660],{"class":238},[210,955,261],{"class":234},[210,957,959],{"class":212,"line":958},52,[210,960,329],{"emptyLinePlaceholder":328},[210,962,964,966,968,971,973,975,978,980],{"class":212,"line":963},53,[210,965,680],{"class":234},[210,967,660],{"class":238},[210,969,970],{"class":242}," v-if",[210,972,249],{"class":234},[210,974,252],{"class":234},[210,976,977],{"class":255},"pending",[210,979,252],{"class":234},[210,981,261],{"class":234},[210,983,985],{"class":212,"line":984},54,[210,986,987],{"class":338},"      Mengeksekusi Query GViz SQL...\n",[210,989,991,993,995],{"class":212,"line":990},55,[210,992,951],{"class":234},[210,994,660],{"class":238},[210,996,261],{"class":234},[210,998,1000,1002,1005,1008],{"class":212,"line":999},56,[210,1001,680],{"class":234},[210,1003,1004],{"class":238},"table",[210,1006,1007],{"class":242}," v-else",[210,1009,261],{"class":234},[210,1011,1013,1015,1018],{"class":212,"line":1012},57,[210,1014,725],{"class":234},[210,1016,1017],{"class":238},"thead",[210,1019,261],{"class":234},[210,1021,1023,1025,1028],{"class":212,"line":1022},58,[210,1024,766],{"class":234},[210,1026,1027],{"class":238},"tr",[210,1029,261],{"class":234},[210,1031,1033,1036,1039,1041,1044,1046,1048],{"class":212,"line":1032},59,[210,1034,1035],{"class":234},"          \u003C",[210,1037,1038],{"class":238},"th",[210,1040,528],{"class":234},[210,1042,1043],{"class":338},"Wilayah",[210,1045,632],{"class":234},[210,1047,1038],{"class":238},[210,1049,261],{"class":234},[210,1051,1053,1055,1057,1059,1062,1064,1066],{"class":212,"line":1052},60,[210,1054,1035],{"class":234},[210,1056,1038],{"class":238},[210,1058,528],{"class":234},[210,1060,1061],{"class":338},"Salesperson",[210,1063,632],{"class":234},[210,1065,1038],{"class":238},[210,1067,261],{"class":234},[210,1069,1071,1073,1075,1077,1080,1082,1084],{"class":212,"line":1070},61,[210,1072,1035],{"class":234},[210,1074,1038],{"class":238},[210,1076,528],{"class":234},[210,1078,1079],{"class":338},"Pendapatan",[210,1081,632],{"class":234},[210,1083,1038],{"class":238},[210,1085,261],{"class":234},[210,1087,1089,1091,1093,1095,1098,1100,1102],{"class":212,"line":1088},62,[210,1090,1035],{"class":234},[210,1092,1038],{"class":238},[210,1094,528],{"class":234},[210,1096,1097],{"class":338},"Status",[210,1099,632],{"class":234},[210,1101,1038],{"class":238},[210,1103,261],{"class":234},[210,1105,1107,1109,1111],{"class":212,"line":1106},63,[210,1108,794],{"class":234},[210,1110,1027],{"class":238},[210,1112,261],{"class":234},[210,1114,1116,1118,1120],{"class":212,"line":1115},64,[210,1117,874],{"class":234},[210,1119,1017],{"class":238},[210,1121,261],{"class":234},[210,1123,1125,1127,1130],{"class":212,"line":1124},65,[210,1126,725],{"class":234},[210,1128,1129],{"class":238},"tbody",[210,1131,261],{"class":234},[210,1133,1135,1137],{"class":212,"line":1134},66,[210,1136,766],{"class":234},[210,1138,1139],{"class":238},"tr\n",[210,1141,1143,1146,1148,1150,1153],{"class":212,"line":1142},67,[210,1144,1145],{"class":242},"          v-for",[210,1147,249],{"class":234},[210,1149,252],{"class":234},[210,1151,1152],{"class":255},"(row, idx) in sales",[210,1154,924],{"class":234},[210,1156,1158,1161,1163,1165,1168],{"class":212,"line":1157},68,[210,1159,1160],{"class":242},"          :key",[210,1162,249],{"class":234},[210,1164,252],{"class":234},[210,1166,1167],{"class":255},"idx",[210,1169,924],{"class":234},[210,1171,1173],{"class":212,"line":1172},69,[210,1174,1175],{"class":234},"        >\n",[210,1177,1179,1181,1184,1186,1189,1191,1193],{"class":212,"line":1178},70,[210,1180,1035],{"class":234},[210,1182,1183],{"class":238},"td",[210,1185,528],{"class":234},[210,1187,1188],{"class":338},"{{ row.region }}",[210,1190,632],{"class":234},[210,1192,1183],{"class":238},[210,1194,261],{"class":234},[210,1196,1198,1200,1202,1204,1207,1209,1211],{"class":212,"line":1197},71,[210,1199,1035],{"class":234},[210,1201,1183],{"class":238},[210,1203,528],{"class":234},[210,1205,1206],{"class":338},"{{ row.salesperson }}",[210,1208,632],{"class":234},[210,1210,1183],{"class":238},[210,1212,261],{"class":234},[210,1214,1216,1218,1220,1222,1225,1227,1229],{"class":212,"line":1215},72,[210,1217,1035],{"class":234},[210,1219,1183],{"class":238},[210,1221,528],{"class":234},[210,1223,1224],{"class":338},"${{ row.revenue }}",[210,1226,632],{"class":234},[210,1228,1183],{"class":238},[210,1230,261],{"class":234},[210,1232,1234,1236,1238,1240,1243,1245,1247],{"class":212,"line":1233},73,[210,1235,1035],{"class":234},[210,1237,1183],{"class":238},[210,1239,528],{"class":234},[210,1241,1242],{"class":338},"{{ row.status }}",[210,1244,632],{"class":234},[210,1246,1183],{"class":238},[210,1248,261],{"class":234},[210,1250,1252,1254,1256],{"class":212,"line":1251},74,[210,1253,794],{"class":234},[210,1255,1027],{"class":238},[210,1257,261],{"class":234},[210,1259,1261,1263,1265],{"class":212,"line":1260},75,[210,1262,874],{"class":234},[210,1264,1129],{"class":238},[210,1266,261],{"class":234},[210,1268,1270,1272,1274],{"class":212,"line":1269},76,[210,1271,951],{"class":234},[210,1273,1004],{"class":238},[210,1275,261],{"class":234},[210,1277,1279,1282,1284],{"class":212,"line":1278},77,[210,1280,1281],{"class":234},"  \u003C\u002F",[210,1283,660],{"class":238},[210,1285,261],{"class":234},[210,1287,1289,1291,1293],{"class":212,"line":1288},78,[210,1290,632],{"class":234},[210,1292,649],{"class":238},[210,1294,261],{"class":234},[1296,1297,1298],"style",{},"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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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":206,"searchDepth":213,"depth":264,"links":1300},[1301,1302],{"id":148,"depth":264,"text":149},{"id":220,"depth":264,"text":221},"Bangun dashboard analitik penjualan dinamis dengan filter query SQL GViz.","md",null,{},{"title":114,"description":1303},"Esjtn5jWZQ_oflPmDry9W5fEQPSdZ9u7AV4ufmgXsP0",[1310,1312],{"title":110,"path":111,"stem":112,"description":1311,"children":-1},"Tutorial end-to-end mencakup Apps Script, GCP Console, dan Admin Portal Nuxt.",{"title":118,"path":119,"stem":120,"description":1313,"children":-1},"Bangun katalog produk e-commerce menggunakan stream ekspor CSV langsung.",1786088234634]