| 1 |
import{R as t,a as e,d as a,r as o,b as r,k as s,l as i,c as l,s as n,i as d}from"../../../../reportHelpers.js?ver=2.0.10";import{S as p}from"../../../../_StatCard.js?ver=2.0.10";import{H as u}from"../../../../_HorizontalBarPanel.js?ver=2.0.10";import{D as m}from"../../../../_DistributionPanel.js?ver=2.0.10";import{c,E as b,t as h}from"../../../../chartPalette.js?ver=2.0.10";import{_ as g,E as f}from"../../../../descriptionToPlainText.js?ver=2.0.10";import{aO as y,S as _,T as v,$ as I,_ as S,aP as $,a5 as x,Z as P,H as C,ax as k,a0 as R,a9 as T,a8 as B,a7 as j}from"../../../../vendor.js?ver=2.0.10";import{aT as w,aU as E,E as A,a as U}from"../../../../vendor-element-plus.js?ver=2.0.10";import{u as V}from"../../../../UpgradeUrl.js?ver=2.0.10";import"../../../../_ChartTypeToggle.js?ver=2.0.10";import"../../../../vendor-echarts.js?ver=2.0.10";const q={name:"IdeaSubmissionTrend",components:{ReportPanel:t,EChart:b},mixins:[c],props:{items:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},computed:{palette(){return this.themedChartPalette()},option(){const t=this.palette;return{tooltip:{trigger:"axis",axisPointer:{type:"line"},formatter:t=>{const e=t[0];return`${e.axisValue}<br>${this.$t("Ideas Submitted")}: ${e.value}`},...h(t)},grid:{top:20,right:16,bottom:16,left:8,outerBoundsMode:"same",outerBoundsContain:"axisLabel"},xAxis:{type:"category",boundaryGap:!1,data:this.items.map(t=>t.date),axisTick:{show:!1},axisLine:{lineStyle:{color:t.border}},axisLabel:{color:t.mutedText,fontSize:12,hideOverlap:!0}},yAxis:{type:"value",min:0,minInterval:1,axisLabel:{color:t.mutedText,fontSize:12},splitLine:{lineStyle:{color:t.border,type:"dashed"}}},series:[{name:this.$t("Ideas Submitted"),type:"line",data:this.items.map(t=>t.value),smooth:!0,showSymbol:this.items.length<=14,symbolSize:7,lineStyle:{color:t.primary,width:2},itemStyle:{color:t.primary},areaStyle:{color:t.primarySoft,opacity:.35}}]}}}};const z={name:"PopularIdeas",components:{CaretTop:E,ChatSquare:w,EmptyState:f,ReportPanel:t},props:{ideas:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},emits:["export","open-idea"]},H={class:"fbs_report_roadmap_popular"},L=["onClick"],O={class:"fbs_report_roadmap_popular--details"},D={class:"fbs_report_roadmap_popular--title"},N={class:"fbs_report_roadmap_popular--board"},F={class:"fbs_report_roadmap_popular--engagement"},M=["title"],G=["title"];const Z={key:1,class:"fbs_report_page"},J={class:"fbs_report_page--stats fbs_report_page--stats-four"},K={class:"fbs_report_page--row fbs_report_page--row-even"};const Q=g({name:"RoadmapReport",components:{ReportFilterBar:e,StatCard:p,HorizontalBarPanel:u,DistributionPanel:m,IdeaSubmissionTrend:g(q,[["render",function(t,e,a,o,r,s){const i=y("EChart"),l=y("ReportPanel");return _(),v(l,{title:t.$t("Idea Submissions Over Time")},{default:I(()=>[S(i,{option:s.option,height:280,loading:a.loading},null,8,["option","loading"])]),_:1},8,["title"])}]]),PopularIdeas:g(z,[["render",function(t,e,a,o,r,s){const i=U,l=y("CaretTop"),n=A,d=y("ChatSquare"),p=y("EmptyState"),u=y("ReportPanel"),m=$("loading");return _(),v(u,{title:t.$t("Most Popular Ideas")},{actions:I(()=>[S(i,{class:"fbs_report_roadmap_popular--export",disabled:a.loading,title:a.loading?t.$t("Loading report…"):"",onClick:e[0]||(e[0]=e=>t.$emit("export"))},{default:I(()=>[B(T(t.$t("Export")),1)]),_:1},8,["disabled","title"])]),default:I(()=>[x((_(),P("div",H,[(_(!0),P(C,null,k(a.ideas,e=>(_(),P("button",{key:e.id,type:"button",class:"fbs_report_roadmap_popular--item",onClick:a=>t.$emit("open-idea",e)},[R("span",O,[R("span",D,T(e.title),1),R("span",N,T(e.board),1)]),R("span",F,[R("span",{title:t.$t("Upvotes")},[S(n,null,{default:I(()=>[S(l)]),_:1}),B(" "+T(e.upvotes),1)],8,M),R("span",{title:t.$t("Comments")},[S(n,null,{default:I(()=>[S(d)]),_:1}),B(" "+T(e.comments),1)],8,G)])],8,L))),128)),a.ideas.length||a.loading?j("",!0):(_(),v(p,{key:0,message:"No idea yet","icon-width":100,"icon-height":80}))])),[[m,a.loading]])]),_:1},8,["title"])}]]),SettingsProNotice:V},data(){return{loading:!1,boards:[],report:s(),filters:d(this.$route.query,30)}},computed:{statCards(){const t=this.report.stats;return[{key:"total",label:"Total Ideas",value:t.totalIdeas,icon:"report-total-task"},{key:"submitted",label:"Ideas Submitted",value:t.submittedIdeas,icon:"task"},{key:"public",label:"Public Ideas",value:t.publicIdeas,icon:"activities"},{key:"completed",label:"Completed Ideas",value:t.completedIdeas,icon:"report-completed"}]}},watch:{"filters.boardId"(t){n(this.$router,this.$route,t)},"$route.query.board_id"(t){const e=Array.isArray(t)?t[0]:t;String(e||"")!==String(this.filters.boardId||"")&&(this.filters.boardId=e||"")},filters:{deep:!0,handler(){this.appVars.has_pro&&this.fetchReport()}}},created(){this.requests=l()},mounted(){this.appVars.has_pro&&(this.getBoards(),this.fetchReport())},methods:{getBoards(){i(this.$get).then(t=>{this.boards=t}).catch(()=>{this.boards=[]})},fetchReport(){this.loading=!0;const t=this.requests.next();this.$get("reports/roadmap",r(this.filters)).then(e=>{t.isCurrent()&&(this.report=e.report||s())}).catch(e=>{t.isCurrent()&&(this.report=s(),this.$handleError(e))}).finally(()=>{t.isCurrent()&&(this.loading=!1)})},exportReport(){if(this.loading)return;const t=[["Popular Idea","Roadmap","Upvotes","Comments","Popularity"],...this.report.popularIdeas.map(t=>[t.title,t.board,t.upvotes,t.comments,t.popularity])];a(o("fluent-boards-roadmap",this.filters),t)},openIdea(t){t&&t.boardId&&this.$router.push({name:"task",params:{id:t.boardId,taskIdName:`${t.id}-${t.slug}`}})}}},[["render",function(t,e,a,o,r,s){const i=y("SettingsProNotice"),l=y("ReportFilterBar"),n=y("StatCard"),d=y("IdeaSubmissionTrend"),p=y("HorizontalBarPanel"),u=y("DistributionPanel"),m=y("PopularIdeas");return t.appVars.has_pro?(_(),P("div",Z,[S(l,{modelValue:r.filters,"onUpdate:modelValue":e[0]||(e[0]=t=>r.filters=t),boards:r.boards,loading:r.loading,"board-type":"roadmap","board-placeholder":"All Roadmaps","show-export":!1},null,8,["modelValue","boards","loading"]),R("div",J,[(_(!0),P(C,null,k(s.statCards,t=>(_(),v(n,{key:t.key,label:t.label,value:t.value,icon:t.icon},null,8,["label","value","icon"]))),128))]),S(d,{items:r.report.submissions,loading:r.loading},null,8,["items","loading"]),R("div",K,[S(p,{title:t.$t("Stage-wise Total Ideas"),items:r.report.byStage,"value-label":"Total Ideas",loading:r.loading},null,8,["title","items","loading"]),S(u,{title:t.$t("Ideas by Source"),items:r.report.bySource,"default-type":"pie",loading:r.loading},null,8,["title","items","loading"])]),S(m,{ideas:r.report.popularIdeas,loading:r.loading,onExport:s.exportReport,onOpenIdea:s.openIdea},null,8,["ideas","loading","onExport","onOpenIdea"])])):(_(),v(i,{key:0,title:t.$t("Roadmap"),description:t.$t("Review roadmap submissions, votes, and public idea trends with Fluent Boards Pro."),"utm-content":"feature_lock_roadmap_report","button-label":t.$t("Upgrade to Pro")},null,8,["title","description","button-label"]))}]]);export{Q as default}; |