1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[843],{1306:function(e,t,n){Promise.resolve().then(n.bind(n,9786))},7775:function(e,t,n){"use strict";n.d(t,{KW:function(){return s},hi:function(){return i}});let r=n(257).env.NEXT_PUBLIC_API_BASE||"";async function i(e,t){let n=await fetch("".concat(r).concat(e),t);if(!n.ok)throw Error("".concat(n.status," ").concat(n.statusText));return n.json()}let s={"Time Value of Money":"â³","Debt & Loans":"\uD83C\uDFE6","Cash Flow & Budgeting":"\uD83D\uDCB8","Financial Planning":"\uD83C\uDFAF","Fixed Income":"\uD83D\uDCDC","Equity Valuation":"\uD83D\uDCC8","Mutual Funds":"\uD83E\uDDFA","Portfolio Analytics":"\uD83D\uDCCA",Derivatives:"\uD83D\uDD00","Small Savings (India)":"\uD83C\uDDEE\uD83C\uDDF3","Risk Profiling":"\uD83E\uDDED",Advisor:"\uD83E\uDD16","Live Market Data":"\uD83D\uDEF0ï¸"}},9786:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(7437),i=n(2265),s=n(7775);function o(){let[e,t]=(0,i.useState)(null),[n,o]=(0,i.useState)(""),[a,c]=(0,i.useState)("All"),[l,u]=(0,i.useState)(null);(0,i.useEffect)(()=>{(0,s.hi)("/api/tools").then(t).catch(e=>u(e.message))},[]);let h=(0,i.useMemo)(()=>e?["All",...Object.keys(e.categories)]:["All"],[e]),d=(0,i.useMemo)(()=>{if(!e)return{};let t=n.trim().toLowerCase(),r={};for(let n of e.tools)("All"===a||n.category===a)&&(!t||"".concat(n.name," ").concat(n.description).toLowerCase().includes(t))&&(r[n.category]=r[n.category]||[]).push(n);return r},[e,n,a]);return(0,r.jsxs)("div",{className:"container",children:[(0,r.jsxs)("div",{className:"page-head",children:[(0,r.jsx)("div",{className:"kicker",children:"Catalog"}),(0,r.jsx)("h1",{children:e?"".concat(e.count," financial tools"):"Tools"}),(0,r.jsx)("p",{children:"Every tool is a deterministic calculator grounded in established financial mathematics. Filter by category or search by what it does."})]}),(0,r.jsxs)("div",{className:"section",style:{paddingTop:28},children:[(0,r.jsx)("div",{className:"toolbar",children:(0,r.jsx)("input",{className:"search",placeholder:"Search â âretirementâ, âloanâ, âPPFâ, âoptionâ, âSharpeââ¦",value:n,onChange:e=>o(e.target.value)})}),(0,r.jsx)("div",{className:"toolbar",children:h.map(t=>(0,r.jsxs)("button",{className:"chip"+(a===t?" active":""),onClick:()=>c(t),children:["All"===t?"All":"".concat(s.KW[t]||"â¢"," ").concat(t),"All"!==t&&e?" ".concat(e.categories[t]):""]},t))}),l&&(0,r.jsxs)("div",{className:"note",style:{marginTop:20},children:["Couldn't load the live catalog (",l,"). The server may be waking up â refresh in a moment."]}),!e&&!l&&(0,r.jsx)("div",{className:"grid grid-2",style:{marginTop:24},children:[...Array(6)].map((e,t)=>(0,r.jsx)("div",{className:"skel",style:{height:70}},t))}),(0,r.jsxs)("div",{style:{marginTop:24},children:[Object.entries(d).map(e=>{let[t,n]=e;return(0,r.jsxs)("div",{className:"cat-block",children:[(0,r.jsxs)("div",{className:"cat-title",children:[(0,r.jsx)("span",{style:{fontSize:22},children:s.KW[t]||"â¢"}),(0,r.jsx)("h3",{children:t}),(0,r.jsx)("span",{className:"pill",children:n.length})]}),(0,r.jsx)("div",{className:"tool-list",children:n.map(e=>(0,r.jsxs)("div",{className:"tool-item",children:[(0,r.jsx)("code",{children:e.name}),(0,r.jsx)("p",{children:e.description})]},e.name))})]},t)}),e&&0===Object.keys(d).length&&(0,r.jsxs)("div",{className:"note",children:["No tools match â",n,"â."]})]})]})]})}},257:function(e,t,n){"use strict";var r,i;e.exports=(null==(r=n.g.process)?void 0:r.env)&&"object"==typeof(null==(i=n.g.process)?void 0:i.env)?n.g.process:n(4227)},4227:function(e){!function(){var t={229:function(e){var t,n,r,i=e.exports={};function s(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===s||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:s}catch(e){t=s}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var c=[],l=!1,u=-1;function h(){l&&r&&(l=!1,r.length?c=r.concat(c):u=-1,c.length&&d())}function d(){if(!l){var e=a(h);l=!0;for(var t=c.length;t;){for(r=c,c=[];++u<t;)r&&r[u].run();u=-1,t=c.length}r=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new f(e,t)),1!==c.length||l||a(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw Error("process.chdir is not supported")},i.umask=function(){return 0}}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var s=n[e]={exports:{}},o=!0;try{t[e](s,s.exports,r),o=!1}finally{o&&delete n[e]}return s.exports}r.ab="//";var i=r(229);e.exports=i}()}},function(e){e.O(0,[971,117,744],function(){return e(e.s=1306)}),_N_E=e.O()}]);
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.