1import{U as y,d as Q,L as ee,r as C,A as te,w as D,E as N,G as w,H as U,J as E,_ as se,b as L,o as f,e as p,h as i,j as T,m as g,i as I,n as P,F as q,f as oe,p as ie,q as b,u as ae,a as R,K as j,t as $,c as re,W as le,M as ue,N as de}from"./app-COxbobFQ.js";import{S as H}from"./SEOService-y-CouJXq.js";function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Y(e,t){for(var s=0;s<t.length;s++){var o=t[s];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function W(e,t,s){return t&&Y(e.prototype,t),s&&Y(e,s),e}function G(e){return+e.replace(/px/,"")}function ce(e){var t=window.devicePixelRatio,s=getComputedStyle(e),o=G(s.getPropertyValue("width")),a=G(s.getPropertyValue("height"));e.setAttribute("width",(o*t).toString()),e.setAttribute("height",(a*t).toString())}function S(e,t){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=Math.random()*(t-e)+e;return Math.floor(o*Math.pow(10,s))/Math.pow(10,s)}function X(e){return e[S(0,e.length)]}var he=.00125,fe=5e-4,pe=9e-4,me=1e-5,ge=6,ve=80,ye=.9,be=1.7,Te=.2,Ce=.6,_e=.03,ke=.07,J=15,Z=82,we=150,Se=100,Ie=250,Be=40,Ae=["#fcf403","#62fc03","#f4fc03","#03e7fc","#03fca5","#a503fc","#fc03ad","#fc03c2"];function x(e){var t=1920;return Math.log(e)/Math.log(t)}var K=function(){function e(t){z(this,e);var s=t.initialPosition,o=t.direction,a=t.confettiRadius,u=t.confettiColors,l=t.emojis,r=t.emojiSize,h=t.canvasWidth,v=S(ye,be,3),d=v*x(h);this.confettiSpeed={x:d,y:d},this.finalConfettiSpeedX=S(Te,Ce,3),this.rotationSpeed=l.length?.01:S(_e,ke,3)*x(h),this.dragForceCoefficient=S(fe,pe,6),this.radius={x:a,y:a},this.initialRadius=a,this.rotationAngle=o==="left"?S(0,.2,3):S(-.2,0,3),this.emojiSize=r,this.emojiRotationAngle=S(0,2*Math.PI),this.radiusYUpdateDirection="down";var c=o==="left"?S(Z,J)*Math.PI/180:S(-J,-Z)*Math.PI/180;this.absCos=Math.abs(Math.cos(c)),this.absSin=Math.abs(Math.sin(c));var _=S(-we,0),k={x:s.x+(o==="left"?-_:_)*this.absCos,y:s.y-_*this.absSin};this.currentPosition=Object.assign({},k),this.initialPosition=Object.assign({},k),this.color=l.length?null:X(u),this.emoji=l.length?X(l):null,this.createdAt=new Date().getTime(),this.direction=o}return W(e,[{key:"draw",value:function(s){var o=this.currentPosition,a=this.radius,u=this.color,l=this.emoji,r=this.rotationAngle,h=this.emojiRotationAngle,v=this.emojiSize,d=window.devicePixelRatio;u?(s.fillStyle=u,s.beginPath(),s.ellipse(o.x*d,o.y*d,a.x*d,a.y*d,r,0,2*Math.PI),s.fill()):l&&(s.font="".concat(v,"px serif"),s.save(),s.translate(d*
1o.x,d*o.y),s.rotate(h),s.textAlign="center",s.fillText(l,0,0),s.restore())}},{key:"updatePosition",value:function(s,o){var a=this.confettiSpeed,u=this.dragForceCoefficient,l=this.finalConfettiSpeedX,r=this.radiusYUpdateDirection,h=this.rotationSpeed,v=this.createdAt,d=this.direction,c=o-v;if(a.x>l&&(this.confettiSpeed.x-=u*s),this.currentPosition.x+=a.x*(d==="left"?-this.absCos:this.absCos)*s,this.currentPosition.y=this.initialPosition.y-a.y*this.absSin*c+he*Math.pow(c,2)/2,this.rotationSpeed-=this.emoji?1e-4:me*s,this.rotationSpeed<0&&(this.rotationSpeed=0),this.emoji){this.emojiRotationAngle+=this.rotationSpeed*s%(2*Math.PI);return}r==="down"?(this.radius.y-=s*h,this.radius.y<=0&&(this.radius.y=0,this.radiusYUpdateDirection="up")):(this.radius.y+=s*h,this.radius.y>=this.initialRadius&&(this.radius.y=this.initialRadius,this.radiusYUpdateDirection="down"))}},{key:"getIsVisibleOnCanvas",value:function(s){return this.currentPosition.y<s+Se}}]),e}();function Fe(){var e=document.createElement("canvas");return e.style.position="fixed",e.style.width="100%",e.style.height="100%",e.style.top="0",e.style.left="0",e.style.zIndex="1000",e.style.pointerEvents="none",document.body.appendChild(e),e}function $e(e){var t=e.confettiRadius,s=t===void 0?ge:t,o=e.confettiNumber,a=o===void 0?e.confettiesNumber||(e.emojis?Be:Ie):o,u=e.confettiColors,l=u===void 0?Ae:u,r=e.emojis,h=r===void 0?e.emojies||[]:r,v=e.emojiSize,d=v===void 0?ve:v;return e.emojies&&console.error("emojies argument is deprecated, please use emojis instead"),e.confettiesNumber&&console.error("confettiesNumber argument is deprecated, please use confettiNumber instead"),{confettiRadius:s,confettiNumber:a,confettiColors:l,emojis:h,emojiSize:d}}var Pe=function(){function e(t){var s=this;z(this,e),this.canvasContext=t,this.shapes=[],this.promise=new Promise(function(o){return s.resolvePromise=o})}return W(e,[{key:"getBatchCompletePromise",value:function(){return this.promise}},{key:"addShapes",value:function(){var s;(s=this.shapes).push.apply(s,arguments)}},{key:"complete",value:function(){var s;return this.shapes.length?!1:((s=this.resolvePromise)===null||s===void 0||s.call(this),!0)}},{key:"processShapes",value:function(s,o,a){var u=this,l=s.timeDelta,r=s.currentTime;this.shapes=this.shapes.filter(function(h){return h.updatePosition(l,r),h.draw(u.canvasContext),a?h.getIsVisibleOnCanvas(o):!0})}}]),e}(),ne=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};z(this,e),this.activeConfettiBatches=[],this.canvas=t.canvas||Fe(),this.canvasContext=this.canvas.getContext("2d"),this.requestAnimationFrameRequested=!1,this.lastUpdated=new Date().getTime(),this.iterationIndex=0,this.loop=this.loop.bind(this),requestAnimationFrame(this.loop)}return W(e,[{key:"loop",value:function(){this.requestAnimationFrameRequested=!1,ce(this.canvas);var s=new Date().getTime(),o=s-this.lastUpdated,a=this.canvas.offsetHeight,u=this.iterationIndex%10===0;this.activeConfettiBatches=this.activeConfettiBatches.filter(function(l){return l.processShapes({timeDelta:o,currentTime:s},a,u),u?!l.complete():!0}),this.iterationIndex++,this.queueAnimationFrameIfNeeded(s)}},{key:"queueAnimationFrameIfNeeded",value:function(s){this.requestAnimationFrameRequested||this.activeConfettiBatches.length<1||(this.requestAnimationFrameRequested=!0,this.lastUpdated=s||new Date().getTime(),requestAnimationFrame(this.loop))}},{key:"addConfetti",value:function(){for(var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=$e(s),a=o.confettiRadius,u=o.confettiNumber,l=o.confettiColors,r=o.emojis,h=o.emojiSize,v=this.canvas.getBoundingClientRect(),d=v.width,c=v.height,_=c*5/7,k={x:0,y:_},B={x:d,y:_},A=new Pe(this.canvasContext),m=0;m<u/2;m++){var n=new K({initialPosition:k,direction:"right",confettiRadius:a,confettiColors:l,confettiNumber:u,emojis:r,emojiSize:h,canvasWidth:d}),F=new K({initialPosition:B,direction:"left",confettiRadius:a,confettiColors:l,confettiNumber:u,emojis:r,emojiSize:h,canvasWidth:d});A.addShapes(n,F)}return this.activeConfettiBatches.push(A),this.queueAnimationFrameIfNeeded(),A.getBatchCompletePromise()}},{key:"clearCanvas",value:function(){this.activeConfettiBatches=[]}},{key:"destroyCanvas",value:function(){this.canvas.remove()}}]),e}();const V=[{id:1,slug:"skip-the-line",name:"Skip the Line",short_desc:"Skip the line and get your tool reviewed sooner.",stripe_test_price_id:"price_1P8ewuDLNVtZU6omt7y51z2I",stripe_live_price_id:"price_1P8huVDLNVtZU6om6SQtiMcp",price:14.99,success_callback:y+"/profile",success_callback_suffix:"?type=skip-the-line",cancel_callback:y+"/profile"},{id:2,slug:"home-boost",name:"Home Boost",short_desc:"Get your tool featured on the home page (1 boost, use whenever you want).",stripe_test_price_id:"price_1P8eycDLNVtZU6omCkkxGgb7",stripe_live_price_id:"price_1P8huPDLNVtZU6omLO4y4JaE",price:14.99,success_callback:y+"/profile",success_callback_suffix:"?type=boost",cancel_callback:y+"/profile"},{id:3,slug:"3-home-boost",name:"3 Home Boosts",short_desc:"Get your tool featured on the home page (3 boosts, use whenever you want).",stripe_test_price_id:"price_1P8ezHDLNVtZU6omklIDwq8s",stripe_live_price_id:"price_1P8huLDLNVtZU6omEb1Vmm4M",price:39.99,success_callback:y+"/profile",success_callback_suffix:"?type=boost",cancel_callback:y+"/profile"}],Le=new ne,Ne=Q({props:{isFeatureToolModalOpen:{type:Boolean,required:!0},tools:{type:Array,required:!1},user:{type:Object,required:!0},closeFeatureToolModal:{type:Function,required:!0}},name:"ToolsMultiline",components:{Loader:ee},setup(e){const t=C(e.tools),s=C(e.user),o=C(e.isFeatureToolModalOpen),a=C(e.closeFeatureToolModal),u=C(),l=C(!1),r=C(!1);return te(async()=>
1{console.log("COUCOU",o.value),console.log("USER",s.value)}),D(()=>e.isFeatureToolModalOpen,h=>{o.value=h}),D(()=>e.tools,h=>{t.value=h}),D(()=>e.user,h=>{s.value=h}),{tools:t,user:s,isFeatureToolModalOpen:o,closeFeatureToolModal:a,toolToBoost:u,isBoostingTool:l,isBuyingBoosts:r}},methods:{closeFeatureToolModal(){this.$emit("closeFeatureToolModal")},async buyBoosts(e){this.isBuyingBoosts=!0,console.log("buyBoosts",e);const t=e===1?"home-boost":"3-home-boost",s=V.find(u=>u.slug===t),a=await N(E,"purchaseProduct")({product_slug:s==null?void 0:s.slug,user_slug:this.user.slug});if(console.log("stripeSession",a),!a.data){w("An error occured, please try again later","is-danger"),U.sendMessage(`An error occured while buying boosts for the user ${this.user.slug}`,!1);return}try{window.location.href=a.data.url}catch{w("An error occured, please try again later","is-danger"),U.sendMessage(`An error occured while buying boosts for the user ${this.user.slug}`,!1);return}},selectToolToBoost(e){var t;console.log("selectToolToBoost",e),!((t=e.premiumFeatures)!=null&&t.isHomeBoosted)&&(this.toolToBoost=e)},async startBoost(){var e,t,s;if(this.toolToBoost){this.isBoostingTool=!0;try{const a=await N(E,"boostTool")({toolId:this.toolToBoost.id});if((e=a.data)!=null&&e.success)this.user.boosts=(this.user.boosts||0)-1,this.toolToBoost.premiumFeatures={...this.toolToBoost.premiumFeatures||{},isHomeBoosted:!0},w("Tool boosted successfully!","is-success"),Le.addConfetti();else{const u=((t=a.data)==null?void 0:t.error)==="no_boosts"?"You don't have any boost left.":((s=a.data)==null?void 0:s.error)==="already_boosted"?"This tool is already boosted.":"Could not boost this tool, please try again.";w(u,"is-danger")}}catch(o){console.error("startBoost failed",o),w("An error occurred while boosting.","is-danger")}finally{setTimeout(()=>{this.isBoostingTool=!1,this.closeFeatureToolModal()},1500)}}}}}),Ee={class:"modal-card"},Me={class:"modal-card-head"},Oe={class:"modal-card-title",style:{"font-size":"1.3rem !important"}},De={class:"modal-card-body"},Re={class:"content"},je={class:"has-text-centered"},Ue={key:0},qe={style:{"font-size":"1.2rem"}},Ve={style:{display:"flex"},class:"mt-3"},ze={key:1},We={style:{"font-size":"1.2rem"}},He={key:0,style:{display:"flex","align-items":"center"},class:"mb-2"},Ye={style:{flex:"1"}},Ge={class:"radio"},Xe=["disabled","checked","onChange"],Je={style:{flex:"2"}},Ze=["onClick"],xe=["src"],Ke=["onClick"],Qe={style:{"font-size":"1.3rem"}},et={key:0,class:"tag purple-bg-light"};function tt(e,t,s,o,a,u){var h,v,d;const l=L("font-awesome-icon"),r=L("Loader");return f(),p("div",{class:P(["modal",e.isFeatureToolModalOpen?"is-active":""])},[i("div",{class:"modal-background",onClick:t[0]||(t[0]=(...c)=>e.closeFeatureToolModal&&e.closeFeatureToolModal(...c))}),i("div",Ee,[i("header",Me,[i("p",Oe,[T(l,{class:"mr-2 purple",icon:["fas","bolt"]}),t[5]||(t[5]=g(" Feature your tool on the homepage with a Boost "))]),i("button",{class:"delete","aria-label":"close",onClick:t[1]||(t[1]=(...c)=>e.closeFeatureToolModal&&e.closeFeatureToolModal(...c))})]),i("section",De,[i("div",Re,[t[15]||(t[15]=i("div",{class:"notification purple-bg-light mb-1"},[i("p",null,' One Boost puts your tool on the top of the homepage for 3 days, in the "Featured Tools" section. ')],-1)),i("div",je,[t[6]||(t[6]=g(" You currently have ")),i("strong",null,I(((h=e.user)==null?void 0:h.boosts)||0),1),t[7]||
1(t[7]=g(" Boost(s). "))]),t[16]||(t[16]=i("hr",null,null,-1)),!((v=e.user)!=null&&v.boosts)||((d=e.user)==null?void 0:d.boosts)<1?(f(),p("div",Ue,[i("span",qe,[T(l,{class:"mr-2 purple",icon:["fas","bolt"]}),t[8]||(t[8]=g(" Buy Boosts"))]),i("div",Ve,[i("button",{class:P([e.isBuyingBoosts?"is-loading disabled-purple-btn":"","mx-2 button purple-btn"]),onClick:t[2]||(t[2]=c=>e.buyBoosts(1)),style:{flex:"1"}},[T(l,{class:"mr-2",icon:["fas","bolt"]}),t[9]||(t[9]=g(" Buy 1 Boost for $14.99 "))],2),i("button",{class:P([e.isBuyingBoosts?"is-loading disabled-purple-btn":"","mx-2 button button purple-btn"]),onClick:t[3]||(t[3]=c=>e.buyBoosts(3)),style:{flex:"1"}},[T(l,{class:"mr-2",icon:["fas","bolt"]}),t[10]||(t[10]=g(" Buy 3 Boosts for $39.99 "))],2)]),t[11]||(t[11]=i("p",{class:"m-2"}," Buy now, use whenever you want. Boosts never expire. ",-1))])):(f(),p("div",ze,[i("span",We,[T(l,{class:"mr-2 purple",icon:["fas","bolt"]}),t[12]||(t[12]=g(" Boost my tool for 3 days"))]),t[14]||(t[14]=i("p",null,"Please select the tool you want to boost.",-1)),(f(!0),p(q,null,oe(e.tools,c=>{var _,k;return f(),p("div",{key:c.id},[c.isVerified?(f(),p("div",He,[i("div",Ye,[i("label",Ge,[i("input",{disabled:(_=c.premiumFeatures)==null?void 0:_.isHomeBoosted,checked:c===e.toolToBoost,type:"radio",onChange:B=>e.selectToolToBoost(c)},null,40,Xe)])]),i("div",Je,[i("figure",{class:"image is-64x64 is-clickable",onClick:B=>e.selectToolToBoost(c)},[i("img",{src:c.logo||"/logo_transparent.png",alt:"tool image"},null,8,xe)],8,Ze)]),i("div",{style:{flex:"9"},class:"is-clickable",onClick:B=>e.selectToolToBoost(c)},[i("span",Qe,[g(I(c.name)+" ",1),(k=c.premiumFeatures)!=null&&k.isHomeBoosted?(f(),p("span",et,"Already boosted!")):b("",!0)])],8,Ke)])):b("",!0)])}),128)),e.isBoostingTool?(f(),ie(r,{key:0})):b("",!0),i("button",{onClick:t[4]||(t[4]=(...c)=>e.startBoost&&e.startBoost(...c)),class:P(["button is-medium",!e.toolToBoost||e.isBoostingTool?"disabled-purple-btn":"purple-btn"]),style:{display:"block",margin:"auto"}},[T(l,{class:"mr-2",icon:["fas","bolt"],disabled:!e.toolToBoost},null,8,["disabled"]),t[13]||(t[13]=g(" Boost this tool "))],2)]))])]),t[17]||(t[17]=i("footer",{class:"modal-card-foot"},null,-1))])],2)}const st=se(Ne,[["render",tt]]),ot=new ne,it=Q({name:"UserProfile",components:{FeatureToolModal:st,Loader:ee},setup(){const e=ae(),t=C(),s=C(!1),o=C(),a=C(!0),u=C(!1),l=C(),r=C(!1),h=C(!1),v=C(!1),d=C(!1),c=C(!1),_=localStorage.getItem("idt_d")!==null?JSON.parse(localStorage.getItem("idt_d")):null;console.log("CONNECTED",_);const k=e.params.slug;k||R.push("/"),te(async()=>{if(t.value=await j.getUserBySlug(k),H.updateMetaData("profile",{title:`${t.value.username}'s profile | Indie Dev Tools`,description:`Discover ${t.value.username}'s published tools and bio on Indie Dev Tools.`,path:e.path}),window.scrollTo({top:0,behavior:"smooth"}),console.log("TEST",e.query["tool-added"]),e.query["tool-added"]&&(c.value=!0),o.value=await $.getToolsByCreator(t.value),_!==null&&(s.value=t.value.id===_.uid),!s.value)o.value=o.value.filter(m=>m.isActive&&m.isVerified&&!(m.hasBeenClaimed&&!m.wasClaimedAccepted));else if(l.value=o.value.find(m=>{var n;return m.isVerified===!1&&!m.verified_at&&!m.hasBeenClaimed&&!((n=m.premiumFeatures)!=null&&n.hasSkippedLine)}),console.log("route.query",e.query),e.query.type==="boost-tool"&&(console.log("lol"),r.value=!0),e.query.session_id&&e.query.type){const m=N(E,"checkoutCompleted");console.log("session to test",e.query.session_id);const n=await m({sessionId:e.query.session_id});console.log("checkoutResult.data",n.data),n.data.success?(e.query.type==="skip-the-line"&&(v.value=!0,ot.addConfetti()),e.query.type==="boost"&&(t.value=await j.getUserBySlug(k),w("You've successfully purchased boost(s)!","is-success"),setTimeout(()=>{d.value=!0,r.value=!0},500))):n.data.error==="already_paid"?w("Purchase already validated! You can now enjoy your feature(s)!","is-warning"):w("An error occured, please contact the admin (link in footer)","is-danger")}u.value=s.value&&t.value.role==="groot",a.value=!1});const B=m=>{const n=new Date(m);n.setDate(n.getDate()+le);const F=Math.floor((n.getTime()-new Date().getTime())/(1e3*60*60*24));return console.log("days diff",F),{reviewDate:n.toLocaleDateString("en-GB",{weekday:"short",day:"numeric",month:"long"}),daysDiff:F}},A=V.find(m=>m.slug==="skip-the-line");return window.addEventListener("keydown",m=>{m.key==="Escape"&&r.value&&(r.value=!1)}),{user:t,userIsUserConnected:s,userTools:o,isLoadingProfile:a,isUserAdmin:u,lastToolInWaitingLine:l,getReviewDate:B,skipLineProduct:A,isFeatureToolModalOpen:r,isLineSkipCallback:v,isBoostCallback:d,isSkippingLine:h,wasJustAdded:c}},computed:{formattedBio(){return this.user!==void 0?this.user.bio.replace(/\n/g,"<br>"):""}},methods:{async editProfile(){localStorage.setItem("idt_us",JSON.stringify(this.user)),R.push("/edit-profile")},async toggleToolVisibility(e){console.log("change data",e),e.isActive=!e.isActive,await $.updateTool(e),e.isActive?w("Your tool is now listed on Indie Dev Tools","is-success"):w("Your tool is now hidden on Indie Dev Tools","is-warning")},async skipLine(){this.isSkippingLine=!0,console.log("skipLine",this.lastToolInWaitingLine);const e=V.find(o=>o.slug==="skip-the-line"),s=await N(E,"purchaseProduct")({product_slug:e==null?void 0:e.slug,tool_slug:this.lastToolInWaitingLine.slug,user_slug:this.user.slug});if(console.log("stripeSession",s),!s.data){w("An error occured, please try again later","is-danger"),U.sendMessage(`An error occured while skipping the line for tool ${this.lastToolInWaitingLine.name}`,!1);return}window.location.href=s.data.url},goToTool(e){R.push("/tool/"+e)},async generateSitemap(){console.log("UOOO");let e='<?xml version="1.0" encoding="UTF-8"?>';
1e+=`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 2 <url> 3 <loc>${y}</loc> 4 </url> 5 <url> 6 <loc>${y}/categories</loc> 7 </url> 8 <url> 9 <loc>${y}/tags</loc> 10 </url> 11 <url> 12 <loc>${y}/searches</loc> 13 </url> 14 <url> 15 <loc>${y}/domain-rating-leaderboard</loc> 16 </url> 17 `;const t=await $.getAllTools(),s=await $.getAllTags(),o=await re.getAllCategories(),a=await $.getAllSearches(),u=await j.getAllUsers(),l=H.generateSitemapXML(e,t,s,a,o,u);e=l.xml;const r=l.indexablePages;e+=`<url> 18 <loc>${y}/blog/</loc> 19 </url>`,e+=`<url> 20 <loc>${y}/blog/best-seo-tools-for-developers.html</loc> 21 </url>`,e+=`<url> 22 <loc>${y}/blog/developer-create-portfolio-with-github.html</loc> 23 </url>`,e+=`<url> 24 <loc>${y}/blog/web-scrapping-definition-usage.html</loc> 25 </url>`,e+=`<url> 26 <loc>${y}/blog/10-free-API-for-your-development-project.html</loc> 27 </url>`,e+=`<url> 28 <loc>${y}/blog/developer-ide-comparison.html</loc> 29 </url>`,e+=`<url> 30 <loc>${y}/blog/3-popups-to-add-your-website.html</loc> 31 </url>`,e+=`<url> 32 <loc>${y}/blog/3-free-chrome-extensions-for-SEO.html</loc> 33 </url>`,e+=`<url> 34 <loc>${y}/blog/chrome-devtools-guide.html</loc> 35 </url>`,e+=`<url> 36 <loc>${y}/blog/dry-dont-repeat-yourself.html</loc> 37 </url>`,e+=`<url> 38 <loc>${y}/blog/best-advices-improve-app-ux.html</loc> 39 </url>`,e+="</urlset>";const h=new Blob([e],{type:"application/xml"}),v=URL.createObjectURL(h),d=document.createElement("a");d.href=v,d.download="sitemap.xml",document.body.appendChild(d),d.click(),document.body.removeChild(d),w(`Sitemap file generated with ${r} indexable pages`,"is-success")},getLinkWithTracker(e){return e.indexOf("?")>-1?`${e}&ref=indiedev.tools&utm_source=indiedev.tools`:`${e}?ref=indiedev.tools&utm_source=indiedev.tools`}}}),nt={class:"hero is-light",id:"presentation"},at={class:"hero-body mb-6",style:{"max-width":"62rem","min-width":"60vw",margin:"auto"}},rt={key:1},lt={class:"title is-2 has-text-centered mb-1"},ut={class:"has-text-centered"},dt=["href"],ct=["href"],ht={class:"subtitle is-4 mt-6"},ft=["innerHTML"],pt={class:""},mt={class:"subtitle is-4"},gt={key:0,class:"notification is-warning is-light"},vt={class:"has-text-centered"},yt={class:"has-text-primary"},bt={class:"my-2 has-text-centered"},Tt=["disabled"],Ct={key:1,class:"notification is-success is-light"},_t={class:"column is-2",style:{"align-content":"center","text-align":"center"}},kt=["onClick"],wt=["src"],St={class:"column is-7",style:{"align-self":"center"}},It={class:"title is-5 mb-1"},Bt=["onClick"],At={key:1,class:"tag purple-bg-light"},Ft={key:2,class:"tag is-primary"},$t={key:3,class:"tag is-danger"},Pt={key:4,class:"tag is-primary"},Lt=["href"],Nt={key:0,style:{"font-size":"0.8rem"}},Et={key:0,class:"column is-3",style:{"align-self":"center"}},Mt=["id","name","onChange","checked","disabled"],Ot=["for"],Dt={key:2};function Rt(e,t,s,o,a,u){var v,d,c,_,k,B,A,m;const l=L("Loader"),r=L("font-awesome-icon"),h=L("FeatureToolModal");return f(),p(q,null,[i("section",nt,[i("div",at,[e.isLoadingProfile?(f(),ie(l,{key:0})):b("",!0),e.isLoadingProfile?b("",!0):(f(),p("span",rt,[i("h1",lt,[g(I((v=e.user)==null?void 0:v.username)+" ",1),e.userIsUserConnected?(f(),p("span",{key:0,onClick:t[0]||(t[0]=(...n)=>e.editProfile&&e.editProfile(...n)),class:"tag is-warning is-clickable"},[T(r,{class:"mr-2",icon:["fas","pen"]}),t[4]||(t[4]=g(" Edit your profile"))])):b("",!0)]),i("div",ut,[(d=e.user)!=null&&d.twitter&&((c=e.user)==null?void 0:c.twitter)!=""?(f(),p("a",{key:0,href:(_=e.user)==null?void 0:_.twitter,target:"_blank"},[T(r,{class:"mr-2 has-text-dark",icon:["fab","x-twitter"]})],8,dt)):b("",!0),(k=e.user)!=null&&k.github&&((B=e.user)==null?void 0:B.github)!=""?(f(),p("a",{key:1,href:(A=e.user)==null?void 0:A.github,target:"_blank"},[T(r,{class:"mr-2 has-text-dark",icon:["fab","github"]})],8,ct)):b("",!0)]),i("h3",ht,[T(r,{class:"mr-2",icon:["fas","align-left"]}),t[5]||(t[5]=g(" Bio "))]),i("p",{class:"mb-6",innerHTML:e.formattedBio},null,8,ft),i("div",pt,[i("h3",mt,[T(r,{class:"mr-2",icon:["fas","tools"]}),t[6]||(t[6]=g(" Published Tools "))]),e.userIsUserConnected&&e.lastToolInWaitingLine&&!e.isLineSkipCallback?(f(),p("div",gt,[t[12]||(t[12]=ue('<div class="cssload-circle my-3" data-v-3bd3ae7e><div class="cssload-up" data-v-3bd3ae7e><div class="cssload-innera" data-v-3bd3ae7e></div></div><div class="cssload-down" data-v-3bd3ae7e><div class="cssload-innerb" data-v-3bd3ae7e></div></div></div>',1)),i("p",vt,[t[7]||(t[7]=g(" Your tool ")),i("b",null,I(e.lastToolInWaitingLine.name),1),t[8]||(t[8]=g(" is in pending verification. Estimated veritifcation date: ")),i("b",yt,I(e.getReviewDate(e.lastToolInWaitingLine.created_at).reviewDate),1),g(" (in "+I(e.getReviewDate(e.lastToolInWaitingLine.created_at).daysDiff)+" days). ",1)]),i("p",bt,[t[9]||(t[9]=g(" You can ")),t[10]||(t[10]=i("b",null,"skip the line",-1)),g(" and be verified in the next 24 hours by paying $"+I((m=e.skipLineProduct)==null?void 0:m.price)+" (you'll be refunded if your tool is not accepted). ",1)]),i("button",{class:P(["button is-info",e.isSkippingLine?"is-loading":""]),disabled:e.isSkippingLine,style:{color:"white",margin:"auto",display:"block"},onClick:t[1]||(t[1]=(...n)=>e.skipLine&&e.skipLine(...n))},[T(r,{class:"ml-2",style:{"font-size":"0.9rem"},icon:["fas","forward"]}),t[11]||(t[11]=g(" Skip the line! "))],10,Tt)])):b("",!0),e.isLineSkipCallback?(f(),p("div",Ct,t[13]||(t[13]=[i("p",{class:"has-text-centered"}
39," You have successfully skipped the line ð Your tool will be verified in the next 24 hours. ",-1)]))):b("",!0),(f(!0),p(q,null,oe(e.userTools,n=>{var F,M;return f(),p("div",{key:n.id},[i("div",{class:"columns",style:de(n.isVerified?"":"opacity: 0.5")},[i("div",_t,[i("figure",{class:"image is-64x64 is-clickable",onClick:O=>e.goToTool(n.slug)},[i("img",{src:n.logo||"/logo_transparent.webp",alt:"tool image"},null,8,wt)],8,kt)]),i("div",St,[i("h3",It,[i("span",{onClick:O=>e.goToTool(n.slug),class:"mr-2 is-clickable"},I(n.name),9,Bt),n.isVerified&&!((F=n.premiumFeatures)!=null&&F.isHomeBoosted)&&e.userIsUserConnected?(f(),p("span",{key:0,class:"tag is-clickable is-warning",onClick:t[2]||(t[2]=O=>e.isFeatureToolModalOpen=!0)},[T(r,{class:"mr-2",icon:["fas","chart-line"]}),t[14]||(t[14]=g(" Feature on homepage"))])):b("",!0),(M=n.premiumFeatures)!=null&&M.isHomeBoosted&&e.userIsUserConnected?(f(),p("span",At,[T(r,{class:"mr-2",icon:["fas","check"]}),t[15]||(t[15]=g(" Featured on homepage"))])):b("",!0),!n.isVerified&&!n.verified_at?(f(),p("span",Ft," Pending verification")):b("",!0),!n.isVerified&&n.verified_at?(f(),p("span",$t," Rejected")):b("",!0),n.hasBeenClaimed&&!n.wasClaimedAccepted?(f(),p("span",Pt," Pending claim")):b("",!0),i("a",{href:e.getLinkWithTracker(n.website),target:"_blank",class:"has-text-primary is-clickable"},[T(r,{class:"ml-2",style:{"font-size":"0.9rem"},icon:["fas","arrow-up-right-from-square"]})],8,Lt)]),e.userIsUserConnected?(f(),p("span",Nt,[T(r,{icon:["far","eye"]}),g(" "+I(n.views)+" | ",1),T(r,{icon:["fas","computer-mouse"]}),g(" "+I(n.clicks),1)])):b("",!0),i("p",null,I(n.shortDesc),1)]),e.userIsUserConnected?(f(),p("div",Et,[i("input",{id:`switchRoundedDefault-${n.id}`,type:"checkbox",name:`switchRoundedDefault-${n.id}`,class:"switch is-rounded is-info",onChange:O=>e.toggleToolVisibility(n),checked:n.isActive,disabled:!n.isVerified||n.hasBeenClaimed&&!n.wasClaimedAccepted},null,40,Mt),i("label",{for:`switchRoundedDefault-${n.id}`,style:{"font-size":"0.8rem"}},"List this tool",8,Ot)])):b("",!0)],4)])}),128)),e.isUserAdmin?(f(),p("div",Dt,[t[16]||(t[16]=i("hr",null,null,-1)),t[17]||(t[17]=i("p",null,"Danger zone",-1)),i("button",{class:"button is-success",onClick:t[3]||(t[3]=(...n)=>e.generateSitemap&&e.generateSitemap(...n))}," Generate Sitemap File ")])):b("",!0)])]))])]),T(h,{isFeatureToolModalOpen:e.isFeatureToolModalOpen,tools:e.userTools,user:e.user,closeFeatureToolModal:()=>e.isFeatureToolModalOpen=!1},null,8,["isFeatureToolModalOpen","tools","user","closeFeatureToolModal"])],64)}const Vt=se(it,[["render",Rt],["__scopeId","data-v-3bd3ae7e"]]);export{Vt 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.