@opencxh/domain 1.296.1 → 1.297.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/organization/types.d.ts +2 -0
- package/dist/index.cjs +23 -23
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2934 -2818
- package/dist/platform/nav-model.d.ts +66 -0
- package/dist/platform/nav-model.test.d.ts +1 -0
- package/dist/platform/navigation.d.ts +5 -0
- 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
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Bt=10,De=10,we=10,xe=5,sc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function vt(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 ic(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Bt){t(`more than ${Bt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!sc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!vt(o.text)){t("a header without text");continue}break;case"context":if(!vt(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:[],a=s.filter(i=>i?.action_id&&i.invoke&&vt(i.text));if(a.length!==s.length&&t("an action without action_id, invoke or text"),a.length===0)continue;a.length>xe&&t(`more than ${xe} actions`),o.elements=a.slice(0,xe);break}}n.push(o)}return n}const ac=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,cc=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function Zr(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(ja,"$2"),t=t.replace(Ga,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function Lr(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 ye(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 jn(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function mt(e){return e?.split("@")?.[0]||e||""}function be(e){return e.map(t=>t.name).join(", ")}function Gn(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const G={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${mt(e.payload.from)}`:`Outbound call started — ${mt(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?` (${ye(e.payload.duration)})`:""}`,timeline:e=>`Call ended${jn(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${mt(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?` (${ye(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:Wn},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:Wn},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=>`${be(e.payload.members)} toegevoegd`,timeline:e=>{const t=be(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=>`${be(e.payload.members)} verlaten`,timeline:e=>{const t=be(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=>`${Gn(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?` (${ye(e.payload.duration)})`:""}`,timeline:e=>`${Gn(e.payload.callType)} ended${jn(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?` (${ye(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 Wn(e){const t=e.payload,n=Pr(t.bodyText).trim()||t.bodySnippet?.trim()||Lr(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function $(e){return G[e]}function Wa(e){return $(e)?.icon??"circle"}function Va(e){return $(e)?.channelKind}function Qt(e){return e==="message"||e==="note"}function Ha(e){return Qt($(e)?.shape)}function Zt(e){return e==="note"}function qa(e){return Zt($(e)?.shape)}function Ya(e){return $(e)?.replyable===!0}function za(e){return $(e)?.carriesText===!0}function $r(e){return $(e)?.countsAs}function Xa(e){return $(e)?.playbookAuthored===!0}function Qa(e){return $(e)?.connected===!0}function Za(e){const t=$(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Kr(e){const t=$(e.type)?.snippet;return t?t(e):""}function Ja(e,t){const n=$(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function ec(e){const t=$(e.type)?.joinUrl;return t?t(e):void 0}function Me(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 Re(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Me(t,e.value)||null;const r={};for(const[s,a]of Object.entries(e.params??{}))r[s]=Me(t,a);const o=n(e.key,r);return o===e.key?null:o}function Ur(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]=Me(t,o);return{key:e.key,params:n}}const Vn=140;function tc(e){const t=e.trim();return t.length<=Vn?t:`${t.slice(0,Vn-1).trimEnd()}…`}function nc(e,t){const n=Ur(t?.text,e),r=t?Re(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:tc(r??Kr(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const rc=e=>e;function Hn(e){const t=G[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 qn(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 Br{constructor(t=[],n=rc){this.translate=n;for(const r of t)r?.type&&(r.type in G||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in G)return Hn(t);const n=this.declared.get(t);return n?qn(n):void 0}triggerable(){const t=Object.keys(G).filter(r=>G[r].triggerable).map(Hn),n=[...this.declared.values()].map(qn).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=G[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Re(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=G[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Re(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 Qt(this.get(t)?.shape)}nestsUnderParent(t){return Zt(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 oc=new Br;function sc(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 Fr(e){return e.createdAt??0}function ic(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function ac(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function D(e){return e<0?-Math.round(-e):Math.round(e)}function fe(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 F(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 cc(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,d=c?o.slice(0,i):o;if(!uc(d))return;const l=d.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(l==="")return;const m=Number(l)*100+Number(f);return r?-m:m}function uc(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function lc(e){return e.costPriceCents==null?e.netCents:e.netCents-D(e.costPriceCents*e.quantity)}const dc=["month","quarter","year"],Ne={month:1,quarter:3,year:12},fc=864e5,pc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},Yn=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},zn=(e,t)=>Math.round((t-e)/fc);function Ze(e,t,n){const r=Ne[t],o=fe(e,Array.from({length:r},()=>1));let s=0;for(let a=pc(n.from);a<n.to;a=Yn(a)){const i=Yn(a),u=Math.max(a,n.from),c=Math.min(i,n.to);if(c<=u)continue;const d=o[new Date(a).getUTCMonth()%r];s+=d*zn(u,c)/zn(a,i)}return D(s)}function jr(e,t,n){return!t||!n||t===n?e:D(e*Ne[n]/Ne[t])}function mc(e){return typeof e=="string"&&e in Ne}function Gr(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function hc(e,t){const n=e.lines.filter(Gr).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:D(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 gc(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?Ze(r.netCents,r.pricePer,t):r.netCents),0)}const Ot={month:1,quarter:3,year:12},yc=864e5;function bc(e,t){return Ot[e]<Ot[t]}function De(e,t){const n=new Date(e),r=Ot[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 P(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 Je(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 Wr(e,t,n){const r=Je(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)/yc);return o(r.from,r.to)/o(t.from,t.to)}function Vr(e,t,n){const r=P(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function _c(e,t,n){return t.filter(r=>Vr(e,r,n)!=="ended")}const kt=864e5;function Jt(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function Hr(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const oe=e=>Math.round((e.to-e.from)/kt);function Ec(e,t,n,r){const o=[],s=[],a=e.graceDays*kt,i=e.proration===!0;for(const u of t){const c=P(e,u),d=Jt(e,u),l=Hr(u),f=n.filter(y=>y.agreementLineId===u.id);if(d==="once"){const y={from:c.from,to:c.from+kt};c.from+a<=r&&!f.some(_=>!_.correction)&&o.push({lineId:u.id,window:y,part:y,share:1,timing:"advance"});continue}const m=[];for(let y=De(c.from,d);y.from<(c.to??Number.POSITIVE_INFINITY)&&y.from+a<=r;y=De(y.to,d))m.push(y);const b=u.quantity.from==="fixed";for(const y of m.slice(-24)){const _=Je(c,y),h=y.to+a<=r,g=f.filter(E=>E.servicePeriod.from>=y.from&&E.servicePeriod.from<y.to),p=g.find(E=>!E.correction);if(!p){if(!_)continue;const E=_.from===y.from&&_.to===y.to;if(!(l==="advance"&&E)&&!h)continue;const A=b?Wr(c,y,i):1;A>0&&o.push({lineId:u.id,window:y,part:_,share:A,timing:l});continue}b&&i&&h&&s.push(...Ic(u.id,y,_,p,g))}}return{charges:o,corrections:s}}function Ic(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:d})=>({lineId:e,window:t,part:c,quantity:d*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&oe(c.part)>0)}const i=r.unitPriceCents*oe(t)/Math.max(1,oe(r.servicePeriod));return a.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:D(i*oe(u)/oe(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Sc(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 xe=864e5,qr={draft:["active"],active:["draft","ended"],ended:["active"]};function Ac(e,t){return e===t||qr[e].includes(t)}function Tc(e){const t=e.graceDays*xe;let n=e.startsAt;for(const r of e.lines??[]){const o=P(e,r),s=Jt(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,De(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const we=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Yr=e=>e&&e.termMonths>=1?e:void 0;function en(e,t){return Math.min(...t.map(n=>P(e,n).from))}function Y(e,t,n){let r=we(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=we(r,o);return r}function tn(e,t,n){const r=we(e,Math.max(1,t.termMonths)),o=Y(e,t,n);return o===r?e:we(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function nn(e,t,n){if(t=Yr(t),!t)return null;const r=Y(e,t,n),o=r-t.noticeDays*xe;return n<=o?o:t.renew==="none"?null:Y(e,t,r)-t.noticeDays*xe}function ce(e,t,n){if(t=Yr(t),!t)return n;const r=Y(e,t,n);return n<=r-t.noticeDays*xe||t.renew==="none"?r:Y(e,t,r)}function Cc(e,t){let n=t;for(const r of e.lines??[]){const o=P(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,ce(Math.max(o.from,0),s,t))}return n}const Xn=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 vc(e,t){return Xn(e)!==Xn(t)}function Oc(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 zr(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 kc(e){const t=new Map;for(const n of e.lines??[]){const r=zr(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Mc(e,t){return[e,t].join("@")}const et=[{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 Rc(e){return et.find(t=>t.id===e)?.defaultFlag}function Nc(e){const t={};for(const n of et)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Dc(e,t){const n={};for(const r of et){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const xc={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function wc(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=xc[t];return n?e.in.includes(n):!1}const Z=["fast","standard","deep"],Qn=(e,t)=>{const n=Z.indexOf(e),r=Math.min(Z.length-1,Math.max(0,n+t));return Z[r]},Mt=e=>Z.indexOf(e);function Xr(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=Qn(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=Qn(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&Mt(n)>Mt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function Pc(e,t,n){const r=Xr(t);if(!e)return{...r,...n,routed:!1};for(let o=Mt(r.tier);o>=0;o--){const s=Z[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 Rt=255,Nt=2,Dt=10;function Lc(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>Rt)return`vraag "${n}" heeft meer dan ${Rt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<Nt||o>Dt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${Nt} tot ${Dt} zijn`}}return null}function $c(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const Kc=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],rn=[{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 pe(e){return rn.find(t=>t.id===e)}function Uc(e){return pe(e)?.label??e}function Bc(e,t="gpt-5-mini"){return pe(e)?.defaultModel??t}function Fc(e){return rn.filter(t=>t.capabilities.includes(e))}function jc(e){const t=pe(e);return!!t&&!t.baseUrl}function Gc(e,t){return t==="text"?!0:pe(e)?.attachmentKinds?.includes(t)===!0}function Wc(e,t){if(!e.enabled)return"ok";const n=xt(e.hardLimitNanos),r=xt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function xt(e){return typeof e=="number"?e:void 0}function Qr(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Vc(e,t="month"){const n=new Date(Qr(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Hc(e){return e==="ask"||e==="draft"||e==="agent"}function qc(e){return e?.listeningEnabled!==!1}const Yc=["report"],zc=[{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 ht(e){return e<10?`0${e}`:`${e}`}function ee(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${ht(n.getUTCMonth()+1)}-${ht(n.getUTCDate())}`;return t==="day"?r:`${r}T${ht(n.getUTCHours())}`}function te(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Xc=36e5,Qc=864e5;function Zc(e,t,n){const r=n==="hour"?Xc:Qc,o=[];for(let s=te(e,n);s<=t;s+=r)o.push(ee(s,n));return o}const Jc=new Set(["time"]);function eu(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Jc.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 tu(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 nu(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Zr=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],Jr=Zr.map(e=>e.id);function eo(e,t){return`${e}.usage.${t}`}function ru(e,t){return t.map(n=>({id:eo(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...Jr,...n.extraDimensions??[],"time"]}))}async function ou(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 su(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function iu(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 au(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 cu(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 to=new Set(["info","success","warning","destructive"]),Pe=200,Le=100,$e=200,Ke=12,Ue=4,wt=10,no=8,Pt=12,tt=4e3,Q=500,ro=1024*1024,uu=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),oo=["http:","https:","mailto:","tel:"],lu=/^[a-z][a-z0-9+.-]*:/i;function on(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=lu.exec(t)?.[0];return n?oo.includes(n.toLowerCase()):!t.startsWith("//")}const du=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function fu(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=Zn(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=Zn(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||!on(u)?i:e.slice(n,a+1),n=a+1}return t}function Zn(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 so(e){return fu(e).replace(du,(t,n,r)=>on(r)?t:"")}function x(e,t=tt){return typeof e=="string"?so(e).slice(0,t):""}function pu(e,t=tt){return typeof e=="string"?e.slice(0,t):""}function se(e,t=200){return x(e,t)}function mu(e,t="info"){return typeof e=="string"&&to.has(e)?e:t}function io(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Pe){t(`more than ${Pe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!uu.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=x(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=x(o.text);if(!a){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:a});break}case"quote":{const a=x(o.text);if(!a){t("a quote without text");continue}n.push({...s,type:"quote",text:a});break}case"code":{const a=pu(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>=Le){t(`more than ${Le} list items`);break}const d=x(c?.text);if(!d)continue;const l=x(c?.lead,200);i.push(l?{lead:l,text:d}:{text:d})}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 l of a){if(i.length>=Ke){t(`more than ${Ke} table columns`);break}const f=x(l?.label,Q),m=l?.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 l of u){if(c.length>=$e){t(`more than ${$e} table rows`);break}const f=Array.isArray(l)?l:[];c.push(i.map((m,b)=>x(f[b],Q)))}const d=x(o.caption,Q);n.push({...s,type:"table",columns:i,rows:c,...d?{caption:d}:{}});break}case"kpi":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const u of a){if(i.length>=Ue){t(`more than ${Ue} kpi items`);break}const c=x(u?.value,40),d=x(u?.label,80);if(!c||!d)continue;const l=u?.tone;i.push(typeof l=="string"&&to.has(l)?{value:c,label:d,tone:l}:{value:c,label:d})}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||!on(a)){t("an image without a usable url");continue}const i=x(o.alt,200),u=x(o.caption,Q);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 d of a){if(i.length>=wt){t(`more than ${wt} letterhead fields`);break}const l=d,f=typeof l?.key=="string"?l.key.slice(0,48):"",m=se(l?.value);if(!f||!m)continue;const b=se(l?.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,no).map(d=>se(d)).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 d=Array.isArray(c)?c:[],l=[];for(const f of d){if(l.length>=Pt){t(`more than ${Pt} totals rows`);break}const m=f,b=se(m?.label),y=se(m?.amount,40);!b||!y||l.push(m?.emphasis===!0?{label:b,amount:y,emphasis:!0}:{label:b,amount:y})}return l},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=x(o.text);if(!a){t("a callout without text");continue}const i=x(o.title,200);n.push({...s,type:"callout",tone:mu(o.tone),...i?{title:i}:{},text:a});break}}}return n}function ao(e){return JSON.stringify(e).length}function co(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function Jn(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function gt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(Jn).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(Jn).join(" | ")} |`)]}function hu(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=gt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return gt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=``;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return gt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function sn(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=hu(o);s.length>0&&n.push(s.join(`
|
|
3
|
+
`),t=t.replace(ac,"$2"),t=t.replace(cc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function Jr(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 nr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function kt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function rr(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 — ${kt(e.payload.from)}`:`Outbound call started — ${kt(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${nr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${kt(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:or},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:or},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=>`${rr(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=>`${rr(e.payload.callType)} ended${nr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${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 or(e){const t=e.payload,n=Zr(t.bodyText).trim()||t.bodySnippet?.trim()||Jr(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function uc(e){return j(e)?.icon??"circle"}function lc(e){return j(e)?.channelKind}function fn(e){return e==="message"||e==="note"}function dc(e){return fn(j(e)?.shape)}function pn(e){return e==="note"}function fc(e){return pn(j(e)?.shape)}function pc(e){return j(e)?.replyable===!0}function mc(e){return j(e)?.carriesText===!0}function eo(e){return j(e)?.countsAs}function gc(e){return j(e)?.playbookAuthored===!0}function hc(e){return j(e)?.connected===!0}function yc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function to(e){const t=j(e.type)?.snippet;return t?t(e):""}function bc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function _c(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 no(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 sr=140;function Ec(e){const t=e.trim();return t.length<=sr?t:`${t.slice(0,sr-1).trimEnd()}…`}function Ic(e,t){const n=no(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Ec(r??to(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Sc=e=>e;function ir(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 ar(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 ro{constructor(t=[],n=Sc){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 ir(t);const n=this.declared.get(t);return n?ar(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(ir),n=[...this.declared.values()].map(ar).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 fn(this.get(t)?.shape)}nestsUnderParent(t){return pn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Ac=new ro;function Tc(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 oo(e){return e.createdAt??0}function Cc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function vc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function L(e){return e<0?-Math.round(-e):Math.round(e)}function Te(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 kc(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,d=c?o.slice(0,i):o;if(!Oc(d))return;const l=d.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(l==="")return;const m=Number(l)*100+Number(f);return r?-m:m}function Oc(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Mc(e){return e.costPriceCents==null?e.netCents:e.netCents-L(e.costPriceCents*e.quantity)}const Rc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Nc=864e5,Dc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},cr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},ur=(e,t)=>Math.round((t-e)/Nc);function lt(e,t,n){const r=Ge[t],o=Te(e,Array.from({length:r},()=>1));let s=0;for(let a=Dc(n.from);a<n.to;a=cr(a)){const i=cr(a),u=Math.max(a,n.from),c=Math.min(i,n.to);if(c<=u)continue;const d=o[new Date(a).getUTCMonth()%r];s+=d*ur(u,c)/ur(a,i)}return L(s)}function so(e,t,n){return!t||!n||t===n?e:L(e*Ge[n]/Ge[t])}function wc(e){return typeof e=="string"&&e in Ge}function io(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function xc(e,t){const n=e.lines.filter(io).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:L(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 Pc(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?lt(r.netCents,r.pricePer,t):r.netCents),0)}const Ft={month:1,quarter:3,year:12},Lc=864e5;function $c(e,t){return Ft[e]<Ft[t]}function We(e,t){const n=new Date(e),r=Ft[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 dt(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 ao(e,t,n){const r=dt(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)/Lc);return o(r.from,r.to)/o(t.from,t.to)}function co(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function Kc(e,t,n){return t.filter(r=>co(e,r,n)!=="ended")}const jt=864e5;function mn(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function uo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/jt);function Uc(e,t,n,r){const o=[],s=[],a=e.graceDays*jt,i=e.proration===!0;for(const u of t){const c=U(e,u),d=mn(e,u),l=uo(u),f=n.filter(y=>y.agreementLineId===u.id);if(d==="once"){const y={from:c.from,to:c.from+jt};c.from+a<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:y,part:y,share:1,timing:"advance"});continue}const m=[];for(let y=We(c.from,d);y.from<(c.to??Number.POSITIVE_INFINITY)&&y.from+a<=r;y=We(y.to,d))m.push(y);const b=u.quantity.from==="fixed";for(const y of m.slice(-24)){const E=dt(c,y),g=y.to+a<=r,h=f.filter(I=>I.servicePeriod.from>=y.from&&I.servicePeriod.from<y.to),p=h.find(I=>!I.correction);if(!p){if(!E)continue;const I=E.from===y.from&&E.to===y.to;if(!(l==="advance"&&I)&&!g)continue;const C=b?ao(c,y,i):1;C>0&&o.push({lineId:u.id,window:y,part:E,share:C,timing:l});continue}b&&i&&g&&s.push(...Bc(u.id,y,E,p,h))}}return{charges:o,corrections:s}}function Bc(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:d})=>({lineId:e,window:t,part:c,quantity:d*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:L(i*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Fc(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,lo={draft:["active"],active:["draft","ended"],ended:["active"]};function jc(e,t){return e===t||lo[e].includes(t)}function Gc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=mn(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())},fo=e=>e&&e.termMonths>=1?e:void 0;function gn(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 hn(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 yn(e,t,n){if(t=fo(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=fo(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 Wc(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 lr=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 Vc(e,t){return lr(e)!==lr(t)}function Hc(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 po(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 qc(e){const t=new Map;for(const n of e.lines??[]){const r=po(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Yc(e,t){return[e,t].join("@")}const ft=[{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 zc(e){return ft.find(t=>t.id===e)?.defaultFlag}function Xc(e){const t={};for(const n of ft)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Qc(e,t){const n={};for(const r of ft){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const Zc={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function Jc(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=Zc[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],dr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},Gt=e=>ue.indexOf(e);function mo(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=dr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=dr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&Gt(n)>Gt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function eu(e,t,n){const r=mo(t);if(!e)return{...r,...n,routed:!1};for(let o=Gt(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 Wt=255,Vt=2,Ht=10;function tu(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>Wt)return`vraag "${n}" heeft meer dan ${Wt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<Vt||o>Ht)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${Vt} tot ${Ht} zijn`}}return null}function nu(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const ru=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],bn=[{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 Ce(e){return bn.find(t=>t.id===e)}function ou(e){return Ce(e)?.label??e}function su(e,t="gpt-5-mini"){return Ce(e)?.defaultModel??t}function iu(e){return bn.filter(t=>t.capabilities.includes(e))}function au(e){const t=Ce(e);return!!t&&!t.baseUrl}function cu(e,t){return t==="text"?!0:Ce(e)?.attachmentKinds?.includes(t)===!0}function uu(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 go(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function lu(e,t="month"){const n=new Date(go(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function du(e){return e==="ask"||e==="draft"||e==="agent"}function fu(e){return e?.listeningEnabled!==!1}const pu=["report"],mu=[{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 Ot(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Ot(n.getUTCMonth()+1)}-${Ot(n.getUTCDate())}`;return t==="day"?r:`${r}T${Ot(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 gu=36e5,hu=864e5;function yu(e,t,n){const r=n==="hour"?gu:hu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const bu=new Set(["time"]);function _u(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!bu.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 Eu(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 Iu(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const ho=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],yo=ho.map(e=>e.id);function bo(e,t){return`${e}.usage.${t}`}function Su(e,t){return t.map(n=>({id:bo(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...yo,...n.extraDimensions??[],"time"]}))}async function Au(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 Tu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function Cu(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 vu(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 ku(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 _o=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Yt=10,Eo=8,zt=12,pt=4e3,ce=500,Io=1024*1024,Ou=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),So=["http:","https:","mailto:","tel:"],Mu=/^[a-z][a-z0-9+.-]*:/i;function _n(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Mu.exec(t)?.[0];return n?So.includes(n.toLowerCase()):!t.startsWith("//")}const Ru=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Nu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=fr(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=fr(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||!_n(u)?i:e.slice(n,a+1),n=a+1}return t}function fr(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function Ao(e){return Nu(e).replace(Ru,(t,n,r)=>_n(r)?t:"")}function $(e,t=pt){return typeof e=="string"?Ao(e).slice(0,t):""}function Du(e,t=pt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function wu(e,t="info"){return typeof e=="string"&&_o.has(e)?e:t}function To(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(!Ou.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=Du(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 d=$(c?.text);if(!d)continue;const l=$(c?.lead,200);i.push(l?{lead:l,text:d}:{text:d})}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 l of a){if(i.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(l?.label,ce),m=l?.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 l of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(l)?l:[];c.push(i.map((m,b)=>$(f[b],ce)))}const d=$(o.caption,ce);n.push({...s,type:"table",columns:i,rows:c,...d?{caption:d}:{}});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),d=$(u?.label,80);if(!c||!d)continue;const l=u?.tone;i.push(typeof l=="string"&&_o.has(l)?{value:c,label:d,tone:l}:{value:c,label:d})}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||!_n(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 d of a){if(i.length>=Yt){t(`more than ${Yt} letterhead fields`);break}const l=d,f=typeof l?.key=="string"?l.key.slice(0,48):"",m=he(l?.value);if(!f||!m)continue;const b=he(l?.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,Eo).map(d=>he(d)).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 d=Array.isArray(c)?c:[],l=[];for(const f of d){if(l.length>=zt){t(`more than ${zt} totals rows`);break}const m=f,b=he(m?.label),y=he(m?.amount,40);!b||!y||l.push(m?.emphasis===!0?{label:b,amount:y,emphasis:!0}:{label:b,amount:y})}return l},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:wu(o.tone),...i?{title:i}:{},text:a});break}}}return n}function Co(e){return JSON.stringify(e).length}function vo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function pr(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Mt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(pr).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(pr).join(" | ")} |`)]}function xu(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=Mt(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 Mt(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 Mt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function En(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=xu(o);s.length>0&&n.push(s.join(`
|
|
4
4
|
`))}return`${n.join(`
|
|
5
5
|
|
|
6
6
|
`)}
|
|
7
|
-
`}const
|
|
8
|
-
`),n=[];for(const d of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const l=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(d.trim());l&&n.push({tag:l[1]??"",value:(l[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,a;const i=[];let u=0;for(const{tag:d,value:l}of n)if(d==="25")r=l.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(d==="28C")o=l,u=0;else if(d==="60F"||d==="60M")s??=
|
|
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=Be(m[4])??0,y=m[3]==="C"||m[3]==="RD",_=go(m[1]??""),h=m[2]?`${_.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:_,g=m[6]??m[5]?.trim();i.push({date:h,valueDate:_,amountCents:y?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:g&&g!=="NONREF"?`ref:${g}`:`seq:${o}:${u}`})}else if(d==="86"){const f=i.at(-1);f&&!f.description&&Object.assign(f,xu(l))}const c=i.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??c[0]??"",to:a?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}function wu(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?ho(e):yo(e)}const Pu=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function Lu(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 bo(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 $u="receipt",Ku="book";function _o(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 Uu(e){if(e.status!=="to_check")return null;const t=_o(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Eo(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 Bu(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:Eo(e.lines,n.supplierName?.value??""),totals:bo(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 Fu(e,t,n){return`${e}:${t}:${n}`}function ju(e){return[1,5,15][e-1]??60}const Gu=10*6e4;function Wu(e,t){const n=r=>t.find(o=>r(o.match));return e.productId&&n(r=>r.productId===e.productId)||e.ledgerCategoryKey&&n(r=>r.ledgerCategoryKey===e.ledgerCategoryKey)||n(r=>!!r.taxRateKey&&!r.productId&&!r.ledgerCategoryKey&&r.taxRateKey===e.taxRateKey)||n(r=>!r.productId&&!r.ledgerCategoryKey&&!r.taxRateKey)}const Vu="organization.business-entities.list",Hu=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function qu(e,t,n){return e?e===t:n}function Yu(e){return e.isDefault===!0?[e.id,""]:[e.id]}function zu(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 Io(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 Xu(n.slice(0,13))===Number(n[13])?n:void 0}function Xu(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 Qu(e,t){const n=t.trim(),r=Io(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r}),{organizationId:e,$or:o}}const Zu=[{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 So(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 Zu){const a=o.filter(u=>s.matches(u,t));if(a.length===0)continue;const i=a.reduce((u,c)=>{const d=(c.minQuantity??0)-(u.minQuantity??0);return d!==0?d>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:i,sourceKey:(i.minQuantity??0)>1?"tier":s.key}}return null}function Ao(e,t,n){const r=So(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:el(r.rule,e.listPriceCents),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function Ju(e,t,n){const r=So(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 el(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?D(t*(1-e.discountPercent/100)):t}const To="manual";function tl(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===To)return o;const s=t.find(c=>c.id===o.productId);if(!s)return o;const a=Ao(s,{...r,quantity:o.quantity},n);if(a.unitPriceCents===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:i,...u}=o;return{...u,unitPriceCents:a.unitPriceCents,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function un(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 nl(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 Lt(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=un(e);return n===void 0?void 0:{kind:"flat",micros:n}}function rl(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,d)=>{const l=d+1;if(!c.trim())return;const f=c.split(s).map(M=>M.trim());if(d===0&&!Lt(f[u]??""))return;const m=f[0]??"",b={};a.forEach((M,N)=>{const K=f[1+N]??"";if(!K)return;const Ua=/^[+\d\s-]+$/.test(K)?K.replace(/\D/g,"").replace(/^00/,""):K;b[M.key]=M.match==="prefix"?{prefix:Ua}:{equals:K}});const y=f[1+a.length]??"",_=y===""?0:un(y),h=Lt(f[u]??""),[g,p]=i?(f[u+1]||`${t.display.per}/1`).split("/").map(Number):[1,1],E=i?f[u+2]??"":"",T=E===""?0:Number(E),A=m?_===void 0||!h?"price":!(g>0)||!((p??g)>0)||!Number.isFinite(T)?"increment":null:"label";if(A){r.push({line:l,message:A});return}n.push({label:m,match:b,setupMicros:_,price:h,unitSize:t.display.per,firstIncrement:g,nextIncrement:p??g,minimum:T})}),{rates:n,errors:r}}const Co=1e4;function vo(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 Oo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function ol(e,t){return t===void 0?!1:"equals"in e?t===e.equals:/^\d+$/.test(e.prefix)?Oo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function or(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function ko(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>ol(a,e.dimensions[s]))&&(!n||or(r)>or(n))&&(n=r);return n}function Mo(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 Ro(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:D(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:D(a),bands:o}}function sl(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=ko(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:Mo(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 d=vo(i,n),l=Math.min(a.included??0,d),f=d-l,m=a.setupMicros*i.length;let b,y;a.price.kind==="flat"?b=D(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:y}=Ro(f,a.price,a.unitSize):b=D(c*(1+a.price.percent/100));const _=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:d,included:l,billed:f,micros:_,cents:D(_/Co),...y?{bands:y}:{}}}),unrated:r}}function il(e){if(e.costPriceCents!=null)return jr(e.costPriceCents,e.costPricePer??e.pricePer,e.pricePer)}function al(e){return!e.archived&&e.sellable!==!1}function cl(e){return!e.archived&&e.purchasable===!0}const ul=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter"],ll="usage-source",dl="/usage/records";function No(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"}))}}function fl(e){return{...e,meters:(e.meters??[]).map(t=>No(t)),accounts:e.accounts??[]}}const pl=new Set(["mail","message"]);function Do(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function ml(e,t,n,r="html"){if(!e)return n;const o=Do(e,t);return o?`${n}${r==="text"?`
|
|
7
|
+
`}const In=e=>`user:${e}`,Sn=e=>`team:${e}`;function Pu(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(In(n.id)),n.kind==="team"&&t.add(Sn(n.id)));return[...t].sort()}function Lu(e,t){return[In(e),...t.map(Sn)]}function $u(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const ko=["done","escalated"],Ku=["open","waiting"];function Uu(e){return ko.includes(e)}const Oo="assignment";function Bu(e){return`${Oo}:${e}`}function Fu(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 ju(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Gu(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const Mo=12;function Wu(e,t,n=Mo){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 Ro=2;function Vu(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>=Ro?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const mr=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),gr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function Hu(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(g=>g.kind===o&&g.openCents>0),a=mr(`${e.description} ${e.endToEndId??""}`),i=g=>g.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:g.id,sourceApp:g.sourceApp??"sales"}:{kind:"receipt",receiptId:g.id},u=s.filter(g=>g.number&&a.includes(mr(g.number))),c=u.find(g=>g.openCents===r);if(c)return{target:i(c),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:c.label};if(u.length===1&&u[0]){const g=u[0];return{target:i(g),via:"exact",confidence:"medium",reasons:["invoice_number"],label:g.label}}const d=e.counterpartyIban;if(d){const g=s.filter(h=>h.ibans.includes(d)&&h.openCents===r);if(g.length===1&&g[0]){const h=g[0];return{target:i(h),via:"exact",confidence:"high",reasons:["iban","amount"],label:h.label}}}const l=(t.scheduled??[]).filter(g=>g.expectedBankCents===e.amountCents),f=d?l.filter(g=>g.ibans.includes(d)):[],m=l.filter(g=>gr(g.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(d&&t.ownIbans.some(g=>g.iban===d&&g.bankAccountId!==e.bankAccountId)){const g=t.otherLines.find(h=>h.state==="unmatched"&&h.bankAccountId!==e.bankAccountId&&h.amountCents===-e.amountCents&&gr(h.date,e.date)<=3);if(g)return{target:{kind:"transfer",bankLineId:g.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const y=e.description.toLowerCase(),E=[...t.rules].sort((g,h)=>g.order-h.order).find(g=>{const h=g.when;return h.bankAccountId&&h.bankAccountId!==e.bankAccountId||h.counterpartyIban&&h.counterpartyIban!==d||h.direction&&h.direction!==(n?"in":"out")||h.descriptionContains&&!y.includes(h.descriptionContains.toLowerCase())?!1:!!(h.counterpartyIban||h.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 qu(e,t,n){const[r,o]=[e.slice(0,3),e.slice(3)],s=r==="jl:"?"journal_line":"bank_line",a=n.filter(i=>i.status==="active").flatMap(i=>i.allocations).filter(i=>i.item.kind===s&&i.item.id===o).reduce((i,u)=>i+u.amountCents,0);return t-a}function Yu(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function zu(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 No=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:No(n)}const Ze=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},hr=e=>e?.slice(0,10),Xu=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Do(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=V(t,"Stmt")[0]??t,r=k(n,"Id")??"stmt",o=d=>{const l=V(n,"Bal").find(m=>k(m,"Cd")===d);if(!l)return;const f=Ze(k(l,"Amt"));if(f!==void 0)return{cents:k(l,"CdtDbtInd")==="DBIT"?-f:f,date:Xu(l)}},s=o("OPBD")??o("PRCD"),a=o("CLBD"),i=V(n,"Ntry").flatMap((d,l)=>{if((k(d,"Sts","Cd")??k(d,"Sts"))==="PDNG")return[];const f=Ze(k(d,"Amt"));if(f===void 0)return[];const m=k(d,"CdtDbtInd")==="DBIT",b=V(d,"TxDtls")[0]??d,y=m?"Cdtr":"Dbtr",E=k(b,"RltdPties",y,"Nm")??k(b,"RltdPties",y,"Pty","Nm"),g=k(b,"RltdPties",`${y}Acct`,"Id","IBAN"),h=[...V(b,"Ustrd").map(No),k(d,"AddtlNtryInf")].filter(Boolean),p=k(b,"Refs","EndToEndId"),I=hr(k(d,"BookgDt","Dt")??k(d,"BookgDt","DtTm"))??"",v=hr(k(d,"ValDt","Dt")??k(d,"ValDt","DtTm")),C=k(d,"AcctSvcrRef")??k(d,"NtryRef");return[{date:I,...v?{valueDate:v}:{},amountCents:m?-f:f,currency:/Ccy="([A-Z]{3})"/.exec(d)?.[1]??"EUR",...E?{counterpartyName:E}:{},...g?{counterpartyIban:g.replace(/\s+/g,"").toUpperCase()}:{},description:h.join(" ").replace(/\s+/g," ").trim(),...p&&p!=="NOTPROVIDED"?{endToEndId:p}:{},dedupeKey:C?`ref:${C}`:`seq:${r}:${l+1}`}]}),u=i.map(d=>d.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)??a?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}const wo=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function yr(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:wo(t[2]??""),currency:t[3]}}const Qu=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function Zu(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+Qu.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((a,i)=>{const u=(a.index??0)+a[0].length,c=r[i+1]?.index??t.length;o[a[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 xo(e){const t=e.replace(/\r\n/g,`
|
|
8
|
+
`),n=[];for(const d of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const l=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(d.trim());l&&n.push({tag:l[1]??"",value:(l[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,a;const i=[];let u=0;for(const{tag:d,value:l}of n)if(d==="25")r=l.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(d==="28C")o=l,u=0;else if(d==="60F"||d==="60M")s??=yr(l);else if(d==="62F"||d==="62M")a=yr(l);else if(d==="61"){const f=l.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,y=m[3]==="C"||m[3]==="RD",E=wo(m[1]??""),g=m[2]?`${E.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:E,h=m[6]??m[5]?.trim();i.push({date:g,valueDate:E,amountCents:y?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:h&&h!=="NONREF"?`ref:${h}`:`seq:${o}:${u}`})}else if(d==="86"){const f=i.at(-1);f&&!f.description&&Object.assign(f,Zu(l))}const c=i.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??c[0]??"",to:a?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}function Ju(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Do(e):xo(e)}const el=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function tl(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 Po(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 nl="receipt",rl="book";function Lo(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 ol(e){if(e.status!=="to_check")return null;const t=Lo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function $o(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 sl(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:$o(e.lines,n.supplierName?.value??""),totals:Po(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 il(e,t,n){return`${e}:${t}:${n}`}function al(e){return[1,5,15][e-1]??60}const cl=10*6e4;function ul(e,t){const n=r=>t.find(o=>r(o.match));return e.productId&&n(r=>r.productId===e.productId)||e.ledgerCategoryKey&&n(r=>r.ledgerCategoryKey===e.ledgerCategoryKey)||n(r=>!!r.taxRateKey&&!r.productId&&!r.ledgerCategoryKey&&r.taxRateKey===e.taxRateKey)||n(r=>!r.productId&&!r.ledgerCategoryKey&&!r.taxRateKey)}const ll="organization.business-entities.list",dl=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function fl(e,t,n){return e?e===t:n}function pl(e){return e.isDefault===!0?[e.id,""]:[e.id]}function ml(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 Ko(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 gl(n.slice(0,13))===Number(n[13])?n:void 0}function gl(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 hl(e,t){const n=t.trim(),r=Ko(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r}),{organizationId:e,$or:o}}const yl=[{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 Uo(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 yl){const a=o.filter(u=>s.matches(u,t));if(a.length===0)continue;const i=a.reduce((u,c)=>{const d=(c.minQuantity??0)-(u.minQuantity??0);return d!==0?d>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:i,sourceKey:(i.minQuantity??0)>1?"tier":s.key}}return null}function Bo(e,t,n){const r=Uo(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:_l(r.rule,e.listPriceCents),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function bl(e,t,n){const r=Uo(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 _l(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?L(t*(1-e.discountPercent/100)):t}const Fo="manual";function El(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===Fo)return o;const s=t.find(c=>c.id===o.productId);if(!s)return o;const a=Bo(s,{...r,quantity:o.quantity},n);if(a.unitPriceCents===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:i,...u}=o;return{...u,unitPriceCents:a.unitPriceCents,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function An(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 Il(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 Xt(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=An(e);return n===void 0?void 0:{kind:"flat",micros:n}}function Sl(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,d)=>{const l=d+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(d===0&&!Xt(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 y=f[1+a.length]??"",E=y===""?0:An(y),g=Xt(f[u]??""),[h,p]=i?(f[u+1]||`${t.display.per}/1`).split("/").map(Number):[1,1],I=i?f[u+2]??"":"",v=I===""?0:Number(I),C=m?E===void 0||!g?"price":!(h>0)||!((p??h)>0)||!Number.isFinite(v)?"increment":null:"label";if(C){r.push({line:l,message:C});return}n.push({label:m,match:b,setupMicros:E,price:g,unitSize:t.display.per,firstIncrement:h,nextIncrement:p??h,minimum:v})}),{rates:n,errors:r}}const jo=1e4;function Go(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 Wo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Al(e,t){return t===void 0?!1:"equals"in e?t===e.equals:/^\d+$/.test(e.prefix)?Wo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function br(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Vo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>Al(a,e.dimensions[s]))&&(!n||br(r)>br(n))&&(n=r);return n}function Ho(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 qo(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:L(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:L(a),bands:o}}function Tl(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=Vo(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:Ho(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 d=Go(i,n),l=Math.min(a.included??0,d),f=d-l,m=a.setupMicros*i.length;let b,y;a.price.kind==="flat"?b=L(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:y}=qo(f,a.price,a.unitSize):b=L(c*(1+a.price.percent/100));const E=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:d,included:l,billed:f,micros:E,cents:L(E/jo),...y?{bands:y}:{}}}),unrated:r}}function Cl(e){if(e.costPriceCents!=null)return so(e.costPriceCents,e.costPricePer??e.pricePer,e.pricePer)}function vl(e){return!e.archived&&e.sellable!==!1}function kl(e){return!e.archived&&e.purchasable===!0}const Ol=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter"],Ml="usage-source",Rl="/usage/records";function Yo(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"}))}}function Nl(e){return{...e,meters:(e.meters??[]).map(t=>Yo(t)),accounts:e.accounts??[]}}const Dl=new Set(["mail","message"]);function zo(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function wl(e,t,n,r="html"){if(!e)return n;const o=zo(e,t);return o?`${n}${r==="text"?`
|
|
10
10
|
|
|
11
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function xo(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function hl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function gl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=xo(n);r&&!t.includes(r)&&t.push(r)}return t}function yl(e){return e.endpoints??[]}const bl=["lead","opportunity","customer","former"],_l=["new","working","unqualified"];function El(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const wo=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],Po=["openDeal","hasContacts"],Il={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},Sl=["updatedAt","createdAt","name"],Al=["list"];function Tl(e){return e.search?.trim()||e.createdWithinDays||Po.some(t=>e[t])||wo.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Lo="CRM_NOTE_ADDED",Cl="crm_activity",$o="CRM_CALL_LOGGED",vl="CRM_STAGE_CHANGED",Ol=["phone","meeting","video"],kl=["callback","interested","no_answer","not_interested"],Ml=e=>e===Lo||e===$o,Rl=e=>e.payload.call?.at??e.createdAt??0;function z(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function Nl(e){return z(e.contactLocale)??z(e.companyLocale)??z(e.organizationLocale)}function Dl(e,t,n,r){const o=e.filter(i=>i.key===t&&!i.archived);if(o.length===0)return;const s=z(n),a=z(r);return o.find(i=>z(i.locale)===s)??o.find(i=>z(i.locale)===a)??o.find(i=>!i.locale)??o[0]}const xl=/\{([a-zA-Z0-9_.]+)\}/g;function ln(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function wl(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Ko(e,t,n){const r=[];return{text:e.replace(xl,(s,a)=>{const i=ln(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):wl(i)}),unresolved:r}}function Uo(e,t){if(!e)return!0;const n=ln(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 Pl(e,t,n,r,o){const s=[],a=[],i=new Set,u=c=>{const d=Ko(c,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const c of e){if(c.block_id&&!Uo(n?.[c.block_id],t))continue;const d=c.block_id?r?.[c.block_id]:void 0;if(d&&c.block_id){i.add(c.block_id),a.push(...d);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(l=>({...l.lead?{lead:u(l.lead)}:{},text:u(l.text)}))});break;case"table":a.push({...c,columns:c.columns.map(l=>({...l,label:u(l.label)})),rows:c.rows.map(l=>l.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":a.push({...c,items:c.items.map(l=>({...l,value:u(l.value),label:u(l.label)}))});break;case"letterhead":a.push({...c,fields:c.fields.map(l=>({...l,value:u(l.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":a.push({...c,rows:c.rows.map(l=>({...l,label:u(l.label),amount:u(l.amount)})),...c.taxRows?{taxRows:c.taxRows.map(l=>({...l,label:u(l.label),amount:u(l.amount)}))}:{}});break;case"image":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 Bo(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 Ll(e){return Bo({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 Fo(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 $l(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Kl(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 Fo(e,t,s,o)}const yt=864e5,Fe=e=>Date.parse([e,"T00:00:00Z"].join("")),Ul=e=>new Date(e).toISOString().slice(0,10);function jo(e,t){const n=Fe(t.from),r=Fe(t.to)+yt;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))/yt);o.push({month:Ul(i),share:c/Math.round((u-i)/yt)}),a=new Date(u)}const s=fe(e,o.map(a=>a.share));return o.map((a,i)=>({month:a.month,cents:s[i]}))}function Go(e){const t=new Date(Fe(e.from)),n=new Date(Fe(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const dn=864e5,nt=e=>new Date(e).toISOString().slice(0,10),je=e=>Date.parse(`${e}T00:00:00Z`);function re(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)),nt(s.getTime())}function fn(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:re(e.firstDueOn,i-1),interestCents:u,principalCents:c,remainingCents:a})}return s}function Bl(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,d)=>c.date.localeCompare(d.date));let a=s.filter(c=>c.date<t).reduce((c,d)=>c+d.cents,0),i=s.findIndex(c=>c.date>=t);i<0&&(i=s.length);let u=0;for(let c=je(t);c<=je(n);c+=dn){const d=nt(c);for(;i<s.length&&(s[i]?.date??"")<=d;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function Fl(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 d=re(u,r);i.push({sequence:c,from:u<e?e:u,to:nt(je(d)-dn)}),u=d}return i}const Wo=5e7,jl=["director","group_company","participation","other_company"],Gl=e=>e?.relation&&jl.includes(e.relation)?e.relation:"director";function Wl(e,t=Wo){return{over:e>t,ratio:Math.max(0,e)/t}}function Vl(e,t){const r=e.terms.kind==="loan_received"?1:-1;return fn(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 Vo(e){return nt(je(re(`${e.slice(0,7)}-01`,1))-dn)}function pn(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 Ho(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:Vo(re(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 sr=600;function qo(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 pn(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<sr;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===sr-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function Hl(e,t){const n=e.terms;if(n.disposal)return[];const r=qo(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return Ho(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 ql(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 Yl(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return Ho(e.id,n.period?jo(n.totalCents,n.period).map(o=>o.cents):pn(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 zl(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Xl(e,t){const n=re(t,12);return fn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Ql(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*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 d=u.reduce((l,f)=>l+f.amountCents,0);return d&&u.push({accountId:t.disposalAccountId,amountCents:-d,description:c}),{lines:u,costCents:s,residualCents:a}}const Yo={NL:45e3},Zl=(e,t)=>t??Yo[(e??"NL").toUpperCase()],Jl=[{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"}],zo=36e5,Xo=864e5,H=-1/0,ed=e=>e.score>H,ue={urgent:40,high:25,normal:10,low:0};function td(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const nd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Qo=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Zo(e,t){return!!(e&&nd.test(e)||t&&Qo.test(t))}const Jo=3,es=600;function rd(e,t){return e>=Jo||t>=es}const ts=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function od(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&ts.includes(r)&&(t[r]=n.value)}return t}const sd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,id=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function ad(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&sd.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&&Qo.test(e.body)||n&&id.test(n))return"marketing"}function ns(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const rs=["open"],os=1e3,ss=72;function is(e){return e.lastActivityAt??(e.createdAt?new Date(Fr(e)).getTime():0)}function as(e,t){return cs(t.remindersById?.[e.id],e,t.now)}function cs(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const us=e=>$r(e)==="outbound_message",ls=e=>rs.includes(e);function rt(e,t){return Math.max(0,(t-is(e))/zo)}function ds(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function cd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function ud(e,t,n){if(!ls(e.status)||e.firstResponseAt)return!1;const r=ds(e,n);return r!==void 0&&rt(e,t)>r}function fs(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!us(n.type)?!1:rt(e,t)<ss}function ld(e,t){if(!ls(e.status))return{score:H,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:H,reasons:[]};if(fs(e,t.now))return{score:H,reasons:[]};if(as(e,t))return{score:H,reasons:[]};let n=0;const r=[],o=e.priority??"normal";ue[o]>0&&(n+=ue[o],r.push(`priority:${o}`)),ns(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=rt(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"&&us(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")||Zo(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=os,r.push("bulk")),{score:n,reasons:r}}const dd=e=>!!e.assignedUserId||!!e.assignedInboxId,fd=e=>e.status==="closed",pd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,md=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,ps=[{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}],hd=["duplicate","spam"],gd="c_";function yd(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...ps,...t]}function bd(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function _d(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 Ed="article",Ge=[{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 ms(e){const t=(e??"").toLowerCase();return Ge.find(n=>n.code===t)??Ge.find(n=>n.code===t.split("-")[0])}function Id(e){return ms(e)?.label??e}function Sd(e){const t=ms(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const mn=3;function hs(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>mn+1))return 1/0;o=t.get(o)?.parentId}return r}function Ad(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&&gs(e,t,r))return!1;const o=hs(e,r),s=t?hn(t,n):1;return o+s<=mn}function gs(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 hn(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=>hn(o.id,t,n))):1}const ys="en";function bs(e){return e.defaultLocale||e.locale||ys}function Td(e){const t=new Set,n=[];for(const r of[bs(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Cd(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 vd(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 d=o.length;const l=c?o.findIndex(f=>n(f)===n(c)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(c?.level??0);)d+=1;o.splice(d,0,{...i,amountCents:0,priorCents:i.amountCents}),s.add(n(i))}),o}function Od(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 kd=["revenue","expense"],me=e=>kd.includes(e.type),Md=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function _s(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=Md(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=l=>u==="debit"?t(l):-t(l),d=[...i.values()].flat().reduce((l,f)=>l+c(f),0);s.push({key:a,label:r(a),level:0,side:u,amountCents:d});for(const[l,f]of i){s.push({key:l,label:r(l),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 Rd(e,t,n,r=o=>o){const o=e.filter(me),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},a=_s(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 Nd(e,t,n,r,o=s=>s){const s=e.filter(d=>!me(d)),i=_s(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){i.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=i.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:i.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=i.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),c=i.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:i,totals:{debitCents:u,creditCents:c},source:"finance"}}function Dd(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=me(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 xd(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 wd(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||!me(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}:{}}),Es={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"}]},Pd=[Es],Is={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function Ld(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 $d(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Kd=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function Ud(e){const t={};for(const n of Kd)e[n]!==void 0&&(t[n]=e[n]);return t}function $t(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map($t).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)+":"+$t(r)).join(",")+"}"}function Bd(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Ss(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 Fd(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 jd(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&Go(t.period)>1?[{index:n,period:t.period}]:[])}function Gd(e,t){const n=e.kind==="journal"?Hd(e,t):Vd(e,t);return n.ok?Wd(n,e,t.functionalCurrency??"EUR"):n}function Wd(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 Vd(e,t){const n=b=>t.accounts.find(y=>y.role===b&&!y.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,d=[],l=new Map;for(const b of e.lines){const y=b.accountKey??Ss(b,t.rules,e)?.accountId??s?.id;if(!y)return{ok:!1,problem:"no_account_for_line"};d.push({...u,accountId:y,amountCents:i*b.netCents,functionalCents:i*b.netCents,taxCode:b.taxRateKey,taxCents:i*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...Fd(b.dimensions)}),b.taxCents&&l.set(b.taxRateKey,(l.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,y]of l){const _=t.taxAccounts.find(g=>g.taxKey===b),h=(r?_?.payableAccountId:_?.receivableAccountId)??a?.id;if(!h)return{ok:!1,problem:"no_vat_account"};d.push({...u,accountId:h,amountCents:i*y,functionalCents:i*y,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,y)=>b+y.netCents+y.taxCents,0);d.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:d,description:m||e.documentId}}function Hd(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??Ss(o,t.rules,e)?.accountId??n(Is[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 bt=e=>String(e).padStart(2,"0"),qd=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function Yd(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}-${bt(i)}-01`,to:`${a}-${bt(i)}-${bt(qd(a,i))}`,status:"open"}})}function zd(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const As="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Xd={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ts=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),gn=(e,t)=>e.length>t?e.slice(0,t):e,S=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ts(gn(String(t),n))+"</"+e+">",W=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},_t=e=>e<0?"C":"D",ir=e=>gn(e.replace(/-/g,""),35);function Qd(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="',As,'">',"<header>",S("fiscalYear",e.fiscalYear.replace("/","-")),S("startDate",e.startDate),S("endDate",e.endDate),S("curCode",e.currency),S("dateCreated",e.createdOn),S("softwareDesc",e.software.desc,50),S("softwareVersion",e.software.version,20),S("RGSVersion",e.rgsVersion,20),"</header>","<company>",S("Commercenr",e.company.commerceNr,100),S("companyName",e.company.name,255),S("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ts(gn(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",S("streetname",s.street,100),S("number",s.number,15),S("city",s.city,50),S("postalCode",s.postalCode,10),S("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",S("custSupID",ir(c.id)),S("custSupName",c.name,50),S("commerceNr",c.commerceNr,100),S("taxRegistrationCountry",c.country),S("taxRegIdent",c.vatNumber,30),S("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((d,l)=>d.code.localeCompare(l.code))){const d=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",S("accID",c.code,35),S("accDesc",c.name,255),S("accTp",d?"P":"B"),S("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",S("vatID",c.key,35),S("vatDesc",c.label,100),S("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),S("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((d,l)=>d.index-l.index))o("<period>",S("periodNumber",c.index),S("startDatePeriod",c.from),S("endDatePeriod",c.to),"</period>");o("</periods>");const a=e.opening.filter(c=>c.cents!==0);if(a.length){const c=a.filter(l=>l.cents>0).reduce((l,f)=>l+f.cents,0),d=-a.filter(l=>l.cents<0).reduce((l,f)=>l+f.cents,0);o("<openingBalance>",S("linesCount",a.length),S("totalDebit",W(c)),S("totalCredit",W(d))),a.forEach((l,f)=>{o("<obLine>",S("nr",f+1),S("accID",t.get(l.accountId)??l.accountId),S("amnt",W(l.cents)),S("amntTp",_t(l.cents)),"</obLine>")}),o("</openingBalance>")}const i=e.entries.flatMap(c=>c.lines);o("<transactions>",S("linesCount",i.length),S("totalDebit",W(i.filter(c=>c.functionalCents>0).reduce((c,d)=>c+d.functionalCents,0))),S("totalCredit",W(-i.filter(c=>c.functionalCents<0).reduce((c,d)=>c+d.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const d=u.get(c.id);if(d?.length){o("<journal>",S("jrnID",c.code,35),S("desc",c.name),S("jrnTp",Xd[c.kind]));for(const l of[...d].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",S("nr",l.number,35),S("desc",l.description),S("periodNumber",n.get(l.periodId)??0),S("trDt",l.date),S("Source",l.source.app+(l.source.kind?" "+l.source.kind:""),999),S("User",l.postedBy,999)),l.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,l.date),y=f.currency&&f.currency!==e.currency;o("<trLine>",S("nr",m+1),S("accID",t.get(f.accountId)??f.accountId,35),S("docRef",l.source.number??l.number,255),S("effDate",f.taxPointDate??l.date),S("desc",f.description),S("amnt",W(f.functionalCents)),S("amntTp",_t(f.functionalCents)),S("custSupID",f.counterpartyCompanyId&&ir(f.counterpartyCompanyId)),S("invRef",l.source.number,255),S("cost",f.costCenter,999),S("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+S("vatID",f.taxCode,35)+S("vatPerc",b)+S("vatAmnt",W(f.taxCents))+S("vatAmntTp",_t(f.taxCents))+"</vat>":"",y?"<currency>"+S("curCode",f.currency)+S("curAmnt",W(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
-
`)}const Zd=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Jd(e){const t=B(e,"ledgerAccount").map(i=>{const u=C(i,"RGScode")??C(i,"leadCode");return{code:C(i,"accID")??"",name:C(i,"accDesc")??"",kind:C(i,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=i=>{const u=C(i,"accID");u&&(n[u]=(n[u]??0)+Zd(C(i,"amnt"),C(i,"amntTp")))};for(const i of B(e,"obLine"))r(i);for(const i of B(e,"trLine"))r(i);const o=B(e,"header")[0]??"",s=C(o,"fiscalYear"),a=C(o,"endDate");return{accounts:t.filter(i=>i.code),closing:n,...s?{fiscalYear:s}:{},...a?{endDate:a}:{}}}function ef(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 Kt=["lookup","condition","parallel","for-each"];function Ae(e){for(const t of e){if(!Kt.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${Kt.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Ae(n);if(r)return r}if(t.type==="for-each"){const n=Ae(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Ae(t.else??[]);if(n)return n}}return null}function tf(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 nf(e,t){return e.filter(n=>n.enabled&&tf(n.ownerScope,t))}function rf(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function of(e){return`mcp__${e}__`}const sf=1e3,af=2e3,cf=500,uf=12e3,lf=4e3,Cs=["contact","company","work_item"];function df(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return Cs.includes(t)}const ff=[{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 vs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const pf=[{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 yn(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function mf(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:yn(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function V(e){return new Date(e).toISOString().slice(0,10)}const ar=/^\d{4}-\d{2}-\d{2}$/;function hf(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(!ar.test(r.validFrom)||r.validTo&&!ar.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 ot(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=D(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?Ze(n,e.pricePer,e.servicePeriod):n}function gf(e,t,n){const r=e.map(c=>({...c,netCents:ot(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const d=n??r[c].taxRateKey,l=o.get(d);l?l.push(c):o.set(d,[c])}const s=[];let a=0,i=0;for(const[c,d]of o){const l=vs(c,t),f=d.reduce((y,_)=>y+r[_].netCents,0),m=D(f*l.percent/100),b=fe(m,d.map(y=>r[y].netCents));for(let y=0;y<d.length;y++)r[d[y]].taxCents=b[y];s.push({taxRateKey:c,percent:l.percent,kind:l.kind,netCents:f,taxCents:m}),a+=f,i+=m}const u=r.reduce((c,d)=>d.costPriceCents==null||d.optional?c:c+D(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const yf="onboarding-source",bf=["support","billing","availability","sales","onboarding"],_f=["keep","replace"],st=[{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"}],Os={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function j(e,t=st){return t.find(n=>n.key===e)??{...Os,key:e}}function ne(e){return e==="published"||e==="approved"}function bn(e,t,n=st){if(e.workstreamId!==t)return!1;const r=j(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Ef(e,t=st){if(!e.userId||!ne(e.status))return!1;const n=j(e.kindKey,t);return n.capacity||n.productive||n.absent}const If=864e5;function ks(e,t){return Math.round((t-e)/If)}function _n(e,t){const n=e.cycleMinutes.length;return n===0?0:(ks(e.anchor,t)%n+n)%n}function En(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[_n(e,t)]??0}function In(e,t){return e.startTimes?.[_n(e,t)]}function Sn(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 Ms(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 Ut=864e5;function Sf(e){const t=Math.max(1,Math.round((e.to-e.from)/Ut));return Array.from({length:t},(n,r)=>e.from+r*Ut)}function Bt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const cr={interval:0,day:1,week:2};function Af(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&ne(l.status)&&j(l.kindKey).capacity),a=n.filter(l=>l.userId&&ne(l.status)&&j(l.kindKey).absent),i=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),u={};let c="interval";const d=l=>{cr[l]>cr[c]&&(c=l)};for(const l of i){const f=t.teamIdsOf?.(l)??[];let m=0,b=0,y=0;for(const g of Sf(e)){const p=Math.max(g,e.from),E=Math.min(g+Ut,e.to);y++;const T=s.filter(N=>N.userId===l).reduce((N,K)=>N+Bt(K.start,K.end,p,E),0);if(T>0){m+=T;continue}const A=Sn(r,l,f,g),M=A?En(A,g):0;if(A&&M>0){m+=M*60,d(In(A,g)?"interval":"day");continue}A||b++}if(b>0){const g=Ms(o,l,e.from);g&&(m+=g.weeklyMinutes*60*(b/7),d("week"))}const _=a.filter(g=>g.userId===l).reduce((g,p)=>g+Bt(p.start,p.end,e.from,e.to),0),h=Math.max(0,m-_);(h>0||y>0)&&(u[l]=h)}return{seconds:Object.values(u).reduce((l,f)=>l+f,0),precision:c,byUser:u}}function Tf(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 Cf(e,t,n,r){const o=e.filter(a=>a.userId&&ne(a.status)&&!j(a.kindKey).absent),s=Object.entries(r.byUser).map(([a,i])=>{let u=0,c=0;for(const d of o){if(d.userId!==a||j(d.kindKey).capacity&&!d.workstreamId)continue;const l=Bt(d.start,d.end,n.from,n.to);l<=0||(bn(d,t)?u+=l:c+=l)}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 vf="demand-source",ur=1e3;function Of(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function Rs(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=Of(e,t),r=t/e;return n/(1-r*(1-n))}function Ns(e,t,n,r){return r<=0?1:e<=t?0:1-Rs(e,t)*Math.exp(-(e-t)*n/r)}function Ds(e,t,n){return n<=0?0:e*t/n}function xs(e,t,n,r){if(e<=0||t<=0)return 0;const o=Ds(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<=ur;i++)if(!(i<=o)&&!(Ns(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return ur}const kf=36e5,Mf=864e5;function Rf(e){return e==="day"?Mf:kf}function Nf(e,t){return e.start<t.end&&t.start<e.end}function Te(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function ws(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=xs(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function Df(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=Rf(a),u=i/1e3,c=e.kinds,d=t.filter(y=>ne(y.status)),l=d.filter(y=>bn(y,n,c)),f=d.filter(y=>j(y.kindKey,c).capacity),m=d.filter(y=>j(y.kindKey,c).absent),b=[];for(let y=te(s.from,a);y<s.to;y+=i){const _=y+i,h=ee(y,a);let g=0;for(const N of l)g+=Te(N,y,_);let p=0;for(const N of f)p+=Te(N,y,_);let E=0;for(const N of m)E+=Te(N,y,_);const T=o?.[h]??{},A=ws(T,r,u),M=g/u;b.push({period:h,forecastVolume:T.volume,requiredSeconds:A.seconds,requiredHeadcount:A.headcount,scheduledSeconds:g,scheduledHeadcount:M,netHeadcount:M-A.headcount,capacitySeconds:p,absentSeconds:E})}return b}function Ps(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function xf(e,t,n){const r=Ps(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function wf(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Pf=36e5,Ft=6048e5,Ls=8,Lf=.5,$f=2;function Kf(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 Uf(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*Ft,i=a-Ft;let u=0,c=!1;for(const[d,l]of e)d>=i&&d<a&&(u+=l,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($f,Math.max(Lf,r[0]/o))}function Bf(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Ff(e,t,n){const r=Math.max(1,n?.weeks??Ls),o=new Map,s=new Set;for(const u of e)o.set(Kf(u.period),u.value),s.add(u.period.slice(0,10));const a=Uf(o,te(t.from,"hour"),r),i=[];for(let u=te(t.from,"hour");u<t.to;u+=Pf){let c=0,d=0;for(let m=1;m<=r;m++){const b=u-m*Ft,_=o.get(b)??(s.has(ee(b,"day"))?0:void 0);if(_===void 0)continue;const h=r-m+1;c+=_*h,d+=h}let l=d>0?c/d*a:0;const f=Bf(n?.adjustments,u);f?.absoluteVolume!==void 0?l=f.absoluteVolume:f?.factor!==void 0&&(l*=f.factor),i.push({period:ee(u,"hour"),volume:l})}return i}const $s="schedule_entry",Ks="workstream";function jf(e){return`${$s}:${e}`}function Gf(e){return`${Ks}:${e}`}const jt=36e5,J=864e5;function Wf(e,t){const n=t==="day"?J:jt,r=[];for(let o=te(e.from,t);o<e.to;o+=n)r.push(o);return r}function lr(e){const t=Math.max(1,Math.round((e.to-e.from)/J));return Array.from({length:t},(n,r)=>e.from+r*J)}function Et(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Vf(e,t,n={}){const r=n.grain??"hour",o=Wf(t,r),s=r==="day"?J:jt,a=new Map(o.map(l=>[l,0])),i=e.filter(l=>l.userId&&j(l.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const l of i)if(!(u&&l.userId&&!u.has(l.userId))){for(const f of o){const m=Et(l.start,l.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of lr(t))Et(l.start,l.end,f,f+J)>0&&c.add(`${l.userId}:${f}`)}const d=n.userIds??[...new Set([...i.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const f=n.teamIdsOf?.(l)??[];for(const m of lr(t)){if(c.has(`${l}:${m}`))continue;const b=Sn(n.patterns,l,f,m);if(!b)continue;const y=En(b,m);if(y<=0)continue;const _=In(b,m);if(_){const[p,E]=_.split(":").map(Number),T=m+p*jt+(E??0)*6e4,A=T+y*6e4;for(const M of o){const N=Et(T,A,M,M+s);N>0&&a.set(M,(a.get(M)??0)+N)}continue}const h=o.filter(p=>p>=m&&p<m+J);if(!h.length)continue;const g=y*60/h.length;for(const p of h)a.set(p,(a.get(p)??0)+g)}}return o.map(l=>({period:ee(l,r),weight:a.get(l)??0}))}function Us(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 Hf(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 Us(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 Bs(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function qf(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 Fs(e){return Bs(e)}function js(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 Yf(e){return e.agentId?{kind:"user",userId:e.agentId}:js(e.ownerScope)}function zf(e){return Fs(e)}const Gs="playbook-run",Xf="run";function Qf(e,t=0){return`${Gs}:${e}~${t}`}function Zf(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function Ws(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 Jf(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function ep(e,t){if(t)return e.targets.find(n=>n.id===t)}function Vs(e){return e?.kind==="assignment"}function tp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return Vs(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 Gt=["suggest","outward","auto"];function np(e){return typeof e=="string"&&Gt.includes(e)}function rp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function op(e,t){const n=e??"suggest";return t&&Gt.indexOf(t)<Gt.indexOf(n)?t:n}function sp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function Hs(e){const t=e.split("__");return t[t.length-1]||e}function ip(e){const t=Hs(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const ap=[{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 cp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const up={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 An(e){return`${e.type}:${e.id}`}function lp(e){return[An(e),e.lineId].join("#")}function dp(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 fp(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 qs="interaction";function Ys(e){return e?.type===qs?e.id:void 0}const zs=64,Xs=8e3;function pp(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),zs),Xs)}const mp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],hp={kind:"workflow",steps:[]};function gp(e){return e?.kind==="workflow"?e.steps:[]}function yp(e){return e?.kind==="procedure"?e.procedure:void 0}function bp(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Qs(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Zs=10,Js=.9;function _p(e){const{total:t,rate:n}=Qs(e);return t>=Zs&&n>=Js}const ei=["done","escalated","failed","stopped"];function Ep(e){return ei.includes(e)}function ti(e){return e==="waiting"}function Ip(e){return e==="running"||ti(e)}function Tn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Sp(e){const t=Tn(e);return t?An(t):void 0}function Ap(e){return Ys(Tn(e))}const It=864e5;function Tp(e,t){return e.lines.flatMap(n=>{const r=Je(P(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=ot({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 ni(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 dr=e=>e.seriesId??e.id;function Cp(e,t,n){return t.find(r=>{const o=P(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function vp(e,t,n,r={}){const o=(r.noticeDays??30)*It,s=(r.windowDays??7)*It,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(dr(c),[...u.get(dr(c))??[],c]);for(const c of u.values()){const d=Cp(i,c,n),l=P(i,d);if(l.to!=null&&l.to<=n)continue;const f={contractId:i.id,lineId:d.id},m=d.commitment??i.commitment,b=en(i,c),y=l.to??ce(b,m,n);if(d.customerCompanyId){const g=d.salesLine?t.find(p=>p.agreementId===d.salesLine?.agreementId&&p.seriesId===d.salesLine?.seriesId):void 0;g?g.ended?a.push({kind:"not_covered",...f,reason:"sales_ended"}):(d.quantity.from==="fixed"&&g.quantity!=null&&g.quantity!==d.quantity.value&&a.push({kind:"not_covered",...f,reason:"quantity"}),g.unbilled.length&&a.push({kind:"not_billed",...f,windows:g.unbilled}),y>g.effectiveEndAt&&a.push({kind:"term_mismatch",...f,purchaseEnd:y,salesEnd:g.effectiveEndAt})):a.push({kind:"not_covered",...f,reason:"no_sales_line"})}const _=!!m&&m.termMonths>=3&&(m.renew==="term"||n<ce(b,{...m,renew:"none"},b)),h=l.to==null&&_?nn(b,m,n):null;if(h!=null&&h-n<=o&&a.push({kind:"notice_due",...f,deadline:h}),m&&m.termMonths>=1&&d.changeWindowDays){const g=tn(b,m,n)+d.changeWindowDays*It;g>n&&g-n<=s&&a.push({kind:"change_window",...f,closesAt:g})}if(d.expected==="variable"&&d.invoiced&&d.invoiced.length>=2){const g=[...d.invoiced].sort((E,T)=>E.from-T.from),p=g[g.length-1];ni(g.slice(0,-1).map(E=>E.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function ri(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 Op(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=ri(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!==o.quantity&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function kp(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 si(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function ii(e,t){const n=e.filter(r=>si(r,t));return n.find(r=>r.isDefault)??n[0]??null}function ai(e,t){return t*(e.unitsPerPurchaseUnit&&e.unitsPerPurchaseUnit>0?e.unitsPerPurchaseUnit:1)}function ci(e){return{cents:D(e.costCents/ai(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function Mp(e){const t=ci(e);return t.per?Ze(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const Rp=864e5,Wt=e=>e.seriesId??e.id;function fr(e,t,n){return t.find(r=>{const o=P(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>P(e,r).from>n).sort((r,o)=>P(e,r).from-P(e,o).from)[0]??t[t.length-1]}function pr(e){const t=new Map;for(const n of e)t.set(Wt(n),[...t.get(Wt(n))??[],n]);return t}function Np(e){const{now:t}=e,n=[],r=(i,u)=>{const c=P(i,u);return i.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(i=>[...pr(i.lines).values()].map(u=>({contract:i,line:fr(i,u,t),start:en(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of pr(i.lines).values()){const c=fr(i,u,t);if(c.quantity.from!=="fixed")continue;const d=ii(e.offers.filter(A=>A.productId===c.productId),t);if(!d)continue;const l=Wt(c),f=["demand:",i.id,"#",l].join("");if(e.open.has(f))continue;const m=o.find(A=>A.line.salesLine?.agreementId===i.id&&A.line.salesLine.seriesId===l&&r(A.contract,A.line)),b=P(i,c),y={key:f,level:"item",supplierCompanyId:d.supplierCompanyId,offerId:d.id,productId:c.productId,name:c.name,customerCompanyId:i.companyId,salesLine:{agreementId:i.id,seriesId:l}};if(b.to!=null){if(!m)continue;const A=m.line.commitment??m.contract.commitment,M=ce(m.start,A,t),N=A&&A.termMonths>=1?Y(m.start,A,t):M,K=nn(m.start,A,t);n.push({...y,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:M,...K!=null?{deadline:K}:{},...M>N?{nextTerm:!0}:{},...M>b.to?{runsOnUntil:M}:{}});continue}const _=c.quantity.value;if(!m){n.push({...y,action:"purchase",quantity:_});continue}const h=m.line.quantity.from==="fixed"?m.line.quantity.value:_;if(h===_)continue;const g={contractId:m.contract.id,lineId:m.line.id};if(_>h){n.push({...y,action:"change",quantity:_-h,targetQuantity:_,from:h,contractLine:g});continue}const p=m.line.commitment??m.contract.commitment,E=m.line.changeWindowDays??0,T=!p||p.termMonths<1||E>0&&t<tn(m.start,p,t)+E*Rp;n.push({...y,action:"change",quantity:h-_,targetQuantity:_,from:h,contractLine:g,...T?{}:{atRenewal:!0,effectiveAt:Y(m.start,p,t)}})}const s=[],a=(i,u,c)=>{const d=e.provisionable.get([u.app,u.offer].join(":"));if(i.action!=="purchase"||!d?.requires)return;const l=e.offers.find(b=>(!c||b.supplierCompanyId===i.supplierCompanyId)&&b.provider?.app===u.app&&b.provider?.offer===d.requires),f=o.some(b=>b.line.offerId===l?.id&&b.line.customerCompanyId===i.customerCompanyId&&r(b.contract,b.line));if(!l||f)return;const m=["account:",i.customerCompanyId,":",l.id].join("");return!e.open.has(m)&&!s.some(b=>b.key===m)&&s.unshift({key:m,action:"purchase",level:"account",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:l.productId,name:d.requires,quantity:1,customerCompanyId:i.customerCompanyId}),m};for(const i of n){const u=e.offers.find(d=>d.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 ui=[{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:[]}],Dp="purchase_order",w=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function li(e){const t=[];for(const n of e){const r=w(n.sku)||w(n.description),o=t.find(s=>(w(s.sku)||w(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function xp(e,t){const n=w(e.orderRef),r=w(e.supplierRef);return n&&t.find(o=>w(o.number)===n)||n&&t.find(o=>w(o.reference)===n)||r&&t.find(o=>w(o.reference)===r)||null}const _e={reference:0,sku:1,description:2,loose:3};function Cn(e,t,n){const r=w(e.externalRef);if(r&&w(t.externalRef)===r)return{via:"reference",rank:_e.reference};if(r&&t.externalRef)return null;const o=w(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>w(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:_e.sku};const s=w(e.description),a=w(t.name);return!s||!a?null:s===a?{via:"description",rank:_e.description}:a.includes(s)||s.includes(a)?{via:"description",rank:_e.loose}:null}function di(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 d of r){if(o.has(d.id))continue;const l=Cn(i,d,n);l&&(!c||l.rank<c.rank)&&(c={line:d,...l})}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 wp(e,t,n,r){const o=li(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=di(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(d=>d.poLineId===c.poLineId)?.docIndex})),...a.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:i,problems:u}}function Pp(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 Lp=864e5,mr=e=>Date.parse([e,"T00:00:00Z"].join(""));function $p(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,E)=>({candidate:p,order:E,hit:Cn(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&i.has(p.candidate.id))).sort((p,E)=>p.hit.rank-E.hit.rank||p.order-E.order);if(!c.length){a.push(u.id);continue}const d=u.period?{from:mr(u.period.from),to:mr(u.period.to)+Lp}:r,l=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,E,T)=>p.variable?null:ot({kind:"product",quantity:E,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 E=u.quantity??p.openQty??1;s.push({...l(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:d},via:m.hit.via,quantity:E,amountCents:u.netCents,expectedCents:f(p,E,d),overQuantity:p.openQty!=null&&E!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),y=u.quantity??Math.max(1,o.get(m.candidate.id)??1),_=[];let h=y;for(const{candidate:p}of b){if(h<=0)break;const E=Math.max(0,o.get(p.id)??0);if(!E)continue;const T=Math.min(E,h);_.push({candidate:p,quantity:T,over:!1}),o.set(p.id,E-T),h-=T}if(h>0){const p=_[_.length-1];p?(p.quantity+=h,p.over=!0):_.push({candidate:m.candidate,quantity:h,over:!0})}const g=fe(u.netCents,_.map(p=>p.quantity));_.forEach((p,E)=>{s.push({...l(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:g[E],expectedCents:f(p.candidate,p.quantity,u.period?d:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:a}}const fi={percent:1,cents:100};function Kp(e,t,n=fi){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(d=>d.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),a.some(d=>d.expectedCents===null))continue;const i=a.reduce((d,l)=>d+(l.expectedCents??0),0),u=a.reduce((d,l)=>d+l.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 Up(e){const t=[],n=new Map;for(const r of[...e].sort(Bp)){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 Bp=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Fp(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const pi=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function jp(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,E)=>{if(!e.trace||!p||!E.ref)return;const T=s[p]??[];T.includes(E.ref)||(s[p]=[...T,E.ref])};let i;const u=(p,E,T)=>{if(!p||!T)return;const A=o[p]??{};A[E]=(A[E]??0)+T,o[p]=A,i&&a(p,i)},c=new Map,d=new Set;let l=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const E=n.get(p.taxCode);if(!E){d.add(p.taxCode);continue}const T=E.boxes[t]?.[p.side];if(i=p,p.side==="sales")u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",p.taxCents),E.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(E.selfAssessed){const A=r?yn(r,p.taxPointDate)??0:0,M=Math.round(p.baseCents*A/100);u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",M),l+=M,M&&a("5b",p)}else{const A=Math.round(p.taxCents*(E.deductiblePercent??100)/100);l+=A,A&&a("5b",p)}}const f=pi.filter(p=>p<"5"),m=f.reduce((p,E)=>p+(o[E]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:l},o["5c"]={taxCents:m-l},o["5g"]={taxCents:m-l};const b=p=>Math.trunc(p/100),y=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),_={};for(const p of f){const E=o[p];E&&(_[p]={...E.baseCents!==void 0?{base:b(E.baseCents)}:{},...E.taxCents!==void 0?{tax:b(E.taxCents)}:{}})}const h=f.reduce((p,E)=>p+(_[E]?.tax??0),0),g=y(l);return _["5a"]={tax:h},_["5b"]={tax:g},_["5c"]={tax:h-g},_["5g"]={tax:h-g},{boxes:o,euros:_,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,E])=>({...p?{counterpartyCompanyId:p}:{},baseCents:E})),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function Gp(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,d=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(d)}-${r(o(c,d))}`}})}class vn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Wp=/^\{\{\s*([\w.]+)\s*\}\}$/,Vp=/\{\{\s*([\w.]+)\s*\}\}/g,Hp=/\$[A-Za-z_][\w]*\.[\w.]+/;function qp(e,t,n={}){return We(e,t,n)}function We(e,t,n={}){return typeof e=="string"?Yp(e,t,n):Array.isArray(e)?e.map(r=>We(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,We(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Yp(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(Hp);if(s)throw new vn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Wp);if(o){const s=hr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Vp,(s,a)=>{const i=hr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function hr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new vn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return zp(e,t)}function zp(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Xp=new Set(["filled","empty"]);function Qp(){return{kind:"rule",op:"==",varPath:"",value:""}}const Zp=new Set(["==","!=",">","<",">=","<="]);function St(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function gr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function mi(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=Vt(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function Vt(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=Vt(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(St(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=Vt(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!St(s)||!gr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Zp.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!St(o)||!gr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function Ce(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?Ce(e.children[0]):{[e.op]:e.children.map(Ce)}:e.kind==="not"?{"!":Ce(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 Jp(e){const t=mi(e);return t&&Ht(t)||null}function Ht(e){if(e.kind==="group"){const t=e.children.map(Ht).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${Ht(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const At=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function em(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[d,l]=s.split("-");if(u=Number(d),c=l===void 0?u:Number(l),!Number.isInteger(u)||!Number.isInteger(c)||(l===void 0&&a!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let d=u;d<=c;d+=i)r.add(d)}return r.size?r:null}function On(e){const t=e.trim().split(/\s+/);if(t.length!==At.length)return null;const n=[];for(let u=0;u<At.length;u++){const c=At[u],d=t[u];if(!c||d===void 0)return null;const l=em(d,c.min,c.max);if(!l)return null;n.push(l)}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 tm(e){return On(e)!==null}function hi(e,t){const n=On(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 gi="@schedule",qt=3;function yi(e,t,n){const r=[],o=e.depth??0;if(o>=qt)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${qt})`}))};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!==gi){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(!hi(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 nm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function rm(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=yi(n,r,t),a=o.flatMap(c=>c.rule.then.map(d=>d.action)),i=e.expected?.actions??[];if(a.length===i.length&&a.every((c,d)=>c===i[d]))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 om(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function bi(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==om(e,n))}function sm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>bi(r,t).length)?"corrected":"kept"}function im(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function am(e){return`subject.${e.path}`}function cm(e,t){return e.events.find(n=>n.name===t)}function um(e,t){return e.filter(n=>Ws(t,n.path)===void 0).map(n=>n.path)}const Yt=6e4,lm=36e5,le=864e5,_i=800;function yr(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*le+lm}function dm(e){const t=new Date(e).getUTCFullYear();return e>=yr(t,2)&&e<yr(t,9)}function Ei(e,t){const n=t.dst==="eu"&&dm(e)?60:0;return(t.utcOffsetMinutes+n)*Yt}function fm(e){return(e+3)%7+1}function Ii(e,t){const n=Ei(e,t),r=e+n,o=Math.floor(r/le);if(!t.days.includes(fm(o)))return null;const s=o*le;return{open:s+t.fromMinutes*Yt-n,close:s+t.toMinutes*Yt-n}}function Si(e,t){const n=Ei(e,t),r=e+n;return(Math.floor(r/le)+1)*le-n}function Ve(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<_i&&o<t;s++){const a=Ii(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Si(o,n)}return r}function it(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<_i;s++){const a=Ii(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=Si(o,n)}return e+t}function pm(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const He=1,qe=2,Ye=4;function mm(e){return e==="snoozed"?He:qe}function at(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const hm=["speed_of_answer","first_response","next_response","resolution","close"],gm=["snoozed","waiting_for_customer"],ym=6e4,Ai=["speed_of_answer","first_response","next_response"],bm=[...Ai,"resolution","close"];function he(e){return e.state==="running"||e.state==="paused"}function _m(e,t){return he(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function br(e){return he(e)?{state:"void"}:null}function Em(e,t,n,r){if(!he(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:Ve(n,e.dueAt,r)}}function Im(e,t,n,r){if(!he(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:it(n,e.remainingMs,r)}}function Sm({event:e,at:t,now:n,clocks:r,profile:o}){const s=at(o),a=Math.min(t,n),i=r.map(h=>({...h})),u=[],c=(h,g)=>{g&&(u.push({op:"patch",clockId:h.id,patch:g}),Object.assign(h,g))},d=h=>{for(const g of i)g.metric===h&&c(g,_m(g,a))},l=h=>{for(const g of i)h.includes(g.metric)&&c(g,br(g))},f=h=>{for(const g of i)c(g,Em(g,h,a,s))},m=h=>{for(const g of i)c(g,Im(g,h,a,s))},b=h=>i.reduce((g,p)=>p.metric===h?Math.max(g,p.attempt):g,0)+1,y=h=>i.some(g=>g.metric===h&&he(g)),_=(h,g)=>{const p=o.targets.find(T=>T.metric===h);if(!p)return;const E=p.minutes*ym;u.push({op:"start",metric:h,attempt:b(h),startedAt:g,targetMs:E,dueAt:it(g,E,s)})};switch(e){case"apply":{for(const h of i)h.profileId!==o.id&&c(h,br(h));for(const h of o.targets){if(h.metric==="next_response")continue;i.some(p=>p.metric===h.metric&&p.profileId===o.id)||_(h.metric,a)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(qe);break}case"inbound":{m(qe),!y("first_response")&&!y("next_response")&&_("next_response",a);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Ai);break;case"reopened":y("resolution")||_("resolution",a),y("close")||_("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(He);break;case"unsnoozed":m(He);break;case"hold":f(Ye);break;case"unhold":m(Ye);break;case"discarded":l(bm);break}return u}function Ti(e){return e.state==="running"||e.state==="paused"}function Am(e){return(e.pauseBits&Ye)!==0}function ze(e,t){const n=at(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-Ve(e.dueAt,t,n):Ve(t,e.dueAt,n)}function Tm(e,t){return e.state==="paused"?it(t,e.remainingMs,at(e)):e.dueAt}function Cm(e,t){const n=e.filter(Ti);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>ze(a,t)<ze(s,t)?a:s)}function vm(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=ze(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Om(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 Ci="strategy_item";function kn(e){return`${Ci}:${e}`}function km(e,t=25){const n=new Set([kn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Mm(e){return e?[...e.ancestorKeys??[],kn(e.id)]:[]}const ge=[{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"}],vi=999,Oi=7;function ki(e,t=ge){return t.find(n=>n.key===e)}function Xe(e,t=ge){return ki(e,t)?.order??vi}function Rm(e,t,n=ge){return Xe(t,n)<=Xe(e,n)}function Nm(e,t=ge){const n=Xe(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Dm(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 zt={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function xm(e){return zt[e]??"open"}function wm(e){return Object.keys(zt).filter(t=>e.includes(zt[t]))}const Pm=864e5,ct=e=>e<=0?0:e>1?1:e;function Lm(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)?ct((t-r)/a):s?1:0}function $m(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return ct((t-n)/(r-n))}const Mi=.1,Ri=.25;function Km(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=Ri?"off_track":n>=Mi?"at_risk":"on_track"}function Um(e,t){if(t)return ct(e/t)}function Bm(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return ct(t.reduce((n,r)=>n+r,0)/t.length)}function Fm(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Oi)*Pm,o=t-n-r;return o>0?o:0}function jm(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function Gm(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 Wm(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Vm(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 Hm(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function qm(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 Ni(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ym(e,t){const n=Ni(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 zm(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Xm(e){return e.filter(t=>!t.archived).sort(Di)}function Di(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const xi=20,wi=20,ve=300;function q(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Pi(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=ve)return t;const n=t.slice(0,ve),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>ve*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function Qm(e,t){const n=Pi(t.text),r=q(n);if(!r||(e.examples??[]).some(a=>q(a)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(a=>q(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},_r(a)}return _r([{...t,text:n},...o]).slice(0,wi)}function _r(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Zm(e,t){const n=q(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>q(s)===n)?r:[...r,t].slice(-xi),exampleCandidates:Li(e,t)}}function Li(e,t){const n=q(t);return(e.exampleCandidates??[]).filter(r=>q(r.text)!==n)}function $i(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Jm(e,t){return e.filter(n=>$i(n,t))}const eh=["apps","settings","wake"],Mn="businessEntityId";function th({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 nh=[{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 rh(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 oh({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 ut=[{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"}],Ki=[...ut,...ui],Rn=["quote","order","invoice","credit_note"];function sh(){const e=new Map;for(const t of ut)Rn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function L(e){return Ki.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const ih={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function Ui(e,t){return L(e).transitions[t]??[]}function ah(e,t,n){return Ui(e,t).includes(n)}const Bi=["invoice","credit_note"];function ch(e){return!!e.issuedAt&&Bi.includes(e.kindKey)}function uh(e,t,n="sales"){const r=i=>e.totals?.byRate?.find(u=>u.taxRateKey===i),o=t?.address,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),a=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${L(e.kindKey).path}/${e.id}?${Mn}=${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:V(e.issuedAt??Date.now()),...a?{taxPointDate:V(a)}:{},...e.dueAt?{dueDate:V(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:V(i.servicePeriod.from),to:V(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 Nn(e){return e.issuedAt!=null}const lh=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function dh(e){return Nn(e)&&L(e.kindKey).numbered&&!e.number}const fh=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],ph=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function mh(e,t){if(!Rn.includes(t)||!L(e.kindKey).convertsTo.includes(t))return!1;const n=L(t);return!n.credits||n.credits===e.kindKey&&Nn(e)}function Fi(e,t){const n=L(t).signFlip!==L(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 hh(e){return{...Fi(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 gh(e,t={}){const n=L(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:_h(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:X(e.issuedAt),valid_until:X(e.expiresAt),due_date:X(e.dueAt),delivery_date:X(e.deliveredAt),period_from:X(e.periodFrom),period_to:X(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:F(r.netCents),tax:F(r.taxCents),gross:F(r.grossCents)}}}function yh(e,t=[],n=ji){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,"","",""]:[bh(i.name,i.description,i.optional,n.optional),Eh(i.quantity),i.pricePer?[F(i.unitPriceCents),n.per[i.pricePer]].join(" "):F(i.unitPriceCents),F(i.netCents)])},a={block_id:"totals",type:"totals",rows:[{label:n.net,amount:F(r.netCents)},{label:n.gross,amount:F(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(i=>({label:`${n.tax} ${i.percent??o(i.taxRateKey)}%`,amount:F(i.taxCents)}))};return{lines:[s],totals:[a]}}const ji={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},net:"Netto",tax:"Btw",gross:"Totaal"};function bh(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function _h(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Eh(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function X(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 Gi(e){const t=L(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Sh[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 ${L(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:Er[n]??Er.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:Ir[n]??Ir.quote}]}const Ih=e=>({note:{key:`${L(e).key}.note`,exists:!0},period:{key:`${L(e).key}.period_from`,exists:!0}}),Sh={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Er={quote:`Beste {customer.contact},
|
|
11
|
+
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function Xo(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function xl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Pl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=Xo(n);r&&!t.includes(r)&&t.push(r)}return t}function Ll(e){return e.endpoints??[]}const $l=["lead","opportunity","customer","former"],Kl=["new","working","unqualified"];function Ul(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const Qo=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],Zo=["openDeal","hasContacts"],Bl={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},Fl=["updatedAt","createdAt","name"],jl=["list"];function Gl(e){return e.search?.trim()||e.createdWithinDays||Zo.some(t=>e[t])||Qo.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Jo="CRM_NOTE_ADDED",Wl="crm_activity",es="CRM_CALL_LOGGED",Vl="CRM_STAGE_CHANGED",Hl=["phone","meeting","video"],ql=["callback","interested","no_answer","not_interested"],Yl=e=>e===Jo||e===es,zl=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 Xl(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function Ql(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 Zl=/\{([a-zA-Z0-9_.]+)\}/g;function Tn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function Jl(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ts(e,t,n){const r=[];return{text:e.replace(Zl,(s,a)=>{const i=Tn(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):Jl(i)}),unresolved:r}}function ns(e,t){if(!e)return!0;const n=Tn(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 d=ts(c,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const c of e){if(c.block_id&&!ns(n?.[c.block_id],t))continue;const d=c.block_id?r?.[c.block_id]:void 0;if(d&&c.block_id){i.add(c.block_id),a.push(...d);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(l=>({...l.lead?{lead:u(l.lead)}:{},text:u(l.text)}))});break;case"table":a.push({...c,columns:c.columns.map(l=>({...l,label:u(l.label)})),rows:c.rows.map(l=>l.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":a.push({...c,items:c.items.map(l=>({...l,value:u(l.value),label:u(l.label)}))});break;case"letterhead":a.push({...c,fields:c.fields.map(l=>({...l,value:u(l.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":a.push({...c,rows:c.rows.map(l=>({...l,label:u(l.label),amount:u(l.amount)})),...c.taxRows?{taxRows:c.taxRows.map(l=>({...l,label:u(l.label),amount:u(l.amount)}))}:{}});break;case"image":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 rs(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 td(e){return rs({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 os(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 nd(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function rd(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 os(e,t,s,o)}const Rt=864e5,Je=e=>Date.parse([e,"T00:00:00Z"].join("")),od=e=>new Date(e).toISOString().slice(0,10);function ss(e,t){const n=Je(t.from),r=Je(t.to)+Rt;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))/Rt);o.push({month:od(i),share:c/Math.round((u-i)/Rt)}),a=new Date(u)}const s=Te(e,o.map(a=>a.share));return o.map((a,i)=>({month:a.month,cents:s[i]}))}function is(e){const t=new Date(Je(e.from)),n=new Date(Je(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Cn=864e5,mt=e=>new Date(e).toISOString().slice(0,10),et=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)),mt(s.getTime())}function vn(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 sd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,d)=>c.date.localeCompare(d.date));let a=s.filter(c=>c.date<t).reduce((c,d)=>c+d.cents,0),i=s.findIndex(c=>c.date>=t);i<0&&(i=s.length);let u=0;for(let c=et(t);c<=et(n);c+=Cn){const d=mt(c);for(;i<s.length&&(s[i]?.date??"")<=d;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function id(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 d=me(u,r);i.push({sequence:c,from:u<e?e:u,to:mt(et(d)-Cn)}),u=d}return i}const as=5e7,ad=["director","group_company","participation","other_company"],cd=e=>e?.relation&&ad.includes(e.relation)?e.relation:"director";function ud(e,t=as){return{over:e>t,ratio:Math.max(0,e)/t}}function ld(e,t){const r=e.terms.kind==="loan_received"?1:-1;return vn(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 cs(e){return mt(et(me(`${e.slice(0,7)}-01`,1))-Cn)}function kn(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 us(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:cs(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 _r=600;function ls(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 kn(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<_r;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===_r-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function dd(e,t){const n=e.terms;if(n.disposal)return[];const r=ls(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return us(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 fd(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 pd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return us(e.id,n.period?ss(n.totalCents,n.period).map(o=>o.cents):kn(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 md(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function gd(e,t){const n=me(t,12);return vn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function hd(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*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 d=u.reduce((l,f)=>l+f.amountCents,0);return d&&u.push({accountId:t.disposalAccountId,amountCents:-d,description:c}),{lines:u,costCents:s,residualCents:a}}const ds={NL:45e3},yd=(e,t)=>t??ds[(e??"NL").toUpperCase()],bd=[{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"}],fs=36e5,ps=864e5,ee=-1/0,_d=e=>e.score>ee,Ie={urgent:40,high:25,normal:10,low:0};function Ed(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Id=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,ms=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function gs(e,t){return!!(e&&Id.test(e)||t&&ms.test(t))}const hs=3,ys=600;function Sd(e,t){return e>=hs||t>=ys}const bs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Ad(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&bs.includes(r)&&(t[r]=n.value)}return t}const Td=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Cd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function vd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Td.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&&ms.test(e.body)||n&&Cd.test(n))return"marketing"}function _s(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Es=["open"],Is=1e3,Ss=72;function As(e){return e.lastActivityAt??(e.createdAt?new Date(oo(e)).getTime():0)}function Ts(e,t){return Cs(t.remindersById?.[e.id],e,t.now)}function Cs(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const vs=e=>eo(e)==="outbound_message",ks=e=>Es.includes(e);function gt(e,t){return Math.max(0,(t-As(e))/fs)}function Os(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function kd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Od(e,t,n){if(!ks(e.status)||e.firstResponseAt)return!1;const r=Os(e,n);return r!==void 0&>(e,t)>r}function Ms(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!vs(n.type)?!1:gt(e,t)<Ss}function Md(e,t){if(!ks(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ms(e,t.now))return{score:ee,reasons:[]};if(Ts(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Ie[o]>0&&(n+=Ie[o],r.push(`priority:${o}`)),_s(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=gt(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"&&vs(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")||gs(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Is,r.push("bulk")),{score:n,reasons:r}}const Rd=e=>!!e.assignedUserId||!!e.assignedInboxId,Nd=e=>e.status==="closed",Dd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,wd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Rs=[{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}],xd=["duplicate","spam"],Pd="c_";function Ld(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Rs,...t]}function $d(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function Kd(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 Ud="article",tt=[{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 Ns(e){const t=(e??"").toLowerCase();return tt.find(n=>n.code===t)??tt.find(n=>n.code===t.split("-")[0])}function Bd(e){return Ns(e)?.label??e}function Fd(e){const t=Ns(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const On=3;function Ds(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>On+1))return 1/0;o=t.get(o)?.parentId}return r}function jd(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&&ws(e,t,r))return!1;const o=Ds(e,r),s=t?Mn(t,n):1;return o+s<=On}function ws(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 Mn(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=>Mn(o.id,t,n))):1}const xs="en";function Ps(e){return e.defaultLocale||e.locale||xs}function Gd(e){const t=new Set,n=[];for(const r of[Ps(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Wd(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 Vd(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 d=o.length;const l=c?o.findIndex(f=>n(f)===n(c)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(c?.level??0);)d+=1;o.splice(d,0,{...i,amountCents:0,priorCents:i.amountCents}),s.add(n(i))}),o}function Hd(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 qd=["revenue","expense"],ve=e=>qd.includes(e.type),Yd=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Ls(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=Yd(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=l=>u==="debit"?t(l):-t(l),d=[...i.values()].flat().reduce((l,f)=>l+c(f),0);s.push({key:a,label:r(a),level:0,side:u,amountCents:d});for(const[l,f]of i){s.push({key:l,label:r(l),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 zd(e,t,n,r=o=>o){const o=e.filter(ve),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},a=Ls(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 Xd(e,t,n,r,o=s=>s){const s=e.filter(d=>!ve(d)),i=Ls(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){i.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=i.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:i.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=i.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),c=i.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:i,totals:{debitCents:u,creditCents:c},source:"finance"}}function Qd(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=ve(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 Zd(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 Jd(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||!ve(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 S=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),$s={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[S("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),S("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),S("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),S("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),S("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),S("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),S("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),S("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),S("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),S("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),S("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),S("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),S("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),S("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),S("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),S("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),S("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),S("1000","Kas","asset","assets.current.cash","BLimKasKas"),S("1100","Bank","asset","assets.current.cash","BLimBanRba"),S("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),S("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),S("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),S("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),S("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),S("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),S("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),S("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),S("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),S("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),S("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),S("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),S("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),S("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),S("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),S("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),S("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),S("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),S("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),S("4000","Lonen","expense","costs.personnel","WPerLesLon"),S("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),S("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),S("4100","Huur","expense","costs.housing","WBedHuiBeh"),S("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),S("4200","Autokosten","expense","costs.car","WBedAutOak"),S("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),S("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),S("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),S("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),S("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),S("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),S("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),S("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),S("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),S("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),S("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),S("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),S("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),S("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),S("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),S("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),S("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),S("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),S("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),S("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),S("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),S("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),S("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),S("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),S("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),S("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"}]},ef=[$s],Ks={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function tf(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 nf(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const rf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function of(e){const t={};for(const n of rf)e[n]!==void 0&&(t[n]=e[n]);return t}function Qt(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Qt).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)+":"+Qt(r)).join(",")+"}"}function sf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Us(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 af(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 cf(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&is(t.period)>1?[{index:n,period:t.period}]:[])}function uf(e,t){const n=e.kind==="journal"?ff(e,t):df(e,t);return n.ok?lf(n,e,t.functionalCurrency??"EUR"):n}function lf(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 df(e,t){const n=b=>t.accounts.find(y=>y.role===b&&!y.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,d=[],l=new Map;for(const b of e.lines){const y=b.accountKey??Us(b,t.rules,e)?.accountId??s?.id;if(!y)return{ok:!1,problem:"no_account_for_line"};d.push({...u,accountId:y,amountCents:i*b.netCents,functionalCents:i*b.netCents,taxCode:b.taxRateKey,taxCents:i*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...af(b.dimensions)}),b.taxCents&&l.set(b.taxRateKey,(l.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,y]of l){const E=t.taxAccounts.find(h=>h.taxKey===b),g=(r?E?.payableAccountId:E?.receivableAccountId)??a?.id;if(!g)return{ok:!1,problem:"no_vat_account"};d.push({...u,accountId:g,amountCents:i*y,functionalCents:i*y,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,y)=>b+y.netCents+y.taxCents,0);d.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:d,description:m||e.documentId}}function ff(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??Us(o,t.rules,e)?.accountId??n(Ks[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 Nt=e=>String(e).padStart(2,"0"),pf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function mf(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}-${Nt(i)}-01`,to:`${a}-${Nt(i)}-${Nt(pf(a,i))}`,status:"open"}})}function gf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const Bs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",hf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Fs=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Rn=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Fs(Rn(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Dt=e=>e<0?"C":"D",Er=e=>Rn(e.replace(/-/g,""),35);function yf(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="',Bs,'">',"<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>"+Fs(Rn(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",Er(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((d,l)=>d.code.localeCompare(l.code))){const d=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",d?"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((d,l)=>d.index-l.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(l=>l.cents>0).reduce((l,f)=>l+f.cents,0),d=-a.filter(l=>l.cents<0).reduce((l,f)=>l+f.cents,0);o("<openingBalance>",A("linesCount",a.length),A("totalDebit",Z(c)),A("totalCredit",Z(d))),a.forEach((l,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(l.accountId)??l.accountId),A("amnt",Z(l.cents)),A("amntTp",Dt(l.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,d)=>c+d.functionalCents,0))),A("totalCredit",Z(-i.filter(c=>c.functionalCents<0).reduce((c,d)=>c+d.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const d=u.get(c.id);if(d?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",hf[c.kind]));for(const l of[...d].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",l.number,35),A("desc",l.description),A("periodNumber",n.get(l.periodId)??0),A("trDt",l.date),A("Source",l.source.app+(l.source.kind?" "+l.source.kind:""),999),A("User",l.postedBy,999)),l.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,l.date),y=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",l.source.number??l.number,255),A("effDate",f.taxPointDate??l.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Dt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Er(f.counterpartyCompanyId)),A("invRef",l.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",Dt(f.taxCents))+"</vat>":"",y?"<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 bf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function _f(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)+bf(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 Ef(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 Zt=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!Zt.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${Zt.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 If(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 Sf(e,t){return e.filter(n=>n.enabled&&If(n.ownerScope,t))}function Af(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Tf(e){return`mcp__${e}__`}const Cf=1e3,vf=2e3,kf=500,Of=12e3,Mf=4e3,js=["contact","company","work_item"];function Rf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return js.includes(t)}const Nf=[{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 Gs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Df=[{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 Nn(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function wf(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:Nn(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const Ir=/^\d{4}-\d{2}-\d{2}$/;function xf(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(!Ir.test(r.validFrom)||r.validTo&&!Ir.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 ht(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=L(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?lt(n,e.pricePer,e.servicePeriod):n}function Pf(e,t,n){const r=e.map(c=>({...c,netCents:ht(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const d=n??r[c].taxRateKey,l=o.get(d);l?l.push(c):o.set(d,[c])}const s=[];let a=0,i=0;for(const[c,d]of o){const l=Gs(c,t),f=d.reduce((y,E)=>y+r[E].netCents,0),m=L(f*l.percent/100),b=Te(m,d.map(y=>r[y].netCents));for(let y=0;y<d.length;y++)r[d[y]].taxCents=b[y];s.push({taxRateKey:c,percent:l.percent,kind:l.kind,netCents:f,taxCents:m}),a+=f,i+=m}const u=r.reduce((c,d)=>d.costPriceCents==null||d.optional?c:c+L(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const Lf="onboarding-source",$f=["support","billing","availability","sales","onboarding"],Kf=["keep","replace"],yt=[{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"}],Ws={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=yt){return t.find(n=>n.key===e)??{...Ws,key:e}}function pe(e){return e==="published"||e==="approved"}function Dn(e,t,n=yt){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Uf(e,t=yt){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const Bf=864e5;function Vs(e,t){return Math.round((t-e)/Bf)}function wn(e,t){const n=e.cycleMinutes.length;return n===0?0:(Vs(e.anchor,t)%n+n)%n}function xn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[wn(e,t)]??0}function Pn(e,t){return e.startTimes?.[wn(e,t)]}function Ln(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 Hs(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 Jt=864e5;function Ff(e){const t=Math.max(1,Math.round((e.to-e.from)/Jt));return Array.from({length:t},(n,r)=>e.from+r*Jt)}function en(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Sr={interval:0,day:1,week:2};function jf(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&pe(l.status)&&q(l.kindKey).capacity),a=n.filter(l=>l.userId&&pe(l.status)&&q(l.kindKey).absent),i=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),u={};let c="interval";const d=l=>{Sr[l]>Sr[c]&&(c=l)};for(const l of i){const f=t.teamIdsOf?.(l)??[];let m=0,b=0,y=0;for(const h of Ff(e)){const p=Math.max(h,e.from),I=Math.min(h+Jt,e.to);y++;const v=s.filter(D=>D.userId===l).reduce((D,G)=>D+en(G.start,G.end,p,I),0);if(v>0){m+=v;continue}const C=Ln(r,l,f,h),R=C?xn(C,h):0;if(C&&R>0){m+=R*60,d(Pn(C,h)?"interval":"day");continue}C||b++}if(b>0){const h=Hs(o,l,e.from);h&&(m+=h.weeklyMinutes*60*(b/7),d("week"))}const E=a.filter(h=>h.userId===l).reduce((h,p)=>h+en(p.start,p.end,e.from,e.to),0),g=Math.max(0,m-E);(g>0||y>0)&&(u[l]=g)}return{seconds:Object.values(u).reduce((l,f)=>l+f,0),precision:c,byUser:u}}function Gf(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 Wf(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 d of o){if(d.userId!==a||q(d.kindKey).capacity&&!d.workstreamId)continue;const l=en(d.start,d.end,n.from,n.to);l<=0||(Dn(d,t)?u+=l:c+=l)}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 Vf="demand-source",Ar=1e3;function Hf(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function qs(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=Hf(e,t),r=t/e;return n/(1-r*(1-n))}function Ys(e,t,n,r){return r<=0?1:e<=t?0:1-qs(e,t)*Math.exp(-(e-t)*n/r)}function zs(e,t,n){return n<=0?0:e*t/n}function Xs(e,t,n,r){if(e<=0||t<=0)return 0;const o=zs(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<=Ar;i++)if(!(i<=o)&&!(Ys(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return Ar}const qf=36e5,Yf=864e5;function zf(e){return e==="day"?Yf:qf}function Xf(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 Qs(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=Xs(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function Qf(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=zf(a),u=i/1e3,c=e.kinds,d=t.filter(y=>pe(y.status)),l=d.filter(y=>Dn(y,n,c)),f=d.filter(y=>q(y.kindKey,c).capacity),m=d.filter(y=>q(y.kindKey,c).absent),b=[];for(let y=fe(s.from,a);y<s.to;y+=i){const E=y+i,g=de(y,a);let h=0;for(const D of l)h+=Le(D,y,E);let p=0;for(const D of f)p+=Le(D,y,E);let I=0;for(const D of m)I+=Le(D,y,E);const v=o?.[g]??{},C=Qs(v,r,u),R=h/u;b.push({period:g,forecastVolume:v.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:h,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:I})}return b}function Zs(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function Zf(e,t,n){const r=Zs(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function Jf(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const ep=36e5,tn=6048e5,Js=8,tp=.5,np=2;function rp(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 op(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*tn,i=a-tn;let u=0,c=!1;for(const[d,l]of e)d>=i&&d<a&&(u+=l,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(np,Math.max(tp,r[0]/o))}function sp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function ip(e,t,n){const r=Math.max(1,n?.weeks??Js),o=new Map,s=new Set;for(const u of e)o.set(rp(u.period),u.value),s.add(u.period.slice(0,10));const a=op(o,fe(t.from,"hour"),r),i=[];for(let u=fe(t.from,"hour");u<t.to;u+=ep){let c=0,d=0;for(let m=1;m<=r;m++){const b=u-m*tn,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const g=r-m+1;c+=E*g,d+=g}let l=d>0?c/d*a:0;const f=sp(n?.adjustments,u);f?.absoluteVolume!==void 0?l=f.absoluteVolume:f?.factor!==void 0&&(l*=f.factor),i.push({period:de(u,"hour"),volume:l})}return i}const ei="schedule_entry",ti="workstream";function ap(e){return`${ei}:${e}`}function cp(e){return`${ti}:${e}`}const nn=36e5,le=864e5;function up(e,t){const n=t==="day"?le:nn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Tr(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 wt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function lp(e,t,n={}){const r=n.grain??"hour",o=up(t,r),s=r==="day"?le:nn,a=new Map(o.map(l=>[l,0])),i=e.filter(l=>l.userId&&q(l.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const l of i)if(!(u&&l.userId&&!u.has(l.userId))){for(const f of o){const m=wt(l.start,l.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of Tr(t))wt(l.start,l.end,f,f+le)>0&&c.add(`${l.userId}:${f}`)}const d=n.userIds??[...new Set([...i.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const f=n.teamIdsOf?.(l)??[];for(const m of Tr(t)){if(c.has(`${l}:${m}`))continue;const b=Ln(n.patterns,l,f,m);if(!b)continue;const y=xn(b,m);if(y<=0)continue;const E=Pn(b,m);if(E){const[p,I]=E.split(":").map(Number),v=m+p*nn+(I??0)*6e4,C=v+y*6e4;for(const R of o){const D=wt(v,C,R,R+s);D>0&&a.set(R,(a.get(R)??0)+D)}continue}const g=o.filter(p=>p>=m&&p<m+le);if(!g.length)continue;const h=y*60/g.length;for(const p of g)a.set(p,(a.get(p)??0)+h)}}return o.map(l=>({period:de(l,r),weight:a.get(l)??0}))}function ni(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 dp(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 ni(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 ri(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function fp(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 oi(e){return ri(e)}function si(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 pp(e){return e.agentId?{kind:"user",userId:e.agentId}:si(e.ownerScope)}function mp(e){return oi(e)}const ii="playbook-run",gp="run";function hp(e,t=0){return`${ii}:${e}~${t}`}function yp(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function ai(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 bp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function _p(e,t){if(t)return e.targets.find(n=>n.id===t)}function ci(e){return e?.kind==="assignment"}function Ep(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return ci(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 rn=["suggest","outward","auto"];function Ip(e){return typeof e=="string"&&rn.includes(e)}function Sp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Ap(e,t){const n=e??"suggest";return t&&rn.indexOf(t)<rn.indexOf(n)?t:n}function Tp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function ui(e){const t=e.split("__");return t[t.length-1]||e}function Cp(e){const t=ui(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const vp=[{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 kp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Op={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 $n(e){return`${e.type}:${e.id}`}function Mp(e){return[$n(e),e.lineId].join("#")}function Rp(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 Np(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 li="interaction";function di(e){return e?.type===li?e.id:void 0}const fi=64,pi=8e3;function Dp(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),fi),pi)}const wp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],xp={kind:"workflow",steps:[]};function Pp(e){return e?.kind==="workflow"?e.steps:[]}function Lp(e){return e?.kind==="procedure"?e.procedure:void 0}function $p(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function mi(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const gi=10,hi=.9;function Kp(e){const{total:t,rate:n}=mi(e);return t>=gi&&n>=hi}const yi=["done","escalated","failed","stopped"];function Up(e){return yi.includes(e)}function bi(e){return e==="waiting"}function Bp(e){return e==="running"||bi(e)}function Kn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Fp(e){const t=Kn(e);return t?$n(t):void 0}function jp(e){return di(Kn(e))}const xt=864e5;function Gp(e,t){return e.lines.flatMap(n=>{const r=dt(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=ht({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 _i(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 Cr=e=>e.seriesId??e.id;function Wp(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 Vp(e,t,n,r={}){const o=(r.noticeDays??30)*xt,s=(r.windowDays??7)*xt,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(Cr(c),[...u.get(Cr(c))??[],c]);for(const c of u.values()){const d=Wp(i,c,n),l=U(i,d);if(l.to!=null&&l.to<=n)continue;const f={contractId:i.id,lineId:d.id},m=d.commitment??i.commitment,b=gn(i,c),y=l.to??Ee(b,m,n);if(d.customerCompanyId){const h=d.salesLine?t.find(p=>p.agreementId===d.salesLine?.agreementId&&p.seriesId===d.salesLine?.seriesId):void 0;h?h.ended?a.push({kind:"not_covered",...f,reason:"sales_ended"}):(d.quantity.from==="fixed"&&h.quantity!=null&&h.quantity!==d.quantity.value&&a.push({kind:"not_covered",...f,reason:"quantity"}),h.unbilled.length&&a.push({kind:"not_billed",...f,windows:h.unbilled}),y>h.effectiveEndAt&&a.push({kind:"term_mismatch",...f,purchaseEnd:y,salesEnd:h.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)),g=l.to==null&&E?yn(b,m,n):null;if(g!=null&&g-n<=o&&a.push({kind:"notice_due",...f,deadline:g}),m&&m.termMonths>=1&&d.changeWindowDays){const h=hn(b,m,n)+d.changeWindowDays*xt;h>n&&h-n<=s&&a.push({kind:"change_window",...f,closesAt:h})}if(d.expected==="variable"&&d.invoiced&&d.invoiced.length>=2){const h=[...d.invoiced].sort((I,v)=>I.from-v.from),p=h[h.length-1];_i(h.slice(0,-1).map(I=>I.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function Ei(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 Hp(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 Ii(e,t,n){const r=[];for(const o of e.lines){const s=t.find(i=>i.id===o.poLineId),a=Ei(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!==o.quantity&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function qp(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 Si(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ai(e,t){const n=e.filter(r=>Si(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Ti(e,t){return t*(e.unitsPerPurchaseUnit&&e.unitsPerPurchaseUnit>0?e.unitsPerPurchaseUnit:1)}function Ci(e){return{cents:L(e.costCents/Ti(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function Yp(e){const t=Ci(e);return t.per?lt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const zp=864e5,on=e=>e.seriesId??e.id;function vr(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 kr(e){const t=new Map;for(const n of e)t.set(on(n),[...t.get(on(n))??[],n]);return t}function Xp(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=>[...kr(i.lines).values()].map(u=>({contract:i,line:vr(i,u,t),start:gn(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of kr(i.lines).values()){const c=vr(i,u,t);if(c.quantity.from!=="fixed")continue;const d=Ai(e.offers.filter(C=>C.productId===c.productId),t);if(!d)continue;const l=on(c),f=["demand:",i.id,"#",l].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===i.id&&C.line.salesLine.seriesId===l&&r(C.contract,C.line)),b=U(i,c),y={key:f,level:"item",supplierCompanyId:d.supplierCompanyId,offerId:d.id,productId:c.productId,name:c.name,customerCompanyId:i.companyId,salesLine:{agreementId:i.id,seriesId:l}};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=yn(m.start,C,t);n.push({...y,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({...y,action:"purchase",quantity:E});continue}const g=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(g===E)continue;const h={contractId:m.contract.id,lineId:m.line.id};if(E>g){n.push({...y,action:"change",quantity:E-g,targetQuantity:E,from:g,contractLine:h});continue}const p=m.line.commitment??m.contract.commitment,I=m.line.changeWindowDays??0,v=!p||p.termMonths<1||I>0&&t<hn(m.start,p,t)+I*zp;n.push({...y,action:"change",quantity:g-E,targetQuantity:E,from:g,contractLine:h,...v?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],a=(i,u,c)=>{const d=e.provisionable.get([u.app,u.offer].join(":"));if(i.action!=="purchase"||!d?.requires)return;const l=e.offers.find(b=>(!c||b.supplierCompanyId===i.supplierCompanyId)&&b.provider?.app===u.app&&b.provider?.offer===d.requires),f=o.some(b=>b.line.offerId===l?.id&&b.line.customerCompanyId===i.customerCompanyId&&r(b.contract,b.line));if(!l||f)return;const m=["account:",i.customerCompanyId,":",l.id].join("");return!e.open.has(m)&&!s.some(b=>b.key===m)&&s.unshift({key:m,action:"purchase",level:"account",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:l.productId,name:d.requires,quantity:1,customerCompanyId:i.customerCompanyId}),m};for(const i of n){const u=e.offers.find(d=>d.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 vi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Qp="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function ki(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 Zp(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 Un(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 Oi(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 d of r){if(o.has(d.id))continue;const l=Un(i,d,n);l&&(!c||l.rank<c.rank)&&(c={line:d,...l})}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 Jp(e,t,n,r){const o=ki(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=Oi(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=[...Ii({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(d=>d.poLineId===c.poLineId)?.docIndex})),...a.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:i,problems:u}}function em(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 tm=864e5,Or=e=>Date.parse([e,"T00:00:00Z"].join(""));function nm(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,I)=>({candidate:p,order:I,hit:Un(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&i.has(p.candidate.id))).sort((p,I)=>p.hit.rank-I.hit.rank||p.order-I.order);if(!c.length){a.push(u.id);continue}const d=u.period?{from:Or(u.period.from),to:Or(u.period.to)+tm}:r,l=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,I,v)=>p.variable?null:ht({kind:"product",quantity:I,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:v}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;i.add(p.id);const I=u.quantity??p.openQty??1;s.push({...l(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:d},via:m.hit.via,quantity:I,amountCents:u.netCents,expectedCents:f(p,I,d),overQuantity:p.openQty!=null&&I!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),y=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let g=y;for(const{candidate:p}of b){if(g<=0)break;const I=Math.max(0,o.get(p.id)??0);if(!I)continue;const v=Math.min(I,g);E.push({candidate:p,quantity:v,over:!1}),o.set(p.id,I-v),g-=v}if(g>0){const p=E[E.length-1];p?(p.quantity+=g,p.over=!0):E.push({candidate:m.candidate,quantity:g,over:!0})}const h=Te(u.netCents,E.map(p=>p.quantity));E.forEach((p,I)=>{s.push({...l(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:h[I],expectedCents:f(p.candidate,p.quantity,u.period?d:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:a}}const Mi={percent:1,cents:100};function rm(e,t,n=Mi){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(d=>d.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),a.some(d=>d.expectedCents===null))continue;const i=a.reduce((d,l)=>d+(l.expectedCents??0),0),u=a.reduce((d,l)=>d+l.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 om(e){const t=[],n=new Map;for(const r of[...e].sort(sm)){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 sm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function im(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const Ri=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function am(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,I)=>{if(!e.trace||!p||!I.ref)return;const v=s[p]??[];v.includes(I.ref)||(s[p]=[...v,I.ref])};let i;const u=(p,I,v)=>{if(!p||!v)return;const C=o[p]??{};C[I]=(C[I]??0)+v,o[p]=C,i&&a(p,i)},c=new Map,d=new Set;let l=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const I=n.get(p.taxCode);if(!I){d.add(p.taxCode);continue}const v=I.boxes[t]?.[p.side];if(i=p,p.side==="sales")u(v?.base,"baseCents",p.baseCents),u(v?.tax,"taxCents",p.taxCents),I.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(I.selfAssessed){const C=r?Nn(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(v?.base,"baseCents",p.baseCents),u(v?.tax,"taxCents",R),l+=R,R&&a("5b",p)}else{const C=Math.round(p.taxCents*(I.deductiblePercent??100)/100);l+=C,C&&a("5b",p)}}const f=Ri.filter(p=>p<"5"),m=f.reduce((p,I)=>p+(o[I]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:l},o["5c"]={taxCents:m-l},o["5g"]={taxCents:m-l};const b=p=>Math.trunc(p/100),y=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const I=o[p];I&&(E[p]={...I.baseCents!==void 0?{base:b(I.baseCents)}:{},...I.taxCents!==void 0?{tax:b(I.taxCents)}:{}})}const g=f.reduce((p,I)=>p+(E[I]?.tax??0),0),h=y(l);return E["5a"]={tax:g},E["5b"]={tax:h},E["5c"]={tax:g-h},E["5g"]={tax:g-h},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,I])=>({...p?{counterpartyCompanyId:p}:{},baseCents:I})),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function cm(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,d=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(d)}-${r(o(c,d))}`}})}class Bn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const um=/^\{\{\s*([\w.]+)\s*\}\}$/,lm=/\{\{\s*([\w.]+)\s*\}\}/g,dm=/\$[A-Za-z_][\w]*\.[\w.]+/;function fm(e,t,n={}){return nt(e,t,n)}function nt(e,t,n={}){return typeof e=="string"?pm(e,t,n):Array.isArray(e)?e.map(r=>nt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,nt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function pm(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(dm);if(s)throw new Bn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(um);if(o){const s=Mr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(lm,(s,a)=>{const i=Mr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function Mr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Bn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return mm(e,t)}function mm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const gm=new Set(["filled","empty"]);function hm(){return{kind:"rule",op:"==",varPath:"",value:""}}const ym=new Set(["==","!=",">","<",">=","<="]);function Pt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Rr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ni(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=sn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function sn(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=sn(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(Pt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=sn(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!Pt(s)||!Rr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(ym.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Pt(o)||!Rr(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 bm(e){const t=Ni(e);return t&&an(t)||null}function an(e){if(e.kind==="group"){const t=e.children.map(an).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${an(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 Lt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function _m(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[d,l]=s.split("-");if(u=Number(d),c=l===void 0?u:Number(l),!Number.isInteger(u)||!Number.isInteger(c)||(l===void 0&&a!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let d=u;d<=c;d+=i)r.add(d)}return r.size?r:null}function Fn(e){const t=e.trim().split(/\s+/);if(t.length!==Lt.length)return null;const n=[];for(let u=0;u<Lt.length;u++){const c=Lt[u],d=t[u];if(!c||d===void 0)return null;const l=_m(d,c.min,c.max);if(!l)return null;n.push(l)}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 Em(e){return Fn(e)!==null}function Di(e,t){const n=Fn(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 wi="@schedule",cn=3;function xi(e,t,n){const r=[],o=e.depth??0;if(o>=cn)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${cn})`}))};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!==wi){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(!Di(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 Im(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Sm(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=xi(n,r,t),a=o.flatMap(c=>c.rule.then.map(d=>d.action)),i=e.expected?.actions??[];if(a.length===i.length&&a.every((c,d)=>c===i[d]))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 Am(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Pi(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Am(e,n))}function Tm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Pi(r,t).length)?"corrected":"kept"}function Cm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function vm(e){return`subject.${e.path}`}function km(e,t){return e.events.find(n=>n.name===t)}function Om(e,t){return e.filter(n=>ai(t,n.path)===void 0).map(n=>n.path)}const un=6e4,Mm=36e5,Se=864e5,Li=800;function Nr(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Se+Mm}function Rm(e){const t=new Date(e).getUTCFullYear();return e>=Nr(t,2)&&e<Nr(t,9)}function $i(e,t){const n=t.dst==="eu"&&Rm(e)?60:0;return(t.utcOffsetMinutes+n)*un}function Nm(e){return(e+3)%7+1}function Ki(e,t){const n=$i(e,t),r=e+n,o=Math.floor(r/Se);if(!t.days.includes(Nm(o)))return null;const s=o*Se;return{open:s+t.fromMinutes*un-n,close:s+t.toMinutes*un-n}}function Ui(e,t){const n=$i(e,t),r=e+n;return(Math.floor(r/Se)+1)*Se-n}function rt(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Li&&o<t;s++){const a=Ki(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Ui(o,n)}return r}function bt(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Li;s++){const a=Ki(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=Ui(o,n)}return e+t}function Dm(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const ot=1,st=2,it=4;function wm(e){return e==="snoozed"?ot:st}function _t(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const xm=["speed_of_answer","first_response","next_response","resolution","close"],Pm=["snoozed","waiting_for_customer"],Lm=6e4,Bi=["speed_of_answer","first_response","next_response"],$m=[...Bi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function Km(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 Dr(e){return ke(e)?{state:"void"}:null}function Um(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:rt(n,e.dueAt,r)}}function Bm(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:bt(n,e.remainingMs,r)}}function Fm({event:e,at:t,now:n,clocks:r,profile:o}){const s=_t(o),a=Math.min(t,n),i=r.map(g=>({...g})),u=[],c=(g,h)=>{h&&(u.push({op:"patch",clockId:g.id,patch:h}),Object.assign(g,h))},d=g=>{for(const h of i)h.metric===g&&c(h,Km(h,a))},l=g=>{for(const h of i)g.includes(h.metric)&&c(h,Dr(h))},f=g=>{for(const h of i)c(h,Um(h,g,a,s))},m=g=>{for(const h of i)c(h,Bm(h,g,a,s))},b=g=>i.reduce((h,p)=>p.metric===g?Math.max(h,p.attempt):h,0)+1,y=g=>i.some(h=>h.metric===g&&ke(h)),E=(g,h)=>{const p=o.targets.find(v=>v.metric===g);if(!p)return;const I=p.minutes*Lm;u.push({op:"start",metric:g,attempt:b(g),startedAt:h,targetMs:I,dueAt:bt(h,I,s)})};switch(e){case"apply":{for(const g of i)g.profileId!==o.id&&c(g,Dr(g));for(const g of o.targets){if(g.metric==="next_response")continue;i.some(p=>p.metric===g.metric&&p.profileId===o.id)||E(g.metric,a)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(st);break}case"inbound":{m(st),!y("first_response")&&!y("next_response")&&E("next_response",a);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Bi);break;case"reopened":y("resolution")||E("resolution",a),y("close")||E("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(ot);break;case"unsnoozed":m(ot);break;case"hold":f(it);break;case"unhold":m(it);break;case"discarded":l($m);break}return u}function Fi(e){return e.state==="running"||e.state==="paused"}function jm(e){return(e.pauseBits&it)!==0}function at(e,t){const n=_t(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-rt(e.dueAt,t,n):rt(t,e.dueAt,n)}function Gm(e,t){return e.state==="paused"?bt(t,e.remainingMs,_t(e)):e.dueAt}function Wm(e,t){const n=e.filter(Fi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>at(a,t)<at(s,t)?a:s)}function Vm(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=at(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Hm(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 ji="strategy_item";function jn(e){return`${ji}:${e}`}function qm(e,t=25){const n=new Set([jn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Ym(e){return e?[...e.ancestorKeys??[],jn(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"}],Gi=999,Wi=7;function Vi(e,t=Oe){return t.find(n=>n.key===e)}function ct(e,t=Oe){return Vi(e,t)?.order??Gi}function zm(e,t,n=Oe){return ct(t,n)<=ct(e,n)}function Xm(e,t=Oe){const n=ct(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Qm(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 ln={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Zm(e){return ln[e]??"open"}function Jm(e){return Object.keys(ln).filter(t=>e.includes(ln[t]))}const eg=864e5,Et=e=>e<=0?0:e>1?1:e;function tg(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)?Et((t-r)/a):s?1:0}function ng(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Et((t-n)/(r-n))}const Hi=.1,qi=.25;function rg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=qi?"off_track":n>=Hi?"at_risk":"on_track"}function og(e,t){if(t)return Et(e/t)}function sg(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Et(t.reduce((n,r)=>n+r,0)/t.length)}function ig(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Wi)*eg,o=t-n-r;return o>0?o:0}function ag(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function cg(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 ug(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 dg(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function fg(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 Yi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function pg(e,t){const n=Yi(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 mg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function gg(e){return e.filter(t=>!t.archived).sort(zi)}function zi(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Xi=20,Qi=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Zi(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 hg(e,t){const n=Zi(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},wr(a)}return wr([{...t,text:n},...o]).slice(0,Qi)}function wr(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function yg(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(-Xi),exampleCandidates:Ji(e,t)}}function Ji(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function ea(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function bg(e,t){return e.filter(n=>ea(n,t))}const ta=["apps","settings","wake"],Gn="businessEntityId";function _g(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([...na.map(s=>s.key),...ta,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Eg({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 na=[{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 Ig(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 Sg({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 It=[{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"}],ra=[...It,...vi],Wn=["quote","order","invoice","credit_note"];function Ag(){const e=new Map;for(const t of It)Wn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return ra.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Tg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function oa(e,t){return F(e).transitions[t]??[]}function Cg(e,t,n){return oa(e,t).includes(n)}const sa=["invoice","credit_note"];function vg(e){return!!e.issuedAt&&sa.includes(e.kindKey)}function kg(e,t,n="sales"){const r=i=>e.totals?.byRate?.find(u=>u.taxRateKey===i),o=t?.address,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}?${Gn}=${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 Vn(e){return e.issuedAt!=null}const Og=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function Mg(e){return Vn(e)&&F(e.kindKey).numbered&&!e.number}const Rg=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],Ng=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function Dg(e,t){if(!Wn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Vn(e)}function ia(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 wg(e){return{...ia(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 xg(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:$g(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 Pg(e,t=[],n=aa){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,"","",""]:[Lg(i.name,i.description,i.optional,n.optional),Kg(i.quantity),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 aa={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},net:"Netto",tax:"Btw",gross:"Totaal"};function Lg(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function $g(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Kg(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 ca(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Bg[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:xr[n]??xr.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:Pr[n]??Pr.quote}]}const Ug=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),Bg={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},xr={quote:`Beste {customer.contact},
|
|
13
13
|
|
|
14
14
|
Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
|
|
15
15
|
|
|
@@ -17,34 +17,34 @@ Hierbij de bevestiging van uw opdracht.`,invoice:`Beste {customer.contact},
|
|
|
17
17
|
|
|
18
18
|
Hierbij onze factuur. Hieronder vindt u de specificatie.`,credit_note:`Beste {customer.contact},
|
|
19
19
|
|
|
20
|
-
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},Ir={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."},Ah=Gi("quote"),Th={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},Ch=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function Wi(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=Ch(V(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function vh(e,t,n){const r=[],o=[];for(const s of e){const a=Wi(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const Vi=ut.map(e=>e.key),Hi="product",qi="agreement";function Yi(e,t){return`${e}:${t}`}function Oh(e){return`${Hi}:${e}`}function Dn(e,t){return`/apps/sales${e}?${Mn}=${encodeURIComponent(t)}`}function kh(e,t){const n=e.businessEntityId||t;if(n)return Dn(`/${L(e.kindKey).path}/${e.id}`,n)}function Mh(e,t){const n=e.businessEntityId||t;return n?Dn(`/product/${e.id}`,n):void 0}function Rh(e){return`${qi}:${e}`}function Nh(e,t){const n=e.businessEntityId||t;return n?Dn(`/agreement/${e.id}`,n):void 0}function Dh(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return Vi.includes(n)?e.slice(t+1):void 0}function xh(e){const t=new Set([Yi(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 wh=4;function Ph(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Lh(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const $h=["cash","credit","direct_debit","card","other"];function Kh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Uh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Bh=[{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 xn(e){return e.settlement?.state??"unpaid"}function zi(e){const t=xn(e);return t==="paid"||t==="overpaid"}function wn(e){return!!e.issuedAt&&e.status==="open"&&!zi(e)}function Fh(e,t){return!wn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function jh(e){return e.totals?.grossCents??0}function Gh(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 Wh(e,t,n){const r=jh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Xi=["current","d1_30","d31_60","d61_90","d90_plus"],Vh=864e5;function Hh(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/Vh)}function qh(e,t){if(!wn(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?Hh(V(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:xn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function Qi(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Yh(e){const t=Object.fromEntries(Xi.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[Qi(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const zh="receivables.company";function Xh(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 Qh(e){return e.type==="agent"}const Zi=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Zh(e){return Zi.includes(e)}const Jh="WORK_COMMENT_ADDED",eg="WORK_ITEM_ASSIGNED",tg="WORK_ITEM_STATUS_CHANGED";function ng(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))/Xo)}function rg(e,t){if(e.closedAt!=null)return{score:H,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:H,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(ue[s]>0&&(r+=ue[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const a=ng(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 lt=[{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"}],og=lt.map(e=>e.key);function sg(e){return e?.types?.length?e.types:lt}function ig(e,t){return t.find(n=>n.key===e)}function ag(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 cg(...e){return e.map(t=>lt.find(n=>n.key===t)).filter(t=>!!t)}const Ji="work_item",ea="work_project",ta="work_activity",ug="work_cycle";function na(e){return`${Ji}:${e}`}function Pn(e){return`${ea}:${e}`}function lg(e){return`${ta}:${e}`}function dg(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function fg(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 pg(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function mg(e,t=25){const n=new Set([na(e.id)]);e.projectId&&n.add(Pn(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function hg(e){return[Pn(e.id)]}const dt=[{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}],Ln=dt.map(e=>e.key);function ra(e){return e?.statuses?.length?e.statuses:dt}function oa(e,t){return t.find(n=>n.key===e)?.category??"todo"}function gg(e,t){return t.find(n=>n.key===e)}function yg(e){const t=ra(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:sa(t)[0]?.key??dt[0].key}function sa(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function bg(e,t){return oa(e,t)==="done"}function ia(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function _g(e,t){const n=ia(e)||"status",r=new Set([...t,...Ln]);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 Eg(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}Ln.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 Ig(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function Sg(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 Ag=["day","week","month"];function Tg(e){const t=e;if(!t||!Ag.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 aa(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 Cg(e,t,n){const r=aa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function vg(e){return e.startDate??Number.MAX_SAFE_INTEGER}function Og(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const kg=["statusKeys","typeKeys","labels","priority","assignees"],Mg=["blockedOnly","watchingOnly","reportedByMe"],Rg=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Ng=["list","board","calendar","workload"],Dg=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),xg=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function ca(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Dg.has(t)?"image":t==="application/pdf"?"pdf":xg.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ie=1024*1024,ua={image:5*ie,pdf:20*ie,text:1*ie,audio:20*ie},wg=25*ie,Pg=5;function Lg(e,t){const n=ca(e);return n==="unsupported"?"unsupported":t>ua[n]?"too-large":null}const $g="ai-tool";function Kg(e){return e.access==="read"?"idempotent":e.reversible??"none"}function $n(e){return e.access!=="read"&&e.effect!=="internal"}function la(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ug(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const a=la(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const Bg="assist-source",Fg=["blocking","due","open"];function jg(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Sr={blocking:0,due:1,open:2};function Gg(e,t){return Sr[e.band??"open"]-Sr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const Wg="bookable-source",Vg="bookkeeping",Hg={get:"/bookable/get",issued:"/bookable/issued",ledgerCategories:"/bookable/ledger-categories",settled:"/bookable/settled"},qg={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function Yg(e){return`oc:${e}`}function zg(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Xg(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function Qg(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function da(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(a=>!n.has(a.intent)).map(a=>Jg(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 fa(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 Zg(e,t){const n=fa(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Jg(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function ey(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of da(r,o))n.push({channel:r,description:o,capability:s})}return n}function ty(e,t){return t.filter(n=>n.capability.intent===e)}function pa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function ny(e,t){return pa(e.scheme,t)}function ry(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 oy(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 sy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function iy(e){const t=sy.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}var ma=(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))(ma||{});const ay={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 cy(e){return e?ay[e]??"note":"note"}const uy="message_window",ly="message_templates",dy={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},fy=(e,t)=>({intent:e,...t}),py="remote_search",my="message_reactions",hy={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},gy="connector",yy="context.collect",k=e=>({type:"string",description:e}),O=e=>({type:"number",description:e}),Oe=e=>({type:"boolean",description:e}),U=k("Sheet name. Omit for the sheet the user is looking at."),Ar=k("Slide id, as `inspect` reports it.");function v(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 ae={undoable:!1,visible:!0},R={undoable:!0,visible:!0},Tr={undoable:!1,visible:!0},Qe={undoable:!1,visible:!1},by=[v("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:O("1-based page number.")},["page"],ae),v("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:k("Text to find."),next:Oe("Jump to the next match instead of the first.")},["query"],ae),v("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"],ae),v("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:k("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],R),v("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"],Tr),v("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Tr),v("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:O("1-based page number."),text:k("The note's text."),left:O("Distance from the left edge, in PDF points (72 per inch)."),top:O("Distance from the top edge, in PDF points."),width:O("Box width in points. Omit for a sensible default."),height:O("Box height in points. Omit for a sensible default."),fontSize:O("Font size in points. Omit for 12.")},["page","text","left","top"],Qe),v("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:O("1-based page number."),text:k("The exact phrase to highlight, as it appears in the page's text."),occurrence:O("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],Qe)],_y=[v("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:U,range:k("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],R),v("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:U,range:k("A1 notation."),formula:k("Including the leading `=`.")},["range","formula"],R),v("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:U,range:k("A1 notation."),bold:Oe("Bold on or off."),italic:Oe("Italic on or off."),fontSize:O("Point size."),fontColor:k("CSS colour, e.g. `#b91c1c`."),background:k("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:k("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],R),v("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:U,at:O("1-based row number to insert before."),count:O("How many. Omit for 1.")},["at"],R),v("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:U,at:O("1-based first row to delete."),count:O("How many. Omit for 1.")},["at"],R),v("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:U,at:O("1-based column number to insert before."),count:O("How many. Omit for 1.")},["at"],R),v("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:U,at:O("1-based first column to delete."),count:O("How many. Omit for 1.")},["at"],R),v("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:U,range:k("A1 notation.")},["range"],R),v("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:U,range:k("A1 notation.")},["range"],R),v("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:U,range:k("A1 notation covering the rows to sort, header excluded."),column:O("1-based column *within the range*, not within the sheet."),ascending:Oe("Ascending. Omit for ascending.")},["range","column"],R),v("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:k("Name for the new sheet.")},["name"],R),v("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:k("Current name."),name:k("New name.")},["sheet","name"],R),v("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:k("Name of the sheet to delete.")},["sheet"],R),v("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:U,range:k("A1 notation to select. Omit to only switch sheets.")},[],ae)],Ey=[v("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:O("The offset the paragraph starts at, exactly as `inspect` prints it."),text:k("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],R),v("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:O("Character offset where the replaced text starts, as `inspect` reports offsets."),end:O("Character offset just past the last character to replace."),text:k("The replacement text. A newline starts a new paragraph.")},["start","end","text"],R),v("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:O("Character offset, as `inspect` reports offsets."),text:k("The text to insert.")},["index","text"],R),v("word.appendText",["word"],"Add text at the end of the document.",{text:k("The text to append.")},["text"],R),v("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:k("Paragraph text. Newlines start further paragraphs."),index:O("Character offset to insert at. Omit for the end of the document.")},[],R),v("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:O("Start character offset."),end:O("End character offset. Omit for a caret.")},["start"],ae)],Iy=[v("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Ar,element:k("Element id, as `inspect` reports it."),text:k("The new text.")},["slide","element","text"],Qe),v("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:Ar,element:k("Element id."),left:O("Distance from the left edge, in pixels."),top:O("Distance from the top edge, in pixels."),width:O("Width in pixels."),height:O("Height in pixels.")},["slide","element"],Qe)],Kn=[...by,..._y,...Ey,...Iy];function Sy(e){return Kn.filter(t=>t.kinds.includes(e))}function Ay(e){return Kn.find(t=>t.op===e)}const Cr=/(?: {2,}|\\)$/,Ty=/^\*\*([^*]+)\*\*\s+(.*)$/;function vr(e){const t=Ty.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Cy(e){const t=(e??"").replace(/\r\n/g,`
|
|
20
|
+
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},Pr={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."},Fg=ca("quote"),jg={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},Gg=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ua(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=Gg(J(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function Wg(e,t,n){const r=[],o=[];for(const s of e){const a=ua(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const la=It.map(e=>e.key),da="product",fa="agreement";function pa(e,t){return`${e}:${t}`}function Vg(e){return`${da}:${e}`}function Hn(e,t){return`/apps/sales${e}?${Gn}=${encodeURIComponent(t)}`}function Hg(e,t){const n=e.businessEntityId||t;if(n)return Hn(`/${F(e.kindKey).path}/${e.id}`,n)}function qg(e,t){const n=e.businessEntityId||t;return n?Hn(`/product/${e.id}`,n):void 0}function Yg(e){return`${fa}:${e}`}function zg(e,t){const n=e.businessEntityId||t;return n?Hn(`/agreement/${e.id}`,n):void 0}function Xg(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return la.includes(n)?e.slice(t+1):void 0}function Qg(e){const t=new Set([pa(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 Zg=4;function Jg(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function eh(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const th=["cash","credit","direct_debit","card","other"];function nh(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 oh=[{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 qn(e){return e.settlement?.state??"unpaid"}function ma(e){const t=qn(e);return t==="paid"||t==="overpaid"}function Yn(e){return!!e.issuedAt&&e.status==="open"&&!ma(e)}function sh(e,t){return!Yn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function ih(e){return e.totals?.grossCents??0}function ah(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 ch(e,t,n){const r=ih(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const ga=["current","d1_30","d31_60","d61_90","d90_plus"],uh=864e5;function lh(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/uh)}function dh(e,t){if(!Yn(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?lh(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:qn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function ha(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function fh(e){const t=Object.fromEntries(ga.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[ha(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const ph="receivables.company";function mh(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 gh(e){return e.type==="agent"}const ya=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function hh(e){return ya.includes(e)}const yh="WORK_COMMENT_ADDED",bh="WORK_ITEM_ASSIGNED",_h="WORK_ITEM_STATUS_CHANGED";function Eh(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))/ps)}function Ih(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(Ie[s]>0&&(r+=Ie[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const a=Eh(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 St=[{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"}],Sh=St.map(e=>e.key);function Ah(e){return e?.types?.length?e.types:St}function Th(e,t){return t.find(n=>n.key===e)}function Ch(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 vh(...e){return e.map(t=>St.find(n=>n.key===t)).filter(t=>!!t)}const ba="work_item",_a="work_project",Ea="work_activity",kh="work_cycle";function Ia(e){return`${ba}:${e}`}function zn(e){return`${_a}:${e}`}function Oh(e){return`${Ea}:${e}`}function Mh(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Rh(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 Nh(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Dh(e,t=25){const n=new Set([Ia(e.id)]);e.projectId&&n.add(zn(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 wh(e){return[zn(e.id)]}const At=[{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}],Xn=At.map(e=>e.key);function Sa(e){return e?.statuses?.length?e.statuses:At}function Aa(e,t){return t.find(n=>n.key===e)?.category??"todo"}function xh(e,t){return t.find(n=>n.key===e)}function Ph(e){const t=Sa(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Ta(t)[0]?.key??At[0].key}function Ta(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Lh(e,t){return Aa(e,t)==="done"}function Ca(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function $h(e,t){const n=Ca(e)||"status",r=new Set([...t,...Xn]);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 Kh(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}Xn.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 Uh(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function Bh(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 Fh=["day","week","month"];function jh(e){const t=e;if(!t||!Fh.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 va(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 Gh(e,t,n){const r=va(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function Wh(e){return e.startDate??Number.MAX_SAFE_INTEGER}function Vh(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const Hh=["statusKeys","typeKeys","labels","priority","assignees"],qh=["blockedOnly","watchingOnly","reportedByMe"],Yh=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],zh=["list","board","calendar","workload"],Xh=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Qh=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function ka(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Xh.has(t)?"image":t==="application/pdf"?"pdf":Qh.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,Oa={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},Zh=25*ye,Jh=5;function ey(e,t){const n=ka(e);return n==="unsupported"?"unsupported":t>Oa[n]?"too-large":null}const ty="ai-tool";function ny(e){return e.access==="read"?"idempotent":e.reversible??"none"}function Qn(e){return e.access!=="read"&&e.effect!=="internal"}function Ma(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=Ma(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const oy="assist-source",sy=["blocking","due","open"];function iy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Lr={blocking:0,due:1,open:2};function ay(e,t){return Lr[e.band??"open"]-Lr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const cy="bookable-source",uy="bookkeeping",ly={get:"/bookable/get",issued:"/bookable/issued",ledgerCategories:"/bookable/ledger-categories",settled:"/bookable/settled"},dy={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 fy(e){return`oc:${e}`}function py(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function my(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function gy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ra(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(a=>!n.has(a.intent)).map(a=>yy(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 Na(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 hy(e,t){const n=Na(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function yy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function by(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ra(r,o))n.push({channel:r,description:o,capability:s})}return n}function _y(e,t){return t.filter(n=>n.capability.intent===e)}function Da(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Ey(e,t){return Da(e.scheme,t)}function Iy(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 Sy(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 Ay=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Ty(e){const t=Ay.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}var wa=(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))(wa||{});const Cy={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 vy(e){return e?Cy[e]??"note":"note"}const ky="message_window",Oy="message_templates",My={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Ry=(e,t)=>({intent:e,...t}),Ny="remote_search",Dy="message_reactions",wy={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},xy="connector",Py="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."),$r=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},Kr={undoable:!1,visible:!0},ut={undoable:!1,visible:!1},Ly=[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"],Kr),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Kr),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"],ut),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"],ut)],$y=[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)],Ky=[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)],Uy=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:$r,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],ut),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:$r,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"],ut)],Zn=[...Ly,...$y,...Ky,...Uy];function By(e){return Zn.filter(t=>t.kinds.includes(e))}function Fy(e){return Zn.find(t=>t.op===e)}const Ur=/(?: {2,}|\\)$/,jy=/^\*\*([^*]+)\*\*\s+(.*)$/;function Br(e){const t=jy.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Gy(e){const t=(e??"").replace(/\r\n/g,`
|
|
21
21
|
`).split(`
|
|
22
|
-
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(
|
|
23
|
-
`)}),i=[])},d=()=>{u(),c(),o()};let l=0;for(;l<t.length;){const f=t[l]??"",m=f.match(/^```(\w*)\s*$/);if(m){d();const
|
|
24
|
-
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){d(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),l++;continue}const y=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(y){d(),n.push({type:"image",url:y[2],...y[1]?{alt:y[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(f)){u(),o(),i.push(f.replace(/^>\s?/,"")),l++;continue}if(f.trim()===""){d(),l++;continue}c(),o();const
|
|
25
|
-
`:" ")),l++}return d(),n}function
|
|
22
|
+
`),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(Br(m)):r={style:f,items:[Br(m)]}};let a=[],i=[];const u=()=>{if(a.length){const f=a.join("").trim();f&&n.push({type:"paragraph",text:f}),a=[]}},c=()=>{i.length&&(n.push({type:"quote",text:i.join(`
|
|
23
|
+
`)}),i=[])},d=()=>{u(),c(),o()};let l=0;for(;l<t.length;){const f=t[l]??"",m=f.match(/^```(\w*)\s*$/);if(m){d();const g=[];for(l++;l<t.length&&!/^```\s*$/.test(t[l]??"");)g.push(t[l]??""),l++;l++,n.push({type:"code",...m[1]?{lang:m[1]}:{},text:g.join(`
|
|
24
|
+
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){d(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),l++;continue}const y=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(y){d(),n.push({type:"image",url:y[2],...y[1]?{alt:y[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(f)){u(),o(),i.push(f.replace(/^>\s?/,"")),l++;continue}if(f.trim()===""){d(),l++;continue}c(),o();const E=Ur.test(f);a.push(f.replace(Ur,"").trim()+(E?`
|
|
25
|
+
`:" ")),l++}return d(),n}function Wy(e,t){return En(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
|
|
26
26
|
|
|
27
|
-
`).trim()}const Oy="documents.describe",ky="documents.inspect",My="documents.apply";function Ry(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 Ny="installation-id";function Dy(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}const xy="notification-source",wy=(e,t)=>`${e}.pref.${t}`,Py={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"]},Un=9e4,ha=["out_of_office"],ga=e=>ha.includes(e);function Ly(e,t,n){const r=n-e<Un,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&&!ga(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function $y(e,t){const n=t-e.lastSeenAt<Un,r=n||ga(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Ky(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 Uy(e){return e.providerAvailable&&e.allowed}const By="provisioning-source",Fy={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},jy="resources.describe",Gy="resources.search",Wy="resources.resolve",Vy="resources.attached";function Hy(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const qy="/provider/scope/related",Yy="/provider/scope/read",zy="/provider/scope/acts",ya="auth";function ba(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const de="/settings";function Xy(e){return typeof e=="string"&&(e===de||e.startsWith(`${de}/`))}function Qy(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?de:`${de}/${e.slice(0,t)}/${e.slice(t+1)}`}function Zy(e){return typeof e!="string"||e===""||e==="/"?!0:ba(e)===ya}function Jy(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _a(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Jy(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function Ea(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 Ia(e){return e.publicBasePath??`/apps/${e.name}`}function eb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Ia(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 Sa(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 Aa(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)_a(r.pattern).test(e)&&(!n||Sa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...Ea(n.pattern,e)}}:null}function tb(e,t){return Aa(e,t)!==null}const nb=10*1024*1024,rb=25*1024*1024,ob="sync-target",sb=20;function Bn(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 Ta(e,t,n){return Bn(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?$n(e):!0:!1}function ib(e){return e.produces==="draft"}function ab(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"&&Bn(e)||t.mode==="draft"&&($n(e)||e.access!=="read"&&!ib(e))?"hidden":t.gate&&Ta(e,t.gate,t.policy)?"held":"free"}const cb={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]"]},Ca=e=>{let t=e;return Object.values(cb).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},va=6e4,Oa=8e3,ka=2,Ma=.4,ub=3,lb=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 Ra(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<ub||lb.has(n)||t.add(n);return[...t]}function Na(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 Da(e,t=va){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=>Ca(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const xa=60;function db(e,t,n=xa){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 fb(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<Oa)return{trigger:!1,reason:"too_soon"};const o=Da(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<ka)return{trigger:!1,reason:"too_few_new"};const a=Ra(o.text);return a.length?r.lastQueryTerms?.length&&Na(a,r.lastQueryTerms)<Ma?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const pb=["personal","organization","connections","flows","work","administration","ai"],mb="navNotice",ft={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},wa="NL",hb=15,gb=8,yb=Array.from(new Set(Object.values(ft).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Or(e){if(e)return ft[e.trim().toUpperCase()]}function ke(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function kr(e){if(e.length>hb)return null;for(const t of yb){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(ft)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(ke(s,r))return`+${t}${s}`}return null}return e.length<gb?null:`+${e}`}function bb(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 _b(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function Xt(e,t){if(!e)return null;const n=bb(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return kr(o);if(o.startsWith("00"))return kr(o.slice(2));const s=Or(t)??Or(wa);if(!s)return null;const a=s.trunkPrefix;if(a&&o.startsWith(a)){const i=o.slice(a.length);return ke(i,s)?`+${s.callingCode}${i}`:null}if(o.startsWith(s.callingCode)){const i=o.slice(s.callingCode.length);if(ke(i,s))return`+${s.callingCode}${i}`}return!a&&ke(o,s)?`+${s.callingCode}${o}`:null}function Eb(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function Fn(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 Ib(e){const t=Fn(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Sb=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function Pa(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 Sb.has(n)&&t.length>=3?t.slice(-3).join("."):n}const La=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 Ab(e){const t=Pa(e);return t?La.has(t):!1}function Tb(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Cb(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=Xt(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=Xt(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=Fn(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const vb=[/<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],Mr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,Ob=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function kb(e){const t=e.split(`
|
|
28
|
-
`);for(let n=0;n<t.length;n++)if(
|
|
29
|
-
`).trim();return e}const
|
|
27
|
+
`).trim()}const Vy="documents.describe",Hy="documents.inspect",qy="documents.apply";function Yy(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 zy="installation-id";function Xy(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 Qy(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const Fr="main",be=e=>`${e.app}:${e.entry}`,$t=e=>be({app:e.app,entry:e.entry.id}),jr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Zy(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)),d=new Map,l=new Map,f=new Map;for(const _ of t)for(const T of _.nav??[])for(const x of T.entries){const B={app:_.name,entry:x};if(d.set($t(B),B),T.workspace!=="apps"){l.set(T.workspace,[...l.get(T.workspace)??[],{item:B,section:T.section}]);continue}const Y=f.get(_.name)??[],re=T.section??Fr;let ie=Y.find(P=>P.key===re);ie||(ie={key:re,items:[]},T.section&&(ie.label={key:`${_.name}:section_${T.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const T=u.get(_.key),x=new Map(_.sections.map(P=>[P,[]]));for(const{item:P,section:z}of l.get(_.key)??[]){const Ct=z&&x.has(z)?z:_.sections[0];x.get(Ct)?.push(P)}const B=T?.sections??[],Y=new Set(B.flatMap(P=>(P.entries??[]).map(be))),re=new Set((T?.excluded??[]).map(be));return[...B.map(P=>P.key),..._.sections.filter(P=>!B.some(z=>z.key===P))].map(P=>{const z=B.find(oe=>oe.key===P),Ct=(z?.entries??[]).flatMap(oe=>d.get(be(oe))??[]),oc=(x.get(P)??[]).filter(oe=>!Y.has($t(oe)));return{key:P,label:z?.label?{text:z.label}:{key:`section_${P}`},items:[...Ct,...oc].filter(oe=>!re.has($t(oe)))}})},b=_=>(_.sections??[]).map(T=>({key:T.key,...T.label?{label:{text:T.label}}:{},items:(T.entries??[]).flatMap(x=>d.get(be(x))??[])})),y=[...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(y.flatMap(_=>[...jr(_.sections)])),g=_=>_.map(T=>({...T,items:T.items.filter(x=>(x.entry.permissions??[]).every(a))})).filter(T=>T.items.length>0),h=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const T=u.get(_);if(T?.visibleByDefault===!1)return!1;const x=T?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},I=y.map(_=>{const T=u.get(_.key);return{..._,label:T?.label?{text:T.label}:_.label,icon:T?.icon??_.icon,order:T?.order??_.order}}).sort((_,T)=>_.order-T.order),v=I.map(({order:_,...T})=>{const x=c.has(T.key)?"default":"own";return{...T,group:"workspaces",kind:x,customized:x==="default"&&u.has(T.key),visible:h(T.key),visibleByDefault:p(T.key)}}),C=I.filter(_=>h(_.key)).map(_=>({..._,sections:g(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...T})=>({...T,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=g(f.get(_.name)??[{key:Fr,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((_,T)=>Gr(_).localeCompare(Gr(T))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const T of jr(_.sections))Q[T]??=[],G.get(_.key)===T?Q[T].unshift(_.key):Q[T].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:v,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Gr=e=>"text"in e.label?e.label.text:e.label.key,Jy="notification-source",eb=(e,t)=>`${e}.pref.${t}`,tb={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"]},Jn=9e4,xa=["out_of_office"],Pa=e=>xa.includes(e);function nb(e,t,n){const r=n-e<Jn,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&&!Pa(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function rb(e,t){const n=t-e.lastSeenAt<Jn,r=n||Pa(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function ob(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 sb(e){return e.providerAvailable&&e.allowed}const ib="provisioning-source",ab={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},cb="resources.describe",ub="resources.search",lb="resources.resolve",db="resources.attached";function fb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const pb="/provider/scope/related",mb="/provider/scope/read",gb="/provider/scope/acts",La="auth";function $a(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function hb(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 bb(e){return typeof e!="string"||e===""||e==="/"?!0:$a(e)===La}function _b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ka(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${_b(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function Ua(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 Ba(e){return e.publicBasePath??`/apps/${e.name}`}function Eb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Ba(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 Fa(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 ja(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ka(r.pattern).test(e)&&(!n||Fa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...Ua(n.pattern,e)}}:null}function Ib(e,t){return ja(e,t)!==null}const Sb=10*1024*1024,Ab=25*1024*1024,Tb="sync-target",Cb=20;function er(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 Ga(e,t,n){return er(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?Qn(e):!0:!1}function vb(e){return e.produces==="draft"}function kb(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"&&er(e)||t.mode==="draft"&&(Qn(e)||e.access!=="read"&&!vb(e))?"hidden":t.gate&&Ga(e,t.gate,t.policy)?"held":"free"}const Ob={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]"]},Wa=e=>{let t=e;return Object.values(Ob).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Va=6e4,Ha=8e3,qa=2,Ya=.4,Mb=3,Rb=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 za(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Mb||Rb.has(n)||t.add(n);return[...t]}function Xa(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 Qa(e,t=Va){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=>Wa(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Za=60;function Nb(e,t,n=Za){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 Db(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<Ha)return{trigger:!1,reason:"too_soon"};const o=Qa(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<qa)return{trigger:!1,reason:"too_few_new"};const a=za(o.text);return a.length?r.lastQueryTerms?.length&&Xa(a,r.lastQueryTerms)<Ya?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const wb=["personal","organization","connections","flows","work","administration","ai"],xb="navNotice",Tt={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}},Ja="NL",Pb=15,Lb=8,$b=Array.from(new Set(Object.values(Tt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Wr(e){if(e)return Tt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Vr(e){if(e.length>Pb)return null;for(const t of $b){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Tt)){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<Lb?null:`+${e}`}function Kb(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 Ub(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function dn(e,t){if(!e)return null;const n=Kb(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Vr(o);if(o.startsWith("00"))return Vr(o.slice(2));const s=Wr(t)??Wr(Ja);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 Bb(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function tr(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 Fb(e){const t=tr(e);return t?t.slice(t.lastIndexOf("@")+1):null}const jb=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function ec(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 jb.has(n)&&t.length>=3?t.slice(-3).join("."):n}const tc=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 Gb(e){const t=ec(e);return t?tc.has(t):!1}function Wb(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Vb(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=dn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=dn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=tr(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const Hb=[/<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],Hr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,qb=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Yb(e){const t=e.split(`
|
|
28
|
+
`);for(let n=0;n<t.length;n++)if(qb.test(t[n])||Hr.test(t[n])&&t.slice(n+1,n+4).some(r=>Hr.test(r)))return t.slice(0,n).join(`
|
|
29
|
+
`).trim();return e}const zb=/^(?:https?:|mailto:|tel:)/i,Xb=/^(?:https?:|cid:|data:image\/)/i;function Kt(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const Qb=/(!\[[^\]]*\]\([^)]*\))/;function qr(e){return e.replace(/\s+/g," ").trim().split(Qb).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function Ut(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function Zb(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Kt(r,"src");return Xb.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=qr(o.replace(/<[^>]*>/g,"")),a=Kt(r,"href");return zb.test(a)?`[${s||Ut(a)}](${Ut(a)})`:s})}const Jb=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,e_=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,t_=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function n_(e,t){return/<table\b/i.test(e)||e.includes(`
|
|
30
30
|
|
|
31
|
-
|`)||t.includes("![")||t.length>200}const
|
|
31
|
+
|`)||t.includes("![")||t.length>200}const r_=40,o_={left:"---",center:":---:",right:"---:"};function s_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function i_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function a_(e){const t=[];for(const a of e.matchAll(e_)){const i=[];for(const u of a[1].matchAll(t_)){const c=i_(u[3]);if(n_(u[3],c))return null;i.push({text:c,align:s_(u[2])})}if(i.length===0)return null;i.some(u=>u.text!=="")&&t.push(i)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(a=>a.length!==n))return null;const r=a=>`| ${a.map(i=>i.text).join(" | ")} |`,o=t[1].map(a=>o_[a.align]).join(" | "),s=t.slice(1).map(r).join(`
|
|
32
32
|
`);return`
|
|
33
33
|
|
|
34
34
|
${r(t[0])}
|
|
35
35
|
| ${o} |
|
|
36
36
|
${s}
|
|
37
37
|
|
|
38
|
-
`}function
|
|
39
|
-
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function
|
|
38
|
+
`}function c_(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
|
|
39
|
+
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function u_(e){let t=e;for(let n=0;n<r_;n++){const r=Jb.exec(t);if(!r||r.index===void 0)break;const s=a_(r[1])??`
|
|
40
40
|
|
|
41
|
-
${
|
|
41
|
+
${c_(r[1])}
|
|
42
42
|
|
|
43
|
-
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function
|
|
44
|
-
`),t&&(n=
|
|
43
|
+
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function Yr(e,t){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<!--[\s\S]*?-->/g,""),n=n.replace(/<br\s*\/?>/gi,`
|
|
44
|
+
`),t&&(n=u_(Zb(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
|
|
45
45
|
|
|
46
46
|
`),n=n.replace(/<\/(div|li|tr)>/gi,`
|
|
47
|
-
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function
|
|
47
|
+
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function zr(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const l_={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function Xr(e){return e.replace(/ /gi," ").replace(/&([a-z]+);/gi,(t,n)=>l_[n.toLowerCase()]??t).replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>zr(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>zr(parseInt(n,16))??t).replace(/&/gi,"&")}function Qr(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
48
48
|
`).replace(/\n{3,}/g,`
|
|
49
49
|
|
|
50
|
-
`).trim()}const $a=/<\s*(html|body|div|p|table|br|span)\b/i;function Vb(e){return $a.test(e)}function Hb(e){return Ka(e,!1)}function qb(e){return Ka(e,!0)}function Ka(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of vb){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=wr(xr(Nr(r,t)));return o||(o=wr(xr(Nr(e,t)))),kb(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=_u;exports.ACTIVITY_CATALOG=G;exports.AGING_BUCKETS=Xi;exports.AGREEMENT_SCOPE_KIND=qi;exports.AGREEMENT_TRANSITIONS=qr;exports.AI_ATTACHMENT_LIMITS=ua;exports.AI_ATTACHMENT_MAX_PER_TURN=Pg;exports.AI_ATTACHMENT_TURN_BUDGET=wg;exports.AI_CAPABILITIES=et;exports.AI_TOOL_PROVIDER_GROUP=$g;exports.AI_VENDORS=rn;exports.ALLOWED_LINK_SCHEMES=oo;exports.APP_PERMISSIONS=Py;exports.ARTICLE_SCOPE_KIND=Ed;exports.ARTIFACT_MAX_BLOCKS=Pe;exports.ARTIFACT_MAX_BODY_BYTES=ro;exports.ARTIFACT_MAX_CELL_LEN=Q;exports.ARTIFACT_MAX_KPI_ITEMS=Ue;exports.ARTIFACT_MAX_LIST_ITEMS=Le;exports.ARTIFACT_MAX_TABLE_COLUMNS=Ke;exports.ARTIFACT_MAX_TABLE_ROWS=$e;exports.ARTIFACT_MAX_TEXT_LEN=tt;exports.ASSET_GROUP_SEEDS=Jl;exports.ASSIGNMENT_SCOPE_KIND=lo;exports.ASSIST_BANDS=Fg;exports.ASSIST_SOURCE_PROVIDER_GROUP=Bg;exports.ATTENTION_STATUSES=rs;exports.AT_RISK_GAP=Mi;exports.AUTH_APP_NAME=ya;exports.AUTO_READY_MIN_PROPOSALS=Zs;exports.AUTO_READY_RATE=Js;exports.ActivityTypeRegistry=Br;exports.BOOKABLE_KINDS=Bi;exports.BOOKABLE_ROUTES=Hg;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=Wg;exports.BOOKKEEPING_PROVIDER_GROUP=Vg;exports.BOOKKEEPING_ROUTES=qg;exports.BUILT_IN_ONLY=oc;exports.BULK_PENALTY=os;exports.BUSINESS_ENTITY_LIST_SERVICE=Vu;exports.BUSINESS_ENTITY_PARAM=Mn;exports.CADENCE_FLOOR_MS=Oa;exports.CADENCE_MIN_NEW_SEGMENTS=ka;exports.CADENCE_MIN_NOVELTY=Ma;exports.CADENCE_WINDOW_MS=va;exports.CAPITALIZATION_THRESHOLD_CENTS=Yo;exports.CLASSIFY_VARS=up;exports.CLEARABLE_FIELDS=ph;exports.COMPANY_RECEIVABLES_SERVICE=zh;exports.CONNECTOR_PROVIDER_GROUP=gy;exports.CONTEXT_COLLECT_SERVICE=yy;exports.CORE_DIMENSIONS=zc;exports.CRM_ACTIVITY_SCOPE_KIND=Cl;exports.CRM_CALL_CHANNELS=Ol;exports.CRM_CALL_LOGGED=$o;exports.CRM_CALL_OUTCOMES=kl;exports.CRM_NOTE_ADDED=Lo;exports.CRM_STAGE_CHANGED=vl;exports.CUSTOM_RESOLUTION_PREFIX=gd;exports.CommunicationScheme=ma;exports.DAY_MS=Xo;exports.DEFAULT_CHECK_IN_DAYS=Oi;exports.DEFAULT_DUNNING_POLICY=Th;exports.DEFAULT_FORECAST_WEEKS=Ls;exports.DEFAULT_MEMORY_BUDGET=lf;exports.DEFAULT_NUMBER_PADDING=wh;exports.DEFAULT_PHONE_REGION=wa;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Ah;exports.DEFAULT_TEMPLATE_CONDITIONS=Ih;exports.DEFAULT_TOLERANCE=fi;exports.DEFAULT_WORKSPACES=nh;exports.DEMAND_SOURCE_PROVIDER_GROUP=vf;exports.DOCUMENT_APPLY_SERVICE=My;exports.DOCUMENT_DESCRIBE_SERVICE=Oy;exports.DOCUMENT_INSPECT_SERVICE=ky;exports.DOCUMENT_MAX_BLOCKS=Pe;exports.DOCUMENT_MAX_BODY_BYTES=ro;exports.DOCUMENT_MAX_CELL_LEN=Q;exports.DOCUMENT_MAX_KPI_ITEMS=Ue;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=wt;exports.DOCUMENT_MAX_LIST_ITEMS=Le;exports.DOCUMENT_MAX_RECIPIENT_LINES=no;exports.DOCUMENT_MAX_TABLE_COLUMNS=Ke;exports.DOCUMENT_MAX_TABLE_ROWS=$e;exports.DOCUMENT_MAX_TEXT_LEN=tt;exports.DOCUMENT_MAX_TOTALS_ROWS=Pt;exports.DOCUMENT_OPERATIONS=Kn;exports.DRAFT_FIELDS=fh;exports.DUTCH_SLOT_LABELS=ji;exports.EMPTY_WORKFLOW=hp;exports.ENABLED_TRANSACTION_KINDS=Rn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=Wo;exports.FEATURE_MESSAGE_REACTIONS=my;exports.FEATURE_REMOTE_SEARCH=py;exports.FIXED_KINDS=st;exports.FIXED_LEVELS=ge;exports.FIXED_TYPES=lt;exports.FIXED_UNITS=ul;exports.FOLLOW_UP_HOURS=ss;exports.FROZEN_WRITABLE_FIELDS=lh;exports.HOUR_MS=zo;exports.HTML_BODY_RE=$a;exports.INELIGIBLE=H;exports.INSTALLATION_HEADER=Ny;exports.INTERACTION_KIND=qs;exports.InteractionParticipantRole=dy;exports.KB_FALLBACK_LOCALE=ys;exports.KB_LOCALES=Ge;exports.LEAD_STATUSES=_l;exports.LEDGER_TEMPLATES=Pd;exports.LEGAL_FORMS=Hu;exports.LIFECYCLE_STAGES=bl;exports.LOCALES=Ge;exports.LOOSE_STATUSES=dt;exports.MAIL_HINT_HEADERS=ts;exports.MANUAL_PRICE_SOURCE=To;exports.MAX_ACTIONS=Se;exports.MAX_ASSIGNMENT_TURNS=fo;exports.MAX_BLOCKS=vt;exports.MAX_CHOICE_OPTIONS=Rt;exports.MAX_COLLECTION_DEPTH=mn;exports.MAX_DELEGATION_DEPTH=po;exports.MAX_EDITABLE_FILE_BYTES=nb;exports.MAX_FIELDS=Ee;exports.MAX_LIST_ITEMS=Ie;exports.MAX_MEMORY_BROWSE=sf;exports.MAX_MEMORY_BUDGET=uf;exports.MAX_MEMORY_CHARS=af;exports.MAX_RULE_DEPTH=qt;exports.MAX_SCORE_LEVELS=Dt;exports.MAX_SHOWN_KEYS=xa;exports.MAX_TOPIC_CANDIDATES=wi;exports.MAX_TOPIC_EXAMPLES=xi;exports.MAX_TOPIC_EXAMPLE_CHARS=ve;exports.MAX_VIEWABLE_FILE_BYTES=rb;exports.MICROS_PER_CENT=Co;exports.MIN_MEMORY_BUDGET=cf;exports.MIN_SCORE_LEVELS=Nt;exports.MODEL_TIERS=Z;exports.NAV_NOTICE_SLOT=mb;exports.NL_BV_TEMPLATE=Es;exports.NL_PAYMENT_TERMS=Bh;exports.NL_TAX_CODES=pf;exports.NL_TAX_RATES=ff;exports.NL_VAT_BOXES=pi;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=xy;exports.OFF_TRACK_GAP=Ri;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=yf;exports.PAUSE_HOLD=Ye;exports.PAUSE_SNOOZED=He;exports.PAUSE_WAITING_FOR_CUSTOMER=qe;exports.PAYMENT_TERM_METHODS=$h;exports.PAYROLL_CATEGORIES=Is;exports.PHONE_REGIONS=ft;exports.PLAYBOOK_RUN_APPROVAL_ACT=Xf;exports.PLAYBOOK_RUN_SCOPE_KIND=Gs;exports.PRESENCE_ONLINE_WINDOW_MS=Un;exports.PRESENCE_SURVIVES_OFFLINE=ha;exports.PRICE_PERS=dc;exports.PRODUCT_SCOPE_KIND=Hi;exports.PROFILE_TOOL_DISPOSITIONS=_f;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=ly;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=uy;exports.PROVISIONING_ROUTES=Fy;exports.PROVISIONING_SOURCE_GROUP=By;exports.PUBLIC_EMAIL_DOMAINS=La;exports.PURCHASE_KINDS=ui;exports.PURCHASE_ORDER_KIND=Dp;exports.READ_STEP_TYPES=Kt;exports.RECEIPT_BOOK_ACT=Ku;exports.RECEIPT_SCOPE_KIND=$u;exports.RELATED_SUBJECT_KINDS=Cs;exports.REPORT_VIEW_LAYOUTS=Yc;exports.RESERVED_SEGMENTS=eh;exports.RESERVED_STATUS_KEYS=Ln;exports.RESERVED_TYPE_KEYS=og;exports.RESOURCE_ATTACHED_SERVICE=Vy;exports.RESOURCE_DESCRIBE_SERVICE=jy;exports.RESOURCE_RESOLVE_SERVICE=Wy;exports.RESOURCE_SEARCH_SERVICE=Gy;exports.SALES_KINDS=ut;exports.SALES_SCOPE_KINDS=Vi;exports.SCHEDULE_ENTRY_SCOPE_KIND=$s;exports.SCHEDULE_EVENT=gi;exports.SCOPE_ACTS_ROUTE=zy;exports.SCOPE_READ_ROUTE=Yy;exports.SCOPE_RELATED_ROUTE=qy;exports.SEGMENT_FILTER_KEYS=Il;exports.SEGMENT_LAYOUTS=Al;exports.SEGMENT_LIST_FILTERS=wo;exports.SEGMENT_PRESENCE_FILTERS=Po;exports.SEGMENT_SORT_FIELDS=Sl;exports.SENDING_STALE_MS=Gu;exports.SETTINGS_BASE_PATH=de;exports.SETTINGS_CATEGORIES=pb;exports.SIGNATURE_INTENTS=pl;exports.SLA_METRICS=hm;exports.SLA_PAUSE_REASONS=gm;exports.STATUS_NAMES=ih;exports.STEP_MAX_TOKENS_MAX=Xs;exports.STEP_MAX_TOKENS_MIN=zs;exports.STEP_TYPES=mp;exports.STRATEGY_ITEM_SCOPE_KIND=Ci;exports.SUMMARY_MIN_LAST_CHARS=es;exports.SUMMARY_MIN_MESSAGES=Jo;exports.SYNC_RUN_MAX_ERRORS=sb;exports.SYNC_TARGET_PROVIDER_GROUP=ob;exports.SYSTEM_ONE_NON_GOALS=Kc;exports.SYSTEM_RESOLUTIONS=ps;exports.TERMINAL_ASSIGNMENT_STATUSES=uo;exports.TERMINAL_RUN_STATUSES=ei;exports.TRANSACTION_KINDS=Ki;exports.TRIGGER_VARS=ap;exports.UNARY_OPS=Xp;exports.UNKNOWN_KIND=Os;exports.UNKNOWN_LEVEL_ORDER=vi;exports.UNSUPPORTED=hy;exports.UNWORKED_RESOLUTIONS=hd;exports.USAGE_DIMENSIONS=Zr;exports.USAGE_DIMENSION_IDS=Jr;exports.USAGE_RECORDS_ROUTE=dl;exports.USAGE_SOURCE_PROVIDER_GROUP=ll;exports.UnresolvedRefError=vn;exports.WEBHOOK_EVENTS=Zi;exports.WORKSTREAM_SCOPE_KIND=Ks;exports.WORK_ACTIVITY_SCOPE_KIND=ta;exports.WORK_AREAS=bf;exports.WORK_COMMENT_ADDED=Jh;exports.WORK_CYCLE_SYNC_KIND=ug;exports.WORK_ITEM_ASSIGNED=eg;exports.WORK_ITEM_SCOPE_KIND=Ji;exports.WORK_ITEM_STATUS_CHANGED=tg;exports.WORK_PROJECT_SCOPE_KIND=ea;exports.WORK_SORT_FIELDS=Rg;exports.WORK_VIEW_FLAGS=Mg;exports.WORK_VIEW_LAYOUTS=Ng;exports.WORK_VIEW_LIST_FILTERS=kg;exports.W_PRIORITY=ue;exports.XAF_NAMESPACE=As;exports.acceptExampleCandidate=Zm;exports.accountTotals=Od;exports.accountTypeOf=ef;exports.accrualPostings=Yl;exports.actingIdentityKey=Fs;exports.activeWorkTypes=Xm;exports.activityIconOf=Wa;exports.activityJoinUrl=ec;exports.activitySnippet=Kr;exports.activityTextParams=Ur;exports.activityTimelineText=Ja;exports.activityTimestamp=Fr;exports.activityTypeInfo=$;exports.actorKey=zf;exports.addExampleCandidate=Qm;exports.addMonths=re;exports.addWorkingMs=it;exports.agePresenceEntry=$y;exports.aggregateUsage=vo;exports.agingBucketOf=Qi;exports.agingOf=Yh;exports.agreementEffectiveEnd=Cc;exports.agreementFromQuote=hc;exports.agreementHref=Nh;exports.agreementScopeKey=Rh;exports.aiAttachmentKind=ca;exports.aiAttachmentRejection=Lg;exports.aiBudgetLimit=xt;exports.aiBudgetPeriodKey=Vc;exports.aiBudgetPeriodStart=Qr;exports.aiBudgetState=Wc;exports.aiVendorAcceptsAttachment=Gc;exports.aiVendorDefaultModel=Bc;exports.aiVendorLabel=Uc;exports.aiVendorNeedsBaseUrl=jc;exports.aiVendorsWith=Fc;exports.allocate=fe;exports.allocateInvoice=$p;exports.appNameFromPath=ba;exports.applyApprovalDecision=cu;exports.applyRounding=Vm;exports.applySignature=ml;exports.approvalRate=Qs;exports.artifactBodyBytes=ao;exports.artifactOutline=co;exports.artifactToMarkdown=sn;exports.assignmentMismatch=tp;exports.assignmentScopeKey=Iu;exports.assignmentSubject=Tu;exports.availabilityByPerson=Cf;exports.awaitsNumber=dh;exports.balanceSheet=Nd;exports.belongsOnCalendar=Ef;exports.belongsToEntity=qu;exports.billableTimeGroups=Gm;exports.billedQuantity=Mo;exports.bindParams=qp;exports.bindValue=We;exports.bookingDocumentOf=uh;exports.bookingDocumentOfReceipt=Bu;exports.bookingLinesOf=Eo;exports.bookingSyncKey=Fu;exports.buildActivityPreview=nc;exports.buildChannelIntents=ey;exports.buildShareKeys=gu;exports.buildWindow=Da;exports.businessEntitySender=Bo;exports.calendarDaysBetween=ks;exports.calendarOf=at;exports.canConvert=mh;exports.canMoveAgreement=Ac;exports.canNestUnder=Ad;exports.canParent=Rm;exports.canTransition=ah;exports.canonicalJson=$t;exports.capabilityDefaultFlag=Rc;exports.capacityTotal=Af;exports.capacityWeights=Vf;exports.capitalizationThreshold=Zl;exports.carriesText=za;exports.cashForecast=xd;exports.categoryLabel=Cd;exports.categoryOf=oa;exports.causedBy=nm;exports.changesBilledLine=vc;exports.channelKindForScheme=cy;exports.channelKindOf=Va;exports.checkInOverdueMs=Fm;exports.clampStepMaxTokens=pp;exports.classifyMail=ad;exports.cleanMessageMarkdown=qb;exports.cleanMessageText=Hb;exports.cleanReceiptLines=kp;exports.codeQuery=Qu;exports.codedMessage=oy;exports.columnBalance=Dd;exports.companyReceivablesOf=Xh;exports.compareAssistRank=Gg;exports.compareReports=vd;exports.compareWorkTypes=Di;exports.conditionHolds=Uo;exports.contactName=El;exports.contractSignals=vp;exports.copyFrom=Fi;exports.correlationKeyFor=Yg;exports.costInPricePeriod=il;exports.costOverYear=Mp;exports.countsAsPlanned=ne;exports.coverageByPerson=Tf;exports.coverageFor=Df;exports.coversWorkstream=bn;exports.crmActivityAt=Rl;exports.cronMatches=hi;exports.currentAccountRelation=Gl;exports.currentLines=_c;exports.currentPeriod=Lh;exports.cycleDayIndex=_n;exports.cycleOrder=vg;exports.cycleState=Og;exports.dealValueCents=gc;exports.decideAssignmentState=Cu;exports.decideCadence=fb;exports.decideEach=ou;exports.decideIncomingCall=Qg;exports.decisionBand=$c;exports.defaultLocaleOf=bs;exports.defaultOffer=ii;exports.defaultStatusKey=yg;exports.defaultTemplateBlocks=Gi;exports.defineIntent=fy;exports.delegationRefusal=vu;exports.demandFor=Np;exports.depreciationParts=qo;exports.depreciationPostings=Hl;exports.depthOf=hs;exports.derivePresence=Ly;exports.describeClause=tu;exports.describeExpression=Jp;exports.digitsOf=Oo;exports.disabledIntentsFromCapabilities=Zg;exports.disposalLines=ql;exports.documentBodyBytes=ao;exports.documentKindOf=Ry;exports.documentOutline=co;exports.documentToMarkdown=sn;exports.documentToText=vy;exports.driftedFields=bi;exports.dueAtOf=Tm;exports.dueCharges=Ec;exports.dueDateFrom=Kh;exports.dunningRunOf=vh;exports.dunningStateOf=Wi;exports.effectiveEndAt=ce;exports.elapsedSeconds=Wm;exports.emailDomain=Ib;exports.emptyConditionLeaf=Qp;exports.endpointKey=Cb;exports.entityOwnerIds=Yu;exports.entryLinesOf=Gd;exports.entryNumber=$d;exports.entryProblems=Ld;exports.erlangC=Rs;exports.excessiveLending=Wl;exports.expectedFor=Tp;exports.extractParams=Ea;exports.extractTerms=Ra;exports.failureLines=$l;exports.fieldVarPath=am;exports.fillDocument=Pl;exports.fillText=Ko;exports.filterByEndpoint=ny;exports.filterByIntent=ty;exports.filterByTargetScheme=pa;exports.filterableDimensions=eu;exports.findAiVendor=pe;exports.findEvent=cm;exports.finishedAt=Tc;exports.fixedLevelForName=Dm;exports.fixedTypeForName=ag;exports.fixedTypes=cg;exports.flattenLocales=Dy;exports.floorToPeriod=te;exports.forecastIntervals=Ff;exports.formatActingIdentity=Bs;exports.formatCents=F;exports.formatClock=qm;exports.formatHm=Hm;exports.formatItemKey=dg;exports.formatMicros=nl;exports.formatPeriod=ee;exports.formatSeriesNumber=Ph;exports.formatSlaDuration=Om;exports.freshSources=Ug;exports.getActivitySeenUserIds=sc;exports.getContactEndpoints=yl;exports.getShortTitle=md;exports.getUrgencyScore=pd;exports.goodsReceiptProblems=oi;exports.groupDocumentLines=li;exports.hasReacted=Fp;exports.hashedPartOf=Ud;exports.healthCategory=xm;exports.healthsInCategory=wm;exports.heightOf=hn;exports.helpCenterText=_d;exports.humanizeAction=sp;exports.interactionIdOf=Ys;exports.interestOnDailyBalance=Bl;exports.interestPeriods=Fl;exports.isAgentUser=Qh;exports.isAssigned=dd;exports.isAssignmentTerminal=Eu;exports.isAssignmentTrigger=Vs;exports.isAssistantMode=Hc;exports.isAuthoredCrmActivity=Ml;exports.isAutoReady=_p;exports.isAutonomy=np;exports.isAwaitingThem=fs;exports.isBookable=ch;exports.isChatMessageActivity=ac;exports.isClosed=fd;exports.isConnectedType=Qa;exports.isDescendant=gs;exports.isEligible=ed;exports.isEmailActivity=ic;exports.isFrozen=Nn;exports.isHeldClock=Am;exports.isHtmlBody=Vb;exports.isInFlight=Ip;exports.isInteractionUnseen=ns;exports.isLandingPath=Zy;exports.isLikelyBulk=Zo;exports.isMessageShape=Qt;exports.isMessageType=Ha;exports.isMoreSpecificPattern=Sa;exports.isNoteShape=Zt;exports.isOpenClock=Ti;exports.isOutstanding=wn;exports.isOutwardTool=$n;exports.isOverdueOn=Fh;exports.isParked=as;exports.isPaused=ti;exports.isPlaybookAuthoredType=Xa;exports.isPricePer=mc;exports.isPublicEmailDomain=Ab;exports.isPublicPath=tb;exports.isPurchasable=cl;exports.isRecurringLine=Gr;exports.isReminderActive=cs;exports.isReplyableType=Ya;exports.isResultAccount=me;exports.isSellable=al;exports.isSettingsPath=Xy;exports.isSettled=zi;exports.isShorter=bc;exports.isSlaAtRisk=ud;exports.isSupportedCron=tm;exports.isTerminal=Ep;exports.isThreadLongEnough=rd;exports.isTranscriptType=Za;exports.isWebhookEvent=Zh;exports.isWorkClosed=bg;exports.isWorkTypeVisible=zm;exports.isWriteTool=Bn;exports.itemDossierKeys=mg;exports.itemKeyOf=Pu;exports.judgeRuleCase=rm;exports.kindFor=j;exports.ladderFor=ra;exports.ledgerRuleFor=Wu;exports.levelIn=ki;exports.levelOrder=Xe;exports.lineAffinity=Cn;exports.lineKey=lp;exports.lineNet=ot;exports.lineStatus=Vr;exports.lineTerm=P;exports.linkLabel=bd;exports.listedTransactionKinds=sh;exports.listeningAllowed=qc;exports.loanPostings=Vl;exports.loanSchedule=fn;exports.localeInstruction=Sd;exports.localeName=Id;exports.localesOf=Td;exports.looksLikeEmail=_b;exports.lookup=ln;exports.manualSettlement=Wh;exports.marginCents=lc;exports.markdownToDocument=Cy;exports.matchApprovalPolicy=iu;exports.matchContactToIntents=ry;exports.matchDocumentLines=di;exports.matchPublicRoute=Aa;exports.matchRate=ko;exports.matchRules=yi;exports.matchVerdict=Kp;exports.mcpCredentialScope=rf;exports.mcpToolPrefix=of;exports.measureRatio=Lm;exports.mergeDefaultFlags=Dc;exports.mergeShownKeys=db;exports.messageCountsAs=$r;exports.metricOption=nu;exports.minutesOn=En;exports.missingFieldPaths=um;exports.modelAcceptsAttachment=wc;exports.monthEnd=Vo;exports.monthParts=jo;exports.monthlyPeriods=Yd;exports.monthsIn=Go;exports.mustAsk=Ta;exports.narrowAutonomy=op;exports.needsPhoneRegion=Tb;exports.nestsUnderParent=qa;exports.nextLevelBelow=Nm;exports.nextOccurrenceDates=Cg;exports.nextSlaClock=Cm;exports.nextStatuses=Ui;exports.nextVersion=hh;exports.normalizeArtifactBlocks=io;exports.normalizeBlocks=Fa;exports.normalizeDocumentBlocks=io;exports.normalizeEmail=Fn;exports.normalizeExample=q;exports.normalizeGtin=Io;exports.normalizeIban=xo;exports.normalizeIbans=gl;exports.normalizeMeter=No;exports.normalizeUsageSource=fl;exports.normalizeVatNumber=hl;exports.noticeDeadline=nn;exports.notificationPrefKey=wy;exports.novelty=Na;exports.offerValid=si;exports.openCentsOf=ku;exports.operationDescriptor=Ay;exports.operationsForKind=Sy;exports.opsForFieldType=im;exports.orderForDocument=xp;exports.organizationSender=Ll;exports.outcomeOf=Sg;exports.overlap=Je;exports.overlapSeconds=Te;exports.overlaps=Nf;exports.paceRatio=$m;exports.parkMarksById=td;exports.parse=mi;exports.parseActingIdentity=qf;exports.parseAmount=cc;exports.parseCamt053=ho;exports.parseClockMinutes=pm;exports.parseCodedMessage=iy;exports.parseCron=On;exports.parseItemKey=fg;exports.parseLineKey=dp;exports.parseMicros=un;exports.parseMt940=yo;exports.parsePackingSlip=Pp;exports.parseRateCsv=rl;exports.parseRatePrice=Lt;exports.parseRecurrence=Tg;exports.parseStatement=wu;exports.parseWorkspacePath=rh;exports.parseXafOpening=Jd;exports.partialDisposalLines=Ql;exports.pathToRegex=_a;exports.patternFor=Sn;exports.patternStartTime=In;exports.pauseBitFor=mm;exports.paymentOfItem=Ru;exports.paymentStateOf=xn;exports.pendingApprovers=au;exports.periodAt=De;exports.periodOf=zd;exports.periodShare=Wr;exports.periodsInRange=Zc;exports.phoneSuffix=Eb;exports.pickMailHeaders=od;exports.pickTemplate=Dl;exports.placeLumps=Hf;exports.plainTextFromMarkdown=Pr;exports.planSlaEvent=Sm;exports.plannedBillable=xf;exports.plannedWorkTypeKey=Ps;exports.priceOver=Ze;exports.procedureOf=yp;exports.productCost=ci;exports.productHref=Mh;exports.productScopeKey=Oh;exports.profitAndLoss=Rd;exports.projectDossierKeys=hg;exports.proposalRequestIds=su;exports.proposeMatch=Ou;exports.publicBasePathFor=Ia;exports.publicRoutePatterns=eb;exports.quantityKey=Mc;exports.rateRecords=sl;exports.reactionWakesAssignment=Au;exports.readDefaultFlags=Nc;exports.readPath=Me;exports.readStepError=Ae;exports.receiptGroupOf=Uu;exports.receiptProblems=_o;exports.receiptState=Op;exports.receiptTotals=bo;exports.receivableRowOf=qh;exports.receivedFor=ri;exports.recencyOf=is;exports.recipientLocale=Nl;exports.reconciliationBalances=Mu;exports.refKey=An;exports.registrableDomain=Pa;exports.rejectExampleCandidate=Li;exports.relatedByDefault=df;exports.remainingMsOf=ze;exports.repriceLines=tl;exports.requiredAgents=xs;exports.requirementFor=ws;exports.resolutionsFor=yd;exports.resolveAccountCapabilities=fa;exports.resolveActivityText=Re;exports.resolveAutonomy=rp;exports.resolveChannelIntents=da;exports.resolvePrice=Ao;exports.resolveRateCard=Ju;exports.resolveRoute=Pc;exports.resolveSignature=Do;exports.resolveTier=Xr;exports.resolveWorkMode=Ky;exports.resolveWorkspace=th;exports.resourceKindOf=Hy;exports.restate=jr;exports.retryDelayMinutes=ju;exports.reversedLines=Bd;exports.rhythmOf=Jt;exports.rollupChildren=Bm;exports.roundHalfUp=D;exports.runActor=Yf;exports.runApprovalKey=Qf;exports.runEvalSuite=Kl;exports.runIdOfApprovalRef=Zf;exports.runInteractionId=Ap;exports.runKind=bp;exports.runOutcome=sm;exports.runSpans=Sc;exports.sanitizeInline=so;exports.sanitizeTranscript=Ca;exports.scheduleEntryScopeKey=jf;exports.scoreInteraction=ld;exports.scoreWorkItem=rg;exports.segmentIsEmpty=Tl;exports.selectLenses=nf;exports.serialize=Ce;exports.seriesStart=en;exports.serviceLevel=Ns;exports.sessionsHoldCannotReach=Xg;exports.sessionsToHold=zg;exports.settingsPath=Qy;exports.settlementPatch=Gh;exports.shadowByKey=zu;exports.shareKeyForTeam=cn;exports.shareKeyForUser=an;exports.shareKeysForViewer=yu;exports.shortTermPrincipal=Xl;exports.shortfalls=wf;exports.shouldRunAudioPipeline=Uy;exports.slaBadgeTone=vm;exports.slaHoursByInbox=cd;exports.slaHoursFor=ds;exports.slipProposal=wp;exports.sortStatuses=sa;exports.sourceKey=la;exports.splitLine=Oc;exports.spread=pn;exports.spreadOverWeights=Us;exports.startingCents=zl;exports.statusIn=gg;exports.statusRequiresApproval=Ig;exports.stepDate=aa;exports.stepsOf=gp;exports.strategyAncestorKeysFor=Mm;exports.strategyDossierKeys=km;exports.strategyItemScopeKey=kn;exports.stripHtml=Lr;exports.subjectKeyOf=Sp;exports.subjectOf=Tn;exports.subjectRef=jg;exports.suggestProjectKey=pg;exports.suggestTreatments=Lu;exports.suggestedHealth=Km;exports.summariseEval=Fo;exports.summarizeReactions=Up;exports.targetById=ep;exports.targetForActivityType=Jf;exports.targetOrder=jm;exports.taxCodeProblem=hf;exports.taxDateOf=V;exports.taxPercentOn=yn;exports.taxRateFor=vs;exports.taxRatesOn=mf;exports.termEndAt=Y;exports.termStartAt=tn;exports.termsFor=Ms;exports.tieredMicros=Ro;exports.timingOf=Hr;exports.toActingIdentity=js;exports.toE164=Xt;exports.toProductUnits=ai;exports.toTransactionTerm=Uh;exports.toolBareName=Hs;exports.toolDisplayName=ip;exports.toolReversible=Kg;exports.toolSourceKinds=bu;exports.toolVerdict=ab;exports.topicOfferedForTeam=$i;exports.topicsForTeam=Jm;exports.trafficIntensity=Ds;exports.transactionContext=gh;exports.transactionDossierKeys=xh;exports.transactionHref=kh;exports.transactionIdFromScope=Dh;exports.transactionKind=L;exports.transactionScopeKey=Yi;exports.transactionSlots=yh;exports.transactionTotals=gf;exports.transitoryLines=jd;exports.triggerFillsVar=cp;exports.truncateExample=Pi;exports.typeIn=ig;exports.typesFor=sg;exports.uniqueWorkStatusKey=_g;exports.uniqueWorkTypeKey=Ym;exports.usageAccountOf=zr;exports.usageAccountsOf=kc;exports.usageMetricId=eo;exports.usageMetrics=ru;exports.validateQuestions=Lc;exports.validateStatuses=Eg;exports.valueAtPath=Ws;exports.variableJump=ni;exports.vatPeriods=Gp;exports.vatReturn=jp;exports.waitHoursOf=rt;exports.wakesAssignment=Su;exports.withLineIds=fp;exports.workActivityScopeKey=lg;exports.workItemScopeKey=na;exports.workProjectScopeKey=Pn;exports.workRatio=Um;exports.workStatusKey=ia;exports.workTypeKey=Ni;exports.workingMsBetween=Ve;exports.workspacePath=oh;exports.workstreamScopeKey=Gf;exports.xafAuditfile=Qd;exports.xmlBlocks=B;exports.xmlText=C;exports.yearEndClosingLines=wd;
|
|
50
|
+
`).trim()}const nc=/<\s*(html|body|div|p|table|br|span)\b/i;function d_(e){return nc.test(e)}function f_(e){return rc(e,!1)}function p_(e){return rc(e,!0)}function rc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of Hb){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=Qr(Xr(Yr(r,t)));return o||(o=Qr(Xr(Yr(e,t)))),Yb(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=Ku;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=ga;exports.AGREEMENT_SCOPE_KIND=fa;exports.AGREEMENT_TRANSITIONS=lo;exports.AI_ATTACHMENT_LIMITS=Oa;exports.AI_ATTACHMENT_MAX_PER_TURN=Jh;exports.AI_ATTACHMENT_TURN_BUDGET=Zh;exports.AI_CAPABILITIES=ft;exports.AI_TOOL_PROVIDER_GROUP=ty;exports.AI_VENDORS=bn;exports.ALLOWED_LINK_SCHEMES=So;exports.APP_PERMISSIONS=tb;exports.ARTICLE_SCOPE_KIND=Ud;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Io;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=pt;exports.ASSET_GROUP_SEEDS=bd;exports.ASSIGNMENT_SCOPE_KIND=Oo;exports.ASSIST_BANDS=sy;exports.ASSIST_SOURCE_PROVIDER_GROUP=oy;exports.ATTENTION_STATUSES=Es;exports.AT_RISK_GAP=Hi;exports.AUTH_APP_NAME=La;exports.AUTO_READY_MIN_PROPOSALS=gi;exports.AUTO_READY_RATE=hi;exports.ActivityTypeRegistry=ro;exports.BOOKABLE_KINDS=sa;exports.BOOKABLE_ROUTES=ly;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=cy;exports.BOOKKEEPING_PROVIDER_GROUP=uy;exports.BOOKKEEPING_ROUTES=dy;exports.BUILT_IN_ONLY=Ac;exports.BULK_PENALTY=Is;exports.BUSINESS_ENTITY_LIST_SERVICE=ll;exports.BUSINESS_ENTITY_PARAM=Gn;exports.CADENCE_FLOOR_MS=Ha;exports.CADENCE_MIN_NEW_SEGMENTS=qa;exports.CADENCE_MIN_NOVELTY=Ya;exports.CADENCE_WINDOW_MS=Va;exports.CAPITALIZATION_THRESHOLD_CENTS=ds;exports.CLASSIFY_VARS=Op;exports.CLEARABLE_FIELDS=Ng;exports.COMPANY_RECEIVABLES_SERVICE=ph;exports.CONNECTOR_PROVIDER_GROUP=xy;exports.CONTEXT_COLLECT_SERVICE=Py;exports.CORE_DIMENSIONS=mu;exports.CRM_ACTIVITY_SCOPE_KIND=Wl;exports.CRM_CALL_CHANNELS=Hl;exports.CRM_CALL_LOGGED=es;exports.CRM_CALL_OUTCOMES=ql;exports.CRM_NOTE_ADDED=Jo;exports.CRM_STAGE_CHANGED=Vl;exports.CUSTOM_RESOLUTION_PREFIX=Pd;exports.CommunicationScheme=wa;exports.DAY_MS=ps;exports.DEFAULT_CHECK_IN_DAYS=Wi;exports.DEFAULT_DUNNING_POLICY=jg;exports.DEFAULT_FORECAST_WEEKS=Js;exports.DEFAULT_MEMORY_BUDGET=Mf;exports.DEFAULT_NUMBER_PADDING=Zg;exports.DEFAULT_PHONE_REGION=Ja;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Fg;exports.DEFAULT_TEMPLATE_CONDITIONS=Ug;exports.DEFAULT_TOLERANCE=Mi;exports.DEFAULT_WORKSPACES=na;exports.DEMAND_SOURCE_PROVIDER_GROUP=Vf;exports.DOCUMENT_APPLY_SERVICE=qy;exports.DOCUMENT_DESCRIBE_SERVICE=Vy;exports.DOCUMENT_INSPECT_SERVICE=Hy;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Io;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Yt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Eo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=pt;exports.DOCUMENT_MAX_TOTALS_ROWS=zt;exports.DOCUMENT_OPERATIONS=Zn;exports.DRAFT_FIELDS=Rg;exports.DUTCH_SLOT_LABELS=aa;exports.EMPTY_WORKFLOW=xp;exports.ENABLED_TRANSACTION_KINDS=Wn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=as;exports.FEATURE_MESSAGE_REACTIONS=Dy;exports.FEATURE_REMOTE_SEARCH=Ny;exports.FIXED_KINDS=yt;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=St;exports.FIXED_UNITS=Ol;exports.FOLLOW_UP_HOURS=Ss;exports.FROZEN_WRITABLE_FIELDS=Og;exports.HOUR_MS=fs;exports.HTML_BODY_RE=nc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=zy;exports.INTERACTION_KIND=li;exports.InteractionParticipantRole=My;exports.KB_FALLBACK_LOCALE=xs;exports.KB_LOCALES=tt;exports.LEAD_STATUSES=Kl;exports.LEDGER_TEMPLATES=ef;exports.LEGAL_FORMS=dl;exports.LIFECYCLE_STAGES=$l;exports.LOCALES=tt;exports.LOOSE_STATUSES=At;exports.MAIL_HINT_HEADERS=bs;exports.MANUAL_PRICE_SOURCE=Fo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=Mo;exports.MAX_BLOCKS=Bt;exports.MAX_CHOICE_OPTIONS=Wt;exports.MAX_COLLECTION_DEPTH=On;exports.MAX_DELEGATION_DEPTH=Ro;exports.MAX_EDITABLE_FILE_BYTES=Sb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Cf;exports.MAX_MEMORY_BUDGET=Of;exports.MAX_MEMORY_CHARS=vf;exports.MAX_RULE_DEPTH=cn;exports.MAX_SCORE_LEVELS=Ht;exports.MAX_SHOWN_KEYS=Za;exports.MAX_TOPIC_CANDIDATES=Qi;exports.MAX_TOPIC_EXAMPLES=Xi;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=Ab;exports.MICROS_PER_CENT=jo;exports.MIN_MEMORY_BUDGET=kf;exports.MIN_SCORE_LEVELS=Vt;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=xb;exports.NL_BV_TEMPLATE=$s;exports.NL_PAYMENT_TERMS=oh;exports.NL_TAX_CODES=Df;exports.NL_TAX_RATES=Nf;exports.NL_VAT_BOXES=Ri;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Jy;exports.OFF_TRACK_GAP=qi;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Lf;exports.PAUSE_HOLD=it;exports.PAUSE_SNOOZED=ot;exports.PAUSE_WAITING_FOR_CUSTOMER=st;exports.PAYMENT_TERM_METHODS=th;exports.PAYROLL_CATEGORIES=Ks;exports.PHONE_REGIONS=Tt;exports.PLAYBOOK_RUN_APPROVAL_ACT=gp;exports.PLAYBOOK_RUN_SCOPE_KIND=ii;exports.PRESENCE_ONLINE_WINDOW_MS=Jn;exports.PRESENCE_SURVIVES_OFFLINE=xa;exports.PRICE_PERS=Rc;exports.PRODUCT_SCOPE_KIND=da;exports.PROFILE_TOOL_DISPOSITIONS=Kf;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Oy;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ky;exports.PROVISIONING_ROUTES=ab;exports.PROVISIONING_SOURCE_GROUP=ib;exports.PUBLIC_EMAIL_DOMAINS=tc;exports.PURCHASE_KINDS=vi;exports.PURCHASE_ORDER_KIND=Qp;exports.READ_STEP_TYPES=Zt;exports.RECEIPT_BOOK_ACT=rl;exports.RECEIPT_SCOPE_KIND=nl;exports.RELATED_SUBJECT_KINDS=js;exports.REPORT_VIEW_LAYOUTS=pu;exports.RESERVED_SEGMENTS=ta;exports.RESERVED_STATUS_KEYS=Xn;exports.RESERVED_TYPE_KEYS=Sh;exports.RESOURCE_ATTACHED_SERVICE=db;exports.RESOURCE_DESCRIBE_SERVICE=cb;exports.RESOURCE_RESOLVE_SERVICE=lb;exports.RESOURCE_SEARCH_SERVICE=ub;exports.SALES_KINDS=It;exports.SALES_SCOPE_KINDS=la;exports.SCHEDULE_ENTRY_SCOPE_KIND=ei;exports.SCHEDULE_EVENT=wi;exports.SCOPE_ACTS_ROUTE=gb;exports.SCOPE_READ_ROUTE=mb;exports.SCOPE_RELATED_ROUTE=pb;exports.SEGMENT_FILTER_KEYS=Bl;exports.SEGMENT_LAYOUTS=jl;exports.SEGMENT_LIST_FILTERS=Qo;exports.SEGMENT_PRESENCE_FILTERS=Zo;exports.SEGMENT_SORT_FIELDS=Fl;exports.SENDING_STALE_MS=cl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=wb;exports.SIGNATURE_INTENTS=Dl;exports.SLA_METRICS=xm;exports.SLA_PAUSE_REASONS=Pm;exports.STATUS_NAMES=Tg;exports.STEP_MAX_TOKENS_MAX=pi;exports.STEP_MAX_TOKENS_MIN=fi;exports.STEP_TYPES=wp;exports.STRATEGY_ITEM_SCOPE_KIND=ji;exports.SUMMARY_MIN_LAST_CHARS=ys;exports.SUMMARY_MIN_MESSAGES=hs;exports.SYNC_RUN_MAX_ERRORS=Cb;exports.SYNC_TARGET_PROVIDER_GROUP=Tb;exports.SYSTEM_ONE_NON_GOALS=ru;exports.SYSTEM_RESOLUTIONS=Rs;exports.TERMINAL_ASSIGNMENT_STATUSES=ko;exports.TERMINAL_RUN_STATUSES=yi;exports.TRANSACTION_KINDS=ra;exports.TRIGGER_VARS=vp;exports.UNARY_OPS=gm;exports.UNKNOWN_KIND=Ws;exports.UNKNOWN_LEVEL_ORDER=Gi;exports.UNSUPPORTED=wy;exports.UNWORKED_RESOLUTIONS=xd;exports.USAGE_DIMENSIONS=ho;exports.USAGE_DIMENSION_IDS=yo;exports.USAGE_RECORDS_ROUTE=Rl;exports.USAGE_SOURCE_PROVIDER_GROUP=Ml;exports.UnresolvedRefError=Bn;exports.WEBHOOK_EVENTS=ya;exports.WORKSTREAM_SCOPE_KIND=ti;exports.WORK_ACTIVITY_SCOPE_KIND=Ea;exports.WORK_AREAS=$f;exports.WORK_COMMENT_ADDED=yh;exports.WORK_CYCLE_SYNC_KIND=kh;exports.WORK_ITEM_ASSIGNED=bh;exports.WORK_ITEM_SCOPE_KIND=ba;exports.WORK_ITEM_STATUS_CHANGED=_h;exports.WORK_PROJECT_SCOPE_KIND=_a;exports.WORK_SORT_FIELDS=Yh;exports.WORK_VIEW_FLAGS=qh;exports.WORK_VIEW_LAYOUTS=zh;exports.WORK_VIEW_LIST_FILTERS=Hh;exports.W_PRIORITY=Ie;exports.XAF_NAMESPACE=Bs;exports.acceptExampleCandidate=yg;exports.accountTotals=Hd;exports.accountTypeOf=Ef;exports.accrualPostings=pd;exports.actingIdentityKey=oi;exports.activeWorkTypes=gg;exports.activityIconOf=uc;exports.activityJoinUrl=_c;exports.activitySnippet=to;exports.activityTextParams=no;exports.activityTimelineText=bc;exports.activityTimestamp=oo;exports.activityTypeInfo=j;exports.actorKey=mp;exports.addExampleCandidate=hg;exports.addMonths=me;exports.addWorkingMs=bt;exports.agePresenceEntry=rb;exports.aggregateUsage=Go;exports.agingBucketOf=ha;exports.agingOf=fh;exports.agreementEffectiveEnd=Wc;exports.agreementFromQuote=xc;exports.agreementHref=zg;exports.agreementScopeKey=Yg;exports.aiAttachmentKind=ka;exports.aiAttachmentRejection=ey;exports.aiBudgetLimit=qt;exports.aiBudgetPeriodKey=lu;exports.aiBudgetPeriodStart=go;exports.aiBudgetState=uu;exports.aiVendorAcceptsAttachment=cu;exports.aiVendorDefaultModel=su;exports.aiVendorLabel=ou;exports.aiVendorNeedsBaseUrl=au;exports.aiVendorsWith=iu;exports.allocate=Te;exports.allocateInvoice=nm;exports.appNameFromPath=$a;exports.applyApprovalDecision=ku;exports.applyRounding=lg;exports.applySignature=wl;exports.approvalRate=mi;exports.artifactBodyBytes=Co;exports.artifactOutline=vo;exports.artifactToMarkdown=En;exports.assignmentMismatch=Ep;exports.assignmentScopeKey=Bu;exports.assignmentSubject=Gu;exports.availabilityByPerson=Wf;exports.awaitsNumber=Mg;exports.balanceSheet=Xd;exports.belongsOnCalendar=Uf;exports.belongsToEntity=fl;exports.billableTimeGroups=cg;exports.billedQuantity=Ho;exports.bindParams=fm;exports.bindValue=nt;exports.bookingDocumentOf=kg;exports.bookingDocumentOfReceipt=sl;exports.bookingLinesOf=$o;exports.bookingSyncKey=il;exports.buildActivityPreview=Ic;exports.buildChannelIntents=by;exports.buildNavModel=Zy;exports.buildShareKeys=Pu;exports.buildWindow=Qa;exports.businessEntitySender=rs;exports.calendarDaysBetween=Vs;exports.calendarOf=_t;exports.canConvert=Dg;exports.canMoveAgreement=jc;exports.canNestUnder=jd;exports.canParent=zm;exports.canTransition=Cg;exports.canonicalJson=Qt;exports.capabilityDefaultFlag=zc;exports.capacityTotal=jf;exports.capacityWeights=lp;exports.capitalizationThreshold=yd;exports.carriesText=mc;exports.cashForecast=Zd;exports.categoryLabel=Wd;exports.categoryOf=Aa;exports.causedBy=Im;exports.changesBilledLine=Vc;exports.channelKindForScheme=vy;exports.channelKindOf=lc;exports.checkInOverdueMs=ig;exports.clampStepMaxTokens=Dp;exports.classifyMail=vd;exports.cleanMessageMarkdown=p_;exports.cleanMessageText=f_;exports.cleanReceiptLines=qp;exports.codeQuery=hl;exports.codedMessage=Sy;exports.columnBalance=Qd;exports.companyReceivablesOf=mh;exports.compareAssistRank=ay;exports.compareReports=Vd;exports.compareWorkTypes=zi;exports.conditionHolds=ns;exports.contactName=Ul;exports.contractSignals=Vp;exports.copyFrom=ia;exports.correlationKeyFor=fy;exports.costInPricePeriod=Cl;exports.costOverYear=Yp;exports.countsAsPlanned=pe;exports.coverageByPerson=Gf;exports.coverageFor=Qf;exports.coversWorkstream=Dn;exports.crmActivityAt=zl;exports.cronMatches=Di;exports.currentAccountRelation=cd;exports.currentLines=Kc;exports.currentPeriod=eh;exports.cycleDayIndex=wn;exports.cycleOrder=Wh;exports.cycleState=Vh;exports.dealValueCents=Pc;exports.decideAssignmentState=Wu;exports.decideCadence=Db;exports.decideEach=Au;exports.decideIncomingCall=gy;exports.decisionBand=nu;exports.defaultLocaleOf=Ps;exports.defaultOffer=Ai;exports.defaultStatusKey=Ph;exports.defaultTemplateBlocks=ca;exports.defineIntent=Ry;exports.delegationRefusal=Vu;exports.demandFor=Xp;exports.depreciationParts=ls;exports.depreciationPostings=dd;exports.depthOf=Ds;exports.derivePresence=nb;exports.describeClause=Eu;exports.describeExpression=bm;exports.digitsOf=Wo;exports.disabledIntentsFromCapabilities=hy;exports.disposalLines=fd;exports.documentBodyBytes=Co;exports.documentKindOf=Yy;exports.documentOutline=vo;exports.documentToMarkdown=En;exports.documentToText=Wy;exports.driftedFields=Pi;exports.dueAtOf=Gm;exports.dueCharges=Uc;exports.dueDateFrom=nh;exports.dunningRunOf=Wg;exports.dunningStateOf=ua;exports.effectiveEndAt=Ee;exports.elapsedSeconds=ug;exports.emailDomain=Fb;exports.emptyConditionLeaf=hm;exports.endpointKey=Vb;exports.entityOwnerIds=pl;exports.entryLinesOf=uf;exports.entryNumber=nf;exports.entryProblems=tf;exports.erlangC=qs;exports.excessiveLending=ud;exports.expectedFor=Gp;exports.extractParams=Ua;exports.extractTerms=za;exports.failureLines=nd;exports.fieldVarPath=vm;exports.fillDocument=ed;exports.fillText=ts;exports.filterByEndpoint=Ey;exports.filterByIntent=_y;exports.filterByTargetScheme=Da;exports.filterableDimensions=_u;exports.findAiVendor=Ce;exports.findEvent=km;exports.finishedAt=Gc;exports.fixedLevelForName=Qm;exports.fixedTypeForName=Ch;exports.fixedTypes=vh;exports.flattenLocales=Xy;exports.floorToPeriod=fe;exports.forecastIntervals=ip;exports.formatActingIdentity=ri;exports.formatCents=H;exports.formatClock=fg;exports.formatHm=dg;exports.formatItemKey=Mh;exports.formatMicros=Il;exports.formatPeriod=de;exports.formatSeriesNumber=Jg;exports.formatSlaDuration=Hm;exports.freshSources=ry;exports.getActivitySeenUserIds=Tc;exports.getContactEndpoints=Ll;exports.getShortTitle=wd;exports.getUrgencyScore=Dd;exports.goodsReceiptProblems=Ii;exports.groupDocumentLines=ki;exports.hasReacted=im;exports.hashedPartOf=of;exports.healthCategory=Zm;exports.healthsInCategory=Jm;exports.heightOf=Mn;exports.helpCenterText=Kd;exports.humanizeAction=Tp;exports.interactionIdOf=di;exports.interestOnDailyBalance=sd;exports.interestPeriods=id;exports.isAgentUser=gh;exports.isAssigned=Rd;exports.isAssignmentTerminal=Uu;exports.isAssignmentTrigger=ci;exports.isAssistantMode=du;exports.isAuthoredCrmActivity=Yl;exports.isAutoReady=Kp;exports.isAutonomy=Ip;exports.isAwaitingThem=Ms;exports.isBookable=vg;exports.isChatMessageActivity=vc;exports.isClosed=Nd;exports.isConnectedType=hc;exports.isDescendant=ws;exports.isEligible=_d;exports.isEmailActivity=Cc;exports.isFrozen=Vn;exports.isHeldClock=jm;exports.isHtmlBody=d_;exports.isInFlight=Bp;exports.isInteractionUnseen=_s;exports.isLandingPath=bb;exports.isLikelyBulk=gs;exports.isMessageShape=fn;exports.isMessageType=dc;exports.isMoreSpecificPattern=Fa;exports.isNoteShape=pn;exports.isOpenClock=Fi;exports.isOutstanding=Yn;exports.isOutwardTool=Qn;exports.isOverdueOn=sh;exports.isParked=Ts;exports.isPaused=bi;exports.isPlaybookAuthoredType=gc;exports.isPricePer=wc;exports.isPublicEmailDomain=Gb;exports.isPublicPath=Ib;exports.isPurchasable=kl;exports.isRecurringLine=io;exports.isReminderActive=Cs;exports.isReplyableType=pc;exports.isResultAccount=ve;exports.isSellable=vl;exports.isSettingsPath=hb;exports.isSettled=ma;exports.isShorter=$c;exports.isSlaAtRisk=Od;exports.isSupportedCron=Em;exports.isTerminal=Up;exports.isThreadLongEnough=Sd;exports.isTranscriptType=yc;exports.isWebhookEvent=hh;exports.isWorkClosed=Lh;exports.isWorkTypeVisible=mg;exports.isWriteTool=er;exports.itemDossierKeys=Dh;exports.itemKeyOf=el;exports.judgeRuleCase=Sm;exports.kindFor=q;exports.ladderFor=Sa;exports.ledgerRuleFor=ul;exports.levelIn=Vi;exports.levelOrder=ct;exports.lineAffinity=Un;exports.lineKey=Mp;exports.lineNet=ht;exports.lineStatus=co;exports.lineTerm=U;exports.linkLabel=$d;exports.listedTransactionKinds=Ag;exports.listeningAllowed=fu;exports.loanPostings=ld;exports.loanSchedule=vn;exports.localeInstruction=Fd;exports.localeName=Bd;exports.localesOf=Gd;exports.looksLikeEmail=Ub;exports.lookup=Tn;exports.manualSettlement=ch;exports.marginCents=Mc;exports.markdownToDocument=Gy;exports.matchApprovalPolicy=Cu;exports.matchContactToIntents=Iy;exports.matchDocumentLines=Oi;exports.matchPublicRoute=ja;exports.matchRate=Vo;exports.matchRules=xi;exports.matchVerdict=rm;exports.mcpCredentialScope=Af;exports.mcpToolPrefix=Tf;exports.measureRatio=tg;exports.mergeDefaultFlags=Qc;exports.mergeShownKeys=Nb;exports.messageCountsAs=eo;exports.metricOption=Iu;exports.minutesOn=xn;exports.missingFieldPaths=Om;exports.modelAcceptsAttachment=Jc;exports.monthEnd=cs;exports.monthParts=ss;exports.monthlyPeriods=mf;exports.monthsIn=is;exports.mustAsk=Ga;exports.narrowAutonomy=Ap;exports.navLabelText=Qy;exports.needsPhoneRegion=Wb;exports.nestsUnderParent=fc;exports.nextLevelBelow=Xm;exports.nextOccurrenceDates=Gh;exports.nextSlaClock=Wm;exports.nextStatuses=oa;exports.nextVersion=wg;exports.normalizeArtifactBlocks=To;exports.normalizeBlocks=ic;exports.normalizeDocumentBlocks=To;exports.normalizeEmail=tr;exports.normalizeExample=te;exports.normalizeGtin=Ko;exports.normalizeIban=Xo;exports.normalizeIbans=Pl;exports.normalizeMeter=Yo;exports.normalizeUsageSource=Nl;exports.normalizeVatNumber=xl;exports.noticeDeadline=yn;exports.notificationPrefKey=eb;exports.novelty=Xa;exports.offerValid=Si;exports.openCentsOf=qu;exports.operationDescriptor=Fy;exports.operationsForKind=By;exports.opsForFieldType=Cm;exports.orderForDocument=Zp;exports.organizationSender=td;exports.outcomeOf=Bh;exports.overlap=dt;exports.overlapSeconds=Le;exports.overlaps=Xf;exports.ownWorkspaceKey=_g;exports.paceRatio=ng;exports.parkMarksById=Ed;exports.parse=Ni;exports.parseActingIdentity=fp;exports.parseAmount=kc;exports.parseCamt053=Do;exports.parseClockMinutes=Dm;exports.parseCodedMessage=Ty;exports.parseCron=Fn;exports.parseItemKey=Rh;exports.parseLineKey=Rp;exports.parseMicros=An;exports.parseMt940=xo;exports.parsePackingSlip=em;exports.parseRateCsv=Sl;exports.parseRatePrice=Xt;exports.parseRecurrence=jh;exports.parseStatement=Ju;exports.parseWorkspacePath=Ig;exports.parseXafOpening=_f;exports.partialDisposalLines=hd;exports.pathToRegex=Ka;exports.patternFor=Ln;exports.patternStartTime=Pn;exports.pauseBitFor=wm;exports.paymentOfItem=zu;exports.paymentStateOf=qn;exports.pendingApprovers=vu;exports.periodAt=We;exports.periodOf=gf;exports.periodShare=ao;exports.periodsInRange=yu;exports.phoneSuffix=Bb;exports.pickMailHeaders=Ad;exports.pickTemplate=Ql;exports.placeLumps=dp;exports.plainTextFromMarkdown=Zr;exports.planSlaEvent=Fm;exports.plannedBillable=Zf;exports.plannedWorkTypeKey=Zs;exports.priceOver=lt;exports.procedureOf=Lp;exports.productCost=Ci;exports.productHref=qg;exports.productScopeKey=Vg;exports.profitAndLoss=zd;exports.projectDossierKeys=wh;exports.proposalRequestIds=Tu;exports.proposeMatch=Hu;exports.publicBasePathFor=Ba;exports.publicRoutePatterns=Eb;exports.quantityKey=Yc;exports.rateRecords=Tl;exports.reactionWakesAssignment=ju;exports.readDefaultFlags=Xc;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=ol;exports.receiptProblems=Lo;exports.receiptState=Hp;exports.receiptTotals=Po;exports.receivableRowOf=dh;exports.receivedFor=Ei;exports.recencyOf=As;exports.recipientLocale=Xl;exports.reconciliationBalances=Yu;exports.refKey=$n;exports.registrableDomain=ec;exports.rejectExampleCandidate=Ji;exports.relatedByDefault=Rf;exports.remainingMsOf=at;exports.repriceLines=El;exports.requiredAgents=Xs;exports.requirementFor=Qs;exports.resolutionsFor=Ld;exports.resolveAccountCapabilities=Na;exports.resolveActivityText=je;exports.resolveAutonomy=Sp;exports.resolveChannelIntents=Ra;exports.resolvePrice=Bo;exports.resolveRateCard=bl;exports.resolveRoute=eu;exports.resolveSignature=zo;exports.resolveTier=mo;exports.resolveWorkMode=ob;exports.resolveWorkspace=Eg;exports.resourceKindOf=fb;exports.restate=so;exports.retryDelayMinutes=al;exports.reversedLines=sf;exports.rhythmOf=mn;exports.rollupChildren=sg;exports.roundHalfUp=L;exports.runActor=pp;exports.runApprovalKey=hp;exports.runEvalSuite=rd;exports.runIdOfApprovalRef=yp;exports.runInteractionId=jp;exports.runKind=$p;exports.runOutcome=Tm;exports.runSpans=Fc;exports.sanitizeInline=Ao;exports.sanitizeTranscript=Wa;exports.scheduleEntryScopeKey=ap;exports.scoreInteraction=Md;exports.scoreWorkItem=Ih;exports.segmentIsEmpty=Gl;exports.selectLenses=Sf;exports.serialize=$e;exports.seriesStart=gn;exports.serviceLevel=Ys;exports.sessionsHoldCannotReach=my;exports.sessionsToHold=py;exports.settingsPath=yb;exports.settlementPatch=ah;exports.shadowByKey=ml;exports.shareKeyForTeam=Sn;exports.shareKeyForUser=In;exports.shareKeysForViewer=Lu;exports.shortTermPrincipal=gd;exports.shortfalls=Jf;exports.shouldRunAudioPipeline=sb;exports.slaBadgeTone=Vm;exports.slaHoursByInbox=kd;exports.slaHoursFor=Os;exports.slipProposal=Jp;exports.sortStatuses=Ta;exports.sourceKey=Ma;exports.splitLine=Hc;exports.spread=kn;exports.spreadOverWeights=ni;exports.startingCents=md;exports.statusIn=xh;exports.statusRequiresApproval=Uh;exports.stepDate=va;exports.stepsOf=Pp;exports.strategyAncestorKeysFor=Ym;exports.strategyDossierKeys=qm;exports.strategyItemScopeKey=jn;exports.stripHtml=Jr;exports.subjectKeyOf=Fp;exports.subjectOf=Kn;exports.subjectRef=iy;exports.suggestProjectKey=Nh;exports.suggestTreatments=tl;exports.suggestedHealth=rg;exports.summariseEval=os;exports.summarizeReactions=om;exports.targetById=_p;exports.targetForActivityType=bp;exports.targetOrder=ag;exports.taxCodeProblem=xf;exports.taxDateOf=J;exports.taxPercentOn=Nn;exports.taxRateFor=Gs;exports.taxRatesOn=wf;exports.termEndAt=ne;exports.termStartAt=hn;exports.termsFor=Hs;exports.tieredMicros=qo;exports.timingOf=uo;exports.toActingIdentity=si;exports.toE164=dn;exports.toProductUnits=Ti;exports.toTransactionTerm=rh;exports.toolBareName=ui;exports.toolDisplayName=Cp;exports.toolReversible=ny;exports.toolSourceKinds=$u;exports.toolVerdict=kb;exports.topicOfferedForTeam=ea;exports.topicsForTeam=bg;exports.trafficIntensity=zs;exports.transactionContext=xg;exports.transactionDossierKeys=Qg;exports.transactionHref=Hg;exports.transactionIdFromScope=Xg;exports.transactionKind=F;exports.transactionScopeKey=pa;exports.transactionSlots=Pg;exports.transactionTotals=Pf;exports.transitoryLines=cf;exports.triggerFillsVar=kp;exports.truncateExample=Zi;exports.typeIn=Th;exports.typesFor=Ah;exports.uniqueWorkStatusKey=$h;exports.uniqueWorkTypeKey=pg;exports.usageAccountOf=po;exports.usageAccountsOf=qc;exports.usageMetricId=bo;exports.usageMetrics=Su;exports.validateQuestions=tu;exports.validateStatuses=Kh;exports.valueAtPath=ai;exports.variableJump=_i;exports.vatPeriods=cm;exports.vatReturn=am;exports.waitHoursOf=gt;exports.wakesAssignment=Fu;exports.withLineIds=Np;exports.workActivityScopeKey=Oh;exports.workItemScopeKey=Ia;exports.workProjectScopeKey=zn;exports.workRatio=og;exports.workStatusKey=Ca;exports.workTypeKey=Yi;exports.workingMsBetween=rt;exports.workspacePath=Sg;exports.workstreamScopeKey=cp;exports.xafAuditfile=yf;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Jd;
|