1import{a as N}from"./chunk-S7ABJ3GB.js";import{d as W}from"./chunk-UQICVW5B.js";import{b as D}from"./chunk-GIUQ3Z3B.js";import"./chunk-M5HWWZMS.js";import"./chunk-6NJAKFE3.js";import"./chunk-SLVJP6U5.js";import{Ab as l,Ib as L,Jb as I,Ka as d,Mb as r,Nb as s,Ob as p,Pb as k,U as F,Xa as z,Z as T,_ as P,a as E,b as w,c as M,gb as f,ha as h,hb as g,hc as j,kb as C,lb as v,qb as i,rb as o,sb as x,wb as S,zb as O,zc as $}from"./chunk-S7L5X5J3.js";var H=(n,e)=>e.id,V=(n,e)=>e.wish.id;function A(n,e){if(n&1){let t=S();i(0,"button",3),O("click",function(){let c=T(t).$implicit,m=l();return P(m.setTab(c.id))}),r(1),o()}if(n&2){let t=e.$implicit,a=l();I("active",a.activeTab()===t.id),d(),p(" ",t.label," ")}}function G(n,e){n&1&&(i(0,"div",2),x(1,"div",4),i(2,"h2",5),r(3,"Loading "),i(4,"span",6),r(5,"funding"),o(),r(6,"\u2026"),o()())}function R(n,e){if(n&1&&(i(0,"div",2),x(1,"div",4),i(2,"div",8),r(3),o(),i(4,"h2",5),r(5,"No "),i(6,"span",6),r(7),o(),r(8," wishes"),o(),i(9,"p",9),r(10),o()()),n&2){let t=l(2);d(3),s(t.stubBlurb().emoji),d(4),s(t.stubBlurb().title),d(3),s(t.stubBlurb().body)}}function U(n,e){if(n&1){let t=S();i(0,"button",29),O("click",function(){T(t);let c=l().$implicit,m=l(3);return P(m.loadContributions(c.wish.id))}),r(1," Load contributor details \u2192 "),o()}}function Y(n,e){n&1&&(i(0,"div",24),r(1,"No contributions yet."),o())}function J(n,e){if(n&1&&(i(0,"q"),r(1),o(),r(2," \xB7 ")),n&2){let t=l().$implicit;d(),s(t.message)}}function K(n,e){if(n&1&&(i(0,"div",30)(1,"div",31),r(2),o(),i(3,"div",32)(4,"div",33),r(5),o(),i(6,"div",34),f(7,J,3,1),r(8),o()(),i(9,"div",35),r(10),o()()),n&2){let t=e.$implicit,a=l(5);d(2),s(t.anonymous?"?":a.init((t.gifter==null?null:t.gifter.display_name)||(t.gifter==null?null:t.gifter.handle))),d(3),p(" ",t.anonymous?"Anonymous":(t.gifter==null?null:t.gifter.display_name)||"@"+(t.gifter==null?null:t.gifter.handle)," "),d(2),g(t.message?7:-1),d(),p(" ",a.shortTime(t.contributed_at)," "),d(2),s(a.fmt(t.amount,t.currency))}}function Q(n,e){if(n&1&&(i(0,"div",25),C(1,K,11,5,"div",30,H),o()),n&2){let t=l().$implicit;d(),v(t.contributions)}}function X(n,e){if(n&1&&(i(0,"button",27),r(1),o()),n&2){let t=l().$implicit,a=l(3);d(),p("Close + cash out ",a.fmt(t.raised,t.wish.price==null?null:t.wish.price.currency))}}function Z(n,e){n&1&&(i(0,"button",28),r(1,"Share to raise more"),o())}function tt(n,e){if(n&1&&(i(0,"div",10)(1,"div",11)(2,"div",12),r(3),o(),i(4,"div",13)(5,"h2",14),r(6),o(),i(7,"div",15),r(8),o()(),i(9,"span",16),x(10,"span",17),r(11),o()(),i(12,"div",18),x(13,"div",19),o(),i(14,"div",20)(15,"span"),r(16),o(),i(17,"span"),r(18),o(),i(19,"span"),r(20),o()(),i(21,"div",21)(22,"div",22),r(23,"Contributors"),o(),f(24,U,2,0,"button",23)(25,Y,2,0,"div",24)(26,Q,3,0,"div",25),o(),i(27,"div",26),f(28,X,2,1,"button",27)(29,Z,2,0,"button",28),i(30,"button",28),r(31,"Edit wish"),o()()()),n&2){let t=e.$implicit,a=l(3);d(3),s(a.emoji(t.wish)),d(3),s(t.wish.title),d(2),s(t.wish.occasion||(t.wish.type==="outcome"?"Outcome fund":"Group buy")),d(),I("lqd-status-green",t.fullyFunded)("lqd-status-amber",!t.fullyFunded),d(2),p(" ",t.fullyFunded?"Fully funded":"In progress"," "),d(2),L("width",t.pct,"%"),d(3),k("",a.fmt(t.raised,t.wish.price==null?null:t.wish.price.currency)," of ",a.fmt(t.goal,t.wish.price==null?null:t.wish.price.currency)),d(2),k("",t.contributors," ",t.contributors===1?"contributor":"contributors"),d(2),p("",t.pct,"% funded"),d(4),g(t.contributionsLoaded?t.contributions.length===0?25:26:24),d(4),g(t.fullyFunded?28:29)}}function et(n,e){if(n&1&&(i(0,"div",7),C(1,tt,32,17,"div",10,V),o()),n&2){let t=l(2);d(),v(t.visibleItems())}}function nt(n,e){if(n&1&&f(0,R,11,3,"div",2)(1,et,3,0,"div",7),n&2){let t=l();g(t.visibleItems().length===0?0:1)}}var B=class n{wishSvc=F(N);auth=F(D);tabs=[{id:"crowdfund",label:"\u{1F4B8} Group buys"},{id:"outcomefund",label:"\u{1F3DB}\uFE0F Outcome funds"},{id:"wedding-registry",label:"\u{1F48D} Wedding"},{id:"baby-registry",label:"\u{1F476} Baby"},{id:"mutual-aid",label:"\u{1F91D} Mutual aid"},{id:"family-pool",label:"\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466} Family pool"},{id:"crisis",label:"\u{1F198} Crisis"}];activeTab=h("crowdfund");loading=h(!0);items=h([]);visibleItems=j(()=>{let e=this.activeTab();if(e==="crowdfund")return this.items().filter(a=>a.wish.type==="group");if(e==="outcomefund")return this.items().filter(a=>a.wish.type==="outcome");let t=this.occasionTagFor(e);return t?this.items().filter(a=>(a.wish.occasion||"").toLowerCase().includes(t)):[]});occasionTagFor(e){switch(e){case"wedding-registry":return"wedding";case"baby-registry":return"baby";case"mutual-aid":return"mutual";case"family-pool":return"family";case"crisis":return"crisis";default:return null}}inProgressCount=j(()=>this.items().filter(e=>e.wish.type==="group"&&!e.fullyFunded).length);ngOnInit(){return M(this,null,function*(){let e=this.auth.user()?.handle;if(!e){this.loading.set(!1);return}try{let t=yield this.wishSvc.loadMine(e),a=["wedding","baby","mutual","family","crisis"],m=t.filter(u=>{if((u.type==="group"||u.type==="outcome"||u.type==="cause")&&u.aggregates)return!0;let b=(u.occasion||"").toLowerCase();return a.some(_=>b.includes(_))}).map(u=>{let b=u.aggregates,_=b?.raised_amount||0,y=b?.goal_amount||(u.price?.amount??0),q=y>0?Math.min(100,Math.round(_/y*100)):0;return{wish:u,raised:_,goal:y,pct:q,contributors:b?.contributors||0,fullyFunded:q>=100,contributions:[],contributionsLoaded:!1}});this.items.set(m)}finally{this.loading.set(!1)}})}setTab(e){this.activeTab.set(e)}loadContributions(e){return M(this,null,function*(){let t=this.items().find(a=>a.wish.id===e);if(!(!t||t.contributionsLoaded))try{let a=yield this.wishSvc.listWishContributions(e);this.items.update(c=>c.map(m=>m.wish.id===e?w(E({},m),{contributions:a.items,contributionsLoaded:!0}):m))}catch{this.items.update(a=>a.map(c=>c.wish.id===e?w(E({},c),{contributionsLoaded:!0}):c))}})}fmt(e,t){return W(e,t||"USD")}emoji(e){return e.type==="group"?"\u{1F4B8}":e.type==="outcome"?"\u{1F3DB}\uFE0F":e.type==="cause"?"\u{1F91D}":"\u{1F381}"}init(e){return(e||"?").charAt(0).toUpperCase()}shortTime(e){let t=(Date.now()-e)/1e3;return t<60?"just now":t<3600?`${Math.round(t/60)}m ago`:t<86400?`${Math.round(t/3600)}h ago`:t<30*86400?`${Math.round(t/86400)}d ago`:new Date(e).toLocaleDateString()}stubBlurb(){let e=this.activeTab();return{crowdfund:{emoji:"\u{1F4B8}",title:"crowdfunded",body:"Mark a big-ticket wish as crowdfundable to invite friends to chip in."},outcomefund:{emoji:"\u{1F3DB}\uFE0F",title:"outcome funds",body:"Tuition, medical, housing, legal \u2014 funds that pay verified payees directly."},"wedding-registry":{emoji:"\u{1F48D}",title:"wedding registries",body:'Tag any wish with the "Wedding" occasion to surface it here as part of your registry.'},"baby-registry":{emoji:"\u{1F476}",title:"baby registries",body:'Tag any wish with the "Baby shower" occasion to add it to your registry.'},"mutual-aid":{emoji:"\u{1F91D}",title:"mutual aid pools",body:'Tag a cause wish with "Mutual aid" and friends can chip in directly.'},"family-pool":{emoji:"\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}
1",title:"family pools",body:'Tag a wish with "Family" \u2014 anyone in the household can contribute.'},crisis:{emoji:"\u{1F198}",title:"crisis funds",body:'Tag a cause wish with "Crisis" for emergency, medical, or memorial fundraising.'}}[e]}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=z({type:n,selectors:[["app-funding"]],decls:5,vars:1,consts:[[1,"gish-hub-tabs"],[1,"hub-tab",3,"active"],[1,"lqd-empty"],[1,"hub-tab",3,"click"],[1,"lqd-empty-ring"],[1,"lqd-h2"],[1,"hl"],[1,"cf-list"],[1,"cf-empty-emoji"],[1,"lqd-sub"],[1,"lqd-chrome","cf-card"],[1,"cf-head"],[1,"cf-emoji"],[1,"cf-headtext"],[1,"lqd-h2","cf-title"],[1,"cf-occasion"],[1,"lqd-status"],[1,"lqd-status-dot"],[1,"cf-bar"],[1,"cf-bar-fill"],[1,"cf-stats"],[1,"cf-contribs-block"],[1,"rpanel-header"],[1,"lqd-btn-ghost","cf-load-btn"],[1,"lqd-sub","cf-no-contribs"],[1,"cf-contrib-list"],[1,"cf-actions"],[1,"lqd-btn"],[1,"lqd-btn-ghost"],[1,"lqd-btn-ghost","cf-load-btn",3,"click"],[1,"cf-contrib-row"],[1,"cf-contrib-avatar"],[1,"cf-contrib-body"],[1,"cf-contrib-name"],[1,"cf-contrib-meta"],[1,"cf-contrib-amount"]],template:function(t,a){t&1&&(i(0,"div",0),C(1,A,2,3,"button",1,H),o(),f(3,G,7,0,"div",2)(4,nt,2,1)),t&2&&(d(),v(a.tabs),d(2),g(a.loading()?3:4))},dependencies:[$],styles:[".gish-hub-tabs[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:6px;background:#ffffff06;border:1px solid var(--border);border-radius:12px}.hub-tab[_ngcontent-%COMP%]{flex:1;min-width:120px;padding:9px 14px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text2);font-weight:500;font-size:12.5px;cursor:pointer;transition:all .15s var(--lqd-ease);letter-spacing:.01em;font-family:inherit;white-space:nowrap}.hub-tab[_ngcontent-%COMP%]:hover{color:var(--text1)}.hub-tab.active[_ngcontent-%COMP%]{border-color:var(--theme-1);background:color-mix(in srgb,var(--theme-1) 14%,transparent);color:var(--text1);font-weight:700}@media(max-width:640px){.gish-hub-tabs[_ngcontent-%COMP%]{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.gish-hub-tabs[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hub-tab[_ngcontent-%COMP%]{flex:0 0 auto;min-width:0;padding:8px 10px;font-size:11.5px}}.cf-empty-emoji[_ngcontent-%COMP%]{font-size:46px;margin-bottom:8px}.cf-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:18px}.cf-card[_ngcontent-%COMP%]{padding:22px}.cf-head[_ngcontent-%COMP%]{display:flex;gap:14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.cf-emoji[_ngcontent-%COMP%]{font-size:46px;line-height:1}.cf-headtext[_ngcontent-%COMP%]{flex:1;
1min-width:200px}.cf-title[_ngcontent-%COMP%]{margin:0;font-size:18px}.cf-occasion[_ngcontent-%COMP%]{font-size:12px;color:var(--text2);margin-top:2px}.cf-bar[_ngcontent-%COMP%]{position:relative;height:10px;border-radius:999px;background:#ffffff0d;overflow:hidden}.cf-bar-fill[_ngcontent-%COMP%]{height:100%;background:linear-gradient(90deg,var(--theme-1),var(--theme-3));border-radius:999px;transition:width .6s var(--lqd-ease)}.cf-stats[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:12px;margin-top:6px;color:var(--gold-2);flex-wrap:wrap;gap:8px}.cf-contribs-block[_ngcontent-%COMP%]{margin-top:16px}.rpanel-header[_ngcontent-%COMP%]{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:8px}.cf-load-btn[_ngcontent-%COMP%]{font-size:12px}.cf-no-contribs[_ngcontent-%COMP%]{margin-top:0}.cf-contrib-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-top:8px}.cf-contrib-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;background:#ffffff05;border:1px solid var(--border)}.cf-contrib-avatar[_ngcontent-%COMP%]{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--theme-1),var(--theme-3));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.cf-contrib-body[_ngcontent-%COMP%]{flex:1;min-width:0}.cf-contrib-name[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--text1)}.cf-contrib-meta[_ngcontent-%COMP%]{font-size:11px;color:var(--text3);margin-top:2px}.cf-contrib-meta[_ngcontent-%COMP%] q[_ngcontent-%COMP%]{font-style:italic;color:var(--text2)}.cf-contrib-amount[_ngcontent-%COMP%]{font-weight:700;color:var(--gold-2);flex-shrink:0}.cf-actions[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}@media(max-width:600px){.cf-card[_ngcontent-%COMP%]{padding:16px}.cf-emoji[_ngcontent-%COMP%]{font-size:36px}.cf-title[_ngcontent-%COMP%]{font-size:16px}.cf-stats[_ngcontent-%COMP%]{font-size:11px}}"]})};export{B as FundingComponent};
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.