@opencxh/domain 1.293.0 → 1.294.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/entities/bookkeeping/receipt.d.ts +32 -1
- package/dist/entities/financing/schedule.d.ts +40 -1
- package/dist/entities/financing/types.d.ts +91 -3
- package/dist/entities/ledger/template.d.ts +5 -0
- package/dist/entities/ledger/types.d.ts +6 -1
- package/dist/entities/reports/reports.d.ts +9 -0
- package/dist/entities/work/index.d.ts +1 -1
- package/dist/entities/work/types.d.ts +1 -1
- package/dist/index.cjs +21 -21
- package/dist/index.js +2306 -2122
- package/dist/platform/bookkeeping.d.ts +15 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const lt=10,me=10,ge=10,he=5,
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const lt=10,me=10,ge=10,he=5,Zi=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Qe(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 Ji(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=lt){t(`more than ${lt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Zi.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Qe(o.text)){t("a header without text");continue}break;case"context":if(!Qe(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>me&&(t(`more than ${me} fields in a section`),o.fields=o.fields.slice(0,me));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>ge&&(t(`more than ${ge} list items`),o.items=o.items.slice(0,ge));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&Qe(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>he&&t(`more than ${he} actions`),o.elements=i.slice(0,he);break}}n.push(o)}return n}const Qi=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,ea=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function cr(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(Yi,"$2"),t=t.replace(Xi,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function cr(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function de(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 Sn(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function et(e){return e?.split("@")?.[0]||e||""}function fe(e){return e.map(t=>t.name).join(", ")}function In(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const U={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${et(e.payload.from)}`:`Outbound call started — ${et(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?` (${de(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Sn(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${et(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?` (${de(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:Tn},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:Tn},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=>`${In(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?` (${de(e.payload.duration)})`:""}`,timeline:e=>`${In(e.payload.callType)} ended${Sn(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?` (${de(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 Tn(e){const t=e.payload,n=ar(t.bodyText).trim()||t.bodySnippet?.trim()||cr(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function w(e){return U[e]}function qi(e){return w(e)?.icon??"circle"}function Zi(e){return w(e)?.channelKind}function Lt(e){return e==="message"||e==="note"}function Ji(e){return Lt(w(e)?.shape)}function Pt(e){return e==="note"}function Qi(e){return Pt(w(e)?.shape)}function ea(e){return w(e)?.replyable===!0}function ta(e){return w(e)?.carriesText===!0}function ur(e){return w(e)?.countsAs}function na(e){return w(e)?.playbookAuthored===!0}function ra(e){return w(e)?.connected===!0}function oa(e){const t=w(e);return t?.shape==="artifact"&&t?.carriesText===!0}function lr(e){const t=w(e.type)?.snippet;return t?t(e):""}function sa(e,t){const n=w(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function ia(e){const t=w(e.type)?.joinUrl;return t?t(e):void 0}function Ie(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 Te(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Ie(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Ie(t,i);const o=n(e.key,r);return o===e.key?null:o}function dr(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]=Ie(t,o);return{key:e.key,params:n}}const Cn=140;function aa(e){const t=e.trim();return t.length<=Cn?t:`${t.slice(0,Cn-1).trimEnd()}…`}function ca(e,t){const n=dr(t?.text,e),r=t?Te(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:aa(r??lr(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const ua=e=>e;function vn(e){const t=U[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 On(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 fr{constructor(t=[],n=ua){this.translate=n;for(const r of t)r?.type&&(r.type in U||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in U)return vn(t);const n=this.declared.get(t);return n?On(n):void 0}triggerable(){const t=Object.keys(U).filter(r=>U[r].triggerable).map(vn),n=[...this.declared.values()].map(On).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=U[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Te(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=U[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Te(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 Lt(this.get(t)?.shape)}nestsUnderParent(t){return Pt(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 la=new fr;function da(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 pr(e){return e.createdAt??0}function fa(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function pa(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}const dt={month:1,quarter:3,year:12},ma=864e5;function ga(e,t){return dt[e]<dt[t]}function ft(e,t){const n=new Date(e),r=dt[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 $t(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 Kt(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 mr(e,t,n){const r=Kt(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)/ma);return o(r.from,r.to)/o(t.from,t.to)}function gr(e,t,n){const r=$t(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function ha(e,t,n){return t.filter(r=>gr(e,r,n)!=="ended")}function L(e){return e<0?-Math.round(-e):Math.round(e)}function hr(e,t){if(t.length===0)return[];const n=t.reduce((u,c)=>u+c,0);if(n===0)return t.map((u,c)=>c===0?e:0);const r=t.map(u=>e*u/n),o=r.map(u=>Math.trunc(u));let s=e-o.reduce((u,c)=>u+c,0);const i=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),a=s<0?-1:1;for(let u=0;s!==0&&u<i.length;u++)o[i[u].index]+=a,s-=a;return o}function B(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 u="";for(let c=0;c<i.length;c++)c>0&&(i.length-c)%3===0&&(u+=r),u+=i[c];return`${o?"-":""}${u}${n}${a}`}function ya(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),u=a===-1?"":o.slice(a+1),c=a!==-1&&u.length>=1&&u.length<=2,d=c?o.slice(0,a):o;if(!ba(d))return;const l=d.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(l==="")return;const g=Number(l)*100+Number(f);return r?-g:g}function ba(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Ea(e){return e.costPriceCents==null?e.netCents:e.netCents-L(e.costPriceCents*e.quantity)}const pt=864e5;function yr(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function br(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const pe=e=>Math.round((e.to-e.from)/pt);function _a(e,t,n,r){const o=[],s=[],i=e.graceDays*pt,a=e.proration===!0;for(const u of t){const c=$t(e,u),d=yr(e,u),l=br(u),f=n.filter(p=>p.agreementLineId===u.id);if(d==="once"){const p={from:c.from,to:c.from+pt};c.from+i<=r&&!f.some(_=>!_.correction)&&o.push({lineId:u.id,window:p,part:p,share:1,timing:"advance"});continue}const g=[];for(let p=ft(c.from,d);p.from<(c.to??Number.POSITIVE_INFINITY)&&p.from+i<=r;p=ft(p.to,d))g.push(p);const b=u.quantity.from==="fixed";for(const p of g.slice(-24)){const _=Kt(c,p),m=p.to+i<=r,h=f.filter(S=>S.servicePeriod.from>=p.from&&S.servicePeriod.from<p.to),y=h.find(S=>!S.correction);if(!y){if(!_)continue;const S=_.from===p.from&&_.to===p.to;if(!(l==="advance"&&S)&&!m)continue;const v=b?mr(c,p,a):1;v>0&&o.push({lineId:u.id,window:p,part:_,share:v,timing:l});continue}b&&a&&m&&s.push(...Aa(u.id,p,_,y,h))}}return{charges:o,corrections:s}}function Aa(e,t,n,r,o){const s={...r.servicePeriod};for(const u of o){if(!u.correction)continue;Math.sign(u.quantity)!==Math.sign(r.quantity)?u.servicePeriod.from<=s.from?s.from=u.servicePeriod.to:s.to=u.servicePeriod.from:u.servicePeriod.to<=s.from?s.from=u.servicePeriod.from:s.to=u.servicePeriod.to}const i=[];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}));const a=r.unitPriceCents*pe(t)/Math.max(1,pe(r.servicePeriod));return i.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:L(a*pe(u)/pe(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Sa(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}}function Er(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 Ia(e){const t=new Map;for(const n of e.lines??[]){const r=Er(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Ta(e,t){return[e,t].join("@")}const Fe=[{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 Ca(e){return Fe.find(t=>t.id===e)?.defaultFlag}function va(e){const t={};for(const n of Fe)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Oa(e,t){const n={};for(const r of Fe){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const ka={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function Ma(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=ka[t];return n?e.in.includes(n):!1}const Y=["fast","standard","deep"],kn=(e,t)=>{const n=Y.indexOf(e),r=Math.min(Y.length-1,Math.max(0,n+t));return Y[r]},mt=e=>Y.indexOf(e);function _r(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=kn(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=kn(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&mt(n)>mt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function Ra(e,t,n){const r=_r(t);if(!e)return{...r,...n,routed:!1};for(let o=mt(r.tier);o>=0;o--){const s=Y[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 gt=255,ht=2,yt=10;function Na(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>gt)return`vraag "${n}" heeft meer dan ${gt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<ht||o>yt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${ht} tot ${yt} zijn`}}return null}function Da(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const wa=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],Ut=[{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 ae(e){return Ut.find(t=>t.id===e)}function xa(e){return ae(e)?.label??e}function La(e,t="gpt-5-mini"){return ae(e)?.defaultModel??t}function Pa(e){return Ut.filter(t=>t.capabilities.includes(e))}function $a(e){const t=ae(e);return!!t&&!t.baseUrl}function Ka(e,t){return t==="text"?!0:ae(e)?.attachmentKinds?.includes(t)===!0}function Ua(e,t){if(!e.enabled)return"ok";const n=bt(e.hardLimitNanos),r=bt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function bt(e){return typeof e=="number"?e:void 0}function Ar(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Ba(e,t="month"){const n=new Date(Ar(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Fa(e){return e==="ask"||e==="draft"||e==="agent"}function ja(e){return e?.listeningEnabled!==!1}const Ga=["report"],Va=[{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 tt(e){return e<10?`0${e}`:`${e}`}function Z(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${tt(n.getUTCMonth()+1)}-${tt(n.getUTCDate())}`;return t==="day"?r:`${r}T${tt(n.getUTCHours())}`}function J(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Wa=36e5,Ha=864e5;function za(e,t,n){const r=n==="hour"?Wa:Ha,o=[];for(let s=J(e,n);s<=t;s+=r)o.push(Z(s,n));return o}const Ya=new Set(["time"]);function Xa(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Ya.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 qa(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 Za(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Sr=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Ir=Sr.map(e=>e.id);function Tr(e,t){return`${e}.usage.${t}`}function Ja(e,t){return t.map(n=>({id:Tr(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Ir,...n.extraDimensions??[],"time"]}))}async function Qa(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 ec(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function tc(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 nc(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 rc(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 Cr=new Set(["info","success","warning","destructive"]),Ce=200,ve=100,Oe=200,ke=12,Me=4,Et=10,vr=8,_t=12,je=4e3,z=500,Or=1024*1024,oc=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),kr=["http:","https:","mailto:","tel:"],sc=/^[a-z][a-z0-9+.-]*:/i;function Bt(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=sc.exec(t)?.[0];return n?kr.includes(n.toLowerCase()):!t.startsWith("//")}const ic=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function ac(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=Mn(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=Mn(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),u=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Bt(u)?a:e.slice(n,i+1),n=i+1}return t}function Mn(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 Mr(e){return ac(e).replace(ic,(t,n,r)=>Bt(r)?t:"")}function N(e,t=je){return typeof e=="string"?Mr(e).slice(0,t):""}function cc(e,t=je){return typeof e=="string"?e.slice(0,t):""}function te(e,t=200){return N(e,t)}function uc(e,t="info"){return typeof e=="string"&&Cr.has(e)?e:t}function Rr(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Ce){t(`more than ${Ce} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!oc.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=N(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=N(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=N(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=cc(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 c of i){if(a.length>=ve){t(`more than ${ve} list items`);break}const d=N(c?.text);if(!d)continue;const l=N(c?.lead,200);a.push(l?{lead:l,text:d}:{text:d})}if(a.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const l of i){if(a.length>=ke){t(`more than ${ke} table columns`);break}const f=N(l?.label,z),g=l?.align==="right"?"right":void 0;a.push(g?{label:f,align:g}:{label:f})}if(a.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const l of u){if(c.length>=Oe){t(`more than ${Oe} table rows`);break}const f=Array.isArray(l)?l:[];c.push(a.map((g,b)=>N(f[b],z)))}const d=N(o.caption,z);n.push({...s,type:"table",columns:a,rows:c,...d?{caption:d}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=Me){t(`more than ${Me} kpi items`);break}const c=N(u?.value,40),d=N(u?.label,80);if(!c||!d)continue;const l=u?.tone;a.push(typeof l=="string"&&Cr.has(l)?{value:c,label:d,tone:l}:{value:c,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||!Bt(i)){t("an image without a usable url");continue}const a=N(o.alt,200),u=N(o.caption,z);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...u?{caption:u}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const d of i){if(a.length>=Et){t(`more than ${Et} letterhead fields`);break}const l=d,f=typeof l?.key=="string"?l.key.slice(0,48):"",g=te(l?.value);if(!f||!g)continue;const b=te(l?.label,80);a.push(b?{key:f,label:b,value:g}:{key:f,value:g})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,vr).map(d=>te(d)).filter(Boolean);if(a.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...c.length>0?{recipient:c}:{}});break}case"totals":{const i=c=>{const d=Array.isArray(c)?c:[],l=[];for(const f of d){if(l.length>=_t){t(`more than ${_t} totals rows`);break}const g=f,b=te(g?.label),p=te(g?.amount,40);!b||!p||l.push(g?.emphasis===!0?{label:b,amount:p,emphasis:!0}:{label:b,amount:p})}return l},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=i(o.taxRows);n.push({...s,type:"totals",rows:a,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=N(o.text);if(!i){t("a callout without text");continue}const a=N(o.title,200);n.push({...s,type:"callout",tone:uc(o.tone),...a?{title:a}:{},text:i});break}}}return n}function Nr(e){return JSON.stringify(e).length}function Dr(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function Rn(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function nt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(Rn).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(Rn).join(" | ")} |`)]}function lc(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=nt(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 nt(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=``;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 nt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function Ft(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=lc(o);s.length>0&&n.push(s.join(`
|
|
3
|
+
`),t=t.replace(Qi,"$2"),t=t.replace(ea,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ur(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function de(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 Sn(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function et(e){return e?.split("@")?.[0]||e||""}function fe(e){return e.map(t=>t.name).join(", ")}function In(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const U={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${et(e.payload.from)}`:`Outbound call started — ${et(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?` (${de(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Sn(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${et(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?` (${de(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:Tn},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:Tn},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=>`${In(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?` (${de(e.payload.duration)})`:""}`,timeline:e=>`${In(e.payload.callType)} ended${Sn(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?` (${de(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 Tn(e){const t=e.payload,n=cr(t.bodyText).trim()||t.bodySnippet?.trim()||ur(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function x(e){return U[e]}function ta(e){return x(e)?.icon??"circle"}function na(e){return x(e)?.channelKind}function Lt(e){return e==="message"||e==="note"}function ra(e){return Lt(x(e)?.shape)}function Pt(e){return e==="note"}function oa(e){return Pt(x(e)?.shape)}function sa(e){return x(e)?.replyable===!0}function ia(e){return x(e)?.carriesText===!0}function lr(e){return x(e)?.countsAs}function aa(e){return x(e)?.playbookAuthored===!0}function ca(e){return x(e)?.connected===!0}function ua(e){const t=x(e);return t?.shape==="artifact"&&t?.carriesText===!0}function dr(e){const t=x(e.type)?.snippet;return t?t(e):""}function la(e,t){const n=x(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function da(e){const t=x(e.type)?.joinUrl;return t?t(e):void 0}function Ie(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 Te(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Ie(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Ie(t,i);const o=n(e.key,r);return o===e.key?null:o}function fr(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]=Ie(t,o);return{key:e.key,params:n}}const Cn=140;function fa(e){const t=e.trim();return t.length<=Cn?t:`${t.slice(0,Cn-1).trimEnd()}…`}function pa(e,t){const n=fr(t?.text,e),r=t?Te(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:fa(r??dr(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const ma=e=>e;function vn(e){const t=U[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 On(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 pr{constructor(t=[],n=ma){this.translate=n;for(const r of t)r?.type&&(r.type in U||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in U)return vn(t);const n=this.declared.get(t);return n?On(n):void 0}triggerable(){const t=Object.keys(U).filter(r=>U[r].triggerable).map(vn),n=[...this.declared.values()].map(On).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=U[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Te(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=U[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Te(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 Lt(this.get(t)?.shape)}nestsUnderParent(t){return Pt(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 ga=new pr;function ha(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 mr(e){return e.createdAt??0}function ya(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function ba(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}const dt={month:1,quarter:3,year:12},Ea=864e5;function _a(e,t){return dt[e]<dt[t]}function ft(e,t){const n=new Date(e),r=dt[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 $t(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 Kt(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 gr(e,t,n){const r=Kt(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)/Ea);return o(r.from,r.to)/o(t.from,t.to)}function hr(e,t,n){const r=$t(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function Aa(e,t,n){return t.filter(r=>hr(e,r,n)!=="ended")}function L(e){return e<0?-Math.round(-e):Math.round(e)}function yr(e,t){if(t.length===0)return[];const n=t.reduce((u,c)=>u+c,0);if(n===0)return t.map((u,c)=>c===0?e:0);const r=t.map(u=>e*u/n),o=r.map(u=>Math.trunc(u));let s=e-o.reduce((u,c)=>u+c,0);const i=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),a=s<0?-1:1;for(let u=0;s!==0&&u<i.length;u++)o[i[u].index]+=a,s-=a;return o}function B(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 u="";for(let c=0;c<i.length;c++)c>0&&(i.length-c)%3===0&&(u+=r),u+=i[c];return`${o?"-":""}${u}${n}${a}`}function Sa(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),u=a===-1?"":o.slice(a+1),c=a!==-1&&u.length>=1&&u.length<=2,d=c?o.slice(0,a):o;if(!Ia(d))return;const l=d.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(l==="")return;const g=Number(l)*100+Number(f);return r?-g:g}function Ia(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Ta(e){return e.costPriceCents==null?e.netCents:e.netCents-L(e.costPriceCents*e.quantity)}const pt=864e5;function br(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function Er(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const pe=e=>Math.round((e.to-e.from)/pt);function Ca(e,t,n,r){const o=[],s=[],i=e.graceDays*pt,a=e.proration===!0;for(const u of t){const c=$t(e,u),d=br(e,u),l=Er(u),f=n.filter(p=>p.agreementLineId===u.id);if(d==="once"){const p={from:c.from,to:c.from+pt};c.from+i<=r&&!f.some(A=>!A.correction)&&o.push({lineId:u.id,window:p,part:p,share:1,timing:"advance"});continue}const g=[];for(let p=ft(c.from,d);p.from<(c.to??Number.POSITIVE_INFINITY)&&p.from+i<=r;p=ft(p.to,d))g.push(p);const b=u.quantity.from==="fixed";for(const p of g.slice(-24)){const A=Kt(c,p),m=p.to+i<=r,h=f.filter(S=>S.servicePeriod.from>=p.from&&S.servicePeriod.from<p.to),y=h.find(S=>!S.correction);if(!y){if(!A)continue;const S=A.from===p.from&&A.to===p.to;if(!(l==="advance"&&S)&&!m)continue;const v=b?gr(c,p,a):1;v>0&&o.push({lineId:u.id,window:p,part:A,share:v,timing:l});continue}b&&a&&m&&s.push(...va(u.id,p,A,y,h))}}return{charges:o,corrections:s}}function va(e,t,n,r,o){const s={...r.servicePeriod};for(const u of o){if(!u.correction)continue;Math.sign(u.quantity)!==Math.sign(r.quantity)?u.servicePeriod.from<=s.from?s.from=u.servicePeriod.to:s.to=u.servicePeriod.from:u.servicePeriod.to<=s.from?s.from=u.servicePeriod.from:s.to=u.servicePeriod.to}const i=[];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}));const a=r.unitPriceCents*pe(t)/Math.max(1,pe(r.servicePeriod));return i.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:L(a*pe(u)/pe(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Oa(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}}function _r(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 ka(e){const t=new Map;for(const n of e.lines??[]){const r=_r(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Ma(e,t){return[e,t].join("@")}const Fe=[{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 Ra(e){return Fe.find(t=>t.id===e)?.defaultFlag}function Na(e){const t={};for(const n of Fe)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Da(e,t){const n={};for(const r of Fe){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const wa={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function xa(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=wa[t];return n?e.in.includes(n):!1}const Y=["fast","standard","deep"],kn=(e,t)=>{const n=Y.indexOf(e),r=Math.min(Y.length-1,Math.max(0,n+t));return Y[r]},mt=e=>Y.indexOf(e);function Ar(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=kn(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=kn(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&mt(n)>mt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function La(e,t,n){const r=Ar(t);if(!e)return{...r,...n,routed:!1};for(let o=mt(r.tier);o>=0;o--){const s=Y[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 gt=255,ht=2,yt=10;function Pa(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>gt)return`vraag "${n}" heeft meer dan ${gt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<ht||o>yt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${ht} tot ${yt} zijn`}}return null}function $a(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const Ka=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],Ut=[{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 ae(e){return Ut.find(t=>t.id===e)}function Ua(e){return ae(e)?.label??e}function Ba(e,t="gpt-5-mini"){return ae(e)?.defaultModel??t}function Fa(e){return Ut.filter(t=>t.capabilities.includes(e))}function ja(e){const t=ae(e);return!!t&&!t.baseUrl}function Ga(e,t){return t==="text"?!0:ae(e)?.attachmentKinds?.includes(t)===!0}function Va(e,t){if(!e.enabled)return"ok";const n=bt(e.hardLimitNanos),r=bt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function bt(e){return typeof e=="number"?e:void 0}function Sr(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Wa(e,t="month"){const n=new Date(Sr(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Ha(e){return e==="ask"||e==="draft"||e==="agent"}function za(e){return e?.listeningEnabled!==!1}const Ya=["report"],qa=[{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 tt(e){return e<10?`0${e}`:`${e}`}function Z(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${tt(n.getUTCMonth()+1)}-${tt(n.getUTCDate())}`;return t==="day"?r:`${r}T${tt(n.getUTCHours())}`}function J(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Xa=36e5,Za=864e5;function Ja(e,t,n){const r=n==="hour"?Xa:Za,o=[];for(let s=J(e,n);s<=t;s+=r)o.push(Z(s,n));return o}const Qa=new Set(["time"]);function ec(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Qa.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 tc(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 nc(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Ir=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Tr=Ir.map(e=>e.id);function Cr(e,t){return`${e}.usage.${t}`}function rc(e,t){return t.map(n=>({id:Cr(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Tr,...n.extraDimensions??[],"time"]}))}async function oc(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 sc(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function ic(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 ac(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 cc(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 vr=new Set(["info","success","warning","destructive"]),Ce=200,ve=100,Oe=200,ke=12,Me=4,Et=10,Or=8,_t=12,je=4e3,z=500,kr=1024*1024,uc=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),Mr=["http:","https:","mailto:","tel:"],lc=/^[a-z][a-z0-9+.-]*:/i;function Bt(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=lc.exec(t)?.[0];return n?Mr.includes(n.toLowerCase()):!t.startsWith("//")}const dc=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function fc(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=Mn(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=Mn(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),u=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Bt(u)?a:e.slice(n,i+1),n=i+1}return t}function Mn(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 Rr(e){return fc(e).replace(dc,(t,n,r)=>Bt(r)?t:"")}function N(e,t=je){return typeof e=="string"?Rr(e).slice(0,t):""}function pc(e,t=je){return typeof e=="string"?e.slice(0,t):""}function te(e,t=200){return N(e,t)}function mc(e,t="info"){return typeof e=="string"&&vr.has(e)?e:t}function Nr(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Ce){t(`more than ${Ce} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!uc.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=N(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=N(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=N(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=pc(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 c of i){if(a.length>=ve){t(`more than ${ve} list items`);break}const d=N(c?.text);if(!d)continue;const l=N(c?.lead,200);a.push(l?{lead:l,text:d}:{text:d})}if(a.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const l of i){if(a.length>=ke){t(`more than ${ke} table columns`);break}const f=N(l?.label,z),g=l?.align==="right"?"right":void 0;a.push(g?{label:f,align:g}:{label:f})}if(a.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const l of u){if(c.length>=Oe){t(`more than ${Oe} table rows`);break}const f=Array.isArray(l)?l:[];c.push(a.map((g,b)=>N(f[b],z)))}const d=N(o.caption,z);n.push({...s,type:"table",columns:a,rows:c,...d?{caption:d}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=Me){t(`more than ${Me} kpi items`);break}const c=N(u?.value,40),d=N(u?.label,80);if(!c||!d)continue;const l=u?.tone;a.push(typeof l=="string"&&vr.has(l)?{value:c,label:d,tone:l}:{value:c,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||!Bt(i)){t("an image without a usable url");continue}const a=N(o.alt,200),u=N(o.caption,z);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...u?{caption:u}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const d of i){if(a.length>=Et){t(`more than ${Et} letterhead fields`);break}const l=d,f=typeof l?.key=="string"?l.key.slice(0,48):"",g=te(l?.value);if(!f||!g)continue;const b=te(l?.label,80);a.push(b?{key:f,label:b,value:g}:{key:f,value:g})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Or).map(d=>te(d)).filter(Boolean);if(a.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...c.length>0?{recipient:c}:{}});break}case"totals":{const i=c=>{const d=Array.isArray(c)?c:[],l=[];for(const f of d){if(l.length>=_t){t(`more than ${_t} totals rows`);break}const g=f,b=te(g?.label),p=te(g?.amount,40);!b||!p||l.push(g?.emphasis===!0?{label:b,amount:p,emphasis:!0}:{label:b,amount:p})}return l},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=i(o.taxRows);n.push({...s,type:"totals",rows:a,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=N(o.text);if(!i){t("a callout without text");continue}const a=N(o.title,200);n.push({...s,type:"callout",tone:mc(o.tone),...a?{title:a}:{},text:i});break}}}return n}function Dr(e){return JSON.stringify(e).length}function wr(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function Rn(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function nt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(Rn).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(Rn).join(" | ")} |`)]}function gc(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=nt(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 nt(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=``;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 nt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function Ft(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=gc(o);s.length>0&&n.push(s.join(`
|
|
4
4
|
`))}return`${n.join(`
|
|
5
5
|
|
|
6
6
|
`)}
|
|
7
|
-
`}const jt=e=>`user:${e}`,Gt=e=>`team:${e}`;function
|
|
7
|
+
`}const jt=e=>`user:${e}`,Gt=e=>`team:${e}`;function hc(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(jt(n.id)),n.kind==="team"&&t.add(Gt(n.id)));return[...t].sort()}function yc(e,t){return[jt(e),...t.map(Gt)]}function bc(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const xr=["done","escalated"],Ec=["open","waiting"];function _c(e){return xr.includes(e)}const Lr="assignment";function Ac(e){return`${Lr}:${e}`}function Sc(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 Ic(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Tc(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Pr=12;function Cc(e,t,n=Pr){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 $r=2;function vc(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>=$r?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Nn=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Dn=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function Oc(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(m=>m.kind===o&&m.openCents>0),i=Nn(`${e.description} ${e.endToEndId??""}`),a=m=>m.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:m.id,sourceApp:m.sourceApp??"sales"}:{kind:"receipt",receiptId:m.id},u=s.filter(m=>m.number&&i.includes(Nn(m.number))),c=u.find(m=>m.openCents===r);if(c)return{target:a(c),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:c.label};if(u.length===1&&u[0]){const m=u[0];return{target:a(m),via:"exact",confidence:"medium",reasons:["invoice_number"],label:m.label}}const d=e.counterpartyIban;if(d){const m=s.filter(h=>h.ibans.includes(d)&&h.openCents===r);if(m.length===1&&m[0]){const h=m[0];return{target:a(h),via:"exact",confidence:"high",reasons:["iban","amount"],label:h.label}}}const l=(t.scheduled??[]).filter(m=>m.expectedBankCents===e.amountCents),f=d?l.filter(m=>m.ibans.includes(d)):[],g=l.filter(m=>Dn(m.dueOn,e.date)<=7),b=f.length===1?f[0]:g.length===1?g[0]:void 0;if(b)return{target:{kind:"scheduled_posting",scheduledPostingId:b.id},via:"exact",confidence:f.length===1?"high":"medium",reasons:f.length===1?["iban","amount"]:["amount","date_window"],label:b.label};if(d&&t.ownIbans.some(m=>m.iban===d&&m.bankAccountId!==e.bankAccountId)){const m=t.otherLines.find(h=>h.state==="unmatched"&&h.bankAccountId!==e.bankAccountId&&h.amountCents===-e.amountCents&&Dn(h.date,e.date)<=3);if(m)return{target:{kind:"transfer",bankLineId:m.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const p=e.description.toLowerCase(),A=[...t.rules].sort((m,h)=>m.order-h.order).find(m=>{const h=m.when;return h.bankAccountId&&h.bankAccountId!==e.bankAccountId||h.counterpartyIban&&h.counterpartyIban!==d||h.direction&&h.direction!==(n?"in":"out")||h.descriptionContains&&!p.includes(h.descriptionContains.toLowerCase())?!1:!!(h.counterpartyIban||h.descriptionContains)});if(A)return{target:A.action.financingItemId?{kind:"financing",financingItemId:A.action.financingItemId}:{kind:"account",accountId:A.action.accountId,...A.action.taxCode?{taxCode:A.action.taxCode}:{},...A.action.description?{description:A.action.description}:{}},via:"rule",confidence:A.confidence,ruleId:A.id,reasons:["rule"],label:A.name}}function kc(e,t,n){const[r,o]=[e.slice(0,3),e.slice(3)],s=r==="jl:"?"journal_line":"bank_line",i=n.filter(a=>a.status==="active").flatMap(a=>a.allocations).filter(a=>a.item.kind===s&&a.item.id===o).reduce((a,u)=>a+u.amountCents,0);return t-i}function Mc(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function Rc(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 Kr=e=>e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim();function $(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 I(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:$(n,r)[0];return n===void 0?void 0:Kr(n)}const Re=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},wn=e=>e?.slice(0,10),Nc=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Ur(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=$(t,"Stmt")[0]??t,r=I(n,"Id")??"stmt",o=d=>{const l=$(n,"Bal").find(g=>I(g,"Cd")===d);if(!l)return;const f=Re(I(l,"Amt"));if(f!==void 0)return{cents:I(l,"CdtDbtInd")==="DBIT"?-f:f,date:Nc(l)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=$(n,"Ntry").flatMap((d,l)=>{if((I(d,"Sts","Cd")??I(d,"Sts"))==="PDNG")return[];const f=Re(I(d,"Amt"));if(f===void 0)return[];const g=I(d,"CdtDbtInd")==="DBIT",b=$(d,"TxDtls")[0]??d,p=g?"Cdtr":"Dbtr",A=I(b,"RltdPties",p,"Nm")??I(b,"RltdPties",p,"Pty","Nm"),m=I(b,"RltdPties",`${p}Acct`,"Id","IBAN"),h=[...$(b,"Ustrd").map(Kr),I(d,"AddtlNtryInf")].filter(Boolean),y=I(b,"Refs","EndToEndId"),S=wn(I(d,"BookgDt","Dt")??I(d,"BookgDt","DtTm"))??"",k=wn(I(d,"ValDt","Dt")??I(d,"ValDt","DtTm")),v=I(d,"AcctSvcrRef")??I(d,"NtryRef");return[{date:S,...k?{valueDate:k}:{},amountCents:g?-f:f,currency:/Ccy="([A-Z]{3})"/.exec(d)?.[1]??"EUR",...A?{counterpartyName:A}:{},...m?{counterpartyIban:m.replace(/\s+/g,"").toUpperCase()}:{},description:h.join(" ").replace(/\s+/g," ").trim(),...y&&y!=="NOTPROVIDED"?{endToEndId:y}:{},dedupeKey:v?`ref:${v}`:`seq:${r}:${l+1}`}]}),u=a.map(d=>d.date).filter(Boolean).sort(),c=I(n,"Acct","Id","IBAN");return{format:"camt053",...c?{iban:c.replace(/\s+/g,"").toUpperCase()}:{},...I(n,"Acct","Ccy")?{currency:I(n,"Acct","Ccy")}:{},from:I(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??u[0]??"",to:I(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const Br=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function xn(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=Re(t[4])??0;return{cents:t[1]==="D"?-n:n,date:Br(t[2]??""),currency:t[3]}}const Dc=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function wc(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+Dc.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((i,a)=>{const u=(i.index??0)+i[0].length,c=r[a+1]?.index??t.length;o[i[1]??""]=t.slice(u,c).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 Fr(e){const t=e.replace(/\r\n/g,`
|
|
8
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 u=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,u=0;else if(d==="60F"||d==="60M")s??=xn(l);else if(d==="62F"||d==="62M")i=xn(l);else if(d==="61"){const f=l.split(`
|
|
9
|
-
`)[0]??"",g=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!g)continue;u++;const b=Re(g[4])??0,p=g[3]==="C"||g[3]==="RD",_=Ur(g[1]??""),m=g[2]?`${_.slice(0,4)}-${g[2].slice(0,2)}-${g[2].slice(2,4)}`:_,h=g[6]??g[5]?.trim();a.push({date:m,valueDate:_,amountCents:p?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:h&&h!=="NONREF"?`ref:${h}`:`seq:${o}:${u}`})}else if(d==="86"){const f=a.at(-1);f&&!f.description&&Object.assign(f,kc(l))}const c=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??c[0]??"",to:i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function Mc(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Kr(e):Br(e)}const Rc=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function Fr(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 Nc="receipt",Dc="book";function jr(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"),t}function wc(e){if(e.status!=="to_check")return null;const t=jr(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":"confirm"}function xc(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",lines:e.lines.map(r=>({description:r.description??n.supplierName?.value??"",netCents:r.netCents,taxCents:r.taxCents,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{}})),totals:Fr(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Lc(e,t,n){return`${e}:${t}:${n}`}function Pc(e){return[1,5,15][e-1]??60}const $c=10*6e4;function Kc(e,t){const n=r=>t.find(o=>r(o.match));return e.productId&&n(r=>r.productId===e.productId)||e.ledgerCategoryKey&&n(r=>r.ledgerCategoryKey===e.ledgerCategoryKey)||n(r=>!!r.taxRateKey&&!r.productId&&!r.ledgerCategoryKey&&r.taxRateKey===e.taxRateKey)||n(r=>!r.productId&&!r.ledgerCategoryKey&&!r.taxRateKey)}const Uc="organization.business-entities.list",Bc=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Fc(e,t,n){return e?e===t:n}function jc(e){return e.isDefault===!0?[e.id,""]:[e.id]}function Gc(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 Gr(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 Vc(n.slice(0,13))===Number(n[13])?n:void 0}function Vc(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 Wc(e,t){const n=t.trim(),r=Gr(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r}),{organizationId:e,$or:o}}const Hc=[{key:"contract",matches:(e,t)=>!!e.contractId&&e.contractId===t.contractId&&!!e.productId},{key:"customer",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Vr(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 Hc){const i=o.filter(u=>s.matches(u,t));if(i.length===0)continue;const a=i.reduce((u,c)=>{const d=(c.minQuantity??0)-(u.minQuantity??0);return d!==0?d>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function Wr(e,t,n){const r=Vr(e,t,n,o=>!o.rateCardId);return r?{unitPriceCents:Yc(r.rule,e.listPriceCents),sourceKey:r.sourceKey,ruleId:r.rule.id}:{unitPriceCents:e.listPriceCents,sourceKey:"list"}}function zc(e,t,n){const r=Vr(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 Yc(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?L(t*(1-e.discountPercent/100)):t}const Hr="manual";function Xc(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===Hr)return o;const s=t.find(a=>a.id===o.productId);if(!s)return o;const i=Wr(s,{...r,quantity:o.quantity},n);return i.unitPriceCents===o.unitPriceCents&&i.sourceKey===o.priceSourceKey?o:{...o,unitPriceCents:i.unitPriceCents,priceSourceKey:i.sourceKey}})}function Vt(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 qc(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 At(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=Vt(e);return n===void 0?void 0:{kind:"flat",micros:n}}function Zc(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,u=1+i.length+1;return o.forEach((c,d)=>{const l=d+1;if(!c.trim())return;const f=c.split(s).map(M=>M.trim());if(d===0&&!At(f[u]??""))return;const g=f[0]??"",b={};i.forEach((M,D)=>{const F=f[1+D]??"";if(!F)return;const Wi=/^[+\d\s-]+$/.test(F)?F.replace(/\D/g,"").replace(/^00/,""):F;b[M.key]=M.match==="prefix"?{prefix:Wi}:{equals:F}});const p=f[1+i.length]??"",_=p===""?0:Vt(p),m=At(f[u]??""),[h,y]=a?(f[u+1]||`${t.display.per}/1`).split("/").map(Number):[1,1],S=a?f[u+2]??"":"",k=S===""?0:Number(S),v=g?_===void 0||!m?"price":!(h>0)||!((y??h)>0)||!Number.isFinite(k)?"increment":null:"label";if(v){r.push({line:l,message:v});return}n.push({label:g,match:b,setupMicros:_,price:m,unitSize:t.display.per,firstIncrement:h,nextIncrement:y??h,minimum:k})}),{rates:n,errors:r}}const zr=1e4;function Yr(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 Xr(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Jc(e,t){return t===void 0?!1:"equals"in e?t===e.equals:/^\d+$/.test(e.prefix)?Xr(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Ln(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function qr(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>Jc(i,e.dimensions[s]))&&(!n||Ln(r)>Ln(n))&&(n=r);return n}function Zr(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 Jr(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return a?{micros:L(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 u=a.upTo===void 0?e:Math.min(e,a.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:a.micros}),i+=c*a.micros/n),s=u}return{micros:L(i),bands:o}}function Qc(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=qr(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const u=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};u.ids.push(i.id),u.billed.push({quantity:Zr(i.quantity,a),occurredAt:i.occurredAt}),u.costMicros+=i.costMicros??0,o.set(a.id,u)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:u,costMicros:c})=>{const d=Yr(a,n),l=Math.min(i.included??0,d),f=d-l,g=i.setupMicros*a.length;let b,p;i.price.kind==="flat"?b=L(f*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:b,bands:p}=Jr(f,i.price,i.unitSize):b=L(c*(1+i.price.percent/100));const _=b+g;return{rateId:i.id,label:i.label,records:a.length,recordIds:u,measured:d,included:l,billed:f,micros:_,cents:L(_/zr),...p?{bands:p}:{}}}),unrated:r}}const eu=["piece","hour","day","month","km","license","minute"],tu="usage-source",nu="/usage/records";function Qr(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"}))}}function ru(e){return{...e,meters:(e.meters??[]).map(t=>Qr(t)),accounts:e.accounts??[]}}const ou=new Set(["mail","message"]);function eo(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function su(e,t,n,r="html"){if(!e)return n;const o=eo(e,t);return o?`${n}${r==="text"?`
|
|
9
|
+
`)[0]??"",g=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!g)continue;u++;const b=Re(g[4])??0,p=g[3]==="C"||g[3]==="RD",A=Br(g[1]??""),m=g[2]?`${A.slice(0,4)}-${g[2].slice(0,2)}-${g[2].slice(2,4)}`:A,h=g[6]??g[5]?.trim();a.push({date:m,valueDate:A,amountCents:p?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:h&&h!=="NONREF"?`ref:${h}`:`seq:${o}:${u}`})}else if(d==="86"){const f=a.at(-1);f&&!f.description&&Object.assign(f,wc(l))}const c=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??c[0]??"",to:i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function xc(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Ur(e):Fr(e)}const Lc=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function Pc(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||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 jr(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 $c="receipt",Kc="book";function Gr(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 Uc(e){if(e.status!=="to_check")return null;const t=Gr(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":"confirm"}function Bc(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",lines:e.lines.map(r=>({description:r.description??n.supplierName?.value??"",netCents:r.netCents,taxCents:r.taxCents,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{}})),totals:jr(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Fc(e,t,n){return`${e}:${t}:${n}`}function jc(e){return[1,5,15][e-1]??60}const Gc=10*6e4;function Vc(e,t){const n=r=>t.find(o=>r(o.match));return e.productId&&n(r=>r.productId===e.productId)||e.ledgerCategoryKey&&n(r=>r.ledgerCategoryKey===e.ledgerCategoryKey)||n(r=>!!r.taxRateKey&&!r.productId&&!r.ledgerCategoryKey&&r.taxRateKey===e.taxRateKey)||n(r=>!r.productId&&!r.ledgerCategoryKey&&!r.taxRateKey)}const Wc="organization.business-entities.list",Hc=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function zc(e,t,n){return e?e===t:n}function Yc(e){return e.isDefault===!0?[e.id,""]:[e.id]}function qc(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 Vr(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 Xc(n.slice(0,13))===Number(n[13])?n:void 0}function Xc(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 Zc(e,t){const n=t.trim(),r=Vr(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r}),{organizationId:e,$or:o}}const Jc=[{key:"contract",matches:(e,t)=>!!e.contractId&&e.contractId===t.contractId&&!!e.productId},{key:"customer",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Wr(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 Jc){const i=o.filter(u=>s.matches(u,t));if(i.length===0)continue;const a=i.reduce((u,c)=>{const d=(c.minQuantity??0)-(u.minQuantity??0);return d!==0?d>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function Hr(e,t,n){const r=Wr(e,t,n,o=>!o.rateCardId);return r?{unitPriceCents:eu(r.rule,e.listPriceCents),sourceKey:r.sourceKey,ruleId:r.rule.id}:{unitPriceCents:e.listPriceCents,sourceKey:"list"}}function Qc(e,t,n){const r=Wr(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 eu(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?L(t*(1-e.discountPercent/100)):t}const zr="manual";function tu(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===zr)return o;const s=t.find(a=>a.id===o.productId);if(!s)return o;const i=Hr(s,{...r,quantity:o.quantity},n);return i.unitPriceCents===o.unitPriceCents&&i.sourceKey===o.priceSourceKey?o:{...o,unitPriceCents:i.unitPriceCents,priceSourceKey:i.sourceKey}})}function Vt(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 nu(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 At(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=Vt(e);return n===void 0?void 0:{kind:"flat",micros:n}}function ru(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,u=1+i.length+1;return o.forEach((c,d)=>{const l=d+1;if(!c.trim())return;const f=c.split(s).map(M=>M.trim());if(d===0&&!At(f[u]??""))return;const g=f[0]??"",b={};i.forEach((M,D)=>{const F=f[1+D]??"";if(!F)return;const Xi=/^[+\d\s-]+$/.test(F)?F.replace(/\D/g,"").replace(/^00/,""):F;b[M.key]=M.match==="prefix"?{prefix:Xi}:{equals:F}});const p=f[1+i.length]??"",A=p===""?0:Vt(p),m=At(f[u]??""),[h,y]=a?(f[u+1]||`${t.display.per}/1`).split("/").map(Number):[1,1],S=a?f[u+2]??"":"",k=S===""?0:Number(S),v=g?A===void 0||!m?"price":!(h>0)||!((y??h)>0)||!Number.isFinite(k)?"increment":null:"label";if(v){r.push({line:l,message:v});return}n.push({label:g,match:b,setupMicros:A,price:m,unitSize:t.display.per,firstIncrement:h,nextIncrement:y??h,minimum:k})}),{rates:n,errors:r}}const Yr=1e4;function qr(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 Xr(e){return e.replace(/\D/g,"").replace(/^00/,"")}function ou(e,t){return t===void 0?!1:"equals"in e?t===e.equals:/^\d+$/.test(e.prefix)?Xr(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Ln(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Zr(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>ou(i,e.dimensions[s]))&&(!n||Ln(r)>Ln(n))&&(n=r);return n}function Jr(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 Qr(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return a?{micros:L(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 u=a.upTo===void 0?e:Math.min(e,a.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:a.micros}),i+=c*a.micros/n),s=u}return{micros:L(i),bands:o}}function su(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=Zr(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const u=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};u.ids.push(i.id),u.billed.push({quantity:Jr(i.quantity,a),occurredAt:i.occurredAt}),u.costMicros+=i.costMicros??0,o.set(a.id,u)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:u,costMicros:c})=>{const d=qr(a,n),l=Math.min(i.included??0,d),f=d-l,g=i.setupMicros*a.length;let b,p;i.price.kind==="flat"?b=L(f*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:b,bands:p}=Qr(f,i.price,i.unitSize):b=L(c*(1+i.price.percent/100));const A=b+g;return{rateId:i.id,label:i.label,records:a.length,recordIds:u,measured:d,included:l,billed:f,micros:A,cents:L(A/Yr),...p?{bands:p}:{}}}),unrated:r}}const iu=["piece","hour","day","month","km","license","minute"],au="usage-source",cu="/usage/records";function eo(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"}))}}function uu(e){return{...e,meters:(e.meters??[]).map(t=>eo(t)),accounts:e.accounts??[]}}const lu=new Set(["mail","message"]);function to(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function du(e,t,n,r="html"){if(!e)return n;const o=to(e,t);return o?`${n}${r==="text"?`
|
|
10
10
|
|
|
11
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function to(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function iu(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function au(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=to(n);r&&!t.includes(r)&&t.push(r)}return t}function cu(e){return e.endpoints??[]}const uu=["lead","opportunity","customer","former"],lu=["new","working","unqualified"];function du(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const no=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],ro=["openDeal","hasContacts"],fu={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},pu=["updatedAt","createdAt","name"],mu=["list"];function gu(e){return e.search?.trim()||e.createdWithinDays||ro.some(t=>e[t])||no.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const oo="CRM_NOTE_ADDED",hu="crm_activity",so="CRM_CALL_LOGGED",yu="CRM_STAGE_CHANGED",bu=["phone","meeting","video"],Eu=["callback","interested","no_answer","not_interested"],_u=e=>e===oo||e===so,Au=e=>e.payload.call?.at??e.createdAt??0;function W(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function Su(e){return W(e.contactLocale)??W(e.companyLocale)??W(e.organizationLocale)}function Iu(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=W(n),i=W(r);return o.find(a=>W(a.locale)===s)??o.find(a=>W(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const Tu=/\{([a-zA-Z0-9_.]+)\}/g;function Wt(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function Cu(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function io(e,t,n){const r=[];return{text:e.replace(Tu,(s,i)=>{const a=Wt(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):Cu(a)}),unresolved:r}}function ao(e,t){if(!e)return!0;const n=Wt(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 vu(e,t,n,r,o){const s=[],i=[],a=new Set,u=c=>{const d=io(c,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const c of e){if(c.block_id&&!ao(n?.[c.block_id],t))continue;const d=c.block_id?r?.[c.block_id]:void 0;if(d&&c.block_id){a.add(c.block_id),i.push(...d);continue}switch(c.type){case"heading":case"paragraph":case"quote":i.push({...c,text:u(c.text)});break;case"callout":i.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":i.push(c);break;case"list":i.push({...c,items:c.items.map(l=>({...l.lead?{lead:u(l.lead)}:{},text:u(l.text)}))});break;case"table":i.push({...c,columns:c.columns.map(l=>({...l,label:u(l.label)})),rows:c.rows.map(l=>l.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":i.push({...c,items:c.items.map(l=>({...l,value:u(l.value),label:u(l.label)}))});break;case"letterhead":i.push({...c,fields:c.fields.map(l=>({...l,value:u(l.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":i.push({...c,rows:c.rows.map(l=>({...l,label:u(l.label),amount:u(l.amount)})),...c.taxRows?{taxRows:c.taxRows.map(l=>({...l,label:u(l.label),amount:u(l.amount)}))}:{}});break;case"image":i.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:i.push(c)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!a.has(c))}}function co(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 Ou(e){return co({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 uo(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 ku(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Mu(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 uo(e,t,s,o)}const Ht=864e5,Ge=e=>new Date(e).toISOString().slice(0,10),Ne=e=>Date.parse(`${e}T00:00:00Z`);function ee(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)),Ge(s.getTime())}function zt(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 u=Math.round(i*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;a===t&&(c=i),c=Math.min(c,i),i-=c,s.push({sequence:a,dueOn:ee(e.firstDueOn,a-1),interestCents:u,principalCents:c,remainingCents:i})}return s}function Ru(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,d)=>c.date.localeCompare(d.date));let i=s.filter(c=>c.date<t).reduce((c,d)=>c+d.cents,0),a=s.findIndex(c=>c.date>=t);a<0&&(a=s.length);let u=0;for(let c=Ne(t);c<=Ne(n);c+=Ht){const d=Ge(c);for(;a<s.length&&(s[a]?.date??"")<=d;)i+=s[a]?.cents??0,a++;u+=i*o}return Math.round(u)}function Nu(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 u=`${o}-${String(i).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const d=ee(u,r);a.push({sequence:c,from:u<e?e:u,to:Ge(Ne(d)-Ht)}),u=d}return a}const lo=5e7,Du=["director","group_company","participation","other_company"],wu=e=>e?.relation&&Du.includes(e.relation)?e.relation:"director";function xu(e,t=lo){return{over:e>t,ratio:Math.max(0,e)/t}}function Lu(e,t){const r=e.terms.kind==="loan_received"?1:-1;return zt(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 fo(e){return Ge(Ne(ee(`${e.slice(0,7)}-01`,1))-Ht)}function Yt(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 po(e,t,n,r,o,s){return t.map((i,a)=>({cents:i,sequence:a+1,dueOn:fo(ee(n,a))})).filter(i=>i.dueOn<=r&&i.cents!==0).map(i=>({financingItemId:e,sequence:i.sequence,dueOn:i.dueOn,lines:o(i.cents,i.sequence),expectedBankCents:0,settlesVia:"direct",label:s(i.sequence)}))}function Pu(e,t){const n=e.terms;return po(e.id,Yt(n.costCents-n.residualCents,n.lifeMonths),n.acquiredOn,t,(r,o)=>[{accountId:n.depreciationAccountId,amountCents:r,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-r,subAccountId:e.id,description:`Afschrijving ${o}/${n.lifeMonths}`}],r=>`Afschrijving ${r}/${n.lifeMonths}`)}function $u(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return po(e.id,Yt(n.totalCents,n.months),n.firstMonth,t,(o,s)=>[{accountId:n.resultAccountId,amountCents:r*o,description:e.name},{accountId:e.ledgerAccountId,amountCents:-r*o,subAccountId:e.id,description:`${e.name} ${s}/${n.months}`}],o=>`${o}/${n.months}`)}function Ku(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Uu(e,t){const n=ee(t,12);return zt(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}const mo=36e5,go=864e5,G=-1/0,Bu=e=>e.score>G,oe={urgent:40,high:25,normal:10,low:0};function Fu(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const ju=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,ho=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function yo(e,t){return!!(e&&ju.test(e)||t&&ho.test(t))}const bo=3,Eo=600;function Gu(e,t){return e>=bo||t>=Eo}const _o=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Vu(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&_o.includes(r)&&(t[r]=n.value)}return t}const Wu=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Hu=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function zu(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Wu.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&&ho.test(e.body)||n&&Hu.test(n))return"marketing"}function Ao(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const So=["open"],Io=1e3,To=72;function Co(e){return e.lastActivityAt??(e.createdAt?new Date(pr(e)).getTime():0)}function vo(e,t){return Oo(t.remindersById?.[e.id],e,t.now)}function Oo(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ko=e=>ur(e)==="outbound_message",Mo=e=>So.includes(e);function Ve(e,t){return Math.max(0,(t-Co(e))/mo)}function Ro(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function Yu(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Xu(e,t,n){if(!Mo(e.status)||e.firstResponseAt)return!1;const r=Ro(e,n);return r!==void 0&&Ve(e,t)>r}function No(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ko(n.type)?!1:Ve(e,t)<To}function qu(e,t){if(!Mo(e.status))return{score:G,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:G,reasons:[]};if(No(e,t.now))return{score:G,reasons:[]};if(vo(e,t))return{score:G,reasons:[]};let n=0;const r=[],o=e.priority??"normal";oe[o]>0&&(n+=oe[o],r.push(`priority:${o}`)),Ao(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=Ve(e,t.now);if(s>0){const u=Math.min(s*2,30);n+=u,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"&&ko(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(u=>u==="marketing"||u==="automated")||yo(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Io,r.push("bulk")),{score:n,reasons:r}}const Zu=e=>!!e.assignedUserId||!!e.assignedInboxId,Ju=e=>e.status==="closed",Qu=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,el=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Do=[{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}],tl=["duplicate","spam"],nl="c_";function rl(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Do,...t]}function ol(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function sl(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 il="article",De=[{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 wo(e){const t=(e??"").toLowerCase();return De.find(n=>n.code===t)??De.find(n=>n.code===t.split("-")[0])}function al(e){return wo(e)?.label??e}function cl(e){const t=wo(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const Xt=3;function xo(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>Xt+1))return 1/0;o=t.get(o)?.parentId}return r}function ul(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&&Lo(e,t,r))return!1;const o=xo(e,r),s=t?qt(t,n):1;return o+s<=Xt}function Lo(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 qt(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=>qt(o.id,t,n))):1}const Po="en";function $o(e){return e.defaultLocale||e.locale||Po}function ll(e){const t=new Set,n=[];for(const r of[$o(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function dl(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 fl(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 pl=["revenue","expense"],ce=e=>pl.includes(e.type),ml=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Ko(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,u)=>a.code.localeCompare(u.code))){if(!t(i))continue;const a=ml(i),u=i.reportGroup??a,c=o.get(a)??new Map;c.set(u,[...c.get(u)??[],i]),o.set(a,c)}const s=[];for(const[i,a]of o){const u=n(i),c=l=>u==="debit"?t(l):-t(l),d=[...a.values()].flat().reduce((l,f)=>l+c(f),0);s.push({key:i,label:r(i),level:0,side:u,amountCents:d});for(const[l,f]of a){s.push({key:l,label:r(l),level:1,side:u,amountCents:f.reduce((g,b)=>g+c(b),0)});for(const g of f)s.push({key:g.code,label:`${g.code} ${g.name}`,level:2,side:u,amountCents:c(g),accountId:g.id})}}return s}function gl(e,t,n,r=o=>o){const o=e.filter(ce),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},i=Ko(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),a=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function hl(e,t,n,r,o=s=>s){const s=e.filter(d=>!ce(d)),a=Ko(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 u=a.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),c=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:u,creditCents:c},source:"finance"}}function yl(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=ce(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 bl(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const u=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(a.cents>=0?c.inCents+=a.cents:c.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function El(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||!ce(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],[u])=>a.localeCompare(u)))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}}function _l(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,i)=>s+i.functionalCents,0);r!==0&&n.push({code:"entry_unbalanced",params:{cents:String(r)}});const o=new Map(t.accounts.map(s=>[s.id,s]));for(const s of e.lines){const i=o.get(s.accountId);i?i.archived?n.push({code:"entry_account_archived",params:{account:i.code}}):i.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:i.code}}):n.push({code:"entry_unknown_account",params:{account:s.accountId}})}return t.period?(t.period.status==="locked"&&t.allow!=="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 Al(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Sl=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function Il(e){const t={};for(const n of Sl)e[n]!==void 0&&(t[n]=e[n]);return t}function St(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(St).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)+":"+St(r)).join(",")+"}"}function Tl(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Cl(e,t,n){const r=t.filter(s=>s.appliesTo.direction===n.direction).filter(s=>!s.appliesTo.kind||s.appliesTo.kind===n.kind).sort((s,i)=>s.order-i.order),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.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}function vl(e,t){const n=b=>t.accounts.find(p=>p.role===b&&!p.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,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,d=[],l=new Map;for(const b of e.lines){const p=b.accountKey??Cl(b,t.rules,e)?.accountId??s?.id;if(!p)return{ok:!1,problem:"no_account_for_line"};d.push({...u,accountId:p,amountCents:a*b.netCents,functionalCents:a*b.netCents,taxCode:b.taxRateKey,taxCents:a*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...b.dimensions?.projectId?{projectId:b.dimensions.projectId}:{}}),b.taxCents&&l.set(b.taxRateKey,(l.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,p]of l){const _=t.taxAccounts.find(h=>h.taxKey===b),m=(r?_?.payableAccountId:_?.receivableAccountId)??i?.id;if(!m)return{ok:!1,problem:"no_vat_account"};d.push({...u,accountId:m,amountCents:a*p,functionalCents:a*p,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,p)=>b+p.netCents+p.taxCents,0);d.unshift({...u,accountId:o.id,amountCents:-a*f,functionalCents:-a*f});const g=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:d,description:g||e.documentId}}const rt=e=>String(e).padStart(2,"0"),Ol=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function kl(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}-${rt(a)}-01`,to:`${i}-${rt(a)}-${rt(Ol(i,a))}`,status:"open"}})}function Ml(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const A=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Uo={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[A("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0110","Afschrijving inventaris","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("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"),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("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),A("4000","Lonen","expense","costs.personnel","WPerLesLon"),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("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),A("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),A("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),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"}]},Rl=[Uo],Bo="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Nl={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Fo=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Zt=(e,t)=>e.length>t?e.slice(0,t):e,E=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Fo(Zt(String(t),n))+"</"+e+">",j=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},ot=e=>e<0?"C":"D",Pn=e=>Zt(e.replace(/-/g,""),35);function Dl(e){const t=new Map(e.accounts.map(c=>[c.id,c.code])),n=new Map(e.periods.map(c=>[c.id,c.index])),r=[],o=(...c)=>{r.push(c.join(""))};o('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',Bo,'">',"<header>",E("fiscalYear",e.fiscalYear.replace("/","-")),E("startDate",e.startDate),E("endDate",e.endDate),E("curCode",e.currency),E("dateCreated",e.createdOn),E("softwareDesc",e.software.desc,50),E("softwareVersion",e.software.version,20),E("RGSVersion",e.rgsVersion,20),"</header>","<company>",E("Commercenr",e.company.commerceNr,100),E("companyName",e.company.name,255),E("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Fo(Zt(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",E("streetname",s.street,100),E("number",s.number,15),E("city",s.city,50),E("postalCode",s.postalCode,10),E("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",E("custSupID",Pn(c.id)),E("custSupName",c.name,50),E("commerceNr",c.commerceNr,100),E("taxRegistrationCountry",c.country),E("taxRegIdent",c.vatNumber,30),E("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((d,l)=>d.code.localeCompare(l.code))){const d=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",E("accID",c.code,35),E("accDesc",c.name,255),E("accTp",d?"P":"B"),E("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",E("vatID",c.key,35),E("vatDesc",c.label,100),E("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),E("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((d,l)=>d.index-l.index))o("<period>",E("periodNumber",c.index),E("startDatePeriod",c.from),E("endDatePeriod",c.to),"</period>");o("</periods>");const i=e.opening.filter(c=>c.cents!==0);if(i.length){const c=i.filter(l=>l.cents>0).reduce((l,f)=>l+f.cents,0),d=-i.filter(l=>l.cents<0).reduce((l,f)=>l+f.cents,0);o("<openingBalance>",E("linesCount",i.length),E("totalDebit",j(c)),E("totalCredit",j(d))),i.forEach((l,f)=>{o("<obLine>",E("nr",f+1),E("accID",t.get(l.accountId)??l.accountId),E("amnt",j(l.cents)),E("amntTp",ot(l.cents)),"</obLine>")}),o("</openingBalance>")}const a=e.entries.flatMap(c=>c.lines);o("<transactions>",E("linesCount",a.length),E("totalDebit",j(a.filter(c=>c.functionalCents>0).reduce((c,d)=>c+d.functionalCents,0))),E("totalCredit",j(-a.filter(c=>c.functionalCents<0).reduce((c,d)=>c+d.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const d=u.get(c.id);if(d?.length){o("<journal>",E("jrnID",c.code,35),E("desc",c.name),E("jrnTp",Nl[c.kind]));for(const l of[...d].sort((f,g)=>f.journalSeq-g.journalSeq))o("<transaction>",E("nr",l.number,35),E("desc",l.description),E("periodNumber",n.get(l.periodId)??0),E("trDt",l.date),E("Source",l.source.app+(l.source.kind?" "+l.source.kind:""),999),E("User",l.postedBy,999)),l.lines.forEach((f,g)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,l.date),p=f.currency&&f.currency!==e.currency;o("<trLine>",E("nr",g+1),E("accID",t.get(f.accountId)??f.accountId,35),E("docRef",l.source.number??l.number,255),E("effDate",f.taxPointDate??l.date),E("desc",f.description),E("amnt",j(f.functionalCents)),E("amntTp",ot(f.functionalCents)),E("custSupID",f.counterpartyCompanyId&&Pn(f.counterpartyCompanyId)),E("invRef",l.source.number,255),E("cost",f.costCenter,999),E("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+E("vatID",f.taxCode,35)+E("vatPerc",b)+E("vatAmnt",j(f.taxCents))+E("vatAmntTp",ot(f.taxCents))+"</vat>":"",p?"<currency>"+E("curCode",f.currency)+E("curAmnt",j(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
-
`)}const wl=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function xl(e){const t=$(e,"ledgerAccount").map(a=>{const u=I(a,"RGScode")??I(a,"leadCode");return{code:I(a,"accID")??"",name:I(a,"accDesc")??"",kind:I(a,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=a=>{const u=I(a,"accID");u&&(n[u]=(n[u]??0)+wl(I(a,"amnt"),I(a,"amntTp")))};for(const a of $(e,"obLine"))r(a);for(const a of $(e,"trLine"))r(a);const o=$(e,"header")[0]??"",s=I(o,"fiscalYear"),i=I(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function Ll(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 It=["lookup","condition","parallel","for-each"];function ye(e){for(const t of e){if(!It.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${It.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=ye(n);if(r)return r}if(t.type==="for-each"){const n=ye(t.body??[]);if(n)return n}if(t.type==="condition"){const n=ye(t.else??[]);if(n)return n}}return null}function Pl(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 $l(e,t){return e.filter(n=>n.enabled&&Pl(n.ownerScope,t))}function Kl(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Ul(e){return`mcp__${e}__`}const Bl=1e3,Fl=2e3,jl=500,Gl=12e3,Vl=4e3,jo=["contact","company","work_item"];function Wl(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return jo.includes(t)}const Hl=[{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 Go(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const zl=[{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},{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 Jt(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Yl(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:Jt(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function X(e){return new Date(e).toISOString().slice(0,10)}const $n=/^\d{4}-\d{2}-\d{2}$/;function Xl(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(!$n.test(r.validFrom)||r.validTo&&!$n.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 Vo(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100;return L(e.quantity*e.unitPriceCents*t)}function ql(e,t,n){const r=e.map(c=>({...c,netCents:Vo(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const d=n??r[c].taxRateKey,l=o.get(d);l?l.push(c):o.set(d,[c])}const s=[];let i=0,a=0;for(const[c,d]of o){const l=Go(c,t),f=d.reduce((p,_)=>p+r[_].netCents,0),g=L(f*l.percent/100),b=hr(g,d.map(p=>r[p].netCents));for(let p=0;p<d.length;p++)r[d[p]].taxCents=b[p];s.push({taxRateKey:c,percent:l.percent,kind:l.kind,netCents:f,taxCents:g}),i+=f,a+=g}const u=r.reduce((c,d)=>d.costPriceCents==null||d.optional?c:c+L(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:u,byRate:s}}}const Zl="onboarding-source",Jl=["support","billing","availability","sales","onboarding"],Ql=["keep","replace"],We=[{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"}],Wo={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function K(e,t=We){return t.find(n=>n.key===e)??{...Wo,key:e}}function Q(e){return e==="published"||e==="approved"}function Qt(e,t,n=We){if(e.workstreamId!==t)return!1;const r=K(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function ed(e,t=We){if(!e.userId||!Q(e.status))return!1;const n=K(e.kindKey,t);return n.capacity||n.productive||n.absent}const td=864e5;function Ho(e,t){return Math.round((t-e)/td)}function en(e,t){const n=e.cycleMinutes.length;return n===0?0:(Ho(e.anchor,t)%n+n)%n}function tn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[en(e,t)]??0}function nn(e,t){return e.startTimes?.[en(e,t)]}function rn(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((u,c)=>(c.effectiveFrom??0)-(u.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 zo(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 Tt=864e5;function nd(e){const t=Math.max(1,Math.round((e.to-e.from)/Tt));return Array.from({length:t},(n,r)=>e.from+r*Tt)}function Ct(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Kn={interval:0,day:1,week:2};function rd(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&Q(l.status)&&K(l.kindKey).capacity),i=n.filter(l=>l.userId&&Q(l.status)&&K(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),u={};let c="interval";const d=l=>{Kn[l]>Kn[c]&&(c=l)};for(const l of a){const f=t.teamIdsOf?.(l)??[];let g=0,b=0,p=0;for(const h of nd(e)){const y=Math.max(h,e.from),S=Math.min(h+Tt,e.to);p++;const k=s.filter(D=>D.userId===l).reduce((D,F)=>D+Ct(F.start,F.end,y,S),0);if(k>0){g+=k;continue}const v=rn(r,l,f,h),M=v?tn(v,h):0;if(v&&M>0){g+=M*60,d(nn(v,h)?"interval":"day");continue}v||b++}if(b>0){const h=zo(o,l,e.from);h&&(g+=h.weeklyMinutes*60*(b/7),d("week"))}const _=i.filter(h=>h.userId===l).reduce((h,y)=>h+Ct(y.start,y.end,e.from,e.to),0),m=Math.max(0,g-_);(m>0||p>0)&&(u[l]=m)}return{seconds:Object.values(u).reduce((l,f)=>l+f,0),precision:c,byUser:u}}function od(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const u=a.userId??n;r.set(u,(r.get(u)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const u=r.get(a)??0,c=t.byUser[a]??0;return{userId:a,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((a,u)=>a.netSeconds-u.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function sd(e,t,n,r){const o=e.filter(i=>i.userId&&Q(i.status)&&!K(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let u=0,c=0;for(const d of o){if(d.userId!==i||K(d.kindKey).capacity&&!d.workstreamId)continue;const l=Ct(d.start,d.end,n.from,n.to);l<=0||(Qt(d,t)?u+=l:c+=l)}return{userId:i,capacitySeconds:a,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,a-u-c)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const id="demand-source",Un=1e3;function ad(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function Yo(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=ad(e,t),r=t/e;return n/(1-r*(1-n))}function Xo(e,t,n,r){return r<=0?1:e<=t?0:1-Yo(e,t)*Math.exp(-(e-t)*n/r)}function qo(e,t,n){return n<=0?0:e*t/n}function Zo(e,t,n,r){if(e<=0||t<=0)return 0;const o=qo(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<=Un;a++)if(!(a<=o)&&!(Xo(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return Un}const cd=36e5,ud=864e5;function ld(e){return e==="day"?ud:cd}function dd(e,t){return e.start<t.end&&t.start<e.end}function be(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function Jo(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=Zo(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function fd(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=ld(i),u=a/1e3,c=e.kinds,d=t.filter(p=>Q(p.status)),l=d.filter(p=>Qt(p,n,c)),f=d.filter(p=>K(p.kindKey,c).capacity),g=d.filter(p=>K(p.kindKey,c).absent),b=[];for(let p=J(s.from,i);p<s.to;p+=a){const _=p+a,m=Z(p,i);let h=0;for(const D of l)h+=be(D,p,_);let y=0;for(const D of f)y+=be(D,p,_);let S=0;for(const D of g)S+=be(D,p,_);const k=o?.[m]??{},v=Jo(k,r,u),M=h/u;b.push({period:m,forecastVolume:k.volume,requiredSeconds:v.seconds,requiredHeadcount:v.headcount,scheduledSeconds:h,scheduledHeadcount:M,netHeadcount:M-v.headcount,capacitySeconds:y,absentSeconds:S})}return b}function Qo(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function pd(e,t,n){const r=Qo(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function md(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const gd=36e5,vt=6048e5,es=8,hd=.5,yd=2;function bd(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 Ed(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*vt,a=i-vt;let u=0,c=!1;for(const[d,l]of e)d>=a&&d<i&&(u+=l,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(yd,Math.max(hd,r[0]/o))}function _d(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Ad(e,t,n){const r=Math.max(1,n?.weeks??es),o=new Map,s=new Set;for(const u of e)o.set(bd(u.period),u.value),s.add(u.period.slice(0,10));const i=Ed(o,J(t.from,"hour"),r),a=[];for(let u=J(t.from,"hour");u<t.to;u+=gd){let c=0,d=0;for(let g=1;g<=r;g++){const b=u-g*vt,_=o.get(b)??(s.has(Z(b,"day"))?0:void 0);if(_===void 0)continue;const m=r-g+1;c+=_*m,d+=m}let l=d>0?c/d*i:0;const f=_d(n?.adjustments,u);f?.absoluteVolume!==void 0?l=f.absoluteVolume:f?.factor!==void 0&&(l*=f.factor),a.push({period:Z(u,"hour"),volume:l})}return a}const ts="schedule_entry",ns="workstream";function Sd(e){return`${ts}:${e}`}function Id(e){return`${ns}:${e}`}const Ot=36e5,q=864e5;function Td(e,t){const n=t==="day"?q:Ot,r=[];for(let o=J(e.from,t);o<e.to;o+=n)r.push(o);return r}function Bn(e){const t=Math.max(1,Math.round((e.to-e.from)/q));return Array.from({length:t},(n,r)=>e.from+r*q)}function st(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Cd(e,t,n={}){const r=n.grain??"hour",o=Td(t,r),s=r==="day"?q:Ot,i=new Map(o.map(l=>[l,0])),a=e.filter(l=>l.userId&&K(l.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const l of a)if(!(u&&l.userId&&!u.has(l.userId))){for(const f of o){const g=st(l.start,l.end,f,f+s);g>0&&i.set(f,(i.get(f)??0)+g)}for(const f of Bn(t))st(l.start,l.end,f,f+q)>0&&c.add(`${l.userId}:${f}`)}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 f=n.teamIdsOf?.(l)??[];for(const g of Bn(t)){if(c.has(`${l}:${g}`))continue;const b=rn(n.patterns,l,f,g);if(!b)continue;const p=tn(b,g);if(p<=0)continue;const _=nn(b,g);if(_){const[y,S]=_.split(":").map(Number),k=g+y*Ot+(S??0)*6e4,v=k+p*6e4;for(const M of o){const D=st(k,v,M,M+s);D>0&&i.set(M,(i.get(M)??0)+D)}continue}const m=o.filter(y=>y>=g&&y<g+q);if(!m.length)continue;const h=p*60/m.length;for(const y of m)i.set(y,(i.get(y)??0)+h)}}return o.map(l=>({period:Z(l,r),weight:i.get(l)??0}))}function rs(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 vd(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 rs(o.seconds,i)){const u=`${a.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=a.seconds:r.set(u,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function os(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Od(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 ss(e){return os(e)}function is(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 kd(e){return e.agentId?{kind:"user",userId:e.agentId}:is(e.ownerScope)}function Md(e){return ss(e)}const as="playbook-run",Rd="run";function Nd(e,t=0){return`${as}:${e}~${t}`}function Dd(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function cs(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 wd(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function xd(e,t){if(t)return e.targets.find(n=>n.id===t)}function us(e){return e?.kind==="assignment"}function Ld(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return us(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 kt=["suggest","outward","auto"];function Pd(e){return typeof e=="string"&&kt.includes(e)}function $d(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Kd(e,t){const n=e??"suggest";return t&&kt.indexOf(t)<kt.indexOf(n)?t:n}function Ud(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function ls(e){const t=e.split("__");return t[t.length-1]||e}function Bd(e){const t=ls(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Fd=[{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 jd(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Gd={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 ds(e){return`${e.type}:${e.id}`}const fs="interaction";function ps(e){return e?.type===fs?e.id:void 0}const ms=64,gs=8e3;function Vd(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),ms),gs)}const Wd=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],Hd={kind:"workflow",steps:[]};function zd(e){return e?.kind==="workflow"?e.steps:[]}function Yd(e){return e?.kind==="procedure"?e.procedure:void 0}function Xd(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function hs(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const ys=10,bs=.9;function qd(e){const{total:t,rate:n}=hs(e);return t>=ys&&n>=bs}const Es=["done","escalated","failed","stopped"];function Zd(e){return Es.includes(e)}function _s(e){return e==="waiting"}function Jd(e){return e==="running"||_s(e)}function on(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Qd(e){const t=on(e);return t?ds(t):void 0}function ef(e){return ps(on(e))}function tf(e){const t=[],n=new Map;for(const r of[...e].sort(nf)){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 nf=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function rf(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const As=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function of(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(y=>[y.key,y])),r=n.get(e.standardKey??"high"),o={},s={},i=(y,S)=>{if(!e.trace||!y||!S.ref)return;const k=s[y]??[];k.includes(S.ref)||(s[y]=[...k,S.ref])};let a;const u=(y,S,k)=>{if(!y||!k)return;const v=o[y]??{};v[S]=(v[S]??0)+k,o[y]=v,a&&i(y,a)},c=new Map,d=new Set;let l=0;for(const y of e.lines){if(y.taxPointDate<e.from||y.taxPointDate>e.to)continue;const S=n.get(y.taxCode);if(!S){d.add(y.taxCode);continue}const k=S.boxes[t]?.[y.side];if(a=y,y.side==="sales")u(k?.base,"baseCents",y.baseCents),u(k?.tax,"taxCents",y.taxCents),S.icp&&c.set(y.counterpartyCompanyId??"",(c.get(y.counterpartyCompanyId??"")??0)+y.baseCents);else if(S.selfAssessed){const v=r?Jt(r,y.taxPointDate)??0:0,M=Math.round(y.baseCents*v/100);u(k?.base,"baseCents",y.baseCents),u(k?.tax,"taxCents",M),l+=M,M&&i("5b",y)}else{const v=Math.round(y.taxCents*(S.deductiblePercent??100)/100);l+=v,v&&i("5b",y)}}const f=As.filter(y=>y<"5"),g=f.reduce((y,S)=>y+(o[S]?.taxCents??0),0);o["5a"]={taxCents:g},o["5b"]={taxCents:l},o["5c"]={taxCents:g-l},o["5g"]={taxCents:g-l};const b=y=>Math.trunc(y/100),p=y=>y>=0?Math.ceil(y/100):Math.floor(y/100),_={};for(const y of f){const S=o[y];S&&(_[y]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const m=f.reduce((y,S)=>y+(_[S]?.tax??0),0),h=p(l);return _["5a"]={tax:m},_["5b"]={tax:h},_["5c"]={tax:m-h},_["5g"]={tax:m-h},{boxes:o,euros:_,icp:[...c.entries()].filter(([,y])=>y!==0).map(([y,S])=>({...y?{counterpartyCompanyId:y}:{},baseCents:S})),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function sf(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,u=a+n-1,c=u===12?e+1:e,d=u===12?1:u+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(d)}-${r(o(c,d))}`}})}class sn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const af=/^\{\{\s*([\w.]+)\s*\}\}$/,cf=/\{\{\s*([\w.]+)\s*\}\}/g,uf=/\$[A-Za-z_][\w]*\.[\w.]+/;function lf(e,t,n={}){return we(e,t,n)}function we(e,t,n={}){return typeof e=="string"?df(e,t,n):Array.isArray(e)?e.map(r=>we(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,we(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function df(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(uf);if(s)throw new sn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(af);if(o){const s=Fn(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(cf,(s,i)=>{const a=Fn(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function Fn(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new sn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return ff(e,t)}function ff(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const pf=new Set(["filled","empty"]);function mf(){return{kind:"rule",op:"==",varPath:"",value:""}}const gf=new Set(["==","!=",">","<",">=","<="]);function it(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function jn(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ss(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=Mt(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function Mt(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=Mt(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(it(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=Mt(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!it(s)||!jn(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(gf.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!it(o)||!jn(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function Ee(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?Ee(e.children[0]):{[e.op]:e.children.map(Ee)}:e.kind==="not"?{"!":Ee(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 hf(e){const t=Ss(e);return t&&Rt(t)||null}function Rt(e){if(e.kind==="group"){const t=e.children.map(Rt).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${Rt(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 at=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function yf(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 u=t,c=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(u=Number(d),c=l===void 0?u:Number(l),!Number.isInteger(u)||!Number.isInteger(c)||(l===void 0&&i!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let d=u;d<=c;d+=a)r.add(d)}return r.size?r:null}function an(e){const t=e.trim().split(/\s+/);if(t.length!==at.length)return null;const n=[];for(let u=0;u<at.length;u++){const c=at[u],d=t[u];if(!c||d===void 0)return null;const l=yf(d,c.min,c.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 bf(e){return an(e)!==null}function Is(e,t){const n=an(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 Ts="@schedule",Nt=3;function Cs(e,t,n){const r=[],o=e.depth??0;if(o>=Nt)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${Nt})`}))};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!==Ts){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const u=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(u)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!Is(a.trigger.cron,new Date(u))){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 Ef(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function _f(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Cs(n,r,t),i=o.flatMap(c=>c.rule.then.map(d=>d.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((c,d)=>c===a[d]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function Af(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function vs(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Af(e,n))}function Sf(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>vs(r,t).length)?"corrected":"kept"}function If(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Tf(e){return`subject.${e.path}`}function Cf(e,t){return e.events.find(n=>n.name===t)}function vf(e,t){return e.filter(n=>cs(t,n.path)===void 0).map(n=>n.path)}const Dt=6e4,Of=36e5,se=864e5,Os=800;function Gn(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*se+Of}function kf(e){const t=new Date(e).getUTCFullYear();return e>=Gn(t,2)&&e<Gn(t,9)}function ks(e,t){const n=t.dst==="eu"&&kf(e)?60:0;return(t.utcOffsetMinutes+n)*Dt}function Mf(e){return(e+3)%7+1}function Ms(e,t){const n=ks(e,t),r=e+n,o=Math.floor(r/se);if(!t.days.includes(Mf(o)))return null;const s=o*se;return{open:s+t.fromMinutes*Dt-n,close:s+t.toMinutes*Dt-n}}function Rs(e,t){const n=ks(e,t),r=e+n;return(Math.floor(r/se)+1)*se-n}function xe(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Os&&o<t;s++){const i=Ms(o,n);if(i){const a=Math.max(o,i.open),u=Math.min(t,i.close);u>a&&(r+=u-a)}o=Rs(o,n)}return r}function He(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Os;s++){const i=Ms(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const u=i.close-a;if(r<=u)return a+r;r-=u}}o=Rs(o,n)}return e+t}function Rf(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const Le=1,Pe=2,$e=4;function Nf(e){return e==="snoozed"?Le:Pe}function ze(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Df=["speed_of_answer","first_response","next_response","resolution","close"],wf=["snoozed","waiting_for_customer"],xf=6e4,Ns=["speed_of_answer","first_response","next_response"],Lf=[...Ns,"resolution","close"];function ue(e){return e.state==="running"||e.state==="paused"}function Pf(e,t){return ue(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Vn(e){return ue(e)?{state:"void"}:null}function $f(e,t,n,r){if(!ue(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:xe(n,e.dueAt,r)}}function Kf(e,t,n,r){if(!ue(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:He(n,e.remainingMs,r)}}function Uf({event:e,at:t,now:n,clocks:r,profile:o}){const s=ze(o),i=Math.min(t,n),a=r.map(m=>({...m})),u=[],c=(m,h)=>{h&&(u.push({op:"patch",clockId:m.id,patch:h}),Object.assign(m,h))},d=m=>{for(const h of a)h.metric===m&&c(h,Pf(h,i))},l=m=>{for(const h of a)m.includes(h.metric)&&c(h,Vn(h))},f=m=>{for(const h of a)c(h,$f(h,m,i,s))},g=m=>{for(const h of a)c(h,Kf(h,m,i,s))},b=m=>a.reduce((h,y)=>y.metric===m?Math.max(h,y.attempt):h,0)+1,p=m=>a.some(h=>h.metric===m&&ue(h)),_=(m,h)=>{const y=o.targets.find(k=>k.metric===m);if(!y)return;const S=y.minutes*xf;u.push({op:"start",metric:m,attempt:b(m),startedAt:h,targetMs:S,dueAt:He(h,S,s)})};switch(e){case"apply":{for(const m of a)m.profileId!==o.id&&c(m,Vn(m));for(const m of o.targets){if(m.metric==="next_response")continue;a.some(y=>y.metric===m.metric&&y.profileId===o.id)||_(m.metric,i)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(Pe);break}case"inbound":{g(Pe),!p("first_response")&&!p("next_response")&&_("next_response",i);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Ns);break;case"reopened":p("resolution")||_("resolution",i),p("close")||_("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(Le);break;case"unsnoozed":g(Le);break;case"hold":f($e);break;case"unhold":g($e);break;case"discarded":l(Lf);break}return u}function Ds(e){return e.state==="running"||e.state==="paused"}function Bf(e){return(e.pauseBits&$e)!==0}function Ke(e,t){const n=ze(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-xe(e.dueAt,t,n):xe(t,e.dueAt,n)}function Ff(e,t){return e.state==="paused"?He(t,e.remainingMs,ze(e)):e.dueAt}function jf(e,t){const n=e.filter(Ds);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>Ke(i,t)<Ke(s,t)?i:s)}function Gf(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=Ke(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Vf(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 ws="strategy_item";function cn(e){return`${ws}:${e}`}function Wf(e,t=25){const n=new Set([cn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Hf(e){return e?[...e.ancestorKeys??[],cn(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"}],xs=999,Ls=7;function Ps(e,t=le){return t.find(n=>n.key===e)}function Ue(e,t=le){return Ps(e,t)?.order??xs}function zf(e,t,n=le){return Ue(t,n)<=Ue(e,n)}function Yf(e,t=le){const n=Ue(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Xf(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 wt={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function qf(e){return wt[e]??"open"}function Zf(e){return Object.keys(wt).filter(t=>e.includes(wt[t]))}const Jf=864e5,Ye=e=>e<=0?0:e>1?1:e;function Qf(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)?Ye((t-r)/i):s?1:0}function ep(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Ye((t-n)/(r-n))}const $s=.1,Ks=.25;function tp(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=Ks?"off_track":n>=$s?"at_risk":"on_track"}function np(e,t){if(t)return Ye(e/t)}function rp(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Ye(t.reduce((n,r)=>n+r,0)/t.length)}function op(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Ls)*Jf,o=t-n-r;return o>0?o:0}function sp(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function ip(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 ap(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function cp(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 up(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function lp(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 Us(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function dp(e,t){const n=Us(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 fp(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function pp(e){return e.filter(t=>!t.archived).sort(Bs)}function Bs(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Fs=20,js=20,_e=300;function V(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Gs(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=_e)return t;const n=t.slice(0,_e),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>_e*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function mp(e,t){const n=Gs(t.text),r=V(n);if(!r||(e.examples??[]).some(i=>V(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>V(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},Wn(i)}return Wn([{...t,text:n},...o]).slice(0,js)}function Wn(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function gp(e,t){const n=V(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>V(s)===n)?r:[...r,t].slice(-Fs),exampleCandidates:Vs(e,t)}}function Vs(e,t){const n=V(t);return(e.exampleCandidates??[]).filter(r=>V(r.text)!==n)}function Ws(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function hp(e,t){return e.filter(n=>Ws(n,t))}const Hs=["invoice","credit_note"];function yp(e){return!!e.issuedAt&&Hs.includes(e.kindKey)}function bp(e,t,n="sales"){const r=a=>e.totals?.byRate?.find(u=>u.taxRateKey===a),o=t?.address,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),i=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId??"",...e.number?{number:e.number}:{},counterparty:{companyId:e.companyId,name:t?.name??"",...t?.vatNumber?{vatNumber:t.vatNumber}:{},...t?.kvkNumber?{kvkNumber:t.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:X(e.issuedAt??Date.now()),...i?{taxPointDate:X(i)}:{},...e.dueAt?{dueDate:X(e.dueAt)}:{},currency:e.currency,lines:e.lines.filter(a=>a.kind==="product"&&!a.optional).map(a=>{const u=e.taxOverrideKey??a.taxRateKey,c=r(u);return{description:a.name,netCents:a.netCents,taxCents:a.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...a.ledgerCategoryKey?{ledgerCategoryKey:a.ledgerCategoryKey}:{},...a.productId?{productId:a.productId}:{},...a.dealItemId?{dimensions:{dealItemId:a.dealItemId}}:{}}}),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}:{}}}const Xe=[{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","delivered","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["delivered","cancelled"],delivered:["confirmed"]},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"],open:["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"],open:["cancelled"]},convertsTo:[],credits:"invoice"}],un=["quote","order","invoice","credit_note"];function Ep(){const e=new Map;for(const t of Xe)un.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function x(e){return Xe.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const _p={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function zs(e,t){return x(e).transitions[t]??[]}function Ap(e,t,n){return zs(e,t).includes(n)}function ln(e){return e.issuedAt!=null}const Sp=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function Ip(e){return ln(e)&&x(e.kindKey).numbered&&!e.number}const Tp=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],Cp=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function vp(e,t){if(!un.includes(t)||!x(e.kindKey).convertsTo.includes(t))return!1;const n=x(t);return!n.credits||n.credits===e.kindKey&&ln(e)}function Ys(e,t){const n=x(t).signFlip!==x(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...i})=>({...i,quantity:n?-i.quantity:i.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,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:r,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 Op(e){return{...Ys(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 kp(e,t={}){const n=x(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:Np(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:H(e.issuedAt),valid_until:H(e.expiresAt),due_date:H(e.dueAt),delivery_date:H(e.deliveredAt),period_from:H(e.periodFrom),period_to:H(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:B(r.netCents),tax:B(r.taxCents),gross:B(r.grossCents)}}}function Mp(e,t=[],n=Xs){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=a=>t.find(u=>u.key===a)?.percent??0,s={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},{label:n.net,align:"right"}],rows:(e.lines??[]).map(a=>a.kind==="text"?[a.name,"","",""]:[Rp(a.name,a.description,a.optional,n.optional),Dp(a.quantity),B(a.unitPriceCents),B(a.netCents)])},i={block_id:"totals",type:"totals",rows:[{label:n.net,amount:B(r.netCents)},{label:n.gross,amount:B(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(a=>({label:`${n.tax} ${a.percent??o(a.taxRateKey)}%`,amount:B(a.taxCents)}))};return{lines:[s],totals:[i]}}const Xs={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",net:"Netto",tax:"Btw",gross:"Totaal"};function Rp(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function Np(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Dp(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function H(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 qs(e){const t=x(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:xp[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 ${x(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:Hn[n]??Hn.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:"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:zn[n]??zn.quote}]}const wp=e=>({note:{key:`${x(e).key}.note`,exists:!0},period:{key:`${x(e).key}.period_from`,exists:!0}}),xp={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Hn={quote:`Beste {customer.contact},
|
|
11
|
+
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function no(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function fu(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function pu(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=no(n);r&&!t.includes(r)&&t.push(r)}return t}function mu(e){return e.endpoints??[]}const gu=["lead","opportunity","customer","former"],hu=["new","working","unqualified"];function yu(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const ro=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],oo=["openDeal","hasContacts"],bu={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},Eu=["updatedAt","createdAt","name"],_u=["list"];function Au(e){return e.search?.trim()||e.createdWithinDays||oo.some(t=>e[t])||ro.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const so="CRM_NOTE_ADDED",Su="crm_activity",io="CRM_CALL_LOGGED",Iu="CRM_STAGE_CHANGED",Tu=["phone","meeting","video"],Cu=["callback","interested","no_answer","not_interested"],vu=e=>e===so||e===io,Ou=e=>e.payload.call?.at??e.createdAt??0;function W(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function ku(e){return W(e.contactLocale)??W(e.companyLocale)??W(e.organizationLocale)}function Mu(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=W(n),i=W(r);return o.find(a=>W(a.locale)===s)??o.find(a=>W(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const Ru=/\{([a-zA-Z0-9_.]+)\}/g;function Wt(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function Nu(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ao(e,t,n){const r=[];return{text:e.replace(Ru,(s,i)=>{const a=Wt(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):Nu(a)}),unresolved:r}}function co(e,t){if(!e)return!0;const n=Wt(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 Du(e,t,n,r,o){const s=[],i=[],a=new Set,u=c=>{const d=ao(c,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const c of e){if(c.block_id&&!co(n?.[c.block_id],t))continue;const d=c.block_id?r?.[c.block_id]:void 0;if(d&&c.block_id){a.add(c.block_id),i.push(...d);continue}switch(c.type){case"heading":case"paragraph":case"quote":i.push({...c,text:u(c.text)});break;case"callout":i.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":i.push(c);break;case"list":i.push({...c,items:c.items.map(l=>({...l.lead?{lead:u(l.lead)}:{},text:u(l.text)}))});break;case"table":i.push({...c,columns:c.columns.map(l=>({...l,label:u(l.label)})),rows:c.rows.map(l=>l.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":i.push({...c,items:c.items.map(l=>({...l,value:u(l.value),label:u(l.label)}))});break;case"letterhead":i.push({...c,fields:c.fields.map(l=>({...l,value:u(l.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":i.push({...c,rows:c.rows.map(l=>({...l,label:u(l.label),amount:u(l.amount)})),...c.taxRows?{taxRows:c.taxRows.map(l=>({...l,label:u(l.label),amount:u(l.amount)}))}:{}});break;case"image":i.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:i.push(c)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!a.has(c))}}function uo(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 wu(e){return uo({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 lo(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 xu(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Lu(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 lo(e,t,s,o)}const Ht=864e5,Ge=e=>new Date(e).toISOString().slice(0,10),Ne=e=>Date.parse(`${e}T00:00:00Z`);function ee(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)),Ge(s.getTime())}function zt(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 u=Math.round(i*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;a===t&&(c=i),c=Math.min(c,i),i-=c,s.push({sequence:a,dueOn:ee(e.firstDueOn,a-1),interestCents:u,principalCents:c,remainingCents:i})}return s}function Pu(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,d)=>c.date.localeCompare(d.date));let i=s.filter(c=>c.date<t).reduce((c,d)=>c+d.cents,0),a=s.findIndex(c=>c.date>=t);a<0&&(a=s.length);let u=0;for(let c=Ne(t);c<=Ne(n);c+=Ht){const d=Ge(c);for(;a<s.length&&(s[a]?.date??"")<=d;)i+=s[a]?.cents??0,a++;u+=i*o}return Math.round(u)}function $u(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 u=`${o}-${String(i).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const d=ee(u,r);a.push({sequence:c,from:u<e?e:u,to:Ge(Ne(d)-Ht)}),u=d}return a}const fo=5e7,Ku=["director","group_company","participation","other_company"],Uu=e=>e?.relation&&Ku.includes(e.relation)?e.relation:"director";function Bu(e,t=fo){return{over:e>t,ratio:Math.max(0,e)/t}}function Fu(e,t){const r=e.terms.kind==="loan_received"?1:-1;return zt(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 po(e){return Ge(Ne(ee(`${e.slice(0,7)}-01`,1))-Ht)}function Yt(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 mo(e,t,n,r,o,s,i=1){return t.map((a,u)=>({cents:a,sequence:i+u,dueOn:po(ee(n,u))})).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)}))}const Pn=600;function go(e){const t=e.method??"linear",n=e.restart?.bookValueCents??e.costCents,r=n-e.residualCents;if(t==="none"||r<=0)return[];if(t==="linear"){const u=e.lifeMonths-((e.restart?.fromSequence??1)-1);return Yt(r,Math.max(1,u))}const o=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(o>0&&o<1))return[];const s=1-(1-o)**(1/12),i=[];let a=n;for(;a>e.residualCents&&i.length<Pn;){const u=Math.max(1,Math.round(a*s)),c=a-u<=e.residualCents||i.length===Pn-1;i.push(c?a-e.residualCents:u),a-=i[i.length-1]??0}return i}function ju(e,t){const n=e.terms;if(n.disposal)return[];const r=go(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return mo(e.id,r,n.restart?.fromMonth??n.acquiredOn,t,(s,i)=>[{accountId:n.depreciationAccountId,amountCents:s,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-s,subAccountId:e.id,description:`Afschrijving ${i}/${o}`}],s=>`Afschrijving ${s}/${o}`,n.restart?.fromSequence??1)}function Gu(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 Vu(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return mo(e.id,Yt(n.totalCents,n.months),n.firstMonth,t,(o,s)=>[{accountId:n.resultAccountId,amountCents:r*o,description:e.name},{accountId:e.ledgerAccountId,amountCents:-r*o,subAccountId:e.id,description:`${e.name} ${s}/${n.months}`}],o=>`${o}/${n.months}`)}function Wu(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Hu(e,t){const n=ee(t,12);return zt(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function zu(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),u=[],c=`${e.name} (${t.quantity}/${r})`;a&&u.push({accountId:n.accumulatedAccountId,amountCents:a,subAccountId:e.id,description:c}),t.proceedsCents&&u.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:c}),u.push({accountId:e.ledgerAccountId,amountCents:-s,description:c});const d=u.reduce((l,f)=>l+f.amountCents,0);return d&&u.push({accountId:t.disposalAccountId,amountCents:-d,description:c}),{lines:u,costCents:s,residualCents:i}}const ho={NL:45e3},Yu=(e,t)=>t??ho[(e??"NL").toUpperCase()],qu=[{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"}],yo=36e5,bo=864e5,G=-1/0,Xu=e=>e.score>G,oe={urgent:40,high:25,normal:10,low:0};function Zu(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Ju=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Eo=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function _o(e,t){return!!(e&&Ju.test(e)||t&&Eo.test(t))}const Ao=3,So=600;function Qu(e,t){return e>=Ao||t>=So}const Io=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function el(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&Io.includes(r)&&(t[r]=n.value)}return t}const tl=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,nl=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function rl(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&tl.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&&Eo.test(e.body)||n&&nl.test(n))return"marketing"}function To(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Co=["open"],vo=1e3,Oo=72;function ko(e){return e.lastActivityAt??(e.createdAt?new Date(mr(e)).getTime():0)}function Mo(e,t){return Ro(t.remindersById?.[e.id],e,t.now)}function Ro(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const No=e=>lr(e)==="outbound_message",Do=e=>Co.includes(e);function Ve(e,t){return Math.max(0,(t-ko(e))/yo)}function wo(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function ol(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function sl(e,t,n){if(!Do(e.status)||e.firstResponseAt)return!1;const r=wo(e,n);return r!==void 0&&Ve(e,t)>r}function xo(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!No(n.type)?!1:Ve(e,t)<Oo}function il(e,t){if(!Do(e.status))return{score:G,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:G,reasons:[]};if(xo(e,t.now))return{score:G,reasons:[]};if(Mo(e,t))return{score:G,reasons:[]};let n=0;const r=[],o=e.priority??"normal";oe[o]>0&&(n+=oe[o],r.push(`priority:${o}`)),To(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=Ve(e,t.now);if(s>0){const u=Math.min(s*2,30);n+=u,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"&&No(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(u=>u==="marketing"||u==="automated")||_o(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=vo,r.push("bulk")),{score:n,reasons:r}}const al=e=>!!e.assignedUserId||!!e.assignedInboxId,cl=e=>e.status==="closed",ul=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,ll=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Lo=[{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}],dl=["duplicate","spam"],fl="c_";function pl(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Lo,...t]}function ml(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function gl(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 hl="article",De=[{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 Po(e){const t=(e??"").toLowerCase();return De.find(n=>n.code===t)??De.find(n=>n.code===t.split("-")[0])}function yl(e){return Po(e)?.label??e}function bl(e){const t=Po(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const qt=3;function $o(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>qt+1))return 1/0;o=t.get(o)?.parentId}return r}function El(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&&Ko(e,t,r))return!1;const o=$o(e,r),s=t?Xt(t,n):1;return o+s<=qt}function Ko(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 Xt(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=>Xt(o.id,t,n))):1}const Uo="en";function Bo(e){return e.defaultLocale||e.locale||Uo}function _l(e){const t=new Set,n=[];for(const r of[Bo(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Al(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 Sl(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,u)=>{if(s.has(n(a)))return;const c=i.slice(0,u).reverse().find(f=>f.level<a.level);let d=o.length;const l=c?o.findIndex(f=>n(f)===n(c)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(c?.level??0);)d+=1;o.splice(d,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function Il(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 Tl=["revenue","expense"],ce=e=>Tl.includes(e.type),Cl=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Fo(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,u)=>a.code.localeCompare(u.code))){if(!t(i))continue;const a=Cl(i),u=i.reportGroup??a,c=o.get(a)??new Map;c.set(u,[...c.get(u)??[],i]),o.set(a,c)}const s=[];for(const[i,a]of o){const u=n(i),c=l=>u==="debit"?t(l):-t(l),d=[...a.values()].flat().reduce((l,f)=>l+c(f),0);s.push({key:i,label:r(i),level:0,side:u,amountCents:d});for(const[l,f]of a){s.push({key:l,label:r(l),level:1,side:u,amountCents:f.reduce((g,b)=>g+c(b),0)});for(const g of f)s.push({key:g.code,label:`${g.code} ${g.name}`,level:2,side:u,amountCents:c(g),accountId:g.id})}}return s}function vl(e,t,n,r=o=>o){const o=e.filter(ce),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},i=Fo(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),a=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function Ol(e,t,n,r,o=s=>s){const s=e.filter(d=>!ce(d)),a=Fo(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 u=a.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),c=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:u,creditCents:c},source:"finance"}}function kl(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=ce(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 Ml(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const u=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(a.cents>=0?c.inCents+=a.cents:c.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function Rl(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||!ce(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],[u])=>a.localeCompare(u)))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 E=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),jo={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[E("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),E("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),E("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),E("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),E("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),E("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),E("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),E("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),E("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),E("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),E("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),E("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),E("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),E("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),E("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),E("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),E("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),E("1000","Kas","asset","assets.current.cash","BLimKasKas"),E("1100","Bank","asset","assets.current.cash","BLimBanRba"),E("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),E("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),E("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),E("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),E("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),E("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),E("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),E("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),E("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),E("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),E("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),E("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),E("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),E("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),E("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),E("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),E("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),E("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),E("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),E("4000","Lonen","expense","costs.personnel","WPerLesLon"),E("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),E("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),E("4100","Huur","expense","costs.housing","WBedHuiBeh"),E("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),E("4200","Autokosten","expense","costs.car","WBedAutOak"),E("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),E("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),E("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),E("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),E("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),E("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),E("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),E("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),E("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),E("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),E("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),E("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),E("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),E("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),E("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),E("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),E("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),E("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),E("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),E("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),E("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),E("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),E("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),E("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),E("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"}]},Nl=[jo],Go={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function Dl(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,i)=>s+i.functionalCents,0);r!==0&&n.push({code:"entry_unbalanced",params:{cents:String(r)}});const o=new Map(t.accounts.map(s=>[s.id,s]));for(const s of e.lines){const i=o.get(s.accountId);i?i.archived?n.push({code:"entry_account_archived",params:{account:i.code}}):i.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:i.code}}):n.push({code:"entry_unknown_account",params:{account:s.accountId}})}return t.period?(t.period.status==="locked"&&t.allow!=="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 wl(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const xl=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function Ll(e){const t={};for(const n of xl)e[n]!==void 0&&(t[n]=e[n]);return t}function St(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(St).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)+":"+St(r)).join(",")+"}"}function Pl(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Vo(e,t,n){const r=t.filter(s=>s.appliesTo.direction===n.direction).filter(s=>!s.appliesTo.kind||s.appliesTo.kind===n.kind).sort((s,i)=>s.order-i.order),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.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}function $l(e,t){if(e.kind==="journal")return Kl(e,t);const n=b=>t.accounts.find(p=>p.role===b&&!p.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,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,d=[],l=new Map;for(const b of e.lines){const p=b.accountKey??Vo(b,t.rules,e)?.accountId??s?.id;if(!p)return{ok:!1,problem:"no_account_for_line"};d.push({...u,accountId:p,amountCents:a*b.netCents,functionalCents:a*b.netCents,taxCode:b.taxRateKey,taxCents:a*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...b.dimensions?.projectId?{projectId:b.dimensions.projectId}:{}}),b.taxCents&&l.set(b.taxRateKey,(l.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,p]of l){const A=t.taxAccounts.find(h=>h.taxKey===b),m=(r?A?.payableAccountId:A?.receivableAccountId)??i?.id;if(!m)return{ok:!1,problem:"no_vat_account"};d.push({...u,accountId:m,amountCents:a*p,functionalCents:a*p,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,p)=>b+p.netCents+p.taxCents,0);d.unshift({...u,accountId:o.id,amountCents:-a*f,functionalCents:-a*f});const g=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:d,description:g||e.documentId}}function Kl(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??Vo(o,t.rules,e)?.accountId??n(Go[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}:{},...o.dimensions?.projectId?{projectId:o.dimensions.projectId}:{},...o.dimensions?.costCenterId?{costCenter:o.dimensions.costCenterId}:{},...o.dimensions?.employeeId?{dimensions:{employeeId:o.dimensions.employeeId}}:{}})}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 rt=e=>String(e).padStart(2,"0"),Ul=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function Bl(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}-${rt(a)}-01`,to:`${i}-${rt(a)}-${rt(Ul(i,a))}`,status:"open"}})}function Fl(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const Wo="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",jl={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ho=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Zt=(e,t)=>e.length>t?e.slice(0,t):e,_=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ho(Zt(String(t),n))+"</"+e+">",j=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},ot=e=>e<0?"C":"D",$n=e=>Zt(e.replace(/-/g,""),35);function Gl(e){const t=new Map(e.accounts.map(c=>[c.id,c.code])),n=new Map(e.periods.map(c=>[c.id,c.index])),r=[],o=(...c)=>{r.push(c.join(""))};o('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',Wo,'">',"<header>",_("fiscalYear",e.fiscalYear.replace("/","-")),_("startDate",e.startDate),_("endDate",e.endDate),_("curCode",e.currency),_("dateCreated",e.createdOn),_("softwareDesc",e.software.desc,50),_("softwareVersion",e.software.version,20),_("RGSVersion",e.rgsVersion,20),"</header>","<company>",_("Commercenr",e.company.commerceNr,100),_("companyName",e.company.name,255),_("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ho(Zt(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",_("streetname",s.street,100),_("number",s.number,15),_("city",s.city,50),_("postalCode",s.postalCode,10),_("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",_("custSupID",$n(c.id)),_("custSupName",c.name,50),_("commerceNr",c.commerceNr,100),_("taxRegistrationCountry",c.country),_("taxRegIdent",c.vatNumber,30),_("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((d,l)=>d.code.localeCompare(l.code))){const d=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",_("accID",c.code,35),_("accDesc",c.name,255),_("accTp",d?"P":"B"),_("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",_("vatID",c.key,35),_("vatDesc",c.label,100),_("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),_("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((d,l)=>d.index-l.index))o("<period>",_("periodNumber",c.index),_("startDatePeriod",c.from),_("endDatePeriod",c.to),"</period>");o("</periods>");const i=e.opening.filter(c=>c.cents!==0);if(i.length){const c=i.filter(l=>l.cents>0).reduce((l,f)=>l+f.cents,0),d=-i.filter(l=>l.cents<0).reduce((l,f)=>l+f.cents,0);o("<openingBalance>",_("linesCount",i.length),_("totalDebit",j(c)),_("totalCredit",j(d))),i.forEach((l,f)=>{o("<obLine>",_("nr",f+1),_("accID",t.get(l.accountId)??l.accountId),_("amnt",j(l.cents)),_("amntTp",ot(l.cents)),"</obLine>")}),o("</openingBalance>")}const a=e.entries.flatMap(c=>c.lines);o("<transactions>",_("linesCount",a.length),_("totalDebit",j(a.filter(c=>c.functionalCents>0).reduce((c,d)=>c+d.functionalCents,0))),_("totalCredit",j(-a.filter(c=>c.functionalCents<0).reduce((c,d)=>c+d.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const d=u.get(c.id);if(d?.length){o("<journal>",_("jrnID",c.code,35),_("desc",c.name),_("jrnTp",jl[c.kind]));for(const l of[...d].sort((f,g)=>f.journalSeq-g.journalSeq))o("<transaction>",_("nr",l.number,35),_("desc",l.description),_("periodNumber",n.get(l.periodId)??0),_("trDt",l.date),_("Source",l.source.app+(l.source.kind?" "+l.source.kind:""),999),_("User",l.postedBy,999)),l.lines.forEach((f,g)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,l.date),p=f.currency&&f.currency!==e.currency;o("<trLine>",_("nr",g+1),_("accID",t.get(f.accountId)??f.accountId,35),_("docRef",l.source.number??l.number,255),_("effDate",f.taxPointDate??l.date),_("desc",f.description),_("amnt",j(f.functionalCents)),_("amntTp",ot(f.functionalCents)),_("custSupID",f.counterpartyCompanyId&&$n(f.counterpartyCompanyId)),_("invRef",l.source.number,255),_("cost",f.costCenter,999),_("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+_("vatID",f.taxCode,35)+_("vatPerc",b)+_("vatAmnt",j(f.taxCents))+_("vatAmntTp",ot(f.taxCents))+"</vat>":"",p?"<currency>"+_("curCode",f.currency)+_("curAmnt",j(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
+
`)}const Vl=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Wl(e){const t=$(e,"ledgerAccount").map(a=>{const u=I(a,"RGScode")??I(a,"leadCode");return{code:I(a,"accID")??"",name:I(a,"accDesc")??"",kind:I(a,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=a=>{const u=I(a,"accID");u&&(n[u]=(n[u]??0)+Vl(I(a,"amnt"),I(a,"amntTp")))};for(const a of $(e,"obLine"))r(a);for(const a of $(e,"trLine"))r(a);const o=$(e,"header")[0]??"",s=I(o,"fiscalYear"),i=I(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function Hl(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 It=["lookup","condition","parallel","for-each"];function ye(e){for(const t of e){if(!It.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${It.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=ye(n);if(r)return r}if(t.type==="for-each"){const n=ye(t.body??[]);if(n)return n}if(t.type==="condition"){const n=ye(t.else??[]);if(n)return n}}return null}function zl(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 Yl(e,t){return e.filter(n=>n.enabled&&zl(n.ownerScope,t))}function ql(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Xl(e){return`mcp__${e}__`}const Zl=1e3,Jl=2e3,Ql=500,ed=12e3,td=4e3,zo=["contact","company","work_item"];function nd(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return zo.includes(t)}const rd=[{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 Yo(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const od=[{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},{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 Jt(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function sd(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:Jt(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function q(e){return new Date(e).toISOString().slice(0,10)}const Kn=/^\d{4}-\d{2}-\d{2}$/;function id(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(!Kn.test(r.validFrom)||r.validTo&&!Kn.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 qo(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100;return L(e.quantity*e.unitPriceCents*t)}function ad(e,t,n){const r=e.map(c=>({...c,netCents:qo(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const d=n??r[c].taxRateKey,l=o.get(d);l?l.push(c):o.set(d,[c])}const s=[];let i=0,a=0;for(const[c,d]of o){const l=Yo(c,t),f=d.reduce((p,A)=>p+r[A].netCents,0),g=L(f*l.percent/100),b=yr(g,d.map(p=>r[p].netCents));for(let p=0;p<d.length;p++)r[d[p]].taxCents=b[p];s.push({taxRateKey:c,percent:l.percent,kind:l.kind,netCents:f,taxCents:g}),i+=f,a+=g}const u=r.reduce((c,d)=>d.costPriceCents==null||d.optional?c:c+L(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:u,byRate:s}}}const cd="onboarding-source",ud=["support","billing","availability","sales","onboarding"],ld=["keep","replace"],We=[{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"}],Xo={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function K(e,t=We){return t.find(n=>n.key===e)??{...Xo,key:e}}function Q(e){return e==="published"||e==="approved"}function Qt(e,t,n=We){if(e.workstreamId!==t)return!1;const r=K(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function dd(e,t=We){if(!e.userId||!Q(e.status))return!1;const n=K(e.kindKey,t);return n.capacity||n.productive||n.absent}const fd=864e5;function Zo(e,t){return Math.round((t-e)/fd)}function en(e,t){const n=e.cycleMinutes.length;return n===0?0:(Zo(e.anchor,t)%n+n)%n}function tn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[en(e,t)]??0}function nn(e,t){return e.startTimes?.[en(e,t)]}function rn(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((u,c)=>(c.effectiveFrom??0)-(u.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 Jo(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 Tt=864e5;function pd(e){const t=Math.max(1,Math.round((e.to-e.from)/Tt));return Array.from({length:t},(n,r)=>e.from+r*Tt)}function Ct(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Un={interval:0,day:1,week:2};function md(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&Q(l.status)&&K(l.kindKey).capacity),i=n.filter(l=>l.userId&&Q(l.status)&&K(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),u={};let c="interval";const d=l=>{Un[l]>Un[c]&&(c=l)};for(const l of a){const f=t.teamIdsOf?.(l)??[];let g=0,b=0,p=0;for(const h of pd(e)){const y=Math.max(h,e.from),S=Math.min(h+Tt,e.to);p++;const k=s.filter(D=>D.userId===l).reduce((D,F)=>D+Ct(F.start,F.end,y,S),0);if(k>0){g+=k;continue}const v=rn(r,l,f,h),M=v?tn(v,h):0;if(v&&M>0){g+=M*60,d(nn(v,h)?"interval":"day");continue}v||b++}if(b>0){const h=Jo(o,l,e.from);h&&(g+=h.weeklyMinutes*60*(b/7),d("week"))}const A=i.filter(h=>h.userId===l).reduce((h,y)=>h+Ct(y.start,y.end,e.from,e.to),0),m=Math.max(0,g-A);(m>0||p>0)&&(u[l]=m)}return{seconds:Object.values(u).reduce((l,f)=>l+f,0),precision:c,byUser:u}}function gd(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const u=a.userId??n;r.set(u,(r.get(u)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const u=r.get(a)??0,c=t.byUser[a]??0;return{userId:a,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((a,u)=>a.netSeconds-u.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function hd(e,t,n,r){const o=e.filter(i=>i.userId&&Q(i.status)&&!K(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let u=0,c=0;for(const d of o){if(d.userId!==i||K(d.kindKey).capacity&&!d.workstreamId)continue;const l=Ct(d.start,d.end,n.from,n.to);l<=0||(Qt(d,t)?u+=l:c+=l)}return{userId:i,capacitySeconds:a,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,a-u-c)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const yd="demand-source",Bn=1e3;function bd(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function Qo(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=bd(e,t),r=t/e;return n/(1-r*(1-n))}function es(e,t,n,r){return r<=0?1:e<=t?0:1-Qo(e,t)*Math.exp(-(e-t)*n/r)}function ts(e,t,n){return n<=0?0:e*t/n}function ns(e,t,n,r){if(e<=0||t<=0)return 0;const o=ts(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<=Bn;a++)if(!(a<=o)&&!(es(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return Bn}const Ed=36e5,_d=864e5;function Ad(e){return e==="day"?_d:Ed}function Sd(e,t){return e.start<t.end&&t.start<e.end}function be(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function rs(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=ns(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function Id(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=Ad(i),u=a/1e3,c=e.kinds,d=t.filter(p=>Q(p.status)),l=d.filter(p=>Qt(p,n,c)),f=d.filter(p=>K(p.kindKey,c).capacity),g=d.filter(p=>K(p.kindKey,c).absent),b=[];for(let p=J(s.from,i);p<s.to;p+=a){const A=p+a,m=Z(p,i);let h=0;for(const D of l)h+=be(D,p,A);let y=0;for(const D of f)y+=be(D,p,A);let S=0;for(const D of g)S+=be(D,p,A);const k=o?.[m]??{},v=rs(k,r,u),M=h/u;b.push({period:m,forecastVolume:k.volume,requiredSeconds:v.seconds,requiredHeadcount:v.headcount,scheduledSeconds:h,scheduledHeadcount:M,netHeadcount:M-v.headcount,capacitySeconds:y,absentSeconds:S})}return b}function os(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function Td(e,t,n){const r=os(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function Cd(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const vd=36e5,vt=6048e5,ss=8,Od=.5,kd=2;function Md(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 Rd(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*vt,a=i-vt;let u=0,c=!1;for(const[d,l]of e)d>=a&&d<i&&(u+=l,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(kd,Math.max(Od,r[0]/o))}function Nd(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Dd(e,t,n){const r=Math.max(1,n?.weeks??ss),o=new Map,s=new Set;for(const u of e)o.set(Md(u.period),u.value),s.add(u.period.slice(0,10));const i=Rd(o,J(t.from,"hour"),r),a=[];for(let u=J(t.from,"hour");u<t.to;u+=vd){let c=0,d=0;for(let g=1;g<=r;g++){const b=u-g*vt,A=o.get(b)??(s.has(Z(b,"day"))?0:void 0);if(A===void 0)continue;const m=r-g+1;c+=A*m,d+=m}let l=d>0?c/d*i:0;const f=Nd(n?.adjustments,u);f?.absoluteVolume!==void 0?l=f.absoluteVolume:f?.factor!==void 0&&(l*=f.factor),a.push({period:Z(u,"hour"),volume:l})}return a}const is="schedule_entry",as="workstream";function wd(e){return`${is}:${e}`}function xd(e){return`${as}:${e}`}const Ot=36e5,X=864e5;function Ld(e,t){const n=t==="day"?X:Ot,r=[];for(let o=J(e.from,t);o<e.to;o+=n)r.push(o);return r}function Fn(e){const t=Math.max(1,Math.round((e.to-e.from)/X));return Array.from({length:t},(n,r)=>e.from+r*X)}function st(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Pd(e,t,n={}){const r=n.grain??"hour",o=Ld(t,r),s=r==="day"?X:Ot,i=new Map(o.map(l=>[l,0])),a=e.filter(l=>l.userId&&K(l.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const l of a)if(!(u&&l.userId&&!u.has(l.userId))){for(const f of o){const g=st(l.start,l.end,f,f+s);g>0&&i.set(f,(i.get(f)??0)+g)}for(const f of Fn(t))st(l.start,l.end,f,f+X)>0&&c.add(`${l.userId}:${f}`)}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 f=n.teamIdsOf?.(l)??[];for(const g of Fn(t)){if(c.has(`${l}:${g}`))continue;const b=rn(n.patterns,l,f,g);if(!b)continue;const p=tn(b,g);if(p<=0)continue;const A=nn(b,g);if(A){const[y,S]=A.split(":").map(Number),k=g+y*Ot+(S??0)*6e4,v=k+p*6e4;for(const M of o){const D=st(k,v,M,M+s);D>0&&i.set(M,(i.get(M)??0)+D)}continue}const m=o.filter(y=>y>=g&&y<g+X);if(!m.length)continue;const h=p*60/m.length;for(const y of m)i.set(y,(i.get(y)??0)+h)}}return o.map(l=>({period:Z(l,r),weight:i.get(l)??0}))}function cs(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 $d(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 cs(o.seconds,i)){const u=`${a.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=a.seconds:r.set(u,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function us(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Kd(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 ls(e){return us(e)}function ds(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 Ud(e){return e.agentId?{kind:"user",userId:e.agentId}:ds(e.ownerScope)}function Bd(e){return ls(e)}const fs="playbook-run",Fd="run";function jd(e,t=0){return`${fs}:${e}~${t}`}function Gd(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function ps(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 Vd(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Wd(e,t){if(t)return e.targets.find(n=>n.id===t)}function ms(e){return e?.kind==="assignment"}function Hd(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return ms(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 kt=["suggest","outward","auto"];function zd(e){return typeof e=="string"&&kt.includes(e)}function Yd(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function qd(e,t){const n=e??"suggest";return t&&kt.indexOf(t)<kt.indexOf(n)?t:n}function Xd(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function gs(e){const t=e.split("__");return t[t.length-1]||e}function Zd(e){const t=gs(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Jd=[{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 Qd(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const ef={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 hs(e){return`${e.type}:${e.id}`}const ys="interaction";function bs(e){return e?.type===ys?e.id:void 0}const Es=64,_s=8e3;function tf(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),Es),_s)}const nf=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],rf={kind:"workflow",steps:[]};function of(e){return e?.kind==="workflow"?e.steps:[]}function sf(e){return e?.kind==="procedure"?e.procedure:void 0}function af(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function As(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ss=10,Is=.9;function cf(e){const{total:t,rate:n}=As(e);return t>=Ss&&n>=Is}const Ts=["done","escalated","failed","stopped"];function uf(e){return Ts.includes(e)}function Cs(e){return e==="waiting"}function lf(e){return e==="running"||Cs(e)}function on(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function df(e){const t=on(e);return t?hs(t):void 0}function ff(e){return bs(on(e))}function pf(e){const t=[],n=new Map;for(const r of[...e].sort(mf)){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 mf=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function gf(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const vs=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function hf(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(y=>[y.key,y])),r=n.get(e.standardKey??"high"),o={},s={},i=(y,S)=>{if(!e.trace||!y||!S.ref)return;const k=s[y]??[];k.includes(S.ref)||(s[y]=[...k,S.ref])};let a;const u=(y,S,k)=>{if(!y||!k)return;const v=o[y]??{};v[S]=(v[S]??0)+k,o[y]=v,a&&i(y,a)},c=new Map,d=new Set;let l=0;for(const y of e.lines){if(y.taxPointDate<e.from||y.taxPointDate>e.to)continue;const S=n.get(y.taxCode);if(!S){d.add(y.taxCode);continue}const k=S.boxes[t]?.[y.side];if(a=y,y.side==="sales")u(k?.base,"baseCents",y.baseCents),u(k?.tax,"taxCents",y.taxCents),S.icp&&c.set(y.counterpartyCompanyId??"",(c.get(y.counterpartyCompanyId??"")??0)+y.baseCents);else if(S.selfAssessed){const v=r?Jt(r,y.taxPointDate)??0:0,M=Math.round(y.baseCents*v/100);u(k?.base,"baseCents",y.baseCents),u(k?.tax,"taxCents",M),l+=M,M&&i("5b",y)}else{const v=Math.round(y.taxCents*(S.deductiblePercent??100)/100);l+=v,v&&i("5b",y)}}const f=vs.filter(y=>y<"5"),g=f.reduce((y,S)=>y+(o[S]?.taxCents??0),0);o["5a"]={taxCents:g},o["5b"]={taxCents:l},o["5c"]={taxCents:g-l},o["5g"]={taxCents:g-l};const b=y=>Math.trunc(y/100),p=y=>y>=0?Math.ceil(y/100):Math.floor(y/100),A={};for(const y of f){const S=o[y];S&&(A[y]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const m=f.reduce((y,S)=>y+(A[S]?.tax??0),0),h=p(l);return A["5a"]={tax:m},A["5b"]={tax:h},A["5c"]={tax:m-h},A["5g"]={tax:m-h},{boxes:o,euros:A,icp:[...c.entries()].filter(([,y])=>y!==0).map(([y,S])=>({...y?{counterpartyCompanyId:y}:{},baseCents:S})),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function yf(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,u=a+n-1,c=u===12?e+1:e,d=u===12?1:u+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(d)}-${r(o(c,d))}`}})}class sn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const bf=/^\{\{\s*([\w.]+)\s*\}\}$/,Ef=/\{\{\s*([\w.]+)\s*\}\}/g,_f=/\$[A-Za-z_][\w]*\.[\w.]+/;function Af(e,t,n={}){return we(e,t,n)}function we(e,t,n={}){return typeof e=="string"?Sf(e,t,n):Array.isArray(e)?e.map(r=>we(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,we(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Sf(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(_f);if(s)throw new sn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(bf);if(o){const s=jn(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Ef,(s,i)=>{const a=jn(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function jn(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new sn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return If(e,t)}function If(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Tf=new Set(["filled","empty"]);function Cf(){return{kind:"rule",op:"==",varPath:"",value:""}}const vf=new Set(["==","!=",">","<",">=","<="]);function it(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Gn(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Os(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=Mt(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function Mt(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=Mt(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(it(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=Mt(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!it(s)||!Gn(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(vf.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!it(o)||!Gn(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function Ee(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?Ee(e.children[0]):{[e.op]:e.children.map(Ee)}:e.kind==="not"?{"!":Ee(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 Of(e){const t=Os(e);return t&&Rt(t)||null}function Rt(e){if(e.kind==="group"){const t=e.children.map(Rt).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${Rt(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 at=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function kf(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 u=t,c=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(u=Number(d),c=l===void 0?u:Number(l),!Number.isInteger(u)||!Number.isInteger(c)||(l===void 0&&i!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let d=u;d<=c;d+=a)r.add(d)}return r.size?r:null}function an(e){const t=e.trim().split(/\s+/);if(t.length!==at.length)return null;const n=[];for(let u=0;u<at.length;u++){const c=at[u],d=t[u];if(!c||d===void 0)return null;const l=kf(d,c.min,c.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 Mf(e){return an(e)!==null}function ks(e,t){const n=an(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 Ms="@schedule",Nt=3;function Rs(e,t,n){const r=[],o=e.depth??0;if(o>=Nt)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${Nt})`}))};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!==Ms){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const u=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(u)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!ks(a.trigger.cron,new Date(u))){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 Rf(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Nf(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Rs(n,r,t),i=o.flatMap(c=>c.rule.then.map(d=>d.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((c,d)=>c===a[d]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function Df(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Ns(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Df(e,n))}function wf(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Ns(r,t).length)?"corrected":"kept"}function xf(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Lf(e){return`subject.${e.path}`}function Pf(e,t){return e.events.find(n=>n.name===t)}function $f(e,t){return e.filter(n=>ps(t,n.path)===void 0).map(n=>n.path)}const Dt=6e4,Kf=36e5,se=864e5,Ds=800;function Vn(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*se+Kf}function Uf(e){const t=new Date(e).getUTCFullYear();return e>=Vn(t,2)&&e<Vn(t,9)}function ws(e,t){const n=t.dst==="eu"&&Uf(e)?60:0;return(t.utcOffsetMinutes+n)*Dt}function Bf(e){return(e+3)%7+1}function xs(e,t){const n=ws(e,t),r=e+n,o=Math.floor(r/se);if(!t.days.includes(Bf(o)))return null;const s=o*se;return{open:s+t.fromMinutes*Dt-n,close:s+t.toMinutes*Dt-n}}function Ls(e,t){const n=ws(e,t),r=e+n;return(Math.floor(r/se)+1)*se-n}function xe(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Ds&&o<t;s++){const i=xs(o,n);if(i){const a=Math.max(o,i.open),u=Math.min(t,i.close);u>a&&(r+=u-a)}o=Ls(o,n)}return r}function He(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Ds;s++){const i=xs(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const u=i.close-a;if(r<=u)return a+r;r-=u}}o=Ls(o,n)}return e+t}function Ff(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const Le=1,Pe=2,$e=4;function jf(e){return e==="snoozed"?Le:Pe}function ze(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Gf=["speed_of_answer","first_response","next_response","resolution","close"],Vf=["snoozed","waiting_for_customer"],Wf=6e4,Ps=["speed_of_answer","first_response","next_response"],Hf=[...Ps,"resolution","close"];function ue(e){return e.state==="running"||e.state==="paused"}function zf(e,t){return ue(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Wn(e){return ue(e)?{state:"void"}:null}function Yf(e,t,n,r){if(!ue(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:xe(n,e.dueAt,r)}}function qf(e,t,n,r){if(!ue(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:He(n,e.remainingMs,r)}}function Xf({event:e,at:t,now:n,clocks:r,profile:o}){const s=ze(o),i=Math.min(t,n),a=r.map(m=>({...m})),u=[],c=(m,h)=>{h&&(u.push({op:"patch",clockId:m.id,patch:h}),Object.assign(m,h))},d=m=>{for(const h of a)h.metric===m&&c(h,zf(h,i))},l=m=>{for(const h of a)m.includes(h.metric)&&c(h,Wn(h))},f=m=>{for(const h of a)c(h,Yf(h,m,i,s))},g=m=>{for(const h of a)c(h,qf(h,m,i,s))},b=m=>a.reduce((h,y)=>y.metric===m?Math.max(h,y.attempt):h,0)+1,p=m=>a.some(h=>h.metric===m&&ue(h)),A=(m,h)=>{const y=o.targets.find(k=>k.metric===m);if(!y)return;const S=y.minutes*Wf;u.push({op:"start",metric:m,attempt:b(m),startedAt:h,targetMs:S,dueAt:He(h,S,s)})};switch(e){case"apply":{for(const m of a)m.profileId!==o.id&&c(m,Wn(m));for(const m of o.targets){if(m.metric==="next_response")continue;a.some(y=>y.metric===m.metric&&y.profileId===o.id)||A(m.metric,i)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(Pe);break}case"inbound":{g(Pe),!p("first_response")&&!p("next_response")&&A("next_response",i);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Ps);break;case"reopened":p("resolution")||A("resolution",i),p("close")||A("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(Le);break;case"unsnoozed":g(Le);break;case"hold":f($e);break;case"unhold":g($e);break;case"discarded":l(Hf);break}return u}function $s(e){return e.state==="running"||e.state==="paused"}function Zf(e){return(e.pauseBits&$e)!==0}function Ke(e,t){const n=ze(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-xe(e.dueAt,t,n):xe(t,e.dueAt,n)}function Jf(e,t){return e.state==="paused"?He(t,e.remainingMs,ze(e)):e.dueAt}function Qf(e,t){const n=e.filter($s);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>Ke(i,t)<Ke(s,t)?i:s)}function ep(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=Ke(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function tp(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 Ks="strategy_item";function cn(e){return`${Ks}:${e}`}function np(e,t=25){const n=new Set([cn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function rp(e){return e?[...e.ancestorKeys??[],cn(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"}],Us=999,Bs=7;function Fs(e,t=le){return t.find(n=>n.key===e)}function Ue(e,t=le){return Fs(e,t)?.order??Us}function op(e,t,n=le){return Ue(t,n)<=Ue(e,n)}function sp(e,t=le){const n=Ue(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function ip(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 wt={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function ap(e){return wt[e]??"open"}function cp(e){return Object.keys(wt).filter(t=>e.includes(wt[t]))}const up=864e5,Ye=e=>e<=0?0:e>1?1:e;function lp(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)?Ye((t-r)/i):s?1:0}function dp(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Ye((t-n)/(r-n))}const js=.1,Gs=.25;function fp(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=Gs?"off_track":n>=js?"at_risk":"on_track"}function pp(e,t){if(t)return Ye(e/t)}function mp(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Ye(t.reduce((n,r)=>n+r,0)/t.length)}function gp(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Bs)*up,o=t-n-r;return o>0?o:0}function hp(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function yp(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 bp(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Ep(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 _p(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Ap(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 Vs(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Sp(e,t){const n=Vs(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 Ip(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Tp(e){return e.filter(t=>!t.archived).sort(Ws)}function Ws(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Hs=20,zs=20,_e=300;function V(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Ys(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=_e)return t;const n=t.slice(0,_e),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>_e*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function Cp(e,t){const n=Ys(t.text),r=V(n);if(!r||(e.examples??[]).some(i=>V(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>V(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},Hn(i)}return Hn([{...t,text:n},...o]).slice(0,zs)}function Hn(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function vp(e,t){const n=V(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>V(s)===n)?r:[...r,t].slice(-Hs),exampleCandidates:qs(e,t)}}function qs(e,t){const n=V(t);return(e.exampleCandidates??[]).filter(r=>V(r.text)!==n)}function Xs(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Op(e,t){return e.filter(n=>Xs(n,t))}const qe=[{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","delivered","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["delivered","cancelled"],delivered:["confirmed"]},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"],open:["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"],open:["cancelled"]},convertsTo:[],credits:"invoice"}],un=["quote","order","invoice","credit_note"];function kp(){const e=new Map;for(const t of qe)un.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function w(e){return qe.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Mp={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function Zs(e,t){return w(e).transitions[t]??[]}function Rp(e,t,n){return Zs(e,t).includes(n)}const Js=["invoice","credit_note"];function Np(e){return!!e.issuedAt&&Js.includes(e.kindKey)}function Dp(e,t,n="sales"){const r=a=>e.totals?.byRate?.find(u=>u.taxRateKey===a),o=t?.address,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),i=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${e.businessEntityId}/${w(e.kindKey).path}/${e.id}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId??"",...e.number?{number:e.number}:{},counterparty:{companyId:e.companyId,name:t?.name??"",...t?.vatNumber?{vatNumber:t.vatNumber}:{},...t?.kvkNumber?{kvkNumber:t.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:q(e.issuedAt??Date.now()),...i?{taxPointDate:q(i)}:{},...e.dueAt?{dueDate:q(e.dueAt)}:{},currency:e.currency,lines:e.lines.filter(a=>a.kind==="product"&&!a.optional).map(a=>{const u=e.taxOverrideKey??a.taxRateKey,c=r(u);return{description:a.name,netCents:a.netCents,taxCents:a.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...a.ledgerCategoryKey?{ledgerCategoryKey:a.ledgerCategoryKey}:{},...a.productId?{productId:a.productId}:{},...a.dealItemId?{dimensions:{dealItemId:a.dealItemId}}:{}}}),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 ln(e){return e.issuedAt!=null}const wp=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function xp(e){return ln(e)&&w(e.kindKey).numbered&&!e.number}const Lp=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],Pp=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function $p(e,t){if(!un.includes(t)||!w(e.kindKey).convertsTo.includes(t))return!1;const n=w(t);return!n.credits||n.credits===e.kindKey&&ln(e)}function Qs(e,t){const n=w(t).signFlip!==w(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...i})=>({...i,quantity:n?-i.quantity:i.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,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:r,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 Kp(e){return{...Qs(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 Up(e,t={}){const n=w(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:jp(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:H(e.issuedAt),valid_until:H(e.expiresAt),due_date:H(e.dueAt),delivery_date:H(e.deliveredAt),period_from:H(e.periodFrom),period_to:H(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:B(r.netCents),tax:B(r.taxCents),gross:B(r.grossCents)}}}function Bp(e,t=[],n=ei){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=a=>t.find(u=>u.key===a)?.percent??0,s={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},{label:n.net,align:"right"}],rows:(e.lines??[]).map(a=>a.kind==="text"?[a.name,"","",""]:[Fp(a.name,a.description,a.optional,n.optional),Gp(a.quantity),B(a.unitPriceCents),B(a.netCents)])},i={block_id:"totals",type:"totals",rows:[{label:n.net,amount:B(r.netCents)},{label:n.gross,amount:B(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(a=>({label:`${n.tax} ${a.percent??o(a.taxRateKey)}%`,amount:B(a.taxCents)}))};return{lines:[s],totals:[i]}}const ei={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",net:"Netto",tax:"Btw",gross:"Totaal"};function Fp(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function jp(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Gp(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function H(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 ti(e){const t=w(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Wp[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 ${w(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:zn[n]??zn.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:"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:Yn[n]??Yn.quote}]}const Vp=e=>({note:{key:`${w(e).key}.note`,exists:!0},period:{key:`${w(e).key}.period_from`,exists:!0}}),Wp={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},zn={quote:`Beste {customer.contact},
|
|
13
13
|
|
|
14
14
|
Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
|
|
15
15
|
|
|
@@ -17,34 +17,34 @@ 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.`},zn={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."},Lp=qs("quote"),Pp={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},$p=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function Zs(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((a,u)=>a.level-u.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=$p(X(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}function Kp(e,t,n){const r=[],o=[];for(const s of e){const i=Zs(s,t,n);i==="done"?o.push(s):i&&r.push(i)}return{due:r,waiting:o}}const Js=Xe.map(e=>e.key),Qs="product",ei="agreement";function ti(e,t){return`${e}:${t}`}function Up(e){return`${Qs}:${e}`}function Bp(e,t){const n=e.businessEntityId||t;if(n)return`/apps/sales/${n}/${x(e.kindKey).path}/${e.id}`}function Fp(e,t){const n=e.businessEntityId||t;return n?`/apps/sales/${n}/product/${e.id}`:void 0}function jp(e){return`${ei}:${e}`}function Gp(e,t){const n=e.businessEntityId||t;return n?`/apps/sales/${n}/agreement/${e.id}`:void 0}function Vp(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return Js.includes(n)?e.slice(t+1):void 0}function Wp(e){const t=new Set([ti(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Hp=4;function zp(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Yp(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const Xp=["cash","credit","direct_debit","card","other"];function qp(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Zp(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Jp=[{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 dn(e){return e.settlement?.state??"unpaid"}function ni(e){const t=dn(e);return t==="paid"||t==="overpaid"}function fn(e){return!!e.issuedAt&&e.status==="open"&&!ni(e)}function Qp(e,t){return!fn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function em(e){return e.totals?.grossCents??0}function tm(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 nm(e,t,n){const r=em(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const ri=["current","d1_30","d31_60","d61_90","d90_plus"],rm=864e5;function om(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/rm)}function sm(e,t){if(!fn(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?om(X(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...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:dn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function oi(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function im(e){const t=Object.fromEntries(ri.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[oi(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const am="receivables.company";function cm(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 um(e){return e.type==="agent"}const si=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function lm(e){return si.includes(e)}const dm="WORK_COMMENT_ADDED",fm="WORK_ITEM_ASSIGNED",pm="WORK_ITEM_STATUS_CHANGED";function mm(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))/go)}function gm(e,t){if(e.closedAt!=null)return{score:G,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:G,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(oe[s]>0&&(r+=oe[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=mm(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 qe=[{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"}],hm=qe.map(e=>e.key);function ym(e){return e?.types?.length?e.types:qe}function bm(e,t){return t.find(n=>n.key===e)}function Em(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 _m(...e){return e.map(t=>qe.find(n=>n.key===t)).filter(t=>!!t)}const ii="work_item",ai="work_project",ci="work_activity",Am="work_cycle";function ui(e){return`${ii}:${e}`}function pn(e){return`${ai}:${e}`}function Sm(e){return`${ci}:${e}`}function Im(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Tm(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 Cm(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function vm(e,t=25){const n=new Set([ui(e.id)]);e.projectId&&n.add(pn(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 Om(e){return[pn(e.id)]}const Ze=[{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}],mn=Ze.map(e=>e.key);function li(e){return e?.statuses?.length?e.statuses:Ze}function di(e,t){return t.find(n=>n.key===e)?.category??"todo"}function km(e,t){return t.find(n=>n.key===e)}function Mm(e){const t=li(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:fi(t)[0]?.key??Ze[0].key}function fi(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Rm(e,t){return di(e,t)==="done"}function pi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Nm(e,t){const n=pi(e)||"status",r=new Set([...t,...mn]);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 Dm(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}mn.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 wm(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function xm(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}function Lm(e){return e.startDate??Number.MAX_SAFE_INTEGER}function Pm(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const $m=["statusKeys","typeKeys","labels","priority","assignees"],Km=["blockedOnly","watchingOnly","reportedByMe"],Um=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Bm=["list","board","calendar","workload"],Fm=["day","week","month"];function jm(e){const t=e;if(!t||!Fm.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 mi(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 Gm(e,t,n){const r=mi(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}const Vm=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Wm=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function gi(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Vm.has(t)?"image":t==="application/pdf"?"pdf":Wm.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ne=1024*1024,hi={image:5*ne,pdf:20*ne,text:1*ne,audio:20*ne},Hm=25*ne,zm=5;function Ym(e,t){const n=gi(e);return n==="unsupported"?"unsupported":t>hi[n]?"too-large":null}const Xm="ai-tool";function qm(e){return e.access==="read"?"idempotent":e.reversible??"none"}function gn(e){return e.access!=="read"&&e.effect!=="internal"}function yi(e){return`${e.kind}:${e.id||e.url||e.title}`}function Zm(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=yi(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const Jm="assist-source",Qm=["blocking","due","open"];function eg(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Yn={blocking:0,due:1,open:2};function tg(e,t){return Yn[e.band??"open"]-Yn[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const ng="bookable-source",rg="bookkeeping",og={get:"/bookable/get",issued:"/bookable/issued",ledgerCategories:"/bookable/ledger-categories",settled:"/bookable/settled"},sg={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 ig(e){return`oc:${e}`}function ag(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function cg(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function ug(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function bi(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>dg(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 Ei(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 lg(e,t){const n=Ei(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function dg(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function fg(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of bi(r,o))n.push({channel:r,description:o,capability:s})}return n}function pg(e,t){return t.filter(n=>n.capability.intent===e)}function _i(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function mg(e,t){return _i(e.scheme,t)}function gg(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 hg(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 yg=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function bg(e){const t=yg.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 Ai=(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))(Ai||{});const Eg={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 _g(e){return e?Eg[e]??"note":"note"}const Ag="message_window",Sg="message_templates",Ig={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Tg=(e,t)=>({intent:e,...t}),Cg="remote_search",vg="message_reactions",Og={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},kg="connector",Mg="context.collect",O=e=>({type:"string",description:e}),C=e=>({type:"number",description:e}),Ae=e=>({type:"boolean",description:e}),P=O("Sheet name. Omit for the sheet the user is looking at."),Xn=O("Slide id, as `inspect` reports it.");function T(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 re={undoable:!1,visible:!0},R={undoable:!0,visible:!0},qn={undoable:!1,visible:!0},Be={undoable:!1,visible:!1},Rg=[T("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:C("1-based page number.")},["page"],re),T("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:O("Text to find."),next:Ae("Jump to the next match instead of the first.")},["query"],re),T("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"],re),T("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:O("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"],R),T("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"],qn),T("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],qn),T("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:C("1-based page number."),text:O("The note's text."),left:C("Distance from the left edge, in PDF points (72 per inch)."),top:C("Distance from the top edge, in PDF points."),width:C("Box width in points. Omit for a sensible default."),height:C("Box height in points. Omit for a sensible default."),fontSize:C("Font size in points. Omit for 12.")},["page","text","left","top"],Be),T("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:C("1-based page number."),text:O("The exact phrase to highlight, as it appears in the page's text."),occurrence:C("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],Be)],Ng=[T("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:P,range:O("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"],R),T("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:P,range:O("A1 notation."),formula:O("Including the leading `=`.")},["range","formula"],R),T("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:P,range:O("A1 notation."),bold:Ae("Bold on or off."),italic:Ae("Italic on or off."),fontSize:C("Point size."),fontColor:O("CSS colour, e.g. `#b91c1c`."),background:O("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:O("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],R),T("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:P,at:C("1-based row number to insert before."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:P,at:C("1-based first row to delete."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:P,at:C("1-based column number to insert before."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:P,at:C("1-based first column to delete."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:P,range:O("A1 notation.")},["range"],R),T("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:P,range:O("A1 notation.")},["range"],R),T("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:P,range:O("A1 notation covering the rows to sort, header excluded."),column:C("1-based column *within the range*, not within the sheet."),ascending:Ae("Ascending. Omit for ascending.")},["range","column"],R),T("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:O("Name for the new sheet.")},["name"],R),T("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:O("Current name."),name:O("New name.")},["sheet","name"],R),T("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:O("Name of the sheet to delete.")},["sheet"],R),T("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:P,range:O("A1 notation to select. Omit to only switch sheets.")},[],re)],Dg=[T("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:C("The offset the paragraph starts at, exactly as `inspect` prints it."),text:O("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],R),T("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:C("Character offset where the replaced text starts, as `inspect` reports offsets."),end:C("Character offset just past the last character to replace."),text:O("The replacement text. A newline starts a new paragraph.")},["start","end","text"],R),T("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:C("Character offset, as `inspect` reports offsets."),text:O("The text to insert.")},["index","text"],R),T("word.appendText",["word"],"Add text at the end of the document.",{text:O("The text to append.")},["text"],R),T("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:O("Paragraph text. Newlines start further paragraphs."),index:C("Character offset to insert at. Omit for the end of the document.")},[],R),T("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:C("Start character offset."),end:C("End character offset. Omit for a caret.")},["start"],re)],wg=[T("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Xn,element:O("Element id, as `inspect` reports it."),text:O("The new text.")},["slide","element","text"],Be),T("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:Xn,element:O("Element id."),left:C("Distance from the left edge, in pixels."),top:C("Distance from the top edge, in pixels."),width:C("Width in pixels."),height:C("Height in pixels.")},["slide","element"],Be)],hn=[...Rg,...Ng,...Dg,...wg];function xg(e){return hn.filter(t=>t.kinds.includes(e))}function Lg(e){return hn.find(t=>t.op===e)}const Zn=/(?: {2,}|\\)$/,Pg=/^\*\*([^*]+)\*\*\s+(.*)$/;function Jn(e){const t=Pg.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function $g(e){const t=(e??"").replace(/\r\n/g,`
|
|
20
|
+
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},Yn={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."},Hp=ti("quote"),zp={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},Yp=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ni(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((a,u)=>a.level-u.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=Yp(q(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}function qp(e,t,n){const r=[],o=[];for(const s of e){const i=ni(s,t,n);i==="done"?o.push(s):i&&r.push(i)}return{due:r,waiting:o}}const ri=qe.map(e=>e.key),oi="product",si="agreement";function ii(e,t){return`${e}:${t}`}function Xp(e){return`${oi}:${e}`}function Zp(e,t){const n=e.businessEntityId||t;if(n)return`/apps/sales/${n}/${w(e.kindKey).path}/${e.id}`}function Jp(e,t){const n=e.businessEntityId||t;return n?`/apps/sales/${n}/product/${e.id}`:void 0}function Qp(e){return`${si}:${e}`}function em(e,t){const n=e.businessEntityId||t;return n?`/apps/sales/${n}/agreement/${e.id}`:void 0}function tm(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return ri.includes(n)?e.slice(t+1):void 0}function nm(e){const t=new Set([ii(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const rm=4;function om(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function sm(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const im=["cash","credit","direct_debit","card","other"];function am(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function cm(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const um=[{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 dn(e){return e.settlement?.state??"unpaid"}function ai(e){const t=dn(e);return t==="paid"||t==="overpaid"}function fn(e){return!!e.issuedAt&&e.status==="open"&&!ai(e)}function lm(e,t){return!fn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function dm(e){return e.totals?.grossCents??0}function fm(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 pm(e,t,n){const r=dm(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const ci=["current","d1_30","d31_60","d61_90","d90_plus"],mm=864e5;function gm(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/mm)}function hm(e,t){if(!fn(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?gm(q(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...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:dn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function ui(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function ym(e){const t=Object.fromEntries(ci.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[ui(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const bm="receivables.company";function Em(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 _m(e){return e.type==="agent"}const li=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Am(e){return li.includes(e)}const Sm="WORK_COMMENT_ADDED",Im="WORK_ITEM_ASSIGNED",Tm="WORK_ITEM_STATUS_CHANGED";function Cm(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))/bo)}function vm(e,t){if(e.closedAt!=null)return{score:G,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:G,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(oe[s]>0&&(r+=oe[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=Cm(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 Xe=[{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"}],Om=Xe.map(e=>e.key);function km(e){return e?.types?.length?e.types:Xe}function Mm(e,t){return t.find(n=>n.key===e)}function Rm(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 Nm(...e){return e.map(t=>Xe.find(n=>n.key===t)).filter(t=>!!t)}const di="work_item",fi="work_project",pi="work_activity",Dm="work_cycle";function mi(e){return`${di}:${e}`}function pn(e){return`${fi}:${e}`}function wm(e){return`${pi}:${e}`}function xm(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Lm(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 Pm(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function $m(e,t=25){const n=new Set([mi(e.id)]);e.projectId&&n.add(pn(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 Km(e){return[pn(e.id)]}const Ze=[{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}],mn=Ze.map(e=>e.key);function gi(e){return e?.statuses?.length?e.statuses:Ze}function hi(e,t){return t.find(n=>n.key===e)?.category??"todo"}function Um(e,t){return t.find(n=>n.key===e)}function Bm(e){const t=gi(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:yi(t)[0]?.key??Ze[0].key}function yi(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Fm(e,t){return hi(e,t)==="done"}function bi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function jm(e,t){const n=bi(e)||"status",r=new Set([...t,...mn]);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 Gm(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}mn.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 Vm(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function Wm(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 Hm=["day","week","month"];function zm(e){const t=e;if(!t||!Hm.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 Ei(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 Ym(e,t,n){const r=Ei(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function qm(e){return e.startDate??Number.MAX_SAFE_INTEGER}function Xm(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const Zm=["statusKeys","typeKeys","labels","priority","assignees"],Jm=["blockedOnly","watchingOnly","reportedByMe"],Qm=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],eg=["list","board","calendar","workload"],tg=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),ng=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function _i(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?tg.has(t)?"image":t==="application/pdf"?"pdf":ng.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ne=1024*1024,Ai={image:5*ne,pdf:20*ne,text:1*ne,audio:20*ne},rg=25*ne,og=5;function sg(e,t){const n=_i(e);return n==="unsupported"?"unsupported":t>Ai[n]?"too-large":null}const ig="ai-tool";function ag(e){return e.access==="read"?"idempotent":e.reversible??"none"}function gn(e){return e.access!=="read"&&e.effect!=="internal"}function Si(e){return`${e.kind}:${e.id||e.url||e.title}`}function cg(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=Si(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const ug="assist-source",lg=["blocking","due","open"];function dg(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const qn={blocking:0,due:1,open:2};function fg(e,t){return qn[e.band??"open"]-qn[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const pg="bookable-source",mg="bookkeeping",gg={get:"/bookable/get",issued:"/bookable/issued",ledgerCategories:"/bookable/ledger-categories",settled:"/bookable/settled"},hg={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 yg(e){return`oc:${e}`}function bg(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Eg(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function _g(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ii(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>Sg(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 Ti(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 Ag(e,t){const n=Ti(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Sg(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Ig(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ii(r,o))n.push({channel:r,description:o,capability:s})}return n}function Tg(e,t){return t.filter(n=>n.capability.intent===e)}function Ci(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Cg(e,t){return Ci(e.scheme,t)}function vg(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 Og(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 kg=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Mg(e){const t=kg.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 vi=(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))(vi||{});const Rg={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 Ng(e){return e?Rg[e]??"note":"note"}const Dg="message_window",wg="message_templates",xg={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Lg=(e,t)=>({intent:e,...t}),Pg="remote_search",$g="message_reactions",Kg={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},Ug="connector",Bg="context.collect",O=e=>({type:"string",description:e}),C=e=>({type:"number",description:e}),Ae=e=>({type:"boolean",description:e}),P=O("Sheet name. Omit for the sheet the user is looking at."),Xn=O("Slide id, as `inspect` reports it.");function T(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 re={undoable:!1,visible:!0},R={undoable:!0,visible:!0},Zn={undoable:!1,visible:!0},Be={undoable:!1,visible:!1},Fg=[T("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:C("1-based page number.")},["page"],re),T("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:O("Text to find."),next:Ae("Jump to the next match instead of the first.")},["query"],re),T("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"],re),T("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:O("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"],R),T("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"],Zn),T("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Zn),T("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:C("1-based page number."),text:O("The note's text."),left:C("Distance from the left edge, in PDF points (72 per inch)."),top:C("Distance from the top edge, in PDF points."),width:C("Box width in points. Omit for a sensible default."),height:C("Box height in points. Omit for a sensible default."),fontSize:C("Font size in points. Omit for 12.")},["page","text","left","top"],Be),T("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:C("1-based page number."),text:O("The exact phrase to highlight, as it appears in the page's text."),occurrence:C("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],Be)],jg=[T("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:P,range:O("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"],R),T("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:P,range:O("A1 notation."),formula:O("Including the leading `=`.")},["range","formula"],R),T("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:P,range:O("A1 notation."),bold:Ae("Bold on or off."),italic:Ae("Italic on or off."),fontSize:C("Point size."),fontColor:O("CSS colour, e.g. `#b91c1c`."),background:O("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:O("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],R),T("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:P,at:C("1-based row number to insert before."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:P,at:C("1-based first row to delete."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:P,at:C("1-based column number to insert before."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:P,at:C("1-based first column to delete."),count:C("How many. Omit for 1.")},["at"],R),T("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:P,range:O("A1 notation.")},["range"],R),T("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:P,range:O("A1 notation.")},["range"],R),T("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:P,range:O("A1 notation covering the rows to sort, header excluded."),column:C("1-based column *within the range*, not within the sheet."),ascending:Ae("Ascending. Omit for ascending.")},["range","column"],R),T("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:O("Name for the new sheet.")},["name"],R),T("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:O("Current name."),name:O("New name.")},["sheet","name"],R),T("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:O("Name of the sheet to delete.")},["sheet"],R),T("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:P,range:O("A1 notation to select. Omit to only switch sheets.")},[],re)],Gg=[T("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:C("The offset the paragraph starts at, exactly as `inspect` prints it."),text:O("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],R),T("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:C("Character offset where the replaced text starts, as `inspect` reports offsets."),end:C("Character offset just past the last character to replace."),text:O("The replacement text. A newline starts a new paragraph.")},["start","end","text"],R),T("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:C("Character offset, as `inspect` reports offsets."),text:O("The text to insert.")},["index","text"],R),T("word.appendText",["word"],"Add text at the end of the document.",{text:O("The text to append.")},["text"],R),T("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:O("Paragraph text. Newlines start further paragraphs."),index:C("Character offset to insert at. Omit for the end of the document.")},[],R),T("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:C("Start character offset."),end:C("End character offset. Omit for a caret.")},["start"],re)],Vg=[T("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Xn,element:O("Element id, as `inspect` reports it."),text:O("The new text.")},["slide","element","text"],Be),T("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:Xn,element:O("Element id."),left:C("Distance from the left edge, in pixels."),top:C("Distance from the top edge, in pixels."),width:C("Width in pixels."),height:C("Height in pixels.")},["slide","element"],Be)],hn=[...Fg,...jg,...Gg,...Vg];function Wg(e){return hn.filter(t=>t.kinds.includes(e))}function Hg(e){return hn.find(t=>t.op===e)}const Jn=/(?: {2,}|\\)$/,zg=/^\*\*([^*]+)\*\*\s+(.*)$/;function Qn(e){const t=zg.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Yg(e){const t=(e??"").replace(/\r\n/g,`
|
|
21
21
|
`).split(`
|
|
22
|
-
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,g)=>{r&&r.style!==f&&o(),r?r.items.push(
|
|
22
|
+
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,g)=>{r&&r.style!==f&&o(),r?r.items.push(Qn(g)):r={style:f,items:[Qn(g)]}};let i=[],a=[];const u=()=>{if(i.length){const f=i.join("").trim();f&&n.push({type:"paragraph",text:f}),i=[]}},c=()=>{a.length&&(n.push({type:"quote",text:a.join(`
|
|
23
23
|
`)}),a=[])},d=()=>{u(),c(),o()};let l=0;for(;l<t.length;){const f=t[l]??"",g=f.match(/^```(\w*)\s*$/);if(g){d();const m=[];for(l++;l<t.length&&!/^```\s*$/.test(t[l]??"");)m.push(t[l]??""),l++;l++,n.push({type:"code",...g[1]?{lang:g[1]}:{},text:m.join(`
|
|
24
|
-
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){d(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),l++;continue}const p=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(p){d(),n.push({type:"image",url:p[2],...p[1]?{alt:p[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(f)){u(),o(),a.push(f.replace(/^>\s?/,"")),l++;continue}if(f.trim()===""){d(),l++;continue}c(),o();const
|
|
25
|
-
`:" ")),l++}return d(),n}function
|
|
24
|
+
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){d(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),l++;continue}const p=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(p){d(),n.push({type:"image",url:p[2],...p[1]?{alt:p[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(f)){u(),o(),a.push(f.replace(/^>\s?/,"")),l++;continue}if(f.trim()===""){d(),l++;continue}c(),o();const A=Jn.test(f);i.push(f.replace(Jn,"").trim()+(A?`
|
|
25
|
+
`:" ")),l++}return d(),n}function qg(e,t){return Ft(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
26
|
|
|
27
|
-
`).trim()}const Ug="documents.describe",Bg="documents.inspect",Fg="documents.apply";function jg(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 Gg="installation-id";function Vg(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}const Wg="notification-source",Hg=(e,t)=>`${e}.pref.${t}`,zg={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"]},yn=9e4,Si=["out_of_office"],Ii=e=>Si.includes(e);function Yg(e,t,n){const r=n-e<yn,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&&!Ii(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function Xg(e,t){const n=t-e.lastSeenAt<yn,r=n||Ii(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function qg(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 Zg(e){return e.providerAvailable&&e.allowed}const Jg="resources.describe",Qg="resources.search",eh="resources.resolve",th="resources.attached";function nh(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const rh="/provider/scope/related",oh="/provider/scope/read",sh="/provider/scope/acts",bn="auth";function En(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function ih(e){const t=En(e);return t?t!==bn:typeof e=="string"&&(e.startsWith("/wake")||Ti(e))}const ie="/settings";function Ti(e){return typeof e=="string"&&(e===ie||e.startsWith(`${ie}/`))}function ah(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?ie:`${ie}/${e.slice(0,t)}/${e.slice(t+1)}`}function ch(e){return typeof e!="string"||e===""||e==="/"?!0:En(e)===bn}function uh(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ci(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${uh(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function vi(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),u=r[i];u&&(o[a]=u)}}),o}function Oi(e){return e.publicBasePath??`/apps/${e.name}`}function lh(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Oi(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 ki(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 Mi(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ci(r.pattern).test(e)&&(!n||ki(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...vi(n.pattern,e)}}:null}function dh(e,t){return Mi(e,t)!==null}const fh=10*1024*1024,ph=25*1024*1024,mh="sync-target",gh=20;function _n(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 Ri(e,t,n){return _n(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?gn(e):!0:!1}function hh(e){return e.produces==="draft"}function yh(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"&&_n(e)||t.mode==="draft"&&(gn(e)||e.access!=="read"&&!hh(e))?"hidden":t.gate&&Ri(e,t.gate,t.policy)?"held":"free"}const bh={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]"]},Ni=e=>{let t=e;return Object.values(bh).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Di=6e4,wi=8e3,xi=2,Li=.4,Eh=3,_h=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 Pi(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Eh||_h.has(n)||t.add(n);return[...t]}function $i(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 Ki(e,t=Di){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=>Ni(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Ui=60;function Ah(e,t,n=Ui){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 Sh(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<wi)return{trigger:!1,reason:"too_soon"};const o=Ki(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<xi)return{trigger:!1,reason:"too_few_new"};const i=Pi(o.text);return i.length?r.lastQueryTerms?.length&&$i(i,r.lastQueryTerms)<Li?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const Ih=["personal","organization","connections","flows","work","administration","ai"],Th="navNotice",Je={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}},Bi="NL",Ch=15,vh=8,Oh=Array.from(new Set(Object.values(Je).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Qn(e){if(e)return Je[e.trim().toUpperCase()]}function Se(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function er(e){if(e.length>Ch)return null;for(const t of Oh){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Je)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Se(s,r))return`+${t}${s}`}return null}return e.length<vh?null:`+${e}`}function kh(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 Mh(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 xt(e,t){if(!e)return null;const n=kh(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return er(o);if(o.startsWith("00"))return er(o.slice(2));const s=Qn(t)??Qn(Bi);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return Se(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(Se(a,s))return`+${s.callingCode}${a}`}return!i&&Se(o,s)?`+${s.callingCode}${o}`:null}function Rh(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function An(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 Nh(e){const t=An(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Dh=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Fi(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 Dh.has(n)&&t.length>=3?t.slice(-3).join("."):n}const ji=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 wh(e){const t=Fi(e);return t?ji.has(t):!1}function xh(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Lh(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=xt(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=xt(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=An(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const Ph=[/<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],tr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,$h=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Kh(e){const t=e.split(`
|
|
28
|
-
`);for(let n=0;n<t.length;n++)if(
|
|
29
|
-
`).trim();return e}const
|
|
27
|
+
`).trim()}const Xg="documents.describe",Zg="documents.inspect",Jg="documents.apply";function Qg(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 eh="installation-id";function th(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}const nh="notification-source",rh=(e,t)=>`${e}.pref.${t}`,oh={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"]},yn=9e4,Oi=["out_of_office"],ki=e=>Oi.includes(e);function sh(e,t,n){const r=n-e<yn,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&&!ki(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function ih(e,t){const n=t-e.lastSeenAt<yn,r=n||ki(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function ah(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 ch(e){return e.providerAvailable&&e.allowed}const uh="resources.describe",lh="resources.search",dh="resources.resolve",fh="resources.attached";function ph(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const mh="/provider/scope/related",gh="/provider/scope/read",hh="/provider/scope/acts",bn="auth";function En(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}function yh(e){const t=En(e);return t?t!==bn:typeof e=="string"&&(e.startsWith("/wake")||Mi(e))}const ie="/settings";function Mi(e){return typeof e=="string"&&(e===ie||e.startsWith(`${ie}/`))}function bh(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?ie:`${ie}/${e.slice(0,t)}/${e.slice(t+1)}`}function Eh(e){return typeof e!="string"||e===""||e==="/"?!0:En(e)===bn}function _h(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ri(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${_h(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function Ni(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),u=r[i];u&&(o[a]=u)}}),o}function Di(e){return e.publicBasePath??`/apps/${e.name}`}function Ah(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Di(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 wi(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 xi(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ri(r.pattern).test(e)&&(!n||wi(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...Ni(n.pattern,e)}}:null}function Sh(e,t){return xi(e,t)!==null}const Ih=10*1024*1024,Th=25*1024*1024,Ch="sync-target",vh=20;function _n(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 Li(e,t,n){return _n(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?gn(e):!0:!1}function Oh(e){return e.produces==="draft"}function kh(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"&&_n(e)||t.mode==="draft"&&(gn(e)||e.access!=="read"&&!Oh(e))?"hidden":t.gate&&Li(e,t.gate,t.policy)?"held":"free"}const Mh={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]"]},Pi=e=>{let t=e;return Object.values(Mh).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},$i=6e4,Ki=8e3,Ui=2,Bi=.4,Rh=3,Nh=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 Fi(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Rh||Nh.has(n)||t.add(n);return[...t]}function ji(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 Gi(e,t=$i){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=>Pi(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Vi=60;function Dh(e,t,n=Vi){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 wh(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<Ki)return{trigger:!1,reason:"too_soon"};const o=Gi(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<Ui)return{trigger:!1,reason:"too_few_new"};const i=Fi(o.text);return i.length?r.lastQueryTerms?.length&&ji(i,r.lastQueryTerms)<Bi?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const xh=["personal","organization","connections","flows","work","administration","ai"],Lh="navNotice",Je={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}},Wi="NL",Ph=15,$h=8,Kh=Array.from(new Set(Object.values(Je).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function er(e){if(e)return Je[e.trim().toUpperCase()]}function Se(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function tr(e){if(e.length>Ph)return null;for(const t of Kh){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Je)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Se(s,r))return`+${t}${s}`}return null}return e.length<$h?null:`+${e}`}function Uh(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 Bh(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 xt(e,t){if(!e)return null;const n=Uh(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return tr(o);if(o.startsWith("00"))return tr(o.slice(2));const s=er(t)??er(Wi);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return Se(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(Se(a,s))return`+${s.callingCode}${a}`}return!i&&Se(o,s)?`+${s.callingCode}${o}`:null}function Fh(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function An(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 jh(e){const t=An(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Gh=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Hi(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 Gh.has(n)&&t.length>=3?t.slice(-3).join("."):n}const zi=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 Vh(e){const t=Hi(e);return t?zi.has(t):!1}function Wh(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Hh(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=xt(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=xt(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=An(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const zh=[/<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],nr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,Yh=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function qh(e){const t=e.split(`
|
|
28
|
+
`);for(let n=0;n<t.length;n++)if(Yh.test(t[n])||nr.test(t[n])&&t.slice(n+1,n+4).some(r=>nr.test(r)))return t.slice(0,n).join(`
|
|
29
|
+
`).trim();return e}const Xh=/^(?:https?:|mailto:|tel:)/i,Zh=/^(?:https?:|cid:|data:image\/)/i;function ct(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const Jh=/(!\[[^\]]*\]\([^)]*\))/;function rr(e){return e.replace(/\s+/g," ").trim().split(Jh).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function ut(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Qh(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=ct(r,"src");return Zh.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=rr(o.replace(/<[^>]*>/g,"")),i=ct(r,"href");return Xh.test(i)?`[${s||ut(i)}](${ut(i)})`:s})}const ey=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,ty=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,ny=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function ry(e,t){return/<table\b/i.test(e)||e.includes(`
|
|
30
30
|
|
|
31
|
-
|`)||t.includes("![")||t.length>200}const
|
|
31
|
+
|`)||t.includes("![")||t.length>200}const oy=40,sy={left:"---",center:":---:",right:"---:"};function iy(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function ay(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function cy(e){const t=[];for(const i of e.matchAll(ty)){const a=[];for(const u of i[1].matchAll(ny)){const c=ay(u[3]);if(ry(u[3],c))return null;a.push({text:c,align:iy(u[2])})}if(a.length===0)return null;a.some(u=>u.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=>sy[i.align]).join(" | "),s=t.slice(1).map(r).join(`
|
|
32
32
|
`);return`
|
|
33
33
|
|
|
34
34
|
${r(t[0])}
|
|
35
35
|
| ${o} |
|
|
36
36
|
${s}
|
|
37
37
|
|
|
38
|
-
`}function
|
|
39
|
-
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function
|
|
38
|
+
`}function uy(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
|
|
39
|
+
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function ly(e){let t=e;for(let n=0;n<oy;n++){const r=ey.exec(t);if(!r||r.index===void 0)break;const s=cy(r[1])??`
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${uy(r[1])}
|
|
42
42
|
|
|
43
|
-
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function
|
|
44
|
-
`),t&&(n=Qh(
|
|
43
|
+
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function or(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,`
|
|
44
|
+
`),t&&(n=ly(Qh(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
|
|
45
45
|
|
|
46
46
|
`),n=n.replace(/<\/(div|li|tr)>/gi,`
|
|
47
|
-
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function
|
|
47
|
+
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function sr(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const dy={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function ir(e){return e.replace(/ /gi," ").replace(/&([a-z]+);/gi,(t,n)=>dy[n.toLowerCase()]??t).replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>sr(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>sr(parseInt(n,16))??t).replace(/&/gi,"&")}function ar(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
48
48
|
`).replace(/\n{3,}/g,`
|
|
49
49
|
|
|
50
|
-
`).trim()}const Gi=/<\s*(html|body|div|p|table|br|span)\b/i;function ty(e){return Gi.test(e)}function ny(e){return Vi(e,!1)}function ry(e){return Vi(e,!0)}function Vi(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of Ph){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=ir(sr(rr(r,t)));return o||(o=ir(sr(rr(e,t)))),Kh(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=mc;exports.ACTIVITY_CATALOG=U;exports.AGING_BUCKETS=ri;exports.AGREEMENT_SCOPE_KIND=ei;exports.AI_ATTACHMENT_LIMITS=hi;exports.AI_ATTACHMENT_MAX_PER_TURN=zm;exports.AI_ATTACHMENT_TURN_BUDGET=Hm;exports.AI_CAPABILITIES=Fe;exports.AI_TOOL_PROVIDER_GROUP=Xm;exports.AI_VENDORS=Ut;exports.ALLOWED_LINK_SCHEMES=kr;exports.APP_PERMISSIONS=zg;exports.ARTICLE_SCOPE_KIND=il;exports.ARTIFACT_MAX_BLOCKS=Ce;exports.ARTIFACT_MAX_BODY_BYTES=Or;exports.ARTIFACT_MAX_CELL_LEN=z;exports.ARTIFACT_MAX_KPI_ITEMS=Me;exports.ARTIFACT_MAX_LIST_ITEMS=ve;exports.ARTIFACT_MAX_TABLE_COLUMNS=ke;exports.ARTIFACT_MAX_TABLE_ROWS=Oe;exports.ARTIFACT_MAX_TEXT_LEN=je;exports.ASSIGNMENT_SCOPE_KIND=xr;exports.ASSIST_BANDS=Qm;exports.ASSIST_SOURCE_PROVIDER_GROUP=Jm;exports.ATTENTION_STATUSES=So;exports.AT_RISK_GAP=$s;exports.AUTH_APP_NAME=bn;exports.AUTO_READY_MIN_PROPOSALS=ys;exports.AUTO_READY_RATE=bs;exports.ActivityTypeRegistry=fr;exports.BOOKABLE_KINDS=Hs;exports.BOOKABLE_ROUTES=og;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=ng;exports.BOOKKEEPING_PROVIDER_GROUP=rg;exports.BOOKKEEPING_ROUTES=sg;exports.BUILT_IN_ONLY=la;exports.BULK_PENALTY=Io;exports.BUSINESS_ENTITY_LIST_SERVICE=Uc;exports.CADENCE_FLOOR_MS=wi;exports.CADENCE_MIN_NEW_SEGMENTS=xi;exports.CADENCE_MIN_NOVELTY=Li;exports.CADENCE_WINDOW_MS=Di;exports.CLASSIFY_VARS=Gd;exports.CLEARABLE_FIELDS=Cp;exports.COMPANY_RECEIVABLES_SERVICE=am;exports.CONNECTOR_PROVIDER_GROUP=kg;exports.CONTEXT_COLLECT_SERVICE=Mg;exports.CORE_DIMENSIONS=Va;exports.CRM_ACTIVITY_SCOPE_KIND=hu;exports.CRM_CALL_CHANNELS=bu;exports.CRM_CALL_LOGGED=so;exports.CRM_CALL_OUTCOMES=Eu;exports.CRM_NOTE_ADDED=oo;exports.CRM_STAGE_CHANGED=yu;exports.CUSTOM_RESOLUTION_PREFIX=nl;exports.CommunicationScheme=Ai;exports.DAY_MS=go;exports.DEFAULT_CHECK_IN_DAYS=Ls;exports.DEFAULT_DUNNING_POLICY=Pp;exports.DEFAULT_FORECAST_WEEKS=es;exports.DEFAULT_MEMORY_BUDGET=Vl;exports.DEFAULT_NUMBER_PADDING=Hp;exports.DEFAULT_PHONE_REGION=Bi;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Lp;exports.DEFAULT_TEMPLATE_CONDITIONS=wp;exports.DEMAND_SOURCE_PROVIDER_GROUP=id;exports.DOCUMENT_APPLY_SERVICE=Fg;exports.DOCUMENT_DESCRIBE_SERVICE=Ug;exports.DOCUMENT_INSPECT_SERVICE=Bg;exports.DOCUMENT_MAX_BLOCKS=Ce;exports.DOCUMENT_MAX_BODY_BYTES=Or;exports.DOCUMENT_MAX_CELL_LEN=z;exports.DOCUMENT_MAX_KPI_ITEMS=Me;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Et;exports.DOCUMENT_MAX_LIST_ITEMS=ve;exports.DOCUMENT_MAX_RECIPIENT_LINES=vr;exports.DOCUMENT_MAX_TABLE_COLUMNS=ke;exports.DOCUMENT_MAX_TABLE_ROWS=Oe;exports.DOCUMENT_MAX_TEXT_LEN=je;exports.DOCUMENT_MAX_TOTALS_ROWS=_t;exports.DOCUMENT_OPERATIONS=hn;exports.DRAFT_FIELDS=Tp;exports.DUTCH_SLOT_LABELS=Xs;exports.EMPTY_WORKFLOW=Hd;exports.ENABLED_TRANSACTION_KINDS=un;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=lo;exports.FEATURE_MESSAGE_REACTIONS=vg;exports.FEATURE_REMOTE_SEARCH=Cg;exports.FIXED_KINDS=We;exports.FIXED_LEVELS=le;exports.FIXED_TYPES=qe;exports.FIXED_UNITS=eu;exports.FOLLOW_UP_HOURS=To;exports.FROZEN_WRITABLE_FIELDS=Sp;exports.HOUR_MS=mo;exports.HTML_BODY_RE=Gi;exports.INELIGIBLE=G;exports.INSTALLATION_HEADER=Gg;exports.INTERACTION_KIND=fs;exports.InteractionParticipantRole=Ig;exports.KB_FALLBACK_LOCALE=Po;exports.KB_LOCALES=De;exports.LEAD_STATUSES=lu;exports.LEDGER_TEMPLATES=Rl;exports.LEGAL_FORMS=Bc;exports.LIFECYCLE_STAGES=uu;exports.LOCALES=De;exports.LOOSE_STATUSES=Ze;exports.MAIL_HINT_HEADERS=_o;exports.MANUAL_PRICE_SOURCE=Hr;exports.MAX_ACTIONS=he;exports.MAX_ASSIGNMENT_TURNS=Lr;exports.MAX_BLOCKS=lt;exports.MAX_CHOICE_OPTIONS=gt;exports.MAX_COLLECTION_DEPTH=Xt;exports.MAX_DELEGATION_DEPTH=Pr;exports.MAX_EDITABLE_FILE_BYTES=fh;exports.MAX_FIELDS=me;exports.MAX_LIST_ITEMS=ge;exports.MAX_MEMORY_BROWSE=Bl;exports.MAX_MEMORY_BUDGET=Gl;exports.MAX_MEMORY_CHARS=Fl;exports.MAX_RULE_DEPTH=Nt;exports.MAX_SCORE_LEVELS=yt;exports.MAX_SHOWN_KEYS=Ui;exports.MAX_TOPIC_CANDIDATES=js;exports.MAX_TOPIC_EXAMPLES=Fs;exports.MAX_TOPIC_EXAMPLE_CHARS=_e;exports.MAX_VIEWABLE_FILE_BYTES=ph;exports.MICROS_PER_CENT=zr;exports.MIN_MEMORY_BUDGET=jl;exports.MIN_SCORE_LEVELS=ht;exports.MODEL_TIERS=Y;exports.NAV_NOTICE_SLOT=Th;exports.NL_BV_TEMPLATE=Uo;exports.NL_PAYMENT_TERMS=Jp;exports.NL_TAX_CODES=zl;exports.NL_TAX_RATES=Hl;exports.NL_VAT_BOXES=As;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Wg;exports.OFF_TRACK_GAP=Ks;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Zl;exports.PAUSE_HOLD=$e;exports.PAUSE_SNOOZED=Le;exports.PAUSE_WAITING_FOR_CUSTOMER=Pe;exports.PAYMENT_TERM_METHODS=Xp;exports.PHONE_REGIONS=Je;exports.PLAYBOOK_RUN_APPROVAL_ACT=Rd;exports.PLAYBOOK_RUN_SCOPE_KIND=as;exports.PRESENCE_ONLINE_WINDOW_MS=yn;exports.PRESENCE_SURVIVES_OFFLINE=Si;exports.PRODUCT_SCOPE_KIND=Qs;exports.PROFILE_TOOL_DISPOSITIONS=Ql;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Sg;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Ag;exports.PUBLIC_EMAIL_DOMAINS=ji;exports.READ_STEP_TYPES=It;exports.RECEIPT_BOOK_ACT=Dc;exports.RECEIPT_SCOPE_KIND=Nc;exports.RELATED_SUBJECT_KINDS=jo;exports.REPORT_VIEW_LAYOUTS=Ga;exports.RESERVED_STATUS_KEYS=mn;exports.RESERVED_TYPE_KEYS=hm;exports.RESOURCE_ATTACHED_SERVICE=th;exports.RESOURCE_DESCRIBE_SERVICE=Jg;exports.RESOURCE_RESOLVE_SERVICE=eh;exports.RESOURCE_SEARCH_SERVICE=Qg;exports.SCHEDULE_ENTRY_SCOPE_KIND=ts;exports.SCHEDULE_EVENT=Ts;exports.SCOPE_ACTS_ROUTE=sh;exports.SCOPE_READ_ROUTE=oh;exports.SCOPE_RELATED_ROUTE=rh;exports.SEGMENT_FILTER_KEYS=fu;exports.SEGMENT_LAYOUTS=mu;exports.SEGMENT_LIST_FILTERS=no;exports.SEGMENT_PRESENCE_FILTERS=ro;exports.SEGMENT_SORT_FIELDS=pu;exports.SENDING_STALE_MS=$c;exports.SETTINGS_BASE_PATH=ie;exports.SETTINGS_CATEGORIES=Ih;exports.SIGNATURE_INTENTS=ou;exports.SLA_METRICS=Df;exports.SLA_PAUSE_REASONS=wf;exports.STATUS_NAMES=_p;exports.STEP_MAX_TOKENS_MAX=gs;exports.STEP_MAX_TOKENS_MIN=ms;exports.STEP_TYPES=Wd;exports.STRATEGY_ITEM_SCOPE_KIND=ws;exports.SUMMARY_MIN_LAST_CHARS=Eo;exports.SUMMARY_MIN_MESSAGES=bo;exports.SYNC_RUN_MAX_ERRORS=gh;exports.SYNC_TARGET_PROVIDER_GROUP=mh;exports.SYSTEM_ONE_NON_GOALS=wa;exports.SYSTEM_RESOLUTIONS=Do;exports.TERMINAL_ASSIGNMENT_STATUSES=wr;exports.TERMINAL_RUN_STATUSES=Es;exports.TRANSACTION_KINDS=Xe;exports.TRANSACTION_SCOPE_KINDS=Js;exports.TRIGGER_VARS=Fd;exports.UNARY_OPS=pf;exports.UNKNOWN_KIND=Wo;exports.UNKNOWN_LEVEL_ORDER=xs;exports.UNSUPPORTED=Og;exports.UNWORKED_RESOLUTIONS=tl;exports.USAGE_DIMENSIONS=Sr;exports.USAGE_DIMENSION_IDS=Ir;exports.USAGE_RECORDS_ROUTE=nu;exports.USAGE_SOURCE_PROVIDER_GROUP=tu;exports.UnresolvedRefError=sn;exports.WEBHOOK_EVENTS=si;exports.WORKSTREAM_SCOPE_KIND=ns;exports.WORK_ACTIVITY_SCOPE_KIND=ci;exports.WORK_AREAS=Jl;exports.WORK_COMMENT_ADDED=dm;exports.WORK_CYCLE_SYNC_KIND=Am;exports.WORK_ITEM_ASSIGNED=fm;exports.WORK_ITEM_SCOPE_KIND=ii;exports.WORK_ITEM_STATUS_CHANGED=pm;exports.WORK_PROJECT_SCOPE_KIND=ai;exports.WORK_SORT_FIELDS=Um;exports.WORK_VIEW_FLAGS=Km;exports.WORK_VIEW_LAYOUTS=Bm;exports.WORK_VIEW_LIST_FILTERS=$m;exports.W_PRIORITY=oe;exports.XAF_NAMESPACE=Bo;exports.acceptExampleCandidate=gp;exports.accountTotals=fl;exports.accountTypeOf=Ll;exports.accrualPostings=$u;exports.actingIdentityKey=ss;exports.activeWorkTypes=pp;exports.activityIconOf=qi;exports.activityJoinUrl=ia;exports.activitySnippet=lr;exports.activityTextParams=dr;exports.activityTimelineText=sa;exports.activityTimestamp=pr;exports.activityTypeInfo=w;exports.actorKey=Md;exports.addExampleCandidate=mp;exports.addMonths=ee;exports.addWorkingMs=He;exports.agePresenceEntry=Xg;exports.aggregateUsage=Yr;exports.agingBucketOf=oi;exports.agingOf=im;exports.agreementHref=Gp;exports.agreementScopeKey=jp;exports.aiAttachmentKind=gi;exports.aiAttachmentRejection=Ym;exports.aiBudgetLimit=bt;exports.aiBudgetPeriodKey=Ba;exports.aiBudgetPeriodStart=Ar;exports.aiBudgetState=Ua;exports.aiVendorAcceptsAttachment=Ka;exports.aiVendorDefaultModel=La;exports.aiVendorLabel=xa;exports.aiVendorNeedsBaseUrl=$a;exports.aiVendorsWith=Pa;exports.allocate=hr;exports.appNameFromPath=En;exports.applyApprovalDecision=rc;exports.applyRounding=cp;exports.applySignature=su;exports.approvalRate=hs;exports.artifactBodyBytes=Nr;exports.artifactOutline=Dr;exports.artifactToMarkdown=Ft;exports.assignmentMismatch=Ld;exports.assignmentScopeKey=hc;exports.assignmentSubject=Ec;exports.availabilityByPerson=sd;exports.awaitsNumber=Ip;exports.balanceSheet=hl;exports.belongsOnCalendar=ed;exports.belongsToEntity=Fc;exports.billableTimeGroups=ip;exports.billedQuantity=Zr;exports.bindParams=lf;exports.bindValue=we;exports.bookingDocumentOf=bp;exports.bookingDocumentOfReceipt=xc;exports.bookingSyncKey=Lc;exports.buildActivityPreview=ca;exports.buildChannelIntents=fg;exports.buildShareKeys=dc;exports.buildWindow=Ki;exports.businessEntitySender=co;exports.calendarDaysBetween=Ho;exports.calendarOf=ze;exports.canConvert=vp;exports.canNestUnder=ul;exports.canParent=zf;exports.canTransition=Ap;exports.canonicalJson=St;exports.capabilityDefaultFlag=Ca;exports.capacityTotal=rd;exports.capacityWeights=Cd;exports.carriesText=ta;exports.cashForecast=bl;exports.categoryLabel=dl;exports.categoryOf=di;exports.causedBy=Ef;exports.channelKindForScheme=_g;exports.channelKindOf=Zi;exports.checkInOverdueMs=op;exports.clampStepMaxTokens=Vd;exports.classifyMail=zu;exports.cleanMessageMarkdown=ry;exports.cleanMessageText=ny;exports.codeQuery=Wc;exports.codedMessage=hg;exports.columnBalance=yl;exports.companyReceivablesOf=cm;exports.compareAssistRank=tg;exports.compareWorkTypes=Bs;exports.conditionHolds=ao;exports.contactName=du;exports.copyFrom=Ys;exports.correlationKeyFor=ig;exports.countsAsPlanned=Q;exports.coverageByPerson=od;exports.coverageFor=fd;exports.coversWorkstream=Qt;exports.crmActivityAt=Au;exports.cronMatches=Is;exports.currentAccountRelation=wu;exports.currentLines=ha;exports.currentPeriod=Yp;exports.cycleDayIndex=en;exports.cycleOrder=Lm;exports.cycleState=Pm;exports.decideAssignmentState=_c;exports.decideCadence=Sh;exports.decideEach=Qa;exports.decideIncomingCall=ug;exports.decisionBand=Da;exports.defaultLocaleOf=$o;exports.defaultStatusKey=Mm;exports.defaultTemplateBlocks=qs;exports.defineIntent=Tg;exports.delegationRefusal=Ac;exports.depreciationPostings=Pu;exports.depthOf=xo;exports.derivePresence=Yg;exports.describeClause=qa;exports.describeExpression=hf;exports.digitsOf=Xr;exports.disabledIntentsFromCapabilities=lg;exports.documentBodyBytes=Nr;exports.documentKindOf=jg;exports.documentOutline=Dr;exports.documentToMarkdown=Ft;exports.documentToText=Kg;exports.driftedFields=vs;exports.dueAtOf=Ff;exports.dueCharges=_a;exports.dueDateFrom=qp;exports.dunningRunOf=Kp;exports.dunningStateOf=Zs;exports.elapsedSeconds=ap;exports.emailDomain=Nh;exports.emptyConditionLeaf=mf;exports.endpointKey=Lh;exports.entityOwnerIds=jc;exports.entryLinesOf=vl;exports.entryNumber=Al;exports.entryProblems=_l;exports.erlangC=Yo;exports.excessiveLending=xu;exports.extractParams=vi;exports.extractTerms=Pi;exports.failureLines=ku;exports.fieldVarPath=Tf;exports.fillDocument=vu;exports.fillText=io;exports.filterByEndpoint=mg;exports.filterByIntent=pg;exports.filterByTargetScheme=_i;exports.filterableDimensions=Xa;exports.findAiVendor=ae;exports.findEvent=Cf;exports.fixedLevelForName=Xf;exports.fixedTypeForName=Em;exports.fixedTypes=_m;exports.flattenLocales=Vg;exports.floorToPeriod=J;exports.forecastIntervals=Ad;exports.formatActingIdentity=os;exports.formatCents=B;exports.formatClock=lp;exports.formatHm=up;exports.formatItemKey=Im;exports.formatMicros=qc;exports.formatPeriod=Z;exports.formatSeriesNumber=zp;exports.formatSlaDuration=Vf;exports.freshSources=Zm;exports.getActivitySeenUserIds=da;exports.getContactEndpoints=cu;exports.getShortTitle=el;exports.getUrgencyScore=Qu;exports.hasReacted=rf;exports.hashedPartOf=Il;exports.healthCategory=qf;exports.healthsInCategory=Zf;exports.heightOf=qt;exports.helpCenterText=sl;exports.humanizeAction=Ud;exports.interactionIdOf=ps;exports.interestOnDailyBalance=Ru;exports.interestPeriods=Nu;exports.isAgentUser=um;exports.isAssigned=Zu;exports.isAssignmentTerminal=gc;exports.isAssignmentTrigger=us;exports.isAssistantMode=Fa;exports.isAuthoredCrmActivity=_u;exports.isAutoReady=qd;exports.isAutonomy=Pd;exports.isAwaitingThem=No;exports.isBookable=yp;exports.isChatMessageActivity=pa;exports.isClosed=Ju;exports.isConnectedType=ra;exports.isDeepLink=ih;exports.isDescendant=Lo;exports.isEligible=Bu;exports.isEmailActivity=fa;exports.isFrozen=ln;exports.isHeldClock=Bf;exports.isHtmlBody=ty;exports.isInFlight=Jd;exports.isInteractionUnseen=Ao;exports.isLandingPath=ch;exports.isLikelyBulk=yo;exports.isMessageShape=Lt;exports.isMessageType=Ji;exports.isMoreSpecificPattern=ki;exports.isNoteShape=Pt;exports.isOpenClock=Ds;exports.isOutstanding=fn;exports.isOutwardTool=gn;exports.isOverdueOn=Qp;exports.isParked=vo;exports.isPaused=_s;exports.isPlaybookAuthoredType=na;exports.isPublicEmailDomain=wh;exports.isPublicPath=dh;exports.isReminderActive=Oo;exports.isReplyableType=ea;exports.isResultAccount=ce;exports.isSettingsPath=Ti;exports.isSettled=ni;exports.isShorter=ga;exports.isSlaAtRisk=Xu;exports.isSupportedCron=bf;exports.isTerminal=Zd;exports.isThreadLongEnough=Gu;exports.isTranscriptType=oa;exports.isWebhookEvent=lm;exports.isWorkClosed=Rm;exports.isWorkTypeVisible=fp;exports.isWriteTool=_n;exports.itemDossierKeys=vm;exports.itemKeyOf=Rc;exports.judgeRuleCase=_f;exports.kindFor=K;exports.ladderFor=li;exports.ledgerRuleFor=Kc;exports.levelIn=Ps;exports.levelOrder=Ue;exports.lineNet=Vo;exports.lineStatus=gr;exports.lineTerm=$t;exports.linkLabel=ol;exports.listedTransactionKinds=Ep;exports.listeningAllowed=ja;exports.loanPostings=Lu;exports.loanSchedule=zt;exports.localeInstruction=cl;exports.localeName=al;exports.localesOf=ll;exports.looksLikeEmail=Mh;exports.lookup=Wt;exports.manualSettlement=nm;exports.marginCents=Ea;exports.markdownToDocument=$g;exports.matchApprovalPolicy=tc;exports.matchContactToIntents=gg;exports.matchPublicRoute=Mi;exports.matchRate=qr;exports.matchRules=Cs;exports.mcpCredentialScope=Kl;exports.mcpToolPrefix=Ul;exports.measureRatio=Qf;exports.mergeDefaultFlags=Oa;exports.mergeShownKeys=Ah;exports.messageCountsAs=ur;exports.metricOption=Za;exports.minutesOn=tn;exports.missingFieldPaths=vf;exports.modelAcceptsAttachment=Ma;exports.monthEnd=fo;exports.monthlyPeriods=kl;exports.mustAsk=Ri;exports.narrowAutonomy=Kd;exports.needsPhoneRegion=xh;exports.nestsUnderParent=Qi;exports.nextLevelBelow=Yf;exports.nextOccurrenceDates=Gm;exports.nextSlaClock=jf;exports.nextStatuses=zs;exports.nextVersion=Op;exports.normalizeArtifactBlocks=Rr;exports.normalizeBlocks=zi;exports.normalizeDocumentBlocks=Rr;exports.normalizeEmail=An;exports.normalizeExample=V;exports.normalizeGtin=Gr;exports.normalizeIban=to;exports.normalizeIbans=au;exports.normalizeMeter=Qr;exports.normalizeUsageSource=ru;exports.normalizeVatNumber=iu;exports.notificationPrefKey=Hg;exports.novelty=$i;exports.openCentsOf=Ic;exports.operationDescriptor=Lg;exports.operationsForKind=xg;exports.opsForFieldType=If;exports.organizationSender=Ou;exports.outcomeOf=xm;exports.overlap=Kt;exports.overlapSeconds=be;exports.overlaps=dd;exports.paceRatio=ep;exports.parkMarksById=Fu;exports.parse=Ss;exports.parseActingIdentity=Od;exports.parseAmount=ya;exports.parseCamt053=Kr;exports.parseClockMinutes=Rf;exports.parseCodedMessage=bg;exports.parseCron=an;exports.parseItemKey=Tm;exports.parseMicros=Vt;exports.parseMt940=Br;exports.parseRateCsv=Zc;exports.parseRatePrice=At;exports.parseRecurrence=jm;exports.parseStatement=Mc;exports.parseXafOpening=xl;exports.pathToRegex=Ci;exports.patternFor=rn;exports.patternStartTime=nn;exports.pauseBitFor=Nf;exports.paymentOfItem=Cc;exports.paymentStateOf=dn;exports.pendingApprovers=nc;exports.periodAt=ft;exports.periodOf=Ml;exports.periodShare=mr;exports.periodsInRange=za;exports.phoneSuffix=Rh;exports.pickMailHeaders=Vu;exports.pickTemplate=Iu;exports.placeLumps=vd;exports.plainTextFromMarkdown=ar;exports.planSlaEvent=Uf;exports.plannedBillable=pd;exports.plannedWorkTypeKey=Qo;exports.procedureOf=Yd;exports.productHref=Fp;exports.productScopeKey=Up;exports.profitAndLoss=gl;exports.projectDossierKeys=Om;exports.proposalRequestIds=ec;exports.proposeMatch=Sc;exports.publicBasePathFor=Oi;exports.publicRoutePatterns=lh;exports.quantityKey=Ta;exports.rateRecords=Qc;exports.reactionWakesAssignment=bc;exports.readDefaultFlags=va;exports.readPath=Ie;exports.readStepError=ye;exports.receiptGroupOf=wc;exports.receiptProblems=jr;exports.receiptTotals=Fr;exports.receivableRowOf=sm;exports.recencyOf=Co;exports.recipientLocale=Su;exports.reconciliationBalances=Tc;exports.refKey=ds;exports.registrableDomain=Fi;exports.rejectExampleCandidate=Vs;exports.relatedByDefault=Wl;exports.remainingMsOf=Ke;exports.repriceLines=Xc;exports.requiredAgents=Zo;exports.requirementFor=Jo;exports.resolutionsFor=rl;exports.resolveAccountCapabilities=Ei;exports.resolveActivityText=Te;exports.resolveAutonomy=$d;exports.resolveChannelIntents=bi;exports.resolvePrice=Wr;exports.resolveRateCard=zc;exports.resolveRoute=Ra;exports.resolveSignature=eo;exports.resolveTier=_r;exports.resolveWorkMode=qg;exports.resourceKindOf=nh;exports.retryDelayMinutes=Pc;exports.reversedLines=Tl;exports.rhythmOf=yr;exports.rollupChildren=rp;exports.roundHalfUp=L;exports.runActor=kd;exports.runApprovalKey=Nd;exports.runEvalSuite=Mu;exports.runIdOfApprovalRef=Dd;exports.runInteractionId=ef;exports.runKind=Xd;exports.runOutcome=Sf;exports.runSpans=Sa;exports.sanitizeInline=Mr;exports.sanitizeTranscript=Ni;exports.scheduleEntryScopeKey=Sd;exports.scoreInteraction=qu;exports.scoreWorkItem=gm;exports.segmentIsEmpty=gu;exports.selectLenses=$l;exports.serialize=Ee;exports.serviceLevel=Xo;exports.sessionsHoldCannotReach=cg;exports.sessionsToHold=ag;exports.settingsPath=ah;exports.settlementPatch=tm;exports.shadowByKey=Gc;exports.shareKeyForTeam=Gt;exports.shareKeyForUser=jt;exports.shareKeysForViewer=fc;exports.shortTermPrincipal=Uu;exports.shortfalls=md;exports.shouldRunAudioPipeline=Zg;exports.slaBadgeTone=Gf;exports.slaHoursByInbox=Yu;exports.slaHoursFor=Ro;exports.sortStatuses=fi;exports.sourceKey=yi;exports.spread=Yt;exports.spreadOverWeights=rs;exports.startingCents=Ku;exports.statusIn=km;exports.statusRequiresApproval=wm;exports.stepDate=mi;exports.stepsOf=zd;exports.strategyAncestorKeysFor=Hf;exports.strategyDossierKeys=Wf;exports.strategyItemScopeKey=cn;exports.stripHtml=cr;exports.subjectKeyOf=Qd;exports.subjectOf=on;exports.subjectRef=eg;exports.suggestProjectKey=Cm;exports.suggestedHealth=tp;exports.summariseEval=uo;exports.summarizeReactions=tf;exports.targetById=xd;exports.targetForActivityType=wd;exports.targetOrder=sp;exports.taxCodeProblem=Xl;exports.taxDateOf=X;exports.taxPercentOn=Jt;exports.taxRateFor=Go;exports.taxRatesOn=Yl;exports.termsFor=zo;exports.tieredMicros=Jr;exports.timingOf=br;exports.toActingIdentity=is;exports.toE164=xt;exports.toTransactionTerm=Zp;exports.toolBareName=ls;exports.toolDisplayName=Bd;exports.toolReversible=qm;exports.toolSourceKinds=pc;exports.toolVerdict=yh;exports.topicOfferedForTeam=Ws;exports.topicsForTeam=hp;exports.trafficIntensity=qo;exports.transactionContext=kp;exports.transactionDossierKeys=Wp;exports.transactionHref=Bp;exports.transactionIdFromScope=Vp;exports.transactionKind=x;exports.transactionScopeKey=ti;exports.transactionSlots=Mp;exports.transactionTotals=ql;exports.triggerFillsVar=jd;exports.truncateExample=Gs;exports.typeIn=bm;exports.typesFor=ym;exports.uniqueWorkStatusKey=Nm;exports.uniqueWorkTypeKey=dp;exports.usageAccountOf=Er;exports.usageAccountsOf=Ia;exports.usageMetricId=Tr;exports.usageMetrics=Ja;exports.validateQuestions=Na;exports.validateStatuses=Dm;exports.valueAtPath=cs;exports.vatPeriods=sf;exports.vatReturn=of;exports.waitHoursOf=Ve;exports.wakesAssignment=yc;exports.workActivityScopeKey=Sm;exports.workItemScopeKey=ui;exports.workProjectScopeKey=pn;exports.workRatio=np;exports.workStatusKey=pi;exports.workTypeKey=Us;exports.workingMsBetween=xe;exports.workstreamScopeKey=Id;exports.xafAuditfile=Dl;exports.xmlBlocks=$;exports.xmlText=I;exports.yearEndClosingLines=El;
|
|
50
|
+
`).trim()}const Yi=/<\s*(html|body|div|p|table|br|span)\b/i;function fy(e){return Yi.test(e)}function py(e){return qi(e,!1)}function my(e){return qi(e,!0)}function qi(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of zh){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=ar(ir(or(r,t)));return o||(o=ar(ir(or(e,t)))),qh(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=Ec;exports.ACTIVITY_CATALOG=U;exports.AGING_BUCKETS=ci;exports.AGREEMENT_SCOPE_KIND=si;exports.AI_ATTACHMENT_LIMITS=Ai;exports.AI_ATTACHMENT_MAX_PER_TURN=og;exports.AI_ATTACHMENT_TURN_BUDGET=rg;exports.AI_CAPABILITIES=Fe;exports.AI_TOOL_PROVIDER_GROUP=ig;exports.AI_VENDORS=Ut;exports.ALLOWED_LINK_SCHEMES=Mr;exports.APP_PERMISSIONS=oh;exports.ARTICLE_SCOPE_KIND=hl;exports.ARTIFACT_MAX_BLOCKS=Ce;exports.ARTIFACT_MAX_BODY_BYTES=kr;exports.ARTIFACT_MAX_CELL_LEN=z;exports.ARTIFACT_MAX_KPI_ITEMS=Me;exports.ARTIFACT_MAX_LIST_ITEMS=ve;exports.ARTIFACT_MAX_TABLE_COLUMNS=ke;exports.ARTIFACT_MAX_TABLE_ROWS=Oe;exports.ARTIFACT_MAX_TEXT_LEN=je;exports.ASSET_GROUP_SEEDS=qu;exports.ASSIGNMENT_SCOPE_KIND=Lr;exports.ASSIST_BANDS=lg;exports.ASSIST_SOURCE_PROVIDER_GROUP=ug;exports.ATTENTION_STATUSES=Co;exports.AT_RISK_GAP=js;exports.AUTH_APP_NAME=bn;exports.AUTO_READY_MIN_PROPOSALS=Ss;exports.AUTO_READY_RATE=Is;exports.ActivityTypeRegistry=pr;exports.BOOKABLE_KINDS=Js;exports.BOOKABLE_ROUTES=gg;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=pg;exports.BOOKKEEPING_PROVIDER_GROUP=mg;exports.BOOKKEEPING_ROUTES=hg;exports.BUILT_IN_ONLY=ga;exports.BULK_PENALTY=vo;exports.BUSINESS_ENTITY_LIST_SERVICE=Wc;exports.CADENCE_FLOOR_MS=Ki;exports.CADENCE_MIN_NEW_SEGMENTS=Ui;exports.CADENCE_MIN_NOVELTY=Bi;exports.CADENCE_WINDOW_MS=$i;exports.CAPITALIZATION_THRESHOLD_CENTS=ho;exports.CLASSIFY_VARS=ef;exports.CLEARABLE_FIELDS=Pp;exports.COMPANY_RECEIVABLES_SERVICE=bm;exports.CONNECTOR_PROVIDER_GROUP=Ug;exports.CONTEXT_COLLECT_SERVICE=Bg;exports.CORE_DIMENSIONS=qa;exports.CRM_ACTIVITY_SCOPE_KIND=Su;exports.CRM_CALL_CHANNELS=Tu;exports.CRM_CALL_LOGGED=io;exports.CRM_CALL_OUTCOMES=Cu;exports.CRM_NOTE_ADDED=so;exports.CRM_STAGE_CHANGED=Iu;exports.CUSTOM_RESOLUTION_PREFIX=fl;exports.CommunicationScheme=vi;exports.DAY_MS=bo;exports.DEFAULT_CHECK_IN_DAYS=Bs;exports.DEFAULT_DUNNING_POLICY=zp;exports.DEFAULT_FORECAST_WEEKS=ss;exports.DEFAULT_MEMORY_BUDGET=td;exports.DEFAULT_NUMBER_PADDING=rm;exports.DEFAULT_PHONE_REGION=Wi;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Hp;exports.DEFAULT_TEMPLATE_CONDITIONS=Vp;exports.DEMAND_SOURCE_PROVIDER_GROUP=yd;exports.DOCUMENT_APPLY_SERVICE=Jg;exports.DOCUMENT_DESCRIBE_SERVICE=Xg;exports.DOCUMENT_INSPECT_SERVICE=Zg;exports.DOCUMENT_MAX_BLOCKS=Ce;exports.DOCUMENT_MAX_BODY_BYTES=kr;exports.DOCUMENT_MAX_CELL_LEN=z;exports.DOCUMENT_MAX_KPI_ITEMS=Me;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Et;exports.DOCUMENT_MAX_LIST_ITEMS=ve;exports.DOCUMENT_MAX_RECIPIENT_LINES=Or;exports.DOCUMENT_MAX_TABLE_COLUMNS=ke;exports.DOCUMENT_MAX_TABLE_ROWS=Oe;exports.DOCUMENT_MAX_TEXT_LEN=je;exports.DOCUMENT_MAX_TOTALS_ROWS=_t;exports.DOCUMENT_OPERATIONS=hn;exports.DRAFT_FIELDS=Lp;exports.DUTCH_SLOT_LABELS=ei;exports.EMPTY_WORKFLOW=rf;exports.ENABLED_TRANSACTION_KINDS=un;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=fo;exports.FEATURE_MESSAGE_REACTIONS=$g;exports.FEATURE_REMOTE_SEARCH=Pg;exports.FIXED_KINDS=We;exports.FIXED_LEVELS=le;exports.FIXED_TYPES=Xe;exports.FIXED_UNITS=iu;exports.FOLLOW_UP_HOURS=Oo;exports.FROZEN_WRITABLE_FIELDS=wp;exports.HOUR_MS=yo;exports.HTML_BODY_RE=Yi;exports.INELIGIBLE=G;exports.INSTALLATION_HEADER=eh;exports.INTERACTION_KIND=ys;exports.InteractionParticipantRole=xg;exports.KB_FALLBACK_LOCALE=Uo;exports.KB_LOCALES=De;exports.LEAD_STATUSES=hu;exports.LEDGER_TEMPLATES=Nl;exports.LEGAL_FORMS=Hc;exports.LIFECYCLE_STAGES=gu;exports.LOCALES=De;exports.LOOSE_STATUSES=Ze;exports.MAIL_HINT_HEADERS=Io;exports.MANUAL_PRICE_SOURCE=zr;exports.MAX_ACTIONS=he;exports.MAX_ASSIGNMENT_TURNS=Pr;exports.MAX_BLOCKS=lt;exports.MAX_CHOICE_OPTIONS=gt;exports.MAX_COLLECTION_DEPTH=qt;exports.MAX_DELEGATION_DEPTH=$r;exports.MAX_EDITABLE_FILE_BYTES=Ih;exports.MAX_FIELDS=me;exports.MAX_LIST_ITEMS=ge;exports.MAX_MEMORY_BROWSE=Zl;exports.MAX_MEMORY_BUDGET=ed;exports.MAX_MEMORY_CHARS=Jl;exports.MAX_RULE_DEPTH=Nt;exports.MAX_SCORE_LEVELS=yt;exports.MAX_SHOWN_KEYS=Vi;exports.MAX_TOPIC_CANDIDATES=zs;exports.MAX_TOPIC_EXAMPLES=Hs;exports.MAX_TOPIC_EXAMPLE_CHARS=_e;exports.MAX_VIEWABLE_FILE_BYTES=Th;exports.MICROS_PER_CENT=Yr;exports.MIN_MEMORY_BUDGET=Ql;exports.MIN_SCORE_LEVELS=ht;exports.MODEL_TIERS=Y;exports.NAV_NOTICE_SLOT=Lh;exports.NL_BV_TEMPLATE=jo;exports.NL_PAYMENT_TERMS=um;exports.NL_TAX_CODES=od;exports.NL_TAX_RATES=rd;exports.NL_VAT_BOXES=vs;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=nh;exports.OFF_TRACK_GAP=Gs;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=cd;exports.PAUSE_HOLD=$e;exports.PAUSE_SNOOZED=Le;exports.PAUSE_WAITING_FOR_CUSTOMER=Pe;exports.PAYMENT_TERM_METHODS=im;exports.PAYROLL_CATEGORIES=Go;exports.PHONE_REGIONS=Je;exports.PLAYBOOK_RUN_APPROVAL_ACT=Fd;exports.PLAYBOOK_RUN_SCOPE_KIND=fs;exports.PRESENCE_ONLINE_WINDOW_MS=yn;exports.PRESENCE_SURVIVES_OFFLINE=Oi;exports.PRODUCT_SCOPE_KIND=oi;exports.PROFILE_TOOL_DISPOSITIONS=ld;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=wg;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Dg;exports.PUBLIC_EMAIL_DOMAINS=zi;exports.READ_STEP_TYPES=It;exports.RECEIPT_BOOK_ACT=Kc;exports.RECEIPT_SCOPE_KIND=$c;exports.RELATED_SUBJECT_KINDS=zo;exports.REPORT_VIEW_LAYOUTS=Ya;exports.RESERVED_STATUS_KEYS=mn;exports.RESERVED_TYPE_KEYS=Om;exports.RESOURCE_ATTACHED_SERVICE=fh;exports.RESOURCE_DESCRIBE_SERVICE=uh;exports.RESOURCE_RESOLVE_SERVICE=dh;exports.RESOURCE_SEARCH_SERVICE=lh;exports.SCHEDULE_ENTRY_SCOPE_KIND=is;exports.SCHEDULE_EVENT=Ms;exports.SCOPE_ACTS_ROUTE=hh;exports.SCOPE_READ_ROUTE=gh;exports.SCOPE_RELATED_ROUTE=mh;exports.SEGMENT_FILTER_KEYS=bu;exports.SEGMENT_LAYOUTS=_u;exports.SEGMENT_LIST_FILTERS=ro;exports.SEGMENT_PRESENCE_FILTERS=oo;exports.SEGMENT_SORT_FIELDS=Eu;exports.SENDING_STALE_MS=Gc;exports.SETTINGS_BASE_PATH=ie;exports.SETTINGS_CATEGORIES=xh;exports.SIGNATURE_INTENTS=lu;exports.SLA_METRICS=Gf;exports.SLA_PAUSE_REASONS=Vf;exports.STATUS_NAMES=Mp;exports.STEP_MAX_TOKENS_MAX=_s;exports.STEP_MAX_TOKENS_MIN=Es;exports.STEP_TYPES=nf;exports.STRATEGY_ITEM_SCOPE_KIND=Ks;exports.SUMMARY_MIN_LAST_CHARS=So;exports.SUMMARY_MIN_MESSAGES=Ao;exports.SYNC_RUN_MAX_ERRORS=vh;exports.SYNC_TARGET_PROVIDER_GROUP=Ch;exports.SYSTEM_ONE_NON_GOALS=Ka;exports.SYSTEM_RESOLUTIONS=Lo;exports.TERMINAL_ASSIGNMENT_STATUSES=xr;exports.TERMINAL_RUN_STATUSES=Ts;exports.TRANSACTION_KINDS=qe;exports.TRANSACTION_SCOPE_KINDS=ri;exports.TRIGGER_VARS=Jd;exports.UNARY_OPS=Tf;exports.UNKNOWN_KIND=Xo;exports.UNKNOWN_LEVEL_ORDER=Us;exports.UNSUPPORTED=Kg;exports.UNWORKED_RESOLUTIONS=dl;exports.USAGE_DIMENSIONS=Ir;exports.USAGE_DIMENSION_IDS=Tr;exports.USAGE_RECORDS_ROUTE=cu;exports.USAGE_SOURCE_PROVIDER_GROUP=au;exports.UnresolvedRefError=sn;exports.WEBHOOK_EVENTS=li;exports.WORKSTREAM_SCOPE_KIND=as;exports.WORK_ACTIVITY_SCOPE_KIND=pi;exports.WORK_AREAS=ud;exports.WORK_COMMENT_ADDED=Sm;exports.WORK_CYCLE_SYNC_KIND=Dm;exports.WORK_ITEM_ASSIGNED=Im;exports.WORK_ITEM_SCOPE_KIND=di;exports.WORK_ITEM_STATUS_CHANGED=Tm;exports.WORK_PROJECT_SCOPE_KIND=fi;exports.WORK_SORT_FIELDS=Qm;exports.WORK_VIEW_FLAGS=Jm;exports.WORK_VIEW_LAYOUTS=eg;exports.WORK_VIEW_LIST_FILTERS=Zm;exports.W_PRIORITY=oe;exports.XAF_NAMESPACE=Wo;exports.acceptExampleCandidate=vp;exports.accountTotals=Il;exports.accountTypeOf=Hl;exports.accrualPostings=Vu;exports.actingIdentityKey=ls;exports.activeWorkTypes=Tp;exports.activityIconOf=ta;exports.activityJoinUrl=da;exports.activitySnippet=dr;exports.activityTextParams=fr;exports.activityTimelineText=la;exports.activityTimestamp=mr;exports.activityTypeInfo=x;exports.actorKey=Bd;exports.addExampleCandidate=Cp;exports.addMonths=ee;exports.addWorkingMs=He;exports.agePresenceEntry=ih;exports.aggregateUsage=qr;exports.agingBucketOf=ui;exports.agingOf=ym;exports.agreementHref=em;exports.agreementScopeKey=Qp;exports.aiAttachmentKind=_i;exports.aiAttachmentRejection=sg;exports.aiBudgetLimit=bt;exports.aiBudgetPeriodKey=Wa;exports.aiBudgetPeriodStart=Sr;exports.aiBudgetState=Va;exports.aiVendorAcceptsAttachment=Ga;exports.aiVendorDefaultModel=Ba;exports.aiVendorLabel=Ua;exports.aiVendorNeedsBaseUrl=ja;exports.aiVendorsWith=Fa;exports.allocate=yr;exports.appNameFromPath=En;exports.applyApprovalDecision=cc;exports.applyRounding=Ep;exports.applySignature=du;exports.approvalRate=As;exports.artifactBodyBytes=Dr;exports.artifactOutline=wr;exports.artifactToMarkdown=Ft;exports.assignmentMismatch=Hd;exports.assignmentScopeKey=Ac;exports.assignmentSubject=Tc;exports.availabilityByPerson=hd;exports.awaitsNumber=xp;exports.balanceSheet=Ol;exports.belongsOnCalendar=dd;exports.belongsToEntity=zc;exports.billableTimeGroups=yp;exports.billedQuantity=Jr;exports.bindParams=Af;exports.bindValue=we;exports.bookingDocumentOf=Dp;exports.bookingDocumentOfReceipt=Bc;exports.bookingSyncKey=Fc;exports.buildActivityPreview=pa;exports.buildChannelIntents=Ig;exports.buildShareKeys=hc;exports.buildWindow=Gi;exports.businessEntitySender=uo;exports.calendarDaysBetween=Zo;exports.calendarOf=ze;exports.canConvert=$p;exports.canNestUnder=El;exports.canParent=op;exports.canTransition=Rp;exports.canonicalJson=St;exports.capabilityDefaultFlag=Ra;exports.capacityTotal=md;exports.capacityWeights=Pd;exports.capitalizationThreshold=Yu;exports.carriesText=ia;exports.cashForecast=Ml;exports.categoryLabel=Al;exports.categoryOf=hi;exports.causedBy=Rf;exports.channelKindForScheme=Ng;exports.channelKindOf=na;exports.checkInOverdueMs=gp;exports.clampStepMaxTokens=tf;exports.classifyMail=rl;exports.cleanMessageMarkdown=my;exports.cleanMessageText=py;exports.codeQuery=Zc;exports.codedMessage=Og;exports.columnBalance=kl;exports.companyReceivablesOf=Em;exports.compareAssistRank=fg;exports.compareReports=Sl;exports.compareWorkTypes=Ws;exports.conditionHolds=co;exports.contactName=yu;exports.copyFrom=Qs;exports.correlationKeyFor=yg;exports.countsAsPlanned=Q;exports.coverageByPerson=gd;exports.coverageFor=Id;exports.coversWorkstream=Qt;exports.crmActivityAt=Ou;exports.cronMatches=ks;exports.currentAccountRelation=Uu;exports.currentLines=Aa;exports.currentPeriod=sm;exports.cycleDayIndex=en;exports.cycleOrder=qm;exports.cycleState=Xm;exports.decideAssignmentState=Cc;exports.decideCadence=wh;exports.decideEach=oc;exports.decideIncomingCall=_g;exports.decisionBand=$a;exports.defaultLocaleOf=Bo;exports.defaultStatusKey=Bm;exports.defaultTemplateBlocks=ti;exports.defineIntent=Lg;exports.delegationRefusal=vc;exports.depreciationParts=go;exports.depreciationPostings=ju;exports.depthOf=$o;exports.derivePresence=sh;exports.describeClause=tc;exports.describeExpression=Of;exports.digitsOf=Xr;exports.disabledIntentsFromCapabilities=Ag;exports.disposalLines=Gu;exports.documentBodyBytes=Dr;exports.documentKindOf=Qg;exports.documentOutline=wr;exports.documentToMarkdown=Ft;exports.documentToText=qg;exports.driftedFields=Ns;exports.dueAtOf=Jf;exports.dueCharges=Ca;exports.dueDateFrom=am;exports.dunningRunOf=qp;exports.dunningStateOf=ni;exports.elapsedSeconds=bp;exports.emailDomain=jh;exports.emptyConditionLeaf=Cf;exports.endpointKey=Hh;exports.entityOwnerIds=Yc;exports.entryLinesOf=$l;exports.entryNumber=wl;exports.entryProblems=Dl;exports.erlangC=Qo;exports.excessiveLending=Bu;exports.extractParams=Ni;exports.extractTerms=Fi;exports.failureLines=xu;exports.fieldVarPath=Lf;exports.fillDocument=Du;exports.fillText=ao;exports.filterByEndpoint=Cg;exports.filterByIntent=Tg;exports.filterByTargetScheme=Ci;exports.filterableDimensions=ec;exports.findAiVendor=ae;exports.findEvent=Pf;exports.fixedLevelForName=ip;exports.fixedTypeForName=Rm;exports.fixedTypes=Nm;exports.flattenLocales=th;exports.floorToPeriod=J;exports.forecastIntervals=Dd;exports.formatActingIdentity=us;exports.formatCents=B;exports.formatClock=Ap;exports.formatHm=_p;exports.formatItemKey=xm;exports.formatMicros=nu;exports.formatPeriod=Z;exports.formatSeriesNumber=om;exports.formatSlaDuration=tp;exports.freshSources=cg;exports.getActivitySeenUserIds=ha;exports.getContactEndpoints=mu;exports.getShortTitle=ll;exports.getUrgencyScore=ul;exports.hasReacted=gf;exports.hashedPartOf=Ll;exports.healthCategory=ap;exports.healthsInCategory=cp;exports.heightOf=Xt;exports.helpCenterText=gl;exports.humanizeAction=Xd;exports.interactionIdOf=bs;exports.interestOnDailyBalance=Pu;exports.interestPeriods=$u;exports.isAgentUser=_m;exports.isAssigned=al;exports.isAssignmentTerminal=_c;exports.isAssignmentTrigger=ms;exports.isAssistantMode=Ha;exports.isAuthoredCrmActivity=vu;exports.isAutoReady=cf;exports.isAutonomy=zd;exports.isAwaitingThem=xo;exports.isBookable=Np;exports.isChatMessageActivity=ba;exports.isClosed=cl;exports.isConnectedType=ca;exports.isDeepLink=yh;exports.isDescendant=Ko;exports.isEligible=Xu;exports.isEmailActivity=ya;exports.isFrozen=ln;exports.isHeldClock=Zf;exports.isHtmlBody=fy;exports.isInFlight=lf;exports.isInteractionUnseen=To;exports.isLandingPath=Eh;exports.isLikelyBulk=_o;exports.isMessageShape=Lt;exports.isMessageType=ra;exports.isMoreSpecificPattern=wi;exports.isNoteShape=Pt;exports.isOpenClock=$s;exports.isOutstanding=fn;exports.isOutwardTool=gn;exports.isOverdueOn=lm;exports.isParked=Mo;exports.isPaused=Cs;exports.isPlaybookAuthoredType=aa;exports.isPublicEmailDomain=Vh;exports.isPublicPath=Sh;exports.isReminderActive=Ro;exports.isReplyableType=sa;exports.isResultAccount=ce;exports.isSettingsPath=Mi;exports.isSettled=ai;exports.isShorter=_a;exports.isSlaAtRisk=sl;exports.isSupportedCron=Mf;exports.isTerminal=uf;exports.isThreadLongEnough=Qu;exports.isTranscriptType=ua;exports.isWebhookEvent=Am;exports.isWorkClosed=Fm;exports.isWorkTypeVisible=Ip;exports.isWriteTool=_n;exports.itemDossierKeys=$m;exports.itemKeyOf=Lc;exports.judgeRuleCase=Nf;exports.kindFor=K;exports.ladderFor=gi;exports.ledgerRuleFor=Vc;exports.levelIn=Fs;exports.levelOrder=Ue;exports.lineNet=qo;exports.lineStatus=hr;exports.lineTerm=$t;exports.linkLabel=ml;exports.listedTransactionKinds=kp;exports.listeningAllowed=za;exports.loanPostings=Fu;exports.loanSchedule=zt;exports.localeInstruction=bl;exports.localeName=yl;exports.localesOf=_l;exports.looksLikeEmail=Bh;exports.lookup=Wt;exports.manualSettlement=pm;exports.marginCents=Ta;exports.markdownToDocument=Yg;exports.matchApprovalPolicy=ic;exports.matchContactToIntents=vg;exports.matchPublicRoute=xi;exports.matchRate=Zr;exports.matchRules=Rs;exports.mcpCredentialScope=ql;exports.mcpToolPrefix=Xl;exports.measureRatio=lp;exports.mergeDefaultFlags=Da;exports.mergeShownKeys=Dh;exports.messageCountsAs=lr;exports.metricOption=nc;exports.minutesOn=tn;exports.missingFieldPaths=$f;exports.modelAcceptsAttachment=xa;exports.monthEnd=po;exports.monthlyPeriods=Bl;exports.mustAsk=Li;exports.narrowAutonomy=qd;exports.needsPhoneRegion=Wh;exports.nestsUnderParent=oa;exports.nextLevelBelow=sp;exports.nextOccurrenceDates=Ym;exports.nextSlaClock=Qf;exports.nextStatuses=Zs;exports.nextVersion=Kp;exports.normalizeArtifactBlocks=Nr;exports.normalizeBlocks=Ji;exports.normalizeDocumentBlocks=Nr;exports.normalizeEmail=An;exports.normalizeExample=V;exports.normalizeGtin=Vr;exports.normalizeIban=no;exports.normalizeIbans=pu;exports.normalizeMeter=eo;exports.normalizeUsageSource=uu;exports.normalizeVatNumber=fu;exports.notificationPrefKey=rh;exports.novelty=ji;exports.openCentsOf=kc;exports.operationDescriptor=Hg;exports.operationsForKind=Wg;exports.opsForFieldType=xf;exports.organizationSender=wu;exports.outcomeOf=Wm;exports.overlap=Kt;exports.overlapSeconds=be;exports.overlaps=Sd;exports.paceRatio=dp;exports.parkMarksById=Zu;exports.parse=Os;exports.parseActingIdentity=Kd;exports.parseAmount=Sa;exports.parseCamt053=Ur;exports.parseClockMinutes=Ff;exports.parseCodedMessage=Mg;exports.parseCron=an;exports.parseItemKey=Lm;exports.parseMicros=Vt;exports.parseMt940=Fr;exports.parseRateCsv=ru;exports.parseRatePrice=At;exports.parseRecurrence=zm;exports.parseStatement=xc;exports.parseXafOpening=Wl;exports.partialDisposalLines=zu;exports.pathToRegex=Ri;exports.patternFor=rn;exports.patternStartTime=nn;exports.pauseBitFor=jf;exports.paymentOfItem=Rc;exports.paymentStateOf=dn;exports.pendingApprovers=ac;exports.periodAt=ft;exports.periodOf=Fl;exports.periodShare=gr;exports.periodsInRange=Ja;exports.phoneSuffix=Fh;exports.pickMailHeaders=el;exports.pickTemplate=Mu;exports.placeLumps=$d;exports.plainTextFromMarkdown=cr;exports.planSlaEvent=Xf;exports.plannedBillable=Td;exports.plannedWorkTypeKey=os;exports.procedureOf=sf;exports.productHref=Jp;exports.productScopeKey=Xp;exports.profitAndLoss=vl;exports.projectDossierKeys=Km;exports.proposalRequestIds=sc;exports.proposeMatch=Oc;exports.publicBasePathFor=Di;exports.publicRoutePatterns=Ah;exports.quantityKey=Ma;exports.rateRecords=su;exports.reactionWakesAssignment=Ic;exports.readDefaultFlags=Na;exports.readPath=Ie;exports.readStepError=ye;exports.receiptGroupOf=Uc;exports.receiptProblems=Gr;exports.receiptTotals=jr;exports.receivableRowOf=hm;exports.recencyOf=ko;exports.recipientLocale=ku;exports.reconciliationBalances=Mc;exports.refKey=hs;exports.registrableDomain=Hi;exports.rejectExampleCandidate=qs;exports.relatedByDefault=nd;exports.remainingMsOf=Ke;exports.repriceLines=tu;exports.requiredAgents=ns;exports.requirementFor=rs;exports.resolutionsFor=pl;exports.resolveAccountCapabilities=Ti;exports.resolveActivityText=Te;exports.resolveAutonomy=Yd;exports.resolveChannelIntents=Ii;exports.resolvePrice=Hr;exports.resolveRateCard=Qc;exports.resolveRoute=La;exports.resolveSignature=to;exports.resolveTier=Ar;exports.resolveWorkMode=ah;exports.resourceKindOf=ph;exports.retryDelayMinutes=jc;exports.reversedLines=Pl;exports.rhythmOf=br;exports.rollupChildren=mp;exports.roundHalfUp=L;exports.runActor=Ud;exports.runApprovalKey=jd;exports.runEvalSuite=Lu;exports.runIdOfApprovalRef=Gd;exports.runInteractionId=ff;exports.runKind=af;exports.runOutcome=wf;exports.runSpans=Oa;exports.sanitizeInline=Rr;exports.sanitizeTranscript=Pi;exports.scheduleEntryScopeKey=wd;exports.scoreInteraction=il;exports.scoreWorkItem=vm;exports.segmentIsEmpty=Au;exports.selectLenses=Yl;exports.serialize=Ee;exports.serviceLevel=es;exports.sessionsHoldCannotReach=Eg;exports.sessionsToHold=bg;exports.settingsPath=bh;exports.settlementPatch=fm;exports.shadowByKey=qc;exports.shareKeyForTeam=Gt;exports.shareKeyForUser=jt;exports.shareKeysForViewer=yc;exports.shortTermPrincipal=Hu;exports.shortfalls=Cd;exports.shouldRunAudioPipeline=ch;exports.slaBadgeTone=ep;exports.slaHoursByInbox=ol;exports.slaHoursFor=wo;exports.sortStatuses=yi;exports.sourceKey=Si;exports.spread=Yt;exports.spreadOverWeights=cs;exports.startingCents=Wu;exports.statusIn=Um;exports.statusRequiresApproval=Vm;exports.stepDate=Ei;exports.stepsOf=of;exports.strategyAncestorKeysFor=rp;exports.strategyDossierKeys=np;exports.strategyItemScopeKey=cn;exports.stripHtml=ur;exports.subjectKeyOf=df;exports.subjectOf=on;exports.subjectRef=dg;exports.suggestProjectKey=Pm;exports.suggestTreatments=Pc;exports.suggestedHealth=fp;exports.summariseEval=lo;exports.summarizeReactions=pf;exports.targetById=Wd;exports.targetForActivityType=Vd;exports.targetOrder=hp;exports.taxCodeProblem=id;exports.taxDateOf=q;exports.taxPercentOn=Jt;exports.taxRateFor=Yo;exports.taxRatesOn=sd;exports.termsFor=Jo;exports.tieredMicros=Qr;exports.timingOf=Er;exports.toActingIdentity=ds;exports.toE164=xt;exports.toTransactionTerm=cm;exports.toolBareName=gs;exports.toolDisplayName=Zd;exports.toolReversible=ag;exports.toolSourceKinds=bc;exports.toolVerdict=kh;exports.topicOfferedForTeam=Xs;exports.topicsForTeam=Op;exports.trafficIntensity=ts;exports.transactionContext=Up;exports.transactionDossierKeys=nm;exports.transactionHref=Zp;exports.transactionIdFromScope=tm;exports.transactionKind=w;exports.transactionScopeKey=ii;exports.transactionSlots=Bp;exports.transactionTotals=ad;exports.triggerFillsVar=Qd;exports.truncateExample=Ys;exports.typeIn=Mm;exports.typesFor=km;exports.uniqueWorkStatusKey=jm;exports.uniqueWorkTypeKey=Sp;exports.usageAccountOf=_r;exports.usageAccountsOf=ka;exports.usageMetricId=Cr;exports.usageMetrics=rc;exports.validateQuestions=Pa;exports.validateStatuses=Gm;exports.valueAtPath=ps;exports.vatPeriods=yf;exports.vatReturn=hf;exports.waitHoursOf=Ve;exports.wakesAssignment=Sc;exports.workActivityScopeKey=wm;exports.workItemScopeKey=mi;exports.workProjectScopeKey=pn;exports.workRatio=pp;exports.workStatusKey=bi;exports.workTypeKey=Vs;exports.workingMsBetween=xe;exports.workstreamScopeKey=xd;exports.xafAuditfile=Gl;exports.xmlBlocks=$;exports.xmlText=I;exports.yearEndClosingLines=Rl;
|