1import{d as ee,j as te,Q as oe,k as ne,l as ae,m as g,O as se,g as H,n as re,H as ie,G as le,p as F,o as c,c as V,b as h,w as i,a as l,u as b,q as ue,t as v,F as B,e as ce,E as m,h as _,i as de,x as me,f as pe}from"./entry.Dh2pzgS5.js";import _e from"./multiselect.esm.D9COWFp2.js";import fe from"./column.esm.B3nkB1HH.js";import{_ as ge}from"./Dialog.vue.CenE5KEs.js";import be from"./datatable.esm.BTmgNfLg.js";import{s as ve}from"./structureNameOptions.Bxk_Zy8B.js";import"./checkbox.esm.BCXcFkTW.js";import"./index.esm.B-oUFWrZ.js";import"./overlayeventbus.esm.DgQqa-6N.js";import"./virtualscroller.esm.BfeCmxjt.js";import"./divider.esm.DsEkaP5R.js";import"./inputnumber.esm.BCh63Sef.js";import"./index.esm.CUAByijG.js";import"./index.esm.g3h7l9QG.js";import"./inputtext.esm.B7QGyeek.js";import"./stepperpanel.esm.DJkoPKNq.js";import"./radiobutton.esm.aVFp6Xk-.js";import"./tag.esm.C8JIXMl8.js";import"./dropdown.esm.CaeMZ07V.js";import"./stepper.esm.BwZFtaND.js";import"./upxlandStores.BLN1uqSf.js";import"./index.C5EeRGv0.js";import"./paginator.esm.Ds9urQDq.js";import"./index.esm.By1fIBp_.js";import"./index.esm.DXpYEei6.js";import"./index.esm.NLvWrKNm.js";import"./index.esm.BlBNgn7i.js";import"./index.esm.DsV2TuCD.js";const he={class:"card"},ye={class:"grid"},ke={class:"col-12"},Se={class:"flex flex-column md:flex-row md:justify-content-end md:align-items-center gap-2"},we={class:"text-center m-2"},xe={style:{overflow:"hidden","text-overflow":"ellipsis"}},Ce=l("div",{class:"text-center"},"You do not have any construction in progress",-1),Ne=l("div",{class:"text-center"},"Loading information, please waitâ¦",-1),$e=["onClick"],Le={class:"text-blue-400 font-semibold"},Me={class:"text-blue-400 font-semibold"},Ae={class:"prop-badge time-left"},De={class:"text-blue-400 font-semibold"},E="sparkletStakingHubCreateTableColumns",it=ee({__name:"index",setup(Ie){te({title:"Spark Exchange â Constructions"});const{$upxlandAPI:q,$uplandAPI:P}=de();oe();const w=ne(),y=ae(),U=g(null),x=g([]),C=g(!1),{copy:j}=se({legacy:!0}),k=g([{label:"Address",value:"full_address"},{label:"Neighborhood",value:"neighborhood_name"},{label:"City",value:"city_name"},{label:"Structure",value:"building_name"},{label:"Required Sparklet Hours",value:"required_spark_hours"},{label:"Sparklets left to stake",value:"remaining_spark_num"},{label:"Time left",value:"time_left_ms"},{label:"Remaining Spark Hours",value:"remaining_spark_hours"},{label:"Action",value:"action"}]),M=["neighborhood_name","remaining_spark_hours"],d=g(k.value.filter(e=>!M.includes(e.value))),z=H(()=>d.value.map(e=>e.value)),f=e=>z.value.includes(e),N=()=>{d.value=k.value.filter(e=>!M.includes(e.value))},G=()=>{d.value=d.value.sort((e,n)=>{const o=k.value.map(r=>r.value);return o.indexOf(e.value)-o.indexOf(n.value)}),localStorage.setItem(E,JSON.stringify(d.value))},J=()=>{const e=JSON.parse(localStorage.getItem(E)||"[]");if(!Array.isArray(e)||e.length===0){N();return}const n=k.value;d.value=e.filter(o=>n.some(r=>r.value===o.value)),d.value.length===0&&N()},A=g(Date.now()),D=g(Date.now());let $=null;re(async()=>{J(),$=ie(()=>A.value=Date.now(),1e3),await K()}),le(()=>{$&&clearInterval($)});async function K(){try{C.value=!0;const e=await q.sparkletExchange.getOwnersBuildings();x.value=e||[],D.value=Date.now()}catch(e){w.add({severity:"error",summary:"Error",detail:(e==null?void 0:e.message)??"Failed to load buildings",life:2e3})}finally{C.value=!1}}function Q(e){if(!Number.isFinite(e)||e<=0)return"";if(e<6e4)return`${Math.floor(e/1e3)}s`;const n=Math.floor(e/6e4),o=Math.floor(n/1440),r=Math.floor(n%1440/60),u=n%60,a=[];return o&&a.push(`${o}d`),r&&a.push(`${r}h`),a.push(`${u}m`),a.join(" ")}const Y=Object.fromEntries(ve.map(e=>[e.key.trim().toLowerCase(),e.value])),I=g({}),L=new Set,R=new Set;async function W(e,n){try{const o=await P.properties.getProperty(e),u=(Array.isArray(o==null?void 0:o.buildings)?o.buildings:o!=null&&o.building?[o.building]:[]).find(s=>String((s==null?void 0:s.nftID)??(s==null?void 0:s.nftId)??(s==null?void 0:s.nft_id)??"").trim()===n);return String((u==null?void 0:u.buildingName)??"").trim()||null}catch{return null}}function O(e,n,o){const r=(e??"").trim();if(!r)return"";const u=Y[r.toLowerCase()];if(u)return u;const a=String(n??"").trim(),s=String(o??r).trim(),p=`${a}:${s}`,t=I.value[p];return t||(a&&s&&!L.has(p)&&!R.has(p)&&(L.add(p),W(a,s).then(S=>{S?I.value[p]=S:R.add(p)}).finally(()=>{L.delete(p)})),r)}const X=e=>{try{j(e),w.add({severity:"info",summary:`${e}, copied!`,life:3e3})}catch{w.add({severity:"info",summary:`Failed to copy: ${e}`,life:3e3})}},Z=H(()=>(x.value??[]).map(e=>{const n=Number(e.max_stacked_spark??0),o=Number(e.stacked_spark??0),r=e!=null&&e.estimated_end_date?new Date(e.estimated_end_date).getTime():0,u=Math.max(r-A.value,0),s=Math.max(r-D.value,0)/36e5*(o/1e3);return{...e,remaining_spark_num:Math.max(n-o,0),remaining_spark_hours:Math.max(s,0),time_left_ms:u}})),T=g();return F(()=>x.value,()=>{var e;return(e=T.value)==null?void 0:e.resetPage()}),F(()=>d.value,()=>{G()},{deep:!0}),(e,n)=>{const o=me,r=pe,u=_e,a=fe,s=ge,p=be;return c(),V(B,null,[h(r,{to:"/sparklet-staking-hub/active-contracts"},{default:i(()=>[h(o,{label:e.$t("activeContracts"),icon:"pi pi-arrow-left",class:"p-button-secondary mb-3"},null,8,["label"])]),_:1}),l("div",he,[l("div",ye,[l("div",ke,[h(p,{ref_key:"tableRef",ref:T,value:b(Z),paginator:"",size:"small","resizable-columns":"","row-hover":"","column-resize-mode":"expand",loading:b(C),rows:b(y).tableSettings.numberOfRows,"rows-per-page-options":b(y).tableSettings.rowsPerPageOptions,"onUpdate:rows":b(y).setNumberOfRows,"paginator-template":b(y).tableSettings.paginatorTemplate,"current-page-report-template":b(y).tableSettings.currentPageReportTemplate},{header:i(()=>[l("div",Se,[h(u,{modelValue:b(d),"onUpdate:modelValue":n[1]||(n[1]=t=>ue(d)?d.value=t:null),options:b(k),"option-label":"label","data-key":"value",placeholder:"Select columns",style:{width:"min(20em, 100%)"},"auto-option-focus":!1},{footer:i(()=>[l("div",we,[h(o,{class:"p-button-sm",label:"Reset columns",onClick:n[0]||(n[0]=t=>N())})])]),value:i(t=>[l("div",xe,v(t.value.map(S=>S.label).join(", ")),1),!t.value||t.value.length===0?(c(),V(B,{key:0},[ce(" Select columns ")],64)):m("",!0)]),option:i(t=>[l("div",null,v(t.option.label),1)]),_:1},8,["modelValue","options"])])]),empty:i(()=>[Ce]),loading:i(()=>[Ne]),default:i(()=>[f("full_address")?(c(),_(a,{key:0,field:"full_address",header:"Address",sortable:""},{body:i(({data:t})=>[l("span",{onClick:S=>X(`${t.full_address}, ${t.city_name}`),class:"cursor-pointer ml-2"},v(t.full_address),9,$e)]),_:1})):m("",!0),f("neighborhood_name")?(c(),_(a,{key:1,field:"neighborhood_name",header:"Neighborhood",sortable:""},{body:i(({data:t})=>[l("span",null,v(t.neighborhood_name),1)]),_:1})):m("",!0),f("city_name")?(c(),_(a,{key:2,field:"city_name",header:"City",sortable:""},{body:i(({data:t})=>[l("span",null,v(t.city_name),1)]),_:1})):m("",!0),f("building_name")?(c(),_(a,{key:3,field:"building_name",header:"Structure",sortable:""},{body:i(({data:t})=>[t.building_name?(c(),_(o,{key:0,icon:"pi pi-home",size:"small",text:"",label:O(t.building_name,t.prop_id,t.nft_id
1),rounded:"",severity:"warning",onClick:n[2]||(n[2]=()=>{})},null,8,["label"])):m("",!0)]),_:1})):m("",!0),f("required_spark_hours")?(c(),_(a,{key:4,class:"text-center",field:"required_spark_hours",header:"Required Sparklet Hours",sortable:""},{body:i(({data:t})=>[l("span",Le,v(Number(t.required_spark_hours).toLocaleString()),1)]),_:1})):m("",!0),f("remaining_spark_num")?(c(),_(a,{key:5,class:"text-center",field:"remaining_spark_num",header:"Sparklets left to stake",sortable:""},{body:i(({data:t})=>[l("span",Me,v(t.remaining_spark_num.toLocaleString()),1)]),_:1})):m("",!0),f("time_left_ms")?(c(),_(a,{key:6,field:"time_left_ms",header:"Time left",sortable:""},{body:i(({data:t})=>[l("span",Ae,v(Q(t.time_left_ms)),1)]),_:1})):m("",!0),f("remaining_spark_hours")?(c(),_(a,{key:7,class:"text-center",field:"remaining_spark_hours",header:"Remaining Spark Hours",sortable:""},{body:i(({data:t})=>[l("span",De,v(Number(t.remaining_spark_hours).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})),1)]),_:1})):m("",!0),f("action")?(c(),_(a,{key:8,field:"action",header:"Action"},{body:i(({data:t})=>[h(s,{ref_key:"listDialogComponent",ref:U,"button-text":"List Construction","selected-stru
1cture":t,"building-name":O(t.building_name,t.prop_id,t.nft_id),"time-left":t.time_left_ms},null,8,["selected-structure","building-name","time-left"])]),_:1})):m("",!0)]),_:1},8,["value","loading","rows","rows-per-page-options","onUpdate:rows","paginator-template","current-page-report-template"])])])])],64)}}});export{it 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.