PageSourceSearch

https://launchmind.io/_next/static/chunks/13153-74d7c829fb7433a2.js

js launchmind.io collected 2026-09-24 20:01:45 UTC 9,816 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[13153],{13153:(e,t,a)=>{a.r(t),a.d(t,{TaskCreateForm:()=>m});var n=a(34324),l=a(17581),r=a(78712),s=a(97158),o=a(30611),i=a(84196),d=a(4319),u=a(71044);let c=new Set(["call","email","meeting","follow_up"]);function m(e){let{companyId:t,contactId:a,dealId:m,enableLeadPicker:x=!1,placeholder:p="Wat moet er gebeuren?",onCreated:v}=e,{t:b}=(0,l.q)(),[g,f]=(0,r.useState)(""),[h,k]=(0,r.useState)("todo"),[j,w]=(0,r.useState)("tomorrow"),[y,N]=(0,r.useState)(""),[_,S]=(0,r.useState)("09:00"),[C,T]=(0,r.useState)(null),[E,A]=(0,r.useState)(!1),[K,F]=(0,r.useState)(null),O=c.has(h),D="none"!==j&&(O||"custom"===j);async function q(){let e=g.trim();if(!e)return void F(b("Geef de taak een titel"));if(O&&"none"===j)return void F(b("Kies een datum + tijd voor een bel/mail/meeting/follow-up"));A(!0),F(null);try{var n,l,r;let s=await (0,i.dB)("/api/intern/crm/tasks",{title:e,task_type:h,due_at:function(){if("none"===j)return null;let e=new Date;if("custom"===j){if(!y)return null;let t=new Date("".concat(y,"T00:00:00"));if(Number.isNaN(t.getTime()))return null;e.setTime(t.getTime())}else{var t;e.setHours(0,0,0,0),e.setDate(e.getDate()+(null!=(t=({today:0,tomorrow:1,d3:3,w1:7,w2:14,m1:30})[j])?t:1))}let a=9,n=0;if(D){let[e,t]=(_||"09:00").split(":");a=Number(e),n=Number(t)}else"today"===j&&(a=17);return e.setHours(Number.isFinite(a)?a:9,Number.isFinite(n)?n:0,0,0),e.toISOString()}(),company_id:null!=(n=null!=t?t:null==C?void 0:C.company_id)?n:null,contact_id:null!=(l=null!=a?a:null==C?void 0:C.contact_id)?l:null,deal_id:null!=(r=null!=m?m:null==C?void 0:C.deal_id)?r:null});if(!s.ok){let e=await s.json().catch(()=>({}));throw Error(e.error||"HTTP ".concat(s.status))}f(""),k("todo"),w("tomorrow"),N(""),S("09:00"),T(null),null==v||v()}catch(e){F((null==e?void 0:e.message)||b("Onbekende fout"))}finally{A(!1)}}return(0,n.jsxs)("div",{className:"rounded-xl border-[1.5px] border-[var(--line)] bg-[var(--paper)] p-3",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-stretch gap-2",children:[(0,n.jsx)("input",{value:g,onChange:e=>{f(e.target.value),K&&F(null)},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&q()},placeholder:b(p),disabled:E,className:"min-w-[200px] flex-1 rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm text-[var(--ink)] placeholder-[var(--soft2)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)] disabled:opacity-50"}),(0,n.jsx)("select",{value:h,onChange:e=>k(e.target.value),disabled:E,className:"rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm font-medium text-[var(--ink)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)]",title:b("Type taak"),children:d.TASK_TYPES.map(e=>(0,n.jsx)("option",{value:e.value,children:b(e.label)},e.value))}),(0,n.jsxs)("select",{value:j,onChange:e=>w(e.target.value),disabled:E,className:"rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm font-medium text-[var(--ink)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)]",title:b("Wanneer"),children:[(0,n.jsx)("option",{value:"today",children:b("Vandaag")}),(0,n.jsx)("option",{value:"tomorrow",children:b("Morgen")}),(0,n.jsx)("option",{value:"d3",children:b("Over 3 dagen")}),(0,n.jsx)("option",{value:"w1",children:b("Volgende week")}),(0,n.jsx)("option",{value:"w2",children:b("Over 2 weken")}),(0,n.jsx)("option",{value:"m1",children:b("Over 1 maand")}),(0,n.jsx)("option",{value:"custom",children:b("Specifieke datum…")}),(0,n.jsx)("option",{value:"none",children:b("Geen datum")})]}),"custom"===j&&(0,n.jsx)("input",{type:"date",value:y,onChange:e=>N(e.target.value),disabled:E,className:"rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm text-[var(--ink)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)]"}),D&&(0,n.jsx)("input",{type:"time",value:_,onChange:e=>S(e.target.value),disabled:E,className:"rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm text-[var(--ink)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)]",title:b("Tijd")}),x&&(0,n.jsx)(u.X,{value:C,onChange:T,disabled:E}),(0,n.jsxs)("button",{onClick:q,disabled:E,className:"inline-flex shrink-0 items-center gap-1.5 rounded-lg bg-[var(--ink)] px-3.5 py-2 text-sm font-bold text-[var(--gold)] hover:opacity-90 disabled:opacity-50",children:[(0,n.jsx)(s.A,{className:"h-3.5 w-3.5"})," ",E?b("Opslaan…"):b("Voeg toe")]})]}),K&&(0,n.jsx)("p",{className:"mt-2 text-xs text-red-600",children:K}),(0,n.jsx)("p",{className:"mt-1.5 flex items-center gap-1.5 text-[11px] text-[var(--soft2)]",children:O?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.A,{className:"h-3 w-3"}),b("Komt op je agenda te staan"),C?b(" \xb7 gekoppeld aan {{label}}",{label:C.label}):""]}):(0,n.jsxs)(n.Fragment,{children:[b("⌘+Enter om snel op te slaan"),C?b(" \xb7 gekoppeld aan {{label}}",{label:C.label}):""]})})]})}},71044:(e,t,a)=>{a.d(t,{X:()=>v});var n=a(34324),l=a(78712),r=a(94898),s=a(29837),o=a(42945),i=a(39870),d=a(39018),u=a(22580),c=a(97158),m=a(84196),x=a(17581);
1let p={deal:r.A,company:s.A,contact:o.A};function v(e){let{value:t,onChange:a,disabled:r}=e,[s,o]=(0,l.useState)(!1),[v,b]=(0,l.useState)(""),[g,f]=(0,l.useState)([]),[h,k]=(0,l.useState)(!1),[j,w]=(0,l.useState)(!1),[y,N]=(0,l.useState)(null),_=(0,l.useRef)(null),{t:S}=(0,x.q)();async function C(){let e=v.trim();if(e&&!j){w(!0),N(null);try{var t;let n=await (0,m.dB)("/api/intern/crm/deals",{title:e}),l=await n.json();if(!n.ok||!(null==l||null==(t=l.deal)?void 0:t.id))throw Error((null==l?void 0:l.error)==="company_exists_archived"?S("Bestaat al (gearchiveerd) — zoek en selecteer"):(null==l?void 0:l.error)||S("Kon lead niet aanmaken"));a({kind:"deal",deal_id:l.deal.id,company_id:null,contact_id:null,label:e}),o(!1),b("")}catch(e){N((null==e?void 0:e.message)||S("Kon lead niet aanmaken"))}finally{w(!1)}}}if((0,l.useEffect)(()=>{if(!s)return;let e=v.trim();if(e.length<2)return void f([]);k(!0);let t=setTimeout(async()=>{try{let t=await (0,m.XE)("/api/intern/crm/search?q=".concat(encodeURIComponent(e),"&limit=6")),a=await t.json();f(t.ok&&a.results||[])}catch(e){f([])}finally{k(!1)}},250);return()=>clearTimeout(t)},[v,s]),(0,l.useEffect)(()=>{if(s)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){_.current&&!_.current.contains(e.target)&&o(!1)}},[s]),t){let e=p[t.kind];return(0,n.jsxs)("div",{className:"inline-flex items-center gap-1.5 rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-[rgba(23,20,15,0.04)] px-3 py-2 text-sm text-[var(--ink)]",children:[(0,n.jsx)(e,{className:"h-3.5 w-3.5 text-[var(--soft2)]"}),(0,n.jsx)("span",{className:"max-w-[160px] truncate font-medium",children:t.label}),(0,n.jsx)("button",{type:"button",onClick:()=>a(null),disabled:r,className:"ml-0.5 text-[var(--soft2)] hover:text-[var(--ink)]",title:S("Koppeling verwijderen"),children:(0,n.jsx)(i.A,{className:"h-3.5 w-3.5"})})]})}let T=v.trim();return(0,n.jsxs)("div",{ref:_,className:"relative",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>o(e=>!e),disabled:r,className:"inline-flex items-center gap-1.5 rounded-lg border-[1.5px] border-dashed border-[rgba(23,20,15,0.3)] bg-[var(--paper)] px-3 py-2 text-sm font-medium text-[var(--soft)] hover:border-[var(--ink)] hover:text-[var(--ink)] disabled:opacity-50",title:S("Koppel een lead, bedrijf of contact"),children:[(0,n.jsx)(d.A,{className:"h-3.5 w-3.5"})," ",S("Lead koppelen")]}),s&&(0,n.jsxs)("div",{className:"absolute right-0 z-30 mt-1 w-72 rounded-xl border-[1.5px] border-[var(--line)] bg-[var(--paper)] p-2 shadow-lg",children:[(0,n.jsx)("input",{autoFocus:!0,value:v,onChange:e=>{b(e.target.value),y&&N(null)},placeholder:S("Zoek lead, deal, bedrijf of contact…"),className:"mb-2 w-full rounded-lg border-[1.5px] border-[rgba(23,20,15,0.25)] bg-white px-3 py-2 text-sm text-[var(--ink)] placeholder-[var(--soft2)] focus:border-[var(--ink)] focus:outline-none focus:ring-1 focus:ring-[var(--orange)]"}),(0,n.jsxs)("div",{className:"max-h-56 overflow-y-auto",children:[h&&(0,n.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-xs text-[var(--soft2)]",children:[(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"})," ",S("Zoeken…")]}),!h&&g.map(e=>{let t=p[e.kind];return(0,n.jsxs)("button",{type:"button",onClick:()=>{a({kind:e.kind,deal_id:"deal"===e.kind?e.id:null,company_id:"company"===e.kind?e.id:null,contact_id:"contact"===e.kind?e.id:null,label:e.title}),o(!1),b("")},className:"flex w-full items-start gap-2 rounded-lg px-2 py-2 text-left hover:bg-[rgba(23,20,15,0.04)]",children:[(0,n.jsx)(t,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--soft2)]"}),(0,n.jsxs)("span",{className:"min-w-0",children:[(0,n.jsx)("span",{className:"block truncate text-sm text-[var(--ink)]",children:e.title}),e.subtitle&&(0,n.jsx)("span",{className:"block truncate text-xs text-[var(--soft2)]",children:e.subt
1itle})]})]},"".concat(e.kind,"-").concat(e.id))}),!h&&T.length>=2&&0===g.length&&(0,n.jsx)("p",{className:"px-2 py-2 text-xs text-[var(--soft2)]",children:S("Geen resultaten")})]}),T.length>=2&&(0,n.jsxs)("button",{type:"button",onClick:C,disabled:j,className:"mt-1 flex w-full items-center gap-2 rounded-lg border-t border-[var(--line)] px-2 py-2 text-left text-sm font-medium text-[var(--ink)] hover:bg-[rgba(23,20,15,0.04)] disabled:opacity-50",children:[j?(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"}),S('Nieuwe lead: "{{naam}}"',{naam:T})]}),y&&(0,n.jsx)("p",{className:"mt-1 px-2 text-xs text-red-600",children:y})]})]})}}}]);

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.