1import{cx as e,cy as t,a1 as a,bH as s,bG as i,bJ as l,cz as n,b0 as o,b as r,c,w as h,n as d,i as u,bK as b,cA as m,b6 as v,q as p,o as f,am as g,a as S,g as y,F as C,h as k,j as w,e as B,t as G,f as M}from"./index-DEpBscAf.js";import{s as $,b as T}from"./plannerUtils.BuSoBxbZ.js";import{s as _,a as F}from"./plannerUtils.n_ZDAD4D.js";import{P as L,a as O}from"./portal-feed-tab-bar.wmlmfH4n.js";import{_ as K}from"./_plugin-vue_export-helper.BCo6x5W8.js";const P=["d4","d2r","poe2","tli","le"];const U=K({name:"BuildList",components:{PortalFeedBuilds:O,PortalFeedTabBar:L},props:{game:{type:String,default:""},showGameSelect:{type:Boolean,default:!1},isMy:{type:Boolean,default:!1},owner:{type:String,default:""},prefetch:{type:Boolean,default:!1},initialGame:{type:String,default:""},initialSeason:{type:[Number,String],default:null},showHotTab:{type:Boolean,default:!1},keyword:{type:String,default:""},showGameFilter:{type:Boolean,default:!1},showClassFilter:{type:Boolean,default:!0},showSceneFilter:{type:Boolean,default:!0}},emits:["update:game"],data(){return{isMobileUi:r,activeGame:this.initialGame||this.game||this.$store.state.user.favoriteGame||"d4",activeMainTab:"all",activeSortKey:"default",activeClass:"",activeSeason:null,activeScene:"",buildsState:{loading:!1,loadingMore:!1,builds:[],hasNextPage:!0,pageIndex:0}}},computed:{currentGame(){return this.game||this.activeGame},favoriteGame(){return this.$store.state.user.favoriteGame||"d4"},gameList(){const e={d4:this.$tm("d4.ui.portal.channelD4"),d2r:this.$tm("d4.ui.portal.channelD2r"),poe2:this.$tm("d4.ui.portal.channelPoe2"),tli:this.$tm("d4.ui.portal.channelTli"),le:this.$tm("d4.ui.portal.channelLe")},t=this.favoriteGame;return[t,...P.filter((e=>e!==t))].map((t=>({value:t,label:e[t]||t})))},tabOptions(){return this.showHotTab?[{value:"all",label:this.$tm("d4.ui.portal.buildsRecommend")},{value:"hot",label:this.$tm("d4.ui.portal.buildsRanking")}]:[{value:"all",label:this.$tm("d4.ui.portal.buildsRecommend")}]},sortActions(){return this.isMy?[{key:"default",label:this.$tm("d4.ui.portal.sortDefault")}]:[{key:"default",label:this.$tm("d4.ui.portal.sortDefault")},{key:"newest",label:this.$tm("d4.ui.portal.sortRecentPost")}]},seasonOptions(){const e=this.currentGame;return"tli"===e?l:"le"===e?$:"poe2"===e?_:"d2r"===e?n:o},buildSceneOptions(){const e=this.currentGame;let t;return t="tli"===e?b:"le"===e?T:"poe2"===e?F:"d2r"===e?m:v,[{value:"",label:this.$i18n.tm("d4.ui.portal.buildsAll")},...t]},buildFilters(){var e,t,a,s;const i=[];if(this.showGameFilter){const t=(null==(e=this.gameList.find((e=>e.value===this.currentGame)))?void 0:e.label)||"游æ";i.push({key:"game",currentLabel:t,activeKey:this.currentGame,actions:this.gameList.map((e=>({key:e.value,label:e.label})))})}if(this.showClassFilter&&this.isMobileUi&&this.buildClassOptions.length>1){const e=this.activeClass&&(null==(t=this.buildClassOptions.find((e=>e.value===this.activeClass)))?void 0:t.label)||this.$i18n.tm("d4.ui.filter.charType");i.push({key:"class",currentLabel:e,activeKey:String(this.activeClass),actions:this.buildClassOptions.map((e=>({key:String(e.value),label:e.label})))})}const l=null!=this.activeSeason&&(null==(a=this.seasonOptions.find((e=>String(e.value)===String(this.activeSeason))))?void 0:a.label)||"èµå£";if(i.push({key:"season",currentLabel:l,activeKey:null!==this.activeSeason?String(this.activeSeason):null,actions:this.seasonOptions.map((e=>({key:String(e.value),label:e.label})))}),this.showSceneFilter){const e=this.activeScene&&(null==(s=this.buildSceneOptions.find((e=>e.value===this.activeScene)))?void 0:s.label)||this.$i18n.tm("d4.ui.build.scene");i.push({key:"scene",currentLabel:e,activeKey:String(this.activeScene),actions:this.buildSceneOptions.map((e=>({key:String(e.value),label:e.label})))})}return i},buildClassOptions(){const e=this.currentGame;let t=[];return"tli"===e?t=a(s.classes).map((e=>({value:e.value,label:e.label.nickname}))):"le"===e?t=a(i.classes).map((e=>({value:e.value,label:e.label.name}))):"d4"===e?t=a(this.$i18n.tm("d4.classes")):"poe2"===e?t=a(this.$i18n.tm("poe2.classes")):"d2r"===e&&(t=a(this.$i18n.tm("d2r.classes"))),[{value:"",label:this.$i18n.tm("d4.ui.portal.buildsAll")},...t]},buildClassTags(){return this.buildClassOptions.filter((e=>""!==e.value))},filteredBuildsState(){const e=(this.keyword||"").trim().toLowerCase();return e?{...this.buildsState,builds:this.buildsState.builds.filter((t=>t.title&&t.title.toLowerCase().includes(e)))}:this.buildsState},orderBy(){return"newest"===this.activeSortKey?["_createTime","desc"]:"hot"===this.activeMainTab?["rawScore","desc","_createTime","desc"]:["score","desc","_createTime","desc"]}},watch:{keyword(){this.fetchBuilds(!0)}},mounted(){this.preloadGameData(this.currentGame),this.initSeason(),this.fetchBuilds(!0)},methods:{initSeason(){const e=this.seasonOptions.find((e=>String(e.value)===String(this.initialSeason)));e?this.activeSeason=e.value:"d4"===this.currentGame?this.activeSeason=t:this.seasonOptions.length&&(this.activeSeason=this.seasonOptions[0].value)},preloadGameData(e){"d2r"===e?this.$store.dispatch("fetchDataBase",{game:"d2r"}):"poe2"===e?this.$store.dispatch("fetchDataBase",{game:"poe2",key:"skill"}):"tli"===e?this.$store.dispatch("fetchDataBase",{game:"tli",key:"",url:""}):"le"===e&&this.$store.dispatch("fetchDataBase",{game:"le",key:"",url:""})},onGameChange(e){e!==this.activeGame&&(this.activeGame=e,this.activeClass="",this.activeScene="",this.initSeason(),this.preloadGameData(e),this.replaceUrlParam("game",e),this.$emit("update:game",e),this.fetchBuilds(!0))},onMainTabChange(e){e!==this.activeMainTab&&(this.activeMainTab=e,this.activeSortKey="default",this.replaceUrlParam("active",e),this.fetchBuilds(!0))},onSortChange(e){e!==this.activeSortKey&&(this.activeSortKey=e,this.fetchBuilds(!0))},onBuildFilterSelect({key:e,value:t}
1){if("game"===e){if(t===this.currentGame)return;this.onGameChange(t)}else if("class"===e){if(t===this.activeClass)return;this.activeClass=t,this.fetchBuilds(!0)}else if("season"===e){const e=Number(t),a=isNaN(e)?t:e;if(a===this.activeSeason)return;this.activeSeason=a,this.replaceUrlParam("season",a),this.fetchBuilds(!0)}else if("scene"===e){if(t===this.activeScene)return;this.activeScene=t,this.fetchBuilds(!0)}},onClassTagClick(e){const t=""!==e&&e===this.activeClass?"":e;t!==this.activeClass&&(this.activeClass=t,this.fetchBuilds(!0))},replaceUrlParam(e,t){try{const a=new URL(window.location.href);a.searchParams.set(e,t),window.history.replaceState({},"",a)}catch{}},async fetchBuilds(t=!0){if(null===this.activeSeason||void 0===this.activeSeason)return;const a={game:this.currentGame,season:this.activeSeason};this.activeClass&&(a.char=this.activeClass),this.activeScene&&(a.scene=this.activeScene),this.owner&&(a.owner=this.owner),this.keyword&&this.keyword.trim()&&(a.title={type:"like",value:this.keyword.trim()});const s=t?1:this.buildsState.pageIndex+1;this.buildsState=t?{loading:!0,loadingMore:!1,builds:[],hasNextPage:!0,pageIndex:0}:{...this.buildsState,loadingMore:!0};try{const i=await e({pageIndex:s,pageSize:20,condition:a,..."hot"!==this.activeMainTab&&"default"===this.activeSortKey?{mode:"recommend"}:{},orderBy:this.orderBy,enableVariant:!0,...this.isMy?{isMy:!0}:{}},{showLoading:!1}),l=i.data||[],n=!!i.hasNextPage;this.buildsState={loading:!1,loadingMore:!1,builds:t?l:[...this.buildsState.builds,...l],hasNextPage:n,pageIndex:s}}catch{this.buildsState={...this.buildsState,loading:!1,loadingMore:!1}}},setMainTab(e){if(!this.showHotTab)return;const t="all"===e?"all":"hot";t!==this.activeMainTab&&(this.activeMainTab=t,this.activeSortKey="default",this.fetchBuilds(!0))},reload(){this.fetchBuilds(!0)},loadMore(){const e=this.buildsState;e.loading||e.loadingMore||!e.hasNextPage||this.fetchBuilds(!1)}}},[["render",function(e,t,a,s,i,l){const n=w,o=u,r=p("portal-feed-tab-bar"),b=p("portal-feed-builds");return f(),c(o,{class:d(["build-list",[`build-list--${l.currentGame}`,{"build-list--mobile":i.isMobileUi}]])},{default:h((()=>[g(e.$slots,"pre-header",{},void 0,!0),S(o,{class:"build-list__sticky"},{default:h((()=>[a.showGameSelect?(f(),c(o,{key:0,class:"game-select-bar"},{default:h((()=>[S(o,{class:"game-tabs"},{default:h((()=>[(f(!0),y(C,null,k(l.gameList,(e=>(f(),c(o,{key:e.value,class:d(["game-tab",{"game-tab--active":l.currentGame===e.value}]),onClick:t=>l.onGameChange(e.value)},{default:h((()=>[S(n,{class:"game-tab__label"},{default:h((()=>[B(G(e.label),1)])),_:2},1024)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1})):M("",!0),S(r,{tabs:l.tabOptions,"active-tab":i.activeMainTab,"sort-actions":l.sortActions,"sort-key":i.activeSortKey,filters:l.buildFilters,"onUpdate:activeTab":l.onMainTabChange,"onUpdate:sortKey":l.onSortChange,onFilterSelect:l.onBuildFilterSelect},null,8,["tabs","active-tab","sort-actions","sort-key","filters","onUpdate:activeTab","onUpdate:sortKey","onFilterSelect"]),a.showClassFilter&&l.buildClassTags.length&&!i.isMobileUi?(f(),c(o,{key:1,class:"class-filter-bar"},{default:h((()=>[S(o,{class:"class-tags"},{default:h((()=>[(f(!0),y(C,null,k(l.buildClassTags,(e=>(f(),c(o,{key:e.value,class:d(["class-tag",{"class-tag--active":i.activeClass===e.value}]),onClick:t=>l.onClassTagClick(e.value)},{default:h((()=>[S(n,{class:"class-tag__label"},{default:h((()=>[B(G(e.label),1)])),_:2},1024)])),_:2},1032,["class","onClick"])))),128))])),_:1})])),_:1})):M("",!0)])),_:1}),S(b,{"builds-state":l.filteredBuildsState,onLoadMoreBuilds:l.loadMore},null,8,["builds-state","onLoadMoreBuilds"])])),_:3},8,["class"])}],["__scopeId","data-v-392ac38d"]]);export{U as _};
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.