Files
cim_summary/backend/frontend-dist/assets/DocumentViewer-fda68f30.js
Jon 185c780486
Some checks failed
CI/CD Pipeline / Backend - Lint & Test (push) Has been cancelled
CI/CD Pipeline / Frontend - Lint & Test (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Build Backend (push) Has been cancelled
CI/CD Pipeline / Build Frontend (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Tests (push) Has been cancelled
CI/CD Pipeline / Dependency Updates (push) Has been cancelled
🚀 Update to Claude 3.7 latest and fix LLM processing issues
- Updated Anthropic API to latest version (2024-01-01)
- Set Claude 3.7 Sonnet Latest as primary model
- Removed deprecated Opus 3.5 references
- Fixed LLM response validation and JSON parsing
- Improved error handling and logging
- Updated model configurations and pricing
- Enhanced document processing reliability
- Fixed TypeScript type issues
- Updated environment configuration
2025-08-17 17:31:56 -04:00

14 lines
39 KiB
JavaScript

var e=Object.defineProperty,s=Object.defineProperties,t=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,n=(s,t,a)=>t in s?e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[t]=a,l=(e,s)=>{for(var t in s||(s={}))r.call(s,t)&&n(e,t,s[t]);if(a)for(var t of a(s))i.call(s,t)&&n(e,t,s[t]);return e},d=(e,a)=>s(e,t(a)),c=(e,s,t)=>new Promise((a,r)=>{var i=e=>{try{l(t.next(e))}catch(s){r(s)}},n=e=>{try{l(t.throw(e))}catch(s){r(s)}},l=e=>e.done?a(e.value):Promise.resolve(e.value).then(i,n);l((t=t.apply(e,s)).next())});import{c as o,R as m,r as x,j as u,a as h,d as y,L as g,F as p,B as v,T as b}from"./index-9817dacc.js";import{D as f}from"./download-aacd5336.js";import{X as j}from"./x-d6da8175.js";import{C as w,A as N}from"./check-circle-937a9172.js";import{A as k}from"./alert-triangle-326a303a.js";import{C as S}from"./clock-9f043116.js";
/**
* @license lucide-react v0.294.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const C=o("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),I=o("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]),M=o("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]),D=o("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),O=o("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]),T=o("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]),R=m.memo(({initialData:e={},cimReviewData:s,onSave:t,onExport:a,readOnly:r=!1})=>{var i;try{if(s&&"object"!=typeof s)throw new Error(`Invalid cimReviewData type: ${typeof s}. Expected object, got ${typeof s}`);if(e&&"object"!=typeof e)throw new Error(`Invalid initialData type: ${typeof e}. Expected object, got ${typeof e}`);s&&Object.keys(s).length>0||e&&Object.keys(e).length;const[n,o]=x.useState({dealOverview:e.dealOverview||{targetCompanyName:"",industrySector:"",geography:"",dealSource:"",transactionType:"",dateCIMReceived:"",dateReviewed:"",reviewers:"",cimPageCount:"",statedReasonForSale:"",employeeCount:""},businessDescription:e.businessDescription||{coreOperationsSummary:"",keyProductsServices:"",uniqueValueProposition:"",customerBaseOverview:{keyCustomerSegments:"",customerConcentrationRisk:"",typicalContractLength:""},keySupplierOverview:{dependenceConcentrationRisk:""}},marketIndustryAnalysis:e.marketIndustryAnalysis||{estimatedMarketSize:"",estimatedMarketGrowthRate:"",keyIndustryTrends:"",competitiveLandscape:{keyCompetitors:"",targetMarketPosition:"",basisOfCompetition:""},barriersToEntry:""},financialSummary:e.financialSummary||{financials:{fy3:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy2:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy1:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},ltm:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""}},qualityOfEarnings:"",revenueGrowthDrivers:"",marginStabilityAnalysis:"",capitalExpenditures:"",workingCapitalIntensity:"",freeCashFlowQuality:""},managementTeamOverview:e.managementTeamOverview||{keyLeaders:"",managementQualityAssessment:"",postTransactionIntentions:"",organizationalStructure:""},preliminaryInvestmentThesis:e.preliminaryInvestmentThesis||{keyAttractions:"",potentialRisks:"",valueCreationLevers:"",alignmentWithFundStrategy:""},keyQuestionsNextSteps:e.keyQuestionsNextSteps||{criticalQuestions:"",missingInformation:"",preliminaryRecommendation:"",rationaleForRecommendation:"",proposedNextSteps:""}}),[m,y]=x.useState("deal-overview"),[g,p]=x.useState("idle"),[v,b]=x.useState(null),[j,w]=x.useState(null);x.useEffect(()=>{if(s&&"object"==typeof s&&Object.keys(s).length>0)try{o(e=>l(l({},e),s))}catch(e){}},[s]),x.useEffect(()=>{var e;(null==(e=n.financialSummary)?void 0:e.financials)||o(e=>d(l({},e),{financialSummary:d(l({},e.financialSummary),{financials:{fy3:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy2:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy1:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},ltm:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""}}})}))},[null==(i=n.financialSummary)?void 0:i.financials]);const N=(e,s,t)=>{o(a=>d(l({},a),{financialSummary:d(l({},a.financialSummary),{financials:d(l({},a.financialSummary.financials),{[e]:d(l({},a.financialSummary.financials[e]),{[s]:t})})})}))},k=()=>c(void 0,null,function*(){if(!r)try{p("saving"),yield null==t?void 0:t(n),p("saved"),b(new Date),setTimeout(()=>{p("idle")},3e3)}catch(e){p("error"),setTimeout(()=>{p("idle")},5e3)}}),S=()=>{if(r)return;j&&clearTimeout(j);const e=setTimeout(()=>{k()},2e3);w(e)};x.useEffect(()=>()=>{j&&clearTimeout(j)},[j]);const C=()=>{null==a||a(n)},I=[{id:"deal-overview",title:"Deal Overview",icon:"📋"},{id:"business-description",title:"Business Description",icon:"🏢"},{id:"market-analysis",title:"Market & Industry Analysis",icon:"📊"},{id:"financial-summary",title:"Financial Summary",icon:"💰"},{id:"management-team",title:"Management Team Overview",icon:"👥"},{id:"investment-thesis",title:"Preliminary Investment Thesis",icon:"🎯"},{id:"next-steps",title:"Key Questions & Next Steps",icon:"➡️"}],D=(e,s,t="text",a,i)=>{const d=s.split("."),c=O(n,d),m=e=>{o(s=>{const t=l({},s);let a=t;for(let e=0;e<d.length-1;e++)a[d[e]]||(a[d[e]]={}),a=a[d[e]];return a[d[d.length-1]]=e,t})};return u.jsxs("div",{children:[u.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:e}),"textarea"===t?u.jsx("textarea",{value:c||"",onChange:e=>{m(e.target.value),S()},placeholder:a,rows:i||3,disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"}):"date"===t?u.jsx("input",{type:"date",value:c||"",onChange:e=>{m(e.target.value),S()},disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"}):u.jsx("input",{type:"text",value:c||"",onChange:e=>{m(e.target.value),S()},placeholder:a,disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"})]})},O=(e,s)=>{let t=e;for(const a of s){if(!t||"object"!=typeof t||!(a in t))return"";t=t[a]}return"string"==typeof t?t:""},T=()=>{var e;let s=null==(e=n.financialSummary)?void 0:e.financials;s&&"object"==typeof s||(s={fy3:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy2:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},fy1:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""},ltm:{revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""}});return["fy3","fy2","fy1","ltm"].forEach(e=>{s[e]&&"object"==typeof s[e]||(s[e]={revenue:"",revenueGrowth:"",grossProfit:"",grossMargin:"",ebitda:"",ebitdaMargin:""})}),u.jsxs("div",{className:"space-y-4",children:[u.jsx("h4",{className:"text-lg font-medium text-gray-900",children:"Key Historical Financials"}),u.jsx("div",{className:"overflow-x-auto",children:u.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[u.jsx("thead",{className:"bg-gray-50",children:u.jsxs("tr",{children:[u.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Metric"}),u.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"FY-3"}),u.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"FY-2"}),u.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"FY-1"}),u.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"LTM"})]})}),u.jsxs("tbody",{className:"bg-white divide-y divide-gray-200",children:[u.jsxs("tr",{children:[u.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Revenue"}),["fy3","fy2","fy1","ltm"].map(e=>{var t;return u.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:u.jsx("input",{type:"text",value:(null==(t=s[e])?void 0:t.revenue)||"",onChange:s=>{N(e,"revenue",s.target.value),S()},placeholder:"$0",disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"})},e)})]}),u.jsxs("tr",{children:[u.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"Revenue Growth (%)"}),["fy3","fy2","fy1","ltm"].map(e=>{var t;return u.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:u.jsx("input",{type:"text",value:(null==(t=s[e])?void 0:t.revenueGrowth)||"",onChange:s=>{N(e,"revenueGrowth",s.target.value),S()},placeholder:"0%",disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"})},e)})]}),u.jsxs("tr",{children:[u.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"EBITDA"}),["fy3","fy2","fy1","ltm"].map(e=>{var t;return u.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:u.jsx("input",{type:"text",value:(null==(t=s[e])?void 0:t.ebitda)||"",onChange:s=>{N(e,"ebitda",s.target.value),S()},placeholder:"$0",disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"})},e)})]}),u.jsxs("tr",{children:[u.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:"EBITDA Margin (%)"}),["fy3","fy2","fy1","ltm"].map(e=>{var t;return u.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:u.jsx("input",{type:"text",value:(null==(t=s[e])?void 0:t.ebitdaMargin)||"",onChange:s=>{N(e,"ebitdaMargin",s.target.value),S()},placeholder:"0%",disabled:r,className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm disabled:bg-gray-50 disabled:text-gray-500"})},e)})]})]})]})})]})},R=()=>{switch(m){case"deal-overview":return u.jsxs("div",{className:"space-y-6",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[D("Target Company Name","dealOverview.targetCompanyName"),D("Industry/Sector","dealOverview.industrySector"),D("Geography (HQ & Key Operations)","dealOverview.geography"),D("Deal Source","dealOverview.dealSource"),D("Transaction Type","dealOverview.transactionType"),D("Date CIM Received","dealOverview.dateCIMReceived","date"),D("Date Reviewed","dealOverview.dateReviewed","date"),D("Reviewer(s)","dealOverview.reviewers"),D("CIM Page Count","dealOverview.cimPageCount"),D("Employee Count","dealOverview.employeeCount")]}),D("Stated Reason for Sale (if provided)","dealOverview.statedReasonForSale","textarea","Enter the stated reason for sale...",4)]});case"business-description":return u.jsxs("div",{className:"space-y-6",children:[D("Core Operations Summary (3-5 sentences)","businessDescription.coreOperationsSummary","textarea","Describe the core operations...",4),D("Key Products/Services & Revenue Mix (Est. % if available)","businessDescription.keyProductsServices","textarea","List key products/services and revenue mix...",4),D("Unique Value Proposition (UVP) / Why Customers Buy","businessDescription.uniqueValueProposition","textarea","Describe the unique value proposition...",4),u.jsxs("div",{className:"space-y-4",children:[u.jsx("h4",{className:"text-lg font-medium text-gray-900",children:"Customer Base Overview"}),u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[D("Key Customer Segments/Types","businessDescription.customerBaseOverview.keyCustomerSegments"),D("Customer Concentration Risk (Top 5 and/or Top 10 Customers as % Revenue)","businessDescription.customerBaseOverview.customerConcentrationRisk"),D("Typical Contract Length / Recurring Revenue %","businessDescription.customerBaseOverview.typicalContractLength")]})]}),u.jsxs("div",{className:"space-y-4",children:[u.jsx("h4",{className:"text-lg font-medium text-gray-900",children:"Key Supplier Overview (if critical & mentioned)"}),D("Dependence/Concentration Risk","businessDescription.keySupplierOverview.dependenceConcentrationRisk","textarea","Describe supplier dependencies...",3)]})]});case"market-analysis":return u.jsxs("div",{className:"space-y-6",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[D("Estimated Market Size (TAM/SAM - if provided)","marketIndustryAnalysis.estimatedMarketSize"),D("Estimated Market Growth Rate (% CAGR - Historical & Projected)","marketIndustryAnalysis.estimatedMarketGrowthRate")]}),D("Key Industry Trends & Drivers (Tailwinds/Headwinds)","marketIndustryAnalysis.keyIndustryTrends","textarea","Describe key industry trends...",4),u.jsxs("div",{className:"space-y-4",children:[u.jsx("h4",{className:"text-lg font-medium text-gray-900",children:"Competitive Landscape"}),u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[D("Key Competitors Identified","marketIndustryAnalysis.competitiveLandscape.keyCompetitors"),D("Target's Stated Market Position/Rank","marketIndustryAnalysis.competitiveLandscape.targetMarketPosition"),D("Basis of Competition","marketIndustryAnalysis.competitiveLandscape.basisOfCompetition")]})]}),D("Barriers to Entry / Competitive Moat (Stated/Inferred)","marketIndustryAnalysis.barriersToEntry","textarea","Describe barriers to entry...",4)]});case"financial-summary":return u.jsxs("div",{className:"space-y-6",children:[T(),u.jsxs("div",{className:"space-y-4",children:[u.jsx("h4",{className:"text-lg font-medium text-gray-900",children:"Key Financial Notes & Observations"}),u.jsxs("div",{className:"grid grid-cols-1 gap-6",children:[D("Quality of Earnings/Adjustments (Initial Impression)","financialSummary.qualityOfEarnings","textarea","Assess quality of earnings...",3),D("Revenue Growth Drivers (Stated)","financialSummary.revenueGrowthDrivers","textarea","Identify revenue growth drivers...",3),D("Margin Stability/Trend Analysis","financialSummary.marginStabilityAnalysis","textarea","Analyze margin trends...",3),D("Capital Expenditures (Approx. LTM % of Revenue)","financialSummary.capitalExpenditures"),D("Working Capital Intensity (Impression)","financialSummary.workingCapitalIntensity","textarea","Assess working capital intensity...",3),D("Free Cash Flow (FCF) Proxy Quality (Impression)","financialSummary.freeCashFlowQuality","textarea","Assess FCF quality...",3)]})]})]});case"management-team":return u.jsxs("div",{className:"space-y-6",children:[D("Key Leaders Identified (CEO, CFO, COO, Head of Sales, etc.)","managementTeamOverview.keyLeaders","textarea","List key leaders...",4),D("Initial Assessment of Quality/Experience (Based on Bios)","managementTeamOverview.managementQualityAssessment","textarea","Assess management quality...",4),D("Management's Stated Post-Transaction Role/Intentions (if mentioned)","managementTeamOverview.postTransactionIntentions","textarea","Describe post-transaction intentions...",4),D("Organizational Structure Overview (Impression)","managementTeamOverview.organizationalStructure","textarea","Describe organizational structure...",4)]});case"investment-thesis":return u.jsxs("div",{className:"space-y-6",children:[D("Key Attractions / Strengths (Why Invest?)","preliminaryInvestmentThesis.keyAttractions","textarea","List key attractions...",8),D("Potential Risks / Concerns (Why Not Invest?)","preliminaryInvestmentThesis.potentialRisks","textarea","List potential risks...",8),D("Initial Value Creation Levers (How PE Adds Value)","preliminaryInvestmentThesis.valueCreationLevers","textarea","Identify value creation levers...",8),D("Alignment with Fund Strategy","preliminaryInvestmentThesis.alignmentWithFundStrategy","textarea","Assess alignment with BPCP strategy...",8)]});case"next-steps":return u.jsxs("div",{className:"space-y-6",children:[D("Critical Questions Arising from CIM Review","keyQuestionsNextSteps.criticalQuestions","textarea","List critical questions...",8),D("Key Missing Information / Areas for Diligence Focus","keyQuestionsNextSteps.missingInformation","textarea","Identify missing information...",8),D("Preliminary Recommendation","keyQuestionsNextSteps.preliminaryRecommendation"),D("Rationale for Recommendation (Brief)","keyQuestionsNextSteps.rationaleForRecommendation","textarea","Provide rationale...",6),D("Proposed Next Steps","keyQuestionsNextSteps.proposedNextSteps","textarea","Outline next steps...",8)]});default:return null}};return u.jsxs("div",{className:"max-w-7xl mx-auto",children:[u.jsx("div",{className:"bg-white shadow-sm border-b border-gray-200 px-4 py-4 sm:px-6 lg:px-8",children:u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{children:[u.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"BPCP CIM Review Template"}),u.jsx("p",{className:"text-sm text-gray-600 mt-1",children:"Comprehensive review template for Confidential Information Memorandums"}),!r&&u.jsxs("div",{className:"flex items-center mt-2 space-x-2",children:["saving"===g&&u.jsxs("div",{className:"flex items-center text-blue-600",children:[u.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600 mr-2"}),u.jsx("span",{className:"text-sm",children:"Saving..."})]}),"saved"===g&&u.jsxs("div",{className:"flex items-center text-green-600",children:[u.jsx("svg",{className:"h-4 w-4 mr-2",fill:"currentColor",viewBox:"0 0 20 20",children:u.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),u.jsx("span",{className:"text-sm",children:"Saved"})]}),"error"===g&&u.jsxs("div",{className:"flex items-center text-red-600",children:[u.jsx("svg",{className:"h-4 w-4 mr-2",fill:"currentColor",viewBox:"0 0 20 20",children:u.jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),u.jsx("span",{className:"text-sm",children:"Save failed"})]}),v&&"idle"===g&&u.jsxs("span",{className:"text-sm text-gray-500",children:["Last saved: ",v.toLocaleTimeString()]})]})]}),u.jsxs("div",{className:"flex items-center space-x-3",children:[!r&&u.jsxs("button",{onClick:k,disabled:"saving"===g,className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed",children:[u.jsx(M,{className:"h-4 w-4 mr-2"}),"saving"===g?"Saving...":"Save"]}),u.jsxs("button",{onClick:C,className:"inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md shadow-sm text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:[u.jsx(f,{className:"h-4 w-4 mr-2"}),"Export"]})]})]})}),u.jsxs("div",{className:"flex",children:[u.jsx("div",{className:"w-64 bg-gray-50 border-r border-gray-200 min-h-screen",children:u.jsx("nav",{className:"mt-5 px-2",children:u.jsx("div",{className:"space-y-1",children:I.map(e=>u.jsxs("button",{onClick:()=>y(e.id),className:h("group flex items-center px-3 py-2 text-sm font-medium rounded-md w-full text-left",m===e.id?"bg-blue-100 text-blue-700":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"),children:[u.jsx("span",{className:"mr-3",children:e.icon}),e.title]},e.id))})})}),u.jsx("div",{className:"flex-1 bg-white",children:u.jsx("div",{className:"px-4 py-6 sm:px-6 lg:px-8",children:u.jsx("div",{className:"max-w-4xl",children:R()})})})]})]})}catch(n){return u.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:u.jsx("div",{className:"bg-white shadow-sm border border-gray-200 rounded-lg p-8 max-w-md",children:u.jsxs("div",{className:"text-center",children:[u.jsx("div",{className:"mx-auto flex items-center justify-center h-12 w-12 rounded-full bg-red-100 mb-4",children:u.jsx("svg",{className:"h-6 w-6 text-red-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:u.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})})}),u.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Error Loading Template"}),u.jsx("p",{className:"text-sm text-gray-600 mb-4",children:"There was an error loading the CIM Review Template. Please try refreshing the page."}),u.jsx("button",{onClick:()=>window.location.reload(),className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700",children:"Refresh Page"})]})})})}}),A=({documentId:e,documentName:s,isOpen:t,onClose:a})=>{const[r,i]=x.useState(""),[n,l]=x.useState(!1),[d,o]=x.useState(""),[h,g]=x.useState(""),[p,v]=x.useState([]),[b,f]=x.useState(!1);m.useEffect(()=>{t&&k()},[t,e]);const k=()=>c(void 0,null,function*(){f(!0);try{const s=yield y.getDocumentShares(e);v(s)}catch(s){}finally{f(!1)}});return t?u.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:u.jsxs("div",{className:"bg-white rounded-lg shadow-xl max-w-md w-full mx-4 max-h-[90vh] overflow-y-auto",children:[u.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200",children:[u.jsxs("div",{className:"flex items-center",children:[u.jsx(O,{className:"h-5 w-5 text-blue-600 mr-2"}),u.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:"Share Document"})]}),u.jsx("button",{onClick:a,className:"text-gray-400 hover:text-gray-600 transition-colors",children:u.jsx(j,{className:"h-5 w-5"})})]}),u.jsxs("div",{className:"p-6 space-y-6",children:[u.jsxs("div",{className:"bg-gray-50 rounded-lg p-4",children:[u.jsx("h3",{className:"font-medium text-gray-900 mb-1",children:s}),u.jsxs("p",{className:"text-sm text-gray-600",children:["Document ID: ",e]})]}),u.jsxs("form",{onSubmit:s=>c(void 0,null,function*(){if(s.preventDefault(),r.trim()){l(!0),g(""),o("");try{const s=r.trim();yield y.shareDocument(e,s),o(`Document shared successfully with ${r}`),i(""),yield k()}catch(t){g(t.message||"Failed to share document")}finally{l(!1)}}}),className:"space-y-4",children:[u.jsxs("div",{children:[u.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700 mb-1",children:"Share with User (Email/User ID)"}),u.jsx("input",{type:"text",id:"email",value:r,onChange:e=>i(e.target.value),placeholder:"Enter user email or ID",className:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",disabled:n})]}),u.jsx("button",{type:"submit",disabled:!r.trim()||n,className:"w-full flex justify-center items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed",children:n?u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2"}),"Sharing..."]}):u.jsxs(u.Fragment,{children:[u.jsx(O,{className:"h-4 w-4 mr-2"}),"Share Document"]})})]}),d&&u.jsxs("div",{className:"flex items-center p-3 bg-green-50 border border-green-200 rounded-md",children:[u.jsx(w,{className:"h-4 w-4 text-green-600 mr-2"}),u.jsx("span",{className:"text-sm text-green-800",children:d})]}),h&&u.jsxs("div",{className:"flex items-center p-3 bg-red-50 border border-red-200 rounded-md",children:[u.jsx(N,{className:"h-4 w-4 text-red-600 mr-2"}),u.jsx("span",{className:"text-sm text-red-800",children:h})]}),u.jsxs("div",{className:"border-t border-gray-200 pt-4",children:[u.jsxs("h3",{className:"text-sm font-medium text-gray-900 mb-3 flex items-center",children:[u.jsx(T,{className:"h-4 w-4 mr-2"}),"Currently Shared With"]}),b?u.jsxs("div",{className:"text-center py-4",children:[u.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-blue-600 mx-auto"}),u.jsx("p",{className:"text-sm text-gray-600 mt-2",children:"Loading shares..."})]}):p.length>0?u.jsx("div",{className:"space-y-2",children:p.filter(e=>"shared"===e.accessType).map((s,t)=>u.jsxs("div",{className:"flex items-center justify-between p-3 bg-gray-50 rounded-md",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-sm font-medium text-gray-900",children:s.userId}),u.jsx("p",{className:"text-xs text-gray-500",children:s.createdAt?`Shared on ${new Date(s.createdAt).toLocaleDateString()}`:"Shared recently"})]}),u.jsx("button",{onClick:()=>{return t=s.userId,c(void 0,null,function*(){try{yield y.revokeDocumentShare(e,t),o("Access revoked successfully"),yield k()}catch(s){g(s.message||"Failed to revoke access")}});var t},className:"text-xs text-red-600 hover:text-red-800 font-medium",children:"Revoke"})]},t))}):u.jsx("p",{className:"text-sm text-gray-500 text-center py-4",children:"No users have access to this document yet."})]})]}),u.jsx("div",{className:"flex justify-end p-6 border-t border-gray-200",children:u.jsx("button",{onClick:a,className:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:"Close"})})]})}):null},P=m.memo(({documentId:e,documentName:s,extractedData:t,cimReviewData:a,onBack:r,onDownload:i})=>{if(!e||!s)throw new Error("Document ID and name are required");const[n,l]=x.useState("overview"),[d,o]=x.useState(!1),m=[{id:"overview",label:"Overview",icon:p},{id:"template",label:"Review Template",icon:v},{id:"raw",label:"Raw Data",icon:p}],j=s=>c(void 0,null,function*(){try{yield y.saveCIMReview(e,s)}catch(t){throw t}}),N=s=>c(void 0,null,function*(){var t;try{const a=yield y.exportCSV(e),r=window.URL.createObjectURL(a),i=document.createElement("a");i.href=r;const n=(null==(t=null==s?void 0:s.dealOverview)?void 0:t.targetCompanyName)||"Unknown",l=(new Date).toISOString().split("T")[0].replace(/-/g,""),d=`${l}_${n.replace(/[^a-zA-Z0-9\s]/g,"").replace(/\s+/g,"_").toUpperCase()}_CIM_Data.csv`;i.download=d,document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(r)}catch(a){throw a}});return u.jsxs("div",{className:"max-w-7xl mx-auto",children:[u.jsx(A,{documentId:e,documentName:s,isOpen:d,onClose:()=>o(!1)}),u.jsx("div",{className:"bg-white shadow-sm border-b border-gray-200 px-4 py-4 sm:px-6 lg:px-8",children:u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex items-center",children:[u.jsx("button",{onClick:r,className:"mr-4 p-2 text-gray-400 hover:text-gray-600 transition-colors",children:u.jsx(C,{className:"h-5 w-5"})}),u.jsxs("div",{children:[u.jsx("h1",{className:"text-xl font-semibold text-gray-900",children:"Document Viewer"}),u.jsx("p",{className:"text-sm text-gray-600",children:s})]})]}),u.jsx("div",{className:"flex items-center space-x-4",children:u.jsx(g,{variant:"button",className:"bg-error-500 hover:bg-error-600 text-white"})})]})}),u.jsx("div",{className:"bg-white border-b border-gray-200",children:u.jsx("div",{className:"px-4 sm:px-6 lg:px-8",children:u.jsx("nav",{className:"-mb-px flex space-x-8",children:m.map(e=>{const s=e.icon;return u.jsxs("button",{onClick:()=>l(e.id),className:h("flex items-center py-4 px-1 border-b-2 font-medium text-sm",n===e.id?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"),children:[u.jsx(s,{className:"h-4 w-4 mr-2"}),e.label]},e.id)})})})}),u.jsxs("div",{className:"px-4 py-6 sm:px-6 lg:px-8",children:["overview"===n&&u.jsxs("div",{className:"space-y-6",children:[u.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{children:[u.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:s}),u.jsxs("p",{className:"text-sm text-gray-600 mt-1",children:["Document ID: ",e]})]}),u.jsxs("div",{className:"flex items-center space-x-3",children:[u.jsxs("button",{onClick:i,className:"inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:[u.jsx(f,{className:"h-4 w-4 mr-2"}),"Download"]}),u.jsxs("button",{onClick:()=>o(!0),className:"inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:[u.jsx(D,{className:"h-4 w-4 mr-2"}),"Share Document"]})]})]})}),!t&&!a&&u.jsx("div",{className:"bg-yellow-50 border border-yellow-200 rounded p-6",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(k,{className:"h-8 w-8 text-yellow-600"})}),u.jsxs("div",{className:"ml-4",children:[u.jsx("h3",{className:"text-lg font-medium text-yellow-800",children:"No Data Available"}),u.jsx("p",{className:"text-yellow-700 mt-1",children:"This document doesn't have any processed data yet. The data will be available after the document has been fully processed."}),u.jsxs("div",{className:"mt-4 text-sm text-yellow-600",children:[u.jsxs("p",{children:[u.jsx("strong",{children:"Document Status:"})," Processing"]}),u.jsxs("p",{children:[u.jsx("strong",{children:"Document ID:"})," ",e]})]})]})]})}),t&&u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[u.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(I,{className:"h-8 w-8 text-green-600"})}),u.jsxs("div",{className:"ml-4",children:[u.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Revenue"}),u.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:t.revenue||"N/A"})]})]})}),u.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(b,{className:"h-8 w-8 text-blue-600"})}),u.jsxs("div",{className:"ml-4",children:[u.jsx("p",{className:"text-sm font-medium text-gray-500",children:"EBITDA"}),u.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:t.ebitda||"N/A"})]})]})}),u.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(T,{className:"h-8 w-8 text-purple-600"})}),u.jsxs("div",{className:"ml-4",children:[u.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Employees"}),u.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:t.employees||"N/A"})]})]})}),u.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(S,{className:"h-8 w-8 text-orange-600"})}),u.jsxs("div",{className:"ml-4",children:[u.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Founded"}),u.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:t.founded||"N/A"})]})]})})]}),(null==t?void 0:t.summary)&&u.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[u.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Document Analysis"}),u.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4",children:u.jsxs("div",{className:"flex items-center",children:[u.jsx("div",{className:"flex-shrink-0",children:u.jsx(p,{className:"h-5 w-5 text-blue-600"})}),u.jsxs("div",{className:"ml-3",children:[u.jsx("h4",{className:"text-sm font-medium text-blue-900",children:"Structured CIM Review Available"}),u.jsx("p",{className:"text-sm text-blue-700 mt-1",children:'This document has been analyzed and structured into a comprehensive CIM review template. Switch to the "Template" tab to view the detailed analysis in a structured format.'})]})]})})]}),t&&u.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[u.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[u.jsxs("div",{className:"flex items-center mb-4",children:[u.jsx(w,{className:"h-5 w-5 text-green-600 mr-2"}),u.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Key Opportunities"})]}),t.opportunities&&t.opportunities.length>0?u.jsx("ul",{className:"space-y-2",children:t.opportunities.map((e,s)=>u.jsxs("li",{className:"flex items-start",children:[u.jsx("span",{className:"text-green-500 mr-2",children:"•"}),u.jsx("span",{className:"text-gray-700",children:e})]},s))}):u.jsx("p",{className:"text-gray-500 italic",children:"No opportunities identified"})]}),u.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[u.jsxs("div",{className:"flex items-center mb-4",children:[u.jsx(k,{className:"h-5 w-5 text-red-600 mr-2"}),u.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Key Risks"})]}),t.risks&&t.risks.length>0?u.jsx("ul",{className:"space-y-2",children:t.risks.map((e,s)=>u.jsxs("li",{className:"flex items-start",children:[u.jsx("span",{className:"text-red-500 mr-2",children:"•"}),u.jsx("span",{className:"text-gray-700",children:e})]},s))}):u.jsx("p",{className:"text-gray-500 italic",children:"No risks identified"})]})]}),(null==t?void 0:t.financials)&&u.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[u.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Financial Trends"}),u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[u.jsxs("div",{children:[u.jsx("h4",{className:"text-sm font-medium text-gray-500 mb-2",children:"Revenue"}),u.jsx("div",{className:"space-y-1",children:t.financials.revenue.map((e,s)=>u.jsxs("div",{className:"flex justify-between text-sm",children:[u.jsx("span",{className:"text-gray-600",children:3===s?"LTM":"FY"+(3-s)}),u.jsx("span",{className:"font-medium",children:e})]},s))})]}),u.jsxs("div",{children:[u.jsx("h4",{className:"text-sm font-medium text-gray-500 mb-2",children:"EBITDA"}),u.jsx("div",{className:"space-y-1",children:t.financials.ebitda.map((e,s)=>u.jsxs("div",{className:"flex justify-between text-sm",children:[u.jsx("span",{className:"text-gray-600",children:3===s?"LTM":"FY"+(3-s)}),u.jsx("span",{className:"font-medium",children:e})]},s))})]}),u.jsxs("div",{children:[u.jsx("h4",{className:"text-sm font-medium text-gray-500 mb-2",children:"Margins"}),u.jsx("div",{className:"space-y-1",children:t.financials.margins.map((e,s)=>u.jsxs("div",{className:"flex justify-between text-sm",children:[u.jsx("span",{className:"text-gray-600",children:3===s?"LTM":"FY"+(3-s)}),u.jsx("span",{className:"font-medium",children:e})]},s))})]})]})]})]}),"template"===n&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6",children:[u.jsx("h4",{className:"text-sm font-medium text-blue-900 mb-2",children:"CIM Review Analysis"}),u.jsx("p",{className:"text-sm text-blue-700",children:"This tab displays the AI-generated analysis of your CIM document in a structured format. The analysis has been organized into sections like Deal Overview, Financial Summary, Management Team, and Investment Thesis. You can review, edit, and save this structured analysis for your investment review process."})]}),u.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded p-4 mb-4",children:[u.jsx("h4",{className:"text-sm font-medium text-blue-900",children:"Debug Info"}),u.jsxs("p",{className:"text-sm text-blue-700",children:["CIM Review Data available: ",a?"Yes":"No"]}),a&&u.jsxs("p",{className:"text-sm text-blue-700",children:["Data keys: ",Object.keys(a).join(", ")]})]}),u.jsxs("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:[u.jsx("h4",{className:"text-lg font-semibold mb-4",children:"CIM Review Template"}),a?(()=>{try{return u.jsx(R,{initialData:a,cimReviewData:a,onSave:j,onExport:N,readOnly:!1})}catch(e){return u.jsxs("div",{className:"bg-red-50 border border-red-200 rounded p-4",children:[u.jsx("h4",{className:"text-red-800 font-medium",children:"Error loading CIM Review Template"}),u.jsx("p",{className:"text-red-600 text-sm mt-2",children:e instanceof Error?e.message:"Unknown error occurred"}),u.jsxs("details",{className:"mt-4",children:[u.jsx("summary",{className:"cursor-pointer text-red-700 text-sm",children:"Error Details"}),u.jsx("pre",{className:"text-xs text-red-600 mt-2 bg-red-100 p-2 rounded overflow-auto",children:e instanceof Error?e.stack:String(e)})]})]})}})():u.jsxs("div",{className:"bg-yellow-50 border border-yellow-200 rounded p-4",children:[u.jsx("h4",{className:"text-yellow-800 font-medium",children:"No CIM Review Data Available"}),u.jsx("p",{className:"text-yellow-600 text-sm mt-2",children:"This document doesn't have any CIM review data yet. The data will be available after the document has been processed."}),u.jsx("div",{className:"mt-4",children:u.jsx("button",{onClick:()=>l("overview"),className:"px-4 py-2 bg-yellow-600 text-white rounded hover:bg-yellow-700 text-sm",children:"View Document Overview"})})]})]})]}),"raw"===n&&u.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[u.jsxs("div",{className:"mb-6",children:[u.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Raw Extracted Data"}),u.jsx("p",{className:"text-sm text-gray-600",children:"This tab shows the raw JSON data extracted from the document during processing. It includes all the structured information that was parsed from the CIM document, including financial metrics, company details, and analysis results."})]}),u.jsx("pre",{className:"bg-gray-50 rounded-lg p-4 overflow-x-auto text-sm",children:u.jsx("code",{children:JSON.stringify(t,null,2)})})]})]})]})});
/**
* @license lucide-react v0.294.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/export{P as default};