@opencxh/domain 1.301.0 → 1.302.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/purchase/feed.d.ts +40 -2
- package/dist/index.cjs +17 -17
- package/dist/index.js +689 -679
- 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 Gt=10,De=10,we=10,xe=5,gc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Mt(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 hc(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Gt){t(`more than ${Gt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!gc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Mt(o.text)){t("a header without text");continue}break;case"context":if(!Mt(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>De&&(t(`more than ${De} fields in a section`),o.fields=o.fields.slice(0,De));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>we&&(t(`more than ${we} list items`),o.items=o.items.slice(0,we));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Gt=10,De=10,we=10,xe=5,gc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Mt(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 hc(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Gt){t(`more than ${Gt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!gc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Mt(o.text)){t("a header without text");continue}break;case"context":if(!Mt(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>De&&(t(`more than ${De} fields in a section`),o.fields=o.fields.slice(0,De));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>we&&(t(`more than ${we} list items`),o.items=o.items.slice(0,we));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&Mt(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>xe&&t(`more than ${xe} actions`),o.elements=i.slice(0,xe);break}}n.push(o)}return n}const yc=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,bc=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function io(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(yc,"$2"),t=t.replace(bc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ao(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 Me(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 cr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function Rt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function ur(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const X={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${Rt(e.payload.from)}`:`Outbound call started — ${Rt(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?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${cr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${Rt(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?` (${Me(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:lr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:lr},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=>`${Re(e.payload.members)} toegevoegd`,timeline:e=>{const t=Re(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=>`${Re(e.payload.members)} verlaten`,timeline:e=>{const t=Re(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=>`${ur(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?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`${ur(e.payload.callType)} ended${cr(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?` (${Me(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 lr(e){const t=e.payload,n=io(t.bodyText).trim()||t.bodySnippet?.trim()||ao(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function _c(e){return j(e)?.icon??"circle"}function Ec(e){return j(e)?.channelKind}function yn(e){return e==="message"||e==="note"}function Sc(e){return yn(j(e)?.shape)}function bn(e){return e==="note"}function Ic(e){return bn(j(e)?.shape)}function Ac(e){return j(e)?.replyable===!0}function Cc(e){return j(e)?.carriesText===!0}function co(e){return j(e)?.countsAs}function vc(e){return j(e)?.playbookAuthored===!0}function Tc(e){return j(e)?.connected===!0}function kc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function uo(e){const t=j(e.type)?.snippet;return t?t(e):""}function Oc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Mc(e){const t=j(e.type)?.joinUrl;return t?t(e):void 0}function Fe(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 je(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Fe(t,e.value)||null;const r={};for(const[s,a]of Object.entries(e.params??{}))r[s]=Fe(t,a);const o=n(e.key,r);return o===e.key?null:o}function lo(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]=Fe(t,o);return{key:e.key,params:n}}const dr=140;function Rc(e){const t=e.trim();return t.length<=dr?t:`${t.slice(0,dr-1).trimEnd()}…`}function Nc(e,t){const n=lo(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Rc(r??uo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Dc=e=>e;function fr(e){const t=X[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function pr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class fo{constructor(t=[],n=Dc){this.translate=n;for(const r of t)r?.type&&(r.type in X||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in X)return fr(t);const n=this.declared.get(t);return n?pr(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(fr),n=[...this.declared.values()].map(pr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=X[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return je(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=X[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return je(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 yn(this.get(t)?.shape)}nestsUnderParent(t){return bn(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 wc=new fo;function xc(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,a])=>a>=r&&!o.has(s)).map(([s])=>s)}function po(e){return e.createdAt??0}function Pc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Lc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function P(e){return e<0?-Math.round(-e):Math.round(e)}function Ce(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 a=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),i=s<0?-1:1;for(let u=0;s!==0&&u<a.length;u++)o[a[u].index]+=i,s-=i;return o}function H(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),a=s.slice(0,-2),i=s.slice(-2);let u="";for(let c=0;c<a.length;c++)c>0&&(a.length-c)%3===0&&(u+=r),u+=a[c];return`${o?"-":""}${u}${n}${i}`}function Wt(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(","),a=o.lastIndexOf("."),i=Math.max(s,a),u=i===-1?"":o.slice(i+1),c=i!==-1&&u.length>=1&&u.length<=2,l=c?o.slice(0,i):o;if(!$c(l))return;const d=l.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(d==="")return;const m=Number(d)*100+Number(f);return r?-m:m}function $c(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Kc(e){return e.costPriceCents==null?e.netCents:e.netCents-P(e.costPriceCents*e.quantity)}const Uc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Bc=864e5,Fc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},mr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},gr=(e,t)=>Math.round((t-e)/Bc);function dt(e,t,n){const r=Ge[t],o=Ce(e,Array.from({length:r},()=>1));let s=0;for(let a=Fc(n.from);a<n.to;a=mr(a)){const i=mr(a),u=Math.max(a,n.from),c=Math.min(i,n.to);if(c<=u)continue;const l=o[new Date(a).getUTCMonth()%r];s+=l*gr(u,c)/gr(a,i)}return P(s)}function mo(e,t,n){return!t||!n||t===n?e:P(e*Ge[n]/Ge[t])}function jc(e){return typeof e=="string"&&e in Ge}function go(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Gc(e,t){const n=e.lines.filter(go).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:P(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Wc(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?dt(r.netCents,r.pricePer,t):r.netCents),0)}const Vt={month:1,quarter:3,year:12},Vc=864e5;function Hc(e,t){return Vt[e]<Vt[t]}function We(e,t){const n=new Date(e),r=Vt[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 U(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 ft(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 ho(e,t,n){const r=ft(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,a)=>Math.round((a-s)/Vc);return o(r.from,r.to)/o(t.from,t.to)}function yo(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function qc(e,t,n){return t.filter(r=>yo(e,r,n)!=="ended")}const Ht=864e5;function _n(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function bo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/Ht);function Yc(e,t,n,r){const o=[],s=[],a=e.graceDays*Ht,i=e.proration===!0;for(const u of t){const c=U(e,u),l=_n(e,u),d=bo(u),f=n.filter(g=>g.agreementLineId===u.id);if(l==="once"){const g={from:c.from,to:c.from+Ht};c.from+a<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:g,part:g,share:1,timing:"advance"});continue}const m=[];for(let g=We(c.from,l);g.from<(c.to??Number.POSITIVE_INFINITY)&&g.from+a<=r;g=We(g.to,l))m.push(g);const b=u.quantity.from==="fixed";for(const g of m.slice(-24)){const E=ft(c,g),h=g.to+a<=r,y=f.filter(S=>S.servicePeriod.from>=g.from&&S.servicePeriod.from<g.to),p=y.find(S=>!S.correction);if(!p){if(!E)continue;const S=E.from===g.from&&E.to===g.to;if(!(d==="advance"&&S)&&!h)continue;const C=b?ho(c,g,i):1;C>0&&o.push({lineId:u.id,window:g,part:E,share:C,timing:d});continue}b&&i&&h&&s.push(...zc(u.id,g,E,p,y))}}return{charges:o,corrections:s}}function zc(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 a=[];if(s.to>s.from&&(n?(n.from>s.from&&a.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&a.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&a.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&a.push({part:{from:s.to,to:n.to},sign:1})):a.push({part:s,sign:-1})),r.pricePer){const u=r.pricePer;return a.map(({part:c,sign:l})=>({lineId:e,window:t,part:c,quantity:l*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&ge(c.part)>0)}const i=r.unitPriceCents*ge(t)/Math.max(1,ge(r.servicePeriod));return a.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:P(i*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Xc(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:a,to:i}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,a),to:Math.max(s.to,i)}:{timing:o.timing,from:a,to:i})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Ve=864e5,_o={draft:["active"],active:["draft","ended"],ended:["active"]};function Qc(e,t){return e===t||_o[e].includes(t)}function Zc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=_n(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,We(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const He=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Eo=e=>e&&e.termMonths>=1?e:void 0;function En(e,t){return Math.min(...t.map(n=>U(e,n).from))}function ne(e,t,n){let r=He(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=He(r,o);return r}function Sn(e,t,n){const r=He(e,Math.max(1,t.termMonths)),o=ne(e,t,n);return o===r?e:He(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function In(e,t,n){if(t=Eo(t),!t)return null;const r=ne(e,t,n),o=r-t.noticeDays*Ve;return n<=o?o:t.renew==="none"?null:ne(e,t,r)-t.noticeDays*Ve}function Ee(e,t,n){if(t=Eo(t),!t)return n;const r=ne(e,t,n);return n<=r-t.noticeDays*Ve||t.renew==="none"?r:ne(e,t,r)}function Jc(e,t){let n=t;for(const r of e.lines??[]){const o=U(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,Ee(Math.max(o.from,0),s,t))}return n}const hr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.price??null,e.commitment??null]);function eu(e,t){return hr(e)!==hr(t)}function tu(e,t,n,r){const{endsAt:o,...s}=e,a={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},a]}function So(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 nu(e){const t=new Map;for(const n of e.lines??[]){const r=So(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function ru(e,t){return[e,t].join("@")}const pt=[{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 ou(e){return pt.find(t=>t.id===e)?.defaultFlag}function su(e){const t={};for(const n of pt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function iu(e,t){const n={};for(const r of pt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const au={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function cu(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=au[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],yr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},qt=e=>ue.indexOf(e);function Io(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=yr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=yr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&qt(n)>qt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function uu(e,t,n){const r=Io(t);if(!e)return{...r,...n,routed:!1};for(let o=qt(r.tier);o>=0;o--){const s=ue[o],a=e[s];if(!a?.accountId||!a.model)continue;const i=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:i,accountId:a.accountId,model:a.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const Yt=255,zt=2,Xt=10;function lu(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>Yt)return`vraag "${n}" heeft meer dan ${Yt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<zt||o>Xt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${zt} tot ${Xt} zijn`}}return null}function du(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const fu=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],An=[{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 ve(e){return An.find(t=>t.id===e)}function pu(e){return ve(e)?.label??e}function mu(e,t="gpt-5-mini"){return ve(e)?.defaultModel??t}function gu(e){return An.filter(t=>t.capabilities.includes(e))}function hu(e){const t=ve(e);return!!t&&!t.baseUrl}function yu(e,t){return t==="text"?!0:ve(e)?.attachmentKinds?.includes(t)===!0}function bu(e,t){if(!e.enabled)return"ok";const n=Qt(e.hardLimitNanos),r=Qt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function Qt(e){return typeof e=="number"?e:void 0}function Ao(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function _u(e,t="month"){const n=new Date(Ao(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Eu(e){return e==="ask"||e==="draft"||e==="agent"}function Su(e){return e?.listeningEnabled!==!1}const Iu=["report"],Au=[{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 Nt(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Nt(n.getUTCMonth()+1)}-${Nt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Nt(n.getUTCHours())}`}function fe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Cu=36e5,vu=864e5;function Tu(e,t,n){const r=n==="hour"?Cu:vu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const ku=new Set(["time"]);function Ou(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!ku.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 Mu(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 Ru(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Co=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],vo=Co.map(e=>e.id);function To(e,t){return`${e}.usage.${t}`}function Nu(e,t){return t.map(n=>({id:To(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...vo,...n.extraDimensions??[],"time"]}))}async function Du(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const a=s?.status;if(a===403||a===400)r++;else throw s}return{decided:n,waiting:r}}function wu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function xu(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 Pu(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const a of t[s]??[])o.add(a);return r||o.delete(n),[...o]}function Lu(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 ko=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Zt=10,Oo=8,Jt=12,mt=4e3,ce=500,Mo=1024*1024,$u=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),Ro=["http:","https:","mailto:","tel:"],Ku=/^[a-z][a-z0-9+.-]*:/i;function Cn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Ku.exec(t)?.[0];return n?Ro.includes(n.toLowerCase()):!t.startsWith("//")}const Uu=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Bu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=br(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=br(e,s+2,"(",")");if(a<0){t+=e[n],n+=1;continue}const i=e.slice(o,s),u=e.slice(s+2,a).trim().split(/\s+/)[0]??"";t+=r||!Cn(u)?i:e.slice(n,a+1),n=a+1}return t}function br(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function No(e){return Bu(e).replace(Uu,(t,n,r)=>Cn(r)?t:"")}function $(e,t=mt){return typeof e=="string"?No(e).slice(0,t):""}function Fu(e,t=mt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function ju(e,t="info"){return typeof e=="string"&&ko.has(e)?e:t}function Do(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=qe){t(`more than ${qe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!$u.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 a=$(o.text);if(!a){t("a heading without text");continue}const i=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:i,text:a});break}case"paragraph":{const a=$(o.text);if(!a){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:a});break}case"quote":{const a=$(o.text);if(!a){t("a quote without text");continue}n.push({...s,type:"quote",text:a});break}case"code":{const a=Fu(o.text);if(!a){t("a code block without text");continue}const i=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...i,text:a});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const c of a){if(i.length>=Ye){t(`more than ${Ye} list items`);break}const l=$(c?.text);if(!l)continue;const d=$(c?.lead,200);i.push(d?{lead:d,text:l}:{text:l})}if(i.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:i});break}case"table":{const a=Array.isArray(o.columns)?o.columns:[],i=[];for(const d of a){if(i.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(d?.label,ce),m=d?.align==="right"?"right":void 0;i.push(m?{label:f,align:m}:{label:f})}if(i.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const d of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(d)?d:[];c.push(i.map((m,b)=>$(f[b],ce)))}const l=$(o.caption,ce);n.push({...s,type:"table",columns:i,rows:c,...l?{caption:l}:{}});break}case"kpi":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const u of a){if(i.length>=Qe){t(`more than ${Qe} kpi items`);break}const c=$(u?.value,40),l=$(u?.label,80);if(!c||!l)continue;const d=u?.tone;i.push(typeof d=="string"&&ko.has(d)?{value:c,label:l,tone:d}:{value:c,label:l})}if(i.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:i});break}case"image":{const a=typeof o.url=="string"?o.url.trim():"";if(!a||!Cn(a)){t("an image without a usable url");continue}const i=$(o.alt,200),u=$(o.caption,ce);n.push({...s,type:"image",url:a,...i?{alt:i}:{},...u?{caption:u}:{}});break}case"letterhead":{const a=Array.isArray(o.fields)?o.fields:[],i=[];for(const l of a){if(i.length>=Zt){t(`more than ${Zt} letterhead fields`);break}const d=l,f=typeof d?.key=="string"?d.key.slice(0,48):"",m=he(d?.value);if(!f||!m)continue;const b=he(d?.label,80);i.push(b?{key:f,label:b,value:m}:{key:f,value:m})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Oo).map(l=>he(l)).filter(Boolean);if(i.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:i,...c.length>0?{recipient:c}:{}});break}case"totals":{const a=c=>{const l=Array.isArray(c)?c:[],d=[];for(const f of l){if(d.length>=Jt){t(`more than ${Jt} totals rows`);break}const m=f,b=he(m?.label),g=he(m?.amount,40);!b||!g||d.push(m?.emphasis===!0?{label:b,amount:g,emphasis:!0}:{label:b,amount:g})}return d},i=a(o.rows);if(i.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=a(o.taxRows);n.push({...s,type:"totals",rows:i,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const a=$(o.text);if(!a){t("a callout without text");continue}const i=$(o.title,200);n.push({...s,type:"callout",tone:ju(o.tone),...i?{title:i}:{},text:a});break}}}return n}function wo(e){return JSON.stringify(e).length}function xo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function _r(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Dt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(_r).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(_r).join(" | ")} |`)]}function Gu(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=Dt(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 Dt(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 Dt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function vn(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=Gu(o);s.length>0&&n.push(s.join(`
|
|
3
|
+
`),t=t.replace(yc,"$2"),t=t.replace(bc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ao(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 Me(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 cr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function Rt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function ur(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const X={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${Rt(e.payload.from)}`:`Outbound call started — ${Rt(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?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${cr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${Rt(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?` (${Me(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:lr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:lr},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=>`${Re(e.payload.members)} toegevoegd`,timeline:e=>{const t=Re(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=>`${Re(e.payload.members)} verlaten`,timeline:e=>{const t=Re(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=>`${ur(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?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`${ur(e.payload.callType)} ended${cr(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?` (${Me(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 lr(e){const t=e.payload,n=io(t.bodyText).trim()||t.bodySnippet?.trim()||ao(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function _c(e){return j(e)?.icon??"circle"}function Ec(e){return j(e)?.channelKind}function yn(e){return e==="message"||e==="note"}function Sc(e){return yn(j(e)?.shape)}function bn(e){return e==="note"}function Ic(e){return bn(j(e)?.shape)}function Ac(e){return j(e)?.replyable===!0}function Cc(e){return j(e)?.carriesText===!0}function co(e){return j(e)?.countsAs}function vc(e){return j(e)?.playbookAuthored===!0}function Tc(e){return j(e)?.connected===!0}function kc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function uo(e){const t=j(e.type)?.snippet;return t?t(e):""}function Oc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Mc(e){const t=j(e.type)?.joinUrl;return t?t(e):void 0}function Fe(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 je(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Fe(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Fe(t,i);const o=n(e.key,r);return o===e.key?null:o}function lo(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]=Fe(t,o);return{key:e.key,params:n}}const dr=140;function Rc(e){const t=e.trim();return t.length<=dr?t:`${t.slice(0,dr-1).trimEnd()}…`}function Nc(e,t){const n=lo(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Rc(r??uo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Dc=e=>e;function fr(e){const t=X[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function pr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class fo{constructor(t=[],n=Dc){this.translate=n;for(const r of t)r?.type&&(r.type in X||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in X)return fr(t);const n=this.declared.get(t);return n?pr(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(fr),n=[...this.declared.values()].map(pr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=X[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return je(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=X[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return je(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 yn(this.get(t)?.shape)}nestsUnderParent(t){return bn(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 wc=new fo;function xc(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 po(e){return e.createdAt??0}function Pc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Lc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function P(e){return e<0?-Math.round(-e):Math.round(e)}function Ce(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 H(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 Wt(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,l=c?o.slice(0,a):o;if(!$c(l))return;const d=l.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(d==="")return;const m=Number(d)*100+Number(f);return r?-m:m}function $c(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Kc(e){return e.costPriceCents==null?e.netCents:e.netCents-P(e.costPriceCents*e.quantity)}const Uc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Bc=864e5,Fc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},mr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},gr=(e,t)=>Math.round((t-e)/Bc);function dt(e,t,n){const r=Ge[t],o=Ce(e,Array.from({length:r},()=>1));let s=0;for(let i=Fc(n.from);i<n.to;i=mr(i)){const a=mr(i),u=Math.max(i,n.from),c=Math.min(a,n.to);if(c<=u)continue;const l=o[new Date(i).getUTCMonth()%r];s+=l*gr(u,c)/gr(i,a)}return P(s)}function mo(e,t,n){return!t||!n||t===n?e:P(e*Ge[n]/Ge[t])}function jc(e){return typeof e=="string"&&e in Ge}function go(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Gc(e,t){const n=e.lines.filter(go).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:P(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Wc(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?dt(r.netCents,r.pricePer,t):r.netCents),0)}const Vt={month:1,quarter:3,year:12},Vc=864e5;function Hc(e,t){return Vt[e]<Vt[t]}function We(e,t){const n=new Date(e),r=Vt[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 U(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 ft(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 ho(e,t,n){const r=ft(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)/Vc);return o(r.from,r.to)/o(t.from,t.to)}function yo(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function qc(e,t,n){return t.filter(r=>yo(e,r,n)!=="ended")}const Ht=864e5;function _n(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function bo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/Ht);function Yc(e,t,n,r){const o=[],s=[],i=e.graceDays*Ht,a=e.proration===!0;for(const u of t){const c=U(e,u),l=_n(e,u),d=bo(u),f=n.filter(g=>g.agreementLineId===u.id);if(l==="once"){const g={from:c.from,to:c.from+Ht};c.from+i<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:g,part:g,share:1,timing:"advance"});continue}const m=[];for(let g=We(c.from,l);g.from<(c.to??Number.POSITIVE_INFINITY)&&g.from+i<=r;g=We(g.to,l))m.push(g);const b=u.quantity.from==="fixed";for(const g of m.slice(-24)){const E=ft(c,g),h=g.to+i<=r,y=f.filter(S=>S.servicePeriod.from>=g.from&&S.servicePeriod.from<g.to),p=y.find(S=>!S.correction);if(!p){if(!E)continue;const S=E.from===g.from&&E.to===g.to;if(!(d==="advance"&&S)&&!h)continue;const C=b?ho(c,g,a):1;C>0&&o.push({lineId:u.id,window:g,part:E,share:C,timing:d});continue}b&&a&&h&&s.push(...zc(u.id,g,E,p,y))}}return{charges:o,corrections:s}}function zc(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=[];if(s.to>s.from&&(n?(n.from>s.from&&i.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&i.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&i.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&i.push({part:{from:s.to,to:n.to},sign:1})):i.push({part:s,sign:-1})),r.pricePer){const u=r.pricePer;return i.map(({part:c,sign:l})=>({lineId:e,window:t,part:c,quantity:l*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&ge(c.part)>0)}const a=r.unitPriceCents*ge(t)/Math.max(1,ge(r.servicePeriod));return i.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:P(a*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Xc(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:i,to:a}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,i),to:Math.max(s.to,a)}:{timing:o.timing,from:i,to:a})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Ve=864e5,_o={draft:["active"],active:["draft","ended"],ended:["active"]};function Qc(e,t){return e===t||_o[e].includes(t)}function Zc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=_n(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,We(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const He=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Eo=e=>e&&e.termMonths>=1?e:void 0;function En(e,t){return Math.min(...t.map(n=>U(e,n).from))}function ne(e,t,n){let r=He(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=He(r,o);return r}function Sn(e,t,n){const r=He(e,Math.max(1,t.termMonths)),o=ne(e,t,n);return o===r?e:He(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function In(e,t,n){if(t=Eo(t),!t)return null;const r=ne(e,t,n),o=r-t.noticeDays*Ve;return n<=o?o:t.renew==="none"?null:ne(e,t,r)-t.noticeDays*Ve}function Ee(e,t,n){if(t=Eo(t),!t)return n;const r=ne(e,t,n);return n<=r-t.noticeDays*Ve||t.renew==="none"?r:ne(e,t,r)}function Jc(e,t){let n=t;for(const r of e.lines??[]){const o=U(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,Ee(Math.max(o.from,0),s,t))}return n}const hr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.price??null,e.commitment??null]);function eu(e,t){return hr(e)!==hr(t)}function tu(e,t,n,r){const{endsAt:o,...s}=e,i={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},i]}function So(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 nu(e){const t=new Map;for(const n of e.lines??[]){const r=So(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function ru(e,t){return[e,t].join("@")}const pt=[{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 ou(e){return pt.find(t=>t.id===e)?.defaultFlag}function su(e){const t={};for(const n of pt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function iu(e,t){const n={};for(const r of pt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const au={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function cu(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=au[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],yr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},qt=e=>ue.indexOf(e);function Io(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=yr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=yr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&qt(n)>qt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function uu(e,t,n){const r=Io(t);if(!e)return{...r,...n,routed:!1};for(let o=qt(r.tier);o>=0;o--){const s=ue[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 Yt=255,zt=2,Xt=10;function lu(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>Yt)return`vraag "${n}" heeft meer dan ${Yt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<zt||o>Xt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${zt} tot ${Xt} zijn`}}return null}function du(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const fu=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],An=[{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 ve(e){return An.find(t=>t.id===e)}function pu(e){return ve(e)?.label??e}function mu(e,t="gpt-5-mini"){return ve(e)?.defaultModel??t}function gu(e){return An.filter(t=>t.capabilities.includes(e))}function hu(e){const t=ve(e);return!!t&&!t.baseUrl}function yu(e,t){return t==="text"?!0:ve(e)?.attachmentKinds?.includes(t)===!0}function bu(e,t){if(!e.enabled)return"ok";const n=Qt(e.hardLimitNanos),r=Qt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function Qt(e){return typeof e=="number"?e:void 0}function Ao(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function _u(e,t="month"){const n=new Date(Ao(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Eu(e){return e==="ask"||e==="draft"||e==="agent"}function Su(e){return e?.listeningEnabled!==!1}const Iu=["report"],Au=[{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 Nt(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Nt(n.getUTCMonth()+1)}-${Nt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Nt(n.getUTCHours())}`}function fe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Cu=36e5,vu=864e5;function Tu(e,t,n){const r=n==="hour"?Cu:vu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const ku=new Set(["time"]);function Ou(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!ku.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 Mu(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 Ru(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Co=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],vo=Co.map(e=>e.id);function To(e,t){return`${e}.usage.${t}`}function Nu(e,t){return t.map(n=>({id:To(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...vo,...n.extraDimensions??[],"time"]}))}async function Du(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 wu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function xu(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 Pu(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 Lu(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 ko=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Zt=10,Oo=8,Jt=12,mt=4e3,ce=500,Mo=1024*1024,$u=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),Ro=["http:","https:","mailto:","tel:"],Ku=/^[a-z][a-z0-9+.-]*:/i;function Cn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Ku.exec(t)?.[0];return n?Ro.includes(n.toLowerCase()):!t.startsWith("//")}const Uu=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Bu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=br(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=br(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),u=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Cn(u)?a:e.slice(n,i+1),n=i+1}return t}function br(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function No(e){return Bu(e).replace(Uu,(t,n,r)=>Cn(r)?t:"")}function $(e,t=mt){return typeof e=="string"?No(e).slice(0,t):""}function Fu(e,t=mt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function ju(e,t="info"){return typeof e=="string"&&ko.has(e)?e:t}function Do(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=qe){t(`more than ${qe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!$u.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=$(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=$(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=$(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=Fu(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>=Ye){t(`more than ${Ye} list items`);break}const l=$(c?.text);if(!l)continue;const d=$(c?.lead,200);a.push(d?{lead:d,text:l}:{text:l})}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 d of i){if(a.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(d?.label,ce),m=d?.align==="right"?"right":void 0;a.push(m?{label:f,align:m}:{label:f})}if(a.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const d of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(d)?d:[];c.push(a.map((m,b)=>$(f[b],ce)))}const l=$(o.caption,ce);n.push({...s,type:"table",columns:a,rows:c,...l?{caption:l}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=Qe){t(`more than ${Qe} kpi items`);break}const c=$(u?.value,40),l=$(u?.label,80);if(!c||!l)continue;const d=u?.tone;a.push(typeof d=="string"&&ko.has(d)?{value:c,label:l,tone:d}:{value:c,label:l})}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||!Cn(i)){t("an image without a usable url");continue}const a=$(o.alt,200),u=$(o.caption,ce);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 l of i){if(a.length>=Zt){t(`more than ${Zt} letterhead fields`);break}const d=l,f=typeof d?.key=="string"?d.key.slice(0,48):"",m=he(d?.value);if(!f||!m)continue;const b=he(d?.label,80);a.push(b?{key:f,label:b,value:m}:{key:f,value:m})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Oo).map(l=>he(l)).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 l=Array.isArray(c)?c:[],d=[];for(const f of l){if(d.length>=Jt){t(`more than ${Jt} totals rows`);break}const m=f,b=he(m?.label),g=he(m?.amount,40);!b||!g||d.push(m?.emphasis===!0?{label:b,amount:g,emphasis:!0}:{label:b,amount:g})}return d},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=$(o.text);if(!i){t("a callout without text");continue}const a=$(o.title,200);n.push({...s,type:"callout",tone:ju(o.tone),...a?{title:a}:{},text:i});break}}}return n}function wo(e){return JSON.stringify(e).length}function xo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function _r(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Dt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(_r).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(_r).join(" | ")} |`)]}function Gu(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=Dt(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 Dt(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 Dt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function vn(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=Gu(o);s.length>0&&n.push(s.join(`
|
|
4
4
|
`))}return`${n.join(`
|
|
5
5
|
|
|
6
6
|
`)}
|
|
7
|
-
`}const Tn=e=>`user:${e}`,kn=e=>`team:${e}`;function Wu(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Tn(n.id)),n.kind==="team"&&t.add(kn(n.id)));return[...t].sort()}function Vu(e,t){return[Tn(e),...t.map(kn)]}function Hu(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Po=["done","escalated"],qu=["open","waiting"];function Yu(e){return Po.includes(e)}const Lo="assignment";function zu(e){return`${Lo}:${e}`}function Xu(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 Qu(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Zu(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const $o=12;function Ju(e,t,n=$o){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 Ko=2;function el(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>=Ko?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Er=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Sr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function tl(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),
|
|
8
|
-
`),n=[];for(const l of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const d=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(l.trim());d&&n.push({tag:d[1]??"",value:(d[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,
|
|
9
|
-
`)[0]??"",m=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!m)continue;u++;const b=Ze(m[4])??0,g=m[3]==="C"||m[3]==="RD",E=Fo(m[1]??""),h=m[2]?`${E.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:E,y=m[6]??m[5]?.trim();i.push({date:h,valueDate:E,amountCents:g?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${u}`})}else if(l==="86"){const f=i.at(-1);f&&!f.description&&Object.assign(f,al(d))}const c=i.map(l=>l.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:a?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}function cl(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Bo(e):jo(e)}const ul=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function ll(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Go(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 dl="receipt",fl="book";function Wo(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 pl(e){if(e.status!=="to_check")return null;const t=Wo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Vo(e,t=""){const n=new Map;for(const r of e){const o=[r.accountKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",r.customerCompanyId??"",r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:a})=>({description:[...new Set(a)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},...r.customerCompanyId?{dimensions:{customerCompanyId:r.customerCompanyId}}:{},...r.productId?{productId:r.productId}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function ml(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Vo(e.lines,n.supplierName?.value??""),totals:Go(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function gl(e,t,n){return`${e}:${t}:${n}`}function hl(e){return[1,5,15][e-1]??60}const yl=10*6e4;function bl(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(a=>s(a.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const _l="organization.business-entities.list",El=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Sl(e,t,n){return e?e===t:n}function Il(e){return e.isDefault===!0?[e.id,""]:[e.id]}function Al(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 Cl(e,t,n){return n*Ho(e,t)}function Ho(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function vl(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function Tl(e,t){return!t.some(n=>n.parentId===e.id)}function kl(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(u=>u.key).length!==r.length||r.some(u=>!o.find(c=>c.key===u&&c.value.trim())))return"variant_options_mismatch";const a=u=>r.map(c=>u?.find(l=>l.key===c)?.value.trim()??"").join("\0"),i=a(o);return n.some(u=>u.id!==t.id&&a(u.options)===i)?"variant_options_duplicate":null}function Ol(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Ml(e,t){return mo(e.cents,e.per??t,t)}function gt(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 Rl(n.slice(0,13))===Number(n[13])?n:void 0}function Rl(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 Nl(e,t){const n=t.trim(),r=gt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Dl=[{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 qo(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 Dl){const a=o.filter(u=>s.matches(u,t));if(a.length===0)continue;const i=a.reduce((u,c)=>{const l=(c.minQuantity??0)-(u.minQuantity??0);return l!==0?l>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:i,sourceKey:(i.minQuantity??0)>1?"tier":s.key}}return null}function Yo(e,t,n){const r=qo(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:en}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:en};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:xl(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function wl(e,t,n){const r=qo(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 xl(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?P(t*(1-e.discountPercent/100)):t}const zo="manual",en="missing";function Pl(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===zo||o.usage)return o;const s=t.find(d=>d.id===o.productId);if(!s)return o;const a=o.factor??1,i=Yo(s,{...r,quantity:o.quantity*a},n),u=i.unitPriceCents==null?0:i.unitPriceCents*a;if(u===o.unitPriceCents&&i.sourceKey===o.priceSourceKey&&i.per===o.pricePer)return o;const{pricePer:c,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:i.sourceKey,...i.per?{pricePer:i.per}:{}}})}function On(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 Ll(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 tn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=On(e);return n===void 0?void 0:{kind:"flat",micros:n}}function $l(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",a=t.dimensions,i=t.display.per>1,u=1+a.length+1;return o.forEach((c,l)=>{const d=l+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(l===0&&!tn(f[u]??""))return;const m=f[0]??"",b={};a.forEach((R,D)=>{const G=f[1+D]??"";if(!G)return;const Q=/^[+\d\s-]+$/.test(G)?G.replace(/\D/g,"").replace(/^00/,""):G;b[R.key]=R.match==="prefix"?{prefix:Q}:{equals:G}});const g=f[1+a.length]??"",E=g===""?0:On(g),h=tn(f[u]??""),[y,p]=i?(f[u+1]||"1/1").split("/").map(Number):[1,1],S=i?f[u+2]??"":"",T=S===""?0:Number(S),C=m?E===void 0||!h?"price":!(y>0)||!((p??y)>0)||!Number.isFinite(T)?"increment":null:"label";if(C){r.push({line:d,message:C});return}n.push({label:m,match:b,setupMicros:E,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:p??y,minimum:T})}),{rates:n,errors:r}}const Je=1e4;function Xo(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 Qo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Kl(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Qo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Cr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Zo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>Kl(a,e.dimensions[s]))&&(!n||Cr(r)>Cr(n))&&(n=r);return n}function Jo(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 es(e,t,n){const r=t.tiers;if(t.mode==="volume"){const i=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return i?{micros:P(e*i.micros/n),bands:[{quantity:e,micros:i.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,a=0;for(const i of r){if(e<=s)break;const u=i.upTo===void 0?e:Math.min(e,i.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:i.micros}),a+=c*i.micros/n),s=u}return{micros:P(a),bands:o}}function Ul(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=Zo(a,t);if(!i||i.price.kind==="markup"&&a.costMicros==null){r.push(a);continue}const u=o.get(i.id)??{rate:i,billed:[],ids:[],costMicros:0};u.ids.push(a.id),u.billed.push({quantity:Jo(a.quantity,i),occurredAt:a.occurredAt}),u.costMicros+=a.costMicros??0,o.set(i.id,u)}return{groups:[...o.values()].map(({rate:a,billed:i,ids:u,costMicros:c})=>{const l=Xo(i,n),d=Math.min(a.included??0,l),f=l-d,m=a.setupMicros*i.length;let b,g;a.price.kind==="flat"?b=P(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:g}=es(f,a.price,a.unitSize):b=P(c*(1+a.price.percent/100));const E=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:l,included:d,billed:f,micros:E,cents:P(E/Je),...g?{bands:g}:{}}}),unrated:r}}function Bl(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/Je))return r;const s=o/Je,a=Math.round(e.billed/n.per*1e4)/1e4;return P(a*s)===e.cents?{quantity:a,unitKey:n.unit,unitPriceCents:s}:r}function Mn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Fl(e,t,n,r){const{unitKey:o,id:s,organizationId:a,productId:i,businessEntityId:u,updatedAt:c,...l}=n??{};return{...e,...l,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function jl(e){return!e.archived&&e.sellable!==!1}function Gl(e){return!e.archived&&e.purchasable===!0}const Wl=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Vl="usage-source",Hl="/usage/records";function ts(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function ql(e){return{...e,meters:(e.meters??[]).map(t=>ts(t)),accounts:e.accounts??[]}}const Yl=new Set(["mail","message"]);function ns(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function zl(e,t,n,r="html"){if(!e)return n;const o=ns(e,t);return o?`${n}${r==="text"?`
|
|
7
|
+
`}const Tn=e=>`user:${e}`,kn=e=>`team:${e}`;function Wu(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Tn(n.id)),n.kind==="team"&&t.add(kn(n.id)));return[...t].sort()}function Vu(e,t){return[Tn(e),...t.map(kn)]}function Hu(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Po=["done","escalated"],qu=["open","waiting"];function Yu(e){return Po.includes(e)}const Lo="assignment";function zu(e){return`${Lo}:${e}`}function Xu(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 Qu(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Zu(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const $o=12;function Ju(e,t,n=$o){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 Ko=2;function el(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>=Ko?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Er=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Sr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function tl(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),i=Er(`${e.description} ${e.endToEndId??""}`),a=h=>h.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:h.id,sourceApp:h.sourceApp??"sales"}:{kind:"receipt",receiptId:h.id},u=s.filter(h=>h.number&&i.includes(Er(h.number))),c=u.find(h=>h.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 h=u[0];return{target:a(h),via:"exact",confidence:"medium",reasons:["invoice_number"],label:h.label}}const l=e.counterpartyIban;if(l){const h=s.filter(y=>y.ibans.includes(l)&&y.openCents===r);if(h.length===1&&h[0]){const y=h[0];return{target:a(y),via:"exact",confidence:"high",reasons:["iban","amount"],label:y.label}}}const d=(t.scheduled??[]).filter(h=>h.expectedBankCents===e.amountCents),f=l?d.filter(h=>h.ibans.includes(l)):[],m=d.filter(h=>Sr(h.dueOn,e.date)<=7),b=f.length===1?f[0]:m.length===1?m[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(l&&t.ownIbans.some(h=>h.iban===l&&h.bankAccountId!==e.bankAccountId)){const h=t.otherLines.find(y=>y.state==="unmatched"&&y.bankAccountId!==e.bankAccountId&&y.amountCents===-e.amountCents&&Sr(y.date,e.date)<=3);if(h)return{target:{kind:"transfer",bankLineId:h.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const g=e.description.toLowerCase(),E=[...t.rules].sort((h,y)=>h.order-y.order).find(h=>{const y=h.when;return y.bankAccountId&&y.bankAccountId!==e.bankAccountId||y.counterpartyIban&&y.counterpartyIban!==l||y.direction&&y.direction!==(n?"in":"out")||y.descriptionContains&&!g.includes(y.descriptionContains.toLowerCase())?!1:!!(y.counterpartyIban||y.descriptionContains)});if(E)return{target:E.action.financingItemId?{kind:"financing",financingItemId:E.action.financingItemId}:{kind:"account",accountId:E.action.accountId,...E.action.taxCode?{taxCode:E.action.taxCode}:{},...E.action.description?{description:E.action.description}:{}},via:"rule",confidence:E.confidence,ruleId:E.id,reasons:["rule"],label:E.name}}function nl(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 rl(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function ol(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 Uo=e=>e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim();function V(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 k(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:V(n,r)[0];return n===void 0?void 0:Uo(n)}const Ze=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},Ir=e=>e?.slice(0,10),sl=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Bo(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=V(t,"Stmt")[0]??t,r=k(n,"Id")??"stmt",o=l=>{const d=V(n,"Bal").find(m=>k(m,"Cd")===l);if(!d)return;const f=Ze(k(d,"Amt"));if(f!==void 0)return{cents:k(d,"CdtDbtInd")==="DBIT"?-f:f,date:sl(d)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=V(n,"Ntry").flatMap((l,d)=>{if((k(l,"Sts","Cd")??k(l,"Sts"))==="PDNG")return[];const f=Ze(k(l,"Amt"));if(f===void 0)return[];const m=k(l,"CdtDbtInd")==="DBIT",b=V(l,"TxDtls")[0]??l,g=m?"Cdtr":"Dbtr",E=k(b,"RltdPties",g,"Nm")??k(b,"RltdPties",g,"Pty","Nm"),h=k(b,"RltdPties",`${g}Acct`,"Id","IBAN"),y=[...V(b,"Ustrd").map(Uo),k(l,"AddtlNtryInf")].filter(Boolean),p=k(b,"Refs","EndToEndId"),S=Ir(k(l,"BookgDt","Dt")??k(l,"BookgDt","DtTm"))??"",T=Ir(k(l,"ValDt","Dt")??k(l,"ValDt","DtTm")),C=k(l,"AcctSvcrRef")??k(l,"NtryRef");return[{date:S,...T?{valueDate:T}:{},amountCents:m?-f:f,currency:/Ccy="([A-Z]{3})"/.exec(l)?.[1]??"EUR",...E?{counterpartyName:E}:{},...h?{counterpartyIban:h.replace(/\s+/g,"").toUpperCase()}:{},description:y.join(" ").replace(/\s+/g," ").trim(),...p&&p!=="NOTPROVIDED"?{endToEndId:p}:{},dedupeKey:C?`ref:${C}`:`seq:${r}:${d+1}`}]}),u=a.map(l=>l.date).filter(Boolean).sort(),c=k(n,"Acct","Id","IBAN");return{format:"camt053",...c?{iban:c.replace(/\s+/g,"").toUpperCase()}:{},...k(n,"Acct","Ccy")?{currency:k(n,"Acct","Ccy")}:{},from:k(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??u[0]??"",to:k(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const Fo=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function Ar(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=Ze(t[4])??0;return{cents:t[1]==="D"?-n:n,date:Fo(t[2]??""),currency:t[3]}}const il=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function al(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+il.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 jo(e){const t=e.replace(/\r\n/g,`
|
|
8
|
+
`),n=[];for(const l of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const d=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(l.trim());d&&n.push({tag:d[1]??"",value:(d[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,i;const a=[];let u=0;for(const{tag:l,value:d}of n)if(l==="25")r=d.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(l==="28C")o=d,u=0;else if(l==="60F"||l==="60M")s??=Ar(d);else if(l==="62F"||l==="62M")i=Ar(d);else if(l==="61"){const f=d.split(`
|
|
9
|
+
`)[0]??"",m=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!m)continue;u++;const b=Ze(m[4])??0,g=m[3]==="C"||m[3]==="RD",E=Fo(m[1]??""),h=m[2]?`${E.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:E,y=m[6]??m[5]?.trim();a.push({date:h,valueDate:E,amountCents:g?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${u}`})}else if(l==="86"){const f=a.at(-1);f&&!f.description&&Object.assign(f,al(d))}const c=a.map(l=>l.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 cl(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Bo(e):jo(e)}const ul=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function ll(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Go(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 dl="receipt",fl="book";function Wo(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 pl(e){if(e.status!=="to_check")return null;const t=Wo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Vo(e,t=""){const n=new Map;for(const r of e){const o=[r.accountKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",r.customerCompanyId??"",r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:i})=>({description:[...new Set(i)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},...r.customerCompanyId?{dimensions:{customerCompanyId:r.customerCompanyId}}:{},...r.productId?{productId:r.productId}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function ml(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Vo(e.lines,n.supplierName?.value??""),totals:Go(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function gl(e,t,n){return`${e}:${t}:${n}`}function hl(e){return[1,5,15][e-1]??60}const yl=10*6e4;function bl(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(i=>s(i.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const _l="organization.business-entities.list",El=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Sl(e,t,n){return e?e===t:n}function Il(e){return e.isDefault===!0?[e.id,""]:[e.id]}function Al(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 Cl(e,t,n){return n*Ho(e,t)}function Ho(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function vl(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function Tl(e,t){return!t.some(n=>n.parentId===e.id)}function kl(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(u=>u.key).length!==r.length||r.some(u=>!o.find(c=>c.key===u&&c.value.trim())))return"variant_options_mismatch";const i=u=>r.map(c=>u?.find(l=>l.key===c)?.value.trim()??"").join("\0"),a=i(o);return n.some(u=>u.id!==t.id&&i(u.options)===a)?"variant_options_duplicate":null}function Ol(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Ml(e,t){return mo(e.cents,e.per??t,t)}function gt(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 Rl(n.slice(0,13))===Number(n[13])?n:void 0}function Rl(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 Nl(e,t){const n=t.trim(),r=gt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Dl=[{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 qo(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 Dl){const i=o.filter(u=>s.matches(u,t));if(i.length===0)continue;const a=i.reduce((u,c)=>{const l=(c.minQuantity??0)-(u.minQuantity??0);return l!==0?l>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 Yo(e,t,n){const r=qo(e,t,n,i=>!i.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:en}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:en};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:xl(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function wl(e,t,n){const r=qo(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 xl(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?P(t*(1-e.discountPercent/100)):t}const zo="manual",en="missing";function Pl(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===zo||o.usage)return o;const s=t.find(d=>d.id===o.productId);if(!s)return o;const i=o.factor??1,a=Yo(s,{...r,quantity:o.quantity*i},n),u=a.unitPriceCents==null?0:a.unitPriceCents*i;if(u===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:c,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function On(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 Ll(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 tn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=On(e);return n===void 0?void 0:{kind:"flat",micros:n}}function $l(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,l)=>{const d=l+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(l===0&&!tn(f[u]??""))return;const m=f[0]??"",b={};i.forEach((R,D)=>{const G=f[1+D]??"";if(!G)return;const Q=/^[+\d\s-]+$/.test(G)?G.replace(/\D/g,"").replace(/^00/,""):G;b[R.key]=R.match==="prefix"?{prefix:Q}:{equals:G}});const g=f[1+i.length]??"",E=g===""?0:On(g),h=tn(f[u]??""),[y,p]=a?(f[u+1]||"1/1").split("/").map(Number):[1,1],S=a?f[u+2]??"":"",T=S===""?0:Number(S),C=m?E===void 0||!h?"price":!(y>0)||!((p??y)>0)||!Number.isFinite(T)?"increment":null:"label";if(C){r.push({line:d,message:C});return}n.push({label:m,match:b,setupMicros:E,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:p??y,minimum:T})}),{rates:n,errors:r}}const Je=1e4;function Xo(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 Qo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Kl(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Qo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Cr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Zo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>Kl(i,e.dimensions[s]))&&(!n||Cr(r)>Cr(n))&&(n=r);return n}function Jo(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 es(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:P(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:P(i),bands:o}}function Ul(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=Zo(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:Jo(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 l=Xo(a,n),d=Math.min(i.included??0,l),f=l-d,m=i.setupMicros*a.length;let b,g;i.price.kind==="flat"?b=P(f*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:b,bands:g}=es(f,i.price,i.unitSize):b=P(c*(1+i.price.percent/100));const E=b+m;return{rateId:i.id,label:i.label,records:a.length,recordIds:u,measured:l,included:d,billed:f,micros:E,cents:P(E/Je),...g?{bands:g}:{}}}),unrated:r}}function Bl(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/Je))return r;const s=o/Je,i=Math.round(e.billed/n.per*1e4)/1e4;return P(i*s)===e.cents?{quantity:i,unitKey:n.unit,unitPriceCents:s}:r}function Mn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Fl(e,t,n,r){const{unitKey:o,id:s,organizationId:i,productId:a,businessEntityId:u,updatedAt:c,...l}=n??{};return{...e,...l,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function jl(e){return!e.archived&&e.sellable!==!1}function Gl(e){return!e.archived&&e.purchasable===!0}const Wl=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Vl="usage-source",Hl="/usage/records";function ts(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function ql(e){return{...e,meters:(e.meters??[]).map(t=>ts(t)),accounts:e.accounts??[]}}const Yl=new Set(["mail","message"]);function ns(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function zl(e,t,n,r="html"){if(!e)return n;const o=ns(e,t);return o?`${n}${r==="text"?`
|
|
10
10
|
|
|
11
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const Xl=["billing","delivery","site","visit"];function Ql(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function rs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Zl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Jl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=rs(n);r&&!t.includes(r)&&t.push(r)}return t}const ed=["customer","supplier"],td=e=>e==="customer"?"sales":"purchase";function nd(e){return e.endpoints??[]}const rd=["lead","opportunity","customer","former"],od=["new","working","unqualified"];function sd(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const os=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],ss=["openDeal","hasContacts"],id={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},ad=["updatedAt","createdAt","name"],cd=["list"];function ud(e){return e.search?.trim()||e.createdWithinDays||ss.some(t=>e[t])||os.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const is="CRM_NOTE_ADDED",ld="crm_activity",as="CRM_CALL_LOGGED",dd="CRM_STAGE_CHANGED",fd=["phone","meeting","video"],pd=["callback","interested","no_answer","not_interested"],md=e=>e===is||e===as,gd=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function hd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function yd(e,t,n,r){const o=e.filter(i=>i.key===t&&!i.archived);if(o.length===0)return;const s=se(n),a=se(r);return o.find(i=>se(i.locale)===s)??o.find(i=>se(i.locale)===a)??o.find(i=>!i.locale)??o[0]}const bd=/\{([a-zA-Z0-9_.]+)\}/g;function Rn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function _d(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function cs(e,t,n){const r=[];return{text:e.replace(bd,(s,a)=>{const i=Rn(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):_d(i)}),unresolved:r}}function us(e,t){if(!e)return!0;const n=Rn(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 Ed(e,t,n,r,o){const s=[],a=[],i=new Set,u=c=>{const l=cs(c,t,o);for(const d of l.unresolved)s.includes(d)||s.push(d);return l.text};for(const c of e){if(c.block_id&&!us(n?.[c.block_id],t))continue;const l=c.block_id?r?.[c.block_id]:void 0;if(l&&c.block_id){i.add(c.block_id),a.push(...l);continue}switch(c.type){case"heading":case"paragraph":case"quote":a.push({...c,text:u(c.text)});break;case"callout":a.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":a.push(c);break;case"list":a.push({...c,items:c.items.map(d=>({...d.lead?{lead:u(d.lead)}:{},text:u(d.text)}))});break;case"table":a.push({...c,columns:c.columns.map(d=>({...d,label:u(d.label)})),rows:c.rows.map(d=>d.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":a.push({...c,items:c.items.map(d=>({...d,value:u(d.value),label:u(d.label)}))});break;case"letterhead":a.push({...c,fields:c.fields.map(d=>({...d,value:u(d.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":a.push({...c,rows:c.rows.map(d=>({...d,label:u(d.label),amount:u(d.amount)})),...c.taxRows?{taxRows:c.taxRows.map(d=>({...d,label:u(d.label),amount:u(d.amount)}))}:{}});break;case"image":a.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:a.push(c)}}return{blocks:a,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!i.has(c))}}function ls(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 Sd(e){return ls({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 ds(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 Id(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Ad(e,t,n,r,o=Date.now()){const s=[];for(const a of n)try{s.push(await r(a))}catch(i){s.push({caseId:a.id,ok:!1,note:`beoordeling mislukt: ${i?.message??String(i)}`})}return ds(e,t,s,o)}const wt=864e5,et=e=>Date.parse([e,"T00:00:00Z"].join("")),Cd=e=>new Date(e).toISOString().slice(0,10);function fs(e,t){const n=et(t.from),r=et(t.to)+wt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let a=new Date(n);;){const i=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1);if(i>=r)break;const u=Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1),c=Math.round((Math.min(u,r)-Math.max(i,n))/wt);o.push({month:Cd(i),share:c/Math.round((u-i)/wt)}),a=new Date(u)}const s=Ce(e,o.map(a=>a.share));return o.map((a,i)=>({month:a.month,cents:s[i]}))}function ps(e){const t=new Date(et(e.from)),n=new Date(et(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Nn=864e5,ht=e=>new Date(e).toISOString().slice(0,10),tt=e=>Date.parse(`${e}T00:00:00Z`);function me(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),a=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,a)),ht(s.getTime())}function Dn(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 a=r;for(let i=1;i<=t;i++){const u=Math.round(a*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;i===t&&(c=a),c=Math.min(c,a),a-=c,s.push({sequence:i,dueOn:me(e.firstDueOn,i-1),interestCents:u,principalCents:c,remainingCents:a})}return s}function vd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,l)=>c.date.localeCompare(l.date));let a=s.filter(c=>c.date<t).reduce((c,l)=>c+l.cents,0),i=s.findIndex(c=>c.date>=t);i<0&&(i=s.length);let u=0;for(let c=tt(t);c<=tt(n);c+=Nn){const l=ht(c);for(;i<s.length&&(s[i]?.date??"")<=l;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function Td(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),a=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,i=[];let u=`${o}-${String(a).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const l=me(u,r);i.push({sequence:c,from:u<e?e:u,to:ht(tt(l)-Nn)}),u=l}return i}const ms=5e7,kd=["director","group_company","participation","other_company"],Od=e=>e?.relation&&kd.includes(e.relation)?e.relation:"director";function Md(e,t=ms){return{over:e>t,ratio:Math.max(0,e)/t}}function Rd(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Dn(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 gs(e){return ht(tt(me(`${e.slice(0,7)}-01`,1))-Nn)}function wn(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 hs(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:gs(me(n,u))})).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)}))}const vr=600;function ys(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 wn(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),a=[];let i=n;for(;i>e.residualCents&&a.length<vr;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===vr-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function Nd(e,t){const n=e.terms;if(n.disposal)return[];const r=ys(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return hs(e.id,r,n.restart?.fromMonth??n.acquiredOn,t,(s,a)=>[{accountId:n.depreciationAccountId,amountCents:s,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-s,subAccountId:e.id,description:`Afschrijving ${a}/${o}`}],s=>`Afschrijving ${s}/${o}`,n.restart?.fromSequence??1)}function Dd(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,a)=>s+a.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function wd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return hs(e.id,n.period?fs(n.totalCents,n.period).map(o=>o.cents):wn(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 xd(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Pd(e,t){const n=me(t,12);return Dn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Ld(e,t){const n=e.terms,r=n.quantity??1,o=d=>Math.round(d*t.quantity/r),s=o(n.costCents),a=o(n.residualCents),i=o(-t.movementsCents),u=[],c=`${e.name} (${t.quantity}/${r})`;i&&u.push({accountId:n.accumulatedAccountId,amountCents:i,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 l=u.reduce((d,f)=>d+f.amountCents,0);return l&&u.push({accountId:t.disposalAccountId,amountCents:-l,description:c}),{lines:u,costCents:s,residualCents:a}}const bs={NL:45e3},$d=(e,t)=>t??bs[(e??"NL").toUpperCase()],Kd=[{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"}],_s=36e5,Es=864e5,ee=-1/0,Ud=e=>e.score>ee,Se={urgent:40,high:25,normal:10,low:0};function Bd(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Fd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ss=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Is(e,t){return!!(e&&Fd.test(e)||t&&Ss.test(t))}const As=3,Cs=600;function jd(e,t){return e>=As||t>=Cs}const vs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Gd(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&vs.includes(r)&&(t[r]=n.value)}return t}const Wd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Vd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function Hd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Wd.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&&Ss.test(e.body)||n&&Vd.test(n))return"marketing"}function Ts(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const ks=["open"],Os=1e3,Ms=72;function Rs(e){return e.lastActivityAt??(e.createdAt?new Date(po(e)).getTime():0)}function Ns(e,t){return Ds(t.remindersById?.[e.id],e,t.now)}function Ds(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ws=e=>co(e)==="outbound_message",xs=e=>ks.includes(e);function yt(e,t){return Math.max(0,(t-Rs(e))/_s)}function Ps(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function qd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Yd(e,t,n){if(!xs(e.status)||e.firstResponseAt)return!1;const r=Ps(e,n);return r!==void 0&&yt(e,t)>r}function Ls(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ws(n.type)?!1:yt(e,t)<Ms}function zd(e,t){if(!xs(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ls(e,t.now))return{score:ee,reasons:[]};if(Ns(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Se[o]>0&&(n+=Se[o],r.push(`priority:${o}`)),Ts(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=yt(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 a=e.lastActivityPreview;return a?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),a?.direction==="outbound"&&ws(a.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")||Is(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Os,r.push("bulk")),{score:n,reasons:r}}const Xd=e=>!!e.assignedUserId||!!e.assignedInboxId,Qd=e=>e.status==="closed",Zd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Jd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,$s=[{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}],ef=["duplicate","spam"],tf="c_";function nf(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...$s,...t]}function rf(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function of(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 sf="article",nt=[{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 Ks(e){const t=(e??"").toLowerCase();return nt.find(n=>n.code===t)??nt.find(n=>n.code===t.split("-")[0])}function af(e){return Ks(e)?.label??e}function cf(e){const t=Ks(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const xn=3;function Us(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>xn+1))return 1/0;o=t.get(o)?.parentId}return r}function uf(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(a=>[a.id,a]));if(!r.has(e)||t&&Bs(e,t,r))return!1;const o=Us(e,r),s=t?Pn(t,n):1;return o+s<=xn}function Bs(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 Pn(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=>Pn(o.id,t,n))):1}const Fs="en";function js(e){return e.defaultLocale||e.locale||Fs}function lf(e){const t=new Set,n=[];for(const r of[js(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function df(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 ff(e,t){const n=i=>`${i.level}:${i.key}`,r=new Map((t?.rows??[]).map(i=>[n(i),i])),o=e.rows.map(i=>({...i,priorCents:r.get(n(i))?.amountCents??0})),s=new Set(o.map(n)),a=t?.rows??[];return a.forEach((i,u)=>{if(s.has(n(i)))return;const c=a.slice(0,u).reverse().find(f=>f.level<i.level);let l=o.length;const d=c?o.findIndex(f=>n(f)===n(c)):-1;if(d>=0)for(l=d+1;l<o.length&&(o[l]?.level??0)>(c?.level??0);)l+=1;o.splice(l,0,{...i,amountCents:0,priorCents:i.amountCents}),s.add(n(i))}),o}function pf(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 mf=["revenue","expense"],Te=e=>mf.includes(e.type),gf=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Gs(e,t,n,r){const o=new Map;for(const a of[...e].sort((i,u)=>i.code.localeCompare(u.code))){if(!t(a))continue;const i=gf(a),u=a.reportGroup??i,c=o.get(i)??new Map;c.set(u,[...c.get(u)??[],a]),o.set(i,c)}const s=[];for(const[a,i]of o){const u=n(a),c=d=>u==="debit"?t(d):-t(d),l=[...i.values()].flat().reduce((d,f)=>d+c(f),0);s.push({key:a,label:r(a),level:0,side:u,amountCents:l});for(const[d,f]of i){s.push({key:d,label:r(d),level:1,side:u,amountCents:f.reduce((m,b)=>m+c(b),0)});for(const m of f)s.push({key:m.code,label:`${m.code} ${m.name}`,level:2,side:u,amountCents:c(m),accountId:m.id})}}return s}function hf(e,t,n,r=o=>o){const o=e.filter(Te),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},a=Gs(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),i=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:a,totals:{resultCents:i},source:"finance"}}function yf(e,t,n,r,o=s=>s){const s=e.filter(l=>!Te(l)),i=Gs(s,l=>t.get(l.id)?.closingCents??0,l=>l==="assets"?"debit":"credit",o);if(r){i.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const l=i.find(d=>d.level===0&&d.key==="equity");l?l.amountCents+=r:i.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=i.filter(l=>l.level===0&&l.side==="debit").reduce((l,d)=>l+d.amountCents,0),c=i.filter(l=>l.level===0&&l.side==="credit").reduce((l,d)=>l+d.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:i,totals:{debitCents:u,creditCents:c},source:"finance"}}function bf(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=Te(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 _f(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(i,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const i of t){const u=Math.max(0,Math.floor((Date.parse(`${i.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(i.cents>=0?c.inCents+=i.cents:c.outCents-=i.cents)}let a=e;for(const i of s)a+=i.inCents-i.outCents,i.closingCents=a;return s}function Ef(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const a=t.get(s.accountId);!a||!Te(a)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,a]of[...n.entries()].sort(([i],[u])=>i.localeCompare(u)))a&&(r.push({accountId:s,amountCents:-a,functionalCents:-a,currency:e.currency}),o+=a);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const I=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Ws={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[I("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),I("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),I("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),I("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),I("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),I("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),I("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),I("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),I("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),I("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),I("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),I("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),I("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),I("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),I("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),I("1000","Kas","asset","assets.current.cash","BLimKasKas"),I("1100","Bank","asset","assets.current.cash","BLimBanRba"),I("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),I("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),I("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),I("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),I("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),I("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),I("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),I("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),I("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),I("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),I("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),I("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),I("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),I("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),I("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),I("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),I("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),I("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),I("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),I("4000","Lonen","expense","costs.personnel","WPerLesLon"),I("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),I("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),I("4100","Huur","expense","costs.housing","WBedHuiBeh"),I("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),I("4200","Autokosten","expense","costs.car","WBedAutOak"),I("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),I("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),I("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),I("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),I("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),I("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),I("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),I("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),I("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),I("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),I("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),I("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),I("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),I("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),I("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),I("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),I("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),I("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),I("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),I("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),I("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),I("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),I("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),I("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),I("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),I("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"}]},Sf=[Ws],Vs={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function If(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,a)=>s+a.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 a=o.get(s.accountId);a?a.archived?n.push({code:"entry_account_archived",params:{account:a.code}}):a.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:a.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 Af(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Cf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function vf(e){const t={};for(const n of Cf)e[n]!==void 0&&(t[n]=e[n]);return t}function nn(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(nn).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)+":"+nn(r)).join(",")+"}"}function Tf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Hs(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,a)=>s.order-a.order),o=s=>r.find(a=>s(a.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 kf(e){if(!e)return{};const{projectId:t,costCenterId:n,...r}=e;return{...t?{projectId:t}:{},...n?{costCenter:n}:{},...Object.keys(r).length?{dimensions:r}:{}}}function Of(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&ps(t.period)>1?[{index:n,period:t.period}]:[])}function Mf(e,t){const n=e.kind==="journal"?Df(e,t):Nf(e,t);return n.ok?Rf(n,e,t.functionalCurrency??"EUR"):n}function Rf(e,t,n){if(!t.currency||t.currency===n)return e;const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=e.lines.map(a=>({...a,functionalCents:Math.round(a.amountCents*r)})),s=o.reduce((a,i)=>a+i.functionalCents,0);return o[0]={...o[0],functionalCents:o[0].functionalCents-s},{...e,lines:o}}function Nf(e,t){const n=b=>t.accounts.find(g=>g.role===b&&!g.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"),a=n(r?"vat_payable":"vat_receivable"),i=r?-1:1,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,l=[],d=new Map;for(const b of e.lines){const g=b.accountKey??Hs(b,t.rules,e)?.accountId??s?.id;if(!g)return{ok:!1,problem:"no_account_for_line"};l.push({...u,accountId:g,amountCents:i*b.netCents,functionalCents:i*b.netCents,taxCode:b.taxRateKey,taxCents:i*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...kf(b.dimensions)}),b.taxCents&&d.set(b.taxRateKey,(d.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,g]of d){const E=t.taxAccounts.find(y=>y.taxKey===b),h=(r?E?.payableAccountId:E?.receivableAccountId)??a?.id;if(!h)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:h,amountCents:i*g,functionalCents:i*g,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,g)=>b+g.netCents+g.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-i*f,functionalCents:-i*f});const m=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:m||e.documentId}}function Df(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??Hs(o,t.rules,e)?.accountId??n(Vs[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const a=Math.round(Number(o.amountCents)||0);a&&r.push({accountId:s,amountCents:a,functionalCents:a,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 xt=e=>String(e).padStart(2,"0"),wf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function xf(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,a=e+Math.floor(s/12),i=s%12+1;return{fiscalYear:n,index:o+1,from:`${a}-${xt(i)}-01`,to:`${a}-${xt(i)}-${xt(wf(a,i))}`,status:"open"}})}function Pf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const qs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Lf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ys=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ln=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ys(Ln(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Pt=e=>e<0?"C":"D",Tr=e=>Ln(e.replace(/-/g,""),35);function $f(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="',qs,'">',"<header>",A("fiscalYear",e.fiscalYear.replace("/","-")),A("startDate",e.startDate),A("endDate",e.endDate),A("curCode",e.currency),A("dateCreated",e.createdOn),A("softwareDesc",e.software.desc,50),A("softwareVersion",e.software.version,20),A("RGSVersion",e.rgsVersion,20),"</header>","<company>",A("Commercenr",e.company.commerceNr,100),A("companyName",e.company.name,255),A("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ys(Ln(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",A("streetname",s.street,100),A("number",s.number,15),A("city",s.city,50),A("postalCode",s.postalCode,10),A("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",A("custSupID",Tr(c.id)),A("custSupName",c.name,50),A("commerceNr",c.commerceNr,100),A("taxRegistrationCountry",c.country),A("taxRegIdent",c.vatNumber,30),A("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((l,d)=>l.code.localeCompare(d.code))){const l=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",l?"P":"B"),A("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",A("vatID",c.key,35),A("vatDesc",c.label,100),A("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),A("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((l,d)=>l.index-d.index))o("<period>",A("periodNumber",c.index),A("startDatePeriod",c.from),A("endDatePeriod",c.to),"</period>");o("</periods>");const a=e.opening.filter(c=>c.cents!==0);if(a.length){const c=a.filter(d=>d.cents>0).reduce((d,f)=>d+f.cents,0),l=-a.filter(d=>d.cents<0).reduce((d,f)=>d+f.cents,0);o("<openingBalance>",A("linesCount",a.length),A("totalDebit",Z(c)),A("totalCredit",Z(l))),a.forEach((d,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(d.accountId)??d.accountId),A("amnt",Z(d.cents)),A("amntTp",Pt(d.cents)),"</obLine>")}),o("</openingBalance>")}const i=e.entries.flatMap(c=>c.lines);o("<transactions>",A("linesCount",i.length),A("totalDebit",Z(i.filter(c=>c.functionalCents>0).reduce((c,l)=>c+l.functionalCents,0))),A("totalCredit",Z(-i.filter(c=>c.functionalCents<0).reduce((c,l)=>c+l.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 l=u.get(c.id);if(l?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",Lf[c.kind]));for(const d of[...l].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",d.number,35),A("desc",d.description),A("periodNumber",n.get(d.periodId)??0),A("trDt",d.date),A("Source",d.source.app+(d.source.kind?" "+d.source.kind:""),999),A("User",d.postedBy,999)),d.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,d.date),g=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",d.source.number??d.number,255),A("effDate",f.taxPointDate??d.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Pt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Tr(f.counterpartyCompanyId)),A("invRef",d.source.number,255),A("cost",f.costCenter,999),A("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+A("vatID",f.taxCode,35)+A("vatPerc",b)+A("vatAmnt",Z(f.taxCents))+A("vatAmntTp",Pt(f.taxCents))+"</vat>":"",g?"<currency>"+A("curCode",f.currency)+A("curAmnt",Z(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
-
`)}const Kf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Uf(e){const t=V(e,"ledgerAccount").map(i=>{const u=k(i,"RGScode")??k(i,"leadCode");return{code:k(i,"accID")??"",name:k(i,"accDesc")??"",kind:k(i,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=i=>{const u=k(i,"accID");u&&(n[u]=(n[u]??0)+Kf(k(i,"amnt"),k(i,"amntTp")))};for(const i of V(e,"obLine"))r(i);for(const i of V(e,"trLine"))r(i);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),a=k(o,"endDate");return{accounts:t.filter(i=>i.code),closing:n,...s?{fiscalYear:s}:{},...a?{endDate:a}:{}}}function Bf(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 rn=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!rn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${rn.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Pe(n);if(r)return r}if(t.type==="for-each"){const n=Pe(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Pe(t.else??[]);if(n)return n}}return null}function Ff(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 jf(e,t){return e.filter(n=>n.enabled&&Ff(n.ownerScope,t))}function Gf(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Wf(e){return`mcp__${e}__`}const Vf=1e3,Hf=2e3,qf=500,Yf=12e3,zf=4e3,zs=["contact","company","work_item"];function Xf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return zs.includes(t)}const Qf=[{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 Xs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Zf=[{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 $n(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Jf(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:$n(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const kr=/^\d{4}-\d{2}-\d{2}$/;function ep(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(!kr.test(r.validFrom)||r.validTo&&!kr.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 bt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=P(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?dt(n,e.pricePer,e.servicePeriod):n}function tp(e,t,n){const r=e.map(c=>({...c,netCents:bt(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const l=n??r[c].taxRateKey,d=o.get(l);d?d.push(c):o.set(l,[c])}const s=[];let a=0,i=0;for(const[c,l]of o){const d=Xs(c,t),f=l.reduce((g,E)=>g+r[E].netCents,0),m=P(f*d.percent/100),b=Ce(m,l.map(g=>r[g].netCents));for(let g=0;g<l.length;g++)r[l[g]].taxCents=b[g];s.push({taxRateKey:c,percent:d.percent,kind:d.kind,netCents:f,taxCents:m}),a+=f,i+=m}const u=r.reduce((c,l)=>l.costPriceCents==null||l.optional?c:c+P(l.costPriceCents*l.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const np="onboarding-source",rp=["support","billing","availability","sales","onboarding"],op=["keep","replace"],_t=[{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"}],Qs={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=_t){return t.find(n=>n.key===e)??{...Qs,key:e}}function pe(e){return e==="published"||e==="approved"}function Kn(e,t,n=_t){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function sp(e,t=_t){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const ip=864e5;function Zs(e,t){return Math.round((t-e)/ip)}function Un(e,t){const n=e.cycleMinutes.length;return n===0?0:(Zs(e.anchor,t)%n+n)%n}function Bn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[Un(e,t)]??0}function Fn(e,t){return e.startTimes?.[Un(e,t)]}function jn(e,t,n,r){const o=e.filter(i=>i.effectiveFrom===void 0||i.effectiveFrom<=r),s=i=>i.sort((u,c)=>(c.effectiveFrom??0)-(u.effectiveFrom??0))[0],a=s(o.filter(i=>i.userId===t));return a||s(o.filter(i=>!i.userId&&i.teamId&&n.includes(i.teamId)))}function Js(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 on=864e5;function ap(e){const t=Math.max(1,Math.round((e.to-e.from)/on));return Array.from({length:t},(n,r)=>e.from+r*on)}function sn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Or={interval:0,day:1,week:2};function cp(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).capacity),a=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).absent),i=t.userIds??[...new Set([...s.map(d=>d.userId),...r.map(d=>d.userId),...o.map(d=>d.userId)])].filter(d=>!!d),u={};let c="interval";const l=d=>{Or[d]>Or[c]&&(c=d)};for(const d of i){const f=t.teamIdsOf?.(d)??[];let m=0,b=0,g=0;for(const y of ap(e)){const p=Math.max(y,e.from),S=Math.min(y+on,e.to);g++;const T=s.filter(D=>D.userId===d).reduce((D,G)=>D+sn(G.start,G.end,p,S),0);if(T>0){m+=T;continue}const C=jn(r,d,f,y),R=C?Bn(C,y):0;if(C&&R>0){m+=R*60,l(Fn(C,y)?"interval":"day");continue}C||b++}if(b>0){const y=Js(o,d,e.from);y&&(m+=y.weeklyMinutes*60*(b/7),l("week"))}const E=a.filter(y=>y.userId===d).reduce((y,p)=>y+sn(p.start,p.end,e.from,e.to),0),h=Math.max(0,m-E);(h>0||g>0)&&(u[d]=h)}return{seconds:Object.values(u).reduce((d,f)=>d+f,0),precision:c,byUser:u}}function up(e,t){if(!e.some(i=>i.userId))return[];const n="",r=new Map;for(const i of e){const u=i.userId??n;r.set(u,(r.get(u)??0)+i.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(i=>i!==n)])].map(i=>{const u=r.get(i)??0,c=t.byUser[i]??0;return{userId:i,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((i,u)=>i.netSeconds-u.netSeconds);const a=r.get(n)??0;return a>0&&s.push({requiredSeconds:a,capacitySeconds:0,netSeconds:-a}),s}function lp(e,t,n,r){const o=e.filter(a=>a.userId&&pe(a.status)&&!q(a.kindKey).absent),s=Object.entries(r.byUser).map(([a,i])=>{let u=0,c=0;for(const l of o){if(l.userId!==a||q(l.kindKey).capacity&&!l.workstreamId)continue;const d=sn(l.start,l.end,n.from,n.to);d<=0||(Kn(l,t)?u+=d:c+=d)}return{userId:a,capacitySeconds:i,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,i-u-c)}});return s.sort((a,i)=>i.freeSeconds-a.freeSeconds),s}const dp="demand-source",Mr=1e3;function fp(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ei(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=fp(e,t),r=t/e;return n/(1-r*(1-n))}function ti(e,t,n,r){return r<=0?1:e<=t?0:1-ei(e,t)*Math.exp(-(e-t)*n/r)}function ni(e,t,n){return n<=0?0:e*t/n}function ri(e,t,n,r){if(e<=0||t<=0)return 0;const o=ni(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,a=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let i=Math.max(1,Math.ceil(o));i<=Mr;i++)if(!(i<=o)&&!(ti(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return Mr}const pp=36e5,mp=864e5;function gp(e){return e==="day"?mp:pp}function hp(e,t){return e.start<t.end&&t.start<e.end}function Le(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function oi(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,a=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const i=ri(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function yp(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=gp(a),u=i/1e3,c=e.kinds,l=t.filter(g=>pe(g.status)),d=l.filter(g=>Kn(g,n,c)),f=l.filter(g=>q(g.kindKey,c).capacity),m=l.filter(g=>q(g.kindKey,c).absent),b=[];for(let g=fe(s.from,a);g<s.to;g+=i){const E=g+i,h=de(g,a);let y=0;for(const D of d)y+=Le(D,g,E);let p=0;for(const D of f)p+=Le(D,g,E);let S=0;for(const D of m)S+=Le(D,g,E);const T=o?.[h]??{},C=oi(T,r,u),R=y/u;b.push({period:h,forecastVolume:T.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:y,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:S})}return b}function si(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function bp(e,t,n){const r=si(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function _p(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Ep=36e5,an=6048e5,ii=8,Sp=.5,Ip=2;function Ap(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 Cp(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*an,i=a-an;let u=0,c=!1;for(const[l,d]of e)l>=i&&l<a&&(u+=d,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o<=0?1:Math.min(Ip,Math.max(Sp,r[0]/o))}function vp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Tp(e,t,n){const r=Math.max(1,n?.weeks??ii),o=new Map,s=new Set;for(const u of e)o.set(Ap(u.period),u.value),s.add(u.period.slice(0,10));const a=Cp(o,fe(t.from,"hour"),r),i=[];for(let u=fe(t.from,"hour");u<t.to;u+=Ep){let c=0,l=0;for(let m=1;m<=r;m++){const b=u-m*an,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const h=r-m+1;c+=E*h,l+=h}let d=l>0?c/l*a:0;const f=vp(n?.adjustments,u);f?.absoluteVolume!==void 0?d=f.absoluteVolume:f?.factor!==void 0&&(d*=f.factor),i.push({period:de(u,"hour"),volume:d})}return i}const ai="schedule_entry",ci="workstream";function kp(e){return`${ai}:${e}`}function Op(e){return`${ci}:${e}`}const cn=36e5,le=864e5;function Mp(e,t){const n=t==="day"?le:cn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Rr(e){const t=Math.max(1,Math.round((e.to-e.from)/le));return Array.from({length:t},(n,r)=>e.from+r*le)}function Lt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Rp(e,t,n={}){const r=n.grain??"hour",o=Mp(t,r),s=r==="day"?le:cn,a=new Map(o.map(d=>[d,0])),i=e.filter(d=>d.userId&&q(d.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const d of i)if(!(u&&d.userId&&!u.has(d.userId))){for(const f of o){const m=Lt(d.start,d.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of Rr(t))Lt(d.start,d.end,f,f+le)>0&&c.add(`${d.userId}:${f}`)}const l=n.userIds??[...new Set([...i.map(d=>d.userId),...(n.patterns??[]).map(d=>d.userId)])].filter(d=>!!d);if(n.patterns?.length)for(const d of l){const f=n.teamIdsOf?.(d)??[];for(const m of Rr(t)){if(c.has(`${d}:${m}`))continue;const b=jn(n.patterns,d,f,m);if(!b)continue;const g=Bn(b,m);if(g<=0)continue;const E=Fn(b,m);if(E){const[p,S]=E.split(":").map(Number),T=m+p*cn+(S??0)*6e4,C=T+g*6e4;for(const R of o){const D=Lt(T,C,R,R+s);D>0&&a.set(R,(a.get(R)??0)+D)}continue}const h=o.filter(p=>p>=m&&p<m+le);if(!h.length)continue;const y=g*60/h.length;for(const p of h)a.set(p,(a.get(p)??0)+y)}}return o.map(d=>({period:de(d,r),weight:a.get(d)??0}))}function ui(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 Np(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(i=>n(i.period)<o.by):t,a=s.length?s:t;for(const i of ui(o.seconds,a)){const u=`${i.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=i.seconds:r.set(u,{...i,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function li(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Dp(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 di(e){return li(e)}function fi(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 wp(e){return e.agentId?{kind:"user",userId:e.agentId}:fi(e.ownerScope)}function xp(e){return di(e)}const pi="playbook-run",Pp="run";function Lp(e,t=0){return`${pi}:${e}~${t}`}function $p(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function mi(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 Kp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Up(e,t){if(t)return e.targets.find(n=>n.id===t)}function gi(e){return e?.kind==="assignment"}function Bp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return gi(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":a&&a===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 un=["suggest","outward","auto"];function Fp(e){return typeof e=="string"&&un.includes(e)}function jp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Gp(e,t){const n=e??"suggest";return t&&un.indexOf(t)<un.indexOf(n)?t:n}function Wp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function hi(e){const t=e.split("__");return t[t.length-1]||e}function Vp(e){const t=hi(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Hp=[{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 qp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Yp={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 Gn(e){return`${e.type}:${e.id}`}function zp(e){return[Gn(e),e.lineId].join("#")}function Xp(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Qp(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const yi="interaction";function bi(e){return e?.type===yi?e.id:void 0}const _i=64,Ei=8e3;function Zp(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),_i),Ei)}const Jp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],em={kind:"workflow",steps:[]};function tm(e){return e?.kind==="workflow"?e.steps:[]}function nm(e){return e?.kind==="procedure"?e.procedure:void 0}function rm(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Si(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ii=10,Ai=.9;function om(e){const{total:t,rate:n}=Si(e);return t>=Ii&&n>=Ai}const Ci=["done","escalated","failed","stopped"];function sm(e){return Ci.includes(e)}function vi(e){return e==="waiting"}function im(e){return e==="running"||vi(e)}function Wn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function am(e){const t=Wn(e);return t?Gn(t):void 0}function cm(e){return bi(Wn(e))}const $t=864e5;function um(e,t){return e.lines.flatMap(n=>{const r=ft(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=bt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ti(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const Nr=e=>e.seriesId??e.id;function lm(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function dm(e,t,n,r={}){const o=(r.noticeDays??30)*$t,s=(r.windowDays??7)*$t,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(Nr(c),[...u.get(Nr(c))??[],c]);for(const c of u.values()){const l=lm(i,c,n),d=U(i,l);if(d.to!=null&&d.to<=n)continue;const f={contractId:i.id,lineId:l.id},m=l.commitment??i.commitment,b=En(i,c),g=d.to??Ee(b,m,n);if(l.customerCompanyId){const y=l.salesLine?t.find(p=>p.agreementId===l.salesLine?.agreementId&&p.seriesId===l.salesLine?.seriesId):void 0;y?y.ended?a.push({kind:"not_covered",...f,reason:"sales_ended"}):(l.quantity.from==="fixed"&&y.quantity!=null&&y.quantity!==l.quantity.value&&a.push({kind:"not_covered",...f,reason:"quantity"}),y.unbilled.length&&a.push({kind:"not_billed",...f,windows:y.unbilled}),g>y.effectiveEndAt&&a.push({kind:"term_mismatch",...f,purchaseEnd:g,salesEnd:y.effectiveEndAt})):a.push({kind:"not_covered",...f,reason:"no_sales_line"})}const E=!!m&&m.termMonths>=3&&(m.renew==="term"||n<Ee(b,{...m,renew:"none"},b)),h=d.to==null&&E?In(b,m,n):null;if(h!=null&&h-n<=o&&a.push({kind:"notice_due",...f,deadline:h}),m&&m.termMonths>=1&&l.changeWindowDays){const y=Sn(b,m,n)+l.changeWindowDays*$t;y>n&&y-n<=s&&a.push({kind:"change_window",...f,closesAt:y})}if(l.expected==="variable"&&l.invoiced&&l.invoiced.length>=2){const y=[...l.invoiced].sort((S,T)=>S.from-T.from),p=y[y.length-1];Ti(y.slice(0,-1).map(S=>S.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function ki(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function fm(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}function Oi(e,t,n){const r=[];for(const o of e.lines){const s=t.find(i=>i.id===o.poLineId),a=ki(o.poLineId,n);(!s||e.movement==="in"&&a+o.quantity>s.quantity)&&r.push({code:"receipt_over_ordered",poLineId:o.poLineId}),e.movement==="return"&&o.quantity>a&&r.push({code:"receipt_return_over_received",poLineId:o.poLineId}),o.serials.length&&o.serials.length!==Vn(s??{},o.quantity)&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function pm(e){return e.map(t=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(n=>String(n).trim()).filter(Boolean))],...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Mi(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ri(e,t){const n=e.filter(r=>Mi(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Vn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function Ni(e){return{cents:P(e.costCents/Vn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function mm(e){const t=Ni(e);return t.per?dt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const gm=864e5,ln=e=>e.seriesId??e.id;function Dr(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>U(e,r).from>n).sort((r,o)=>U(e,r).from-U(e,o).from)[0]??t[t.length-1]}function wr(e){const t=new Map;for(const n of e)t.set(ln(n),[...t.get(ln(n))??[],n]);return t}function hm(e){const{now:t}=e,n=[],r=(i,u)=>{const c=U(i,u);return i.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(i=>[...wr(i.lines).values()].map(u=>({contract:i,line:Dr(i,u,t),start:En(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of wr(i.lines).values()){const c=Dr(i,u,t);if(c.quantity.from!=="fixed")continue;const l=Ri(e.offers.filter(C=>C.productId===c.productId&&(C.businessEntityId||"")===(i.businessEntityId||"")),t);if(!l)continue;const d=ln(c),f=["demand:",i.id,"#",d].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===i.id&&C.line.salesLine.seriesId===d&&r(C.contract,C.line)),b=U(i,c),g={key:f,level:"item",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:c.productId,name:c.name,customerCompanyId:i.companyId,salesLine:{agreementId:i.id,seriesId:d}};if(b.to!=null){if(!m)continue;const C=m.line.commitment??m.contract.commitment,R=Ee(m.start,C,t),D=C&&C.termMonths>=1?ne(m.start,C,t):R,G=In(m.start,C,t);n.push({...g,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:R,...G!=null?{deadline:G}:{},...R>D?{nextTerm:!0}:{},...R>b.to?{runsOnUntil:R}:{}});continue}const E=c.quantity.value;if(!m){n.push({...g,action:"purchase",quantity:E});continue}const h=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(h===E)continue;const y={contractId:m.contract.id,lineId:m.line.id};if(E>h){n.push({...g,action:"change",quantity:E-h,targetQuantity:E,from:h,contractLine:y});continue}const p=m.line.commitment??m.contract.commitment,S=m.line.changeWindowDays??0,T=!p||p.termMonths<1||S>0&&t<Sn(m.start,p,t)+S*gm;n.push({...g,action:"change",quantity:h-E,targetQuantity:E,from:h,contractLine:y,...T?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],a=(i,u,c)=>{const l=e.provisionable.get([u.app,u.offer].join(":"));if(i.action!=="purchase"||!l?.requires)return;const d=e.offers.find(g=>g.id===i.offerId)?.businessEntityId||"",f=e.offers.find(g=>(g.businessEntityId||"")===d&&(!c||g.supplierCompanyId===i.supplierCompanyId)&&g.provider?.app===u.app&&g.provider?.offer===l.requires),m=o.some(g=>g.line.offerId===f?.id&&g.line.customerCompanyId===i.customerCompanyId&&r(g.contract,g.line));if(!f||m)return;const b=["account:",i.customerCompanyId,":",f.id].join("");return!e.open.has(b)&&!s.some(g=>g.key===b)&&s.unshift({key:b,action:"purchase",level:"account",supplierCompanyId:f.supplierCompanyId,offerId:f.id,productId:f.productId,name:l.requires,quantity:1,customerCompanyId:i.customerCompanyId}),b};for(const i of n){const u=e.offers.find(l=>l.id===i.offerId),c=u?.provider?.app?a(i,u.provider,!0):void 0;u?.deliverTo?.app&&a(i,u.deliverTo,!1),s.push({...i,...c?{waitsFor:c}:{},...u?.deliverTo?.app?{deliverTo:u.deliverTo}:{}})}return[...s.filter(i=>i.level==="account"),...s.filter(i=>i.level!=="account")]}const Hn=["vendorSku","gtin","description","cost","list","currency","stock","leadDays"],ym={day:864e5,week:7*864e5,month:31*864e5},Di=10;function bm(e,t){const n=(e[0]??[]).map(i=>i.trim().toLowerCase()),r={},o=[];for(const i of Hn){const u=t[i]?.trim();if(!u)continue;const c=n.indexOf(u.toLowerCase());c===-1?o.push(u):r[i]=c}const s=[],a=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((i,u)=>{const c=u+2,l=p=>{const S=r[p];return S===void 0?"":(i[S]??"").trim()},d=l("vendorSku"),f=gt(l("gtin"));if(!d&&!f){a.push({line:c,message:"feed_row_no_key"});return}const m=l("cost")?Wt(l("cost")):void 0;if(l("cost")&&m===void 0){a.push({line:c,message:"feed_row_price"});return}const b=l("list")?Wt(l("list")):void 0,g=l("stock"),E=Number(g.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:g&&/\d/.test(g)&&Number.isFinite(E)?Math.max(0,E):null,y=Number(l("leadDays"));s.push({line:c,...d?{vendorSku:d}:{},...f?{gtin:f}:{},...l("description")?{description:l("description")}:{},...m!==void 0?{costCents:m}:{},...b!==void 0?{listCents:b}:{},...l("currency")?{currency:l("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...l("leadDays")&&Number.isFinite(y)?{leadDays:y}:{}})}),{rows:s,errors:a,missingHeaders:o})}function _m(e,t,n){const r=new Map(t.filter(a=>a.vendorSku).map(a=>[a.vendorSku,a])),o=new Map(t.map(a=>[a.productId,a])),s=new Map;for(const a of n)for(const i of[a.gtin,...a.barcodes??[]]){const u=i?gt(i):void 0;u&&!s.has(u)&&s.set(u,a)}return e.map(a=>{const i=a.vendorSku?r.get(a.vendorSku):void 0;if(i)return{row:a,offer:i};const u=a.gtin?s.get(a.gtin):void 0;if(!u)return{row:a};const c=o.get(u.id);return c?{row:a,offer:c}:{row:a,product:u}})}function Em(e,t,n,r=Di){const o=new Map,s=[];let a=0;for(const u of e){const{row:c}=u;if(!("offer"in u)){s.push({line:c.line,...c.vendorSku?{vendorSku:c.vendorSku}:{},...c.gtin?{gtin:c.gtin}:{},...c.description?{description:c.description}:{},...c.costCents!==void 0?{costCents:c.costCents}:{},..."product"in u?{productId:u.product.id}:{}});continue}const l=u.offer,d={qty:c.stock===void 0?l.availability?.qty??null:c.stock,at:n,source:"feed",...c.leadDays!==void 0?{leadDays:c.leadDays}:{}},f={availability:d};c.costCents!==void 0&&c.costCents!==l.costCents&&(f.costCents=c.costCents),c.listCents!==void 0&&c.listCents!==l.listCents&&(f.listCents=c.listCents),c.currency&&c.currency!==l.currency&&(f.currency=c.currency),c.vendorSku&&!l.vendorSku&&(f.vendorSku=c.vendorSku),Object.keys(f).length>1||d.qty!==(l.availability?.qty??null)||a++;const b=f.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(f.costCents-l.costCents)/l.costCents*1e3)/10:0;o.set(l.id,{offerId:l.id,set:f,...b>r?{jump:{fromCents:l.costCents,toCents:f.costCents,percent:b}}:{}})}const i=t.filter(u=>u.availability?.source==="feed"&&!o.has(u.id)).map(u=>u.id);return{changes:[...o.values()],unchanged:a,gone:i,unmatched:s}}const Sm={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"]};function Im(e){const t=e.map(o=>o.trim()),n=new Set,r={};for(const o of Hn){const s=Sm[o],a=t.find(i=>!n.has(i)&&s.includes(i.toLowerCase()))??t.find(i=>!n.has(i)&&s.some(u=>i.toLowerCase().startsWith(u)));a&&(r[o]=a,n.add(a))}return r}const wi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Am="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function xi(e){const t=[];for(const n of e){const r=K(n.sku)||K(n.description),o=t.find(s=>(K(s.sku)||K(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Cm(e,t){const n=K(e.orderRef),r=K(e.supplierRef);return n&&t.find(o=>K(o.number)===n)||n&&t.find(o=>K(o.reference)===n)||r&&t.find(o=>K(o.reference)===r)||null}const Ne={reference:0,sku:1,description:2,loose:3};function qn(e,t,n){const r=K(e.externalRef);if(r&&K(t.externalRef)===r)return{via:"reference",rank:Ne.reference};if(r&&t.externalRef)return null;const o=K(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>K(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Ne.sku};const s=K(e.description),a=K(t.name);return!s||!a?null:s===a?{via:"description",rank:Ne.description}:a.includes(s)||s.includes(a)?{via:"description",rank:Ne.loose}:null}function Pi(e,t,n){const r=t.filter(i=>i.kind==="product"),o=new Set,s=[],a=[];return e.forEach((i,u)=>{let c=null;for(const l of r){if(o.has(l.id))continue;const d=qn(i,l,n);d&&(!c||d.rank<c.rank)&&(c={line:l,...d})}if(!c){a.push(u);return}o.add(c.line.id),s.push({docIndex:u,poLineId:c.line.id,via:c.via})}),{matches:s,unmatched:a}}function vm(e,t,n,r){const o=xi(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=Pi(o,t.lines,n),i=s.map(c=>({poLineId:c.poLineId,quantity:o[c.docIndex].quantity,serials:o[c.docIndex].serials,docIndex:c.docIndex,via:c.via})),u=[...Oi({movement:"in",lines:i},t.lines,r).filter(c=>c.code!=="receipt_return_over_received").map(c=>({code:c.code,poLineId:c.poLineId,docIndex:i.find(l=>l.poLineId===c.poLineId)?.docIndex})),...a.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:i,problems:u}}function Tm(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const a=Number(String(s?.quantity??"").replace(",",".")),i=n(s?.description);if(!(a>0)||!i&&!n(s?.sku))return[];const u=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:i,quantity:a,serials:u}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const km=864e5,xr=e=>Date.parse([e,"T00:00:00Z"].join(""));function Om(e,t,n,r){const o=new Map(t.map(u=>[u.id,u.openQty])),s=[],a=[],i=new Set;for(const u of e){const c=t.map((p,S)=>({candidate:p,order:S,hit:qn(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&i.has(p.candidate.id))).sort((p,S)=>p.hit.rank-S.hit.rank||p.order-S.order);if(!c.length){a.push(u.id);continue}const l=u.period?{from:xr(u.period.from),to:xr(u.period.to)+km}:r,d=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,S,T)=>p.variable?null:bt({kind:"product",quantity:S,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:T}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;i.add(p.id);const S=u.quantity??p.openQty??1;s.push({...d(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:l},via:m.hit.via,quantity:S,amountCents:u.netCents,expectedCents:f(p,S,l),overQuantity:p.openQty!=null&&S!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),g=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let h=g;for(const{candidate:p}of b){if(h<=0)break;const S=Math.max(0,o.get(p.id)??0);if(!S)continue;const T=Math.min(S,h);E.push({candidate:p,quantity:T,over:!1}),o.set(p.id,S-T),h-=T}if(h>0){const p=E[E.length-1];p?(p.quantity+=h,p.over=!0):E.push({candidate:m.candidate,quantity:h,over:!0})}const y=Ce(u.netCents,E.map(p=>p.quantity));E.forEach((p,S)=>{s.push({...d(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:y[S],expectedCents:f(p.candidate,p.quantity,u.period?l:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:a}}const Li={percent:1,cents:100};function Mm(e,t,n=Li){const r=t.map(s=>({receiptLineId:s,issue:"unmatched"})),o=new Map;for(const s of e)o.set(s.receiptLineId,[...o.get(s.receiptLineId)??[],s]);for(const[s,a]of o){if(a.some(l=>l.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),a.some(l=>l.expectedCents===null))continue;const i=a.reduce((l,d)=>l+(d.expectedCents??0),0),u=a.reduce((l,d)=>l+d.amountCents,0),c=Math.max(Math.abs(i)*n.percent/100,n.cents);Math.abs(u-i)>c&&r.push({receiptLineId:s,issue:"price",expectedCents:i,amountCents:u})}return{ok:r.length===0&&e.length>0,issues:r}}function Rm(e){const t=[],n=new Map;for(const r of[...e].sort(Nm)){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 Nm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Dm(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const $i=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function wm(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(p=>[p.key,p])),r=n.get(e.standardKey??"high"),o={},s={},a=(p,S)=>{if(!e.trace||!p||!S.ref)return;const T=s[p]??[];T.includes(S.ref)||(s[p]=[...T,S.ref])};let i;const u=(p,S,T)=>{if(!p||!T)return;const C=o[p]??{};C[S]=(C[S]??0)+T,o[p]=C,i&&a(p,i)},c=new Map,l=new Set;let d=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const S=n.get(p.taxCode);if(!S){l.add(p.taxCode);continue}const T=S.boxes[t]?.[p.side];if(i=p,p.side==="sales")u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",p.taxCents),S.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(S.selfAssessed){const C=r?$n(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",R),d+=R,R&&a("5b",p)}else{const C=Math.round(p.taxCents*(S.deductiblePercent??100)/100);d+=C,C&&a("5b",p)}}const f=$i.filter(p=>p<"5"),m=f.reduce((p,S)=>p+(o[S]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:d},o["5c"]={taxCents:m-d},o["5g"]={taxCents:m-d};const b=p=>Math.trunc(p/100),g=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const S=o[p];S&&(E[p]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const h=f.reduce((p,S)=>p+(E[S]?.tax??0),0),y=g(d);return E["5a"]={tax:h},E["5b"]={tax:y},E["5c"]={tax:h-y},E["5g"]={tax:h-y},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,S])=>({...p?{counterpartyCompanyId:p}:{},baseCents:S})),unknownCodes:[...l],...e.trace?{refs:s}:{}}}function xm(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,a)=>new Date(Date.UTC(s,a,0)).getUTCDate();return Array.from({length:12/n},(s,a)=>{const i=a*n+1,u=i+n-1,c=u===12?e+1:e,l=u===12?1:u+1;return{label:t==="quarter"?`Q${a+1} ${e}`:t==="month"?`${e}-${r(i)}`:String(e),from:`${e}-${r(i)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(l)}-${r(o(c,l))}`}})}class Yn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Pm=/^\{\{\s*([\w.]+)\s*\}\}$/,Lm=/\{\{\s*([\w.]+)\s*\}\}/g,$m=/\$[A-Za-z_][\w]*\.[\w.]+/;function Km(e,t,n={}){return rt(e,t,n)}function rt(e,t,n={}){return typeof e=="string"?Um(e,t,n):Array.isArray(e)?e.map(r=>rt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,rt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Um(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match($m);if(s)throw new Yn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Pm);if(o){const s=Pr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Lm,(s,a)=>{const i=Pr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function Pr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Yn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return Bm(e,t)}function Bm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Fm=new Set(["filled","empty"]);function jm(){return{kind:"rule",op:"==",varPath:"",value:""}}const Gm=new Set(["==","!=",">","<",">=","<="]);function Kt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Lr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ki(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=dn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function dn(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 a=dn(s);if(!a)return null;o.push(a)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Kt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=dn(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!Kt(s)||!Lr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Gm.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(o)||!Lr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function $e(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?$e(e.children[0]):{[e.op]:e.children.map($e)}:e.kind==="not"?{"!":$e(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 Wm(e){const t=Ki(e);return t&&fn(t)||null}function fn(e){if(e.kind==="group"){const t=e.children.map(fn).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${fn(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 Ut=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Vm(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,a]=o.split("/"),i=a===void 0?1:Number(a);if(!Number.isInteger(i)||i<1)return null;let u=t,c=n;if(s!=="*"&&s!==void 0){const[l,d]=s.split("-");if(u=Number(l),c=d===void 0?u:Number(d),!Number.isInteger(u)||!Number.isInteger(c)||(d===void 0&&a!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let l=u;l<=c;l+=i)r.add(l)}return r.size?r:null}function zn(e){const t=e.trim().split(/\s+/);if(t.length!==Ut.length)return null;const n=[];for(let u=0;u<Ut.length;u++){const c=Ut[u],l=t[u];if(!c||l===void 0)return null;const d=Vm(l,c.min,c.max);if(!d)return null;n.push(d)}const[r,o,s,a,i]=n;return i.has(7)&&i.add(0),{minute:r,hour:o,dayOfMonth:s,month:a,dayOfWeek:i,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Hm(e){return zn(e)!==null}function Ui(e,t){const n=zn(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 Bi="@schedule",pn=3;function Fi(e,t,n){const r=[],o=e.depth??0;if(o>=pn)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${pn})`}))};const s={event:e.payload,subject:e.subject??{}},a=[];for(const i of t){if(!i.enabled){r.push({ruleId:i.id,reason:"staat uit"});continue}if(i.trigger.kind==="schedule"){if(e.name!==Bi){r.push({ruleId:i.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:i.id,reason:"tik zonder tijdstip"});continue}if(!Ui(i.trigger.cron,new Date(u))){r.push({ruleId:i.id,reason:`niet aan de beurt (${i.trigger.cron})`});continue}}else if(i.trigger.kind!=="event"){r.push({ruleId:i.id,reason:`trigger "${i.trigger.kind}" draait hier niet`});continue}else if(i.trigger.name!==e.name){r.push({ruleId:i.id,reason:`luistert op ${i.trigger.name}`});continue}if(e.causedByRule===i.id){r.push({ruleId:i.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(i.when??null,s)){r.push({ruleId:i.id,reason:"voorwaarde niet waar"});continue}a.push({rule:i,idempotencyKey:`${e.id}:${i.id}:${i.version}`})}return{matched:a,skipped:r}}function qm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Ym(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Fi(n,r,t),a=o.flatMap(c=>c.rule.then.map(l=>l.action)),i=e.expected?.actions??[];if(a.length===i.length&&a.every((c,l)=>c===i[l]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:a,note:i.length?`verwacht [${i.join(", ")}], kreeg [${a.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${a.join(", ")}]`}}function zm(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function ji(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==zm(e,n))}function Xm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>ji(r,t).length)?"corrected":"kept"}function Qm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Zm(e){return`subject.${e.path}`}function Jm(e,t){return e.events.find(n=>n.name===t)}function eg(e,t){return e.filter(n=>mi(t,n.path)===void 0).map(n=>n.path)}const mn=6e4,tg=36e5,Ie=864e5,Gi=800;function $r(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ie+tg}function ng(e){const t=new Date(e).getUTCFullYear();return e>=$r(t,2)&&e<$r(t,9)}function Wi(e,t){const n=t.dst==="eu"&&ng(e)?60:0;return(t.utcOffsetMinutes+n)*mn}function rg(e){return(e+3)%7+1}function Vi(e,t){const n=Wi(e,t),r=e+n,o=Math.floor(r/Ie);if(!t.days.includes(rg(o)))return null;const s=o*Ie;return{open:s+t.fromMinutes*mn-n,close:s+t.toMinutes*mn-n}}function Hi(e,t){const n=Wi(e,t),r=e+n;return(Math.floor(r/Ie)+1)*Ie-n}function ot(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Gi&&o<t;s++){const a=Vi(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Hi(o,n)}return r}function Et(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Gi;s++){const a=Vi(o,n);if(a){const i=Math.max(o,a.open);if(a.close>i){const u=a.close-i;if(r<=u)return i+r;r-=u}}o=Hi(o,n)}return e+t}function og(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const st=1,it=2,at=4;function sg(e){return e==="snoozed"?st:it}function St(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const ig=["speed_of_answer","first_response","next_response","resolution","close"],ag=["snoozed","waiting_for_customer"],cg=6e4,qi=["speed_of_answer","first_response","next_response"],ug=[...qi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function lg(e,t){return ke(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Kr(e){return ke(e)?{state:"void"}:null}function dg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:ot(n,e.dueAt,r)}}function fg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:Et(n,e.remainingMs,r)}}function pg({event:e,at:t,now:n,clocks:r,profile:o}){const s=St(o),a=Math.min(t,n),i=r.map(h=>({...h})),u=[],c=(h,y)=>{y&&(u.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},l=h=>{for(const y of i)y.metric===h&&c(y,lg(y,a))},d=h=>{for(const y of i)h.includes(y.metric)&&c(y,Kr(y))},f=h=>{for(const y of i)c(y,dg(y,h,a,s))},m=h=>{for(const y of i)c(y,fg(y,h,a,s))},b=h=>i.reduce((y,p)=>p.metric===h?Math.max(y,p.attempt):y,0)+1,g=h=>i.some(y=>y.metric===h&&ke(y)),E=(h,y)=>{const p=o.targets.find(T=>T.metric===h);if(!p)return;const S=p.minutes*cg;u.push({op:"start",metric:h,attempt:b(h),startedAt:y,targetMs:S,dueAt:Et(y,S,s)})};switch(e){case"apply":{for(const h of i)h.profileId!==o.id&&c(h,Kr(h));for(const h of o.targets){if(h.metric==="next_response")continue;i.some(p=>p.metric===h.metric&&p.profileId===o.id)||E(h.metric,a)}break}case"answered":l("speed_of_answer");break;case"outbound":{l("first_response"),l("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(it);break}case"inbound":{m(it),!g("first_response")&&!g("next_response")&&E("next_response",a);break}case"resolved":l("resolution");break;case"closed":l("close"),l("resolution"),d(qi);break;case"reopened":g("resolution")||E("resolution",a),g("close")||E("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(st);break;case"unsnoozed":m(st);break;case"hold":f(at);break;case"unhold":m(at);break;case"discarded":d(ug);break}return u}function Yi(e){return e.state==="running"||e.state==="paused"}function mg(e){return(e.pauseBits&at)!==0}function ct(e,t){const n=St(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-ot(e.dueAt,t,n):ot(t,e.dueAt,n)}function gg(e,t){return e.state==="paused"?Et(t,e.remainingMs,St(e)):e.dueAt}function hg(e,t){const n=e.filter(Yi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>ct(a,t)<ct(s,t)?a:s)}function yg(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=ct(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function bg(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 zi="strategy_item";function Xn(e){return`${zi}:${e}`}function _g(e,t=25){const n=new Set([Xn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Eg(e){return e?[...e.ancestorKeys??[],Xn(e.id)]:[]}const Oe=[{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"}],Xi=999,Qi=7;function Zi(e,t=Oe){return t.find(n=>n.key===e)}function ut(e,t=Oe){return Zi(e,t)?.order??Xi}function Sg(e,t,n=Oe){return ut(t,n)<=ut(e,n)}function Ig(e,t=Oe){const n=ut(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Ag(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 gn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Cg(e){return gn[e]??"open"}function vg(e){return Object.keys(gn).filter(t=>e.includes(gn[t]))}const Tg=864e5,It=e=>e<=0?0:e>1?1:e;function kg(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,a=o-r;return(n==="down"?a<0:a>0)?It((t-r)/a):s?1:0}function Og(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return It((t-n)/(r-n))}const Ji=.1,ea=.25;function Mg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ea?"off_track":n>=Ji?"at_risk":"on_track"}function Rg(e,t){if(t)return It(e/t)}function Ng(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return It(t.reduce((n,r)=>n+r,0)/t.length)}function Dg(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Qi)*Tg,o=t-n-r;return o>0?o:0}function wg(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function xg(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 Pg(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Lg(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 $g(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Kg(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 ta(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ug(e,t){const n=ta(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 Bg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Fg(e){return e.filter(t=>!t.archived).sort(na)}function na(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const ra=20,oa=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function sa(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ke)return t;const n=t.slice(0,Ke),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ke*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function jg(e,t){const n=sa(t.text),r=te(n);if(!r||(e.examples??[]).some(a=>te(a)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(a=>te(a.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const a=[...o];return a[s]={...a[s],corrected:!0,addedAt:t.addedAt},Ur(a)}return Ur([{...t,text:n},...o]).slice(0,oa)}function Ur(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Gg(e,t){const n=te(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>te(s)===n)?r:[...r,t].slice(-ra),exampleCandidates:ia(e,t)}}function ia(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function aa(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Wg(e,t){return e.filter(n=>aa(n,t))}const ca=["apps","settings","wake"],At="businessEntityId";function Vg(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...ua.map(s=>s.key),...ca,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Hg({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],a=i=>!!i&&(s.includes(i)||r&&i!=="apps"&&o.visible.includes(i));return a(t)?t:a(n)?n:s[0]??"apps"}const ua=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function qg(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,a,...i]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...a?{app:a}:{},path:`/${i.join("/")}${o}`}}function Yg({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const Ct=[{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"}],la=[...Ct,...wi],Qn=["quote","order","invoice","credit_note"];function zg(){const e=new Map;for(const t of Ct)Qn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return la.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Xg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function da(e,t){return F(e).transitions[t]??[]}function Qg(e,t,n){return da(e,t).includes(n)}const fa=["invoice","credit_note"];function Zg(e){return!!e.issuedAt&&fa.includes(e.kindKey)}function Jg(e,t,n="sales"){const r=i=>e.totals?.byRate?.find(u=>u.taxRateKey===i),o=e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),a=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${F(e.kindKey).path}/${e.id}?${At}=${encodeURIComponent(e.businessEntityId)}`}:{},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:J(e.issuedAt??Date.now()),...a?{taxPointDate:J(a)}:{},...e.dueAt?{dueDate:J(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const u=e.taxOverrideKey??i.taxRateKey,c=r(u);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dealItemId?{dealItemId:i.dealItemId}:{}},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:J(i.servicePeriod.from),to:J(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Zn(e){return e.issuedAt!=null}const eh=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function th(e){return Zn(e)&&F(e.kindKey).numbered&&!e.number}const nh=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","lines"],rh=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId"];function oh(e,t){if(!Qn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Zn(e)}function pa(e,t){const n=F(t).signFlip!==F(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...a})=>({...a,quantity:n?-a.quantity:a.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 sh(e){return{...pa(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 ih(e,t={}){const n=F(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:uh(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:ae(e.issuedAt),valid_until:ae(e.expiresAt),due_date:ae(e.dueAt),delivery_date:ae(e.deliveredAt),period_from:ae(e.periodFrom),period_to:ae(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:H(r.netCents),tax:H(r.taxCents),gross:H(r.grossCents)}}}function ah(e,t=[],n=ma){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=i=>t.find(u=>u.key===i)?.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(i=>i.kind==="text"?[i.name,"","",""]:[ch(i.name,i.description,i.optional,n.optional),lh(i,n),Mn(i)?"":i.pricePer?[H(i.unitPriceCents),n.per[i.pricePer]].join(" "):H(i.unitPriceCents),H(i.netCents)])},a={block_id:"totals",type:"totals",rows:[{label:n.net,amount:H(r.netCents)},{label:n.gross,amount:H(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(i=>({label:`${n.tax} ${i.percent??o(i.taxRateKey)}%`,amount:H(i.taxCents)}))};return{lines:[s],totals:[a]}}const ma={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function ch(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function uh(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function lh(e,t){const n=Mn(e);return n?[Br(n.amount),t.units[n.unit]??n.unit].join(" "):Br(e.quantity)}function Br(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ae(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 ga(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:fh[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 ${F(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:Fr[n]??Fr.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:jr[n]??jr.quote}]}const dh=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),fh={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Fr={quote:`Beste {customer.contact},
|
|
11
|
+
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const Xl=["billing","delivery","site","visit"];function Ql(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function rs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Zl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Jl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=rs(n);r&&!t.includes(r)&&t.push(r)}return t}const ed=["customer","supplier"],td=e=>e==="customer"?"sales":"purchase";function nd(e){return e.endpoints??[]}const rd=["lead","opportunity","customer","former"],od=["new","working","unqualified"];function sd(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const os=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],ss=["openDeal","hasContacts"],id={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},ad=["updatedAt","createdAt","name"],cd=["list"];function ud(e){return e.search?.trim()||e.createdWithinDays||ss.some(t=>e[t])||os.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const is="CRM_NOTE_ADDED",ld="crm_activity",as="CRM_CALL_LOGGED",dd="CRM_STAGE_CHANGED",fd=["phone","meeting","video"],pd=["callback","interested","no_answer","not_interested"],md=e=>e===is||e===as,gd=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function hd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function yd(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=se(n),i=se(r);return o.find(a=>se(a.locale)===s)??o.find(a=>se(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const bd=/\{([a-zA-Z0-9_.]+)\}/g;function Rn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function _d(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function cs(e,t,n){const r=[];return{text:e.replace(bd,(s,i)=>{const a=Rn(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):_d(a)}),unresolved:r}}function us(e,t){if(!e)return!0;const n=Rn(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 Ed(e,t,n,r,o){const s=[],i=[],a=new Set,u=c=>{const l=cs(c,t,o);for(const d of l.unresolved)s.includes(d)||s.push(d);return l.text};for(const c of e){if(c.block_id&&!us(n?.[c.block_id],t))continue;const l=c.block_id?r?.[c.block_id]:void 0;if(l&&c.block_id){a.add(c.block_id),i.push(...l);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(d=>({...d.lead?{lead:u(d.lead)}:{},text:u(d.text)}))});break;case"table":i.push({...c,columns:c.columns.map(d=>({...d,label:u(d.label)})),rows:c.rows.map(d=>d.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":i.push({...c,items:c.items.map(d=>({...d,value:u(d.value),label:u(d.label)}))});break;case"letterhead":i.push({...c,fields:c.fields.map(d=>({...d,value:u(d.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":i.push({...c,rows:c.rows.map(d=>({...d,label:u(d.label),amount:u(d.amount)})),...c.taxRows?{taxRows:c.taxRows.map(d=>({...d,label:u(d.label),amount:u(d.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 ls(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 Sd(e){return ls({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 ds(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 Id(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Ad(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 ds(e,t,s,o)}const wt=864e5,et=e=>Date.parse([e,"T00:00:00Z"].join("")),Cd=e=>new Date(e).toISOString().slice(0,10);function fs(e,t){const n=et(t.from),r=et(t.to)+wt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let i=new Date(n);;){const a=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);if(a>=r)break;const u=Date.UTC(i.getUTCFullYear(),i.getUTCMonth()+1,1),c=Math.round((Math.min(u,r)-Math.max(a,n))/wt);o.push({month:Cd(a),share:c/Math.round((u-a)/wt)}),i=new Date(u)}const s=Ce(e,o.map(i=>i.share));return o.map((i,a)=>({month:i.month,cents:s[a]}))}function ps(e){const t=new Date(et(e.from)),n=new Date(et(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Nn=864e5,ht=e=>new Date(e).toISOString().slice(0,10),tt=e=>Date.parse(`${e}T00:00:00Z`);function me(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)),ht(s.getTime())}function Dn(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:me(e.firstDueOn,a-1),interestCents:u,principalCents:c,remainingCents:i})}return s}function vd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,l)=>c.date.localeCompare(l.date));let i=s.filter(c=>c.date<t).reduce((c,l)=>c+l.cents,0),a=s.findIndex(c=>c.date>=t);a<0&&(a=s.length);let u=0;for(let c=tt(t);c<=tt(n);c+=Nn){const l=ht(c);for(;a<s.length&&(s[a]?.date??"")<=l;)i+=s[a]?.cents??0,a++;u+=i*o}return Math.round(u)}function Td(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 l=me(u,r);a.push({sequence:c,from:u<e?e:u,to:ht(tt(l)-Nn)}),u=l}return a}const ms=5e7,kd=["director","group_company","participation","other_company"],Od=e=>e?.relation&&kd.includes(e.relation)?e.relation:"director";function Md(e,t=ms){return{over:e>t,ratio:Math.max(0,e)/t}}function Rd(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Dn(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 gs(e){return ht(tt(me(`${e.slice(0,7)}-01`,1))-Nn)}function wn(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 hs(e,t,n,r,o,s,i=1){return t.map((a,u)=>({cents:a,sequence:i+u,dueOn:gs(me(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 vr=600;function ys(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 wn(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<vr;){const u=Math.max(1,Math.round(a*s)),c=a-u<=e.residualCents||i.length===vr-1;i.push(c?a-e.residualCents:u),a-=i[i.length-1]??0}return i}function Nd(e,t){const n=e.terms;if(n.disposal)return[];const r=ys(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return hs(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 Dd(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 wd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return hs(e.id,n.period?fs(n.totalCents,n.period).map(o=>o.cents):wn(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 xd(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Pd(e,t){const n=me(t,12);return Dn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Ld(e,t){const n=e.terms,r=n.quantity??1,o=d=>Math.round(d*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 l=u.reduce((d,f)=>d+f.amountCents,0);return l&&u.push({accountId:t.disposalAccountId,amountCents:-l,description:c}),{lines:u,costCents:s,residualCents:i}}const bs={NL:45e3},$d=(e,t)=>t??bs[(e??"NL").toUpperCase()],Kd=[{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"}],_s=36e5,Es=864e5,ee=-1/0,Ud=e=>e.score>ee,Se={urgent:40,high:25,normal:10,low:0};function Bd(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Fd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ss=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Is(e,t){return!!(e&&Fd.test(e)||t&&Ss.test(t))}const As=3,Cs=600;function jd(e,t){return e>=As||t>=Cs}const vs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Gd(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&vs.includes(r)&&(t[r]=n.value)}return t}const Wd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Vd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function Hd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Wd.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&&Ss.test(e.body)||n&&Vd.test(n))return"marketing"}function Ts(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const ks=["open"],Os=1e3,Ms=72;function Rs(e){return e.lastActivityAt??(e.createdAt?new Date(po(e)).getTime():0)}function Ns(e,t){return Ds(t.remindersById?.[e.id],e,t.now)}function Ds(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ws=e=>co(e)==="outbound_message",xs=e=>ks.includes(e);function yt(e,t){return Math.max(0,(t-Rs(e))/_s)}function Ps(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function qd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Yd(e,t,n){if(!xs(e.status)||e.firstResponseAt)return!1;const r=Ps(e,n);return r!==void 0&&yt(e,t)>r}function Ls(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ws(n.type)?!1:yt(e,t)<Ms}function zd(e,t){if(!xs(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ls(e,t.now))return{score:ee,reasons:[]};if(Ns(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Se[o]>0&&(n+=Se[o],r.push(`priority:${o}`)),Ts(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=yt(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"&&ws(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")||Is(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Os,r.push("bulk")),{score:n,reasons:r}}const Xd=e=>!!e.assignedUserId||!!e.assignedInboxId,Qd=e=>e.status==="closed",Zd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Jd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,$s=[{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}],ef=["duplicate","spam"],tf="c_";function nf(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...$s,...t]}function rf(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function of(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 sf="article",nt=[{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 Ks(e){const t=(e??"").toLowerCase();return nt.find(n=>n.code===t)??nt.find(n=>n.code===t.split("-")[0])}function af(e){return Ks(e)?.label??e}function cf(e){const t=Ks(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const xn=3;function Us(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>xn+1))return 1/0;o=t.get(o)?.parentId}return r}function uf(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&&Bs(e,t,r))return!1;const o=Us(e,r),s=t?Pn(t,n):1;return o+s<=xn}function Bs(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 Pn(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=>Pn(o.id,t,n))):1}const Fs="en";function js(e){return e.defaultLocale||e.locale||Fs}function lf(e){const t=new Set,n=[];for(const r of[js(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function df(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 ff(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 l=o.length;const d=c?o.findIndex(f=>n(f)===n(c)):-1;if(d>=0)for(l=d+1;l<o.length&&(o[l]?.level??0)>(c?.level??0);)l+=1;o.splice(l,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function pf(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 mf=["revenue","expense"],Te=e=>mf.includes(e.type),gf=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Gs(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=gf(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=d=>u==="debit"?t(d):-t(d),l=[...a.values()].flat().reduce((d,f)=>d+c(f),0);s.push({key:i,label:r(i),level:0,side:u,amountCents:l});for(const[d,f]of a){s.push({key:d,label:r(d),level:1,side:u,amountCents:f.reduce((m,b)=>m+c(b),0)});for(const m of f)s.push({key:m.code,label:`${m.code} ${m.name}`,level:2,side:u,amountCents:c(m),accountId:m.id})}}return s}function hf(e,t,n,r=o=>o){const o=e.filter(Te),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},i=Gs(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 yf(e,t,n,r,o=s=>s){const s=e.filter(l=>!Te(l)),a=Gs(s,l=>t.get(l.id)?.closingCents??0,l=>l==="assets"?"debit":"credit",o);if(r){a.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const l=a.find(d=>d.level===0&&d.key==="equity");l?l.amountCents+=r:a.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=a.filter(l=>l.level===0&&l.side==="debit").reduce((l,d)=>l+d.amountCents,0),c=a.filter(l=>l.level===0&&l.side==="credit").reduce((l,d)=>l+d.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:a,totals:{debitCents:u,creditCents:c},source:"finance"}}function bf(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=Te(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 _f(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 Ef(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||!Te(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 I=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Ws={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[I("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),I("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),I("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),I("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),I("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),I("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),I("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),I("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),I("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),I("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),I("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),I("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),I("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),I("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),I("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),I("1000","Kas","asset","assets.current.cash","BLimKasKas"),I("1100","Bank","asset","assets.current.cash","BLimBanRba"),I("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),I("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),I("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),I("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),I("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),I("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),I("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),I("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),I("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),I("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),I("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),I("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),I("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),I("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),I("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),I("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),I("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),I("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),I("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),I("4000","Lonen","expense","costs.personnel","WPerLesLon"),I("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),I("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),I("4100","Huur","expense","costs.housing","WBedHuiBeh"),I("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),I("4200","Autokosten","expense","costs.car","WBedAutOak"),I("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),I("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),I("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),I("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),I("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),I("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),I("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),I("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),I("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),I("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),I("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),I("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),I("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),I("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),I("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),I("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),I("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),I("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),I("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),I("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),I("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),I("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),I("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),I("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),I("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),I("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"}]},Sf=[Ws],Vs={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function If(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 Af(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Cf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function vf(e){const t={};for(const n of Cf)e[n]!==void 0&&(t[n]=e[n]);return t}function nn(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(nn).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)+":"+nn(r)).join(",")+"}"}function Tf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Hs(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 kf(e){if(!e)return{};const{projectId:t,costCenterId:n,...r}=e;return{...t?{projectId:t}:{},...n?{costCenter:n}:{},...Object.keys(r).length?{dimensions:r}:{}}}function Of(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&ps(t.period)>1?[{index:n,period:t.period}]:[])}function Mf(e,t){const n=e.kind==="journal"?Df(e,t):Nf(e,t);return n.ok?Rf(n,e,t.functionalCurrency??"EUR"):n}function Rf(e,t,n){if(!t.currency||t.currency===n)return e;const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=e.lines.map(i=>({...i,functionalCents:Math.round(i.amountCents*r)})),s=o.reduce((i,a)=>i+a.functionalCents,0);return o[0]={...o[0],functionalCents:o[0].functionalCents-s},{...e,lines:o}}function Nf(e,t){const n=b=>t.accounts.find(g=>g.role===b&&!g.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,l=[],d=new Map;for(const b of e.lines){const g=b.accountKey??Hs(b,t.rules,e)?.accountId??s?.id;if(!g)return{ok:!1,problem:"no_account_for_line"};l.push({...u,accountId:g,amountCents:a*b.netCents,functionalCents:a*b.netCents,taxCode:b.taxRateKey,taxCents:a*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...kf(b.dimensions)}),b.taxCents&&d.set(b.taxRateKey,(d.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,g]of d){const E=t.taxAccounts.find(y=>y.taxKey===b),h=(r?E?.payableAccountId:E?.receivableAccountId)??i?.id;if(!h)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:h,amountCents:a*g,functionalCents:a*g,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,g)=>b+g.netCents+g.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-a*f,functionalCents:-a*f});const m=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:m||e.documentId}}function Df(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??Hs(o,t.rules,e)?.accountId??n(Vs[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 xt=e=>String(e).padStart(2,"0"),wf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function xf(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}-${xt(a)}-01`,to:`${i}-${xt(a)}-${xt(wf(i,a))}`,status:"open"}})}function Pf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const qs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Lf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ys=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ln=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ys(Ln(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Pt=e=>e<0?"C":"D",Tr=e=>Ln(e.replace(/-/g,""),35);function $f(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="',qs,'">',"<header>",A("fiscalYear",e.fiscalYear.replace("/","-")),A("startDate",e.startDate),A("endDate",e.endDate),A("curCode",e.currency),A("dateCreated",e.createdOn),A("softwareDesc",e.software.desc,50),A("softwareVersion",e.software.version,20),A("RGSVersion",e.rgsVersion,20),"</header>","<company>",A("Commercenr",e.company.commerceNr,100),A("companyName",e.company.name,255),A("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ys(Ln(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",A("streetname",s.street,100),A("number",s.number,15),A("city",s.city,50),A("postalCode",s.postalCode,10),A("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",A("custSupID",Tr(c.id)),A("custSupName",c.name,50),A("commerceNr",c.commerceNr,100),A("taxRegistrationCountry",c.country),A("taxRegIdent",c.vatNumber,30),A("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((l,d)=>l.code.localeCompare(d.code))){const l=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",l?"P":"B"),A("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",A("vatID",c.key,35),A("vatDesc",c.label,100),A("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),A("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((l,d)=>l.index-d.index))o("<period>",A("periodNumber",c.index),A("startDatePeriod",c.from),A("endDatePeriod",c.to),"</period>");o("</periods>");const i=e.opening.filter(c=>c.cents!==0);if(i.length){const c=i.filter(d=>d.cents>0).reduce((d,f)=>d+f.cents,0),l=-i.filter(d=>d.cents<0).reduce((d,f)=>d+f.cents,0);o("<openingBalance>",A("linesCount",i.length),A("totalDebit",Z(c)),A("totalCredit",Z(l))),i.forEach((d,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(d.accountId)??d.accountId),A("amnt",Z(d.cents)),A("amntTp",Pt(d.cents)),"</obLine>")}),o("</openingBalance>")}const a=e.entries.flatMap(c=>c.lines);o("<transactions>",A("linesCount",a.length),A("totalDebit",Z(a.filter(c=>c.functionalCents>0).reduce((c,l)=>c+l.functionalCents,0))),A("totalCredit",Z(-a.filter(c=>c.functionalCents<0).reduce((c,l)=>c+l.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 l=u.get(c.id);if(l?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",Lf[c.kind]));for(const d of[...l].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",d.number,35),A("desc",d.description),A("periodNumber",n.get(d.periodId)??0),A("trDt",d.date),A("Source",d.source.app+(d.source.kind?" "+d.source.kind:""),999),A("User",d.postedBy,999)),d.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,d.date),g=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",d.source.number??d.number,255),A("effDate",f.taxPointDate??d.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Pt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Tr(f.counterpartyCompanyId)),A("invRef",d.source.number,255),A("cost",f.costCenter,999),A("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+A("vatID",f.taxCode,35)+A("vatPerc",b)+A("vatAmnt",Z(f.taxCents))+A("vatAmntTp",Pt(f.taxCents))+"</vat>":"",g?"<currency>"+A("curCode",f.currency)+A("curAmnt",Z(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
+
`)}const Kf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Uf(e){const t=V(e,"ledgerAccount").map(a=>{const u=k(a,"RGScode")??k(a,"leadCode");return{code:k(a,"accID")??"",name:k(a,"accDesc")??"",kind:k(a,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=a=>{const u=k(a,"accID");u&&(n[u]=(n[u]??0)+Kf(k(a,"amnt"),k(a,"amntTp")))};for(const a of V(e,"obLine"))r(a);for(const a of V(e,"trLine"))r(a);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),i=k(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function Bf(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 rn=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!rn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${rn.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Pe(n);if(r)return r}if(t.type==="for-each"){const n=Pe(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Pe(t.else??[]);if(n)return n}}return null}function Ff(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 jf(e,t){return e.filter(n=>n.enabled&&Ff(n.ownerScope,t))}function Gf(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Wf(e){return`mcp__${e}__`}const Vf=1e3,Hf=2e3,qf=500,Yf=12e3,zf=4e3,zs=["contact","company","work_item"];function Xf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return zs.includes(t)}const Qf=[{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 Xs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Zf=[{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 $n(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Jf(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:$n(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const kr=/^\d{4}-\d{2}-\d{2}$/;function ep(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(!kr.test(r.validFrom)||r.validTo&&!kr.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 bt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=P(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?dt(n,e.pricePer,e.servicePeriod):n}function tp(e,t,n){const r=e.map(c=>({...c,netCents:bt(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const l=n??r[c].taxRateKey,d=o.get(l);d?d.push(c):o.set(l,[c])}const s=[];let i=0,a=0;for(const[c,l]of o){const d=Xs(c,t),f=l.reduce((g,E)=>g+r[E].netCents,0),m=P(f*d.percent/100),b=Ce(m,l.map(g=>r[g].netCents));for(let g=0;g<l.length;g++)r[l[g]].taxCents=b[g];s.push({taxRateKey:c,percent:d.percent,kind:d.kind,netCents:f,taxCents:m}),i+=f,a+=m}const u=r.reduce((c,l)=>l.costPriceCents==null||l.optional?c:c+P(l.costPriceCents*l.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:u,byRate:s}}}const np="onboarding-source",rp=["support","billing","availability","sales","onboarding"],op=["keep","replace"],_t=[{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"}],Qs={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=_t){return t.find(n=>n.key===e)??{...Qs,key:e}}function pe(e){return e==="published"||e==="approved"}function Kn(e,t,n=_t){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function sp(e,t=_t){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const ip=864e5;function Zs(e,t){return Math.round((t-e)/ip)}function Un(e,t){const n=e.cycleMinutes.length;return n===0?0:(Zs(e.anchor,t)%n+n)%n}function Bn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[Un(e,t)]??0}function Fn(e,t){return e.startTimes?.[Un(e,t)]}function jn(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 Js(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 on=864e5;function ap(e){const t=Math.max(1,Math.round((e.to-e.from)/on));return Array.from({length:t},(n,r)=>e.from+r*on)}function sn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Or={interval:0,day:1,week:2};function cp(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).capacity),i=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).absent),a=t.userIds??[...new Set([...s.map(d=>d.userId),...r.map(d=>d.userId),...o.map(d=>d.userId)])].filter(d=>!!d),u={};let c="interval";const l=d=>{Or[d]>Or[c]&&(c=d)};for(const d of a){const f=t.teamIdsOf?.(d)??[];let m=0,b=0,g=0;for(const y of ap(e)){const p=Math.max(y,e.from),S=Math.min(y+on,e.to);g++;const T=s.filter(D=>D.userId===d).reduce((D,G)=>D+sn(G.start,G.end,p,S),0);if(T>0){m+=T;continue}const C=jn(r,d,f,y),R=C?Bn(C,y):0;if(C&&R>0){m+=R*60,l(Fn(C,y)?"interval":"day");continue}C||b++}if(b>0){const y=Js(o,d,e.from);y&&(m+=y.weeklyMinutes*60*(b/7),l("week"))}const E=i.filter(y=>y.userId===d).reduce((y,p)=>y+sn(p.start,p.end,e.from,e.to),0),h=Math.max(0,m-E);(h>0||g>0)&&(u[d]=h)}return{seconds:Object.values(u).reduce((d,f)=>d+f,0),precision:c,byUser:u}}function up(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 lp(e,t,n,r){const o=e.filter(i=>i.userId&&pe(i.status)&&!q(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let u=0,c=0;for(const l of o){if(l.userId!==i||q(l.kindKey).capacity&&!l.workstreamId)continue;const d=sn(l.start,l.end,n.from,n.to);d<=0||(Kn(l,t)?u+=d:c+=d)}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 dp="demand-source",Mr=1e3;function fp(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ei(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=fp(e,t),r=t/e;return n/(1-r*(1-n))}function ti(e,t,n,r){return r<=0?1:e<=t?0:1-ei(e,t)*Math.exp(-(e-t)*n/r)}function ni(e,t,n){return n<=0?0:e*t/n}function ri(e,t,n,r){if(e<=0||t<=0)return 0;const o=ni(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<=Mr;a++)if(!(a<=o)&&!(ti(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return Mr}const pp=36e5,mp=864e5;function gp(e){return e==="day"?mp:pp}function hp(e,t){return e.start<t.end&&t.start<e.end}function Le(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function oi(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=ri(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function yp(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=gp(i),u=a/1e3,c=e.kinds,l=t.filter(g=>pe(g.status)),d=l.filter(g=>Kn(g,n,c)),f=l.filter(g=>q(g.kindKey,c).capacity),m=l.filter(g=>q(g.kindKey,c).absent),b=[];for(let g=fe(s.from,i);g<s.to;g+=a){const E=g+a,h=de(g,i);let y=0;for(const D of d)y+=Le(D,g,E);let p=0;for(const D of f)p+=Le(D,g,E);let S=0;for(const D of m)S+=Le(D,g,E);const T=o?.[h]??{},C=oi(T,r,u),R=y/u;b.push({period:h,forecastVolume:T.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:y,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:S})}return b}function si(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function bp(e,t,n){const r=si(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function _p(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Ep=36e5,an=6048e5,ii=8,Sp=.5,Ip=2;function Ap(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 Cp(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*an,a=i-an;let u=0,c=!1;for(const[l,d]of e)l>=a&&l<i&&(u+=d,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(Ip,Math.max(Sp,r[0]/o))}function vp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Tp(e,t,n){const r=Math.max(1,n?.weeks??ii),o=new Map,s=new Set;for(const u of e)o.set(Ap(u.period),u.value),s.add(u.period.slice(0,10));const i=Cp(o,fe(t.from,"hour"),r),a=[];for(let u=fe(t.from,"hour");u<t.to;u+=Ep){let c=0,l=0;for(let m=1;m<=r;m++){const b=u-m*an,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const h=r-m+1;c+=E*h,l+=h}let d=l>0?c/l*i:0;const f=vp(n?.adjustments,u);f?.absoluteVolume!==void 0?d=f.absoluteVolume:f?.factor!==void 0&&(d*=f.factor),a.push({period:de(u,"hour"),volume:d})}return a}const ai="schedule_entry",ci="workstream";function kp(e){return`${ai}:${e}`}function Op(e){return`${ci}:${e}`}const cn=36e5,le=864e5;function Mp(e,t){const n=t==="day"?le:cn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Rr(e){const t=Math.max(1,Math.round((e.to-e.from)/le));return Array.from({length:t},(n,r)=>e.from+r*le)}function Lt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Rp(e,t,n={}){const r=n.grain??"hour",o=Mp(t,r),s=r==="day"?le:cn,i=new Map(o.map(d=>[d,0])),a=e.filter(d=>d.userId&&q(d.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const d of a)if(!(u&&d.userId&&!u.has(d.userId))){for(const f of o){const m=Lt(d.start,d.end,f,f+s);m>0&&i.set(f,(i.get(f)??0)+m)}for(const f of Rr(t))Lt(d.start,d.end,f,f+le)>0&&c.add(`${d.userId}:${f}`)}const l=n.userIds??[...new Set([...a.map(d=>d.userId),...(n.patterns??[]).map(d=>d.userId)])].filter(d=>!!d);if(n.patterns?.length)for(const d of l){const f=n.teamIdsOf?.(d)??[];for(const m of Rr(t)){if(c.has(`${d}:${m}`))continue;const b=jn(n.patterns,d,f,m);if(!b)continue;const g=Bn(b,m);if(g<=0)continue;const E=Fn(b,m);if(E){const[p,S]=E.split(":").map(Number),T=m+p*cn+(S??0)*6e4,C=T+g*6e4;for(const R of o){const D=Lt(T,C,R,R+s);D>0&&i.set(R,(i.get(R)??0)+D)}continue}const h=o.filter(p=>p>=m&&p<m+le);if(!h.length)continue;const y=g*60/h.length;for(const p of h)i.set(p,(i.get(p)??0)+y)}}return o.map(d=>({period:de(d,r),weight:i.get(d)??0}))}function ui(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 Np(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 ui(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 li(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Dp(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 di(e){return li(e)}function fi(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 wp(e){return e.agentId?{kind:"user",userId:e.agentId}:fi(e.ownerScope)}function xp(e){return di(e)}const pi="playbook-run",Pp="run";function Lp(e,t=0){return`${pi}:${e}~${t}`}function $p(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function mi(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 Kp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Up(e,t){if(t)return e.targets.find(n=>n.id===t)}function gi(e){return e?.kind==="assignment"}function Bp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return gi(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 un=["suggest","outward","auto"];function Fp(e){return typeof e=="string"&&un.includes(e)}function jp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Gp(e,t){const n=e??"suggest";return t&&un.indexOf(t)<un.indexOf(n)?t:n}function Wp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function hi(e){const t=e.split("__");return t[t.length-1]||e}function Vp(e){const t=hi(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Hp=[{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 qp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Yp={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 Gn(e){return`${e.type}:${e.id}`}function zp(e){return[Gn(e),e.lineId].join("#")}function Xp(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Qp(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const yi="interaction";function bi(e){return e?.type===yi?e.id:void 0}const _i=64,Ei=8e3;function Zp(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),_i),Ei)}const Jp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],em={kind:"workflow",steps:[]};function tm(e){return e?.kind==="workflow"?e.steps:[]}function nm(e){return e?.kind==="procedure"?e.procedure:void 0}function rm(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Si(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ii=10,Ai=.9;function om(e){const{total:t,rate:n}=Si(e);return t>=Ii&&n>=Ai}const Ci=["done","escalated","failed","stopped"];function sm(e){return Ci.includes(e)}function vi(e){return e==="waiting"}function im(e){return e==="running"||vi(e)}function Wn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function am(e){const t=Wn(e);return t?Gn(t):void 0}function cm(e){return bi(Wn(e))}const $t=864e5;function um(e,t){return e.lines.flatMap(n=>{const r=ft(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=bt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ti(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const Nr=e=>e.seriesId??e.id;function lm(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function dm(e,t,n,r={}){const o=(r.noticeDays??30)*$t,s=(r.windowDays??7)*$t,i=[];for(const a of e){if(a.status!=="active")continue;const u=new Map;for(const c of a.lines)u.set(Nr(c),[...u.get(Nr(c))??[],c]);for(const c of u.values()){const l=lm(a,c,n),d=U(a,l);if(d.to!=null&&d.to<=n)continue;const f={contractId:a.id,lineId:l.id},m=l.commitment??a.commitment,b=En(a,c),g=d.to??Ee(b,m,n);if(l.customerCompanyId){const y=l.salesLine?t.find(p=>p.agreementId===l.salesLine?.agreementId&&p.seriesId===l.salesLine?.seriesId):void 0;y?y.ended?i.push({kind:"not_covered",...f,reason:"sales_ended"}):(l.quantity.from==="fixed"&&y.quantity!=null&&y.quantity!==l.quantity.value&&i.push({kind:"not_covered",...f,reason:"quantity"}),y.unbilled.length&&i.push({kind:"not_billed",...f,windows:y.unbilled}),g>y.effectiveEndAt&&i.push({kind:"term_mismatch",...f,purchaseEnd:g,salesEnd:y.effectiveEndAt})):i.push({kind:"not_covered",...f,reason:"no_sales_line"})}const E=!!m&&m.termMonths>=3&&(m.renew==="term"||n<Ee(b,{...m,renew:"none"},b)),h=d.to==null&&E?In(b,m,n):null;if(h!=null&&h-n<=o&&i.push({kind:"notice_due",...f,deadline:h}),m&&m.termMonths>=1&&l.changeWindowDays){const y=Sn(b,m,n)+l.changeWindowDays*$t;y>n&&y-n<=s&&i.push({kind:"change_window",...f,closesAt:y})}if(l.expected==="variable"&&l.invoiced&&l.invoiced.length>=2){const y=[...l.invoiced].sort((S,T)=>S.from-T.from),p=y[y.length-1];Ti(y.slice(0,-1).map(S=>S.cents),p.cents)&&i.push({kind:"variable_jump",...f,cents:p.cents})}}}return i}function ki(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function fm(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}function Oi(e,t,n){const r=[];for(const o of e.lines){const s=t.find(a=>a.id===o.poLineId),i=ki(o.poLineId,n);(!s||e.movement==="in"&&i+o.quantity>s.quantity)&&r.push({code:"receipt_over_ordered",poLineId:o.poLineId}),e.movement==="return"&&o.quantity>i&&r.push({code:"receipt_return_over_received",poLineId:o.poLineId}),o.serials.length&&o.serials.length!==Vn(s??{},o.quantity)&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function pm(e){return e.map(t=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(n=>String(n).trim()).filter(Boolean))],...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Mi(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ri(e,t){const n=e.filter(r=>Mi(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Vn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function Ni(e){return{cents:P(e.costCents/Vn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function mm(e){const t=Ni(e);return t.per?dt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const gm=864e5,ln=e=>e.seriesId??e.id;function Dr(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>U(e,r).from>n).sort((r,o)=>U(e,r).from-U(e,o).from)[0]??t[t.length-1]}function wr(e){const t=new Map;for(const n of e)t.set(ln(n),[...t.get(ln(n))??[],n]);return t}function hm(e){const{now:t}=e,n=[],r=(a,u)=>{const c=U(a,u);return a.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(a=>[...wr(a.lines).values()].map(u=>({contract:a,line:Dr(a,u,t),start:En(a,u)})));for(const a of e.agreements)if(!(a.status!=="active"&&a.status!=="draft"))for(const u of wr(a.lines).values()){const c=Dr(a,u,t);if(c.quantity.from!=="fixed")continue;const l=Ri(e.offers.filter(C=>C.productId===c.productId&&(C.businessEntityId||"")===(a.businessEntityId||"")),t);if(!l)continue;const d=ln(c),f=["demand:",a.id,"#",d].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===a.id&&C.line.salesLine.seriesId===d&&r(C.contract,C.line)),b=U(a,c),g={key:f,level:"item",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:c.productId,name:c.name,customerCompanyId:a.companyId,salesLine:{agreementId:a.id,seriesId:d}};if(b.to!=null){if(!m)continue;const C=m.line.commitment??m.contract.commitment,R=Ee(m.start,C,t),D=C&&C.termMonths>=1?ne(m.start,C,t):R,G=In(m.start,C,t);n.push({...g,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:R,...G!=null?{deadline:G}:{},...R>D?{nextTerm:!0}:{},...R>b.to?{runsOnUntil:R}:{}});continue}const E=c.quantity.value;if(!m){n.push({...g,action:"purchase",quantity:E});continue}const h=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(h===E)continue;const y={contractId:m.contract.id,lineId:m.line.id};if(E>h){n.push({...g,action:"change",quantity:E-h,targetQuantity:E,from:h,contractLine:y});continue}const p=m.line.commitment??m.contract.commitment,S=m.line.changeWindowDays??0,T=!p||p.termMonths<1||S>0&&t<Sn(m.start,p,t)+S*gm;n.push({...g,action:"change",quantity:h-E,targetQuantity:E,from:h,contractLine:y,...T?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],i=(a,u,c)=>{const l=e.provisionable.get([u.app,u.offer].join(":"));if(a.action!=="purchase"||!l?.requires)return;const d=e.offers.find(g=>g.id===a.offerId)?.businessEntityId||"",f=e.offers.find(g=>(g.businessEntityId||"")===d&&(!c||g.supplierCompanyId===a.supplierCompanyId)&&g.provider?.app===u.app&&g.provider?.offer===l.requires),m=o.some(g=>g.line.offerId===f?.id&&g.line.customerCompanyId===a.customerCompanyId&&r(g.contract,g.line));if(!f||m)return;const b=["account:",a.customerCompanyId,":",f.id].join("");return!e.open.has(b)&&!s.some(g=>g.key===b)&&s.unshift({key:b,action:"purchase",level:"account",supplierCompanyId:f.supplierCompanyId,offerId:f.id,productId:f.productId,name:l.requires,quantity:1,customerCompanyId:a.customerCompanyId}),b};for(const a of n){const u=e.offers.find(l=>l.id===a.offerId),c=u?.provider?.app?i(a,u.provider,!0):void 0;u?.deliverTo?.app&&i(a,u.deliverTo,!1),s.push({...a,...c?{waitsFor:c}:{},...u?.deliverTo?.app?{deliverTo:u.deliverTo}:{}})}return[...s.filter(a=>a.level==="account"),...s.filter(a=>a.level!=="account")]}const Hn=["vendorSku","gtin","description","brand","group","cost","list","currency","stock","leadDays"],ym={day:864e5,week:7*864e5,month:31*864e5},Di=10;function bm(e,t){const n=(e[0]??[]).map(a=>a.trim().toLowerCase()),r={},o=[];for(const a of Hn){const u=t[a]?.trim();if(!u)continue;const c=n.indexOf(u.toLowerCase());c===-1?o.push(u):r[a]=c}const s=[],i=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((a,u)=>{const c=u+2,l=p=>{const S=r[p];return S===void 0?"":(a[S]??"").trim()},d=l("vendorSku"),f=gt(l("gtin"));if(!d&&!f){i.push({line:c,message:"feed_row_no_key"});return}const m=l("cost")?Wt(l("cost")):void 0;if(l("cost")&&m===void 0){i.push({line:c,message:"feed_row_price"});return}const b=l("list")?Wt(l("list")):void 0,g=l("stock"),E=Number(g.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:g&&/\d/.test(g)&&Number.isFinite(E)?Math.max(0,E):null,y=Number(l("leadDays"));s.push({line:c,...d?{vendorSku:d}:{},...f?{gtin:f}:{},...l("description")?{description:l("description")}:{},...l("brand")?{brand:l("brand")}:{},...l("group")?{group:l("group")}:{},...m!==void 0?{costCents:m}:{},...b!==void 0?{listCents:b}:{},...l("currency")?{currency:l("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...l("leadDays")&&Number.isFinite(y)?{leadDays:y}:{}})}),{rows:s,errors:i,missingHeaders:o})}function _m(e,t,n){const r=new Map(t.filter(i=>i.vendorSku).map(i=>[i.vendorSku,i])),o=new Map(t.map(i=>[i.productId,i])),s=new Map;for(const i of n)for(const a of[i.gtin,...i.barcodes??[]]){const u=a?gt(a):void 0;u&&!s.has(u)&&s.set(u,i)}return e.map(i=>{const a=i.vendorSku?r.get(i.vendorSku):void 0;if(a)return{row:i,offer:a};const u=i.gtin?s.get(i.gtin):void 0;if(!u)return{row:i};const c=o.get(u.id);return c?{row:i,offer:c}:{row:i,product:u}})}function Em(e,t,n,r=Di){const o=new Map,s=[];let i=0;for(const u of e){const{row:c}=u;if(!("offer"in u)){s.push({line:c.line,...c.vendorSku?{vendorSku:c.vendorSku}:{},...c.gtin?{gtin:c.gtin}:{},...c.description?{description:c.description}:{},...c.brand?{brand:c.brand}:{},...c.group?{group:c.group}:{},...c.costCents!==void 0?{costCents:c.costCents}:{},..."product"in u?{productId:u.product.id}:{}});continue}const l=u.offer,d={qty:c.stock===void 0?l.availability?.qty??null:c.stock,at:n,source:"feed",...c.leadDays!==void 0?{leadDays:c.leadDays}:{}},f={availability:d};c.costCents!==void 0&&c.costCents!==l.costCents&&(f.costCents=c.costCents),c.listCents!==void 0&&c.listCents!==l.listCents&&(f.listCents=c.listCents),c.currency&&c.currency!==l.currency&&(f.currency=c.currency),c.vendorSku&&!l.vendorSku&&(f.vendorSku=c.vendorSku),Object.keys(f).length>1||d.qty!==(l.availability?.qty??null)||i++;const b=f.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(f.costCents-l.costCents)/l.costCents*1e3)/10:0;o.set(l.id,{offerId:l.id,set:f,...b>r?{jump:{fromCents:l.costCents,toCents:f.costCents,percent:b}}:{}})}const a=t.filter(u=>u.availability?.source==="feed"&&!o.has(u.id)).map(u=>u.id);return{changes:[...o.values()],unchanged:i,gone:a,unmatched:s}}const Sm={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],brand:["merk","brand","fabrikant","manufacturer","vendor"],group:["productgroep","groep","categorie","category","product group","productgroup"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"]};function Im(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of Hn){if(r[i])continue;const a=t.find(u=>!n.has(u)&&Sm[i].some(c=>s(u.toLowerCase(),c)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}const wi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Am="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function xi(e){const t=[];for(const n of e){const r=K(n.sku)||K(n.description),o=t.find(s=>(K(s.sku)||K(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Cm(e,t){const n=K(e.orderRef),r=K(e.supplierRef);return n&&t.find(o=>K(o.number)===n)||n&&t.find(o=>K(o.reference)===n)||r&&t.find(o=>K(o.reference)===r)||null}const Ne={reference:0,sku:1,description:2,loose:3};function qn(e,t,n){const r=K(e.externalRef);if(r&&K(t.externalRef)===r)return{via:"reference",rank:Ne.reference};if(r&&t.externalRef)return null;const o=K(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>K(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Ne.sku};const s=K(e.description),i=K(t.name);return!s||!i?null:s===i?{via:"description",rank:Ne.description}:i.includes(s)||s.includes(i)?{via:"description",rank:Ne.loose}:null}function Pi(e,t,n){const r=t.filter(a=>a.kind==="product"),o=new Set,s=[],i=[];return e.forEach((a,u)=>{let c=null;for(const l of r){if(o.has(l.id))continue;const d=qn(a,l,n);d&&(!c||d.rank<c.rank)&&(c={line:l,...d})}if(!c){i.push(u);return}o.add(c.line.id),s.push({docIndex:u,poLineId:c.line.id,via:c.via})}),{matches:s,unmatched:i}}function vm(e,t,n,r){const o=xi(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:i}=Pi(o,t.lines,n),a=s.map(c=>({poLineId:c.poLineId,quantity:o[c.docIndex].quantity,serials:o[c.docIndex].serials,docIndex:c.docIndex,via:c.via})),u=[...Oi({movement:"in",lines:a},t.lines,r).filter(c=>c.code!=="receipt_return_over_received").map(c=>({code:c.code,poLineId:c.poLineId,docIndex:a.find(l=>l.poLineId===c.poLineId)?.docIndex})),...i.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:a,problems:u}}function Tm(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const i=Number(String(s?.quantity??"").replace(",",".")),a=n(s?.description);if(!(i>0)||!a&&!n(s?.sku))return[];const u=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:a,quantity:i,serials:u}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const km=864e5,xr=e=>Date.parse([e,"T00:00:00Z"].join(""));function Om(e,t,n,r){const o=new Map(t.map(u=>[u.id,u.openQty])),s=[],i=[],a=new Set;for(const u of e){const c=t.map((p,S)=>({candidate:p,order:S,hit:qn(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&a.has(p.candidate.id))).sort((p,S)=>p.hit.rank-S.hit.rank||p.order-S.order);if(!c.length){i.push(u.id);continue}const l=u.period?{from:xr(u.period.from),to:xr(u.period.to)+km}:r,d=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,S,T)=>p.variable?null:bt({kind:"product",quantity:S,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:T}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;a.add(p.id);const S=u.quantity??p.openQty??1;s.push({...d(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:l},via:m.hit.via,quantity:S,amountCents:u.netCents,expectedCents:f(p,S,l),overQuantity:p.openQty!=null&&S!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),g=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let h=g;for(const{candidate:p}of b){if(h<=0)break;const S=Math.max(0,o.get(p.id)??0);if(!S)continue;const T=Math.min(S,h);E.push({candidate:p,quantity:T,over:!1}),o.set(p.id,S-T),h-=T}if(h>0){const p=E[E.length-1];p?(p.quantity+=h,p.over=!0):E.push({candidate:m.candidate,quantity:h,over:!0})}const y=Ce(u.netCents,E.map(p=>p.quantity));E.forEach((p,S)=>{s.push({...d(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:y[S],expectedCents:f(p.candidate,p.quantity,u.period?l:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:i}}const Li={percent:1,cents:100};function Mm(e,t,n=Li){const r=t.map(s=>({receiptLineId:s,issue:"unmatched"})),o=new Map;for(const s of e)o.set(s.receiptLineId,[...o.get(s.receiptLineId)??[],s]);for(const[s,i]of o){if(i.some(l=>l.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),i.some(l=>l.expectedCents===null))continue;const a=i.reduce((l,d)=>l+(d.expectedCents??0),0),u=i.reduce((l,d)=>l+d.amountCents,0),c=Math.max(Math.abs(a)*n.percent/100,n.cents);Math.abs(u-a)>c&&r.push({receiptLineId:s,issue:"price",expectedCents:a,amountCents:u})}return{ok:r.length===0&&e.length>0,issues:r}}function Rm(e){const t=[],n=new Map;for(const r of[...e].sort(Nm)){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 Nm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Dm(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const $i=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function wm(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(p=>[p.key,p])),r=n.get(e.standardKey??"high"),o={},s={},i=(p,S)=>{if(!e.trace||!p||!S.ref)return;const T=s[p]??[];T.includes(S.ref)||(s[p]=[...T,S.ref])};let a;const u=(p,S,T)=>{if(!p||!T)return;const C=o[p]??{};C[S]=(C[S]??0)+T,o[p]=C,a&&i(p,a)},c=new Map,l=new Set;let d=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const S=n.get(p.taxCode);if(!S){l.add(p.taxCode);continue}const T=S.boxes[t]?.[p.side];if(a=p,p.side==="sales")u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",p.taxCents),S.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(S.selfAssessed){const C=r?$n(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",R),d+=R,R&&i("5b",p)}else{const C=Math.round(p.taxCents*(S.deductiblePercent??100)/100);d+=C,C&&i("5b",p)}}const f=$i.filter(p=>p<"5"),m=f.reduce((p,S)=>p+(o[S]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:d},o["5c"]={taxCents:m-d},o["5g"]={taxCents:m-d};const b=p=>Math.trunc(p/100),g=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const S=o[p];S&&(E[p]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const h=f.reduce((p,S)=>p+(E[S]?.tax??0),0),y=g(d);return E["5a"]={tax:h},E["5b"]={tax:y},E["5c"]={tax:h-y},E["5g"]={tax:h-y},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,S])=>({...p?{counterpartyCompanyId:p}:{},baseCents:S})),unknownCodes:[...l],...e.trace?{refs:s}:{}}}function xm(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,l=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(l)}-${r(o(c,l))}`}})}class Yn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Pm=/^\{\{\s*([\w.]+)\s*\}\}$/,Lm=/\{\{\s*([\w.]+)\s*\}\}/g,$m=/\$[A-Za-z_][\w]*\.[\w.]+/;function Km(e,t,n={}){return rt(e,t,n)}function rt(e,t,n={}){return typeof e=="string"?Um(e,t,n):Array.isArray(e)?e.map(r=>rt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,rt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Um(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match($m);if(s)throw new Yn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Pm);if(o){const s=Pr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Lm,(s,i)=>{const a=Pr(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function Pr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Yn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return Bm(e,t)}function Bm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Fm=new Set(["filled","empty"]);function jm(){return{kind:"rule",op:"==",varPath:"",value:""}}const Gm=new Set(["==","!=",">","<",">=","<="]);function Kt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Lr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ki(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=dn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function dn(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=dn(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(Kt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=dn(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!Kt(s)||!Lr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Gm.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(o)||!Lr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function $e(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?$e(e.children[0]):{[e.op]:e.children.map($e)}:e.kind==="not"?{"!":$e(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 Wm(e){const t=Ki(e);return t&&fn(t)||null}function fn(e){if(e.kind==="group"){const t=e.children.map(fn).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${fn(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 Ut=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Vm(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[l,d]=s.split("-");if(u=Number(l),c=d===void 0?u:Number(d),!Number.isInteger(u)||!Number.isInteger(c)||(d===void 0&&i!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let l=u;l<=c;l+=a)r.add(l)}return r.size?r:null}function zn(e){const t=e.trim().split(/\s+/);if(t.length!==Ut.length)return null;const n=[];for(let u=0;u<Ut.length;u++){const c=Ut[u],l=t[u];if(!c||l===void 0)return null;const d=Vm(l,c.min,c.max);if(!d)return null;n.push(d)}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 Hm(e){return zn(e)!==null}function Ui(e,t){const n=zn(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 Bi="@schedule",pn=3;function Fi(e,t,n){const r=[],o=e.depth??0;if(o>=pn)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${pn})`}))};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!==Bi){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(!Ui(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 qm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Ym(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Fi(n,r,t),i=o.flatMap(c=>c.rule.then.map(l=>l.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((c,l)=>c===a[l]))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 zm(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function ji(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==zm(e,n))}function Xm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>ji(r,t).length)?"corrected":"kept"}function Qm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Zm(e){return`subject.${e.path}`}function Jm(e,t){return e.events.find(n=>n.name===t)}function eg(e,t){return e.filter(n=>mi(t,n.path)===void 0).map(n=>n.path)}const mn=6e4,tg=36e5,Ie=864e5,Gi=800;function $r(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ie+tg}function ng(e){const t=new Date(e).getUTCFullYear();return e>=$r(t,2)&&e<$r(t,9)}function Wi(e,t){const n=t.dst==="eu"&&ng(e)?60:0;return(t.utcOffsetMinutes+n)*mn}function rg(e){return(e+3)%7+1}function Vi(e,t){const n=Wi(e,t),r=e+n,o=Math.floor(r/Ie);if(!t.days.includes(rg(o)))return null;const s=o*Ie;return{open:s+t.fromMinutes*mn-n,close:s+t.toMinutes*mn-n}}function Hi(e,t){const n=Wi(e,t),r=e+n;return(Math.floor(r/Ie)+1)*Ie-n}function ot(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Gi&&o<t;s++){const i=Vi(o,n);if(i){const a=Math.max(o,i.open),u=Math.min(t,i.close);u>a&&(r+=u-a)}o=Hi(o,n)}return r}function Et(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Gi;s++){const i=Vi(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=Hi(o,n)}return e+t}function og(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const st=1,it=2,at=4;function sg(e){return e==="snoozed"?st:it}function St(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const ig=["speed_of_answer","first_response","next_response","resolution","close"],ag=["snoozed","waiting_for_customer"],cg=6e4,qi=["speed_of_answer","first_response","next_response"],ug=[...qi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function lg(e,t){return ke(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Kr(e){return ke(e)?{state:"void"}:null}function dg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:ot(n,e.dueAt,r)}}function fg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:Et(n,e.remainingMs,r)}}function pg({event:e,at:t,now:n,clocks:r,profile:o}){const s=St(o),i=Math.min(t,n),a=r.map(h=>({...h})),u=[],c=(h,y)=>{y&&(u.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},l=h=>{for(const y of a)y.metric===h&&c(y,lg(y,i))},d=h=>{for(const y of a)h.includes(y.metric)&&c(y,Kr(y))},f=h=>{for(const y of a)c(y,dg(y,h,i,s))},m=h=>{for(const y of a)c(y,fg(y,h,i,s))},b=h=>a.reduce((y,p)=>p.metric===h?Math.max(y,p.attempt):y,0)+1,g=h=>a.some(y=>y.metric===h&&ke(y)),E=(h,y)=>{const p=o.targets.find(T=>T.metric===h);if(!p)return;const S=p.minutes*cg;u.push({op:"start",metric:h,attempt:b(h),startedAt:y,targetMs:S,dueAt:Et(y,S,s)})};switch(e){case"apply":{for(const h of a)h.profileId!==o.id&&c(h,Kr(h));for(const h of o.targets){if(h.metric==="next_response")continue;a.some(p=>p.metric===h.metric&&p.profileId===o.id)||E(h.metric,i)}break}case"answered":l("speed_of_answer");break;case"outbound":{l("first_response"),l("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(it);break}case"inbound":{m(it),!g("first_response")&&!g("next_response")&&E("next_response",i);break}case"resolved":l("resolution");break;case"closed":l("close"),l("resolution"),d(qi);break;case"reopened":g("resolution")||E("resolution",i),g("close")||E("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(st);break;case"unsnoozed":m(st);break;case"hold":f(at);break;case"unhold":m(at);break;case"discarded":d(ug);break}return u}function Yi(e){return e.state==="running"||e.state==="paused"}function mg(e){return(e.pauseBits&at)!==0}function ct(e,t){const n=St(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-ot(e.dueAt,t,n):ot(t,e.dueAt,n)}function gg(e,t){return e.state==="paused"?Et(t,e.remainingMs,St(e)):e.dueAt}function hg(e,t){const n=e.filter(Yi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>ct(i,t)<ct(s,t)?i:s)}function yg(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=ct(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function bg(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 zi="strategy_item";function Xn(e){return`${zi}:${e}`}function _g(e,t=25){const n=new Set([Xn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Eg(e){return e?[...e.ancestorKeys??[],Xn(e.id)]:[]}const Oe=[{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"}],Xi=999,Qi=7;function Zi(e,t=Oe){return t.find(n=>n.key===e)}function ut(e,t=Oe){return Zi(e,t)?.order??Xi}function Sg(e,t,n=Oe){return ut(t,n)<=ut(e,n)}function Ig(e,t=Oe){const n=ut(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Ag(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 gn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Cg(e){return gn[e]??"open"}function vg(e){return Object.keys(gn).filter(t=>e.includes(gn[t]))}const Tg=864e5,It=e=>e<=0?0:e>1?1:e;function kg(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)?It((t-r)/i):s?1:0}function Og(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return It((t-n)/(r-n))}const Ji=.1,ea=.25;function Mg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ea?"off_track":n>=Ji?"at_risk":"on_track"}function Rg(e,t){if(t)return It(e/t)}function Ng(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return It(t.reduce((n,r)=>n+r,0)/t.length)}function Dg(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Qi)*Tg,o=t-n-r;return o>0?o:0}function wg(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function xg(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 Pg(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Lg(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 $g(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Kg(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 ta(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ug(e,t){const n=ta(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 Bg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Fg(e){return e.filter(t=>!t.archived).sort(na)}function na(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const ra=20,oa=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function sa(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ke)return t;const n=t.slice(0,Ke),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ke*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function jg(e,t){const n=sa(t.text),r=te(n);if(!r||(e.examples??[]).some(i=>te(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>te(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},Ur(i)}return Ur([{...t,text:n},...o]).slice(0,oa)}function Ur(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Gg(e,t){const n=te(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>te(s)===n)?r:[...r,t].slice(-ra),exampleCandidates:ia(e,t)}}function ia(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function aa(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Wg(e,t){return e.filter(n=>aa(n,t))}const ca=["apps","settings","wake"],At="businessEntityId";function Vg(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...ua.map(s=>s.key),...ca,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Hg({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],i=a=>!!a&&(s.includes(a)||r&&a!=="apps"&&o.visible.includes(a));return i(t)?t:i(n)?n:s[0]??"apps"}const ua=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function qg(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,i,...a]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...i?{app:i}:{},path:`/${a.join("/")}${o}`}}function Yg({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const Ct=[{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"}],la=[...Ct,...wi],Qn=["quote","order","invoice","credit_note"];function zg(){const e=new Map;for(const t of Ct)Qn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return la.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Xg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function da(e,t){return F(e).transitions[t]??[]}function Qg(e,t,n){return da(e,t).includes(n)}const fa=["invoice","credit_note"];function Zg(e){return!!e.issuedAt&&fa.includes(e.kindKey)}function Jg(e,t,n="sales"){const r=a=>e.totals?.byRate?.find(u=>u.taxRateKey===a),o=e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),i=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${F(e.kindKey).path}/${e.id}?${At}=${encodeURIComponent(e.businessEntityId)}`}:{},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:J(e.issuedAt??Date.now()),...i?{taxPointDate:J(i)}:{},...e.dueAt?{dueDate:J(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},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}:{},dimensions:{customerCompanyId:e.companyId,...a.dealItemId?{dealItemId:a.dealItemId}:{}},...a.costPriceCents!=null?{costCents:Math.round(a.costPriceCents*a.quantity)}:{},...a.servicePeriod?{period:{from:J(a.servicePeriod.from),to:J(a.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Zn(e){return e.issuedAt!=null}const eh=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function th(e){return Zn(e)&&F(e.kindKey).numbered&&!e.number}const nh=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","lines"],rh=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId"];function oh(e,t){if(!Qn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Zn(e)}function pa(e,t){const n=F(t).signFlip!==F(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 sh(e){return{...pa(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 ih(e,t={}){const n=F(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:uh(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:ae(e.issuedAt),valid_until:ae(e.expiresAt),due_date:ae(e.dueAt),delivery_date:ae(e.deliveredAt),period_from:ae(e.periodFrom),period_to:ae(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:H(r.netCents),tax:H(r.taxCents),gross:H(r.grossCents)}}}function ah(e,t=[],n=ma){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,"","",""]:[ch(a.name,a.description,a.optional,n.optional),lh(a,n),Mn(a)?"":a.pricePer?[H(a.unitPriceCents),n.per[a.pricePer]].join(" "):H(a.unitPriceCents),H(a.netCents)])},i={block_id:"totals",type:"totals",rows:[{label:n.net,amount:H(r.netCents)},{label:n.gross,amount:H(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(a=>({label:`${n.tax} ${a.percent??o(a.taxRateKey)}%`,amount:H(a.taxCents)}))};return{lines:[s],totals:[i]}}const ma={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function ch(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function uh(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function lh(e,t){const n=Mn(e);return n?[Br(n.amount),t.units[n.unit]??n.unit].join(" "):Br(e.quantity)}function Br(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ae(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 ga(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:fh[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 ${F(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:Fr[n]??Fr.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:jr[n]??jr.quote}]}const dh=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),fh={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Fr={quote:`Beste {customer.contact},
|
|
13
13
|
|
|
14
14
|
Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
|
|
15
15
|
|
|
@@ -17,20 +17,20 @@ 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.`},jr={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."},ph=ga("quote"),mh={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},gh=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ha(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((i,u)=>i.level-u.level),o=r.find(i=>i.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,a=gh(J(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function hh(e,t,n){const r=[],o=[];for(const s of e){const a=ha(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const ya=Ct.map(e=>e.key),ba="product",_a="agreement";function Ea(e,t){return`${e}:${t}`}function yh(e){return`${ba}:${e}`}function Sa(e,t){return`/apps/sales${e}?${At}=${encodeURIComponent(t)}`}function bh(e,t){const n=e.businessEntityId||t;if(n)return Sa(`/${F(e.kindKey).path}/${e.id}`,n)}function _h(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${At}=${encodeURIComponent(n)}`:void 0}function Eh(e){return`${_a}:${e}`}function Sh(e,t){const n=e.businessEntityId||t;return n?Sa(`/agreement/${e.id}`,n):void 0}function Ih(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return ya.includes(n)?e.slice(t+1):void 0}function Ah(e){const t=new Set([Ea(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 Ch=4;function vh(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Th(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const kh=["cash","credit","direct_debit","card","other"],Ia=(e,t)=>!e.direction||e.direction===t;function Oh(e,t,n={}){const r=e.filter(s=>!s.archived&&Ia(s,t)),o=s=>s?r.find(a=>a.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Mh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Rh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Nh=[{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 Jn(e){return e.settlement?.state??"unpaid"}function Aa(e){const t=Jn(e);return t==="paid"||t==="overpaid"}function er(e){return!!e.issuedAt&&e.status==="open"&&!Aa(e)}function Dh(e,t){return!er(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function wh(e){return e.totals?.grossCents??0}function xh(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 Ph(e,t,n){const r=wh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Ca=["current","d1_30","d31_60","d61_90","d90_plus"],Lh=864e5;function $h(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/Lh)}function Kh(e,t){if(!er(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,a)=>!s||a.level>s.level?a:s,void 0),o=e.dueAt!=null?$h(J(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:Jn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function va(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Uh(e){const t=Object.fromEntries(Ca.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[va(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Bh="receivables.company";function Fh(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 jh(e){return e.type==="agent"}const Ta=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Gh(e){return Ta.includes(e)}const Wh="WORK_COMMENT_ADDED",Vh="WORK_ITEM_ASSIGNED",Hh="WORK_ITEM_STATUS_CHANGED";function qh(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))/Es)}function Yh(e,t){if(e.closedAt!=null)return{score:ee,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ee,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Se[s]>0&&(r+=Se[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const a=qh(e.dueDate,t.now);a<0?(r+=35,o.push("overdue")):a===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 vt=[{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"}],zh=vt.map(e=>e.key);function Xh(e){return e?.types?.length?e.types:vt}function Qh(e,t){return t.find(n=>n.key===e)}function Zh(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 Jh(...e){return e.map(t=>vt.find(n=>n.key===t)).filter(t=>!!t)}const ka="work_item",Oa="work_project",Ma="work_activity",ey="work_cycle";function Ra(e){return`${ka}:${e}`}function tr(e){return`${Oa}:${e}`}function ty(e){return`${Ma}:${e}`}function ny(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ry(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 oy(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function sy(e,t=25){const n=new Set([Ra(e.id)]);e.projectId&&n.add(tr(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 iy(e){return[tr(e.id)]}const Tt=[{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}],nr=Tt.map(e=>e.key);function Na(e){return e?.statuses?.length?e.statuses:Tt}function Da(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ay(e,t){return t.find(n=>n.key===e)}function cy(e){const t=Na(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:wa(t)[0]?.key??Tt[0].key}function wa(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function uy(e,t){return Da(e,t)==="done"}function xa(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ly(e,t){const n=xa(e)||"status",r=new Set([...t,...nr]);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 dy(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}nr.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 fy(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function py(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 my=["day","week","month"];function gy(e){const t=e;if(!t||!my.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 Pa(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 hy(e,t,n){const r=Pa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function yy(e){return e.startDate??Number.MAX_SAFE_INTEGER}function by(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const _y=["statusKeys","typeKeys","labels","priority","assignees"],Ey=["blockedOnly","watchingOnly","reportedByMe"],Sy=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Iy=["list","board","calendar","workload"],Ay=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Cy=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function La(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Ay.has(t)?"image":t==="application/pdf"?"pdf":Cy.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,$a={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},vy=25*ye,Ty=5;function ky(e,t){const n=La(e);return n==="unsupported"?"unsupported":t>$a[n]?"too-large":null}const Oy="ai-tool";function My(e){return e.access==="read"?"idempotent":e.reversible??"none"}function rr(e){return e.access!=="read"&&e.effect!=="internal"}function Ka(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ry(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const a=Ka(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const Ny="assist-source",Dy=["blocking","due","open"];function wy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Gr={blocking:0,due:1,open:2};function xy(e,t){return Gr[e.band??"open"]-Gr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const Py="bookable-source",Ly="bookkeeping",$y={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},Ky={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 Uy(e){return`oc:${e}`}function By(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Fy(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function jy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ua(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(a=>!n.has(a.intent)).map(a=>Wy(a,r[a.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(a=>a.intent));for(const a of e.extraIntents)s.has(a.intent)||(o.push(a),s.add(a.intent));return o}function Ba(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 Gy(e,t){const n=Ba(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Wy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Vy(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ua(r,o))n.push({channel:r,description:o,capability:s})}return n}function Hy(e,t){return t.filter(n=>n.capability.intent===e)}function Fa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function qy(e,t){return Fa(e.scheme,t)}function Yy(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 zy(e,t,n={}){let r=t,o=e;for(const[s,a]of Object.entries(n))r=r.split("{"+s+"}").join(String(a)),o+=" "+s+"="+encodeURIComponent(String(a));return r+" ["+o+"]"}const Xy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Qy(e){const t=Xy.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}}function Zy(e,t){const n=t??Jy(e),r=[];let o=[],s="",a=!1;for(let i=0;i<e.length;i++){const u=e[i];a?u==='"'&&e[i+1]==='"'?(s+='"',i++):u==='"'?a=!1:s+=u:u==='"'&&s===""?a=!0:u===n?(o.push(s),s=""):u===`
|
|
21
|
-
`||u==="\r"?(u==="\r"&&e[
|
|
22
|
-
`&&
|
|
20
|
+
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},jr={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."},ph=ga("quote"),mh={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},gh=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ha(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=gh(J(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}function hh(e,t,n){const r=[],o=[];for(const s of e){const i=ha(s,t,n);i==="done"?o.push(s):i&&r.push(i)}return{due:r,waiting:o}}const ya=Ct.map(e=>e.key),ba="product",_a="agreement";function Ea(e,t){return`${e}:${t}`}function yh(e){return`${ba}:${e}`}function Sa(e,t){return`/apps/sales${e}?${At}=${encodeURIComponent(t)}`}function bh(e,t){const n=e.businessEntityId||t;if(n)return Sa(`/${F(e.kindKey).path}/${e.id}`,n)}function _h(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${At}=${encodeURIComponent(n)}`:void 0}function Eh(e){return`${_a}:${e}`}function Sh(e,t){const n=e.businessEntityId||t;return n?Sa(`/agreement/${e.id}`,n):void 0}function Ih(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return ya.includes(n)?e.slice(t+1):void 0}function Ah(e){const t=new Set([Ea(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 Ch=4;function vh(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Th(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const kh=["cash","credit","direct_debit","card","other"],Ia=(e,t)=>!e.direction||e.direction===t;function Oh(e,t,n={}){const r=e.filter(s=>!s.archived&&Ia(s,t)),o=s=>s?r.find(i=>i.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Mh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Rh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Nh=[{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 Jn(e){return e.settlement?.state??"unpaid"}function Aa(e){const t=Jn(e);return t==="paid"||t==="overpaid"}function er(e){return!!e.issuedAt&&e.status==="open"&&!Aa(e)}function Dh(e,t){return!er(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function wh(e){return e.totals?.grossCents??0}function xh(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 Ph(e,t,n){const r=wh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Ca=["current","d1_30","d31_60","d61_90","d90_plus"],Lh=864e5;function $h(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/Lh)}function Kh(e,t){if(!er(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?$h(J(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:Jn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function va(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Uh(e){const t=Object.fromEntries(Ca.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[va(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Bh="receivables.company";function Fh(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 jh(e){return e.type==="agent"}const Ta=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Gh(e){return Ta.includes(e)}const Wh="WORK_COMMENT_ADDED",Vh="WORK_ITEM_ASSIGNED",Hh="WORK_ITEM_STATUS_CHANGED";function qh(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))/Es)}function Yh(e,t){if(e.closedAt!=null)return{score:ee,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ee,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Se[s]>0&&(r+=Se[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=qh(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 vt=[{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"}],zh=vt.map(e=>e.key);function Xh(e){return e?.types?.length?e.types:vt}function Qh(e,t){return t.find(n=>n.key===e)}function Zh(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 Jh(...e){return e.map(t=>vt.find(n=>n.key===t)).filter(t=>!!t)}const ka="work_item",Oa="work_project",Ma="work_activity",ey="work_cycle";function Ra(e){return`${ka}:${e}`}function tr(e){return`${Oa}:${e}`}function ty(e){return`${Ma}:${e}`}function ny(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ry(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 oy(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function sy(e,t=25){const n=new Set([Ra(e.id)]);e.projectId&&n.add(tr(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 iy(e){return[tr(e.id)]}const Tt=[{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}],nr=Tt.map(e=>e.key);function Na(e){return e?.statuses?.length?e.statuses:Tt}function Da(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ay(e,t){return t.find(n=>n.key===e)}function cy(e){const t=Na(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:wa(t)[0]?.key??Tt[0].key}function wa(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function uy(e,t){return Da(e,t)==="done"}function xa(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ly(e,t){const n=xa(e)||"status",r=new Set([...t,...nr]);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 dy(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}nr.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 fy(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function py(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 my=["day","week","month"];function gy(e){const t=e;if(!t||!my.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 Pa(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 hy(e,t,n){const r=Pa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function yy(e){return e.startDate??Number.MAX_SAFE_INTEGER}function by(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const _y=["statusKeys","typeKeys","labels","priority","assignees"],Ey=["blockedOnly","watchingOnly","reportedByMe"],Sy=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Iy=["list","board","calendar","workload"],Ay=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Cy=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function La(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Ay.has(t)?"image":t==="application/pdf"?"pdf":Cy.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,$a={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},vy=25*ye,Ty=5;function ky(e,t){const n=La(e);return n==="unsupported"?"unsupported":t>$a[n]?"too-large":null}const Oy="ai-tool";function My(e){return e.access==="read"?"idempotent":e.reversible??"none"}function rr(e){return e.access!=="read"&&e.effect!=="internal"}function Ka(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ry(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=Ka(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const Ny="assist-source",Dy=["blocking","due","open"];function wy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Gr={blocking:0,due:1,open:2};function xy(e,t){return Gr[e.band??"open"]-Gr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const Py="bookable-source",Ly="bookkeeping",$y={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},Ky={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 Uy(e){return`oc:${e}`}function By(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Fy(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function jy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ua(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>Wy(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 Ba(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 Gy(e,t){const n=Ba(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Wy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Vy(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ua(r,o))n.push({channel:r,description:o,capability:s})}return n}function Hy(e,t){return t.filter(n=>n.capability.intent===e)}function Fa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function qy(e,t){return Fa(e.scheme,t)}function Yy(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 zy(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 Xy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Qy(e){const t=Xy.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}}function Zy(e,t){const n=t??Jy(e),r=[];let o=[],s="",i=!1;for(let a=0;a<e.length;a++){const u=e[a];i?u==='"'&&e[a+1]==='"'?(s+='"',a++):u==='"'?i=!1:s+=u:u==='"'&&s===""?i=!0:u===n?(o.push(s),s=""):u===`
|
|
21
|
+
`||u==="\r"?(u==="\r"&&e[a+1]===`
|
|
22
|
+
`&&a++,o.push(s),s="",o.some(c=>c!=="")&&r.push(o),o=[]):s+=u}return o.push(s),o.some(a=>a!=="")&&r.push(o),r}function Jy(e){const t=e.search(/\r?\n/),n=t===-1?e:e.slice(0,t),r=o=>n.split(o).length-1;return[";",","," "].reduce((o,s)=>r(s)>r(o)?s:o,";")}const eb={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function tb(e){const t=e[0]===239&&e[1]===187&&e[2]===191?3:0,n=[];let r=t;for(;r<e.length;){const o=e[r],s=o<128?0:o>>5===6?1:o>>4===14?2:o>>3===30?3:-1;if(s<0||r+s>=e.length)return Wr(e,t);let i=s===0?o:o&63>>s;for(let a=1;a<=s;a++){const u=e[r+a];if(u>>6!==2)return Wr(e,t);i=i<<6|u&63}n.push(i),r+=s+1}return ja(n)}function Wr(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(eb[e[r]]??e[r]);return ja(n)}function ja(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}var Ga=(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))(Ga||{});const nb={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 rb(e){return e?nb[e]??"note":"note"}const ob="message_window",sb="message_templates",ib={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},ab=(e,t)=>({intent:e,...t}),cb="remote_search",ub="message_reactions",lb={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},db="connector",fb="context.collect",N=e=>({type:"string",description:e}),M=e=>({type:"number",description:e}),Ue=e=>({type:"boolean",description:e}),W=N("Sheet name. Omit for the sheet the user is looking at."),Vr=N("Slide id, as `inspect` reports it.");function O(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 _e={undoable:!1,visible:!0},w={undoable:!0,visible:!0},Hr={undoable:!1,visible:!0},lt={undoable:!1,visible:!1},pb=[O("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:M("1-based page number.")},["page"],_e),O("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:N("Text to find."),next:Ue("Jump to the next match instead of the first.")},["query"],_e),O("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"],_e),O("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:N("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"],w),O("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"],Hr),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Hr),O("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The note's text."),left:M("Distance from the left edge, in PDF points (72 per inch)."),top:M("Distance from the top edge, in PDF points."),width:M("Box width in points. Omit for a sensible default."),height:M("Box height in points. Omit for a sensible default."),fontSize:M("Font size in points. Omit for 12.")},["page","text","left","top"],lt),O("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The exact phrase to highlight, as it appears in the page's text."),occurrence:M("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],lt)],mb=[O("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:W,range:N("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"],w),O("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:W,range:N("A1 notation."),formula:N("Including the leading `=`.")},["range","formula"],w),O("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:W,range:N("A1 notation."),bold:Ue("Bold on or off."),italic:Ue("Italic on or off."),fontSize:M("Point size."),fontColor:N("CSS colour, e.g. `#b91c1c`."),background:N("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:N("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],w),O("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:W,at:M("1-based row number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:W,at:M("1-based first row to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:W,at:M("1-based column number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:W,at:M("1-based first column to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:W,range:N("A1 notation covering the rows to sort, header excluded."),column:M("1-based column *within the range*, not within the sheet."),ascending:Ue("Ascending. Omit for ascending.")},["range","column"],w),O("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:N("Name for the new sheet.")},["name"],w),O("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:N("Current name."),name:N("New name.")},["sheet","name"],w),O("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:N("Name of the sheet to delete.")},["sheet"],w),O("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:W,range:N("A1 notation to select. Omit to only switch sheets.")},[],_e)],gb=[O("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:M("The offset the paragraph starts at, exactly as `inspect` prints it."),text:N("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],w),O("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:M("Character offset where the replaced text starts, as `inspect` reports offsets."),end:M("Character offset just past the last character to replace."),text:N("The replacement text. A newline starts a new paragraph.")},["start","end","text"],w),O("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:M("Character offset, as `inspect` reports offsets."),text:N("The text to insert.")},["index","text"],w),O("word.appendText",["word"],"Add text at the end of the document.",{text:N("The text to append.")},["text"],w),O("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:N("Paragraph text. Newlines start further paragraphs."),index:M("Character offset to insert at. Omit for the end of the document.")},[],w),O("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:M("Start character offset."),end:M("End character offset. Omit for a caret.")},["start"],_e)],hb=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Vr,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],lt),O("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:Vr,element:N("Element id."),left:M("Distance from the left edge, in pixels."),top:M("Distance from the top edge, in pixels."),width:M("Width in pixels."),height:M("Height in pixels.")},["slide","element"],lt)],or=[...pb,...mb,...gb,...hb];function yb(e){return or.filter(t=>t.kinds.includes(e))}function bb(e){return or.find(t=>t.op===e)}const qr=/(?: {2,}|\\)$/,_b=/^\*\*([^*]+)\*\*\s+(.*)$/;function Yr(e){const t=_b.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Eb(e){const t=(e??"").replace(/\r\n/g,`
|
|
23
23
|
`).split(`
|
|
24
|
-
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(Yr(m)):r={style:f,items:[Yr(m)]}};let
|
|
25
|
-
`)}),
|
|
26
|
-
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){l(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),d++;continue}const g=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(g){l(),n.push({type:"image",url:g[2],...g[1]?{alt:g[1]}:{}}),d++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),d++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),d++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){l(),n.push({type:"divider"}),d++;continue}if(/^>\s?/.test(f)){u(),o(),
|
|
24
|
+
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(Yr(m)):r={style:f,items:[Yr(m)]}};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(`
|
|
25
|
+
`)}),a=[])},l=()=>{u(),c(),o()};let d=0;for(;d<t.length;){const f=t[d]??"",m=f.match(/^```(\w*)\s*$/);if(m){l();const h=[];for(d++;d<t.length&&!/^```\s*$/.test(t[d]??"");)h.push(t[d]??""),d++;d++,n.push({type:"code",...m[1]?{lang:m[1]}:{},text:h.join(`
|
|
26
|
+
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){l(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),d++;continue}const g=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(g){l(),n.push({type:"image",url:g[2],...g[1]?{alt:g[1]}:{}}),d++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),d++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),d++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){l(),n.push({type:"divider"}),d++;continue}if(/^>\s?/.test(f)){u(),o(),a.push(f.replace(/^>\s?/,"")),d++;continue}if(f.trim()===""){l(),d++;continue}c(),o();const E=qr.test(f);i.push(f.replace(qr,"").trim()+(E?`
|
|
27
27
|
`:" ")),d++}return l(),n}function Sb(e,t){return vn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
|
|
28
28
|
|
|
29
|
-
`).trim()}const Ib="documents.describe",Ab="documents.inspect",Cb="documents.apply";function vb(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 Tb="installation-id";function kb(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function Ob(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const zr="main",be=e=>`${e.app}:${e.entry}`,Bt=e=>be({app:e.app,entry:e.entry.id}),Xr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Mb(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:a}=e,i=new Set(t.map(_=>_.name)),u=new Map(r.map(_=>[_.key,_])),c=new Set(n.map(_=>_.key)),l=new Map,d=new Map,f=new Map;for(const _ of t)for(const v of _.nav??[])for(const x of v.entries){const B={app:_.name,entry:x};if(l.set(Bt(B),B),v.workspace!=="apps"){d.set(v.workspace,[...d.get(v.workspace)??[],{item:B,section:v.section}]);continue}const Y=f.get(_.name)??[],re=v.section??zr;let ie=Y.find(L=>L.key===re);ie||(ie={key:re,items:[]},v.section&&(ie.label={key:`${_.name}:section_${v.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const v=u.get(_.key),x=new Map(_.sections.map(L=>[L,[]]));for(const{item:L,section:z}of d.get(_.key)??[]){const Ot=z&&x.has(z)?z:_.sections[0];x.get(Ot)?.push(L)}const B=v?.sections??[],Y=new Set(B.flatMap(L=>(L.entries??[]).map(be))),re=new Set((v?.excluded??[]).map(be));return[...B.map(L=>L.key),..._.sections.filter(L=>!B.some(z=>z.key===L))].map(L=>{const z=B.find(oe=>oe.key===L),Ot=(z?.entries??[]).flatMap(oe=>l.get(be(oe))??[]),mc=(x.get(L)??[]).filter(oe=>!Y.has(Bt(oe)));return{key:L,label:z?.label?{text:z.label}:{key:`section_${L}`},items:[...Ot,...mc].filter(oe=>!re.has(Bt(oe)))}})},b=_=>(_.sections??[]).map(v=>({key:v.key,...v.label?{label:{text:v.label}}:{},items:(v.entries??[]).flatMap(x=>l.get(be(x))??[])})),g=[...n.filter(_=>i.has(_.owner)).map(_=>({key:_.key,label:{key:`workspace_${_.key}`},icon:_.icon,order:_.order,sections:m(_)})),...r.filter(_=>!c.has(_.key)).map(_=>({key:_.key,label:{text:_.label??_.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:b(_)}))],E=new Set(g.flatMap(_=>[...Xr(_.sections)])),h=_=>_.map(v=>({...v,items:v.items.filter(x=>(x.entry.permissions??[]).every(a))})).filter(v=>v.items.length>0),y=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const v=u.get(_);if(v?.visibleByDefault===!1)return!1;const x=v?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},S=g.map(_=>{const v=u.get(_.key);return{..._,label:v?.label?{text:v.label}:_.label,icon:v?.icon??_.icon,order:v?.order??_.order}}).sort((_,v)=>_.order-v.order),T=S.map(({order:_,...v})=>{const x=c.has(v.key)?"default":"own";return{...v,group:"workspaces",kind:x,customized:x==="default"&&u.has(v.key),visible:y(v.key),visibleByDefault:p(v.key)}}),C=S.filter(_=>y(_.key)).map(_=>({..._,sections:h(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...v})=>({...v,group:"workspaces"})),R=new Map;for(const _ of t){const x=[...new Map((_.nav??[]).flatMap(Y=>Y.entries.map(re=>[re.id,re]))).values()].map(Y=>({app:_.name,entry:Y})),B=h(f.get(_.name)??[{key:zr,items:x}]);B.length!==0&&R.set(_.name,{key:"apps",app:_.name,group:"apps",label:{text:_.displayName},icon:_.icon??"app-window",sections:B})}const D=[...R.values()].filter(_=>_.app&&(f.has(_.app)||!E.has(_.app))).sort((_,v)=>Qr(_).localeCompare(Qr(v))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const v of Xr(_.sections))Q[v]??=[],G.get(_.key)===v?Q[v].unshift(_.key):Q[v].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:T,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Qr=e=>"text"in e.label?e.label.text:e.label.key,Rb="notification-source",Nb=(e,t)=>`${e}.pref.${t}`,Db={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"]},sr=9e4,Wa=["out_of_office"],Va=e=>Wa.includes(e);function wb(e,t,n){const r=n-e<sr,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&&!Va(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function xb(e,t){const n=t-e.lastSeenAt<sr,r=n||Va(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Pb(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 Lb(e){return e.providerAvailable&&e.allowed}const $b="provisioning-source",Kb={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},Ub="resources.describe",Bb="resources.search",Fb="resources.resolve",jb="resources.attached";function Gb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const Wb="/provider/scope/related",Vb="/provider/scope/read",Hb="/provider/scope/acts",Ha="auth";function qa(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function qb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function Yb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function zb(e){return typeof e!="string"||e===""||e==="/"?!0:qa(e)===Ha}function Xb(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ya(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Xb(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function za(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,a)=>{if(s.startsWith(":")){const i=s.endsWith("?")?s.slice(1,-1):s.slice(1),u=r[a];u&&(o[i]=u)}}),o}function Xa(e){return e.publicBasePath??`/apps/${e.name}`}function Qb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Xa(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 Qa(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(":"),a=r[o].startsWith(":");if(s!==a)return a}return n.length>r.length}function Za(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ya(r.pattern).test(e)&&(!n||Qa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...za(n.pattern,e)}}:null}function Zb(e,t){return Za(e,t)!==null}const Jb=10*1024*1024,e_=25*1024*1024,t_="sync-target",n_=20;function ir(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 Ja(e,t,n){return ir(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?rr(e):!0:!1}function r_(e){return e.produces==="draft"}function o_(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"&&ir(e)||t.mode==="draft"&&(rr(e)||e.access!=="read"&&!r_(e))?"hidden":t.gate&&Ja(e,t.gate,t.policy)?"held":"free"}const s_={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]"]},ec=e=>{let t=e;return Object.values(s_).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},tc=6e4,nc=8e3,rc=2,oc=.4,i_=3,a_=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 sc(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<i_||a_.has(n)||t.add(n);return[...t]}function ic(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 ac(e,t=tc){const n=e.filter(a=>!a.partial&&typeof a.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((a,i)=>Math.max(a,i.endedAt??0),0)-t;return{text:n.filter(a=>(a.endedAt??0)>=o).map(a=>ec(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const cc=60;function c_(e,t,n=cc){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 u_(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<nc)return{trigger:!1,reason:"too_soon"};const o=ac(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<rc)return{trigger:!1,reason:"too_few_new"};const a=sc(o.text);return a.length?r.lastQueryTerms?.length&&ic(a,r.lastQueryTerms)<oc?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const l_=["personal","organization","connections","flows","work","administration","ai"],d_="navNotice",kt={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}},uc="NL",f_=15,p_=8,m_=Array.from(new Set(Object.values(kt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Zr(e){if(e)return kt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Jr(e){if(e.length>f_)return null;for(const t of m_){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(kt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Be(s,r))return`+${t}${s}`}return null}return e.length<p_?null:`+${e}`}function g_(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 h_(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 hn(e,t){if(!e)return null;const n=g_(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Jr(o);if(o.startsWith("00"))return Jr(o.slice(2));const s=Zr(t)??Zr(uc);if(!s)return null;const a=s.trunkPrefix;if(a&&o.startsWith(a)){const i=o.slice(a.length);return Be(i,s)?`+${s.callingCode}${i}`:null}if(o.startsWith(s.callingCode)){const i=o.slice(s.callingCode.length);if(Be(i,s))return`+${s.callingCode}${i}`}return!a&&Be(o,s)?`+${s.callingCode}${o}`:null}function y_(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ar(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 b_(e){const t=ar(e);return t?t.slice(t.lastIndexOf("@")+1):null}const __=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function lc(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 __.has(n)&&t.length>=3?t.slice(-3).join("."):n}const dc=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 E_(e){const t=lc(e);return t?dc.has(t):!1}function S_(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function I_(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=hn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=hn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=ar(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const A_=[/<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],eo=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,C_=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function v_(e){const t=e.split(`
|
|
29
|
+
`).trim()}const Ib="documents.describe",Ab="documents.inspect",Cb="documents.apply";function vb(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 Tb="installation-id";function kb(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function Ob(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const zr="main",be=e=>`${e.app}:${e.entry}`,Bt=e=>be({app:e.app,entry:e.entry.id}),Xr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Mb(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:i}=e,a=new Set(t.map(_=>_.name)),u=new Map(r.map(_=>[_.key,_])),c=new Set(n.map(_=>_.key)),l=new Map,d=new Map,f=new Map;for(const _ of t)for(const v of _.nav??[])for(const x of v.entries){const B={app:_.name,entry:x};if(l.set(Bt(B),B),v.workspace!=="apps"){d.set(v.workspace,[...d.get(v.workspace)??[],{item:B,section:v.section}]);continue}const Y=f.get(_.name)??[],re=v.section??zr;let ie=Y.find(L=>L.key===re);ie||(ie={key:re,items:[]},v.section&&(ie.label={key:`${_.name}:section_${v.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const v=u.get(_.key),x=new Map(_.sections.map(L=>[L,[]]));for(const{item:L,section:z}of d.get(_.key)??[]){const Ot=z&&x.has(z)?z:_.sections[0];x.get(Ot)?.push(L)}const B=v?.sections??[],Y=new Set(B.flatMap(L=>(L.entries??[]).map(be))),re=new Set((v?.excluded??[]).map(be));return[...B.map(L=>L.key),..._.sections.filter(L=>!B.some(z=>z.key===L))].map(L=>{const z=B.find(oe=>oe.key===L),Ot=(z?.entries??[]).flatMap(oe=>l.get(be(oe))??[]),mc=(x.get(L)??[]).filter(oe=>!Y.has(Bt(oe)));return{key:L,label:z?.label?{text:z.label}:{key:`section_${L}`},items:[...Ot,...mc].filter(oe=>!re.has(Bt(oe)))}})},b=_=>(_.sections??[]).map(v=>({key:v.key,...v.label?{label:{text:v.label}}:{},items:(v.entries??[]).flatMap(x=>l.get(be(x))??[])})),g=[...n.filter(_=>a.has(_.owner)).map(_=>({key:_.key,label:{key:`workspace_${_.key}`},icon:_.icon,order:_.order,sections:m(_)})),...r.filter(_=>!c.has(_.key)).map(_=>({key:_.key,label:{text:_.label??_.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:b(_)}))],E=new Set(g.flatMap(_=>[...Xr(_.sections)])),h=_=>_.map(v=>({...v,items:v.items.filter(x=>(x.entry.permissions??[]).every(i))})).filter(v=>v.items.length>0),y=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const v=u.get(_);if(v?.visibleByDefault===!1)return!1;const x=v?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},S=g.map(_=>{const v=u.get(_.key);return{..._,label:v?.label?{text:v.label}:_.label,icon:v?.icon??_.icon,order:v?.order??_.order}}).sort((_,v)=>_.order-v.order),T=S.map(({order:_,...v})=>{const x=c.has(v.key)?"default":"own";return{...v,group:"workspaces",kind:x,customized:x==="default"&&u.has(v.key),visible:y(v.key),visibleByDefault:p(v.key)}}),C=S.filter(_=>y(_.key)).map(_=>({..._,sections:h(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...v})=>({...v,group:"workspaces"})),R=new Map;for(const _ of t){const x=[...new Map((_.nav??[]).flatMap(Y=>Y.entries.map(re=>[re.id,re]))).values()].map(Y=>({app:_.name,entry:Y})),B=h(f.get(_.name)??[{key:zr,items:x}]);B.length!==0&&R.set(_.name,{key:"apps",app:_.name,group:"apps",label:{text:_.displayName},icon:_.icon??"app-window",sections:B})}const D=[...R.values()].filter(_=>_.app&&(f.has(_.app)||!E.has(_.app))).sort((_,v)=>Qr(_).localeCompare(Qr(v))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const v of Xr(_.sections))Q[v]??=[],G.get(_.key)===v?Q[v].unshift(_.key):Q[v].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:T,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Qr=e=>"text"in e.label?e.label.text:e.label.key,Rb="notification-source",Nb=(e,t)=>`${e}.pref.${t}`,Db={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"]},sr=9e4,Wa=["out_of_office"],Va=e=>Wa.includes(e);function wb(e,t,n){const r=n-e<sr,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&&!Va(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function xb(e,t){const n=t-e.lastSeenAt<sr,r=n||Va(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Pb(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 Lb(e){return e.providerAvailable&&e.allowed}const $b="provisioning-source",Kb={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},Ub="resources.describe",Bb="resources.search",Fb="resources.resolve",jb="resources.attached";function Gb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const Wb="/provider/scope/related",Vb="/provider/scope/read",Hb="/provider/scope/acts",Ha="auth";function qa(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function qb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function Yb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function zb(e){return typeof e!="string"||e===""||e==="/"?!0:qa(e)===Ha}function Xb(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ya(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Xb(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function za(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 Xa(e){return e.publicBasePath??`/apps/${e.name}`}function Qb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Xa(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 Qa(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 Za(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ya(r.pattern).test(e)&&(!n||Qa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...za(n.pattern,e)}}:null}function Zb(e,t){return Za(e,t)!==null}const Jb=10*1024*1024,e_=25*1024*1024,t_="sync-target",n_=20;function ir(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 Ja(e,t,n){return ir(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?rr(e):!0:!1}function r_(e){return e.produces==="draft"}function o_(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"&&ir(e)||t.mode==="draft"&&(rr(e)||e.access!=="read"&&!r_(e))?"hidden":t.gate&&Ja(e,t.gate,t.policy)?"held":"free"}const s_={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]"]},ec=e=>{let t=e;return Object.values(s_).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},tc=6e4,nc=8e3,rc=2,oc=.4,i_=3,a_=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 sc(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<i_||a_.has(n)||t.add(n);return[...t]}function ic(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 ac(e,t=tc){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=>ec(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const cc=60;function c_(e,t,n=cc){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 u_(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<nc)return{trigger:!1,reason:"too_soon"};const o=ac(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<rc)return{trigger:!1,reason:"too_few_new"};const i=sc(o.text);return i.length?r.lastQueryTerms?.length&&ic(i,r.lastQueryTerms)<oc?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const l_=["personal","organization","connections","flows","work","administration","ai"],d_="navNotice",kt={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}},uc="NL",f_=15,p_=8,m_=Array.from(new Set(Object.values(kt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Zr(e){if(e)return kt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Jr(e){if(e.length>f_)return null;for(const t of m_){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(kt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Be(s,r))return`+${t}${s}`}return null}return e.length<p_?null:`+${e}`}function g_(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 h_(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 hn(e,t){if(!e)return null;const n=g_(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Jr(o);if(o.startsWith("00"))return Jr(o.slice(2));const s=Zr(t)??Zr(uc);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return Be(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(Be(a,s))return`+${s.callingCode}${a}`}return!i&&Be(o,s)?`+${s.callingCode}${o}`:null}function y_(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ar(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 b_(e){const t=ar(e);return t?t.slice(t.lastIndexOf("@")+1):null}const __=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function lc(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 __.has(n)&&t.length>=3?t.slice(-3).join("."):n}const dc=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 E_(e){const t=lc(e);return t?dc.has(t):!1}function S_(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function I_(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=hn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=hn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=ar(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const A_=[/<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],eo=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,C_=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function v_(e){const t=e.split(`
|
|
30
30
|
`);for(let n=0;n<t.length;n++)if(C_.test(t[n])||eo.test(t[n])&&t.slice(n+1,n+4).some(r=>eo.test(r)))return t.slice(0,n).join(`
|
|
31
|
-
`).trim();return e}const T_=/^(?:https?:|mailto:|tel:)/i,k_=/^(?:https?:|cid:|data:image\/)/i;function Ft(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const O_=/(!\[[^\]]*\]\([^)]*\))/;function to(e){return e.replace(/\s+/g," ").trim().split(O_).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function jt(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function M_(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Ft(r,"src");return k_.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=to(o.replace(/<[^>]*>/g,"")),
|
|
31
|
+
`).trim();return e}const T_=/^(?:https?:|mailto:|tel:)/i,k_=/^(?:https?:|cid:|data:image\/)/i;function Ft(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const O_=/(!\[[^\]]*\]\([^)]*\))/;function to(e){return e.replace(/\s+/g," ").trim().split(O_).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function jt(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function M_(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Ft(r,"src");return k_.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=to(o.replace(/<[^>]*>/g,"")),i=Ft(r,"href");return T_.test(i)?`[${s||jt(i)}](${jt(i)})`:s})}const R_=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,N_=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,D_=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function w_(e,t){return/<table\b/i.test(e)||e.includes(`
|
|
32
32
|
|
|
33
|
-
|`)||t.includes("![")||t.length>200}const x_=40,P_={left:"---",center:":---:",right:"---:"};function L_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function $_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function K_(e){const t=[];for(const
|
|
33
|
+
|`)||t.includes("![")||t.length>200}const x_=40,P_={left:"---",center:":---:",right:"---:"};function L_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function $_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function K_(e){const t=[];for(const i of e.matchAll(N_)){const a=[];for(const u of i[1].matchAll(D_)){const c=$_(u[3]);if(w_(u[3],c))return null;a.push({text:c,align:L_(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=>P_[i.align]).join(" | "),s=t.slice(1).map(r).join(`
|
|
34
34
|
`);return`
|
|
35
35
|
|
|
36
36
|
${r(t[0])}
|
|
@@ -49,4 +49,4 @@ ${U_(r[1])}
|
|
|
49
49
|
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function ro(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const F_={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function oo(e){return e.replace(/ /gi," ").replace(/&([a-z]+);/gi,(t,n)=>F_[n.toLowerCase()]??t).replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>ro(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>ro(parseInt(n,16))??t).replace(/&/gi,"&")}function so(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
50
50
|
`).replace(/\n{3,}/g,`
|
|
51
51
|
|
|
52
|
-
`).trim()}const fc=/<\s*(html|body|div|p|table|br|span)\b/i;function j_(e){return fc.test(e)}function G_(e){return pc(e,!1)}function W_(e){return pc(e,!0)}function pc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of A_){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=so(oo(no(r,t)));return o||(o=so(oo(no(e,t)))),v_(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=qu;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=Ca;exports.AGREEMENT_SCOPE_KIND=_a;exports.AGREEMENT_TRANSITIONS=_o;exports.AI_ATTACHMENT_LIMITS=$a;exports.AI_ATTACHMENT_MAX_PER_TURN=Ty;exports.AI_ATTACHMENT_TURN_BUDGET=vy;exports.AI_CAPABILITIES=pt;exports.AI_TOOL_PROVIDER_GROUP=Oy;exports.AI_VENDORS=An;exports.ALLOWED_LINK_SCHEMES=Ro;exports.APP_PERMISSIONS=Db;exports.ARTICLE_SCOPE_KIND=sf;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Mo;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=mt;exports.ASSET_GROUP_SEEDS=Kd;exports.ASSIGNMENT_SCOPE_KIND=Lo;exports.ASSIST_BANDS=Dy;exports.ASSIST_SOURCE_PROVIDER_GROUP=Ny;exports.ATTENTION_STATUSES=ks;exports.AT_RISK_GAP=Ji;exports.AUTH_APP_NAME=Ha;exports.AUTO_READY_MIN_PROPOSALS=Ii;exports.AUTO_READY_RATE=Ai;exports.ActivityTypeRegistry=fo;exports.BOOKABLE_KINDS=fa;exports.BOOKABLE_ROUTES=$y;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=Py;exports.BOOKKEEPING_PROVIDER_GROUP=Ly;exports.BOOKKEEPING_ROUTES=Ky;exports.BUILT_IN_ONLY=wc;exports.BULK_PENALTY=Os;exports.BUSINESS_ENTITY_LIST_SERVICE=_l;exports.BUSINESS_ENTITY_PARAM=At;exports.CADENCE_FLOOR_MS=nc;exports.CADENCE_MIN_NEW_SEGMENTS=rc;exports.CADENCE_MIN_NOVELTY=oc;exports.CADENCE_WINDOW_MS=tc;exports.CAPITALIZATION_THRESHOLD_CENTS=bs;exports.CLASSIFY_VARS=Yp;exports.CLEARABLE_FIELDS=rh;exports.COMPANY_ADDRESS_KINDS=Xl;exports.COMPANY_RECEIVABLES_SERVICE=Bh;exports.COMPANY_ROLE_KINDS=ed;exports.CONNECTOR_PROVIDER_GROUP=db;exports.CONTEXT_COLLECT_SERVICE=fb;exports.CORE_DIMENSIONS=Au;exports.CRM_ACTIVITY_SCOPE_KIND=ld;exports.CRM_CALL_CHANNELS=fd;exports.CRM_CALL_LOGGED=as;exports.CRM_CALL_OUTCOMES=pd;exports.CRM_NOTE_ADDED=is;exports.CRM_STAGE_CHANGED=dd;exports.CUSTOM_RESOLUTION_PREFIX=tf;exports.CommunicationScheme=Ga;exports.DAY_MS=Es;exports.DEFAULT_CHECK_IN_DAYS=Qi;exports.DEFAULT_DUNNING_POLICY=mh;exports.DEFAULT_FORECAST_WEEKS=ii;exports.DEFAULT_JUMP_PERCENT=Di;exports.DEFAULT_MEMORY_BUDGET=zf;exports.DEFAULT_NUMBER_PADDING=Ch;exports.DEFAULT_PHONE_REGION=uc;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=ph;exports.DEFAULT_TEMPLATE_CONDITIONS=dh;exports.DEFAULT_TOLERANCE=Li;exports.DEFAULT_WORKSPACES=ua;exports.DEMAND_SOURCE_PROVIDER_GROUP=dp;exports.DOCUMENT_APPLY_SERVICE=Cb;exports.DOCUMENT_DESCRIBE_SERVICE=Ib;exports.DOCUMENT_INSPECT_SERVICE=Ab;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Mo;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Zt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Oo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=mt;exports.DOCUMENT_MAX_TOTALS_ROWS=Jt;exports.DOCUMENT_OPERATIONS=or;exports.DRAFT_FIELDS=nh;exports.DUTCH_SLOT_LABELS=ma;exports.EMPTY_WORKFLOW=em;exports.ENABLED_TRANSACTION_KINDS=Qn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=ms;exports.FEATURE_MESSAGE_REACTIONS=ub;exports.FEATURE_REMOTE_SEARCH=cb;exports.FEED_COLUMNS=Hn;exports.FEED_EVERY_MS=ym;exports.FIXED_KINDS=_t;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=vt;exports.FIXED_UNITS=Wl;exports.FOLLOW_UP_HOURS=Ms;exports.FROZEN_WRITABLE_FIELDS=eh;exports.HOUR_MS=_s;exports.HTML_BODY_RE=fc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=Tb;exports.INTERACTION_KIND=yi;exports.InteractionParticipantRole=ib;exports.KB_FALLBACK_LOCALE=Fs;exports.KB_LOCALES=nt;exports.LEAD_STATUSES=od;exports.LEDGER_TEMPLATES=Sf;exports.LEGAL_FORMS=El;exports.LIFECYCLE_STAGES=rd;exports.LOCALES=nt;exports.LOOSE_STATUSES=Tt;exports.MAIL_HINT_HEADERS=vs;exports.MANUAL_PRICE_SOURCE=zo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=$o;exports.MAX_BLOCKS=Gt;exports.MAX_CHOICE_OPTIONS=Yt;exports.MAX_COLLECTION_DEPTH=xn;exports.MAX_DELEGATION_DEPTH=Ko;exports.MAX_EDITABLE_FILE_BYTES=Jb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Vf;exports.MAX_MEMORY_BUDGET=Yf;exports.MAX_MEMORY_CHARS=Hf;exports.MAX_RULE_DEPTH=pn;exports.MAX_SCORE_LEVELS=Xt;exports.MAX_SHOWN_KEYS=cc;exports.MAX_TOPIC_CANDIDATES=oa;exports.MAX_TOPIC_EXAMPLES=ra;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=e_;exports.MICROS_PER_CENT=Je;exports.MIN_MEMORY_BUDGET=qf;exports.MIN_SCORE_LEVELS=zt;exports.MISSING_PRICE_SOURCE=en;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=d_;exports.NL_BV_TEMPLATE=Ws;exports.NL_PAYMENT_TERMS=Nh;exports.NL_TAX_CODES=Zf;exports.NL_TAX_RATES=Qf;exports.NL_VAT_BOXES=$i;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Rb;exports.OFF_TRACK_GAP=ea;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=np;exports.PAUSE_HOLD=at;exports.PAUSE_SNOOZED=st;exports.PAUSE_WAITING_FOR_CUSTOMER=it;exports.PAYMENT_TERM_METHODS=kh;exports.PAYROLL_CATEGORIES=Vs;exports.PHONE_REGIONS=kt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Pp;exports.PLAYBOOK_RUN_SCOPE_KIND=pi;exports.PRESENCE_ONLINE_WINDOW_MS=sr;exports.PRESENCE_SURVIVES_OFFLINE=Wa;exports.PRICE_PERS=Uc;exports.PRODUCT_SCOPE_KIND=ba;exports.PROFILE_TOOL_DISPOSITIONS=op;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=sb;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ob;exports.PROVISIONING_ROUTES=Kb;exports.PROVISIONING_SOURCE_GROUP=$b;exports.PUBLIC_EMAIL_DOMAINS=dc;exports.PURCHASE_KINDS=wi;exports.PURCHASE_ORDER_KIND=Am;exports.READ_STEP_TYPES=rn;exports.RECEIPT_BOOK_ACT=fl;exports.RECEIPT_SCOPE_KIND=dl;exports.RELATED_SUBJECT_KINDS=zs;exports.REPORT_VIEW_LAYOUTS=Iu;exports.RESERVED_SEGMENTS=ca;exports.RESERVED_STATUS_KEYS=nr;exports.RESERVED_TYPE_KEYS=zh;exports.RESOURCE_ATTACHED_SERVICE=jb;exports.RESOURCE_DESCRIBE_SERVICE=Ub;exports.RESOURCE_RESOLVE_SERVICE=Fb;exports.RESOURCE_SEARCH_SERVICE=Bb;exports.SALES_KINDS=Ct;exports.SALES_SCOPE_KINDS=ya;exports.SCHEDULE_ENTRY_SCOPE_KIND=ai;exports.SCHEDULE_EVENT=Bi;exports.SCOPE_ACTS_ROUTE=Hb;exports.SCOPE_READ_ROUTE=Vb;exports.SCOPE_RELATED_ROUTE=Wb;exports.SEGMENT_FILTER_KEYS=id;exports.SEGMENT_LAYOUTS=cd;exports.SEGMENT_LIST_FILTERS=os;exports.SEGMENT_PRESENCE_FILTERS=ss;exports.SEGMENT_SORT_FIELDS=ad;exports.SENDING_STALE_MS=yl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=l_;exports.SIGNATURE_INTENTS=Yl;exports.SLA_METRICS=ig;exports.SLA_PAUSE_REASONS=ag;exports.STATUS_NAMES=Xg;exports.STEP_MAX_TOKENS_MAX=Ei;exports.STEP_MAX_TOKENS_MIN=_i;exports.STEP_TYPES=Jp;exports.STRATEGY_ITEM_SCOPE_KIND=zi;exports.SUMMARY_MIN_LAST_CHARS=Cs;exports.SUMMARY_MIN_MESSAGES=As;exports.SYNC_RUN_MAX_ERRORS=n_;exports.SYNC_TARGET_PROVIDER_GROUP=t_;exports.SYSTEM_ONE_NON_GOALS=fu;exports.SYSTEM_RESOLUTIONS=$s;exports.TERMINAL_ASSIGNMENT_STATUSES=Po;exports.TERMINAL_RUN_STATUSES=Ci;exports.TRANSACTION_KINDS=la;exports.TRIGGER_VARS=Hp;exports.UNARY_OPS=Fm;exports.UNKNOWN_KIND=Qs;exports.UNKNOWN_LEVEL_ORDER=Xi;exports.UNSUPPORTED=lb;exports.UNWORKED_RESOLUTIONS=ef;exports.USAGE_DIMENSIONS=Co;exports.USAGE_DIMENSION_IDS=vo;exports.USAGE_RECORDS_ROUTE=Hl;exports.USAGE_SOURCE_PROVIDER_GROUP=Vl;exports.UnresolvedRefError=Yn;exports.WEBHOOK_EVENTS=Ta;exports.WORKSTREAM_SCOPE_KIND=ci;exports.WORK_ACTIVITY_SCOPE_KIND=Ma;exports.WORK_AREAS=rp;exports.WORK_COMMENT_ADDED=Wh;exports.WORK_CYCLE_SYNC_KIND=ey;exports.WORK_ITEM_ASSIGNED=Vh;exports.WORK_ITEM_SCOPE_KIND=ka;exports.WORK_ITEM_STATUS_CHANGED=Hh;exports.WORK_PROJECT_SCOPE_KIND=Oa;exports.WORK_SORT_FIELDS=Sy;exports.WORK_VIEW_FLAGS=Ey;exports.WORK_VIEW_LAYOUTS=Iy;exports.WORK_VIEW_LIST_FILTERS=_y;exports.W_PRIORITY=Se;exports.XAF_NAMESPACE=qs;exports.acceptExampleCandidate=Gg;exports.accountTotals=pf;exports.accountTypeOf=Bf;exports.accrualPostings=wd;exports.actingIdentityKey=di;exports.activeWorkTypes=Fg;exports.activityIconOf=_c;exports.activityJoinUrl=Mc;exports.activitySnippet=uo;exports.activityTextParams=lo;exports.activityTimelineText=Oc;exports.activityTimestamp=po;exports.activityTypeInfo=j;exports.actorKey=xp;exports.addExampleCandidate=jg;exports.addMonths=me;exports.addWorkingMs=Et;exports.agePresenceEntry=xb;exports.aggregateUsage=Xo;exports.agingBucketOf=va;exports.agingOf=Uh;exports.agreementEffectiveEnd=Jc;exports.agreementFromQuote=Gc;exports.agreementHref=Sh;exports.agreementScopeKey=Eh;exports.aiAttachmentKind=La;exports.aiAttachmentRejection=ky;exports.aiBudgetLimit=Qt;exports.aiBudgetPeriodKey=_u;exports.aiBudgetPeriodStart=Ao;exports.aiBudgetState=bu;exports.aiVendorAcceptsAttachment=yu;exports.aiVendorDefaultModel=mu;exports.aiVendorLabel=pu;exports.aiVendorNeedsBaseUrl=hu;exports.aiVendorsWith=gu;exports.allocate=Ce;exports.allocateInvoice=Om;exports.appNameFromPath=qa;exports.applyApprovalDecision=Lu;exports.applyRounding=Lg;exports.applySignature=zl;exports.approvalRate=Si;exports.artifactBodyBytes=wo;exports.artifactOutline=xo;exports.artifactToMarkdown=vn;exports.assignmentMismatch=Bp;exports.assignmentScopeKey=zu;exports.assignmentSubject=Zu;exports.availabilityByPerson=lp;exports.awaitsNumber=th;exports.balanceSheet=yf;exports.belongsOnCalendar=sp;exports.belongsToEntity=Sl;exports.billableTimeGroups=xg;exports.billedQuantity=Jo;exports.bindParams=Km;exports.bindValue=rt;exports.bookingDocumentOf=Jg;exports.bookingDocumentOfReceipt=ml;exports.bookingLinesOf=Vo;exports.bookingSyncKey=gl;exports.buildActivityPreview=Nc;exports.buildChannelIntents=Vy;exports.buildNavModel=Mb;exports.buildShareKeys=Wu;exports.buildWindow=ac;exports.businessEntitySender=ls;exports.calendarDaysBetween=Zs;exports.calendarOf=St;exports.canConvert=oh;exports.canMoveAgreement=Qc;exports.canNestUnder=uf;exports.canParent=Sg;exports.canTransition=Qg;exports.canonicalJson=nn;exports.capabilityDefaultFlag=ou;exports.capacityTotal=cp;exports.capacityWeights=Rp;exports.capitalizationThreshold=$d;exports.carriesText=Cc;exports.cashForecast=_f;exports.categoryLabel=df;exports.categoryOf=Da;exports.causedBy=qm;exports.changesBilledLine=eu;exports.channelKindForScheme=rb;exports.channelKindOf=Ec;exports.checkInOverdueMs=Dg;exports.clampStepMaxTokens=Zp;exports.classifyMail=Hd;exports.cleanMessageMarkdown=W_;exports.cleanMessageText=G_;exports.cleanReceiptLines=pm;exports.codeQuery=Nl;exports.codedMessage=zy;exports.columnBalance=bf;exports.commitProblem=Ol;exports.companyReceivablesOf=Fh;exports.compareAssistRank=xy;exports.compareReports=ff;exports.compareWorkTypes=na;exports.conditionHolds=us;exports.contactName=sd;exports.contractSignals=dm;exports.copyFrom=pa;exports.correlationKeyFor=Uy;exports.costOverYear=mm;exports.countsAsPlanned=pe;exports.coverageByPerson=up;exports.coverageFor=yp;exports.coversWorkstream=Kn;exports.crmActivityAt=gd;exports.cronMatches=Ui;exports.currentAccountRelation=Od;exports.currentLines=qc;exports.currentPeriod=Th;exports.cycleDayIndex=Un;exports.cycleOrder=yy;exports.cycleState=by;exports.dealValueCents=Wc;exports.decideAssignmentState=Ju;exports.decideCadence=u_;exports.decideEach=Du;exports.decideIncomingCall=jy;exports.decisionBand=du;exports.decodeText=tb;exports.defaultLocaleOf=js;exports.defaultOffer=Ri;exports.defaultStatusKey=cy;exports.defaultTemplateBlocks=ga;exports.defineIntent=ab;exports.delegationRefusal=el;exports.demandFor=hm;exports.depreciationParts=ys;exports.depreciationPostings=Nd;exports.depthOf=Us;exports.derivePresence=wb;exports.describeClause=Mu;exports.describeExpression=Wm;exports.digitsOf=Qo;exports.disabledIntentsFromCapabilities=Gy;exports.disposalLines=Dd;exports.documentBodyBytes=wo;exports.documentKindOf=vb;exports.documentOutline=xo;exports.documentToMarkdown=vn;exports.documentToText=Sb;exports.driftedFields=ji;exports.dueAtOf=gg;exports.dueCharges=Yc;exports.dueDateFrom=Mh;exports.dunningRunOf=hh;exports.dunningStateOf=ha;exports.effectiveEndAt=Ee;exports.elapsedSeconds=Pg;exports.emailDomain=b_;exports.emptyConditionLeaf=jm;exports.endpointKey=I_;exports.entityOwnerIds=Il;exports.entryLinesOf=Mf;exports.entryNumber=Af;exports.entryProblems=If;exports.erlangC=ei;exports.excessiveLending=Md;exports.expectedFor=um;exports.extractParams=za;exports.extractTerms=sc;exports.failureLines=Id;exports.feedOutcome=Em;exports.fieldVarPath=Zm;exports.fillDocument=Ed;exports.fillText=cs;exports.filterByEndpoint=qy;exports.filterByIntent=Hy;exports.filterByTargetScheme=Fa;exports.filterableDimensions=Ou;exports.findAiVendor=ve;exports.findEvent=Jm;exports.finishedAt=Zc;exports.fixedLevelForName=Ag;exports.fixedTypeForName=Zh;exports.fixedTypes=Jh;exports.flattenLocales=kb;exports.floorToPeriod=fe;exports.forecastIntervals=Tp;exports.formatActingIdentity=li;exports.formatCents=H;exports.formatClock=Kg;exports.formatHm=$g;exports.formatItemKey=ny;exports.formatMicros=Ll;exports.formatPeriod=de;exports.formatSeriesNumber=vh;exports.formatSlaDuration=bg;exports.freshSources=Ry;exports.getActivitySeenUserIds=xc;exports.getContactEndpoints=nd;exports.getShortTitle=Jd;exports.getUrgencyScore=Zd;exports.goodsReceiptProblems=Oi;exports.groupDocumentLines=xi;exports.guessFeedMapping=Im;exports.hasReacted=Dm;exports.hashedPartOf=vf;exports.healthCategory=Cg;exports.healthsInCategory=vg;exports.heightOf=Pn;exports.helpCenterText=of;exports.humanizeAction=Wp;exports.interactionIdOf=bi;exports.interestOnDailyBalance=vd;exports.interestPeriods=Td;exports.isAgentUser=jh;exports.isAssigned=Xd;exports.isAssignmentTerminal=Yu;exports.isAssignmentTrigger=gi;exports.isAssistantMode=Eu;exports.isAuthoredCrmActivity=md;exports.isAutoReady=om;exports.isAutonomy=Fp;exports.isAwaitingThem=Ls;exports.isBookable=Zg;exports.isChatMessageActivity=Lc;exports.isClosed=Qd;exports.isConnectedType=Tc;exports.isDescendant=Bs;exports.isEligible=Ud;exports.isEmailActivity=Pc;exports.isFrozen=Zn;exports.isHeldClock=mg;exports.isHtmlBody=j_;exports.isInFlight=im;exports.isInteractionUnseen=Ts;exports.isLandingPath=zb;exports.isLikelyBulk=Is;exports.isMessageShape=yn;exports.isMessageType=Sc;exports.isMoreSpecificPattern=Qa;exports.isNoteShape=bn;exports.isOpenClock=Yi;exports.isOutstanding=er;exports.isOutwardTool=rr;exports.isOverdueOn=Dh;exports.isParked=Ns;exports.isPaused=vi;exports.isPlaybookAuthoredType=vc;exports.isPricePer=jc;exports.isPublicEmailDomain=E_;exports.isPublicPath=Zb;exports.isPurchasable=Gl;exports.isRecurringLine=go;exports.isReminderActive=Ds;exports.isReplyableType=Ac;exports.isResultAccount=Te;exports.isSellable=jl;exports.isSettingsPath=qb;exports.isSettled=Aa;exports.isShorter=Hc;exports.isSlaAtRisk=Yd;exports.isSupportedCron=Hm;exports.isTerminal=sm;exports.isThreadLongEnough=jd;exports.isTradeable=Tl;exports.isTranscriptType=kc;exports.isWebhookEvent=Gh;exports.isWorkClosed=uy;exports.isWorkTypeVisible=Bg;exports.isWriteTool=ir;exports.itemDossierKeys=sy;exports.itemKeyOf=ul;exports.judgeRuleCase=Ym;exports.kindFor=q;exports.ladderFor=Na;exports.ledgerRuleFor=bl;exports.levelIn=Zi;exports.levelOrder=ut;exports.lineAffinity=qn;exports.lineKey=zp;exports.lineNet=bt;exports.lineStatus=yo;exports.lineTerm=U;exports.linkLabel=rf;exports.listedTransactionKinds=zg;exports.listeningAllowed=Su;exports.loanPostings=Rd;exports.loanSchedule=Dn;exports.localeInstruction=cf;exports.localeName=af;exports.localesOf=lf;exports.looksLikeEmail=h_;exports.lookup=Rn;exports.manualSettlement=Ph;exports.marginCents=Kc;exports.markdownToDocument=Eb;exports.matchApprovalPolicy=xu;exports.matchContactToIntents=Yy;exports.matchDocumentLines=Pi;exports.matchFeed=_m;exports.matchPublicRoute=Za;exports.matchRate=Zo;exports.matchRules=Fi;exports.matchVerdict=Mm;exports.mcpCredentialScope=Gf;exports.mcpToolPrefix=Wf;exports.measureRatio=kg;exports.mergeDefaultFlags=iu;exports.mergeShownKeys=c_;exports.messageCountsAs=co;exports.metricOption=Ru;exports.minutesOn=Bn;exports.missingFieldPaths=eg;exports.modelAcceptsAttachment=cu;exports.monthEnd=gs;exports.monthParts=fs;exports.monthlyPeriods=xf;exports.monthsIn=ps;exports.mustAsk=Ja;exports.narrowAutonomy=Gp;exports.navLabelText=Ob;exports.needsPhoneRegion=S_;exports.nestsUnderParent=Ic;exports.nextLevelBelow=Ig;exports.nextOccurrenceDates=hy;exports.nextSlaClock=hg;exports.nextStatuses=da;exports.nextVersion=sh;exports.normalizeArtifactBlocks=Do;exports.normalizeBlocks=hc;exports.normalizeDocumentBlocks=Do;exports.normalizeEmail=ar;exports.normalizeExample=te;exports.normalizeGtin=gt;exports.normalizeIban=rs;exports.normalizeIbans=Jl;exports.normalizeMeter=ts;exports.normalizeUsageSource=ql;exports.normalizeVatNumber=Zl;exports.noticeDeadline=In;exports.notificationPrefKey=Nb;exports.novelty=ic;exports.offerValid=Mi;exports.openCentsOf=nl;exports.operationDescriptor=bb;exports.operationsForKind=yb;exports.opsForFieldType=Qm;exports.orderForDocument=Cm;exports.organizationSender=Sd;exports.outcomeOf=py;exports.overlap=ft;exports.overlapSeconds=Le;exports.overlaps=hp;exports.ownWorkspaceKey=Vg;exports.paceRatio=Og;exports.parkMarksById=Bd;exports.parse=Ki;exports.parseActingIdentity=Dp;exports.parseAmount=Wt;exports.parseCamt053=Bo;exports.parseClockMinutes=og;exports.parseCodedMessage=Qy;exports.parseCron=zn;exports.parseCsv=Zy;exports.parseItemKey=ry;exports.parseLineKey=Xp;exports.parseMicros=On;exports.parseMt940=jo;exports.parsePackingSlip=Tm;exports.parseRateCsv=$l;exports.parseRatePrice=tn;exports.parseRecurrence=gy;exports.parseStatement=cl;exports.parseWorkspacePath=qg;exports.parseXafOpening=Uf;exports.partialDisposalLines=Ld;exports.pathToRegex=Ya;exports.patternFor=jn;exports.patternStartTime=Fn;exports.pauseBitFor=sg;exports.paymentOfItem=ol;exports.paymentStateOf=Jn;exports.pendingApprovers=Pu;exports.periodAt=We;exports.periodOf=Pf;exports.periodShare=ho;exports.periodsInRange=Tu;exports.phoneSuffix=y_;exports.pickMailHeaders=Gd;exports.pickPaymentTerm=Oh;exports.pickTemplate=yd;exports.placeLumps=Np;exports.plainTextFromMarkdown=io;exports.planSlaEvent=pg;exports.plannedBillable=bp;exports.plannedWorkTypeKey=si;exports.priceOver=dt;exports.primaryAddress=Ql;exports.procedureOf=nm;exports.productCost=Ni;exports.productHref=_h;exports.productScopeKey=yh;exports.profitAndLoss=hf;exports.projectDossierKeys=iy;exports.proposalRequestIds=wu;exports.proposeMatch=tl;exports.publicBasePathFor=Xa;exports.publicRoutePatterns=Qb;exports.quantityKey=ru;exports.rateRecords=Ul;exports.ratedLineAmount=Bl;exports.ratedQuantity=Mn;exports.reactionWakesAssignment=Qu;exports.readDefaultFlags=su;exports.readFeed=bm;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=pl;exports.receiptProblems=Wo;exports.receiptState=fm;exports.receiptTotals=Go;exports.receivableRowOf=Kh;exports.receivedFor=ki;exports.recencyOf=Rs;exports.recipientLocale=hd;exports.reconciliationBalances=rl;exports.refKey=Gn;exports.referenceCostIn=Ml;exports.registrableDomain=lc;exports.rejectExampleCandidate=ia;exports.relatedByDefault=Xf;exports.remainingMsOf=ct;exports.repriceLines=Pl;exports.requiredAgents=ri;exports.requirementFor=oi;exports.resolutionsFor=nf;exports.resolveAccountCapabilities=Ba;exports.resolveActivityText=je;exports.resolveAutonomy=jp;exports.resolveChannelIntents=Ua;exports.resolvePrice=Yo;exports.resolveRateCard=wl;exports.resolveRoute=uu;exports.resolveSignature=ns;exports.resolveTier=Io;exports.resolveWorkMode=Pb;exports.resolveWorkspace=Hg;exports.resourceKindOf=Gb;exports.restate=mo;exports.retryDelayMinutes=hl;exports.reversedLines=Tf;exports.rhythmOf=_n;exports.roleDirection=td;exports.rollupChildren=Ng;exports.roundHalfUp=P;exports.runActor=wp;exports.runApprovalKey=Lp;exports.runEvalSuite=Ad;exports.runIdOfApprovalRef=$p;exports.runInteractionId=cm;exports.runKind=rm;exports.runOutcome=Xm;exports.runSpans=Xc;exports.sanitizeInline=No;exports.sanitizeTranscript=ec;exports.scheduleEntryScopeKey=kp;exports.scoreInteraction=zd;exports.scoreWorkItem=Yh;exports.segmentIsEmpty=ud;exports.selectLenses=jf;exports.sellableProduct=Fl;exports.serialize=$e;exports.seriesStart=En;exports.serviceLevel=ti;exports.sessionsHoldCannotReach=Fy;exports.sessionsToHold=By;exports.settingsPath=Yb;exports.settlementPatch=xh;exports.shadowByKey=Al;exports.shareKeyForTeam=kn;exports.shareKeyForUser=Tn;exports.shareKeysForViewer=Vu;exports.shortTermPrincipal=Pd;exports.shortfalls=_p;exports.shouldRunAudioPipeline=Lb;exports.slaBadgeTone=yg;exports.slaHoursByInbox=qd;exports.slaHoursFor=Ps;exports.slipProposal=vm;exports.sortStatuses=wa;exports.sourceKey=Ka;exports.splitLine=tu;exports.spread=wn;exports.spreadOverWeights=ui;exports.startingCents=xd;exports.statusIn=ay;exports.statusRequiresApproval=fy;exports.stepDate=Pa;exports.stepsOf=tm;exports.strategyAncestorKeysFor=Eg;exports.strategyDossierKeys=_g;exports.strategyItemScopeKey=Xn;exports.stripHtml=ao;exports.subjectKeyOf=am;exports.subjectOf=Wn;exports.subjectRef=wy;exports.suggestProjectKey=oy;exports.suggestTreatments=ll;exports.suggestedHealth=Mg;exports.summariseEval=ds;exports.summarizeReactions=Rm;exports.targetById=Up;exports.targetForActivityType=Kp;exports.targetOrder=wg;exports.taxCodeProblem=ep;exports.taxDateOf=J;exports.taxPercentOn=$n;exports.taxRateFor=Xs;exports.taxRatesOn=Jf;exports.termApplies=Ia;exports.termEndAt=ne;exports.termStartAt=Sn;exports.termsFor=Js;exports.tieredMicros=es;exports.timingOf=bo;exports.toActingIdentity=fi;exports.toBaseUnits=Cl;exports.toE164=hn;exports.toProductUnits=Vn;exports.toTransactionTerm=Rh;exports.toolBareName=hi;exports.toolDisplayName=Vp;exports.toolReversible=My;exports.toolSourceKinds=Hu;exports.toolVerdict=o_;exports.topicOfferedForTeam=aa;exports.topicsForTeam=Wg;exports.trafficIntensity=ni;exports.transactionContext=ih;exports.transactionDossierKeys=Ah;exports.transactionHref=bh;exports.transactionIdFromScope=Ih;exports.transactionKind=F;exports.transactionScopeKey=Ea;exports.transactionSlots=ah;exports.transactionTotals=tp;exports.transitoryLines=Of;exports.triggerFillsVar=qp;exports.truncateExample=sa;exports.typeIn=Qh;exports.typesFor=Xh;exports.uniqueWorkStatusKey=ly;exports.uniqueWorkTypeKey=Ug;exports.unitFactor=Ho;exports.unitsProblem=vl;exports.usageAccountOf=So;exports.usageAccountsOf=nu;exports.usageMetricId=To;exports.usageMetrics=Nu;exports.validateQuestions=lu;exports.validateStatuses=dy;exports.valueAtPath=mi;exports.variableJump=Ti;exports.variantOptionsProblem=kl;exports.vatPeriods=xm;exports.vatReturn=wm;exports.waitHoursOf=yt;exports.wakesAssignment=Xu;exports.withLineIds=Qp;exports.workActivityScopeKey=ty;exports.workItemScopeKey=Ra;exports.workProjectScopeKey=tr;exports.workRatio=Rg;exports.workStatusKey=xa;exports.workTypeKey=ta;exports.workingMsBetween=ot;exports.workspacePath=Yg;exports.workstreamScopeKey=Op;exports.xafAuditfile=$f;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Ef;
|
|
52
|
+
`).trim()}const fc=/<\s*(html|body|div|p|table|br|span)\b/i;function j_(e){return fc.test(e)}function G_(e){return pc(e,!1)}function W_(e){return pc(e,!0)}function pc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of A_){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=so(oo(no(r,t)));return o||(o=so(oo(no(e,t)))),v_(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=qu;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=Ca;exports.AGREEMENT_SCOPE_KIND=_a;exports.AGREEMENT_TRANSITIONS=_o;exports.AI_ATTACHMENT_LIMITS=$a;exports.AI_ATTACHMENT_MAX_PER_TURN=Ty;exports.AI_ATTACHMENT_TURN_BUDGET=vy;exports.AI_CAPABILITIES=pt;exports.AI_TOOL_PROVIDER_GROUP=Oy;exports.AI_VENDORS=An;exports.ALLOWED_LINK_SCHEMES=Ro;exports.APP_PERMISSIONS=Db;exports.ARTICLE_SCOPE_KIND=sf;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Mo;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=mt;exports.ASSET_GROUP_SEEDS=Kd;exports.ASSIGNMENT_SCOPE_KIND=Lo;exports.ASSIST_BANDS=Dy;exports.ASSIST_SOURCE_PROVIDER_GROUP=Ny;exports.ATTENTION_STATUSES=ks;exports.AT_RISK_GAP=Ji;exports.AUTH_APP_NAME=Ha;exports.AUTO_READY_MIN_PROPOSALS=Ii;exports.AUTO_READY_RATE=Ai;exports.ActivityTypeRegistry=fo;exports.BOOKABLE_KINDS=fa;exports.BOOKABLE_ROUTES=$y;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=Py;exports.BOOKKEEPING_PROVIDER_GROUP=Ly;exports.BOOKKEEPING_ROUTES=Ky;exports.BUILT_IN_ONLY=wc;exports.BULK_PENALTY=Os;exports.BUSINESS_ENTITY_LIST_SERVICE=_l;exports.BUSINESS_ENTITY_PARAM=At;exports.CADENCE_FLOOR_MS=nc;exports.CADENCE_MIN_NEW_SEGMENTS=rc;exports.CADENCE_MIN_NOVELTY=oc;exports.CADENCE_WINDOW_MS=tc;exports.CAPITALIZATION_THRESHOLD_CENTS=bs;exports.CLASSIFY_VARS=Yp;exports.CLEARABLE_FIELDS=rh;exports.COMPANY_ADDRESS_KINDS=Xl;exports.COMPANY_RECEIVABLES_SERVICE=Bh;exports.COMPANY_ROLE_KINDS=ed;exports.CONNECTOR_PROVIDER_GROUP=db;exports.CONTEXT_COLLECT_SERVICE=fb;exports.CORE_DIMENSIONS=Au;exports.CRM_ACTIVITY_SCOPE_KIND=ld;exports.CRM_CALL_CHANNELS=fd;exports.CRM_CALL_LOGGED=as;exports.CRM_CALL_OUTCOMES=pd;exports.CRM_NOTE_ADDED=is;exports.CRM_STAGE_CHANGED=dd;exports.CUSTOM_RESOLUTION_PREFIX=tf;exports.CommunicationScheme=Ga;exports.DAY_MS=Es;exports.DEFAULT_CHECK_IN_DAYS=Qi;exports.DEFAULT_DUNNING_POLICY=mh;exports.DEFAULT_FORECAST_WEEKS=ii;exports.DEFAULT_JUMP_PERCENT=Di;exports.DEFAULT_MEMORY_BUDGET=zf;exports.DEFAULT_NUMBER_PADDING=Ch;exports.DEFAULT_PHONE_REGION=uc;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=ph;exports.DEFAULT_TEMPLATE_CONDITIONS=dh;exports.DEFAULT_TOLERANCE=Li;exports.DEFAULT_WORKSPACES=ua;exports.DEMAND_SOURCE_PROVIDER_GROUP=dp;exports.DOCUMENT_APPLY_SERVICE=Cb;exports.DOCUMENT_DESCRIBE_SERVICE=Ib;exports.DOCUMENT_INSPECT_SERVICE=Ab;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Mo;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Zt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Oo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=mt;exports.DOCUMENT_MAX_TOTALS_ROWS=Jt;exports.DOCUMENT_OPERATIONS=or;exports.DRAFT_FIELDS=nh;exports.DUTCH_SLOT_LABELS=ma;exports.EMPTY_WORKFLOW=em;exports.ENABLED_TRANSACTION_KINDS=Qn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=ms;exports.FEATURE_MESSAGE_REACTIONS=ub;exports.FEATURE_REMOTE_SEARCH=cb;exports.FEED_COLUMNS=Hn;exports.FEED_EVERY_MS=ym;exports.FIXED_KINDS=_t;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=vt;exports.FIXED_UNITS=Wl;exports.FOLLOW_UP_HOURS=Ms;exports.FROZEN_WRITABLE_FIELDS=eh;exports.HOUR_MS=_s;exports.HTML_BODY_RE=fc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=Tb;exports.INTERACTION_KIND=yi;exports.InteractionParticipantRole=ib;exports.KB_FALLBACK_LOCALE=Fs;exports.KB_LOCALES=nt;exports.LEAD_STATUSES=od;exports.LEDGER_TEMPLATES=Sf;exports.LEGAL_FORMS=El;exports.LIFECYCLE_STAGES=rd;exports.LOCALES=nt;exports.LOOSE_STATUSES=Tt;exports.MAIL_HINT_HEADERS=vs;exports.MANUAL_PRICE_SOURCE=zo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=$o;exports.MAX_BLOCKS=Gt;exports.MAX_CHOICE_OPTIONS=Yt;exports.MAX_COLLECTION_DEPTH=xn;exports.MAX_DELEGATION_DEPTH=Ko;exports.MAX_EDITABLE_FILE_BYTES=Jb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Vf;exports.MAX_MEMORY_BUDGET=Yf;exports.MAX_MEMORY_CHARS=Hf;exports.MAX_RULE_DEPTH=pn;exports.MAX_SCORE_LEVELS=Xt;exports.MAX_SHOWN_KEYS=cc;exports.MAX_TOPIC_CANDIDATES=oa;exports.MAX_TOPIC_EXAMPLES=ra;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=e_;exports.MICROS_PER_CENT=Je;exports.MIN_MEMORY_BUDGET=qf;exports.MIN_SCORE_LEVELS=zt;exports.MISSING_PRICE_SOURCE=en;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=d_;exports.NL_BV_TEMPLATE=Ws;exports.NL_PAYMENT_TERMS=Nh;exports.NL_TAX_CODES=Zf;exports.NL_TAX_RATES=Qf;exports.NL_VAT_BOXES=$i;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Rb;exports.OFF_TRACK_GAP=ea;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=np;exports.PAUSE_HOLD=at;exports.PAUSE_SNOOZED=st;exports.PAUSE_WAITING_FOR_CUSTOMER=it;exports.PAYMENT_TERM_METHODS=kh;exports.PAYROLL_CATEGORIES=Vs;exports.PHONE_REGIONS=kt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Pp;exports.PLAYBOOK_RUN_SCOPE_KIND=pi;exports.PRESENCE_ONLINE_WINDOW_MS=sr;exports.PRESENCE_SURVIVES_OFFLINE=Wa;exports.PRICE_PERS=Uc;exports.PRODUCT_SCOPE_KIND=ba;exports.PROFILE_TOOL_DISPOSITIONS=op;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=sb;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ob;exports.PROVISIONING_ROUTES=Kb;exports.PROVISIONING_SOURCE_GROUP=$b;exports.PUBLIC_EMAIL_DOMAINS=dc;exports.PURCHASE_KINDS=wi;exports.PURCHASE_ORDER_KIND=Am;exports.READ_STEP_TYPES=rn;exports.RECEIPT_BOOK_ACT=fl;exports.RECEIPT_SCOPE_KIND=dl;exports.RELATED_SUBJECT_KINDS=zs;exports.REPORT_VIEW_LAYOUTS=Iu;exports.RESERVED_SEGMENTS=ca;exports.RESERVED_STATUS_KEYS=nr;exports.RESERVED_TYPE_KEYS=zh;exports.RESOURCE_ATTACHED_SERVICE=jb;exports.RESOURCE_DESCRIBE_SERVICE=Ub;exports.RESOURCE_RESOLVE_SERVICE=Fb;exports.RESOURCE_SEARCH_SERVICE=Bb;exports.SALES_KINDS=Ct;exports.SALES_SCOPE_KINDS=ya;exports.SCHEDULE_ENTRY_SCOPE_KIND=ai;exports.SCHEDULE_EVENT=Bi;exports.SCOPE_ACTS_ROUTE=Hb;exports.SCOPE_READ_ROUTE=Vb;exports.SCOPE_RELATED_ROUTE=Wb;exports.SEGMENT_FILTER_KEYS=id;exports.SEGMENT_LAYOUTS=cd;exports.SEGMENT_LIST_FILTERS=os;exports.SEGMENT_PRESENCE_FILTERS=ss;exports.SEGMENT_SORT_FIELDS=ad;exports.SENDING_STALE_MS=yl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=l_;exports.SIGNATURE_INTENTS=Yl;exports.SLA_METRICS=ig;exports.SLA_PAUSE_REASONS=ag;exports.STATUS_NAMES=Xg;exports.STEP_MAX_TOKENS_MAX=Ei;exports.STEP_MAX_TOKENS_MIN=_i;exports.STEP_TYPES=Jp;exports.STRATEGY_ITEM_SCOPE_KIND=zi;exports.SUMMARY_MIN_LAST_CHARS=Cs;exports.SUMMARY_MIN_MESSAGES=As;exports.SYNC_RUN_MAX_ERRORS=n_;exports.SYNC_TARGET_PROVIDER_GROUP=t_;exports.SYSTEM_ONE_NON_GOALS=fu;exports.SYSTEM_RESOLUTIONS=$s;exports.TERMINAL_ASSIGNMENT_STATUSES=Po;exports.TERMINAL_RUN_STATUSES=Ci;exports.TRANSACTION_KINDS=la;exports.TRIGGER_VARS=Hp;exports.UNARY_OPS=Fm;exports.UNKNOWN_KIND=Qs;exports.UNKNOWN_LEVEL_ORDER=Xi;exports.UNSUPPORTED=lb;exports.UNWORKED_RESOLUTIONS=ef;exports.USAGE_DIMENSIONS=Co;exports.USAGE_DIMENSION_IDS=vo;exports.USAGE_RECORDS_ROUTE=Hl;exports.USAGE_SOURCE_PROVIDER_GROUP=Vl;exports.UnresolvedRefError=Yn;exports.WEBHOOK_EVENTS=Ta;exports.WORKSTREAM_SCOPE_KIND=ci;exports.WORK_ACTIVITY_SCOPE_KIND=Ma;exports.WORK_AREAS=rp;exports.WORK_COMMENT_ADDED=Wh;exports.WORK_CYCLE_SYNC_KIND=ey;exports.WORK_ITEM_ASSIGNED=Vh;exports.WORK_ITEM_SCOPE_KIND=ka;exports.WORK_ITEM_STATUS_CHANGED=Hh;exports.WORK_PROJECT_SCOPE_KIND=Oa;exports.WORK_SORT_FIELDS=Sy;exports.WORK_VIEW_FLAGS=Ey;exports.WORK_VIEW_LAYOUTS=Iy;exports.WORK_VIEW_LIST_FILTERS=_y;exports.W_PRIORITY=Se;exports.XAF_NAMESPACE=qs;exports.acceptExampleCandidate=Gg;exports.accountTotals=pf;exports.accountTypeOf=Bf;exports.accrualPostings=wd;exports.actingIdentityKey=di;exports.activeWorkTypes=Fg;exports.activityIconOf=_c;exports.activityJoinUrl=Mc;exports.activitySnippet=uo;exports.activityTextParams=lo;exports.activityTimelineText=Oc;exports.activityTimestamp=po;exports.activityTypeInfo=j;exports.actorKey=xp;exports.addExampleCandidate=jg;exports.addMonths=me;exports.addWorkingMs=Et;exports.agePresenceEntry=xb;exports.aggregateUsage=Xo;exports.agingBucketOf=va;exports.agingOf=Uh;exports.agreementEffectiveEnd=Jc;exports.agreementFromQuote=Gc;exports.agreementHref=Sh;exports.agreementScopeKey=Eh;exports.aiAttachmentKind=La;exports.aiAttachmentRejection=ky;exports.aiBudgetLimit=Qt;exports.aiBudgetPeriodKey=_u;exports.aiBudgetPeriodStart=Ao;exports.aiBudgetState=bu;exports.aiVendorAcceptsAttachment=yu;exports.aiVendorDefaultModel=mu;exports.aiVendorLabel=pu;exports.aiVendorNeedsBaseUrl=hu;exports.aiVendorsWith=gu;exports.allocate=Ce;exports.allocateInvoice=Om;exports.appNameFromPath=qa;exports.applyApprovalDecision=Lu;exports.applyRounding=Lg;exports.applySignature=zl;exports.approvalRate=Si;exports.artifactBodyBytes=wo;exports.artifactOutline=xo;exports.artifactToMarkdown=vn;exports.assignmentMismatch=Bp;exports.assignmentScopeKey=zu;exports.assignmentSubject=Zu;exports.availabilityByPerson=lp;exports.awaitsNumber=th;exports.balanceSheet=yf;exports.belongsOnCalendar=sp;exports.belongsToEntity=Sl;exports.billableTimeGroups=xg;exports.billedQuantity=Jo;exports.bindParams=Km;exports.bindValue=rt;exports.bookingDocumentOf=Jg;exports.bookingDocumentOfReceipt=ml;exports.bookingLinesOf=Vo;exports.bookingSyncKey=gl;exports.buildActivityPreview=Nc;exports.buildChannelIntents=Vy;exports.buildNavModel=Mb;exports.buildShareKeys=Wu;exports.buildWindow=ac;exports.businessEntitySender=ls;exports.calendarDaysBetween=Zs;exports.calendarOf=St;exports.canConvert=oh;exports.canMoveAgreement=Qc;exports.canNestUnder=uf;exports.canParent=Sg;exports.canTransition=Qg;exports.canonicalJson=nn;exports.capabilityDefaultFlag=ou;exports.capacityTotal=cp;exports.capacityWeights=Rp;exports.capitalizationThreshold=$d;exports.carriesText=Cc;exports.cashForecast=_f;exports.categoryLabel=df;exports.categoryOf=Da;exports.causedBy=qm;exports.changesBilledLine=eu;exports.channelKindForScheme=rb;exports.channelKindOf=Ec;exports.checkInOverdueMs=Dg;exports.clampStepMaxTokens=Zp;exports.classifyMail=Hd;exports.cleanMessageMarkdown=W_;exports.cleanMessageText=G_;exports.cleanReceiptLines=pm;exports.codeQuery=Nl;exports.codedMessage=zy;exports.columnBalance=bf;exports.commitProblem=Ol;exports.companyReceivablesOf=Fh;exports.compareAssistRank=xy;exports.compareReports=ff;exports.compareWorkTypes=na;exports.conditionHolds=us;exports.contactName=sd;exports.contractSignals=dm;exports.copyFrom=pa;exports.correlationKeyFor=Uy;exports.costOverYear=mm;exports.countsAsPlanned=pe;exports.coverageByPerson=up;exports.coverageFor=yp;exports.coversWorkstream=Kn;exports.crmActivityAt=gd;exports.cronMatches=Ui;exports.currentAccountRelation=Od;exports.currentLines=qc;exports.currentPeriod=Th;exports.cycleDayIndex=Un;exports.cycleOrder=yy;exports.cycleState=by;exports.dealValueCents=Wc;exports.decideAssignmentState=Ju;exports.decideCadence=u_;exports.decideEach=Du;exports.decideIncomingCall=jy;exports.decisionBand=du;exports.decodeText=tb;exports.defaultLocaleOf=js;exports.defaultOffer=Ri;exports.defaultStatusKey=cy;exports.defaultTemplateBlocks=ga;exports.defineIntent=ab;exports.delegationRefusal=el;exports.demandFor=hm;exports.depreciationParts=ys;exports.depreciationPostings=Nd;exports.depthOf=Us;exports.derivePresence=wb;exports.describeClause=Mu;exports.describeExpression=Wm;exports.digitsOf=Qo;exports.disabledIntentsFromCapabilities=Gy;exports.disposalLines=Dd;exports.documentBodyBytes=wo;exports.documentKindOf=vb;exports.documentOutline=xo;exports.documentToMarkdown=vn;exports.documentToText=Sb;exports.driftedFields=ji;exports.dueAtOf=gg;exports.dueCharges=Yc;exports.dueDateFrom=Mh;exports.dunningRunOf=hh;exports.dunningStateOf=ha;exports.effectiveEndAt=Ee;exports.elapsedSeconds=Pg;exports.emailDomain=b_;exports.emptyConditionLeaf=jm;exports.endpointKey=I_;exports.entityOwnerIds=Il;exports.entryLinesOf=Mf;exports.entryNumber=Af;exports.entryProblems=If;exports.erlangC=ei;exports.excessiveLending=Md;exports.expectedFor=um;exports.extractParams=za;exports.extractTerms=sc;exports.failureLines=Id;exports.feedOutcome=Em;exports.fieldVarPath=Zm;exports.fillDocument=Ed;exports.fillText=cs;exports.filterByEndpoint=qy;exports.filterByIntent=Hy;exports.filterByTargetScheme=Fa;exports.filterableDimensions=Ou;exports.findAiVendor=ve;exports.findEvent=Jm;exports.finishedAt=Zc;exports.fixedLevelForName=Ag;exports.fixedTypeForName=Zh;exports.fixedTypes=Jh;exports.flattenLocales=kb;exports.floorToPeriod=fe;exports.forecastIntervals=Tp;exports.formatActingIdentity=li;exports.formatCents=H;exports.formatClock=Kg;exports.formatHm=$g;exports.formatItemKey=ny;exports.formatMicros=Ll;exports.formatPeriod=de;exports.formatSeriesNumber=vh;exports.formatSlaDuration=bg;exports.freshSources=Ry;exports.getActivitySeenUserIds=xc;exports.getContactEndpoints=nd;exports.getShortTitle=Jd;exports.getUrgencyScore=Zd;exports.goodsReceiptProblems=Oi;exports.groupDocumentLines=xi;exports.guessFeedMapping=Im;exports.hasReacted=Dm;exports.hashedPartOf=vf;exports.healthCategory=Cg;exports.healthsInCategory=vg;exports.heightOf=Pn;exports.helpCenterText=of;exports.humanizeAction=Wp;exports.interactionIdOf=bi;exports.interestOnDailyBalance=vd;exports.interestPeriods=Td;exports.isAgentUser=jh;exports.isAssigned=Xd;exports.isAssignmentTerminal=Yu;exports.isAssignmentTrigger=gi;exports.isAssistantMode=Eu;exports.isAuthoredCrmActivity=md;exports.isAutoReady=om;exports.isAutonomy=Fp;exports.isAwaitingThem=Ls;exports.isBookable=Zg;exports.isChatMessageActivity=Lc;exports.isClosed=Qd;exports.isConnectedType=Tc;exports.isDescendant=Bs;exports.isEligible=Ud;exports.isEmailActivity=Pc;exports.isFrozen=Zn;exports.isHeldClock=mg;exports.isHtmlBody=j_;exports.isInFlight=im;exports.isInteractionUnseen=Ts;exports.isLandingPath=zb;exports.isLikelyBulk=Is;exports.isMessageShape=yn;exports.isMessageType=Sc;exports.isMoreSpecificPattern=Qa;exports.isNoteShape=bn;exports.isOpenClock=Yi;exports.isOutstanding=er;exports.isOutwardTool=rr;exports.isOverdueOn=Dh;exports.isParked=Ns;exports.isPaused=vi;exports.isPlaybookAuthoredType=vc;exports.isPricePer=jc;exports.isPublicEmailDomain=E_;exports.isPublicPath=Zb;exports.isPurchasable=Gl;exports.isRecurringLine=go;exports.isReminderActive=Ds;exports.isReplyableType=Ac;exports.isResultAccount=Te;exports.isSellable=jl;exports.isSettingsPath=qb;exports.isSettled=Aa;exports.isShorter=Hc;exports.isSlaAtRisk=Yd;exports.isSupportedCron=Hm;exports.isTerminal=sm;exports.isThreadLongEnough=jd;exports.isTradeable=Tl;exports.isTranscriptType=kc;exports.isWebhookEvent=Gh;exports.isWorkClosed=uy;exports.isWorkTypeVisible=Bg;exports.isWriteTool=ir;exports.itemDossierKeys=sy;exports.itemKeyOf=ul;exports.judgeRuleCase=Ym;exports.kindFor=q;exports.ladderFor=Na;exports.ledgerRuleFor=bl;exports.levelIn=Zi;exports.levelOrder=ut;exports.lineAffinity=qn;exports.lineKey=zp;exports.lineNet=bt;exports.lineStatus=yo;exports.lineTerm=U;exports.linkLabel=rf;exports.listedTransactionKinds=zg;exports.listeningAllowed=Su;exports.loanPostings=Rd;exports.loanSchedule=Dn;exports.localeInstruction=cf;exports.localeName=af;exports.localesOf=lf;exports.looksLikeEmail=h_;exports.lookup=Rn;exports.manualSettlement=Ph;exports.marginCents=Kc;exports.markdownToDocument=Eb;exports.matchApprovalPolicy=xu;exports.matchContactToIntents=Yy;exports.matchDocumentLines=Pi;exports.matchFeed=_m;exports.matchPublicRoute=Za;exports.matchRate=Zo;exports.matchRules=Fi;exports.matchVerdict=Mm;exports.mcpCredentialScope=Gf;exports.mcpToolPrefix=Wf;exports.measureRatio=kg;exports.mergeDefaultFlags=iu;exports.mergeShownKeys=c_;exports.messageCountsAs=co;exports.metricOption=Ru;exports.minutesOn=Bn;exports.missingFieldPaths=eg;exports.modelAcceptsAttachment=cu;exports.monthEnd=gs;exports.monthParts=fs;exports.monthlyPeriods=xf;exports.monthsIn=ps;exports.mustAsk=Ja;exports.narrowAutonomy=Gp;exports.navLabelText=Ob;exports.needsPhoneRegion=S_;exports.nestsUnderParent=Ic;exports.nextLevelBelow=Ig;exports.nextOccurrenceDates=hy;exports.nextSlaClock=hg;exports.nextStatuses=da;exports.nextVersion=sh;exports.normalizeArtifactBlocks=Do;exports.normalizeBlocks=hc;exports.normalizeDocumentBlocks=Do;exports.normalizeEmail=ar;exports.normalizeExample=te;exports.normalizeGtin=gt;exports.normalizeIban=rs;exports.normalizeIbans=Jl;exports.normalizeMeter=ts;exports.normalizeUsageSource=ql;exports.normalizeVatNumber=Zl;exports.noticeDeadline=In;exports.notificationPrefKey=Nb;exports.novelty=ic;exports.offerValid=Mi;exports.openCentsOf=nl;exports.operationDescriptor=bb;exports.operationsForKind=yb;exports.opsForFieldType=Qm;exports.orderForDocument=Cm;exports.organizationSender=Sd;exports.outcomeOf=py;exports.overlap=ft;exports.overlapSeconds=Le;exports.overlaps=hp;exports.ownWorkspaceKey=Vg;exports.paceRatio=Og;exports.parkMarksById=Bd;exports.parse=Ki;exports.parseActingIdentity=Dp;exports.parseAmount=Wt;exports.parseCamt053=Bo;exports.parseClockMinutes=og;exports.parseCodedMessage=Qy;exports.parseCron=zn;exports.parseCsv=Zy;exports.parseItemKey=ry;exports.parseLineKey=Xp;exports.parseMicros=On;exports.parseMt940=jo;exports.parsePackingSlip=Tm;exports.parseRateCsv=$l;exports.parseRatePrice=tn;exports.parseRecurrence=gy;exports.parseStatement=cl;exports.parseWorkspacePath=qg;exports.parseXafOpening=Uf;exports.partialDisposalLines=Ld;exports.pathToRegex=Ya;exports.patternFor=jn;exports.patternStartTime=Fn;exports.pauseBitFor=sg;exports.paymentOfItem=ol;exports.paymentStateOf=Jn;exports.pendingApprovers=Pu;exports.periodAt=We;exports.periodOf=Pf;exports.periodShare=ho;exports.periodsInRange=Tu;exports.phoneSuffix=y_;exports.pickMailHeaders=Gd;exports.pickPaymentTerm=Oh;exports.pickTemplate=yd;exports.placeLumps=Np;exports.plainTextFromMarkdown=io;exports.planSlaEvent=pg;exports.plannedBillable=bp;exports.plannedWorkTypeKey=si;exports.priceOver=dt;exports.primaryAddress=Ql;exports.procedureOf=nm;exports.productCost=Ni;exports.productHref=_h;exports.productScopeKey=yh;exports.profitAndLoss=hf;exports.projectDossierKeys=iy;exports.proposalRequestIds=wu;exports.proposeMatch=tl;exports.publicBasePathFor=Xa;exports.publicRoutePatterns=Qb;exports.quantityKey=ru;exports.rateRecords=Ul;exports.ratedLineAmount=Bl;exports.ratedQuantity=Mn;exports.reactionWakesAssignment=Qu;exports.readDefaultFlags=su;exports.readFeed=bm;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=pl;exports.receiptProblems=Wo;exports.receiptState=fm;exports.receiptTotals=Go;exports.receivableRowOf=Kh;exports.receivedFor=ki;exports.recencyOf=Rs;exports.recipientLocale=hd;exports.reconciliationBalances=rl;exports.refKey=Gn;exports.referenceCostIn=Ml;exports.registrableDomain=lc;exports.rejectExampleCandidate=ia;exports.relatedByDefault=Xf;exports.remainingMsOf=ct;exports.repriceLines=Pl;exports.requiredAgents=ri;exports.requirementFor=oi;exports.resolutionsFor=nf;exports.resolveAccountCapabilities=Ba;exports.resolveActivityText=je;exports.resolveAutonomy=jp;exports.resolveChannelIntents=Ua;exports.resolvePrice=Yo;exports.resolveRateCard=wl;exports.resolveRoute=uu;exports.resolveSignature=ns;exports.resolveTier=Io;exports.resolveWorkMode=Pb;exports.resolveWorkspace=Hg;exports.resourceKindOf=Gb;exports.restate=mo;exports.retryDelayMinutes=hl;exports.reversedLines=Tf;exports.rhythmOf=_n;exports.roleDirection=td;exports.rollupChildren=Ng;exports.roundHalfUp=P;exports.runActor=wp;exports.runApprovalKey=Lp;exports.runEvalSuite=Ad;exports.runIdOfApprovalRef=$p;exports.runInteractionId=cm;exports.runKind=rm;exports.runOutcome=Xm;exports.runSpans=Xc;exports.sanitizeInline=No;exports.sanitizeTranscript=ec;exports.scheduleEntryScopeKey=kp;exports.scoreInteraction=zd;exports.scoreWorkItem=Yh;exports.segmentIsEmpty=ud;exports.selectLenses=jf;exports.sellableProduct=Fl;exports.serialize=$e;exports.seriesStart=En;exports.serviceLevel=ti;exports.sessionsHoldCannotReach=Fy;exports.sessionsToHold=By;exports.settingsPath=Yb;exports.settlementPatch=xh;exports.shadowByKey=Al;exports.shareKeyForTeam=kn;exports.shareKeyForUser=Tn;exports.shareKeysForViewer=Vu;exports.shortTermPrincipal=Pd;exports.shortfalls=_p;exports.shouldRunAudioPipeline=Lb;exports.slaBadgeTone=yg;exports.slaHoursByInbox=qd;exports.slaHoursFor=Ps;exports.slipProposal=vm;exports.sortStatuses=wa;exports.sourceKey=Ka;exports.splitLine=tu;exports.spread=wn;exports.spreadOverWeights=ui;exports.startingCents=xd;exports.statusIn=ay;exports.statusRequiresApproval=fy;exports.stepDate=Pa;exports.stepsOf=tm;exports.strategyAncestorKeysFor=Eg;exports.strategyDossierKeys=_g;exports.strategyItemScopeKey=Xn;exports.stripHtml=ao;exports.subjectKeyOf=am;exports.subjectOf=Wn;exports.subjectRef=wy;exports.suggestProjectKey=oy;exports.suggestTreatments=ll;exports.suggestedHealth=Mg;exports.summariseEval=ds;exports.summarizeReactions=Rm;exports.targetById=Up;exports.targetForActivityType=Kp;exports.targetOrder=wg;exports.taxCodeProblem=ep;exports.taxDateOf=J;exports.taxPercentOn=$n;exports.taxRateFor=Xs;exports.taxRatesOn=Jf;exports.termApplies=Ia;exports.termEndAt=ne;exports.termStartAt=Sn;exports.termsFor=Js;exports.tieredMicros=es;exports.timingOf=bo;exports.toActingIdentity=fi;exports.toBaseUnits=Cl;exports.toE164=hn;exports.toProductUnits=Vn;exports.toTransactionTerm=Rh;exports.toolBareName=hi;exports.toolDisplayName=Vp;exports.toolReversible=My;exports.toolSourceKinds=Hu;exports.toolVerdict=o_;exports.topicOfferedForTeam=aa;exports.topicsForTeam=Wg;exports.trafficIntensity=ni;exports.transactionContext=ih;exports.transactionDossierKeys=Ah;exports.transactionHref=bh;exports.transactionIdFromScope=Ih;exports.transactionKind=F;exports.transactionScopeKey=Ea;exports.transactionSlots=ah;exports.transactionTotals=tp;exports.transitoryLines=Of;exports.triggerFillsVar=qp;exports.truncateExample=sa;exports.typeIn=Qh;exports.typesFor=Xh;exports.uniqueWorkStatusKey=ly;exports.uniqueWorkTypeKey=Ug;exports.unitFactor=Ho;exports.unitsProblem=vl;exports.usageAccountOf=So;exports.usageAccountsOf=nu;exports.usageMetricId=To;exports.usageMetrics=Nu;exports.validateQuestions=lu;exports.validateStatuses=dy;exports.valueAtPath=mi;exports.variableJump=Ti;exports.variantOptionsProblem=kl;exports.vatPeriods=xm;exports.vatReturn=wm;exports.waitHoursOf=yt;exports.wakesAssignment=Xu;exports.withLineIds=Qp;exports.workActivityScopeKey=ty;exports.workItemScopeKey=Ra;exports.workProjectScopeKey=tr;exports.workRatio=Rg;exports.workStatusKey=xa;exports.workTypeKey=ta;exports.workingMsBetween=ot;exports.workspacePath=Yg;exports.workstreamScopeKey=Op;exports.xafAuditfile=$f;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Ef;
|