1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TimeSeriesRenderer.js","assets/vue3-apexcharts.js","assets/index.js","assets/index11.css","assets/DistributionRenderer.js","assets/DistributionRenderer.vue_vue_type_script_setup_true_lang.js","assets/HeatmapRenderer.js","assets/TableRenderer.js","assets/TableRenderer.vue_vue_type_script_setup_true_lang.js","assets/CompositeRenderer.js"])))=>i.map(i=>d[i]); 2import{d as _,j as u,o as n,F as I,n as U,i as t,t as m,k as $,l as S,e as N,m as D,ad as H,bK as b,df as f,p as R,u as q,r as x,y as E,b as G,w as j,g as v,P as K,f as z,B as A,a2 as T,A as V,c as W,aZ as B,a1 as Z}from"./index.js";import{_ as J}from"./Loading.vue_vue_type_style_index_0_lang.js";import{u as C,w as Q}from"./xlsx.js";const X={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4"},ee={class:"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase"},te={class:"text-2xl font-bold text-gray-900 dark:text-white mt-1"},re={key:0},ae={key:1,class:"text-sm font-medium text-gray-500 dark:text-gray-400"},se=_({__name:"ReportSummary",props:{summary:{}},setup(d){function l(r){return typeof r=="number"?r.toLocaleString():String(r)}return(r,i)=>(n(),u("div",X,[(n(!0),u(I,null,U(d.summary,(e,g)=>(n(),u("div",{key:g,class:"rounded-lg border border-gray-200 dark:border-0 bg-white dark:bg-gray-800 p-4"},[t("p",ee,m(e.label),1),t("p",te,[e.prefix?(n(),u("span",re,m(e.prefix),1)):$("",!0),S(" "+m(l(e.value))+" ",1),e.suffix?(n(),u("span",ae,m(e.suffix),1)):$("",!0)])]))),128))]))}}),oe={key:1,class:"flex items-center justify-center h-[15rem] bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-0"},ne={class:"text-gray-500 dark:text-gray-400 text-sm"},le=_({__name:"ReportRenderer",props:{data:{}},setup(d){const l=d,r={"time-series":b(()=>f(()=>import("./TimeSeriesRenderer.js"),__vite__mapDeps([0,1,2,3]))),distribution:b(()=>f(()=>import("./DistributionRenderer.js"),__vite__mapDeps([4,5,1,2,3]))),heatmap:b(()=>f(()=>import("./HeatmapRenderer.js"),__vite__mapDeps([6,1,2,3]))),table:b(()=>f(()=>import("./TableRenderer.js"),__vite__mapDeps([7,8,2,3]))),composite:b(()=>f(()=>import("./CompositeRenderer.js"),__vite__mapDeps([9,5,1,2,3,8])))},i=D(()=>{var e;return r[(e=l.data)==null?void 0:e.visualization]??null});return(e,g)=>i.value?(n(),N(H(i.value),{key:0,data:d.data},null,8,["data"])):(n(),u("div",oe,[t("p",ne," Unsupported visualization type: "+m(d.data.visualization),1)]))}}),de={class:"inline-flex rounded-md shadow-sm",role:"group"},M="px-4 py-1.5 text-sm font-medium text-gray-500 bg-white border-gray-300 hover:bg-gray-100 hover:text-dinesurf-green-700 focus:z-10 focus:ring-0 focus:ring-dinesurf-green-700 focus:text-dinesurf-green-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-dinesurf-green-500 dark:focus:text-white",ie=_({__name:"GranularityToggle",props:{modelValue:{}},emits:["update:modelValue"],setup(d){return(l,r)=>(n(),u("div",de,[t("button",{type:"button",class:R([M,"rounded-s-lg border",d.modelValue==="day"&&"!bg-gray-100 dark:!bg-gray-500/50"]),onClick:r[0]||(r[0]=i=>l.$emit("update:modelValue","day"))}," Daily ",2),t("button",{type:"button",class:R([M,"border-t border-b",d.modelValue==="week"&&"!bg-gray-100 dark:!bg-gray-500/50"]),onClick:r[1]||(r[1]=i=>l.$emit("update:modelValue","week"))}," Weekly ",2),t("button",{type:"button",class:R([M,"rounded-e-lg border",d.modelValue==="month"&&"!bg-gray-100 dark:!bg-gray-500/50"]),onClick:r[2]||(r[2]=i=>l.$emit("update:modelValue","month"))}," Monthly ",2)]))}}),ue={class:"flex flex-wrap items-center justify-between gap-4 mb-6"},ge={class:"flex items-center gap-3"},ce={class:"text-xl font-semibold dark:text-white text-gray-900"},me={class:"flex flex-wrap items-center gap-3"},pe={class:"flex items-center gap-2"},ye=["disabled"],be={class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},fe=["d"],xe={key:0},ve={key:1,class:"flex flex-col items-center justify-center h-[20rem] bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-0"},_e=_({__name:"ReportShell",props:{slug:{}}
2,setup(d){const l=d,r=q(),{$toast:i}=W(),e=x(null),g=x(E().format("YYYY-MM-DD")),p=x(E().subtract(1,"month").format("YYYY-MM-DD")),y=x("day"),k=x(!1),h=D(()=>{var o;return((o=e.value)==null?void 0:o.visualization)==="table"}),Y=D(()=>{const o={};return p.value&&(o.start_date=p.value),g.value&&(o.end_date=g.value),y.value&&(o.granularity=y.value),o}),{state:L,execute:P}=G({fire:"immediately",action:async()=>r.getReport(l.slug,Y.value),onSuccess(o){e.value=o.data??o}});j([p,g,y],()=>{P()}),j(()=>l.slug,()=>{e.value=null,P()});async function O(){var o;if(!h.value){window.print();return}try{k.value=!0;const a=await r.exportReport(l.slug,Y.value),s=a.data??a;if(s!=null&&s.columns&&(s!=null&&s.rows)){const w=C.aoa_to_sheet([s.columns,...s.rows]),c=C.book_new();C.book_append_sheet(c,w,"Report");const F=`${s.title??((o=e.value)==null?void 0:o.name)??"report"}_${E().format("YYYY-MM-DD")}.xlsx`.replace(/\s+/g,"_");Q(c,F),i.success("Report exported successfully")}else s!=null&&s.url?(window.open(s.url,"_blank"),i.success("Report exported successfully")):i.error("Nothing to export for this range")}catch{i.error("Failed to export report")}finally{k.value=!1}}return(o,a)=>{var w;const s=K("RouterLink");return n(),u("div",null,[t("div",ue,[t("div",ge,[v(s,{to:{name:"dashboard.reports.index"},class:"flex items-center justify-center w-8 h-8 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition"},{default:z(()=>[...a[3]||(a[3]=[t("svg",{class:"w-4 h-4 text-gray-600 dark:text-gray-300",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1}),t("h1",ce,m(((w=e.value)==null?void 0:w.name)??"Report"),1)]),t("div",me,[t("div",pe,[A(t("input",{type:"date","onUpdate:modelValue":a[0]||(a[0]=c=>p.value=c),class:"px-3 py-1.5 text-sm border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-300 focus:ring-1 focus:ring-dinesurf-green-base focus:border-dinesurf-green-base"},null,512),[[T,p.value]]),a[4]||(a[4]=t("span",{class:"text-gray-400 text-sm"},"to",-1)),A(t("input",{type:"date","onUpdate:modelValue":a[1]||(a[1]=c=>g.value=c),class:"px-3 py-1.5 text-sm border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-300 focus:ring-1 focus:ring-dinesurf-green-base focus:border-dinesurf-green-base"},null,512),[[T,g.value]])]),v(ie,{modelValue:y.value,"onUpdate:modelValue":a[2]||(a[2]=c=>y.value=c)},null,8,["modelValue"]),t("button",{onClick:O,disabled:k.value,class:R(["inline-flex items-center gap-2 px-4 py-1.5 text-sm font-medium rounded-lg transition disabled:opacity-50",h.value?"text-white bg-dinesurf-green-base hover:bg-dinesurf-green-600":"text-gray-600 dark:text-gray-300 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600"])},[(n(),u("svg",be,[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:h.value?"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4":"M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"},null,8,fe)])),S(" "+m(k.value?"Exporting...":h.value?"Export":"Print"),1)],10,ye)])]),v(J,{loading:V(L)===V(B).LOADING,"loading-class":"h-[30rem] bg-white dark:bg-gray-800 w-full rounded-lg text-center"},{default:z(()=>[e.value?(n(),u("div",xe,[e.value.summary&&e.value.summary.length>0?(n(),N(se,{key:0,summary:e.value.summary,class:"mb-6"},null,8,["summary"])):$("",!0),v(le,{data:e.value},null,8,["data"])])):V(L)===V(B).ERROR?(n(),u("div",ve,[...a[5]||(a[5]=[t("svg",{class:"w-12 h-12 text-red-300 dark:text-red-600 mb-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1),t("p",{class:"text-gray-500 dark:text-gray-400 text-sm"}," Failed to load report. Please try again. ",-1)])])):$("",!0)]),_:1},8,["loading"])])}}}),ke={class:"w-full fade-in transition-[height] min-h-full"},$e=_({__name:"[slug]",setup(d){const l=Z(),r=D(()=>l.params.slug);return(i,e)=>(n(),u("div",ke,[v(_e,{slug:r.value},null,8,["slug"])]))}});
2export{$e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.