@opencxh/domain 1.304.0 → 1.305.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,15 +1,15 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const tn=10,Be=10,je=10,qe=5,Eu=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Bt(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function Su(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=tn){t(`more than ${tn} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Eu.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Bt(o.text)){t("a header without text");continue}break;case"context":if(!Bt(o.text)){t("a context block without text");continue}break;case"image":if(!o.url||!o.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(o.fields)&&o.fields.length>Be&&(t(`more than ${Be} fields in a section`),o.fields=o.fields.slice(0,Be));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>je&&(t(`more than ${je} list items`),o.items=o.items.slice(0,je));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&Bt(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>qe&&t(`more than ${qe} actions`),o.elements=i.slice(0,qe);break}}n.push(o)}return n}const Au=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,vu=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Ko(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const nn=10,je=10,qe=10,Ge=5,Su=new Set(["header","section","context","divider","image","list","actions","attachments"]);function jt(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function Au(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=nn){t(`more than ${nn} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Su.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!jt(o.text)){t("a header without text");continue}break;case"context":if(!jt(o.text)){t("a context block without text");continue}break;case"image":if(!o.url||!o.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(o.fields)&&o.fields.length>je&&(t(`more than ${je} fields in a section`),o.fields=o.fields.slice(0,je));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>qe&&(t(`more than ${qe} list items`),o.items=o.items.slice(0,qe));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&jt(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>Ge&&t(`more than ${Ge} actions`),o.elements=i.slice(0,Ge);break}}n.push(o)}return n}const vu=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,Cu=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function $o(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
2
2
  `).map(n=>n.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s{0,3}>\s?/,"").replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").replace(/^\s*(?:[-*_]\s*){3,}$/,"")).join(`
3
- `),t=t.replace(Au,"$2"),t=t.replace(vu,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function $o(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function $e(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function Rr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function jt(e){return e?.split("@")?.[0]||e||""}function Ue(e){return e.map(t=>t.name).join(", ")}function Nr(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const ne={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${jt(e.payload.from)}`:`Outbound call started — ${jt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Rr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${jt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:Dr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:Dr},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Ue(e.payload.members)} toegevoegd`,timeline:e=>{const t=Ue(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Ue(e.payload.members)} verlaten`,timeline:e=>{const t=Ue(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${Nr(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:e=>`${Nr(e.payload.callType)} ended${Rr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function Dr(e){const t=e.payload,n=Ko(t.bodyText).trim()||t.bodySnippet?.trim()||$o(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function H(e){return ne[e]}function Cu(e){return H(e)?.icon??"circle"}function Tu(e){return H(e)?.channelKind}function xn(e){return e==="message"||e==="note"}function ku(e){return xn(H(e)?.shape)}function wn(e){return e==="note"}function Ou(e){return wn(H(e)?.shape)}function Mu(e){return H(e)?.replyable===!0}function Ru(e){return H(e)?.carriesText===!0}function Uo(e){return H(e)?.countsAs}function Nu(e){return H(e)?.playbookAuthored===!0}function Du(e){return H(e)?.connected===!0}function xu(e){const t=H(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Fo(e){const t=H(e.type)?.snippet;return t?t(e):""}function wu(e,t){const n=H(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Pu(e){const t=H(e.type)?.joinUrl;return t?t(e):void 0}function Xe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function Qe(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Xe(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Xe(t,i);const o=n(e.key,r);return o===e.key?null:o}function Bo(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Xe(t,o);return{key:e.key,params:n}}const xr=140;function Lu(e){const t=e.trim();return t.length<=xr?t:`${t.slice(0,xr-1).trimEnd()}…`}function Ku(e,t){const n=Bo(t?.text,e),r=t?Qe(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Lu(r??Fo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const $u=e=>e;function wr(e){const t=ne[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function Pr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class jo{constructor(t=[],n=$u){this.translate=n;for(const r of t)r?.type&&(r.type in ne||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in ne)return wr(t);const n=this.declared.get(t);return n?Pr(n):void 0}triggerable(){const t=Object.keys(ne).filter(r=>ne[r].triggerable).map(wr),n=[...this.declared.values()].map(Pr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=ne[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Qe(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=ne[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Qe(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return xn(this.get(t)?.shape)}nestsUnderParent(t){return wn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Uu=new jo;function Fu(e,t,n=[]){const r=e.createdAt;if(!r)return[];const o=new Set(n);return e.author.type==="user"&&e.author.id&&o.add(e.author.id),Object.entries(t).filter(([s,i])=>i>=r&&!o.has(s)).map(([s])=>s)}function qo(e){return e.createdAt??0}function Bu(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function ju(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function U(e){return e<0?-Math.round(-e):Math.round(e)}function de(e,t){if(t.length===0)return[];const n=t.reduce((c,u)=>c+u,0);if(n===0)return t.map((c,u)=>u===0?e:0);const r=t.map(c=>e*c/n),o=r.map(c=>Math.trunc(c));let s=e-o.reduce((c,u)=>c+u,0);const i=r.map((c,u)=>({index:u,fraction:Math.abs(c-o[u])})).sort((c,u)=>u.fraction-c.fraction),a=s<0?-1:1;for(let c=0;s!==0&&c<i.length;c++)o[i[c].index]+=a,s-=a;return o}function J(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),i=s.slice(0,-2),a=s.slice(-2);let c="";for(let u=0;u<i.length;u++)u>0&&(i.length-u)%3===0&&(c+=r),c+=i[u];return`${o?"-":""}${c}${n}${a}`}function nn(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),i=o.lastIndexOf("."),a=Math.max(s,i),c=a===-1?"":o.slice(a+1),u=a!==-1&&c.length>=1&&c.length<=2,d=u?o.slice(0,a):o;if(!qu(d))return;const l=d.replace(/[.,]/g,""),p=u?c.padEnd(2,"0"):"00";if(l==="")return;const g=Number(l)*100+Number(p);return r?-g:g}function qu(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Gu(e){return e.costPriceCents==null?e.netCents:e.netCents-U(e.costPriceCents*e.quantity)}const Wu=["month","quarter","year"],Ze={month:1,quarter:3,year:12},Vu=864e5,Hu=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},Lr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},Kr=(e,t)=>Math.round((t-e)/Vu);function Et(e,t,n){const r=Ze[t],o=de(e,Array.from({length:r},()=>1));let s=0;for(let i=Hu(n.from);i<n.to;i=Lr(i)){const a=Lr(i),c=Math.max(i,n.from),u=Math.min(a,n.to);if(u<=c)continue;const d=o[new Date(i).getUTCMonth()%r];s+=d*Kr(c,u)/Kr(i,a)}return U(s)}function Go(e,t,n){return!t||!n||t===n?e:U(e*Ze[n]/Ze[t])}function Yu(e){return typeof e=="string"&&e in Ze}const rn=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0&&t!==""));function zu(e){const{role:t,agreement:n={},asked:r={}}=e,o=r.invoiceTo||r.contactId||r.billingAddressId?r:n,s=r.paymentTerm??n.paymentTerm,i=rn({...o.invoiceTo?{invoiceTo:rn({companyId:o.invoiceTo.companyId,contactId:o.contactId})}:{contactId:o.contactId},billingAddressId:o.billingAddressId,paymentTerm:s,reference:r.reference??n.reference}),a=s?.code||t?.paymentTermKey;return{head:i,...a?{paymentTermCode:a}:{}}}function Wo(e){return rn({contactId:e.invoiceTo?e.invoiceTo.contactId:e.contactId,invoiceTo:e.invoiceTo?.companyId?{companyId:e.invoiceTo.companyId}:void 0,billingAddressId:e.billingAddressId,paymentTerm:e.paymentTerm,reference:e.reference})}function Vo(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Xu(e,t){const n=e.lines.filter(Vo).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},prices:[{from:t,cents:U(r.unitPriceCents*(1-(r.discountPercent??0)/100)),...r.pricePer?{per:r.pricePer}:{}}],...r.configurationId?{configurationId:r.configurationId}:{},...r.optionKey?{optionKey:r.optionKey}:{}}));return{title:e.title||e.reference||"",companyId:e.companyId,invoice:Wo(e),currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Qu(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?Et(r.netCents,r.pricePer,t):r.netCents),0)}const on={month:1,quarter:3,year:12},Zu=864e5;function Ju(e,t){return on[e]<on[t]}function Je(e,t){const n=new Date(e),r=on[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function V(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function Ho(e,t){const n=V(e,t);return t.billingStart!=="activation"?n:t.activatedAt==null?null:{...n,from:Math.max(n.from,t.activatedAt)}}function St(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function Yo(e,t,n){const r=St(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,i)=>Math.round((i-s)/Zu);return o(r.from,r.to)/o(t.from,t.to)}function zo(e,t,n){const r=V(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function el(e,t,n){return t.filter(r=>zo(e,r,n)!=="ended")}const sn=864e5;function Pn(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function Xo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ve=e=>Math.round((e.to-e.from)/sn);function tl(e,t,n,r){const o=[],s=[],i=e.graceDays*sn,a=e.proration===!0;for(const c of t){const u=Ho(e,c);if(!u)continue;const d=Pn(e,c),l=Xo(c),p=n.filter(m=>m.agreementLineId===c.id);if(d==="once"){const m={from:u.from,to:u.from+sn};u.from+i<=r&&!p.some(_=>!_.correction)&&o.push({lineId:c.id,window:m,part:m,share:1,timing:"advance"});continue}const g=[];for(let m=Je(u.from,d);m.from<(u.to??Number.POSITIVE_INFINITY)&&m.from+i<=r;m=Je(m.to,d))g.push(m);const f=c.quantity.from==="fixed";for(const m of g.slice(-24)){const _=St(u,m),h=m.to+i<=r,y=p.filter(I=>I.servicePeriod.from>=m.from&&I.servicePeriod.from<m.to),b=y.find(I=>!I.correction);if(!b){if(!_)continue;const I=_.from===m.from&&_.to===m.to;if(!(l==="advance"&&I)&&!h)continue;const T=f?Yo(u,m,a):1;T>0&&o.push({lineId:c.id,window:m,part:_,share:T,timing:l});continue}f&&a&&h&&s.push(...nl(c.id,m,_,b,y))}}return{charges:o,corrections:s}}function nl(e,t,n,r,o){const s={...r.servicePeriod};for(const c of o){if(!c.correction)continue;Math.sign(c.quantity)!==Math.sign(r.quantity)?c.servicePeriod.from<=s.from?s.from=c.servicePeriod.to:s.to=c.servicePeriod.from:c.servicePeriod.to<=s.from?s.from=c.servicePeriod.from:s.to=c.servicePeriod.to}const i=[];if(s.to>s.from&&(n?(n.from>s.from&&i.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&i.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&i.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&i.push({part:{from:s.to,to:n.to},sign:1})):i.push({part:s,sign:-1})),r.pricePer){const c=r.pricePer;return i.map(({part:u,sign:d})=>({lineId:e,window:t,part:u,quantity:d*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:c})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0&&ve(u.part)>0)}const a=r.unitPriceCents*ve(t)/Math.max(1,ve(r.servicePeriod));return i.map(({part:c,sign:u})=>({lineId:e,window:t,part:c,quantity:u*r.quantity,unitPriceCents:U(a*ve(c)/ve(t))})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0)}function rl(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:i,to:a}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,i),to:Math.max(s.to,a)}:{timing:o.timing,from:i,to:a})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Me=864e5,Qo={draft:["active"],active:["draft","ended"],ended:["active"]};function ol(e,t){return e===t||Qo[e].includes(t)}function sl(e){const t=e.graceDays*Me;let n=e.startsAt;for(const r of e.lines??[]){const o=V(e,r),s=Pn(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,Je(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const et=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Ln=e=>e&&e.termMonths>=1?e:void 0;function Zo(e,t){return Math.min(...t.map(n=>V(e,n).from))}function re(e,t,n){let r=et(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=et(r,o);return r}function Kn(e,t,n){const r=et(e,Math.max(1,t.termMonths)),o=re(e,t,n);return o===r?e:et(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function Jo(e,t,n){if(t=Ln(t),!t)return null;const r=re(e,t,n),o=r-t.noticeDays*Me;return n<=o?o:t.renew==="none"?null:re(e,t,r)-t.noticeDays*Me}function tt(e,t,n){if(t=Ln(t),!t)return n;const r=re(e,t,n);return n<=r-t.noticeDays*Me||t.renew==="none"?r:re(e,t,r)}function es(e,t,n,r){if(t=Ln(t),!t)return{endsAt:n};const o=re(e,t,Math.max(n,e)-1),s=o-t.noticeDays*Me;return r<=s||t.renew==="none"?{endsAt:o,deadline:s}:{endsAt:re(e,t,o),nextTerm:!0}}function il(e,t){let n=t;for(const r of e.lines??[]){const o=V(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,tt(Math.max(o.from,0),s,t))}return n}const $r=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.commitment??null]);function al(e,t){return $r(e)!==$r(t)}function cl(e,t,n,r){const{endsAt:o,...s}=e,i={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},i]}const At=(e,t)=>e.from-t.from;function ts(e,t){const n=[...e??[]].sort(At);return n.filter(r=>r.from<=t).pop()??n[0]}function ul(e,t){return[...e??[]].sort(At).find(n=>n.from>t)}function ns(e,t){return[...(e??[]).filter(n=>n.from!==t.from),t].sort(At)}function ll(e){const t={};for(const n of e){if(n.correction)continue;const r=n.agreementLineId;t[r]=Math.max(t[r]??0,n.servicePeriod.to)}return t}function dl(e,t,n){if(n==null)return!1;const r=o=>JSON.stringify([...o??[]].filter(s=>s.from<n).sort(At).map(s=>[s.from,s.cents,s.per??null]));return r(e)!==r(t)}function fl(e,t){const{from:n,percent:r}=t,o=new Set(t.ratedProductIds??[]),s=[];return{lines:e.map(a=>{if(a.rateCardId||o.has(a.productId))return s.push({lineId:a.id,skipped:"rated"}),a;const c=ts(a.prices,n-1);if(!c)return s.push({lineId:a.id,skipped:"ladder"}),a;const u=U(Math.round(c.cents*(100+r)*1e6)/1e8),d=a.prices?.find(p=>p.from===n)?.cents;s.push({lineId:a.id,base:c.cents,next:u,...d!=null?{replaces:d}:{}});const l={from:n,cents:u,...c.per?{per:c.per}:{}};return{...a,prices:ns(a.prices,l)}}),results:s}}function rs(e,t){const n=t.quantity;if(n?.from!=="meter")return null;if(n.accountRef)return{app:n.app,accountRef:n.accountRef};const r=e.sourceAccount;return r&&r.app===n.app?r:null}function pl(e){const t=new Map;for(const n of e.lines??[]){const r=rs(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function ml(e,t){return[e,t].join("@")}const vt=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function gl(e){return vt.find(t=>t.id===e)?.defaultFlag}function hl(e){const t={};for(const n of vt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function yl(e,t){const n={};for(const r of vt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const bl={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function _l(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=bl[t];return n?e.in.includes(n):!1}const ye=["fast","standard","deep"],Ur=(e,t)=>{const n=ye.indexOf(e),r=Math.min(ye.length-1,Math.max(0,n+t));return ye[r]},an=e=>ye.indexOf(e);function os(e){const t=[];let n;return e.expectsSchema?(n="fast",t.push("schema-antwoord")):(e.mode??"agent")==="ask"&&!e.toolCount?(n="fast",t.push("vraag zonder tools")):e.toolCount||e.hasAttachments?(n="standard",t.push(e.hasAttachments?"bijlagen":"tools beschikbaar")):(n="standard",t.push("standaard")),e.repair&&(n=Ur(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=Ur(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&an(n)>an(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function Il(e,t,n){const r=os(t);if(!e)return{...r,...n,routed:!1};for(let o=an(r.tier);o>=0;o--){const s=ye[o],i=e[s];if(!i?.accountId||!i.model)continue;const a=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:a,accountId:i.accountId,model:i.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const cn=255,un=2,ln=10;function El(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>cn)return`vraag "${n}" heeft meer dan ${cn} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<un||o>ln)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${un} tot ${ln} zijn`}}return null}function Sl(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const Al=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],$n=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function xe(e){return $n.find(t=>t.id===e)}function vl(e){return xe(e)?.label??e}function Cl(e,t="gpt-5-mini"){return xe(e)?.defaultModel??t}function Tl(e){return $n.filter(t=>t.capabilities.includes(e))}function kl(e){const t=xe(e);return!!t&&!t.baseUrl}function Ol(e,t){return t==="text"?!0:xe(e)?.attachmentKinds?.includes(t)===!0}function Ml(e,t){if(!e.enabled)return"ok";const n=dn(e.hardLimitNanos),r=dn(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function dn(e){return typeof e=="number"?e:void 0}function ss(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Rl(e,t="month"){const n=new Date(ss(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Nl(e){return e==="ask"||e==="draft"||e==="agent"}function Dl(e){return e?.listeningEnabled!==!1}const xl=["report"],wl=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function qt(e){return e<10?`0${e}`:`${e}`}function _e(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${qt(n.getUTCMonth()+1)}-${qt(n.getUTCDate())}`;return t==="day"?r:`${r}T${qt(n.getUTCHours())}`}function Ie(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Pl=36e5,Ll=864e5;function Kl(e,t,n){const r=n==="hour"?Pl:Ll,o=[];for(let s=Ie(e,n);s<=t;s+=r)o.push(_e(s,n));return o}const $l=new Set(["time"]);function Ul(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!$l.has(o.id)).map(o=>({id:o.id,label:o.label,options:o.options?.length?o.options:n[o.id]??[]})).filter(o=>o.options.length>0)}function Fl(e,t){const n=t.find(o=>o.id===e.dimensionId),r=n?.options.find(o=>o.value===e.value);return`${n?.label??e.dimensionId} · ${r?.label??e.value}`}function Bl(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const is=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],as=is.map(e=>e.id);function cs(e,t){return`${e}.usage.${t}`}function jl(e,t){return t.map(n=>({id:cs(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...as,...n.extraDimensions??[],"time"]}))}async function ql(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const i=s?.status;if(i===403||i===400)r++;else throw s}return{decided:n,waiting:r}}function Gl(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function Wl(e,t){return e.filter(r=>!r.enabled||r.scopeKind!==t.scopeKind||r.act!==t.act?!1:r.minAmountCents==null?!0:t.amountCents!=null&&t.amountCents>=r.minAmountCents).sort((r,o)=>{const s=r.minAmountCents??-1;return(o.minAmountCents??-1)-s||r.id.localeCompare(o.id)})[0]}function Vl(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const i of t[s]??[])o.add(i);return r||o.delete(n),[...o]}function Hl(e,t){if(e.status!=="pending"||e.decisions.some(s=>s.userId===t.userId))return e;const n=[...e.decisions,t],r=e.pendingUserIds.filter(s=>s!==t.userId);if(t.decision==="rejected")return{...e,decisions:n,pendingUserIds:r,status:"rejected",settledAt:t.at};const o=e.rule==="any"||r.length===0;return{...e,decisions:n,pendingUserIds:r,status:o?"approved":"pending",settledAt:o?t.at:void 0}}const us=new Set(["info","success","warning","destructive"]),nt=200,rt=100,ot=200,st=12,it=4,fn=10,ls=8,pn=12,Ct=4e3,he=500,ds=1024*1024,Yl=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),fs=["http:","https:","mailto:","tel:"],zl=/^[a-z][a-z0-9+.-]*:/i;function Un(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=zl.exec(t)?.[0];return n?fs.includes(n.toLowerCase()):!t.startsWith("//")}const Xl=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Ql(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=Fr(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=Fr(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),c=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Un(c)?a:e.slice(n,i+1),n=i+1}return t}function Fr(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function ps(e){return Ql(e).replace(Xl,(t,n,r)=>Un(r)?t:"")}function j(e,t=Ct){return typeof e=="string"?ps(e).slice(0,t):""}function Zl(e,t=Ct){return typeof e=="string"?e.slice(0,t):""}function Ce(e,t=200){return j(e,t)}function Jl(e,t="info"){return typeof e=="string"&&us.has(e)?e:t}function ms(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=nt){t(`more than ${nt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Yl.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const i=j(o.text);if(!i){t("a heading without text");continue}const a=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:a,text:i});break}case"paragraph":{const i=j(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=j(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=Zl(o.text);if(!i){t("a code block without text");continue}const a=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...a,text:i});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=rt){t(`more than ${rt} list items`);break}const d=j(u?.text);if(!d)continue;const l=j(u?.lead,200);a.push(l?{lead:l,text:d}:{text:d})}if(a.length===0){t("a list without usable items");continue}const c=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:c,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const l of i){if(a.length>=st){t(`more than ${st} table columns`);break}const p=j(l?.label,he),g=l?.align==="right"?"right":void 0;a.push(g?{label:p,align:g}:{label:p})}if(a.length===0){t("a table without columns");continue}const c=Array.isArray(o.rows)?o.rows:[],u=[];for(const l of c){if(u.length>=ot){t(`more than ${ot} table rows`);break}const p=Array.isArray(l)?l:[];u.push(a.map((g,f)=>j(p[f],he)))}const d=j(o.caption,he);n.push({...s,type:"table",columns:a,rows:u,...d?{caption:d}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const c of i){if(a.length>=it){t(`more than ${it} kpi items`);break}const u=j(c?.value,40),d=j(c?.label,80);if(!u||!d)continue;const l=c?.tone;a.push(typeof l=="string"&&us.has(l)?{value:u,label:d,tone:l}:{value:u,label:d})}if(a.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:a});break}case"image":{const i=typeof o.url=="string"?o.url.trim():"";if(!i||!Un(i)){t("an image without a usable url");continue}const a=j(o.alt,200),c=j(o.caption,he);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...c?{caption:c}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const d of i){if(a.length>=fn){t(`more than ${fn} letterhead fields`);break}const l=d,p=typeof l?.key=="string"?l.key.slice(0,48):"",g=Ce(l?.value);if(!p||!g)continue;const f=Ce(l?.label,80);a.push(f?{key:p,label:f,value:g}:{key:p,value:g})}const u=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,ls).map(d=>Ce(d)).filter(Boolean);if(a.length===0&&u.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...u.length>0?{recipient:u}:{}});break}case"totals":{const i=u=>{const d=Array.isArray(u)?u:[],l=[];for(const p of d){if(l.length>=pn){t(`more than ${pn} totals rows`);break}const g=p,f=Ce(g?.label),m=Ce(g?.amount,40);!f||!m||l.push(g?.emphasis===!0?{label:f,amount:m,emphasis:!0}:{label:f,amount:m})}return l},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const c=i(o.taxRows);n.push({...s,type:"totals",rows:a,...c.length>0?{taxRows:c}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=j(o.text);if(!i){t("a callout without text");continue}const a=j(o.title,200);n.push({...s,type:"callout",tone:Jl(o.tone),...a?{title:a}:{},text:i});break}}}return n}function gs(e){return JSON.stringify(e).length}function hs(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function Br(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Gt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(Br).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(Br).join(" | ")} |`)]}function ed(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Gt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Gt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=`![${e.alt??""}](${e.url})`;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Gt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function Fn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=ed(o);s.length>0&&n.push(s.join(`
3
+ `),t=t.replace(vu,"$2"),t=t.replace(Cu,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function Uo(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function Ue(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function Nr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function qt(e){return e?.split("@")?.[0]||e||""}function Fe(e){return e.map(t=>t.name).join(", ")}function Dr(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const ne={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${qt(e.payload.from)}`:`Outbound call started — ${qt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Ue(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Nr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${qt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Ue(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:xr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:xr},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Fe(e.payload.members)} toegevoegd`,timeline:e=>{const t=Fe(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Fe(e.payload.members)} verlaten`,timeline:e=>{const t=Fe(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${Dr(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Ue(e.payload.duration)})`:""}`,timeline:e=>`${Dr(e.payload.callType)} ended${Nr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${Ue(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function xr(e){const t=e.payload,n=$o(t.bodyText).trim()||t.bodySnippet?.trim()||Uo(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function H(e){return ne[e]}function Tu(e){return H(e)?.icon??"circle"}function ku(e){return H(e)?.channelKind}function wn(e){return e==="message"||e==="note"}function Ou(e){return wn(H(e)?.shape)}function Pn(e){return e==="note"}function Mu(e){return Pn(H(e)?.shape)}function Ru(e){return H(e)?.replyable===!0}function Nu(e){return H(e)?.carriesText===!0}function Fo(e){return H(e)?.countsAs}function Du(e){return H(e)?.playbookAuthored===!0}function xu(e){return H(e)?.connected===!0}function wu(e){const t=H(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Bo(e){const t=H(e.type)?.snippet;return t?t(e):""}function Pu(e,t){const n=H(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Lu(e){const t=H(e.type)?.joinUrl;return t?t(e):void 0}function Qe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function Ze(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Qe(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Qe(t,i);const o=n(e.key,r);return o===e.key?null:o}function jo(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Qe(t,o);return{key:e.key,params:n}}const wr=140;function Ku(e){const t=e.trim();return t.length<=wr?t:`${t.slice(0,wr-1).trimEnd()}…`}function $u(e,t){const n=jo(t?.text,e),r=t?Ze(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Ku(r??Bo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Uu=e=>e;function Pr(e){const t=ne[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function Lr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class qo{constructor(t=[],n=Uu){this.translate=n;for(const r of t)r?.type&&(r.type in ne||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in ne)return Pr(t);const n=this.declared.get(t);return n?Lr(n):void 0}triggerable(){const t=Object.keys(ne).filter(r=>ne[r].triggerable).map(Pr),n=[...this.declared.values()].map(Lr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=ne[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Ze(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=ne[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Ze(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return wn(this.get(t)?.shape)}nestsUnderParent(t){return Pn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Fu=new qo;function Bu(e,t,n=[]){const r=e.createdAt;if(!r)return[];const o=new Set(n);return e.author.type==="user"&&e.author.id&&o.add(e.author.id),Object.entries(t).filter(([s,i])=>i>=r&&!o.has(s)).map(([s])=>s)}function Go(e){return e.createdAt??0}function ju(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function qu(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function U(e){return e<0?-Math.round(-e):Math.round(e)}function fe(e,t){if(t.length===0)return[];const n=t.reduce((c,u)=>c+u,0);if(n===0)return t.map((c,u)=>u===0?e:0);const r=t.map(c=>e*c/n),o=r.map(c=>Math.trunc(c));let s=e-o.reduce((c,u)=>c+u,0);const i=r.map((c,u)=>({index:u,fraction:Math.abs(c-o[u])})).sort((c,u)=>u.fraction-c.fraction),a=s<0?-1:1;for(let c=0;s!==0&&c<i.length;c++)o[i[c].index]+=a,s-=a;return o}function J(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),i=s.slice(0,-2),a=s.slice(-2);let c="";for(let u=0;u<i.length;u++)u>0&&(i.length-u)%3===0&&(c+=r),c+=i[u];return`${o?"-":""}${c}${n}${a}`}function rn(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),i=o.lastIndexOf("."),a=Math.max(s,i),c=a===-1?"":o.slice(a+1),u=a!==-1&&c.length>=1&&c.length<=2,d=u?o.slice(0,a):o;if(!Gu(d))return;const l=d.replace(/[.,]/g,""),p=u?c.padEnd(2,"0"):"00";if(l==="")return;const g=Number(l)*100+Number(p);return r?-g:g}function Gu(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Wu(e){return e.costPriceCents==null?e.netCents:e.netCents-U(e.costPriceCents*e.quantity)}const Vu=["month","quarter","year"],Je={month:1,quarter:3,year:12},Hu=864e5,Yu=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},Kr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},$r=(e,t)=>Math.round((t-e)/Hu);function St(e,t,n){const r=Je[t],o=fe(e,Array.from({length:r},()=>1));let s=0;for(let i=Yu(n.from);i<n.to;i=Kr(i)){const a=Kr(i),c=Math.max(i,n.from),u=Math.min(a,n.to);if(u<=c)continue;const d=o[new Date(i).getUTCMonth()%r];s+=d*$r(c,u)/$r(i,a)}return U(s)}function Wo(e,t,n){return!t||!n||t===n?e:U(e*Je[n]/Je[t])}function zu(e){return typeof e=="string"&&e in Je}const on=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0&&t!==""));function Xu(e){const{role:t,agreement:n={},asked:r={}}=e,o=r.invoiceTo||r.contactId||r.billingAddressId?r:n,s=r.paymentTerm??n.paymentTerm,i=on({...o.invoiceTo?{invoiceTo:on({companyId:o.invoiceTo.companyId,contactId:o.contactId})}:{contactId:o.contactId},billingAddressId:o.billingAddressId,paymentTerm:s,reference:r.reference??n.reference}),a=s?.code||t?.paymentTermKey;return{head:i,...a?{paymentTermCode:a}:{}}}function Vo(e){return on({contactId:e.invoiceTo?e.invoiceTo.contactId:e.contactId,invoiceTo:e.invoiceTo?.companyId?{companyId:e.invoiceTo.companyId}:void 0,billingAddressId:e.billingAddressId,paymentTerm:e.paymentTerm,reference:e.reference})}function Ho(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Qu(e,t){const n=e.lines.filter(Ho).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},prices:[{from:t,cents:U(r.unitPriceCents*(1-(r.discountPercent??0)/100)),...r.pricePer?{per:r.pricePer}:{}}],...r.configurationId?{configurationId:r.configurationId}:{},...r.optionKey?{optionKey:r.optionKey}:{}}));return{title:e.title||e.reference||"",companyId:e.companyId,invoice:Vo(e),currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Zu(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?St(r.netCents,r.pricePer,t):r.netCents),0)}const sn={month:1,quarter:3,year:12},Ju=864e5;function el(e,t){return sn[e]<sn[t]}function et(e,t){const n=new Date(e),r=sn[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function V(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function Yo(e,t){const n=V(e,t);return t.billingStart!=="activation"?n:t.activatedAt==null?null:{...n,from:Math.max(n.from,t.activatedAt)}}function At(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function zo(e,t,n){const r=At(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,i)=>Math.round((i-s)/Ju);return o(r.from,r.to)/o(t.from,t.to)}function Xo(e,t,n){const r=V(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function tl(e,t,n){return t.filter(r=>Xo(e,r,n)!=="ended")}const an=864e5;function Ln(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function Qo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const Ce=e=>Math.round((e.to-e.from)/an);function nl(e,t,n,r){const o=[],s=[],i=e.graceDays*an,a=e.proration===!0;for(const c of t){const u=Yo(e,c);if(!u)continue;const d=Ln(e,c),l=Qo(c),p=n.filter(m=>m.agreementLineId===c.id);if(d==="once"){const m={from:u.from,to:u.from+an};u.from+i<=r&&!p.some(_=>!_.correction)&&o.push({lineId:c.id,window:m,part:m,share:1,timing:"advance"});continue}const g=[];for(let m=et(u.from,d);m.from<(u.to??Number.POSITIVE_INFINITY)&&m.from+i<=r;m=et(m.to,d))g.push(m);const f=c.quantity.from==="fixed";for(const m of g.slice(-24)){const _=At(u,m),h=m.to+i<=r,y=p.filter(I=>I.servicePeriod.from>=m.from&&I.servicePeriod.from<m.to),b=y.find(I=>!I.correction);if(!b){if(!_)continue;const I=_.from===m.from&&_.to===m.to;if(!(l==="advance"&&I)&&!h)continue;const T=f?zo(u,m,a):1;T>0&&o.push({lineId:c.id,window:m,part:_,share:T,timing:l});continue}f&&a&&h&&s.push(...rl(c.id,m,_,b,y))}}return{charges:o,corrections:s}}function rl(e,t,n,r,o){const s={...r.servicePeriod};for(const c of o){if(!c.correction)continue;Math.sign(c.quantity)!==Math.sign(r.quantity)?c.servicePeriod.from<=s.from?s.from=c.servicePeriod.to:s.to=c.servicePeriod.from:c.servicePeriod.to<=s.from?s.from=c.servicePeriod.from:s.to=c.servicePeriod.to}const i=[];if(s.to>s.from&&(n?(n.from>s.from&&i.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&i.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&i.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&i.push({part:{from:s.to,to:n.to},sign:1})):i.push({part:s,sign:-1})),r.pricePer){const c=r.pricePer;return i.map(({part:u,sign:d})=>({lineId:e,window:t,part:u,quantity:d*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:c})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0&&Ce(u.part)>0)}const a=r.unitPriceCents*Ce(t)/Math.max(1,Ce(r.servicePeriod));return i.map(({part:c,sign:u})=>({lineId:e,window:t,part:c,quantity:u*r.quantity,unitPriceCents:U(a*Ce(c)/Ce(t))})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0)}function ol(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:i,to:a}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,i),to:Math.max(s.to,a)}:{timing:o.timing,from:i,to:a})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Re=864e5,Zo={draft:["active"],active:["draft","ended"],ended:["active"]};function sl(e,t){return e===t||Zo[e].includes(t)}function il(e){const t=e.graceDays*Re;let n=e.startsAt;for(const r of e.lines??[]){const o=V(e,r),s=Ln(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,et(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const tt=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Kn=e=>e&&e.termMonths>=1?e:void 0;function Jo(e,t){return Math.min(...t.map(n=>V(e,n).from))}function re(e,t,n){let r=tt(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=tt(r,o);return r}function $n(e,t,n){const r=tt(e,Math.max(1,t.termMonths)),o=re(e,t,n);return o===r?e:tt(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function es(e,t,n){if(t=Kn(t),!t)return null;const r=re(e,t,n),o=r-t.noticeDays*Re;return n<=o?o:t.renew==="none"?null:re(e,t,r)-t.noticeDays*Re}function nt(e,t,n){if(t=Kn(t),!t)return n;const r=re(e,t,n);return n<=r-t.noticeDays*Re||t.renew==="none"?r:re(e,t,r)}function ts(e,t,n,r){if(t=Kn(t),!t)return{endsAt:n};const o=re(e,t,Math.max(n,e)-1),s=o-t.noticeDays*Re;return r<=s||t.renew==="none"?{endsAt:o,deadline:s}:{endsAt:re(e,t,o),nextTerm:!0}}function al(e,t){let n=t;for(const r of e.lines??[]){const o=V(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,nt(Math.max(o.from,0),s,t))}return n}const Ur=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.commitment??null]);function cl(e,t){return Ur(e)!==Ur(t)}function ul(e,t,n,r){const{endsAt:o,...s}=e,i={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},i]}const vt=(e,t)=>e.from-t.from;function ns(e,t){const n=[...e??[]].sort(vt);return n.filter(r=>r.from<=t).pop()??n[0]}function ll(e,t){return[...e??[]].sort(vt).find(n=>n.from>t)}function rs(e,t){return[...(e??[]).filter(n=>n.from!==t.from),t].sort(vt)}function dl(e){const t={};for(const n of e){if(n.correction)continue;const r=n.agreementLineId;t[r]=Math.max(t[r]??0,n.servicePeriod.to)}return t}function fl(e,t,n){if(n==null)return!1;const r=o=>JSON.stringify([...o??[]].filter(s=>s.from<n).sort(vt).map(s=>[s.from,s.cents,s.per??null]));return r(e)!==r(t)}function pl(e,t){const{from:n,percent:r}=t,o=new Set(t.ratedProductIds??[]),s=[];return{lines:e.map(a=>{if(a.rateCardId||o.has(a.productId))return s.push({lineId:a.id,skipped:"rated"}),a;const c=ns(a.prices,n-1);if(!c)return s.push({lineId:a.id,skipped:"ladder"}),a;const u=U(Math.round(c.cents*(100+r)*1e6)/1e8),d=a.prices?.find(p=>p.from===n)?.cents;s.push({lineId:a.id,base:c.cents,next:u,...d!=null?{replaces:d}:{}});const l={from:n,cents:u,...c.per?{per:c.per}:{}};return{...a,prices:rs(a.prices,l)}}),results:s}}function os(e,t){const n=t.quantity;if(n?.from!=="meter")return null;if(n.accountRef)return{app:n.app,accountRef:n.accountRef};const r=e.sourceAccount;return r&&r.app===n.app?r:null}function ml(e){const t=new Map;for(const n of e.lines??[]){const r=os(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function gl(e,t){return[e,t].join("@")}const Ct=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function hl(e){return Ct.find(t=>t.id===e)?.defaultFlag}function yl(e){const t={};for(const n of Ct)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function bl(e,t){const n={};for(const r of Ct){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const _l={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function Il(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=_l[t];return n?e.in.includes(n):!1}const be=["fast","standard","deep"],Fr=(e,t)=>{const n=be.indexOf(e),r=Math.min(be.length-1,Math.max(0,n+t));return be[r]},cn=e=>be.indexOf(e);function ss(e){const t=[];let n;return e.expectsSchema?(n="fast",t.push("schema-antwoord")):(e.mode??"agent")==="ask"&&!e.toolCount?(n="fast",t.push("vraag zonder tools")):e.toolCount||e.hasAttachments?(n="standard",t.push(e.hasAttachments?"bijlagen":"tools beschikbaar")):(n="standard",t.push("standaard")),e.repair&&(n=Fr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=Fr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&cn(n)>cn(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function El(e,t,n){const r=ss(t);if(!e)return{...r,...n,routed:!1};for(let o=cn(r.tier);o>=0;o--){const s=be[o],i=e[s];if(!i?.accountId||!i.model)continue;const a=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:a,accountId:i.accountId,model:i.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const un=255,ln=2,dn=10;function Sl(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>un)return`vraag "${n}" heeft meer dan ${un} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<ln||o>dn)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${ln} tot ${dn} zijn`}}return null}function Al(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const vl=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],Un=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function we(e){return Un.find(t=>t.id===e)}function Cl(e){return we(e)?.label??e}function Tl(e,t="gpt-5-mini"){return we(e)?.defaultModel??t}function kl(e){return Un.filter(t=>t.capabilities.includes(e))}function Ol(e){const t=we(e);return!!t&&!t.baseUrl}function Ml(e,t){return t==="text"?!0:we(e)?.attachmentKinds?.includes(t)===!0}function Rl(e,t){if(!e.enabled)return"ok";const n=fn(e.hardLimitNanos),r=fn(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function fn(e){return typeof e=="number"?e:void 0}function is(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Nl(e,t="month"){const n=new Date(is(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Dl(e){return e==="ask"||e==="draft"||e==="agent"}function xl(e){return e?.listeningEnabled!==!1}const wl=["report"],Pl=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function Gt(e){return e<10?`0${e}`:`${e}`}function Ie(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Gt(n.getUTCMonth()+1)}-${Gt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Gt(n.getUTCHours())}`}function Ee(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Ll=36e5,Kl=864e5;function $l(e,t,n){const r=n==="hour"?Ll:Kl,o=[];for(let s=Ee(e,n);s<=t;s+=r)o.push(Ie(s,n));return o}const Ul=new Set(["time"]);function Fl(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Ul.has(o.id)).map(o=>({id:o.id,label:o.label,options:o.options?.length?o.options:n[o.id]??[]})).filter(o=>o.options.length>0)}function Bl(e,t){const n=t.find(o=>o.id===e.dimensionId),r=n?.options.find(o=>o.value===e.value);return`${n?.label??e.dimensionId} · ${r?.label??e.value}`}function jl(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const as=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],cs=as.map(e=>e.id);function us(e,t){return`${e}.usage.${t}`}function ql(e,t){return t.map(n=>({id:us(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...cs,...n.extraDimensions??[],"time"]}))}async function Gl(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const i=s?.status;if(i===403||i===400)r++;else throw s}return{decided:n,waiting:r}}function Wl(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function Vl(e,t){return e.filter(r=>!r.enabled||r.scopeKind!==t.scopeKind||r.act!==t.act?!1:r.minAmountCents==null?!0:t.amountCents!=null&&t.amountCents>=r.minAmountCents).sort((r,o)=>{const s=r.minAmountCents??-1;return(o.minAmountCents??-1)-s||r.id.localeCompare(o.id)})[0]}function Hl(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const i of t[s]??[])o.add(i);return r||o.delete(n),[...o]}function Yl(e,t){if(e.status!=="pending"||e.decisions.some(s=>s.userId===t.userId))return e;const n=[...e.decisions,t],r=e.pendingUserIds.filter(s=>s!==t.userId);if(t.decision==="rejected")return{...e,decisions:n,pendingUserIds:r,status:"rejected",settledAt:t.at};const o=e.rule==="any"||r.length===0;return{...e,decisions:n,pendingUserIds:r,status:o?"approved":"pending",settledAt:o?t.at:void 0}}const ls=new Set(["info","success","warning","destructive"]),rt=200,ot=100,st=200,it=12,at=4,pn=10,ds=8,mn=12,Tt=4e3,ye=500,fs=1024*1024,zl=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),ps=["http:","https:","mailto:","tel:"],Xl=/^[a-z][a-z0-9+.-]*:/i;function Fn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Xl.exec(t)?.[0];return n?ps.includes(n.toLowerCase()):!t.startsWith("//")}const Ql=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Zl(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=Br(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=Br(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),c=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Fn(c)?a:e.slice(n,i+1),n=i+1}return t}function Br(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function ms(e){return Zl(e).replace(Ql,(t,n,r)=>Fn(r)?t:"")}function j(e,t=Tt){return typeof e=="string"?ms(e).slice(0,t):""}function Jl(e,t=Tt){return typeof e=="string"?e.slice(0,t):""}function Te(e,t=200){return j(e,t)}function ed(e,t="info"){return typeof e=="string"&&ls.has(e)?e:t}function gs(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=rt){t(`more than ${rt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!zl.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const i=j(o.text);if(!i){t("a heading without text");continue}const a=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:a,text:i});break}case"paragraph":{const i=j(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=j(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=Jl(o.text);if(!i){t("a code block without text");continue}const a=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...a,text:i});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=ot){t(`more than ${ot} list items`);break}const d=j(u?.text);if(!d)continue;const l=j(u?.lead,200);a.push(l?{lead:l,text:d}:{text:d})}if(a.length===0){t("a list without usable items");continue}const c=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:c,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const l of i){if(a.length>=it){t(`more than ${it} table columns`);break}const p=j(l?.label,ye),g=l?.align==="right"?"right":void 0;a.push(g?{label:p,align:g}:{label:p})}if(a.length===0){t("a table without columns");continue}const c=Array.isArray(o.rows)?o.rows:[],u=[];for(const l of c){if(u.length>=st){t(`more than ${st} table rows`);break}const p=Array.isArray(l)?l:[];u.push(a.map((g,f)=>j(p[f],ye)))}const d=j(o.caption,ye);n.push({...s,type:"table",columns:a,rows:u,...d?{caption:d}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const c of i){if(a.length>=at){t(`more than ${at} kpi items`);break}const u=j(c?.value,40),d=j(c?.label,80);if(!u||!d)continue;const l=c?.tone;a.push(typeof l=="string"&&ls.has(l)?{value:u,label:d,tone:l}:{value:u,label:d})}if(a.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:a});break}case"image":{const i=typeof o.url=="string"?o.url.trim():"";if(!i||!Fn(i)){t("an image without a usable url");continue}const a=j(o.alt,200),c=j(o.caption,ye);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...c?{caption:c}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const d of i){if(a.length>=pn){t(`more than ${pn} letterhead fields`);break}const l=d,p=typeof l?.key=="string"?l.key.slice(0,48):"",g=Te(l?.value);if(!p||!g)continue;const f=Te(l?.label,80);a.push(f?{key:p,label:f,value:g}:{key:p,value:g})}const u=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,ds).map(d=>Te(d)).filter(Boolean);if(a.length===0&&u.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...u.length>0?{recipient:u}:{}});break}case"totals":{const i=u=>{const d=Array.isArray(u)?u:[],l=[];for(const p of d){if(l.length>=mn){t(`more than ${mn} totals rows`);break}const g=p,f=Te(g?.label),m=Te(g?.amount,40);!f||!m||l.push(g?.emphasis===!0?{label:f,amount:m,emphasis:!0}:{label:f,amount:m})}return l},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const c=i(o.taxRows);n.push({...s,type:"totals",rows:a,...c.length>0?{taxRows:c}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=j(o.text);if(!i){t("a callout without text");continue}const a=j(o.title,200);n.push({...s,type:"callout",tone:ed(o.tone),...a?{title:a}:{},text:i});break}}}return n}function hs(e){return JSON.stringify(e).length}function ys(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function jr(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Wt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(jr).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(jr).join(" | ")} |`)]}function td(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Wt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Wt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=`![${e.alt??""}](${e.url})`;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Wt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function Bn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=td(o);s.length>0&&n.push(s.join(`
4
4
  `))}return`${n.join(`
5
5
 
6
6
  `)}
7
- `}const Bn=e=>`user:${e}`,jn=e=>`team:${e}`;function td(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Bn(n.id)),n.kind==="team"&&t.add(jn(n.id)));return[...t].sort()}function nd(e,t){return[Bn(e),...t.map(jn)]}function rd(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const ys=["done","escalated"],od=["open","waiting"];function sd(e){return ys.includes(e)}const bs="assignment";function id(e){return`${bs}:${e}`}function ad(e,t,n,r){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const o=e.payload?.mentions;return Array.isArray(o)&&o.includes(t)||r&&r===t?!0:n==="reply"}function cd(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function ud(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const _s=12;function ld(e,t,n=_s){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Is=2;function dd(e,t,n,r){if(t===n)return"een agent schakelt zichzelf niet in";if(!r?.includes(t))return"deze agent staat niet in de lijst die je mag inschakelen";const o=e??[];if(o.includes(t))return"die agent zit al in deze keten; dat zou een kringetje worden";const s=Math.max(0,o.length-1);return s>=Is?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const jr=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),qr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function fd(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),i=jr(`${e.description} ${e.endToEndId??""}`),a=h=>h.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:h.id,sourceApp:h.sourceApp??"sales"}:{kind:"receipt",receiptId:h.id},c=s.filter(h=>h.number&&i.includes(jr(h.number))),u=c.find(h=>h.openCents===r);if(u)return{target:a(u),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:u.label};if(c.length===1&&c[0]){const h=c[0];return{target:a(h),via:"exact",confidence:"medium",reasons:["invoice_number"],label:h.label}}const d=e.counterpartyIban;if(d){const h=s.filter(y=>y.ibans.includes(d)&&y.openCents===r);if(h.length===1&&h[0]){const y=h[0];return{target:a(y),via:"exact",confidence:"high",reasons:["iban","amount"],label:y.label}}}const l=(t.scheduled??[]).filter(h=>h.expectedBankCents===e.amountCents),p=d?l.filter(h=>h.ibans.includes(d)):[],g=l.filter(h=>qr(h.dueOn,e.date)<=7),f=p.length===1?p[0]:g.length===1?g[0]:void 0;if(f)return{target:{kind:"scheduled_posting",scheduledPostingId:f.id},via:"exact",confidence:p.length===1?"high":"medium",reasons:p.length===1?["iban","amount"]:["amount","date_window"],label:f.label};if(d&&t.ownIbans.some(h=>h.iban===d&&h.bankAccountId!==e.bankAccountId)){const h=t.otherLines.find(y=>y.state==="unmatched"&&y.bankAccountId!==e.bankAccountId&&y.amountCents===-e.amountCents&&qr(y.date,e.date)<=3);if(h)return{target:{kind:"transfer",bankLineId:h.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const m=e.description.toLowerCase(),_=[...t.rules].sort((h,y)=>h.order-y.order).find(h=>{const y=h.when;return y.bankAccountId&&y.bankAccountId!==e.bankAccountId||y.counterpartyIban&&y.counterpartyIban!==d||y.direction&&y.direction!==(n?"in":"out")||y.descriptionContains&&!m.includes(y.descriptionContains.toLowerCase())?!1:!!(y.counterpartyIban||y.descriptionContains)});if(_)return{target:_.action.financingItemId?{kind:"financing",financingItemId:_.action.financingItemId}:{kind:"account",accountId:_.action.accountId,..._.action.taxCode?{taxCode:_.action.taxCode}:{},..._.action.description?{description:_.action.description}:{}},via:"rule",confidence:_.confidence,ruleId:_.id,reasons:["rule"],label:_.name}}const pd=e=>e.reduce((t,n)=>n>t?n:t,"");function Es(e,t){return t?e.on>t?!1:e.status==="active"||new Date(e.reversal?.at??0).toISOString().slice(0,10)>t:e.status==="active"}function md(e,t,n,r){const[o,s]=[e.slice(0,3),e.slice(3)],i=o==="jl:"?"journal_line":"bank_line",a=n.filter(c=>Es(c,r)).flatMap(c=>c.allocations).filter(c=>c.item.kind===i&&c.item.id===s).reduce((c,u)=>c+u.amountCents,0);return t-a}function gd(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function hd(e,t){const n=Math.sign(t)===Math.sign(e);return{state:t===0?"paid":n?Math.abs(t)>=Math.abs(e)?"unpaid":"partially_paid":"overpaid",paidCents:Math.abs(e-t),openCents:n?Math.abs(t):0}}const Ss=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&amp;/g,"&").trim();function Q(e,t){const n=[],r=new RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,"g");for(let o=r.exec(e);o;o=r.exec(e))n.push(o[1]??"");return n}function N(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:Q(n,r)[0];return n===void 0?void 0:Ss(n)}const at=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},Gr=e=>e?.slice(0,10),yd=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function As(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=Q(t,"Stmt")[0]??t,r=N(n,"Id")??"stmt",o=d=>{const l=Q(n,"Bal").find(g=>N(g,"Cd")===d);if(!l)return;const p=at(N(l,"Amt"));if(p!==void 0)return{cents:N(l,"CdtDbtInd")==="DBIT"?-p:p,date:yd(l)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=Q(n,"Ntry").flatMap((d,l)=>{if((N(d,"Sts","Cd")??N(d,"Sts"))==="PDNG")return[];const p=at(N(d,"Amt"));if(p===void 0)return[];const g=N(d,"CdtDbtInd")==="DBIT",f=Q(d,"TxDtls")[0]??d,m=g?"Cdtr":"Dbtr",_=N(f,"RltdPties",m,"Nm")??N(f,"RltdPties",m,"Pty","Nm"),h=N(f,"RltdPties",`${m}Acct`,"Id","IBAN"),y=[...Q(f,"Ustrd").map(Ss),N(d,"AddtlNtryInf")].filter(Boolean),b=N(f,"Refs","EndToEndId"),I=Gr(N(d,"BookgDt","Dt")??N(d,"BookgDt","DtTm"))??"",v=Gr(N(d,"ValDt","Dt")??N(d,"ValDt","DtTm")),T=N(d,"AcctSvcrRef")??N(d,"NtryRef");return[{date:I,...v?{valueDate:v}:{},amountCents:g?-p:p,currency:/Ccy="([A-Z]{3})"/.exec(d)?.[1]??"EUR",..._?{counterpartyName:_}:{},...h?{counterpartyIban:h.replace(/\s+/g,"").toUpperCase()}:{},description:y.join(" ").replace(/\s+/g," ").trim(),...b&&b!=="NOTPROVIDED"?{endToEndId:b}:{},dedupeKey:T?`ref:${T}`:`seq:${r}:${l+1}`}]}),c=a.map(d=>d.date).filter(Boolean).sort(),u=N(n,"Acct","Id","IBAN");return{format:"camt053",...u?{iban:u.replace(/\s+/g,"").toUpperCase()}:{},...N(n,"Acct","Ccy")?{currency:N(n,"Acct","Ccy")}:{},from:N(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??c[0]??"",to:N(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const vs=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function Wr(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=at(t[4])??0;return{cents:t[1]==="D"?-n:n,date:vs(t[2]??""),currency:t[3]}}const bd=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function _d(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+bd.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((i,a)=>{const c=(i.index??0)+i[0].length,u=r[a+1]?.index??t.length;o[i[1]??""]=t.slice(c,u).replace(/\/$/,"").trim()});const s=(o.REMI??"").replace(/^(?:USTD|STRD)\/+(?:[A-Z]+\/+)*/,"").trim();return{...o.NAME?{counterpartyName:o.NAME}:{},...o.IBAN?{counterpartyIban:o.IBAN.replace(/\s+/g,"").toUpperCase()}:{},...o.EREF&&o.EREF!=="NOTPROVIDED"?{endToEndId:o.EREF}:{},description:s||t.trim()}}function Cs(e){const t=e.replace(/\r\n/g,`
8
- `),n=[];for(const d of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const l=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(d.trim());l&&n.push({tag:l[1]??"",value:(l[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,i;const a=[];let c=0;for(const{tag:d,value:l}of n)if(d==="25")r=l.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(d==="28C")o=l,c=0;else if(d==="60F"||d==="60M")s??=Wr(l);else if(d==="62F"||d==="62M")i=Wr(l);else if(d==="61"){const p=l.split(`
9
- `)[0]??"",g=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(p);if(!g)continue;c++;const f=at(g[4])??0,m=g[3]==="C"||g[3]==="RD",_=vs(g[1]??""),h=g[2]?`${_.slice(0,4)}-${g[2].slice(0,2)}-${g[2].slice(2,4)}`:_,y=g[6]??g[5]?.trim();a.push({date:h,valueDate:_,amountCents:m?f:-f,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${c}`})}else if(d==="86"){const p=a.at(-1);p&&!p.description&&Object.assign(p,_d(l))}const u=a.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??u[0]??"",to:i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function Id(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?As(e):Cs(e)}const Ed=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id,Tt=e=>e.invoiceTo?.companyId||e.companyId;function Ae(e){const t=e??{},n={};for(const r of qn){const o=t[r];typeof o=="string"&&o.trim()&&(n[r]=o.trim())}return Object.keys(n).length?n:void 0}const qn=["costCenterId","costUnitId","projectId","customerCompanyId"],Sd=864e5,Vr=e=>new Date(e).toISOString().slice(0,10);function Ad(e,t){if(!t.length)return e;const n=new Map;for(const m of t){const _=m.target.kind==="contract_line"?{from:Vr(m.target.period.from),to:Vr(m.target.period.to-Sd)}:void 0,h={...Ae({...m.dimensions,...m.customerCompanyId?{customerCompanyId:m.customerCompanyId}:{}}),..._&&!e.period?{period:_}:{}},y=JSON.stringify(h),b=n.get(y);n.set(y,{share:h,cents:(b?.cents??0)+m.amountCents})}const r=t[0],o={...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.use?{use:r.use}:{}},{allocations:s,...i}=e,a=[...n.values()];if(a.length===1)return{...i,...o,...a[0].share};const c=de(e.netCents,a.map(m=>m.cents)),u=de(e.taxCents,c),{costCenterId:d,costUnitId:l,projectId:p,customerCompanyId:g,...f}=i;return{...f,...o,allocations:a.map(({share:m},_)=>({...m,netCents:c[_],taxCents:u[_]}))}}function vd(e){if(!e.allocations?.length)return[e];const{allocations:t,...n}=e;return t.map(({period:r,...o})=>({...n,...o,...r&&!n.period?{period:r}:{}}))}function Cd(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Ts(e){const t=e.reduce((r,o)=>r+o.netCents,0),n=e.reduce((r,o)=>r+o.taxCents,0);return{netCents:t,taxCents:n,grossCents:t+n}}const Td="receipt",kd="book";function ks(e){const t=[];return e.fields.supplierName?.value.trim()||t.push("no_supplier"),e.fields.issueDate?.value||t.push("no_date"),e.lines.length?e.lines.some(n=>!n.accountKey)&&t.push("no_account"):t.push("no_lines"),e.lines.some(n=>n.treatment?.kind==="asset"&&!n.treatment.groupId)&&t.push("asset_without_group"),e.lines.some(n=>n.treatment?.kind==="spread"&&!(n.treatment.months>0&&n.treatment.firstMonth&&n.treatment.resultAccountId))&&t.push("spread_without_months"),t}function Od(e){if(e.status!=="to_check")return null;const t=ks(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.duplicateOf||e.match&&!e.match.verdict.ok?"check":"confirm"}function Os(e,t=""){const n=new Map;for(const r of e.flatMap(vd)){const o=[r.accountKey??"",r.ledgerCategoryKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",...qn.map(i=>r[i]??""),r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:i})=>({description:[...new Set(i)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},dimensions:Ae(r),...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function Md(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Os(e.lines,n.supplierName?.value??""),totals:Ts(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function Rd(e,t,n){return`${e}:${t}:${n}`}function Nd(e){return[1,5,15][e-1]??60}const Dd=10*6e4;function Ms(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(i=>s(i.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const xd="organization.business-entities.list",wd=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Pd(e,t,n){const r=new Map;for(const o of e)o.businessEntityId||r.set(o[t],o);if(n)for(const o of e)o.businessEntityId===n&&r.set(o[t],o);return[...r.values()]}function Ld(e,t,n){return n*Rs(e,t)}function Rs(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function Kd(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function $d(e,t){return!t.some(n=>n.parentId===e.id)}function Ud(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(c=>c.key).length!==r.length||r.some(c=>!o.find(u=>u.key===c&&u.value.trim())))return"variant_options_mismatch";const i=c=>r.map(u=>c?.find(d=>d.key===u)?.value.trim()??"").join("\0"),a=i(o);return n.some(c=>c.id!==t.id&&i(c.options)===a)?"variant_options_duplicate":null}function Fd(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Bd(e,t){return Go(e.cents,e.per??t,t)}function kt(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return jd(n.slice(0,13))===Number(n[13])?n:void 0}function jd(e){let t=0;for(let n=0;n<e.length;n++)t+=Number(e[n])*(n%2===0?3:1);return(10-t%10)%10}function qd(e,t){const n=t.trim(),r=kt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Gd=[{key:"customer",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Ns(e,t,n,r){const o=n.filter(s=>r(s)&&s.currency===e.currency&&(s.validFrom==null||s.validFrom<=t.at)&&(s.validTo==null||s.validTo>=t.at)&&(s.minQuantity==null||t.quantity>=s.minQuantity)&&(s.productId==null||s.productId===e.id)&&(s.categoryKey==null||s.categoryKey===e.categoryKey)&&(s.productId!=null||s.categoryKey!=null));for(const s of Gd){const i=o.filter(c=>s.matches(c,t));if(i.length===0)continue;const a=i.reduce((c,u)=>{const d=(u.minQuantity??0)-(c.minQuantity??0);return d!==0?d>0?u:c:(u.validFrom??0)>=(c.validFrom??0)?u:c});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function Ds(e,t,n){const r=Ns(e,t,n,c=>!c.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}},s=e.markupPercent!=null,i=s?t.costCents==null?void 0:U(t.costCents*(1+(e.markupPercent??0)/100)):e.listPriceCents;if(!r)return i==null?{...o,sourceKey:mn}:{unitPriceCents:i,...o,sourceKey:s?"markup":"list"};if(r.rule.unitPriceCents==null&&i==null)return{...o,sourceKey:mn};const a=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:Vd(r.rule,i??0),currency:e.currency,...a?{per:a}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function Wd(e,t,n){const r=Ns(e,t,n,o=>!!o.rateCardId);return r?.rule.rateCardId?{rateCardId:r.rule.rateCardId,sourceKey:r.sourceKey,ruleId:r.rule.id}:e.rateCardId?{rateCardId:e.rateCardId,sourceKey:"list"}:null}function Vd(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?U(t*(1-e.discountPercent/100)):t}const xs="manual",mn="missing";function Hd(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===xs||o.usage)return o;const s=t.find(p=>p.id===o.productId);if(!s)return o;const i=o.factor??1,a=o.costPriceCents!=null?{costCents:o.costPriceCents/i}:{},c=Ds(s,{...r,quantity:o.quantity*i,...a},n),u=c.unitPriceCents==null?0:c.unitPriceCents*i;if(u===o.unitPriceCents&&c.sourceKey===o.priceSourceKey&&c.per===o.pricePer)return o;const{pricePer:d,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:c.sourceKey,...c.per?{pricePer:c.per}:{}}})}function Gn(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function Yd(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function gn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=Gn(e);return n===void 0?void 0:{kind:"flat",micros:n}}function zd(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,c=1+i.length+1;return o.forEach((u,d)=>{const l=d+1;if(!u.trim())return;const p=u.split(s).map(O=>O.trim());if(d===0&&!gn(p[c]??""))return;const g=p[0]??"",f={};i.forEach((O,E)=>{const M=p[1+E]??"";if(!M)return;const F=/^[+\d\s-]+$/.test(M)?M.replace(/\D/g,"").replace(/^00/,""):M;f[O.key]=O.match==="prefix"?{prefix:F}:{equals:M}});const m=p[1+i.length]??"",_=m===""?0:Gn(m),h=gn(p[c]??""),[y,b]=a?(p[c+1]||"1/1").split("/").map(Number):[1,1],I=a?p[c+2]??"":"",v=I===""?0:Number(I),T=g?_===void 0||!h?"price":!(y>0)||!((b??y)>0)||!Number.isFinite(v)?"increment":null:"label";if(T){r.push({line:l,message:T});return}n.push({label:g,match:f,setupMicros:_,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:b??y,minimum:v})}),{rates:n,errors:r}}const ct=1e4;function ws(e,t){if(e.length===0)return 0;switch(t){case"max":return Math.max(...e.map(n=>n.quantity));case"last":return e.reduce((n,r)=>(r.occurredAt??0)>=(n.occurredAt??0)?r:n).quantity;case"average":return e.reduce((n,r)=>n+r.quantity,0)/e.length;default:return e.reduce((n,r)=>n+r.quantity,0)}}function Ps(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Xd(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Ps(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Hr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Ls(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>Xd(i,e.dimensions[s]))&&(!n||Hr(r)>Hr(n))&&(n=r);return n}function Ks(e,t){const n=Math.max(t.firstIncrement,1),r=Math.max(t.nextIncrement,1),o=e<=n?n:n+Math.ceil((e-n)/r)*r;return Math.max(o,t.minimum)}function $s(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(c=>c.upTo===void 0||e<=c.upTo)??r.at(-1);return a?{micros:U(e*a.micros/n),bands:[{quantity:e,micros:a.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,i=0;for(const a of r){if(e<=s)break;const c=a.upTo===void 0?e:Math.min(e,a.upTo),u=c-s;u>0&&(o.push({quantity:u,micros:a.micros}),i+=u*a.micros/n),s=c}return{micros:U(i),bands:o}}function Qd(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=Ls(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const c=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};c.ids.push(i.id),c.billed.push({quantity:Ks(i.quantity,a),occurredAt:i.occurredAt}),c.costMicros+=i.costMicros??0,o.set(a.id,c)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:c,costMicros:u})=>{const d=ws(a,n),l=Math.min(i.included??0,d),p=d-l,g=i.setupMicros*a.length;let f,m;i.price.kind==="flat"?f=U(p*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:f,bands:m}=$s(p,i.price,i.unitSize):f=U(u*(1+i.price.percent/100));const _=f+g;return{rateId:i.id,label:i.label,records:a.length,recordIds:c,measured:d,included:l,billed:p,micros:_,cents:U(_/ct),...m?{bands:m}:{}}}),unrated:r}}function Zd(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/ct))return r;const s=o/ct,i=Math.round(e.billed/n.per*1e4)/1e4;return U(i*s)===e.cents?{quantity:i,unitKey:n.unit,unitPriceCents:s}:r}function Wn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Jd(e,t,n,r){const{unitKey:o,id:s,organizationId:i,productId:a,businessEntityId:c,updatedAt:u,...d}=n??{};return{...e,...d,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function ef(e){return!e.archived&&e.sellable!==!1}function tf(e){return!e.archived&&e.purchasable===!0}const nf=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],rf=new Set(["hour","day","month","km","minute","kg","ton","m","m2","m3","liter"]),of=e=>rf.has(e),sf="usage-source",af="/usage/records";function Us(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function cf(e){return{...e,meters:(e.meters??[]).map(t=>Us(t)),accounts:e.accounts??[]}}const uf=new Set(["mail","message"]);function Fs(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function lf(e,t,n,r="html"){if(!e)return n;const o=Fs(e,t);return o?`${n}${r==="text"?`
7
+ `}const jn=e=>`user:${e}`,qn=e=>`team:${e}`;function nd(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(jn(n.id)),n.kind==="team"&&t.add(qn(n.id)));return[...t].sort()}function rd(e,t){return[jn(e),...t.map(qn)]}function od(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const bs=["done","escalated"],sd=["open","waiting"];function id(e){return bs.includes(e)}const _s="assignment";function ad(e){return`${_s}:${e}`}function cd(e,t,n,r){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const o=e.payload?.mentions;return Array.isArray(o)&&o.includes(t)||r&&r===t?!0:n==="reply"}function ud(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function ld(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Is=12;function dd(e,t,n=Is){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Es=2;function fd(e,t,n,r){if(t===n)return"een agent schakelt zichzelf niet in";if(!r?.includes(t))return"deze agent staat niet in de lijst die je mag inschakelen";const o=e??[];if(o.includes(t))return"die agent zit al in deze keten; dat zou een kringetje worden";const s=Math.max(0,o.length-1);return s>=Es?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const qr=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Gr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function pd(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),i=qr(`${e.description} ${e.endToEndId??""}`),a=h=>h.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:h.id,sourceApp:h.sourceApp??"sales"}:{kind:"receipt",receiptId:h.id},c=s.filter(h=>h.number&&i.includes(qr(h.number))),u=c.find(h=>h.openCents===r);if(u)return{target:a(u),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:u.label};if(c.length===1&&c[0]){const h=c[0];return{target:a(h),via:"exact",confidence:"medium",reasons:["invoice_number"],label:h.label}}const d=e.counterpartyIban;if(d){const h=s.filter(y=>y.ibans.includes(d)&&y.openCents===r);if(h.length===1&&h[0]){const y=h[0];return{target:a(y),via:"exact",confidence:"high",reasons:["iban","amount"],label:y.label}}}const l=(t.scheduled??[]).filter(h=>h.expectedBankCents===e.amountCents),p=d?l.filter(h=>h.ibans.includes(d)):[],g=l.filter(h=>Gr(h.dueOn,e.date)<=7),f=p.length===1?p[0]:g.length===1?g[0]:void 0;if(f)return{target:{kind:"scheduled_posting",scheduledPostingId:f.id},via:"exact",confidence:p.length===1?"high":"medium",reasons:p.length===1?["iban","amount"]:["amount","date_window"],label:f.label};if(d&&t.ownIbans.some(h=>h.iban===d&&h.bankAccountId!==e.bankAccountId)){const h=t.otherLines.find(y=>y.state==="unmatched"&&y.bankAccountId!==e.bankAccountId&&y.amountCents===-e.amountCents&&Gr(y.date,e.date)<=3);if(h)return{target:{kind:"transfer",bankLineId:h.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const m=e.description.toLowerCase(),_=[...t.rules].sort((h,y)=>h.order-y.order).find(h=>{const y=h.when;return y.bankAccountId&&y.bankAccountId!==e.bankAccountId||y.counterpartyIban&&y.counterpartyIban!==d||y.direction&&y.direction!==(n?"in":"out")||y.descriptionContains&&!m.includes(y.descriptionContains.toLowerCase())?!1:!!(y.counterpartyIban||y.descriptionContains)});if(_)return{target:_.action.financingItemId?{kind:"financing",financingItemId:_.action.financingItemId}:{kind:"account",accountId:_.action.accountId,..._.action.taxCode?{taxCode:_.action.taxCode}:{},..._.action.description?{description:_.action.description}:{}},via:"rule",confidence:_.confidence,ruleId:_.id,reasons:["rule"],label:_.name}}const md=e=>e.reduce((t,n)=>n>t?n:t,"");function Ss(e,t){return t?e.on>t?!1:e.status==="active"||new Date(e.reversal?.at??0).toISOString().slice(0,10)>t:e.status==="active"}function gd(e,t,n,r){const[o,s]=[e.slice(0,3),e.slice(3)],i=o==="jl:"?"journal_line":"bank_line",a=n.filter(c=>Ss(c,r)).flatMap(c=>c.allocations).filter(c=>c.item.kind===i&&c.item.id===s).reduce((c,u)=>c+u.amountCents,0);return t-a}function hd(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function yd(e,t){const n=Math.sign(t)===Math.sign(e);return{state:t===0?"paid":n?Math.abs(t)>=Math.abs(e)?"unpaid":"partially_paid":"overpaid",paidCents:Math.abs(e-t),openCents:n?Math.abs(t):0}}const As=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&amp;/g,"&").trim();function Q(e,t){const n=[],r=new RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,"g");for(let o=r.exec(e);o;o=r.exec(e))n.push(o[1]??"");return n}function N(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:Q(n,r)[0];return n===void 0?void 0:As(n)}const ct=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},Wr=e=>e?.slice(0,10),bd=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function vs(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=Q(t,"Stmt")[0]??t,r=N(n,"Id")??"stmt",o=d=>{const l=Q(n,"Bal").find(g=>N(g,"Cd")===d);if(!l)return;const p=ct(N(l,"Amt"));if(p!==void 0)return{cents:N(l,"CdtDbtInd")==="DBIT"?-p:p,date:bd(l)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=Q(n,"Ntry").flatMap((d,l)=>{if((N(d,"Sts","Cd")??N(d,"Sts"))==="PDNG")return[];const p=ct(N(d,"Amt"));if(p===void 0)return[];const g=N(d,"CdtDbtInd")==="DBIT",f=Q(d,"TxDtls")[0]??d,m=g?"Cdtr":"Dbtr",_=N(f,"RltdPties",m,"Nm")??N(f,"RltdPties",m,"Pty","Nm"),h=N(f,"RltdPties",`${m}Acct`,"Id","IBAN"),y=[...Q(f,"Ustrd").map(As),N(d,"AddtlNtryInf")].filter(Boolean),b=N(f,"Refs","EndToEndId"),I=Wr(N(d,"BookgDt","Dt")??N(d,"BookgDt","DtTm"))??"",v=Wr(N(d,"ValDt","Dt")??N(d,"ValDt","DtTm")),T=N(d,"AcctSvcrRef")??N(d,"NtryRef");return[{date:I,...v?{valueDate:v}:{},amountCents:g?-p:p,currency:/Ccy="([A-Z]{3})"/.exec(d)?.[1]??"EUR",..._?{counterpartyName:_}:{},...h?{counterpartyIban:h.replace(/\s+/g,"").toUpperCase()}:{},description:y.join(" ").replace(/\s+/g," ").trim(),...b&&b!=="NOTPROVIDED"?{endToEndId:b}:{},dedupeKey:T?`ref:${T}`:`seq:${r}:${l+1}`}]}),c=a.map(d=>d.date).filter(Boolean).sort(),u=N(n,"Acct","Id","IBAN");return{format:"camt053",...u?{iban:u.replace(/\s+/g,"").toUpperCase()}:{},...N(n,"Acct","Ccy")?{currency:N(n,"Acct","Ccy")}:{},from:N(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??c[0]??"",to:N(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const Cs=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function Vr(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=ct(t[4])??0;return{cents:t[1]==="D"?-n:n,date:Cs(t[2]??""),currency:t[3]}}const _d=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function Id(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+_d.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((i,a)=>{const c=(i.index??0)+i[0].length,u=r[a+1]?.index??t.length;o[i[1]??""]=t.slice(c,u).replace(/\/$/,"").trim()});const s=(o.REMI??"").replace(/^(?:USTD|STRD)\/+(?:[A-Z]+\/+)*/,"").trim();return{...o.NAME?{counterpartyName:o.NAME}:{},...o.IBAN?{counterpartyIban:o.IBAN.replace(/\s+/g,"").toUpperCase()}:{},...o.EREF&&o.EREF!=="NOTPROVIDED"?{endToEndId:o.EREF}:{},description:s||t.trim()}}function Ts(e){const t=e.replace(/\r\n/g,`
8
+ `),n=[];for(const d of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const l=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(d.trim());l&&n.push({tag:l[1]??"",value:(l[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,i;const a=[];let c=0;for(const{tag:d,value:l}of n)if(d==="25")r=l.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(d==="28C")o=l,c=0;else if(d==="60F"||d==="60M")s??=Vr(l);else if(d==="62F"||d==="62M")i=Vr(l);else if(d==="61"){const p=l.split(`
9
+ `)[0]??"",g=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(p);if(!g)continue;c++;const f=ct(g[4])??0,m=g[3]==="C"||g[3]==="RD",_=Cs(g[1]??""),h=g[2]?`${_.slice(0,4)}-${g[2].slice(0,2)}-${g[2].slice(2,4)}`:_,y=g[6]??g[5]?.trim();a.push({date:h,valueDate:_,amountCents:m?f:-f,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${c}`})}else if(d==="86"){const p=a.at(-1);p&&!p.description&&Object.assign(p,Id(l))}const u=a.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??u[0]??"",to:i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function Ed(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?vs(e):Ts(e)}const Sd=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id,kt=e=>e.invoiceTo?.companyId||e.companyId;function ve(e){const t=e??{},n={};for(const r of Gn){const o=t[r];typeof o=="string"&&o.trim()&&(n[r]=o.trim())}return Object.keys(n).length?n:void 0}const Gn=["costCenterId","costUnitId","projectId","customerCompanyId"],Ad=864e5,Hr=e=>new Date(e).toISOString().slice(0,10);function vd(e,t){if(!t.length)return e;const n=new Map;for(const m of t){const _=m.target.kind==="contract_line"?{from:Hr(m.target.period.from),to:Hr(m.target.period.to-Ad)}:void 0,h={...ve({...m.dimensions,...m.customerCompanyId?{customerCompanyId:m.customerCompanyId}:{}}),..._&&!e.period?{period:_}:{}},y=JSON.stringify(h),b=n.get(y);n.set(y,{share:h,cents:(b?.cents??0)+m.amountCents})}const r=t[0],o={...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.use?{use:r.use}:{}},{allocations:s,...i}=e,a=[...n.values()];if(a.length===1)return{...i,...o,...a[0].share};const c=fe(e.netCents,a.map(m=>m.cents)),u=fe(e.taxCents,c),{costCenterId:d,costUnitId:l,projectId:p,customerCompanyId:g,...f}=i;return{...f,...o,allocations:a.map(({share:m},_)=>({...m,netCents:c[_],taxCents:u[_]}))}}function Cd(e){if(!e.allocations?.length)return[e];const{allocations:t,...n}=e;return t.map(({period:r,...o})=>({...n,...o,...r&&!n.period?{period:r}:{}}))}function Td(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function ks(e){const t=e.reduce((r,o)=>r+o.netCents,0),n=e.reduce((r,o)=>r+o.taxCents,0);return{netCents:t,taxCents:n,grossCents:t+n}}const kd="receipt",Od="book";function Os(e){const t=[];return e.fields.supplierName?.value.trim()||t.push("no_supplier"),e.fields.issueDate?.value||t.push("no_date"),e.lines.length?e.lines.some(n=>!n.accountKey)&&t.push("no_account"):t.push("no_lines"),e.lines.some(n=>n.treatment?.kind==="asset"&&!n.treatment.groupId)&&t.push("asset_without_group"),e.lines.some(n=>n.treatment?.kind==="spread"&&!(n.treatment.months>0&&n.treatment.firstMonth&&n.treatment.resultAccountId))&&t.push("spread_without_months"),t}function Md(e){if(e.status!=="to_check")return null;const t=Os(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.duplicateOf||e.match&&!e.match.verdict.ok?"check":"confirm"}function Ms(e,t=""){const n=new Map;for(const r of e.flatMap(Cd)){const o=[r.accountKey??"",r.ledgerCategoryKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",...Gn.map(i=>r[i]??""),r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:i})=>({description:[...new Set(i)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},dimensions:ve(r),...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function Rd(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Ms(e.lines,n.supplierName?.value??""),totals:ks(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function Nd(e,t,n){return`${e}:${t}:${n}`}function Dd(e){return[1,5,15][e-1]??60}const xd=10*6e4;function Rs(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(i=>s(i.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const wd="organization.business-entities.list",Pd=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Ld(e,t,n){const r=new Map;for(const o of e)o.businessEntityId||r.set(o[t],o);if(n)for(const o of e)o.businessEntityId===n&&r.set(o[t],o);return[...r.values()]}function Kd(e,t,n){return n*Ns(e,t)}function Ns(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function $d(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function Ud(e,t){return!t.some(n=>n.parentId===e.id)}function Fd(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(c=>c.key).length!==r.length||r.some(c=>!o.find(u=>u.key===c&&u.value.trim())))return"variant_options_mismatch";const i=c=>r.map(u=>c?.find(d=>d.key===u)?.value.trim()??"").join("\0"),a=i(o);return n.some(c=>c.id!==t.id&&i(c.options)===a)?"variant_options_duplicate":null}function Bd(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function jd(e,t){return Wo(e.cents,e.per??t,t)}function Ot(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return qd(n.slice(0,13))===Number(n[13])?n:void 0}function qd(e){let t=0;for(let n=0;n<e.length;n++)t+=Number(e[n])*(n%2===0?3:1);return(10-t%10)%10}function Gd(e,t){const n=t.trim(),r=Ot(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Wd=[{key:"customer",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Ds(e,t,n,r){const o=n.filter(s=>r(s)&&s.currency===e.currency&&(s.validFrom==null||s.validFrom<=t.at)&&(s.validTo==null||s.validTo>=t.at)&&(s.minQuantity==null||t.quantity>=s.minQuantity)&&(s.productId==null||s.productId===e.id)&&(s.categoryKey==null||s.categoryKey===e.categoryKey)&&(s.productId!=null||s.categoryKey!=null));for(const s of Wd){const i=o.filter(c=>s.matches(c,t));if(i.length===0)continue;const a=i.reduce((c,u)=>{const d=(u.minQuantity??0)-(c.minQuantity??0);return d!==0?d>0?u:c:(u.validFrom??0)>=(c.validFrom??0)?u:c});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function xs(e,t,n){const r=Ds(e,t,n,c=>!c.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}},s=e.markupPercent!=null,i=s?t.costCents==null?void 0:U(t.costCents*(1+(e.markupPercent??0)/100)):e.listPriceCents;if(!r)return i==null?{...o,sourceKey:gn}:{unitPriceCents:i,...o,sourceKey:s?"markup":"list"};if(r.rule.unitPriceCents==null&&i==null)return{...o,sourceKey:gn};const a=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:Hd(r.rule,i??0),currency:e.currency,...a?{per:a}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function Vd(e,t,n){const r=Ds(e,t,n,o=>!!o.rateCardId);return r?.rule.rateCardId?{rateCardId:r.rule.rateCardId,sourceKey:r.sourceKey,ruleId:r.rule.id}:e.rateCardId?{rateCardId:e.rateCardId,sourceKey:"list"}:null}function Hd(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?U(t*(1-e.discountPercent/100)):t}const ws="manual",gn="missing";function Yd(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===ws||o.usage)return o;const s=t.find(p=>p.id===o.productId);if(!s)return o;const i=o.factor??1,a=o.costPriceCents!=null?{costCents:o.costPriceCents/i}:{},c=xs(s,{...r,quantity:o.quantity*i,...a},n),u=c.unitPriceCents==null?0:c.unitPriceCents*i;if(u===o.unitPriceCents&&c.sourceKey===o.priceSourceKey&&c.per===o.pricePer)return o;const{pricePer:d,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:c.sourceKey,...c.per?{pricePer:c.per}:{}}})}function Wn(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function zd(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function hn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=Wn(e);return n===void 0?void 0:{kind:"flat",micros:n}}function Xd(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,c=1+i.length+1;return o.forEach((u,d)=>{const l=d+1;if(!u.trim())return;const p=u.split(s).map(M=>M.trim());if(d===0&&!hn(p[c]??""))return;const g=p[0]??"",f={};i.forEach((M,E)=>{const R=p[1+E]??"";if(!R)return;const F=/^[+\d\s-]+$/.test(R)?R.replace(/\D/g,"").replace(/^00/,""):R;f[M.key]=M.match==="prefix"?{prefix:F}:{equals:R}});const m=p[1+i.length]??"",_=m===""?0:Wn(m),h=hn(p[c]??""),[y,b]=a?(p[c+1]||"1/1").split("/").map(Number):[1,1],I=a?p[c+2]??"":"",v=I===""?0:Number(I),T=g?_===void 0||!h?"price":!(y>0)||!((b??y)>0)||!Number.isFinite(v)?"increment":null:"label";if(T){r.push({line:l,message:T});return}n.push({label:g,match:f,setupMicros:_,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:b??y,minimum:v})}),{rates:n,errors:r}}const ut=1e4;function Ps(e,t){if(e.length===0)return 0;switch(t){case"max":return Math.max(...e.map(n=>n.quantity));case"last":return e.reduce((n,r)=>(r.occurredAt??0)>=(n.occurredAt??0)?r:n).quantity;case"average":return e.reduce((n,r)=>n+r.quantity,0)/e.length;default:return e.reduce((n,r)=>n+r.quantity,0)}}function Ls(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Qd(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Ls(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Yr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Ks(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>Qd(i,e.dimensions[s]))&&(!n||Yr(r)>Yr(n))&&(n=r);return n}function $s(e,t){const n=Math.max(t.firstIncrement,1),r=Math.max(t.nextIncrement,1),o=e<=n?n:n+Math.ceil((e-n)/r)*r;return Math.max(o,t.minimum)}function Us(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(c=>c.upTo===void 0||e<=c.upTo)??r.at(-1);return a?{micros:U(e*a.micros/n),bands:[{quantity:e,micros:a.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,i=0;for(const a of r){if(e<=s)break;const c=a.upTo===void 0?e:Math.min(e,a.upTo),u=c-s;u>0&&(o.push({quantity:u,micros:a.micros}),i+=u*a.micros/n),s=c}return{micros:U(i),bands:o}}function Zd(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=Ks(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const c=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};c.ids.push(i.id),c.billed.push({quantity:$s(i.quantity,a),occurredAt:i.occurredAt}),c.costMicros+=i.costMicros??0,o.set(a.id,c)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:c,costMicros:u})=>{const d=Ps(a,n),l=Math.min(i.included??0,d),p=d-l,g=i.setupMicros*a.length;let f,m;i.price.kind==="flat"?f=U(p*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:f,bands:m}=Us(p,i.price,i.unitSize):f=U(u*(1+i.price.percent/100));const _=f+g;return{rateId:i.id,label:i.label,records:a.length,recordIds:c,measured:d,included:l,billed:p,micros:_,cents:U(_/ut),...m?{bands:m}:{}}}),unrated:r}}function Jd(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/ut))return r;const s=o/ut,i=Math.round(e.billed/n.per*1e4)/1e4;return U(i*s)===e.cents?{quantity:i,unitKey:n.unit,unitPriceCents:s}:r}function Vn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function ef(e,t,n,r){const{unitKey:o,id:s,organizationId:i,productId:a,businessEntityId:c,updatedAt:u,...d}=n??{};return{...e,...d,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function tf(e){return!e.archived&&e.sellable!==!1}function nf(e){return!e.archived&&e.purchasable===!0}const rf=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],of=new Set(["hour","day","month","km","minute","kg","ton","m","m2","m3","liter"]),sf=e=>of.has(e),af="usage-source",cf="/usage/records";function Fs(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function uf(e){return{...e,meters:(e.meters??[]).map(t=>Fs(t)),accounts:e.accounts??[]}}const lf=new Set(["mail","message"]);function Bs(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function df(e,t,n,r="html"){if(!e)return n;const o=Bs(e,t);return o?`${n}${r==="text"?`
10
10
 
11
- `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const df=["billing","delivery","site","visit"];function ff(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function Bs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function pf(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function mf(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=Bs(n);r&&!t.includes(r)&&t.push(r)}return t}const gf=["customer","supplier"],hf=e=>e==="customer"?"sales":"purchase";function yf(e){return e.endpoints??[]}const bf=["lead","opportunity","customer","former"],_f=["new","working","unqualified"];function If(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const js=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],qs=["openDeal","hasContacts"],Ef={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},Sf=["updatedAt","createdAt","name"],Af=["list"];function vf(e){return e.search?.trim()||e.createdWithinDays||qs.some(t=>e[t])||js.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Gs="CRM_NOTE_ADDED",Cf="crm_activity",Ws="CRM_CALL_LOGGED",Tf="CRM_STAGE_CHANGED",kf=["phone","meeting","video"],Of=["callback","interested","no_answer","not_interested"],Mf=e=>e===Gs||e===Ws,Rf=e=>e.payload.call?.at??e.createdAt??0;function ue(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function Nf(e){return ue(e.contactLocale)??ue(e.companyLocale)??ue(e.organizationLocale)}function Df(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=ue(n),i=ue(r);return o.find(a=>ue(a.locale)===s)??o.find(a=>ue(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const xf=/\{([a-zA-Z0-9_.]+)\}/g;function Vn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function wf(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Vs(e,t,n){const r=[];return{text:e.replace(xf,(s,i)=>{const a=Vn(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):wf(a)}),unresolved:r}}function Hs(e,t){if(!e)return!0;const n=Vn(t,e.key);if(e.exists!==void 0){const r=n!=null&&n!==""&&n!==!1;return e.exists?r:!r}return e.equals!==void 0?n===e.equals:!0}function Pf(e,t,n,r,o){const s=[],i=[],a=new Set,c=u=>{const d=Vs(u,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const u of e){if(u.block_id&&!Hs(n?.[u.block_id],t))continue;const d=u.block_id?r?.[u.block_id]:void 0;if(d&&u.block_id){a.add(u.block_id),i.push(...d);continue}switch(u.type){case"heading":case"paragraph":case"quote":i.push({...u,text:c(u.text)});break;case"callout":i.push({...u,...u.title?{title:c(u.title)}:{},text:c(u.text)});break;case"code":i.push(u);break;case"list":i.push({...u,items:u.items.map(l=>({...l.lead?{lead:c(l.lead)}:{},text:c(l.text)}))});break;case"table":i.push({...u,columns:u.columns.map(l=>({...l,label:c(l.label)})),rows:u.rows.map(l=>l.map(c)),...u.caption?{caption:c(u.caption)}:{}});break;case"kpi":i.push({...u,items:u.items.map(l=>({...l,value:c(l.value),label:c(l.label)}))});break;case"letterhead":i.push({...u,fields:u.fields.map(l=>({...l,value:c(l.value)})),...u.recipient?{recipient:u.recipient.map(c)}:{}});break;case"totals":i.push({...u,rows:u.rows.map(l=>({...l,label:c(l.label),amount:c(l.amount)})),...u.taxRows?{taxRows:u.taxRows.map(l=>({...l,label:c(l.label),amount:c(l.amount)}))}:{}});break;case"image":i.push({...u,url:c(u.url),...u.alt?{alt:c(u.alt)}:{}});break;default:i.push(u)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(u=>!a.has(u))}}function Ys(e){const t=e?.address,n=[t?.street,t?.houseNumber].filter(Boolean).join(" "),r=[t?.postalCode,t?.city].filter(Boolean).join(" ");return{name:e?.name??"",addressLines:[n,r,t?.country??""].filter(Boolean),footerLines:[e?.footerText??"",e?.kvkNumber?`KvK ${e.kvkNumber}`:"",e?.vatNumber?`Btw ${e.vatNumber}`:"",e?.iban?`IBAN ${e.iban}`:""].filter(Boolean),...e?.logo?{logo:e.logo}:{}}}function Lf(e){return Ys({name:e?.billing?.companyName||e?.name||e?.displayName||"",address:e?.address,kvkNumber:e?.billing?.kvkNumber,vatNumber:e?.billing?.vatNumber,iban:e?.houseStyle?.iban,footerText:e?.houseStyle?.footerText,logo:e?.logo})}function zs(e,t,n,r=Date.now()){const o=n.filter(s=>s.ok).length;return{suite:e,target:t,at:r,score:n.length?o/n.length:1,perCase:[...n]}}function Kf(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function $f(e,t,n,r,o=Date.now()){const s=[];for(const i of n)try{s.push(await r(i))}catch(a){s.push({caseId:i.id,ok:!1,note:`beoordeling mislukt: ${a?.message??String(a)}`})}return zs(e,t,s,o)}const Wt=864e5,ut=e=>Date.parse([e,"T00:00:00Z"].join("")),Uf=e=>new Date(e).toISOString().slice(0,10);function Xs(e,t){const n=ut(t.from),r=ut(t.to)+Wt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let i=new Date(n);;){const a=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);if(a>=r)break;const c=Date.UTC(i.getUTCFullYear(),i.getUTCMonth()+1,1),u=Math.round((Math.min(c,r)-Math.max(a,n))/Wt);o.push({month:Uf(a),share:u/Math.round((c-a)/Wt)}),i=new Date(c)}const s=de(e,o.map(i=>i.share));return o.map((i,a)=>({month:i.month,cents:s[a]}))}function Qs(e){const t=new Date(ut(e.from)),n=new Date(ut(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Hn=864e5,Ot=e=>new Date(e).toISOString().slice(0,10),lt=e=>Date.parse(`${e}T00:00:00Z`);function fe(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),i=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,i)),Ot(s.getTime())}function Yn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let i=r;for(let a=1;a<=t;a++){const c=Math.round(i*n);let u=e.method==="annuity"?Math.round(o)-c:e.method==="linear"?Math.round(r/t):0;a===t&&(u=i),u=Math.min(u,i),i-=u,s.push({sequence:a,dueOn:fe(e.firstDueOn,a-1),interestCents:c,principalCents:u,remainingCents:i})}return s}function Ff(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((u,d)=>u.date.localeCompare(d.date));let i=s.filter(u=>u.date<t).reduce((u,d)=>u+d.cents,0),a=s.findIndex(u=>u.date>=t);a<0&&(a=s.length);let c=0;for(let u=lt(t);u<=lt(n);u+=Hn){const d=Ot(u);for(;a<s.length&&(s[a]?.date??"")<=d;)i+=s[a]?.cents??0,a++;c+=i*o}return Math.round(c)}function Bf(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),i=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,a=[];let c=`${o}-${String(i).padStart(2,"0")}-01`;for(let u=1;c<=t&&u<400;u++){const d=fe(c,r);a.push({sequence:u,from:c<e?e:c,to:Ot(lt(d)-Hn)}),c=d}return a}const Zs=5e7,jf=["director","group_company","participation","other_company"],qf=e=>e?.relation&&jf.includes(e.relation)?e.relation:"director";function Gf(e,t=Zs){return{over:e>t,ratio:Math.max(0,e)/t}}function Wf(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Yn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function Js(e){return{...e.counterpartyCompanyId?{counterpartyCompanyId:e.counterpartyCompanyId}:{},...Ae(e.dimensions)}}function ei(e){return Ot(lt(fe(`${e.slice(0,7)}-01`,1))-Hn)}function zn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function ti(e,t,n,r,o,s,i=1){return t.map((a,c)=>({cents:a,sequence:i+c,dueOn:ei(fe(n,c))})).filter(a=>a.dueOn<=r&&a.cents!==0).map(a=>({financingItemId:e,sequence:a.sequence,dueOn:a.dueOn,lines:o(a.cents,a.sequence),expectedBankCents:0,settlesVia:"direct",label:s(a.sequence)}))}function Xn(e){if(e.restart)return e.restart;if(e.opening)return{fromMonth:fe(`${e.opening.on.slice(0,7)}-01`,1),bookValueCents:e.costCents-e.opening.accumulatedCents,fromSequence:e.opening.monthsDone+1}}const Yr=600;function ni(e){const t=e.method??"linear",n=Xn(e),r=n?.bookValueCents??e.costCents,o=r-e.residualCents;if(t==="none"||o<=0)return[];if(t==="linear"){const u=e.lifeMonths-((n?.fromSequence??1)-1);return zn(o,Math.max(1,u))}const s=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(s>0&&s<1))return[];const i=1-(1-s)**(1/12),a=[];let c=r;for(;c>e.residualCents&&a.length<Yr;){const u=Math.max(1,Math.round(c*i)),d=c-u<=e.residualCents||a.length===Yr-1;a.push(d?c-e.residualCents:u),c-=a[a.length-1]??0}return a}function Vf(e,t){const n=e.terms,r=Js(e);if(n.disposal)return[];const o=ni(n),s=Xn(n),i=n.method==="declining"?(s?.fromSequence??1)-1+o.length:n.lifeMonths;return ti(e.id,o,s?.fromMonth??n.acquiredOn,t,(a,c)=>[{...r,accountId:n.depreciationAccountId,amountCents:a,description:e.name},{...r,accountId:n.accumulatedAccountId,amountCents:-a,subAccountId:e.id,description:`Afschrijving ${c}/${i}`}],a=>`Afschrijving ${a}/${i}`,s?.fromSequence??1)}function Hf(e,t){const n=e.terms,r=[];t.movementsCents&&r.push({accountId:n.accumulatedAccountId,amountCents:-t.movementsCents,subAccountId:e.id,description:e.name}),t.proceedsCents&&r.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:e.name}),r.push({accountId:e.ledgerAccountId,amountCents:-n.costCents,subAccountId:e.id,description:e.name});const o=r.reduce((s,i)=>s+i.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function Yf(e,t){const n=e.terms,r=Js(e),o=n.direction==="expense"?1:-1;return ti(e.id,n.period?Xs(n.totalCents,n.period).map(s=>s.cents):zn(n.totalCents,n.months),n.firstMonth,t,(s,i)=>[{...r,accountId:n.resultAccountId,amountCents:o*s,description:e.name},{...r,accountId:e.ledgerAccountId,amountCents:-o*s,subAccountId:e.id,description:`${e.name} ${i}/${n.months}`}],s=>`${s}/${n.months}`)}function zf(e){return e.kind==="fixed_asset"?e.costCents-(e.opening?.accumulatedCents??0):e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Xf(e,t){const n=fe(t,12);return Yn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Qf(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*t.quantity/r),s=o(n.costCents),i=o(n.residualCents),a=o(-t.movementsCents),c=[],u=`${e.name} (${t.quantity}/${r})`;a&&c.push({accountId:n.accumulatedAccountId,amountCents:a,subAccountId:e.id,description:u}),t.proceedsCents&&c.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:u}),c.push({accountId:e.ledgerAccountId,amountCents:-s,description:u});const d=c.reduce((l,p)=>l+p.amountCents,0);return d&&c.push({accountId:t.disposalAccountId,amountCents:-d,description:u}),{lines:c,costCents:s,residualCents:i}}const ri={NL:45e3},Zf=(e,t)=>t??ri[(e??"NL").toUpperCase()],Jf=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}];function oi(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function ep(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}const si=e=>e.kind==="product"&&e.quantity>0&&(!e.act||e.unitPriceCents>0);function tp(e){return e.every(t=>!si(t)||(t.billedQty??0)>=t.quantity)?"full":"open"}function ii(e,t,n,r=new Map){const o=[];for(const s of e.lines){const i=t.find(l=>l.id===s.poLineId),a=oi(s.poLineId,n);(!i||e.movement==="in"&&a+s.quantity>i.quantity)&&o.push({code:"receipt_over_ordered",poLineId:s.poLineId}),e.movement==="return"&&s.quantity>a&&o.push({code:"receipt_return_over_received",poLineId:s.poLineId});const c=Zn(i??{},s.quantity),u=e.movement==="in"&&i?.productId&&r.get(i.productId);s.serials.length&&s.serials.length!==c?o.push({code:"receipt_serials_count",poLineId:s.poLineId}):!s.serials.length&&u==="serial"&&o.push({code:"receipt_serials_required",poLineId:s.poLineId});const d=(s.batches??[]).reduce((l,p)=>l+p.quantity,0);s.batches?.length&&d!==c?o.push({code:"receipt_batches_count",poLineId:s.poLineId}):!s.batches?.length&&u==="batch"&&o.push({code:"receipt_batches_required",poLineId:s.poLineId})}return o}function np(e,t){return e.flatMap(n=>{const r=t.find(o=>o.id===n.poLineId)?.productId;return r?n.serials.map(o=>[r,"#",o].join("")):[]})}function rp(e,t){const n=new Map;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.serialKeys??[])n.set(s,(n.get(s)??0)+o)}return e.filter(r=>(n.get(r)??0)>0)}function op(e){return e.map(t=>({line:t,batches:sp(t.batches)})).map(({line:t,batches:n})=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(r=>String(r).trim()).filter(Boolean))],...n.length?{batches:n}:{},...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function sp(e){return(Array.isArray(e)?e:[]).flatMap(t=>{const n=String(t?.code??"").trim(),r=Number(t?.quantity)||0,o=Number(t?.expiresAt)||0;return n&&r>0?[{code:n,quantity:r,...o?{expiresAt:o}:{}}]:[]})}function Qn(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function ai(e,t){const n=e.filter(r=>Qn(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Zn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function ip(e,t,n){const r=Math.max(Math.ceil(e/Math.max(1,t??1)),n?.minQty??0),o=n?.lotSize&&n.lotSize>1?n.lotSize:1;return Math.ceil(r/o)*o}function ci(e){return{cents:U(e.costCents/Zn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function ui(e){const t=ci(e);return t.per?Et(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const pe=["pending","active","suspended","terminating"],le=(e,t)=>[e,t].join(":"),li=e=>[...new Set((e??[]).map(t=>t.itemId))],ap=(e,t)=>t?[e.productId,"#",e.serial??""].join(""):e.id;function dt(e){return e.kind==="sale"?["sale:",e.agreementId,"#",e.seriesId].join(""):e.kind==="resource"?["resource:",e.itemId,"#",e.role].join(""):["order:",e.orderId,"#",e.lineId,e.serial?`#${e.serial}`:""].join("")}const Jn=["draft","scheduled","queued","waiting"],Mt=["pending","unknown","inquiring"],di=(e,t,n)=>[e,t,n].join(":");function fi(e,t,n,r,o){const s=e.after.filter(c=>o.find(u=>u.id===c)?.state!=="approved");if(s.length)return{ok:!1,reason:"after",requestIds:s};const i=o.find(c=>c.id!==e.id&&c.itemId===e.itemId&&Mt.includes(c.state));if(i)return{ok:!1,reason:"busy",requestId:i.id};const a=[];for(const c of n.filter(u=>u.for.includes(e.action))){const u=(t.requires??[]).filter(d=>d.role===c.role);if(u.length<c.min)return{ok:!1,reason:"missing_role",role:c.role};if(u.length>c.max)return{ok:!1,reason:"too_many",role:c.role};for(const d of u){const l=r.get(d.itemId);if(!l||l.status!=="active")return{ok:!1,reason:"not_active",role:c.role,itemId:d.itemId};const p=l.provides?.find(g=>g.kind===c.kind);if(!p)return{ok:!1,reason:"wrong_kind",role:c.role,itemId:d.itemId};a.push({role:c.role,itemId:l.id,resource:p})}}return{ok:!0,inputs:a}}function cp(e,t,n,r,o){if(!(r!=="activation"||!e.sale||e.activatedAt!=null))return t!=="active"&&n==="active"?o:void 0}function Ee(e,t){return[...t].filter(n=>n.id!==e&&pe.includes(n.status)&&(n.requires??[]).some(r=>r.itemId===e))}function up(e,t){const n=[...t.values()],r=[],o=[];for(const s of e.requires??[]){const i=t.get(s.itemId);!i||!pe.includes(i.status)||(i.keep?o.push({itemId:i.id,why:"kept"}):Ee(i.id,n).some(a=>a.id!==e.id)?o.push({itemId:i.id,why:"in_use"}):r.push(i.id))}return{release:r,keep:o,impact:Ee(e.id,n).map(s=>s.id)}}function lp(e,t,n){const r=Ee(e.id,t).map(o=>o.id);return r.length?{ok:!1,reason:"in_use",users:r}:n&&e.keep?{ok:!1,reason:"kept"}:{ok:!0}}function pi(e,t,n){const r=[],o=e.externalKey&&[...n.values()].find(i=>i.id!==e.id&&i.externalKey===e.externalKey&&pe.includes(i.status));o&&e.externalKey&&r.push({code:"duplicate_key",externalKey:e.externalKey,itemId:o.id});for(const i of e.requires??[]){const a=n.get(i.itemId);if(!a){r.push({code:"unknown_item",itemId:i.itemId});continue}a.businessEntityId!==e.businessEntityId&&r.push({code:"wrong_entity",itemId:a.id});const c=t.find(u=>u.role===i.role);c&&!(a.provides??[]).some(u=>u.kind===c.kind)&&a.status!=="pending"&&r.push({code:"wrong_kind",role:i.role,itemId:a.id})}const s=dp(e,n);return s&&r.push({code:"cycle",path:s}),r}function dp(e,t){const n=(r,o)=>{for(const s of r.requires??[]){if(s.itemId===e.id)return[...o,s.itemId];if(o.includes(s.itemId))continue;const i=t.get(s.itemId),a=i&&n(i,[...o,s.itemId]);if(a)return a}};return n(e,[e.id])}function mi(e,t){const n=new Set([e.id]),r=[],o=[...t.values()],s=i=>{for(const a of i.requires??[]){if(n.has(a.itemId))continue;n.add(a.itemId);const c=t.get(a.itemId);c&&(r.push({itemId:c.id,role:a.role,supplied:!!c.supply,shared:[...fp(c.id,o)].some(u=>u!==e.id)}),s(c))}};return s(e),r}function fp(e,t){const n=new Set,r=new Set([e]),o=s=>{for(const i of Ee(s,t))r.has(i.id)||(r.add(i.id),i.sale&&n.add(i.id),o(i.id))};return o(e),n}function gi(e,t,n){const r=e.reported?.refundable;if(!r)return{now:!0};const o=r.filter(s=>s.until>n).reduce((s,i)=>s+i.quantity,0);return e.quantity-t<=o?{now:!0}:{now:!1,...e.reported?.termEndsAt?{at:e.reported.termEndsAt}:{}}}const pp=(e,t)=>e.provides?.find(n=>n.kind===t),mp=["scheduled","queued","waiting"],zr=[1,5,15,60],gp=(e,t)=>t+zr[Math.min(Math.max(e,1),zr.length)-1]*6e4;function hp(e){if((e.request.submitAt??0)>e.now)return{state:"scheduled"};const t=fi(e.request,e.item,e.needs,e.items,e.requests);return t.ok?{state:"send",inputs:t.inputs}:{state:t.reason==="busy"?"queued":"waiting",why:t}}function yp(e){const{request:t,item:n}=e,r=(n.requires??[]).find(s=>s.role==="account"),o=r?e.items.get(r.itemId)?.at:void 0;return{requestId:t.requestId,offer:t.offer,action:t.action,quantity:t.quantity,...t.toProductId?{toProductId:t.toProductId}:{},...t.supplier?.vendorSku?{vendorSku:t.supplier.vendorSku}:{},...t.supplier?.termMonths?{termMonths:t.supplier.termMonths}:{},params:t.params,...e.inputs.length?{inputs:e.inputs}:{},...n.at?.externalRef?{externalRef:n.at.externalRef}:{},...o?{parent:{...o.externalRef?{externalRef:o.externalRef}:{},...o.fulfillment?{fulfillment:o.fulfillment}:{}}}:{},customer:{companyId:n.customerCompanyId},...t.effectiveAt?{effectiveAt:t.effectiveAt}:{},at:e.now}}function bp(e,t){const n=t?.recovery?.[e];return n==="idempotent"?"resend":n==="lookup_by_ref"?"status":n==="lookup_by_listing"?"listing":"person"}function _p(e,t,n,r){if(n.state!=="approved")return{};const o={...e.at??{},app:t.app,offer:t.offer,...n.externalRef?{externalRef:n.externalRef}:{},...n.fulfillment?{fulfillment:{...e.at?.fulfillment??{},...n.fulfillment}}:{}},s=n.quantity??t.quantity,i={at:o,...o.externalRef?{externalKey:le(o.app,o.externalRef)}:{},...n.resources?{provides:n.resources}:{},updatedAt:r};switch(t.action){case"purchase":return{...i,status:"active",quantity:s,...e.activatedAt==null?{activatedAt:r}:{}};case"change":return{...i,quantity:s};case"convert":return{...i,productId:t.toProductId??e.productId,quantity:s};case"suspend":return{...i,status:"suspended"};case"resume":return{...i,status:"active"};case"cancel":{const a=t.effectiveAt??r;return{...i,status:a>r?"terminating":"terminated",endedAt:a}}case"renew":return i}}function Ip(e,t,n){const r=t.find(i=>i.requestRef===e.requestId);if(r)return{state:"found",subscription:r};const o=e.sent?.quantity??e.quantity,s=t.filter(i=>i.offer===e.offer&&i.status!=="ended"&&i.quantity===o&&!n.has(i.externalRef));return s.length===1?{state:"found",subscription:s[0]}:s.length?{state:"ambiguous",count:s.length,candidates:s}:{state:"none"}}function hi(e,t){return{quantity:e.quantity,status:e.status,...e.termEndsAt?{termEndsAt:e.termEndsAt}:{},...e.autoRenew!=null?{autoRenew:e.autoRenew}:{},...e.refundable?{refundable:e.refundable}:{},...e.scheduled?{scheduled:e.scheduled}:{},at:t}}const hn=e=>e.seriesId??e.id;function Ep(e,t,n){return t.find(r=>{const o=V(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>V(e,r).from>n).sort((r,o)=>V(e,r).from-V(e,o).from)[0]??t[t.length-1]}function yi(e){const t=new Map;for(const n of e)t.set(hn(n),[...t.get(hn(n))??[],n]);return t}const Sp=864e5;function Ap(e,t,n,r){if(e.reported?.refundable||!n)return gi(e,t,r);const o=n.commitment;if(!o||o.termMonths<1)return{now:!0};const s=n.changeWindowDays??0;return s>0&&r<Kn(n.start,o,r)+s*Sp?{now:!0}:{now:!1,at:re(n.start,o,r)}}function vp(e,t){const n=t.filter(r=>Mt.includes(r.state)).sort((r,o)=>o.updatedAt-r.updatedAt)[0];if(n)return{productId:n.toProductId??n.productId,quantity:n.action==="cancel"?0:n.quantity};if(!(!e||e.status==="pending"))return{productId:e.productId,quantity:pe.includes(e.status)?e.quantity:0}}const Cp=new Set(["purchase","change","convert","cancel"]),Tp=(e,t)=>e.action===t.action&&e.productId===t.productId&&e.quantity===t.quantity&&(e.toProductId??"")===(t.toProductId??"")&&(e.effectiveAt??0)===(t.effectiveAt??0);function kp(e){const{agreement:t,item:n,now:r,supply:o}=e,s=(yi(t.lines).get(e.seriesId)??[]).map(I=>({line:I,term:V(t,I)})).sort((I,v)=>I.term.from-v.term.from);if(!s.length)return{supersede:[]};const i=e.requests.filter(I=>I.itemId===n?.id&&I.state!=="superseded"),a=i.filter(I=>Jn.includes(I.state)&&Cp.has(I.action)),c=vp(n,i),u=s.findIndex(I=>I.term.from<=r&&(I.term.to==null||I.term.to>r)),d=u>=0?s[u]:void 0,l=s.find(I=>I.term.from>r),p=s[s.length-1],g=t.status==="ended"||!l&&(d==null||p.term.to!=null&&p.term.to<=r),f=I=>I&&I.line.quantity.from==="fixed"?I:void 0;let m,_;const h=(I,v)=>{const T=v!=null&&v>r?v:void 0,O=I.line.quantity.from==="fixed"?I.line.quantity.value:0;if(!c)return{action:"purchase",productId:I.line.productId,quantity:O,...T?{effectiveAt:T}:{}};if(c.productId!==I.line.productId)return{action:"convert",productId:c.productId,toProductId:I.line.productId,quantity:O,previousQuantity:c.quantity,...T?{effectiveAt:T}:{}};if(c.quantity!==O){if(O<c.quantity&&n){const E=Ap(n,O,o,r);if(!E.now&&E.at==null){_={reason:"decrease_window_unknown",quantity:O};return}const M=E.now?T:Math.max(E.at??0,T??0);return{action:"change",productId:c.productId,quantity:O,previousQuantity:c.quantity,...M?{effectiveAt:M,submitAt:M}:{},...E.now?{}:{notice:{atRenewal:!0}}}}return{action:"change",productId:c.productId,quantity:O,previousQuantity:c.quantity,...T?{effectiveAt:T,submitAt:T}:{}}}},y=I=>{if(!o)return I?{effectiveAt:I}:{};const v=I??r,T=es(o.start,o.commitment,v,r),O={...T.deadline!=null?{deadline:T.deadline}:{},...T.nextTerm?{nextTerm:!0}:{},...T.endsAt>v?{runsOnUntil:T.endsAt}:{}};return{effectiveAt:T.endsAt,...Object.keys(O).length?{notice:O}:{}}};if(g)c&&c.quantity>0&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)});else{const I=f(d);if(m=I?h(I,I.term.from):void 0,!m&&!_){const v=f(l);v&&(c||!I)?m=h(v,v.term.from):!v&&c&&c.quantity>0&&p.term.to!=null&&d===p&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)})}}if(_)return{supersede:[],blocked:_};if(!m)return{supersede:a.map(I=>I.id)};const b=a.find(I=>Tp(m,I));return{...b?{}:{target:m},supersede:a.filter(I=>I!==b).map(I=>I.id)}}function yn(e){const t=di(e.item.id,e.target.action,e.revision);return{id:t,organizationId:e.item.organizationId,businessEntityId:e.item.businessEntityId,itemId:e.item.id,requestId:t,...e.target,app:e.at.app,offer:e.at.offer,params:{...e.answers?.params},...e.answers?.configurationId?{configurationId:e.answers.configurationId}:{},...e.answers?.termMonths?{supplier:{termMonths:e.answers.termMonths}}:{},after:e.after??[],basedOn:{source:e.item.id,revision:e.revision},state:"draft",requestedBy:e.requestedBy,attempts:0,updatedAt:e.now}}const bn=new Set(["phone_number","device"]),bi=e=>!!e&&((e.provides??[]).some(t=>bn.has(t.kind))||(e.needs??[]).some(t=>t.for.includes("purchase")&&bn.has(t.kind)));function _i(e){return e?e.needs?.length?e.needs:e.requires?[{role:"account",kind:"account",min:1,max:1,for:["purchase","change"]}]:[]:[]}function Op(e){const{item:t,now:n}=e,r=[...e.items.values()],o=[...t.requires??[]],s=[],i=[],a=[],c=[],u=(d,l,p,g)=>yn({item:d,at:l,target:p,after:g,revision:e.revision,requestedBy:e.requestedBy,now:n});for(const d of e.needs.filter(l=>l.for.includes(e.target.action))){let l=o.filter(g=>g.role===d.role).length;const p=e.sourceFor(d);for(;l<d.min;){if(!p){a.push(d.role);break}const g=r.find(f=>f.customerCompanyId===t.customerCompanyId&&pe.includes(f.status)&&f.at?.app===p.app&&f.at?.offer===p.offer&&!o.some(m=>m.itemId===f.id)&&(!bn.has(d.kind)||Ee(f.id,r).length===0));if(g){if(o.push({role:d.role,itemId:g.id}),g.status==="pending"){const f=e.requests.find(_=>_.itemId===g.id&&_.action==="purchase"&&_.state!=="superseded"),m=f??u(g,{app:p.app,offer:p.offer},{action:"purchase",productId:g.productId,quantity:1},[]);f||i.push(m),c.push(m.id)}}else{const f=dt({kind:"resource",itemId:t.id,role:l?`${d.role}.${l}`:d.role}),m={id:f,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:t.customerCompanyId,productId:p.productId,status:"pending",quantity:1,at:{app:p.app,offer:p.offer},since:n,updatedAt:n};s.push(m),o.push({role:d.role,itemId:f});const _=u(m,p,{action:"purchase",productId:p.productId,quantity:1},[]);i.push(_),c.push(_.id)}l++}}return i.push(yn({item:t,at:{app:e.app,offer:e.offer},target:e.target,after:c,...e.answers?{answers:e.answers}:{},revision:e.revision,requestedBy:e.requestedBy,now:n})),{requires:o,newItems:s,requests:i,unsourced:a}}const Mp=e=>["adopt",e].join(":"),Rp=e=>e.startsWith("adopt:"),Xr=e=>["adopted:",e].join(""),Qr=e=>e.level==="account"?0:e.under||e.uses?.length?2:1;function Np(e,t){const n=t.items.filter(f=>pe.includes(f.status)),r=new Map(n.flatMap(f=>f.externalKey?[[f.externalKey,f]]:[])),o=new Map(n.map(f=>[f.id,f])),s=new Map,i=new Set,a=new Set,c=new Set(e.flatMap(f=>(f.uses??[]).map(m=>[m.kind,m.value].join("|")))),u=t.offers.filter(f=>f.businessEntityId===t.businessEntityId),d=f=>{const m=u.filter(h=>h.provider?.app===f.app&&h.provider.offer===f.offer),_=u.filter(h=>!!h.vendorSku&&h.vendorSku===f.offer);return ai(m.length?m:_,t.now)},l=f=>{const m=d(f),_=m?.provider?.app??f.app,h=le(_,f.externalRef),y=r.get(h);if(y)return{key:h,row:f,state:"known",knownItemId:y.id,problems:[]};if(i.has(h)){const R=s.get(h),K={code:"duplicate_key",externalKey:h,itemId:R?.id??h};return{key:h,row:f,state:"blocked",problems:[K]}}if(i.add(h),f.status==="ended")return{key:h,row:f,state:"ended",problems:[]};const b=le(f.app,f.account.ref),I=t.customers.get(b)??[],v=f.customerCompanyId??t.chosen?.[b]??(I.length===1?I[0].id:void 0),T={...v?{companyId:v}:{},create:!v&&I.length===0,candidates:I};if(!m)return{key:h,row:f,state:"no_product",customer:T,problems:[]};const O=m.provider?t.described.get([m.provider.app,m.provider.offer].join(":")):void 0,E=_i(O),M=(O?.provides??[]).map(R=>({kind:R.kind,value:f.externalRef})),F=M.some(R=>c.has([R.kind,R.value].join("|"))),k=(v?t.agreements.get(v)??[]:[]).filter(R=>R.status!=="ended").flatMap(R=>R.lines.filter(K=>K.productId===m.productId).map(K=>({agreementId:R.id,seriesId:K.seriesId}))).filter((R,K,Z)=>Z.findIndex(me=>me.seriesId===R.seriesId)===K).find(R=>{const K=dt({kind:"sale",...R});return!a.has(K)&&!o.get(K)?.externalKey}),P=F?void 0:t.drafted?.get(h)??k??{draft:!0},B=P&&"agreementId"in P?dt({kind:"sale",...P}):Xr(h),z=R=>r.get(R)??s.get(R),W=[];if(f.under){const R=z(le(_,f.under)),K=E.find(Z=>R?.provides?.some(me=>me.kind===Z.kind))?.role??E.find(Z=>Z.kind==="account"||Z.kind==="tenant")?.role??"account";W.push({role:K,itemId:R?.id??Xr(le(_,f.under))})}for(const R of f.uses??[]){const K=[...n,...s.values()].find(Z=>Z.provides?.some(me=>me.kind===R.kind&&me.value===R.value));W.push({role:E.find(Z=>Z.kind===R.kind)?.role??R.kind,itemId:K?.id??["resource:",R.kind,":",R.value].join("")})}const te=f.reported?.status??f.status??"active",L={id:B,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:v??"",productId:m.productId,status:te==="suspended"?"suspended":"active",quantity:f.quantity,...W.length?{requires:W,requiresIds:li(W)}:{},...M.length?{provides:M}:{},at:{app:_,...m.provider?{offer:m.provider.offer}:{},externalRef:f.externalRef,...f.fulfillment?{fulfillment:f.fulfillment}:{}},externalKey:h,...P&&"agreementId"in P?{sale:P}:{},activatedAt:f.since??t.now,reported:hi(f.reported??{externalRef:f.externalRef,offer:f.offer,quantity:f.quantity,status:te==="suspended"?"suspended":"active",...f.termEndsAt?{termEndsAt:f.termEndsAt}:{}},t.now),since:f.since??t.now,updatedAt:t.now},Y=new Map([...n,...s.values()].map(R=>[R.id,R]));Y.set(L.id,L);const oe=pi(L,E,Y);bi(O)&&f.quantity>1&&oe.push({code:"one_unit_per_item",quantity:f.quantity});for(const R of E.filter(K=>K.min>0&&K.for.includes("purchase")))W.some(K=>K.role===R.role)||oe.push({code:"requires_missing",role:R.role});const Ke=oe.length?"blocked":!v&&I.length>1?"choose_customer":"ready";return Ke==="ready"&&(s.set(h,L),P&&"agreementId"in P&&a.add(L.id)),{key:h,row:f,state:Ke,customer:T,offerId:m.id,productId:m.productId,...P?{sale:P}:{},item:L,problems:oe}},p=new Array(e.length),g=e.map((f,m)=>({row:f,index:m}));g.sort((f,m)=>Qr(f.row)-Qr(m.row)||f.index-m.index);for(const{row:f,index:m}of g)p[m]=l(f);return p}function Dp(e){const t=e.filter(n=>n.state==="ready");return{items:t.length,draftLines:t.filter(n=>n.sale&&"draft"in n.sale).length,linked:t.filter(n=>n.sale&&"agreementId"in n.sale).length,contractLines:t.length,newCustomers:new Set(t.filter(n=>n.customer?.create).map(n=>le(n.row.app,n.row.account.ref))).size,known:e.filter(n=>n.state==="known").length,choose:e.filter(n=>n.state==="choose_customer").length,noProduct:e.filter(n=>n.state==="no_product").length,blocked:e.filter(n=>n.state==="blocked").length}}const xp=(e,t)=>({app:e,externalRef:t.externalRef,offer:t.offer,level:"account",quantity:1,account:{ref:t.externalRef,name:t.name,...t.kvkNumber?{kvkNumber:t.kvkNumber}:{},...t.domain?{domain:t.domain}:{}},...t.fulfillment?{fulfillment:t.fulfillment}:{},...t.since?{since:t.since}:{}}),wp=(e,t,n,r)=>({app:e,externalRef:n.externalRef,offer:n.offer,level:"item",quantity:n.quantity,account:t,...r?{customerCompanyId:r}:{},under:n.under??t.ref,...n.uses?.length?{uses:n.uses}:{},...n.termEndsAt?{termEndsAt:n.termEndsAt}:{},status:n.status,reported:n}),er=["customer","product","quantity","externalRef","since","termEndsAt","kvkNumber","domain","under"],Pp={customer:["klant","customer","bedrijf","company","relatie","account"],product:["product","artikel","artikelnummer","sku","licentie","license","offer"],quantity:["aantal","quantity","qty","seats","stuks"],externalRef:["externe referentie","referentie","reference","external ref","id","serial"],since:["ingangsdatum","start","startdatum","since","start date"],termEndsAt:["termijneinde","einddatum","end","term end","renewal","verlenging"],kvkNumber:["kvk","kvk-nummer","coc"],domain:["domein","domain"],under:["onder","under","parent","hoofdaccount"]};function Lp(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of er){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Pp[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}function _n(e){const t=e.trim(),n=/^(\d{4})-(\d{1,2})-(\d{1,2})/.exec(t),r=/^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/.exec(t),[o,s,i]=n?[n[1],n[2],n[3]]:r?[r[3],r[2],r[1]]:[];if(!o)return;const a=Date.UTC(Number(o),Number(s)-1,Number(i));return Number.isFinite(a)&&new Date(a).getUTCDate()===Number(i)?a:void 0}function Kp(e,t,n){const r=(e[0]??[]).map(a=>a.trim().toLowerCase()),o={};for(const a of er){const c=t[a]?.trim().toLowerCase(),u=c?r.indexOf(c):-1;u>=0&&(o[a]=u)}const s=[],i=[];return o.customer===void 0||o.product===void 0||o.externalRef===void 0?{rows:s,errors:[{line:1,message:"adopt_columns_missing"}]}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=b=>{const I=o[b];return I===void 0?"":(a[I]??"").trim()},l=d("customer"),p=d("product"),g=d("externalRef");if(!l||!p||!g){i.push({line:u,message:"adopt_row_incomplete"});return}const f=d("quantity")?Number(d("quantity").replace(",",".")):1;if(!Number.isInteger(f)||f<1){i.push({line:u,message:"adopt_row_quantity"});return}const m=d("since")?_n(d("since")):void 0,_=d("termEndsAt")?_n(d("termEndsAt")):void 0;if(d("since")&&m===void 0||d("termEndsAt")&&_===void 0){i.push({line:u,message:"adopt_row_date"});return}const h=d("kvkNumber"),y=d("domain").toLowerCase();s.push({app:n,externalRef:g,offer:p,level:"item",quantity:f,account:{ref:(h||y||l).toLowerCase(),name:l,...h?{kvkNumber:h}:{},...y?{domain:y}:{}},...d("under")?{under:d("under")}:{},...m!==void 0?{since:m}:{},..._!==void 0?{termEndsAt:_}:{}})}),{rows:s,errors:i})}const Zr=["quote","order"];function Ii(e,t){const n=Zr.slice(0,Zr.indexOf(t)+1);return e.requirements.filter(r=>!r.met&&n.includes(r.before))}function $p(e,t,n){const r=e.preparation;return r?r.expiresAt!==void 0&&r.expiresAt<=n?"expired":Ii(r,t).length?"open":"ready":"open"}function tr(e){return e.requirements.filter(t=>t.kind==="answer")}function Ei(e,t){return t[e.key]??e.value}function Si(e,t){let n;const r=[];for(const o of tr(e)){if(!o.line)continue;const s=Ei(o,t);if(s===void 0||s==="")continue;const i=Up(o,s);i&&(o.line==="main"?n=i:r.push(i))}return{main:n,addons:r}}function Up(e,t){if(e.type==="select"){const r=e.options?.find(d=>d.key===t);if(!r?.sku)return;const{sku:o,label:s,costCents:i,recurring:a,commitment:c,billedEvery:u}=r;return{key:e.key,label:s,sku:o,quantity:1,costCents:i,recurring:a,commitment:c,billedEvery:u}}if(!e.sku)return;const n=e.type==="boolean"?t==="true"?1:0:Number(t);if(!(!Number.isFinite(n)||n<=0))return{key:e.key,label:e.label,sku:e.sku,quantity:n,costCents:e.costCents,recurring:e.recurring}}function Fp(e,t,n){const r=Si(t,n).main;return r?{ref:{...e,sku:r.sku},commitment:r.commitment,billedEvery:r.billedEvery}:{ref:e}}function Bp(e,t){const n={};for(const r of tr(e)){const o=Ei(r,t);o!==void 0&&o!==""&&(n[r.key]=o)}return n}function jp(e,t,n,r={}){const o=tr(e).filter(i=>i.perUnit).map(i=>i.key),s=Object.fromEntries(Object.entries(t).filter(([i])=>!o.includes(i)));return Array.from({length:n},(i,a)=>{const c={...s};for(const u of o){const d=r[u]?.[a];d!==void 0&&d!==""&&(c[u]=d)}return c})}const qp=["active","suspended","terminating"];function Gp(e){const t=new Map(e.items.map(n=>[n.id,n]));return e.items.filter(n=>n.sale&&n.status!=="terminated").map(n=>{const r=qp.includes(n.status)?n.quantity:0,o=e.agreed.get(n.id)??null,s=n.reported?.quantity,i=e.bought.get(n.id),a=e.billed.get(n.id),c=e.requests.some(d=>d.itemId===n.id&&(Mt.includes(d.state)||Jn.includes(d.state))),u=[];return s!=null&&s!==r&&u.push({kind:"supplier_differs",reported:s,active:r}),o!=null&&o!==r&&u.push({kind:"agreed_differs",agreed:o,active:r,busy:c}),i!=null&&i!==r&&u.push({kind:"not_bought",bought:i,active:r}),a!=null&&o!=null&&a!==o&&u.push({kind:"not_billed",billed:a,agreed:o}),{itemId:n.id,productId:n.productId,customerCompanyId:n.customerCompanyId,status:n.status,...n.serial?{serial:n.serial}:{},agreed:o,active:r,...s!=null?{reported:s}:{},...i!=null?{bought:i}:{},...a!=null?{billed:a}:{},signals:u,resources:mi(n,t).map(d=>({...d,productId:t.get(d.itemId)?.productId??""}))}})}const Ai=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Wp="purchase_order",Rt=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["cancelled"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:[],credits:"invoice"}],vi=[...Rt,...Ai],nr=["quote","order","invoice","credit_note"];function Vp(){const e=new Map;for(const t of Rt)nr.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function G(e){return vi.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Hp={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function Ci(e,t){return G(e).transitions[t]??[]}function Yp(e,t,n){return Ci(e,t).includes(n)}function rr(e){return e.issuedAt!=null}const zp=["status","fileRef","number","externalIds","postedAt","dunning","settlement","settled","overdueSince","issuedPaper","updatedAt"];function Xp(e){return rr(e)&&G(e.kindKey).numbered&&!e.number}const Qp=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","deliveryAddressId","invoiceTo","lines"],Zp=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId","deliveryAddressId","invoiceTo"];function Jp(e,t){if(!nr.includes(t)||!G(e.kindKey).convertsTo.includes(t))return!1;const n=G(t);return!n.credits||n.credits===e.kindKey&&rr(e)}function or(e,t){const n=G(t).signFlip!==G(e.kindKey).signFlip,r=e.kindKey!==t,o=e.lines.map(({timeEntryIds:s,agreementLineId:i,sourceLine:a,...c})=>({...c,...r&&c.kind==="product"?{sourceLine:{transactionId:e.id,lineId:c.id}}:{},quantity:n?-c.quantity:c.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,...e.invoiceTo?.companyId?{invoiceTo:e.invoiceTo}:{},billingAddressId:e.billingAddressId,deliveryAddressId:e.deliveryAddressId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:o,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function em(e){return{...or(e,e.kindKey),sourceTransactionId:e.sourceTransactionId,previousVersionId:e.id,version:e.version+1,lines:e.lines.map(({timeEntryIds:n,...r})=>({...r})),totals:e.totals}}function tm(e,t,n){const r=new Map;let o=Math.max(0,t);for(const s of[...e].filter(i=>i.state==="active").sort((i,a)=>i.createdAt-a.createdAt)){const i=Math.min(s.quantity,o);o-=i,r.set(s.id,{received:i,available:Math.max(0,i-(n.get(s.id)??0))})}return r}function nm(e,t,n,r){const o=t.filter(u=>u.fulfilmentOrderId===e.id&&u.state==="active"),s=u=>u.reduce((d,l)=>d+l.quantity,0),i=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction!=="return"),a=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction==="return"),c=o.reduce((u,d)=>u+(r.get(d.id)?.received??0),0);return{ordered:e.quantity,allocated:s(o),onOrder:s(o)-c,available:o.reduce((u,d)=>u+(r.get(d.id)?.available??0),0),delivered:s(i),returned:s(a)}}const Jr=e=>[e.deliverTo.kind,e.deliverTo.companyId??"",e.deliverTo.addressId??""].join("|"),rm=(e,t)=>!!e.offerId&&e.offerId===t.offerId&&e.businessEntityId===t.businessEntityId&&Jr(e)===Jr(t);function Ti(e,t,n){const r=new Map;for(const s of n)for(const i of s.lines)i.sourceLine?.transactionId===e.id&&r.set([s.id,i.id].join("#"),i.sourceLine.lineId);const o=new Map(e.lines.filter(s=>s.kind==="product").map(s=>[s.id,{lineId:s.id,ordered:s.quantity,delivered:t.get(s.id)??0,invoiced:0,reserved:0}]));for(const s of n)if(s.status!=="cancelled")for(const i of s.lines){const a=i.sourceLine;if(!a)continue;const c=a.transactionId===e.id?a.lineId:r.get([a.transactionId,a.lineId].join("#")),u=c?o.get(c):void 0;u&&(s.issuedAt?u.invoiced+=i.quantity:s.kindKey!=="credit_note"&&i.quantity>0&&(u.reserved+=i.quantity))}return[...o.values()]}const ki=(e,t)=>Math.max(0,(t==="delivered"?e.delivered:e.ordered)-e.invoiced-e.reserved);function om(e,t){const n=e.map(r=>t==="delivered"?r.delivered:r.invoiced);return!e.length||n.every(r=>r<=0)?"none":e.every((r,o)=>n[o]>=r.ordered)?"full":"partial"}function sm(e){const t=e.orders.flatMap(r=>{const o=Ti(r,e.delivered.get(r.id)??new Map,e.documents),s=new Map(o.map(u=>[u.lineId,ki(u,e.mode)])),i=or(r,"invoice"),a=i.lines.flatMap(u=>{const d=u.sourceLine?s.get(u.sourceLine.lineId)??0:0;return u.kind==="product"&&d>0?[{...u,quantity:d}]:[]});if(!a.length)return[];const c=e.mode==="delivered"?e.deliveredAt?.get(r.id):r.deliveredAt;return[{order:r,draft:{...i,lines:a,...c?{deliveredAt:c}:{}}}]});if(e.groupBy==="order")return t.map(r=>r.draft);const n=new Map;for(const r of t){const o=r.order,s=[o.companyId,Tt(o),o.invoiceTo?.contactId??"",o.billingAddressId??"",o.paymentTerm?.code??"",o.taxOverrideKey??"",o.businessEntityId,o.currency].join("|");n.set(s,[...n.get(s)??[],r])}return[...n.values()].map(r=>{if(r.length===1)return r[0].draft;const[o]=r,s=r.flatMap(c=>c.draft.deliveredAt?[c.draft.deliveredAt]:[]),{sourceTransactionId:i,...a}=o.draft;return{...a,lines:r.flatMap(c=>c.draft.lines).map((c,u)=>({...c,id:["l",String(u+1)].join("")})),...s.length?{deliveredAt:Math.max(...s)}:{}}})}const Oi=e=>btoa(unescape(encodeURIComponent(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),im=e=>{const t=e.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(escape(atob(t+"===".slice((t.length+3)%4))))},am=e=>["/request/",Oi(e)].join(""),Mi=36e5,Ri=864e5,ie=-1/0,cm=e=>e.score>ie,Re={urgent:40,high:25,normal:10,low:0};function um(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const lm=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ni=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Di(e,t){return!!(e&&lm.test(e)||t&&Ni.test(t))}const xi=3,wi=600;function dm(e,t){return e>=xi||t>=wi}const Pi=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function fm(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&Pi.includes(r)&&(t[r]=n.value)}return t}const pm=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,mm=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function gm(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&pm.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&Ni.test(e.body)||n&&mm.test(n))return"marketing"}function Li(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Ki=["open"],$i=1e3,Ui=72;function Fi(e){return e.lastActivityAt??(e.createdAt?new Date(qo(e)).getTime():0)}function Bi(e,t){return ji(t.remindersById?.[e.id],e,t.now)}function ji(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const qi=e=>Uo(e)==="outbound_message",Gi=e=>Ki.includes(e);function Nt(e,t){return Math.max(0,(t-Fi(e))/Mi)}function Wi(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function hm(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function ym(e,t,n){if(!Gi(e.status)||e.firstResponseAt)return!1;const r=Wi(e,n);return r!==void 0&&Nt(e,t)>r}function Vi(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!qi(n.type)?!1:Nt(e,t)<Ui}function bm(e,t){if(!Gi(e.status))return{score:ie,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ie,reasons:[]};if(Vi(e,t.now))return{score:ie,reasons:[]};if(Bi(e,t))return{score:ie,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Re[o]>0&&(n+=Re[o],r.push(`priority:${o}`)),Li(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=Nt(e,t.now);if(s>0){const c=Math.min(s*2,30);n+=c,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const i=e.lastActivityPreview;return i?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),i?.direction==="outbound"&&qi(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(c=>c==="marketing"||c==="automated")||Di(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=$i,r.push("bulk")),{score:n,reasons:r}}const _m=e=>!!e.assignedUserId||!!e.assignedInboxId,Im=e=>e.status==="closed",Em=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Sm=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Hi=[{key:"solved",label:"resolution_solved",order:0,positive:!0,system:!0},{key:"no_action",label:"resolution_no_action",order:1,system:!0},{key:"duplicate",label:"resolution_duplicate",order:2,system:!0},{key:"spam",label:"resolution_spam",order:3,system:!0},{key:"unresolved",label:"resolution_unresolved",order:4,positive:!1,system:!0}],Am=["duplicate","spam"],vm="c_";function Cm(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Hi,...t]}function Tm(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function km(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)??(n?r.find(o=>o.locale===n):void 0)??{locale:t}}const Om="article",ft=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function Yi(e){const t=(e??"").toLowerCase();return ft.find(n=>n.code===t)??ft.find(n=>n.code===t.split("-")[0])}function Mm(e){return Yi(e)?.label??e}function Rm(e){const t=Yi(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const sr=3;function zi(e,t){const n=new Set;let r=1,o=t.get(e)?.parentId;for(;o;){if(n.has(o)||(n.add(o),r++,r>sr+1))return 1/0;o=t.get(o)?.parentId}return r}function Nm(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(i=>[i.id,i]));if(!r.has(e)||t&&Xi(e,t,r))return!1;const o=zi(e,r),s=t?ir(t,n):1;return o+s<=sr}function Xi(e,t,n){const r=new Set;let o=n.get(e)?.parentId;for(;o;){if(o===t)return!0;if(r.has(o))return!1;r.add(o),o=n.get(o)?.parentId}return!1}function ir(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(o=>o.parentId===e);return r.length?1+Math.max(...r.map(o=>ir(o.id,t,n))):1}const Qi="en";function Zi(e){return e.defaultLocale||e.locale||Qi}function Dm(e){const t=new Set,n=[];for(const r of[Zi(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function xm(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)?.name??(n?r.find(o=>o.locale===n)?.name:void 0)??e.name}function wm(e,t){const n=a=>`${a.level}:${a.key}`,r=new Map((t?.rows??[]).map(a=>[n(a),a])),o=e.rows.map(a=>({...a,priorCents:r.get(n(a))?.amountCents??0})),s=new Set(o.map(n)),i=t?.rows??[];return i.forEach((a,c)=>{if(s.has(n(a)))return;const u=i.slice(0,c).reverse().find(p=>p.level<a.level);let d=o.length;const l=u?o.findIndex(p=>n(p)===n(u)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(u?.level??0);)d+=1;o.splice(d,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function Pm(e,t,n){const r=new Map;for(const o of e){if(o.date>n)continue;const s=r.get(o.accountId)??{accountId:o.accountId,openingCents:0,debitCents:0,creditCents:0,closingCents:0};o.date<t?s.openingCents+=o.functionalCents:o.functionalCents>0?s.debitCents+=o.functionalCents:s.creditCents-=o.functionalCents,s.closingCents=s.openingCents+s.debitCents-s.creditCents,r.set(o.accountId,s)}return r}const Lm=["revenue","expense"],we=e=>Lm.includes(e.type),Km=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Ji(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,c)=>a.code.localeCompare(c.code))){if(!t(i))continue;const a=Km(i),c=i.reportGroup??a,u=o.get(a)??new Map;u.set(c,[...u.get(c)??[],i]),o.set(a,u)}const s=[];for(const[i,a]of o){const c=n(i),u=l=>c==="debit"?t(l):-t(l),d=[...a.values()].flat().reduce((l,p)=>l+u(p),0);s.push({key:i,label:r(i),level:0,side:c,amountCents:d});for(const[l,p]of a){s.push({key:l,label:r(l),level:1,side:c,amountCents:p.reduce((g,f)=>g+u(f),0)});for(const g of p)s.push({key:g.code,label:`${g.code} ${g.name}`,level:2,side:c,amountCents:u(g),accountId:g.id})}}return s}function $m(e,t,n,r=o=>o){const o=e.filter(we),s=c=>{const u=t.get(c.id);return u?u.debitCents-u.creditCents:0},i=Ji(o,s,c=>c==="revenue"||c==="financial"?"credit":"debit",r),a=-o.reduce((c,u)=>c+s(u),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function Um(e,t,n,r,o=s=>s){const s=e.filter(d=>!we(d)),a=Ji(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){a.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=a.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:a.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const c=a.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),u=a.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:a,totals:{debitCents:c,creditCents:u},source:"finance"}}function Fm(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=we(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function Bm(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,c)=>({from:new Date(o+c*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const c=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),u=s[c];u&&(a.cents>=0?u.inCents+=a.cents:u.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function jm(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const i=t.get(s.accountId);!i||!we(i)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,i]of[...n.entries()].sort(([a],[c])=>a.localeCompare(c)))i&&(r.push({accountId:s,amountCents:-i,functionalCents:-i,currency:e.currency}),o+=i);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const A=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),ea={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[A("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),A("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),A("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),A("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),A("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),A("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),A("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),A("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),A("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),A("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),A("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),A("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),A("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),A("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),A("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),A("1000","Kas","asset","assets.current.cash","BLimKasKas"),A("1100","Bank","asset","assets.current.cash","BLimBanRba"),A("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),A("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),A("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),A("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),A("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),A("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),A("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf","vat_settlement"),A("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),A("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),A("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),A("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),A("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),A("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),A("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),A("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),A("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),A("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),A("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),A("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),A("4000","Lonen","expense","costs.personnel","WPerLesLon"),A("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),A("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),A("4100","Huur","expense","costs.housing","WBedHuiBeh"),A("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),A("4200","Autokosten","expense","costs.car","WBedAutOak"),A("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),A("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),A("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),A("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),A("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),A("4595","Afrondingsverschillen btw","expense","costs.general","WBedAlkOal","vat_rounding"),A("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),A("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),A("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),A("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),A("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),A("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),A("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),A("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),A("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),A("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),A("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),A("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),A("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),A("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),A("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),A("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),A("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),A("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),A("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),A("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),A("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},qm=[ea],ta={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function Gm(e,t){const n=[],r=t.functionalCurrency||"EUR",o=e.lines.filter(c=>c.currency&&c.currency!==r),s=o[0];if(s){const c={currency:s.currency};r!=="EUR"?n.push({code:"fx_cross_rate_unsupported",params:c}):o.some(u=>!(Number(u.fxRate)>0))&&n.push({code:"fx_rate_required",params:c})}e.lines.length<2&&n.push({code:"entry_too_few_lines"});const i=e.lines.reduce((c,u)=>c+u.functionalCents,0);i!==0&&n.push({code:"entry_unbalanced",params:{cents:String(i)}});const a=new Map(t.accounts.map(c=>[c.id,c]));for(const c of e.lines){const u=a.get(c.accountId);u?u.archived?n.push({code:"entry_account_archived",params:{account:u.code}}):u.requiresSubAccount&&!c.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:u.code}}):n.push({code:"entry_unknown_account",params:{account:c.accountId}}),u&&!c.taxCode!=!c.taxSide&&n.push({code:"entry_tax_side",params:{account:u.code}})}return t.period?(t.period.status==="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function Wm(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Vm=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","counterparty","reversesEntryId","attachment","prevHash","postedAt","postedBy"],Hm=new Set(["journalSeq","chainSeq","postedAt"]),Ym=["amountCents","functionalCents","taxCents"];function zm(e){const t={};for(const n of Vm){const r=e[n];r!==void 0&&(t[n]=Hm.has(n)?Number(r):r)}return Array.isArray(t.lines)&&(t.lines=t.lines.map(n=>{const r={...n};for(const o of Ym)r[o]!=null&&(r[o]=Number(r[o]));return r})),t}function In(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(In).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+In(r)).join(",")+"}"}function Xm(e,t){return e.taxSide??(t?.type==="revenue"?"sales":"purchase")}function Qm(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Zm(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&Qs(t.period)>1?[{index:n,period:t.period}]:[])}function Jm(e,t){const n=e.kind==="journal"?ng(e,t):tg(e,t);return n.ok?eg(n,e,t.functionalCurrency??"EUR"):n}function eg(e,t,n){if(!t.currency||t.currency===n)return e;if(n!=="EUR")return{ok:!1,problem:"fx_cross_rate_unsupported"};const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=String(t.fxRate),s=e.lines.map(a=>({...a,fxRate:o,functionalCents:Math.round(a.amountCents*r)})),i=s.reduce((a,c)=>a+c.functionalCents,0);return s[0]={...s[0],functionalCents:s[0].functionalCents-i},{...e,lines:s}}function tg(e,t){const n=m=>t.accounts.find(_=>_.role===m&&!_.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),i=n(r?"vat_payable":"vat_receivable"),a=r?-1:1,c=r?"sales":"purchase",u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},d=e.taxPointDate??e.issueDate,l=[],p=new Map;for(const m of e.lines){const _=m.accountKey??Ms(m,t.ledgerMapping??[],e.direction)?.targetKey??s?.id;if(!_)return{ok:!1,problem:"no_account_for_line"};const h=r?100:t.taxCodes?.find(I=>I.key===m.taxRateKey)?.deductiblePercent??100,y=Math.round(m.taxCents*h/100),b=m.netCents+m.taxCents-y;l.push({...u,accountId:_,amountCents:a*b,functionalCents:a*b,taxCode:m.taxRateKey,taxSide:c,taxCents:a*y,taxPointDate:d,...m.description?{description:m.description}:{},...Ae(m.dimensions)}),y&&p.set(m.taxRateKey,(p.get(m.taxRateKey)??0)+y)}for(const[m,_]of p){if(!i)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:i.id,amountCents:a*_,functionalCents:a*_,taxCode:m,taxSide:c,taxPointDate:d})}const g=e.lines.reduce((m,_)=>m+_.netCents+_.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-a*g,functionalCents:-a*g});const f=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:f||e.documentId}}function ng(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??n(ta[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const i=Math.round(Number(o.amountCents)||0);i&&r.push({accountId:s,amountCents:i,functionalCents:i,currency:e.currency,...o.description?{description:o.description}:{},...Ae(o.dimensions)})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const Vt=e=>String(e).padStart(2,"0"),rg=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function og(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,i=e+Math.floor(s/12),a=s%12+1;return{fiscalYear:n,index:o+1,from:`${i}-${Vt(a)}-01`,to:`${i}-${Vt(a)}-${Vt(rg(i,a))}`,status:"open"}})}function sg(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const ig=["memorial","opening"],na="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",ag={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},ra=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),ar=(e,t)=>e.length>t?e.slice(0,t):e,C=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+ra(ar(String(t),n))+"</"+e+">",se=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Ht=e=>e<0?"C":"D",eo=e=>ar(e.replace(/-/g,""),35);function cg(e){const t=new Map(e.accounts.map(l=>[l.id,l.code])),n=new Map(e.relations.map(l=>[l.id,l.number||eo(l.id)])),r=l=>n.get(l)??eo(l),o=new Map(e.periods.map(l=>[l.id,l.index])),s=[],i=(...l)=>{s.push(l.join(""))};i('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',na,'">',"<header>",C("fiscalYear",e.fiscalYear.replace("/","-")),C("startDate",e.startDate),C("endDate",e.endDate),C("curCode",e.currency),C("dateCreated",e.createdOn),C("softwareDesc",e.software.desc,50),C("softwareVersion",e.software.version,20),C("RGSVersion",e.rgsVersion,20),"</header>","<company>",C("Commercenr",e.company.commerceNr,100),C("companyName",e.company.name,255),C("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+ra(ar(e.company.vatNumber??"",30))+"</taxRegIdent>");const a=e.company.address;if(a&&(a.street||a.city)&&i("<streetAddress>",C("streetname",a.street,100),C("number",a.number,15),C("city",a.city,50),C("postalCode",a.postalCode,10),C("country",e.company.country),"</streetAddress>"),e.relations.length){i("<customersSuppliers>");for(const l of e.relations)i("<customerSupplier>",C("custSupID",r(l.id),35),C("custSupName",l.name,50),C("commerceNr",l.commerceNr,100),C("taxRegistrationCountry",l.country),C("taxRegIdent",l.vatNumber,30),C("custSupTp",l.type),"</customerSupplier>");i("</customersSuppliers>")}i("<generalLedger>");for(const l of[...e.accounts].sort((p,g)=>p.code.localeCompare(g.code))){const p=l.type==="revenue"||l.type==="expense";i("<ledgerAccount>",C("accID",l.code,35),C("accDesc",l.name,255),C("accTp",p?"P":"B"),C("RGScode",l.taxonomy?.rgs,255),"</ledgerAccount>")}if(i("</generalLedger>"),e.taxCodes.length){i("<vatCodes>");for(const l of e.taxCodes)i("<vatCode>",C("vatID",l.key,35),C("vatDesc",l.label,100),C("vatToPayAccID",l.payableAccountId&&t.get(l.payableAccountId)),C("vatToClaimAccID",l.receivableAccountId&&t.get(l.receivableAccountId)),"</vatCode>");i("</vatCodes>")}i("<periods>");for(const l of[...e.periods].sort((p,g)=>p.index-g.index))i("<period>",C("periodNumber",l.index),C("startDatePeriod",l.from),C("endDatePeriod",l.to),"</period>");i("</periods>");const c=e.opening.filter(l=>l.cents!==0);if(c.length){const l=c.filter(g=>g.cents>0).reduce((g,f)=>g+f.cents,0),p=-c.filter(g=>g.cents<0).reduce((g,f)=>g+f.cents,0);i("<openingBalance>",C("linesCount",c.length),C("totalDebit",se(l)),C("totalCredit",se(p))),c.forEach((g,f)=>{i("<obLine>",C("nr",f+1),C("accID",t.get(g.accountId)??g.accountId),C("amnt",se(g.cents)),C("amntTp",Ht(g.cents)),"</obLine>")}),i("</openingBalance>")}const u=e.entries.flatMap(l=>l.lines);i("<transactions>",C("linesCount",u.length),C("totalDebit",se(u.filter(l=>l.functionalCents>0).reduce((l,p)=>l+p.functionalCents,0))),C("totalCredit",se(-u.filter(l=>l.functionalCents<0).reduce((l,p)=>l+p.functionalCents,0))));const d=new Map;for(const l of e.entries)d.set(l.journalId,[...d.get(l.journalId)??[],l]);for(const l of e.journals){const p=d.get(l.id);if(p?.length){i("<journal>",C("jrnID",l.code,35),C("desc",l.name),C("jrnTp",ag[l.kind]));for(const g of[...p].sort((f,m)=>f.journalSeq-m.journalSeq))i("<transaction>",C("nr",g.number,35),C("desc",g.description),C("periodNumber",o.get(g.periodId)??0),C("trDt",g.date),C("Source",g.source.app+(g.source.kind?" "+g.source.kind:""),999),C("User",g.postedBy,999)),g.lines.forEach((f,m)=>{const _=f.taxCode&&e.vatPercent?.(f.taxCode,g.date),h=f.currency&&f.currency!==e.currency;i("<trLine>",C("nr",m+1),C("accID",t.get(f.accountId)??f.accountId,35),C("docRef",g.source.number??g.number,255),C("effDate",f.taxPointDate??g.date),C("desc",f.description),C("amnt",se(f.functionalCents)),C("amntTp",Ht(f.functionalCents)),C("custSupID",f.counterpartyCompanyId&&r(f.counterpartyCompanyId),35),C("invRef",g.source.number,255),C("cost",f.costCenterId,999),C("project",f.projectId,999),_&&f.taxCents!==void 0?"<vat>"+C("vatID",f.taxCode,35)+C("vatPerc",_)+C("vatAmnt",se(f.taxCents))+C("vatAmntTp",Ht(f.taxCents))+"</vat>":"",h?"<currency>"+C("curCode",f.currency)+C("curAmnt",se(f.amountCents))+"</currency>":"","</trLine>")}),i("</transaction>");i("</journal>")}}return i("</transactions>","</company>","</auditfile>"),s.join(`
12
- `)}const ug=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function lg(e){const t=Q(e,"ledgerAccount").map(a=>{const c=N(a,"RGScode")??N(a,"leadCode");return{code:N(a,"accID")??"",name:N(a,"accDesc")??"",kind:N(a,"accTp")==="P"?"P":"B",...c?{rgs:c}:{}}}),n={},r=a=>{const c=N(a,"accID");c&&(n[c]=(n[c]??0)+ug(N(a,"amnt"),N(a,"amntTp")))};for(const a of Q(e,"obLine"))r(a);for(const a of Q(e,"trLine"))r(a);const o=Q(e,"header")[0]??"",s=N(o,"fiscalYear"),i=N(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function dg(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const En=["lookup","condition","parallel","for-each"];function Ge(e){for(const t of e){if(!En.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${En.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Ge(n);if(r)return r}if(t.type==="for-each"){const n=Ge(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Ge(t.else??[]);if(n)return n}}return null}function fg(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function pg(e,t){return e.filter(n=>n.enabled&&fg(n.ownerScope,t))}function mg(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function gg(e){return`mcp__${e}__`}const hg=1e3,yg=2e3,bg=500,_g=12e3,Ig=4e3,oa=["contact","company","work_item"];function Eg(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return oa.includes(t)}const Sg="high",Ag=[{key:"high",label:"tax_high",percent:21,kind:"standard"},{key:"low",label:"tax_low",percent:9,kind:"reduced"},{key:"zero",label:"tax_zero",percent:0,kind:"zero"},{key:"reverse_charge",label:"tax_reverse_charge",percent:0,kind:"reverse_charge"},{key:"exempt",label:"tax_exempt",percent:0,kind:"exempt"}];function sa(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const vg=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"services"},{key:"eu_goods",label:"tax_eu_goods",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"goods"},{key:"eu_triangular",label:"tax_eu_triangular",kind:"zero",direction:"sales",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"}}},icp:!0,icpKind:"triangular"},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function cr(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Cg(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:cr(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function ae(e){return new Date(e).toISOString().slice(0,10)}const to=/^\d{4}-\d{2}-\d{2}$/;function Tg(e){if(!e.key?.trim())return"tax_code_key";if(!e.label?.trim())return"tax_code_label";const t=e.rates??[];if(!t.length)return"tax_code_rates";for(const[n,r]of t.entries()){if(!to.test(r.validFrom)||r.validTo&&!to.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function Dt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=U(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?Et(n,e.pricePer,e.servicePeriod):n}function kg(e,t,n){const r=e.map(u=>({...u,netCents:Dt(u),taxCents:0})),o=new Map;for(let u=0;u<r.length;u++){if(r[u].kind!=="product"||r[u].optional)continue;const d=n??r[u].taxRateKey,l=o.get(d);l?l.push(u):o.set(d,[u])}const s=[];let i=0,a=0;for(const[u,d]of o){const l=sa(u,t),p=d.reduce((m,_)=>m+r[_].netCents,0),g=U(p*l.percent/100),f=de(g,d.map(m=>r[m].netCents));for(let m=0;m<d.length;m++)r[d[m]].taxCents=f[m];s.push({taxRateKey:u,percent:l.percent,kind:l.kind,netCents:p,taxCents:g}),i+=p,a+=g}const c=r.reduce((u,d)=>d.costPriceCents==null||d.optional?u:u+U(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:c,byRate:s}}}const Og="onboarding-source",Mg=["support","billing","availability","sales","onboarding"],Rg=["keep","replace"],xt=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],ia={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function ee(e,t=xt){return t.find(n=>n.key===e)??{...ia,key:e}}function Se(e){return e==="published"||e==="approved"}function ur(e,t,n=xt){if(e.workstreamId!==t)return!1;const r=ee(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Ng(e,t=xt){if(!e.userId||!Se(e.status))return!1;const n=ee(e.kindKey,t);return n.capacity||n.productive||n.absent}const Dg=864e5;function aa(e,t){return Math.round((t-e)/Dg)}function lr(e,t){const n=e.cycleMinutes.length;return n===0?0:(aa(e.anchor,t)%n+n)%n}function dr(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[lr(e,t)]??0}function fr(e,t){return e.startTimes?.[lr(e,t)]}function pr(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((c,u)=>(u.effectiveFrom??0)-(c.effectiveFrom??0))[0],i=s(o.filter(a=>a.userId===t));return i||s(o.filter(a=>!a.userId&&a.teamId&&n.includes(a.teamId)))}function ca(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const Sn=864e5;function xg(e){const t=Math.max(1,Math.round((e.to-e.from)/Sn));return Array.from({length:t},(n,r)=>e.from+r*Sn)}function An(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const no={interval:0,day:1,week:2};function wg(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&Se(l.status)&&ee(l.kindKey).capacity),i=n.filter(l=>l.userId&&Se(l.status)&&ee(l.kindKey).absent),a=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),c={};let u="interval";const d=l=>{no[l]>no[u]&&(u=l)};for(const l of a){const p=t.teamIdsOf?.(l)??[];let g=0,f=0,m=0;for(const y of xg(e)){const b=Math.max(y,e.from),I=Math.min(y+Sn,e.to);m++;const v=s.filter(E=>E.userId===l).reduce((E,M)=>E+An(M.start,M.end,b,I),0);if(v>0){g+=v;continue}const T=pr(r,l,p,y),O=T?dr(T,y):0;if(T&&O>0){g+=O*60,d(fr(T,y)?"interval":"day");continue}T||f++}if(f>0){const y=ca(o,l,e.from);y&&(g+=y.weeklyMinutes*60*(f/7),d("week"))}const _=i.filter(y=>y.userId===l).reduce((y,b)=>y+An(b.start,b.end,e.from,e.to),0),h=Math.max(0,g-_);(h>0||m>0)&&(c[l]=h)}return{seconds:Object.values(c).reduce((l,p)=>l+p,0),precision:u,byUser:c}}function Pg(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const c=a.userId??n;r.set(c,(r.get(c)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const c=r.get(a)??0,u=t.byUser[a]??0;return{userId:a,requiredSeconds:c,capacitySeconds:u,netSeconds:u-c}});s.sort((a,c)=>a.netSeconds-c.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function Lg(e,t,n,r){const o=e.filter(i=>i.userId&&Se(i.status)&&!ee(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let c=0,u=0;for(const d of o){if(d.userId!==i||ee(d.kindKey).capacity&&!d.workstreamId)continue;const l=An(d.start,d.end,n.from,n.to);l<=0||(ur(d,t)?c+=l:u+=l)}return{userId:i,capacitySeconds:a,onThisSeconds:c,elsewhereSeconds:u,freeSeconds:Math.max(0,a-c-u)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const Kg="demand-source",ro=1e3;function $g(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ua(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=$g(e,t),r=t/e;return n/(1-r*(1-n))}function la(e,t,n,r){return r<=0?1:e<=t?0:1-ua(e,t)*Math.exp(-(e-t)*n/r)}function da(e,t,n){return n<=0?0:e*t/n}function fa(e,t,n,r){if(e<=0||t<=0)return 0;const o=da(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,i=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let a=Math.max(1,Math.ceil(o));a<=ro;a++)if(!(a<=o)&&!(la(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return ro}const Ug=36e5,Fg=864e5;function Bg(e){return e==="day"?Fg:Ug}function jg(e,t){return e.start<t.end&&t.start<e.end}function We(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function pa(e,t,n){const r=e.handleSeconds??0,o=e.seconds??(e.volume!==void 0?e.volume*r:0);if(o<=0&&!e.volume)return{seconds:0,headcount:0};const s=(t.unplannedLossPercent??0)/100,i=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const a=fa(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function qg(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=Bg(i),c=a/1e3,u=e.kinds,d=t.filter(m=>Se(m.status)),l=d.filter(m=>ur(m,n,u)),p=d.filter(m=>ee(m.kindKey,u).capacity),g=d.filter(m=>ee(m.kindKey,u).absent),f=[];for(let m=Ie(s.from,i);m<s.to;m+=a){const _=m+a,h=_e(m,i);let y=0;for(const E of l)y+=We(E,m,_);let b=0;for(const E of p)b+=We(E,m,_);let I=0;for(const E of g)I+=We(E,m,_);const v=o?.[h]??{},T=pa(v,r,c),O=y/c;f.push({period:h,forecastVolume:v.volume,requiredSeconds:T.seconds,requiredHeadcount:T.headcount,scheduledSeconds:y,scheduledHeadcount:O,netHeadcount:O-T.headcount,capacitySeconds:b,absentSeconds:I})}return f}function ma(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function Gg(e,t,n){const r=ma(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function Wg(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Vg=36e5,vn=6048e5,ga=8,Hg=.5,Yg=2;function zg(e){const t=Number(e.slice(0,4)),n=Number(e.slice(5,7)),r=Number(e.slice(8,10)),o=e.length>10?Number(e.slice(11,13)):0;return Date.UTC(t,n-1,r,o)}function Xg(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*vn,a=i-vn;let c=0,u=!1;for(const[d,l]of e)d>=a&&d<i&&(c+=l,u=!0);u&&r.push(c)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(Yg,Math.max(Hg,r[0]/o))}function Qg(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Zg(e,t,n){const r=Math.max(1,n?.weeks??ga),o=new Map,s=new Set;for(const c of e)o.set(zg(c.period),c.value),s.add(c.period.slice(0,10));const i=Xg(o,Ie(t.from,"hour"),r),a=[];for(let c=Ie(t.from,"hour");c<t.to;c+=Vg){let u=0,d=0;for(let g=1;g<=r;g++){const f=c-g*vn,_=o.get(f)??(s.has(_e(f,"day"))?0:void 0);if(_===void 0)continue;const h=r-g+1;u+=_*h,d+=h}let l=d>0?u/d*i:0;const p=Qg(n?.adjustments,c);p?.absoluteVolume!==void 0?l=p.absoluteVolume:p?.factor!==void 0&&(l*=p.factor),a.push({period:_e(c,"hour"),volume:l})}return a}const ha="schedule_entry",ya="workstream";function Jg(e){return`${ha}:${e}`}function eh(e){return`${ya}:${e}`}const Cn=36e5,be=864e5;function th(e,t){const n=t==="day"?be:Cn,r=[];for(let o=Ie(e.from,t);o<e.to;o+=n)r.push(o);return r}function oo(e){const t=Math.max(1,Math.round((e.to-e.from)/be));return Array.from({length:t},(n,r)=>e.from+r*be)}function Yt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function nh(e,t,n={}){const r=n.grain??"hour",o=th(t,r),s=r==="day"?be:Cn,i=new Map(o.map(l=>[l,0])),a=e.filter(l=>l.userId&&ee(l.kindKey).capacity),c=n.userIds?.length?new Set(n.userIds):null,u=new Set;for(const l of a)if(!(c&&l.userId&&!c.has(l.userId))){for(const p of o){const g=Yt(l.start,l.end,p,p+s);g>0&&i.set(p,(i.get(p)??0)+g)}for(const p of oo(t))Yt(l.start,l.end,p,p+be)>0&&u.add(`${l.userId}:${p}`)}const d=n.userIds??[...new Set([...a.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const p=n.teamIdsOf?.(l)??[];for(const g of oo(t)){if(u.has(`${l}:${g}`))continue;const f=pr(n.patterns,l,p,g);if(!f)continue;const m=dr(f,g);if(m<=0)continue;const _=fr(f,g);if(_){const[b,I]=_.split(":").map(Number),v=g+b*Cn+(I??0)*6e4,T=v+m*6e4;for(const O of o){const E=Yt(v,T,O,O+s);E>0&&i.set(O,(i.get(O)??0)+E)}continue}const h=o.filter(b=>b>=g&&b<g+be);if(!h.length)continue;const y=m*60/h.length;for(const b of h)i.set(b,(i.get(b)??0)+y)}}return o.map(l=>({period:_e(l,r),weight:i.get(l)??0}))}function ba(e,t){if(e<=0||!t.length)return[];const n=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(n<=0){const r=e/t.length;return t.map(o=>({period:o.period,seconds:r}))}return t.filter(r=>r.weight>0).map(r=>({period:r.period,seconds:e*r.weight/n}))}function rh(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(a=>n(a.period)<o.by):t,i=s.length?s:t;for(const a of ba(o.seconds,i)){const c=`${a.period}|${o.userId??""}`,u=r.get(c);u?u.seconds+=a.seconds:r.set(c,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function _a(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function oh(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),o=t.slice(n+1).trim();if(o){if(r==="user")return{kind:"user",userId:o};if(r==="team")return{kind:"team",teamId:o}}}function Ia(e){return _a(e)}function Ea(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function sh(e){return e.agentId?{kind:"user",userId:e.agentId}:Ea(e.ownerScope)}function ih(e){return Ia(e)}const Sa="playbook-run",ah="run";function ch(e,t=0){return`${Sa}:${e}~${t}`}function uh(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function Aa(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function lh(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function dh(e,t){if(t)return e.targets.find(n=>n.id===t)}function va(e){return e?.kind==="assignment"}function fh(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return va(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":i&&i===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const Tn=["suggest","outward","auto"];function ph(e){return typeof e=="string"&&Tn.includes(e)}function mh(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function gh(e,t){const n=e??"suggest";return t&&Tn.indexOf(t)<Tn.indexOf(n)?t:n}function hh(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function Ca(e){const t=e.split("__");return t[t.length-1]||e}function yh(e){const t=Ca(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const bh=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toCategory",type:"string",onlyFor:["WORK_ITEM_STATUS_CHANGED"]},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"priority",type:"string"},{name:"inboxId",type:"string"},{name:"topicId",type:"string"},{name:"assigneeUserId",type:"string"}];function _h(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Ih={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function mr(e){return`${e.type}:${e.id}`}function Eh(e){return[mr(e),e.lineId].join("#")}function Sh(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Ah(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const Ta="interaction";function ka(e){return e?.type===Ta?e.id:void 0}const Oa=64,Ma=8e3;function vh(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),Oa),Ma)}const Ch=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],Th={kind:"workflow",steps:[]};function kh(e){return e?.kind==="workflow"?e.steps:[]}function Oh(e){return e?.kind==="procedure"?e.procedure:void 0}function Mh(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Ra(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Na=10,Da=.9;function Rh(e){const{total:t,rate:n}=Ra(e);return t>=Na&&n>=Da}const xa=["done","escalated","failed","stopped"];function Nh(e){return xa.includes(e)}function wa(e){return e==="waiting"}function Dh(e){return e==="running"||wa(e)}function gr(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function xh(e){const t=gr(e);return t?mr(t):void 0}function wh(e){return ka(gr(e))}const Pa=36e5,Ph=24*Pa,Lh=48*Pa;function Kh(e,t,n){const r=e.availability;if(!r)return{stock:"unknown"};if(!(n<=(r.freshUntil??r.at+Lh))||r.qty===null)return{stock:"unknown"};const s=r.qty;return{stock:s>=t?"enough":"short",qty:s}}function $h(e,t,n){if(!Qn(e,n))return"invalid";if(e.pricedBy!=="quote"&&(e.termMonths??0)!==(t.termMonths??0))return"term";const r=t.deliverTo!==void 0&&t.deliverTo!=="own";if(t.deliverTo!==void 0&&e.dropship===(r?"no":"yes"))return"dropship";if(t.qualified&&!t.qualified.some(o=>o.app===e.provider?.app&&o.offer===e.provider.offer&&(!o.vendorSku||o.vendorSku===e.vendorSku)))return"qualification"}function Uh(e,t){if(e.pricedBy==="quote")return null;const n=e.currency===t.currency?1:t.rates?.[e.currency];return n?ui(e)*n:null}const so={enough:0,unknown:1,short:2},io=e=>e.unitCents??Number.POSITIVE_INFINITY;function Fh(e,t,n){const r=e.map(f=>{const m=$h(f,t,n),_=f.availability?.leadDays??f.leadDays;return{offer:f,...Kh(f,t.quantity,n),unitCents:Uh(f,t),..._!==void 0?{leadDays:_}:{},...m?{unsuitable:m}:{}}}),o=r.filter(f=>!f.unsuitable),s=r.filter(f=>f.unsuitable),i=o.filter(f=>f.unitCents!==null),a=i.length?i:o,c=[...a].sort((f,m)=>so[f.stock]-so[m.stock]||(f.stock==="short"?(m.qty??0)-(f.qty??0):0)||io(f)-io(m)||(f.leadDays??Number.POSITIVE_INFINITY)-(m.leadDays??Number.POSITIVE_INFINITY)||Number(m.offer.isDefault)-Number(f.offer.isDefault)),u=a.find(f=>f.offer.isDefault),d=u&&u.stock!=="short"?u:c[0]??null,l=t.pinned?r.find(f=>f.offer.id===t.pinned):void 0;if(l){const f=[...c,...o.filter(m=>!a.includes(m)),...s];return{chosen:l,why:"picked",alternatives:f.filter(m=>m!==l),currency:t.currency}}const p=[...c,...o.filter(f=>!a.includes(f))].filter(f=>f!==d);if(!d)return{chosen:null,alternatives:[...p,...s],currency:t.currency};const g=d.stock==="short"?"short":d===u?"preferred":u?"preferred_short":o.length===1?"only":"best";return{chosen:d,why:g,alternatives:[...p,...s],currency:t.currency}}const zt=864e5;function Bh(e,t){return e.lines.flatMap(n=>{const r=St(V(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=Dt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function La(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const ao=e=>e.seriesId??e.id;function jh(e,t,n){return t.find(r=>{const o=V(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function qh(e,t,n,r={}){const o=(r.noticeDays??30)*zt,s=(r.windowDays??7)*zt,i=[];for(const a of e){if(a.status!=="active")continue;const c=new Map;for(const u of a.lines)c.set(ao(u),[...c.get(ao(u))??[],u]);for(const u of c.values()){const d=jh(a,u,n),l=V(a,d);if(l.to!=null&&l.to<=n)continue;const p={contractId:a.id,lineId:d.id},g=d.commitment??a.commitment,f=Zo(a,u),m=l.to??tt(f,g,n);if(d.customerCompanyId&&!d.itemId){const b=d.salesLine?t.find(I=>I.agreementId===d.salesLine?.agreementId&&I.seriesId===d.salesLine?.seriesId):void 0;b?b.ended?i.push({kind:"not_covered",...p,reason:"sales_ended"}):(d.quantity.from==="fixed"&&b.quantity!=null&&b.quantity!==d.quantity.value&&i.push({kind:"not_covered",...p,reason:"quantity"}),b.unbilled.length&&i.push({kind:"not_billed",...p,windows:b.unbilled}),m>b.effectiveEndAt&&i.push({kind:"term_mismatch",...p,purchaseEnd:m,salesEnd:b.effectiveEndAt})):i.push({kind:"not_covered",...p,reason:"no_sales_line"})}const _=!!g&&g.termMonths>=3&&(g.renew==="term"||n<tt(f,{...g,renew:"none"},f)),h=l.to==null&&_?Jo(f,g,n):null;if(h!=null&&h-n<=o&&i.push({kind:"notice_due",...p,deadline:h}),g&&g.termMonths>=1&&d.changeWindowDays){const b=Kn(f,g,n)+d.changeWindowDays*zt;b>n&&b-n<=s&&i.push({kind:"change_window",...p,closesAt:b})}const y=r.invoiced?.get(d.id);if(d.expected==="variable"&&y&&y.length>=2){const b=[...y].sort((v,T)=>v.from-T.from),I=b[b.length-1];La(b.slice(0,-1).map(v=>v.cents),I.cents)&&i.push({kind:"variable_jump",...p,cents:I.cents})}}}return i}const hr=["vendorSku","gtin","description","brand","group","cost","list","currency","stock","leadDays","lotSize","dropship"],Ka={day:864e5,week:7*864e5,month:31*864e5},$a=10;function Gh(e,t){const n=(e[0]??[]).map(a=>a.trim().toLowerCase()),r={},o=[];for(const a of hr){const c=t[a]?.trim();if(!c)continue;const u=n.indexOf(c.toLowerCase());u===-1?o.push(c):r[a]=u}const s=[],i=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=v=>{const T=r[v];return T===void 0?"":(a[T]??"").trim()},l=d("vendorSku"),p=kt(d("gtin"));if(!l&&!p){i.push({line:u,message:"feed_row_no_key"});return}const g=d("cost")?nn(d("cost")):void 0;if(d("cost")&&g===void 0){i.push({line:u,message:"feed_row_price"});return}const f=d("list")?nn(d("list")):void 0,m=d("stock"),_=Number(m.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:m&&/\d/.test(m)&&Number.isFinite(_)?Math.max(0,_):null,y=Number(d("leadDays")),b=Number(d("lotSize")),I=Wh(d("dropship"));s.push({line:u,...l?{vendorSku:l}:{},...p?{gtin:p}:{},...d("description")?{description:d("description")}:{},...d("brand")?{brand:d("brand")}:{},...d("group")?{group:d("group")}:{},...g!==void 0?{costCents:g}:{},...f!==void 0?{listCents:f}:{},...d("currency")?{currency:d("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...d("leadDays")&&Number.isFinite(y)?{leadDays:y}:{},...Number.isInteger(b)&&b>1?{lotSize:b}:{},...I?{dropship:I}:{}})}),{rows:s,errors:i,missingHeaders:o})}function Wh(e){const t=e.toLowerCase();if(t){if(/^(alleen|only)/.test(t))return"yes";if(/^(ja|yes|y|j|1|true|waar)$/.test(t))return"optional";if(/^(nee|no|n|0|false|onwaar)$/.test(t))return"no"}}function Vh(e,t,n){const r=new Map(t.filter(i=>i.vendorSku).map(i=>[i.vendorSku,i])),o=new Map(t.map(i=>[i.productId,i])),s=new Map;for(const i of n)for(const a of[i.gtin,...i.barcodes??[]]){const c=a?kt(a):void 0;c&&!s.has(c)&&s.set(c,i)}return e.map(i=>{const a=i.vendorSku?r.get(i.vendorSku):void 0;if(a)return{row:i,offer:a};const c=i.gtin?s.get(i.gtin):void 0;if(!c)return{row:i};const u=o.get(c.id);return u?{row:i,offer:u}:{row:i,product:c}})}function Hh(e,t,n,r=$a,o="week"){const s=new Map,i=[];let a=0;for(const u of e){const{row:d}=u;if(!("offer"in u)){i.push({line:d.line,...d.vendorSku?{vendorSku:d.vendorSku}:{},...d.gtin?{gtin:d.gtin}:{},...d.description?{description:d.description}:{},...d.brand?{brand:d.brand}:{},...d.group?{group:d.group}:{},...d.costCents!==void 0?{costCents:d.costCents}:{},..."product"in u?{productId:u.product.id}:{},...d.offer?{offer:d.offer}:{}});continue}const l=u.offer,p={qty:d.stock===void 0?l.availability?.qty??null:d.stock,at:n,source:"feed",...d.leadDays!==void 0?{leadDays:d.leadDays}:{},freshUntil:n+2*Ka[o]},g={availability:p};d.costCents!==void 0&&d.costCents!==l.costCents&&(g.costCents=d.costCents),d.listCents!==void 0&&d.listCents!==l.listCents&&(g.listCents=d.listCents),d.currency&&d.currency!==l.currency&&(g.currency=d.currency),d.lotSize!==void 0&&d.lotSize!==l.lotSize&&(g.lotSize=d.lotSize),d.dropship&&d.dropship!==l.dropship&&(g.dropship=d.dropship),d.vendorSku&&!l.vendorSku&&(g.vendorSku=d.vendorSku),Object.keys(g).length>1||p.qty!==(l.availability?.qty??null)||a++;const m=g.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(g.costCents-l.costCents)/l.costCents*1e3)/10:0;s.set(l.id,{offerId:l.id,set:g,...m>r?{jump:{fromCents:l.costCents,toCents:g.costCents,percent:m}}:{}})}const c=t.filter(u=>u.availability?.source==="feed"&&!s.has(u.id)).map(u=>u.id);return{changes:[...s.values()],unchanged:a,gone:c,unmatched:i}}const Yh={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],brand:["merk","brand","fabrikant","manufacturer","vendor"],group:["productgroep","groep","categorie","category","product group","productgroup"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"],lotSize:["bestelveelvoud","veelvoud","lot size","order multiple","purchaselotsize"],dropship:["dropship","drop shipment","dropshipment","direct leveren"]};function zh(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of hr){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Yh[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}const q=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function Ua(e){const t=[];for(const n of e){const r=q(n.sku)||q(n.description),o=t.find(s=>(q(s.sku)||q(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Xh(e,t){const n=q(e.orderRef),r=q(e.supplierRef);return n&&t.find(o=>q(o.number)===n)||n&&t.find(o=>q(o.reference)===n)||r&&t.find(o=>q(o.reference)===r)||null}const Fe={reference:0,sku:1,description:2,loose:3};function yr(e,t,n){const r=q(e.externalRef);if(r&&q(t.externalRef)===r)return{via:"reference",rank:Fe.reference};if(r&&t.externalRef)return null;const o=q(e.sku);if(o&&n.filter(c=>c.id===t.offerId||!!t.productId&&c.productId===t.productId).map(c=>q(c.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Fe.sku};const s=q(e.description),i=q(t.name);return!s||!i?null:s===i?{via:"description",rank:Fe.description}:i.includes(s)||s.includes(i)?{via:"description",rank:Fe.loose}:null}function Fa(e,t,n){const r=t.filter(a=>a.kind==="product"),o=new Set,s=[],i=[];return e.forEach((a,c)=>{let u=null;for(const d of r){if(o.has(d.id))continue;const l=yr(a,d,n);l&&(!u||l.rank<u.rank)&&(u={line:d,...l})}if(!u){i.push(c);return}o.add(u.line.id),s.push({docIndex:c,poLineId:u.line.id,via:u.via})}),{matches:s,unmatched:i}}function Qh(e,t,n,r){const o=Ua(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:i}=Fa(o,t.lines,n),a=s.map(u=>({poLineId:u.poLineId,quantity:o[u.docIndex].quantity,serials:o[u.docIndex].serials,docIndex:u.docIndex,via:u.via})),c=[...ii({movement:"in",lines:a},t.lines,r).filter(u=>u.code!=="receipt_return_over_received").map(u=>({code:u.code,poLineId:u.poLineId,docIndex:a.find(d=>d.poLineId===u.poLineId)?.docIndex})),...i.map(u=>({code:"slip_unknown_item",docIndex:u}))];return{lines:a,problems:c}}function Zh(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const i=Number(String(s?.quantity??"").replace(",",".")),a=n(s?.description);if(!(i>0)||!a&&!n(s?.sku))return[];const c=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:a,quantity:i,serials:c}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const Jh=864e5,co=e=>Date.parse([e,"T00:00:00Z"].join(""));function ey(e,t,n,{defaultPeriod:r,invoice:o}){const s=new Map(t.map(l=>[l.id,l.openQty])),i=new Map(t.map(l=>[l.id,l.receivedOpen])),a=[],c=[],u=[],d=new Set;for(const l of e){const p=l.period?{from:co(l.period.from),to:co(l.period.to)+Jh}:r,g=E=>!E.term||E.term.from<=p.from&&(E.term.to==null||p.from<E.term.to),f=t.map((E,M)=>({candidate:E,order:M,hit:yr(l,E,n)})).filter(E=>!!E.hit).filter(E=>g(E.candidate)),m=f.filter(E=>uo(E.candidate,o)!==null).filter(E=>!(E.candidate.kind==="contract_line"&&d.has(E.candidate.id))).sort((E,M)=>E.hit.rank-M.hit.rank||E.order-M.order);if(!m.length){f.length?u.push(l.id):c.push(l.id);continue}const _=E=>{const M=uo(E,o);return{receiptLineId:l.id,businessEntityId:E.businessEntityId,...E.productId?{productId:E.productId}:{},...E.use?{use:E.use}:{},...E.customerCompanyId?{customerCompanyId:E.customerCompanyId}:{},...E.dimensions?{dimensions:E.dimensions}:{},...E.ledgerCategoryKey?{ledgerCategoryKey:E.ledgerCategoryKey}:{},...M!==1?{rate:M}:{}}},h=(E,M,F)=>E.variable?null:Dt({kind:"product",quantity:M,unitPriceCents:E.unitPriceCents,discountPercent:E.discountPercent,pricePer:E.pricePer,servicePeriod:F}),y=m[0];if(y.candidate.kind==="contract_line"){const E=y.candidate;d.add(E.id);const M=l.quantity??E.openQty??1;a.push({..._(E),target:{kind:"contract_line",contractId:E.parentId,lineId:E.id,period:p},via:y.hit.via,quantity:M,amountCents:l.netCents,expectedCents:h(E,M,p),overQuantity:E.openQty!=null&&M!==E.openQty});continue}const b=m.filter(E=>E.candidate.kind==="po_line"&&E.hit.rank===y.hit.rank),I=l.quantity??Math.max(1,s.get(y.candidate.id)??1),v=[];let T=I;for(const{candidate:E}of b){if(T<=0)break;const M=Math.max(0,s.get(E.id)??0);if(!M)continue;const F=Math.min(M,T);v.push({candidate:E,quantity:F,over:!1}),s.set(E.id,M-F),T-=F}if(T>0){const E=v[v.length-1];E?(E.quantity+=T,E.over=!0):v.push({candidate:y.candidate,quantity:T,over:!0})}const O=de(l.netCents,v.map(E=>E.quantity));for(const E of v){const M=i.get(E.candidate.id);M!=null&&(E.notReceived=E.quantity>M,i.set(E.candidate.id,M-E.quantity))}v.forEach((E,M)=>{a.push({..._(E.candidate),target:{kind:"po_line",orderId:E.candidate.parentId,lineId:E.candidate.id},via:y.hit.via,quantity:E.quantity,amountCents:O[M],expectedCents:h(E.candidate,E.quantity,l.period?p:void 0),overQuantity:E.over,...E.notReceived?{notReceived:!0}:{}})})}return{allocations:a,unmatched:c,needsRate:u}}function uo(e,t){return!t||!e.currency||e.currency===t.currency?1:e.currency==="EUR"&&t.fxRate&&t.fxRate>0?t.fxRate:null}const Ba={percent:1,cents:100};function ty(e,t,{tolerance:n=Ba,needsRate:r=[]}={}){const o=[...t.map(i=>({receiptLineId:i,issue:"unmatched"})),...r.map(i=>({receiptLineId:i,issue:"fx_rate_required"}))],s=new Map;for(const i of e)s.set(i.receiptLineId,[...s.get(i.receiptLineId)??[],i]);for(const[i,a]of s){if(a.some(l=>l.overQuantity)&&o.push({receiptLineId:i,issue:"quantity"}),a.some(l=>l.notReceived)&&o.push({receiptLineId:i,issue:"not_received"}),a.some(l=>l.expectedCents===null))continue;const c=a.reduce((l,p)=>l+(p.expectedCents??0),0),u=Math.round(a.reduce((l,p)=>l+p.amountCents*(p.rate??1),0)),d=Math.max(Math.abs(c)*n.percent/100,n.cents);Math.abs(u-c)>d&&o.push({receiptLineId:i,issue:"price",expectedCents:c,amountCents:u})}return{ok:o.length===0&&e.length>0,issues:o}}const lo=(e,t)=>e.trim().toLowerCase()===t.trim().toLowerCase();function ja(e,t){if(!e)return!1;const n=e.answer.trim();return(n.endsWith("*")?t.answer.startsWith(n.slice(0,-1)):t.answer===n)?!e.match||lo(e.match,t.key)||lo(e.match,t.label):!1}function ny(e,t,n){const r=e.filter(o=>o.provider?.app===t&&ja(o.provider.option,n));return r.find(o=>!!o.provider?.option?.match)??r[0]}function ry(e){const t=[],n=new Map;for(const r of[...e].sort(oy)){const o=n.get(r.emoji);if(o){o.push(r.actor);continue}t.push(r.emoji),n.set(r.emoji,[r.actor])}return t.map(r=>{const o=n.get(r);return{emoji:r,count:o.length,actors:o}}).sort((r,o)=>o.count-r.count||t.indexOf(r.emoji)-t.indexOf(o.emoji))}const oy=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function sy(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const qa=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function iy(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(b=>[b.key,b])),r=n.get(e.standardKey??"high"),o={},s={},i=(b,I)=>{if(!e.trace||!b||!I.ref)return;const v=s[b]??[];v.includes(I.ref)||(s[b]=[...v,I.ref])};let a;const c=(b,I,v)=>{if(!b||!v)return;const T=o[b]??{};T[I]=(T[I]??0)+v,o[b]=T,a&&i(b,a)},u=new Map,d=new Set;let l=0;for(const b of e.lines){const I=b.vatDate??b.taxPointDate;if(I<e.from||I>e.to)continue;const v=n.get(b.taxCode);if(!v){d.add(b.taxCode);continue}const T=v.boxes[t]?.[b.side];if(a=b,b.side==="sales"){if(c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",b.taxCents),v.icp){const O=[v.icpKind??"services",b.counterpartyCompanyId??""].join("|");u.set(O,(u.get(O)??0)+b.baseCents)}}else if(v.selfAssessed){const O=r?cr(r,b.taxPointDate)??0:0,E=Math.round(b.baseCents*O/100);c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",E),l+=E,E&&i("5b",b)}else l+=b.taxCents,b.taxCents&&i("5b",b)}const p=qa.filter(b=>b<"5"),g=p.reduce((b,I)=>b+(o[I]?.taxCents??0),0);o["5a"]={taxCents:g},o["5b"]={taxCents:l},o["5c"]={taxCents:g-l},o["5g"]={taxCents:g-l};const f=b=>Math.trunc(b/100),m=b=>b>=0?Math.ceil(b/100):Math.floor(b/100),_={};for(const b of p){const I=o[b];I&&(_[b]={...I.baseCents!==void 0?{base:f(I.baseCents)}:{},...I.taxCents!==void 0?{tax:f(I.taxCents)}:{}})}const h=p.reduce((b,I)=>b+(_[I]?.tax??0),0),y=m(l);return _["5a"]={tax:h},_["5b"]={tax:y},_["5c"]={tax:h-y},_["5g"]={tax:h-y},{boxes:o,euros:_,icp:[...u.entries()].filter(([,b])=>b!==0).map(([b,I])=>{const[v,T]=b.split("|");return{...T?{counterpartyCompanyId:T}:{},kind:v,baseCents:I}}),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function ay(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,i)=>new Date(Date.UTC(s,i,0)).getUTCDate();return Array.from({length:12/n},(s,i)=>{const a=i*n+1,c=a+n-1,u=c===12?e+1:e,d=c===12?1:c+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(c)}-${r(o(e,c))}`,dueOn:t==="year"?`${e+1}-03-31`:`${u}-${r(d)}-${r(o(u,d))}`}})}const cy=e=>new Date(Date.parse(`${e}T00:00:00Z`)+864e5).toISOString().slice(0,10);function uy(e,t,n){const r=n.filter(s=>s.filedAt<=t).reduce((s,i)=>i.to>s?i.to:s,""),o=r?cy(r):"";return o>e?o:e}class br extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const ly=/^\{\{\s*([\w.]+)\s*\}\}$/,dy=/\{\{\s*([\w.]+)\s*\}\}/g,fy=/\$[A-Za-z_][\w]*\.[\w.]+/;function py(e,t,n={}){return pt(e,t,n)}function pt(e,t,n={}){return typeof e=="string"?my(e,t,n):Array.isArray(e)?e.map(r=>pt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,pt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function my(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(fy);if(s)throw new br(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(ly);if(o){const s=fo(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(dy,(s,i)=>{const a=fo(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function fo(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new br(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return gy(e,t)}function gy(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const hy=new Set(["filled","empty"]);function yy(){return{kind:"rule",op:"==",varPath:"",value:""}}const by=new Set(["==","!=",">","<",">=","<="]);function Xt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function po(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ga(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=kn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function kn(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const i=kn(s);if(!i)return null;o.push(i)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Xt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=kn(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Xt(s)||!po(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(by.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Xt(o)||!po(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function Ve(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?Ve(e.children[0]):{[e.op]:e.children.map(Ve)}:e.kind==="not"?{"!":Ve(e.child)}:e.op==="filled"?{"!!":[{var:e.varPath}]}:e.op==="empty"?{"!":[{var:e.varPath}]}:e.op==="in"?{in:[e.value,{var:e.varPath}]}:{[e.op]:[{var:e.varPath},e.value]}}function _y(e){const t=Ga(e);return t&&On(t)||null}function On(e){if(e.kind==="group"){const t=e.children.map(On).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${On(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Qt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Iy(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,i]=o.split("/"),a=i===void 0?1:Number(i);if(!Number.isInteger(a)||a<1)return null;let c=t,u=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(c=Number(d),u=l===void 0?c:Number(l),!Number.isInteger(c)||!Number.isInteger(u)||(l===void 0&&i!==void 0&&(u=n),c<t||u>n||c>u))return null}for(let d=c;d<=u;d+=a)r.add(d)}return r.size?r:null}function _r(e){const t=e.trim().split(/\s+/);if(t.length!==Qt.length)return null;const n=[];for(let c=0;c<Qt.length;c++){const u=Qt[c],d=t[c];if(!u||d===void 0)return null;const l=Iy(d,u.min,u.max);if(!l)return null;n.push(l)}const[r,o,s,i,a]=n;return a.has(7)&&a.add(0),{minute:r,hour:o,dayOfMonth:s,month:i,dayOfWeek:a,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Ey(e){return _r(e)!==null}function Wa(e,t){const n=_r(e);if(!n||!n.minute.has(t.getUTCMinutes())||!n.hour.has(t.getUTCHours())||!n.month.has(t.getUTCMonth()+1))return!1;const r=n.dayOfMonth.has(t.getUTCDate()),o=n.dayOfWeek.has(t.getUTCDay());return n.anyDayOfMonth&&n.anyDayOfWeek?!0:n.anyDayOfMonth?o:n.anyDayOfWeek?r:r||o}const Va="@schedule",Mn=3;function Ha(e,t,n){const r=[],o=e.depth??0;if(o>=Mn)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${Mn})`}))};const s={event:e.payload,subject:e.subject??{}},i=[];for(const a of t){if(!a.enabled){r.push({ruleId:a.id,reason:"staat uit"});continue}if(a.trigger.kind==="schedule"){if(e.name!==Va){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const c=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(c)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!Wa(a.trigger.cron,new Date(c))){r.push({ruleId:a.id,reason:`niet aan de beurt (${a.trigger.cron})`});continue}}else if(a.trigger.kind!=="event"){r.push({ruleId:a.id,reason:`trigger "${a.trigger.kind}" draait hier niet`});continue}else if(a.trigger.name!==e.name){r.push({ruleId:a.id,reason:`luistert op ${a.trigger.name}`});continue}if(e.causedByRule===a.id){r.push({ruleId:a.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(a.when??null,s)){r.push({ruleId:a.id,reason:"voorwaarde niet waar"});continue}i.push({rule:a,idempotencyKey:`${e.id}:${a.id}:${a.version}`})}return{matched:i,skipped:r}}function Sy(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Ay(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Ha(n,r,t),i=o.flatMap(u=>u.rule.then.map(d=>d.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((u,d)=>u===a[d]))return{caseId:e.id,ok:!0};const c=s.map(u=>`${u.ruleId}: ${u.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${c?` — ${c}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function vy(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Ya(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==vy(e,n))}function Cy(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Ya(r,t).length)?"corrected":"kept"}function Ty(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function ky(e){return`subject.${e.path}`}function Oy(e,t){return e.events.find(n=>n.name===t)}function My(e,t){return e.filter(n=>Aa(t,n.path)===void 0).map(n=>n.path)}const Rn=6e4,Ry=36e5,Ne=864e5,za=800;function mo(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ne+Ry}function Ny(e){const t=new Date(e).getUTCFullYear();return e>=mo(t,2)&&e<mo(t,9)}function Xa(e,t){const n=t.dst==="eu"&&Ny(e)?60:0;return(t.utcOffsetMinutes+n)*Rn}function Dy(e){return(e+3)%7+1}function Qa(e,t){const n=Xa(e,t),r=e+n,o=Math.floor(r/Ne);if(!t.days.includes(Dy(o)))return null;const s=o*Ne;return{open:s+t.fromMinutes*Rn-n,close:s+t.toMinutes*Rn-n}}function Za(e,t){const n=Xa(e,t),r=e+n;return(Math.floor(r/Ne)+1)*Ne-n}function mt(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<za&&o<t;s++){const i=Qa(o,n);if(i){const a=Math.max(o,i.open),c=Math.min(t,i.close);c>a&&(r+=c-a)}o=Za(o,n)}return r}function wt(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<za;s++){const i=Qa(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const c=i.close-a;if(r<=c)return a+r;r-=c}}o=Za(o,n)}return e+t}function xy(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const gt=1,ht=2,yt=4;function wy(e){return e==="snoozed"?gt:ht}function Pt(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Py=["speed_of_answer","first_response","next_response","resolution","close"],Ly=["snoozed","waiting_for_customer"],Ky=6e4,Ja=["speed_of_answer","first_response","next_response"],$y=[...Ja,"resolution","close"];function Pe(e){return e.state==="running"||e.state==="paused"}function Uy(e,t){return Pe(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function go(e){return Pe(e)?{state:"void"}:null}function Fy(e,t,n,r){if(!Pe(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:mt(n,e.dueAt,r)}}function By(e,t,n,r){if(!Pe(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:wt(n,e.remainingMs,r)}}function jy({event:e,at:t,now:n,clocks:r,profile:o}){const s=Pt(o),i=Math.min(t,n),a=r.map(h=>({...h})),c=[],u=(h,y)=>{y&&(c.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},d=h=>{for(const y of a)y.metric===h&&u(y,Uy(y,i))},l=h=>{for(const y of a)h.includes(y.metric)&&u(y,go(y))},p=h=>{for(const y of a)u(y,Fy(y,h,i,s))},g=h=>{for(const y of a)u(y,By(y,h,i,s))},f=h=>a.reduce((y,b)=>b.metric===h?Math.max(y,b.attempt):y,0)+1,m=h=>a.some(y=>y.metric===h&&Pe(y)),_=(h,y)=>{const b=o.targets.find(v=>v.metric===h);if(!b)return;const I=b.minutes*Ky;c.push({op:"start",metric:h,attempt:f(h),startedAt:y,targetMs:I,dueAt:wt(y,I,s)})};switch(e){case"apply":{for(const h of a)h.profileId!==o.id&&u(h,go(h));for(const h of o.targets){if(h.metric==="next_response")continue;a.some(b=>b.metric===h.metric&&b.profileId===o.id)||_(h.metric,i)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&p(ht);break}case"inbound":{g(ht),!m("first_response")&&!m("next_response")&&_("next_response",i);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Ja);break;case"reopened":m("resolution")||_("resolution",i),m("close")||_("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&p(gt);break;case"unsnoozed":g(gt);break;case"hold":p(yt);break;case"unhold":g(yt);break;case"discarded":l($y);break}return c}function ec(e){return e.state==="running"||e.state==="paused"}function qy(e){return(e.pauseBits&yt)!==0}function bt(e,t){const n=Pt(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-mt(e.dueAt,t,n):mt(t,e.dueAt,n)}function Gy(e,t){return e.state==="paused"?wt(t,e.remainingMs,Pt(e)):e.dueAt}function Wy(e,t){const n=e.filter(ec);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>bt(i,t)<bt(s,t)?i:s)}function Vy(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=bt(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Hy(e){const t=Math.floor(Math.abs(e)/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return n?r?`${n}d ${r}u`:`${n}d`:r?o?`${r}u ${o}m`:`${r}u`:o?`${o}m`:`${t%60}s`}const tc="strategy_item";function Ir(e){return`${tc}:${e}`}function Yy(e,t=25){const n=new Set([Ir(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function zy(e){return e?[...e.ancestorKeys??[],Ir(e.id)]:[]}const Le=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],nc=999,rc=7;function oc(e,t=Le){return t.find(n=>n.key===e)}function _t(e,t=Le){return oc(e,t)?.order??nc}function Xy(e,t,n=Le){return _t(t,n)<=_t(e,n)}function Qy(e,t=Le){const n=_t(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Zy(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const Nn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Jy(e){return Nn[e]??"open"}function eb(e){return Object.keys(Nn).filter(t=>e.includes(Nn[t]))}const tb=864e5,Lt=e=>e<=0?0:e>1?1:e;function nb(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,i=o-r;return(n==="down"?i<0:i>0)?Lt((t-r)/i):s?1:0}function rb(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Lt((t-n)/(r-n))}const sc=.1,ic=.25;function ob(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ic?"off_track":n>=sc?"at_risk":"on_track"}function sb(e,t){if(t)return Lt(e/t)}function ib(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Lt(t.reduce((n,r)=>n+r,0)/t.length)}function ab(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??rc)*tb,o=t-n-r;return o>0?o:0}function cb(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function ub(e){const t=new Map,n=[...e].sort((r,o)=>r.startedAt-o.startedAt);for(const r of n){const o=`${r.workType??""}|${r.scopeKey??""}`,s=t.get(o)??{workType:r.workType,scopeKey:r.scopeKey,scopeLabel:r.scopeLabel,seconds:0,hours:0,entryIds:[],from:r.startedAt,to:r.startedAt};s.seconds+=r.durationSeconds??0,s.hours=Math.round(s.seconds/3600*100)/100,s.entryIds.push(r.id),s.to=r.startedAt,t.set(o,s)}return[...t.values()]}function lb(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function db(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function fb(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function pb(e){const t=Math.max(0,Math.floor(e)),n=s=>String(s).padStart(2,"0"),r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function ac(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function mb(e,t){const n=ac(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function gb(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function hb(e){return e.filter(t=>!t.archived).sort(cc)}function cc(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const uc=20,lc=20,He=300;function ce(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function dc(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=He)return t;const n=t.slice(0,He),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>He*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function yb(e,t){const n=dc(t.text),r=ce(n);if(!r||(e.examples??[]).some(i=>ce(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>ce(i.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const i=[...o];return i[s]={...i[s],corrected:!0,addedAt:t.addedAt},ho(i)}return ho([{...t,text:n},...o]).slice(0,lc)}function ho(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function bb(e,t){const n=ce(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>ce(s)===n)?r:[...r,t].slice(-uc),exampleCandidates:fc(e,t)}}function fc(e,t){const n=ce(t);return(e.exampleCandidates??[]).filter(r=>ce(r.text)!==n)}function pc(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function _b(e,t){return e.filter(n=>pc(n,t))}const mc=["apps","settings","wake"],Kt="businessEntityId";function Ib(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...gc.map(s=>s.key),...mc,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Eb({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],i=a=>!!a&&(s.includes(a)||r&&a!=="apps"&&o.visible.includes(a));return i(t)?t:i(n)?n:s[0]??"apps"}const gc=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function Sb(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,i,...a]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...i?{app:i}:{},path:`/${a.join("/")}${o}`}}function Ab({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const hc=["invoice","credit_note"];function vb(e){return!!e.issuedAt&&hc.includes(e.kindKey)}function Cb(e,t="sales"){const n=i=>e.totals?.byRate?.find(a=>a.taxRateKey===i),r=e.issuedPaper?.counterparty,o=r?.address??e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" ");return{sourceApp:t,documentId:e.id,...e.businessEntityId?{path:`/apps/${t}/${G(e.kindKey).path}/${e.id}?${Kt}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId,...e.number?{number:e.number}:{},counterparty:{companyId:r?.companyId||Tt(e),...r?.number?{number:r.number}:{},name:r?.name??"",...r?.vatNumber?{vatNumber:r.vatNumber}:{},...r?.kvkNumber?{kvkNumber:r.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:ae(e.issuedAt??Date.now()),...e.dueAt?{dueDate:ae(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const a=e.taxOverrideKey??i.taxRateKey,c=n(a);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:a,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dimensions},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:ae(i.servicePeriod.from),to:ae(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Tb(e,t={}){const n=G(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0,byRate:[]};return{customer:{name:t.companyName??"",contact:t.contactName??"",vat_number:t.companyVatNumber??"",number:t.companyNumber??"",address:Mb(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:ge(e.issuedAt),valid_until:ge(e.expiresAt),due_date:ge(e.dueAt),delivery_date:ge(e.deliveredAt),period_from:ge(e.periodFrom),period_to:ge(e.periodTo),payment_term:e.paymentTerm?.label??"",reverse_charge:r.byRate.some(o=>o.kind==="reverse_charge"||o.taxRateKey==="reverse_charge"),note:e.introText??"",terms:e.termsText??""},totals:{net:J(r.netCents),tax:J(r.taxCents),gross:J(r.grossCents)}}}function kb(e,t=[],n=yc){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=u=>t.find(d=>d.key===u)?.percent??0,s=(e.lines??[]).some(u=>u.kind==="product"&&(u.discountPercent??0)>0),i=u=>s?[u.discountPercent?[String(u.discountPercent).replace(".",","),"%"].join(""):""]:[],a={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},...s?[{label:n.discount,align:"right"}]:[],{label:n.net,align:"right"}],rows:(e.lines??[]).map(u=>u.kind==="text"?[u.name,"","",...s?[""]:[],""]:[Ob(u.name,u.description,u.optional,n.optional),Rb(u,n),Wn(u)?"":u.pricePer?[J(u.unitPriceCents),n.per[u.pricePer]].join(" "):J(u.unitPriceCents),...i(u),J(u.netCents)])},c={block_id:"totals",type:"totals",rows:[{label:n.net,amount:J(r.netCents)},{label:n.gross,amount:J(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(u=>({label:`${n.tax} ${u.percent??o(u.taxRateKey)}%`,amount:J(u.taxCents)}))};return{lines:[a],totals:[c]}}const yc={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",discount:"Korting",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function Ob(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function Mb(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Rb(e,t){const n=Wn(e);return n?[yo(n.amount),t.units[n.unit]??n.unit].join(" "):yo(e.quantity)}function yo(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ge(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function bc(e){const t=G(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Db[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${G(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:bo[n]??bo.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"reverse_charge",type:"paragraph",text:"Btw verlegd. Btw-nummer afnemer: {customer.vat_number}."},{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:_o[n]??_o.quote}]}const Nb=e=>({note:{key:`${G(e).key}.note`,exists:!0},period:{key:`${G(e).key}.period_from`,exists:!0},reverse_charge:{key:`${G(e).key}.reverse_charge`,exists:!0}}),Db={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},bo={quote:`Beste {customer.contact},
11
+ `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const ff=["billing","delivery","site","visit"];function pf(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function js(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function mf(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function gf(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=js(n);r&&!t.includes(r)&&t.push(r)}return t}const hf=["customer","supplier"],yf=e=>e==="customer"?"sales":"purchase";function bf(e){return e.endpoints??[]}const _f=["lead","opportunity","customer","former"],If=["new","working","unqualified"];function Ef(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const qs=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],Gs=["openDeal","hasContacts"],Sf={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},Af=["updatedAt","createdAt","name"],vf=["list"];function Cf(e){return e.search?.trim()||e.createdWithinDays||Gs.some(t=>e[t])||qs.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Ws="CRM_NOTE_ADDED",Tf="crm_activity",Vs="CRM_CALL_LOGGED",kf="CRM_STAGE_CHANGED",Of=["phone","meeting","video"],Mf=["callback","interested","no_answer","not_interested"],Rf=e=>e===Ws||e===Vs,Nf=e=>e.payload.call?.at??e.createdAt??0;function ue(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function Df(e){return ue(e.contactLocale)??ue(e.companyLocale)??ue(e.organizationLocale)}function xf(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=ue(n),i=ue(r);return o.find(a=>ue(a.locale)===s)??o.find(a=>ue(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const wf=/\{([a-zA-Z0-9_.]+)\}/g;function Hn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function Pf(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Hs(e,t,n){const r=[];return{text:e.replace(wf,(s,i)=>{const a=Hn(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):Pf(a)}),unresolved:r}}function Ys(e,t){if(!e)return!0;const n=Hn(t,e.key);if(e.exists!==void 0){const r=n!=null&&n!==""&&n!==!1;return e.exists?r:!r}return e.equals!==void 0?n===e.equals:!0}function Lf(e,t,n,r,o){const s=[],i=[],a=new Set,c=u=>{const d=Hs(u,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const u of e){if(u.block_id&&!Ys(n?.[u.block_id],t))continue;const d=u.block_id?r?.[u.block_id]:void 0;if(d&&u.block_id){a.add(u.block_id),i.push(...d);continue}switch(u.type){case"heading":case"paragraph":case"quote":i.push({...u,text:c(u.text)});break;case"callout":i.push({...u,...u.title?{title:c(u.title)}:{},text:c(u.text)});break;case"code":i.push(u);break;case"list":i.push({...u,items:u.items.map(l=>({...l.lead?{lead:c(l.lead)}:{},text:c(l.text)}))});break;case"table":i.push({...u,columns:u.columns.map(l=>({...l,label:c(l.label)})),rows:u.rows.map(l=>l.map(c)),...u.caption?{caption:c(u.caption)}:{}});break;case"kpi":i.push({...u,items:u.items.map(l=>({...l,value:c(l.value),label:c(l.label)}))});break;case"letterhead":i.push({...u,fields:u.fields.map(l=>({...l,value:c(l.value)})),...u.recipient?{recipient:u.recipient.map(c)}:{}});break;case"totals":i.push({...u,rows:u.rows.map(l=>({...l,label:c(l.label),amount:c(l.amount)})),...u.taxRows?{taxRows:u.taxRows.map(l=>({...l,label:c(l.label),amount:c(l.amount)}))}:{}});break;case"image":i.push({...u,url:c(u.url),...u.alt?{alt:c(u.alt)}:{}});break;default:i.push(u)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(u=>!a.has(u))}}function zs(e){const t=e?.address,n=[t?.street,t?.houseNumber].filter(Boolean).join(" "),r=[t?.postalCode,t?.city].filter(Boolean).join(" ");return{name:e?.name??"",addressLines:[n,r,t?.country??""].filter(Boolean),footerLines:[e?.footerText??"",e?.kvkNumber?`KvK ${e.kvkNumber}`:"",e?.vatNumber?`Btw ${e.vatNumber}`:"",e?.iban?`IBAN ${e.iban}`:""].filter(Boolean),...e?.logo?{logo:e.logo}:{}}}function Kf(e){return zs({name:e?.billing?.companyName||e?.name||e?.displayName||"",address:e?.address,kvkNumber:e?.billing?.kvkNumber,vatNumber:e?.billing?.vatNumber,iban:e?.houseStyle?.iban,footerText:e?.houseStyle?.footerText,logo:e?.logo})}function Xs(e,t,n,r=Date.now()){const o=n.filter(s=>s.ok).length;return{suite:e,target:t,at:r,score:n.length?o/n.length:1,perCase:[...n]}}function $f(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Uf(e,t,n,r,o=Date.now()){const s=[];for(const i of n)try{s.push(await r(i))}catch(a){s.push({caseId:i.id,ok:!1,note:`beoordeling mislukt: ${a?.message??String(a)}`})}return Xs(e,t,s,o)}const Vt=864e5,lt=e=>Date.parse([e,"T00:00:00Z"].join("")),Ff=e=>new Date(e).toISOString().slice(0,10);function Qs(e,t){const n=lt(t.from),r=lt(t.to)+Vt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let i=new Date(n);;){const a=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);if(a>=r)break;const c=Date.UTC(i.getUTCFullYear(),i.getUTCMonth()+1,1),u=Math.round((Math.min(c,r)-Math.max(a,n))/Vt);o.push({month:Ff(a),share:u/Math.round((c-a)/Vt)}),i=new Date(c)}const s=fe(e,o.map(i=>i.share));return o.map((i,a)=>({month:i.month,cents:s[a]}))}function Zs(e){const t=new Date(lt(e.from)),n=new Date(lt(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Yn=864e5,Mt=e=>new Date(e).toISOString().slice(0,10),dt=e=>Date.parse(`${e}T00:00:00Z`);function pe(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),i=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,i)),Mt(s.getTime())}function zn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let i=r;for(let a=1;a<=t;a++){const c=Math.round(i*n);let u=e.method==="annuity"?Math.round(o)-c:e.method==="linear"?Math.round(r/t):0;a===t&&(u=i),u=Math.min(u,i),i-=u,s.push({sequence:a,dueOn:pe(e.firstDueOn,a-1),interestCents:c,principalCents:u,remainingCents:i})}return s}function Bf(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((u,d)=>u.date.localeCompare(d.date));let i=s.filter(u=>u.date<t).reduce((u,d)=>u+d.cents,0),a=s.findIndex(u=>u.date>=t);a<0&&(a=s.length);let c=0;for(let u=dt(t);u<=dt(n);u+=Yn){const d=Mt(u);for(;a<s.length&&(s[a]?.date??"")<=d;)i+=s[a]?.cents??0,a++;c+=i*o}return Math.round(c)}function jf(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),i=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,a=[];let c=`${o}-${String(i).padStart(2,"0")}-01`;for(let u=1;c<=t&&u<400;u++){const d=pe(c,r);a.push({sequence:u,from:c<e?e:c,to:Mt(dt(d)-Yn)}),c=d}return a}const Js=5e7,qf=["director","group_company","participation","other_company"],Gf=e=>e?.relation&&qf.includes(e.relation)?e.relation:"director";function Wf(e,t=Js){return{over:e>t,ratio:Math.max(0,e)/t}}function Vf(e,t){const r=e.terms.kind==="loan_received"?1:-1;return zn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function ei(e){return{...e.counterpartyCompanyId?{counterpartyCompanyId:e.counterpartyCompanyId}:{},...ve(e.dimensions)}}function ti(e){return Mt(dt(pe(`${e.slice(0,7)}-01`,1))-Yn)}function Xn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function ni(e,t,n,r,o,s,i=1){return t.map((a,c)=>({cents:a,sequence:i+c,dueOn:ti(pe(n,c))})).filter(a=>a.dueOn<=r&&a.cents!==0).map(a=>({financingItemId:e,sequence:a.sequence,dueOn:a.dueOn,lines:o(a.cents,a.sequence),expectedBankCents:0,settlesVia:"direct",label:s(a.sequence)}))}function Qn(e){if(e.restart)return e.restart;if(e.opening)return{fromMonth:pe(`${e.opening.on.slice(0,7)}-01`,1),bookValueCents:e.costCents-e.opening.accumulatedCents,fromSequence:e.opening.monthsDone+1}}const zr=600;function ri(e){const t=e.method??"linear",n=Qn(e),r=n?.bookValueCents??e.costCents,o=r-e.residualCents;if(t==="none"||o<=0)return[];if(t==="linear"){const u=e.lifeMonths-((n?.fromSequence??1)-1);return Xn(o,Math.max(1,u))}const s=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(s>0&&s<1))return[];const i=1-(1-s)**(1/12),a=[];let c=r;for(;c>e.residualCents&&a.length<zr;){const u=Math.max(1,Math.round(c*i)),d=c-u<=e.residualCents||a.length===zr-1;a.push(d?c-e.residualCents:u),c-=a[a.length-1]??0}return a}function Hf(e,t){const n=e.terms,r=ei(e);if(n.disposal)return[];const o=ri(n),s=Qn(n),i=n.method==="declining"?(s?.fromSequence??1)-1+o.length:n.lifeMonths;return ni(e.id,o,s?.fromMonth??n.acquiredOn,t,(a,c)=>[{...r,accountId:n.depreciationAccountId,amountCents:a,description:e.name},{...r,accountId:n.accumulatedAccountId,amountCents:-a,subAccountId:e.id,description:`Afschrijving ${c}/${i}`}],a=>`Afschrijving ${a}/${i}`,s?.fromSequence??1)}function Yf(e,t){const n=e.terms,r=[];t.movementsCents&&r.push({accountId:n.accumulatedAccountId,amountCents:-t.movementsCents,subAccountId:e.id,description:e.name}),t.proceedsCents&&r.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:e.name}),r.push({accountId:e.ledgerAccountId,amountCents:-n.costCents,subAccountId:e.id,description:e.name});const o=r.reduce((s,i)=>s+i.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function zf(e,t){const n=e.terms,r=ei(e),o=n.direction==="expense"?1:-1;return ni(e.id,n.period?Qs(n.totalCents,n.period).map(s=>s.cents):Xn(n.totalCents,n.months),n.firstMonth,t,(s,i)=>[{...r,accountId:n.resultAccountId,amountCents:o*s,description:e.name},{...r,accountId:e.ledgerAccountId,amountCents:-o*s,subAccountId:e.id,description:`${e.name} ${i}/${n.months}`}],s=>`${s}/${n.months}`)}function Xf(e){return e.kind==="fixed_asset"?e.costCents-(e.opening?.accumulatedCents??0):e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Qf(e,t){const n=pe(t,12);return zn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Zf(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*t.quantity/r),s=o(n.costCents),i=o(n.residualCents),a=o(-t.movementsCents),c=[],u=`${e.name} (${t.quantity}/${r})`;a&&c.push({accountId:n.accumulatedAccountId,amountCents:a,subAccountId:e.id,description:u}),t.proceedsCents&&c.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:u}),c.push({accountId:e.ledgerAccountId,amountCents:-s,description:u});const d=c.reduce((l,p)=>l+p.amountCents,0);return d&&c.push({accountId:t.disposalAccountId,amountCents:-d,description:u}),{lines:c,costCents:s,residualCents:i}}const oi={NL:45e3},Jf=(e,t)=>t??oi[(e??"NL").toUpperCase()],ep=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}];function si(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function tp(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}const ii=e=>e.kind==="product"&&e.quantity>0&&(!e.act||e.unitPriceCents>0);function np(e){return e.every(t=>!ii(t)||(t.billedQty??0)>=t.quantity)?"full":"open"}function ai(e,t,n,r=new Map){const o=[];for(const s of e.lines){const i=t.find(l=>l.id===s.poLineId),a=si(s.poLineId,n);(!i||e.movement==="in"&&a+s.quantity>i.quantity)&&o.push({code:"receipt_over_ordered",poLineId:s.poLineId}),e.movement==="return"&&s.quantity>a&&o.push({code:"receipt_return_over_received",poLineId:s.poLineId});const c=Jn(i??{},s.quantity),u=e.movement==="in"&&i?.productId&&r.get(i.productId);s.serials.length&&s.serials.length!==c?o.push({code:"receipt_serials_count",poLineId:s.poLineId}):!s.serials.length&&u==="serial"&&o.push({code:"receipt_serials_required",poLineId:s.poLineId});const d=(s.batches??[]).reduce((l,p)=>l+p.quantity,0);s.batches?.length&&d!==c?o.push({code:"receipt_batches_count",poLineId:s.poLineId}):!s.batches?.length&&u==="batch"&&o.push({code:"receipt_batches_required",poLineId:s.poLineId})}return o}function rp(e,t){return e.flatMap(n=>{const r=t.find(o=>o.id===n.poLineId)?.productId;return r?n.serials.map(o=>[r,"#",o].join("")):[]})}function op(e,t){const n=new Map;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.serialKeys??[])n.set(s,(n.get(s)??0)+o)}return e.filter(r=>(n.get(r)??0)>0)}function sp(e){return e.map(t=>({line:t,batches:ip(t.batches)})).map(({line:t,batches:n})=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(r=>String(r).trim()).filter(Boolean))],...n.length?{batches:n}:{},...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function ip(e){return(Array.isArray(e)?e:[]).flatMap(t=>{const n=String(t?.code??"").trim(),r=Number(t?.quantity)||0,o=Number(t?.expiresAt)||0;return n&&r>0?[{code:n,quantity:r,...o?{expiresAt:o}:{}}]:[]})}function Zn(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function ci(e,t){const n=e.filter(r=>Zn(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Jn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function ap(e,t,n){const r=Math.max(Math.ceil(e/Math.max(1,t??1)),n?.minQty??0),o=n?.lotSize&&n.lotSize>1?n.lotSize:1;return Math.ceil(r/o)*o}function ui(e){return{cents:U(e.costCents/Jn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function li(e){const t=ui(e);return t.per?St(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const me=["pending","active","suspended","terminating"],le=(e,t)=>[e,t].join(":"),di=e=>[...new Set((e??[]).map(t=>t.itemId))],cp=(e,t)=>t?[e.productId,"#",e.serial??""].join(""):e.id,up=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function de(e){if(up.test(e))return e;let t=1779033703,n=3144134277,r=1013904242,o=2773480762;for(let a=0;a<e.length;a++){const c=e.charCodeAt(a);t=n^Math.imul(t^c,597399067),n=r^Math.imul(n^c,2869860233),r=o^Math.imul(r^c,951274213),o=t^Math.imul(o^c,2716044179)}t=Math.imul(r^t>>>18,597399067),n=Math.imul(o^n>>>22,2869860233),r=Math.imul(t^r>>>17,951274213),o=Math.imul(n^o>>>19,2716044179),t^=n^r^o,n^=t,r^=t,o^=t;const s=[t,n,r,o].map(a=>(a>>>0).toString(16).padStart(8,"0")).join(""),i=(Number.parseInt(s.charAt(16),16)&3|8).toString(16);return[s.slice(0,8),s.slice(8,12),["5",s.slice(13,16)].join(""),[i,s.slice(17,20)].join(""),s.slice(20,32)].join("-")}function ft(e){return e.kind==="sale"?de(["sale:",e.agreementId,"#",e.seriesId].join("")):e.kind==="resource"?de(["resource:",e.itemId,"#",e.role].join("")):de(["order:",e.orderId,"#",e.lineId,e.serial?`#${e.serial}`:""].join(""))}const er=["draft","scheduled","queued","waiting"],Rt=["pending","unknown","inquiring"],fi=(e,t,n)=>[e,t,n].join(":");function pi(e,t,n,r,o){const s=e.after.filter(c=>o.find(u=>u.id===c)?.state!=="approved");if(s.length)return{ok:!1,reason:"after",requestIds:s};const i=o.find(c=>c.id!==e.id&&c.itemId===e.itemId&&Rt.includes(c.state));if(i)return{ok:!1,reason:"busy",requestId:i.id};const a=[];for(const c of n.filter(u=>u.for.includes(e.action))){const u=(t.requires??[]).filter(d=>d.role===c.role);if(u.length<c.min)return{ok:!1,reason:"missing_role",role:c.role};if(u.length>c.max)return{ok:!1,reason:"too_many",role:c.role};for(const d of u){const l=r.get(d.itemId);if(!l||l.status!=="active")return{ok:!1,reason:"not_active",role:c.role,itemId:d.itemId};const p=l.provides?.find(g=>g.kind===c.kind);if(!p)return{ok:!1,reason:"wrong_kind",role:c.role,itemId:d.itemId};a.push({role:c.role,itemId:l.id,resource:p})}}return{ok:!0,inputs:a}}function lp(e,t,n,r,o){if(!(r!=="activation"||!e.sale||e.activatedAt!=null))return t!=="active"&&n==="active"?o:void 0}function Se(e,t){return[...t].filter(n=>n.id!==e&&me.includes(n.status)&&(n.requires??[]).some(r=>r.itemId===e))}function dp(e,t){const n=[...t.values()],r=[],o=[];for(const s of e.requires??[]){const i=t.get(s.itemId);!i||!me.includes(i.status)||(i.keep?o.push({itemId:i.id,why:"kept"}):Se(i.id,n).some(a=>a.id!==e.id)?o.push({itemId:i.id,why:"in_use"}):r.push(i.id))}return{release:r,keep:o,impact:Se(e.id,n).map(s=>s.id)}}function fp(e,t,n){const r=Se(e.id,t).map(o=>o.id);return r.length?{ok:!1,reason:"in_use",users:r}:n&&e.keep?{ok:!1,reason:"kept"}:{ok:!0}}function mi(e,t,n){const r=[],o=e.externalKey&&[...n.values()].find(i=>i.id!==e.id&&i.externalKey===e.externalKey&&me.includes(i.status));o&&e.externalKey&&r.push({code:"duplicate_key",externalKey:e.externalKey,itemId:o.id});for(const i of e.requires??[]){const a=n.get(i.itemId);if(!a){r.push({code:"unknown_item",itemId:i.itemId});continue}a.businessEntityId!==e.businessEntityId&&r.push({code:"wrong_entity",itemId:a.id});const c=t.find(u=>u.role===i.role);c&&!(a.provides??[]).some(u=>u.kind===c.kind)&&a.status!=="pending"&&r.push({code:"wrong_kind",role:i.role,itemId:a.id})}const s=pp(e,n);return s&&r.push({code:"cycle",path:s}),r}function pp(e,t){const n=(r,o)=>{for(const s of r.requires??[]){if(s.itemId===e.id)return[...o,s.itemId];if(o.includes(s.itemId))continue;const i=t.get(s.itemId),a=i&&n(i,[...o,s.itemId]);if(a)return a}};return n(e,[e.id])}function gi(e,t){const n=new Set([e.id]),r=[],o=[...t.values()],s=i=>{for(const a of i.requires??[]){if(n.has(a.itemId))continue;n.add(a.itemId);const c=t.get(a.itemId);c&&(r.push({itemId:c.id,role:a.role,supplied:!!c.supply,shared:[...mp(c.id,o)].some(u=>u!==e.id)}),s(c))}};return s(e),r}function mp(e,t){const n=new Set,r=new Set([e]),o=s=>{for(const i of Se(s,t))r.has(i.id)||(r.add(i.id),i.sale&&n.add(i.id),o(i.id))};return o(e),n}function hi(e,t,n){const r=e.reported?.refundable;if(!r)return{now:!0};const o=r.filter(s=>s.until>n).reduce((s,i)=>s+i.quantity,0);return e.quantity-t<=o?{now:!0}:{now:!1,...e.reported?.termEndsAt?{at:e.reported.termEndsAt}:{}}}const gp=(e,t)=>e.provides?.find(n=>n.kind===t),hp=["scheduled","queued","waiting"],Xr=[1,5,15,60],yp=(e,t)=>t+Xr[Math.min(Math.max(e,1),Xr.length)-1]*6e4;function bp(e){if((e.request.submitAt??0)>e.now)return{state:"scheduled"};const t=pi(e.request,e.item,e.needs,e.items,e.requests);return t.ok?{state:"send",inputs:t.inputs}:{state:t.reason==="busy"?"queued":"waiting",why:t}}function _p(e){const{request:t,item:n}=e,r=(n.requires??[]).find(s=>s.role==="account"),o=r?e.items.get(r.itemId)?.at:void 0;return{requestId:t.requestId,offer:t.offer,action:t.action,quantity:t.quantity,...t.toProductId?{toProductId:t.toProductId}:{},...t.supplier?.vendorSku?{vendorSku:t.supplier.vendorSku}:{},...t.supplier?.termMonths?{termMonths:t.supplier.termMonths}:{},params:t.params,...e.inputs.length?{inputs:e.inputs}:{},...n.at?.externalRef?{externalRef:n.at.externalRef}:{},...o?{parent:{...o.externalRef?{externalRef:o.externalRef}:{},...o.fulfillment?{fulfillment:o.fulfillment}:{}}}:{},customer:{companyId:n.customerCompanyId},...t.effectiveAt?{effectiveAt:t.effectiveAt}:{},at:e.now}}function Ip(e,t){const n=t?.recovery?.[e];return n==="idempotent"?"resend":n==="lookup_by_ref"?"status":n==="lookup_by_listing"?"listing":"person"}function Ep(e,t,n,r){if(n.state!=="approved")return{};const o={...e.at??{},app:t.app,offer:t.offer,...n.externalRef?{externalRef:n.externalRef}:{},...n.fulfillment?{fulfillment:{...e.at?.fulfillment??{},...n.fulfillment}}:{}},s=n.quantity??t.quantity,i={at:o,...o.externalRef?{externalKey:le(o.app,o.externalRef)}:{},...n.resources?{provides:n.resources}:{},updatedAt:r};switch(t.action){case"purchase":return{...i,status:"active",quantity:s,...e.activatedAt==null?{activatedAt:r}:{}};case"change":return{...i,quantity:s};case"convert":return{...i,productId:t.toProductId??e.productId,quantity:s};case"suspend":return{...i,status:"suspended"};case"resume":return{...i,status:"active"};case"cancel":{const a=t.effectiveAt??r;return{...i,status:a>r?"terminating":"terminated",endedAt:a}}case"renew":return i}}function Sp(e,t,n){const r=t.find(i=>i.requestRef===e.requestId);if(r)return{state:"found",subscription:r};const o=e.sent?.quantity??e.quantity,s=t.filter(i=>i.offer===e.offer&&i.status!=="ended"&&i.quantity===o&&!n.has(i.externalRef));return s.length===1?{state:"found",subscription:s[0]}:s.length?{state:"ambiguous",count:s.length,candidates:s}:{state:"none"}}function yi(e,t){return{quantity:e.quantity,status:e.status,...e.termEndsAt?{termEndsAt:e.termEndsAt}:{},...e.autoRenew!=null?{autoRenew:e.autoRenew}:{},...e.refundable?{refundable:e.refundable}:{},...e.scheduled?{scheduled:e.scheduled}:{},at:t}}const yn=e=>e.seriesId??e.id;function Ap(e,t,n){return t.find(r=>{const o=V(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>V(e,r).from>n).sort((r,o)=>V(e,r).from-V(e,o).from)[0]??t[t.length-1]}function bi(e){const t=new Map;for(const n of e)t.set(yn(n),[...t.get(yn(n))??[],n]);return t}const vp=864e5;function Cp(e,t,n,r){if(e.reported?.refundable||!n)return hi(e,t,r);const o=n.commitment;if(!o||o.termMonths<1)return{now:!0};const s=n.changeWindowDays??0;return s>0&&r<$n(n.start,o,r)+s*vp?{now:!0}:{now:!1,at:re(n.start,o,r)}}function Tp(e,t){const n=t.filter(r=>Rt.includes(r.state)).sort((r,o)=>o.updatedAt-r.updatedAt)[0];if(n)return{productId:n.toProductId??n.productId,quantity:n.action==="cancel"?0:n.quantity};if(!(!e||e.status==="pending"))return{productId:e.productId,quantity:me.includes(e.status)?e.quantity:0}}const kp=new Set(["purchase","change","convert","cancel"]),Op=(e,t)=>e.action===t.action&&e.productId===t.productId&&e.quantity===t.quantity&&(e.toProductId??"")===(t.toProductId??"")&&(e.effectiveAt??0)===(t.effectiveAt??0);function Mp(e){const{agreement:t,item:n,now:r,supply:o}=e,s=(bi(t.lines).get(e.seriesId)??[]).map(I=>({line:I,term:V(t,I)})).sort((I,v)=>I.term.from-v.term.from);if(!s.length)return{supersede:[]};const i=e.requests.filter(I=>I.itemId===n?.id&&I.state!=="superseded"),a=i.filter(I=>er.includes(I.state)&&kp.has(I.action)),c=Tp(n,i),u=s.findIndex(I=>I.term.from<=r&&(I.term.to==null||I.term.to>r)),d=u>=0?s[u]:void 0,l=s.find(I=>I.term.from>r),p=s[s.length-1],g=t.status==="ended"||!l&&(d==null||p.term.to!=null&&p.term.to<=r),f=I=>I&&I.line.quantity.from==="fixed"?I:void 0;let m,_;const h=(I,v)=>{const T=v!=null&&v>r?v:void 0,M=I.line.quantity.from==="fixed"?I.line.quantity.value:0;if(!c)return{action:"purchase",productId:I.line.productId,quantity:M,...T?{effectiveAt:T}:{}};if(c.productId!==I.line.productId)return{action:"convert",productId:c.productId,toProductId:I.line.productId,quantity:M,previousQuantity:c.quantity,...T?{effectiveAt:T}:{}};if(c.quantity!==M){if(M<c.quantity&&n){const E=Cp(n,M,o,r);if(!E.now&&E.at==null){_={reason:"decrease_window_unknown",quantity:M};return}const R=E.now?T:Math.max(E.at??0,T??0);return{action:"change",productId:c.productId,quantity:M,previousQuantity:c.quantity,...R?{effectiveAt:R,submitAt:R}:{},...E.now?{}:{notice:{atRenewal:!0}}}}return{action:"change",productId:c.productId,quantity:M,previousQuantity:c.quantity,...T?{effectiveAt:T,submitAt:T}:{}}}},y=I=>{if(!o)return I?{effectiveAt:I}:{};const v=I??r,T=ts(o.start,o.commitment,v,r),M={...T.deadline!=null?{deadline:T.deadline}:{},...T.nextTerm?{nextTerm:!0}:{},...T.endsAt>v?{runsOnUntil:T.endsAt}:{}};return{effectiveAt:T.endsAt,...Object.keys(M).length?{notice:M}:{}}};if(g)c&&c.quantity>0&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)});else{const I=f(d);if(m=I?h(I,I.term.from):void 0,!m&&!_){const v=f(l);v&&(c||!I)?m=h(v,v.term.from):!v&&c&&c.quantity>0&&p.term.to!=null&&d===p&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)})}}if(_)return{supersede:[],blocked:_};if(!m)return{supersede:a.map(I=>I.id)};const b=a.find(I=>Op(m,I));return{...b?{}:{target:m},supersede:a.filter(I=>I!==b).map(I=>I.id)}}function bn(e){const t=fi(e.item.id,e.target.action,e.revision);return{id:de(t),organizationId:e.item.organizationId,businessEntityId:e.item.businessEntityId,itemId:e.item.id,requestId:t,...e.target,app:e.at.app,offer:e.at.offer,params:{...e.answers?.params},...e.answers?.configurationId?{configurationId:e.answers.configurationId}:{},...e.answers?.termMonths?{supplier:{termMonths:e.answers.termMonths}}:{},after:e.after??[],basedOn:{source:e.item.id,revision:e.revision},state:"draft",requestedBy:e.requestedBy,attempts:0,updatedAt:e.now}}const _n=new Set(["phone_number","device"]),_i=e=>!!e&&((e.provides??[]).some(t=>_n.has(t.kind))||(e.needs??[]).some(t=>t.for.includes("purchase")&&_n.has(t.kind)));function Ii(e){return e?e.needs?.length?e.needs:e.requires?[{role:"account",kind:"account",min:1,max:1,for:["purchase","change"]}]:[]:[]}function Rp(e){const{item:t,now:n}=e,r=[...e.items.values()],o=[...t.requires??[]],s=[],i=[],a=[],c=[],u=(d,l,p,g)=>bn({item:d,at:l,target:p,after:g,revision:e.revision,requestedBy:e.requestedBy,now:n});for(const d of e.needs.filter(l=>l.for.includes(e.target.action))){let l=o.filter(g=>g.role===d.role).length;const p=e.sourceFor(d);for(;l<d.min;){if(!p){a.push(d.role);break}const g=r.find(f=>f.customerCompanyId===t.customerCompanyId&&me.includes(f.status)&&f.at?.app===p.app&&f.at?.offer===p.offer&&!o.some(m=>m.itemId===f.id)&&(!_n.has(d.kind)||Se(f.id,r).length===0));if(g){if(o.push({role:d.role,itemId:g.id}),g.status==="pending"){const f=e.requests.find(_=>_.itemId===g.id&&_.action==="purchase"&&_.state!=="superseded"),m=f??u(g,{app:p.app,offer:p.offer},{action:"purchase",productId:g.productId,quantity:1},[]);f||i.push(m),c.push(m.id)}}else{const f=ft({kind:"resource",itemId:t.id,role:l?`${d.role}.${l}`:d.role}),m={id:f,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:t.customerCompanyId,productId:p.productId,status:"pending",quantity:1,at:{app:p.app,offer:p.offer},since:n,updatedAt:n};s.push(m),o.push({role:d.role,itemId:f});const _=u(m,p,{action:"purchase",productId:p.productId,quantity:1},[]);i.push(_),c.push(_.id)}l++}}return i.push(bn({item:t,at:{app:e.app,offer:e.offer},target:e.target,after:c,...e.answers?{answers:e.answers}:{},revision:e.revision,requestedBy:e.requestedBy,now:n})),{requires:o,newItems:s,requests:i,unsourced:a}}const Np=e=>["adopt",e].join(":"),Dp=e=>e.startsWith("adopt:"),Qr=e=>de(["adopted:",e].join("")),Zr=e=>e.level==="account"?0:e.under||e.uses?.length?2:1;function xp(e,t){const n=t.items.filter(f=>me.includes(f.status)),r=new Map(n.flatMap(f=>f.externalKey?[[f.externalKey,f]]:[])),o=new Map(n.map(f=>[f.id,f])),s=new Map,i=new Set,a=new Set,c=new Set(e.flatMap(f=>(f.uses??[]).map(m=>[m.kind,m.value].join("|")))),u=t.offers.filter(f=>f.businessEntityId===t.businessEntityId),d=f=>{const m=u.filter(h=>h.provider?.app===f.app&&h.provider.offer===f.offer),_=u.filter(h=>!!h.vendorSku&&h.vendorSku===f.offer);return ci(m.length?m:_,t.now)},l=f=>{const m=d(f),_=m?.provider?.app??f.app,h=le(_,f.externalRef),y=r.get(h);if(y)return{key:h,row:f,state:"known",knownItemId:y.id,problems:[]};if(i.has(h)){const O=s.get(h),K={code:"duplicate_key",externalKey:h,itemId:O?.id??h};return{key:h,row:f,state:"blocked",problems:[K]}}if(i.add(h),f.status==="ended")return{key:h,row:f,state:"ended",problems:[]};const b=le(f.app,f.account.ref),I=t.customers.get(b)??[],v=f.customerCompanyId??t.chosen?.[b]??(I.length===1?I[0].id:void 0),T={...v?{companyId:v}:{},create:!v&&I.length===0,candidates:I};if(!m)return{key:h,row:f,state:"no_product",customer:T,problems:[]};const M=m.provider?t.described.get([m.provider.app,m.provider.offer].join(":")):void 0,E=Ii(M),R=(M?.provides??[]).map(O=>({kind:O.kind,value:f.externalRef})),F=R.some(O=>c.has([O.kind,O.value].join("|"))),k=(v?t.agreements.get(v)??[]:[]).filter(O=>O.status!=="ended").flatMap(O=>O.lines.filter(K=>K.productId===m.productId).map(K=>({agreementId:O.id,seriesId:K.seriesId}))).filter((O,K,Z)=>Z.findIndex(ge=>ge.seriesId===O.seriesId)===K).find(O=>{const K=ft({kind:"sale",...O});return!a.has(K)&&!o.get(K)?.externalKey}),P=F?void 0:t.drafted?.get(h)??k??{draft:!0},B=P&&"agreementId"in P?ft({kind:"sale",...P}):Qr(h),z=O=>r.get(O)??s.get(O),W=[];if(f.under){const O=z(le(_,f.under)),K=E.find(Z=>O?.provides?.some(ge=>ge.kind===Z.kind))?.role??E.find(Z=>Z.kind==="account"||Z.kind==="tenant")?.role??"account";W.push({role:K,itemId:O?.id??Qr(le(_,f.under))})}for(const O of f.uses??[]){const K=[...n,...s.values()].find(Z=>Z.provides?.some(ge=>ge.kind===O.kind&&ge.value===O.value));W.push({role:E.find(Z=>Z.kind===O.kind)?.role??O.kind,itemId:K?.id??de(["resource:",O.kind,":",O.value].join(""))})}const te=f.reported?.status??f.status??"active",L={id:B,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:v??"",productId:m.productId,status:te==="suspended"?"suspended":"active",quantity:f.quantity,...W.length?{requires:W,requiresIds:di(W)}:{},...R.length?{provides:R}:{},at:{app:_,...m.provider?{offer:m.provider.offer}:{},externalRef:f.externalRef,...f.fulfillment?{fulfillment:f.fulfillment}:{}},externalKey:h,...P&&"agreementId"in P?{sale:P}:{},activatedAt:f.since??t.now,reported:yi(f.reported??{externalRef:f.externalRef,offer:f.offer,quantity:f.quantity,status:te==="suspended"?"suspended":"active",...f.termEndsAt?{termEndsAt:f.termEndsAt}:{}},t.now),since:f.since??t.now,updatedAt:t.now},Y=new Map([...n,...s.values()].map(O=>[O.id,O]));Y.set(L.id,L);const oe=mi(L,E,Y);_i(M)&&f.quantity>1&&oe.push({code:"one_unit_per_item",quantity:f.quantity});for(const O of E.filter(K=>K.min>0&&K.for.includes("purchase")))W.some(K=>K.role===O.role)||oe.push({code:"requires_missing",role:O.role});const $e=oe.length?"blocked":!v&&I.length>1?"choose_customer":"ready";return $e==="ready"&&(s.set(h,L),P&&"agreementId"in P&&a.add(L.id)),{key:h,row:f,state:$e,customer:T,offerId:m.id,productId:m.productId,...P?{sale:P}:{},item:L,problems:oe}},p=new Array(e.length),g=e.map((f,m)=>({row:f,index:m}));g.sort((f,m)=>Zr(f.row)-Zr(m.row)||f.index-m.index);for(const{row:f,index:m}of g)p[m]=l(f);return p}function wp(e){const t=e.filter(n=>n.state==="ready");return{items:t.length,draftLines:t.filter(n=>n.sale&&"draft"in n.sale).length,linked:t.filter(n=>n.sale&&"agreementId"in n.sale).length,contractLines:t.length,newCustomers:new Set(t.filter(n=>n.customer?.create).map(n=>le(n.row.app,n.row.account.ref))).size,known:e.filter(n=>n.state==="known").length,choose:e.filter(n=>n.state==="choose_customer").length,noProduct:e.filter(n=>n.state==="no_product").length,blocked:e.filter(n=>n.state==="blocked").length}}const Pp=(e,t)=>({app:e,externalRef:t.externalRef,offer:t.offer,level:"account",quantity:1,account:{ref:t.externalRef,name:t.name,...t.kvkNumber?{kvkNumber:t.kvkNumber}:{},...t.domain?{domain:t.domain}:{}},...t.fulfillment?{fulfillment:t.fulfillment}:{},...t.since?{since:t.since}:{}}),Lp=(e,t,n,r)=>({app:e,externalRef:n.externalRef,offer:n.offer,level:"item",quantity:n.quantity,account:t,...r?{customerCompanyId:r}:{},under:n.under??t.ref,...n.uses?.length?{uses:n.uses}:{},...n.termEndsAt?{termEndsAt:n.termEndsAt}:{},status:n.status,reported:n}),tr=["customer","product","quantity","externalRef","since","termEndsAt","kvkNumber","domain","under"],Kp={customer:["klant","customer","bedrijf","company","relatie","account"],product:["product","artikel","artikelnummer","sku","licentie","license","offer"],quantity:["aantal","quantity","qty","seats","stuks"],externalRef:["externe referentie","referentie","reference","external ref","id","serial"],since:["ingangsdatum","start","startdatum","since","start date"],termEndsAt:["termijneinde","einddatum","end","term end","renewal","verlenging"],kvkNumber:["kvk","kvk-nummer","coc"],domain:["domein","domain"],under:["onder","under","parent","hoofdaccount"]};function $p(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of tr){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Kp[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}function In(e){const t=e.trim(),n=/^(\d{4})-(\d{1,2})-(\d{1,2})/.exec(t),r=/^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/.exec(t),[o,s,i]=n?[n[1],n[2],n[3]]:r?[r[3],r[2],r[1]]:[];if(!o)return;const a=Date.UTC(Number(o),Number(s)-1,Number(i));return Number.isFinite(a)&&new Date(a).getUTCDate()===Number(i)?a:void 0}function Up(e,t,n){const r=(e[0]??[]).map(a=>a.trim().toLowerCase()),o={};for(const a of tr){const c=t[a]?.trim().toLowerCase(),u=c?r.indexOf(c):-1;u>=0&&(o[a]=u)}const s=[],i=[];return o.customer===void 0||o.product===void 0||o.externalRef===void 0?{rows:s,errors:[{line:1,message:"adopt_columns_missing"}]}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=b=>{const I=o[b];return I===void 0?"":(a[I]??"").trim()},l=d("customer"),p=d("product"),g=d("externalRef");if(!l||!p||!g){i.push({line:u,message:"adopt_row_incomplete"});return}const f=d("quantity")?Number(d("quantity").replace(",",".")):1;if(!Number.isInteger(f)||f<1){i.push({line:u,message:"adopt_row_quantity"});return}const m=d("since")?In(d("since")):void 0,_=d("termEndsAt")?In(d("termEndsAt")):void 0;if(d("since")&&m===void 0||d("termEndsAt")&&_===void 0){i.push({line:u,message:"adopt_row_date"});return}const h=d("kvkNumber"),y=d("domain").toLowerCase();s.push({app:n,externalRef:g,offer:p,level:"item",quantity:f,account:{ref:(h||y||l).toLowerCase(),name:l,...h?{kvkNumber:h}:{},...y?{domain:y}:{}},...d("under")?{under:d("under")}:{},...m!==void 0?{since:m}:{},..._!==void 0?{termEndsAt:_}:{}})}),{rows:s,errors:i})}const Jr=["quote","order"];function Ei(e,t){const n=Jr.slice(0,Jr.indexOf(t)+1);return e.requirements.filter(r=>!r.met&&n.includes(r.before))}function Fp(e,t,n){const r=e.preparation;return r?r.expiresAt!==void 0&&r.expiresAt<=n?"expired":Ei(r,t).length?"open":"ready":"open"}function nr(e){return e.requirements.filter(t=>t.kind==="answer")}function Si(e,t){return t[e.key]??e.value}function Ai(e,t){let n;const r=[];for(const o of nr(e)){if(!o.line)continue;const s=Si(o,t);if(s===void 0||s==="")continue;const i=Bp(o,s);i&&(o.line==="main"?n=i:r.push(i))}return{main:n,addons:r}}function Bp(e,t){if(e.type==="select"){const r=e.options?.find(d=>d.key===t);if(!r?.sku)return;const{sku:o,label:s,costCents:i,recurring:a,commitment:c,billedEvery:u}=r;return{key:e.key,label:s,sku:o,quantity:1,costCents:i,recurring:a,commitment:c,billedEvery:u}}if(!e.sku)return;const n=e.type==="boolean"?t==="true"?1:0:Number(t);if(!(!Number.isFinite(n)||n<=0))return{key:e.key,label:e.label,sku:e.sku,quantity:n,costCents:e.costCents,recurring:e.recurring}}function jp(e,t,n){const r=Ai(t,n).main;return r?{ref:{...e,sku:r.sku},commitment:r.commitment,billedEvery:r.billedEvery}:{ref:e}}function qp(e,t){const n={};for(const r of nr(e)){const o=Si(r,t);o!==void 0&&o!==""&&(n[r.key]=o)}return n}function Gp(e,t,n,r={}){const o=nr(e).filter(i=>i.perUnit).map(i=>i.key),s=Object.fromEntries(Object.entries(t).filter(([i])=>!o.includes(i)));return Array.from({length:n},(i,a)=>{const c={...s};for(const u of o){const d=r[u]?.[a];d!==void 0&&d!==""&&(c[u]=d)}return c})}const Wp=["active","suspended","terminating"];function Vp(e){const t=new Map(e.items.map(n=>[n.id,n]));return e.items.filter(n=>n.sale&&n.status!=="terminated").map(n=>{const r=Wp.includes(n.status)?n.quantity:0,o=e.agreed.get(n.id)??null,s=n.reported?.quantity,i=e.bought.get(n.id),a=e.billed.get(n.id),c=e.requests.some(d=>d.itemId===n.id&&(Rt.includes(d.state)||er.includes(d.state))),u=[];return s!=null&&s!==r&&u.push({kind:"supplier_differs",reported:s,active:r}),o!=null&&o!==r&&u.push({kind:"agreed_differs",agreed:o,active:r,busy:c}),i!=null&&i!==r&&u.push({kind:"not_bought",bought:i,active:r}),a!=null&&o!=null&&a!==o&&u.push({kind:"not_billed",billed:a,agreed:o}),{itemId:n.id,productId:n.productId,customerCompanyId:n.customerCompanyId,status:n.status,...n.serial?{serial:n.serial}:{},agreed:o,active:r,...s!=null?{reported:s}:{},...i!=null?{bought:i}:{},...a!=null?{billed:a}:{},signals:u,resources:gi(n,t).map(d=>({...d,productId:t.get(d.itemId)?.productId??""}))}})}const vi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Hp="purchase_order",Nt=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["cancelled"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:[],credits:"invoice"}],Ci=[...Nt,...vi],rr=["quote","order","invoice","credit_note"];function Yp(){const e=new Map;for(const t of Nt)rr.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function G(e){return Ci.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const zp={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function Ti(e,t){return G(e).transitions[t]??[]}function Xp(e,t,n){return Ti(e,t).includes(n)}function or(e){return e.issuedAt!=null}const Qp=["status","fileRef","number","externalIds","postedAt","dunning","settlement","settled","overdueSince","issuedPaper","updatedAt"];function Zp(e){return or(e)&&G(e.kindKey).numbered&&!e.number}const Jp=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","deliveryAddressId","invoiceTo","lines"],em=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId","deliveryAddressId","invoiceTo"];function tm(e,t){if(!rr.includes(t)||!G(e.kindKey).convertsTo.includes(t))return!1;const n=G(t);return!n.credits||n.credits===e.kindKey&&or(e)}function sr(e,t){const n=G(t).signFlip!==G(e.kindKey).signFlip,r=e.kindKey!==t,o=e.lines.map(({timeEntryIds:s,agreementLineId:i,sourceLine:a,...c})=>({...c,...r&&c.kind==="product"?{sourceLine:{transactionId:e.id,lineId:c.id}}:{},quantity:n?-c.quantity:c.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,...e.invoiceTo?.companyId?{invoiceTo:e.invoiceTo}:{},billingAddressId:e.billingAddressId,deliveryAddressId:e.deliveryAddressId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:o,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function nm(e){return{...sr(e,e.kindKey),sourceTransactionId:e.sourceTransactionId,previousVersionId:e.id,version:e.version+1,lines:e.lines.map(({timeEntryIds:n,...r})=>({...r})),totals:e.totals}}function rm(e,t,n){const r=new Map;let o=Math.max(0,t);for(const s of[...e].filter(i=>i.state==="active").sort((i,a)=>i.createdAt-a.createdAt)){const i=Math.min(s.quantity,o);o-=i,r.set(s.id,{received:i,available:Math.max(0,i-(n.get(s.id)??0))})}return r}function om(e,t,n,r){const o=t.filter(u=>u.fulfilmentOrderId===e.id&&u.state==="active"),s=u=>u.reduce((d,l)=>d+l.quantity,0),i=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction!=="return"),a=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction==="return"),c=o.reduce((u,d)=>u+(r.get(d.id)?.received??0),0);return{ordered:e.quantity,allocated:s(o),onOrder:s(o)-c,available:o.reduce((u,d)=>u+(r.get(d.id)?.available??0),0),delivered:s(i),returned:s(a)}}const eo=e=>[e.deliverTo.kind,e.deliverTo.companyId??"",e.deliverTo.addressId??""].join("|"),sm=(e,t)=>!!e.offerId&&e.offerId===t.offerId&&e.businessEntityId===t.businessEntityId&&eo(e)===eo(t);function ki(e,t,n){const r=new Map;for(const s of n)for(const i of s.lines)i.sourceLine?.transactionId===e.id&&r.set([s.id,i.id].join("#"),i.sourceLine.lineId);const o=new Map(e.lines.filter(s=>s.kind==="product").map(s=>[s.id,{lineId:s.id,ordered:s.quantity,delivered:t.get(s.id)??0,invoiced:0,reserved:0}]));for(const s of n)if(s.status!=="cancelled")for(const i of s.lines){const a=i.sourceLine;if(!a)continue;const c=a.transactionId===e.id?a.lineId:r.get([a.transactionId,a.lineId].join("#")),u=c?o.get(c):void 0;u&&(s.issuedAt?u.invoiced+=i.quantity:s.kindKey!=="credit_note"&&i.quantity>0&&(u.reserved+=i.quantity))}return[...o.values()]}const Oi=(e,t)=>Math.max(0,(t==="delivered"?e.delivered:e.ordered)-e.invoiced-e.reserved);function im(e,t){const n=e.map(r=>t==="delivered"?r.delivered:r.invoiced);return!e.length||n.every(r=>r<=0)?"none":e.every((r,o)=>n[o]>=r.ordered)?"full":"partial"}function am(e){const t=e.orders.flatMap(r=>{const o=ki(r,e.delivered.get(r.id)??new Map,e.documents),s=new Map(o.map(u=>[u.lineId,Oi(u,e.mode)])),i=sr(r,"invoice"),a=i.lines.flatMap(u=>{const d=u.sourceLine?s.get(u.sourceLine.lineId)??0:0;return u.kind==="product"&&d>0?[{...u,quantity:d}]:[]});if(!a.length)return[];const c=e.mode==="delivered"?e.deliveredAt?.get(r.id):r.deliveredAt;return[{order:r,draft:{...i,lines:a,...c?{deliveredAt:c}:{}}}]});if(e.groupBy==="order")return t.map(r=>r.draft);const n=new Map;for(const r of t){const o=r.order,s=[o.companyId,kt(o),o.invoiceTo?.contactId??"",o.billingAddressId??"",o.paymentTerm?.code??"",o.taxOverrideKey??"",o.businessEntityId,o.currency].join("|");n.set(s,[...n.get(s)??[],r])}return[...n.values()].map(r=>{if(r.length===1)return r[0].draft;const[o]=r,s=r.flatMap(c=>c.draft.deliveredAt?[c.draft.deliveredAt]:[]),{sourceTransactionId:i,...a}=o.draft;return{...a,lines:r.flatMap(c=>c.draft.lines).map((c,u)=>({...c,id:["l",String(u+1)].join("")})),...s.length?{deliveredAt:Math.max(...s)}:{}}})}const Mi=e=>btoa(unescape(encodeURIComponent(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),cm=e=>{const t=e.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(escape(atob(t+"===".slice((t.length+3)%4))))},um=e=>["/request/",Mi(e)].join(""),Ri=36e5,Ni=864e5,ie=-1/0,lm=e=>e.score>ie,Ne={urgent:40,high:25,normal:10,low:0};function dm(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const fm=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Di=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function xi(e,t){return!!(e&&fm.test(e)||t&&Di.test(t))}const wi=3,Pi=600;function pm(e,t){return e>=wi||t>=Pi}const Li=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function mm(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&Li.includes(r)&&(t[r]=n.value)}return t}const gm=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,hm=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function ym(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&gm.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&Di.test(e.body)||n&&hm.test(n))return"marketing"}function Ki(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const $i=["open"],Ui=1e3,Fi=72;function Bi(e){return e.lastActivityAt??(e.createdAt?new Date(Go(e)).getTime():0)}function ji(e,t){return qi(t.remindersById?.[e.id],e,t.now)}function qi(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const Gi=e=>Fo(e)==="outbound_message",Wi=e=>$i.includes(e);function Dt(e,t){return Math.max(0,(t-Bi(e))/Ri)}function Vi(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function bm(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function _m(e,t,n){if(!Wi(e.status)||e.firstResponseAt)return!1;const r=Vi(e,n);return r!==void 0&&Dt(e,t)>r}function Hi(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!Gi(n.type)?!1:Dt(e,t)<Fi}function Im(e,t){if(!Wi(e.status))return{score:ie,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ie,reasons:[]};if(Hi(e,t.now))return{score:ie,reasons:[]};if(ji(e,t))return{score:ie,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Ne[o]>0&&(n+=Ne[o],r.push(`priority:${o}`)),Ki(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=Dt(e,t.now);if(s>0){const c=Math.min(s*2,30);n+=c,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const i=e.lastActivityPreview;return i?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),i?.direction==="outbound"&&Gi(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(c=>c==="marketing"||c==="automated")||xi(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Ui,r.push("bulk")),{score:n,reasons:r}}const Em=e=>!!e.assignedUserId||!!e.assignedInboxId,Sm=e=>e.status==="closed",Am=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,vm=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Yi=[{key:"solved",label:"resolution_solved",order:0,positive:!0,system:!0},{key:"no_action",label:"resolution_no_action",order:1,system:!0},{key:"duplicate",label:"resolution_duplicate",order:2,system:!0},{key:"spam",label:"resolution_spam",order:3,system:!0},{key:"unresolved",label:"resolution_unresolved",order:4,positive:!1,system:!0}],Cm=["duplicate","spam"],Tm="c_";function km(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Yi,...t]}function Om(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function Mm(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)??(n?r.find(o=>o.locale===n):void 0)??{locale:t}}const Rm="article",pt=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function zi(e){const t=(e??"").toLowerCase();return pt.find(n=>n.code===t)??pt.find(n=>n.code===t.split("-")[0])}function Nm(e){return zi(e)?.label??e}function Dm(e){const t=zi(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const ir=3;function Xi(e,t){const n=new Set;let r=1,o=t.get(e)?.parentId;for(;o;){if(n.has(o)||(n.add(o),r++,r>ir+1))return 1/0;o=t.get(o)?.parentId}return r}function xm(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(i=>[i.id,i]));if(!r.has(e)||t&&Qi(e,t,r))return!1;const o=Xi(e,r),s=t?ar(t,n):1;return o+s<=ir}function Qi(e,t,n){const r=new Set;let o=n.get(e)?.parentId;for(;o;){if(o===t)return!0;if(r.has(o))return!1;r.add(o),o=n.get(o)?.parentId}return!1}function ar(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(o=>o.parentId===e);return r.length?1+Math.max(...r.map(o=>ar(o.id,t,n))):1}const Zi="en";function Ji(e){return e.defaultLocale||e.locale||Zi}function wm(e){const t=new Set,n=[];for(const r of[Ji(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Pm(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)?.name??(n?r.find(o=>o.locale===n)?.name:void 0)??e.name}function Lm(e,t){const n=a=>`${a.level}:${a.key}`,r=new Map((t?.rows??[]).map(a=>[n(a),a])),o=e.rows.map(a=>({...a,priorCents:r.get(n(a))?.amountCents??0})),s=new Set(o.map(n)),i=t?.rows??[];return i.forEach((a,c)=>{if(s.has(n(a)))return;const u=i.slice(0,c).reverse().find(p=>p.level<a.level);let d=o.length;const l=u?o.findIndex(p=>n(p)===n(u)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(u?.level??0);)d+=1;o.splice(d,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function Km(e,t,n){const r=new Map;for(const o of e){if(o.date>n)continue;const s=r.get(o.accountId)??{accountId:o.accountId,openingCents:0,debitCents:0,creditCents:0,closingCents:0};o.date<t?s.openingCents+=o.functionalCents:o.functionalCents>0?s.debitCents+=o.functionalCents:s.creditCents-=o.functionalCents,s.closingCents=s.openingCents+s.debitCents-s.creditCents,r.set(o.accountId,s)}return r}const $m=["revenue","expense"],Pe=e=>$m.includes(e.type),Um=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function ea(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,c)=>a.code.localeCompare(c.code))){if(!t(i))continue;const a=Um(i),c=i.reportGroup??a,u=o.get(a)??new Map;u.set(c,[...u.get(c)??[],i]),o.set(a,u)}const s=[];for(const[i,a]of o){const c=n(i),u=l=>c==="debit"?t(l):-t(l),d=[...a.values()].flat().reduce((l,p)=>l+u(p),0);s.push({key:i,label:r(i),level:0,side:c,amountCents:d});for(const[l,p]of a){s.push({key:l,label:r(l),level:1,side:c,amountCents:p.reduce((g,f)=>g+u(f),0)});for(const g of p)s.push({key:g.code,label:`${g.code} ${g.name}`,level:2,side:c,amountCents:u(g),accountId:g.id})}}return s}function Fm(e,t,n,r=o=>o){const o=e.filter(Pe),s=c=>{const u=t.get(c.id);return u?u.debitCents-u.creditCents:0},i=ea(o,s,c=>c==="revenue"||c==="financial"?"credit":"debit",r),a=-o.reduce((c,u)=>c+s(u),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function Bm(e,t,n,r,o=s=>s){const s=e.filter(d=>!Pe(d)),a=ea(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){a.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=a.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:a.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const c=a.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),u=a.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:a,totals:{debitCents:c,creditCents:u},source:"finance"}}function jm(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=Pe(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function qm(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,c)=>({from:new Date(o+c*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const c=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),u=s[c];u&&(a.cents>=0?u.inCents+=a.cents:u.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function Gm(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const i=t.get(s.accountId);!i||!Pe(i)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,i]of[...n.entries()].sort(([a],[c])=>a.localeCompare(c)))i&&(r.push({accountId:s,amountCents:-i,functionalCents:-i,currency:e.currency}),o+=i);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const A=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),ta={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[A("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),A("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),A("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),A("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),A("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),A("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),A("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),A("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),A("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),A("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),A("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),A("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),A("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),A("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),A("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),A("1000","Kas","asset","assets.current.cash","BLimKasKas"),A("1100","Bank","asset","assets.current.cash","BLimBanRba"),A("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),A("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),A("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),A("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),A("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),A("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),A("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf","vat_settlement"),A("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),A("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),A("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),A("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),A("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),A("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),A("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),A("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),A("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),A("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),A("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),A("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),A("4000","Lonen","expense","costs.personnel","WPerLesLon"),A("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),A("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),A("4100","Huur","expense","costs.housing","WBedHuiBeh"),A("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),A("4200","Autokosten","expense","costs.car","WBedAutOak"),A("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),A("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),A("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),A("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),A("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),A("4595","Afrondingsverschillen btw","expense","costs.general","WBedAlkOal","vat_rounding"),A("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),A("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),A("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),A("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),A("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),A("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),A("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),A("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),A("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),A("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),A("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),A("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),A("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),A("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),A("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),A("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),A("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),A("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),A("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),A("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),A("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},Wm=[ta],na={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function Vm(e,t){const n=[],r=t.functionalCurrency||"EUR",o=e.lines.filter(c=>c.currency&&c.currency!==r),s=o[0];if(s){const c={currency:s.currency};r!=="EUR"?n.push({code:"fx_cross_rate_unsupported",params:c}):o.some(u=>!(Number(u.fxRate)>0))&&n.push({code:"fx_rate_required",params:c})}e.lines.length<2&&n.push({code:"entry_too_few_lines"});const i=e.lines.reduce((c,u)=>c+u.functionalCents,0);i!==0&&n.push({code:"entry_unbalanced",params:{cents:String(i)}});const a=new Map(t.accounts.map(c=>[c.id,c]));for(const c of e.lines){const u=a.get(c.accountId);u?u.archived?n.push({code:"entry_account_archived",params:{account:u.code}}):u.requiresSubAccount&&!c.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:u.code}}):n.push({code:"entry_unknown_account",params:{account:c.accountId}}),u&&!c.taxCode!=!c.taxSide&&n.push({code:"entry_tax_side",params:{account:u.code}})}return t.period?(t.period.status==="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function Hm(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Ym=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","counterparty","reversesEntryId","attachment","prevHash","postedAt","postedBy"],zm=new Set(["journalSeq","chainSeq","postedAt"]),Xm=["amountCents","functionalCents","taxCents"];function Qm(e){const t={};for(const n of Ym){const r=e[n];r!==void 0&&(t[n]=zm.has(n)?Number(r):r)}return Array.isArray(t.lines)&&(t.lines=t.lines.map(n=>{const r={...n};for(const o of Xm)r[o]!=null&&(r[o]=Number(r[o]));return r})),t}function En(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(En).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+En(r)).join(",")+"}"}function Zm(e,t){return e.taxSide??(t?.type==="revenue"?"sales":"purchase")}function Jm(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function eg(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&Zs(t.period)>1?[{index:n,period:t.period}]:[])}function tg(e,t){const n=e.kind==="journal"?og(e,t):rg(e,t);return n.ok?ng(n,e,t.functionalCurrency??"EUR"):n}function ng(e,t,n){if(!t.currency||t.currency===n)return e;if(n!=="EUR")return{ok:!1,problem:"fx_cross_rate_unsupported"};const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=String(t.fxRate),s=e.lines.map(a=>({...a,fxRate:o,functionalCents:Math.round(a.amountCents*r)})),i=s.reduce((a,c)=>a+c.functionalCents,0);return s[0]={...s[0],functionalCents:s[0].functionalCents-i},{...e,lines:s}}function rg(e,t){const n=m=>t.accounts.find(_=>_.role===m&&!_.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),i=n(r?"vat_payable":"vat_receivable"),a=r?-1:1,c=r?"sales":"purchase",u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},d=e.taxPointDate??e.issueDate,l=[],p=new Map;for(const m of e.lines){const _=m.accountKey??Rs(m,t.ledgerMapping??[],e.direction)?.targetKey??s?.id;if(!_)return{ok:!1,problem:"no_account_for_line"};const h=r?100:t.taxCodes?.find(I=>I.key===m.taxRateKey)?.deductiblePercent??100,y=Math.round(m.taxCents*h/100),b=m.netCents+m.taxCents-y;l.push({...u,accountId:_,amountCents:a*b,functionalCents:a*b,taxCode:m.taxRateKey,taxSide:c,taxCents:a*y,taxPointDate:d,...m.description?{description:m.description}:{},...ve(m.dimensions)}),y&&p.set(m.taxRateKey,(p.get(m.taxRateKey)??0)+y)}for(const[m,_]of p){if(!i)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:i.id,amountCents:a*_,functionalCents:a*_,taxCode:m,taxSide:c,taxPointDate:d})}const g=e.lines.reduce((m,_)=>m+_.netCents+_.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-a*g,functionalCents:-a*g});const f=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:f||e.documentId}}function og(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??n(na[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const i=Math.round(Number(o.amountCents)||0);i&&r.push({accountId:s,amountCents:i,functionalCents:i,currency:e.currency,...o.description?{description:o.description}:{},...ve(o.dimensions)})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const Ht=e=>String(e).padStart(2,"0"),sg=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function ig(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,i=e+Math.floor(s/12),a=s%12+1;return{fiscalYear:n,index:o+1,from:`${i}-${Ht(a)}-01`,to:`${i}-${Ht(a)}-${Ht(sg(i,a))}`,status:"open"}})}function ag(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const cg=["memorial","opening"],ra="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",ug={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},oa=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),cr=(e,t)=>e.length>t?e.slice(0,t):e,C=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+oa(cr(String(t),n))+"</"+e+">",se=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Yt=e=>e<0?"C":"D",to=e=>cr(e.replace(/-/g,""),35);function lg(e){const t=new Map(e.accounts.map(l=>[l.id,l.code])),n=new Map(e.relations.map(l=>[l.id,l.number||to(l.id)])),r=l=>n.get(l)??to(l),o=new Map(e.periods.map(l=>[l.id,l.index])),s=[],i=(...l)=>{s.push(l.join(""))};i('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',ra,'">',"<header>",C("fiscalYear",e.fiscalYear.replace("/","-")),C("startDate",e.startDate),C("endDate",e.endDate),C("curCode",e.currency),C("dateCreated",e.createdOn),C("softwareDesc",e.software.desc,50),C("softwareVersion",e.software.version,20),C("RGSVersion",e.rgsVersion,20),"</header>","<company>",C("Commercenr",e.company.commerceNr,100),C("companyName",e.company.name,255),C("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+oa(cr(e.company.vatNumber??"",30))+"</taxRegIdent>");const a=e.company.address;if(a&&(a.street||a.city)&&i("<streetAddress>",C("streetname",a.street,100),C("number",a.number,15),C("city",a.city,50),C("postalCode",a.postalCode,10),C("country",e.company.country),"</streetAddress>"),e.relations.length){i("<customersSuppliers>");for(const l of e.relations)i("<customerSupplier>",C("custSupID",r(l.id),35),C("custSupName",l.name,50),C("commerceNr",l.commerceNr,100),C("taxRegistrationCountry",l.country),C("taxRegIdent",l.vatNumber,30),C("custSupTp",l.type),"</customerSupplier>");i("</customersSuppliers>")}i("<generalLedger>");for(const l of[...e.accounts].sort((p,g)=>p.code.localeCompare(g.code))){const p=l.type==="revenue"||l.type==="expense";i("<ledgerAccount>",C("accID",l.code,35),C("accDesc",l.name,255),C("accTp",p?"P":"B"),C("RGScode",l.taxonomy?.rgs,255),"</ledgerAccount>")}if(i("</generalLedger>"),e.taxCodes.length){i("<vatCodes>");for(const l of e.taxCodes)i("<vatCode>",C("vatID",l.key,35),C("vatDesc",l.label,100),C("vatToPayAccID",l.payableAccountId&&t.get(l.payableAccountId)),C("vatToClaimAccID",l.receivableAccountId&&t.get(l.receivableAccountId)),"</vatCode>");i("</vatCodes>")}i("<periods>");for(const l of[...e.periods].sort((p,g)=>p.index-g.index))i("<period>",C("periodNumber",l.index),C("startDatePeriod",l.from),C("endDatePeriod",l.to),"</period>");i("</periods>");const c=e.opening.filter(l=>l.cents!==0);if(c.length){const l=c.filter(g=>g.cents>0).reduce((g,f)=>g+f.cents,0),p=-c.filter(g=>g.cents<0).reduce((g,f)=>g+f.cents,0);i("<openingBalance>",C("linesCount",c.length),C("totalDebit",se(l)),C("totalCredit",se(p))),c.forEach((g,f)=>{i("<obLine>",C("nr",f+1),C("accID",t.get(g.accountId)??g.accountId),C("amnt",se(g.cents)),C("amntTp",Yt(g.cents)),"</obLine>")}),i("</openingBalance>")}const u=e.entries.flatMap(l=>l.lines);i("<transactions>",C("linesCount",u.length),C("totalDebit",se(u.filter(l=>l.functionalCents>0).reduce((l,p)=>l+p.functionalCents,0))),C("totalCredit",se(-u.filter(l=>l.functionalCents<0).reduce((l,p)=>l+p.functionalCents,0))));const d=new Map;for(const l of e.entries)d.set(l.journalId,[...d.get(l.journalId)??[],l]);for(const l of e.journals){const p=d.get(l.id);if(p?.length){i("<journal>",C("jrnID",l.code,35),C("desc",l.name),C("jrnTp",ug[l.kind]));for(const g of[...p].sort((f,m)=>f.journalSeq-m.journalSeq))i("<transaction>",C("nr",g.number,35),C("desc",g.description),C("periodNumber",o.get(g.periodId)??0),C("trDt",g.date),C("Source",g.source.app+(g.source.kind?" "+g.source.kind:""),999),C("User",g.postedBy,999)),g.lines.forEach((f,m)=>{const _=f.taxCode&&e.vatPercent?.(f.taxCode,g.date),h=f.currency&&f.currency!==e.currency;i("<trLine>",C("nr",m+1),C("accID",t.get(f.accountId)??f.accountId,35),C("docRef",g.source.number??g.number,255),C("effDate",f.taxPointDate??g.date),C("desc",f.description),C("amnt",se(f.functionalCents)),C("amntTp",Yt(f.functionalCents)),C("custSupID",f.counterpartyCompanyId&&r(f.counterpartyCompanyId),35),C("invRef",g.source.number,255),C("cost",f.costCenterId,999),C("project",f.projectId,999),_&&f.taxCents!==void 0?"<vat>"+C("vatID",f.taxCode,35)+C("vatPerc",_)+C("vatAmnt",se(f.taxCents))+C("vatAmntTp",Yt(f.taxCents))+"</vat>":"",h?"<currency>"+C("curCode",f.currency)+C("curAmnt",se(f.amountCents))+"</currency>":"","</trLine>")}),i("</transaction>");i("</journal>")}}return i("</transactions>","</company>","</auditfile>"),s.join(`
12
+ `)}const dg=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function fg(e){const t=Q(e,"ledgerAccount").map(a=>{const c=N(a,"RGScode")??N(a,"leadCode");return{code:N(a,"accID")??"",name:N(a,"accDesc")??"",kind:N(a,"accTp")==="P"?"P":"B",...c?{rgs:c}:{}}}),n={},r=a=>{const c=N(a,"accID");c&&(n[c]=(n[c]??0)+dg(N(a,"amnt"),N(a,"amntTp")))};for(const a of Q(e,"obLine"))r(a);for(const a of Q(e,"trLine"))r(a);const o=Q(e,"header")[0]??"",s=N(o,"fiscalYear"),i=N(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function pg(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const Sn=["lookup","condition","parallel","for-each"];function We(e){for(const t of e){if(!Sn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${Sn.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=We(n);if(r)return r}if(t.type==="for-each"){const n=We(t.body??[]);if(n)return n}if(t.type==="condition"){const n=We(t.else??[]);if(n)return n}}return null}function mg(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function gg(e,t){return e.filter(n=>n.enabled&&mg(n.ownerScope,t))}function hg(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function yg(e){return`mcp__${e}__`}const bg=1e3,_g=2e3,Ig=500,Eg=12e3,Sg=4e3,sa=["contact","company","work_item"];function Ag(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return sa.includes(t)}const vg="high",Cg=[{key:"high",label:"tax_high",percent:21,kind:"standard"},{key:"low",label:"tax_low",percent:9,kind:"reduced"},{key:"zero",label:"tax_zero",percent:0,kind:"zero"},{key:"reverse_charge",label:"tax_reverse_charge",percent:0,kind:"reverse_charge"},{key:"exempt",label:"tax_exempt",percent:0,kind:"exempt"}];function ia(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Tg=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"services"},{key:"eu_goods",label:"tax_eu_goods",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"goods"},{key:"eu_triangular",label:"tax_eu_triangular",kind:"zero",direction:"sales",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"}}},icp:!0,icpKind:"triangular"},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function ur(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function kg(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:ur(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function ae(e){return new Date(e).toISOString().slice(0,10)}const no=/^\d{4}-\d{2}-\d{2}$/;function Og(e){if(!e.key?.trim())return"tax_code_key";if(!e.label?.trim())return"tax_code_label";const t=e.rates??[];if(!t.length)return"tax_code_rates";for(const[n,r]of t.entries()){if(!no.test(r.validFrom)||r.validTo&&!no.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function xt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=U(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?St(n,e.pricePer,e.servicePeriod):n}function Mg(e,t,n){const r=e.map(u=>({...u,netCents:xt(u),taxCents:0})),o=new Map;for(let u=0;u<r.length;u++){if(r[u].kind!=="product"||r[u].optional)continue;const d=n??r[u].taxRateKey,l=o.get(d);l?l.push(u):o.set(d,[u])}const s=[];let i=0,a=0;for(const[u,d]of o){const l=ia(u,t),p=d.reduce((m,_)=>m+r[_].netCents,0),g=U(p*l.percent/100),f=fe(g,d.map(m=>r[m].netCents));for(let m=0;m<d.length;m++)r[d[m]].taxCents=f[m];s.push({taxRateKey:u,percent:l.percent,kind:l.kind,netCents:p,taxCents:g}),i+=p,a+=g}const c=r.reduce((u,d)=>d.costPriceCents==null||d.optional?u:u+U(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:c,byRate:s}}}const Rg="onboarding-source",Ng=["support","billing","availability","sales","onboarding"],Dg=["keep","replace"],wt=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],aa={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function ee(e,t=wt){return t.find(n=>n.key===e)??{...aa,key:e}}function Ae(e){return e==="published"||e==="approved"}function lr(e,t,n=wt){if(e.workstreamId!==t)return!1;const r=ee(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function xg(e,t=wt){if(!e.userId||!Ae(e.status))return!1;const n=ee(e.kindKey,t);return n.capacity||n.productive||n.absent}const wg=864e5;function ca(e,t){return Math.round((t-e)/wg)}function dr(e,t){const n=e.cycleMinutes.length;return n===0?0:(ca(e.anchor,t)%n+n)%n}function fr(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[dr(e,t)]??0}function pr(e,t){return e.startTimes?.[dr(e,t)]}function mr(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((c,u)=>(u.effectiveFrom??0)-(c.effectiveFrom??0))[0],i=s(o.filter(a=>a.userId===t));return i||s(o.filter(a=>!a.userId&&a.teamId&&n.includes(a.teamId)))}function ua(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const An=864e5;function Pg(e){const t=Math.max(1,Math.round((e.to-e.from)/An));return Array.from({length:t},(n,r)=>e.from+r*An)}function vn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const ro={interval:0,day:1,week:2};function Lg(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&Ae(l.status)&&ee(l.kindKey).capacity),i=n.filter(l=>l.userId&&Ae(l.status)&&ee(l.kindKey).absent),a=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),c={};let u="interval";const d=l=>{ro[l]>ro[u]&&(u=l)};for(const l of a){const p=t.teamIdsOf?.(l)??[];let g=0,f=0,m=0;for(const y of Pg(e)){const b=Math.max(y,e.from),I=Math.min(y+An,e.to);m++;const v=s.filter(E=>E.userId===l).reduce((E,R)=>E+vn(R.start,R.end,b,I),0);if(v>0){g+=v;continue}const T=mr(r,l,p,y),M=T?fr(T,y):0;if(T&&M>0){g+=M*60,d(pr(T,y)?"interval":"day");continue}T||f++}if(f>0){const y=ua(o,l,e.from);y&&(g+=y.weeklyMinutes*60*(f/7),d("week"))}const _=i.filter(y=>y.userId===l).reduce((y,b)=>y+vn(b.start,b.end,e.from,e.to),0),h=Math.max(0,g-_);(h>0||m>0)&&(c[l]=h)}return{seconds:Object.values(c).reduce((l,p)=>l+p,0),precision:u,byUser:c}}function Kg(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const c=a.userId??n;r.set(c,(r.get(c)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const c=r.get(a)??0,u=t.byUser[a]??0;return{userId:a,requiredSeconds:c,capacitySeconds:u,netSeconds:u-c}});s.sort((a,c)=>a.netSeconds-c.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function $g(e,t,n,r){const o=e.filter(i=>i.userId&&Ae(i.status)&&!ee(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let c=0,u=0;for(const d of o){if(d.userId!==i||ee(d.kindKey).capacity&&!d.workstreamId)continue;const l=vn(d.start,d.end,n.from,n.to);l<=0||(lr(d,t)?c+=l:u+=l)}return{userId:i,capacitySeconds:a,onThisSeconds:c,elsewhereSeconds:u,freeSeconds:Math.max(0,a-c-u)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const Ug="demand-source",oo=1e3;function Fg(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function la(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=Fg(e,t),r=t/e;return n/(1-r*(1-n))}function da(e,t,n,r){return r<=0?1:e<=t?0:1-la(e,t)*Math.exp(-(e-t)*n/r)}function fa(e,t,n){return n<=0?0:e*t/n}function pa(e,t,n,r){if(e<=0||t<=0)return 0;const o=fa(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,i=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let a=Math.max(1,Math.ceil(o));a<=oo;a++)if(!(a<=o)&&!(da(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return oo}const Bg=36e5,jg=864e5;function qg(e){return e==="day"?jg:Bg}function Gg(e,t){return e.start<t.end&&t.start<e.end}function Ve(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function ma(e,t,n){const r=e.handleSeconds??0,o=e.seconds??(e.volume!==void 0?e.volume*r:0);if(o<=0&&!e.volume)return{seconds:0,headcount:0};const s=(t.unplannedLossPercent??0)/100,i=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const a=pa(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function Wg(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=qg(i),c=a/1e3,u=e.kinds,d=t.filter(m=>Ae(m.status)),l=d.filter(m=>lr(m,n,u)),p=d.filter(m=>ee(m.kindKey,u).capacity),g=d.filter(m=>ee(m.kindKey,u).absent),f=[];for(let m=Ee(s.from,i);m<s.to;m+=a){const _=m+a,h=Ie(m,i);let y=0;for(const E of l)y+=Ve(E,m,_);let b=0;for(const E of p)b+=Ve(E,m,_);let I=0;for(const E of g)I+=Ve(E,m,_);const v=o?.[h]??{},T=ma(v,r,c),M=y/c;f.push({period:h,forecastVolume:v.volume,requiredSeconds:T.seconds,requiredHeadcount:T.headcount,scheduledSeconds:y,scheduledHeadcount:M,netHeadcount:M-T.headcount,capacitySeconds:b,absentSeconds:I})}return f}function ga(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function Vg(e,t,n){const r=ga(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function Hg(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Yg=36e5,Cn=6048e5,ha=8,zg=.5,Xg=2;function Qg(e){const t=Number(e.slice(0,4)),n=Number(e.slice(5,7)),r=Number(e.slice(8,10)),o=e.length>10?Number(e.slice(11,13)):0;return Date.UTC(t,n-1,r,o)}function Zg(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*Cn,a=i-Cn;let c=0,u=!1;for(const[d,l]of e)d>=a&&d<i&&(c+=l,u=!0);u&&r.push(c)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(Xg,Math.max(zg,r[0]/o))}function Jg(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function eh(e,t,n){const r=Math.max(1,n?.weeks??ha),o=new Map,s=new Set;for(const c of e)o.set(Qg(c.period),c.value),s.add(c.period.slice(0,10));const i=Zg(o,Ee(t.from,"hour"),r),a=[];for(let c=Ee(t.from,"hour");c<t.to;c+=Yg){let u=0,d=0;for(let g=1;g<=r;g++){const f=c-g*Cn,_=o.get(f)??(s.has(Ie(f,"day"))?0:void 0);if(_===void 0)continue;const h=r-g+1;u+=_*h,d+=h}let l=d>0?u/d*i:0;const p=Jg(n?.adjustments,c);p?.absoluteVolume!==void 0?l=p.absoluteVolume:p?.factor!==void 0&&(l*=p.factor),a.push({period:Ie(c,"hour"),volume:l})}return a}const ya="schedule_entry",ba="workstream";function th(e){return`${ya}:${e}`}function nh(e){return`${ba}:${e}`}const Tn=36e5,_e=864e5;function rh(e,t){const n=t==="day"?_e:Tn,r=[];for(let o=Ee(e.from,t);o<e.to;o+=n)r.push(o);return r}function so(e){const t=Math.max(1,Math.round((e.to-e.from)/_e));return Array.from({length:t},(n,r)=>e.from+r*_e)}function zt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function oh(e,t,n={}){const r=n.grain??"hour",o=rh(t,r),s=r==="day"?_e:Tn,i=new Map(o.map(l=>[l,0])),a=e.filter(l=>l.userId&&ee(l.kindKey).capacity),c=n.userIds?.length?new Set(n.userIds):null,u=new Set;for(const l of a)if(!(c&&l.userId&&!c.has(l.userId))){for(const p of o){const g=zt(l.start,l.end,p,p+s);g>0&&i.set(p,(i.get(p)??0)+g)}for(const p of so(t))zt(l.start,l.end,p,p+_e)>0&&u.add(`${l.userId}:${p}`)}const d=n.userIds??[...new Set([...a.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const p=n.teamIdsOf?.(l)??[];for(const g of so(t)){if(u.has(`${l}:${g}`))continue;const f=mr(n.patterns,l,p,g);if(!f)continue;const m=fr(f,g);if(m<=0)continue;const _=pr(f,g);if(_){const[b,I]=_.split(":").map(Number),v=g+b*Tn+(I??0)*6e4,T=v+m*6e4;for(const M of o){const E=zt(v,T,M,M+s);E>0&&i.set(M,(i.get(M)??0)+E)}continue}const h=o.filter(b=>b>=g&&b<g+_e);if(!h.length)continue;const y=m*60/h.length;for(const b of h)i.set(b,(i.get(b)??0)+y)}}return o.map(l=>({period:Ie(l,r),weight:i.get(l)??0}))}function _a(e,t){if(e<=0||!t.length)return[];const n=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(n<=0){const r=e/t.length;return t.map(o=>({period:o.period,seconds:r}))}return t.filter(r=>r.weight>0).map(r=>({period:r.period,seconds:e*r.weight/n}))}function sh(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(a=>n(a.period)<o.by):t,i=s.length?s:t;for(const a of _a(o.seconds,i)){const c=`${a.period}|${o.userId??""}`,u=r.get(c);u?u.seconds+=a.seconds:r.set(c,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function Ia(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function ih(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),o=t.slice(n+1).trim();if(o){if(r==="user")return{kind:"user",userId:o};if(r==="team")return{kind:"team",teamId:o}}}function Ea(e){return Ia(e)}function Sa(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function ah(e){return e.agentId?{kind:"user",userId:e.agentId}:Sa(e.ownerScope)}function ch(e){return Ea(e)}const Aa="playbook-run",uh="run";function lh(e,t=0){return`${Aa}:${e}~${t}`}function dh(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function va(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function fh(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function ph(e,t){if(t)return e.targets.find(n=>n.id===t)}function Ca(e){return e?.kind==="assignment"}function mh(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return Ca(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":i&&i===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const kn=["suggest","outward","auto"];function gh(e){return typeof e=="string"&&kn.includes(e)}function hh(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function yh(e,t){const n=e??"suggest";return t&&kn.indexOf(t)<kn.indexOf(n)?t:n}function bh(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function Ta(e){const t=e.split("__");return t[t.length-1]||e}function _h(e){const t=Ta(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Ih=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toCategory",type:"string",onlyFor:["WORK_ITEM_STATUS_CHANGED"]},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"priority",type:"string"},{name:"inboxId",type:"string"},{name:"topicId",type:"string"},{name:"assigneeUserId",type:"string"}];function Eh(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Sh={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function gr(e){return`${e.type}:${e.id}`}function Ah(e){return[gr(e),e.lineId].join("#")}function vh(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Ch(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const ka="interaction";function Oa(e){return e?.type===ka?e.id:void 0}const Ma=64,Ra=8e3;function Th(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),Ma),Ra)}const kh=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],Oh={kind:"workflow",steps:[]};function Mh(e){return e?.kind==="workflow"?e.steps:[]}function Rh(e){return e?.kind==="procedure"?e.procedure:void 0}function Nh(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Na(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Da=10,xa=.9;function Dh(e){const{total:t,rate:n}=Na(e);return t>=Da&&n>=xa}const wa=["done","escalated","failed","stopped"];function xh(e){return wa.includes(e)}function Pa(e){return e==="waiting"}function wh(e){return e==="running"||Pa(e)}function hr(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Ph(e){const t=hr(e);return t?gr(t):void 0}function Lh(e){return Oa(hr(e))}const La=36e5,Kh=24*La,$h=48*La;function Uh(e,t,n){const r=e.availability;if(!r)return{stock:"unknown"};if(!(n<=(r.freshUntil??r.at+$h))||r.qty===null)return{stock:"unknown"};const s=r.qty;return{stock:s>=t?"enough":"short",qty:s}}function Fh(e,t,n){if(!Zn(e,n))return"invalid";if(e.pricedBy!=="quote"&&(e.termMonths??0)!==(t.termMonths??0))return"term";const r=t.deliverTo!==void 0&&t.deliverTo!=="own";if(t.deliverTo!==void 0&&e.dropship===(r?"no":"yes"))return"dropship";if(t.qualified&&!t.qualified.some(o=>o.app===e.provider?.app&&o.offer===e.provider.offer&&(!o.vendorSku||o.vendorSku===e.vendorSku)))return"qualification"}function Bh(e,t){if(e.pricedBy==="quote")return null;const n=e.currency===t.currency?1:t.rates?.[e.currency];return n?li(e)*n:null}const io={enough:0,unknown:1,short:2},ao=e=>e.unitCents??Number.POSITIVE_INFINITY;function jh(e,t,n){const r=e.map(f=>{const m=Fh(f,t,n),_=f.availability?.leadDays??f.leadDays;return{offer:f,...Uh(f,t.quantity,n),unitCents:Bh(f,t),..._!==void 0?{leadDays:_}:{},...m?{unsuitable:m}:{}}}),o=r.filter(f=>!f.unsuitable),s=r.filter(f=>f.unsuitable),i=o.filter(f=>f.unitCents!==null),a=i.length?i:o,c=[...a].sort((f,m)=>io[f.stock]-io[m.stock]||(f.stock==="short"?(m.qty??0)-(f.qty??0):0)||ao(f)-ao(m)||(f.leadDays??Number.POSITIVE_INFINITY)-(m.leadDays??Number.POSITIVE_INFINITY)||Number(m.offer.isDefault)-Number(f.offer.isDefault)),u=a.find(f=>f.offer.isDefault),d=u&&u.stock!=="short"?u:c[0]??null,l=t.pinned?r.find(f=>f.offer.id===t.pinned):void 0;if(l){const f=[...c,...o.filter(m=>!a.includes(m)),...s];return{chosen:l,why:"picked",alternatives:f.filter(m=>m!==l),currency:t.currency}}const p=[...c,...o.filter(f=>!a.includes(f))].filter(f=>f!==d);if(!d)return{chosen:null,alternatives:[...p,...s],currency:t.currency};const g=d.stock==="short"?"short":d===u?"preferred":u?"preferred_short":o.length===1?"only":"best";return{chosen:d,why:g,alternatives:[...p,...s],currency:t.currency}}const Xt=864e5;function qh(e,t){return e.lines.flatMap(n=>{const r=At(V(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=xt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ka(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const co=e=>e.seriesId??e.id;function Gh(e,t,n){return t.find(r=>{const o=V(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function Wh(e,t,n,r={}){const o=(r.noticeDays??30)*Xt,s=(r.windowDays??7)*Xt,i=[];for(const a of e){if(a.status!=="active")continue;const c=new Map;for(const u of a.lines)c.set(co(u),[...c.get(co(u))??[],u]);for(const u of c.values()){const d=Gh(a,u,n),l=V(a,d);if(l.to!=null&&l.to<=n)continue;const p={contractId:a.id,lineId:d.id},g=d.commitment??a.commitment,f=Jo(a,u),m=l.to??nt(f,g,n);if(d.customerCompanyId&&!d.itemId){const b=d.salesLine?t.find(I=>I.agreementId===d.salesLine?.agreementId&&I.seriesId===d.salesLine?.seriesId):void 0;b?b.ended?i.push({kind:"not_covered",...p,reason:"sales_ended"}):(d.quantity.from==="fixed"&&b.quantity!=null&&b.quantity!==d.quantity.value&&i.push({kind:"not_covered",...p,reason:"quantity"}),b.unbilled.length&&i.push({kind:"not_billed",...p,windows:b.unbilled}),m>b.effectiveEndAt&&i.push({kind:"term_mismatch",...p,purchaseEnd:m,salesEnd:b.effectiveEndAt})):i.push({kind:"not_covered",...p,reason:"no_sales_line"})}const _=!!g&&g.termMonths>=3&&(g.renew==="term"||n<nt(f,{...g,renew:"none"},f)),h=l.to==null&&_?es(f,g,n):null;if(h!=null&&h-n<=o&&i.push({kind:"notice_due",...p,deadline:h}),g&&g.termMonths>=1&&d.changeWindowDays){const b=$n(f,g,n)+d.changeWindowDays*Xt;b>n&&b-n<=s&&i.push({kind:"change_window",...p,closesAt:b})}const y=r.invoiced?.get(d.id);if(d.expected==="variable"&&y&&y.length>=2){const b=[...y].sort((v,T)=>v.from-T.from),I=b[b.length-1];Ka(b.slice(0,-1).map(v=>v.cents),I.cents)&&i.push({kind:"variable_jump",...p,cents:I.cents})}}}return i}const yr=["vendorSku","gtin","description","brand","group","cost","list","currency","stock","leadDays","lotSize","dropship"],$a={day:864e5,week:7*864e5,month:31*864e5},Ua=10;function Vh(e,t){const n=(e[0]??[]).map(a=>a.trim().toLowerCase()),r={},o=[];for(const a of yr){const c=t[a]?.trim();if(!c)continue;const u=n.indexOf(c.toLowerCase());u===-1?o.push(c):r[a]=u}const s=[],i=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=v=>{const T=r[v];return T===void 0?"":(a[T]??"").trim()},l=d("vendorSku"),p=Ot(d("gtin"));if(!l&&!p){i.push({line:u,message:"feed_row_no_key"});return}const g=d("cost")?rn(d("cost")):void 0;if(d("cost")&&g===void 0){i.push({line:u,message:"feed_row_price"});return}const f=d("list")?rn(d("list")):void 0,m=d("stock"),_=Number(m.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:m&&/\d/.test(m)&&Number.isFinite(_)?Math.max(0,_):null,y=Number(d("leadDays")),b=Number(d("lotSize")),I=Hh(d("dropship"));s.push({line:u,...l?{vendorSku:l}:{},...p?{gtin:p}:{},...d("description")?{description:d("description")}:{},...d("brand")?{brand:d("brand")}:{},...d("group")?{group:d("group")}:{},...g!==void 0?{costCents:g}:{},...f!==void 0?{listCents:f}:{},...d("currency")?{currency:d("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...d("leadDays")&&Number.isFinite(y)?{leadDays:y}:{},...Number.isInteger(b)&&b>1?{lotSize:b}:{},...I?{dropship:I}:{}})}),{rows:s,errors:i,missingHeaders:o})}function Hh(e){const t=e.toLowerCase();if(t){if(/^(alleen|only)/.test(t))return"yes";if(/^(ja|yes|y|j|1|true|waar)$/.test(t))return"optional";if(/^(nee|no|n|0|false|onwaar)$/.test(t))return"no"}}function Yh(e,t,n){const r=new Map(t.filter(i=>i.vendorSku).map(i=>[i.vendorSku,i])),o=new Map(t.map(i=>[i.productId,i])),s=new Map;for(const i of n)for(const a of[i.gtin,...i.barcodes??[]]){const c=a?Ot(a):void 0;c&&!s.has(c)&&s.set(c,i)}return e.map(i=>{const a=i.vendorSku?r.get(i.vendorSku):void 0;if(a)return{row:i,offer:a};const c=i.gtin?s.get(i.gtin):void 0;if(!c)return{row:i};const u=o.get(c.id);return u?{row:i,offer:u}:{row:i,product:c}})}function zh(e,t,n,r=Ua,o="week"){const s=new Map,i=[];let a=0;for(const u of e){const{row:d}=u;if(!("offer"in u)){i.push({line:d.line,...d.vendorSku?{vendorSku:d.vendorSku}:{},...d.gtin?{gtin:d.gtin}:{},...d.description?{description:d.description}:{},...d.brand?{brand:d.brand}:{},...d.group?{group:d.group}:{},...d.costCents!==void 0?{costCents:d.costCents}:{},..."product"in u?{productId:u.product.id}:{},...d.offer?{offer:d.offer}:{}});continue}const l=u.offer,p={qty:d.stock===void 0?l.availability?.qty??null:d.stock,at:n,source:"feed",...d.leadDays!==void 0?{leadDays:d.leadDays}:{},freshUntil:n+2*$a[o]},g={availability:p};d.costCents!==void 0&&d.costCents!==l.costCents&&(g.costCents=d.costCents),d.listCents!==void 0&&d.listCents!==l.listCents&&(g.listCents=d.listCents),d.currency&&d.currency!==l.currency&&(g.currency=d.currency),d.lotSize!==void 0&&d.lotSize!==l.lotSize&&(g.lotSize=d.lotSize),d.dropship&&d.dropship!==l.dropship&&(g.dropship=d.dropship),d.vendorSku&&!l.vendorSku&&(g.vendorSku=d.vendorSku),Object.keys(g).length>1||p.qty!==(l.availability?.qty??null)||a++;const m=g.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(g.costCents-l.costCents)/l.costCents*1e3)/10:0;s.set(l.id,{offerId:l.id,set:g,...m>r?{jump:{fromCents:l.costCents,toCents:g.costCents,percent:m}}:{}})}const c=t.filter(u=>u.availability?.source==="feed"&&!s.has(u.id)).map(u=>u.id);return{changes:[...s.values()],unchanged:a,gone:c,unmatched:i}}const Xh={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],brand:["merk","brand","fabrikant","manufacturer","vendor"],group:["productgroep","groep","categorie","category","product group","productgroup"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"],lotSize:["bestelveelvoud","veelvoud","lot size","order multiple","purchaselotsize"],dropship:["dropship","drop shipment","dropshipment","direct leveren"]};function Qh(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of yr){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Xh[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}const q=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function Fa(e){const t=[];for(const n of e){const r=q(n.sku)||q(n.description),o=t.find(s=>(q(s.sku)||q(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Zh(e,t){const n=q(e.orderRef),r=q(e.supplierRef);return n&&t.find(o=>q(o.number)===n)||n&&t.find(o=>q(o.reference)===n)||r&&t.find(o=>q(o.reference)===r)||null}const Be={reference:0,sku:1,description:2,loose:3};function br(e,t,n){const r=q(e.externalRef);if(r&&q(t.externalRef)===r)return{via:"reference",rank:Be.reference};if(r&&t.externalRef)return null;const o=q(e.sku);if(o&&n.filter(c=>c.id===t.offerId||!!t.productId&&c.productId===t.productId).map(c=>q(c.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Be.sku};const s=q(e.description),i=q(t.name);return!s||!i?null:s===i?{via:"description",rank:Be.description}:i.includes(s)||s.includes(i)?{via:"description",rank:Be.loose}:null}function Ba(e,t,n){const r=t.filter(a=>a.kind==="product"),o=new Set,s=[],i=[];return e.forEach((a,c)=>{let u=null;for(const d of r){if(o.has(d.id))continue;const l=br(a,d,n);l&&(!u||l.rank<u.rank)&&(u={line:d,...l})}if(!u){i.push(c);return}o.add(u.line.id),s.push({docIndex:c,poLineId:u.line.id,via:u.via})}),{matches:s,unmatched:i}}function Jh(e,t,n,r){const o=Fa(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:i}=Ba(o,t.lines,n),a=s.map(u=>({poLineId:u.poLineId,quantity:o[u.docIndex].quantity,serials:o[u.docIndex].serials,docIndex:u.docIndex,via:u.via})),c=[...ai({movement:"in",lines:a},t.lines,r).filter(u=>u.code!=="receipt_return_over_received").map(u=>({code:u.code,poLineId:u.poLineId,docIndex:a.find(d=>d.poLineId===u.poLineId)?.docIndex})),...i.map(u=>({code:"slip_unknown_item",docIndex:u}))];return{lines:a,problems:c}}function ey(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const i=Number(String(s?.quantity??"").replace(",",".")),a=n(s?.description);if(!(i>0)||!a&&!n(s?.sku))return[];const c=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:a,quantity:i,serials:c}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const ty=864e5,uo=e=>Date.parse([e,"T00:00:00Z"].join(""));function ny(e,t,n,{defaultPeriod:r,invoice:o}){const s=new Map(t.map(l=>[l.id,l.openQty])),i=new Map(t.map(l=>[l.id,l.receivedOpen])),a=[],c=[],u=[],d=new Set;for(const l of e){const p=l.period?{from:uo(l.period.from),to:uo(l.period.to)+ty}:r,g=E=>!E.term||E.term.from<=p.from&&(E.term.to==null||p.from<E.term.to),f=t.map((E,R)=>({candidate:E,order:R,hit:br(l,E,n)})).filter(E=>!!E.hit).filter(E=>g(E.candidate)),m=f.filter(E=>lo(E.candidate,o)!==null).filter(E=>!(E.candidate.kind==="contract_line"&&d.has(E.candidate.id))).sort((E,R)=>E.hit.rank-R.hit.rank||E.order-R.order);if(!m.length){f.length?u.push(l.id):c.push(l.id);continue}const _=E=>{const R=lo(E,o);return{receiptLineId:l.id,businessEntityId:E.businessEntityId,...E.productId?{productId:E.productId}:{},...E.use?{use:E.use}:{},...E.customerCompanyId?{customerCompanyId:E.customerCompanyId}:{},...E.dimensions?{dimensions:E.dimensions}:{},...E.ledgerCategoryKey?{ledgerCategoryKey:E.ledgerCategoryKey}:{},...R!==1?{rate:R}:{}}},h=(E,R,F)=>E.variable?null:xt({kind:"product",quantity:R,unitPriceCents:E.unitPriceCents,discountPercent:E.discountPercent,pricePer:E.pricePer,servicePeriod:F}),y=m[0];if(y.candidate.kind==="contract_line"){const E=y.candidate;d.add(E.id);const R=l.quantity??E.openQty??1;a.push({..._(E),target:{kind:"contract_line",contractId:E.parentId,lineId:E.id,period:p},via:y.hit.via,quantity:R,amountCents:l.netCents,expectedCents:h(E,R,p),overQuantity:E.openQty!=null&&R!==E.openQty});continue}const b=m.filter(E=>E.candidate.kind==="po_line"&&E.hit.rank===y.hit.rank),I=l.quantity??Math.max(1,s.get(y.candidate.id)??1),v=[];let T=I;for(const{candidate:E}of b){if(T<=0)break;const R=Math.max(0,s.get(E.id)??0);if(!R)continue;const F=Math.min(R,T);v.push({candidate:E,quantity:F,over:!1}),s.set(E.id,R-F),T-=F}if(T>0){const E=v[v.length-1];E?(E.quantity+=T,E.over=!0):v.push({candidate:y.candidate,quantity:T,over:!0})}const M=fe(l.netCents,v.map(E=>E.quantity));for(const E of v){const R=i.get(E.candidate.id);R!=null&&(E.notReceived=E.quantity>R,i.set(E.candidate.id,R-E.quantity))}v.forEach((E,R)=>{a.push({..._(E.candidate),target:{kind:"po_line",orderId:E.candidate.parentId,lineId:E.candidate.id},via:y.hit.via,quantity:E.quantity,amountCents:M[R],expectedCents:h(E.candidate,E.quantity,l.period?p:void 0),overQuantity:E.over,...E.notReceived?{notReceived:!0}:{}})})}return{allocations:a,unmatched:c,needsRate:u}}function lo(e,t){return!t||!e.currency||e.currency===t.currency?1:e.currency==="EUR"&&t.fxRate&&t.fxRate>0?t.fxRate:null}const ja={percent:1,cents:100};function ry(e,t,{tolerance:n=ja,needsRate:r=[]}={}){const o=[...t.map(i=>({receiptLineId:i,issue:"unmatched"})),...r.map(i=>({receiptLineId:i,issue:"fx_rate_required"}))],s=new Map;for(const i of e)s.set(i.receiptLineId,[...s.get(i.receiptLineId)??[],i]);for(const[i,a]of s){if(a.some(l=>l.overQuantity)&&o.push({receiptLineId:i,issue:"quantity"}),a.some(l=>l.notReceived)&&o.push({receiptLineId:i,issue:"not_received"}),a.some(l=>l.expectedCents===null))continue;const c=a.reduce((l,p)=>l+(p.expectedCents??0),0),u=Math.round(a.reduce((l,p)=>l+p.amountCents*(p.rate??1),0)),d=Math.max(Math.abs(c)*n.percent/100,n.cents);Math.abs(u-c)>d&&o.push({receiptLineId:i,issue:"price",expectedCents:c,amountCents:u})}return{ok:o.length===0&&e.length>0,issues:o}}const fo=(e,t)=>e.trim().toLowerCase()===t.trim().toLowerCase();function qa(e,t){if(!e)return!1;const n=e.answer.trim();return(n.endsWith("*")?t.answer.startsWith(n.slice(0,-1)):t.answer===n)?!e.match||fo(e.match,t.key)||fo(e.match,t.label):!1}function oy(e,t,n){const r=e.filter(o=>o.provider?.app===t&&qa(o.provider.option,n));return r.find(o=>!!o.provider?.option?.match)??r[0]}function sy(e){const t=[],n=new Map;for(const r of[...e].sort(iy)){const o=n.get(r.emoji);if(o){o.push(r.actor);continue}t.push(r.emoji),n.set(r.emoji,[r.actor])}return t.map(r=>{const o=n.get(r);return{emoji:r,count:o.length,actors:o}}).sort((r,o)=>o.count-r.count||t.indexOf(r.emoji)-t.indexOf(o.emoji))}const iy=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function ay(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const Ga=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function cy(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(b=>[b.key,b])),r=n.get(e.standardKey??"high"),o={},s={},i=(b,I)=>{if(!e.trace||!b||!I.ref)return;const v=s[b]??[];v.includes(I.ref)||(s[b]=[...v,I.ref])};let a;const c=(b,I,v)=>{if(!b||!v)return;const T=o[b]??{};T[I]=(T[I]??0)+v,o[b]=T,a&&i(b,a)},u=new Map,d=new Set;let l=0;for(const b of e.lines){const I=b.vatDate??b.taxPointDate;if(I<e.from||I>e.to)continue;const v=n.get(b.taxCode);if(!v){d.add(b.taxCode);continue}const T=v.boxes[t]?.[b.side];if(a=b,b.side==="sales"){if(c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",b.taxCents),v.icp){const M=[v.icpKind??"services",b.counterpartyCompanyId??""].join("|");u.set(M,(u.get(M)??0)+b.baseCents)}}else if(v.selfAssessed){const M=r?ur(r,b.taxPointDate)??0:0,E=Math.round(b.baseCents*M/100);c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",E),l+=E,E&&i("5b",b)}else l+=b.taxCents,b.taxCents&&i("5b",b)}const p=Ga.filter(b=>b<"5"),g=p.reduce((b,I)=>b+(o[I]?.taxCents??0),0);o["5a"]={taxCents:g},o["5b"]={taxCents:l},o["5c"]={taxCents:g-l},o["5g"]={taxCents:g-l};const f=b=>Math.trunc(b/100),m=b=>b>=0?Math.ceil(b/100):Math.floor(b/100),_={};for(const b of p){const I=o[b];I&&(_[b]={...I.baseCents!==void 0?{base:f(I.baseCents)}:{},...I.taxCents!==void 0?{tax:f(I.taxCents)}:{}})}const h=p.reduce((b,I)=>b+(_[I]?.tax??0),0),y=m(l);return _["5a"]={tax:h},_["5b"]={tax:y},_["5c"]={tax:h-y},_["5g"]={tax:h-y},{boxes:o,euros:_,icp:[...u.entries()].filter(([,b])=>b!==0).map(([b,I])=>{const[v,T]=b.split("|");return{...T?{counterpartyCompanyId:T}:{},kind:v,baseCents:I}}),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function uy(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,i)=>new Date(Date.UTC(s,i,0)).getUTCDate();return Array.from({length:12/n},(s,i)=>{const a=i*n+1,c=a+n-1,u=c===12?e+1:e,d=c===12?1:c+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(c)}-${r(o(e,c))}`,dueOn:t==="year"?`${e+1}-03-31`:`${u}-${r(d)}-${r(o(u,d))}`}})}const ly=e=>new Date(Date.parse(`${e}T00:00:00Z`)+864e5).toISOString().slice(0,10);function dy(e,t,n){const r=n.filter(s=>s.filedAt<=t).reduce((s,i)=>i.to>s?i.to:s,""),o=r?ly(r):"";return o>e?o:e}class _r extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const fy=/^\{\{\s*([\w.]+)\s*\}\}$/,py=/\{\{\s*([\w.]+)\s*\}\}/g,my=/\$[A-Za-z_][\w]*\.[\w.]+/;function gy(e,t,n={}){return mt(e,t,n)}function mt(e,t,n={}){return typeof e=="string"?hy(e,t,n):Array.isArray(e)?e.map(r=>mt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,mt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function hy(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(my);if(s)throw new _r(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(fy);if(o){const s=po(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(py,(s,i)=>{const a=po(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function po(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new _r(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return yy(e,t)}function yy(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const by=new Set(["filled","empty"]);function _y(){return{kind:"rule",op:"==",varPath:"",value:""}}const Iy=new Set(["==","!=",">","<",">=","<="]);function Qt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function mo(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Wa(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=On(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function On(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const i=On(s);if(!i)return null;o.push(i)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Qt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=On(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Qt(s)||!mo(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Iy.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Qt(o)||!mo(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function He(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?He(e.children[0]):{[e.op]:e.children.map(He)}:e.kind==="not"?{"!":He(e.child)}:e.op==="filled"?{"!!":[{var:e.varPath}]}:e.op==="empty"?{"!":[{var:e.varPath}]}:e.op==="in"?{in:[e.value,{var:e.varPath}]}:{[e.op]:[{var:e.varPath},e.value]}}function Ey(e){const t=Wa(e);return t&&Mn(t)||null}function Mn(e){if(e.kind==="group"){const t=e.children.map(Mn).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${Mn(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Zt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Sy(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,i]=o.split("/"),a=i===void 0?1:Number(i);if(!Number.isInteger(a)||a<1)return null;let c=t,u=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(c=Number(d),u=l===void 0?c:Number(l),!Number.isInteger(c)||!Number.isInteger(u)||(l===void 0&&i!==void 0&&(u=n),c<t||u>n||c>u))return null}for(let d=c;d<=u;d+=a)r.add(d)}return r.size?r:null}function Ir(e){const t=e.trim().split(/\s+/);if(t.length!==Zt.length)return null;const n=[];for(let c=0;c<Zt.length;c++){const u=Zt[c],d=t[c];if(!u||d===void 0)return null;const l=Sy(d,u.min,u.max);if(!l)return null;n.push(l)}const[r,o,s,i,a]=n;return a.has(7)&&a.add(0),{minute:r,hour:o,dayOfMonth:s,month:i,dayOfWeek:a,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Ay(e){return Ir(e)!==null}function Va(e,t){const n=Ir(e);if(!n||!n.minute.has(t.getUTCMinutes())||!n.hour.has(t.getUTCHours())||!n.month.has(t.getUTCMonth()+1))return!1;const r=n.dayOfMonth.has(t.getUTCDate()),o=n.dayOfWeek.has(t.getUTCDay());return n.anyDayOfMonth&&n.anyDayOfWeek?!0:n.anyDayOfMonth?o:n.anyDayOfWeek?r:r||o}const Ha="@schedule",Rn=3;function Ya(e,t,n){const r=[],o=e.depth??0;if(o>=Rn)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${Rn})`}))};const s={event:e.payload,subject:e.subject??{}},i=[];for(const a of t){if(!a.enabled){r.push({ruleId:a.id,reason:"staat uit"});continue}if(a.trigger.kind==="schedule"){if(e.name!==Ha){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const c=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(c)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!Va(a.trigger.cron,new Date(c))){r.push({ruleId:a.id,reason:`niet aan de beurt (${a.trigger.cron})`});continue}}else if(a.trigger.kind!=="event"){r.push({ruleId:a.id,reason:`trigger "${a.trigger.kind}" draait hier niet`});continue}else if(a.trigger.name!==e.name){r.push({ruleId:a.id,reason:`luistert op ${a.trigger.name}`});continue}if(e.causedByRule===a.id){r.push({ruleId:a.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(a.when??null,s)){r.push({ruleId:a.id,reason:"voorwaarde niet waar"});continue}i.push({rule:a,idempotencyKey:`${e.id}:${a.id}:${a.version}`})}return{matched:i,skipped:r}}function vy(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Cy(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Ya(n,r,t),i=o.flatMap(u=>u.rule.then.map(d=>d.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((u,d)=>u===a[d]))return{caseId:e.id,ok:!0};const c=s.map(u=>`${u.ruleId}: ${u.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${c?` — ${c}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function Ty(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function za(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Ty(e,n))}function ky(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>za(r,t).length)?"corrected":"kept"}function Oy(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function My(e){return`subject.${e.path}`}function Ry(e,t){return e.events.find(n=>n.name===t)}function Ny(e,t){return e.filter(n=>va(t,n.path)===void 0).map(n=>n.path)}const Nn=6e4,Dy=36e5,De=864e5,Xa=800;function go(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*De+Dy}function xy(e){const t=new Date(e).getUTCFullYear();return e>=go(t,2)&&e<go(t,9)}function Qa(e,t){const n=t.dst==="eu"&&xy(e)?60:0;return(t.utcOffsetMinutes+n)*Nn}function wy(e){return(e+3)%7+1}function Za(e,t){const n=Qa(e,t),r=e+n,o=Math.floor(r/De);if(!t.days.includes(wy(o)))return null;const s=o*De;return{open:s+t.fromMinutes*Nn-n,close:s+t.toMinutes*Nn-n}}function Ja(e,t){const n=Qa(e,t),r=e+n;return(Math.floor(r/De)+1)*De-n}function gt(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Xa&&o<t;s++){const i=Za(o,n);if(i){const a=Math.max(o,i.open),c=Math.min(t,i.close);c>a&&(r+=c-a)}o=Ja(o,n)}return r}function Pt(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Xa;s++){const i=Za(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const c=i.close-a;if(r<=c)return a+r;r-=c}}o=Ja(o,n)}return e+t}function Py(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const ht=1,yt=2,bt=4;function Ly(e){return e==="snoozed"?ht:yt}function Lt(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Ky=["speed_of_answer","first_response","next_response","resolution","close"],$y=["snoozed","waiting_for_customer"],Uy=6e4,ec=["speed_of_answer","first_response","next_response"],Fy=[...ec,"resolution","close"];function Le(e){return e.state==="running"||e.state==="paused"}function By(e,t){return Le(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function ho(e){return Le(e)?{state:"void"}:null}function jy(e,t,n,r){if(!Le(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:gt(n,e.dueAt,r)}}function qy(e,t,n,r){if(!Le(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:Pt(n,e.remainingMs,r)}}function Gy({event:e,at:t,now:n,clocks:r,profile:o}){const s=Lt(o),i=Math.min(t,n),a=r.map(h=>({...h})),c=[],u=(h,y)=>{y&&(c.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},d=h=>{for(const y of a)y.metric===h&&u(y,By(y,i))},l=h=>{for(const y of a)h.includes(y.metric)&&u(y,ho(y))},p=h=>{for(const y of a)u(y,jy(y,h,i,s))},g=h=>{for(const y of a)u(y,qy(y,h,i,s))},f=h=>a.reduce((y,b)=>b.metric===h?Math.max(y,b.attempt):y,0)+1,m=h=>a.some(y=>y.metric===h&&Le(y)),_=(h,y)=>{const b=o.targets.find(v=>v.metric===h);if(!b)return;const I=b.minutes*Uy;c.push({op:"start",metric:h,attempt:f(h),startedAt:y,targetMs:I,dueAt:Pt(y,I,s)})};switch(e){case"apply":{for(const h of a)h.profileId!==o.id&&u(h,ho(h));for(const h of o.targets){if(h.metric==="next_response")continue;a.some(b=>b.metric===h.metric&&b.profileId===o.id)||_(h.metric,i)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&p(yt);break}case"inbound":{g(yt),!m("first_response")&&!m("next_response")&&_("next_response",i);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(ec);break;case"reopened":m("resolution")||_("resolution",i),m("close")||_("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&p(ht);break;case"unsnoozed":g(ht);break;case"hold":p(bt);break;case"unhold":g(bt);break;case"discarded":l(Fy);break}return c}function tc(e){return e.state==="running"||e.state==="paused"}function Wy(e){return(e.pauseBits&bt)!==0}function _t(e,t){const n=Lt(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-gt(e.dueAt,t,n):gt(t,e.dueAt,n)}function Vy(e,t){return e.state==="paused"?Pt(t,e.remainingMs,Lt(e)):e.dueAt}function Hy(e,t){const n=e.filter(tc);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>_t(i,t)<_t(s,t)?i:s)}function Yy(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=_t(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function zy(e){const t=Math.floor(Math.abs(e)/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return n?r?`${n}d ${r}u`:`${n}d`:r?o?`${r}u ${o}m`:`${r}u`:o?`${o}m`:`${t%60}s`}const nc="strategy_item";function Er(e){return`${nc}:${e}`}function Xy(e,t=25){const n=new Set([Er(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Qy(e){return e?[...e.ancestorKeys??[],Er(e.id)]:[]}const Ke=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],rc=999,oc=7;function sc(e,t=Ke){return t.find(n=>n.key===e)}function It(e,t=Ke){return sc(e,t)?.order??rc}function Zy(e,t,n=Ke){return It(t,n)<=It(e,n)}function Jy(e,t=Ke){const n=It(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function eb(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const Dn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function tb(e){return Dn[e]??"open"}function nb(e){return Object.keys(Dn).filter(t=>e.includes(Dn[t]))}const rb=864e5,Kt=e=>e<=0?0:e>1?1:e;function ob(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,i=o-r;return(n==="down"?i<0:i>0)?Kt((t-r)/i):s?1:0}function sb(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Kt((t-n)/(r-n))}const ic=.1,ac=.25;function ib(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ac?"off_track":n>=ic?"at_risk":"on_track"}function ab(e,t){if(t)return Kt(e/t)}function cb(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Kt(t.reduce((n,r)=>n+r,0)/t.length)}function ub(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??oc)*rb,o=t-n-r;return o>0?o:0}function lb(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function db(e){const t=new Map,n=[...e].sort((r,o)=>r.startedAt-o.startedAt);for(const r of n){const o=`${r.workType??""}|${r.scopeKey??""}`,s=t.get(o)??{workType:r.workType,scopeKey:r.scopeKey,scopeLabel:r.scopeLabel,seconds:0,hours:0,entryIds:[],from:r.startedAt,to:r.startedAt};s.seconds+=r.durationSeconds??0,s.hours=Math.round(s.seconds/3600*100)/100,s.entryIds.push(r.id),s.to=r.startedAt,t.set(o,s)}return[...t.values()]}function fb(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function pb(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function mb(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function gb(e){const t=Math.max(0,Math.floor(e)),n=s=>String(s).padStart(2,"0"),r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function cc(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function hb(e,t){const n=cc(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function yb(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function bb(e){return e.filter(t=>!t.archived).sort(uc)}function uc(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const lc=20,dc=20,Ye=300;function ce(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function fc(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ye)return t;const n=t.slice(0,Ye),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ye*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function _b(e,t){const n=fc(t.text),r=ce(n);if(!r||(e.examples??[]).some(i=>ce(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>ce(i.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const i=[...o];return i[s]={...i[s],corrected:!0,addedAt:t.addedAt},yo(i)}return yo([{...t,text:n},...o]).slice(0,dc)}function yo(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Ib(e,t){const n=ce(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>ce(s)===n)?r:[...r,t].slice(-lc),exampleCandidates:pc(e,t)}}function pc(e,t){const n=ce(t);return(e.exampleCandidates??[]).filter(r=>ce(r.text)!==n)}function mc(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Eb(e,t){return e.filter(n=>mc(n,t))}const gc=["apps","settings","wake"],$t="businessEntityId";function Sb(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...hc.map(s=>s.key),...gc,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Ab({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],i=a=>!!a&&(s.includes(a)||r&&a!=="apps"&&o.visible.includes(a));return i(t)?t:i(n)?n:s[0]??"apps"}const hc=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","goals","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function vb(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,i,...a]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...i?{app:i}:{},path:`/${a.join("/")}${o}`}}function Cb({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const yc=["invoice","credit_note"];function Tb(e){return!!e.issuedAt&&yc.includes(e.kindKey)}function kb(e,t="sales"){const n=i=>e.totals?.byRate?.find(a=>a.taxRateKey===i),r=e.issuedPaper?.counterparty,o=r?.address??e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" ");return{sourceApp:t,documentId:e.id,...e.businessEntityId?{path:`/apps/${t}/${G(e.kindKey).path}/${e.id}?${$t}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId,...e.number?{number:e.number}:{},counterparty:{companyId:r?.companyId||kt(e),...r?.number?{number:r.number}:{},name:r?.name??"",...r?.vatNumber?{vatNumber:r.vatNumber}:{},...r?.kvkNumber?{kvkNumber:r.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:ae(e.issuedAt??Date.now()),...e.dueAt?{dueDate:ae(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const a=e.taxOverrideKey??i.taxRateKey,c=n(a);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:a,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dimensions},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:ae(i.servicePeriod.from),to:ae(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Ob(e,t={}){const n=G(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0,byRate:[]};return{customer:{name:t.companyName??"",contact:t.contactName??"",vat_number:t.companyVatNumber??"",number:t.companyNumber??"",address:Nb(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:he(e.issuedAt),valid_until:he(e.expiresAt),due_date:he(e.dueAt),delivery_date:he(e.deliveredAt),period_from:he(e.periodFrom),period_to:he(e.periodTo),payment_term:e.paymentTerm?.label??"",reverse_charge:r.byRate.some(o=>o.kind==="reverse_charge"||o.taxRateKey==="reverse_charge"),note:e.introText??"",terms:e.termsText??""},totals:{net:J(r.netCents),tax:J(r.taxCents),gross:J(r.grossCents)}}}function Mb(e,t=[],n=bc){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=u=>t.find(d=>d.key===u)?.percent??0,s=(e.lines??[]).some(u=>u.kind==="product"&&(u.discountPercent??0)>0),i=u=>s?[u.discountPercent?[String(u.discountPercent).replace(".",","),"%"].join(""):""]:[],a={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},...s?[{label:n.discount,align:"right"}]:[],{label:n.net,align:"right"}],rows:(e.lines??[]).map(u=>u.kind==="text"?[u.name,"","",...s?[""]:[],""]:[Rb(u.name,u.description,u.optional,n.optional),Db(u,n),Vn(u)?"":u.pricePer?[J(u.unitPriceCents),n.per[u.pricePer]].join(" "):J(u.unitPriceCents),...i(u),J(u.netCents)])},c={block_id:"totals",type:"totals",rows:[{label:n.net,amount:J(r.netCents)},{label:n.gross,amount:J(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(u=>({label:`${n.tax} ${u.percent??o(u.taxRateKey)}%`,amount:J(u.taxCents)}))};return{lines:[a],totals:[c]}}const bc={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",discount:"Korting",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function Rb(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function Nb(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Db(e,t){const n=Vn(e);return n?[bo(n.amount),t.units[n.unit]??n.unit].join(" "):bo(e.quantity)}function bo(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function he(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function _c(e){const t=G(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:wb[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${G(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:_o[n]??_o.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"reverse_charge",type:"paragraph",text:"Btw verlegd. Btw-nummer afnemer: {customer.vat_number}."},{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:Io[n]??Io.quote}]}const xb=e=>({note:{key:`${G(e).key}.note`,exists:!0},period:{key:`${G(e).key}.period_from`,exists:!0},reverse_charge:{key:`${G(e).key}.reverse_charge`,exists:!0}}),wb={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},_o={quote:`Beste {customer.contact},
13
13
 
14
14
  Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
15
15
 
@@ -17,36 +17,36 @@ Hierbij de bevestiging van uw opdracht.`,invoice:`Beste {customer.contact},
17
17
 
18
18
  Hierbij onze factuur. Hieronder vindt u de specificatie.`,credit_note:`Beste {customer.contact},
19
19
 
20
- Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},_o={quote:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",order:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",invoice:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",credit_note:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld."},xb=bc("quote"),_c=["direct_debit","cash","card"],Ic=7,wb={steps:[{level:1,afterDays:7,templateKey:"dunning_reminder",channel:"email"},{level:2,afterDays:21,templateKey:"dunning_notice",channel:"email"},{level:3,afterDays:14,templateKey:"dunning_final",channel:"email"}],minOpenCents:2500},Ec=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function Sc(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0)||e.paymentMethod&&_c.includes(e.paymentMethod))return null;const r=[...t.steps].sort((a,c)=>a.level-c.level),o=r.find(a=>a.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,i=Ec(ae(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}const Ac=(e,t)=>e.dueAt!=null&&e.openCents>0&&!!e.paymentMethod&&_c.includes(e.paymentMethod)&&Ec(ae(e.dueAt),Ic)<t;function Pb(e,t,n){const r=[],o=[],s=[];for(const i of e){Ac(i,n)&&s.push(i);const a=Sc(i,t,n);a==="done"?o.push(i):a&&r.push(a)}return{due:r,waiting:o,uncollected:s}}const vc=Rt.map(e=>e.key),Cc="product",Tc="agreement";function kc(e,t){return`${e}:${t}`}function Lb(e){return`${Cc}:${e}`}function Oc(e,t){return`/apps/sales${e}?${Kt}=${encodeURIComponent(t)}`}function Kb(e,t){const n=e.businessEntityId||t;if(n)return Oc(`/${G(e.kindKey).path}/${e.id}`,n)}function $b(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${Kt}=${encodeURIComponent(n)}`:void 0}function Ub(e){return`${Tc}:${e}`}function Fb(e,t){const n=e.businessEntityId||t;return n?Oc(`/agreement/${e.id}`,n):void 0}function Bb(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return vc.includes(n)?e.slice(t+1):void 0}function jb(e){const t=new Set([kc(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.invoiceTo?.companyId&&t.add(`company:${e.invoiceTo.companyId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const qb=4;function Gb(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Wb(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const Vb=["cash","credit","direct_debit","card","other"],Mc=(e,t)=>!e.direction||e.direction===t;function Hb(e,t,n={}){const r=e.filter(s=>!s.archived&&Mc(s,t)),o=s=>s?r.find(i=>i.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Yb(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function zb(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Xb=[{code:"14D",label:"Binnen 14 dagen",method:"credit",dueDays:14,isDefault:!0,order:0},{code:"30D",label:"Binnen 30 dagen",method:"credit",dueDays:30,order:1},{code:"CONTANT",label:"Contant",method:"cash",dueDays:0,order:2}];function Er(e){return e.settlement?.state??"unpaid"}function Rc(e){const t=Er(e);return t==="paid"||t==="overpaid"}function Sr(e){return!!e.issuedAt&&e.status==="open"&&!Rc(e)}function Qb(e,t){return!Sr(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function Zb(e){return e.totals?.grossCents??0}function Jb(e,t){const n={};return t.postedAt&&!e.postedAt&&(n.postedAt=t.postedAt),t.externalId&&!(e.externalIds??[]).includes(t.externalId)&&(n.externalIds=[...e.externalIds??[],t.externalId]),t.number&&!e.number&&(n.number=t.number),t.payment&&t.asOf>(e.settlement?.asOf??0)&&(n.settlement={...t.payment,source:"books",asOf:t.asOf}),Object.keys(n).length?n:null}function e_(e,t,n){const r=Zb(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Nc=["current","d1_30","d31_60","d61_90","d90_plus"],t_=864e5;function n_(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/t_)}function r_(e,t){if(!Sr(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,i)=>!s||i.level>s.level?i:s,void 0),o=e.dueAt!=null?n_(ae(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:Tt(e),...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:Er(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{},...e.paymentTerm?.method?{paymentMethod:e.paymentTerm.method}:{}}}function Dc(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function o_(e){const t=Object.fromEntries(Nc.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[Dc(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const s_="receivables.company";function i_(e){const t=e.filter(r=>r.overdueDays>0),n=r=>r.reduce((o,s)=>o+s.openCents,0);return{count:e.length,openCents:n(e),overdueCount:t.length,overdueCents:n(t),oldestOverdueDays:Math.max(0,...t.map(r=>r.overdueDays)),dunningLevel:Math.max(0,...e.map(r=>r.dunningLevel))}}function a_(e){return e.type==="agent"}const xc=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function c_(e){return xc.includes(e)}const u_="WORK_COMMENT_ADDED",l_="WORK_ITEM_ASSIGNED",d_="WORK_ITEM_STATUS_CHANGED";function f_(e,t){const n=r=>{const o=new Date(r);return o.setHours(0,0,0,0),o.getTime()};return Math.round((n(e)-n(t))/Ri)}function p_(e,t){if(e.closedAt!=null)return{score:ie,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ie,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Re[s]>0&&(r+=Re[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=f_(e.dueDate,t.now);i<0?(r+=35,o.push("overdue")):i===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const $t=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],m_=$t.map(e=>e.key);function g_(e){return e?.types?.length?e.types:$t}function h_(e,t){return t.find(n=>n.key===e)}function y_(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function b_(...e){return e.map(t=>$t.find(n=>n.key===t)).filter(t=>!!t)}const wc="work_item",Pc="work_project",Lc="work_activity",__="work_cycle";function Kc(e){return`${wc}:${e}`}function Ar(e){return`${Pc}:${e}`}function I_(e){return`${Lc}:${e}`}function E_(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function S_(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function A_(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function v_(e,t=25){const n=new Set([Kc(e.id)]);e.projectId&&n.add(Ar(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function C_(e){return[Ar(e.id)]}const Ut=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],vr=Ut.map(e=>e.key);function $c(e){return e?.statuses?.length?e.statuses:Ut}function Uc(e,t){return t.find(n=>n.key===e)?.category??"todo"}function T_(e,t){return t.find(n=>n.key===e)}function k_(e){const t=$c(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Fc(t)[0]?.key??Ut[0].key}function Fc(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function O_(e,t){return Uc(e,t)==="done"}function Bc(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function M_(e,t){const n=Bc(e)||"status",r=new Set([...t,...vr]);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function R_(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,o)=>{if(!r.key){t.push({index:o,reason:"missing_key"});return}vr.includes(r.key)&&t.push({index:o,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:o,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}function N_(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function D_(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}const x_=["day","week","month"];function w_(e){const t=e;if(!t||!x_.includes(t.every))return;const n=Math.floor(Number(t.interval??1));if(!(!Number.isFinite(n)||n<1||n>365))return{every:t.every,interval:n}}function jc(e,t){const n=new Date(e);if(t.every==="day")n.setDate(n.getDate()+t.interval);else if(t.every==="week")n.setDate(n.getDate()+7*t.interval);else{const r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t.interval),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate()))}return n.getTime()}function P_(e,t,n){const r=jc(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function L_(e){return e.startDate??Number.MAX_SAFE_INTEGER}function K_(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const $_=["statusKeys","typeKeys","labels","priority","assignees"],U_=["blockedOnly","watchingOnly","reportedByMe"],F_=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],B_=["list","board","calendar","workload"],j_=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),q_=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function qc(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?j_.has(t)?"image":t==="application/pdf"?"pdf":q_.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const Te=1024*1024,Gc={image:5*Te,pdf:20*Te,text:1*Te,audio:20*Te},G_=25*Te,W_=5;function V_(e,t){const n=qc(e);return n==="unsupported"?"unsupported":t>Gc[n]?"too-large":null}const H_="ai-tool";function Y_(e){return e.access==="read"?"idempotent":e.reversible??"none"}function Cr(e){return e.access!=="read"&&e.effect!=="internal"}function Wc(e){return`${e.kind}:${e.id||e.url||e.title}`}function z_(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=Wc(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const X_="assist-source",Q_=["blocking","due","open"];function Z_(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Io={blocking:0,due:1,open:2};function J_(e,t){return Io[e.band??"open"]-Io[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const eI="bookable-source",tI="bookkeeping",nI={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},rI={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function oI(e){return`oc:${e}`}function sI(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function iI(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function aI(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Vc(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>uI(i,r[i.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(i=>i.intent));for(const i of e.extraIntents)s.has(i.intent)||(o.push(i),s.add(i.intent));return o}function Hc(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const o=t?.[r.intent];n[r.intent]=o??r.defaultEnabled??!0}return n}function cI(e,t){const n=Hc(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function uI(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function lI(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Vc(r,o))n.push({channel:r,description:o,capability:s})}return n}function dI(e,t){return t.filter(n=>n.capability.intent===e)}function Yc(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function fI(e,t){return Yc(e.scheme,t)}function pI(e,t,n){const r=[];for(const o of e)for(const s of n)s.capability.intent===t&&s.capability.targetSchemes.includes(o.scheme)&&r.push({channelIntent:s,endpoint:o});return r}function mI(e,t,n={}){let r=t,o=e;for(const[s,i]of Object.entries(n))r=r.split("{"+s+"}").join(String(i)),o+=" "+s+"="+encodeURIComponent(String(i));return r+" ["+o+"]"}const gI=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function hI(e){const t=gI.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}var zc=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(zc||{});const yI={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function bI(e){return e?yI[e]??"note":"note"}const _I="message_window",II="message_templates",EI={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},SI=(e,t)=>({intent:e,...t}),AI="remote_search",vI="message_reactions",CI={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},TI="connector",kI="context.collect";function OI(e,t){const n=t??MI(e),r=[];let o=[],s="",i=!1;for(let a=0;a<e.length;a++){const c=e[a];i?c==='"'&&e[a+1]==='"'?(s+='"',a++):c==='"'?i=!1:s+=c:c==='"'&&s===""?i=!0:c===n?(o.push(s),s=""):c===`
20
+ Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},Io={quote:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",order:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",invoice:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",credit_note:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld."},Pb=_c("quote"),Ic=["direct_debit","cash","card"],Ec=7,Lb={steps:[{level:1,afterDays:7,templateKey:"dunning_reminder",channel:"email"},{level:2,afterDays:21,templateKey:"dunning_notice",channel:"email"},{level:3,afterDays:14,templateKey:"dunning_final",channel:"email"}],minOpenCents:2500},Sc=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function Ac(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0)||e.paymentMethod&&Ic.includes(e.paymentMethod))return null;const r=[...t.steps].sort((a,c)=>a.level-c.level),o=r.find(a=>a.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,i=Sc(ae(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}const vc=(e,t)=>e.dueAt!=null&&e.openCents>0&&!!e.paymentMethod&&Ic.includes(e.paymentMethod)&&Sc(ae(e.dueAt),Ec)<t;function Kb(e,t,n){const r=[],o=[],s=[];for(const i of e){vc(i,n)&&s.push(i);const a=Ac(i,t,n);a==="done"?o.push(i):a&&r.push(a)}return{due:r,waiting:o,uncollected:s}}const Cc=Nt.map(e=>e.key),Tc="product",kc="agreement";function Oc(e,t){return`${e}:${t}`}function $b(e){return`${Tc}:${e}`}function Mc(e,t){return`/apps/sales${e}?${$t}=${encodeURIComponent(t)}`}function Ub(e,t){const n=e.businessEntityId||t;if(n)return Mc(`/${G(e.kindKey).path}/${e.id}`,n)}function Fb(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${$t}=${encodeURIComponent(n)}`:void 0}function Bb(e){return`${kc}:${e}`}function jb(e,t){const n=e.businessEntityId||t;return n?Mc(`/agreement/${e.id}`,n):void 0}function qb(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return Cc.includes(n)?e.slice(t+1):void 0}function Gb(e){const t=new Set([Oc(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.invoiceTo?.companyId&&t.add(`company:${e.invoiceTo.companyId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Wb=4;function Vb(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Hb(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const Yb=["cash","credit","direct_debit","card","other"],Rc=(e,t)=>!e.direction||e.direction===t;function zb(e,t,n={}){const r=e.filter(s=>!s.archived&&Rc(s,t)),o=s=>s?r.find(i=>i.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Xb(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Qb(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Zb=[{code:"14D",label:"Binnen 14 dagen",method:"credit",dueDays:14,isDefault:!0,order:0},{code:"30D",label:"Binnen 30 dagen",method:"credit",dueDays:30,order:1},{code:"CONTANT",label:"Contant",method:"cash",dueDays:0,order:2}];function Sr(e){return e.settlement?.state??"unpaid"}function Nc(e){const t=Sr(e);return t==="paid"||t==="overpaid"}function Ar(e){return!!e.issuedAt&&e.status==="open"&&!Nc(e)}function Jb(e,t){return!Ar(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function e_(e){return e.totals?.grossCents??0}function t_(e,t){const n={};return t.postedAt&&!e.postedAt&&(n.postedAt=t.postedAt),t.externalId&&!(e.externalIds??[]).includes(t.externalId)&&(n.externalIds=[...e.externalIds??[],t.externalId]),t.number&&!e.number&&(n.number=t.number),t.payment&&t.asOf>(e.settlement?.asOf??0)&&(n.settlement={...t.payment,source:"books",asOf:t.asOf}),Object.keys(n).length?n:null}function n_(e,t,n){const r=e_(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Dc=["current","d1_30","d31_60","d61_90","d90_plus"],r_=864e5;function o_(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/r_)}function s_(e,t){if(!Ar(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,i)=>!s||i.level>s.level?i:s,void 0),o=e.dueAt!=null?o_(ae(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:kt(e),...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:Sr(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{},...e.paymentTerm?.method?{paymentMethod:e.paymentTerm.method}:{}}}function xc(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function i_(e){const t=Object.fromEntries(Dc.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[xc(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const a_="receivables.company";function c_(e){const t=e.filter(r=>r.overdueDays>0),n=r=>r.reduce((o,s)=>o+s.openCents,0);return{count:e.length,openCents:n(e),overdueCount:t.length,overdueCents:n(t),oldestOverdueDays:Math.max(0,...t.map(r=>r.overdueDays)),dunningLevel:Math.max(0,...e.map(r=>r.dunningLevel))}}function u_(e){return e.type==="agent"}const wc=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function l_(e){return wc.includes(e)}const d_="WORK_COMMENT_ADDED",f_="WORK_ITEM_ASSIGNED",p_="WORK_ITEM_STATUS_CHANGED";function m_(e,t){const n=r=>{const o=new Date(r);return o.setHours(0,0,0,0),o.getTime()};return Math.round((n(e)-n(t))/Ni)}function g_(e,t){if(e.closedAt!=null)return{score:ie,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ie,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Ne[s]>0&&(r+=Ne[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=m_(e.dueDate,t.now);i<0?(r+=35,o.push("overdue")):i===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const Ut=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],h_=Ut.map(e=>e.key);function y_(e){return e?.types?.length?e.types:Ut}function b_(e,t){return t.find(n=>n.key===e)}function __(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function I_(...e){return e.map(t=>Ut.find(n=>n.key===t)).filter(t=>!!t)}const Pc="work_item",Lc="work_project",E_="work.pipeline.ensure",S_=e=>!e.archived&&(e.types??[]).some(t=>t.key==="deal"),Kc="work_activity",A_="work_cycle";function $c(e){return`${Pc}:${e}`}function vr(e){return`${Lc}:${e}`}function v_(e){return`${Kc}:${e}`}function C_(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function T_(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function k_(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function O_(e,t=25){const n=new Set([$c(e.id)]);e.projectId&&n.add(vr(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function M_(e){return[vr(e.id)]}const Ft=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],Cr=Ft.map(e=>e.key);function Uc(e){return e?.statuses?.length?e.statuses:Ft}function Fc(e,t){return t.find(n=>n.key===e)?.category??"todo"}function R_(e,t){return t.find(n=>n.key===e)}function N_(e){const t=Uc(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Bc(t)[0]?.key??Ft[0].key}function Bc(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function D_(e,t){return Fc(e,t)==="done"}function jc(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function x_(e,t){const n=jc(e)||"status",r=new Set([...t,...Cr]);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function w_(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,o)=>{if(!r.key){t.push({index:o,reason:"missing_key"});return}Cr.includes(r.key)&&t.push({index:o,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:o,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}function P_(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function L_(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}const K_=["day","week","month"];function $_(e){const t=e;if(!t||!K_.includes(t.every))return;const n=Math.floor(Number(t.interval??1));if(!(!Number.isFinite(n)||n<1||n>365))return{every:t.every,interval:n}}function qc(e,t){const n=new Date(e);if(t.every==="day")n.setDate(n.getDate()+t.interval);else if(t.every==="week")n.setDate(n.getDate()+7*t.interval);else{const r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t.interval),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate()))}return n.getTime()}function U_(e,t,n){const r=qc(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function F_(e){return e.startDate??Number.MAX_SAFE_INTEGER}function B_(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const j_=["statusKeys","typeKeys","labels","priority","assignees"],q_=["blockedOnly","watchingOnly","reportedByMe"],G_=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],W_=["list","board","calendar","workload"],V_=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),H_=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Gc(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?V_.has(t)?"image":t==="application/pdf"?"pdf":H_.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ke=1024*1024,Wc={image:5*ke,pdf:20*ke,text:1*ke,audio:20*ke},Y_=25*ke,z_=5;function X_(e,t){const n=Gc(e);return n==="unsupported"?"unsupported":t>Wc[n]?"too-large":null}const Q_="ai-tool";function Z_(e){return e.access==="read"?"idempotent":e.reversible??"none"}function Tr(e){return e.access!=="read"&&e.effect!=="internal"}function Vc(e){return`${e.kind}:${e.id||e.url||e.title}`}function J_(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=Vc(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const eI="assist-source",tI=["blocking","due","open"];function nI(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Eo={blocking:0,due:1,open:2};function rI(e,t){return Eo[e.band??"open"]-Eo[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const oI="bookable-source",sI="bookkeeping",iI={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},aI={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function cI(e){return`oc:${e}`}function uI(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function lI(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function dI(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Hc(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>pI(i,r[i.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(i=>i.intent));for(const i of e.extraIntents)s.has(i.intent)||(o.push(i),s.add(i.intent));return o}function Yc(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const o=t?.[r.intent];n[r.intent]=o??r.defaultEnabled??!0}return n}function fI(e,t){const n=Yc(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function pI(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function mI(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Hc(r,o))n.push({channel:r,description:o,capability:s})}return n}function gI(e,t){return t.filter(n=>n.capability.intent===e)}function zc(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function hI(e,t){return zc(e.scheme,t)}function yI(e,t,n){const r=[];for(const o of e)for(const s of n)s.capability.intent===t&&s.capability.targetSchemes.includes(o.scheme)&&r.push({channelIntent:s,endpoint:o});return r}function bI(e,t,n={}){let r=t,o=e;for(const[s,i]of Object.entries(n))r=r.split("{"+s+"}").join(String(i)),o+=" "+s+"="+encodeURIComponent(String(i));return r+" ["+o+"]"}const _I=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function II(e){const t=_I.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}var Xc=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(Xc||{});const EI={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function SI(e){return e?EI[e]??"note":"note"}const AI="message_window",vI="message_templates",CI={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},TI=(e,t)=>({intent:e,...t}),kI="remote_search",OI="message_reactions",MI={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},RI="connector",NI="context.collect";function DI(e,t){const n=t??xI(e),r=[];let o=[],s="",i=!1;for(let a=0;a<e.length;a++){const c=e[a];i?c==='"'&&e[a+1]==='"'?(s+='"',a++):c==='"'?i=!1:s+=c:c==='"'&&s===""?i=!0:c===n?(o.push(s),s=""):c===`
21
21
  `||c==="\r"?(c==="\r"&&e[a+1]===`
22
- `&&a++,o.push(s),s="",o.some(u=>u!=="")&&r.push(o),o=[]):s+=c}return o.push(s),o.some(a=>a!=="")&&r.push(o),r}function MI(e){const t=e.search(/\r?\n/),n=t===-1?e:e.slice(0,t),r=o=>n.split(o).length-1;return[";",","," "].reduce((o,s)=>r(s)>r(o)?s:o,";")}const RI={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function NI(e){const t=e[0]===239&&e[1]===187&&e[2]===191?3:0,n=[];let r=t;for(;r<e.length;){const o=e[r],s=o<128?0:o>>5===6?1:o>>4===14?2:o>>3===30?3:-1;if(s<0||r+s>=e.length)return Eo(e,t);let i=s===0?o:o&63>>s;for(let a=1;a<=s;a++){const c=e[r+a];if(c>>6!==2)return Eo(e,t);i=i<<6|c&63}n.push(i),r+=s+1}return Xc(n)}function Eo(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(RI[e[r]]??e[r]);return Xc(n)}function Xc(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}const w=e=>({type:"string",description:e}),x=e=>({type:"number",description:e}),Ye=e=>({type:"boolean",description:e}),X=w("Sheet name. Omit for the sheet the user is looking at."),So=w("Slide id, as `inspect` reports it.");function D(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const Oe={undoable:!1,visible:!0},$={undoable:!0,visible:!0},Ao={undoable:!1,visible:!0},It={undoable:!1,visible:!1},DI=[D("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:x("1-based page number.")},["page"],Oe),D("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:w("Text to find."),next:Ye("Jump to the next match instead of the first.")},["query"],Oe),D("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],Oe),D("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:w("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],$),D("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],Ao),D("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Ao),D("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The note's text."),left:x("Distance from the left edge, in PDF points (72 per inch)."),top:x("Distance from the top edge, in PDF points."),width:x("Box width in points. Omit for a sensible default."),height:x("Box height in points. Omit for a sensible default."),fontSize:x("Font size in points. Omit for 12.")},["page","text","left","top"],It),D("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The exact phrase to highlight, as it appears in the page's text."),occurrence:x("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],It)],xI=[D("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:X,range:w("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],$),D("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:X,range:w("A1 notation."),formula:w("Including the leading `=`.")},["range","formula"],$),D("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:X,range:w("A1 notation."),bold:Ye("Bold on or off."),italic:Ye("Italic on or off."),fontSize:x("Point size."),fontColor:w("CSS colour, e.g. `#b91c1c`."),background:w("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:w("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],$),D("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:X,at:x("1-based row number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:X,at:x("1-based first row to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:X,at:x("1-based column number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:X,at:x("1-based first column to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:X,range:w("A1 notation covering the rows to sort, header excluded."),column:x("1-based column *within the range*, not within the sheet."),ascending:Ye("Ascending. Omit for ascending.")},["range","column"],$),D("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:w("Name for the new sheet.")},["name"],$),D("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:w("Current name."),name:w("New name.")},["sheet","name"],$),D("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:w("Name of the sheet to delete.")},["sheet"],$),D("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:X,range:w("A1 notation to select. Omit to only switch sheets.")},[],Oe)],wI=[D("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:x("The offset the paragraph starts at, exactly as `inspect` prints it."),text:w("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],$),D("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:x("Character offset where the replaced text starts, as `inspect` reports offsets."),end:x("Character offset just past the last character to replace."),text:w("The replacement text. A newline starts a new paragraph.")},["start","end","text"],$),D("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:x("Character offset, as `inspect` reports offsets."),text:w("The text to insert.")},["index","text"],$),D("word.appendText",["word"],"Add text at the end of the document.",{text:w("The text to append.")},["text"],$),D("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:w("Paragraph text. Newlines start further paragraphs."),index:x("Character offset to insert at. Omit for the end of the document.")},[],$),D("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:x("Start character offset."),end:x("End character offset. Omit for a caret.")},["start"],Oe)],PI=[D("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:So,element:w("Element id, as `inspect` reports it."),text:w("The new text.")},["slide","element","text"],It),D("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:So,element:w("Element id."),left:x("Distance from the left edge, in pixels."),top:x("Distance from the top edge, in pixels."),width:x("Width in pixels."),height:x("Height in pixels.")},["slide","element"],It)],Tr=[...DI,...xI,...wI,...PI];function LI(e){return Tr.filter(t=>t.kinds.includes(e))}function KI(e){return Tr.find(t=>t.op===e)}const vo=/(?: {2,}|\\)$/,$I=/^\*\*([^*]+)\*\*\s+(.*)$/;function Co(e){const t=$I.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function UI(e){const t=(e??"").replace(/\r\n/g,`
22
+ `&&a++,o.push(s),s="",o.some(u=>u!=="")&&r.push(o),o=[]):s+=c}return o.push(s),o.some(a=>a!=="")&&r.push(o),r}function xI(e){const t=e.search(/\r?\n/),n=t===-1?e:e.slice(0,t),r=o=>n.split(o).length-1;return[";",","," "].reduce((o,s)=>r(s)>r(o)?s:o,";")}const wI={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function PI(e){const t=e[0]===239&&e[1]===187&&e[2]===191?3:0,n=[];let r=t;for(;r<e.length;){const o=e[r],s=o<128?0:o>>5===6?1:o>>4===14?2:o>>3===30?3:-1;if(s<0||r+s>=e.length)return So(e,t);let i=s===0?o:o&63>>s;for(let a=1;a<=s;a++){const c=e[r+a];if(c>>6!==2)return So(e,t);i=i<<6|c&63}n.push(i),r+=s+1}return Qc(n)}function So(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(wI[e[r]]??e[r]);return Qc(n)}function Qc(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}const w=e=>({type:"string",description:e}),x=e=>({type:"number",description:e}),ze=e=>({type:"boolean",description:e}),X=w("Sheet name. Omit for the sheet the user is looking at."),Ao=w("Slide id, as `inspect` reports it.");function D(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const Me={undoable:!1,visible:!0},$={undoable:!0,visible:!0},vo={undoable:!1,visible:!0},Et={undoable:!1,visible:!1},LI=[D("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:x("1-based page number.")},["page"],Me),D("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:w("Text to find."),next:ze("Jump to the next match instead of the first.")},["query"],Me),D("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],Me),D("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:w("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],$),D("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],vo),D("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],vo),D("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The note's text."),left:x("Distance from the left edge, in PDF points (72 per inch)."),top:x("Distance from the top edge, in PDF points."),width:x("Box width in points. Omit for a sensible default."),height:x("Box height in points. Omit for a sensible default."),fontSize:x("Font size in points. Omit for 12.")},["page","text","left","top"],Et),D("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The exact phrase to highlight, as it appears in the page's text."),occurrence:x("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],Et)],KI=[D("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:X,range:w("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],$),D("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:X,range:w("A1 notation."),formula:w("Including the leading `=`.")},["range","formula"],$),D("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:X,range:w("A1 notation."),bold:ze("Bold on or off."),italic:ze("Italic on or off."),fontSize:x("Point size."),fontColor:w("CSS colour, e.g. `#b91c1c`."),background:w("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:w("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],$),D("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:X,at:x("1-based row number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:X,at:x("1-based first row to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:X,at:x("1-based column number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:X,at:x("1-based first column to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:X,range:w("A1 notation covering the rows to sort, header excluded."),column:x("1-based column *within the range*, not within the sheet."),ascending:ze("Ascending. Omit for ascending.")},["range","column"],$),D("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:w("Name for the new sheet.")},["name"],$),D("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:w("Current name."),name:w("New name.")},["sheet","name"],$),D("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:w("Name of the sheet to delete.")},["sheet"],$),D("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:X,range:w("A1 notation to select. Omit to only switch sheets.")},[],Me)],$I=[D("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:x("The offset the paragraph starts at, exactly as `inspect` prints it."),text:w("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],$),D("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:x("Character offset where the replaced text starts, as `inspect` reports offsets."),end:x("Character offset just past the last character to replace."),text:w("The replacement text. A newline starts a new paragraph.")},["start","end","text"],$),D("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:x("Character offset, as `inspect` reports offsets."),text:w("The text to insert.")},["index","text"],$),D("word.appendText",["word"],"Add text at the end of the document.",{text:w("The text to append.")},["text"],$),D("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:w("Paragraph text. Newlines start further paragraphs."),index:x("Character offset to insert at. Omit for the end of the document.")},[],$),D("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:x("Start character offset."),end:x("End character offset. Omit for a caret.")},["start"],Me)],UI=[D("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Ao,element:w("Element id, as `inspect` reports it."),text:w("The new text.")},["slide","element","text"],Et),D("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:Ao,element:w("Element id."),left:x("Distance from the left edge, in pixels."),top:x("Distance from the top edge, in pixels."),width:x("Width in pixels."),height:x("Height in pixels.")},["slide","element"],Et)],kr=[...LI,...KI,...$I,...UI];function FI(e){return kr.filter(t=>t.kinds.includes(e))}function BI(e){return kr.find(t=>t.op===e)}const Co=/(?: {2,}|\\)$/,jI=/^\*\*([^*]+)\*\*\s+(.*)$/;function To(e){const t=jI.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function qI(e){const t=(e??"").replace(/\r\n/g,`
23
23
  `).split(`
24
- `),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(p,g)=>{r&&r.style!==p&&o(),r?r.items.push(Co(g)):r={style:p,items:[Co(g)]}};let i=[],a=[];const c=()=>{if(i.length){const p=i.join("").trim();p&&n.push({type:"paragraph",text:p}),i=[]}},u=()=>{a.length&&(n.push({type:"quote",text:a.join(`
24
+ `),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(p,g)=>{r&&r.style!==p&&o(),r?r.items.push(To(g)):r={style:p,items:[To(g)]}};let i=[],a=[];const c=()=>{if(i.length){const p=i.join("").trim();p&&n.push({type:"paragraph",text:p}),i=[]}},u=()=>{a.length&&(n.push({type:"quote",text:a.join(`
25
25
  `)}),a=[])},d=()=>{c(),u(),o()};let l=0;for(;l<t.length;){const p=t[l]??"",g=p.match(/^```(\w*)\s*$/);if(g){d();const h=[];for(l++;l<t.length&&!/^```\s*$/.test(t[l]??"");)h.push(t[l]??""),l++;l++,n.push({type:"code",...g[1]?{lang:g[1]}:{},text:h.join(`
26
- `)});continue}const f=p.match(/^(#{1,3})\s+(.*)$/);if(f){d(),n.push({type:"heading",level:f[1].length,text:f[2].trim()}),l++;continue}const m=p.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(m){d(),n.push({type:"image",url:m[2],...m[1]?{alt:m[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(p)){c(),u(),s("bulleted",p.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(p)){c(),u(),s("numbered",p.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(p)){c(),o(),a.push(p.replace(/^>\s?/,"")),l++;continue}if(p.trim()===""){d(),l++;continue}u(),o();const _=vo.test(p);i.push(p.replace(vo,"").trim()+(_?`
27
- `:" ")),l++}return d(),n}function FI(e,t){return Fn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
26
+ `)});continue}const f=p.match(/^(#{1,3})\s+(.*)$/);if(f){d(),n.push({type:"heading",level:f[1].length,text:f[2].trim()}),l++;continue}const m=p.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(m){d(),n.push({type:"image",url:m[2],...m[1]?{alt:m[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(p)){c(),u(),s("bulleted",p.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(p)){c(),u(),s("numbered",p.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(p)){c(),o(),a.push(p.replace(/^>\s?/,"")),l++;continue}if(p.trim()===""){d(),l++;continue}u(),o();const _=Co.test(p);i.push(p.replace(Co,"").trim()+(_?`
27
+ `:" ")),l++}return d(),n}function GI(e,t){return Bn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
28
28
 
29
- `).trim()}const BI="documents.describe",jI="documents.inspect",qI="documents.apply";function GI(e){const t=e.indexOf(":");if(t!==-1)return e.slice(0,t);const n=e.indexOf(".");return n===-1?e:e.slice(0,n)}const WI="installation-id";function VI(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function HI(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const To="main",ke=e=>`${e.app}:${e.entry}`,Zt=e=>ke({app:e.app,entry:e.entry.id}),ko=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function YI(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:i}=e,a=new Set(t.map(S=>S.name)),c=new Map(r.map(S=>[S.key,S])),u=new Set(n.map(S=>S.key)),d=new Map,l=new Map,p=new Map;for(const S of t)for(const k of S.nav??[])for(const P of k.entries){const B={app:S.name,entry:P};if(d.set(Zt(B),B),k.workspace!=="apps"){l.set(k.workspace,[...l.get(k.workspace)??[],{item:B,section:k.section}]);continue}const z=p.get(S.name)??[],W=k.section??To;let te=z.find(L=>L.key===W);te||(te={key:W,items:[]},k.section&&(te.label={key:`${S.name}:section_${k.section}`}),z.push(te)),te.items.push(B),p.set(S.name,z)}const g=S=>{const k=c.get(S.key),P=new Map(S.sections.map(L=>[L,[]]));for(const{item:L,section:Y}of l.get(S.key)??[]){const oe=Y&&P.has(Y)?Y:S.sections[0];P.get(oe)?.push(L)}const B=k?.sections??[],z=new Set(B.flatMap(L=>(L.entries??[]).map(ke))),W=new Set((k?.excluded??[]).map(ke));return[...B.map(L=>L.key),...S.sections.filter(L=>!B.some(Y=>Y.key===L))].map(L=>{const Y=B.find(R=>R.key===L),oe=(Y?.entries??[]).flatMap(R=>d.get(ke(R))??[]),Ke=(P.get(L)??[]).filter(R=>!z.has(Zt(R)));return{key:L,label:Y?.label?{text:Y.label}:{key:`section_${L}`},items:[...oe,...Ke].filter(R=>!W.has(Zt(R)))}})},f=S=>(S.sections??[]).map(k=>({key:k.key,...k.label?{label:{text:k.label}}:{},items:(k.entries??[]).flatMap(P=>d.get(ke(P))??[])})),m=[...n.filter(S=>a.has(S.owner)).map(S=>({key:S.key,label:{key:`workspace_${S.key}`},icon:S.icon,order:S.order,sections:g(S)})),...r.filter(S=>!u.has(S.key)).map(S=>({key:S.key,label:{text:S.label??S.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:f(S)}))],_=new Set(m.flatMap(S=>[...ko(S.sections)])),h=S=>S.map(k=>({...k,items:k.items.filter(P=>(P.entry.permissions??[]).every(i))})).filter(k=>k.items.length>0),y=S=>o.hidden.includes(S)?!1:o.shown.includes(S)?!0:b(S),b=S=>{const k=c.get(S);if(k?.visibleByDefault===!1)return!1;const P=k?.audience?.teamIds;return!P||P.some(B=>s.includes(B))},I=m.map(S=>{const k=c.get(S.key);return{...S,label:k?.label?{text:k.label}:S.label,icon:k?.icon??S.icon,order:k?.order??S.order}}).sort((S,k)=>S.order-k.order),v=I.map(({order:S,...k})=>{const P=u.has(k.key)?"default":"own";return{...k,group:"workspaces",kind:P,customized:P==="default"&&c.has(k.key),visible:y(k.key),visibleByDefault:b(k.key)}}),T=I.filter(S=>y(S.key)).map(S=>({...S,sections:h(S.sections)})).filter(S=>S.sections.length>0).map(({order:S,...k})=>({...k,group:"workspaces"})),O=new Map;for(const S of t){const P=[...new Map((S.nav??[]).flatMap(z=>z.entries.map(W=>[W.id,W]))).values()].map(z=>({app:S.name,entry:z})),B=h(p.get(S.name)??[{key:To,items:P}]);B.length!==0&&O.set(S.name,{key:"apps",app:S.name,group:"apps",label:{text:S.displayName},icon:S.icon??"app-window",sections:B})}const E=[...O.values()].filter(S=>S.app&&(p.has(S.app)||!_.has(S.app))).sort((S,k)=>Oo(S).localeCompare(Oo(k))),M=new Map(n.map(S=>[S.key,S.owner])),F={};for(const S of T)for(const k of ko(S.sections))F[k]??=[],M.get(S.key)===k?F[k].unshift(S.key):F[k].push(S.key);for(const S of E)S.app&&(F[S.app]=[...F[S.app]??[],"apps"]);return{workspaces:[...T,...E],all:v,index:{visible:T.map(S=>S.key),byApp:F},ownColumn:S=>O.get(S),isWorkspaceKey:S=>u.has(S)||c.has(S)}}const Oo=e=>"text"in e.label?e.label.text:e.label.key,zI="notification-source",XI=(e,t)=>`${e}.pref.${t}`,QI={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","calendar.read","calendar.write","channel.read","channel.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write"],context:["attribute.read","attribute.write","custom-field.read","custom-field.write","kind.read","kind.write","memory.read","memory.write","reaction.read","reaction.write","topic.read","topic.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},kr=9e4,Qc=["out_of_office"],Zc=e=>Qc.includes(e);function ZI(e,t,n){const r=n-e<kr,o=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!o?.status)return{online:r,status:r?"available":"offline"};const s=o.status;return!r&&!Zc(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function JI(e,t){const n=t-e.lastSeenAt<kr,r=n||Zc(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function e0(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function t0(e){return e.providerAvailable&&e.allowed}const n0="provisioning-source",r0={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status",subscriptions:"/provisioning/subscriptions",accounts:"/provisioning/accounts",catalog:"/provisioning/catalog",prepare:"/provisioning/prepare"};function o0(e){const t=`${e.app}:${e.offer}`;return e.sku?`${t}:${e.sku}`:t}function s0(e,t){return e.app!==t.app||e.offer!==t.offer?!1:!e.sku||!t.sku||e.sku===t.sku}function i0(e,t){const n=[];for(const r of e){if(r.phase==="fulfillment")continue;const o=!!t[r.key]?.trim();n.push({kind:"answer",key:r.key,label:r.label,type:r.type??"text",before:r.phase==="qualify"?"quote":"order",...r.required?{required:!0}:{},...r.options?{options:r.options.map(s=>({key:s.value,label:s.label}))}:{},met:o||!r.required})}return{requirements:n}}const a0="resources.describe",c0="resources.search",u0="resources.resolve",l0="resources.attached";function d0(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const f0="/provider/scope/related",p0="/provider/scope/read",m0="/provider/scope/acts",Jc="auth";function eu(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const De="/settings";function g0(e){return typeof e=="string"&&(e===De||e.startsWith(`${De}/`))}function h0(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?De:`${De}/${e.slice(0,t)}/${e.slice(t+1)}`}function y0(e){return typeof e!="string"||e===""||e==="/"?!0:eu(e)===Jc}function b0(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tu(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${b0(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function nu(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,i)=>{if(s.startsWith(":")){const a=s.endsWith("?")?s.slice(1,-1):s.slice(1),c=r[i];c&&(o[a]=c)}}),o}function ru(e){return e.publicBasePath??`/apps/${e.name}`}function _0(e){const t=[];for(const n of e){if(!n?.name)continue;const r=ru(n);for(const o of n.routes??[]){if(!o.public)continue;const s=o.path==="/"?"":o.path;t.push({appName:n.name,resource:o.resource,pattern:`${r}${s}`,props:o.props})}}return t}function ou(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let o=0;o<Math.min(n.length,r.length);o++){const s=n[o].startsWith(":"),i=r[o].startsWith(":");if(s!==i)return i}return n.length>r.length}function su(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)tu(r.pattern).test(e)&&(!n||ou(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...nu(n.pattern,e)}}:null}function I0(e,t){return su(e,t)!==null}const E0=10*1024*1024,S0=25*1024*1024,A0="sync-target",v0=20;function Or(e,t){const n=Array.isArray(t)?t.find(r=>r.name===e.name)?.policy:void 0;return n?n!=="read":e.access?e.access!=="read":!0}function iu(e,t,n){return Or(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?Cr(e):!0:!1}function C0(e){return e.produces==="draft"}function T0(e,t){if(t.allowed){const n=t.personalTools==="allow"&&e.personal===!0;if(!t.allowed.has(e.name)&&!n)return"hidden"}return t.narrow&&!t.narrow.has(e.name)||!t.attended&&(e.personal===!0||e.surface==="interactive")||t.readOnly&&e.access!=="read"||t.mode==="ask"&&Or(e)||t.mode==="draft"&&(Cr(e)||e.access!=="read"&&!C0(e))?"hidden":t.gate&&iu(e,t.gate,t.policy)?"held":"free"}const k0={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},au=e=>{let t=e;return Object.values(k0).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},cu=6e4,uu=8e3,lu=2,du=.4,O0=3,M0=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function fu(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<O0||M0.has(n)||t.add(n);return[...t]}function pu(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let o=0;for(const s of r)n.has(s)||(o+=1);return o/r.size}function mu(e,t=cu){const n=e.filter(i=>!i.partial&&typeof i.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((i,a)=>Math.max(i,a.endedAt??0),0)-t;return{text:n.filter(i=>(i.endedAt??0)>=o).map(i=>au(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const gu=60;function R0(e,t,n=gu){const r=new Set(e),o=[...e];for(const s of t)!s||r.has(s)||(r.add(s),o.push(s));return o.slice(-n)}function N0(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<uu)return{trigger:!1,reason:"too_soon"};const o=mu(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<lu)return{trigger:!1,reason:"too_few_new"};const i=fu(o.text);return i.length?r.lastQueryTerms?.length&&pu(i,r.lastQueryTerms)<du?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const D0=["personal","organization","connections","flows","work","administration","ai"],x0="navNotice",Ft={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},hu="NL",w0=15,P0=8,L0=Array.from(new Set(Object.values(Ft).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Mo(e){if(e)return Ft[e.trim().toUpperCase()]}function ze(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Ro(e){if(e.length>w0)return null;for(const t of L0){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Ft)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(ze(s,r))return`+${t}${s}`}return null}return e.length<P0?null:`+${e}`}function K0(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function $0(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function Dn(e,t){if(!e)return null;const n=K0(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Ro(o);if(o.startsWith("00"))return Ro(o.slice(2));const s=Mo(t)??Mo(hu);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return ze(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(ze(a,s))return`+${s.callingCode}${a}`}return!i&&ze(o,s)?`+${s.callingCode}${o}`:null}function U0(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function Mr(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function F0(e){const t=Mr(e);return t?t.slice(t.lastIndexOf("@")+1):null}const B0=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function yu(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return B0.has(n)&&t.length>=3?t.slice(-3).join("."):n}const bu=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function j0(e){const t=yu(e);return t?bu.has(t):!1}function q0(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function G0(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=Dn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=Dn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=Mr(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const W0=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],No=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,V0=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function H0(e){const t=e.split(`
30
- `);for(let n=0;n<t.length;n++)if(V0.test(t[n])||No.test(t[n])&&t.slice(n+1,n+4).some(r=>No.test(r)))return t.slice(0,n).join(`
31
- `).trim();return e}const Y0=/^(?:https?:|mailto:|tel:)/i,z0=/^(?:https?:|cid:|data:image\/)/i;function Jt(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const X0=/(!\[[^\]]*\]\([^)]*\))/;function Do(e){return e.replace(/\s+/g," ").trim().split(X0).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function en(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Q0(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Jt(r,"src");return z0.test(o)?`![${Do(Jt(r,"alt"))}](${en(o)})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=Do(o.replace(/<[^>]*>/g,"")),i=Jt(r,"href");return Y0.test(i)?`[${s||en(i)}](${en(i)})`:s})}const Z0=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,J0=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,eE=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function tE(e,t){return/<table\b/i.test(e)||e.includes(`
29
+ `).trim()}const WI="documents.describe",VI="documents.inspect",HI="documents.apply";function YI(e){const t=e.indexOf(":");if(t!==-1)return e.slice(0,t);const n=e.indexOf(".");return n===-1?e:e.slice(0,n)}const zI="installation-id";function XI(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function QI(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const ko="main",Oe=e=>`${e.app}:${e.entry}`,Jt=e=>Oe({app:e.app,entry:e.entry.id}),Oo=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function ZI(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:i}=e,a=new Set(t.map(S=>S.name)),c=new Map(r.map(S=>[S.key,S])),u=new Set(n.map(S=>S.key)),d=new Map,l=new Map,p=new Map;for(const S of t)for(const k of S.nav??[])for(const P of k.entries){const B={app:S.name,entry:P};if(d.set(Jt(B),B),k.workspace!=="apps"){l.set(k.workspace,[...l.get(k.workspace)??[],{item:B,section:k.section}]);continue}const z=p.get(S.name)??[],W=k.section??ko;let te=z.find(L=>L.key===W);te||(te={key:W,items:[]},k.section&&(te.label={key:`${S.name}:section_${k.section}`}),z.push(te)),te.items.push(B),p.set(S.name,z)}const g=S=>{const k=c.get(S.key),P=new Map(S.sections.map(L=>[L,[]]));for(const{item:L,section:Y}of l.get(S.key)??[]){const oe=Y&&P.has(Y)?Y:S.sections[0];P.get(oe)?.push(L)}const B=k?.sections??[],z=new Set(B.flatMap(L=>(L.entries??[]).map(Oe))),W=new Set((k?.excluded??[]).map(Oe));return[...B.map(L=>L.key),...S.sections.filter(L=>!B.some(Y=>Y.key===L))].map(L=>{const Y=B.find(O=>O.key===L),oe=(Y?.entries??[]).flatMap(O=>d.get(Oe(O))??[]),$e=(P.get(L)??[]).filter(O=>!z.has(Jt(O))).sort((O,K)=>(O.entry.order??0)-(K.entry.order??0));return{key:L,label:Y?.label?{text:Y.label}:{key:`section_${L}`},items:[...oe,...$e].filter(O=>!W.has(Jt(O)))}})},f=S=>(S.sections??[]).map(k=>({key:k.key,...k.label?{label:{text:k.label}}:{},items:(k.entries??[]).flatMap(P=>d.get(Oe(P))??[])})),m=[...n.filter(S=>a.has(S.owner)).map(S=>({key:S.key,label:{key:`workspace_${S.key}`},icon:S.icon,order:S.order,sections:g(S)})),...r.filter(S=>!u.has(S.key)).map(S=>({key:S.key,label:{text:S.label??S.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:f(S)}))],_=new Set(m.flatMap(S=>[...Oo(S.sections)])),h=S=>S.map(k=>({...k,items:k.items.filter(P=>(P.entry.permissions??[]).every(i))})).filter(k=>k.items.length>0),y=S=>o.hidden.includes(S)?!1:o.shown.includes(S)?!0:b(S),b=S=>{const k=c.get(S);if(k?.visibleByDefault===!1)return!1;const P=k?.audience?.teamIds;return!P||P.some(B=>s.includes(B))},I=m.map(S=>{const k=c.get(S.key);return{...S,label:k?.label?{text:k.label}:S.label,icon:k?.icon??S.icon,order:k?.order??S.order}}).sort((S,k)=>S.order-k.order),v=I.map(({order:S,...k})=>{const P=u.has(k.key)?"default":"own";return{...k,group:"workspaces",kind:P,customized:P==="default"&&c.has(k.key),visible:y(k.key),visibleByDefault:b(k.key)}}),T=I.filter(S=>y(S.key)).map(S=>({...S,sections:h(S.sections)})).filter(S=>S.sections.length>0).map(({order:S,...k})=>({...k,group:"workspaces"})),M=new Map;for(const S of t){const P=[...new Map((S.nav??[]).flatMap(z=>z.entries.map(W=>[W.id,W]))).values()].map(z=>({app:S.name,entry:z})),B=h(p.get(S.name)??[{key:ko,items:P}]);B.length!==0&&M.set(S.name,{key:"apps",app:S.name,group:"apps",label:{text:S.displayName},icon:S.icon??"app-window",sections:B})}const E=[...M.values()].filter(S=>S.app&&(p.has(S.app)||!_.has(S.app))).sort((S,k)=>Mo(S).localeCompare(Mo(k))),R=new Map(n.map(S=>[S.key,S.owner])),F={};for(const S of T)for(const k of Oo(S.sections))F[k]??=[],R.get(S.key)===k?F[k].unshift(S.key):F[k].push(S.key);for(const S of E)S.app&&(F[S.app]=[...F[S.app]??[],"apps"]);return{workspaces:[...T,...E],all:v,index:{visible:T.map(S=>S.key),byApp:F},ownColumn:S=>M.get(S),isWorkspaceKey:S=>u.has(S)||c.has(S)}}const Mo=e=>"text"in e.label?e.label.text:e.label.key,JI="notification-source",e0=(e,t)=>`${e}.pref.${t}`,t0={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","calendar.read","calendar.write","channel.read","channel.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write"],context:["attribute.read","attribute.write","custom-field.read","custom-field.write","kind.read","kind.write","memory.read","memory.write","reaction.read","reaction.write","topic.read","topic.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},Or=9e4,Zc=["out_of_office"],Jc=e=>Zc.includes(e);function n0(e,t,n){const r=n-e<Or,o=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!o?.status)return{online:r,status:r?"available":"offline"};const s=o.status;return!r&&!Jc(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function r0(e,t){const n=t-e.lastSeenAt<Or,r=n||Jc(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function o0(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function s0(e){return e.providerAvailable&&e.allowed}const i0="provisioning-source",a0={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status",subscriptions:"/provisioning/subscriptions",accounts:"/provisioning/accounts",catalog:"/provisioning/catalog",prepare:"/provisioning/prepare"};function c0(e){const t=`${e.app}:${e.offer}`;return e.sku?`${t}:${e.sku}`:t}function u0(e,t){return e.app!==t.app||e.offer!==t.offer?!1:!e.sku||!t.sku||e.sku===t.sku}function l0(e,t){const n=[];for(const r of e){if(r.phase==="fulfillment")continue;const o=!!t[r.key]?.trim();n.push({kind:"answer",key:r.key,label:r.label,type:r.type??"text",before:r.phase==="qualify"?"quote":"order",...r.required?{required:!0}:{},...r.options?{options:r.options.map(s=>({key:s.value,label:s.label}))}:{},met:o||!r.required})}return{requirements:n}}const d0="resources.describe",f0="resources.search",p0="resources.resolve",m0="resources.attached";function g0(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const h0="/provider/scope/related",y0="/provider/scope/read",b0="/provider/scope/acts",eu="auth";function tu(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const xe="/settings";function _0(e){return typeof e=="string"&&(e===xe||e.startsWith(`${xe}/`))}function I0(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?xe:`${xe}/${e.slice(0,t)}/${e.slice(t+1)}`}function E0(e){return typeof e!="string"||e===""||e==="/"?!0:tu(e)===eu}function S0(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nu(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${S0(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function ru(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,i)=>{if(s.startsWith(":")){const a=s.endsWith("?")?s.slice(1,-1):s.slice(1),c=r[i];c&&(o[a]=c)}}),o}function ou(e){return e.publicBasePath??`/apps/${e.name}`}function A0(e){const t=[];for(const n of e){if(!n?.name)continue;const r=ou(n);for(const o of n.routes??[]){if(!o.public)continue;const s=o.path==="/"?"":o.path;t.push({appName:n.name,resource:o.resource,pattern:`${r}${s}`,props:o.props})}}return t}function su(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let o=0;o<Math.min(n.length,r.length);o++){const s=n[o].startsWith(":"),i=r[o].startsWith(":");if(s!==i)return i}return n.length>r.length}function iu(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)nu(r.pattern).test(e)&&(!n||su(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...ru(n.pattern,e)}}:null}function v0(e,t){return iu(e,t)!==null}const C0=10*1024*1024,T0=25*1024*1024,k0="sync-target",O0=20;function Mr(e,t){const n=Array.isArray(t)?t.find(r=>r.name===e.name)?.policy:void 0;return n?n!=="read":e.access?e.access!=="read":!0}function au(e,t,n){return Mr(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?Tr(e):!0:!1}function M0(e){return e.produces==="draft"}function R0(e,t){if(t.allowed){const n=t.personalTools==="allow"&&e.personal===!0;if(!t.allowed.has(e.name)&&!n)return"hidden"}return t.narrow&&!t.narrow.has(e.name)||!t.attended&&(e.personal===!0||e.surface==="interactive")||t.readOnly&&e.access!=="read"||t.mode==="ask"&&Mr(e)||t.mode==="draft"&&(Tr(e)||e.access!=="read"&&!M0(e))?"hidden":t.gate&&au(e,t.gate,t.policy)?"held":"free"}const N0={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},cu=e=>{let t=e;return Object.values(N0).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},uu=6e4,lu=8e3,du=2,fu=.4,D0=3,x0=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function pu(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<D0||x0.has(n)||t.add(n);return[...t]}function mu(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let o=0;for(const s of r)n.has(s)||(o+=1);return o/r.size}function gu(e,t=uu){const n=e.filter(i=>!i.partial&&typeof i.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((i,a)=>Math.max(i,a.endedAt??0),0)-t;return{text:n.filter(i=>(i.endedAt??0)>=o).map(i=>cu(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const hu=60;function w0(e,t,n=hu){const r=new Set(e),o=[...e];for(const s of t)!s||r.has(s)||(r.add(s),o.push(s));return o.slice(-n)}function P0(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<lu)return{trigger:!1,reason:"too_soon"};const o=gu(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<du)return{trigger:!1,reason:"too_few_new"};const i=pu(o.text);return i.length?r.lastQueryTerms?.length&&mu(i,r.lastQueryTerms)<fu?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const L0=["personal","organization","connections","flows","work","administration","ai"],K0="navNotice",Bt={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},yu="NL",$0=15,U0=8,F0=Array.from(new Set(Object.values(Bt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Ro(e){if(e)return Bt[e.trim().toUpperCase()]}function Xe(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function No(e){if(e.length>$0)return null;for(const t of F0){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Bt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Xe(s,r))return`+${t}${s}`}return null}return e.length<U0?null:`+${e}`}function B0(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function j0(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function xn(e,t){if(!e)return null;const n=B0(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return No(o);if(o.startsWith("00"))return No(o.slice(2));const s=Ro(t)??Ro(yu);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return Xe(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(Xe(a,s))return`+${s.callingCode}${a}`}return!i&&Xe(o,s)?`+${s.callingCode}${o}`:null}function q0(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function Rr(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function G0(e){const t=Rr(e);return t?t.slice(t.lastIndexOf("@")+1):null}const W0=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function bu(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return W0.has(n)&&t.length>=3?t.slice(-3).join("."):n}const _u=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function V0(e){const t=bu(e);return t?_u.has(t):!1}function H0(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Y0(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=xn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=xn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=Rr(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const z0=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],Do=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,X0=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Q0(e){const t=e.split(`
30
+ `);for(let n=0;n<t.length;n++)if(X0.test(t[n])||Do.test(t[n])&&t.slice(n+1,n+4).some(r=>Do.test(r)))return t.slice(0,n).join(`
31
+ `).trim();return e}const Z0=/^(?:https?:|mailto:|tel:)/i,J0=/^(?:https?:|cid:|data:image\/)/i;function en(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const eE=/(!\[[^\]]*\]\([^)]*\))/;function xo(e){return e.replace(/\s+/g," ").trim().split(eE).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function tn(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function tE(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=en(r,"src");return J0.test(o)?`![${xo(en(r,"alt"))}](${tn(o)})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=xo(o.replace(/<[^>]*>/g,"")),i=en(r,"href");return Z0.test(i)?`[${s||tn(i)}](${tn(i)})`:s})}const nE=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,rE=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,oE=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function sE(e,t){return/<table\b/i.test(e)||e.includes(`
32
32
 
33
- |`)||t.includes("![")||t.length>200}const nE=40,rE={left:"---",center:":---:",right:"---:"};function oE(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function sE(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function iE(e){const t=[];for(const i of e.matchAll(J0)){const a=[];for(const c of i[1].matchAll(eE)){const u=sE(c[3]);if(tE(c[3],u))return null;a.push({text:u,align:oE(c[2])})}if(a.length===0)return null;a.some(c=>c.text!=="")&&t.push(a)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(i=>i.length!==n))return null;const r=i=>`| ${i.map(a=>a.text).join(" | ")} |`,o=t[1].map(i=>rE[i.align]).join(" | "),s=t.slice(1).map(r).join(`
33
+ |`)||t.includes("![")||t.length>200}const iE=40,aE={left:"---",center:":---:",right:"---:"};function cE(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function uE(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function lE(e){const t=[];for(const i of e.matchAll(rE)){const a=[];for(const c of i[1].matchAll(oE)){const u=uE(c[3]);if(sE(c[3],u))return null;a.push({text:u,align:cE(c[2])})}if(a.length===0)return null;a.some(c=>c.text!=="")&&t.push(a)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(i=>i.length!==n))return null;const r=i=>`| ${i.map(a=>a.text).join(" | ")} |`,o=t[1].map(i=>aE[i.align]).join(" | "),s=t.slice(1).map(r).join(`
34
34
  `);return`
35
35
 
36
36
  ${r(t[0])}
37
37
  | ${o} |
38
38
  ${s}
39
39
 
40
- `}function aE(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
41
- `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function cE(e){let t=e;for(let n=0;n<nE;n++){const r=Z0.exec(t);if(!r||r.index===void 0)break;const s=iE(r[1])??`
40
+ `}function dE(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
41
+ `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function fE(e){let t=e;for(let n=0;n<iE;n++){const r=nE.exec(t);if(!r||r.index===void 0)break;const s=lE(r[1])??`
42
42
 
43
- ${aE(r[1])}
43
+ ${dE(r[1])}
44
44
 
45
- `;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function xo(e,t){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<!--[\s\S]*?-->/g,""),n=n.replace(/<br\s*\/?>/gi,`
46
- `),t&&(n=cE(Q0(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
45
+ `;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function wo(e,t){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<!--[\s\S]*?-->/g,""),n=n.replace(/<br\s*\/?>/gi,`
46
+ `),t&&(n=fE(tE(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
47
47
 
48
48
  `),n=n.replace(/<\/(div|li|tr)>/gi,`
49
- `),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function wo(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const uE={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function Po(e){return e.replace(/&nbsp;/gi," ").replace(/&([a-z]+);/gi,(t,n)=>uE[n.toLowerCase()]??t).replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>wo(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>wo(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function Lo(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
49
+ `),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function Po(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const pE={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function Lo(e){return e.replace(/&nbsp;/gi," ").replace(/&([a-z]+);/gi,(t,n)=>pE[n.toLowerCase()]??t).replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>Po(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>Po(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function Ko(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
50
50
  `).replace(/\n{3,}/g,`
51
51
 
52
- `).trim()}const _u=/<\s*(html|body|div|p|table|br|span)\b/i;function lE(e){return _u.test(e)}function dE(e){return Iu(e,!1)}function fE(e){return Iu(e,!0)}function Iu(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of W0){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=Lo(Po(xo(r,t)));return o||(o=Lo(Po(xo(e,t)))),H0(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=od;exports.ACTIVITY_CATALOG=ne;exports.ADOPT_COLUMNS=er;exports.AGING_BUCKETS=Nc;exports.AGREEMENT_SCOPE_KIND=Tc;exports.AGREEMENT_TRANSITIONS=Qo;exports.AI_ATTACHMENT_LIMITS=Gc;exports.AI_ATTACHMENT_MAX_PER_TURN=W_;exports.AI_ATTACHMENT_TURN_BUDGET=G_;exports.AI_CAPABILITIES=vt;exports.AI_TOOL_PROVIDER_GROUP=H_;exports.AI_VENDORS=$n;exports.ALLOWED_LINK_SCHEMES=fs;exports.APP_PERMISSIONS=QI;exports.ARTICLE_SCOPE_KIND=Om;exports.ARTIFACT_MAX_BLOCKS=nt;exports.ARTIFACT_MAX_BODY_BYTES=ds;exports.ARTIFACT_MAX_CELL_LEN=he;exports.ARTIFACT_MAX_KPI_ITEMS=it;exports.ARTIFACT_MAX_LIST_ITEMS=rt;exports.ARTIFACT_MAX_TABLE_COLUMNS=st;exports.ARTIFACT_MAX_TABLE_ROWS=ot;exports.ARTIFACT_MAX_TEXT_LEN=Ct;exports.ASSET_GROUP_SEEDS=Jf;exports.ASSIGNMENT_SCOPE_KIND=bs;exports.ASSIST_BANDS=Q_;exports.ASSIST_SOURCE_PROVIDER_GROUP=X_;exports.ATTENTION_STATUSES=Ki;exports.AT_RISK_GAP=sc;exports.AUTH_APP_NAME=Jc;exports.AUTO_READY_MIN_PROPOSALS=Na;exports.AUTO_READY_RATE=Da;exports.ActivityTypeRegistry=jo;exports.BOOKABLE_KINDS=hc;exports.BOOKABLE_ROUTES=nI;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=eI;exports.BOOKKEEPING_PROVIDER_GROUP=tI;exports.BOOKKEEPING_ROUTES=rI;exports.BUILT_IN_ONLY=Uu;exports.BULK_PENALTY=$i;exports.BUSINESS_ENTITY_LIST_SERVICE=xd;exports.BUSINESS_ENTITY_PARAM=Kt;exports.CADENCE_FLOOR_MS=uu;exports.CADENCE_MIN_NEW_SEGMENTS=lu;exports.CADENCE_MIN_NOVELTY=du;exports.CADENCE_WINDOW_MS=cu;exports.CAPITALIZATION_THRESHOLD_CENTS=ri;exports.CLASSIFY_VARS=Ih;exports.CLEARABLE_FIELDS=Zp;exports.COMPANY_ADDRESS_KINDS=df;exports.COMPANY_RECEIVABLES_SERVICE=s_;exports.COMPANY_ROLE_KINDS=gf;exports.CONNECTOR_PROVIDER_GROUP=TI;exports.CONTEXT_COLLECT_SERVICE=kI;exports.CORE_DIMENSIONS=wl;exports.CRM_ACTIVITY_SCOPE_KIND=Cf;exports.CRM_CALL_CHANNELS=kf;exports.CRM_CALL_LOGGED=Ws;exports.CRM_CALL_OUTCOMES=Of;exports.CRM_NOTE_ADDED=Gs;exports.CRM_STAGE_CHANGED=Tf;exports.CUSTOM_RESOLUTION_PREFIX=vm;exports.CommunicationScheme=zc;exports.DAY_MS=Ri;exports.DEFAULT_CHECK_IN_DAYS=rc;exports.DEFAULT_DUNNING_POLICY=wb;exports.DEFAULT_FORECAST_WEEKS=ga;exports.DEFAULT_JUMP_PERCENT=$a;exports.DEFAULT_MEMORY_BUDGET=Ig;exports.DEFAULT_NUMBER_PADDING=qb;exports.DEFAULT_PHONE_REGION=hu;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=xb;exports.DEFAULT_TAX_RATE_KEY=Sg;exports.DEFAULT_TEMPLATE_CONDITIONS=Nb;exports.DEFAULT_TOLERANCE=Ba;exports.DEFAULT_WORKSPACES=gc;exports.DEMAND_SOURCE_PROVIDER_GROUP=Kg;exports.DIMENSION_KEYS=qn;exports.DOCUMENT_APPLY_SERVICE=qI;exports.DOCUMENT_DESCRIBE_SERVICE=BI;exports.DOCUMENT_INSPECT_SERVICE=jI;exports.DOCUMENT_MAX_BLOCKS=nt;exports.DOCUMENT_MAX_BODY_BYTES=ds;exports.DOCUMENT_MAX_CELL_LEN=he;exports.DOCUMENT_MAX_KPI_ITEMS=it;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=fn;exports.DOCUMENT_MAX_LIST_ITEMS=rt;exports.DOCUMENT_MAX_RECIPIENT_LINES=ls;exports.DOCUMENT_MAX_TABLE_COLUMNS=st;exports.DOCUMENT_MAX_TABLE_ROWS=ot;exports.DOCUMENT_MAX_TEXT_LEN=Ct;exports.DOCUMENT_MAX_TOTALS_ROWS=pn;exports.DOCUMENT_OPERATIONS=Tr;exports.DRAFT_FIELDS=Qp;exports.DUTCH_SLOT_LABELS=yc;exports.EMPTY_WORKFLOW=Th;exports.ENABLED_TRANSACTION_KINDS=nr;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=Zs;exports.FEATURE_MESSAGE_REACTIONS=vI;exports.FEATURE_REMOTE_SEARCH=AI;exports.FEED_COLUMNS=hr;exports.FEED_EVERY_MS=Ka;exports.FIXED_KINDS=xt;exports.FIXED_LEVELS=Le;exports.FIXED_TYPES=$t;exports.FIXED_UNITS=nf;exports.FOLLOW_UP_HOURS=Ui;exports.FROZEN_WRITABLE_FIELDS=zp;exports.HOUR_MS=Mi;exports.HTML_BODY_RE=_u;exports.INELIGIBLE=ie;exports.INSTALLATION_HEADER=WI;exports.INTERACTION_KIND=Ta;exports.InteractionParticipantRole=EI;exports.KB_FALLBACK_LOCALE=Qi;exports.KB_LOCALES=ft;exports.LEAD_STATUSES=_f;exports.LEDGER_TEMPLATES=qm;exports.LEGAL_FORMS=wd;exports.LIFECYCLE_STAGES=bf;exports.LIVE_STATUSES=pe;exports.LOCALES=ft;exports.LOOSE_STATUSES=Ut;exports.MAIL_HINT_HEADERS=Pi;exports.MANUAL_JOURNAL_KINDS=ig;exports.MANUAL_PRICE_SOURCE=xs;exports.MANUAL_STOCK_FRESH_MS=Ph;exports.MAX_ACTIONS=qe;exports.MAX_ASSIGNMENT_TURNS=_s;exports.MAX_BLOCKS=tn;exports.MAX_CHOICE_OPTIONS=cn;exports.MAX_COLLECTION_DEPTH=sr;exports.MAX_DELEGATION_DEPTH=Is;exports.MAX_EDITABLE_FILE_BYTES=E0;exports.MAX_FIELDS=Be;exports.MAX_LIST_ITEMS=je;exports.MAX_MEMORY_BROWSE=hg;exports.MAX_MEMORY_BUDGET=_g;exports.MAX_MEMORY_CHARS=yg;exports.MAX_RULE_DEPTH=Mn;exports.MAX_SCORE_LEVELS=ln;exports.MAX_SHOWN_KEYS=gu;exports.MAX_TOPIC_CANDIDATES=lc;exports.MAX_TOPIC_EXAMPLES=uc;exports.MAX_TOPIC_EXAMPLE_CHARS=He;exports.MAX_VIEWABLE_FILE_BYTES=S0;exports.MICROS_PER_CENT=ct;exports.MIN_MEMORY_BUDGET=bg;exports.MIN_SCORE_LEVELS=un;exports.MISSING_PRICE_SOURCE=mn;exports.MODEL_TIERS=ye;exports.NAV_NOTICE_SLOT=x0;exports.NL_BV_TEMPLATE=ea;exports.NL_PAYMENT_TERMS=Xb;exports.NL_TAX_CODES=vg;exports.NL_TAX_RATES=Ag;exports.NL_VAT_BOXES=qa;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=zI;exports.OFF_TRACK_GAP=ic;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Og;exports.OPEN_STATES=Mt;exports.PAUSE_HOLD=yt;exports.PAUSE_SNOOZED=gt;exports.PAUSE_WAITING_FOR_CUSTOMER=ht;exports.PAYMENT_TERM_METHODS=Vb;exports.PAYROLL_CATEGORIES=ta;exports.PHONE_REGIONS=Ft;exports.PLAYBOOK_RUN_APPROVAL_ACT=ah;exports.PLAYBOOK_RUN_SCOPE_KIND=Sa;exports.PRESENCE_ONLINE_WINDOW_MS=kr;exports.PRESENCE_SURVIVES_OFFLINE=Qc;exports.PRICE_PERS=Wu;exports.PRODUCT_SCOPE_KIND=Cc;exports.PROFILE_TOOL_DISPOSITIONS=Rg;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=II;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=_I;exports.PROVISIONING_ROUTES=r0;exports.PROVISIONING_SOURCE_GROUP=n0;exports.PUBLIC_EMAIL_DOMAINS=bu;exports.PURCHASE_KINDS=Ai;exports.PURCHASE_ORDER_KIND=Wp;exports.READ_STEP_TYPES=En;exports.RECEIPT_BOOK_ACT=kd;exports.RECEIPT_SCOPE_KIND=Td;exports.RELATED_SUBJECT_KINDS=oa;exports.RELEASED_STATES=mp;exports.REPORT_VIEW_LAYOUTS=xl;exports.RESERVED_SEGMENTS=mc;exports.RESERVED_STATUS_KEYS=vr;exports.RESERVED_TYPE_KEYS=m_;exports.RESOURCE_ATTACHED_SERVICE=l0;exports.RESOURCE_DESCRIBE_SERVICE=a0;exports.RESOURCE_RESOLVE_SERVICE=u0;exports.RESOURCE_SEARCH_SERVICE=c0;exports.SALES_KINDS=Rt;exports.SALES_SCOPE_KINDS=vc;exports.SCHEDULE_ENTRY_SCOPE_KIND=ha;exports.SCHEDULE_EVENT=Va;exports.SCOPE_ACTS_ROUTE=m0;exports.SCOPE_READ_ROUTE=p0;exports.SCOPE_RELATED_ROUTE=f0;exports.SEGMENT_FILTER_KEYS=Ef;exports.SEGMENT_LAYOUTS=Af;exports.SEGMENT_LIST_FILTERS=js;exports.SEGMENT_PRESENCE_FILTERS=qs;exports.SEGMENT_SORT_FIELDS=Sf;exports.SENDING_STALE_MS=Dd;exports.SETTINGS_BASE_PATH=De;exports.SETTINGS_CATEGORIES=D0;exports.SIGNATURE_INTENTS=uf;exports.SLA_METRICS=Py;exports.SLA_PAUSE_REASONS=Ly;exports.STATUS_NAMES=Hp;exports.STEP_MAX_TOKENS_MAX=Ma;exports.STEP_MAX_TOKENS_MIN=Oa;exports.STEP_TYPES=Ch;exports.STRATEGY_ITEM_SCOPE_KIND=tc;exports.SUMMARY_MIN_LAST_CHARS=wi;exports.SUMMARY_MIN_MESSAGES=xi;exports.SYNC_RUN_MAX_ERRORS=v0;exports.SYNC_TARGET_PROVIDER_GROUP=A0;exports.SYSTEM_ONE_NON_GOALS=Al;exports.SYSTEM_RESOLUTIONS=Hi;exports.TERMINAL_ASSIGNMENT_STATUSES=ys;exports.TERMINAL_RUN_STATUSES=xa;exports.TRANSACTION_KINDS=vi;exports.TRIGGER_VARS=bh;exports.UNARY_OPS=hy;exports.UNCOLLECTED_AFTER_DAYS=Ic;exports.UNKNOWN_KIND=ia;exports.UNKNOWN_LEVEL_ORDER=nc;exports.UNSENT_STATES=Jn;exports.UNSUPPORTED=CI;exports.UNWORKED_RESOLUTIONS=Am;exports.USAGE_DIMENSIONS=is;exports.USAGE_DIMENSION_IDS=as;exports.USAGE_RECORDS_ROUTE=af;exports.USAGE_SOURCE_PROVIDER_GROUP=sf;exports.UnresolvedRefError=br;exports.WEBHOOK_EVENTS=xc;exports.WORKSTREAM_SCOPE_KIND=ya;exports.WORK_ACTIVITY_SCOPE_KIND=Lc;exports.WORK_AREAS=Mg;exports.WORK_COMMENT_ADDED=u_;exports.WORK_CYCLE_SYNC_KIND=__;exports.WORK_ITEM_ASSIGNED=l_;exports.WORK_ITEM_SCOPE_KIND=wc;exports.WORK_ITEM_STATUS_CHANGED=d_;exports.WORK_PROJECT_SCOPE_KIND=Pc;exports.WORK_SORT_FIELDS=F_;exports.WORK_VIEW_FLAGS=U_;exports.WORK_VIEW_LAYOUTS=B_;exports.WORK_VIEW_LIST_FILTERS=$_;exports.W_PRIORITY=Re;exports.XAF_NAMESPACE=na;exports.acceptExampleCandidate=bb;exports.accountRow=xp;exports.accountTotals=Pm;exports.accountTypeOf=dg;exports.accrualPostings=Yf;exports.actingIdentityKey=Ia;exports.activeWorkTypes=hb;exports.activityIconOf=Cu;exports.activityJoinUrl=Pu;exports.activitySnippet=Fo;exports.activityTextParams=Bo;exports.activityTimelineText=wu;exports.activityTimestamp=qo;exports.activityTypeInfo=H;exports.actorKey=ih;exports.addExampleCandidate=yb;exports.addMonths=fe;exports.addWorkingMs=wt;exports.admit=hp;exports.adoptPlan=Np;exports.adoptRowsFromTable=Kp;exports.adoptSeriesId=Mp;exports.adoptSummary=Dp;exports.agePresenceEntry=JI;exports.aggregateUsage=ws;exports.agingBucketOf=Dc;exports.agingOf=o_;exports.agreementEffectiveEnd=il;exports.agreementFromQuote=Xu;exports.agreementHref=Fb;exports.agreementScopeKey=Ub;exports.aiAttachmentKind=qc;exports.aiAttachmentRejection=V_;exports.aiBudgetLimit=dn;exports.aiBudgetPeriodKey=Rl;exports.aiBudgetPeriodStart=ss;exports.aiBudgetState=Ml;exports.aiVendorAcceptsAttachment=Ol;exports.aiVendorDefaultModel=Cl;exports.aiVendorLabel=vl;exports.aiVendorNeedsBaseUrl=kl;exports.aiVendorsWith=Tl;exports.allocate=de;exports.allocateInvoice=ey;exports.allowsFraction=of;exports.appNameFromPath=eu;exports.applyApprovalDecision=Hl;exports.applyRounding=db;exports.applySignature=lf;exports.approvalRate=Ra;exports.artifactBodyBytes=gs;exports.artifactOutline=hs;exports.artifactToMarkdown=Fn;exports.assignmentMismatch=fh;exports.assignmentScopeKey=id;exports.assignmentSubject=ud;exports.availabilityByPerson=Lg;exports.awaitsNumber=Xp;exports.balanceSheet=Um;exports.belongsOnCalendar=Ng;exports.billableTimeGroups=ub;exports.billedQuantity=Ks;exports.billedThroughOf=ll;exports.billingStartOf=cp;exports.billingTerm=Ho;exports.bindParams=py;exports.bindValue=pt;exports.blockersOf=Ii;exports.bookingDocumentOf=Cb;exports.bookingDocumentOfReceipt=Md;exports.bookingLinesOf=Os;exports.bookingSyncKey=Rd;exports.buildActivityPreview=Ku;exports.buildChannelIntents=lI;exports.buildNavModel=YI;exports.buildShareKeys=td;exports.buildWindow=mu;exports.businessEntitySender=Ys;exports.bySeries=yi;exports.calendarDaysBetween=aa;exports.calendarOf=Pt;exports.canConvert=Jp;exports.canDecrease=gi;exports.canMoveAgreement=ol;exports.canNestUnder=Nm;exports.canParent=Xy;exports.canTransition=Yp;exports.cancelPlan=up;exports.canonicalJson=In;exports.capabilityDefaultFlag=gl;exports.capacityTotal=wg;exports.capacityWeights=nh;exports.capitalizationThreshold=Zf;exports.carriesText=Ru;exports.cashForecast=Bm;exports.categoryLabel=xm;exports.categoryOf=Uc;exports.causedBy=Sy;exports.changesBilledLine=al;exports.changesBilledPrice=dl;exports.channelKindForScheme=bI;exports.channelKindOf=Tu;exports.checkInOverdueMs=ab;exports.chooseOffer=Fh;exports.chosenOf=Fp;exports.clampStepMaxTokens=vh;exports.classifyMail=gm;exports.cleanDimensions=Ae;exports.cleanMessageMarkdown=fE;exports.cleanMessageText=dE;exports.cleanReceiptLines=op;exports.codeQuery=qd;exports.codedMessage=mI;exports.columnBalance=Fm;exports.commandOf=yp;exports.commitProblem=Fd;exports.companyReceivablesOf=i_;exports.compareAssistRank=J_;exports.compareReports=wm;exports.compareWorkTypes=cc;exports.conditionHolds=Hs;exports.configurationStatus=$p;exports.contactName=If;exports.contractSignals=qh;exports.copyFrom=or;exports.correlationKeyFor=oI;exports.costOverYear=ui;exports.countsAsPlanned=Se;exports.coverEndAt=es;exports.coverageByPerson=Pg;exports.coverageFor=qg;exports.coversWorkstream=ur;exports.crmActivityAt=Rf;exports.cronMatches=Wa;exports.currentAccountRelation=qf;exports.currentLines=el;exports.currentOf=Ep;exports.currentPeriod=Wb;exports.customerProducts=Gp;exports.cycleDayIndex=lr;exports.cycleOrder=L_;exports.cycleState=K_;exports.dealValueCents=Qu;exports.debtorOf=Tt;exports.decideAssignmentState=ld;exports.decideCadence=N0;exports.decideEach=ql;exports.decideIncomingCall=aI;exports.decisionBand=Sl;exports.decodeText=NI;exports.defaultLocaleOf=Zi;exports.defaultOffer=ai;exports.defaultStatusKey=k_;exports.defaultTemplateBlocks=bc;exports.defineIntent=SI;exports.delegationRefusal=dd;exports.depreciationParts=ni;exports.depreciationPostings=Vf;exports.depthOf=zi;exports.derivePresence=ZI;exports.describeClause=Fl;exports.describeExpression=_y;exports.digitsOf=Ps;exports.disabledIntentsFromCapabilities=cI;exports.disposalLines=Hf;exports.documentBodyBytes=gs;exports.documentKindOf=GI;exports.documentOutline=hs;exports.documentToMarkdown=Fn;exports.documentToText=FI;exports.draftRequest=yn;exports.driftedFields=Ya;exports.dueAtOf=Gy;exports.dueCharges=tl;exports.dueDateFrom=Yb;exports.dunningRunOf=Pb;exports.dunningStateOf=Sc;exports.effectiveEndAt=tt;exports.elapsedSeconds=lb;exports.emailDomain=F0;exports.emptyConditionLeaf=yy;exports.endable=lp;exports.endpointKey=G0;exports.entryLinesOf=Jm;exports.entryNumber=Wm;exports.entryProblems=Gm;exports.erlangC=ua;exports.excessiveLending=Gf;exports.expectedFor=Bh;exports.expectsInvoice=si;exports.externalKeyOf=le;exports.extractParams=nu;exports.extractTerms=fu;exports.failureLines=Kf;exports.feedOutcome=Hh;exports.fieldVarPath=ky;exports.fillDocument=Pf;exports.fillText=Vs;exports.filterByEndpoint=fI;exports.filterByIntent=dI;exports.filterByTargetScheme=Yc;exports.filterableDimensions=Ul;exports.findAiVendor=xe;exports.findEvent=Oy;exports.findInListing=Ip;exports.finishedAt=sl;exports.fixedLevelForName=Zy;exports.fixedTypeForName=y_;exports.fixedTypes=b_;exports.flattenLocales=VI;exports.floorToPeriod=Ie;exports.forecastIntervals=Zg;exports.formatActingIdentity=_a;exports.formatCents=J;exports.formatClock=pb;exports.formatHm=fb;exports.formatItemKey=E_;exports.formatMicros=Yd;exports.formatPeriod=_e;exports.formatSeriesNumber=Gb;exports.formatSlaDuration=Hy;exports.freshSources=z_;exports.fromPathKey=im;exports.getActivitySeenUserIds=Fu;exports.getContactEndpoints=yf;exports.getShortTitle=Sm;exports.getUrgencyScore=Em;exports.goodsReceiptProblems=ii;exports.groupDocumentLines=Ua;exports.guessAdoptMapping=Lp;exports.guessFeedMapping=zh;exports.hasReacted=sy;exports.hashedPartOf=zm;exports.healthCategory=Jy;exports.healthsInCategory=eb;exports.heightOf=ir;exports.helpCenterText=km;exports.humanizeAction=hh;exports.indexPrices=fl;exports.interactionIdOf=ka;exports.interestOnDailyBalance=Ff;exports.interestPeriods=Bf;exports.invoiceFromQuote=Wo;exports.invoiceState=tp;exports.invoicesFromOrders=sm;exports.isAdoptSeries=Rp;exports.isAgentUser=a_;exports.isAssigned=_m;exports.isAssignmentTerminal=sd;exports.isAssignmentTrigger=va;exports.isAssistantMode=Nl;exports.isAuthoredCrmActivity=Mf;exports.isAutoReady=Rh;exports.isAutonomy=ph;exports.isAwaitingThem=Vi;exports.isBookable=vb;exports.isChatMessageActivity=ju;exports.isClosed=Im;exports.isConnectedType=Du;exports.isDescendant=Xi;exports.isEligible=cm;exports.isEmailActivity=Bu;exports.isFrozen=rr;exports.isHeldClock=qy;exports.isHtmlBody=lE;exports.isInFlight=Dh;exports.isInteractionUnseen=Li;exports.isLandingPath=y0;exports.isLikelyBulk=Di;exports.isMessageShape=xn;exports.isMessageType=ku;exports.isMoreSpecificPattern=ou;exports.isNoteShape=wn;exports.isOpenClock=ec;exports.isOutstanding=Sr;exports.isOutwardTool=Cr;exports.isOverdueOn=Qb;exports.isParked=Bi;exports.isPaused=wa;exports.isPlaybookAuthoredType=Nu;exports.isPricePer=Yu;exports.isPublicEmailDomain=j0;exports.isPublicPath=I0;exports.isPurchasable=tf;exports.isRecurringLine=Vo;exports.isReminderActive=ji;exports.isReplyableType=Mu;exports.isResultAccount=we;exports.isSellable=ef;exports.isSettingsPath=g0;exports.isSettled=Rc;exports.isShorter=Ju;exports.isSlaAtRisk=ym;exports.isSupportedCron=Ey;exports.isTerminal=Nh;exports.isThreadLongEnough=dm;exports.isTradeable=$d;exports.isTranscriptType=xu;exports.isUncollected=Ac;exports.isWebhookEvent=c_;exports.isWorkClosed=O_;exports.isWorkTypeVisible=gb;exports.isWriteTool=Or;exports.itemDossierKeys=v_;exports.itemKey=dt;exports.itemKeyOf=Ed;exports.judgeRuleCase=Ay;exports.kindFor=ee;exports.ladderFor=$c;exports.ledgerRuleFor=Ms;exports.levelIn=oc;exports.levelOrder=_t;exports.lineAffinity=yr;exports.lineKey=Eh;exports.lineNet=Dt;exports.lineStatus=zo;exports.lineTerm=V;exports.linesOf=Si;exports.linkLabel=Tm;exports.listedTransactionKinds=Vp;exports.listeningAllowed=Dl;exports.loanPostings=Wf;exports.loanSchedule=Yn;exports.localeInstruction=Rm;exports.localeName=Mm;exports.localesOf=Dm;exports.looksLikeEmail=$0;exports.lookup=Vn;exports.manualSettlement=e_;exports.marginCents=Gu;exports.markdownToDocument=UI;exports.matchApprovalPolicy=Wl;exports.matchContactToIntents=pI;exports.matchDocumentLines=Fa;exports.matchFeed=Vh;exports.matchPublicRoute=su;exports.matchRate=Ls;exports.matchRules=Ha;exports.matchVerdict=ty;exports.matchedLine=Ad;exports.mcpCredentialScope=mg;exports.mcpToolPrefix=gg;exports.measureRatio=nb;exports.mergeDefaultFlags=yl;exports.mergeShownKeys=R0;exports.mergeable=rm;exports.messageCountsAs=Uo;exports.metricOption=Bl;exports.minutesOn=dr;exports.missingFieldPaths=My;exports.modelAcceptsAttachment=_l;exports.monthEnd=ei;exports.monthParts=Xs;exports.monthlyPeriods=og;exports.monthsIn=Qs;exports.mustAsk=iu;exports.narrowAutonomy=gh;exports.navLabelText=HI;exports.needsOf=_i;exports.needsPhoneRegion=q0;exports.nestsUnderParent=Ou;exports.nextAttemptAt=gp;exports.nextLevelBelow=Qy;exports.nextOccurrenceDates=P_;exports.nextPrice=ul;exports.nextSlaClock=Wy;exports.nextStatuses=Ci;exports.nextVersion=em;exports.normalizeArtifactBlocks=ms;exports.normalizeBlocks=Su;exports.normalizeDocumentBlocks=ms;exports.normalizeEmail=Mr;exports.normalizeExample=ce;exports.normalizeGtin=kt;exports.normalizeIban=Bs;exports.normalizeIbans=mf;exports.normalizeMeter=Us;exports.normalizeUsageSource=cf;exports.normalizeVatNumber=pf;exports.noticeDeadline=Jo;exports.notificationPrefKey=XI;exports.novelty=pu;exports.offerKey=o0;exports.offerValid=Qn;exports.onePerItem=bi;exports.openCentsOf=md;exports.operationDescriptor=KI;exports.operationsForKind=LI;exports.opsForFieldType=Ty;exports.orderAnswers=Bp;exports.orderForDocument=Xh;exports.orderProgress=Ti;exports.organizationSender=Lf;exports.outcomeOf=D_;exports.overlap=St;exports.overlapSeconds=We;exports.overlaps=jg;exports.ownWorkspaceKey=Ib;exports.paceRatio=rb;exports.parkMarksById=um;exports.parse=Ga;exports.parseActingIdentity=oh;exports.parseAmount=nn;exports.parseCamt053=As;exports.parseClockMinutes=xy;exports.parseCodedMessage=hI;exports.parseCron=_r;exports.parseCsv=OI;exports.parseDay=_n;exports.parseItemKey=S_;exports.parseLineKey=Sh;exports.parseMicros=Gn;exports.parseMt940=Cs;exports.parsePackingSlip=Zh;exports.parseRateCsv=zd;exports.parseRatePrice=gn;exports.parseRecurrence=w_;exports.parseStatement=Id;exports.parseWorkspacePath=Sb;exports.parseXafOpening=lg;exports.partialDisposalLines=Qf;exports.partyTerms=zu;exports.pathToRegex=tu;exports.patternFor=pr;exports.patternStartTime=fr;exports.pauseBitFor=wy;exports.paymentOfItem=hd;exports.paymentStateOf=Er;exports.pendingApprovers=Vl;exports.periodAt=Je;exports.periodOf=sg;exports.periodShare=Yo;exports.periodsInRange=Kl;exports.phoneSuffix=U0;exports.pickMailHeaders=fm;exports.pickPaymentTerm=Hb;exports.pickTemplate=Df;exports.placeLumps=rh;exports.plainTextFromMarkdown=Ko;exports.planFor=Op;exports.planSlaEvent=jy;exports.plannedBillable=Gg;exports.plannedWorkTypeKey=ma;exports.preparationFromParams=i0;exports.priceAt=ts;exports.priceOver=Et;exports.primaryAddress=ff;exports.procedureOf=Oh;exports.productCost=ci;exports.productHref=$b;exports.productScopeKey=Lb;exports.profitAndLoss=$m;exports.progressState=om;exports.projectDossierKeys=C_;exports.proposalRequestIds=Gl;exports.proposeMatch=fd;exports.providedOf=pp;exports.publicBasePathFor=ru;exports.publicRoutePatterns=_0;exports.purchaseUnits=ip;exports.quantityKey=ml;exports.rateRecords=Qd;exports.ratedLineAmount=Zd;exports.ratedQuantity=Wn;exports.reactionWakesAssignment=cd;exports.readDefaultFlags=hl;exports.readFeed=Gh;exports.readPath=Xe;exports.readStepError=Ge;exports.ready=fi;exports.receiptGroupOf=Od;exports.receiptProblems=ks;exports.receiptState=ep;exports.receiptTotals=Ts;exports.receivableRowOf=r_;exports.receivedFor=oi;exports.recencyOf=Fi;exports.recipientLocale=Nf;exports.reconciledOn=pd;exports.reconciliationBalances=gd;exports.recoveryOf=bp;exports.refKey=mr;exports.referenceCostIn=Bd;exports.registrableDomain=yu;exports.rejectExampleCandidate=fc;exports.relatedByDefault=Eg;exports.remainingMsOf=bt;exports.reportOf=hi;exports.repriceLines=Hd;exports.requestIdOf=di;exports.requestPath=am;exports.requiredAgents=fa;exports.requirementFor=pa;exports.requiresIdsOf=li;exports.resolutionsFor=Cm;exports.resolveAccountCapabilities=Hc;exports.resolveActivityText=Qe;exports.resolveAutonomy=mh;exports.resolveChannelIntents=Vc;exports.resolvePrice=Ds;exports.resolveRateCard=Wd;exports.resolveRoute=Il;exports.resolveSignature=Fs;exports.resolveTier=os;exports.resolveWorkMode=e0;exports.resolveWorkspace=Eb;exports.resourceKindOf=d0;exports.restartOf=Xn;exports.restate=Go;exports.retryDelayMinutes=Nd;exports.reversedLines=Qm;exports.rhythmOf=Pn;exports.roleDirection=hf;exports.rollupChildren=ib;exports.roundHalfUp=U;exports.runActor=sh;exports.runApprovalKey=ch;exports.runEvalSuite=$f;exports.runIdOfApprovalRef=uh;exports.runInteractionId=wh;exports.runKind=Mh;exports.runOutcome=Cy;exports.runSpans=rl;exports.sameOffer=s0;exports.sanitizeInline=ps;exports.sanitizeTranscript=au;exports.scheduleEntryScopeKey=Jg;exports.scoreInteraction=bm;exports.scoreWorkItem=p_;exports.segmentIsEmpty=vf;exports.selectLenses=pg;exports.sellableProduct=Jd;exports.sellsOption=ja;exports.serialKeyOf=ap;exports.serialKeysOf=np;exports.serialize=Ve;exports.serialsInHouse=rp;exports.seriesOf=hn;exports.seriesStart=Zo;exports.serviceLevel=la;exports.sessionsHoldCannotReach=iI;exports.sessionsToHold=sI;exports.settingsPath=h0;exports.settle=_p;exports.settlementPatch=Jb;exports.settlesOn=Es;exports.shadowByKey=Pd;exports.shareKeyForTeam=jn;exports.shareKeyForUser=Bn;exports.shareKeysForViewer=nd;exports.shareReceipts=tm;exports.shortTermPrincipal=Xf;exports.shortfalls=Wg;exports.shouldRunAudioPipeline=t0;exports.slaBadgeTone=Vy;exports.slaHoursByInbox=hm;exports.slaHoursFor=Wi;exports.slipProposal=Qh;exports.sortStatuses=Fc;exports.sourceKey=Wc;exports.splitLine=cl;exports.splitUnits=jp;exports.spread=zn;exports.spreadOverWeights=ba;exports.startingCents=zf;exports.statusIn=T_;exports.statusRequiresApproval=N_;exports.stepDate=jc;exports.stepsOf=kh;exports.strategyAncestorKeysFor=zy;exports.strategyDossierKeys=Yy;exports.strategyItemScopeKey=Ir;exports.stripHtml=$o;exports.structureProblems=pi;exports.subjectKeyOf=xh;exports.subjectOf=gr;exports.subjectRef=Z_;exports.subscriptionRow=wp;exports.suggestProjectKey=A_;exports.suggestTreatments=Cd;exports.suggestedHealth=ob;exports.summariseEval=zs;exports.summarizeReactions=ry;exports.supplyChain=mi;exports.tallies=nm;exports.targetById=dh;exports.targetForActivityType=lh;exports.targetOf=kp;exports.targetOrder=cb;exports.taxCodeProblem=Tg;exports.taxDateOf=ae;exports.taxPercentOn=cr;exports.taxRateFor=sa;exports.taxRatesOn=Cg;exports.taxSideOf=Xm;exports.termApplies=Mc;exports.termEndAt=re;exports.termStartAt=Kn;exports.termsFor=ca;exports.tieredMicros=$s;exports.timingOf=Xo;exports.toActingIdentity=Ea;exports.toBaseUnits=Ld;exports.toE164=Dn;exports.toInvoice=ki;exports.toPathKey=Oi;exports.toProductUnits=Zn;exports.toTransactionTerm=zb;exports.toolBareName=Ca;exports.toolDisplayName=yh;exports.toolReversible=Y_;exports.toolSourceKinds=rd;exports.toolVerdict=T0;exports.topicOfferedForTeam=pc;exports.topicsForTeam=_b;exports.trafficIntensity=da;exports.transactionContext=Tb;exports.transactionDossierKeys=jb;exports.transactionHref=Kb;exports.transactionIdFromScope=Bb;exports.transactionKind=G;exports.transactionScopeKey=kc;exports.transactionSlots=kb;exports.transactionTotals=kg;exports.transitoryLines=Zm;exports.triggerFillsVar=_h;exports.truncateExample=dc;exports.typeIn=h_;exports.typesFor=g_;exports.uniqueWorkStatusKey=M_;exports.uniqueWorkTypeKey=mb;exports.unitFactor=Rs;exports.unitsProblem=Kd;exports.upsellOfferFor=ny;exports.usageAccountOf=rs;exports.usageAccountsOf=pl;exports.usageMetricId=cs;exports.usageMetrics=jl;exports.usersOf=Ee;exports.validateQuestions=El;exports.validateStatuses=R_;exports.valueAtPath=Aa;exports.variableJump=La;exports.variantOptionsProblem=Ud;exports.vatDateOf=uy;exports.vatPeriods=ay;exports.vatReturn=iy;exports.waitHoursOf=Nt;exports.wakesAssignment=ad;exports.withLineIds=Ah;exports.withPrice=ns;exports.workActivityScopeKey=I_;exports.workItemScopeKey=Kc;exports.workProjectScopeKey=Ar;exports.workRatio=sb;exports.workStatusKey=Bc;exports.workTypeKey=ac;exports.workingMsBetween=mt;exports.workspacePath=Ab;exports.workstreamScopeKey=eh;exports.xafAuditfile=cg;exports.xmlBlocks=Q;exports.xmlText=N;exports.yearEndClosingLines=jm;
52
+ `).trim()}const Iu=/<\s*(html|body|div|p|table|br|span)\b/i;function mE(e){return Iu.test(e)}function gE(e){return Eu(e,!1)}function hE(e){return Eu(e,!0)}function Eu(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of z0){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=Ko(Lo(wo(r,t)));return o||(o=Ko(Lo(wo(e,t)))),Q0(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=sd;exports.ACTIVITY_CATALOG=ne;exports.ADOPT_COLUMNS=tr;exports.AGING_BUCKETS=Dc;exports.AGREEMENT_SCOPE_KIND=kc;exports.AGREEMENT_TRANSITIONS=Zo;exports.AI_ATTACHMENT_LIMITS=Wc;exports.AI_ATTACHMENT_MAX_PER_TURN=z_;exports.AI_ATTACHMENT_TURN_BUDGET=Y_;exports.AI_CAPABILITIES=Ct;exports.AI_TOOL_PROVIDER_GROUP=Q_;exports.AI_VENDORS=Un;exports.ALLOWED_LINK_SCHEMES=ps;exports.APP_PERMISSIONS=t0;exports.ARTICLE_SCOPE_KIND=Rm;exports.ARTIFACT_MAX_BLOCKS=rt;exports.ARTIFACT_MAX_BODY_BYTES=fs;exports.ARTIFACT_MAX_CELL_LEN=ye;exports.ARTIFACT_MAX_KPI_ITEMS=at;exports.ARTIFACT_MAX_LIST_ITEMS=ot;exports.ARTIFACT_MAX_TABLE_COLUMNS=it;exports.ARTIFACT_MAX_TABLE_ROWS=st;exports.ARTIFACT_MAX_TEXT_LEN=Tt;exports.ASSET_GROUP_SEEDS=ep;exports.ASSIGNMENT_SCOPE_KIND=_s;exports.ASSIST_BANDS=tI;exports.ASSIST_SOURCE_PROVIDER_GROUP=eI;exports.ATTENTION_STATUSES=$i;exports.AT_RISK_GAP=ic;exports.AUTH_APP_NAME=eu;exports.AUTO_READY_MIN_PROPOSALS=Da;exports.AUTO_READY_RATE=xa;exports.ActivityTypeRegistry=qo;exports.BOOKABLE_KINDS=yc;exports.BOOKABLE_ROUTES=iI;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=oI;exports.BOOKKEEPING_PROVIDER_GROUP=sI;exports.BOOKKEEPING_ROUTES=aI;exports.BUILT_IN_ONLY=Fu;exports.BULK_PENALTY=Ui;exports.BUSINESS_ENTITY_LIST_SERVICE=wd;exports.BUSINESS_ENTITY_PARAM=$t;exports.CADENCE_FLOOR_MS=lu;exports.CADENCE_MIN_NEW_SEGMENTS=du;exports.CADENCE_MIN_NOVELTY=fu;exports.CADENCE_WINDOW_MS=uu;exports.CAPITALIZATION_THRESHOLD_CENTS=oi;exports.CLASSIFY_VARS=Sh;exports.CLEARABLE_FIELDS=em;exports.COMPANY_ADDRESS_KINDS=ff;exports.COMPANY_RECEIVABLES_SERVICE=a_;exports.COMPANY_ROLE_KINDS=hf;exports.CONNECTOR_PROVIDER_GROUP=RI;exports.CONTEXT_COLLECT_SERVICE=NI;exports.CORE_DIMENSIONS=Pl;exports.CRM_ACTIVITY_SCOPE_KIND=Tf;exports.CRM_CALL_CHANNELS=Of;exports.CRM_CALL_LOGGED=Vs;exports.CRM_CALL_OUTCOMES=Mf;exports.CRM_NOTE_ADDED=Ws;exports.CRM_STAGE_CHANGED=kf;exports.CUSTOM_RESOLUTION_PREFIX=Tm;exports.CommunicationScheme=Xc;exports.DAY_MS=Ni;exports.DEFAULT_CHECK_IN_DAYS=oc;exports.DEFAULT_DUNNING_POLICY=Lb;exports.DEFAULT_FORECAST_WEEKS=ha;exports.DEFAULT_JUMP_PERCENT=Ua;exports.DEFAULT_MEMORY_BUDGET=Sg;exports.DEFAULT_NUMBER_PADDING=Wb;exports.DEFAULT_PHONE_REGION=yu;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Pb;exports.DEFAULT_TAX_RATE_KEY=vg;exports.DEFAULT_TEMPLATE_CONDITIONS=xb;exports.DEFAULT_TOLERANCE=ja;exports.DEFAULT_WORKSPACES=hc;exports.DEMAND_SOURCE_PROVIDER_GROUP=Ug;exports.DIMENSION_KEYS=Gn;exports.DOCUMENT_APPLY_SERVICE=HI;exports.DOCUMENT_DESCRIBE_SERVICE=WI;exports.DOCUMENT_INSPECT_SERVICE=VI;exports.DOCUMENT_MAX_BLOCKS=rt;exports.DOCUMENT_MAX_BODY_BYTES=fs;exports.DOCUMENT_MAX_CELL_LEN=ye;exports.DOCUMENT_MAX_KPI_ITEMS=at;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=pn;exports.DOCUMENT_MAX_LIST_ITEMS=ot;exports.DOCUMENT_MAX_RECIPIENT_LINES=ds;exports.DOCUMENT_MAX_TABLE_COLUMNS=it;exports.DOCUMENT_MAX_TABLE_ROWS=st;exports.DOCUMENT_MAX_TEXT_LEN=Tt;exports.DOCUMENT_MAX_TOTALS_ROWS=mn;exports.DOCUMENT_OPERATIONS=kr;exports.DRAFT_FIELDS=Jp;exports.DUTCH_SLOT_LABELS=bc;exports.EMPTY_WORKFLOW=Oh;exports.ENABLED_TRANSACTION_KINDS=rr;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=Js;exports.FEATURE_MESSAGE_REACTIONS=OI;exports.FEATURE_REMOTE_SEARCH=kI;exports.FEED_COLUMNS=yr;exports.FEED_EVERY_MS=$a;exports.FIXED_KINDS=wt;exports.FIXED_LEVELS=Ke;exports.FIXED_TYPES=Ut;exports.FIXED_UNITS=rf;exports.FOLLOW_UP_HOURS=Fi;exports.FROZEN_WRITABLE_FIELDS=Qp;exports.HOUR_MS=Ri;exports.HTML_BODY_RE=Iu;exports.INELIGIBLE=ie;exports.INSTALLATION_HEADER=zI;exports.INTERACTION_KIND=ka;exports.InteractionParticipantRole=CI;exports.KB_FALLBACK_LOCALE=Zi;exports.KB_LOCALES=pt;exports.LEAD_STATUSES=If;exports.LEDGER_TEMPLATES=Wm;exports.LEGAL_FORMS=Pd;exports.LIFECYCLE_STAGES=_f;exports.LIVE_STATUSES=me;exports.LOCALES=pt;exports.LOOSE_STATUSES=Ft;exports.MAIL_HINT_HEADERS=Li;exports.MANUAL_JOURNAL_KINDS=cg;exports.MANUAL_PRICE_SOURCE=ws;exports.MANUAL_STOCK_FRESH_MS=Kh;exports.MAX_ACTIONS=Ge;exports.MAX_ASSIGNMENT_TURNS=Is;exports.MAX_BLOCKS=nn;exports.MAX_CHOICE_OPTIONS=un;exports.MAX_COLLECTION_DEPTH=ir;exports.MAX_DELEGATION_DEPTH=Es;exports.MAX_EDITABLE_FILE_BYTES=C0;exports.MAX_FIELDS=je;exports.MAX_LIST_ITEMS=qe;exports.MAX_MEMORY_BROWSE=bg;exports.MAX_MEMORY_BUDGET=Eg;exports.MAX_MEMORY_CHARS=_g;exports.MAX_RULE_DEPTH=Rn;exports.MAX_SCORE_LEVELS=dn;exports.MAX_SHOWN_KEYS=hu;exports.MAX_TOPIC_CANDIDATES=dc;exports.MAX_TOPIC_EXAMPLES=lc;exports.MAX_TOPIC_EXAMPLE_CHARS=Ye;exports.MAX_VIEWABLE_FILE_BYTES=T0;exports.MICROS_PER_CENT=ut;exports.MIN_MEMORY_BUDGET=Ig;exports.MIN_SCORE_LEVELS=ln;exports.MISSING_PRICE_SOURCE=gn;exports.MODEL_TIERS=be;exports.NAV_NOTICE_SLOT=K0;exports.NL_BV_TEMPLATE=ta;exports.NL_PAYMENT_TERMS=Zb;exports.NL_TAX_CODES=Tg;exports.NL_TAX_RATES=Cg;exports.NL_VAT_BOXES=Ga;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=JI;exports.OFF_TRACK_GAP=ac;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Rg;exports.OPEN_STATES=Rt;exports.PAUSE_HOLD=bt;exports.PAUSE_SNOOZED=ht;exports.PAUSE_WAITING_FOR_CUSTOMER=yt;exports.PAYMENT_TERM_METHODS=Yb;exports.PAYROLL_CATEGORIES=na;exports.PHONE_REGIONS=Bt;exports.PLAYBOOK_RUN_APPROVAL_ACT=uh;exports.PLAYBOOK_RUN_SCOPE_KIND=Aa;exports.PRESENCE_ONLINE_WINDOW_MS=Or;exports.PRESENCE_SURVIVES_OFFLINE=Zc;exports.PRICE_PERS=Vu;exports.PRODUCT_SCOPE_KIND=Tc;exports.PROFILE_TOOL_DISPOSITIONS=Dg;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=vI;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=AI;exports.PROVISIONING_ROUTES=a0;exports.PROVISIONING_SOURCE_GROUP=i0;exports.PUBLIC_EMAIL_DOMAINS=_u;exports.PURCHASE_KINDS=vi;exports.PURCHASE_ORDER_KIND=Hp;exports.READ_STEP_TYPES=Sn;exports.RECEIPT_BOOK_ACT=Od;exports.RECEIPT_SCOPE_KIND=kd;exports.RELATED_SUBJECT_KINDS=sa;exports.RELEASED_STATES=hp;exports.REPORT_VIEW_LAYOUTS=wl;exports.RESERVED_SEGMENTS=gc;exports.RESERVED_STATUS_KEYS=Cr;exports.RESERVED_TYPE_KEYS=h_;exports.RESOURCE_ATTACHED_SERVICE=m0;exports.RESOURCE_DESCRIBE_SERVICE=d0;exports.RESOURCE_RESOLVE_SERVICE=p0;exports.RESOURCE_SEARCH_SERVICE=f0;exports.SALES_KINDS=Nt;exports.SALES_SCOPE_KINDS=Cc;exports.SCHEDULE_ENTRY_SCOPE_KIND=ya;exports.SCHEDULE_EVENT=Ha;exports.SCOPE_ACTS_ROUTE=b0;exports.SCOPE_READ_ROUTE=y0;exports.SCOPE_RELATED_ROUTE=h0;exports.SEGMENT_FILTER_KEYS=Sf;exports.SEGMENT_LAYOUTS=vf;exports.SEGMENT_LIST_FILTERS=qs;exports.SEGMENT_PRESENCE_FILTERS=Gs;exports.SEGMENT_SORT_FIELDS=Af;exports.SENDING_STALE_MS=xd;exports.SETTINGS_BASE_PATH=xe;exports.SETTINGS_CATEGORIES=L0;exports.SIGNATURE_INTENTS=lf;exports.SLA_METRICS=Ky;exports.SLA_PAUSE_REASONS=$y;exports.STATUS_NAMES=zp;exports.STEP_MAX_TOKENS_MAX=Ra;exports.STEP_MAX_TOKENS_MIN=Ma;exports.STEP_TYPES=kh;exports.STRATEGY_ITEM_SCOPE_KIND=nc;exports.SUMMARY_MIN_LAST_CHARS=Pi;exports.SUMMARY_MIN_MESSAGES=wi;exports.SYNC_RUN_MAX_ERRORS=O0;exports.SYNC_TARGET_PROVIDER_GROUP=k0;exports.SYSTEM_ONE_NON_GOALS=vl;exports.SYSTEM_RESOLUTIONS=Yi;exports.TERMINAL_ASSIGNMENT_STATUSES=bs;exports.TERMINAL_RUN_STATUSES=wa;exports.TRANSACTION_KINDS=Ci;exports.TRIGGER_VARS=Ih;exports.UNARY_OPS=by;exports.UNCOLLECTED_AFTER_DAYS=Ec;exports.UNKNOWN_KIND=aa;exports.UNKNOWN_LEVEL_ORDER=rc;exports.UNSENT_STATES=er;exports.UNSUPPORTED=MI;exports.UNWORKED_RESOLUTIONS=Cm;exports.USAGE_DIMENSIONS=as;exports.USAGE_DIMENSION_IDS=cs;exports.USAGE_RECORDS_ROUTE=cf;exports.USAGE_SOURCE_PROVIDER_GROUP=af;exports.UnresolvedRefError=_r;exports.WEBHOOK_EVENTS=wc;exports.WORKSTREAM_SCOPE_KIND=ba;exports.WORK_ACTIVITY_SCOPE_KIND=Kc;exports.WORK_AREAS=Ng;exports.WORK_COMMENT_ADDED=d_;exports.WORK_CYCLE_SYNC_KIND=A_;exports.WORK_ITEM_ASSIGNED=f_;exports.WORK_ITEM_SCOPE_KIND=Pc;exports.WORK_ITEM_STATUS_CHANGED=p_;exports.WORK_PIPELINE_SERVICE=E_;exports.WORK_PROJECT_SCOPE_KIND=Lc;exports.WORK_SORT_FIELDS=G_;exports.WORK_VIEW_FLAGS=q_;exports.WORK_VIEW_LAYOUTS=W_;exports.WORK_VIEW_LIST_FILTERS=j_;exports.W_PRIORITY=Ne;exports.XAF_NAMESPACE=ra;exports.acceptExampleCandidate=Ib;exports.accountRow=Pp;exports.accountTotals=Km;exports.accountTypeOf=pg;exports.accrualPostings=zf;exports.actingIdentityKey=Ea;exports.activeWorkTypes=bb;exports.activityIconOf=Tu;exports.activityJoinUrl=Lu;exports.activitySnippet=Bo;exports.activityTextParams=jo;exports.activityTimelineText=Pu;exports.activityTimestamp=Go;exports.activityTypeInfo=H;exports.actorKey=ch;exports.addExampleCandidate=_b;exports.addMonths=pe;exports.addWorkingMs=Pt;exports.admit=bp;exports.adoptPlan=xp;exports.adoptRowsFromTable=Up;exports.adoptSeriesId=Np;exports.adoptSummary=wp;exports.agePresenceEntry=r0;exports.aggregateUsage=Ps;exports.agingBucketOf=xc;exports.agingOf=i_;exports.agreementEffectiveEnd=al;exports.agreementFromQuote=Qu;exports.agreementHref=jb;exports.agreementScopeKey=Bb;exports.aiAttachmentKind=Gc;exports.aiAttachmentRejection=X_;exports.aiBudgetLimit=fn;exports.aiBudgetPeriodKey=Nl;exports.aiBudgetPeriodStart=is;exports.aiBudgetState=Rl;exports.aiVendorAcceptsAttachment=Ml;exports.aiVendorDefaultModel=Tl;exports.aiVendorLabel=Cl;exports.aiVendorNeedsBaseUrl=Ol;exports.aiVendorsWith=kl;exports.allocate=fe;exports.allocateInvoice=ny;exports.allowsFraction=sf;exports.appNameFromPath=tu;exports.applyApprovalDecision=Yl;exports.applyRounding=pb;exports.applySignature=df;exports.approvalRate=Na;exports.artifactBodyBytes=hs;exports.artifactOutline=ys;exports.artifactToMarkdown=Bn;exports.assignmentMismatch=mh;exports.assignmentScopeKey=ad;exports.assignmentSubject=ld;exports.availabilityByPerson=$g;exports.awaitsNumber=Zp;exports.balanceSheet=Bm;exports.belongsOnCalendar=xg;exports.billableTimeGroups=db;exports.billedQuantity=$s;exports.billedThroughOf=dl;exports.billingStartOf=lp;exports.billingTerm=Yo;exports.bindParams=gy;exports.bindValue=mt;exports.blockersOf=Ei;exports.bookingDocumentOf=kb;exports.bookingDocumentOfReceipt=Rd;exports.bookingLinesOf=Ms;exports.bookingSyncKey=Nd;exports.buildActivityPreview=$u;exports.buildChannelIntents=mI;exports.buildNavModel=ZI;exports.buildShareKeys=nd;exports.buildWindow=gu;exports.businessEntitySender=zs;exports.bySeries=bi;exports.calendarDaysBetween=ca;exports.calendarOf=Lt;exports.canConvert=tm;exports.canDecrease=hi;exports.canMoveAgreement=sl;exports.canNestUnder=xm;exports.canParent=Zy;exports.canTransition=Xp;exports.cancelPlan=dp;exports.canonicalJson=En;exports.capabilityDefaultFlag=hl;exports.capacityTotal=Lg;exports.capacityWeights=oh;exports.capitalizationThreshold=Jf;exports.carriesText=Nu;exports.cashForecast=qm;exports.categoryLabel=Pm;exports.categoryOf=Fc;exports.causedBy=vy;exports.changesBilledLine=cl;exports.changesBilledPrice=fl;exports.channelKindForScheme=SI;exports.channelKindOf=ku;exports.checkInOverdueMs=ub;exports.chooseOffer=jh;exports.chosenOf=jp;exports.clampStepMaxTokens=Th;exports.classifyMail=ym;exports.cleanDimensions=ve;exports.cleanMessageMarkdown=hE;exports.cleanMessageText=gE;exports.cleanReceiptLines=sp;exports.codeQuery=Gd;exports.codedMessage=bI;exports.columnBalance=jm;exports.commandOf=_p;exports.commitProblem=Bd;exports.companyReceivablesOf=c_;exports.compareAssistRank=rI;exports.compareReports=Lm;exports.compareWorkTypes=uc;exports.conditionHolds=Ys;exports.configurationStatus=Fp;exports.contactName=Ef;exports.contractSignals=Wh;exports.copyFrom=sr;exports.correlationKeyFor=cI;exports.costOverYear=li;exports.countsAsPlanned=Ae;exports.coverEndAt=ts;exports.coverageByPerson=Kg;exports.coverageFor=Wg;exports.coversWorkstream=lr;exports.crmActivityAt=Nf;exports.cronMatches=Va;exports.currentAccountRelation=Gf;exports.currentLines=tl;exports.currentOf=Ap;exports.currentPeriod=Hb;exports.customerProducts=Vp;exports.cycleDayIndex=dr;exports.cycleOrder=F_;exports.cycleState=B_;exports.dealValueCents=Zu;exports.debtorOf=kt;exports.decideAssignmentState=dd;exports.decideCadence=P0;exports.decideEach=Gl;exports.decideIncomingCall=dI;exports.decisionBand=Al;exports.decodeText=PI;exports.defaultLocaleOf=Ji;exports.defaultOffer=ci;exports.defaultStatusKey=N_;exports.defaultTemplateBlocks=_c;exports.defineIntent=TI;exports.delegationRefusal=fd;exports.depreciationParts=ri;exports.depreciationPostings=Hf;exports.depthOf=Xi;exports.derivePresence=n0;exports.describeClause=Bl;exports.describeExpression=Ey;exports.digitsOf=Ls;exports.disabledIntentsFromCapabilities=fI;exports.disposalLines=Yf;exports.documentBodyBytes=hs;exports.documentKindOf=YI;exports.documentOutline=ys;exports.documentToMarkdown=Bn;exports.documentToText=GI;exports.draftRequest=bn;exports.driftedFields=za;exports.dueAtOf=Vy;exports.dueCharges=nl;exports.dueDateFrom=Xb;exports.dunningRunOf=Kb;exports.dunningStateOf=Ac;exports.effectiveEndAt=nt;exports.elapsedSeconds=fb;exports.emailDomain=G0;exports.emptyConditionLeaf=_y;exports.endable=fp;exports.endpointKey=Y0;exports.entryLinesOf=tg;exports.entryNumber=Hm;exports.entryProblems=Vm;exports.erlangC=la;exports.excessiveLending=Wf;exports.expectedFor=qh;exports.expectsInvoice=ii;exports.externalKeyOf=le;exports.extractParams=ru;exports.extractTerms=pu;exports.failureLines=$f;exports.feedOutcome=zh;exports.fieldVarPath=My;exports.fillDocument=Lf;exports.fillText=Hs;exports.filterByEndpoint=hI;exports.filterByIntent=gI;exports.filterByTargetScheme=zc;exports.filterableDimensions=Fl;exports.findAiVendor=we;exports.findEvent=Ry;exports.findInListing=Sp;exports.finishedAt=il;exports.fixedLevelForName=eb;exports.fixedTypeForName=__;exports.fixedTypes=I_;exports.flattenLocales=XI;exports.floorToPeriod=Ee;exports.forecastIntervals=eh;exports.formatActingIdentity=Ia;exports.formatCents=J;exports.formatClock=gb;exports.formatHm=mb;exports.formatItemKey=C_;exports.formatMicros=zd;exports.formatPeriod=Ie;exports.formatSeriesNumber=Vb;exports.formatSlaDuration=zy;exports.freshSources=J_;exports.fromPathKey=cm;exports.getActivitySeenUserIds=Bu;exports.getContactEndpoints=bf;exports.getShortTitle=vm;exports.getUrgencyScore=Am;exports.goodsReceiptProblems=ai;exports.groupDocumentLines=Fa;exports.guessAdoptMapping=$p;exports.guessFeedMapping=Qh;exports.hasReacted=ay;exports.hashedPartOf=Qm;exports.healthCategory=tb;exports.healthsInCategory=nb;exports.heightOf=ar;exports.helpCenterText=Mm;exports.humanizeAction=bh;exports.indexPrices=pl;exports.interactionIdOf=Oa;exports.interestOnDailyBalance=Bf;exports.interestPeriods=jf;exports.invoiceFromQuote=Vo;exports.invoiceState=np;exports.invoicesFromOrders=am;exports.isAdoptSeries=Dp;exports.isAgentUser=u_;exports.isAssigned=Em;exports.isAssignmentTerminal=id;exports.isAssignmentTrigger=Ca;exports.isAssistantMode=Dl;exports.isAuthoredCrmActivity=Rf;exports.isAutoReady=Dh;exports.isAutonomy=gh;exports.isAwaitingThem=Hi;exports.isBookable=Tb;exports.isChatMessageActivity=qu;exports.isClosed=Sm;exports.isConnectedType=xu;exports.isDescendant=Qi;exports.isEligible=lm;exports.isEmailActivity=ju;exports.isFrozen=or;exports.isHeldClock=Wy;exports.isHtmlBody=mE;exports.isInFlight=wh;exports.isInteractionUnseen=Ki;exports.isLandingPath=E0;exports.isLikelyBulk=xi;exports.isMessageShape=wn;exports.isMessageType=Ou;exports.isMoreSpecificPattern=su;exports.isNoteShape=Pn;exports.isOpenClock=tc;exports.isOutstanding=Ar;exports.isOutwardTool=Tr;exports.isOverdueOn=Jb;exports.isParked=ji;exports.isPaused=Pa;exports.isPipeline=S_;exports.isPlaybookAuthoredType=Du;exports.isPricePer=zu;exports.isPublicEmailDomain=V0;exports.isPublicPath=v0;exports.isPurchasable=nf;exports.isRecurringLine=Ho;exports.isReminderActive=qi;exports.isReplyableType=Ru;exports.isResultAccount=Pe;exports.isSellable=tf;exports.isSettingsPath=_0;exports.isSettled=Nc;exports.isShorter=el;exports.isSlaAtRisk=_m;exports.isSupportedCron=Ay;exports.isTerminal=xh;exports.isThreadLongEnough=pm;exports.isTradeable=Ud;exports.isTranscriptType=wu;exports.isUncollected=vc;exports.isWebhookEvent=l_;exports.isWorkClosed=D_;exports.isWorkTypeVisible=yb;exports.isWriteTool=Mr;exports.itemDossierKeys=O_;exports.itemKey=ft;exports.itemKeyOf=Sd;exports.judgeRuleCase=Cy;exports.kindFor=ee;exports.ladderFor=Uc;exports.ledgerRuleFor=Rs;exports.levelIn=sc;exports.levelOrder=It;exports.lineAffinity=br;exports.lineKey=Ah;exports.lineNet=xt;exports.lineStatus=Xo;exports.lineTerm=V;exports.linesOf=Ai;exports.linkLabel=Om;exports.listedTransactionKinds=Yp;exports.listeningAllowed=xl;exports.loanPostings=Vf;exports.loanSchedule=zn;exports.localeInstruction=Dm;exports.localeName=Nm;exports.localesOf=wm;exports.looksLikeEmail=j0;exports.lookup=Hn;exports.manualSettlement=n_;exports.marginCents=Wu;exports.markdownToDocument=qI;exports.matchApprovalPolicy=Vl;exports.matchContactToIntents=yI;exports.matchDocumentLines=Ba;exports.matchFeed=Yh;exports.matchPublicRoute=iu;exports.matchRate=Ks;exports.matchRules=Ya;exports.matchVerdict=ry;exports.matchedLine=vd;exports.mcpCredentialScope=hg;exports.mcpToolPrefix=yg;exports.measureRatio=ob;exports.mergeDefaultFlags=bl;exports.mergeShownKeys=w0;exports.mergeable=sm;exports.messageCountsAs=Fo;exports.metricOption=jl;exports.minutesOn=fr;exports.missingFieldPaths=Ny;exports.modelAcceptsAttachment=Il;exports.monthEnd=ti;exports.monthParts=Qs;exports.monthlyPeriods=ig;exports.monthsIn=Zs;exports.mustAsk=au;exports.narrowAutonomy=yh;exports.navLabelText=QI;exports.needsOf=Ii;exports.needsPhoneRegion=H0;exports.nestsUnderParent=Mu;exports.nextAttemptAt=yp;exports.nextLevelBelow=Jy;exports.nextOccurrenceDates=U_;exports.nextPrice=ll;exports.nextSlaClock=Hy;exports.nextStatuses=Ti;exports.nextVersion=nm;exports.normalizeArtifactBlocks=gs;exports.normalizeBlocks=Au;exports.normalizeDocumentBlocks=gs;exports.normalizeEmail=Rr;exports.normalizeExample=ce;exports.normalizeGtin=Ot;exports.normalizeIban=js;exports.normalizeIbans=gf;exports.normalizeMeter=Fs;exports.normalizeUsageSource=uf;exports.normalizeVatNumber=mf;exports.noticeDeadline=es;exports.notificationPrefKey=e0;exports.novelty=mu;exports.offerKey=c0;exports.offerValid=Zn;exports.onePerItem=_i;exports.openCentsOf=gd;exports.operationDescriptor=BI;exports.operationsForKind=FI;exports.opsForFieldType=Oy;exports.orderAnswers=qp;exports.orderForDocument=Zh;exports.orderProgress=ki;exports.organizationSender=Kf;exports.outcomeOf=L_;exports.overlap=At;exports.overlapSeconds=Ve;exports.overlaps=Gg;exports.ownWorkspaceKey=Sb;exports.paceRatio=sb;exports.parkMarksById=dm;exports.parse=Wa;exports.parseActingIdentity=ih;exports.parseAmount=rn;exports.parseCamt053=vs;exports.parseClockMinutes=Py;exports.parseCodedMessage=II;exports.parseCron=Ir;exports.parseCsv=DI;exports.parseDay=In;exports.parseItemKey=T_;exports.parseLineKey=vh;exports.parseMicros=Wn;exports.parseMt940=Ts;exports.parsePackingSlip=ey;exports.parseRateCsv=Xd;exports.parseRatePrice=hn;exports.parseRecurrence=$_;exports.parseStatement=Ed;exports.parseWorkspacePath=vb;exports.parseXafOpening=fg;exports.partialDisposalLines=Zf;exports.partyTerms=Xu;exports.pathToRegex=nu;exports.patternFor=mr;exports.patternStartTime=pr;exports.pauseBitFor=Ly;exports.paymentOfItem=yd;exports.paymentStateOf=Sr;exports.pendingApprovers=Hl;exports.periodAt=et;exports.periodOf=ag;exports.periodShare=zo;exports.periodsInRange=$l;exports.phoneSuffix=q0;exports.pickMailHeaders=mm;exports.pickPaymentTerm=zb;exports.pickTemplate=xf;exports.placeLumps=sh;exports.plainTextFromMarkdown=$o;exports.planFor=Rp;exports.planSlaEvent=Gy;exports.plannedBillable=Vg;exports.plannedWorkTypeKey=ga;exports.preparationFromParams=l0;exports.priceAt=ns;exports.priceOver=St;exports.primaryAddress=pf;exports.procedureOf=Rh;exports.productCost=ui;exports.productHref=Fb;exports.productScopeKey=$b;exports.profitAndLoss=Fm;exports.progressState=im;exports.projectDossierKeys=M_;exports.proposalRequestIds=Wl;exports.proposeMatch=pd;exports.providedOf=gp;exports.publicBasePathFor=ou;exports.publicRoutePatterns=A0;exports.purchaseUnits=ap;exports.quantityKey=gl;exports.rateRecords=Zd;exports.ratedLineAmount=Jd;exports.ratedQuantity=Vn;exports.reactionWakesAssignment=ud;exports.readDefaultFlags=yl;exports.readFeed=Vh;exports.readPath=Qe;exports.readStepError=We;exports.ready=pi;exports.receiptGroupOf=Md;exports.receiptProblems=Os;exports.receiptState=tp;exports.receiptTotals=ks;exports.receivableRowOf=s_;exports.receivedFor=si;exports.recencyOf=Bi;exports.recipientLocale=Df;exports.reconciledOn=md;exports.reconciliationBalances=hd;exports.recoveryOf=Ip;exports.refKey=gr;exports.referenceCostIn=jd;exports.registrableDomain=bu;exports.rejectExampleCandidate=pc;exports.relatedByDefault=Ag;exports.remainingMsOf=_t;exports.reportOf=yi;exports.repriceLines=Yd;exports.requestIdOf=fi;exports.requestPath=um;exports.requiredAgents=pa;exports.requirementFor=ma;exports.requiresIdsOf=di;exports.resolutionsFor=km;exports.resolveAccountCapabilities=Yc;exports.resolveActivityText=Ze;exports.resolveAutonomy=hh;exports.resolveChannelIntents=Hc;exports.resolvePrice=xs;exports.resolveRateCard=Vd;exports.resolveRoute=El;exports.resolveSignature=Bs;exports.resolveTier=ss;exports.resolveWorkMode=o0;exports.resolveWorkspace=Ab;exports.resourceKindOf=g0;exports.restartOf=Qn;exports.restate=Wo;exports.retryDelayMinutes=Dd;exports.reversedLines=Jm;exports.rhythmOf=Ln;exports.roleDirection=yf;exports.rollupChildren=cb;exports.roundHalfUp=U;exports.runActor=ah;exports.runApprovalKey=lh;exports.runEvalSuite=Uf;exports.runIdOfApprovalRef=dh;exports.runInteractionId=Lh;exports.runKind=Nh;exports.runOutcome=ky;exports.runSpans=ol;exports.sameOffer=u0;exports.sanitizeInline=ms;exports.sanitizeTranscript=cu;exports.scheduleEntryScopeKey=th;exports.scoreInteraction=Im;exports.scoreWorkItem=g_;exports.segmentIsEmpty=Cf;exports.selectLenses=gg;exports.sellableProduct=ef;exports.sellsOption=qa;exports.serialKeyOf=cp;exports.serialKeysOf=rp;exports.serialize=He;exports.serialsInHouse=op;exports.seriesOf=yn;exports.seriesStart=Jo;exports.serviceLevel=da;exports.sessionsHoldCannotReach=lI;exports.sessionsToHold=uI;exports.settingsPath=I0;exports.settle=Ep;exports.settlementPatch=t_;exports.settlesOn=Ss;exports.shadowByKey=Ld;exports.shareKeyForTeam=qn;exports.shareKeyForUser=jn;exports.shareKeysForViewer=rd;exports.shareReceipts=rm;exports.shortTermPrincipal=Qf;exports.shortfalls=Hg;exports.shouldRunAudioPipeline=s0;exports.slaBadgeTone=Yy;exports.slaHoursByInbox=bm;exports.slaHoursFor=Vi;exports.slipProposal=Jh;exports.sortStatuses=Bc;exports.sourceKey=Vc;exports.splitLine=ul;exports.splitUnits=Gp;exports.spread=Xn;exports.spreadOverWeights=_a;exports.stableId=de;exports.startingCents=Xf;exports.statusIn=R_;exports.statusRequiresApproval=P_;exports.stepDate=qc;exports.stepsOf=Mh;exports.strategyAncestorKeysFor=Qy;exports.strategyDossierKeys=Xy;exports.strategyItemScopeKey=Er;exports.stripHtml=Uo;exports.structureProblems=mi;exports.subjectKeyOf=Ph;exports.subjectOf=hr;exports.subjectRef=nI;exports.subscriptionRow=Lp;exports.suggestProjectKey=k_;exports.suggestTreatments=Td;exports.suggestedHealth=ib;exports.summariseEval=Xs;exports.summarizeReactions=sy;exports.supplyChain=gi;exports.tallies=om;exports.targetById=ph;exports.targetForActivityType=fh;exports.targetOf=Mp;exports.targetOrder=lb;exports.taxCodeProblem=Og;exports.taxDateOf=ae;exports.taxPercentOn=ur;exports.taxRateFor=ia;exports.taxRatesOn=kg;exports.taxSideOf=Zm;exports.termApplies=Rc;exports.termEndAt=re;exports.termStartAt=$n;exports.termsFor=ua;exports.tieredMicros=Us;exports.timingOf=Qo;exports.toActingIdentity=Sa;exports.toBaseUnits=Kd;exports.toE164=xn;exports.toInvoice=Oi;exports.toPathKey=Mi;exports.toProductUnits=Jn;exports.toTransactionTerm=Qb;exports.toolBareName=Ta;exports.toolDisplayName=_h;exports.toolReversible=Z_;exports.toolSourceKinds=od;exports.toolVerdict=R0;exports.topicOfferedForTeam=mc;exports.topicsForTeam=Eb;exports.trafficIntensity=fa;exports.transactionContext=Ob;exports.transactionDossierKeys=Gb;exports.transactionHref=Ub;exports.transactionIdFromScope=qb;exports.transactionKind=G;exports.transactionScopeKey=Oc;exports.transactionSlots=Mb;exports.transactionTotals=Mg;exports.transitoryLines=eg;exports.triggerFillsVar=Eh;exports.truncateExample=fc;exports.typeIn=b_;exports.typesFor=y_;exports.uniqueWorkStatusKey=x_;exports.uniqueWorkTypeKey=hb;exports.unitFactor=Ns;exports.unitsProblem=$d;exports.upsellOfferFor=oy;exports.usageAccountOf=os;exports.usageAccountsOf=ml;exports.usageMetricId=us;exports.usageMetrics=ql;exports.usersOf=Se;exports.validateQuestions=Sl;exports.validateStatuses=w_;exports.valueAtPath=va;exports.variableJump=Ka;exports.variantOptionsProblem=Fd;exports.vatDateOf=dy;exports.vatPeriods=uy;exports.vatReturn=cy;exports.waitHoursOf=Dt;exports.wakesAssignment=cd;exports.withLineIds=Ch;exports.withPrice=rs;exports.workActivityScopeKey=v_;exports.workItemScopeKey=$c;exports.workProjectScopeKey=vr;exports.workRatio=ab;exports.workStatusKey=jc;exports.workTypeKey=cc;exports.workingMsBetween=gt;exports.workspacePath=Cb;exports.workstreamScopeKey=nh;exports.xafAuditfile=lg;exports.xmlBlocks=Q;exports.xmlText=N;exports.yearEndClosingLines=Gm;