@opencxh/domain 1.300.0 → 1.302.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/business-entity/types.d.ts +6 -0
- package/dist/entities/catalog/rating.d.ts +18 -0
- package/dist/entities/company/address.d.ts +30 -0
- package/dist/entities/company/address.test.d.ts +1 -0
- package/dist/entities/company/index.d.ts +2 -0
- package/dist/entities/company/role.d.ts +33 -0
- package/dist/entities/company/types.d.ts +0 -22
- package/dist/entities/contact/segment.d.ts +1 -1
- package/dist/entities/purchase/feed.d.ts +170 -0
- package/dist/entities/purchase/feed.test.d.ts +1 -0
- package/dist/entities/purchase/index.d.ts +1 -0
- package/dist/entities/purchase/types.d.ts +17 -0
- package/dist/entities/transaction/booking.d.ts +1 -1
- package/dist/entities/transaction/convert.d.ts +2 -2
- package/dist/entities/transaction/document.d.ts +2 -0
- package/dist/entities/transaction/payment-term.d.ts +15 -1
- package/dist/entities/transaction/types.d.ts +8 -0
- package/dist/index.cjs +25 -23
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3321 -3062
- package/dist/platform/csv.d.ts +12 -0
- package/dist/platform/csv.test.d.ts +1 -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 Gt=10,De=10,we=10,xe=5,gc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Mt(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function hc(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Gt){t(`more than ${Gt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!gc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Mt(o.text)){t("a header without text");continue}break;case"context":if(!Mt(o.text)){t("a context block without text");continue}break;case"image":if(!o.url||!o.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(o.fields)&&o.fields.length>De&&(t(`more than ${De} fields in a section`),o.fields=o.fields.slice(0,De));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>we&&(t(`more than ${we} list items`),o.items=o.items.slice(0,we));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&Mt(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>xe&&t(`more than ${xe} actions`),o.elements=i.slice(0,xe);break}}n.push(o)}return n}const yc=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,bc=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function io(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
|
|
2
2
|
`).map(n=>n.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s{0,3}>\s?/,"").replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").replace(/^\s*(?:[-*_]\s*){3,}$/,"")).join(`
|
|
3
|
-
`),t=t.replace(uc,"$2"),t=t.replace(lc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function to(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 or(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function Mt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function sr(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 — ${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?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${or(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?` (${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:ir},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:ir},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=>`${sr(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=>`${sr(e.payload.callType)} ended${or(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 ir(e){const t=e.payload,n=eo(t.bodyText).trim()||t.bodySnippet?.trim()||to(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function dc(e){return j(e)?.icon??"circle"}function fc(e){return j(e)?.channelKind}function gn(e){return e==="message"||e==="note"}function pc(e){return gn(j(e)?.shape)}function hn(e){return e==="note"}function mc(e){return hn(j(e)?.shape)}function gc(e){return j(e)?.replyable===!0}function hc(e){return j(e)?.carriesText===!0}function no(e){return j(e)?.countsAs}function yc(e){return j(e)?.playbookAuthored===!0}function bc(e){return j(e)?.connected===!0}function _c(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function ro(e){const t=j(e.type)?.snippet;return t?t(e):""}function Ec(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Ic(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 oo(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 ar=140;function Sc(e){const t=e.trim();return t.length<=ar?t:`${t.slice(0,ar-1).trimEnd()}…`}function Ac(e,t){const n=oo(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Sc(r??ro(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Tc=e=>e;function cr(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 ur(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 so{constructor(t=[],n=Tc){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 cr(t);const n=this.declared.get(t);return n?ur(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(cr),n=[...this.declared.values()].map(ur).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 gn(this.get(t)?.shape)}nestsUnderParent(t){return hn(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 Cc=new so;function vc(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 io(e){return e.createdAt??0}function kc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Oc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function P(e){return e<0?-Math.round(-e):Math.round(e)}function 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 Mc(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(!Rc(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 Rc(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Nc(e){return e.costPriceCents==null?e.netCents:e.netCents-P(e.costPriceCents*e.quantity)}const Dc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},wc=864e5,xc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},lr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},dr=(e,t)=>Math.round((t-e)/wc);function dt(e,t,n){const r=Ge[t],o=Te(e,Array.from({length:r},()=>1));let s=0;for(let a=xc(n.from);a<n.to;a=lr(a)){const i=lr(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*dr(u,c)/dr(a,i)}return P(s)}function ao(e,t,n){return!t||!n||t===n?e:P(e*Ge[n]/Ge[t])}function Pc(e){return typeof e=="string"&&e in Ge}function co(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Lc(e,t){const n=e.lines.filter(co).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:P(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function $c(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?dt(r.netCents,r.pricePer,t):r.netCents),0)}const Gt={month:1,quarter:3,year:12},Kc=864e5;function Uc(e,t){return Gt[e]<Gt[t]}function We(e,t){const n=new Date(e),r=Gt[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function U(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function ft(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function uo(e,t,n){const r=ft(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,a)=>Math.round((a-s)/Kc);return o(r.from,r.to)/o(t.from,t.to)}function lo(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function Bc(e,t,n){return t.filter(r=>lo(e,r,n)!=="ended")}const Wt=864e5;function yn(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function fo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/Wt);function Fc(e,t,n,r){const o=[],s=[],a=e.graceDays*Wt,i=e.proration===!0;for(const u of t){const c=U(e,u),d=yn(e,u),l=fo(u),f=n.filter(y=>y.agreementLineId===u.id);if(d==="once"){const y={from:c.from,to:c.from+Wt};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=ft(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?uo(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(...jc(u.id,y,E,p,h))}}return{charges:o,corrections:s}}function jc(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:P(i*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Gc(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,po={draft:["active"],active:["draft","ended"],ended:["active"]};function Wc(e,t){return e===t||po[e].includes(t)}function Vc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=yn(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())},mo=e=>e&&e.termMonths>=1?e:void 0;function bn(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 _n(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 En(e,t,n){if(t=mo(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=mo(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 Hc(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 fr=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 qc(e,t){return fr(e)!==fr(t)}function Yc(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 go(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 zc(e){const t=new Map;for(const n of e.lines??[]){const r=go(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Xc(e,t){return[e,t].join("@")}const pt=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function Qc(e){return pt.find(t=>t.id===e)?.defaultFlag}function Zc(e){const t={};for(const n of pt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Jc(e,t){const n={};for(const r of pt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const eu={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function tu(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=eu[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],pr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},Vt=e=>ue.indexOf(e);function ho(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=pr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=pr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&Vt(n)>Vt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function nu(e,t,n){const r=ho(t);if(!e)return{...r,...n,routed:!1};for(let o=Vt(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 Ht=255,qt=2,Yt=10;function ru(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>Ht)return`vraag "${n}" heeft meer dan ${Ht} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<qt||o>Yt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${qt} tot ${Yt} zijn`}}return null}function ou(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const su=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],In=[{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 In.find(t=>t.id===e)}function iu(e){return Ce(e)?.label??e}function au(e,t="gpt-5-mini"){return Ce(e)?.defaultModel??t}function cu(e){return In.filter(t=>t.capabilities.includes(e))}function uu(e){const t=Ce(e);return!!t&&!t.baseUrl}function lu(e,t){return t==="text"?!0:Ce(e)?.attachmentKinds?.includes(t)===!0}function du(e,t){if(!e.enabled)return"ok";const n=zt(e.hardLimitNanos),r=zt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function zt(e){return typeof e=="number"?e:void 0}function yo(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function fu(e,t="month"){const n=new Date(yo(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function pu(e){return e==="ask"||e==="draft"||e==="agent"}function mu(e){return e?.listeningEnabled!==!1}const gu=["report"],hu=[{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 Rt(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Rt(n.getUTCMonth()+1)}-${Rt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Rt(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 yu=36e5,bu=864e5;function _u(e,t,n){const r=n==="hour"?yu:bu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const Eu=new Set(["time"]);function Iu(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Eu.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 Su(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 Au(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const bo=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],_o=bo.map(e=>e.id);function Eo(e,t){return`${e}.usage.${t}`}function Tu(e,t){return t.map(n=>({id:Eo(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",..._o,...n.extraDimensions??[],"time"]}))}async function Cu(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 vu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function ku(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 Ou(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 Mu(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 Io=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Xt=10,So=8,Qt=12,mt=4e3,ce=500,Ao=1024*1024,Ru=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),To=["http:","https:","mailto:","tel:"],Nu=/^[a-z][a-z0-9+.-]*:/i;function Sn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Nu.exec(t)?.[0];return n?To.includes(n.toLowerCase()):!t.startsWith("//")}const Du=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function wu(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=mr(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=mr(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||!Sn(u)?i:e.slice(n,a+1),n=a+1}return t}function mr(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 Co(e){return wu(e).replace(Du,(t,n,r)=>Sn(r)?t:"")}function $(e,t=mt){return typeof e=="string"?Co(e).slice(0,t):""}function xu(e,t=mt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function Pu(e,t="info"){return typeof e=="string"&&Io.has(e)?e:t}function vo(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(!Ru.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=xu(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"&&Io.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||!Sn(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>=Xt){t(`more than ${Xt} 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,So).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>=Qt){t(`more than ${Qt} 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:Pu(o.tone),...i?{title:i}:{},text:a});break}}}return n}function ko(e){return JSON.stringify(e).length}function Oo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function gr(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Nt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(gr).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(gr).join(" | ")} |`)]}function Lu(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Nt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Nt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=``;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Nt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function An(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=Lu(o);s.length>0&&n.push(s.join(`
|
|
3
|
+
`),t=t.replace(yc,"$2"),t=t.replace(bc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ao(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function Me(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function cr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function Rt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function ur(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const X={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${Rt(e.payload.from)}`:`Outbound call started — ${Rt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${cr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${Rt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:lr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:lr},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} toegevoegd`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} verlaten`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${ur(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`${ur(e.payload.callType)} ended${cr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function lr(e){const t=e.payload,n=io(t.bodyText).trim()||t.bodySnippet?.trim()||ao(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function _c(e){return j(e)?.icon??"circle"}function Ec(e){return j(e)?.channelKind}function yn(e){return e==="message"||e==="note"}function Sc(e){return yn(j(e)?.shape)}function bn(e){return e==="note"}function Ic(e){return bn(j(e)?.shape)}function Ac(e){return j(e)?.replyable===!0}function Cc(e){return j(e)?.carriesText===!0}function co(e){return j(e)?.countsAs}function vc(e){return j(e)?.playbookAuthored===!0}function Tc(e){return j(e)?.connected===!0}function kc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function uo(e){const t=j(e.type)?.snippet;return t?t(e):""}function Oc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Mc(e){const t=j(e.type)?.joinUrl;return t?t(e):void 0}function Fe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function je(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Fe(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Fe(t,i);const o=n(e.key,r);return o===e.key?null:o}function lo(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Fe(t,o);return{key:e.key,params:n}}const dr=140;function Rc(e){const t=e.trim();return t.length<=dr?t:`${t.slice(0,dr-1).trimEnd()}…`}function Nc(e,t){const n=lo(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Rc(r??uo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Dc=e=>e;function fr(e){const t=X[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function pr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class fo{constructor(t=[],n=Dc){this.translate=n;for(const r of t)r?.type&&(r.type in X||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in X)return fr(t);const n=this.declared.get(t);return n?pr(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(fr),n=[...this.declared.values()].map(pr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=X[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return je(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=X[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return je(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return yn(this.get(t)?.shape)}nestsUnderParent(t){return bn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const wc=new fo;function xc(e,t,n=[]){const r=e.createdAt;if(!r)return[];const o=new Set(n);return e.author.type==="user"&&e.author.id&&o.add(e.author.id),Object.entries(t).filter(([s,i])=>i>=r&&!o.has(s)).map(([s])=>s)}function po(e){return e.createdAt??0}function Pc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Lc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function P(e){return e<0?-Math.round(-e):Math.round(e)}function Ce(e,t){if(t.length===0)return[];const n=t.reduce((u,c)=>u+c,0);if(n===0)return t.map((u,c)=>c===0?e:0);const r=t.map(u=>e*u/n),o=r.map(u=>Math.trunc(u));let s=e-o.reduce((u,c)=>u+c,0);const i=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),a=s<0?-1:1;for(let u=0;s!==0&&u<i.length;u++)o[i[u].index]+=a,s-=a;return o}function H(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),i=s.slice(0,-2),a=s.slice(-2);let u="";for(let c=0;c<i.length;c++)c>0&&(i.length-c)%3===0&&(u+=r),u+=i[c];return`${o?"-":""}${u}${n}${a}`}function Wt(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),i=o.lastIndexOf("."),a=Math.max(s,i),u=a===-1?"":o.slice(a+1),c=a!==-1&&u.length>=1&&u.length<=2,l=c?o.slice(0,a):o;if(!$c(l))return;const d=l.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(d==="")return;const m=Number(d)*100+Number(f);return r?-m:m}function $c(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Kc(e){return e.costPriceCents==null?e.netCents:e.netCents-P(e.costPriceCents*e.quantity)}const Uc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Bc=864e5,Fc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},mr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},gr=(e,t)=>Math.round((t-e)/Bc);function dt(e,t,n){const r=Ge[t],o=Ce(e,Array.from({length:r},()=>1));let s=0;for(let i=Fc(n.from);i<n.to;i=mr(i)){const a=mr(i),u=Math.max(i,n.from),c=Math.min(a,n.to);if(c<=u)continue;const l=o[new Date(i).getUTCMonth()%r];s+=l*gr(u,c)/gr(i,a)}return P(s)}function mo(e,t,n){return!t||!n||t===n?e:P(e*Ge[n]/Ge[t])}function jc(e){return typeof e=="string"&&e in Ge}function go(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Gc(e,t){const n=e.lines.filter(go).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:P(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Wc(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?dt(r.netCents,r.pricePer,t):r.netCents),0)}const Vt={month:1,quarter:3,year:12},Vc=864e5;function Hc(e,t){return Vt[e]<Vt[t]}function We(e,t){const n=new Date(e),r=Vt[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function U(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function ft(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function ho(e,t,n){const r=ft(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,i)=>Math.round((i-s)/Vc);return o(r.from,r.to)/o(t.from,t.to)}function yo(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function qc(e,t,n){return t.filter(r=>yo(e,r,n)!=="ended")}const Ht=864e5;function _n(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function bo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/Ht);function Yc(e,t,n,r){const o=[],s=[],i=e.graceDays*Ht,a=e.proration===!0;for(const u of t){const c=U(e,u),l=_n(e,u),d=bo(u),f=n.filter(g=>g.agreementLineId===u.id);if(l==="once"){const g={from:c.from,to:c.from+Ht};c.from+i<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:g,part:g,share:1,timing:"advance"});continue}const m=[];for(let g=We(c.from,l);g.from<(c.to??Number.POSITIVE_INFINITY)&&g.from+i<=r;g=We(g.to,l))m.push(g);const b=u.quantity.from==="fixed";for(const g of m.slice(-24)){const E=ft(c,g),h=g.to+i<=r,y=f.filter(S=>S.servicePeriod.from>=g.from&&S.servicePeriod.from<g.to),p=y.find(S=>!S.correction);if(!p){if(!E)continue;const S=E.from===g.from&&E.to===g.to;if(!(d==="advance"&&S)&&!h)continue;const C=b?ho(c,g,a):1;C>0&&o.push({lineId:u.id,window:g,part:E,share:C,timing:d});continue}b&&a&&h&&s.push(...zc(u.id,g,E,p,y))}}return{charges:o,corrections:s}}function zc(e,t,n,r,o){const s={...r.servicePeriod};for(const u of o){if(!u.correction)continue;Math.sign(u.quantity)!==Math.sign(r.quantity)?u.servicePeriod.from<=s.from?s.from=u.servicePeriod.to:s.to=u.servicePeriod.from:u.servicePeriod.to<=s.from?s.from=u.servicePeriod.from:s.to=u.servicePeriod.to}const i=[];if(s.to>s.from&&(n?(n.from>s.from&&i.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&i.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&i.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&i.push({part:{from:s.to,to:n.to},sign:1})):i.push({part:s,sign:-1})),r.pricePer){const u=r.pricePer;return i.map(({part:c,sign:l})=>({lineId:e,window:t,part:c,quantity:l*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&ge(c.part)>0)}const a=r.unitPriceCents*ge(t)/Math.max(1,ge(r.servicePeriod));return i.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:P(a*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Xc(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:i,to:a}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,i),to:Math.max(s.to,a)}:{timing:o.timing,from:i,to:a})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Ve=864e5,_o={draft:["active"],active:["draft","ended"],ended:["active"]};function Qc(e,t){return e===t||_o[e].includes(t)}function Zc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=_n(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,We(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const He=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Eo=e=>e&&e.termMonths>=1?e:void 0;function En(e,t){return Math.min(...t.map(n=>U(e,n).from))}function ne(e,t,n){let r=He(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=He(r,o);return r}function Sn(e,t,n){const r=He(e,Math.max(1,t.termMonths)),o=ne(e,t,n);return o===r?e:He(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function In(e,t,n){if(t=Eo(t),!t)return null;const r=ne(e,t,n),o=r-t.noticeDays*Ve;return n<=o?o:t.renew==="none"?null:ne(e,t,r)-t.noticeDays*Ve}function Ee(e,t,n){if(t=Eo(t),!t)return n;const r=ne(e,t,n);return n<=r-t.noticeDays*Ve||t.renew==="none"?r:ne(e,t,r)}function Jc(e,t){let n=t;for(const r of e.lines??[]){const o=U(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,Ee(Math.max(o.from,0),s,t))}return n}const hr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.price??null,e.commitment??null]);function eu(e,t){return hr(e)!==hr(t)}function tu(e,t,n,r){const{endsAt:o,...s}=e,i={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},i]}function So(e,t){const n=t.quantity;if(n?.from!=="meter")return null;if(n.accountRef)return{app:n.app,accountRef:n.accountRef};const r=e.sourceAccount;return r&&r.app===n.app?r:null}function nu(e){const t=new Map;for(const n of e.lines??[]){const r=So(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function ru(e,t){return[e,t].join("@")}const pt=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function ou(e){return pt.find(t=>t.id===e)?.defaultFlag}function su(e){const t={};for(const n of pt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function iu(e,t){const n={};for(const r of pt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const au={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function cu(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=au[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],yr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},qt=e=>ue.indexOf(e);function Io(e){const t=[];let n;return e.expectsSchema?(n="fast",t.push("schema-antwoord")):(e.mode??"agent")==="ask"&&!e.toolCount?(n="fast",t.push("vraag zonder tools")):e.toolCount||e.hasAttachments?(n="standard",t.push(e.hasAttachments?"bijlagen":"tools beschikbaar")):(n="standard",t.push("standaard")),e.repair&&(n=yr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=yr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&qt(n)>qt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function uu(e,t,n){const r=Io(t);if(!e)return{...r,...n,routed:!1};for(let o=qt(r.tier);o>=0;o--){const s=ue[o],i=e[s];if(!i?.accountId||!i.model)continue;const a=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:a,accountId:i.accountId,model:i.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const Yt=255,zt=2,Xt=10;function lu(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>Yt)return`vraag "${n}" heeft meer dan ${Yt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<zt||o>Xt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${zt} tot ${Xt} zijn`}}return null}function du(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const fu=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],An=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function ve(e){return An.find(t=>t.id===e)}function pu(e){return ve(e)?.label??e}function mu(e,t="gpt-5-mini"){return ve(e)?.defaultModel??t}function gu(e){return An.filter(t=>t.capabilities.includes(e))}function hu(e){const t=ve(e);return!!t&&!t.baseUrl}function yu(e,t){return t==="text"?!0:ve(e)?.attachmentKinds?.includes(t)===!0}function bu(e,t){if(!e.enabled)return"ok";const n=Qt(e.hardLimitNanos),r=Qt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function Qt(e){return typeof e=="number"?e:void 0}function Ao(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function _u(e,t="month"){const n=new Date(Ao(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Eu(e){return e==="ask"||e==="draft"||e==="agent"}function Su(e){return e?.listeningEnabled!==!1}const Iu=["report"],Au=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function Nt(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Nt(n.getUTCMonth()+1)}-${Nt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Nt(n.getUTCHours())}`}function fe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Cu=36e5,vu=864e5;function Tu(e,t,n){const r=n==="hour"?Cu:vu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const ku=new Set(["time"]);function Ou(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!ku.has(o.id)).map(o=>({id:o.id,label:o.label,options:o.options?.length?o.options:n[o.id]??[]})).filter(o=>o.options.length>0)}function Mu(e,t){const n=t.find(o=>o.id===e.dimensionId),r=n?.options.find(o=>o.value===e.value);return`${n?.label??e.dimensionId} · ${r?.label??e.value}`}function Ru(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Co=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],vo=Co.map(e=>e.id);function To(e,t){return`${e}.usage.${t}`}function Nu(e,t){return t.map(n=>({id:To(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...vo,...n.extraDimensions??[],"time"]}))}async function Du(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const i=s?.status;if(i===403||i===400)r++;else throw s}return{decided:n,waiting:r}}function wu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function xu(e,t){return e.filter(r=>!r.enabled||r.scopeKind!==t.scopeKind||r.act!==t.act?!1:r.minAmountCents==null?!0:t.amountCents!=null&&t.amountCents>=r.minAmountCents).sort((r,o)=>{const s=r.minAmountCents??-1;return(o.minAmountCents??-1)-s||r.id.localeCompare(o.id)})[0]}function Pu(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const i of t[s]??[])o.add(i);return r||o.delete(n),[...o]}function Lu(e,t){if(e.status!=="pending"||e.decisions.some(s=>s.userId===t.userId))return e;const n=[...e.decisions,t],r=e.pendingUserIds.filter(s=>s!==t.userId);if(t.decision==="rejected")return{...e,decisions:n,pendingUserIds:r,status:"rejected",settledAt:t.at};const o=e.rule==="any"||r.length===0;return{...e,decisions:n,pendingUserIds:r,status:o?"approved":"pending",settledAt:o?t.at:void 0}}const ko=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Zt=10,Oo=8,Jt=12,mt=4e3,ce=500,Mo=1024*1024,$u=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),Ro=["http:","https:","mailto:","tel:"],Ku=/^[a-z][a-z0-9+.-]*:/i;function Cn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Ku.exec(t)?.[0];return n?Ro.includes(n.toLowerCase()):!t.startsWith("//")}const Uu=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Bu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=br(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=br(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),u=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Cn(u)?a:e.slice(n,i+1),n=i+1}return t}function br(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function No(e){return Bu(e).replace(Uu,(t,n,r)=>Cn(r)?t:"")}function $(e,t=mt){return typeof e=="string"?No(e).slice(0,t):""}function Fu(e,t=mt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function ju(e,t="info"){return typeof e=="string"&&ko.has(e)?e:t}function Do(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=qe){t(`more than ${qe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!$u.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const i=$(o.text);if(!i){t("a heading without text");continue}const a=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:a,text:i});break}case"paragraph":{const i=$(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=$(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=Fu(o.text);if(!i){t("a code block without text");continue}const a=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...a,text:i});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const c of i){if(a.length>=Ye){t(`more than ${Ye} list items`);break}const l=$(c?.text);if(!l)continue;const d=$(c?.lead,200);a.push(d?{lead:d,text:l}:{text:l})}if(a.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const d of i){if(a.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(d?.label,ce),m=d?.align==="right"?"right":void 0;a.push(m?{label:f,align:m}:{label:f})}if(a.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const d of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(d)?d:[];c.push(a.map((m,b)=>$(f[b],ce)))}const l=$(o.caption,ce);n.push({...s,type:"table",columns:a,rows:c,...l?{caption:l}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=Qe){t(`more than ${Qe} kpi items`);break}const c=$(u?.value,40),l=$(u?.label,80);if(!c||!l)continue;const d=u?.tone;a.push(typeof d=="string"&&ko.has(d)?{value:c,label:l,tone:d}:{value:c,label:l})}if(a.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:a});break}case"image":{const i=typeof o.url=="string"?o.url.trim():"";if(!i||!Cn(i)){t("an image without a usable url");continue}const a=$(o.alt,200),u=$(o.caption,ce);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...u?{caption:u}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const l of i){if(a.length>=Zt){t(`more than ${Zt} letterhead fields`);break}const d=l,f=typeof d?.key=="string"?d.key.slice(0,48):"",m=he(d?.value);if(!f||!m)continue;const b=he(d?.label,80);a.push(b?{key:f,label:b,value:m}:{key:f,value:m})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Oo).map(l=>he(l)).filter(Boolean);if(a.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...c.length>0?{recipient:c}:{}});break}case"totals":{const i=c=>{const l=Array.isArray(c)?c:[],d=[];for(const f of l){if(d.length>=Jt){t(`more than ${Jt} totals rows`);break}const m=f,b=he(m?.label),g=he(m?.amount,40);!b||!g||d.push(m?.emphasis===!0?{label:b,amount:g,emphasis:!0}:{label:b,amount:g})}return d},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=i(o.taxRows);n.push({...s,type:"totals",rows:a,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=$(o.text);if(!i){t("a callout without text");continue}const a=$(o.title,200);n.push({...s,type:"callout",tone:ju(o.tone),...a?{title:a}:{},text:i});break}}}return n}function wo(e){return JSON.stringify(e).length}function xo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function _r(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Dt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(_r).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(_r).join(" | ")} |`)]}function Gu(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Dt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Dt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=``;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Dt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function vn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=Gu(o);s.length>0&&n.push(s.join(`
|
|
4
4
|
`))}return`${n.join(`
|
|
5
5
|
|
|
6
6
|
`)}
|
|
7
|
-
`}const Tn=e=>`user:${e}`,
|
|
8
|
-
`),n=[];for(const
|
|
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=Po(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,el(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 tl(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?xo(e):Lo(e)}const nl=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function rl(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 $o(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 ol="receipt",sl="book";function Ko(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 il(e){if(e.status!=="to_check")return null;const t=Ko(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Uo(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 al(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:Uo(e.lines,n.supplierName?.value??""),totals:$o(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 cl(e,t,n){return`${e}:${t}:${n}`}function ul(e){return[1,5,15][e-1]??60}const ll=10*6e4;function dl(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(a=>s(a.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const fl="organization.business-entities.list",pl=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function ml(e,t,n){return e?e===t:n}function gl(e){return e.isDefault===!0?[e.id,""]:[e.id]}function hl(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 yl(e,t,n){return n*Bo(e,t)}function Bo(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function bl(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function _l(e,t){return!t.some(n=>n.parentId===e.id)}function El(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(u=>u.key).length!==r.length||r.some(u=>!o.find(c=>c.key===u&&c.value.trim())))return"variant_options_mismatch";const a=u=>r.map(c=>u?.find(d=>d.key===c)?.value.trim()??"").join("\0"),i=a(o);return n.some(u=>u.id!==t.id&&a(u.options)===i)?"variant_options_duplicate":null}function Il(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Sl(e,t){return ao(e.cents,e.per??t,t)}function Fo(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 Al(n.slice(0,13))===Number(n[13])?n:void 0}function Al(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 Tl(e,t){const n=t.trim(),r=Fo(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Cl=[{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 jo(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 Cl){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 Go(e,t,n){const r=jo(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:Zt}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:Zt};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:kl(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function vl(e,t,n){const r=jo(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 kl(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?P(t*(1-e.discountPercent/100)):t}const Wo="manual",Zt="missing";function Ol(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===Wo||o.usage)return o;const s=t.find(l=>l.id===o.productId);if(!s)return o;const a=o.factor??1,i=Go(s,{...r,quantity:o.quantity*a},n),u=i.unitPriceCents==null?0:i.unitPriceCents*a;if(u===o.unitPriceCents&&i.sourceKey===o.priceSourceKey&&i.per===o.pricePer)return o;const{pricePer:c,...d}=o;return{...d,unitPriceCents:u,priceSourceKey:i.sourceKey,...i.per?{pricePer:i.per}:{}}})}function vn(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 Ml(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 Jt(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=vn(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(R=>R.trim());if(d===0&&!Jt(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:vn(y),g=Jt(f[u]??""),[h,p]=i?(f[u+1]||"1/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 Je=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 Ho(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Nl(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Ho(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Er(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function qo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>Nl(a,e.dimensions[s]))&&(!n||Er(r)>Er(n))&&(n=r);return n}function Yo(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 zo(e,t,n){const r=t.tiers;if(t.mode==="volume"){const i=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return i?{micros:P(e*i.micros/n),bands:[{quantity:e,micros:i.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,a=0;for(const i of r){if(e<=s)break;const u=i.upTo===void 0?e:Math.min(e,i.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:i.micros}),a+=c*i.micros/n),s=u}return{micros:P(a),bands:o}}function Dl(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=qo(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:Yo(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=P(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:y}=zo(f,a.price,a.unitSize):b=P(c*(1+a.price.percent/100));const E=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:d,included:l,billed:f,micros:E,cents:P(E/Je),...y?{bands:y}:{}}}),unrated:r}}function wl(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/Je))return r;const s=o/Je,a=Math.round(e.billed/n.per*1e4)/1e4;return P(a*s)===e.cents?{quantity:a,unitKey:n.unit,unitPriceCents:s}:r}function xl(e,t,n,r){const{unitKey:o,id:s,organizationId:a,productId:i,businessEntityId:u,updatedAt:c,...d}=n??{};return{...e,...d,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function Pl(e){return!e.archived&&e.sellable!==!1}function Ll(e){return!e.archived&&e.purchasable===!0}const $l=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Kl="usage-source",Ul="/usage/records";function Xo(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function Bl(e){return{...e,meters:(e.meters??[]).map(t=>Xo(t)),accounts:e.accounts??[]}}const Fl=new Set(["mail","message"]);function Qo(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function jl(e,t,n,r="html"){if(!e)return n;const o=Qo(e,t);return o?`${n}${r==="text"?`
|
|
7
|
+
`}const Tn=e=>`user:${e}`,kn=e=>`team:${e}`;function Wu(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Tn(n.id)),n.kind==="team"&&t.add(kn(n.id)));return[...t].sort()}function Vu(e,t){return[Tn(e),...t.map(kn)]}function Hu(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Po=["done","escalated"],qu=["open","waiting"];function Yu(e){return Po.includes(e)}const Lo="assignment";function zu(e){return`${Lo}:${e}`}function Xu(e,t,n,r){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const o=e.payload?.mentions;return Array.isArray(o)&&o.includes(t)||r&&r===t?!0:n==="reply"}function Qu(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Zu(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const $o=12;function Ju(e,t,n=$o){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Ko=2;function el(e,t,n,r){if(t===n)return"een agent schakelt zichzelf niet in";if(!r?.includes(t))return"deze agent staat niet in de lijst die je mag inschakelen";const o=e??[];if(o.includes(t))return"die agent zit al in deze keten; dat zou een kringetje worden";const s=Math.max(0,o.length-1);return s>=Ko?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Er=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Sr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function tl(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),i=Er(`${e.description} ${e.endToEndId??""}`),a=h=>h.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:h.id,sourceApp:h.sourceApp??"sales"}:{kind:"receipt",receiptId:h.id},u=s.filter(h=>h.number&&i.includes(Er(h.number))),c=u.find(h=>h.openCents===r);if(c)return{target:a(c),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:c.label};if(u.length===1&&u[0]){const h=u[0];return{target:a(h),via:"exact",confidence:"medium",reasons:["invoice_number"],label:h.label}}const l=e.counterpartyIban;if(l){const h=s.filter(y=>y.ibans.includes(l)&&y.openCents===r);if(h.length===1&&h[0]){const y=h[0];return{target:a(y),via:"exact",confidence:"high",reasons:["iban","amount"],label:y.label}}}const d=(t.scheduled??[]).filter(h=>h.expectedBankCents===e.amountCents),f=l?d.filter(h=>h.ibans.includes(l)):[],m=d.filter(h=>Sr(h.dueOn,e.date)<=7),b=f.length===1?f[0]:m.length===1?m[0]:void 0;if(b)return{target:{kind:"scheduled_posting",scheduledPostingId:b.id},via:"exact",confidence:f.length===1?"high":"medium",reasons:f.length===1?["iban","amount"]:["amount","date_window"],label:b.label};if(l&&t.ownIbans.some(h=>h.iban===l&&h.bankAccountId!==e.bankAccountId)){const h=t.otherLines.find(y=>y.state==="unmatched"&&y.bankAccountId!==e.bankAccountId&&y.amountCents===-e.amountCents&&Sr(y.date,e.date)<=3);if(h)return{target:{kind:"transfer",bankLineId:h.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const g=e.description.toLowerCase(),E=[...t.rules].sort((h,y)=>h.order-y.order).find(h=>{const y=h.when;return y.bankAccountId&&y.bankAccountId!==e.bankAccountId||y.counterpartyIban&&y.counterpartyIban!==l||y.direction&&y.direction!==(n?"in":"out")||y.descriptionContains&&!g.includes(y.descriptionContains.toLowerCase())?!1:!!(y.counterpartyIban||y.descriptionContains)});if(E)return{target:E.action.financingItemId?{kind:"financing",financingItemId:E.action.financingItemId}:{kind:"account",accountId:E.action.accountId,...E.action.taxCode?{taxCode:E.action.taxCode}:{},...E.action.description?{description:E.action.description}:{}},via:"rule",confidence:E.confidence,ruleId:E.id,reasons:["rule"],label:E.name}}function nl(e,t,n){const[r,o]=[e.slice(0,3),e.slice(3)],s=r==="jl:"?"journal_line":"bank_line",i=n.filter(a=>a.status==="active").flatMap(a=>a.allocations).filter(a=>a.item.kind===s&&a.item.id===o).reduce((a,u)=>a+u.amountCents,0);return t-i}function rl(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function ol(e,t){const n=Math.sign(t)===Math.sign(e);return{state:t===0?"paid":n?Math.abs(t)>=Math.abs(e)?"unpaid":"partially_paid":"overpaid",paidCents:Math.abs(e-t),openCents:n?Math.abs(t):0}}const Uo=e=>e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim();function V(e,t){const n=[],r=new RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,"g");for(let o=r.exec(e);o;o=r.exec(e))n.push(o[1]??"");return n}function k(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:V(n,r)[0];return n===void 0?void 0:Uo(n)}const Ze=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},Ir=e=>e?.slice(0,10),sl=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Bo(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=V(t,"Stmt")[0]??t,r=k(n,"Id")??"stmt",o=l=>{const d=V(n,"Bal").find(m=>k(m,"Cd")===l);if(!d)return;const f=Ze(k(d,"Amt"));if(f!==void 0)return{cents:k(d,"CdtDbtInd")==="DBIT"?-f:f,date:sl(d)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=V(n,"Ntry").flatMap((l,d)=>{if((k(l,"Sts","Cd")??k(l,"Sts"))==="PDNG")return[];const f=Ze(k(l,"Amt"));if(f===void 0)return[];const m=k(l,"CdtDbtInd")==="DBIT",b=V(l,"TxDtls")[0]??l,g=m?"Cdtr":"Dbtr",E=k(b,"RltdPties",g,"Nm")??k(b,"RltdPties",g,"Pty","Nm"),h=k(b,"RltdPties",`${g}Acct`,"Id","IBAN"),y=[...V(b,"Ustrd").map(Uo),k(l,"AddtlNtryInf")].filter(Boolean),p=k(b,"Refs","EndToEndId"),S=Ir(k(l,"BookgDt","Dt")??k(l,"BookgDt","DtTm"))??"",T=Ir(k(l,"ValDt","Dt")??k(l,"ValDt","DtTm")),C=k(l,"AcctSvcrRef")??k(l,"NtryRef");return[{date:S,...T?{valueDate:T}:{},amountCents:m?-f:f,currency:/Ccy="([A-Z]{3})"/.exec(l)?.[1]??"EUR",...E?{counterpartyName:E}:{},...h?{counterpartyIban:h.replace(/\s+/g,"").toUpperCase()}:{},description:y.join(" ").replace(/\s+/g," ").trim(),...p&&p!=="NOTPROVIDED"?{endToEndId:p}:{},dedupeKey:C?`ref:${C}`:`seq:${r}:${d+1}`}]}),u=a.map(l=>l.date).filter(Boolean).sort(),c=k(n,"Acct","Id","IBAN");return{format:"camt053",...c?{iban:c.replace(/\s+/g,"").toUpperCase()}:{},...k(n,"Acct","Ccy")?{currency:k(n,"Acct","Ccy")}:{},from:k(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??u[0]??"",to:k(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const Fo=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function Ar(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=Ze(t[4])??0;return{cents:t[1]==="D"?-n:n,date:Fo(t[2]??""),currency:t[3]}}const il=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function al(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+il.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((i,a)=>{const u=(i.index??0)+i[0].length,c=r[a+1]?.index??t.length;o[i[1]??""]=t.slice(u,c).replace(/\/$/,"").trim()});const s=(o.REMI??"").replace(/^(?:USTD|STRD)\/+(?:[A-Z]+\/+)*/,"").trim();return{...o.NAME?{counterpartyName:o.NAME}:{},...o.IBAN?{counterpartyIban:o.IBAN.replace(/\s+/g,"").toUpperCase()}:{},...o.EREF&&o.EREF!=="NOTPROVIDED"?{endToEndId:o.EREF}:{},description:s||t.trim()}}function jo(e){const t=e.replace(/\r\n/g,`
|
|
8
|
+
`),n=[];for(const l of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const d=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(l.trim());d&&n.push({tag:d[1]??"",value:(d[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,i;const a=[];let u=0;for(const{tag:l,value:d}of n)if(l==="25")r=d.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(l==="28C")o=d,u=0;else if(l==="60F"||l==="60M")s??=Ar(d);else if(l==="62F"||l==="62M")i=Ar(d);else if(l==="61"){const f=d.split(`
|
|
9
|
+
`)[0]??"",m=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!m)continue;u++;const b=Ze(m[4])??0,g=m[3]==="C"||m[3]==="RD",E=Fo(m[1]??""),h=m[2]?`${E.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:E,y=m[6]??m[5]?.trim();a.push({date:h,valueDate:E,amountCents:g?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${u}`})}else if(l==="86"){const f=a.at(-1);f&&!f.description&&Object.assign(f,al(d))}const c=a.map(l=>l.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??c[0]??"",to:i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function cl(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Bo(e):jo(e)}const ul=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function ll(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Go(e){const t=e.reduce((r,o)=>r+o.netCents,0),n=e.reduce((r,o)=>r+o.taxCents,0);return{netCents:t,taxCents:n,grossCents:t+n}}const dl="receipt",fl="book";function Wo(e){const t=[];return e.fields.supplierName?.value.trim()||t.push("no_supplier"),e.fields.issueDate?.value||t.push("no_date"),e.lines.length?e.lines.some(n=>!n.accountKey)&&t.push("no_account"):t.push("no_lines"),e.lines.some(n=>n.treatment?.kind==="asset"&&!n.treatment.groupId)&&t.push("asset_without_group"),e.lines.some(n=>n.treatment?.kind==="spread"&&!(n.treatment.months>0&&n.treatment.firstMonth&&n.treatment.resultAccountId))&&t.push("spread_without_months"),t}function pl(e){if(e.status!=="to_check")return null;const t=Wo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Vo(e,t=""){const n=new Map;for(const r of e){const o=[r.accountKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",r.customerCompanyId??"",r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:i})=>({description:[...new Set(i)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},...r.customerCompanyId?{dimensions:{customerCompanyId:r.customerCompanyId}}:{},...r.productId?{productId:r.productId}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function ml(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Vo(e.lines,n.supplierName?.value??""),totals:Go(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function gl(e,t,n){return`${e}:${t}:${n}`}function hl(e){return[1,5,15][e-1]??60}const yl=10*6e4;function bl(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(i=>s(i.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const _l="organization.business-entities.list",El=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Sl(e,t,n){return e?e===t:n}function Il(e){return e.isDefault===!0?[e.id,""]:[e.id]}function Al(e,t,n){const r=new Map;for(const o of e)o.businessEntityId||r.set(o[t],o);if(n)for(const o of e)o.businessEntityId===n&&r.set(o[t],o);return[...r.values()]}function Cl(e,t,n){return n*Ho(e,t)}function Ho(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function vl(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function Tl(e,t){return!t.some(n=>n.parentId===e.id)}function kl(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(u=>u.key).length!==r.length||r.some(u=>!o.find(c=>c.key===u&&c.value.trim())))return"variant_options_mismatch";const i=u=>r.map(c=>u?.find(l=>l.key===c)?.value.trim()??"").join("\0"),a=i(o);return n.some(u=>u.id!==t.id&&i(u.options)===a)?"variant_options_duplicate":null}function Ol(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Ml(e,t){return mo(e.cents,e.per??t,t)}function gt(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return Rl(n.slice(0,13))===Number(n[13])?n:void 0}function Rl(e){let t=0;for(let n=0;n<e.length;n++)t+=Number(e[n])*(n%2===0?3:1);return(10-t%10)%10}function Nl(e,t){const n=t.trim(),r=gt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Dl=[{key:"contract",matches:(e,t)=>!!e.contractId&&e.contractId===t.contractId&&!!e.productId},{key:"customer",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function qo(e,t,n,r){const o=n.filter(s=>r(s)&&s.currency===e.currency&&(s.validFrom==null||s.validFrom<=t.at)&&(s.validTo==null||s.validTo>=t.at)&&(s.minQuantity==null||t.quantity>=s.minQuantity)&&(s.productId==null||s.productId===e.id)&&(s.categoryKey==null||s.categoryKey===e.categoryKey)&&(s.productId!=null||s.categoryKey!=null));for(const s of Dl){const i=o.filter(u=>s.matches(u,t));if(i.length===0)continue;const a=i.reduce((u,c)=>{const l=(c.minQuantity??0)-(u.minQuantity??0);return l!==0?l>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function Yo(e,t,n){const r=qo(e,t,n,i=>!i.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:en}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:en};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:xl(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function wl(e,t,n){const r=qo(e,t,n,o=>!!o.rateCardId);return r?.rule.rateCardId?{rateCardId:r.rule.rateCardId,sourceKey:r.sourceKey,ruleId:r.rule.id}:e.rateCardId?{rateCardId:e.rateCardId,sourceKey:"list"}:null}function xl(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?P(t*(1-e.discountPercent/100)):t}const zo="manual",en="missing";function Pl(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===zo||o.usage)return o;const s=t.find(d=>d.id===o.productId);if(!s)return o;const i=o.factor??1,a=Yo(s,{...r,quantity:o.quantity*i},n),u=a.unitPriceCents==null?0:a.unitPriceCents*i;if(u===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:c,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function On(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function Ll(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function tn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=On(e);return n===void 0?void 0:{kind:"flat",micros:n}}function $l(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,u=1+i.length+1;return o.forEach((c,l)=>{const d=l+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(l===0&&!tn(f[u]??""))return;const m=f[0]??"",b={};i.forEach((R,D)=>{const G=f[1+D]??"";if(!G)return;const Q=/^[+\d\s-]+$/.test(G)?G.replace(/\D/g,"").replace(/^00/,""):G;b[R.key]=R.match==="prefix"?{prefix:Q}:{equals:G}});const g=f[1+i.length]??"",E=g===""?0:On(g),h=tn(f[u]??""),[y,p]=a?(f[u+1]||"1/1").split("/").map(Number):[1,1],S=a?f[u+2]??"":"",T=S===""?0:Number(S),C=m?E===void 0||!h?"price":!(y>0)||!((p??y)>0)||!Number.isFinite(T)?"increment":null:"label";if(C){r.push({line:d,message:C});return}n.push({label:m,match:b,setupMicros:E,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:p??y,minimum:T})}),{rates:n,errors:r}}const Je=1e4;function Xo(e,t){if(e.length===0)return 0;switch(t){case"max":return Math.max(...e.map(n=>n.quantity));case"last":return e.reduce((n,r)=>(r.occurredAt??0)>=(n.occurredAt??0)?r:n).quantity;case"average":return e.reduce((n,r)=>n+r.quantity,0)/e.length;default:return e.reduce((n,r)=>n+r.quantity,0)}}function Qo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Kl(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Qo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Cr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Zo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>Kl(i,e.dimensions[s]))&&(!n||Cr(r)>Cr(n))&&(n=r);return n}function Jo(e,t){const n=Math.max(t.firstIncrement,1),r=Math.max(t.nextIncrement,1),o=e<=n?n:n+Math.ceil((e-n)/r)*r;return Math.max(o,t.minimum)}function es(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return a?{micros:P(e*a.micros/n),bands:[{quantity:e,micros:a.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,i=0;for(const a of r){if(e<=s)break;const u=a.upTo===void 0?e:Math.min(e,a.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:a.micros}),i+=c*a.micros/n),s=u}return{micros:P(i),bands:o}}function Ul(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=Zo(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const u=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};u.ids.push(i.id),u.billed.push({quantity:Jo(i.quantity,a),occurredAt:i.occurredAt}),u.costMicros+=i.costMicros??0,o.set(a.id,u)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:u,costMicros:c})=>{const l=Xo(a,n),d=Math.min(i.included??0,l),f=l-d,m=i.setupMicros*a.length;let b,g;i.price.kind==="flat"?b=P(f*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:b,bands:g}=es(f,i.price,i.unitSize):b=P(c*(1+i.price.percent/100));const E=b+m;return{rateId:i.id,label:i.label,records:a.length,recordIds:u,measured:l,included:d,billed:f,micros:E,cents:P(E/Je),...g?{bands:g}:{}}}),unrated:r}}function Bl(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/Je))return r;const s=o/Je,i=Math.round(e.billed/n.per*1e4)/1e4;return P(i*s)===e.cents?{quantity:i,unitKey:n.unit,unitPriceCents:s}:r}function Mn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Fl(e,t,n,r){const{unitKey:o,id:s,organizationId:i,productId:a,businessEntityId:u,updatedAt:c,...l}=n??{};return{...e,...l,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function jl(e){return!e.archived&&e.sellable!==!1}function Gl(e){return!e.archived&&e.purchasable===!0}const Wl=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Vl="usage-source",Hl="/usage/records";function ts(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function ql(e){return{...e,meters:(e.meters??[]).map(t=>ts(t)),accounts:e.accounts??[]}}const Yl=new Set(["mail","message"]);function ns(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function zl(e,t,n,r="html"){if(!e)return n;const o=ns(e,t);return o?`${n}${r==="text"?`
|
|
10
10
|
|
|
11
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function Zo(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Gl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Wl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=Zo(n);r&&!t.includes(r)&&t.push(r)}return t}function Vl(e){return e.endpoints??[]}const Hl=["lead","opportunity","customer","former"],ql=["new","working","unqualified"];function Yl(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const Jo=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],es=["openDeal","hasContacts"],zl={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},Xl=["updatedAt","createdAt","name"],Ql=["list"];function Zl(e){return e.search?.trim()||e.createdWithinDays||es.some(t=>e[t])||Jo.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const ts="CRM_NOTE_ADDED",Jl="crm_activity",ns="CRM_CALL_LOGGED",ed="CRM_STAGE_CHANGED",td=["phone","meeting","video"],nd=["callback","interested","no_answer","not_interested"],rd=e=>e===ts||e===ns,od=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 sd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function id(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 ad=/\{([a-zA-Z0-9_.]+)\}/g;function kn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function cd(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function rs(e,t,n){const r=[];return{text:e.replace(ad,(s,a)=>{const i=kn(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):cd(i)}),unresolved:r}}function os(e,t){if(!e)return!0;const n=kn(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 ud(e,t,n,r,o){const s=[],a=[],i=new Set,u=c=>{const d=rs(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&&!os(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 ss(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 ld(e){return ss({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 is(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 dd(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function fd(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 is(e,t,s,o)}const Dt=864e5,et=e=>Date.parse([e,"T00:00:00Z"].join("")),pd=e=>new Date(e).toISOString().slice(0,10);function as(e,t){const n=et(t.from),r=et(t.to)+Dt;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))/Dt);o.push({month:pd(i),share:c/Math.round((u-i)/Dt)}),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 cs(e){const t=new Date(et(e.from)),n=new Date(et(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const On=864e5,gt=e=>new Date(e).toISOString().slice(0,10),tt=e=>Date.parse(`${e}T00:00:00Z`);function me(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),a=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,a)),gt(s.getTime())}function Mn(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 md(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=tt(t);c<=tt(n);c+=On){const d=gt(c);for(;i<s.length&&(s[i]?.date??"")<=d;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function gd(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:gt(tt(d)-On)}),u=d}return i}const us=5e7,hd=["director","group_company","participation","other_company"],yd=e=>e?.relation&&hd.includes(e.relation)?e.relation:"director";function bd(e,t=us){return{over:e>t,ratio:Math.max(0,e)/t}}function _d(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Mn(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 ls(e){return gt(tt(me(`${e.slice(0,7)}-01`,1))-On)}function Rn(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 ds(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:ls(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 Ir=600;function fs(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 Rn(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<Ir;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===Ir-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function Ed(e,t){const n=e.terms;if(n.disposal)return[];const r=fs(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return ds(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 Id(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 Sd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return ds(e.id,n.period?as(n.totalCents,n.period).map(o=>o.cents):Rn(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 Ad(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Td(e,t){const n=me(t,12);return Mn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Cd(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 ps={NL:45e3},vd=(e,t)=>t??ps[(e??"NL").toUpperCase()],kd=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}],ms=36e5,gs=864e5,ee=-1/0,Od=e=>e.score>ee,Ie={urgent:40,high:25,normal:10,low:0};function Md(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Rd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,hs=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function ys(e,t){return!!(e&&Rd.test(e)||t&&hs.test(t))}const bs=3,_s=600;function Nd(e,t){return e>=bs||t>=_s}const Es=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Dd(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&Es.includes(r)&&(t[r]=n.value)}return t}const wd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,xd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function Pd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&wd.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&hs.test(e.body)||n&&xd.test(n))return"marketing"}function Is(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Ss=["open"],As=1e3,Ts=72;function Cs(e){return e.lastActivityAt??(e.createdAt?new Date(io(e)).getTime():0)}function vs(e,t){return ks(t.remindersById?.[e.id],e,t.now)}function ks(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const Os=e=>no(e)==="outbound_message",Ms=e=>Ss.includes(e);function ht(e,t){return Math.max(0,(t-Cs(e))/ms)}function Rs(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function Ld(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function $d(e,t,n){if(!Ms(e.status)||e.firstResponseAt)return!1;const r=Rs(e,n);return r!==void 0&&ht(e,t)>r}function Ns(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!Os(n.type)?!1:ht(e,t)<Ts}function Kd(e,t){if(!Ms(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ns(e,t.now))return{score:ee,reasons:[]};if(vs(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}`)),Is(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=ht(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"&&Os(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")||ys(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=As,r.push("bulk")),{score:n,reasons:r}}const Ud=e=>!!e.assignedUserId||!!e.assignedInboxId,Bd=e=>e.status==="closed",Fd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,jd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Ds=[{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}],Gd=["duplicate","spam"],Wd="c_";function Vd(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Ds,...t]}function Hd(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function qd(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 Yd="article",nt=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function ws(e){const t=(e??"").toLowerCase();return nt.find(n=>n.code===t)??nt.find(n=>n.code===t.split("-")[0])}function zd(e){return ws(e)?.label??e}function Xd(e){const t=ws(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const Nn=3;function xs(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>Nn+1))return 1/0;o=t.get(o)?.parentId}return r}function Qd(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&&Ps(e,t,r))return!1;const o=xs(e,r),s=t?Dn(t,n):1;return o+s<=Nn}function Ps(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 Dn(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=>Dn(o.id,t,n))):1}const Ls="en";function $s(e){return e.defaultLocale||e.locale||Ls}function Zd(e){const t=new Set,n=[];for(const r of[$s(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Jd(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 ef(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 tf(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 nf=["revenue","expense"],ve=e=>nf.includes(e.type),rf=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Ks(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=rf(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 of(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=Ks(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 sf(e,t,n,r,o=s=>s){const s=e.filter(d=>!ve(d)),i=Ks(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 af(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 cf(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 uf(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}:{}}),Us={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"}]},lf=[Us],Bs={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function df(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 ff(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const pf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function mf(e){const t={};for(const n of pf)e[n]!==void 0&&(t[n]=e[n]);return t}function en(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(en).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+en(r)).join(",")+"}"}function gf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Fs(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 hf(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 yf(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&cs(t.period)>1?[{index:n,period:t.period}]:[])}function bf(e,t){const n=e.kind==="journal"?If(e,t):Ef(e,t);return n.ok?_f(n,e,t.functionalCurrency??"EUR"):n}function _f(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 Ef(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??Fs(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}:{},...hf(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 If(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??Fs(o,t.rules,e)?.accountId??n(Bs[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 wt=e=>String(e).padStart(2,"0"),Sf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function Af(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}-${wt(i)}-01`,to:`${a}-${wt(i)}-${wt(Sf(a,i))}`,status:"open"}})}function Tf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const js="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Cf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Gs=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),wn=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Gs(wn(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},xt=e=>e<0?"C":"D",Sr=e=>wn(e.replace(/-/g,""),35);function vf(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="',js,'">',"<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>"+Gs(wn(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",Sr(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",xt(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",Cf[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",xt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Sr(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",xt(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 kf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Of(e){const t=V(e,"ledgerAccount").map(i=>{const u=k(i,"RGScode")??k(i,"leadCode");return{code:k(i,"accID")??"",name:k(i,"accDesc")??"",kind:k(i,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=i=>{const u=k(i,"accID");u&&(n[u]=(n[u]??0)+kf(k(i,"amnt"),k(i,"amntTp")))};for(const i of V(e,"obLine"))r(i);for(const i of V(e,"trLine"))r(i);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),a=k(o,"endDate");return{accounts:t.filter(i=>i.code),closing:n,...s?{fiscalYear:s}:{},...a?{endDate:a}:{}}}function Mf(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 tn=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!tn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${tn.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 Rf(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&&Rf(n.ownerScope,t))}function Df(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function wf(e){return`mcp__${e}__`}const xf=1e3,Pf=2e3,Lf=500,$f=12e3,Kf=4e3,Ws=["contact","company","work_item"];function Uf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return Ws.includes(t)}const Bf=[{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 Ff=[{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 xn(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function jf(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:xn(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const Ar=/^\d{4}-\d{2}-\d{2}$/;function Gf(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 yt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=P(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?dt(n,e.pricePer,e.servicePeriod):n}function Wf(e,t,n){const r=e.map(c=>({...c,netCents:yt(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,E)=>y+r[E].netCents,0),m=P(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+P(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const Vf="onboarding-source",Hf=["support","billing","availability","sales","onboarding"],qf=["keep","replace"],bt=[{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"}],Hs={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=bt){return t.find(n=>n.key===e)??{...Hs,key:e}}function pe(e){return e==="published"||e==="approved"}function Pn(e,t,n=bt){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Yf(e,t=bt){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const zf=864e5;function qs(e,t){return Math.round((t-e)/zf)}function Ln(e,t){const n=e.cycleMinutes.length;return n===0?0:(qs(e.anchor,t)%n+n)%n}function $n(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[Ln(e,t)]??0}function Kn(e,t){return e.startTimes?.[Ln(e,t)]}function Un(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 Ys(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 nn=864e5;function Xf(e){const t=Math.max(1,Math.round((e.to-e.from)/nn));return Array.from({length:t},(n,r)=>e.from+r*nn)}function rn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Tr={interval:0,day:1,week:2};function Qf(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=>{Tr[l]>Tr[c]&&(c=l)};for(const l of i){const f=t.teamIdsOf?.(l)??[];let m=0,b=0,y=0;for(const h of Xf(e)){const p=Math.max(h,e.from),I=Math.min(h+nn,e.to);y++;const v=s.filter(D=>D.userId===l).reduce((D,G)=>D+rn(G.start,G.end,p,I),0);if(v>0){m+=v;continue}const C=Un(r,l,f,h),R=C?$n(C,h):0;if(C&&R>0){m+=R*60,d(Kn(C,h)?"interval":"day");continue}C||b++}if(b>0){const h=Ys(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+rn(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 Zf(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 Jf(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=rn(d.start,d.end,n.from,n.to);l<=0||(Pn(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 ep="demand-source",Cr=1e3;function tp(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function zs(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=tp(e,t),r=t/e;return n/(1-r*(1-n))}function Xs(e,t,n,r){return r<=0?1:e<=t?0:1-zs(e,t)*Math.exp(-(e-t)*n/r)}function Qs(e,t,n){return n<=0?0:e*t/n}function Zs(e,t,n,r){if(e<=0||t<=0)return 0;const o=Qs(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<=Cr;i++)if(!(i<=o)&&!(Xs(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return Cr}const np=36e5,rp=864e5;function op(e){return e==="day"?rp:np}function sp(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 Js(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=Zs(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function ip(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=op(a),u=i/1e3,c=e.kinds,d=t.filter(y=>pe(y.status)),l=d.filter(y=>Pn(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=Js(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 ei(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function ap(e,t,n){const r=ei(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function cp(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const up=36e5,on=6048e5,ti=8,lp=.5,dp=2;function fp(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 pp(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*on,i=a-on;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(dp,Math.max(lp,r[0]/o))}function mp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function gp(e,t,n){const r=Math.max(1,n?.weeks??ti),o=new Map,s=new Set;for(const u of e)o.set(fp(u.period),u.value),s.add(u.period.slice(0,10));const a=pp(o,fe(t.from,"hour"),r),i=[];for(let u=fe(t.from,"hour");u<t.to;u+=up){let c=0,d=0;for(let m=1;m<=r;m++){const b=u-m*on,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=mp(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 ni="schedule_entry",ri="workstream";function hp(e){return`${ni}:${e}`}function yp(e){return`${ri}:${e}`}const sn=36e5,le=864e5;function bp(e,t){const n=t==="day"?le:sn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function vr(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 Pt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function _p(e,t,n={}){const r=n.grain??"hour",o=bp(t,r),s=r==="day"?le:sn,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=Pt(l.start,l.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of vr(t))Pt(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 vr(t)){if(c.has(`${l}:${m}`))continue;const b=Un(n.patterns,l,f,m);if(!b)continue;const y=$n(b,m);if(y<=0)continue;const E=Kn(b,m);if(E){const[p,I]=E.split(":").map(Number),v=m+p*sn+(I??0)*6e4,C=v+y*6e4;for(const R of o){const D=Pt(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 oi(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 Ep(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 oi(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 si(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Ip(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 ii(e){return si(e)}function ai(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 Sp(e){return e.agentId?{kind:"user",userId:e.agentId}:ai(e.ownerScope)}function Ap(e){return ii(e)}const ci="playbook-run",Tp="run";function Cp(e,t=0){return`${ci}:${e}~${t}`}function vp(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function ui(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function kp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Op(e,t){if(t)return e.targets.find(n=>n.id===t)}function li(e){return e?.kind==="assignment"}function Mp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return li(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 an=["suggest","outward","auto"];function Rp(e){return typeof e=="string"&&an.includes(e)}function Np(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Dp(e,t){const n=e??"suggest";return t&&an.indexOf(t)<an.indexOf(n)?t:n}function wp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function di(e){const t=e.split("__");return t[t.length-1]||e}function xp(e){const t=di(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Pp=[{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 Lp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const $p={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 Bn(e){return`${e.type}:${e.id}`}function Kp(e){return[Bn(e),e.lineId].join("#")}function Up(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 Bp(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 fi="interaction";function pi(e){return e?.type===fi?e.id:void 0}const mi=64,gi=8e3;function Fp(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),mi),gi)}const jp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],Gp={kind:"workflow",steps:[]};function Wp(e){return e?.kind==="workflow"?e.steps:[]}function Vp(e){return e?.kind==="procedure"?e.procedure:void 0}function Hp(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function hi(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const yi=10,bi=.9;function qp(e){const{total:t,rate:n}=hi(e);return t>=yi&&n>=bi}const _i=["done","escalated","failed","stopped"];function Yp(e){return _i.includes(e)}function Ei(e){return e==="waiting"}function zp(e){return e==="running"||Ei(e)}function Fn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Xp(e){const t=Fn(e);return t?Bn(t):void 0}function Qp(e){return pi(Fn(e))}const Lt=864e5;function Zp(e,t){return e.lines.flatMap(n=>{const r=ft(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=yt({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 Ii(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 kr=e=>e.seriesId??e.id;function Jp(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 em(e,t,n,r={}){const o=(r.noticeDays??30)*Lt,s=(r.windowDays??7)*Lt,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(kr(c),[...u.get(kr(c))??[],c]);for(const c of u.values()){const d=Jp(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=bn(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?En(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=_n(b,m,n)+d.changeWindowDays*Lt;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];Ii(h.slice(0,-1).map(I=>I.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function Si(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function tm(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 Ai(e,t,n){const r=[];for(const o of e.lines){const s=t.find(i=>i.id===o.poLineId),a=Si(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!==jn(s??{},o.quantity)&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function nm(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 Ti(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ci(e,t){const n=e.filter(r=>Ti(r,t));return n.find(r=>r.isDefault)??n[0]??null}function jn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function vi(e){return{cents:P(e.costCents/jn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function rm(e){const t=vi(e);return t.per?dt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const om=864e5,cn=e=>e.seriesId??e.id;function Or(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 Mr(e){const t=new Map;for(const n of e)t.set(cn(n),[...t.get(cn(n))??[],n]);return t}function sm(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=>[...Mr(i.lines).values()].map(u=>({contract:i,line:Or(i,u,t),start:bn(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of Mr(i.lines).values()){const c=Or(i,u,t);if(c.quantity.from!=="fixed")continue;const d=Ci(e.offers.filter(C=>C.productId===c.productId),t);if(!d)continue;const l=cn(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=En(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<_n(m.start,p,t)+I*om;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 ki=[{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:[]}],im="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function Oi(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 am(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 Gn(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 Mi(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=Gn(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 cm(e,t,n,r){const o=Oi(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=Mi(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=[...Ai({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 um(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 lm=864e5,Rr=e=>Date.parse([e,"T00:00:00Z"].join(""));function dm(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:Gn(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:Rr(u.period.from),to:Rr(u.period.to)+lm}: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:yt({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 Ri={percent:1,cents:100};function fm(e,t,n=Ri){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 pm(e){const t=[],n=new Map;for(const r of[...e].sort(mm)){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 mm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function gm(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const Ni=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function hm(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?xn(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=Ni.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 ym(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 Wn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const bm=/^\{\{\s*([\w.]+)\s*\}\}$/,_m=/\{\{\s*([\w.]+)\s*\}\}/g,Em=/\$[A-Za-z_][\w]*\.[\w.]+/;function Im(e,t,n={}){return rt(e,t,n)}function rt(e,t,n={}){return typeof e=="string"?Sm(e,t,n):Array.isArray(e)?e.map(r=>rt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,rt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Sm(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(Em);if(s)throw new Wn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(bm);if(o){const s=Nr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(_m,(s,a)=>{const i=Nr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function Nr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Wn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return Am(e,t)}function Am(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Tm=new Set(["filled","empty"]);function Cm(){return{kind:"rule",op:"==",varPath:"",value:""}}const vm=new Set(["==","!=",">","<",">=","<="]);function $t(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Dr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Di(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=un(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function un(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=un(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($t(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=un(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!$t(s)||!Dr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(vm.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!$t(o)||!Dr(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 km(e){const t=Di(e);return t&&ln(t)||null}function ln(e){if(e.kind==="group"){const t=e.children.map(ln).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${ln(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 Kt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Om(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 Vn(e){const t=e.trim().split(/\s+/);if(t.length!==Kt.length)return null;const n=[];for(let u=0;u<Kt.length;u++){const c=Kt[u],d=t[u];if(!c||d===void 0)return null;const l=Om(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 Mm(e){return Vn(e)!==null}function wi(e,t){const n=Vn(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 xi="@schedule",dn=3;function Pi(e,t,n){const r=[],o=e.depth??0;if(o>=dn)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${dn})`}))};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!==xi){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(!wi(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 Rm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Nm(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Pi(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 Dm(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Li(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Dm(e,n))}function wm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Li(r,t).length)?"corrected":"kept"}function xm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Pm(e){return`subject.${e.path}`}function Lm(e,t){return e.events.find(n=>n.name===t)}function $m(e,t){return e.filter(n=>ui(t,n.path)===void 0).map(n=>n.path)}const fn=6e4,Km=36e5,Se=864e5,$i=800;function wr(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Se+Km}function Um(e){const t=new Date(e).getUTCFullYear();return e>=wr(t,2)&&e<wr(t,9)}function Ki(e,t){const n=t.dst==="eu"&&Um(e)?60:0;return(t.utcOffsetMinutes+n)*fn}function Bm(e){return(e+3)%7+1}function Ui(e,t){const n=Ki(e,t),r=e+n,o=Math.floor(r/Se);if(!t.days.includes(Bm(o)))return null;const s=o*Se;return{open:s+t.fromMinutes*fn-n,close:s+t.toMinutes*fn-n}}function Bi(e,t){const n=Ki(e,t),r=e+n;return(Math.floor(r/Se)+1)*Se-n}function ot(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<$i&&o<t;s++){const a=Ui(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Bi(o,n)}return r}function _t(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<$i;s++){const a=Ui(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=Bi(o,n)}return e+t}function Fm(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const st=1,it=2,at=4;function jm(e){return e==="snoozed"?st:it}function Et(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Gm=["speed_of_answer","first_response","next_response","resolution","close"],Wm=["snoozed","waiting_for_customer"],Vm=6e4,Fi=["speed_of_answer","first_response","next_response"],Hm=[...Fi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function qm(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 xr(e){return ke(e)?{state:"void"}:null}function Ym(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:ot(n,e.dueAt,r)}}function zm(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:_t(n,e.remainingMs,r)}}function Xm({event:e,at:t,now:n,clocks:r,profile:o}){const s=Et(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,qm(h,a))},l=g=>{for(const h of i)g.includes(h.metric)&&c(h,xr(h))},f=g=>{for(const h of i)c(h,Ym(h,g,a,s))},m=g=>{for(const h of i)c(h,zm(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*Vm;u.push({op:"start",metric:g,attempt:b(g),startedAt:h,targetMs:I,dueAt:_t(h,I,s)})};switch(e){case"apply":{for(const g of i)g.profileId!==o.id&&c(g,xr(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(it);break}case"inbound":{m(it),!y("first_response")&&!y("next_response")&&E("next_response",a);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Fi);break;case"reopened":y("resolution")||E("resolution",a),y("close")||E("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(st);break;case"unsnoozed":m(st);break;case"hold":f(at);break;case"unhold":m(at);break;case"discarded":l(Hm);break}return u}function ji(e){return e.state==="running"||e.state==="paused"}function Qm(e){return(e.pauseBits&at)!==0}function ct(e,t){const n=Et(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-ot(e.dueAt,t,n):ot(t,e.dueAt,n)}function Zm(e,t){return e.state==="paused"?_t(t,e.remainingMs,Et(e)):e.dueAt}function Jm(e,t){const n=e.filter(ji);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>ct(a,t)<ct(s,t)?a:s)}function eg(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=ct(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function tg(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 Gi="strategy_item";function Hn(e){return`${Gi}:${e}`}function ng(e,t=25){const n=new Set([Hn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function rg(e){return e?[...e.ancestorKeys??[],Hn(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"}],Wi=999,Vi=7;function Hi(e,t=Oe){return t.find(n=>n.key===e)}function ut(e,t=Oe){return Hi(e,t)?.order??Wi}function og(e,t,n=Oe){return ut(t,n)<=ut(e,n)}function sg(e,t=Oe){const n=ut(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function ig(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 pn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function ag(e){return pn[e]??"open"}function cg(e){return Object.keys(pn).filter(t=>e.includes(pn[t]))}const ug=864e5,It=e=>e<=0?0:e>1?1:e;function lg(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,a=o-r;return(n==="down"?a<0:a>0)?It((t-r)/a):s?1:0}function dg(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return It((t-n)/(r-n))}const qi=.1,Yi=.25;function fg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=Yi?"off_track":n>=qi?"at_risk":"on_track"}function pg(e,t){if(t)return It(e/t)}function mg(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return It(t.reduce((n,r)=>n+r,0)/t.length)}function gg(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Vi)*ug,o=t-n-r;return o>0?o:0}function hg(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function yg(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 bg(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function _g(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 Eg(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Ig(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 zi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Sg(e,t){const n=zi(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 Ag(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Tg(e){return e.filter(t=>!t.archived).sort(Xi)}function Xi(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Qi=20,Zi=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Ji(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 Cg(e,t){const n=Ji(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},Pr(a)}return Pr([{...t,text:n},...o]).slice(0,Zi)}function Pr(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function vg(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(-Qi),exampleCandidates:ea(e,t)}}function ea(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function ta(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function kg(e,t){return e.filter(n=>ta(n,t))}const na=["apps","settings","wake"],St="businessEntityId";function Og(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([...ra.map(s=>s.key),...na,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Mg({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 ra=[{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 Rg(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 Ng({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 At=[{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"}],oa=[...At,...ki],qn=["quote","order","invoice","credit_note"];function Dg(){const e=new Map;for(const t of At)qn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return oa.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const wg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function sa(e,t){return F(e).transitions[t]??[]}function xg(e,t,n){return sa(e,t).includes(n)}const ia=["invoice","credit_note"];function Pg(e){return!!e.issuedAt&&ia.includes(e.kindKey)}function Lg(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}?${St}=${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 Yn(e){return e.issuedAt!=null}const $g=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function Kg(e){return Yn(e)&&F(e.kindKey).numbered&&!e.number}const Ug=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],Bg=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function Fg(e,t){if(!qn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Yn(e)}function aa(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 jg(e){return{...aa(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 Gg(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:Hg(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 Wg(e,t=[],n=ca){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,"","",""]:[Vg(i.name,i.description,i.optional,n.optional),qg(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 ca={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 Vg(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function Hg(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function qg(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 ua(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:zg[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:Lr[n]??Lr.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:$r[n]??$r.quote}]}const Yg=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),zg={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Lr={quote:`Beste {customer.contact},
|
|
11
|
+
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const Xl=["billing","delivery","site","visit"];function Ql(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function rs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Zl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Jl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=rs(n);r&&!t.includes(r)&&t.push(r)}return t}const ed=["customer","supplier"],td=e=>e==="customer"?"sales":"purchase";function nd(e){return e.endpoints??[]}const rd=["lead","opportunity","customer","former"],od=["new","working","unqualified"];function sd(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const os=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],ss=["openDeal","hasContacts"],id={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},ad=["updatedAt","createdAt","name"],cd=["list"];function ud(e){return e.search?.trim()||e.createdWithinDays||ss.some(t=>e[t])||os.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const is="CRM_NOTE_ADDED",ld="crm_activity",as="CRM_CALL_LOGGED",dd="CRM_STAGE_CHANGED",fd=["phone","meeting","video"],pd=["callback","interested","no_answer","not_interested"],md=e=>e===is||e===as,gd=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function hd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function yd(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=se(n),i=se(r);return o.find(a=>se(a.locale)===s)??o.find(a=>se(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const bd=/\{([a-zA-Z0-9_.]+)\}/g;function Rn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function _d(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function cs(e,t,n){const r=[];return{text:e.replace(bd,(s,i)=>{const a=Rn(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):_d(a)}),unresolved:r}}function us(e,t){if(!e)return!0;const n=Rn(t,e.key);if(e.exists!==void 0){const r=n!=null&&n!==""&&n!==!1;return e.exists?r:!r}return e.equals!==void 0?n===e.equals:!0}function Ed(e,t,n,r,o){const s=[],i=[],a=new Set,u=c=>{const l=cs(c,t,o);for(const d of l.unresolved)s.includes(d)||s.push(d);return l.text};for(const c of e){if(c.block_id&&!us(n?.[c.block_id],t))continue;const l=c.block_id?r?.[c.block_id]:void 0;if(l&&c.block_id){a.add(c.block_id),i.push(...l);continue}switch(c.type){case"heading":case"paragraph":case"quote":i.push({...c,text:u(c.text)});break;case"callout":i.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":i.push(c);break;case"list":i.push({...c,items:c.items.map(d=>({...d.lead?{lead:u(d.lead)}:{},text:u(d.text)}))});break;case"table":i.push({...c,columns:c.columns.map(d=>({...d,label:u(d.label)})),rows:c.rows.map(d=>d.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":i.push({...c,items:c.items.map(d=>({...d,value:u(d.value),label:u(d.label)}))});break;case"letterhead":i.push({...c,fields:c.fields.map(d=>({...d,value:u(d.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":i.push({...c,rows:c.rows.map(d=>({...d,label:u(d.label),amount:u(d.amount)})),...c.taxRows?{taxRows:c.taxRows.map(d=>({...d,label:u(d.label),amount:u(d.amount)}))}:{}});break;case"image":i.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:i.push(c)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!a.has(c))}}function ls(e){const t=e?.address,n=[t?.street,t?.houseNumber].filter(Boolean).join(" "),r=[t?.postalCode,t?.city].filter(Boolean).join(" ");return{name:e?.name??"",addressLines:[n,r,t?.country??""].filter(Boolean),footerLines:[e?.footerText??"",e?.kvkNumber?`KvK ${e.kvkNumber}`:"",e?.vatNumber?`Btw ${e.vatNumber}`:"",e?.iban?`IBAN ${e.iban}`:""].filter(Boolean),...e?.logo?{logo:e.logo}:{}}}function Sd(e){return ls({name:e?.billing?.companyName||e?.name||e?.displayName||"",address:e?.address,kvkNumber:e?.billing?.kvkNumber,vatNumber:e?.billing?.vatNumber,iban:e?.houseStyle?.iban,footerText:e?.houseStyle?.footerText,logo:e?.logo})}function ds(e,t,n,r=Date.now()){const o=n.filter(s=>s.ok).length;return{suite:e,target:t,at:r,score:n.length?o/n.length:1,perCase:[...n]}}function Id(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Ad(e,t,n,r,o=Date.now()){const s=[];for(const i of n)try{s.push(await r(i))}catch(a){s.push({caseId:i.id,ok:!1,note:`beoordeling mislukt: ${a?.message??String(a)}`})}return ds(e,t,s,o)}const wt=864e5,et=e=>Date.parse([e,"T00:00:00Z"].join("")),Cd=e=>new Date(e).toISOString().slice(0,10);function fs(e,t){const n=et(t.from),r=et(t.to)+wt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let i=new Date(n);;){const a=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);if(a>=r)break;const u=Date.UTC(i.getUTCFullYear(),i.getUTCMonth()+1,1),c=Math.round((Math.min(u,r)-Math.max(a,n))/wt);o.push({month:Cd(a),share:c/Math.round((u-a)/wt)}),i=new Date(u)}const s=Ce(e,o.map(i=>i.share));return o.map((i,a)=>({month:i.month,cents:s[a]}))}function ps(e){const t=new Date(et(e.from)),n=new Date(et(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Nn=864e5,ht=e=>new Date(e).toISOString().slice(0,10),tt=e=>Date.parse(`${e}T00:00:00Z`);function me(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),i=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,i)),ht(s.getTime())}function Dn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let i=r;for(let a=1;a<=t;a++){const u=Math.round(i*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;a===t&&(c=i),c=Math.min(c,i),i-=c,s.push({sequence:a,dueOn:me(e.firstDueOn,a-1),interestCents:u,principalCents:c,remainingCents:i})}return s}function vd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,l)=>c.date.localeCompare(l.date));let i=s.filter(c=>c.date<t).reduce((c,l)=>c+l.cents,0),a=s.findIndex(c=>c.date>=t);a<0&&(a=s.length);let u=0;for(let c=tt(t);c<=tt(n);c+=Nn){const l=ht(c);for(;a<s.length&&(s[a]?.date??"")<=l;)i+=s[a]?.cents??0,a++;u+=i*o}return Math.round(u)}function Td(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),i=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,a=[];let u=`${o}-${String(i).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const l=me(u,r);a.push({sequence:c,from:u<e?e:u,to:ht(tt(l)-Nn)}),u=l}return a}const ms=5e7,kd=["director","group_company","participation","other_company"],Od=e=>e?.relation&&kd.includes(e.relation)?e.relation:"director";function Md(e,t=ms){return{over:e>t,ratio:Math.max(0,e)/t}}function Rd(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Dn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function gs(e){return ht(tt(me(`${e.slice(0,7)}-01`,1))-Nn)}function wn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function hs(e,t,n,r,o,s,i=1){return t.map((a,u)=>({cents:a,sequence:i+u,dueOn:gs(me(n,u))})).filter(a=>a.dueOn<=r&&a.cents!==0).map(a=>({financingItemId:e,sequence:a.sequence,dueOn:a.dueOn,lines:o(a.cents,a.sequence),expectedBankCents:0,settlesVia:"direct",label:s(a.sequence)}))}const vr=600;function ys(e){const t=e.method??"linear",n=e.restart?.bookValueCents??e.costCents,r=n-e.residualCents;if(t==="none"||r<=0)return[];if(t==="linear"){const u=e.lifeMonths-((e.restart?.fromSequence??1)-1);return wn(r,Math.max(1,u))}const o=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(o>0&&o<1))return[];const s=1-(1-o)**(1/12),i=[];let a=n;for(;a>e.residualCents&&i.length<vr;){const u=Math.max(1,Math.round(a*s)),c=a-u<=e.residualCents||i.length===vr-1;i.push(c?a-e.residualCents:u),a-=i[i.length-1]??0}return i}function Nd(e,t){const n=e.terms;if(n.disposal)return[];const r=ys(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return hs(e.id,r,n.restart?.fromMonth??n.acquiredOn,t,(s,i)=>[{accountId:n.depreciationAccountId,amountCents:s,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-s,subAccountId:e.id,description:`Afschrijving ${i}/${o}`}],s=>`Afschrijving ${s}/${o}`,n.restart?.fromSequence??1)}function Dd(e,t){const n=e.terms,r=[];t.movementsCents&&r.push({accountId:n.accumulatedAccountId,amountCents:-t.movementsCents,subAccountId:e.id,description:e.name}),t.proceedsCents&&r.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:e.name}),r.push({accountId:e.ledgerAccountId,amountCents:-n.costCents,subAccountId:e.id,description:e.name});const o=r.reduce((s,i)=>s+i.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function wd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return hs(e.id,n.period?fs(n.totalCents,n.period).map(o=>o.cents):wn(n.totalCents,n.months),n.firstMonth,t,(o,s)=>[{accountId:n.resultAccountId,amountCents:r*o,description:e.name},{accountId:e.ledgerAccountId,amountCents:-r*o,subAccountId:e.id,description:`${e.name} ${s}/${n.months}`}],o=>`${o}/${n.months}`)}function xd(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Pd(e,t){const n=me(t,12);return Dn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Ld(e,t){const n=e.terms,r=n.quantity??1,o=d=>Math.round(d*t.quantity/r),s=o(n.costCents),i=o(n.residualCents),a=o(-t.movementsCents),u=[],c=`${e.name} (${t.quantity}/${r})`;a&&u.push({accountId:n.accumulatedAccountId,amountCents:a,subAccountId:e.id,description:c}),t.proceedsCents&&u.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:c}),u.push({accountId:e.ledgerAccountId,amountCents:-s,description:c});const l=u.reduce((d,f)=>d+f.amountCents,0);return l&&u.push({accountId:t.disposalAccountId,amountCents:-l,description:c}),{lines:u,costCents:s,residualCents:i}}const bs={NL:45e3},$d=(e,t)=>t??bs[(e??"NL").toUpperCase()],Kd=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}],_s=36e5,Es=864e5,ee=-1/0,Ud=e=>e.score>ee,Se={urgent:40,high:25,normal:10,low:0};function Bd(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Fd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ss=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Is(e,t){return!!(e&&Fd.test(e)||t&&Ss.test(t))}const As=3,Cs=600;function jd(e,t){return e>=As||t>=Cs}const vs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Gd(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&vs.includes(r)&&(t[r]=n.value)}return t}const Wd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Vd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function Hd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Wd.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&Ss.test(e.body)||n&&Vd.test(n))return"marketing"}function Ts(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const ks=["open"],Os=1e3,Ms=72;function Rs(e){return e.lastActivityAt??(e.createdAt?new Date(po(e)).getTime():0)}function Ns(e,t){return Ds(t.remindersById?.[e.id],e,t.now)}function Ds(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ws=e=>co(e)==="outbound_message",xs=e=>ks.includes(e);function yt(e,t){return Math.max(0,(t-Rs(e))/_s)}function Ps(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function qd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Yd(e,t,n){if(!xs(e.status)||e.firstResponseAt)return!1;const r=Ps(e,n);return r!==void 0&&yt(e,t)>r}function Ls(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ws(n.type)?!1:yt(e,t)<Ms}function zd(e,t){if(!xs(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ls(e,t.now))return{score:ee,reasons:[]};if(Ns(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Se[o]>0&&(n+=Se[o],r.push(`priority:${o}`)),Ts(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=yt(e,t.now);if(s>0){const u=Math.min(s*2,30);n+=u,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const i=e.lastActivityPreview;return i?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),i?.direction==="outbound"&&ws(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(u=>u==="marketing"||u==="automated")||Is(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Os,r.push("bulk")),{score:n,reasons:r}}const Xd=e=>!!e.assignedUserId||!!e.assignedInboxId,Qd=e=>e.status==="closed",Zd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Jd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,$s=[{key:"solved",label:"resolution_solved",order:0,positive:!0,system:!0},{key:"no_action",label:"resolution_no_action",order:1,system:!0},{key:"duplicate",label:"resolution_duplicate",order:2,system:!0},{key:"spam",label:"resolution_spam",order:3,system:!0},{key:"unresolved",label:"resolution_unresolved",order:4,positive:!1,system:!0}],ef=["duplicate","spam"],tf="c_";function nf(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...$s,...t]}function rf(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function of(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)??(n?r.find(o=>o.locale===n):void 0)??{locale:t}}const sf="article",nt=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function Ks(e){const t=(e??"").toLowerCase();return nt.find(n=>n.code===t)??nt.find(n=>n.code===t.split("-")[0])}function af(e){return Ks(e)?.label??e}function cf(e){const t=Ks(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const xn=3;function Us(e,t){const n=new Set;let r=1,o=t.get(e)?.parentId;for(;o;){if(n.has(o)||(n.add(o),r++,r>xn+1))return 1/0;o=t.get(o)?.parentId}return r}function uf(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(i=>[i.id,i]));if(!r.has(e)||t&&Bs(e,t,r))return!1;const o=Us(e,r),s=t?Pn(t,n):1;return o+s<=xn}function Bs(e,t,n){const r=new Set;let o=n.get(e)?.parentId;for(;o;){if(o===t)return!0;if(r.has(o))return!1;r.add(o),o=n.get(o)?.parentId}return!1}function Pn(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(o=>o.parentId===e);return r.length?1+Math.max(...r.map(o=>Pn(o.id,t,n))):1}const Fs="en";function js(e){return e.defaultLocale||e.locale||Fs}function lf(e){const t=new Set,n=[];for(const r of[js(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function df(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)?.name??(n?r.find(o=>o.locale===n)?.name:void 0)??e.name}function ff(e,t){const n=a=>`${a.level}:${a.key}`,r=new Map((t?.rows??[]).map(a=>[n(a),a])),o=e.rows.map(a=>({...a,priorCents:r.get(n(a))?.amountCents??0})),s=new Set(o.map(n)),i=t?.rows??[];return i.forEach((a,u)=>{if(s.has(n(a)))return;const c=i.slice(0,u).reverse().find(f=>f.level<a.level);let l=o.length;const d=c?o.findIndex(f=>n(f)===n(c)):-1;if(d>=0)for(l=d+1;l<o.length&&(o[l]?.level??0)>(c?.level??0);)l+=1;o.splice(l,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function pf(e,t,n){const r=new Map;for(const o of e){if(o.date>n)continue;const s=r.get(o.accountId)??{accountId:o.accountId,openingCents:0,debitCents:0,creditCents:0,closingCents:0};o.date<t?s.openingCents+=o.functionalCents:o.functionalCents>0?s.debitCents+=o.functionalCents:s.creditCents-=o.functionalCents,s.closingCents=s.openingCents+s.debitCents-s.creditCents,r.set(o.accountId,s)}return r}const mf=["revenue","expense"],Te=e=>mf.includes(e.type),gf=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Gs(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,u)=>a.code.localeCompare(u.code))){if(!t(i))continue;const a=gf(i),u=i.reportGroup??a,c=o.get(a)??new Map;c.set(u,[...c.get(u)??[],i]),o.set(a,c)}const s=[];for(const[i,a]of o){const u=n(i),c=d=>u==="debit"?t(d):-t(d),l=[...a.values()].flat().reduce((d,f)=>d+c(f),0);s.push({key:i,label:r(i),level:0,side:u,amountCents:l});for(const[d,f]of a){s.push({key:d,label:r(d),level:1,side:u,amountCents:f.reduce((m,b)=>m+c(b),0)});for(const m of f)s.push({key:m.code,label:`${m.code} ${m.name}`,level:2,side:u,amountCents:c(m),accountId:m.id})}}return s}function hf(e,t,n,r=o=>o){const o=e.filter(Te),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},i=Gs(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),a=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function yf(e,t,n,r,o=s=>s){const s=e.filter(l=>!Te(l)),a=Gs(s,l=>t.get(l.id)?.closingCents??0,l=>l==="assets"?"debit":"credit",o);if(r){a.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const l=a.find(d=>d.level===0&&d.key==="equity");l?l.amountCents+=r:a.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=a.filter(l=>l.level===0&&l.side==="debit").reduce((l,d)=>l+d.amountCents,0),c=a.filter(l=>l.level===0&&l.side==="credit").reduce((l,d)=>l+d.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:a,totals:{debitCents:u,creditCents:c},source:"finance"}}function bf(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=Te(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function _f(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const u=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(a.cents>=0?c.inCents+=a.cents:c.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function Ef(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const i=t.get(s.accountId);!i||!Te(i)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,i]of[...n.entries()].sort(([a],[u])=>a.localeCompare(u)))i&&(r.push({accountId:s,amountCents:-i,functionalCents:-i,currency:e.currency}),o+=i);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const I=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Ws={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[I("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),I("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),I("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),I("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),I("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),I("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),I("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),I("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),I("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),I("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),I("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),I("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),I("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),I("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),I("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),I("1000","Kas","asset","assets.current.cash","BLimKasKas"),I("1100","Bank","asset","assets.current.cash","BLimBanRba"),I("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),I("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),I("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),I("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),I("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),I("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),I("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),I("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),I("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),I("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),I("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),I("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),I("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),I("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),I("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),I("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),I("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),I("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),I("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),I("4000","Lonen","expense","costs.personnel","WPerLesLon"),I("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),I("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),I("4100","Huur","expense","costs.housing","WBedHuiBeh"),I("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),I("4200","Autokosten","expense","costs.car","WBedAutOak"),I("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),I("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),I("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),I("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),I("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),I("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),I("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),I("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),I("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),I("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),I("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),I("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),I("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),I("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),I("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),I("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),I("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),I("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),I("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),I("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),I("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),I("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),I("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),I("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),I("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),I("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},Sf=[Ws],Vs={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function If(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,i)=>s+i.functionalCents,0);r!==0&&n.push({code:"entry_unbalanced",params:{cents:String(r)}});const o=new Map(t.accounts.map(s=>[s.id,s]));for(const s of e.lines){const i=o.get(s.accountId);i?i.archived?n.push({code:"entry_account_archived",params:{account:i.code}}):i.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:i.code}}):n.push({code:"entry_unknown_account",params:{account:s.accountId}})}return t.period?(t.period.status==="locked"&&t.allow!=="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function Af(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Cf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function vf(e){const t={};for(const n of Cf)e[n]!==void 0&&(t[n]=e[n]);return t}function nn(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(nn).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+nn(r)).join(",")+"}"}function Tf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Hs(e,t,n){const r=t.filter(s=>s.appliesTo.direction===n.direction).filter(s=>!s.appliesTo.kind||s.appliesTo.kind===n.kind).sort((s,i)=>s.order-i.order),o=s=>r.find(i=>s(i.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}function kf(e){if(!e)return{};const{projectId:t,costCenterId:n,...r}=e;return{...t?{projectId:t}:{},...n?{costCenter:n}:{},...Object.keys(r).length?{dimensions:r}:{}}}function Of(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&ps(t.period)>1?[{index:n,period:t.period}]:[])}function Mf(e,t){const n=e.kind==="journal"?Df(e,t):Nf(e,t);return n.ok?Rf(n,e,t.functionalCurrency??"EUR"):n}function Rf(e,t,n){if(!t.currency||t.currency===n)return e;const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=e.lines.map(i=>({...i,functionalCents:Math.round(i.amountCents*r)})),s=o.reduce((i,a)=>i+a.functionalCents,0);return o[0]={...o[0],functionalCents:o[0].functionalCents-s},{...e,lines:o}}function Nf(e,t){const n=b=>t.accounts.find(g=>g.role===b&&!g.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),i=n(r?"vat_payable":"vat_receivable"),a=r?-1:1,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,l=[],d=new Map;for(const b of e.lines){const g=b.accountKey??Hs(b,t.rules,e)?.accountId??s?.id;if(!g)return{ok:!1,problem:"no_account_for_line"};l.push({...u,accountId:g,amountCents:a*b.netCents,functionalCents:a*b.netCents,taxCode:b.taxRateKey,taxCents:a*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...kf(b.dimensions)}),b.taxCents&&d.set(b.taxRateKey,(d.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,g]of d){const E=t.taxAccounts.find(y=>y.taxKey===b),h=(r?E?.payableAccountId:E?.receivableAccountId)??i?.id;if(!h)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:h,amountCents:a*g,functionalCents:a*g,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,g)=>b+g.netCents+g.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-a*f,functionalCents:-a*f});const m=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:m||e.documentId}}function Df(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??Hs(o,t.rules,e)?.accountId??n(Vs[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const i=Math.round(Number(o.amountCents)||0);i&&r.push({accountId:s,amountCents:i,functionalCents:i,currency:e.currency,...o.description?{description:o.description}:{},...o.dimensions?.projectId?{projectId:o.dimensions.projectId}:{},...o.dimensions?.costCenterId?{costCenter:o.dimensions.costCenterId}:{},...o.dimensions?.employeeId?{dimensions:{employeeId:o.dimensions.employeeId}}:{}})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const xt=e=>String(e).padStart(2,"0"),wf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function xf(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,i=e+Math.floor(s/12),a=s%12+1;return{fiscalYear:n,index:o+1,from:`${i}-${xt(a)}-01`,to:`${i}-${xt(a)}-${xt(wf(i,a))}`,status:"open"}})}function Pf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const qs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Lf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ys=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ln=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ys(Ln(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Pt=e=>e<0?"C":"D",Tr=e=>Ln(e.replace(/-/g,""),35);function $f(e){const t=new Map(e.accounts.map(c=>[c.id,c.code])),n=new Map(e.periods.map(c=>[c.id,c.index])),r=[],o=(...c)=>{r.push(c.join(""))};o('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',qs,'">',"<header>",A("fiscalYear",e.fiscalYear.replace("/","-")),A("startDate",e.startDate),A("endDate",e.endDate),A("curCode",e.currency),A("dateCreated",e.createdOn),A("softwareDesc",e.software.desc,50),A("softwareVersion",e.software.version,20),A("RGSVersion",e.rgsVersion,20),"</header>","<company>",A("Commercenr",e.company.commerceNr,100),A("companyName",e.company.name,255),A("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ys(Ln(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",A("streetname",s.street,100),A("number",s.number,15),A("city",s.city,50),A("postalCode",s.postalCode,10),A("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",A("custSupID",Tr(c.id)),A("custSupName",c.name,50),A("commerceNr",c.commerceNr,100),A("taxRegistrationCountry",c.country),A("taxRegIdent",c.vatNumber,30),A("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((l,d)=>l.code.localeCompare(d.code))){const l=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",l?"P":"B"),A("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",A("vatID",c.key,35),A("vatDesc",c.label,100),A("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),A("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((l,d)=>l.index-d.index))o("<period>",A("periodNumber",c.index),A("startDatePeriod",c.from),A("endDatePeriod",c.to),"</period>");o("</periods>");const i=e.opening.filter(c=>c.cents!==0);if(i.length){const c=i.filter(d=>d.cents>0).reduce((d,f)=>d+f.cents,0),l=-i.filter(d=>d.cents<0).reduce((d,f)=>d+f.cents,0);o("<openingBalance>",A("linesCount",i.length),A("totalDebit",Z(c)),A("totalCredit",Z(l))),i.forEach((d,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(d.accountId)??d.accountId),A("amnt",Z(d.cents)),A("amntTp",Pt(d.cents)),"</obLine>")}),o("</openingBalance>")}const a=e.entries.flatMap(c=>c.lines);o("<transactions>",A("linesCount",a.length),A("totalDebit",Z(a.filter(c=>c.functionalCents>0).reduce((c,l)=>c+l.functionalCents,0))),A("totalCredit",Z(-a.filter(c=>c.functionalCents<0).reduce((c,l)=>c+l.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const l=u.get(c.id);if(l?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",Lf[c.kind]));for(const d of[...l].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",d.number,35),A("desc",d.description),A("periodNumber",n.get(d.periodId)??0),A("trDt",d.date),A("Source",d.source.app+(d.source.kind?" "+d.source.kind:""),999),A("User",d.postedBy,999)),d.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,d.date),g=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",d.source.number??d.number,255),A("effDate",f.taxPointDate??d.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Pt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Tr(f.counterpartyCompanyId)),A("invRef",d.source.number,255),A("cost",f.costCenter,999),A("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+A("vatID",f.taxCode,35)+A("vatPerc",b)+A("vatAmnt",Z(f.taxCents))+A("vatAmntTp",Pt(f.taxCents))+"</vat>":"",g?"<currency>"+A("curCode",f.currency)+A("curAmnt",Z(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
+
`)}const Kf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Uf(e){const t=V(e,"ledgerAccount").map(a=>{const u=k(a,"RGScode")??k(a,"leadCode");return{code:k(a,"accID")??"",name:k(a,"accDesc")??"",kind:k(a,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=a=>{const u=k(a,"accID");u&&(n[u]=(n[u]??0)+Kf(k(a,"amnt"),k(a,"amntTp")))};for(const a of V(e,"obLine"))r(a);for(const a of V(e,"trLine"))r(a);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),i=k(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function Bf(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const rn=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!rn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${rn.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Pe(n);if(r)return r}if(t.type==="for-each"){const n=Pe(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Pe(t.else??[]);if(n)return n}}return null}function Ff(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function jf(e,t){return e.filter(n=>n.enabled&&Ff(n.ownerScope,t))}function Gf(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Wf(e){return`mcp__${e}__`}const Vf=1e3,Hf=2e3,qf=500,Yf=12e3,zf=4e3,zs=["contact","company","work_item"];function Xf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return zs.includes(t)}const Qf=[{key:"high",label:"tax_high",percent:21,kind:"standard"},{key:"low",label:"tax_low",percent:9,kind:"reduced"},{key:"zero",label:"tax_zero",percent:0,kind:"zero"},{key:"reverse_charge",label:"tax_reverse_charge",percent:0,kind:"reverse_charge"},{key:"exempt",label:"tax_exempt",percent:0,kind:"exempt"}];function Xs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Zf=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function $n(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Jf(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:$n(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const kr=/^\d{4}-\d{2}-\d{2}$/;function ep(e){if(!e.key?.trim())return"tax_code_key";if(!e.label?.trim())return"tax_code_label";const t=e.rates??[];if(!t.length)return"tax_code_rates";for(const[n,r]of t.entries()){if(!kr.test(r.validFrom)||r.validTo&&!kr.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function bt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=P(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?dt(n,e.pricePer,e.servicePeriod):n}function tp(e,t,n){const r=e.map(c=>({...c,netCents:bt(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const l=n??r[c].taxRateKey,d=o.get(l);d?d.push(c):o.set(l,[c])}const s=[];let i=0,a=0;for(const[c,l]of o){const d=Xs(c,t),f=l.reduce((g,E)=>g+r[E].netCents,0),m=P(f*d.percent/100),b=Ce(m,l.map(g=>r[g].netCents));for(let g=0;g<l.length;g++)r[l[g]].taxCents=b[g];s.push({taxRateKey:c,percent:d.percent,kind:d.kind,netCents:f,taxCents:m}),i+=f,a+=m}const u=r.reduce((c,l)=>l.costPriceCents==null||l.optional?c:c+P(l.costPriceCents*l.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:u,byRate:s}}}const np="onboarding-source",rp=["support","billing","availability","sales","onboarding"],op=["keep","replace"],_t=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],Qs={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=_t){return t.find(n=>n.key===e)??{...Qs,key:e}}function pe(e){return e==="published"||e==="approved"}function Kn(e,t,n=_t){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function sp(e,t=_t){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const ip=864e5;function Zs(e,t){return Math.round((t-e)/ip)}function Un(e,t){const n=e.cycleMinutes.length;return n===0?0:(Zs(e.anchor,t)%n+n)%n}function Bn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[Un(e,t)]??0}function Fn(e,t){return e.startTimes?.[Un(e,t)]}function jn(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((u,c)=>(c.effectiveFrom??0)-(u.effectiveFrom??0))[0],i=s(o.filter(a=>a.userId===t));return i||s(o.filter(a=>!a.userId&&a.teamId&&n.includes(a.teamId)))}function Js(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const on=864e5;function ap(e){const t=Math.max(1,Math.round((e.to-e.from)/on));return Array.from({length:t},(n,r)=>e.from+r*on)}function sn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Or={interval:0,day:1,week:2};function cp(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).capacity),i=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).absent),a=t.userIds??[...new Set([...s.map(d=>d.userId),...r.map(d=>d.userId),...o.map(d=>d.userId)])].filter(d=>!!d),u={};let c="interval";const l=d=>{Or[d]>Or[c]&&(c=d)};for(const d of a){const f=t.teamIdsOf?.(d)??[];let m=0,b=0,g=0;for(const y of ap(e)){const p=Math.max(y,e.from),S=Math.min(y+on,e.to);g++;const T=s.filter(D=>D.userId===d).reduce((D,G)=>D+sn(G.start,G.end,p,S),0);if(T>0){m+=T;continue}const C=jn(r,d,f,y),R=C?Bn(C,y):0;if(C&&R>0){m+=R*60,l(Fn(C,y)?"interval":"day");continue}C||b++}if(b>0){const y=Js(o,d,e.from);y&&(m+=y.weeklyMinutes*60*(b/7),l("week"))}const E=i.filter(y=>y.userId===d).reduce((y,p)=>y+sn(p.start,p.end,e.from,e.to),0),h=Math.max(0,m-E);(h>0||g>0)&&(u[d]=h)}return{seconds:Object.values(u).reduce((d,f)=>d+f,0),precision:c,byUser:u}}function up(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const u=a.userId??n;r.set(u,(r.get(u)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const u=r.get(a)??0,c=t.byUser[a]??0;return{userId:a,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((a,u)=>a.netSeconds-u.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function lp(e,t,n,r){const o=e.filter(i=>i.userId&&pe(i.status)&&!q(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let u=0,c=0;for(const l of o){if(l.userId!==i||q(l.kindKey).capacity&&!l.workstreamId)continue;const d=sn(l.start,l.end,n.from,n.to);d<=0||(Kn(l,t)?u+=d:c+=d)}return{userId:i,capacitySeconds:a,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,a-u-c)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const dp="demand-source",Mr=1e3;function fp(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ei(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=fp(e,t),r=t/e;return n/(1-r*(1-n))}function ti(e,t,n,r){return r<=0?1:e<=t?0:1-ei(e,t)*Math.exp(-(e-t)*n/r)}function ni(e,t,n){return n<=0?0:e*t/n}function ri(e,t,n,r){if(e<=0||t<=0)return 0;const o=ni(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,i=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let a=Math.max(1,Math.ceil(o));a<=Mr;a++)if(!(a<=o)&&!(ti(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return Mr}const pp=36e5,mp=864e5;function gp(e){return e==="day"?mp:pp}function hp(e,t){return e.start<t.end&&t.start<e.end}function Le(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function oi(e,t,n){const r=e.handleSeconds??0,o=e.seconds??(e.volume!==void 0?e.volume*r:0);if(o<=0&&!e.volume)return{seconds:0,headcount:0};const s=(t.unplannedLossPercent??0)/100,i=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const a=ri(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function yp(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=gp(i),u=a/1e3,c=e.kinds,l=t.filter(g=>pe(g.status)),d=l.filter(g=>Kn(g,n,c)),f=l.filter(g=>q(g.kindKey,c).capacity),m=l.filter(g=>q(g.kindKey,c).absent),b=[];for(let g=fe(s.from,i);g<s.to;g+=a){const E=g+a,h=de(g,i);let y=0;for(const D of d)y+=Le(D,g,E);let p=0;for(const D of f)p+=Le(D,g,E);let S=0;for(const D of m)S+=Le(D,g,E);const T=o?.[h]??{},C=oi(T,r,u),R=y/u;b.push({period:h,forecastVolume:T.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:y,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:S})}return b}function si(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function bp(e,t,n){const r=si(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function _p(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Ep=36e5,an=6048e5,ii=8,Sp=.5,Ip=2;function Ap(e){const t=Number(e.slice(0,4)),n=Number(e.slice(5,7)),r=Number(e.slice(8,10)),o=e.length>10?Number(e.slice(11,13)):0;return Date.UTC(t,n-1,r,o)}function Cp(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*an,a=i-an;let u=0,c=!1;for(const[l,d]of e)l>=a&&l<i&&(u+=d,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(Ip,Math.max(Sp,r[0]/o))}function vp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Tp(e,t,n){const r=Math.max(1,n?.weeks??ii),o=new Map,s=new Set;for(const u of e)o.set(Ap(u.period),u.value),s.add(u.period.slice(0,10));const i=Cp(o,fe(t.from,"hour"),r),a=[];for(let u=fe(t.from,"hour");u<t.to;u+=Ep){let c=0,l=0;for(let m=1;m<=r;m++){const b=u-m*an,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const h=r-m+1;c+=E*h,l+=h}let d=l>0?c/l*i:0;const f=vp(n?.adjustments,u);f?.absoluteVolume!==void 0?d=f.absoluteVolume:f?.factor!==void 0&&(d*=f.factor),a.push({period:de(u,"hour"),volume:d})}return a}const ai="schedule_entry",ci="workstream";function kp(e){return`${ai}:${e}`}function Op(e){return`${ci}:${e}`}const cn=36e5,le=864e5;function Mp(e,t){const n=t==="day"?le:cn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Rr(e){const t=Math.max(1,Math.round((e.to-e.from)/le));return Array.from({length:t},(n,r)=>e.from+r*le)}function Lt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Rp(e,t,n={}){const r=n.grain??"hour",o=Mp(t,r),s=r==="day"?le:cn,i=new Map(o.map(d=>[d,0])),a=e.filter(d=>d.userId&&q(d.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const d of a)if(!(u&&d.userId&&!u.has(d.userId))){for(const f of o){const m=Lt(d.start,d.end,f,f+s);m>0&&i.set(f,(i.get(f)??0)+m)}for(const f of Rr(t))Lt(d.start,d.end,f,f+le)>0&&c.add(`${d.userId}:${f}`)}const l=n.userIds??[...new Set([...a.map(d=>d.userId),...(n.patterns??[]).map(d=>d.userId)])].filter(d=>!!d);if(n.patterns?.length)for(const d of l){const f=n.teamIdsOf?.(d)??[];for(const m of Rr(t)){if(c.has(`${d}:${m}`))continue;const b=jn(n.patterns,d,f,m);if(!b)continue;const g=Bn(b,m);if(g<=0)continue;const E=Fn(b,m);if(E){const[p,S]=E.split(":").map(Number),T=m+p*cn+(S??0)*6e4,C=T+g*6e4;for(const R of o){const D=Lt(T,C,R,R+s);D>0&&i.set(R,(i.get(R)??0)+D)}continue}const h=o.filter(p=>p>=m&&p<m+le);if(!h.length)continue;const y=g*60/h.length;for(const p of h)i.set(p,(i.get(p)??0)+y)}}return o.map(d=>({period:de(d,r),weight:i.get(d)??0}))}function ui(e,t){if(e<=0||!t.length)return[];const n=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(n<=0){const r=e/t.length;return t.map(o=>({period:o.period,seconds:r}))}return t.filter(r=>r.weight>0).map(r=>({period:r.period,seconds:e*r.weight/n}))}function Np(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(a=>n(a.period)<o.by):t,i=s.length?s:t;for(const a of ui(o.seconds,i)){const u=`${a.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=a.seconds:r.set(u,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function li(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Dp(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),o=t.slice(n+1).trim();if(o){if(r==="user")return{kind:"user",userId:o};if(r==="team")return{kind:"team",teamId:o}}}function di(e){return li(e)}function fi(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function wp(e){return e.agentId?{kind:"user",userId:e.agentId}:fi(e.ownerScope)}function xp(e){return di(e)}const pi="playbook-run",Pp="run";function Lp(e,t=0){return`${pi}:${e}~${t}`}function $p(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function mi(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function Kp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Up(e,t){if(t)return e.targets.find(n=>n.id===t)}function gi(e){return e?.kind==="assignment"}function Bp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return gi(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":i&&i===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const un=["suggest","outward","auto"];function Fp(e){return typeof e=="string"&&un.includes(e)}function jp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Gp(e,t){const n=e??"suggest";return t&&un.indexOf(t)<un.indexOf(n)?t:n}function Wp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function hi(e){const t=e.split("__");return t[t.length-1]||e}function Vp(e){const t=hi(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Hp=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toCategory",type:"string",onlyFor:["WORK_ITEM_STATUS_CHANGED"]},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"priority",type:"string"},{name:"inboxId",type:"string"},{name:"topicId",type:"string"},{name:"assigneeUserId",type:"string"}];function qp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Yp={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Gn(e){return`${e.type}:${e.id}`}function zp(e){return[Gn(e),e.lineId].join("#")}function Xp(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Qp(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const yi="interaction";function bi(e){return e?.type===yi?e.id:void 0}const _i=64,Ei=8e3;function Zp(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),_i),Ei)}const Jp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],em={kind:"workflow",steps:[]};function tm(e){return e?.kind==="workflow"?e.steps:[]}function nm(e){return e?.kind==="procedure"?e.procedure:void 0}function rm(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Si(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ii=10,Ai=.9;function om(e){const{total:t,rate:n}=Si(e);return t>=Ii&&n>=Ai}const Ci=["done","escalated","failed","stopped"];function sm(e){return Ci.includes(e)}function vi(e){return e==="waiting"}function im(e){return e==="running"||vi(e)}function Wn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function am(e){const t=Wn(e);return t?Gn(t):void 0}function cm(e){return bi(Wn(e))}const $t=864e5;function um(e,t){return e.lines.flatMap(n=>{const r=ft(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=bt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ti(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const Nr=e=>e.seriesId??e.id;function lm(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function dm(e,t,n,r={}){const o=(r.noticeDays??30)*$t,s=(r.windowDays??7)*$t,i=[];for(const a of e){if(a.status!=="active")continue;const u=new Map;for(const c of a.lines)u.set(Nr(c),[...u.get(Nr(c))??[],c]);for(const c of u.values()){const l=lm(a,c,n),d=U(a,l);if(d.to!=null&&d.to<=n)continue;const f={contractId:a.id,lineId:l.id},m=l.commitment??a.commitment,b=En(a,c),g=d.to??Ee(b,m,n);if(l.customerCompanyId){const y=l.salesLine?t.find(p=>p.agreementId===l.salesLine?.agreementId&&p.seriesId===l.salesLine?.seriesId):void 0;y?y.ended?i.push({kind:"not_covered",...f,reason:"sales_ended"}):(l.quantity.from==="fixed"&&y.quantity!=null&&y.quantity!==l.quantity.value&&i.push({kind:"not_covered",...f,reason:"quantity"}),y.unbilled.length&&i.push({kind:"not_billed",...f,windows:y.unbilled}),g>y.effectiveEndAt&&i.push({kind:"term_mismatch",...f,purchaseEnd:g,salesEnd:y.effectiveEndAt})):i.push({kind:"not_covered",...f,reason:"no_sales_line"})}const E=!!m&&m.termMonths>=3&&(m.renew==="term"||n<Ee(b,{...m,renew:"none"},b)),h=d.to==null&&E?In(b,m,n):null;if(h!=null&&h-n<=o&&i.push({kind:"notice_due",...f,deadline:h}),m&&m.termMonths>=1&&l.changeWindowDays){const y=Sn(b,m,n)+l.changeWindowDays*$t;y>n&&y-n<=s&&i.push({kind:"change_window",...f,closesAt:y})}if(l.expected==="variable"&&l.invoiced&&l.invoiced.length>=2){const y=[...l.invoiced].sort((S,T)=>S.from-T.from),p=y[y.length-1];Ti(y.slice(0,-1).map(S=>S.cents),p.cents)&&i.push({kind:"variable_jump",...f,cents:p.cents})}}}return i}function ki(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function fm(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}function Oi(e,t,n){const r=[];for(const o of e.lines){const s=t.find(a=>a.id===o.poLineId),i=ki(o.poLineId,n);(!s||e.movement==="in"&&i+o.quantity>s.quantity)&&r.push({code:"receipt_over_ordered",poLineId:o.poLineId}),e.movement==="return"&&o.quantity>i&&r.push({code:"receipt_return_over_received",poLineId:o.poLineId}),o.serials.length&&o.serials.length!==Vn(s??{},o.quantity)&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function pm(e){return e.map(t=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(n=>String(n).trim()).filter(Boolean))],...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Mi(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ri(e,t){const n=e.filter(r=>Mi(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Vn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function Ni(e){return{cents:P(e.costCents/Vn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function mm(e){const t=Ni(e);return t.per?dt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const gm=864e5,ln=e=>e.seriesId??e.id;function Dr(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>U(e,r).from>n).sort((r,o)=>U(e,r).from-U(e,o).from)[0]??t[t.length-1]}function wr(e){const t=new Map;for(const n of e)t.set(ln(n),[...t.get(ln(n))??[],n]);return t}function hm(e){const{now:t}=e,n=[],r=(a,u)=>{const c=U(a,u);return a.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(a=>[...wr(a.lines).values()].map(u=>({contract:a,line:Dr(a,u,t),start:En(a,u)})));for(const a of e.agreements)if(!(a.status!=="active"&&a.status!=="draft"))for(const u of wr(a.lines).values()){const c=Dr(a,u,t);if(c.quantity.from!=="fixed")continue;const l=Ri(e.offers.filter(C=>C.productId===c.productId&&(C.businessEntityId||"")===(a.businessEntityId||"")),t);if(!l)continue;const d=ln(c),f=["demand:",a.id,"#",d].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===a.id&&C.line.salesLine.seriesId===d&&r(C.contract,C.line)),b=U(a,c),g={key:f,level:"item",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:c.productId,name:c.name,customerCompanyId:a.companyId,salesLine:{agreementId:a.id,seriesId:d}};if(b.to!=null){if(!m)continue;const C=m.line.commitment??m.contract.commitment,R=Ee(m.start,C,t),D=C&&C.termMonths>=1?ne(m.start,C,t):R,G=In(m.start,C,t);n.push({...g,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:R,...G!=null?{deadline:G}:{},...R>D?{nextTerm:!0}:{},...R>b.to?{runsOnUntil:R}:{}});continue}const E=c.quantity.value;if(!m){n.push({...g,action:"purchase",quantity:E});continue}const h=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(h===E)continue;const y={contractId:m.contract.id,lineId:m.line.id};if(E>h){n.push({...g,action:"change",quantity:E-h,targetQuantity:E,from:h,contractLine:y});continue}const p=m.line.commitment??m.contract.commitment,S=m.line.changeWindowDays??0,T=!p||p.termMonths<1||S>0&&t<Sn(m.start,p,t)+S*gm;n.push({...g,action:"change",quantity:h-E,targetQuantity:E,from:h,contractLine:y,...T?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],i=(a,u,c)=>{const l=e.provisionable.get([u.app,u.offer].join(":"));if(a.action!=="purchase"||!l?.requires)return;const d=e.offers.find(g=>g.id===a.offerId)?.businessEntityId||"",f=e.offers.find(g=>(g.businessEntityId||"")===d&&(!c||g.supplierCompanyId===a.supplierCompanyId)&&g.provider?.app===u.app&&g.provider?.offer===l.requires),m=o.some(g=>g.line.offerId===f?.id&&g.line.customerCompanyId===a.customerCompanyId&&r(g.contract,g.line));if(!f||m)return;const b=["account:",a.customerCompanyId,":",f.id].join("");return!e.open.has(b)&&!s.some(g=>g.key===b)&&s.unshift({key:b,action:"purchase",level:"account",supplierCompanyId:f.supplierCompanyId,offerId:f.id,productId:f.productId,name:l.requires,quantity:1,customerCompanyId:a.customerCompanyId}),b};for(const a of n){const u=e.offers.find(l=>l.id===a.offerId),c=u?.provider?.app?i(a,u.provider,!0):void 0;u?.deliverTo?.app&&i(a,u.deliverTo,!1),s.push({...a,...c?{waitsFor:c}:{},...u?.deliverTo?.app?{deliverTo:u.deliverTo}:{}})}return[...s.filter(a=>a.level==="account"),...s.filter(a=>a.level!=="account")]}const Hn=["vendorSku","gtin","description","brand","group","cost","list","currency","stock","leadDays"],ym={day:864e5,week:7*864e5,month:31*864e5},Di=10;function bm(e,t){const n=(e[0]??[]).map(a=>a.trim().toLowerCase()),r={},o=[];for(const a of Hn){const u=t[a]?.trim();if(!u)continue;const c=n.indexOf(u.toLowerCase());c===-1?o.push(u):r[a]=c}const s=[],i=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((a,u)=>{const c=u+2,l=p=>{const S=r[p];return S===void 0?"":(a[S]??"").trim()},d=l("vendorSku"),f=gt(l("gtin"));if(!d&&!f){i.push({line:c,message:"feed_row_no_key"});return}const m=l("cost")?Wt(l("cost")):void 0;if(l("cost")&&m===void 0){i.push({line:c,message:"feed_row_price"});return}const b=l("list")?Wt(l("list")):void 0,g=l("stock"),E=Number(g.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:g&&/\d/.test(g)&&Number.isFinite(E)?Math.max(0,E):null,y=Number(l("leadDays"));s.push({line:c,...d?{vendorSku:d}:{},...f?{gtin:f}:{},...l("description")?{description:l("description")}:{},...l("brand")?{brand:l("brand")}:{},...l("group")?{group:l("group")}:{},...m!==void 0?{costCents:m}:{},...b!==void 0?{listCents:b}:{},...l("currency")?{currency:l("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...l("leadDays")&&Number.isFinite(y)?{leadDays:y}:{}})}),{rows:s,errors:i,missingHeaders:o})}function _m(e,t,n){const r=new Map(t.filter(i=>i.vendorSku).map(i=>[i.vendorSku,i])),o=new Map(t.map(i=>[i.productId,i])),s=new Map;for(const i of n)for(const a of[i.gtin,...i.barcodes??[]]){const u=a?gt(a):void 0;u&&!s.has(u)&&s.set(u,i)}return e.map(i=>{const a=i.vendorSku?r.get(i.vendorSku):void 0;if(a)return{row:i,offer:a};const u=i.gtin?s.get(i.gtin):void 0;if(!u)return{row:i};const c=o.get(u.id);return c?{row:i,offer:c}:{row:i,product:u}})}function Em(e,t,n,r=Di){const o=new Map,s=[];let i=0;for(const u of e){const{row:c}=u;if(!("offer"in u)){s.push({line:c.line,...c.vendorSku?{vendorSku:c.vendorSku}:{},...c.gtin?{gtin:c.gtin}:{},...c.description?{description:c.description}:{},...c.brand?{brand:c.brand}:{},...c.group?{group:c.group}:{},...c.costCents!==void 0?{costCents:c.costCents}:{},..."product"in u?{productId:u.product.id}:{}});continue}const l=u.offer,d={qty:c.stock===void 0?l.availability?.qty??null:c.stock,at:n,source:"feed",...c.leadDays!==void 0?{leadDays:c.leadDays}:{}},f={availability:d};c.costCents!==void 0&&c.costCents!==l.costCents&&(f.costCents=c.costCents),c.listCents!==void 0&&c.listCents!==l.listCents&&(f.listCents=c.listCents),c.currency&&c.currency!==l.currency&&(f.currency=c.currency),c.vendorSku&&!l.vendorSku&&(f.vendorSku=c.vendorSku),Object.keys(f).length>1||d.qty!==(l.availability?.qty??null)||i++;const b=f.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(f.costCents-l.costCents)/l.costCents*1e3)/10:0;o.set(l.id,{offerId:l.id,set:f,...b>r?{jump:{fromCents:l.costCents,toCents:f.costCents,percent:b}}:{}})}const a=t.filter(u=>u.availability?.source==="feed"&&!o.has(u.id)).map(u=>u.id);return{changes:[...o.values()],unchanged:i,gone:a,unmatched:s}}const Sm={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],brand:["merk","brand","fabrikant","manufacturer","vendor"],group:["productgroep","groep","categorie","category","product group","productgroup"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"]};function Im(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of Hn){if(r[i])continue;const a=t.find(u=>!n.has(u)&&Sm[i].some(c=>s(u.toLowerCase(),c)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}const wi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Am="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function xi(e){const t=[];for(const n of e){const r=K(n.sku)||K(n.description),o=t.find(s=>(K(s.sku)||K(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Cm(e,t){const n=K(e.orderRef),r=K(e.supplierRef);return n&&t.find(o=>K(o.number)===n)||n&&t.find(o=>K(o.reference)===n)||r&&t.find(o=>K(o.reference)===r)||null}const Ne={reference:0,sku:1,description:2,loose:3};function qn(e,t,n){const r=K(e.externalRef);if(r&&K(t.externalRef)===r)return{via:"reference",rank:Ne.reference};if(r&&t.externalRef)return null;const o=K(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>K(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Ne.sku};const s=K(e.description),i=K(t.name);return!s||!i?null:s===i?{via:"description",rank:Ne.description}:i.includes(s)||s.includes(i)?{via:"description",rank:Ne.loose}:null}function Pi(e,t,n){const r=t.filter(a=>a.kind==="product"),o=new Set,s=[],i=[];return e.forEach((a,u)=>{let c=null;for(const l of r){if(o.has(l.id))continue;const d=qn(a,l,n);d&&(!c||d.rank<c.rank)&&(c={line:l,...d})}if(!c){i.push(u);return}o.add(c.line.id),s.push({docIndex:u,poLineId:c.line.id,via:c.via})}),{matches:s,unmatched:i}}function vm(e,t,n,r){const o=xi(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:i}=Pi(o,t.lines,n),a=s.map(c=>({poLineId:c.poLineId,quantity:o[c.docIndex].quantity,serials:o[c.docIndex].serials,docIndex:c.docIndex,via:c.via})),u=[...Oi({movement:"in",lines:a},t.lines,r).filter(c=>c.code!=="receipt_return_over_received").map(c=>({code:c.code,poLineId:c.poLineId,docIndex:a.find(l=>l.poLineId===c.poLineId)?.docIndex})),...i.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:a,problems:u}}function Tm(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const i=Number(String(s?.quantity??"").replace(",",".")),a=n(s?.description);if(!(i>0)||!a&&!n(s?.sku))return[];const u=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:a,quantity:i,serials:u}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const km=864e5,xr=e=>Date.parse([e,"T00:00:00Z"].join(""));function Om(e,t,n,r){const o=new Map(t.map(u=>[u.id,u.openQty])),s=[],i=[],a=new Set;for(const u of e){const c=t.map((p,S)=>({candidate:p,order:S,hit:qn(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&a.has(p.candidate.id))).sort((p,S)=>p.hit.rank-S.hit.rank||p.order-S.order);if(!c.length){i.push(u.id);continue}const l=u.period?{from:xr(u.period.from),to:xr(u.period.to)+km}:r,d=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,S,T)=>p.variable?null:bt({kind:"product",quantity:S,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:T}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;a.add(p.id);const S=u.quantity??p.openQty??1;s.push({...d(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:l},via:m.hit.via,quantity:S,amountCents:u.netCents,expectedCents:f(p,S,l),overQuantity:p.openQty!=null&&S!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),g=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let h=g;for(const{candidate:p}of b){if(h<=0)break;const S=Math.max(0,o.get(p.id)??0);if(!S)continue;const T=Math.min(S,h);E.push({candidate:p,quantity:T,over:!1}),o.set(p.id,S-T),h-=T}if(h>0){const p=E[E.length-1];p?(p.quantity+=h,p.over=!0):E.push({candidate:m.candidate,quantity:h,over:!0})}const y=Ce(u.netCents,E.map(p=>p.quantity));E.forEach((p,S)=>{s.push({...d(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:y[S],expectedCents:f(p.candidate,p.quantity,u.period?l:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:i}}const Li={percent:1,cents:100};function Mm(e,t,n=Li){const r=t.map(s=>({receiptLineId:s,issue:"unmatched"})),o=new Map;for(const s of e)o.set(s.receiptLineId,[...o.get(s.receiptLineId)??[],s]);for(const[s,i]of o){if(i.some(l=>l.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),i.some(l=>l.expectedCents===null))continue;const a=i.reduce((l,d)=>l+(d.expectedCents??0),0),u=i.reduce((l,d)=>l+d.amountCents,0),c=Math.max(Math.abs(a)*n.percent/100,n.cents);Math.abs(u-a)>c&&r.push({receiptLineId:s,issue:"price",expectedCents:a,amountCents:u})}return{ok:r.length===0&&e.length>0,issues:r}}function Rm(e){const t=[],n=new Map;for(const r of[...e].sort(Nm)){const o=n.get(r.emoji);if(o){o.push(r.actor);continue}t.push(r.emoji),n.set(r.emoji,[r.actor])}return t.map(r=>{const o=n.get(r);return{emoji:r,count:o.length,actors:o}}).sort((r,o)=>o.count-r.count||t.indexOf(r.emoji)-t.indexOf(o.emoji))}const Nm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Dm(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const $i=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function wm(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(p=>[p.key,p])),r=n.get(e.standardKey??"high"),o={},s={},i=(p,S)=>{if(!e.trace||!p||!S.ref)return;const T=s[p]??[];T.includes(S.ref)||(s[p]=[...T,S.ref])};let a;const u=(p,S,T)=>{if(!p||!T)return;const C=o[p]??{};C[S]=(C[S]??0)+T,o[p]=C,a&&i(p,a)},c=new Map,l=new Set;let d=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const S=n.get(p.taxCode);if(!S){l.add(p.taxCode);continue}const T=S.boxes[t]?.[p.side];if(a=p,p.side==="sales")u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",p.taxCents),S.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(S.selfAssessed){const C=r?$n(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",R),d+=R,R&&i("5b",p)}else{const C=Math.round(p.taxCents*(S.deductiblePercent??100)/100);d+=C,C&&i("5b",p)}}const f=$i.filter(p=>p<"5"),m=f.reduce((p,S)=>p+(o[S]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:d},o["5c"]={taxCents:m-d},o["5g"]={taxCents:m-d};const b=p=>Math.trunc(p/100),g=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const S=o[p];S&&(E[p]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const h=f.reduce((p,S)=>p+(E[S]?.tax??0),0),y=g(d);return E["5a"]={tax:h},E["5b"]={tax:y},E["5c"]={tax:h-y},E["5g"]={tax:h-y},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,S])=>({...p?{counterpartyCompanyId:p}:{},baseCents:S})),unknownCodes:[...l],...e.trace?{refs:s}:{}}}function xm(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,i)=>new Date(Date.UTC(s,i,0)).getUTCDate();return Array.from({length:12/n},(s,i)=>{const a=i*n+1,u=a+n-1,c=u===12?e+1:e,l=u===12?1:u+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(l)}-${r(o(c,l))}`}})}class Yn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Pm=/^\{\{\s*([\w.]+)\s*\}\}$/,Lm=/\{\{\s*([\w.]+)\s*\}\}/g,$m=/\$[A-Za-z_][\w]*\.[\w.]+/;function Km(e,t,n={}){return rt(e,t,n)}function rt(e,t,n={}){return typeof e=="string"?Um(e,t,n):Array.isArray(e)?e.map(r=>rt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,rt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Um(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match($m);if(s)throw new Yn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Pm);if(o){const s=Pr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Lm,(s,i)=>{const a=Pr(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function Pr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Yn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return Bm(e,t)}function Bm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Fm=new Set(["filled","empty"]);function jm(){return{kind:"rule",op:"==",varPath:"",value:""}}const Gm=new Set(["==","!=",">","<",">=","<="]);function Kt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Lr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ki(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=dn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function dn(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const i=dn(s);if(!i)return null;o.push(i)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Kt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=dn(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(s)||!Lr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Gm.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(o)||!Lr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function $e(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?$e(e.children[0]):{[e.op]:e.children.map($e)}:e.kind==="not"?{"!":$e(e.child)}:e.op==="filled"?{"!!":[{var:e.varPath}]}:e.op==="empty"?{"!":[{var:e.varPath}]}:e.op==="in"?{in:[e.value,{var:e.varPath}]}:{[e.op]:[{var:e.varPath},e.value]}}function Wm(e){const t=Ki(e);return t&&fn(t)||null}function fn(e){if(e.kind==="group"){const t=e.children.map(fn).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${fn(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Ut=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Vm(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,i]=o.split("/"),a=i===void 0?1:Number(i);if(!Number.isInteger(a)||a<1)return null;let u=t,c=n;if(s!=="*"&&s!==void 0){const[l,d]=s.split("-");if(u=Number(l),c=d===void 0?u:Number(d),!Number.isInteger(u)||!Number.isInteger(c)||(d===void 0&&i!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let l=u;l<=c;l+=a)r.add(l)}return r.size?r:null}function zn(e){const t=e.trim().split(/\s+/);if(t.length!==Ut.length)return null;const n=[];for(let u=0;u<Ut.length;u++){const c=Ut[u],l=t[u];if(!c||l===void 0)return null;const d=Vm(l,c.min,c.max);if(!d)return null;n.push(d)}const[r,o,s,i,a]=n;return a.has(7)&&a.add(0),{minute:r,hour:o,dayOfMonth:s,month:i,dayOfWeek:a,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Hm(e){return zn(e)!==null}function Ui(e,t){const n=zn(e);if(!n||!n.minute.has(t.getUTCMinutes())||!n.hour.has(t.getUTCHours())||!n.month.has(t.getUTCMonth()+1))return!1;const r=n.dayOfMonth.has(t.getUTCDate()),o=n.dayOfWeek.has(t.getUTCDay());return n.anyDayOfMonth&&n.anyDayOfWeek?!0:n.anyDayOfMonth?o:n.anyDayOfWeek?r:r||o}const Bi="@schedule",pn=3;function Fi(e,t,n){const r=[],o=e.depth??0;if(o>=pn)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${pn})`}))};const s={event:e.payload,subject:e.subject??{}},i=[];for(const a of t){if(!a.enabled){r.push({ruleId:a.id,reason:"staat uit"});continue}if(a.trigger.kind==="schedule"){if(e.name!==Bi){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const u=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(u)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!Ui(a.trigger.cron,new Date(u))){r.push({ruleId:a.id,reason:`niet aan de beurt (${a.trigger.cron})`});continue}}else if(a.trigger.kind!=="event"){r.push({ruleId:a.id,reason:`trigger "${a.trigger.kind}" draait hier niet`});continue}else if(a.trigger.name!==e.name){r.push({ruleId:a.id,reason:`luistert op ${a.trigger.name}`});continue}if(e.causedByRule===a.id){r.push({ruleId:a.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(a.when??null,s)){r.push({ruleId:a.id,reason:"voorwaarde niet waar"});continue}i.push({rule:a,idempotencyKey:`${e.id}:${a.id}:${a.version}`})}return{matched:i,skipped:r}}function qm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Ym(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Fi(n,r,t),i=o.flatMap(c=>c.rule.then.map(l=>l.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((c,l)=>c===a[l]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function zm(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function ji(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==zm(e,n))}function Xm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>ji(r,t).length)?"corrected":"kept"}function Qm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Zm(e){return`subject.${e.path}`}function Jm(e,t){return e.events.find(n=>n.name===t)}function eg(e,t){return e.filter(n=>mi(t,n.path)===void 0).map(n=>n.path)}const mn=6e4,tg=36e5,Ie=864e5,Gi=800;function $r(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ie+tg}function ng(e){const t=new Date(e).getUTCFullYear();return e>=$r(t,2)&&e<$r(t,9)}function Wi(e,t){const n=t.dst==="eu"&&ng(e)?60:0;return(t.utcOffsetMinutes+n)*mn}function rg(e){return(e+3)%7+1}function Vi(e,t){const n=Wi(e,t),r=e+n,o=Math.floor(r/Ie);if(!t.days.includes(rg(o)))return null;const s=o*Ie;return{open:s+t.fromMinutes*mn-n,close:s+t.toMinutes*mn-n}}function Hi(e,t){const n=Wi(e,t),r=e+n;return(Math.floor(r/Ie)+1)*Ie-n}function ot(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Gi&&o<t;s++){const i=Vi(o,n);if(i){const a=Math.max(o,i.open),u=Math.min(t,i.close);u>a&&(r+=u-a)}o=Hi(o,n)}return r}function Et(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Gi;s++){const i=Vi(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const u=i.close-a;if(r<=u)return a+r;r-=u}}o=Hi(o,n)}return e+t}function og(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const st=1,it=2,at=4;function sg(e){return e==="snoozed"?st:it}function St(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const ig=["speed_of_answer","first_response","next_response","resolution","close"],ag=["snoozed","waiting_for_customer"],cg=6e4,qi=["speed_of_answer","first_response","next_response"],ug=[...qi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function lg(e,t){return ke(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Kr(e){return ke(e)?{state:"void"}:null}function dg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:ot(n,e.dueAt,r)}}function fg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:Et(n,e.remainingMs,r)}}function pg({event:e,at:t,now:n,clocks:r,profile:o}){const s=St(o),i=Math.min(t,n),a=r.map(h=>({...h})),u=[],c=(h,y)=>{y&&(u.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},l=h=>{for(const y of a)y.metric===h&&c(y,lg(y,i))},d=h=>{for(const y of a)h.includes(y.metric)&&c(y,Kr(y))},f=h=>{for(const y of a)c(y,dg(y,h,i,s))},m=h=>{for(const y of a)c(y,fg(y,h,i,s))},b=h=>a.reduce((y,p)=>p.metric===h?Math.max(y,p.attempt):y,0)+1,g=h=>a.some(y=>y.metric===h&&ke(y)),E=(h,y)=>{const p=o.targets.find(T=>T.metric===h);if(!p)return;const S=p.minutes*cg;u.push({op:"start",metric:h,attempt:b(h),startedAt:y,targetMs:S,dueAt:Et(y,S,s)})};switch(e){case"apply":{for(const h of a)h.profileId!==o.id&&c(h,Kr(h));for(const h of o.targets){if(h.metric==="next_response")continue;a.some(p=>p.metric===h.metric&&p.profileId===o.id)||E(h.metric,i)}break}case"answered":l("speed_of_answer");break;case"outbound":{l("first_response"),l("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(it);break}case"inbound":{m(it),!g("first_response")&&!g("next_response")&&E("next_response",i);break}case"resolved":l("resolution");break;case"closed":l("close"),l("resolution"),d(qi);break;case"reopened":g("resolution")||E("resolution",i),g("close")||E("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(st);break;case"unsnoozed":m(st);break;case"hold":f(at);break;case"unhold":m(at);break;case"discarded":d(ug);break}return u}function Yi(e){return e.state==="running"||e.state==="paused"}function mg(e){return(e.pauseBits&at)!==0}function ct(e,t){const n=St(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-ot(e.dueAt,t,n):ot(t,e.dueAt,n)}function gg(e,t){return e.state==="paused"?Et(t,e.remainingMs,St(e)):e.dueAt}function hg(e,t){const n=e.filter(Yi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>ct(i,t)<ct(s,t)?i:s)}function yg(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=ct(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function bg(e){const t=Math.floor(Math.abs(e)/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return n?r?`${n}d ${r}u`:`${n}d`:r?o?`${r}u ${o}m`:`${r}u`:o?`${o}m`:`${t%60}s`}const zi="strategy_item";function Xn(e){return`${zi}:${e}`}function _g(e,t=25){const n=new Set([Xn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Eg(e){return e?[...e.ancestorKeys??[],Xn(e.id)]:[]}const Oe=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],Xi=999,Qi=7;function Zi(e,t=Oe){return t.find(n=>n.key===e)}function ut(e,t=Oe){return Zi(e,t)?.order??Xi}function Sg(e,t,n=Oe){return ut(t,n)<=ut(e,n)}function Ig(e,t=Oe){const n=ut(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Ag(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const gn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Cg(e){return gn[e]??"open"}function vg(e){return Object.keys(gn).filter(t=>e.includes(gn[t]))}const Tg=864e5,It=e=>e<=0?0:e>1?1:e;function kg(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,i=o-r;return(n==="down"?i<0:i>0)?It((t-r)/i):s?1:0}function Og(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return It((t-n)/(r-n))}const Ji=.1,ea=.25;function Mg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ea?"off_track":n>=Ji?"at_risk":"on_track"}function Rg(e,t){if(t)return It(e/t)}function Ng(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return It(t.reduce((n,r)=>n+r,0)/t.length)}function Dg(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Qi)*Tg,o=t-n-r;return o>0?o:0}function wg(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function xg(e){const t=new Map,n=[...e].sort((r,o)=>r.startedAt-o.startedAt);for(const r of n){const o=`${r.workType??""}|${r.scopeKey??""}`,s=t.get(o)??{workType:r.workType,scopeKey:r.scopeKey,scopeLabel:r.scopeLabel,seconds:0,hours:0,entryIds:[],from:r.startedAt,to:r.startedAt};s.seconds+=r.durationSeconds??0,s.hours=Math.round(s.seconds/3600*100)/100,s.entryIds.push(r.id),s.to=r.startedAt,t.set(o,s)}return[...t.values()]}function Pg(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Lg(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function $g(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Kg(e){const t=Math.max(0,Math.floor(e)),n=s=>String(s).padStart(2,"0"),r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function ta(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ug(e,t){const n=ta(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function Bg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Fg(e){return e.filter(t=>!t.archived).sort(na)}function na(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const ra=20,oa=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function sa(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ke)return t;const n=t.slice(0,Ke),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ke*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function jg(e,t){const n=sa(t.text),r=te(n);if(!r||(e.examples??[]).some(i=>te(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>te(i.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const i=[...o];return i[s]={...i[s],corrected:!0,addedAt:t.addedAt},Ur(i)}return Ur([{...t,text:n},...o]).slice(0,oa)}function Ur(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Gg(e,t){const n=te(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>te(s)===n)?r:[...r,t].slice(-ra),exampleCandidates:ia(e,t)}}function ia(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function aa(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Wg(e,t){return e.filter(n=>aa(n,t))}const ca=["apps","settings","wake"],At="businessEntityId";function Vg(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...ua.map(s=>s.key),...ca,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Hg({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],i=a=>!!a&&(s.includes(a)||r&&a!=="apps"&&o.visible.includes(a));return i(t)?t:i(n)?n:s[0]??"apps"}const ua=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function qg(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,i,...a]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...i?{app:i}:{},path:`/${a.join("/")}${o}`}}function Yg({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const Ct=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","delivered","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["delivered","cancelled"],delivered:["confirmed"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:[],credits:"invoice"}],la=[...Ct,...wi],Qn=["quote","order","invoice","credit_note"];function zg(){const e=new Map;for(const t of Ct)Qn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return la.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Xg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function da(e,t){return F(e).transitions[t]??[]}function Qg(e,t,n){return da(e,t).includes(n)}const fa=["invoice","credit_note"];function Zg(e){return!!e.issuedAt&&fa.includes(e.kindKey)}function Jg(e,t,n="sales"){const r=a=>e.totals?.byRate?.find(u=>u.taxRateKey===a),o=e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),i=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${F(e.kindKey).path}/${e.id}?${At}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId??"",...e.number?{number:e.number}:{},counterparty:{companyId:e.companyId,name:t?.name??"",...t?.vatNumber?{vatNumber:t.vatNumber}:{},...t?.kvkNumber?{kvkNumber:t.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:J(e.issuedAt??Date.now()),...i?{taxPointDate:J(i)}:{},...e.dueAt?{dueDate:J(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(a=>a.kind==="product"&&!a.optional).map(a=>{const u=e.taxOverrideKey??a.taxRateKey,c=r(u);return{description:a.name,netCents:a.netCents,taxCents:a.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...a.ledgerCategoryKey?{ledgerCategoryKey:a.ledgerCategoryKey}:{},...a.productId?{productId:a.productId}:{},dimensions:{customerCompanyId:e.companyId,...a.dealItemId?{dealItemId:a.dealItemId}:{}},...a.costPriceCents!=null?{costCents:Math.round(a.costPriceCents*a.quantity)}:{},...a.servicePeriod?{period:{from:J(a.servicePeriod.from),to:J(a.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Zn(e){return e.issuedAt!=null}const eh=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function th(e){return Zn(e)&&F(e.kindKey).numbered&&!e.number}const nh=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","lines"],rh=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId"];function oh(e,t){if(!Qn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Zn(e)}function pa(e,t){const n=F(t).signFlip!==F(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...i})=>({...i,quantity:n?-i.quantity:i.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:r,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function sh(e){return{...pa(e,e.kindKey),sourceTransactionId:e.sourceTransactionId,previousVersionId:e.id,version:e.version+1,lines:e.lines.map(({timeEntryIds:n,...r})=>({...r})),totals:e.totals}}function ih(e,t={}){const n=F(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:uh(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:ae(e.issuedAt),valid_until:ae(e.expiresAt),due_date:ae(e.dueAt),delivery_date:ae(e.deliveredAt),period_from:ae(e.periodFrom),period_to:ae(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:H(r.netCents),tax:H(r.taxCents),gross:H(r.grossCents)}}}function ah(e,t=[],n=ma){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=a=>t.find(u=>u.key===a)?.percent??0,s={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},{label:n.net,align:"right"}],rows:(e.lines??[]).map(a=>a.kind==="text"?[a.name,"","",""]:[ch(a.name,a.description,a.optional,n.optional),lh(a,n),Mn(a)?"":a.pricePer?[H(a.unitPriceCents),n.per[a.pricePer]].join(" "):H(a.unitPriceCents),H(a.netCents)])},i={block_id:"totals",type:"totals",rows:[{label:n.net,amount:H(r.netCents)},{label:n.gross,amount:H(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(a=>({label:`${n.tax} ${a.percent??o(a.taxRateKey)}%`,amount:H(a.taxCents)}))};return{lines:[s],totals:[i]}}const ma={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function ch(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function uh(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function lh(e,t){const n=Mn(e);return n?[Br(n.amount),t.units[n.unit]??n.unit].join(" "):Br(e.quantity)}function Br(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ae(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function ga(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:fh[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${F(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:Fr[n]??Fr.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:jr[n]??jr.quote}]}const dh=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),fh={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Fr={quote:`Beste {customer.contact},
|
|
13
13
|
|
|
14
14
|
Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
|
|
15
15
|
|
|
@@ -17,34 +17,36 @@ Hierbij de bevestiging van uw opdracht.`,invoice:`Beste {customer.contact},
|
|
|
17
17
|
|
|
18
18
|
Hierbij onze factuur. Hieronder vindt u de specificatie.`,credit_note:`Beste {customer.contact},
|
|
19
19
|
|
|
20
|
-
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},$r={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."},Xg=ua("quote"),Qg={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},Zg=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function la(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=Zg(J(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function Jg(e,t,n){const r=[],o=[];for(const s of e){const a=la(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const da=At.map(e=>e.key),fa="product",pa="agreement";function ma(e,t){return`${e}:${t}`}function eh(e){return`${fa}:${e}`}function ga(e,t){return`/apps/sales${e}?${St}=${encodeURIComponent(t)}`}function th(e,t){const n=e.businessEntityId||t;if(n)return ga(`/${F(e.kindKey).path}/${e.id}`,n)}function nh(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${St}=${encodeURIComponent(n)}`:void 0}function rh(e){return`${pa}:${e}`}function oh(e,t){const n=e.businessEntityId||t;return n?ga(`/agreement/${e.id}`,n):void 0}function sh(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return da.includes(n)?e.slice(t+1):void 0}function ih(e){const t=new Set([ma(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 ah=4;function ch(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function uh(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const lh=["cash","credit","direct_debit","card","other"];function dh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function fh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const ph=[{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 zn(e){return e.settlement?.state??"unpaid"}function ha(e){const t=zn(e);return t==="paid"||t==="overpaid"}function Xn(e){return!!e.issuedAt&&e.status==="open"&&!ha(e)}function mh(e,t){return!Xn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function gh(e){return e.totals?.grossCents??0}function hh(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 yh(e,t,n){const r=gh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const ya=["current","d1_30","d31_60","d61_90","d90_plus"],bh=864e5;function _h(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/bh)}function Eh(e,t){if(!Xn(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,a)=>!s||a.level>s.level?a:s,void 0),o=e.dueAt!=null?_h(J(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:zn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function ba(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Ih(e){const t=Object.fromEntries(ya.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[ba(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Sh="receivables.company";function Ah(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 Th(e){return e.type==="agent"}const _a=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Ch(e){return _a.includes(e)}const vh="WORK_COMMENT_ADDED",kh="WORK_ITEM_ASSIGNED",Oh="WORK_ITEM_STATUS_CHANGED";function Mh(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))/gs)}function Rh(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=Mh(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 Tt=[{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"}],Nh=Tt.map(e=>e.key);function Dh(e){return e?.types?.length?e.types:Tt}function wh(e,t){return t.find(n=>n.key===e)}function xh(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 Ph(...e){return e.map(t=>Tt.find(n=>n.key===t)).filter(t=>!!t)}const Ea="work_item",Ia="work_project",Sa="work_activity",Lh="work_cycle";function Aa(e){return`${Ea}:${e}`}function Qn(e){return`${Ia}:${e}`}function $h(e){return`${Sa}:${e}`}function Kh(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Uh(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 Bh(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Fh(e,t=25){const n=new Set([Aa(e.id)]);e.projectId&&n.add(Qn(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 jh(e){return[Qn(e.id)]}const Ct=[{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}],Zn=Ct.map(e=>e.key);function Ta(e){return e?.statuses?.length?e.statuses:Ct}function Ca(e,t){return t.find(n=>n.key===e)?.category??"todo"}function Gh(e,t){return t.find(n=>n.key===e)}function Wh(e){const t=Ta(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:va(t)[0]?.key??Ct[0].key}function va(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Vh(e,t){return Ca(e,t)==="done"}function ka(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Hh(e,t){const n=ka(e)||"status",r=new Set([...t,...Zn]);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 qh(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}Zn.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 Yh(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function zh(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 Xh=["day","week","month"];function Qh(e){const t=e;if(!t||!Xh.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 Oa(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 Zh(e,t,n){const r=Oa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function Jh(e){return e.startDate??Number.MAX_SAFE_INTEGER}function ey(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const ty=["statusKeys","typeKeys","labels","priority","assignees"],ny=["blockedOnly","watchingOnly","reportedByMe"],ry=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],oy=["list","board","calendar","workload"],sy=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),iy=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Ma(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?sy.has(t)?"image":t==="application/pdf"?"pdf":iy.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,Ra={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},ay=25*ye,cy=5;function uy(e,t){const n=Ma(e);return n==="unsupported"?"unsupported":t>Ra[n]?"too-large":null}const ly="ai-tool";function dy(e){return e.access==="read"?"idempotent":e.reversible??"none"}function Jn(e){return e.access!=="read"&&e.effect!=="internal"}function Na(e){return`${e.kind}:${e.id||e.url||e.title}`}function fy(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const a=Na(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const py="assist-source",my=["blocking","due","open"];function gy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Kr={blocking:0,due:1,open:2};function hy(e,t){return Kr[e.band??"open"]-Kr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const yy="bookable-source",by="bookkeeping",_y={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},Ey={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 Iy(e){return`oc:${e}`}function Sy(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Ay(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function Ty(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=>vy(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 wa(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 Cy(e,t){const n=wa(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function vy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function ky(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 Oy(e,t){return t.filter(n=>n.capability.intent===e)}function xa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function My(e,t){return xa(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 Ny(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 Dy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function wy(e){const t=Dy.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 Pa=(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))(Pa||{});const xy={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 Py(e){return e?xy[e]??"note":"note"}const Ly="message_window",$y="message_templates",Ky={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Uy=(e,t)=>({intent:e,...t}),By="remote_search",Fy="message_reactions",jy={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},Gy="connector",Wy="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."),Ur=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},Br={undoable:!1,visible:!0},lt={undoable:!1,visible:!1},Vy=[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"],Br),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Br),O("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The note's text."),left:M("Distance from the left edge, in PDF points (72 per inch)."),top:M("Distance from the top edge, in PDF points."),width:M("Box width in points. Omit for a sensible default."),height:M("Box height in points. Omit for a sensible default."),fontSize:M("Font size in points. Omit for 12.")},["page","text","left","top"],lt),O("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The exact phrase to highlight, as it appears in the page's text."),occurrence:M("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],lt)],Hy=[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)],qy=[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)],Yy=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Ur,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],lt),O("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:Ur,element:N("Element id."),left:M("Distance from the left edge, in pixels."),top:M("Distance from the top edge, in pixels."),width:M("Width in pixels."),height:M("Height in pixels.")},["slide","element"],lt)],er=[...Vy,...Hy,...qy,...Yy];function zy(e){return er.filter(t=>t.kinds.includes(e))}function Xy(e){return er.find(t=>t.op===e)}const Fr=/(?: {2,}|\\)$/,Qy=/^\*\*([^*]+)\*\*\s+(.*)$/;function jr(e){const t=Qy.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Zy(e){const t=(e??"").replace(/\r\n/g,`
|
|
20
|
+
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},jr={quote:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",order:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",invoice:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",credit_note:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld."},ph=ga("quote"),mh={steps:[{level:1,afterDays:7,templateKey:"dunning_reminder",channel:"email"},{level:2,afterDays:21,templateKey:"dunning_notice",channel:"email"},{level:3,afterDays:14,templateKey:"dunning_final",channel:"email"}],minOpenCents:2500},gh=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ha(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((a,u)=>a.level-u.level),o=r.find(a=>a.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,i=gh(J(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}function hh(e,t,n){const r=[],o=[];for(const s of e){const i=ha(s,t,n);i==="done"?o.push(s):i&&r.push(i)}return{due:r,waiting:o}}const ya=Ct.map(e=>e.key),ba="product",_a="agreement";function Ea(e,t){return`${e}:${t}`}function yh(e){return`${ba}:${e}`}function Sa(e,t){return`/apps/sales${e}?${At}=${encodeURIComponent(t)}`}function bh(e,t){const n=e.businessEntityId||t;if(n)return Sa(`/${F(e.kindKey).path}/${e.id}`,n)}function _h(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${At}=${encodeURIComponent(n)}`:void 0}function Eh(e){return`${_a}:${e}`}function Sh(e,t){const n=e.businessEntityId||t;return n?Sa(`/agreement/${e.id}`,n):void 0}function Ih(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return ya.includes(n)?e.slice(t+1):void 0}function Ah(e){const t=new Set([Ea(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Ch=4;function vh(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Th(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const kh=["cash","credit","direct_debit","card","other"],Ia=(e,t)=>!e.direction||e.direction===t;function Oh(e,t,n={}){const r=e.filter(s=>!s.archived&&Ia(s,t)),o=s=>s?r.find(i=>i.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Mh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Rh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Nh=[{code:"14D",label:"Binnen 14 dagen",method:"credit",dueDays:14,isDefault:!0,order:0},{code:"30D",label:"Binnen 30 dagen",method:"credit",dueDays:30,order:1},{code:"CONTANT",label:"Contant",method:"cash",dueDays:0,order:2}];function Jn(e){return e.settlement?.state??"unpaid"}function Aa(e){const t=Jn(e);return t==="paid"||t==="overpaid"}function er(e){return!!e.issuedAt&&e.status==="open"&&!Aa(e)}function Dh(e,t){return!er(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function wh(e){return e.totals?.grossCents??0}function xh(e,t){const n={};return t.postedAt&&!e.postedAt&&(n.postedAt=t.postedAt),t.externalId&&!(e.externalIds??[]).includes(t.externalId)&&(n.externalIds=[...e.externalIds??[],t.externalId]),t.number&&!e.number&&(n.number=t.number),t.payment&&t.asOf>(e.settlement?.asOf??0)&&(n.settlement={...t.payment,source:"books",asOf:t.asOf}),Object.keys(n).length?n:null}function Ph(e,t,n){const r=wh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Ca=["current","d1_30","d31_60","d61_90","d90_plus"],Lh=864e5;function $h(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/Lh)}function Kh(e,t){if(!er(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,i)=>!s||i.level>s.level?i:s,void 0),o=e.dueAt!=null?$h(J(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:Jn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function va(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Uh(e){const t=Object.fromEntries(Ca.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[va(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Bh="receivables.company";function Fh(e){const t=e.filter(r=>r.overdueDays>0),n=r=>r.reduce((o,s)=>o+s.openCents,0);return{count:e.length,openCents:n(e),overdueCount:t.length,overdueCents:n(t),oldestOverdueDays:Math.max(0,...t.map(r=>r.overdueDays)),dunningLevel:Math.max(0,...e.map(r=>r.dunningLevel))}}function jh(e){return e.type==="agent"}const Ta=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Gh(e){return Ta.includes(e)}const Wh="WORK_COMMENT_ADDED",Vh="WORK_ITEM_ASSIGNED",Hh="WORK_ITEM_STATUS_CHANGED";function qh(e,t){const n=r=>{const o=new Date(r);return o.setHours(0,0,0,0),o.getTime()};return Math.round((n(e)-n(t))/Es)}function Yh(e,t){if(e.closedAt!=null)return{score:ee,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ee,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Se[s]>0&&(r+=Se[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=qh(e.dueDate,t.now);i<0?(r+=35,o.push("overdue")):i===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const vt=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],zh=vt.map(e=>e.key);function Xh(e){return e?.types?.length?e.types:vt}function Qh(e,t){return t.find(n=>n.key===e)}function Zh(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function Jh(...e){return e.map(t=>vt.find(n=>n.key===t)).filter(t=>!!t)}const ka="work_item",Oa="work_project",Ma="work_activity",ey="work_cycle";function Ra(e){return`${ka}:${e}`}function tr(e){return`${Oa}:${e}`}function ty(e){return`${Ma}:${e}`}function ny(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ry(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function oy(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function sy(e,t=25){const n=new Set([Ra(e.id)]);e.projectId&&n.add(tr(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function iy(e){return[tr(e.id)]}const Tt=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],nr=Tt.map(e=>e.key);function Na(e){return e?.statuses?.length?e.statuses:Tt}function Da(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ay(e,t){return t.find(n=>n.key===e)}function cy(e){const t=Na(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:wa(t)[0]?.key??Tt[0].key}function wa(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function uy(e,t){return Da(e,t)==="done"}function xa(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ly(e,t){const n=xa(e)||"status",r=new Set([...t,...nr]);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function dy(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,o)=>{if(!r.key){t.push({index:o,reason:"missing_key"});return}nr.includes(r.key)&&t.push({index:o,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:o,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}function fy(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function py(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}const my=["day","week","month"];function gy(e){const t=e;if(!t||!my.includes(t.every))return;const n=Math.floor(Number(t.interval??1));if(!(!Number.isFinite(n)||n<1||n>365))return{every:t.every,interval:n}}function Pa(e,t){const n=new Date(e);if(t.every==="day")n.setDate(n.getDate()+t.interval);else if(t.every==="week")n.setDate(n.getDate()+7*t.interval);else{const r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t.interval),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate()))}return n.getTime()}function hy(e,t,n){const r=Pa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function yy(e){return e.startDate??Number.MAX_SAFE_INTEGER}function by(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const _y=["statusKeys","typeKeys","labels","priority","assignees"],Ey=["blockedOnly","watchingOnly","reportedByMe"],Sy=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Iy=["list","board","calendar","workload"],Ay=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Cy=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function La(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Ay.has(t)?"image":t==="application/pdf"?"pdf":Cy.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,$a={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},vy=25*ye,Ty=5;function ky(e,t){const n=La(e);return n==="unsupported"?"unsupported":t>$a[n]?"too-large":null}const Oy="ai-tool";function My(e){return e.access==="read"?"idempotent":e.reversible??"none"}function rr(e){return e.access!=="read"&&e.effect!=="internal"}function Ka(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ry(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=Ka(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const Ny="assist-source",Dy=["blocking","due","open"];function wy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Gr={blocking:0,due:1,open:2};function xy(e,t){return Gr[e.band??"open"]-Gr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const Py="bookable-source",Ly="bookkeeping",$y={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},Ky={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function Uy(e){return`oc:${e}`}function By(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Fy(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function jy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ua(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>Wy(i,r[i.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(i=>i.intent));for(const i of e.extraIntents)s.has(i.intent)||(o.push(i),s.add(i.intent));return o}function Ba(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const o=t?.[r.intent];n[r.intent]=o??r.defaultEnabled??!0}return n}function Gy(e,t){const n=Ba(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Wy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Vy(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ua(r,o))n.push({channel:r,description:o,capability:s})}return n}function Hy(e,t){return t.filter(n=>n.capability.intent===e)}function Fa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function qy(e,t){return Fa(e.scheme,t)}function Yy(e,t,n){const r=[];for(const o of e)for(const s of n)s.capability.intent===t&&s.capability.targetSchemes.includes(o.scheme)&&r.push({channelIntent:s,endpoint:o});return r}function zy(e,t,n={}){let r=t,o=e;for(const[s,i]of Object.entries(n))r=r.split("{"+s+"}").join(String(i)),o+=" "+s+"="+encodeURIComponent(String(i));return r+" ["+o+"]"}const Xy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Qy(e){const t=Xy.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}function Zy(e,t){const n=t??Jy(e),r=[];let o=[],s="",i=!1;for(let a=0;a<e.length;a++){const u=e[a];i?u==='"'&&e[a+1]==='"'?(s+='"',a++):u==='"'?i=!1:s+=u:u==='"'&&s===""?i=!0:u===n?(o.push(s),s=""):u===`
|
|
21
|
+
`||u==="\r"?(u==="\r"&&e[a+1]===`
|
|
22
|
+
`&&a++,o.push(s),s="",o.some(c=>c!=="")&&r.push(o),o=[]):s+=u}return o.push(s),o.some(a=>a!=="")&&r.push(o),r}function Jy(e){const t=e.search(/\r?\n/),n=t===-1?e:e.slice(0,t),r=o=>n.split(o).length-1;return[";",","," "].reduce((o,s)=>r(s)>r(o)?s:o,";")}const eb={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function tb(e){const t=e[0]===239&&e[1]===187&&e[2]===191?3:0,n=[];let r=t;for(;r<e.length;){const o=e[r],s=o<128?0:o>>5===6?1:o>>4===14?2:o>>3===30?3:-1;if(s<0||r+s>=e.length)return Wr(e,t);let i=s===0?o:o&63>>s;for(let a=1;a<=s;a++){const u=e[r+a];if(u>>6!==2)return Wr(e,t);i=i<<6|u&63}n.push(i),r+=s+1}return ja(n)}function Wr(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(eb[e[r]]??e[r]);return ja(n)}function ja(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}var Ga=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(Ga||{});const nb={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function rb(e){return e?nb[e]??"note":"note"}const ob="message_window",sb="message_templates",ib={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},ab=(e,t)=>({intent:e,...t}),cb="remote_search",ub="message_reactions",lb={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},db="connector",fb="context.collect",N=e=>({type:"string",description:e}),M=e=>({type:"number",description:e}),Ue=e=>({type:"boolean",description:e}),W=N("Sheet name. Omit for the sheet the user is looking at."),Vr=N("Slide id, as `inspect` reports it.");function O(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const _e={undoable:!1,visible:!0},w={undoable:!0,visible:!0},Hr={undoable:!1,visible:!0},lt={undoable:!1,visible:!1},pb=[O("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:M("1-based page number.")},["page"],_e),O("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:N("Text to find."),next:Ue("Jump to the next match instead of the first.")},["query"],_e),O("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],_e),O("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:N("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],w),O("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],Hr),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Hr),O("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The note's text."),left:M("Distance from the left edge, in PDF points (72 per inch)."),top:M("Distance from the top edge, in PDF points."),width:M("Box width in points. Omit for a sensible default."),height:M("Box height in points. Omit for a sensible default."),fontSize:M("Font size in points. Omit for 12.")},["page","text","left","top"],lt),O("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The exact phrase to highlight, as it appears in the page's text."),occurrence:M("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],lt)],mb=[O("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:W,range:N("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],w),O("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:W,range:N("A1 notation."),formula:N("Including the leading `=`.")},["range","formula"],w),O("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:W,range:N("A1 notation."),bold:Ue("Bold on or off."),italic:Ue("Italic on or off."),fontSize:M("Point size."),fontColor:N("CSS colour, e.g. `#b91c1c`."),background:N("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:N("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],w),O("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:W,at:M("1-based row number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:W,at:M("1-based first row to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:W,at:M("1-based column number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:W,at:M("1-based first column to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:W,range:N("A1 notation covering the rows to sort, header excluded."),column:M("1-based column *within the range*, not within the sheet."),ascending:Ue("Ascending. Omit for ascending.")},["range","column"],w),O("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:N("Name for the new sheet.")},["name"],w),O("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:N("Current name."),name:N("New name.")},["sheet","name"],w),O("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:N("Name of the sheet to delete.")},["sheet"],w),O("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:W,range:N("A1 notation to select. Omit to only switch sheets.")},[],_e)],gb=[O("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:M("The offset the paragraph starts at, exactly as `inspect` prints it."),text:N("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],w),O("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:M("Character offset where the replaced text starts, as `inspect` reports offsets."),end:M("Character offset just past the last character to replace."),text:N("The replacement text. A newline starts a new paragraph.")},["start","end","text"],w),O("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:M("Character offset, as `inspect` reports offsets."),text:N("The text to insert.")},["index","text"],w),O("word.appendText",["word"],"Add text at the end of the document.",{text:N("The text to append.")},["text"],w),O("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:N("Paragraph text. Newlines start further paragraphs."),index:M("Character offset to insert at. Omit for the end of the document.")},[],w),O("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:M("Start character offset."),end:M("End character offset. Omit for a caret.")},["start"],_e)],hb=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Vr,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],lt),O("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:Vr,element:N("Element id."),left:M("Distance from the left edge, in pixels."),top:M("Distance from the top edge, in pixels."),width:M("Width in pixels."),height:M("Height in pixels.")},["slide","element"],lt)],or=[...pb,...mb,...gb,...hb];function yb(e){return or.filter(t=>t.kinds.includes(e))}function bb(e){return or.find(t=>t.op===e)}const qr=/(?: {2,}|\\)$/,_b=/^\*\*([^*]+)\*\*\s+(.*)$/;function Yr(e){const t=_b.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Eb(e){const t=(e??"").replace(/\r\n/g,`
|
|
21
23
|
`).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
|
-
`)}),
|
|
24
|
-
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){
|
|
25
|
-
`:" ")),
|
|
24
|
+
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(Yr(m)):r={style:f,items:[Yr(m)]}};let i=[],a=[];const u=()=>{if(i.length){const f=i.join("").trim();f&&n.push({type:"paragraph",text:f}),i=[]}},c=()=>{a.length&&(n.push({type:"quote",text:a.join(`
|
|
25
|
+
`)}),a=[])},l=()=>{u(),c(),o()};let d=0;for(;d<t.length;){const f=t[d]??"",m=f.match(/^```(\w*)\s*$/);if(m){l();const h=[];for(d++;d<t.length&&!/^```\s*$/.test(t[d]??"");)h.push(t[d]??""),d++;d++,n.push({type:"code",...m[1]?{lang:m[1]}:{},text:h.join(`
|
|
26
|
+
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){l(),n.push({type:"heading",level:b[1].length,text:b[2].trim()}),d++;continue}const g=f.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(g){l(),n.push({type:"image",url:g[2],...g[1]?{alt:g[1]}:{}}),d++;continue}if(/^\s*[-*]\s+/.test(f)){u(),c(),s("bulleted",f.replace(/^\s*[-*]\s+/,"")),d++;continue}if(/^\s*\d+\.\s+/.test(f)){u(),c(),s("numbered",f.replace(/^\s*\d+\.\s+/,"")),d++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(f)){l(),n.push({type:"divider"}),d++;continue}if(/^>\s?/.test(f)){u(),o(),a.push(f.replace(/^>\s?/,"")),d++;continue}if(f.trim()===""){l(),d++;continue}c(),o();const E=qr.test(f);i.push(f.replace(qr,"").trim()+(E?`
|
|
27
|
+
`:" ")),d++}return l(),n}function Sb(e,t){return vn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
|
|
26
28
|
|
|
27
|
-
`).trim()}const eb="documents.describe",tb="documents.inspect",nb="documents.apply";function rb(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 ob="installation-id";function sb(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 ib(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const Gr="main",be=e=>`${e.app}:${e.entry}`,Ut=e=>be({app:e.app,entry:e.entry.id}),Wr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function ab(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(Ut(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??Gr;let ie=Y.find(L=>L.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(L=>[L,[]]));for(const{item:L,section:z}of l.get(_.key)??[]){const kt=z&&x.has(z)?z:_.sections[0];x.get(kt)?.push(L)}const B=T?.sections??[],Y=new Set(B.flatMap(L=>(L.entries??[]).map(be))),re=new Set((T?.excluded??[]).map(be));return[...B.map(L=>L.key),..._.sections.filter(L=>!B.some(z=>z.key===L))].map(L=>{const z=B.find(oe=>oe.key===L),kt=(z?.entries??[]).flatMap(oe=>d.get(be(oe))??[]),ic=(x.get(L)??[]).filter(oe=>!Y.has(Ut(oe)));return{key:L,label:z?.label?{text:z.label}:{key:`section_${L}`},items:[...kt,...ic].filter(oe=>!re.has(Ut(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(_=>[...Wr(_.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:Gr,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)=>Vr(_).localeCompare(Vr(T))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const T of Wr(_.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 Vr=e=>"text"in e.label?e.label.text:e.label.key,cb="notification-source",ub=(e,t)=>`${e}.pref.${t}`,lb={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"]},tr=9e4,La=["out_of_office"],$a=e=>La.includes(e);function db(e,t,n){const r=n-e<tr,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&&!$a(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function fb(e,t){const n=t-e.lastSeenAt<tr,r=n||$a(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function pb(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function mb(e){return e.providerAvailable&&e.allowed}const gb="provisioning-source",hb={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},yb="resources.describe",bb="resources.search",_b="resources.resolve",Eb="resources.attached";function Ib(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const Sb="/provider/scope/related",Ab="/provider/scope/read",Tb="/provider/scope/acts",Ka="auth";function Ua(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function Cb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function vb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function kb(e){return typeof e!="string"||e===""||e==="/"?!0:Ua(e)===Ka}function Ob(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ba(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Ob(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function Fa(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 ja(e){return e.publicBasePath??`/apps/${e.name}`}function Mb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=ja(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 Ga(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 Wa(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ba(r.pattern).test(e)&&(!n||Ga(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...Fa(n.pattern,e)}}:null}function Rb(e,t){return Wa(e,t)!==null}const Nb=10*1024*1024,Db=25*1024*1024,wb="sync-target",xb=20;function nr(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 Va(e,t,n){return nr(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?Jn(e):!0:!1}function Pb(e){return e.produces==="draft"}function Lb(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"&&nr(e)||t.mode==="draft"&&(Jn(e)||e.access!=="read"&&!Pb(e))?"hidden":t.gate&&Va(e,t.gate,t.policy)?"held":"free"}const $b={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]"]},Ha=e=>{let t=e;return Object.values($b).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},qa=6e4,Ya=8e3,za=2,Xa=.4,Kb=3,Ub=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 Qa(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Kb||Ub.has(n)||t.add(n);return[...t]}function Za(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 Ja(e,t=qa){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=>Ha(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const ec=60;function Bb(e,t,n=ec){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<Ya)return{trigger:!1,reason:"too_soon"};const o=Ja(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<za)return{trigger:!1,reason:"too_few_new"};const a=Qa(o.text);return a.length?r.lastQueryTerms?.length&&Za(a,r.lastQueryTerms)<Xa?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const jb=["personal","organization","connections","flows","work","administration","ai"],Gb="navNotice",vt={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}},tc="NL",Wb=15,Vb=8,Hb=Array.from(new Set(Object.values(vt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Hr(e){if(e)return vt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function qr(e){if(e.length>Wb)return null;for(const t of Hb){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(vt)){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<Vb?null:`+${e}`}function qb(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 Yb(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 mn(e,t){if(!e)return null;const n=qb(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return qr(o);if(o.startsWith("00"))return qr(o.slice(2));const s=Hr(t)??Hr(tc);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 zb(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function rr(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function Xb(e){const t=rr(e);return t?t.slice(t.lastIndexOf("@")+1):null}const Qb=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function nc(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 Qb.has(n)&&t.length>=3?t.slice(-3).join("."):n}const rc=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 Zb(e){const t=nc(e);return t?rc.has(t):!1}function Jb(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function e_(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=mn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=mn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=rr(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const t_=[/<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],Yr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,n_=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function r_(e){const t=e.split(`
|
|
28
|
-
`);for(let n=0;n<t.length;n++)if(
|
|
29
|
-
`).trim();return e}const
|
|
29
|
+
`).trim()}const Ib="documents.describe",Ab="documents.inspect",Cb="documents.apply";function vb(e){const t=e.indexOf(":");if(t!==-1)return e.slice(0,t);const n=e.indexOf(".");return n===-1?e:e.slice(0,n)}const Tb="installation-id";function kb(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function Ob(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const zr="main",be=e=>`${e.app}:${e.entry}`,Bt=e=>be({app:e.app,entry:e.entry.id}),Xr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Mb(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:i}=e,a=new Set(t.map(_=>_.name)),u=new Map(r.map(_=>[_.key,_])),c=new Set(n.map(_=>_.key)),l=new Map,d=new Map,f=new Map;for(const _ of t)for(const v of _.nav??[])for(const x of v.entries){const B={app:_.name,entry:x};if(l.set(Bt(B),B),v.workspace!=="apps"){d.set(v.workspace,[...d.get(v.workspace)??[],{item:B,section:v.section}]);continue}const Y=f.get(_.name)??[],re=v.section??zr;let ie=Y.find(L=>L.key===re);ie||(ie={key:re,items:[]},v.section&&(ie.label={key:`${_.name}:section_${v.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const v=u.get(_.key),x=new Map(_.sections.map(L=>[L,[]]));for(const{item:L,section:z}of d.get(_.key)??[]){const Ot=z&&x.has(z)?z:_.sections[0];x.get(Ot)?.push(L)}const B=v?.sections??[],Y=new Set(B.flatMap(L=>(L.entries??[]).map(be))),re=new Set((v?.excluded??[]).map(be));return[...B.map(L=>L.key),..._.sections.filter(L=>!B.some(z=>z.key===L))].map(L=>{const z=B.find(oe=>oe.key===L),Ot=(z?.entries??[]).flatMap(oe=>l.get(be(oe))??[]),mc=(x.get(L)??[]).filter(oe=>!Y.has(Bt(oe)));return{key:L,label:z?.label?{text:z.label}:{key:`section_${L}`},items:[...Ot,...mc].filter(oe=>!re.has(Bt(oe)))}})},b=_=>(_.sections??[]).map(v=>({key:v.key,...v.label?{label:{text:v.label}}:{},items:(v.entries??[]).flatMap(x=>l.get(be(x))??[])})),g=[...n.filter(_=>a.has(_.owner)).map(_=>({key:_.key,label:{key:`workspace_${_.key}`},icon:_.icon,order:_.order,sections:m(_)})),...r.filter(_=>!c.has(_.key)).map(_=>({key:_.key,label:{text:_.label??_.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:b(_)}))],E=new Set(g.flatMap(_=>[...Xr(_.sections)])),h=_=>_.map(v=>({...v,items:v.items.filter(x=>(x.entry.permissions??[]).every(i))})).filter(v=>v.items.length>0),y=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const v=u.get(_);if(v?.visibleByDefault===!1)return!1;const x=v?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},S=g.map(_=>{const v=u.get(_.key);return{..._,label:v?.label?{text:v.label}:_.label,icon:v?.icon??_.icon,order:v?.order??_.order}}).sort((_,v)=>_.order-v.order),T=S.map(({order:_,...v})=>{const x=c.has(v.key)?"default":"own";return{...v,group:"workspaces",kind:x,customized:x==="default"&&u.has(v.key),visible:y(v.key),visibleByDefault:p(v.key)}}),C=S.filter(_=>y(_.key)).map(_=>({..._,sections:h(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...v})=>({...v,group:"workspaces"})),R=new Map;for(const _ of t){const x=[...new Map((_.nav??[]).flatMap(Y=>Y.entries.map(re=>[re.id,re]))).values()].map(Y=>({app:_.name,entry:Y})),B=h(f.get(_.name)??[{key:zr,items:x}]);B.length!==0&&R.set(_.name,{key:"apps",app:_.name,group:"apps",label:{text:_.displayName},icon:_.icon??"app-window",sections:B})}const D=[...R.values()].filter(_=>_.app&&(f.has(_.app)||!E.has(_.app))).sort((_,v)=>Qr(_).localeCompare(Qr(v))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const v of Xr(_.sections))Q[v]??=[],G.get(_.key)===v?Q[v].unshift(_.key):Q[v].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:T,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Qr=e=>"text"in e.label?e.label.text:e.label.key,Rb="notification-source",Nb=(e,t)=>`${e}.pref.${t}`,Db={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","calendar.read","calendar.write","channel.read","channel.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write"],context:["attribute.read","attribute.write","custom-field.read","custom-field.write","kind.read","kind.write","memory.read","memory.write","reaction.read","reaction.write","topic.read","topic.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},sr=9e4,Wa=["out_of_office"],Va=e=>Wa.includes(e);function wb(e,t,n){const r=n-e<sr,o=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!o?.status)return{online:r,status:r?"available":"offline"};const s=o.status;return!r&&!Va(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function xb(e,t){const n=t-e.lastSeenAt<sr,r=n||Va(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Pb(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function Lb(e){return e.providerAvailable&&e.allowed}const $b="provisioning-source",Kb={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},Ub="resources.describe",Bb="resources.search",Fb="resources.resolve",jb="resources.attached";function Gb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const Wb="/provider/scope/related",Vb="/provider/scope/read",Hb="/provider/scope/acts",Ha="auth";function qa(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function qb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function Yb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function zb(e){return typeof e!="string"||e===""||e==="/"?!0:qa(e)===Ha}function Xb(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ya(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Xb(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function za(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,i)=>{if(s.startsWith(":")){const a=s.endsWith("?")?s.slice(1,-1):s.slice(1),u=r[i];u&&(o[a]=u)}}),o}function Xa(e){return e.publicBasePath??`/apps/${e.name}`}function Qb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Xa(n);for(const o of n.routes??[]){if(!o.public)continue;const s=o.path==="/"?"":o.path;t.push({appName:n.name,resource:o.resource,pattern:`${r}${s}`,props:o.props})}}return t}function Qa(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let o=0;o<Math.min(n.length,r.length);o++){const s=n[o].startsWith(":"),i=r[o].startsWith(":");if(s!==i)return i}return n.length>r.length}function Za(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ya(r.pattern).test(e)&&(!n||Qa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...za(n.pattern,e)}}:null}function Zb(e,t){return Za(e,t)!==null}const Jb=10*1024*1024,e_=25*1024*1024,t_="sync-target",n_=20;function ir(e,t){const n=Array.isArray(t)?t.find(r=>r.name===e.name)?.policy:void 0;return n?n!=="read":e.access?e.access!=="read":!0}function Ja(e,t,n){return ir(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?rr(e):!0:!1}function r_(e){return e.produces==="draft"}function o_(e,t){if(t.allowed){const n=t.personalTools==="allow"&&e.personal===!0;if(!t.allowed.has(e.name)&&!n)return"hidden"}return t.narrow&&!t.narrow.has(e.name)||!t.attended&&(e.personal===!0||e.surface==="interactive")||t.readOnly&&e.access!=="read"||t.mode==="ask"&&ir(e)||t.mode==="draft"&&(rr(e)||e.access!=="read"&&!r_(e))?"hidden":t.gate&&Ja(e,t.gate,t.policy)?"held":"free"}const s_={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},ec=e=>{let t=e;return Object.values(s_).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},tc=6e4,nc=8e3,rc=2,oc=.4,i_=3,a_=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function sc(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<i_||a_.has(n)||t.add(n);return[...t]}function ic(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let o=0;for(const s of r)n.has(s)||(o+=1);return o/r.size}function ac(e,t=tc){const n=e.filter(i=>!i.partial&&typeof i.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((i,a)=>Math.max(i,a.endedAt??0),0)-t;return{text:n.filter(i=>(i.endedAt??0)>=o).map(i=>ec(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const cc=60;function c_(e,t,n=cc){const r=new Set(e),o=[...e];for(const s of t)!s||r.has(s)||(r.add(s),o.push(s));return o.slice(-n)}function u_(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<nc)return{trigger:!1,reason:"too_soon"};const o=ac(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<rc)return{trigger:!1,reason:"too_few_new"};const i=sc(o.text);return i.length?r.lastQueryTerms?.length&&ic(i,r.lastQueryTerms)<oc?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const l_=["personal","organization","connections","flows","work","administration","ai"],d_="navNotice",kt={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},uc="NL",f_=15,p_=8,m_=Array.from(new Set(Object.values(kt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Zr(e){if(e)return kt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Jr(e){if(e.length>f_)return null;for(const t of m_){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(kt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Be(s,r))return`+${t}${s}`}return null}return e.length<p_?null:`+${e}`}function g_(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function h_(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function hn(e,t){if(!e)return null;const n=g_(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Jr(o);if(o.startsWith("00"))return Jr(o.slice(2));const s=Zr(t)??Zr(uc);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return Be(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(Be(a,s))return`+${s.callingCode}${a}`}return!i&&Be(o,s)?`+${s.callingCode}${o}`:null}function y_(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ar(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function b_(e){const t=ar(e);return t?t.slice(t.lastIndexOf("@")+1):null}const __=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function lc(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return __.has(n)&&t.length>=3?t.slice(-3).join("."):n}const dc=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function E_(e){const t=lc(e);return t?dc.has(t):!1}function S_(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function I_(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=hn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=hn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=ar(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const A_=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],eo=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,C_=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function v_(e){const t=e.split(`
|
|
30
|
+
`);for(let n=0;n<t.length;n++)if(C_.test(t[n])||eo.test(t[n])&&t.slice(n+1,n+4).some(r=>eo.test(r)))return t.slice(0,n).join(`
|
|
31
|
+
`).trim();return e}const T_=/^(?:https?:|mailto:|tel:)/i,k_=/^(?:https?:|cid:|data:image\/)/i;function Ft(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const O_=/(!\[[^\]]*\]\([^)]*\))/;function to(e){return e.replace(/\s+/g," ").trim().split(O_).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function jt(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function M_(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Ft(r,"src");return k_.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=to(o.replace(/<[^>]*>/g,"")),i=Ft(r,"href");return T_.test(i)?`[${s||jt(i)}](${jt(i)})`:s})}const R_=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,N_=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,D_=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function w_(e,t){return/<table\b/i.test(e)||e.includes(`
|
|
30
32
|
|
|
31
|
-
|`)||t.includes("![")||t.length>200}const
|
|
33
|
+
|`)||t.includes("![")||t.length>200}const x_=40,P_={left:"---",center:":---:",right:"---:"};function L_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function $_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function K_(e){const t=[];for(const i of e.matchAll(N_)){const a=[];for(const u of i[1].matchAll(D_)){const c=$_(u[3]);if(w_(u[3],c))return null;a.push({text:c,align:L_(u[2])})}if(a.length===0)return null;a.some(u=>u.text!=="")&&t.push(a)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(i=>i.length!==n))return null;const r=i=>`| ${i.map(a=>a.text).join(" | ")} |`,o=t[1].map(i=>P_[i.align]).join(" | "),s=t.slice(1).map(r).join(`
|
|
32
34
|
`);return`
|
|
33
35
|
|
|
34
36
|
${r(t[0])}
|
|
35
37
|
| ${o} |
|
|
36
38
|
${s}
|
|
37
39
|
|
|
38
|
-
`}function
|
|
39
|
-
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function
|
|
40
|
+
`}function U_(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
|
|
41
|
+
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function B_(e){let t=e;for(let n=0;n<x_;n++){const r=R_.exec(t);if(!r||r.index===void 0)break;const s=K_(r[1])??`
|
|
40
42
|
|
|
41
|
-
${
|
|
43
|
+
${U_(r[1])}
|
|
42
44
|
|
|
43
|
-
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function
|
|
44
|
-
`),t&&(n=
|
|
45
|
+
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function no(e,t){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<!--[\s\S]*?-->/g,""),n=n.replace(/<br\s*\/?>/gi,`
|
|
46
|
+
`),t&&(n=B_(M_(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
|
|
45
47
|
|
|
46
48
|
`),n=n.replace(/<\/(div|li|tr)>/gi,`
|
|
47
|
-
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function
|
|
49
|
+
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function ro(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const F_={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function oo(e){return e.replace(/ /gi," ").replace(/&([a-z]+);/gi,(t,n)=>F_[n.toLowerCase()]??t).replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>ro(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>ro(parseInt(n,16))??t).replace(/&/gi,"&")}function so(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
48
50
|
`).replace(/\n{3,}/g,`
|
|
49
51
|
|
|
50
|
-
`).trim()}const oc=/<\s*(html|body|div|p|table|br|span)\b/i;function E_(e){return oc.test(e)}function I_(e){return sc(e,!1)}function S_(e){return sc(e,!0)}function sc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of t_){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=Jr(Zr(Xr(r,t)));return o||(o=Jr(Zr(Xr(e,t)))),r_(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=Bu;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=ya;exports.AGREEMENT_SCOPE_KIND=pa;exports.AGREEMENT_TRANSITIONS=po;exports.AI_ATTACHMENT_LIMITS=Ra;exports.AI_ATTACHMENT_MAX_PER_TURN=cy;exports.AI_ATTACHMENT_TURN_BUDGET=ay;exports.AI_CAPABILITIES=pt;exports.AI_TOOL_PROVIDER_GROUP=ly;exports.AI_VENDORS=In;exports.ALLOWED_LINK_SCHEMES=To;exports.APP_PERMISSIONS=lb;exports.ARTICLE_SCOPE_KIND=Yd;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Ao;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=mt;exports.ASSET_GROUP_SEEDS=kd;exports.ASSIGNMENT_SCOPE_KIND=Ro;exports.ASSIST_BANDS=my;exports.ASSIST_SOURCE_PROVIDER_GROUP=py;exports.ATTENTION_STATUSES=Ss;exports.AT_RISK_GAP=qi;exports.AUTH_APP_NAME=Ka;exports.AUTO_READY_MIN_PROPOSALS=yi;exports.AUTO_READY_RATE=bi;exports.ActivityTypeRegistry=so;exports.BOOKABLE_KINDS=ia;exports.BOOKABLE_ROUTES=_y;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=yy;exports.BOOKKEEPING_PROVIDER_GROUP=by;exports.BOOKKEEPING_ROUTES=Ey;exports.BUILT_IN_ONLY=Cc;exports.BULK_PENALTY=As;exports.BUSINESS_ENTITY_LIST_SERVICE=fl;exports.BUSINESS_ENTITY_PARAM=St;exports.CADENCE_FLOOR_MS=Ya;exports.CADENCE_MIN_NEW_SEGMENTS=za;exports.CADENCE_MIN_NOVELTY=Xa;exports.CADENCE_WINDOW_MS=qa;exports.CAPITALIZATION_THRESHOLD_CENTS=ps;exports.CLASSIFY_VARS=$p;exports.CLEARABLE_FIELDS=Bg;exports.COMPANY_RECEIVABLES_SERVICE=Sh;exports.CONNECTOR_PROVIDER_GROUP=Gy;exports.CONTEXT_COLLECT_SERVICE=Wy;exports.CORE_DIMENSIONS=hu;exports.CRM_ACTIVITY_SCOPE_KIND=Jl;exports.CRM_CALL_CHANNELS=td;exports.CRM_CALL_LOGGED=ns;exports.CRM_CALL_OUTCOMES=nd;exports.CRM_NOTE_ADDED=ts;exports.CRM_STAGE_CHANGED=ed;exports.CUSTOM_RESOLUTION_PREFIX=Wd;exports.CommunicationScheme=Pa;exports.DAY_MS=gs;exports.DEFAULT_CHECK_IN_DAYS=Vi;exports.DEFAULT_DUNNING_POLICY=Qg;exports.DEFAULT_FORECAST_WEEKS=ti;exports.DEFAULT_MEMORY_BUDGET=Kf;exports.DEFAULT_NUMBER_PADDING=ah;exports.DEFAULT_PHONE_REGION=tc;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Xg;exports.DEFAULT_TEMPLATE_CONDITIONS=Yg;exports.DEFAULT_TOLERANCE=Ri;exports.DEFAULT_WORKSPACES=ra;exports.DEMAND_SOURCE_PROVIDER_GROUP=ep;exports.DOCUMENT_APPLY_SERVICE=nb;exports.DOCUMENT_DESCRIBE_SERVICE=eb;exports.DOCUMENT_INSPECT_SERVICE=tb;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Ao;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Xt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=So;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=mt;exports.DOCUMENT_MAX_TOTALS_ROWS=Qt;exports.DOCUMENT_OPERATIONS=er;exports.DRAFT_FIELDS=Ug;exports.DUTCH_SLOT_LABELS=ca;exports.EMPTY_WORKFLOW=Gp;exports.ENABLED_TRANSACTION_KINDS=qn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=us;exports.FEATURE_MESSAGE_REACTIONS=Fy;exports.FEATURE_REMOTE_SEARCH=By;exports.FIXED_KINDS=bt;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=Tt;exports.FIXED_UNITS=$l;exports.FOLLOW_UP_HOURS=Ts;exports.FROZEN_WRITABLE_FIELDS=$g;exports.HOUR_MS=ms;exports.HTML_BODY_RE=oc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=ob;exports.INTERACTION_KIND=fi;exports.InteractionParticipantRole=Ky;exports.KB_FALLBACK_LOCALE=Ls;exports.KB_LOCALES=nt;exports.LEAD_STATUSES=ql;exports.LEDGER_TEMPLATES=lf;exports.LEGAL_FORMS=pl;exports.LIFECYCLE_STAGES=Hl;exports.LOCALES=nt;exports.LOOSE_STATUSES=Ct;exports.MAIL_HINT_HEADERS=Es;exports.MANUAL_PRICE_SOURCE=Wo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=No;exports.MAX_BLOCKS=jt;exports.MAX_CHOICE_OPTIONS=Ht;exports.MAX_COLLECTION_DEPTH=Nn;exports.MAX_DELEGATION_DEPTH=Do;exports.MAX_EDITABLE_FILE_BYTES=Nb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=xf;exports.MAX_MEMORY_BUDGET=$f;exports.MAX_MEMORY_CHARS=Pf;exports.MAX_RULE_DEPTH=dn;exports.MAX_SCORE_LEVELS=Yt;exports.MAX_SHOWN_KEYS=ec;exports.MAX_TOPIC_CANDIDATES=Zi;exports.MAX_TOPIC_EXAMPLES=Qi;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=Db;exports.MICROS_PER_CENT=Je;exports.MIN_MEMORY_BUDGET=Lf;exports.MIN_SCORE_LEVELS=qt;exports.MISSING_PRICE_SOURCE=Zt;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=Gb;exports.NL_BV_TEMPLATE=Us;exports.NL_PAYMENT_TERMS=ph;exports.NL_TAX_CODES=Ff;exports.NL_TAX_RATES=Bf;exports.NL_VAT_BOXES=Ni;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=cb;exports.OFF_TRACK_GAP=Yi;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Vf;exports.PAUSE_HOLD=at;exports.PAUSE_SNOOZED=st;exports.PAUSE_WAITING_FOR_CUSTOMER=it;exports.PAYMENT_TERM_METHODS=lh;exports.PAYROLL_CATEGORIES=Bs;exports.PHONE_REGIONS=vt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Tp;exports.PLAYBOOK_RUN_SCOPE_KIND=ci;exports.PRESENCE_ONLINE_WINDOW_MS=tr;exports.PRESENCE_SURVIVES_OFFLINE=La;exports.PRICE_PERS=Dc;exports.PRODUCT_SCOPE_KIND=fa;exports.PROFILE_TOOL_DISPOSITIONS=qf;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=$y;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=Ly;exports.PROVISIONING_ROUTES=hb;exports.PROVISIONING_SOURCE_GROUP=gb;exports.PUBLIC_EMAIL_DOMAINS=rc;exports.PURCHASE_KINDS=ki;exports.PURCHASE_ORDER_KIND=im;exports.READ_STEP_TYPES=tn;exports.RECEIPT_BOOK_ACT=sl;exports.RECEIPT_SCOPE_KIND=ol;exports.RELATED_SUBJECT_KINDS=Ws;exports.REPORT_VIEW_LAYOUTS=gu;exports.RESERVED_SEGMENTS=na;exports.RESERVED_STATUS_KEYS=Zn;exports.RESERVED_TYPE_KEYS=Nh;exports.RESOURCE_ATTACHED_SERVICE=Eb;exports.RESOURCE_DESCRIBE_SERVICE=yb;exports.RESOURCE_RESOLVE_SERVICE=_b;exports.RESOURCE_SEARCH_SERVICE=bb;exports.SALES_KINDS=At;exports.SALES_SCOPE_KINDS=da;exports.SCHEDULE_ENTRY_SCOPE_KIND=ni;exports.SCHEDULE_EVENT=xi;exports.SCOPE_ACTS_ROUTE=Tb;exports.SCOPE_READ_ROUTE=Ab;exports.SCOPE_RELATED_ROUTE=Sb;exports.SEGMENT_FILTER_KEYS=zl;exports.SEGMENT_LAYOUTS=Ql;exports.SEGMENT_LIST_FILTERS=Jo;exports.SEGMENT_PRESENCE_FILTERS=es;exports.SEGMENT_SORT_FIELDS=Xl;exports.SENDING_STALE_MS=ll;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=jb;exports.SIGNATURE_INTENTS=Fl;exports.SLA_METRICS=Gm;exports.SLA_PAUSE_REASONS=Wm;exports.STATUS_NAMES=wg;exports.STEP_MAX_TOKENS_MAX=gi;exports.STEP_MAX_TOKENS_MIN=mi;exports.STEP_TYPES=jp;exports.STRATEGY_ITEM_SCOPE_KIND=Gi;exports.SUMMARY_MIN_LAST_CHARS=_s;exports.SUMMARY_MIN_MESSAGES=bs;exports.SYNC_RUN_MAX_ERRORS=xb;exports.SYNC_TARGET_PROVIDER_GROUP=wb;exports.SYSTEM_ONE_NON_GOALS=su;exports.SYSTEM_RESOLUTIONS=Ds;exports.TERMINAL_ASSIGNMENT_STATUSES=Mo;exports.TERMINAL_RUN_STATUSES=_i;exports.TRANSACTION_KINDS=oa;exports.TRIGGER_VARS=Pp;exports.UNARY_OPS=Tm;exports.UNKNOWN_KIND=Hs;exports.UNKNOWN_LEVEL_ORDER=Wi;exports.UNSUPPORTED=jy;exports.UNWORKED_RESOLUTIONS=Gd;exports.USAGE_DIMENSIONS=bo;exports.USAGE_DIMENSION_IDS=_o;exports.USAGE_RECORDS_ROUTE=Ul;exports.USAGE_SOURCE_PROVIDER_GROUP=Kl;exports.UnresolvedRefError=Wn;exports.WEBHOOK_EVENTS=_a;exports.WORKSTREAM_SCOPE_KIND=ri;exports.WORK_ACTIVITY_SCOPE_KIND=Sa;exports.WORK_AREAS=Hf;exports.WORK_COMMENT_ADDED=vh;exports.WORK_CYCLE_SYNC_KIND=Lh;exports.WORK_ITEM_ASSIGNED=kh;exports.WORK_ITEM_SCOPE_KIND=Ea;exports.WORK_ITEM_STATUS_CHANGED=Oh;exports.WORK_PROJECT_SCOPE_KIND=Ia;exports.WORK_SORT_FIELDS=ry;exports.WORK_VIEW_FLAGS=ny;exports.WORK_VIEW_LAYOUTS=oy;exports.WORK_VIEW_LIST_FILTERS=ty;exports.W_PRIORITY=Ie;exports.XAF_NAMESPACE=js;exports.acceptExampleCandidate=vg;exports.accountTotals=tf;exports.accountTypeOf=Mf;exports.accrualPostings=Sd;exports.actingIdentityKey=ii;exports.activeWorkTypes=Tg;exports.activityIconOf=dc;exports.activityJoinUrl=Ic;exports.activitySnippet=ro;exports.activityTextParams=oo;exports.activityTimelineText=Ec;exports.activityTimestamp=io;exports.activityTypeInfo=j;exports.actorKey=Ap;exports.addExampleCandidate=Cg;exports.addMonths=me;exports.addWorkingMs=_t;exports.agePresenceEntry=fb;exports.aggregateUsage=Vo;exports.agingBucketOf=ba;exports.agingOf=Ih;exports.agreementEffectiveEnd=Hc;exports.agreementFromQuote=Lc;exports.agreementHref=oh;exports.agreementScopeKey=rh;exports.aiAttachmentKind=Ma;exports.aiAttachmentRejection=uy;exports.aiBudgetLimit=zt;exports.aiBudgetPeriodKey=fu;exports.aiBudgetPeriodStart=yo;exports.aiBudgetState=du;exports.aiVendorAcceptsAttachment=lu;exports.aiVendorDefaultModel=au;exports.aiVendorLabel=iu;exports.aiVendorNeedsBaseUrl=uu;exports.aiVendorsWith=cu;exports.allocate=Te;exports.allocateInvoice=dm;exports.appNameFromPath=Ua;exports.applyApprovalDecision=Mu;exports.applyRounding=_g;exports.applySignature=jl;exports.approvalRate=hi;exports.artifactBodyBytes=ko;exports.artifactOutline=Oo;exports.artifactToMarkdown=An;exports.assignmentMismatch=Mp;exports.assignmentScopeKey=ju;exports.assignmentSubject=Vu;exports.availabilityByPerson=Jf;exports.awaitsNumber=Kg;exports.balanceSheet=sf;exports.belongsOnCalendar=Yf;exports.belongsToEntity=ml;exports.billableTimeGroups=yg;exports.billedQuantity=Yo;exports.bindParams=Im;exports.bindValue=rt;exports.bookingDocumentOf=Lg;exports.bookingDocumentOfReceipt=al;exports.bookingLinesOf=Uo;exports.bookingSyncKey=cl;exports.buildActivityPreview=Ac;exports.buildChannelIntents=ky;exports.buildNavModel=ab;exports.buildShareKeys=$u;exports.buildWindow=Ja;exports.businessEntitySender=ss;exports.calendarDaysBetween=qs;exports.calendarOf=Et;exports.canConvert=Fg;exports.canMoveAgreement=Wc;exports.canNestUnder=Qd;exports.canParent=og;exports.canTransition=xg;exports.canonicalJson=en;exports.capabilityDefaultFlag=Qc;exports.capacityTotal=Qf;exports.capacityWeights=_p;exports.capitalizationThreshold=vd;exports.carriesText=hc;exports.cashForecast=cf;exports.categoryLabel=Jd;exports.categoryOf=Ca;exports.causedBy=Rm;exports.changesBilledLine=qc;exports.channelKindForScheme=Py;exports.channelKindOf=fc;exports.checkInOverdueMs=gg;exports.clampStepMaxTokens=Fp;exports.classifyMail=Pd;exports.cleanMessageMarkdown=S_;exports.cleanMessageText=I_;exports.cleanReceiptLines=nm;exports.codeQuery=Tl;exports.codedMessage=Ny;exports.columnBalance=af;exports.commitProblem=Il;exports.companyReceivablesOf=Ah;exports.compareAssistRank=hy;exports.compareReports=ef;exports.compareWorkTypes=Xi;exports.conditionHolds=os;exports.contactName=Yl;exports.contractSignals=em;exports.copyFrom=aa;exports.correlationKeyFor=Iy;exports.costOverYear=rm;exports.countsAsPlanned=pe;exports.coverageByPerson=Zf;exports.coverageFor=ip;exports.coversWorkstream=Pn;exports.crmActivityAt=od;exports.cronMatches=wi;exports.currentAccountRelation=yd;exports.currentLines=Bc;exports.currentPeriod=uh;exports.cycleDayIndex=Ln;exports.cycleOrder=Jh;exports.cycleState=ey;exports.dealValueCents=$c;exports.decideAssignmentState=Hu;exports.decideCadence=Fb;exports.decideEach=Cu;exports.decideIncomingCall=Ty;exports.decisionBand=ou;exports.defaultLocaleOf=$s;exports.defaultOffer=Ci;exports.defaultStatusKey=Wh;exports.defaultTemplateBlocks=ua;exports.defineIntent=Uy;exports.delegationRefusal=qu;exports.demandFor=sm;exports.depreciationParts=fs;exports.depreciationPostings=Ed;exports.depthOf=xs;exports.derivePresence=db;exports.describeClause=Su;exports.describeExpression=km;exports.digitsOf=Ho;exports.disabledIntentsFromCapabilities=Cy;exports.disposalLines=Id;exports.documentBodyBytes=ko;exports.documentKindOf=rb;exports.documentOutline=Oo;exports.documentToMarkdown=An;exports.documentToText=Jy;exports.driftedFields=Li;exports.dueAtOf=Zm;exports.dueCharges=Fc;exports.dueDateFrom=dh;exports.dunningRunOf=Jg;exports.dunningStateOf=la;exports.effectiveEndAt=Ee;exports.elapsedSeconds=bg;exports.emailDomain=Xb;exports.emptyConditionLeaf=Cm;exports.endpointKey=e_;exports.entityOwnerIds=gl;exports.entryLinesOf=bf;exports.entryNumber=ff;exports.entryProblems=df;exports.erlangC=zs;exports.excessiveLending=bd;exports.expectedFor=Zp;exports.extractParams=Fa;exports.extractTerms=Qa;exports.failureLines=dd;exports.fieldVarPath=Pm;exports.fillDocument=ud;exports.fillText=rs;exports.filterByEndpoint=My;exports.filterByIntent=Oy;exports.filterByTargetScheme=xa;exports.filterableDimensions=Iu;exports.findAiVendor=Ce;exports.findEvent=Lm;exports.finishedAt=Vc;exports.fixedLevelForName=ig;exports.fixedTypeForName=xh;exports.fixedTypes=Ph;exports.flattenLocales=sb;exports.floorToPeriod=fe;exports.forecastIntervals=gp;exports.formatActingIdentity=si;exports.formatCents=H;exports.formatClock=Ig;exports.formatHm=Eg;exports.formatItemKey=Kh;exports.formatMicros=Ml;exports.formatPeriod=de;exports.formatSeriesNumber=ch;exports.formatSlaDuration=tg;exports.freshSources=fy;exports.getActivitySeenUserIds=vc;exports.getContactEndpoints=Vl;exports.getShortTitle=jd;exports.getUrgencyScore=Fd;exports.goodsReceiptProblems=Ai;exports.groupDocumentLines=Oi;exports.hasReacted=gm;exports.hashedPartOf=mf;exports.healthCategory=ag;exports.healthsInCategory=cg;exports.heightOf=Dn;exports.helpCenterText=qd;exports.humanizeAction=wp;exports.interactionIdOf=pi;exports.interestOnDailyBalance=md;exports.interestPeriods=gd;exports.isAgentUser=Th;exports.isAssigned=Ud;exports.isAssignmentTerminal=Fu;exports.isAssignmentTrigger=li;exports.isAssistantMode=pu;exports.isAuthoredCrmActivity=rd;exports.isAutoReady=qp;exports.isAutonomy=Rp;exports.isAwaitingThem=Ns;exports.isBookable=Pg;exports.isChatMessageActivity=Oc;exports.isClosed=Bd;exports.isConnectedType=bc;exports.isDescendant=Ps;exports.isEligible=Od;exports.isEmailActivity=kc;exports.isFrozen=Yn;exports.isHeldClock=Qm;exports.isHtmlBody=E_;exports.isInFlight=zp;exports.isInteractionUnseen=Is;exports.isLandingPath=kb;exports.isLikelyBulk=ys;exports.isMessageShape=gn;exports.isMessageType=pc;exports.isMoreSpecificPattern=Ga;exports.isNoteShape=hn;exports.isOpenClock=ji;exports.isOutstanding=Xn;exports.isOutwardTool=Jn;exports.isOverdueOn=mh;exports.isParked=vs;exports.isPaused=Ei;exports.isPlaybookAuthoredType=yc;exports.isPricePer=Pc;exports.isPublicEmailDomain=Zb;exports.isPublicPath=Rb;exports.isPurchasable=Ll;exports.isRecurringLine=co;exports.isReminderActive=ks;exports.isReplyableType=gc;exports.isResultAccount=ve;exports.isSellable=Pl;exports.isSettingsPath=Cb;exports.isSettled=ha;exports.isShorter=Uc;exports.isSlaAtRisk=$d;exports.isSupportedCron=Mm;exports.isTerminal=Yp;exports.isThreadLongEnough=Nd;exports.isTradeable=_l;exports.isTranscriptType=_c;exports.isWebhookEvent=Ch;exports.isWorkClosed=Vh;exports.isWorkTypeVisible=Ag;exports.isWriteTool=nr;exports.itemDossierKeys=Fh;exports.itemKeyOf=nl;exports.judgeRuleCase=Nm;exports.kindFor=q;exports.ladderFor=Ta;exports.ledgerRuleFor=dl;exports.levelIn=Hi;exports.levelOrder=ut;exports.lineAffinity=Gn;exports.lineKey=Kp;exports.lineNet=yt;exports.lineStatus=lo;exports.lineTerm=U;exports.linkLabel=Hd;exports.listedTransactionKinds=Dg;exports.listeningAllowed=mu;exports.loanPostings=_d;exports.loanSchedule=Mn;exports.localeInstruction=Xd;exports.localeName=zd;exports.localesOf=Zd;exports.looksLikeEmail=Yb;exports.lookup=kn;exports.manualSettlement=yh;exports.marginCents=Nc;exports.markdownToDocument=Zy;exports.matchApprovalPolicy=ku;exports.matchContactToIntents=Ry;exports.matchDocumentLines=Mi;exports.matchPublicRoute=Wa;exports.matchRate=qo;exports.matchRules=Pi;exports.matchVerdict=fm;exports.mcpCredentialScope=Df;exports.mcpToolPrefix=wf;exports.measureRatio=lg;exports.mergeDefaultFlags=Jc;exports.mergeShownKeys=Bb;exports.messageCountsAs=no;exports.metricOption=Au;exports.minutesOn=$n;exports.missingFieldPaths=$m;exports.modelAcceptsAttachment=tu;exports.monthEnd=ls;exports.monthParts=as;exports.monthlyPeriods=Af;exports.monthsIn=cs;exports.mustAsk=Va;exports.narrowAutonomy=Dp;exports.navLabelText=ib;exports.needsPhoneRegion=Jb;exports.nestsUnderParent=mc;exports.nextLevelBelow=sg;exports.nextOccurrenceDates=Zh;exports.nextSlaClock=Jm;exports.nextStatuses=sa;exports.nextVersion=jg;exports.normalizeArtifactBlocks=vo;exports.normalizeBlocks=cc;exports.normalizeDocumentBlocks=vo;exports.normalizeEmail=rr;exports.normalizeExample=te;exports.normalizeGtin=Fo;exports.normalizeIban=Zo;exports.normalizeIbans=Wl;exports.normalizeMeter=Xo;exports.normalizeUsageSource=Bl;exports.normalizeVatNumber=Gl;exports.noticeDeadline=En;exports.notificationPrefKey=ub;exports.novelty=Za;exports.offerValid=Ti;exports.openCentsOf=zu;exports.operationDescriptor=Xy;exports.operationsForKind=zy;exports.opsForFieldType=xm;exports.orderForDocument=am;exports.organizationSender=ld;exports.outcomeOf=zh;exports.overlap=ft;exports.overlapSeconds=Le;exports.overlaps=sp;exports.ownWorkspaceKey=Og;exports.paceRatio=dg;exports.parkMarksById=Md;exports.parse=Di;exports.parseActingIdentity=Ip;exports.parseAmount=Mc;exports.parseCamt053=xo;exports.parseClockMinutes=Fm;exports.parseCodedMessage=wy;exports.parseCron=Vn;exports.parseItemKey=Uh;exports.parseLineKey=Up;exports.parseMicros=vn;exports.parseMt940=Lo;exports.parsePackingSlip=um;exports.parseRateCsv=Rl;exports.parseRatePrice=Jt;exports.parseRecurrence=Qh;exports.parseStatement=tl;exports.parseWorkspacePath=Rg;exports.parseXafOpening=Of;exports.partialDisposalLines=Cd;exports.pathToRegex=Ba;exports.patternFor=Un;exports.patternStartTime=Kn;exports.pauseBitFor=jm;exports.paymentOfItem=Qu;exports.paymentStateOf=zn;exports.pendingApprovers=Ou;exports.periodAt=We;exports.periodOf=Tf;exports.periodShare=uo;exports.periodsInRange=_u;exports.phoneSuffix=zb;exports.pickMailHeaders=Dd;exports.pickTemplate=id;exports.placeLumps=Ep;exports.plainTextFromMarkdown=eo;exports.planSlaEvent=Xm;exports.plannedBillable=ap;exports.plannedWorkTypeKey=ei;exports.priceOver=dt;exports.procedureOf=Vp;exports.productCost=vi;exports.productHref=nh;exports.productScopeKey=eh;exports.profitAndLoss=of;exports.projectDossierKeys=jh;exports.proposalRequestIds=vu;exports.proposeMatch=Yu;exports.publicBasePathFor=ja;exports.publicRoutePatterns=Mb;exports.quantityKey=Xc;exports.rateRecords=Dl;exports.ratedLineAmount=wl;exports.reactionWakesAssignment=Wu;exports.readDefaultFlags=Zc;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=il;exports.receiptProblems=Ko;exports.receiptState=tm;exports.receiptTotals=$o;exports.receivableRowOf=Eh;exports.receivedFor=Si;exports.recencyOf=Cs;exports.recipientLocale=sd;exports.reconciliationBalances=Xu;exports.refKey=Bn;exports.referenceCostIn=Sl;exports.registrableDomain=nc;exports.rejectExampleCandidate=ea;exports.relatedByDefault=Uf;exports.remainingMsOf=ct;exports.repriceLines=Ol;exports.requiredAgents=Zs;exports.requirementFor=Js;exports.resolutionsFor=Vd;exports.resolveAccountCapabilities=wa;exports.resolveActivityText=je;exports.resolveAutonomy=Np;exports.resolveChannelIntents=Da;exports.resolvePrice=Go;exports.resolveRateCard=vl;exports.resolveRoute=nu;exports.resolveSignature=Qo;exports.resolveTier=ho;exports.resolveWorkMode=pb;exports.resolveWorkspace=Mg;exports.resourceKindOf=Ib;exports.restate=ao;exports.retryDelayMinutes=ul;exports.reversedLines=gf;exports.rhythmOf=yn;exports.rollupChildren=mg;exports.roundHalfUp=P;exports.runActor=Sp;exports.runApprovalKey=Cp;exports.runEvalSuite=fd;exports.runIdOfApprovalRef=vp;exports.runInteractionId=Qp;exports.runKind=Hp;exports.runOutcome=wm;exports.runSpans=Gc;exports.sanitizeInline=Co;exports.sanitizeTranscript=Ha;exports.scheduleEntryScopeKey=hp;exports.scoreInteraction=Kd;exports.scoreWorkItem=Rh;exports.segmentIsEmpty=Zl;exports.selectLenses=Nf;exports.sellableProduct=xl;exports.serialize=$e;exports.seriesStart=bn;exports.serviceLevel=Xs;exports.sessionsHoldCannotReach=Ay;exports.sessionsToHold=Sy;exports.settingsPath=vb;exports.settlementPatch=hh;exports.shadowByKey=hl;exports.shareKeyForTeam=Cn;exports.shareKeyForUser=Tn;exports.shareKeysForViewer=Ku;exports.shortTermPrincipal=Td;exports.shortfalls=cp;exports.shouldRunAudioPipeline=mb;exports.slaBadgeTone=eg;exports.slaHoursByInbox=Ld;exports.slaHoursFor=Rs;exports.slipProposal=cm;exports.sortStatuses=va;exports.sourceKey=Na;exports.splitLine=Yc;exports.spread=Rn;exports.spreadOverWeights=oi;exports.startingCents=Ad;exports.statusIn=Gh;exports.statusRequiresApproval=Yh;exports.stepDate=Oa;exports.stepsOf=Wp;exports.strategyAncestorKeysFor=rg;exports.strategyDossierKeys=ng;exports.strategyItemScopeKey=Hn;exports.stripHtml=to;exports.subjectKeyOf=Xp;exports.subjectOf=Fn;exports.subjectRef=gy;exports.suggestProjectKey=Bh;exports.suggestTreatments=rl;exports.suggestedHealth=fg;exports.summariseEval=is;exports.summarizeReactions=pm;exports.targetById=Op;exports.targetForActivityType=kp;exports.targetOrder=hg;exports.taxCodeProblem=Gf;exports.taxDateOf=J;exports.taxPercentOn=xn;exports.taxRateFor=Vs;exports.taxRatesOn=jf;exports.termEndAt=ne;exports.termStartAt=_n;exports.termsFor=Ys;exports.tieredMicros=zo;exports.timingOf=fo;exports.toActingIdentity=ai;exports.toBaseUnits=yl;exports.toE164=mn;exports.toProductUnits=jn;exports.toTransactionTerm=fh;exports.toolBareName=di;exports.toolDisplayName=xp;exports.toolReversible=dy;exports.toolSourceKinds=Uu;exports.toolVerdict=Lb;exports.topicOfferedForTeam=ta;exports.topicsForTeam=kg;exports.trafficIntensity=Qs;exports.transactionContext=Gg;exports.transactionDossierKeys=ih;exports.transactionHref=th;exports.transactionIdFromScope=sh;exports.transactionKind=F;exports.transactionScopeKey=ma;exports.transactionSlots=Wg;exports.transactionTotals=Wf;exports.transitoryLines=yf;exports.triggerFillsVar=Lp;exports.truncateExample=Ji;exports.typeIn=wh;exports.typesFor=Dh;exports.uniqueWorkStatusKey=Hh;exports.uniqueWorkTypeKey=Sg;exports.unitFactor=Bo;exports.unitsProblem=bl;exports.usageAccountOf=go;exports.usageAccountsOf=zc;exports.usageMetricId=Eo;exports.usageMetrics=Tu;exports.validateQuestions=ru;exports.validateStatuses=qh;exports.valueAtPath=ui;exports.variableJump=Ii;exports.variantOptionsProblem=El;exports.vatPeriods=ym;exports.vatReturn=hm;exports.waitHoursOf=ht;exports.wakesAssignment=Gu;exports.withLineIds=Bp;exports.workActivityScopeKey=$h;exports.workItemScopeKey=Aa;exports.workProjectScopeKey=Qn;exports.workRatio=pg;exports.workStatusKey=ka;exports.workTypeKey=zi;exports.workingMsBetween=ot;exports.workspacePath=Ng;exports.workstreamScopeKey=yp;exports.xafAuditfile=vf;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=uf;
|
|
52
|
+
`).trim()}const fc=/<\s*(html|body|div|p|table|br|span)\b/i;function j_(e){return fc.test(e)}function G_(e){return pc(e,!1)}function W_(e){return pc(e,!0)}function pc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of A_){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=so(oo(no(r,t)));return o||(o=so(oo(no(e,t)))),v_(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=qu;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=Ca;exports.AGREEMENT_SCOPE_KIND=_a;exports.AGREEMENT_TRANSITIONS=_o;exports.AI_ATTACHMENT_LIMITS=$a;exports.AI_ATTACHMENT_MAX_PER_TURN=Ty;exports.AI_ATTACHMENT_TURN_BUDGET=vy;exports.AI_CAPABILITIES=pt;exports.AI_TOOL_PROVIDER_GROUP=Oy;exports.AI_VENDORS=An;exports.ALLOWED_LINK_SCHEMES=Ro;exports.APP_PERMISSIONS=Db;exports.ARTICLE_SCOPE_KIND=sf;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Mo;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=mt;exports.ASSET_GROUP_SEEDS=Kd;exports.ASSIGNMENT_SCOPE_KIND=Lo;exports.ASSIST_BANDS=Dy;exports.ASSIST_SOURCE_PROVIDER_GROUP=Ny;exports.ATTENTION_STATUSES=ks;exports.AT_RISK_GAP=Ji;exports.AUTH_APP_NAME=Ha;exports.AUTO_READY_MIN_PROPOSALS=Ii;exports.AUTO_READY_RATE=Ai;exports.ActivityTypeRegistry=fo;exports.BOOKABLE_KINDS=fa;exports.BOOKABLE_ROUTES=$y;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=Py;exports.BOOKKEEPING_PROVIDER_GROUP=Ly;exports.BOOKKEEPING_ROUTES=Ky;exports.BUILT_IN_ONLY=wc;exports.BULK_PENALTY=Os;exports.BUSINESS_ENTITY_LIST_SERVICE=_l;exports.BUSINESS_ENTITY_PARAM=At;exports.CADENCE_FLOOR_MS=nc;exports.CADENCE_MIN_NEW_SEGMENTS=rc;exports.CADENCE_MIN_NOVELTY=oc;exports.CADENCE_WINDOW_MS=tc;exports.CAPITALIZATION_THRESHOLD_CENTS=bs;exports.CLASSIFY_VARS=Yp;exports.CLEARABLE_FIELDS=rh;exports.COMPANY_ADDRESS_KINDS=Xl;exports.COMPANY_RECEIVABLES_SERVICE=Bh;exports.COMPANY_ROLE_KINDS=ed;exports.CONNECTOR_PROVIDER_GROUP=db;exports.CONTEXT_COLLECT_SERVICE=fb;exports.CORE_DIMENSIONS=Au;exports.CRM_ACTIVITY_SCOPE_KIND=ld;exports.CRM_CALL_CHANNELS=fd;exports.CRM_CALL_LOGGED=as;exports.CRM_CALL_OUTCOMES=pd;exports.CRM_NOTE_ADDED=is;exports.CRM_STAGE_CHANGED=dd;exports.CUSTOM_RESOLUTION_PREFIX=tf;exports.CommunicationScheme=Ga;exports.DAY_MS=Es;exports.DEFAULT_CHECK_IN_DAYS=Qi;exports.DEFAULT_DUNNING_POLICY=mh;exports.DEFAULT_FORECAST_WEEKS=ii;exports.DEFAULT_JUMP_PERCENT=Di;exports.DEFAULT_MEMORY_BUDGET=zf;exports.DEFAULT_NUMBER_PADDING=Ch;exports.DEFAULT_PHONE_REGION=uc;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=ph;exports.DEFAULT_TEMPLATE_CONDITIONS=dh;exports.DEFAULT_TOLERANCE=Li;exports.DEFAULT_WORKSPACES=ua;exports.DEMAND_SOURCE_PROVIDER_GROUP=dp;exports.DOCUMENT_APPLY_SERVICE=Cb;exports.DOCUMENT_DESCRIBE_SERVICE=Ib;exports.DOCUMENT_INSPECT_SERVICE=Ab;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Mo;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Zt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Oo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=mt;exports.DOCUMENT_MAX_TOTALS_ROWS=Jt;exports.DOCUMENT_OPERATIONS=or;exports.DRAFT_FIELDS=nh;exports.DUTCH_SLOT_LABELS=ma;exports.EMPTY_WORKFLOW=em;exports.ENABLED_TRANSACTION_KINDS=Qn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=ms;exports.FEATURE_MESSAGE_REACTIONS=ub;exports.FEATURE_REMOTE_SEARCH=cb;exports.FEED_COLUMNS=Hn;exports.FEED_EVERY_MS=ym;exports.FIXED_KINDS=_t;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=vt;exports.FIXED_UNITS=Wl;exports.FOLLOW_UP_HOURS=Ms;exports.FROZEN_WRITABLE_FIELDS=eh;exports.HOUR_MS=_s;exports.HTML_BODY_RE=fc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=Tb;exports.INTERACTION_KIND=yi;exports.InteractionParticipantRole=ib;exports.KB_FALLBACK_LOCALE=Fs;exports.KB_LOCALES=nt;exports.LEAD_STATUSES=od;exports.LEDGER_TEMPLATES=Sf;exports.LEGAL_FORMS=El;exports.LIFECYCLE_STAGES=rd;exports.LOCALES=nt;exports.LOOSE_STATUSES=Tt;exports.MAIL_HINT_HEADERS=vs;exports.MANUAL_PRICE_SOURCE=zo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=$o;exports.MAX_BLOCKS=Gt;exports.MAX_CHOICE_OPTIONS=Yt;exports.MAX_COLLECTION_DEPTH=xn;exports.MAX_DELEGATION_DEPTH=Ko;exports.MAX_EDITABLE_FILE_BYTES=Jb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Vf;exports.MAX_MEMORY_BUDGET=Yf;exports.MAX_MEMORY_CHARS=Hf;exports.MAX_RULE_DEPTH=pn;exports.MAX_SCORE_LEVELS=Xt;exports.MAX_SHOWN_KEYS=cc;exports.MAX_TOPIC_CANDIDATES=oa;exports.MAX_TOPIC_EXAMPLES=ra;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=e_;exports.MICROS_PER_CENT=Je;exports.MIN_MEMORY_BUDGET=qf;exports.MIN_SCORE_LEVELS=zt;exports.MISSING_PRICE_SOURCE=en;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=d_;exports.NL_BV_TEMPLATE=Ws;exports.NL_PAYMENT_TERMS=Nh;exports.NL_TAX_CODES=Zf;exports.NL_TAX_RATES=Qf;exports.NL_VAT_BOXES=$i;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Rb;exports.OFF_TRACK_GAP=ea;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=np;exports.PAUSE_HOLD=at;exports.PAUSE_SNOOZED=st;exports.PAUSE_WAITING_FOR_CUSTOMER=it;exports.PAYMENT_TERM_METHODS=kh;exports.PAYROLL_CATEGORIES=Vs;exports.PHONE_REGIONS=kt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Pp;exports.PLAYBOOK_RUN_SCOPE_KIND=pi;exports.PRESENCE_ONLINE_WINDOW_MS=sr;exports.PRESENCE_SURVIVES_OFFLINE=Wa;exports.PRICE_PERS=Uc;exports.PRODUCT_SCOPE_KIND=ba;exports.PROFILE_TOOL_DISPOSITIONS=op;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=sb;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ob;exports.PROVISIONING_ROUTES=Kb;exports.PROVISIONING_SOURCE_GROUP=$b;exports.PUBLIC_EMAIL_DOMAINS=dc;exports.PURCHASE_KINDS=wi;exports.PURCHASE_ORDER_KIND=Am;exports.READ_STEP_TYPES=rn;exports.RECEIPT_BOOK_ACT=fl;exports.RECEIPT_SCOPE_KIND=dl;exports.RELATED_SUBJECT_KINDS=zs;exports.REPORT_VIEW_LAYOUTS=Iu;exports.RESERVED_SEGMENTS=ca;exports.RESERVED_STATUS_KEYS=nr;exports.RESERVED_TYPE_KEYS=zh;exports.RESOURCE_ATTACHED_SERVICE=jb;exports.RESOURCE_DESCRIBE_SERVICE=Ub;exports.RESOURCE_RESOLVE_SERVICE=Fb;exports.RESOURCE_SEARCH_SERVICE=Bb;exports.SALES_KINDS=Ct;exports.SALES_SCOPE_KINDS=ya;exports.SCHEDULE_ENTRY_SCOPE_KIND=ai;exports.SCHEDULE_EVENT=Bi;exports.SCOPE_ACTS_ROUTE=Hb;exports.SCOPE_READ_ROUTE=Vb;exports.SCOPE_RELATED_ROUTE=Wb;exports.SEGMENT_FILTER_KEYS=id;exports.SEGMENT_LAYOUTS=cd;exports.SEGMENT_LIST_FILTERS=os;exports.SEGMENT_PRESENCE_FILTERS=ss;exports.SEGMENT_SORT_FIELDS=ad;exports.SENDING_STALE_MS=yl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=l_;exports.SIGNATURE_INTENTS=Yl;exports.SLA_METRICS=ig;exports.SLA_PAUSE_REASONS=ag;exports.STATUS_NAMES=Xg;exports.STEP_MAX_TOKENS_MAX=Ei;exports.STEP_MAX_TOKENS_MIN=_i;exports.STEP_TYPES=Jp;exports.STRATEGY_ITEM_SCOPE_KIND=zi;exports.SUMMARY_MIN_LAST_CHARS=Cs;exports.SUMMARY_MIN_MESSAGES=As;exports.SYNC_RUN_MAX_ERRORS=n_;exports.SYNC_TARGET_PROVIDER_GROUP=t_;exports.SYSTEM_ONE_NON_GOALS=fu;exports.SYSTEM_RESOLUTIONS=$s;exports.TERMINAL_ASSIGNMENT_STATUSES=Po;exports.TERMINAL_RUN_STATUSES=Ci;exports.TRANSACTION_KINDS=la;exports.TRIGGER_VARS=Hp;exports.UNARY_OPS=Fm;exports.UNKNOWN_KIND=Qs;exports.UNKNOWN_LEVEL_ORDER=Xi;exports.UNSUPPORTED=lb;exports.UNWORKED_RESOLUTIONS=ef;exports.USAGE_DIMENSIONS=Co;exports.USAGE_DIMENSION_IDS=vo;exports.USAGE_RECORDS_ROUTE=Hl;exports.USAGE_SOURCE_PROVIDER_GROUP=Vl;exports.UnresolvedRefError=Yn;exports.WEBHOOK_EVENTS=Ta;exports.WORKSTREAM_SCOPE_KIND=ci;exports.WORK_ACTIVITY_SCOPE_KIND=Ma;exports.WORK_AREAS=rp;exports.WORK_COMMENT_ADDED=Wh;exports.WORK_CYCLE_SYNC_KIND=ey;exports.WORK_ITEM_ASSIGNED=Vh;exports.WORK_ITEM_SCOPE_KIND=ka;exports.WORK_ITEM_STATUS_CHANGED=Hh;exports.WORK_PROJECT_SCOPE_KIND=Oa;exports.WORK_SORT_FIELDS=Sy;exports.WORK_VIEW_FLAGS=Ey;exports.WORK_VIEW_LAYOUTS=Iy;exports.WORK_VIEW_LIST_FILTERS=_y;exports.W_PRIORITY=Se;exports.XAF_NAMESPACE=qs;exports.acceptExampleCandidate=Gg;exports.accountTotals=pf;exports.accountTypeOf=Bf;exports.accrualPostings=wd;exports.actingIdentityKey=di;exports.activeWorkTypes=Fg;exports.activityIconOf=_c;exports.activityJoinUrl=Mc;exports.activitySnippet=uo;exports.activityTextParams=lo;exports.activityTimelineText=Oc;exports.activityTimestamp=po;exports.activityTypeInfo=j;exports.actorKey=xp;exports.addExampleCandidate=jg;exports.addMonths=me;exports.addWorkingMs=Et;exports.agePresenceEntry=xb;exports.aggregateUsage=Xo;exports.agingBucketOf=va;exports.agingOf=Uh;exports.agreementEffectiveEnd=Jc;exports.agreementFromQuote=Gc;exports.agreementHref=Sh;exports.agreementScopeKey=Eh;exports.aiAttachmentKind=La;exports.aiAttachmentRejection=ky;exports.aiBudgetLimit=Qt;exports.aiBudgetPeriodKey=_u;exports.aiBudgetPeriodStart=Ao;exports.aiBudgetState=bu;exports.aiVendorAcceptsAttachment=yu;exports.aiVendorDefaultModel=mu;exports.aiVendorLabel=pu;exports.aiVendorNeedsBaseUrl=hu;exports.aiVendorsWith=gu;exports.allocate=Ce;exports.allocateInvoice=Om;exports.appNameFromPath=qa;exports.applyApprovalDecision=Lu;exports.applyRounding=Lg;exports.applySignature=zl;exports.approvalRate=Si;exports.artifactBodyBytes=wo;exports.artifactOutline=xo;exports.artifactToMarkdown=vn;exports.assignmentMismatch=Bp;exports.assignmentScopeKey=zu;exports.assignmentSubject=Zu;exports.availabilityByPerson=lp;exports.awaitsNumber=th;exports.balanceSheet=yf;exports.belongsOnCalendar=sp;exports.belongsToEntity=Sl;exports.billableTimeGroups=xg;exports.billedQuantity=Jo;exports.bindParams=Km;exports.bindValue=rt;exports.bookingDocumentOf=Jg;exports.bookingDocumentOfReceipt=ml;exports.bookingLinesOf=Vo;exports.bookingSyncKey=gl;exports.buildActivityPreview=Nc;exports.buildChannelIntents=Vy;exports.buildNavModel=Mb;exports.buildShareKeys=Wu;exports.buildWindow=ac;exports.businessEntitySender=ls;exports.calendarDaysBetween=Zs;exports.calendarOf=St;exports.canConvert=oh;exports.canMoveAgreement=Qc;exports.canNestUnder=uf;exports.canParent=Sg;exports.canTransition=Qg;exports.canonicalJson=nn;exports.capabilityDefaultFlag=ou;exports.capacityTotal=cp;exports.capacityWeights=Rp;exports.capitalizationThreshold=$d;exports.carriesText=Cc;exports.cashForecast=_f;exports.categoryLabel=df;exports.categoryOf=Da;exports.causedBy=qm;exports.changesBilledLine=eu;exports.channelKindForScheme=rb;exports.channelKindOf=Ec;exports.checkInOverdueMs=Dg;exports.clampStepMaxTokens=Zp;exports.classifyMail=Hd;exports.cleanMessageMarkdown=W_;exports.cleanMessageText=G_;exports.cleanReceiptLines=pm;exports.codeQuery=Nl;exports.codedMessage=zy;exports.columnBalance=bf;exports.commitProblem=Ol;exports.companyReceivablesOf=Fh;exports.compareAssistRank=xy;exports.compareReports=ff;exports.compareWorkTypes=na;exports.conditionHolds=us;exports.contactName=sd;exports.contractSignals=dm;exports.copyFrom=pa;exports.correlationKeyFor=Uy;exports.costOverYear=mm;exports.countsAsPlanned=pe;exports.coverageByPerson=up;exports.coverageFor=yp;exports.coversWorkstream=Kn;exports.crmActivityAt=gd;exports.cronMatches=Ui;exports.currentAccountRelation=Od;exports.currentLines=qc;exports.currentPeriod=Th;exports.cycleDayIndex=Un;exports.cycleOrder=yy;exports.cycleState=by;exports.dealValueCents=Wc;exports.decideAssignmentState=Ju;exports.decideCadence=u_;exports.decideEach=Du;exports.decideIncomingCall=jy;exports.decisionBand=du;exports.decodeText=tb;exports.defaultLocaleOf=js;exports.defaultOffer=Ri;exports.defaultStatusKey=cy;exports.defaultTemplateBlocks=ga;exports.defineIntent=ab;exports.delegationRefusal=el;exports.demandFor=hm;exports.depreciationParts=ys;exports.depreciationPostings=Nd;exports.depthOf=Us;exports.derivePresence=wb;exports.describeClause=Mu;exports.describeExpression=Wm;exports.digitsOf=Qo;exports.disabledIntentsFromCapabilities=Gy;exports.disposalLines=Dd;exports.documentBodyBytes=wo;exports.documentKindOf=vb;exports.documentOutline=xo;exports.documentToMarkdown=vn;exports.documentToText=Sb;exports.driftedFields=ji;exports.dueAtOf=gg;exports.dueCharges=Yc;exports.dueDateFrom=Mh;exports.dunningRunOf=hh;exports.dunningStateOf=ha;exports.effectiveEndAt=Ee;exports.elapsedSeconds=Pg;exports.emailDomain=b_;exports.emptyConditionLeaf=jm;exports.endpointKey=I_;exports.entityOwnerIds=Il;exports.entryLinesOf=Mf;exports.entryNumber=Af;exports.entryProblems=If;exports.erlangC=ei;exports.excessiveLending=Md;exports.expectedFor=um;exports.extractParams=za;exports.extractTerms=sc;exports.failureLines=Id;exports.feedOutcome=Em;exports.fieldVarPath=Zm;exports.fillDocument=Ed;exports.fillText=cs;exports.filterByEndpoint=qy;exports.filterByIntent=Hy;exports.filterByTargetScheme=Fa;exports.filterableDimensions=Ou;exports.findAiVendor=ve;exports.findEvent=Jm;exports.finishedAt=Zc;exports.fixedLevelForName=Ag;exports.fixedTypeForName=Zh;exports.fixedTypes=Jh;exports.flattenLocales=kb;exports.floorToPeriod=fe;exports.forecastIntervals=Tp;exports.formatActingIdentity=li;exports.formatCents=H;exports.formatClock=Kg;exports.formatHm=$g;exports.formatItemKey=ny;exports.formatMicros=Ll;exports.formatPeriod=de;exports.formatSeriesNumber=vh;exports.formatSlaDuration=bg;exports.freshSources=Ry;exports.getActivitySeenUserIds=xc;exports.getContactEndpoints=nd;exports.getShortTitle=Jd;exports.getUrgencyScore=Zd;exports.goodsReceiptProblems=Oi;exports.groupDocumentLines=xi;exports.guessFeedMapping=Im;exports.hasReacted=Dm;exports.hashedPartOf=vf;exports.healthCategory=Cg;exports.healthsInCategory=vg;exports.heightOf=Pn;exports.helpCenterText=of;exports.humanizeAction=Wp;exports.interactionIdOf=bi;exports.interestOnDailyBalance=vd;exports.interestPeriods=Td;exports.isAgentUser=jh;exports.isAssigned=Xd;exports.isAssignmentTerminal=Yu;exports.isAssignmentTrigger=gi;exports.isAssistantMode=Eu;exports.isAuthoredCrmActivity=md;exports.isAutoReady=om;exports.isAutonomy=Fp;exports.isAwaitingThem=Ls;exports.isBookable=Zg;exports.isChatMessageActivity=Lc;exports.isClosed=Qd;exports.isConnectedType=Tc;exports.isDescendant=Bs;exports.isEligible=Ud;exports.isEmailActivity=Pc;exports.isFrozen=Zn;exports.isHeldClock=mg;exports.isHtmlBody=j_;exports.isInFlight=im;exports.isInteractionUnseen=Ts;exports.isLandingPath=zb;exports.isLikelyBulk=Is;exports.isMessageShape=yn;exports.isMessageType=Sc;exports.isMoreSpecificPattern=Qa;exports.isNoteShape=bn;exports.isOpenClock=Yi;exports.isOutstanding=er;exports.isOutwardTool=rr;exports.isOverdueOn=Dh;exports.isParked=Ns;exports.isPaused=vi;exports.isPlaybookAuthoredType=vc;exports.isPricePer=jc;exports.isPublicEmailDomain=E_;exports.isPublicPath=Zb;exports.isPurchasable=Gl;exports.isRecurringLine=go;exports.isReminderActive=Ds;exports.isReplyableType=Ac;exports.isResultAccount=Te;exports.isSellable=jl;exports.isSettingsPath=qb;exports.isSettled=Aa;exports.isShorter=Hc;exports.isSlaAtRisk=Yd;exports.isSupportedCron=Hm;exports.isTerminal=sm;exports.isThreadLongEnough=jd;exports.isTradeable=Tl;exports.isTranscriptType=kc;exports.isWebhookEvent=Gh;exports.isWorkClosed=uy;exports.isWorkTypeVisible=Bg;exports.isWriteTool=ir;exports.itemDossierKeys=sy;exports.itemKeyOf=ul;exports.judgeRuleCase=Ym;exports.kindFor=q;exports.ladderFor=Na;exports.ledgerRuleFor=bl;exports.levelIn=Zi;exports.levelOrder=ut;exports.lineAffinity=qn;exports.lineKey=zp;exports.lineNet=bt;exports.lineStatus=yo;exports.lineTerm=U;exports.linkLabel=rf;exports.listedTransactionKinds=zg;exports.listeningAllowed=Su;exports.loanPostings=Rd;exports.loanSchedule=Dn;exports.localeInstruction=cf;exports.localeName=af;exports.localesOf=lf;exports.looksLikeEmail=h_;exports.lookup=Rn;exports.manualSettlement=Ph;exports.marginCents=Kc;exports.markdownToDocument=Eb;exports.matchApprovalPolicy=xu;exports.matchContactToIntents=Yy;exports.matchDocumentLines=Pi;exports.matchFeed=_m;exports.matchPublicRoute=Za;exports.matchRate=Zo;exports.matchRules=Fi;exports.matchVerdict=Mm;exports.mcpCredentialScope=Gf;exports.mcpToolPrefix=Wf;exports.measureRatio=kg;exports.mergeDefaultFlags=iu;exports.mergeShownKeys=c_;exports.messageCountsAs=co;exports.metricOption=Ru;exports.minutesOn=Bn;exports.missingFieldPaths=eg;exports.modelAcceptsAttachment=cu;exports.monthEnd=gs;exports.monthParts=fs;exports.monthlyPeriods=xf;exports.monthsIn=ps;exports.mustAsk=Ja;exports.narrowAutonomy=Gp;exports.navLabelText=Ob;exports.needsPhoneRegion=S_;exports.nestsUnderParent=Ic;exports.nextLevelBelow=Ig;exports.nextOccurrenceDates=hy;exports.nextSlaClock=hg;exports.nextStatuses=da;exports.nextVersion=sh;exports.normalizeArtifactBlocks=Do;exports.normalizeBlocks=hc;exports.normalizeDocumentBlocks=Do;exports.normalizeEmail=ar;exports.normalizeExample=te;exports.normalizeGtin=gt;exports.normalizeIban=rs;exports.normalizeIbans=Jl;exports.normalizeMeter=ts;exports.normalizeUsageSource=ql;exports.normalizeVatNumber=Zl;exports.noticeDeadline=In;exports.notificationPrefKey=Nb;exports.novelty=ic;exports.offerValid=Mi;exports.openCentsOf=nl;exports.operationDescriptor=bb;exports.operationsForKind=yb;exports.opsForFieldType=Qm;exports.orderForDocument=Cm;exports.organizationSender=Sd;exports.outcomeOf=py;exports.overlap=ft;exports.overlapSeconds=Le;exports.overlaps=hp;exports.ownWorkspaceKey=Vg;exports.paceRatio=Og;exports.parkMarksById=Bd;exports.parse=Ki;exports.parseActingIdentity=Dp;exports.parseAmount=Wt;exports.parseCamt053=Bo;exports.parseClockMinutes=og;exports.parseCodedMessage=Qy;exports.parseCron=zn;exports.parseCsv=Zy;exports.parseItemKey=ry;exports.parseLineKey=Xp;exports.parseMicros=On;exports.parseMt940=jo;exports.parsePackingSlip=Tm;exports.parseRateCsv=$l;exports.parseRatePrice=tn;exports.parseRecurrence=gy;exports.parseStatement=cl;exports.parseWorkspacePath=qg;exports.parseXafOpening=Uf;exports.partialDisposalLines=Ld;exports.pathToRegex=Ya;exports.patternFor=jn;exports.patternStartTime=Fn;exports.pauseBitFor=sg;exports.paymentOfItem=ol;exports.paymentStateOf=Jn;exports.pendingApprovers=Pu;exports.periodAt=We;exports.periodOf=Pf;exports.periodShare=ho;exports.periodsInRange=Tu;exports.phoneSuffix=y_;exports.pickMailHeaders=Gd;exports.pickPaymentTerm=Oh;exports.pickTemplate=yd;exports.placeLumps=Np;exports.plainTextFromMarkdown=io;exports.planSlaEvent=pg;exports.plannedBillable=bp;exports.plannedWorkTypeKey=si;exports.priceOver=dt;exports.primaryAddress=Ql;exports.procedureOf=nm;exports.productCost=Ni;exports.productHref=_h;exports.productScopeKey=yh;exports.profitAndLoss=hf;exports.projectDossierKeys=iy;exports.proposalRequestIds=wu;exports.proposeMatch=tl;exports.publicBasePathFor=Xa;exports.publicRoutePatterns=Qb;exports.quantityKey=ru;exports.rateRecords=Ul;exports.ratedLineAmount=Bl;exports.ratedQuantity=Mn;exports.reactionWakesAssignment=Qu;exports.readDefaultFlags=su;exports.readFeed=bm;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=pl;exports.receiptProblems=Wo;exports.receiptState=fm;exports.receiptTotals=Go;exports.receivableRowOf=Kh;exports.receivedFor=ki;exports.recencyOf=Rs;exports.recipientLocale=hd;exports.reconciliationBalances=rl;exports.refKey=Gn;exports.referenceCostIn=Ml;exports.registrableDomain=lc;exports.rejectExampleCandidate=ia;exports.relatedByDefault=Xf;exports.remainingMsOf=ct;exports.repriceLines=Pl;exports.requiredAgents=ri;exports.requirementFor=oi;exports.resolutionsFor=nf;exports.resolveAccountCapabilities=Ba;exports.resolveActivityText=je;exports.resolveAutonomy=jp;exports.resolveChannelIntents=Ua;exports.resolvePrice=Yo;exports.resolveRateCard=wl;exports.resolveRoute=uu;exports.resolveSignature=ns;exports.resolveTier=Io;exports.resolveWorkMode=Pb;exports.resolveWorkspace=Hg;exports.resourceKindOf=Gb;exports.restate=mo;exports.retryDelayMinutes=hl;exports.reversedLines=Tf;exports.rhythmOf=_n;exports.roleDirection=td;exports.rollupChildren=Ng;exports.roundHalfUp=P;exports.runActor=wp;exports.runApprovalKey=Lp;exports.runEvalSuite=Ad;exports.runIdOfApprovalRef=$p;exports.runInteractionId=cm;exports.runKind=rm;exports.runOutcome=Xm;exports.runSpans=Xc;exports.sanitizeInline=No;exports.sanitizeTranscript=ec;exports.scheduleEntryScopeKey=kp;exports.scoreInteraction=zd;exports.scoreWorkItem=Yh;exports.segmentIsEmpty=ud;exports.selectLenses=jf;exports.sellableProduct=Fl;exports.serialize=$e;exports.seriesStart=En;exports.serviceLevel=ti;exports.sessionsHoldCannotReach=Fy;exports.sessionsToHold=By;exports.settingsPath=Yb;exports.settlementPatch=xh;exports.shadowByKey=Al;exports.shareKeyForTeam=kn;exports.shareKeyForUser=Tn;exports.shareKeysForViewer=Vu;exports.shortTermPrincipal=Pd;exports.shortfalls=_p;exports.shouldRunAudioPipeline=Lb;exports.slaBadgeTone=yg;exports.slaHoursByInbox=qd;exports.slaHoursFor=Ps;exports.slipProposal=vm;exports.sortStatuses=wa;exports.sourceKey=Ka;exports.splitLine=tu;exports.spread=wn;exports.spreadOverWeights=ui;exports.startingCents=xd;exports.statusIn=ay;exports.statusRequiresApproval=fy;exports.stepDate=Pa;exports.stepsOf=tm;exports.strategyAncestorKeysFor=Eg;exports.strategyDossierKeys=_g;exports.strategyItemScopeKey=Xn;exports.stripHtml=ao;exports.subjectKeyOf=am;exports.subjectOf=Wn;exports.subjectRef=wy;exports.suggestProjectKey=oy;exports.suggestTreatments=ll;exports.suggestedHealth=Mg;exports.summariseEval=ds;exports.summarizeReactions=Rm;exports.targetById=Up;exports.targetForActivityType=Kp;exports.targetOrder=wg;exports.taxCodeProblem=ep;exports.taxDateOf=J;exports.taxPercentOn=$n;exports.taxRateFor=Xs;exports.taxRatesOn=Jf;exports.termApplies=Ia;exports.termEndAt=ne;exports.termStartAt=Sn;exports.termsFor=Js;exports.tieredMicros=es;exports.timingOf=bo;exports.toActingIdentity=fi;exports.toBaseUnits=Cl;exports.toE164=hn;exports.toProductUnits=Vn;exports.toTransactionTerm=Rh;exports.toolBareName=hi;exports.toolDisplayName=Vp;exports.toolReversible=My;exports.toolSourceKinds=Hu;exports.toolVerdict=o_;exports.topicOfferedForTeam=aa;exports.topicsForTeam=Wg;exports.trafficIntensity=ni;exports.transactionContext=ih;exports.transactionDossierKeys=Ah;exports.transactionHref=bh;exports.transactionIdFromScope=Ih;exports.transactionKind=F;exports.transactionScopeKey=Ea;exports.transactionSlots=ah;exports.transactionTotals=tp;exports.transitoryLines=Of;exports.triggerFillsVar=qp;exports.truncateExample=sa;exports.typeIn=Qh;exports.typesFor=Xh;exports.uniqueWorkStatusKey=ly;exports.uniqueWorkTypeKey=Ug;exports.unitFactor=Ho;exports.unitsProblem=vl;exports.usageAccountOf=So;exports.usageAccountsOf=nu;exports.usageMetricId=To;exports.usageMetrics=Nu;exports.validateQuestions=lu;exports.validateStatuses=dy;exports.valueAtPath=mi;exports.variableJump=Ti;exports.variantOptionsProblem=kl;exports.vatPeriods=xm;exports.vatReturn=wm;exports.waitHoursOf=yt;exports.wakesAssignment=Xu;exports.withLineIds=Qp;exports.workActivityScopeKey=ty;exports.workItemScopeKey=Ra;exports.workProjectScopeKey=tr;exports.workRatio=Rg;exports.workStatusKey=xa;exports.workTypeKey=ta;exports.workingMsBetween=ot;exports.workspacePath=Yg;exports.workstreamScopeKey=Op;exports.xafAuditfile=$f;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Ef;
|