@opencxh/domain 1.302.0 → 1.303.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.
Files changed (63) hide show
  1. package/dist/entities/agreement/from-quote.d.ts +8 -8
  2. package/dist/entities/agreement/index.d.ts +2 -0
  3. package/dist/entities/agreement/invoice-head.d.ts +21 -0
  4. package/dist/entities/agreement/lifecycle.d.ts +10 -0
  5. package/dist/entities/agreement/period.d.ts +8 -0
  6. package/dist/entities/agreement/prices.d.ts +43 -0
  7. package/dist/entities/agreement/prices.test.d.ts +1 -0
  8. package/dist/entities/agreement/types.d.ts +54 -10
  9. package/dist/entities/bank/match.d.ts +16 -2
  10. package/dist/entities/bank/types.d.ts +12 -0
  11. package/dist/entities/bookkeeping/receipt.d.ts +45 -6
  12. package/dist/entities/bookkeeping/types.d.ts +1 -2
  13. package/dist/entities/business-entity/types.d.ts +11 -15
  14. package/dist/entities/catalog/pricing.d.ts +11 -11
  15. package/dist/entities/catalog/types.d.ts +15 -9
  16. package/dist/entities/company/role.d.ts +14 -0
  17. package/dist/entities/financing/schedule.d.ts +9 -3
  18. package/dist/entities/financing/types.d.ts +17 -6
  19. package/dist/entities/fulfilment/adopt.d.ts +149 -0
  20. package/dist/entities/fulfilment/customers.d.ts +63 -0
  21. package/dist/entities/fulfilment/execute.d.ts +67 -0
  22. package/dist/entities/fulfilment/fulfilment.test.d.ts +1 -0
  23. package/dist/entities/fulfilment/goods.d.ts +72 -0
  24. package/dist/entities/fulfilment/index.d.ts +8 -0
  25. package/dist/entities/fulfilment/path.d.ts +8 -0
  26. package/dist/entities/fulfilment/path.test.d.ts +1 -0
  27. package/dist/entities/fulfilment/rules.d.ts +124 -0
  28. package/dist/entities/fulfilment/target.d.ts +131 -0
  29. package/dist/entities/fulfilment/types.d.ts +321 -0
  30. package/dist/entities/ledger/entry.d.ts +47 -9
  31. package/dist/entities/ledger/types.d.ts +33 -35
  32. package/dist/entities/ledger/xaf.d.ts +3 -0
  33. package/dist/entities/money/tax.d.ts +6 -0
  34. package/dist/entities/money/totals.d.ts +5 -5
  35. package/dist/entities/purchase/choose.d.ts +57 -0
  36. package/dist/entities/purchase/choose.test.d.ts +1 -0
  37. package/dist/entities/purchase/contract.d.ts +44 -25
  38. package/dist/entities/purchase/demand.d.ts +22 -40
  39. package/dist/entities/purchase/feed.d.ts +53 -5
  40. package/dist/entities/purchase/index.d.ts +1 -0
  41. package/dist/entities/purchase/kinds.d.ts +2 -1
  42. package/dist/entities/purchase/logic.d.ts +32 -7
  43. package/dist/entities/purchase/match.d.ts +48 -6
  44. package/dist/entities/purchase/packing-slip.d.ts +23 -0
  45. package/dist/entities/purchase/types.d.ts +71 -38
  46. package/dist/entities/reports/vat.d.ts +20 -5
  47. package/dist/entities/transaction/booking.d.ts +4 -4
  48. package/dist/entities/transaction/convert.d.ts +10 -10
  49. package/dist/entities/transaction/document.d.ts +8 -3
  50. package/dist/entities/transaction/dunning.d.ts +12 -1
  51. package/dist/entities/transaction/facets.test.d.ts +1 -0
  52. package/dist/entities/transaction/keys.d.ts +3 -0
  53. package/dist/entities/transaction/kinds.d.ts +11 -10
  54. package/dist/entities/transaction/receivable.d.ts +5 -2
  55. package/dist/entities/transaction/settlement.d.ts +7 -7
  56. package/dist/entities/transaction/types.d.ts +123 -68
  57. package/dist/index.cjs +25 -25
  58. package/dist/index.d.ts +2 -1
  59. package/dist/index.js +5160 -4026
  60. package/dist/platform/bookkeeping.d.ts +8 -8
  61. package/dist/platform/provisioning.d.ts +210 -13
  62. package/package.json +1 -1
  63. /package/dist/entities/{purchase/demand.test.d.ts → agreement/invoice-head.test.d.ts} +0 -0
package/dist/index.cjs CHANGED
@@ -1,15 +1,15 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Gt=10,De=10,we=10,xe=5,gc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Mt(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function hc(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Gt){t(`more than ${Gt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!gc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Mt(o.text)){t("a header without text");continue}break;case"context":if(!Mt(o.text)){t("a context block without text");continue}break;case"image":if(!o.url||!o.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(o.fields)&&o.fields.length>De&&(t(`more than ${De} fields in a section`),o.fields=o.fields.slice(0,De));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>we&&(t(`more than ${we} list items`),o.items=o.items.slice(0,we));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],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(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const tn=10,Fe=10,je=10,qe=5,mu=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Ft(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 gu(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=tn){t(`more than ${tn} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!mu.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Ft(o.text)){t("a header without text");continue}break;case"context":if(!Ft(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>Fe&&(t(`more than ${Fe} fields in a section`),o.fields=o.fields.slice(0,Fe));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>je&&(t(`more than ${je} list items`),o.items=o.items.slice(0,je));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],i=s.filter(a=>a?.action_id&&a.invoke&&Ft(a.text));if(i.length!==s.length&&t("an action without action_id, invoke or text"),i.length===0)continue;i.length>qe&&t(`more than ${qe} actions`),o.elements=i.slice(0,qe);break}}n.push(o)}return n}const hu=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,yu=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function wo(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
2
2
  `).map(n=>n.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s{0,3}>\s?/,"").replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").replace(/^\s*(?:[-*_]\s*){3,}$/,"")).join(`
3
- `),t=t.replace(yc,"$2"),t=t.replace(bc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ao(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/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=`![${e.alt??""}](${e.url})`;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Dt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function vn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=Gu(o);s.length>0&&n.push(s.join(`
3
+ `),t=t.replace(hu,"$2"),t=t.replace(yu,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function Po(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim()}function $e(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function Mr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function jt(e){return e?.split("@")?.[0]||e||""}function Ue(e){return e.map(t=>t.name).join(", ")}function Rr(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const ne={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${jt(e.payload.from)}`:`Outbound call started — ${jt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:e=>`Call ended${Mr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${jt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:Nr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:Nr},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Ue(e.payload.members)} toegevoegd`,timeline:e=>{const t=Ue(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Ue(e.payload.members)} verlaten`,timeline:e=>{const t=Ue(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${Rr(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:e=>`${Rr(e.payload.callType)} ended${Mr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${$e(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function Nr(e){const t=e.payload,n=wo(t.bodyText).trim()||t.bodySnippet?.trim()||Po(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function H(e){return ne[e]}function bu(e){return H(e)?.icon??"circle"}function _u(e){return H(e)?.channelKind}function xn(e){return e==="message"||e==="note"}function Iu(e){return xn(H(e)?.shape)}function wn(e){return e==="note"}function Eu(e){return wn(H(e)?.shape)}function Su(e){return H(e)?.replyable===!0}function Au(e){return H(e)?.carriesText===!0}function Lo(e){return H(e)?.countsAs}function vu(e){return H(e)?.playbookAuthored===!0}function Cu(e){return H(e)?.connected===!0}function Tu(e){const t=H(e);return t?.shape==="artifact"&&t?.carriesText===!0}function Ko(e){const t=H(e.type)?.snippet;return t?t(e):""}function ku(e,t){const n=H(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Ou(e){const t=H(e.type)?.joinUrl;return t?t(e):void 0}function Xe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function Qe(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Xe(t,e.value)||null;const r={};for(const[s,i]of Object.entries(e.params??{}))r[s]=Xe(t,i);const o=n(e.key,r);return o===e.key?null:o}function $o(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Xe(t,o);return{key:e.key,params:n}}const Dr=140;function Mu(e){const t=e.trim();return t.length<=Dr?t:`${t.slice(0,Dr-1).trimEnd()}…`}function Ru(e,t){const n=$o(t?.text,e),r=t?Qe(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Mu(r??Ko(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Nu=e=>e;function xr(e){const t=ne[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function wr(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 Uo{constructor(t=[],n=Nu){this.translate=n;for(const r of t)r?.type&&(r.type in ne||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in ne)return xr(t);const n=this.declared.get(t);return n?wr(n):void 0}triggerable(){const t=Object.keys(ne).filter(r=>ne[r].triggerable).map(xr),n=[...this.declared.values()].map(wr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=ne[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return Qe(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=ne[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return Qe(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return xn(this.get(t)?.shape)}nestsUnderParent(t){return wn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Du=new Uo;function xu(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 Bo(e){return e.createdAt??0}function wu(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Pu(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function U(e){return e<0?-Math.round(-e):Math.round(e)}function de(e,t){if(t.length===0)return[];const n=t.reduce((c,u)=>c+u,0);if(n===0)return t.map((c,u)=>u===0?e:0);const r=t.map(c=>e*c/n),o=r.map(c=>Math.trunc(c));let s=e-o.reduce((c,u)=>c+u,0);const i=r.map((c,u)=>({index:u,fraction:Math.abs(c-o[u])})).sort((c,u)=>u.fraction-c.fraction),a=s<0?-1:1;for(let c=0;s!==0&&c<i.length;c++)o[i[c].index]+=a,s-=a;return o}function J(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),i=s.slice(0,-2),a=s.slice(-2);let c="";for(let u=0;u<i.length;u++)u>0&&(i.length-u)%3===0&&(c+=r),c+=i[u];return`${o?"-":""}${c}${n}${a}`}function nn(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),i=o.lastIndexOf("."),a=Math.max(s,i),c=a===-1?"":o.slice(a+1),u=a!==-1&&c.length>=1&&c.length<=2,d=u?o.slice(0,a):o;if(!Lu(d))return;const l=d.replace(/[.,]/g,""),p=u?c.padEnd(2,"0"):"00";if(l==="")return;const g=Number(l)*100+Number(p);return r?-g:g}function Lu(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Ku(e){return e.costPriceCents==null?e.netCents:e.netCents-U(e.costPriceCents*e.quantity)}const $u=["month","quarter","year"],Ze={month:1,quarter:3,year:12},Uu=864e5,Bu=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},Pr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},Lr=(e,t)=>Math.round((t-e)/Uu);function Et(e,t,n){const r=Ze[t],o=de(e,Array.from({length:r},()=>1));let s=0;for(let i=Bu(n.from);i<n.to;i=Pr(i)){const a=Pr(i),c=Math.max(i,n.from),u=Math.min(a,n.to);if(u<=c)continue;const d=o[new Date(i).getUTCMonth()%r];s+=d*Lr(c,u)/Lr(i,a)}return U(s)}function Fo(e,t,n){return!t||!n||t===n?e:U(e*Ze[n]/Ze[t])}function Fu(e){return typeof e=="string"&&e in Ze}const rn=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0&&t!==""));function ju(e){const{role:t,agreement:n={},asked:r={}}=e,o=r.invoiceTo||r.contactId||r.billingAddressId?r:n,s=r.paymentTerm??n.paymentTerm,i=rn({...o.invoiceTo?{invoiceTo:rn({companyId:o.invoiceTo.companyId,contactId:o.contactId})}:{contactId:o.contactId},billingAddressId:o.billingAddressId,paymentTerm:s,reference:r.reference??n.reference}),a=s?.code||t?.paymentTermKey;return{head:i,...a?{paymentTermCode:a}:{}}}function jo(e){return rn({contactId:e.invoiceTo?e.invoiceTo.contactId:e.contactId,invoiceTo:e.invoiceTo?.companyId?{companyId:e.invoiceTo.companyId}:void 0,billingAddressId:e.billingAddressId,paymentTerm:e.paymentTerm,reference:e.reference})}function qo(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function qu(e,t){const n=e.lines.filter(qo).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},prices:[{from:t,cents:U(r.unitPriceCents*(1-(r.discountPercent??0)/100)),...r.pricePer?{per:r.pricePer}:{}}],...r.answers?{answers:r.answers}:{},...r.qualificationId?{qualificationId:r.qualificationId}:{}}));return{title:e.title||e.reference||"",companyId:e.companyId,invoice:jo(e),currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Gu(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?Et(r.netCents,r.pricePer,t):r.netCents),0)}const on={month:1,quarter:3,year:12},Vu=864e5;function Wu(e,t){return on[e]<on[t]}function Je(e,t){const n=new Date(e),r=on[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function W(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 Go(e,t){const n=W(e,t);return t.billingStart!=="activation"?n:t.activatedAt==null?null:{...n,from:Math.max(n.from,t.activatedAt)}}function St(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function Vo(e,t,n){const r=St(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,i)=>Math.round((i-s)/Vu);return o(r.from,r.to)/o(t.from,t.to)}function Wo(e,t,n){const r=W(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function Hu(e,t,n){return t.filter(r=>Wo(e,r,n)!=="ended")}const sn=864e5;function Pn(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function Ho(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ve=e=>Math.round((e.to-e.from)/sn);function Yu(e,t,n,r){const o=[],s=[],i=e.graceDays*sn,a=e.proration===!0;for(const c of t){const u=Go(e,c);if(!u)continue;const d=Pn(e,c),l=Ho(c),p=n.filter(m=>m.agreementLineId===c.id);if(d==="once"){const m={from:u.from,to:u.from+sn};u.from+i<=r&&!p.some(_=>!_.correction)&&o.push({lineId:c.id,window:m,part:m,share:1,timing:"advance"});continue}const g=[];for(let m=Je(u.from,d);m.from<(u.to??Number.POSITIVE_INFINITY)&&m.from+i<=r;m=Je(m.to,d))g.push(m);const f=c.quantity.from==="fixed";for(const m of g.slice(-24)){const _=St(u,m),h=m.to+i<=r,y=p.filter(I=>I.servicePeriod.from>=m.from&&I.servicePeriod.from<m.to),b=y.find(I=>!I.correction);if(!b){if(!_)continue;const I=_.from===m.from&&_.to===m.to;if(!(l==="advance"&&I)&&!h)continue;const T=f?Vo(u,m,a):1;T>0&&o.push({lineId:c.id,window:m,part:_,share:T,timing:l});continue}f&&a&&h&&s.push(...zu(c.id,m,_,b,y))}}return{charges:o,corrections:s}}function zu(e,t,n,r,o){const s={...r.servicePeriod};for(const c of o){if(!c.correction)continue;Math.sign(c.quantity)!==Math.sign(r.quantity)?c.servicePeriod.from<=s.from?s.from=c.servicePeriod.to:s.to=c.servicePeriod.from:c.servicePeriod.to<=s.from?s.from=c.servicePeriod.from:s.to=c.servicePeriod.to}const i=[];if(s.to>s.from&&(n?(n.from>s.from&&i.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&i.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&i.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&i.push({part:{from:s.to,to:n.to},sign:1})):i.push({part:s,sign:-1})),r.pricePer){const c=r.pricePer;return i.map(({part:u,sign:d})=>({lineId:e,window:t,part:u,quantity:d*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:c})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0&&ve(u.part)>0)}const a=r.unitPriceCents*ve(t)/Math.max(1,ve(r.servicePeriod));return i.map(({part:c,sign:u})=>({lineId:e,window:t,part:c,quantity:u*r.quantity,unitPriceCents:U(a*ve(c)/ve(t))})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0)}function Xu(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:i,to:a}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,i),to:Math.max(s.to,a)}:{timing:o.timing,from:i,to:a})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Me=864e5,Yo={draft:["active"],active:["draft","ended"],ended:["active"]};function Qu(e,t){return e===t||Yo[e].includes(t)}function Zu(e){const t=e.graceDays*Me;let n=e.startsAt;for(const r of e.lines??[]){const o=W(e,r),s=Pn(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,Je(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const et=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Ln=e=>e&&e.termMonths>=1?e:void 0;function zo(e,t){return Math.min(...t.map(n=>W(e,n).from))}function re(e,t,n){let r=et(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=et(r,o);return r}function Kn(e,t,n){const r=et(e,Math.max(1,t.termMonths)),o=re(e,t,n);return o===r?e:et(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function Xo(e,t,n){if(t=Ln(t),!t)return null;const r=re(e,t,n),o=r-t.noticeDays*Me;return n<=o?o:t.renew==="none"?null:re(e,t,r)-t.noticeDays*Me}function tt(e,t,n){if(t=Ln(t),!t)return n;const r=re(e,t,n);return n<=r-t.noticeDays*Me||t.renew==="none"?r:re(e,t,r)}function Qo(e,t,n,r){if(t=Ln(t),!t)return{endsAt:n};const o=re(e,t,Math.max(n,e)-1),s=o-t.noticeDays*Me;return r<=s||t.renew==="none"?{endsAt:o,deadline:s}:{endsAt:re(e,t,o),nextTerm:!0}}function Ju(e,t){let n=t;for(const r of e.lines??[]){const o=W(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,tt(Math.max(o.from,0),s,t))}return n}const Kr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.commitment??null]);function el(e,t){return Kr(e)!==Kr(t)}function tl(e,t,n,r){const{endsAt:o,...s}=e,i={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},i]}const At=(e,t)=>e.from-t.from;function Zo(e,t){const n=[...e??[]].sort(At);return n.filter(r=>r.from<=t).pop()??n[0]}function nl(e,t){return[...e??[]].sort(At).find(n=>n.from>t)}function Jo(e,t){return[...(e??[]).filter(n=>n.from!==t.from),t].sort(At)}function rl(e){const t={};for(const n of e){if(n.correction)continue;const r=n.agreementLineId;t[r]=Math.max(t[r]??0,n.servicePeriod.to)}return t}function ol(e,t,n){if(n==null)return!1;const r=o=>JSON.stringify([...o??[]].filter(s=>s.from<n).sort(At).map(s=>[s.from,s.cents,s.per??null]));return r(e)!==r(t)}function sl(e,t){const{from:n,percent:r}=t,o=new Set(t.ratedProductIds??[]),s=[];return{lines:e.map(a=>{if(a.rateCardId||o.has(a.productId))return s.push({lineId:a.id,skipped:"rated"}),a;const c=Zo(a.prices,n-1);if(!c)return s.push({lineId:a.id,skipped:"ladder"}),a;const u=U(Math.round(c.cents*(100+r)*1e6)/1e8),d=a.prices?.find(p=>p.from===n)?.cents;s.push({lineId:a.id,base:c.cents,next:u,...d!=null?{replaces:d}:{}});const l={from:n,cents:u,...c.per?{per:c.per}:{}};return{...a,prices:Jo(a.prices,l)}}),results:s}}function es(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 il(e){const t=new Map;for(const n of e.lines??[]){const r=es(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function al(e,t){return[e,t].join("@")}const vt=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function cl(e){return vt.find(t=>t.id===e)?.defaultFlag}function ul(e){const t={};for(const n of vt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function ll(e,t){const n={};for(const r of vt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const dl={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function fl(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=dl[t];return n?e.in.includes(n):!1}const ye=["fast","standard","deep"],$r=(e,t)=>{const n=ye.indexOf(e),r=Math.min(ye.length-1,Math.max(0,n+t));return ye[r]},an=e=>ye.indexOf(e);function ts(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=$r(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=$r(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&an(n)>an(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function pl(e,t,n){const r=ts(t);if(!e)return{...r,...n,routed:!1};for(let o=an(r.tier);o>=0;o--){const s=ye[o],i=e[s];if(!i?.accountId||!i.model)continue;const a=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:a,accountId:i.accountId,model:i.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const cn=255,un=2,ln=10;function ml(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>cn)return`vraag "${n}" heeft meer dan ${cn} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<un||o>ln)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${un} tot ${ln} zijn`}}return null}function gl(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const hl=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],$n=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function xe(e){return $n.find(t=>t.id===e)}function yl(e){return xe(e)?.label??e}function bl(e,t="gpt-5-mini"){return xe(e)?.defaultModel??t}function _l(e){return $n.filter(t=>t.capabilities.includes(e))}function Il(e){const t=xe(e);return!!t&&!t.baseUrl}function El(e,t){return t==="text"?!0:xe(e)?.attachmentKinds?.includes(t)===!0}function Sl(e,t){if(!e.enabled)return"ok";const n=dn(e.hardLimitNanos),r=dn(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function dn(e){return typeof e=="number"?e:void 0}function ns(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function Al(e,t="month"){const n=new Date(ns(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function vl(e){return e==="ask"||e==="draft"||e==="agent"}function Cl(e){return e?.listeningEnabled!==!1}const Tl=["report"],kl=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function qt(e){return e<10?`0${e}`:`${e}`}function _e(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${qt(n.getUTCMonth()+1)}-${qt(n.getUTCDate())}`;return t==="day"?r:`${r}T${qt(n.getUTCHours())}`}function Ie(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Ol=36e5,Ml=864e5;function Rl(e,t,n){const r=n==="hour"?Ol:Ml,o=[];for(let s=Ie(e,n);s<=t;s+=r)o.push(_e(s,n));return o}const Nl=new Set(["time"]);function Dl(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!Nl.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 xl(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 wl(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const rs=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],os=rs.map(e=>e.id);function ss(e,t){return`${e}.usage.${t}`}function Pl(e,t){return t.map(n=>({id:ss(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...os,...n.extraDimensions??[],"time"]}))}async function Ll(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 Kl(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function $l(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 Ul(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 Bl(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 is=new Set(["info","success","warning","destructive"]),nt=200,rt=100,ot=200,st=12,it=4,fn=10,as=8,pn=12,Ct=4e3,he=500,cs=1024*1024,Fl=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),us=["http:","https:","mailto:","tel:"],jl=/^[a-z][a-z0-9+.-]*:/i;function Un(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=jl.exec(t)?.[0];return n?us.includes(n.toLowerCase()):!t.startsWith("//")}const ql=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Gl(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=Ur(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const i=Ur(e,s+2,"(",")");if(i<0){t+=e[n],n+=1;continue}const a=e.slice(o,s),c=e.slice(s+2,i).trim().split(/\s+/)[0]??"";t+=r||!Un(c)?a:e.slice(n,i+1),n=i+1}return t}function Ur(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 ls(e){return Gl(e).replace(ql,(t,n,r)=>Un(r)?t:"")}function j(e,t=Ct){return typeof e=="string"?ls(e).slice(0,t):""}function Vl(e,t=Ct){return typeof e=="string"?e.slice(0,t):""}function Ce(e,t=200){return j(e,t)}function Wl(e,t="info"){return typeof e=="string"&&is.has(e)?e:t}function ds(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=nt){t(`more than ${nt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Fl.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const i=j(o.text);if(!i){t("a heading without text");continue}const a=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:a,text:i});break}case"paragraph":{const i=j(o.text);if(!i){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:i});break}case"quote":{const i=j(o.text);if(!i){t("a quote without text");continue}n.push({...s,type:"quote",text:i});break}case"code":{const i=Vl(o.text);if(!i){t("a code block without text");continue}const a=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...a,text:i});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const u of i){if(a.length>=rt){t(`more than ${rt} list items`);break}const d=j(u?.text);if(!d)continue;const l=j(u?.lead,200);a.push(l?{lead:l,text:d}:{text:d})}if(a.length===0){t("a list without usable items");continue}const c=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:c,items:a});break}case"table":{const i=Array.isArray(o.columns)?o.columns:[],a=[];for(const l of i){if(a.length>=st){t(`more than ${st} table columns`);break}const p=j(l?.label,he),g=l?.align==="right"?"right":void 0;a.push(g?{label:p,align:g}:{label:p})}if(a.length===0){t("a table without columns");continue}const c=Array.isArray(o.rows)?o.rows:[],u=[];for(const l of c){if(u.length>=ot){t(`more than ${ot} table rows`);break}const p=Array.isArray(l)?l:[];u.push(a.map((g,f)=>j(p[f],he)))}const d=j(o.caption,he);n.push({...s,type:"table",columns:a,rows:u,...d?{caption:d}:{}});break}case"kpi":{const i=Array.isArray(o.items)?o.items:[],a=[];for(const c of i){if(a.length>=it){t(`more than ${it} kpi items`);break}const u=j(c?.value,40),d=j(c?.label,80);if(!u||!d)continue;const l=c?.tone;a.push(typeof l=="string"&&is.has(l)?{value:u,label:d,tone:l}:{value:u,label:d})}if(a.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:a});break}case"image":{const i=typeof o.url=="string"?o.url.trim():"";if(!i||!Un(i)){t("an image without a usable url");continue}const a=j(o.alt,200),c=j(o.caption,he);n.push({...s,type:"image",url:i,...a?{alt:a}:{},...c?{caption:c}:{}});break}case"letterhead":{const i=Array.isArray(o.fields)?o.fields:[],a=[];for(const d of i){if(a.length>=fn){t(`more than ${fn} letterhead fields`);break}const l=d,p=typeof l?.key=="string"?l.key.slice(0,48):"",g=Ce(l?.value);if(!p||!g)continue;const f=Ce(l?.label,80);a.push(f?{key:p,label:f,value:g}:{key:p,value:g})}const u=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,as).map(d=>Ce(d)).filter(Boolean);if(a.length===0&&u.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:a,...u.length>0?{recipient:u}:{}});break}case"totals":{const i=u=>{const d=Array.isArray(u)?u:[],l=[];for(const p of d){if(l.length>=pn){t(`more than ${pn} totals rows`);break}const g=p,f=Ce(g?.label),m=Ce(g?.amount,40);!f||!m||l.push(g?.emphasis===!0?{label:f,amount:m,emphasis:!0}:{label:f,amount:m})}return l},a=i(o.rows);if(a.length===0&&!o.block_id){t("a totals block without usable rows");continue}const c=i(o.taxRows);n.push({...s,type:"totals",rows:a,...c.length>0?{taxRows:c}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const i=j(o.text);if(!i){t("a callout without text");continue}const a=j(o.title,200);n.push({...s,type:"callout",tone:Wl(o.tone),...a?{title:a}:{},text:i});break}}}return n}function fs(e){return JSON.stringify(e).length}function ps(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function Br(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Gt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(Br).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(Br).join(" | ")} |`)]}function Hl(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Gt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Gt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=`![${e.alt??""}](${e.url})`;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Gt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function Bn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=Hl(o);s.length>0&&n.push(s.join(`
4
4
  `))}return`${n.join(`
5
5
 
6
6
  `)}
7
- `}const Tn=e=>`user:${e}`,kn=e=>`team:${e}`;function Wu(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Tn(n.id)),n.kind==="team"&&t.add(kn(n.id)));return[...t].sort()}function Vu(e,t){return[Tn(e),...t.map(kn)]}function Hu(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const Po=["done","escalated"],qu=["open","waiting"];function Yu(e){return Po.includes(e)}const Lo="assignment";function zu(e){return`${Lo}:${e}`}function Xu(e,t,n,r){if(e.direction==="inbound")return!0;if(e.author?.type==="user"&&e.author.id===t)return!1;const o=e.payload?.mentions;return Array.isArray(o)&&o.includes(t)||r&&r===t?!0:n==="reply"}function Qu(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function Zu(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const $o=12;function Ju(e,t,n=$o){const r=t+1;return e?e.kind==="done"?{status:"done",waitingOn:null,turns:r,reason:e.note}:e.kind==="escalate"?{status:"escalated",waitingOn:null,turns:r,reason:e.reason}:r>=n?{status:"escalated",waitingOn:null,turns:r,reason:`na ${n} beurten nog niet afgerond, dus een mens neemt het over`}:{status:"waiting",waitingOn:e.on,turns:r}:{status:"escalated",waitingOn:null,turns:r,reason:"de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"}}const Ko=2;function el(e,t,n,r){if(t===n)return"een agent schakelt zichzelf niet in";if(!r?.includes(t))return"deze agent staat niet in de lijst die je mag inschakelen";const o=e??[];if(o.includes(t))return"die agent zit al in deze keten; dat zou een kringetje worden";const s=Math.max(0,o.length-1);return s>=Ko?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Er=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),Sr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function tl(e,t){const n=e.amountCents>0,r=Math.abs(e.amountCents),o=n?"sales_invoice":"receipt",s=t.documents.filter(h=>h.kind===o&&h.openCents>0),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(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&amp;/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"?`
7
+ `}const Fn=e=>`user:${e}`,jn=e=>`team:${e}`;function Yl(e){const t=new Set;for(const n of e??[])n?.id&&(n.kind==="user"&&t.add(Fn(n.id)),n.kind==="team"&&t.add(jn(n.id)));return[...t].sort()}function zl(e,t){return[Fn(e),...t.map(jn)]}function Xl(e){const t=new Set;for(const n of e??[])n?.kind&&t.add(n.kind);return[...t]}const ms=["done","escalated"],Ql=["open","waiting"];function Zl(e){return ms.includes(e)}const gs="assignment";function Jl(e){return`${gs}:${e}`}function ed(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 td(e){const{targetAuthorId:t,reactorId:n,agentId:r,on:o}=e;return!o||!t||t!==r?!1:n!==r}function nd(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}const hs=12;function rd(e,t,n=hs){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 ys=2;function od(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>=ys?`er zijn al ${s} agents ingeschakeld voor deze vraag; dieper delegeren mag niet`:null}const Fr=e=>e.replace(/[\s.\-/]+/g,"").toUpperCase(),jr=(e,t)=>Math.abs(Date.parse(`${e}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5;function sd(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=Fr(`${e.description} ${e.endToEndId??""}`),a=h=>h.kind==="sales_invoice"?{kind:"sales_invoice",transactionId:h.id,sourceApp:h.sourceApp??"sales"}:{kind:"receipt",receiptId:h.id},c=s.filter(h=>h.number&&i.includes(Fr(h.number))),u=c.find(h=>h.openCents===r);if(u)return{target:a(u),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:u.label};if(c.length===1&&c[0]){const h=c[0];return{target:a(h),via:"exact",confidence:"medium",reasons:["invoice_number"],label:h.label}}const d=e.counterpartyIban;if(d){const h=s.filter(y=>y.ibans.includes(d)&&y.openCents===r);if(h.length===1&&h[0]){const y=h[0];return{target:a(y),via:"exact",confidence:"high",reasons:["iban","amount"],label:y.label}}}const l=(t.scheduled??[]).filter(h=>h.expectedBankCents===e.amountCents),p=d?l.filter(h=>h.ibans.includes(d)):[],g=l.filter(h=>jr(h.dueOn,e.date)<=7),f=p.length===1?p[0]:g.length===1?g[0]:void 0;if(f)return{target:{kind:"scheduled_posting",scheduledPostingId:f.id},via:"exact",confidence:p.length===1?"high":"medium",reasons:p.length===1?["iban","amount"]:["amount","date_window"],label:f.label};if(d&&t.ownIbans.some(h=>h.iban===d&&h.bankAccountId!==e.bankAccountId)){const h=t.otherLines.find(y=>y.state==="unmatched"&&y.bankAccountId!==e.bankAccountId&&y.amountCents===-e.amountCents&&jr(y.date,e.date)<=3);if(h)return{target:{kind:"transfer",bankLineId:h.id},via:"exact",confidence:"high",reasons:["own_account","amount"]}}const m=e.description.toLowerCase(),_=[...t.rules].sort((h,y)=>h.order-y.order).find(h=>{const y=h.when;return y.bankAccountId&&y.bankAccountId!==e.bankAccountId||y.counterpartyIban&&y.counterpartyIban!==d||y.direction&&y.direction!==(n?"in":"out")||y.descriptionContains&&!m.includes(y.descriptionContains.toLowerCase())?!1:!!(y.counterpartyIban||y.descriptionContains)});if(_)return{target:_.action.financingItemId?{kind:"financing",financingItemId:_.action.financingItemId}:{kind:"account",accountId:_.action.accountId,..._.action.taxCode?{taxCode:_.action.taxCode}:{},..._.action.description?{description:_.action.description}:{}},via:"rule",confidence:_.confidence,ruleId:_.id,reasons:["rule"],label:_.name}}const id=e=>e.reduce((t,n)=>n>t?n:t,"");function bs(e,t){return t?e.on>t?!1:e.status==="active"||new Date(e.reversal?.at??0).toISOString().slice(0,10)>t:e.status==="active"}function ad(e,t,n,r){const[o,s]=[e.slice(0,3),e.slice(3)],i=o==="jl:"?"journal_line":"bank_line",a=n.filter(c=>bs(c,r)).flatMap(c=>c.allocations).filter(c=>c.item.kind===i&&c.item.id===s).reduce((c,u)=>c+u.amountCents,0);return t-a}function cd(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function ud(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 _s=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&amp;/g,"&").trim();function Q(e,t){const n=[],r=new RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,"g");for(let o=r.exec(e);o;o=r.exec(e))n.push(o[1]??"");return n}function N(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:Q(n,r)[0];return n===void 0?void 0:_s(n)}const at=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},qr=e=>e?.slice(0,10),ld=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Is(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=Q(t,"Stmt")[0]??t,r=N(n,"Id")??"stmt",o=d=>{const l=Q(n,"Bal").find(g=>N(g,"Cd")===d);if(!l)return;const p=at(N(l,"Amt"));if(p!==void 0)return{cents:N(l,"CdtDbtInd")==="DBIT"?-p:p,date:ld(l)}},s=o("OPBD")??o("PRCD"),i=o("CLBD"),a=Q(n,"Ntry").flatMap((d,l)=>{if((N(d,"Sts","Cd")??N(d,"Sts"))==="PDNG")return[];const p=at(N(d,"Amt"));if(p===void 0)return[];const g=N(d,"CdtDbtInd")==="DBIT",f=Q(d,"TxDtls")[0]??d,m=g?"Cdtr":"Dbtr",_=N(f,"RltdPties",m,"Nm")??N(f,"RltdPties",m,"Pty","Nm"),h=N(f,"RltdPties",`${m}Acct`,"Id","IBAN"),y=[...Q(f,"Ustrd").map(_s),N(d,"AddtlNtryInf")].filter(Boolean),b=N(f,"Refs","EndToEndId"),I=qr(N(d,"BookgDt","Dt")??N(d,"BookgDt","DtTm"))??"",v=qr(N(d,"ValDt","Dt")??N(d,"ValDt","DtTm")),T=N(d,"AcctSvcrRef")??N(d,"NtryRef");return[{date:I,...v?{valueDate:v}:{},amountCents:g?-p:p,currency:/Ccy="([A-Z]{3})"/.exec(d)?.[1]??"EUR",..._?{counterpartyName:_}:{},...h?{counterpartyIban:h.replace(/\s+/g,"").toUpperCase()}:{},description:y.join(" ").replace(/\s+/g," ").trim(),...b&&b!=="NOTPROVIDED"?{endToEndId:b}:{},dedupeKey:T?`ref:${T}`:`seq:${r}:${l+1}`}]}),c=a.map(d=>d.date).filter(Boolean).sort(),u=N(n,"Acct","Id","IBAN");return{format:"camt053",...u?{iban:u.replace(/\s+/g,"").toUpperCase()}:{},...N(n,"Acct","Ccy")?{currency:N(n,"Acct","Ccy")}:{},from:N(n,"FrToDt","FrDtTm")?.slice(0,10)??s?.date??c[0]??"",to:N(n,"FrToDt","ToDtTm")?.slice(0,10)??i?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}const Es=e=>`20${e.slice(0,2)}-${e.slice(2,4)}-${e.slice(4,6)}`;function Gr(e){const t=e&&/^([CD])(\d{6})([A-Z]{3})([\d,]+)/.exec(e.trim());if(!t)return;const n=at(t[4])??0;return{cents:t[1]==="D"?-n:n,date:Es(t[2]??""),currency:t[3]}}const dd=["TRTP","IBAN","BIC","NAME","REMI","EREF","ORDP","BENM","MARF","CSID","PREF","RTRN"];function fd(e){const t=e.replace(/\r?\n/g,""),n=new RegExp("/("+dd.join("|")+")/","g"),r=[...t.matchAll(n)];if(!r.length)return{description:t.trim()};const o={};r.forEach((i,a)=>{const c=(i.index??0)+i[0].length,u=r[a+1]?.index??t.length;o[i[1]??""]=t.slice(c,u).replace(/\/$/,"").trim()});const s=(o.REMI??"").replace(/^(?:USTD|STRD)\/+(?:[A-Z]+\/+)*/,"").trim();return{...o.NAME?{counterpartyName:o.NAME}:{},...o.IBAN?{counterpartyIban:o.IBAN.replace(/\s+/g,"").toUpperCase()}:{},...o.EREF&&o.EREF!=="NOTPROVIDED"?{endToEndId:o.EREF}:{},description:s||t.trim()}}function Ss(e){const t=e.replace(/\r\n/g,`
8
+ `),n=[];for(const d of t.split(/\n(?=:\d{2}[A-Z]?:)/)){const l=/^:(\d{2}[A-Z]?):([\s\S]*)$/.exec(d.trim());l&&n.push({tag:l[1]??"",value:(l[2]??"").replace(/\n-}?$/,"").trim()})}let r,o="0",s,i;const a=[];let c=0;for(const{tag:d,value:l}of n)if(d==="25")r=l.split("/")[0]?.replace(/\s+/g,"").toUpperCase();else if(d==="28C")o=l,c=0;else if(d==="60F"||d==="60M")s??=Gr(l);else if(d==="62F"||d==="62M")i=Gr(l);else if(d==="61"){const p=l.split(`
9
+ `)[0]??"",g=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(p);if(!g)continue;c++;const f=at(g[4])??0,m=g[3]==="C"||g[3]==="RD",_=Es(g[1]??""),h=g[2]?`${_.slice(0,4)}-${g[2].slice(0,2)}-${g[2].slice(2,4)}`:_,y=g[6]??g[5]?.trim();a.push({date:h,valueDate:_,amountCents:m?f:-f,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${c}`})}else if(d==="86"){const p=a.at(-1);p&&!p.description&&Object.assign(p,fd(l))}const u=a.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??u[0]??"",to:i?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...i?{closingCents:i.cents}:{},lines:a}}function pd(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Is(e):Ss(e)}const md=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id,Tt=e=>e.invoiceTo?.companyId||e.companyId;function Ae(e){const t=e??{},n={};for(const r of qn){const o=t[r];typeof o=="string"&&o.trim()&&(n[r]=o.trim())}return Object.keys(n).length?n:void 0}const qn=["costCenterId","costUnitId","projectId","customerCompanyId"],gd=864e5,Vr=e=>new Date(e).toISOString().slice(0,10);function hd(e,t){if(!t.length)return e;const n=new Map;for(const m of t){const _=m.target.kind==="contract_line"?{from:Vr(m.target.period.from),to:Vr(m.target.period.to-gd)}:void 0,h={...Ae({...m.dimensions,...m.customerCompanyId?{customerCompanyId:m.customerCompanyId}:{}}),..._&&!e.period?{period:_}:{}},y=JSON.stringify(h),b=n.get(y);n.set(y,{share:h,cents:(b?.cents??0)+m.amountCents})}const r=t[0],o={...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.use?{use:r.use}:{}},{allocations:s,...i}=e,a=[...n.values()];if(a.length===1)return{...i,...o,...a[0].share};const c=de(e.netCents,a.map(m=>m.cents)),u=de(e.taxCents,c),{costCenterId:d,costUnitId:l,projectId:p,customerCompanyId:g,...f}=i;return{...f,...o,allocations:a.map(({share:m},_)=>({...m,netCents:c[_],taxCents:u[_]}))}}function yd(e){if(!e.allocations?.length)return[e];const{allocations:t,...n}=e;return t.map(({period:r,...o})=>({...n,...o,...r&&!n.period?{period:r}:{}}))}function bd(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 As(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 _d="receipt",Id="book";function vs(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 Ed(e){if(e.status!=="to_check")return null;const t=vs(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.duplicateOf||e.match&&!e.match.verdict.ok?"check":"confirm"}function Cs(e,t=""){const n=new Map;for(const r of e.flatMap(yd)){const o=[r.accountKey??"",r.ledgerCategoryKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",...qn.map(i=>r[i]??""),r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:i})=>({description:[...new Set(i)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},dimensions:Ae(r),...r.productId?{productId:r.productId}:{},...r.ledgerCategoryKey?{ledgerCategoryKey:r.ledgerCategoryKey}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function Sd(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:Cs(e.lines,n.supplierName?.value??""),totals:As(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 Ad(e,t,n){return`${e}:${t}:${n}`}function vd(e){return[1,5,15][e-1]??60}const Cd=10*6e4;function Ts(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 Td="organization.business-entities.list",kd=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Od(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 Md(e,t,n){return n*ks(e,t)}function ks(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 Rd(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 Nd(e,t){return!t.some(n=>n.parentId===e.id)}function Dd(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(c=>c.key).length!==r.length||r.some(c=>!o.find(u=>u.key===c&&u.value.trim())))return"variant_options_mismatch";const i=c=>r.map(u=>c?.find(d=>d.key===u)?.value.trim()??"").join("\0"),a=i(o);return n.some(c=>c.id!==t.id&&i(c.options)===a)?"variant_options_duplicate":null}function xd(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function wd(e,t){return Fo(e.cents,e.per??t,t)}function kt(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return Pd(n.slice(0,13))===Number(n[13])?n:void 0}function Pd(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 Ld(e,t){const n=t.trim(),r=kt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Kd=[{key:"customer",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Os(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 Kd){const i=o.filter(c=>s.matches(c,t));if(i.length===0)continue;const a=i.reduce((c,u)=>{const d=(u.minQuantity??0)-(c.minQuantity??0);return d!==0?d>0?u:c:(u.validFrom??0)>=(c.validFrom??0)?u:c});return{rule:a,sourceKey:(a.minQuantity??0)>1?"tier":s.key}}return null}function Ms(e,t,n){const r=Os(e,t,n,i=>!i.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:mn}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:mn};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:Ud(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function $d(e,t,n){const r=Os(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 Ud(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?U(t*(1-e.discountPercent/100)):t}const Rs="manual",mn="missing";function Bd(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===Rs||o.usage)return o;const s=t.find(l=>l.id===o.productId);if(!s)return o;const i=o.factor??1,a=Ms(s,{...r,quantity:o.quantity*i},n),c=a.unitPriceCents==null?0:a.unitPriceCents*i;if(c===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:u,...d}=o;return{...d,unitPriceCents:c,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function Gn(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function Fd(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function gn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=Gn(e);return n===void 0?void 0:{kind:"flat",micros:n}}function jd(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",i=t.dimensions,a=t.display.per>1,c=1+i.length+1;return o.forEach((u,d)=>{const l=d+1;if(!u.trim())return;const p=u.split(s).map(O=>O.trim());if(d===0&&!gn(p[c]??""))return;const g=p[0]??"",f={};i.forEach((O,E)=>{const M=p[1+E]??"";if(!M)return;const B=/^[+\d\s-]+$/.test(M)?M.replace(/\D/g,"").replace(/^00/,""):M;f[O.key]=O.match==="prefix"?{prefix:B}:{equals:M}});const m=p[1+i.length]??"",_=m===""?0:Gn(m),h=gn(p[c]??""),[y,b]=a?(p[c+1]||"1/1").split("/").map(Number):[1,1],I=a?p[c+2]??"":"",v=I===""?0:Number(I),T=g?_===void 0||!h?"price":!(y>0)||!((b??y)>0)||!Number.isFinite(v)?"increment":null:"label";if(T){r.push({line:l,message:T});return}n.push({label:g,match:f,setupMicros:_,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:b??y,minimum:v})}),{rates:n,errors:r}}const ct=1e4;function Ns(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 Ds(e){return e.replace(/\D/g,"").replace(/^00/,"")}function qd(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Ds(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Wr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function xs(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,i])=>qd(i,e.dimensions[s]))&&(!n||Wr(r)>Wr(n))&&(n=r);return n}function ws(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 Ps(e,t,n){const r=t.tiers;if(t.mode==="volume"){const a=r.find(c=>c.upTo===void 0||e<=c.upTo)??r.at(-1);return a?{micros:U(e*a.micros/n),bands:[{quantity:e,micros:a.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,i=0;for(const a of r){if(e<=s)break;const c=a.upTo===void 0?e:Math.min(e,a.upTo),u=c-s;u>0&&(o.push({quantity:u,micros:a.micros}),i+=u*a.micros/n),s=c}return{micros:U(i),bands:o}}function Gd(e,t,n="sum"){const r=[],o=new Map;for(const i of e){if(i.quantity<=0)continue;const a=xs(i,t);if(!a||a.price.kind==="markup"&&i.costMicros==null){r.push(i);continue}const c=o.get(a.id)??{rate:a,billed:[],ids:[],costMicros:0};c.ids.push(i.id),c.billed.push({quantity:ws(i.quantity,a),occurredAt:i.occurredAt}),c.costMicros+=i.costMicros??0,o.set(a.id,c)}return{groups:[...o.values()].map(({rate:i,billed:a,ids:c,costMicros:u})=>{const d=Ns(a,n),l=Math.min(i.included??0,d),p=d-l,g=i.setupMicros*a.length;let f,m;i.price.kind==="flat"?f=U(p*i.price.micros/i.unitSize):i.price.kind==="tiered"?{micros:f,bands:m}=Ps(p,i.price,i.unitSize):f=U(u*(1+i.price.percent/100));const _=f+g;return{rateId:i.id,label:i.label,records:a.length,recordIds:c,measured:d,included:l,billed:p,micros:_,cents:U(_/ct),...m?{bands:m}:{}}}),unrated:r}}function Vd(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/ct))return r;const s=o/ct,i=Math.round(e.billed/n.per*1e4)/1e4;return U(i*s)===e.cents?{quantity:i,unitKey:n.unit,unitPriceCents:s}:r}function Vn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Wd(e,t,n,r){const{unitKey:o,id:s,organizationId:i,productId:a,businessEntityId:c,updatedAt:u,...d}=n??{};return{...e,...d,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function Hd(e){return!e.archived&&e.sellable!==!1}function Yd(e){return!e.archived&&e.purchasable===!0}const zd=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Xd=new Set(["hour","day","month","km","minute","kg","ton","m","m2","m3","liter"]),Qd=e=>Xd.has(e),Zd="usage-source",Jd="/usage/records";function Ls(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 ef(e){return{...e,meters:(e.meters??[]).map(t=>Ls(t)),accounts:e.accounts??[]}}const tf=new Set(["mail","message"]);function Ks(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function nf(e,t,n,r="html"){if(!e)return n;const o=Ks(e,t);return o?`${n}${r==="text"?`
10
10
 
11
- `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const Xl=["billing","delivery","site","visit"];function Ql(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function rs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Zl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Jl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=rs(n);r&&!t.includes(r)&&t.push(r)}return t}const ed=["customer","supplier"],td=e=>e==="customer"?"sales":"purchase";function nd(e){return e.endpoints??[]}const rd=["lead","opportunity","customer","former"],od=["new","working","unqualified"];function sd(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const os=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],ss=["openDeal","hasContacts"],id={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},ad=["updatedAt","createdAt","name"],cd=["list"];function ud(e){return e.search?.trim()||e.createdWithinDays||ss.some(t=>e[t])||os.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const is="CRM_NOTE_ADDED",ld="crm_activity",as="CRM_CALL_LOGGED",dd="CRM_STAGE_CHANGED",fd=["phone","meeting","video"],pd=["callback","interested","no_answer","not_interested"],md=e=>e===is||e===as,gd=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function hd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function yd(e,t,n,r){const o=e.filter(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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),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},
11
+ `:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const rf=["billing","delivery","site","visit"];function of(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 $s(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function sf(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function af(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=$s(n);r&&!t.includes(r)&&t.push(r)}return t}const cf=["customer","supplier"],uf=e=>e==="customer"?"sales":"purchase";function lf(e){return e.endpoints??[]}const df=["lead","opportunity","customer","former"],ff=["new","working","unqualified"];function pf(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const Us=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],Bs=["openDeal","hasContacts"],mf={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},gf=["updatedAt","createdAt","name"],hf=["list"];function yf(e){return e.search?.trim()||e.createdWithinDays||Bs.some(t=>e[t])||Us.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Fs="CRM_NOTE_ADDED",bf="crm_activity",js="CRM_CALL_LOGGED",_f="CRM_STAGE_CHANGED",If=["phone","meeting","video"],Ef=["callback","interested","no_answer","not_interested"],Sf=e=>e===Fs||e===js,Af=e=>e.payload.call?.at??e.createdAt??0;function ue(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function vf(e){return ue(e.contactLocale)??ue(e.companyLocale)??ue(e.organizationLocale)}function Cf(e,t,n,r){const o=e.filter(a=>a.key===t&&!a.archived);if(o.length===0)return;const s=ue(n),i=ue(r);return o.find(a=>ue(a.locale)===s)??o.find(a=>ue(a.locale)===i)??o.find(a=>!a.locale)??o[0]}const Tf=/\{([a-zA-Z0-9_.]+)\}/g;function Wn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function kf(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function qs(e,t,n){const r=[];return{text:e.replace(Tf,(s,i)=>{const a=Wn(t,i);return a==null||a===""?(r.includes(i)||r.push(i),n??`{${i}}`):kf(a)}),unresolved:r}}function Gs(e,t){if(!e)return!0;const n=Wn(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 Of(e,t,n,r,o){const s=[],i=[],a=new Set,c=u=>{const d=qs(u,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const u of e){if(u.block_id&&!Gs(n?.[u.block_id],t))continue;const d=u.block_id?r?.[u.block_id]:void 0;if(d&&u.block_id){a.add(u.block_id),i.push(...d);continue}switch(u.type){case"heading":case"paragraph":case"quote":i.push({...u,text:c(u.text)});break;case"callout":i.push({...u,...u.title?{title:c(u.title)}:{},text:c(u.text)});break;case"code":i.push(u);break;case"list":i.push({...u,items:u.items.map(l=>({...l.lead?{lead:c(l.lead)}:{},text:c(l.text)}))});break;case"table":i.push({...u,columns:u.columns.map(l=>({...l,label:c(l.label)})),rows:u.rows.map(l=>l.map(c)),...u.caption?{caption:c(u.caption)}:{}});break;case"kpi":i.push({...u,items:u.items.map(l=>({...l,value:c(l.value),label:c(l.label)}))});break;case"letterhead":i.push({...u,fields:u.fields.map(l=>({...l,value:c(l.value)})),...u.recipient?{recipient:u.recipient.map(c)}:{}});break;case"totals":i.push({...u,rows:u.rows.map(l=>({...l,label:c(l.label),amount:c(l.amount)})),...u.taxRows?{taxRows:u.taxRows.map(l=>({...l,label:c(l.label),amount:c(l.amount)}))}:{}});break;case"image":i.push({...u,url:c(u.url),...u.alt?{alt:c(u.alt)}:{}});break;default:i.push(u)}}return{blocks:i,unresolved:s,unusedSlots:Object.keys(r??{}).filter(u=>!a.has(u))}}function Vs(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 Mf(e){return Vs({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 Ws(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 Rf(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Nf(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 Ws(e,t,s,o)}const Vt=864e5,ut=e=>Date.parse([e,"T00:00:00Z"].join("")),Df=e=>new Date(e).toISOString().slice(0,10);function Hs(e,t){const n=ut(t.from),r=ut(t.to)+Vt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let i=new Date(n);;){const a=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);if(a>=r)break;const c=Date.UTC(i.getUTCFullYear(),i.getUTCMonth()+1,1),u=Math.round((Math.min(c,r)-Math.max(a,n))/Vt);o.push({month:Df(a),share:u/Math.round((c-a)/Vt)}),i=new Date(c)}const s=de(e,o.map(i=>i.share));return o.map((i,a)=>({month:i.month,cents:s[a]}))}function Ys(e){const t=new Date(ut(e.from)),n=new Date(ut(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Hn=864e5,Ot=e=>new Date(e).toISOString().slice(0,10),lt=e=>Date.parse(`${e}T00:00:00Z`);function fe(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),i=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,i)),Ot(s.getTime())}function Yn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let i=r;for(let a=1;a<=t;a++){const c=Math.round(i*n);let u=e.method==="annuity"?Math.round(o)-c:e.method==="linear"?Math.round(r/t):0;a===t&&(u=i),u=Math.min(u,i),i-=u,s.push({sequence:a,dueOn:fe(e.firstDueOn,a-1),interestCents:c,principalCents:u,remainingCents:i})}return s}function xf(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((u,d)=>u.date.localeCompare(d.date));let i=s.filter(u=>u.date<t).reduce((u,d)=>u+d.cents,0),a=s.findIndex(u=>u.date>=t);a<0&&(a=s.length);let c=0;for(let u=lt(t);u<=lt(n);u+=Hn){const d=Ot(u);for(;a<s.length&&(s[a]?.date??"")<=d;)i+=s[a]?.cents??0,a++;c+=i*o}return Math.round(c)}function wf(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),i=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,a=[];let c=`${o}-${String(i).padStart(2,"0")}-01`;for(let u=1;c<=t&&u<400;u++){const d=fe(c,r);a.push({sequence:u,from:c<e?e:c,to:Ot(lt(d)-Hn)}),c=d}return a}const zs=5e7,Pf=["director","group_company","participation","other_company"],Lf=e=>e?.relation&&Pf.includes(e.relation)?e.relation:"director";function Kf(e,t=zs){return{over:e>t,ratio:Math.max(0,e)/t}}function $f(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Yn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function Xs(e){return{...e.counterpartyCompanyId?{counterpartyCompanyId:e.counterpartyCompanyId}:{},...Ae(e.dimensions)}}function Qs(e){return Ot(lt(fe(`${e.slice(0,7)}-01`,1))-Hn)}function zn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function Zs(e,t,n,r,o,s,i=1){return t.map((a,c)=>({cents:a,sequence:i+c,dueOn:Qs(fe(n,c))})).filter(a=>a.dueOn<=r&&a.cents!==0).map(a=>({financingItemId:e,sequence:a.sequence,dueOn:a.dueOn,lines:o(a.cents,a.sequence),expectedBankCents:0,settlesVia:"direct",label:s(a.sequence)}))}function Xn(e){if(e.restart)return e.restart;if(e.opening)return{fromMonth:fe(`${e.opening.on.slice(0,7)}-01`,1),bookValueCents:e.costCents-e.opening.accumulatedCents,fromSequence:e.opening.monthsDone+1}}const Hr=600;function Js(e){const t=e.method??"linear",n=Xn(e),r=n?.bookValueCents??e.costCents,o=r-e.residualCents;if(t==="none"||o<=0)return[];if(t==="linear"){const u=e.lifeMonths-((n?.fromSequence??1)-1);return zn(o,Math.max(1,u))}const s=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(s>0&&s<1))return[];const i=1-(1-s)**(1/12),a=[];let c=r;for(;c>e.residualCents&&a.length<Hr;){const u=Math.max(1,Math.round(c*i)),d=c-u<=e.residualCents||a.length===Hr-1;a.push(d?c-e.residualCents:u),c-=a[a.length-1]??0}return a}function Uf(e,t){const n=e.terms,r=Xs(e);if(n.disposal)return[];const o=Js(n),s=Xn(n),i=n.method==="declining"?(s?.fromSequence??1)-1+o.length:n.lifeMonths;return Zs(e.id,o,s?.fromMonth??n.acquiredOn,t,(a,c)=>[{...r,accountId:n.depreciationAccountId,amountCents:a,description:e.name},{...r,accountId:n.accumulatedAccountId,amountCents:-a,subAccountId:e.id,description:`Afschrijving ${c}/${i}`}],a=>`Afschrijving ${a}/${i}`,s?.fromSequence??1)}function Bf(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 Ff(e,t){const n=e.terms,r=Xs(e),o=n.direction==="expense"?1:-1;return Zs(e.id,n.period?Hs(n.totalCents,n.period).map(s=>s.cents):zn(n.totalCents,n.months),n.firstMonth,t,(s,i)=>[{...r,accountId:n.resultAccountId,amountCents:o*s,description:e.name},{...r,accountId:e.ledgerAccountId,amountCents:-o*s,subAccountId:e.id,description:`${e.name} ${i}/${n.months}`}],s=>`${s}/${n.months}`)}function jf(e){return e.kind==="fixed_asset"?e.costCents-(e.opening?.accumulatedCents??0):e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function qf(e,t){const n=fe(t,12);return Yn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Gf(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*t.quantity/r),s=o(n.costCents),i=o(n.residualCents),a=o(-t.movementsCents),c=[],u=`${e.name} (${t.quantity}/${r})`;a&&c.push({accountId:n.accumulatedAccountId,amountCents:a,subAccountId:e.id,description:u}),t.proceedsCents&&c.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:u}),c.push({accountId:e.ledgerAccountId,amountCents:-s,description:u});const d=c.reduce((l,p)=>l+p.amountCents,0);return d&&c.push({accountId:t.disposalAccountId,amountCents:-d,description:u}),{lines:c,costCents:s,residualCents:i}}const ei={NL:45e3},Vf=(e,t)=>t??ei[(e??"NL").toUpperCase()],Wf=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}];function ti(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 Hf(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}const ni=e=>e.kind==="product"&&e.quantity>0&&(!e.act||e.unitPriceCents>0);function Yf(e){return e.every(t=>!ni(t)||(t.billedQty??0)>=t.quantity)?"full":"open"}function ri(e,t,n,r=new Map){const o=[];for(const s of e.lines){const i=t.find(l=>l.id===s.poLineId),a=ti(s.poLineId,n);(!i||e.movement==="in"&&a+s.quantity>i.quantity)&&o.push({code:"receipt_over_ordered",poLineId:s.poLineId}),e.movement==="return"&&s.quantity>a&&o.push({code:"receipt_return_over_received",poLineId:s.poLineId});const c=Zn(i??{},s.quantity),u=e.movement==="in"&&i?.productId&&r.get(i.productId);s.serials.length&&s.serials.length!==c?o.push({code:"receipt_serials_count",poLineId:s.poLineId}):!s.serials.length&&u==="serial"&&o.push({code:"receipt_serials_required",poLineId:s.poLineId});const d=(s.batches??[]).reduce((l,p)=>l+p.quantity,0);s.batches?.length&&d!==c?o.push({code:"receipt_batches_count",poLineId:s.poLineId}):!s.batches?.length&&u==="batch"&&o.push({code:"receipt_batches_required",poLineId:s.poLineId})}return o}function zf(e,t){return e.flatMap(n=>{const r=t.find(o=>o.id===n.poLineId)?.productId;return r?n.serials.map(o=>[r,"#",o].join("")):[]})}function Xf(e,t){const n=new Map;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.serialKeys??[])n.set(s,(n.get(s)??0)+o)}return e.filter(r=>(n.get(r)??0)>0)}function Qf(e){return e.map(t=>({line:t,batches:Zf(t.batches)})).map(({line:t,batches:n})=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(r=>String(r).trim()).filter(Boolean))],...n.length?{batches:n}:{},...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Zf(e){return(Array.isArray(e)?e:[]).flatMap(t=>{const n=String(t?.code??"").trim(),r=Number(t?.quantity)||0,o=Number(t?.expiresAt)||0;return n&&r>0?[{code:n,quantity:r,...o?{expiresAt:o}:{}}]:[]})}function Qn(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function oi(e,t){const n=e.filter(r=>Qn(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Zn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function Jf(e,t,n){const r=Math.max(Math.ceil(e/Math.max(1,t??1)),n?.minQty??0),o=n?.lotSize&&n.lotSize>1?n.lotSize:1;return Math.ceil(r/o)*o}function si(e){return{cents:U(e.costCents/Zn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function ii(e){const t=si(e);return t.per?Et(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const pe=["pending","active","suspended","terminating"],le=(e,t)=>[e,t].join(":"),ai=e=>[...new Set((e??[]).map(t=>t.itemId))],ep=(e,t)=>t?[e.productId,"#",e.serial??""].join(""):e.id;function dt(e){return e.kind==="sale"?["sale:",e.agreementId,"#",e.seriesId].join(""):e.kind==="resource"?["resource:",e.itemId,"#",e.role].join(""):["order:",e.orderId,"#",e.lineId,e.serial?`#${e.serial}`:""].join("")}const Jn=["draft","scheduled","queued","waiting"],Mt=["pending","unknown","inquiring"],tp=({perOffer:e,...t})=>t,ci=(e,t,n)=>[e,t,n].join(":");function ui(e,t,n,r,o){const s=e.after.filter(c=>o.find(u=>u.id===c)?.state!=="approved");if(s.length)return{ok:!1,reason:"after",requestIds:s};const i=o.find(c=>c.id!==e.id&&c.itemId===e.itemId&&Mt.includes(c.state));if(i)return{ok:!1,reason:"busy",requestId:i.id};const a=[];for(const c of n.filter(u=>u.for.includes(e.action))){const u=(t.requires??[]).filter(d=>d.role===c.role);if(u.length<c.min)return{ok:!1,reason:"missing_role",role:c.role};if(u.length>c.max)return{ok:!1,reason:"too_many",role:c.role};for(const d of u){const l=r.get(d.itemId);if(!l||l.status!=="active")return{ok:!1,reason:"not_active",role:c.role,itemId:d.itemId};const p=l.provides?.find(g=>g.kind===c.kind);if(!p)return{ok:!1,reason:"wrong_kind",role:c.role,itemId:d.itemId};a.push({role:c.role,itemId:l.id,resource:p})}}return{ok:!0,inputs:a}}function np(e,t,n,r,o){if(!(r!=="activation"||!e.sale||e.activatedAt!=null))return t!=="active"&&n==="active"?o:void 0}function Ee(e,t){return[...t].filter(n=>n.id!==e&&pe.includes(n.status)&&(n.requires??[]).some(r=>r.itemId===e))}function rp(e,t){const n=[...t.values()],r=[],o=[];for(const s of e.requires??[]){const i=t.get(s.itemId);!i||!pe.includes(i.status)||(i.keep?o.push({itemId:i.id,why:"kept"}):Ee(i.id,n).some(a=>a.id!==e.id)?o.push({itemId:i.id,why:"in_use"}):r.push(i.id))}return{release:r,keep:o,impact:Ee(e.id,n).map(s=>s.id)}}function op(e,t,n){const r=Ee(e.id,t).map(o=>o.id);return r.length?{ok:!1,reason:"in_use",users:r}:n&&e.keep?{ok:!1,reason:"kept"}:{ok:!0}}function li(e,t,n){const r=[],o=e.externalKey&&[...n.values()].find(i=>i.id!==e.id&&i.externalKey===e.externalKey&&pe.includes(i.status));o&&e.externalKey&&r.push({code:"duplicate_key",externalKey:e.externalKey,itemId:o.id});for(const i of e.requires??[]){const a=n.get(i.itemId);if(!a){r.push({code:"unknown_item",itemId:i.itemId});continue}a.businessEntityId!==e.businessEntityId&&r.push({code:"wrong_entity",itemId:a.id});const c=t.find(u=>u.role===i.role);c&&!(a.provides??[]).some(u=>u.kind===c.kind)&&a.status!=="pending"&&r.push({code:"wrong_kind",role:i.role,itemId:a.id})}const s=sp(e,n);return s&&r.push({code:"cycle",path:s}),r}function sp(e,t){const n=(r,o)=>{for(const s of r.requires??[]){if(s.itemId===e.id)return[...o,s.itemId];if(o.includes(s.itemId))continue;const i=t.get(s.itemId),a=i&&n(i,[...o,s.itemId]);if(a)return a}};return n(e,[e.id])}function di(e,t){const n=new Set([e.id]),r=[],o=[...t.values()],s=i=>{for(const a of i.requires??[]){if(n.has(a.itemId))continue;n.add(a.itemId);const c=t.get(a.itemId);c&&(r.push({itemId:c.id,role:a.role,supplied:!!c.supply,shared:[...ip(c.id,o)].some(u=>u!==e.id)}),s(c))}};return s(e),r}function ip(e,t){const n=new Set,r=new Set([e]),o=s=>{for(const i of Ee(s,t))r.has(i.id)||(r.add(i.id),i.sale&&n.add(i.id),o(i.id))};return o(e),n}function fi(e,t,n){const r=e.reported?.refundable;if(!r)return{now:!0};const o=r.filter(s=>s.until>n).reduce((s,i)=>s+i.quantity,0);return e.quantity-t<=o?{now:!0}:{now:!1,...e.reported?.termEndsAt?{at:e.reported.termEndsAt}:{}}}const ap=(e,t)=>e.provides?.find(n=>n.kind===t),cp=["scheduled","queued","waiting"],Yr=[1,5,15,60],up=(e,t)=>t+Yr[Math.min(Math.max(e,1),Yr.length)-1]*6e4;function lp(e){if((e.request.submitAt??0)>e.now)return{state:"scheduled"};const t=ui(e.request,e.item,e.needs,e.items,e.requests);return t.ok?{state:"send",inputs:t.inputs}:{state:t.reason==="busy"?"queued":"waiting",why:t}}function dp(e){const{request:t,item:n}=e,r=(n.requires??[]).find(s=>s.role==="account"),o=r?e.items.get(r.itemId)?.at:void 0;return{requestId:t.requestId,offer:t.offer,action:t.action,quantity:t.quantity,...t.toProductId?{toProductId:t.toProductId}:{},...t.supplier?.vendorSku?{vendorSku:t.supplier.vendorSku}:{},...t.supplier?.termMonths?{termMonths:t.supplier.termMonths}:{},params:t.params,...e.inputs.length?{inputs:e.inputs}:{},...n.at?.externalRef?{externalRef:n.at.externalRef}:{},...o?{parent:{...o.externalRef?{externalRef:o.externalRef}:{},...o.fulfillment?{fulfillment:o.fulfillment}:{}}}:{},customer:{companyId:n.customerCompanyId},...t.effectiveAt?{effectiveAt:t.effectiveAt}:{},at:e.now}}function fp(e,t){const n=t?.recovery?.[e];return n==="idempotent"?"resend":n==="lookup_by_ref"?"status":n==="lookup_by_listing"?"listing":"person"}function pp(e,t,n,r){if(n.state!=="approved")return{};const o={...e.at??{},app:t.app,offer:t.offer,...n.externalRef?{externalRef:n.externalRef}:{},...n.fulfillment?{fulfillment:{...e.at?.fulfillment??{},...n.fulfillment}}:{}},s=n.quantity??t.quantity,i={at:o,...o.externalRef?{externalKey:le(o.app,o.externalRef)}:{},...n.resources?{provides:n.resources}:{},updatedAt:r};switch(t.action){case"purchase":return{...i,status:"active",quantity:s,...e.activatedAt==null?{activatedAt:r}:{}};case"change":return{...i,quantity:s};case"convert":return{...i,productId:t.toProductId??e.productId,quantity:s};case"suspend":return{...i,status:"suspended"};case"resume":return{...i,status:"active"};case"cancel":{const a=t.effectiveAt??r;return{...i,status:a>r?"terminating":"terminated",endedAt:a}}case"renew":return i}}function mp(e,t,n){const r=t.find(i=>i.requestRef===e.requestId);if(r)return{state:"found",subscription:r};const o=e.sent?.quantity??e.quantity,s=t.filter(i=>i.offer===e.offer&&i.status!=="ended"&&i.quantity===o&&!n.has(i.externalRef));return s.length===1?{state:"found",subscription:s[0]}:s.length?{state:"ambiguous",count:s.length,candidates:s}:{state:"none"}}function pi(e,t){return{quantity:e.quantity,status:e.status,...e.termEndsAt?{termEndsAt:e.termEndsAt}:{},...e.autoRenew!=null?{autoRenew:e.autoRenew}:{},...e.refundable?{refundable:e.refundable}:{},...e.scheduled?{scheduled:e.scheduled}:{},at:t}}const hn=e=>e.seriesId??e.id;function gp(e,t,n){return t.find(r=>{const o=W(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>W(e,r).from>n).sort((r,o)=>W(e,r).from-W(e,o).from)[0]??t[t.length-1]}function mi(e){const t=new Map;for(const n of e)t.set(hn(n),[...t.get(hn(n))??[],n]);return t}const hp=864e5;function yp(e,t,n,r){if(e.reported?.refundable||!n)return fi(e,t,r);const o=n.commitment;if(!o||o.termMonths<1)return{now:!0};const s=n.changeWindowDays??0;return s>0&&r<Kn(n.start,o,r)+s*hp?{now:!0}:{now:!1,at:re(n.start,o,r)}}function bp(e,t){const n=t.filter(r=>Mt.includes(r.state)).sort((r,o)=>o.updatedAt-r.updatedAt)[0];if(n)return{productId:n.toProductId??n.productId,quantity:n.action==="cancel"?0:n.quantity};if(!(!e||e.status==="pending"))return{productId:e.productId,quantity:pe.includes(e.status)?e.quantity:0}}const _p=new Set(["purchase","change","convert","cancel"]),Ip=(e,t)=>e.action===t.action&&e.productId===t.productId&&e.quantity===t.quantity&&(e.toProductId??"")===(t.toProductId??"")&&(e.effectiveAt??0)===(t.effectiveAt??0);function Ep(e){const{agreement:t,item:n,now:r,supply:o}=e,s=(mi(t.lines).get(e.seriesId)??[]).map(I=>({line:I,term:W(t,I)})).sort((I,v)=>I.term.from-v.term.from);if(!s.length)return{supersede:[]};const i=e.requests.filter(I=>I.itemId===n?.id&&I.state!=="superseded"),a=i.filter(I=>Jn.includes(I.state)&&_p.has(I.action)),c=bp(n,i),u=s.findIndex(I=>I.term.from<=r&&(I.term.to==null||I.term.to>r)),d=u>=0?s[u]:void 0,l=s.find(I=>I.term.from>r),p=s[s.length-1],g=t.status==="ended"||!l&&(d==null||p.term.to!=null&&p.term.to<=r),f=I=>I&&I.line.quantity.from==="fixed"?I:void 0;let m,_;const h=(I,v)=>{const T=v!=null&&v>r?v:void 0,O=I.line.quantity.from==="fixed"?I.line.quantity.value:0;if(!c)return{action:"purchase",productId:I.line.productId,quantity:O,...T?{effectiveAt:T}:{}};if(c.productId!==I.line.productId)return{action:"convert",productId:c.productId,toProductId:I.line.productId,quantity:O,previousQuantity:c.quantity,...T?{effectiveAt:T}:{}};if(c.quantity!==O){if(O<c.quantity&&n){const E=yp(n,O,o,r);if(!E.now&&E.at==null){_={reason:"decrease_window_unknown",quantity:O};return}const M=E.now?T:Math.max(E.at??0,T??0);return{action:"change",productId:c.productId,quantity:O,previousQuantity:c.quantity,...M?{effectiveAt:M,submitAt:M}:{},...E.now?{}:{notice:{atRenewal:!0}}}}return{action:"change",productId:c.productId,quantity:O,previousQuantity:c.quantity,...T?{effectiveAt:T,submitAt:T}:{}}}},y=I=>{if(!o)return I?{effectiveAt:I}:{};const v=I??r,T=Qo(o.start,o.commitment,v,r),O={...T.deadline!=null?{deadline:T.deadline}:{},...T.nextTerm?{nextTerm:!0}:{},...T.endsAt>v?{runsOnUntil:T.endsAt}:{}};return{effectiveAt:T.endsAt,...Object.keys(O).length?{notice:O}:{}}};if(g)c&&c.quantity>0&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)});else{const I=f(d);if(m=I?h(I,I.term.from):void 0,!m&&!_){const v=f(l);v&&(c||!I)?m=h(v,v.term.from):!v&&c&&c.quantity>0&&p.term.to!=null&&d===p&&(m={action:"cancel",productId:c.productId,quantity:0,...y(p.term.to)})}}if(_)return{supersede:[],blocked:_};if(!m)return{supersede:a.map(I=>I.id)};const b=a.find(I=>Ip(m,I));return{...b?{}:{target:m},supersede:a.filter(I=>I!==b).map(I=>I.id)}}function yn(e){const t=ci(e.item.id,e.target.action,e.revision);return{id:t,organizationId:e.item.organizationId,businessEntityId:e.item.businessEntityId,itemId:e.item.id,requestId:t,...e.target,app:e.at.app,offer:e.at.offer,params:{...e.answers?.params},...e.answers?.qualificationId?{qualificationId:e.answers.qualificationId}:{},after:e.after??[],basedOn:{source:e.item.id,revision:e.revision},state:"draft",requestedBy:e.requestedBy,attempts:0,updatedAt:e.now}}const bn=new Set(["phone_number","device"]),gi=e=>!!e&&((e.provides??[]).some(t=>bn.has(t.kind))||(e.needs??[]).some(t=>t.for.includes("purchase")&&bn.has(t.kind)));function hi(e){return e?e.needs?.length?e.needs:e.requires?[{role:"account",kind:"account",min:1,max:1,for:["purchase","change"]}]:[]:[]}function Sp(e){const{item:t,now:n}=e,r=[...e.items.values()],o=[...t.requires??[]],s=[],i=[],a=[],c=[],u=(d,l,p,g)=>yn({item:d,at:l,target:p,after:g,revision:e.revision,requestedBy:e.requestedBy,now:n});for(const d of e.needs.filter(l=>l.for.includes(e.target.action))){let l=o.filter(g=>g.role===d.role).length;const p=e.sourceFor(d);for(;l<d.min;){if(!p){a.push(d.role);break}const g=r.find(f=>f.customerCompanyId===t.customerCompanyId&&pe.includes(f.status)&&f.at?.app===p.app&&f.at?.offer===p.offer&&!o.some(m=>m.itemId===f.id)&&(!bn.has(d.kind)||Ee(f.id,r).length===0));if(g){if(o.push({role:d.role,itemId:g.id}),g.status==="pending"){const f=e.requests.find(_=>_.itemId===g.id&&_.action==="purchase"&&_.state!=="superseded"),m=f??u(g,{app:p.app,offer:p.offer},{action:"purchase",productId:g.productId,quantity:1},[]);f||i.push(m),c.push(m.id)}}else{const f=dt({kind:"resource",itemId:t.id,role:l?`${d.role}.${l}`:d.role}),m={id:f,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:t.customerCompanyId,productId:p.productId,status:"pending",quantity:1,at:{app:p.app,offer:p.offer},since:n,updatedAt:n};s.push(m),o.push({role:d.role,itemId:f});const _=u(m,p,{action:"purchase",productId:p.productId,quantity:1},[]);i.push(_),c.push(_.id)}l++}}return i.push(yn({item:t,at:{app:e.app,offer:e.offer},target:e.target,after:c,...e.answers?{answers:e.answers}:{},revision:e.revision,requestedBy:e.requestedBy,now:n})),{requires:o,newItems:s,requests:i,unsourced:a}}const Ap=e=>["adopt",e].join(":"),vp=e=>e.startsWith("adopt:"),zr=e=>["adopted:",e].join(""),Xr=e=>e.level==="account"?0:e.under||e.uses?.length?2:1;function Cp(e,t){const n=t.items.filter(f=>pe.includes(f.status)),r=new Map(n.flatMap(f=>f.externalKey?[[f.externalKey,f]]:[])),o=new Map(n.map(f=>[f.id,f])),s=new Map,i=new Set,a=new Set,c=new Set(e.flatMap(f=>(f.uses??[]).map(m=>[m.kind,m.value].join("|")))),u=t.offers.filter(f=>f.businessEntityId===t.businessEntityId),d=f=>{const m=u.filter(h=>h.provider?.app===f.app&&h.provider.offer===f.offer),_=u.filter(h=>!!h.vendorSku&&h.vendorSku===f.offer);return oi(m.length?m:_,t.now)},l=f=>{const m=d(f),_=m?.provider?.app??f.app,h=le(_,f.externalRef),y=r.get(h);if(y)return{key:h,row:f,state:"known",knownItemId:y.id,problems:[]};if(i.has(h)){const R=s.get(h),K={code:"duplicate_key",externalKey:h,itemId:R?.id??h};return{key:h,row:f,state:"blocked",problems:[K]}}if(i.add(h),f.status==="ended")return{key:h,row:f,state:"ended",problems:[]};const b=le(f.app,f.account.ref),I=t.customers.get(b)??[],v=f.customerCompanyId??t.chosen?.[b]??(I.length===1?I[0].id:void 0),T={...v?{companyId:v}:{},create:!v&&I.length===0,candidates:I};if(!m)return{key:h,row:f,state:"no_product",customer:T,problems:[]};const O=m.provider?t.described.get([m.provider.app,m.provider.offer].join(":")):void 0,E=hi(O),M=(O?.provides??[]).map(R=>({kind:R.kind,value:f.externalRef})),B=M.some(R=>c.has([R.kind,R.value].join("|"))),k=(v?t.agreements.get(v)??[]:[]).filter(R=>R.status!=="ended").flatMap(R=>R.lines.filter(K=>K.productId===m.productId).map(K=>({agreementId:R.id,seriesId:K.seriesId}))).filter((R,K,Z)=>Z.findIndex(me=>me.seriesId===R.seriesId)===K).find(R=>{const K=dt({kind:"sale",...R});return!a.has(K)&&!o.get(K)?.externalKey}),P=B?void 0:t.drafted?.get(h)??k??{draft:!0},F=P&&"agreementId"in P?dt({kind:"sale",...P}):zr(h),z=R=>r.get(R)??s.get(R),V=[];if(f.under){const R=z(le(_,f.under)),K=E.find(Z=>R?.provides?.some(me=>me.kind===Z.kind))?.role??E.find(Z=>Z.kind==="account"||Z.kind==="tenant")?.role??"account";V.push({role:K,itemId:R?.id??zr(le(_,f.under))})}for(const R of f.uses??[]){const K=[...n,...s.values()].find(Z=>Z.provides?.some(me=>me.kind===R.kind&&me.value===R.value));V.push({role:E.find(Z=>Z.kind===R.kind)?.role??R.kind,itemId:K?.id??["resource:",R.kind,":",R.value].join("")})}const te=f.reported?.status??f.status??"active",L={id:F,organizationId:t.organizationId,businessEntityId:t.businessEntityId,customerCompanyId:v??"",productId:m.productId,status:te==="suspended"?"suspended":"active",quantity:f.quantity,...V.length?{requires:V,requiresIds:ai(V)}:{},...M.length?{provides:M}:{},at:{app:_,...m.provider?{offer:m.provider.offer}:{},externalRef:f.externalRef,...f.fulfillment?{fulfillment:f.fulfillment}:{}},externalKey:h,...P&&"agreementId"in P?{sale:P}:{},activatedAt:f.since??t.now,reported:pi(f.reported??{externalRef:f.externalRef,offer:f.offer,quantity:f.quantity,status:te==="suspended"?"suspended":"active",...f.termEndsAt?{termEndsAt:f.termEndsAt}:{}},t.now),since:f.since??t.now,updatedAt:t.now},Y=new Map([...n,...s.values()].map(R=>[R.id,R]));Y.set(L.id,L);const oe=li(L,E,Y);gi(O)&&f.quantity>1&&oe.push({code:"one_unit_per_item",quantity:f.quantity});for(const R of E.filter(K=>K.min>0&&K.for.includes("purchase")))V.some(K=>K.role===R.role)||oe.push({code:"requires_missing",role:R.role});const Ke=oe.length?"blocked":!v&&I.length>1?"choose_customer":"ready";return Ke==="ready"&&(s.set(h,L),P&&"agreementId"in P&&a.add(L.id)),{key:h,row:f,state:Ke,customer:T,offerId:m.id,productId:m.productId,...P?{sale:P}:{},item:L,problems:oe}},p=new Array(e.length),g=e.map((f,m)=>({row:f,index:m}));g.sort((f,m)=>Xr(f.row)-Xr(m.row)||f.index-m.index);for(const{row:f,index:m}of g)p[m]=l(f);return p}function Tp(e){const t=e.filter(n=>n.state==="ready");return{items:t.length,draftLines:t.filter(n=>n.sale&&"draft"in n.sale).length,linked:t.filter(n=>n.sale&&"agreementId"in n.sale).length,contractLines:t.length,newCustomers:new Set(t.filter(n=>n.customer?.create).map(n=>le(n.row.app,n.row.account.ref))).size,known:e.filter(n=>n.state==="known").length,choose:e.filter(n=>n.state==="choose_customer").length,noProduct:e.filter(n=>n.state==="no_product").length,blocked:e.filter(n=>n.state==="blocked").length}}const kp=(e,t)=>({app:e,externalRef:t.externalRef,offer:t.offer,level:"account",quantity:1,account:{ref:t.externalRef,name:t.name,...t.kvkNumber?{kvkNumber:t.kvkNumber}:{},...t.domain?{domain:t.domain}:{}},...t.fulfillment?{fulfillment:t.fulfillment}:{},...t.since?{since:t.since}:{}}),Op=(e,t,n,r)=>({app:e,externalRef:n.externalRef,offer:n.offer,level:"item",quantity:n.quantity,account:t,...r?{customerCompanyId:r}:{},under:n.under??t.ref,...n.uses?.length?{uses:n.uses}:{},...n.termEndsAt?{termEndsAt:n.termEndsAt}:{},status:n.status,reported:n}),er=["customer","product","quantity","externalRef","since","termEndsAt","kvkNumber","domain","under"],Mp={customer:["klant","customer","bedrijf","company","relatie","account"],product:["product","artikel","artikelnummer","sku","licentie","license","offer"],quantity:["aantal","quantity","qty","seats","stuks"],externalRef:["externe referentie","referentie","reference","external ref","id","serial"],since:["ingangsdatum","start","startdatum","since","start date"],termEndsAt:["termijneinde","einddatum","end","term end","renewal","verlenging"],kvkNumber:["kvk","kvk-nummer","coc"],domain:["domein","domain"],under:["onder","under","parent","hoofdaccount"]};function Rp(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of er){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Mp[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}function _n(e){const t=e.trim(),n=/^(\d{4})-(\d{1,2})-(\d{1,2})/.exec(t),r=/^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/.exec(t),[o,s,i]=n?[n[1],n[2],n[3]]:r?[r[3],r[2],r[1]]:[];if(!o)return;const a=Date.UTC(Number(o),Number(s)-1,Number(i));return Number.isFinite(a)&&new Date(a).getUTCDate()===Number(i)?a:void 0}function Np(e,t,n){const r=(e[0]??[]).map(a=>a.trim().toLowerCase()),o={};for(const a of er){const c=t[a]?.trim().toLowerCase(),u=c?r.indexOf(c):-1;u>=0&&(o[a]=u)}const s=[],i=[];return o.customer===void 0||o.product===void 0||o.externalRef===void 0?{rows:s,errors:[{line:1,message:"adopt_columns_missing"}]}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=b=>{const I=o[b];return I===void 0?"":(a[I]??"").trim()},l=d("customer"),p=d("product"),g=d("externalRef");if(!l||!p||!g){i.push({line:u,message:"adopt_row_incomplete"});return}const f=d("quantity")?Number(d("quantity").replace(",",".")):1;if(!Number.isInteger(f)||f<1){i.push({line:u,message:"adopt_row_quantity"});return}const m=d("since")?_n(d("since")):void 0,_=d("termEndsAt")?_n(d("termEndsAt")):void 0;if(d("since")&&m===void 0||d("termEndsAt")&&_===void 0){i.push({line:u,message:"adopt_row_date"});return}const h=d("kvkNumber"),y=d("domain").toLowerCase();s.push({app:n,externalRef:g,offer:p,level:"item",quantity:f,account:{ref:(h||y||l).toLowerCase(),name:l,...h?{kvkNumber:h}:{},...y?{domain:y}:{}},...d("under")?{under:d("under")}:{},...m!==void 0?{since:m}:{},..._!==void 0?{termEndsAt:_}:{}})}),{rows:s,errors:i})}const Dp=["active","suspended","terminating"];function xp(e){const t=new Map(e.items.map(n=>[n.id,n]));return e.items.filter(n=>n.sale&&n.status!=="terminated").map(n=>{const r=Dp.includes(n.status)?n.quantity:0,o=e.agreed.get(n.id)??null,s=n.reported?.quantity,i=e.bought.get(n.id),a=e.billed.get(n.id),c=e.requests.some(d=>d.itemId===n.id&&(Mt.includes(d.state)||Jn.includes(d.state))),u=[];return s!=null&&s!==r&&u.push({kind:"supplier_differs",reported:s,active:r}),o!=null&&o!==r&&u.push({kind:"agreed_differs",agreed:o,active:r,busy:c}),i!=null&&i!==r&&u.push({kind:"not_bought",bought:i,active:r}),a!=null&&o!=null&&a!==o&&u.push({kind:"not_billed",billed:a,agreed:o}),{itemId:n.id,productId:n.productId,customerCompanyId:n.customerCompanyId,status:n.status,...n.serial?{serial:n.serial}:{},agreed:o,active:r,...s!=null?{reported:s}:{},...i!=null?{bought:i}:{},...a!=null?{billed:a}:{},signals:u,resources:di(n,t).map(d=>({...d,productId:t.get(d.itemId)?.productId??""}))}})}const yi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],wp="purchase_order",Rt=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["cancelled"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"]},convertsTo:[],credits:"invoice"}],bi=[...Rt,...yi],tr=["quote","order","invoice","credit_note"];function Pp(){const e=new Map;for(const t of Rt)tr.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function G(e){return bi.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Lp={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function _i(e,t){return G(e).transitions[t]??[]}function Kp(e,t,n){return _i(e,t).includes(n)}function nr(e){return e.issuedAt!=null}const $p=["status","fileRef","number","externalIds","postedAt","dunning","settlement","settled","overdueSince","issuedPaper","updatedAt"];function Up(e){return nr(e)&&G(e.kindKey).numbered&&!e.number}const Bp=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","deliveryAddressId","invoiceTo","lines"],Fp=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId","deliveryAddressId","invoiceTo"];function jp(e,t){if(!tr.includes(t)||!G(e.kindKey).convertsTo.includes(t))return!1;const n=G(t);return!n.credits||n.credits===e.kindKey&&nr(e)}function rr(e,t){const n=G(t).signFlip!==G(e.kindKey).signFlip,r=e.kindKey!==t,o=e.lines.map(({timeEntryIds:s,agreementLineId:i,sourceLine:a,...c})=>({...c,...r&&c.kind==="product"?{sourceLine:{transactionId:e.id,lineId:c.id}}:{},quantity:n?-c.quantity:c.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,...e.invoiceTo?.companyId?{invoiceTo:e.invoiceTo}:{},billingAddressId:e.billingAddressId,deliveryAddressId:e.deliveryAddressId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:o,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function qp(e){return{...rr(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 Gp(e,t,n){const r=new Map;let o=Math.max(0,t);for(const s of[...e].filter(i=>i.state==="active").sort((i,a)=>i.createdAt-a.createdAt)){const i=Math.min(s.quantity,o);o-=i,r.set(s.id,{received:i,available:Math.max(0,i-(n.get(s.id)??0))})}return r}function Vp(e,t,n,r){const o=t.filter(u=>u.fulfilmentOrderId===e.id&&u.state==="active"),s=u=>u.reduce((d,l)=>d+l.quantity,0),i=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction!=="return"),a=n.filter(u=>u.fulfilmentOrderId===e.id&&u.direction==="return"),c=o.reduce((u,d)=>u+(r.get(d.id)?.received??0),0);return{ordered:e.quantity,allocated:s(o),onOrder:s(o)-c,available:o.reduce((u,d)=>u+(r.get(d.id)?.available??0),0),delivered:s(i),returned:s(a)}}const Qr=e=>[e.deliverTo.kind,e.deliverTo.companyId??"",e.deliverTo.addressId??""].join("|"),Wp=(e,t)=>!!e.offerId&&e.offerId===t.offerId&&e.businessEntityId===t.businessEntityId&&Qr(e)===Qr(t);function Ii(e,t,n){const r=new Map;for(const s of n)for(const i of s.lines)i.sourceLine?.transactionId===e.id&&r.set([s.id,i.id].join("#"),i.sourceLine.lineId);const o=new Map(e.lines.filter(s=>s.kind==="product").map(s=>[s.id,{lineId:s.id,ordered:s.quantity,delivered:t.get(s.id)??0,invoiced:0,reserved:0}]));for(const s of n)if(s.status!=="cancelled")for(const i of s.lines){const a=i.sourceLine;if(!a)continue;const c=a.transactionId===e.id?a.lineId:r.get([a.transactionId,a.lineId].join("#")),u=c?o.get(c):void 0;u&&(s.issuedAt?u.invoiced+=i.quantity:s.kindKey!=="credit_note"&&i.quantity>0&&(u.reserved+=i.quantity))}return[...o.values()]}const Ei=(e,t)=>Math.max(0,(t==="delivered"?e.delivered:e.ordered)-e.invoiced-e.reserved);function Hp(e,t){const n=e.map(r=>t==="delivered"?r.delivered:r.invoiced);return!e.length||n.every(r=>r<=0)?"none":e.every((r,o)=>n[o]>=r.ordered)?"full":"partial"}function Yp(e){const t=e.orders.flatMap(r=>{const o=Ii(r,e.delivered.get(r.id)??new Map,e.documents),s=new Map(o.map(u=>[u.lineId,Ei(u,e.mode)])),i=rr(r,"invoice"),a=i.lines.flatMap(u=>{const d=u.sourceLine?s.get(u.sourceLine.lineId)??0:0;return u.kind==="product"&&d>0?[{...u,quantity:d}]:[]});if(!a.length)return[];const c=e.mode==="delivered"?e.deliveredAt?.get(r.id):r.deliveredAt;return[{order:r,draft:{...i,lines:a,...c?{deliveredAt:c}:{}}}]});if(e.groupBy==="order")return t.map(r=>r.draft);const n=new Map;for(const r of t){const o=r.order,s=[o.companyId,Tt(o),o.invoiceTo?.contactId??"",o.billingAddressId??"",o.paymentTerm?.code??"",o.taxOverrideKey??"",o.businessEntityId,o.currency].join("|");n.set(s,[...n.get(s)??[],r])}return[...n.values()].map(r=>{if(r.length===1)return r[0].draft;const[o]=r,s=r.flatMap(c=>c.draft.deliveredAt?[c.draft.deliveredAt]:[]),{sourceTransactionId:i,...a}=o.draft;return{...a,lines:r.flatMap(c=>c.draft.lines).map((c,u)=>({...c,id:["l",String(u+1)].join("")})),...s.length?{deliveredAt:Math.max(...s)}:{}}})}const Si=e=>btoa(unescape(encodeURIComponent(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),zp=e=>{const t=e.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(escape(atob(t+"===".slice((t.length+3)%4))))},Xp=e=>["/request/",Si(e)].join(""),Ai=36e5,vi=864e5,ie=-1/0,Qp=e=>e.score>ie,Re={urgent:40,high:25,normal:10,low:0};function Zp(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Jp=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ci=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Ti(e,t){return!!(e&&Jp.test(e)||t&&Ci.test(t))}const ki=3,Oi=600;function em(e,t){return e>=ki||t>=Oi}const Mi=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function tm(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&Mi.includes(r)&&(t[r]=n.value)}return t}const nm=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,rm=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function om(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&nm.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&&Ci.test(e.body)||n&&rm.test(n))return"marketing"}function Ri(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Ni=["open"],Di=1e3,xi=72;function wi(e){return e.lastActivityAt??(e.createdAt?new Date(Bo(e)).getTime():0)}function Pi(e,t){return Li(t.remindersById?.[e.id],e,t.now)}function Li(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const Ki=e=>Lo(e)==="outbound_message",$i=e=>Ni.includes(e);function Nt(e,t){return Math.max(0,(t-wi(e))/Ai)}function Ui(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function sm(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function im(e,t,n){if(!$i(e.status)||e.firstResponseAt)return!1;const r=Ui(e,n);return r!==void 0&&Nt(e,t)>r}function Bi(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!Ki(n.type)?!1:Nt(e,t)<xi}function am(e,t){if(!$i(e.status))return{score:ie,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ie,reasons:[]};if(Bi(e,t.now))return{score:ie,reasons:[]};if(Pi(e,t))return{score:ie,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Re[o]>0&&(n+=Re[o],r.push(`priority:${o}`)),Ri(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=Nt(e,t.now);if(s>0){const c=Math.min(s*2,30);n+=c,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const i=e.lastActivityPreview;return i?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),i?.direction==="outbound"&&Ki(i.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(c=>c==="marketing"||c==="automated")||Ti(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Di,r.push("bulk")),{score:n,reasons:r}}const cm=e=>!!e.assignedUserId||!!e.assignedInboxId,um=e=>e.status==="closed",lm=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,dm=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Fi=[{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}],fm=["duplicate","spam"],pm="c_";function mm(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Fi,...t]}function gm(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function hm(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 ym="article",ft=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function ji(e){const t=(e??"").toLowerCase();return ft.find(n=>n.code===t)??ft.find(n=>n.code===t.split("-")[0])}function bm(e){return ji(e)?.label??e}function _m(e){const t=ji(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const or=3;function qi(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>or+1))return 1/0;o=t.get(o)?.parentId}return r}function Im(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&&Gi(e,t,r))return!1;const o=qi(e,r),s=t?sr(t,n):1;return o+s<=or}function Gi(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 sr(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=>sr(o.id,t,n))):1}const Vi="en";function Wi(e){return e.defaultLocale||e.locale||Vi}function Em(e){const t=new Set,n=[];for(const r of[Wi(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Sm(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 Am(e,t){const n=a=>`${a.level}:${a.key}`,r=new Map((t?.rows??[]).map(a=>[n(a),a])),o=e.rows.map(a=>({...a,priorCents:r.get(n(a))?.amountCents??0})),s=new Set(o.map(n)),i=t?.rows??[];return i.forEach((a,c)=>{if(s.has(n(a)))return;const u=i.slice(0,c).reverse().find(p=>p.level<a.level);let d=o.length;const l=u?o.findIndex(p=>n(p)===n(u)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(u?.level??0);)d+=1;o.splice(d,0,{...a,amountCents:0,priorCents:a.amountCents}),s.add(n(a))}),o}function vm(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 Cm=["revenue","expense"],we=e=>Cm.includes(e.type),Tm=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Hi(e,t,n,r){const o=new Map;for(const i of[...e].sort((a,c)=>a.code.localeCompare(c.code))){if(!t(i))continue;const a=Tm(i),c=i.reportGroup??a,u=o.get(a)??new Map;u.set(c,[...u.get(c)??[],i]),o.set(a,u)}const s=[];for(const[i,a]of o){const c=n(i),u=l=>c==="debit"?t(l):-t(l),d=[...a.values()].flat().reduce((l,p)=>l+u(p),0);s.push({key:i,label:r(i),level:0,side:c,amountCents:d});for(const[l,p]of a){s.push({key:l,label:r(l),level:1,side:c,amountCents:p.reduce((g,f)=>g+u(f),0)});for(const g of p)s.push({key:g.code,label:`${g.code} ${g.name}`,level:2,side:c,amountCents:u(g),accountId:g.id})}}return s}function km(e,t,n,r=o=>o){const o=e.filter(we),s=c=>{const u=t.get(c.id);return u?u.debitCents-u.creditCents:0},i=Hi(o,s,c=>c==="revenue"||c==="financial"?"credit":"debit",r),a=-o.reduce((c,u)=>c+s(u),0);return{kind:"profit_and_loss",...n,rows:i,totals:{resultCents:a},source:"finance"}}function Om(e,t,n,r,o=s=>s){const s=e.filter(d=>!we(d)),a=Hi(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){a.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=a.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:a.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const c=a.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),u=a.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:a,totals:{debitCents:c,creditCents:u},source:"finance"}}function Mm(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=we(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function Rm(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(a,c)=>({from:new Date(o+c*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const a of t){const c=Math.max(0,Math.floor((Date.parse(`${a.date}T00:00:00Z`)-o)/6048e5)),u=s[c];u&&(a.cents>=0?u.inCents+=a.cents:u.outCents-=a.cents)}let i=e;for(const a of s)i+=a.inCents-a.outCents,a.closingCents=i;return s}function Nm(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const i=t.get(s.accountId);!i||!we(i)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,i]of[...n.entries()].sort(([a],[c])=>a.localeCompare(c)))i&&(r.push({accountId:s,amountCents:-i,functionalCents:-i,currency:e.currency}),o+=i);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const A=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Yi={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[A("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),A("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),A("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),A("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),A("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),A("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),A("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),A("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),A("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),A("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),A("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),A("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),A("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),A("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),A("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),A("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),A("1000","Kas","asset","assets.current.cash","BLimKasKas"),A("1100","Bank","asset","assets.current.cash","BLimBanRba"),A("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),A("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),A("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),A("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),A("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),A("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),A("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf","vat_settlement"),A("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),A("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),A("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),A("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),A("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),A("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),A("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),A("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),A("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),A("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),A("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),A("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),A("4000","Lonen","expense","costs.personnel","WPerLesLon"),A("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),A("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),A("4100","Huur","expense","costs.housing","WBedHuiBeh"),A("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),A("4200","Autokosten","expense","costs.car","WBedAutOak"),A("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),A("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),A("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),A("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),A("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),A("4595","Afrondingsverschillen btw","expense","costs.general","WBedAlkOal","vat_rounding"),A("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),A("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),A("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),A("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),A("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),A("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),A("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),A("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),A("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),A("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),A("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),A("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),A("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),A("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),A("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),A("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),A("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),A("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),A("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),A("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),A("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},Dm=[Yi],zi={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function xm(e,t){const n=[],r=t.functionalCurrency||"EUR",o=e.lines.filter(c=>c.currency&&c.currency!==r),s=o[0];if(s){const c={currency:s.currency};r!=="EUR"?n.push({code:"fx_cross_rate_unsupported",params:c}):o.some(u=>!(Number(u.fxRate)>0))&&n.push({code:"fx_rate_required",params:c})}e.lines.length<2&&n.push({code:"entry_too_few_lines"});const i=e.lines.reduce((c,u)=>c+u.functionalCents,0);i!==0&&n.push({code:"entry_unbalanced",params:{cents:String(i)}});const a=new Map(t.accounts.map(c=>[c.id,c]));for(const c of e.lines){const u=a.get(c.accountId);u?u.archived?n.push({code:"entry_account_archived",params:{account:u.code}}):u.requiresSubAccount&&!c.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:u.code}}):n.push({code:"entry_unknown_account",params:{account:c.accountId}}),u&&!c.taxCode!=!c.taxSide&&n.push({code:"entry_tax_side",params:{account:u.code}})}return t.period?(t.period.status==="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function wm(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Pm=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","counterparty","reversesEntryId","attachment","prevHash","postedAt","postedBy"],Lm=new Set(["journalSeq","chainSeq","postedAt"]),Km=["amountCents","functionalCents","taxCents"];function $m(e){const t={};for(const n of Pm){const r=e[n];r!==void 0&&(t[n]=Lm.has(n)?Number(r):r)}return Array.isArray(t.lines)&&(t.lines=t.lines.map(n=>{const r={...n};for(const o of Km)r[o]!=null&&(r[o]=Number(r[o]));return r})),t}function In(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(In).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+In(r)).join(",")+"}"}function Um(e,t){return e.taxSide??(t?.type==="revenue"?"sales":"purchase")}function Bm(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Fm(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&Ys(t.period)>1?[{index:n,period:t.period}]:[])}function jm(e,t){const n=e.kind==="journal"?Vm(e,t):Gm(e,t);return n.ok?qm(n,e,t.functionalCurrency??"EUR"):n}function qm(e,t,n){if(!t.currency||t.currency===n)return e;if(n!=="EUR")return{ok:!1,problem:"fx_cross_rate_unsupported"};const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=String(t.fxRate),s=e.lines.map(a=>({...a,fxRate:o,functionalCents:Math.round(a.amountCents*r)})),i=s.reduce((a,c)=>a+c.functionalCents,0);return s[0]={...s[0],functionalCents:s[0].functionalCents-i},{...e,lines:s}}function Gm(e,t){const n=m=>t.accounts.find(_=>_.role===m&&!_.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),i=n(r?"vat_payable":"vat_receivable"),a=r?-1:1,c=r?"sales":"purchase",u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},d=e.taxPointDate??e.issueDate,l=[],p=new Map;for(const m of e.lines){const _=m.accountKey??Ts(m,t.ledgerMapping??[],e.direction)?.targetKey??s?.id;if(!_)return{ok:!1,problem:"no_account_for_line"};const h=r?100:t.taxCodes?.find(I=>I.key===m.taxRateKey)?.deductiblePercent??100,y=Math.round(m.taxCents*h/100),b=m.netCents+m.taxCents-y;l.push({...u,accountId:_,amountCents:a*b,functionalCents:a*b,taxCode:m.taxRateKey,taxSide:c,taxCents:a*y,taxPointDate:d,...m.description?{description:m.description}:{},...Ae(m.dimensions)}),y&&p.set(m.taxRateKey,(p.get(m.taxRateKey)??0)+y)}for(const[m,_]of p){if(!i)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:i.id,amountCents:a*_,functionalCents:a*_,taxCode:m,taxSide:c,taxPointDate:d})}const g=e.lines.reduce((m,_)=>m+_.netCents+_.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-a*g,functionalCents:-a*g});const f=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:f||e.documentId}}function Vm(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??n(zi[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const i=Math.round(Number(o.amountCents)||0);i&&r.push({accountId:s,amountCents:i,functionalCents:i,currency:e.currency,...o.description?{description:o.description}:{},...Ae(o.dimensions)})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const Wt=e=>String(e).padStart(2,"0"),Wm=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function Hm(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}-${Wt(a)}-01`,to:`${i}-${Wt(a)}-${Wt(Wm(i,a))}`,status:"open"}})}function Ym(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const zm=["memorial","opening"],Xi="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Xm={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Qi=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),ir=(e,t)=>e.length>t?e.slice(0,t):e,C=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Qi(ir(String(t),n))+"</"+e+">",se=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Ht=e=>e<0?"C":"D",Zr=e=>ir(e.replace(/-/g,""),35);function Qm(e){const t=new Map(e.accounts.map(l=>[l.id,l.code])),n=new Map(e.relations.map(l=>[l.id,l.number||Zr(l.id)])),r=l=>n.get(l)??Zr(l),o=new Map(e.periods.map(l=>[l.id,l.index])),s=[],i=(...l)=>{s.push(l.join(""))};i('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',Xi,'">',"<header>",C("fiscalYear",e.fiscalYear.replace("/","-")),C("startDate",e.startDate),C("endDate",e.endDate),C("curCode",e.currency),C("dateCreated",e.createdOn),C("softwareDesc",e.software.desc,50),C("softwareVersion",e.software.version,20),C("RGSVersion",e.rgsVersion,20),"</header>","<company>",C("Commercenr",e.company.commerceNr,100),C("companyName",e.company.name,255),C("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Qi(ir(e.company.vatNumber??"",30))+"</taxRegIdent>");const a=e.company.address;if(a&&(a.street||a.city)&&i("<streetAddress>",C("streetname",a.street,100),C("number",a.number,15),C("city",a.city,50),C("postalCode",a.postalCode,10),C("country",e.company.country),"</streetAddress>"),e.relations.length){i("<customersSuppliers>");for(const l of e.relations)i("<customerSupplier>",C("custSupID",r(l.id),35),C("custSupName",l.name,50),C("commerceNr",l.commerceNr,100),C("taxRegistrationCountry",l.country),C("taxRegIdent",l.vatNumber,30),C("custSupTp",l.type),"</customerSupplier>");i("</customersSuppliers>")}i("<generalLedger>");for(const l of[...e.accounts].sort((p,g)=>p.code.localeCompare(g.code))){const p=l.type==="revenue"||l.type==="expense";i("<ledgerAccount>",C("accID",l.code,35),C("accDesc",l.name,255),C("accTp",p?"P":"B"),C("RGScode",l.taxonomy?.rgs,255),"</ledgerAccount>")}if(i("</generalLedger>"),e.taxCodes.length){i("<vatCodes>");for(const l of e.taxCodes)i("<vatCode>",C("vatID",l.key,35),C("vatDesc",l.label,100),C("vatToPayAccID",l.payableAccountId&&t.get(l.payableAccountId)),C("vatToClaimAccID",l.receivableAccountId&&t.get(l.receivableAccountId)),"</vatCode>");i("</vatCodes>")}i("<periods>");for(const l of[...e.periods].sort((p,g)=>p.index-g.index))i("<period>",C("periodNumber",l.index),C("startDatePeriod",l.from),C("endDatePeriod",l.to),"</period>");i("</periods>");const c=e.opening.filter(l=>l.cents!==0);if(c.length){const l=c.filter(g=>g.cents>0).reduce((g,f)=>g+f.cents,0),p=-c.filter(g=>g.cents<0).reduce((g,f)=>g+f.cents,0);i("<openingBalance>",C("linesCount",c.length),C("totalDebit",se(l)),C("totalCredit",se(p))),c.forEach((g,f)=>{i("<obLine>",C("nr",f+1),C("accID",t.get(g.accountId)??g.accountId),C("amnt",se(g.cents)),C("amntTp",Ht(g.cents)),"</obLine>")}),i("</openingBalance>")}const u=e.entries.flatMap(l=>l.lines);i("<transactions>",C("linesCount",u.length),C("totalDebit",se(u.filter(l=>l.functionalCents>0).reduce((l,p)=>l+p.functionalCents,0))),C("totalCredit",se(-u.filter(l=>l.functionalCents<0).reduce((l,p)=>l+p.functionalCents,0))));const d=new Map;for(const l of e.entries)d.set(l.journalId,[...d.get(l.journalId)??[],l]);for(const l of e.journals){const p=d.get(l.id);if(p?.length){i("<journal>",C("jrnID",l.code,35),C("desc",l.name),C("jrnTp",Xm[l.kind]));for(const g of[...p].sort((f,m)=>f.journalSeq-m.journalSeq))i("<transaction>",C("nr",g.number,35),C("desc",g.description),C("periodNumber",o.get(g.periodId)??0),C("trDt",g.date),C("Source",g.source.app+(g.source.kind?" "+g.source.kind:""),999),C("User",g.postedBy,999)),g.lines.forEach((f,m)=>{const _=f.taxCode&&e.vatPercent?.(f.taxCode,g.date),h=f.currency&&f.currency!==e.currency;i("<trLine>",C("nr",m+1),C("accID",t.get(f.accountId)??f.accountId,35),C("docRef",g.source.number??g.number,255),C("effDate",f.taxPointDate??g.date),C("desc",f.description),C("amnt",se(f.functionalCents)),C("amntTp",Ht(f.functionalCents)),C("custSupID",f.counterpartyCompanyId&&r(f.counterpartyCompanyId),35),C("invRef",g.source.number,255),C("cost",f.costCenterId,999),C("project",f.projectId,999),_&&f.taxCents!==void 0?"<vat>"+C("vatID",f.taxCode,35)+C("vatPerc",_)+C("vatAmnt",se(f.taxCents))+C("vatAmntTp",Ht(f.taxCents))+"</vat>":"",h?"<currency>"+C("curCode",f.currency)+C("curAmnt",se(f.amountCents))+"</currency>":"","</trLine>")}),i("</transaction>");i("</journal>")}}return i("</transactions>","</company>","</auditfile>"),s.join(`
12
+ `)}const Zm=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Jm(e){const t=Q(e,"ledgerAccount").map(a=>{const c=N(a,"RGScode")??N(a,"leadCode");return{code:N(a,"accID")??"",name:N(a,"accDesc")??"",kind:N(a,"accTp")==="P"?"P":"B",...c?{rgs:c}:{}}}),n={},r=a=>{const c=N(a,"accID");c&&(n[c]=(n[c]??0)+Zm(N(a,"amnt"),N(a,"amntTp")))};for(const a of Q(e,"obLine"))r(a);for(const a of Q(e,"trLine"))r(a);const o=Q(e,"header")[0]??"",s=N(o,"fiscalYear"),i=N(o,"endDate");return{accounts:t.filter(a=>a.code),closing:n,...s?{fiscalYear:s}:{},...i?{endDate:i}:{}}}function eg(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const En=["lookup","condition","parallel","for-each"];function Ge(e){for(const t of e){if(!En.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${En.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Ge(n);if(r)return r}if(t.type==="for-each"){const n=Ge(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Ge(t.else??[]);if(n)return n}}return null}function tg(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 ng(e,t){return e.filter(n=>n.enabled&&tg(n.ownerScope,t))}function rg(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function og(e){return`mcp__${e}__`}const sg=1e3,ig=2e3,ag=500,cg=12e3,ug=4e3,Zi=["contact","company","work_item"];function lg(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return Zi.includes(t)}const dg="high",fg=[{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 Ji(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const pg=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"services"},{key:"eu_goods",label:"tax_eu_goods",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0,icpKind:"goods"},{key:"eu_triangular",label:"tax_eu_triangular",kind:"zero",direction:"sales",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"}}},icp:!0,icpKind:"triangular"},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function ar(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function mg(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:ar(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function ae(e){return new Date(e).toISOString().slice(0,10)}const Jr=/^\d{4}-\d{2}-\d{2}$/;function gg(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(!Jr.test(r.validFrom)||r.validTo&&!Jr.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function Dt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=U(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?Et(n,e.pricePer,e.servicePeriod):n}function hg(e,t,n){const r=e.map(u=>({...u,netCents:Dt(u),taxCents:0})),o=new Map;for(let u=0;u<r.length;u++){if(r[u].kind!=="product"||r[u].optional)continue;const d=n??r[u].taxRateKey,l=o.get(d);l?l.push(u):o.set(d,[u])}const s=[];let i=0,a=0;for(const[u,d]of o){const l=Ji(u,t),p=d.reduce((m,_)=>m+r[_].netCents,0),g=U(p*l.percent/100),f=de(g,d.map(m=>r[m].netCents));for(let m=0;m<d.length;m++)r[d[m]].taxCents=f[m];s.push({taxRateKey:u,percent:l.percent,kind:l.kind,netCents:p,taxCents:g}),i+=p,a+=g}const c=r.reduce((u,d)=>d.costPriceCents==null||d.optional?u:u+U(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:i,taxCents:a,grossCents:i+a,costCents:c,byRate:s}}}const yg="onboarding-source",bg=["support","billing","availability","sales","onboarding"],_g=["keep","replace"],xt=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],ea={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function ee(e,t=xt){return t.find(n=>n.key===e)??{...ea,key:e}}function Se(e){return e==="published"||e==="approved"}function cr(e,t,n=xt){if(e.workstreamId!==t)return!1;const r=ee(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Ig(e,t=xt){if(!e.userId||!Se(e.status))return!1;const n=ee(e.kindKey,t);return n.capacity||n.productive||n.absent}const Eg=864e5;function ta(e,t){return Math.round((t-e)/Eg)}function ur(e,t){const n=e.cycleMinutes.length;return n===0?0:(ta(e.anchor,t)%n+n)%n}function lr(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[ur(e,t)]??0}function dr(e,t){return e.startTimes?.[ur(e,t)]}function fr(e,t,n,r){const o=e.filter(a=>a.effectiveFrom===void 0||a.effectiveFrom<=r),s=a=>a.sort((c,u)=>(u.effectiveFrom??0)-(c.effectiveFrom??0))[0],i=s(o.filter(a=>a.userId===t));return i||s(o.filter(a=>!a.userId&&a.teamId&&n.includes(a.teamId)))}function na(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const Sn=864e5;function Sg(e){const t=Math.max(1,Math.round((e.to-e.from)/Sn));return Array.from({length:t},(n,r)=>e.from+r*Sn)}function An(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const eo={interval:0,day:1,week:2};function Ag(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&Se(l.status)&&ee(l.kindKey).capacity),i=n.filter(l=>l.userId&&Se(l.status)&&ee(l.kindKey).absent),a=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),c={};let u="interval";const d=l=>{eo[l]>eo[u]&&(u=l)};for(const l of a){const p=t.teamIdsOf?.(l)??[];let g=0,f=0,m=0;for(const y of Sg(e)){const b=Math.max(y,e.from),I=Math.min(y+Sn,e.to);m++;const v=s.filter(E=>E.userId===l).reduce((E,M)=>E+An(M.start,M.end,b,I),0);if(v>0){g+=v;continue}const T=fr(r,l,p,y),O=T?lr(T,y):0;if(T&&O>0){g+=O*60,d(dr(T,y)?"interval":"day");continue}T||f++}if(f>0){const y=na(o,l,e.from);y&&(g+=y.weeklyMinutes*60*(f/7),d("week"))}const _=i.filter(y=>y.userId===l).reduce((y,b)=>y+An(b.start,b.end,e.from,e.to),0),h=Math.max(0,g-_);(h>0||m>0)&&(c[l]=h)}return{seconds:Object.values(c).reduce((l,p)=>l+p,0),precision:u,byUser:c}}function vg(e,t){if(!e.some(a=>a.userId))return[];const n="",r=new Map;for(const a of e){const c=a.userId??n;r.set(c,(r.get(c)??0)+a.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(a=>a!==n)])].map(a=>{const c=r.get(a)??0,u=t.byUser[a]??0;return{userId:a,requiredSeconds:c,capacitySeconds:u,netSeconds:u-c}});s.sort((a,c)=>a.netSeconds-c.netSeconds);const i=r.get(n)??0;return i>0&&s.push({requiredSeconds:i,capacitySeconds:0,netSeconds:-i}),s}function Cg(e,t,n,r){const o=e.filter(i=>i.userId&&Se(i.status)&&!ee(i.kindKey).absent),s=Object.entries(r.byUser).map(([i,a])=>{let c=0,u=0;for(const d of o){if(d.userId!==i||ee(d.kindKey).capacity&&!d.workstreamId)continue;const l=An(d.start,d.end,n.from,n.to);l<=0||(cr(d,t)?c+=l:u+=l)}return{userId:i,capacitySeconds:a,onThisSeconds:c,elsewhereSeconds:u,freeSeconds:Math.max(0,a-c-u)}});return s.sort((i,a)=>a.freeSeconds-i.freeSeconds),s}const Tg="demand-source",to=1e3;function kg(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ra(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=kg(e,t),r=t/e;return n/(1-r*(1-n))}function oa(e,t,n,r){return r<=0?1:e<=t?0:1-ra(e,t)*Math.exp(-(e-t)*n/r)}function sa(e,t,n){return n<=0?0:e*t/n}function ia(e,t,n,r){if(e<=0||t<=0)return 0;const o=sa(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<=to;a++)if(!(a<=o)&&!(oa(a,o,r.targetSeconds,t)<s)&&!(i&&o/a>i))return a;return to}const Og=36e5,Mg=864e5;function Rg(e){return e==="day"?Mg:Og}function Ng(e,t){return e.start<t.end&&t.start<e.end}function Ve(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function aa(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=ia(e.volume,r,n,t);return{seconds:o,headcount:a*i}}return{seconds:o,headcount:o/n*i}}function Dg(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,i=e.grain??"hour",a=Rg(i),c=a/1e3,u=e.kinds,d=t.filter(m=>Se(m.status)),l=d.filter(m=>cr(m,n,u)),p=d.filter(m=>ee(m.kindKey,u).capacity),g=d.filter(m=>ee(m.kindKey,u).absent),f=[];for(let m=Ie(s.from,i);m<s.to;m+=a){const _=m+a,h=_e(m,i);let y=0;for(const E of l)y+=Ve(E,m,_);let b=0;for(const E of p)b+=Ve(E,m,_);let I=0;for(const E of g)I+=Ve(E,m,_);const v=o?.[h]??{},T=aa(v,r,c),O=y/c;f.push({period:h,forecastVolume:v.volume,requiredSeconds:T.seconds,requiredHeadcount:T.headcount,scheduledSeconds:y,scheduledHeadcount:O,netHeadcount:O-T.headcount,capacitySeconds:b,absentSeconds:I})}return f}function ca(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function xg(e,t,n){const r=ca(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function wg(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Pg=36e5,vn=6048e5,ua=8,Lg=.5,Kg=2;function $g(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 Ug(e,t,n){const r=[];for(let s=0;s<n;s++){const i=t-s*vn,a=i-vn;let c=0,u=!1;for(const[d,l]of e)d>=a&&d<i&&(c+=l,u=!0);u&&r.push(c)}if(r.length<2)return 1;const o=r.reduce((s,i)=>s+i,0)/r.length;return o<=0?1:Math.min(Kg,Math.max(Lg,r[0]/o))}function Bg(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Fg(e,t,n){const r=Math.max(1,n?.weeks??ua),o=new Map,s=new Set;for(const c of e)o.set($g(c.period),c.value),s.add(c.period.slice(0,10));const i=Ug(o,Ie(t.from,"hour"),r),a=[];for(let c=Ie(t.from,"hour");c<t.to;c+=Pg){let u=0,d=0;for(let g=1;g<=r;g++){const f=c-g*vn,_=o.get(f)??(s.has(_e(f,"day"))?0:void 0);if(_===void 0)continue;const h=r-g+1;u+=_*h,d+=h}let l=d>0?u/d*i:0;const p=Bg(n?.adjustments,c);p?.absoluteVolume!==void 0?l=p.absoluteVolume:p?.factor!==void 0&&(l*=p.factor),a.push({period:_e(c,"hour"),volume:l})}return a}const la="schedule_entry",da="workstream";function jg(e){return`${la}:${e}`}function qg(e){return`${da}:${e}`}const Cn=36e5,be=864e5;function Gg(e,t){const n=t==="day"?be:Cn,r=[];for(let o=Ie(e.from,t);o<e.to;o+=n)r.push(o);return r}function no(e){const t=Math.max(1,Math.round((e.to-e.from)/be));return Array.from({length:t},(n,r)=>e.from+r*be)}function Yt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Vg(e,t,n={}){const r=n.grain??"hour",o=Gg(t,r),s=r==="day"?be:Cn,i=new Map(o.map(l=>[l,0])),a=e.filter(l=>l.userId&&ee(l.kindKey).capacity),c=n.userIds?.length?new Set(n.userIds):null,u=new Set;for(const l of a)if(!(c&&l.userId&&!c.has(l.userId))){for(const p of o){const g=Yt(l.start,l.end,p,p+s);g>0&&i.set(p,(i.get(p)??0)+g)}for(const p of no(t))Yt(l.start,l.end,p,p+be)>0&&u.add(`${l.userId}:${p}`)}const d=n.userIds??[...new Set([...a.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const p=n.teamIdsOf?.(l)??[];for(const g of no(t)){if(u.has(`${l}:${g}`))continue;const f=fr(n.patterns,l,p,g);if(!f)continue;const m=lr(f,g);if(m<=0)continue;const _=dr(f,g);if(_){const[b,I]=_.split(":").map(Number),v=g+b*Cn+(I??0)*6e4,T=v+m*6e4;for(const O of o){const E=Yt(v,T,O,O+s);E>0&&i.set(O,(i.get(O)??0)+E)}continue}const h=o.filter(b=>b>=g&&b<g+be);if(!h.length)continue;const y=m*60/h.length;for(const b of h)i.set(b,(i.get(b)??0)+y)}}return o.map(l=>({period:_e(l,r),weight:i.get(l)??0}))}function fa(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 Wg(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 fa(o.seconds,i)){const c=`${a.period}|${o.userId??""}`,u=r.get(c);u?u.seconds+=a.seconds:r.set(c,{...a,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function pa(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Hg(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 ma(e){return pa(e)}function ga(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 Yg(e){return e.agentId?{kind:"user",userId:e.agentId}:ga(e.ownerScope)}function zg(e){return ma(e)}const ha="playbook-run",Xg="run";function Qg(e,t=0){return`${ha}:${e}~${t}`}function Zg(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function ya(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 Jg(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function eh(e,t){if(t)return e.targets.find(n=>n.id===t)}function ba(e){return e?.kind==="assignment"}function th(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:i}=e;return ba(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":i&&i===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const Tn=["suggest","outward","auto"];function nh(e){return typeof e=="string"&&Tn.includes(e)}function rh(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function oh(e,t){const n=e??"suggest";return t&&Tn.indexOf(t)<Tn.indexOf(n)?t:n}function sh(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function _a(e){const t=e.split("__");return t[t.length-1]||e}function ih(e){const t=_a(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const ah=[{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 ch(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const uh={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 pr(e){return`${e.type}:${e.id}`}function lh(e){return[pr(e),e.lineId].join("#")}function dh(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 fh(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 Ia="interaction";function Ea(e){return e?.type===Ia?e.id:void 0}const Sa=64,Aa=8e3;function ph(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),Sa),Aa)}const mh=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],gh={kind:"workflow",steps:[]};function hh(e){return e?.kind==="workflow"?e.steps:[]}function yh(e){return e?.kind==="procedure"?e.procedure:void 0}function bh(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function va(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ca=10,Ta=.9;function _h(e){const{total:t,rate:n}=va(e);return t>=Ca&&n>=Ta}const ka=["done","escalated","failed","stopped"];function Ih(e){return ka.includes(e)}function Oa(e){return e==="waiting"}function Eh(e){return e==="running"||Oa(e)}function mr(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Sh(e){const t=mr(e);return t?pr(t):void 0}function Ah(e){return Ea(mr(e))}const Ma=36e5,vh=24*Ma,Ch=48*Ma;function Th(e,t,n){const r=e.availability;if(!r)return{stock:"unknown"};if(!(n<=(r.freshUntil??r.at+Ch))||r.qty===null)return{stock:"unknown"};const s=r.qty;return{stock:s>=t?"enough":"short",qty:s}}function kh(e,t,n){if(!Qn(e,n))return"invalid";if(e.pricedBy!=="quote"&&(e.termMonths??0)!==(t.termMonths??0))return"term";const r=t.deliverTo!==void 0&&t.deliverTo!=="own";if(t.deliverTo!==void 0&&e.dropship===(r?"no":"yes"))return"dropship";if(t.qualified&&!t.qualified.some(o=>o.app===e.provider?.app&&o.offer===e.provider.offer))return"qualification"}function Oh(e,t){if(e.pricedBy==="quote")return null;const n=e.currency===t.currency?1:t.rates?.[e.currency];return n?ii(e)*n:null}const ro={enough:0,unknown:1,short:2},oo=e=>e.unitCents??Number.POSITIVE_INFINITY;function Mh(e,t,n){const r=e.map(f=>{const m=kh(f,t,n),_=f.availability?.leadDays??f.leadDays;return{offer:f,...Th(f,t.quantity,n),unitCents:Oh(f,t),..._!==void 0?{leadDays:_}:{},...m?{unsuitable:m}:{}}}),o=r.filter(f=>!f.unsuitable),s=r.filter(f=>f.unsuitable),i=o.filter(f=>f.unitCents!==null),a=i.length?i:o,c=[...a].sort((f,m)=>ro[f.stock]-ro[m.stock]||(f.stock==="short"?(m.qty??0)-(f.qty??0):0)||oo(f)-oo(m)||(f.leadDays??Number.POSITIVE_INFINITY)-(m.leadDays??Number.POSITIVE_INFINITY)||Number(m.offer.isDefault)-Number(f.offer.isDefault)),u=a.find(f=>f.offer.isDefault),d=u&&u.stock!=="short"?u:c[0]??null,l=t.pinned?r.find(f=>f.offer.id===t.pinned):void 0;if(l){const f=[...c,...o.filter(m=>!a.includes(m)),...s];return{chosen:l,why:"picked",alternatives:f.filter(m=>m!==l),currency:t.currency}}const p=[...c,...o.filter(f=>!a.includes(f))].filter(f=>f!==d);if(!d)return{chosen:null,alternatives:[...p,...s],currency:t.currency};const g=d.stock==="short"?"short":d===u?"preferred":u?"preferred_short":o.length===1?"only":"best";return{chosen:d,why:g,alternatives:[...p,...s],currency:t.currency}}const zt=864e5;function Rh(e,t){return e.lines.flatMap(n=>{const r=St(W(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=Dt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ra(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 so=e=>e.seriesId??e.id;function Nh(e,t,n){return t.find(r=>{const o=W(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function Dh(e,t,n,r={}){const o=(r.noticeDays??30)*zt,s=(r.windowDays??7)*zt,i=[];for(const a of e){if(a.status!=="active")continue;const c=new Map;for(const u of a.lines)c.set(so(u),[...c.get(so(u))??[],u]);for(const u of c.values()){const d=Nh(a,u,n),l=W(a,d);if(l.to!=null&&l.to<=n)continue;const p={contractId:a.id,lineId:d.id},g=d.commitment??a.commitment,f=zo(a,u),m=l.to??tt(f,g,n);if(d.customerCompanyId&&!d.itemId){const b=d.salesLine?t.find(I=>I.agreementId===d.salesLine?.agreementId&&I.seriesId===d.salesLine?.seriesId):void 0;b?b.ended?i.push({kind:"not_covered",...p,reason:"sales_ended"}):(d.quantity.from==="fixed"&&b.quantity!=null&&b.quantity!==d.quantity.value&&i.push({kind:"not_covered",...p,reason:"quantity"}),b.unbilled.length&&i.push({kind:"not_billed",...p,windows:b.unbilled}),m>b.effectiveEndAt&&i.push({kind:"term_mismatch",...p,purchaseEnd:m,salesEnd:b.effectiveEndAt})):i.push({kind:"not_covered",...p,reason:"no_sales_line"})}const _=!!g&&g.termMonths>=3&&(g.renew==="term"||n<tt(f,{...g,renew:"none"},f)),h=l.to==null&&_?Xo(f,g,n):null;if(h!=null&&h-n<=o&&i.push({kind:"notice_due",...p,deadline:h}),g&&g.termMonths>=1&&d.changeWindowDays){const b=Kn(f,g,n)+d.changeWindowDays*zt;b>n&&b-n<=s&&i.push({kind:"change_window",...p,closesAt:b})}const y=r.invoiced?.get(d.id);if(d.expected==="variable"&&y&&y.length>=2){const b=[...y].sort((v,T)=>v.from-T.from),I=b[b.length-1];Ra(b.slice(0,-1).map(v=>v.cents),I.cents)&&i.push({kind:"variable_jump",...p,cents:I.cents})}}}return i}const gr=["vendorSku","gtin","description","brand","group","cost","list","currency","stock","leadDays","lotSize","dropship"],Na={day:864e5,week:7*864e5,month:31*864e5},Da=10;function xh(e,t){const n=(e[0]??[]).map(a=>a.trim().toLowerCase()),r={},o=[];for(const a of gr){const c=t[a]?.trim();if(!c)continue;const u=n.indexOf(c.toLowerCase());u===-1?o.push(c):r[a]=u}const s=[],i=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((a,c)=>{const u=c+2,d=v=>{const T=r[v];return T===void 0?"":(a[T]??"").trim()},l=d("vendorSku"),p=kt(d("gtin"));if(!l&&!p){i.push({line:u,message:"feed_row_no_key"});return}const g=d("cost")?nn(d("cost")):void 0;if(d("cost")&&g===void 0){i.push({line:u,message:"feed_row_price"});return}const f=d("list")?nn(d("list")):void 0,m=d("stock"),_=Number(m.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:m&&/\d/.test(m)&&Number.isFinite(_)?Math.max(0,_):null,y=Number(d("leadDays")),b=Number(d("lotSize")),I=wh(d("dropship"));s.push({line:u,...l?{vendorSku:l}:{},...p?{gtin:p}:{},...d("description")?{description:d("description")}:{},...d("brand")?{brand:d("brand")}:{},...d("group")?{group:d("group")}:{},...g!==void 0?{costCents:g}:{},...f!==void 0?{listCents:f}:{},...d("currency")?{currency:d("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...d("leadDays")&&Number.isFinite(y)?{leadDays:y}:{},...Number.isInteger(b)&&b>1?{lotSize:b}:{},...I?{dropship:I}:{}})}),{rows:s,errors:i,missingHeaders:o})}function wh(e){const t=e.toLowerCase();if(t){if(/^(alleen|only)/.test(t))return"yes";if(/^(ja|yes|y|j|1|true|waar)$/.test(t))return"optional";if(/^(nee|no|n|0|false|onwaar)$/.test(t))return"no"}}function Ph(e,t,n){const r=new Map(t.filter(i=>i.vendorSku).map(i=>[i.vendorSku,i])),o=new Map(t.map(i=>[i.productId,i])),s=new Map;for(const i of n)for(const a of[i.gtin,...i.barcodes??[]]){const c=a?kt(a):void 0;c&&!s.has(c)&&s.set(c,i)}return e.map(i=>{const a=i.vendorSku?r.get(i.vendorSku):void 0;if(a)return{row:i,offer:a};const c=i.gtin?s.get(i.gtin):void 0;if(!c)return{row:i};const u=o.get(c.id);return u?{row:i,offer:u}:{row:i,product:c}})}function Lh(e,t,n,r=Da,o="week"){const s=new Map,i=[];let a=0;for(const u of e){const{row:d}=u;if(!("offer"in u)){i.push({line:d.line,...d.vendorSku?{vendorSku:d.vendorSku}:{},...d.gtin?{gtin:d.gtin}:{},...d.description?{description:d.description}:{},...d.brand?{brand:d.brand}:{},...d.group?{group:d.group}:{},...d.costCents!==void 0?{costCents:d.costCents}:{},..."product"in u?{productId:u.product.id}:{},...d.offer?{offer:d.offer}:{}});continue}const l=u.offer,p={qty:d.stock===void 0?l.availability?.qty??null:d.stock,at:n,source:"feed",...d.leadDays!==void 0?{leadDays:d.leadDays}:{},freshUntil:n+2*Na[o]},g={availability:p};d.costCents!==void 0&&d.costCents!==l.costCents&&(g.costCents=d.costCents),d.listCents!==void 0&&d.listCents!==l.listCents&&(g.listCents=d.listCents),d.currency&&d.currency!==l.currency&&(g.currency=d.currency),d.lotSize!==void 0&&d.lotSize!==l.lotSize&&(g.lotSize=d.lotSize),d.dropship&&d.dropship!==l.dropship&&(g.dropship=d.dropship),d.vendorSku&&!l.vendorSku&&(g.vendorSku=d.vendorSku),Object.keys(g).length>1||p.qty!==(l.availability?.qty??null)||a++;const m=g.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(g.costCents-l.costCents)/l.costCents*1e3)/10:0;s.set(l.id,{offerId:l.id,set:g,...m>r?{jump:{fromCents:l.costCents,toCents:g.costCents,percent:m}}:{}})}const c=t.filter(u=>u.availability?.source==="feed"&&!s.has(u.id)).map(u=>u.id);return{changes:[...s.values()],unchanged:a,gone:c,unmatched:i}}const Kh={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],brand:["merk","brand","fabrikant","manufacturer","vendor"],group:["productgroep","groep","categorie","category","product group","productgroup"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"],lotSize:["bestelveelvoud","veelvoud","lot size","order multiple","purchaselotsize"],dropship:["dropship","drop shipment","dropshipment","direct leveren"]};function $h(e){const t=e.map(s=>s.trim()),n=new Set,r={},o=s=>{for(const i of gr){if(r[i])continue;const a=t.find(c=>!n.has(c)&&Kh[i].some(u=>s(c.toLowerCase(),u)));a&&(r[i]=a,n.add(a))}};return o((s,i)=>s===i),o((s,i)=>s.startsWith(i)),r}const q=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function xa(e){const t=[];for(const n of e){const r=q(n.sku)||q(n.description),o=t.find(s=>(q(s.sku)||q(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Uh(e,t){const n=q(e.orderRef),r=q(e.supplierRef);return n&&t.find(o=>q(o.number)===n)||n&&t.find(o=>q(o.reference)===n)||r&&t.find(o=>q(o.reference)===r)||null}const Be={reference:0,sku:1,description:2,loose:3};function hr(e,t,n){const r=q(e.externalRef);if(r&&q(t.externalRef)===r)return{via:"reference",rank:Be.reference};if(r&&t.externalRef)return null;const o=q(e.sku);if(o&&n.filter(c=>c.id===t.offerId||!!t.productId&&c.productId===t.productId).map(c=>q(c.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Be.sku};const s=q(e.description),i=q(t.name);return!s||!i?null:s===i?{via:"description",rank:Be.description}:i.includes(s)||s.includes(i)?{via:"description",rank:Be.loose}:null}function wa(e,t,n){const r=t.filter(a=>a.kind==="product"),o=new Set,s=[],i=[];return e.forEach((a,c)=>{let u=null;for(const d of r){if(o.has(d.id))continue;const l=hr(a,d,n);l&&(!u||l.rank<u.rank)&&(u={line:d,...l})}if(!u){i.push(c);return}o.add(u.line.id),s.push({docIndex:c,poLineId:u.line.id,via:u.via})}),{matches:s,unmatched:i}}function Bh(e,t,n,r){const o=xa(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:i}=wa(o,t.lines,n),a=s.map(u=>({poLineId:u.poLineId,quantity:o[u.docIndex].quantity,serials:o[u.docIndex].serials,docIndex:u.docIndex,via:u.via})),c=[...ri({movement:"in",lines:a},t.lines,r).filter(u=>u.code!=="receipt_return_over_received").map(u=>({code:u.code,poLineId:u.poLineId,docIndex:a.find(d=>d.poLineId===u.poLineId)?.docIndex})),...i.map(u=>({code:"slip_unknown_item",docIndex:u}))];return{lines:a,problems:c}}function Fh(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const i=Number(String(s?.quantity??"").replace(",",".")),a=n(s?.description);if(!(i>0)||!a&&!n(s?.sku))return[];const c=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:a,quantity:i,serials:c}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const jh=864e5,io=e=>Date.parse([e,"T00:00:00Z"].join(""));function qh(e,t,n,{defaultPeriod:r,invoice:o}){const s=new Map(t.map(l=>[l.id,l.openQty])),i=new Map(t.map(l=>[l.id,l.receivedOpen])),a=[],c=[],u=[],d=new Set;for(const l of e){const p=l.period?{from:io(l.period.from),to:io(l.period.to)+jh}:r,g=E=>!E.term||E.term.from<=p.from&&(E.term.to==null||p.from<E.term.to),f=t.map((E,M)=>({candidate:E,order:M,hit:hr(l,E,n)})).filter(E=>!!E.hit).filter(E=>g(E.candidate)),m=f.filter(E=>ao(E.candidate,o)!==null).filter(E=>!(E.candidate.kind==="contract_line"&&d.has(E.candidate.id))).sort((E,M)=>E.hit.rank-M.hit.rank||E.order-M.order);if(!m.length){f.length?u.push(l.id):c.push(l.id);continue}const _=E=>{const M=ao(E,o);return{receiptLineId:l.id,businessEntityId:E.businessEntityId,...E.productId?{productId:E.productId}:{},...E.use?{use:E.use}:{},...E.customerCompanyId?{customerCompanyId:E.customerCompanyId}:{},...E.dimensions?{dimensions:E.dimensions}:{},...E.ledgerCategoryKey?{ledgerCategoryKey:E.ledgerCategoryKey}:{},...M!==1?{rate:M}:{}}},h=(E,M,B)=>E.variable?null:Dt({kind:"product",quantity:M,unitPriceCents:E.unitPriceCents,discountPercent:E.discountPercent,pricePer:E.pricePer,servicePeriod:B}),y=m[0];if(y.candidate.kind==="contract_line"){const E=y.candidate;d.add(E.id);const M=l.quantity??E.openQty??1;a.push({..._(E),target:{kind:"contract_line",contractId:E.parentId,lineId:E.id,period:p},via:y.hit.via,quantity:M,amountCents:l.netCents,expectedCents:h(E,M,p),overQuantity:E.openQty!=null&&M!==E.openQty});continue}const b=m.filter(E=>E.candidate.kind==="po_line"&&E.hit.rank===y.hit.rank),I=l.quantity??Math.max(1,s.get(y.candidate.id)??1),v=[];let T=I;for(const{candidate:E}of b){if(T<=0)break;const M=Math.max(0,s.get(E.id)??0);if(!M)continue;const B=Math.min(M,T);v.push({candidate:E,quantity:B,over:!1}),s.set(E.id,M-B),T-=B}if(T>0){const E=v[v.length-1];E?(E.quantity+=T,E.over=!0):v.push({candidate:y.candidate,quantity:T,over:!0})}const O=de(l.netCents,v.map(E=>E.quantity));for(const E of v){const M=i.get(E.candidate.id);M!=null&&(E.notReceived=E.quantity>M,i.set(E.candidate.id,M-E.quantity))}v.forEach((E,M)=>{a.push({..._(E.candidate),target:{kind:"po_line",orderId:E.candidate.parentId,lineId:E.candidate.id},via:y.hit.via,quantity:E.quantity,amountCents:O[M],expectedCents:h(E.candidate,E.quantity,l.period?p:void 0),overQuantity:E.over,...E.notReceived?{notReceived:!0}:{}})})}return{allocations:a,unmatched:c,needsRate:u}}function ao(e,t){return!t||!e.currency||e.currency===t.currency?1:e.currency==="EUR"&&t.fxRate&&t.fxRate>0?t.fxRate:null}const Pa={percent:1,cents:100};function Gh(e,t,{tolerance:n=Pa,needsRate:r=[]}={}){const o=[...t.map(i=>({receiptLineId:i,issue:"unmatched"})),...r.map(i=>({receiptLineId:i,issue:"fx_rate_required"}))],s=new Map;for(const i of e)s.set(i.receiptLineId,[...s.get(i.receiptLineId)??[],i]);for(const[i,a]of s){if(a.some(l=>l.overQuantity)&&o.push({receiptLineId:i,issue:"quantity"}),a.some(l=>l.notReceived)&&o.push({receiptLineId:i,issue:"not_received"}),a.some(l=>l.expectedCents===null))continue;const c=a.reduce((l,p)=>l+(p.expectedCents??0),0),u=Math.round(a.reduce((l,p)=>l+p.amountCents*(p.rate??1),0)),d=Math.max(Math.abs(c)*n.percent/100,n.cents);Math.abs(u-c)>d&&o.push({receiptLineId:i,issue:"price",expectedCents:c,amountCents:u})}return{ok:o.length===0&&e.length>0,issues:o}}function Vh(e){const t=[],n=new Map;for(const r of[...e].sort(Wh)){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 Wh=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Hh(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const La=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function Yh(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(b=>[b.key,b])),r=n.get(e.standardKey??"high"),o={},s={},i=(b,I)=>{if(!e.trace||!b||!I.ref)return;const v=s[b]??[];v.includes(I.ref)||(s[b]=[...v,I.ref])};let a;const c=(b,I,v)=>{if(!b||!v)return;const T=o[b]??{};T[I]=(T[I]??0)+v,o[b]=T,a&&i(b,a)},u=new Map,d=new Set;let l=0;for(const b of e.lines){const I=b.vatDate??b.taxPointDate;if(I<e.from||I>e.to)continue;const v=n.get(b.taxCode);if(!v){d.add(b.taxCode);continue}const T=v.boxes[t]?.[b.side];if(a=b,b.side==="sales"){if(c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",b.taxCents),v.icp){const O=[v.icpKind??"services",b.counterpartyCompanyId??""].join("|");u.set(O,(u.get(O)??0)+b.baseCents)}}else if(v.selfAssessed){const O=r?ar(r,b.taxPointDate)??0:0,E=Math.round(b.baseCents*O/100);c(T?.base,"baseCents",b.baseCents),c(T?.tax,"taxCents",E),l+=E,E&&i("5b",b)}else l+=b.taxCents,b.taxCents&&i("5b",b)}const p=La.filter(b=>b<"5"),g=p.reduce((b,I)=>b+(o[I]?.taxCents??0),0);o["5a"]={taxCents:g},o["5b"]={taxCents:l},o["5c"]={taxCents:g-l},o["5g"]={taxCents:g-l};const f=b=>Math.trunc(b/100),m=b=>b>=0?Math.ceil(b/100):Math.floor(b/100),_={};for(const b of p){const I=o[b];I&&(_[b]={...I.baseCents!==void 0?{base:f(I.baseCents)}:{},...I.taxCents!==void 0?{tax:f(I.taxCents)}:{}})}const h=p.reduce((b,I)=>b+(_[I]?.tax??0),0),y=m(l);return _["5a"]={tax:h},_["5b"]={tax:y},_["5c"]={tax:h-y},_["5g"]={tax:h-y},{boxes:o,euros:_,icp:[...u.entries()].filter(([,b])=>b!==0).map(([b,I])=>{const[v,T]=b.split("|");return{...T?{counterpartyCompanyId:T}:{},kind:v,baseCents:I}}),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function zh(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,i)=>new Date(Date.UTC(s,i,0)).getUTCDate();return Array.from({length:12/n},(s,i)=>{const a=i*n+1,c=a+n-1,u=c===12?e+1:e,d=c===12?1:c+1;return{label:t==="quarter"?`Q${i+1} ${e}`:t==="month"?`${e}-${r(a)}`:String(e),from:`${e}-${r(a)}-01`,to:`${e}-${r(c)}-${r(o(e,c))}`,dueOn:t==="year"?`${e+1}-03-31`:`${u}-${r(d)}-${r(o(u,d))}`}})}const Xh=e=>new Date(Date.parse(`${e}T00:00:00Z`)+864e5).toISOString().slice(0,10);function Qh(e,t,n){const r=n.filter(s=>s.filedAt<=t).reduce((s,i)=>i.to>s?i.to:s,""),o=r?Xh(r):"";return o>e?o:e}class yr extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Zh=/^\{\{\s*([\w.]+)\s*\}\}$/,Jh=/\{\{\s*([\w.]+)\s*\}\}/g,ey=/\$[A-Za-z_][\w]*\.[\w.]+/;function ty(e,t,n={}){return pt(e,t,n)}function pt(e,t,n={}){return typeof e=="string"?ny(e,t,n):Array.isArray(e)?e.map(r=>pt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,pt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function ny(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(ey);if(s)throw new yr(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Zh);if(o){const s=co(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Jh,(s,i)=>{const a=co(t,i,s,n);return a==null?"":typeof a=="object"?JSON.stringify(a):String(a)})}function co(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new yr(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return ry(e,t)}function ry(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const oy=new Set(["filled","empty"]);function sy(){return{kind:"rule",op:"==",varPath:"",value:""}}const iy=new Set(["==","!=",">","<",">=","<="]);function Xt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function uo(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ka(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=kn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function kn(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const i=kn(s);if(!i)return null;o.push(i)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Xt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=kn(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Xt(s)||!uo(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(iy.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Xt(o)||!uo(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function We(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?We(e.children[0]):{[e.op]:e.children.map(We)}:e.kind==="not"?{"!":We(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 ay(e){const t=Ka(e);return t&&On(t)||null}function On(e){if(e.kind==="group"){const t=e.children.map(On).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${On(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Qt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function cy(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,i]=o.split("/"),a=i===void 0?1:Number(i);if(!Number.isInteger(a)||a<1)return null;let c=t,u=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(c=Number(d),u=l===void 0?c:Number(l),!Number.isInteger(c)||!Number.isInteger(u)||(l===void 0&&i!==void 0&&(u=n),c<t||u>n||c>u))return null}for(let d=c;d<=u;d+=a)r.add(d)}return r.size?r:null}function br(e){const t=e.trim().split(/\s+/);if(t.length!==Qt.length)return null;const n=[];for(let c=0;c<Qt.length;c++){const u=Qt[c],d=t[c];if(!u||d===void 0)return null;const l=cy(d,u.min,u.max);if(!l)return null;n.push(l)}const[r,o,s,i,a]=n;return a.has(7)&&a.add(0),{minute:r,hour:o,dayOfMonth:s,month:i,dayOfWeek:a,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function uy(e){return br(e)!==null}function $a(e,t){const n=br(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 Ua="@schedule",Mn=3;function Ba(e,t,n){const r=[],o=e.depth??0;if(o>=Mn)return{matched:[],skipped:t.map(a=>({ruleId:a.id,reason:`keten te diep (${o} van ${Mn})`}))};const s={event:e.payload,subject:e.subject??{}},i=[];for(const a of t){if(!a.enabled){r.push({ruleId:a.id,reason:"staat uit"});continue}if(a.trigger.kind==="schedule"){if(e.name!==Ua){r.push({ruleId:a.id,reason:"luistert op de klok"});continue}const c=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(c)){r.push({ruleId:a.id,reason:"tik zonder tijdstip"});continue}if(!$a(a.trigger.cron,new Date(c))){r.push({ruleId:a.id,reason:`niet aan de beurt (${a.trigger.cron})`});continue}}else if(a.trigger.kind!=="event"){r.push({ruleId:a.id,reason:`trigger "${a.trigger.kind}" draait hier niet`});continue}else if(a.trigger.name!==e.name){r.push({ruleId:a.id,reason:`luistert op ${a.trigger.name}`});continue}if(e.causedByRule===a.id){r.push({ruleId:a.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(a.when??null,s)){r.push({ruleId:a.id,reason:"voorwaarde niet waar"});continue}i.push({rule:a,idempotencyKey:`${e.id}:${a.id}:${a.version}`})}return{matched:i,skipped:r}}function ly(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function dy(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Ba(n,r,t),i=o.flatMap(u=>u.rule.then.map(d=>d.action)),a=e.expected?.actions??[];if(i.length===a.length&&i.every((u,d)=>u===a[d]))return{caseId:e.id,ok:!0};const c=s.map(u=>`${u.ruleId}: ${u.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:i,note:a.length?`verwacht [${a.join(", ")}], kreeg [${i.join(", ")}]${c?` — ${c}`:""}`:`mocht niet vuren, maar deed [${i.join(", ")}]`}}function fy(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Fa(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==fy(e,n))}function py(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Fa(r,t).length)?"corrected":"kept"}function my(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function gy(e){return`subject.${e.path}`}function hy(e,t){return e.events.find(n=>n.name===t)}function yy(e,t){return e.filter(n=>ya(t,n.path)===void 0).map(n=>n.path)}const Rn=6e4,by=36e5,Ne=864e5,ja=800;function lo(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ne+by}function _y(e){const t=new Date(e).getUTCFullYear();return e>=lo(t,2)&&e<lo(t,9)}function qa(e,t){const n=t.dst==="eu"&&_y(e)?60:0;return(t.utcOffsetMinutes+n)*Rn}function Iy(e){return(e+3)%7+1}function Ga(e,t){const n=qa(e,t),r=e+n,o=Math.floor(r/Ne);if(!t.days.includes(Iy(o)))return null;const s=o*Ne;return{open:s+t.fromMinutes*Rn-n,close:s+t.toMinutes*Rn-n}}function Va(e,t){const n=qa(e,t),r=e+n;return(Math.floor(r/Ne)+1)*Ne-n}function mt(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<ja&&o<t;s++){const i=Ga(o,n);if(i){const a=Math.max(o,i.open),c=Math.min(t,i.close);c>a&&(r+=c-a)}o=Va(o,n)}return r}function wt(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<ja;s++){const i=Ga(o,n);if(i){const a=Math.max(o,i.open);if(i.close>a){const c=i.close-a;if(r<=c)return a+r;r-=c}}o=Va(o,n)}return e+t}function Ey(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const gt=1,ht=2,yt=4;function Sy(e){return e==="snoozed"?gt:ht}function Pt(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const Ay=["speed_of_answer","first_response","next_response","resolution","close"],vy=["snoozed","waiting_for_customer"],Cy=6e4,Wa=["speed_of_answer","first_response","next_response"],Ty=[...Wa,"resolution","close"];function Pe(e){return e.state==="running"||e.state==="paused"}function ky(e,t){return Pe(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function fo(e){return Pe(e)?{state:"void"}:null}function Oy(e,t,n,r){if(!Pe(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:mt(n,e.dueAt,r)}}function My(e,t,n,r){if(!Pe(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:wt(n,e.remainingMs,r)}}function Ry({event:e,at:t,now:n,clocks:r,profile:o}){const s=Pt(o),i=Math.min(t,n),a=r.map(h=>({...h})),c=[],u=(h,y)=>{y&&(c.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},d=h=>{for(const y of a)y.metric===h&&u(y,ky(y,i))},l=h=>{for(const y of a)h.includes(y.metric)&&u(y,fo(y))},p=h=>{for(const y of a)u(y,Oy(y,h,i,s))},g=h=>{for(const y of a)u(y,My(y,h,i,s))},f=h=>a.reduce((y,b)=>b.metric===h?Math.max(y,b.attempt):y,0)+1,m=h=>a.some(y=>y.metric===h&&Pe(y)),_=(h,y)=>{const b=o.targets.find(v=>v.metric===h);if(!b)return;const I=b.minutes*Cy;c.push({op:"start",metric:h,attempt:f(h),startedAt:y,targetMs:I,dueAt:wt(y,I,s)})};switch(e){case"apply":{for(const h of a)h.profileId!==o.id&&u(h,fo(h));for(const h of o.targets){if(h.metric==="next_response")continue;a.some(b=>b.metric===h.metric&&b.profileId===o.id)||_(h.metric,i)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&p(ht);break}case"inbound":{g(ht),!m("first_response")&&!m("next_response")&&_("next_response",i);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Wa);break;case"reopened":m("resolution")||_("resolution",i),m("close")||_("close",i);break;case"snoozed":o.pauseOn.includes("snoozed")&&p(gt);break;case"unsnoozed":g(gt);break;case"hold":p(yt);break;case"unhold":g(yt);break;case"discarded":l(Ty);break}return c}function Ha(e){return e.state==="running"||e.state==="paused"}function Ny(e){return(e.pauseBits&yt)!==0}function bt(e,t){const n=Pt(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-mt(e.dueAt,t,n):mt(t,e.dueAt,n)}function Dy(e,t){return e.state==="paused"?wt(t,e.remainingMs,Pt(e)):e.dueAt}function xy(e,t){const n=e.filter(Ha);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,i)=>bt(i,t)<bt(s,t)?i:s)}function wy(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=bt(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Py(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 Ya="strategy_item";function _r(e){return`${Ya}:${e}`}function Ly(e,t=25){const n=new Set([_r(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Ky(e){return e?[...e.ancestorKeys??[],_r(e.id)]:[]}const Le=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],za=999,Xa=7;function Qa(e,t=Le){return t.find(n=>n.key===e)}function _t(e,t=Le){return Qa(e,t)?.order??za}function $y(e,t,n=Le){return _t(t,n)<=_t(e,n)}function Uy(e,t=Le){const n=_t(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function By(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const Nn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Fy(e){return Nn[e]??"open"}function jy(e){return Object.keys(Nn).filter(t=>e.includes(Nn[t]))}const qy=864e5,Lt=e=>e<=0?0:e>1?1:e;function Gy(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,i=o-r;return(n==="down"?i<0:i>0)?Lt((t-r)/i):s?1:0}function Vy(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Lt((t-n)/(r-n))}const Za=.1,Ja=.25;function Wy(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=Ja?"off_track":n>=Za?"at_risk":"on_track"}function Hy(e,t){if(t)return Lt(e/t)}function Yy(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Lt(t.reduce((n,r)=>n+r,0)/t.length)}function zy(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Xa)*qy,o=t-n-r;return o>0?o:0}function Xy(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function Qy(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 Zy(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Jy(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 eb(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function tb(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 ec(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function nb(e,t){const n=ec(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 rb(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function ob(e){return e.filter(t=>!t.archived).sort(tc)}function tc(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const nc=20,rc=20,He=300;function ce(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function oc(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=He)return t;const n=t.slice(0,He),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>He*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function sb(e,t){const n=oc(t.text),r=ce(n);if(!r||(e.examples??[]).some(i=>ce(i)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(i=>ce(i.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const i=[...o];return i[s]={...i[s],corrected:!0,addedAt:t.addedAt},po(i)}return po([{...t,text:n},...o]).slice(0,rc)}function po(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function ib(e,t){const n=ce(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>ce(s)===n)?r:[...r,t].slice(-nc),exampleCandidates:sc(e,t)}}function sc(e,t){const n=ce(t);return(e.exampleCandidates??[]).filter(r=>ce(r.text)!==n)}function ic(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function ab(e,t){return e.filter(n=>ic(n,t))}const ac=["apps","settings","wake"],Kt="businessEntityId";function cb(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([...cc.map(s=>s.key),...ac,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function ub({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 cc=[{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 lb(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 db({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 uc=["invoice","credit_note"];function fb(e){return!!e.issuedAt&&uc.includes(e.kindKey)}function pb(e,t="sales"){const n=i=>e.totals?.byRate?.find(a=>a.taxRateKey===i),r=e.issuedPaper?.counterparty,o=r?.address??e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" ");return{sourceApp:t,documentId:e.id,...e.businessEntityId?{path:`/apps/${t}/${G(e.kindKey).path}/${e.id}?${Kt}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId,...e.number?{number:e.number}:{},counterparty:{companyId:r?.companyId||Tt(e),...r?.number?{number:r.number}:{},name:r?.name??"",...r?.vatNumber?{vatNumber:r.vatNumber}:{},...r?.kvkNumber?{kvkNumber:r.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:ae(e.issuedAt??Date.now()),...e.dueAt?{dueDate:ae(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const a=e.taxOverrideKey??i.taxRateKey,c=n(a);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:a,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dimensions},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:ae(i.servicePeriod.from),to:ae(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function mb(e,t={}){const n=G(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0,byRate:[]};return{customer:{name:t.companyName??"",contact:t.contactName??"",vat_number:t.companyVatNumber??"",number:t.companyNumber??"",address:yb(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:ge(e.issuedAt),valid_until:ge(e.expiresAt),due_date:ge(e.dueAt),delivery_date:ge(e.deliveredAt),period_from:ge(e.periodFrom),period_to:ge(e.periodTo),payment_term:e.paymentTerm?.label??"",reverse_charge:r.byRate.some(o=>o.kind==="reverse_charge"||o.taxRateKey==="reverse_charge"),note:e.introText??"",terms:e.termsText??""},totals:{net:J(r.netCents),tax:J(r.taxCents),gross:J(r.grossCents)}}}function gb(e,t=[],n=lc){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=u=>t.find(d=>d.key===u)?.percent??0,s=(e.lines??[]).some(u=>u.kind==="product"&&(u.discountPercent??0)>0),i=u=>s?[u.discountPercent?[String(u.discountPercent).replace(".",","),"%"].join(""):""]:[],a={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},...s?[{label:n.discount,align:"right"}]:[],{label:n.net,align:"right"}],rows:(e.lines??[]).map(u=>u.kind==="text"?[u.name,"","",...s?[""]:[],""]:[hb(u.name,u.description,u.optional,n.optional),bb(u,n),Vn(u)?"":u.pricePer?[J(u.unitPriceCents),n.per[u.pricePer]].join(" "):J(u.unitPriceCents),...i(u),J(u.netCents)])},c={block_id:"totals",type:"totals",rows:[{label:n.net,amount:J(r.netCents)},{label:n.gross,amount:J(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(u=>({label:`${n.tax} ${u.percent??o(u.taxRateKey)}%`,amount:J(u.taxCents)}))};return{lines:[a],totals:[c]}}const lc={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",discount:"Korting",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function hb(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function yb(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function bb(e,t){const n=Vn(e);return n?[mo(n.amount),t.units[n.unit]??n.unit].join(" "):mo(e.quantity)}function mo(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ge(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function dc(e){const t=G(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Ib[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${G(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:go[n]??go.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"reverse_charge",type:"paragraph",text:"Btw verlegd. Btw-nummer afnemer: {customer.vat_number}."},{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:ho[n]??ho.quote}]}const _b=e=>({note:{key:`${G(e).key}.note`,exists:!0},period:{key:`${G(e).key}.period_from`,exists:!0},reverse_charge:{key:`${G(e).key}.reverse_charge`,exists:!0}}),Ib={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},go={quote:`Beste {customer.contact},
13
13
 
14
14
  Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
15
15
 
@@ -17,36 +17,36 @@ Hierbij de bevestiging van uw opdracht.`,invoice:`Beste {customer.contact},
17
17
 
18
18
  Hierbij onze factuur. Hieronder vindt u de specificatie.`,credit_note:`Beste {customer.contact},
19
19
 
20
- Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},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,`
20
+ Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},ho={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."},Eb=dc("quote"),fc=["direct_debit","cash","card"],pc=7,Sb={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},mc=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function gc(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0)||e.paymentMethod&&fc.includes(e.paymentMethod))return null;const r=[...t.steps].sort((a,c)=>a.level-c.level),o=r.find(a=>a.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,i=mc(ae(s),o.afterDays);return i<=n?{row:e,step:o,dueOn:i}:null}const hc=(e,t)=>e.dueAt!=null&&e.openCents>0&&!!e.paymentMethod&&fc.includes(e.paymentMethod)&&mc(ae(e.dueAt),pc)<t;function Ab(e,t,n){const r=[],o=[],s=[];for(const i of e){hc(i,n)&&s.push(i);const a=gc(i,t,n);a==="done"?o.push(i):a&&r.push(a)}return{due:r,waiting:o,uncollected:s}}const yc=Rt.map(e=>e.key),bc="product",_c="agreement";function Ic(e,t){return`${e}:${t}`}function vb(e){return`${bc}:${e}`}function Ec(e,t){return`/apps/sales${e}?${Kt}=${encodeURIComponent(t)}`}function Cb(e,t){const n=e.businessEntityId||t;if(n)return Ec(`/${G(e.kindKey).path}/${e.id}`,n)}function Tb(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${Kt}=${encodeURIComponent(n)}`:void 0}function kb(e){return`${_c}:${e}`}function Ob(e,t){const n=e.businessEntityId||t;return n?Ec(`/agreement/${e.id}`,n):void 0}function Mb(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return yc.includes(n)?e.slice(t+1):void 0}function Rb(e){const t=new Set([Ic(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.invoiceTo?.companyId&&t.add(`company:${e.invoiceTo.companyId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Nb=4;function Db(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function xb(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const wb=["cash","credit","direct_debit","card","other"],Sc=(e,t)=>!e.direction||e.direction===t;function Pb(e,t,n={}){const r=e.filter(s=>!s.archived&&Sc(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 Lb(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Kb(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const $b=[{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 Ir(e){return e.settlement?.state??"unpaid"}function Ac(e){const t=Ir(e);return t==="paid"||t==="overpaid"}function Er(e){return!!e.issuedAt&&e.status==="open"&&!Ac(e)}function Ub(e,t){return!Er(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function Bb(e){return e.totals?.grossCents??0}function Fb(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 jb(e,t,n){const r=Bb(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const vc=["current","d1_30","d31_60","d61_90","d90_plus"],qb=864e5;function Gb(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/qb)}function Vb(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?Gb(ae(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:Tt(e),...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:Ir(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{},...e.paymentTerm?.method?{paymentMethod:e.paymentTerm.method}:{}}}function Cc(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Wb(e){const t=Object.fromEntries(vc.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[Cc(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Hb="receivables.company";function Yb(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 zb(e){return e.type==="agent"}const Tc=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Xb(e){return Tc.includes(e)}const Qb="WORK_COMMENT_ADDED",Zb="WORK_ITEM_ASSIGNED",Jb="WORK_ITEM_STATUS_CHANGED";function e_(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))/vi)}function t_(e,t){if(e.closedAt!=null)return{score:ie,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ie,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Re[s]>0&&(r+=Re[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const i=e_(e.dueDate,t.now);i<0?(r+=35,o.push("overdue")):i===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const $t=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],n_=$t.map(e=>e.key);function r_(e){return e?.types?.length?e.types:$t}function o_(e,t){return t.find(n=>n.key===e)}function s_(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function i_(...e){return e.map(t=>$t.find(n=>n.key===t)).filter(t=>!!t)}const kc="work_item",Oc="work_project",Mc="work_activity",a_="work_cycle";function Rc(e){return`${kc}:${e}`}function Sr(e){return`${Oc}:${e}`}function c_(e){return`${Mc}:${e}`}function u_(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function l_(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 d_(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function f_(e,t=25){const n=new Set([Rc(e.id)]);e.projectId&&n.add(Sr(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 p_(e){return[Sr(e.id)]}const Ut=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],Ar=Ut.map(e=>e.key);function Nc(e){return e?.statuses?.length?e.statuses:Ut}function Dc(e,t){return t.find(n=>n.key===e)?.category??"todo"}function m_(e,t){return t.find(n=>n.key===e)}function g_(e){const t=Nc(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:xc(t)[0]?.key??Ut[0].key}function xc(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function h_(e,t){return Dc(e,t)==="done"}function wc(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function y_(e,t){const n=wc(e)||"status",r=new Set([...t,...Ar]);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 b_(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}Ar.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 __(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function I_(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 E_=["day","week","month"];function S_(e){const t=e;if(!t||!E_.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 Pc(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 A_(e,t,n){const r=Pc(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function v_(e){return e.startDate??Number.MAX_SAFE_INTEGER}function C_(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const T_=["statusKeys","typeKeys","labels","priority","assignees"],k_=["blockedOnly","watchingOnly","reportedByMe"],O_=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],M_=["list","board","calendar","workload"],R_=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),N_=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function Lc(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?R_.has(t)?"image":t==="application/pdf"?"pdf":N_.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const Te=1024*1024,Kc={image:5*Te,pdf:20*Te,text:1*Te,audio:20*Te},D_=25*Te,x_=5;function w_(e,t){const n=Lc(e);return n==="unsupported"?"unsupported":t>Kc[n]?"too-large":null}const P_="ai-tool";function L_(e){return e.access==="read"?"idempotent":e.reversible??"none"}function vr(e){return e.access!=="read"&&e.effect!=="internal"}function $c(e){return`${e.kind}:${e.id||e.url||e.title}`}function K_(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const i=$c(s);n.has(i)||(n.add(i),r.push(s),o.push(i))}return{sources:r,keys:o}}const $_="assist-source",U_=["blocking","due","open"];function B_(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const yo={blocking:0,due:1,open:2};function F_(e,t){return yo[e.band??"open"]-yo[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const j_="bookable-source",q_="bookkeeping",G_={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},V_={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 W_(e){return`oc:${e}`}function H_(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Y_(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function z_(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Uc(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(i=>!n.has(i.intent)).map(i=>Q_(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 Bc(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 X_(e,t){const n=Bc(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Q_(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Z_(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Uc(r,o))n.push({channel:r,description:o,capability:s})}return n}function J_(e,t){return t.filter(n=>n.capability.intent===e)}function Fc(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function eI(e,t){return Fc(e.scheme,t)}function tI(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 nI(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 rI=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function oI(e){const t=rI.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 jc=(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))(jc||{});const sI={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 iI(e){return e?sI[e]??"note":"note"}const aI="message_window",cI="message_templates",uI={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},lI=(e,t)=>({intent:e,...t}),dI="remote_search",fI="message_reactions",pI={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},mI="connector",gI="context.collect";function hI(e,t){const n=t??yI(e),r=[];let o=[],s="",i=!1;for(let a=0;a<e.length;a++){const c=e[a];i?c==='"'&&e[a+1]==='"'?(s+='"',a++):c==='"'?i=!1:s+=c:c==='"'&&s===""?i=!0:c===n?(o.push(s),s=""):c===`
21
+ `||c==="\r"?(c==="\r"&&e[a+1]===`
22
+ `&&a++,o.push(s),s="",o.some(u=>u!=="")&&r.push(o),o=[]):s+=c}return o.push(s),o.some(a=>a!=="")&&r.push(o),r}function yI(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 bI={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 _I(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 bo(e,t);let i=s===0?o:o&63>>s;for(let a=1;a<=s;a++){const c=e[r+a];if(c>>6!==2)return bo(e,t);i=i<<6|c&63}n.push(i),r+=s+1}return qc(n)}function bo(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(bI[e[r]]??e[r]);return qc(n)}function qc(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}const w=e=>({type:"string",description:e}),x=e=>({type:"number",description:e}),Ye=e=>({type:"boolean",description:e}),X=w("Sheet name. Omit for the sheet the user is looking at."),_o=w("Slide id, as `inspect` reports it.");function D(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const Oe={undoable:!1,visible:!0},$={undoable:!0,visible:!0},Io={undoable:!1,visible:!0},It={undoable:!1,visible:!1},II=[D("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:x("1-based page number.")},["page"],Oe),D("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:w("Text to find."),next:Ye("Jump to the next match instead of the first.")},["query"],Oe),D("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],Oe),D("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:w("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],$),D("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],Io),D("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Io),D("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The note's text."),left:x("Distance from the left edge, in PDF points (72 per inch)."),top:x("Distance from the top edge, in PDF points."),width:x("Box width in points. Omit for a sensible default."),height:x("Box height in points. Omit for a sensible default."),fontSize:x("Font size in points. Omit for 12.")},["page","text","left","top"],It),D("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:x("1-based page number."),text:w("The exact phrase to highlight, as it appears in the page's text."),occurrence:x("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],It)],EI=[D("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:X,range:w("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],$),D("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:X,range:w("A1 notation."),formula:w("Including the leading `=`.")},["range","formula"],$),D("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:X,range:w("A1 notation."),bold:Ye("Bold on or off."),italic:Ye("Italic on or off."),fontSize:x("Point size."),fontColor:w("CSS colour, e.g. `#b91c1c`."),background:w("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:w("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],$),D("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:X,at:x("1-based row number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:X,at:x("1-based first row to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:X,at:x("1-based column number to insert before."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:X,at:x("1-based first column to delete."),count:x("How many. Omit for 1.")},["at"],$),D("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:X,range:w("A1 notation.")},["range"],$),D("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:X,range:w("A1 notation covering the rows to sort, header excluded."),column:x("1-based column *within the range*, not within the sheet."),ascending:Ye("Ascending. Omit for ascending.")},["range","column"],$),D("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:w("Name for the new sheet.")},["name"],$),D("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:w("Current name."),name:w("New name.")},["sheet","name"],$),D("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:w("Name of the sheet to delete.")},["sheet"],$),D("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:X,range:w("A1 notation to select. Omit to only switch sheets.")},[],Oe)],SI=[D("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:x("The offset the paragraph starts at, exactly as `inspect` prints it."),text:w("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],$),D("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:x("Character offset where the replaced text starts, as `inspect` reports offsets."),end:x("Character offset just past the last character to replace."),text:w("The replacement text. A newline starts a new paragraph.")},["start","end","text"],$),D("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:x("Character offset, as `inspect` reports offsets."),text:w("The text to insert.")},["index","text"],$),D("word.appendText",["word"],"Add text at the end of the document.",{text:w("The text to append.")},["text"],$),D("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:w("Paragraph text. Newlines start further paragraphs."),index:x("Character offset to insert at. Omit for the end of the document.")},[],$),D("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:x("Start character offset."),end:x("End character offset. Omit for a caret.")},["start"],Oe)],AI=[D("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:_o,element:w("Element id, as `inspect` reports it."),text:w("The new text.")},["slide","element","text"],It),D("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:_o,element:w("Element id."),left:x("Distance from the left edge, in pixels."),top:x("Distance from the top edge, in pixels."),width:x("Width in pixels."),height:x("Height in pixels.")},["slide","element"],It)],Cr=[...II,...EI,...SI,...AI];function vI(e){return Cr.filter(t=>t.kinds.includes(e))}function CI(e){return Cr.find(t=>t.op===e)}const Eo=/(?: {2,}|\\)$/,TI=/^\*\*([^*]+)\*\*\s+(.*)$/;function So(e){const t=TI.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function kI(e){const t=(e??"").replace(/\r\n/g,`
23
23
  `).split(`
24
- `),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(Yr(m)):r={style:f,items:[Yr(m)]}};let 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,`
24
+ `),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(p,g)=>{r&&r.style!==p&&o(),r?r.items.push(So(g)):r={style:p,items:[So(g)]}};let i=[],a=[];const c=()=>{if(i.length){const p=i.join("").trim();p&&n.push({type:"paragraph",text:p}),i=[]}},u=()=>{a.length&&(n.push({type:"quote",text:a.join(`
25
+ `)}),a=[])},d=()=>{c(),u(),o()};let l=0;for(;l<t.length;){const p=t[l]??"",g=p.match(/^```(\w*)\s*$/);if(g){d();const h=[];for(l++;l<t.length&&!/^```\s*$/.test(t[l]??"");)h.push(t[l]??""),l++;l++,n.push({type:"code",...g[1]?{lang:g[1]}:{},text:h.join(`
26
+ `)});continue}const f=p.match(/^(#{1,3})\s+(.*)$/);if(f){d(),n.push({type:"heading",level:f[1].length,text:f[2].trim()}),l++;continue}const m=p.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);if(m){d(),n.push({type:"image",url:m[2],...m[1]?{alt:m[1]}:{}}),l++;continue}if(/^\s*[-*]\s+/.test(p)){c(),u(),s("bulleted",p.replace(/^\s*[-*]\s+/,"")),l++;continue}if(/^\s*\d+\.\s+/.test(p)){c(),u(),s("numbered",p.replace(/^\s*\d+\.\s+/,"")),l++;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)){d(),n.push({type:"divider"}),l++;continue}if(/^>\s?/.test(p)){c(),o(),a.push(p.replace(/^>\s?/,"")),l++;continue}if(p.trim()===""){d(),l++;continue}u(),o();const _=Eo.test(p);i.push(p.replace(Eo,"").trim()+(_?`
27
+ `:" ")),l++}return d(),n}function OI(e,t){return Bn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
28
28
 
29
- `).trim()}const 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)?`![${to(Ft(r,"alt"))}](${jt(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(`
29
+ `).trim()}const MI="documents.describe",RI="documents.inspect",NI="documents.apply";function DI(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 xI="installation-id";function wI(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 PI(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const Ao="main",ke=e=>`${e.app}:${e.entry}`,Zt=e=>ke({app:e.app,entry:e.entry.id}),vo=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function LI(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:i}=e,a=new Set(t.map(S=>S.name)),c=new Map(r.map(S=>[S.key,S])),u=new Set(n.map(S=>S.key)),d=new Map,l=new Map,p=new Map;for(const S of t)for(const k of S.nav??[])for(const P of k.entries){const F={app:S.name,entry:P};if(d.set(Zt(F),F),k.workspace!=="apps"){l.set(k.workspace,[...l.get(k.workspace)??[],{item:F,section:k.section}]);continue}const z=p.get(S.name)??[],V=k.section??Ao;let te=z.find(L=>L.key===V);te||(te={key:V,items:[]},k.section&&(te.label={key:`${S.name}:section_${k.section}`}),z.push(te)),te.items.push(F),p.set(S.name,z)}const g=S=>{const k=c.get(S.key),P=new Map(S.sections.map(L=>[L,[]]));for(const{item:L,section:Y}of l.get(S.key)??[]){const oe=Y&&P.has(Y)?Y:S.sections[0];P.get(oe)?.push(L)}const F=k?.sections??[],z=new Set(F.flatMap(L=>(L.entries??[]).map(ke))),V=new Set((k?.excluded??[]).map(ke));return[...F.map(L=>L.key),...S.sections.filter(L=>!F.some(Y=>Y.key===L))].map(L=>{const Y=F.find(R=>R.key===L),oe=(Y?.entries??[]).flatMap(R=>d.get(ke(R))??[]),Ke=(P.get(L)??[]).filter(R=>!z.has(Zt(R)));return{key:L,label:Y?.label?{text:Y.label}:{key:`section_${L}`},items:[...oe,...Ke].filter(R=>!V.has(Zt(R)))}})},f=S=>(S.sections??[]).map(k=>({key:k.key,...k.label?{label:{text:k.label}}:{},items:(k.entries??[]).flatMap(P=>d.get(ke(P))??[])})),m=[...n.filter(S=>a.has(S.owner)).map(S=>({key:S.key,label:{key:`workspace_${S.key}`},icon:S.icon,order:S.order,sections:g(S)})),...r.filter(S=>!u.has(S.key)).map(S=>({key:S.key,label:{text:S.label??S.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:f(S)}))],_=new Set(m.flatMap(S=>[...vo(S.sections)])),h=S=>S.map(k=>({...k,items:k.items.filter(P=>(P.entry.permissions??[]).every(i))})).filter(k=>k.items.length>0),y=S=>o.hidden.includes(S)?!1:o.shown.includes(S)?!0:b(S),b=S=>{const k=c.get(S);if(k?.visibleByDefault===!1)return!1;const P=k?.audience?.teamIds;return!P||P.some(F=>s.includes(F))},I=m.map(S=>{const k=c.get(S.key);return{...S,label:k?.label?{text:k.label}:S.label,icon:k?.icon??S.icon,order:k?.order??S.order}}).sort((S,k)=>S.order-k.order),v=I.map(({order:S,...k})=>{const P=u.has(k.key)?"default":"own";return{...k,group:"workspaces",kind:P,customized:P==="default"&&c.has(k.key),visible:y(k.key),visibleByDefault:b(k.key)}}),T=I.filter(S=>y(S.key)).map(S=>({...S,sections:h(S.sections)})).filter(S=>S.sections.length>0).map(({order:S,...k})=>({...k,group:"workspaces"})),O=new Map;for(const S of t){const P=[...new Map((S.nav??[]).flatMap(z=>z.entries.map(V=>[V.id,V]))).values()].map(z=>({app:S.name,entry:z})),F=h(p.get(S.name)??[{key:Ao,items:P}]);F.length!==0&&O.set(S.name,{key:"apps",app:S.name,group:"apps",label:{text:S.displayName},icon:S.icon??"app-window",sections:F})}const E=[...O.values()].filter(S=>S.app&&(p.has(S.app)||!_.has(S.app))).sort((S,k)=>Co(S).localeCompare(Co(k))),M=new Map(n.map(S=>[S.key,S.owner])),B={};for(const S of T)for(const k of vo(S.sections))B[k]??=[],M.get(S.key)===k?B[k].unshift(S.key):B[k].push(S.key);for(const S of E)S.app&&(B[S.app]=[...B[S.app]??[],"apps"]);return{workspaces:[...T,...E],all:v,index:{visible:T.map(S=>S.key),byApp:B},ownColumn:S=>O.get(S),isWorkspaceKey:S=>u.has(S)||c.has(S)}}const Co=e=>"text"in e.label?e.label.text:e.label.key,KI="notification-source",$I=(e,t)=>`${e}.pref.${t}`,UI={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,Gc=["out_of_office"],Vc=e=>Gc.includes(e);function BI(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&&!Vc(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function FI(e,t){const n=t-e.lastSeenAt<Tr,r=n||Vc(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function jI(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 qI(e){return e.providerAvailable&&e.allowed}const GI="provisioning-source",VI={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status",subscriptions:"/provisioning/subscriptions",qualify:"/provisioning/qualify",accounts:"/provisioning/accounts",catalog:"/provisioning/catalog",quote:"/provisioning/quote"},WI="resources.describe",HI="resources.search",YI="resources.resolve",zI="resources.attached";function XI(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const QI="/provider/scope/related",ZI="/provider/scope/read",JI="/provider/scope/acts",Wc="auth";function Hc(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const De="/settings";function e0(e){return typeof e=="string"&&(e===De||e.startsWith(`${De}/`))}function t0(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?De:`${De}/${e.slice(0,t)}/${e.slice(t+1)}`}function n0(e){return typeof e!="string"||e===""||e==="/"?!0:Hc(e)===Wc}function r0(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yc(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${r0(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function zc(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,i)=>{if(s.startsWith(":")){const a=s.endsWith("?")?s.slice(1,-1):s.slice(1),c=r[i];c&&(o[a]=c)}}),o}function Xc(e){return e.publicBasePath??`/apps/${e.name}`}function o0(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Xc(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 Qc(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 Zc(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Yc(r.pattern).test(e)&&(!n||Qc(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...zc(n.pattern,e)}}:null}function s0(e,t){return Zc(e,t)!==null}const i0=10*1024*1024,a0=25*1024*1024,c0="sync-target",u0=20;function kr(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 Jc(e,t,n){return kr(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?vr(e):!0:!1}function l0(e){return e.produces==="draft"}function d0(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"&&kr(e)||t.mode==="draft"&&(vr(e)||e.access!=="read"&&!l0(e))?"hidden":t.gate&&Jc(e,t.gate,t.policy)?"held":"free"}const f0={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]"]},eu=e=>{let t=e;return Object.values(f0).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},tu=6e4,nu=8e3,ru=2,ou=.4,p0=3,m0=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function su(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<p0||m0.has(n)||t.add(n);return[...t]}function iu(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 au(e,t=tu){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=>eu(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const cu=60;function g0(e,t,n=cu){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 h0(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<nu)return{trigger:!1,reason:"too_soon"};const o=au(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<ru)return{trigger:!1,reason:"too_few_new"};const i=su(o.text);return i.length?r.lastQueryTerms?.length&&iu(i,r.lastQueryTerms)<ou?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:i,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const y0=["personal","organization","connections","flows","work","administration","ai"],b0="navNotice",Bt={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},uu="NL",_0=15,I0=8,E0=Array.from(new Set(Object.values(Bt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function To(e){if(e)return Bt[e.trim().toUpperCase()]}function ze(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function ko(e){if(e.length>_0)return null;for(const t of E0){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Bt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(ze(s,r))return`+${t}${s}`}return null}return e.length<I0?null:`+${e}`}function S0(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 A0(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function Dn(e,t){if(!e)return null;const n=S0(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return ko(o);if(o.startsWith("00"))return ko(o.slice(2));const s=To(t)??To(uu);if(!s)return null;const i=s.trunkPrefix;if(i&&o.startsWith(i)){const a=o.slice(i.length);return ze(a,s)?`+${s.callingCode}${a}`:null}if(o.startsWith(s.callingCode)){const a=o.slice(s.callingCode.length);if(ze(a,s))return`+${s.callingCode}${a}`}return!i&&ze(o,s)?`+${s.callingCode}${o}`:null}function v0(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function Or(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 C0(e){const t=Or(e);return t?t.slice(t.lastIndexOf("@")+1):null}const T0=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function lu(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 T0.has(n)&&t.length>=3?t.slice(-3).join("."):n}const du=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 k0(e){const t=lu(e);return t?du.has(t):!1}function O0(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function M0(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=Dn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=Dn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=Or(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const R0=[/<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],Oo=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,N0=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function D0(e){const t=e.split(`
30
+ `);for(let n=0;n<t.length;n++)if(N0.test(t[n])||Oo.test(t[n])&&t.slice(n+1,n+4).some(r=>Oo.test(r)))return t.slice(0,n).join(`
31
+ `).trim();return e}const x0=/^(?:https?:|mailto:|tel:)/i,w0=/^(?:https?:|cid:|data:image\/)/i;function Jt(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const P0=/(!\[[^\]]*\]\([^)]*\))/;function Mo(e){return e.replace(/\s+/g," ").trim().split(P0).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function en(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function L0(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Jt(r,"src");return w0.test(o)?`![${Mo(Jt(r,"alt"))}](${en(o)})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=Mo(o.replace(/<[^>]*>/g,"")),i=Jt(r,"href");return x0.test(i)?`[${s||en(i)}](${en(i)})`:s})}const K0=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,$0=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,U0=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function B0(e,t){return/<table\b/i.test(e)||e.includes(`
32
32
 
33
- |`)||t.includes("![")||t.length>200}const x_=40,P_={left:"---",center:":---:",right:"---:"};function L_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function $_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function K_(e){const t=[];for(const 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(`
33
+ |`)||t.includes("![")||t.length>200}const F0=40,j0={left:"---",center:":---:",right:"---:"};function q0(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function G0(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function V0(e){const t=[];for(const i of e.matchAll($0)){const a=[];for(const c of i[1].matchAll(U0)){const u=G0(c[3]);if(B0(c[3],u))return null;a.push({text:u,align:q0(c[2])})}if(a.length===0)return null;a.some(c=>c.text!=="")&&t.push(a)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(i=>i.length!==n))return null;const r=i=>`| ${i.map(a=>a.text).join(" | ")} |`,o=t[1].map(i=>j0[i.align]).join(" | "),s=t.slice(1).map(r).join(`
34
34
  `);return`
35
35
 
36
36
  ${r(t[0])}
37
37
  | ${o} |
38
38
  ${s}
39
39
 
40
- `}function 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
+ `}function W0(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 H0(e){let t=e;for(let n=0;n<F0;n++){const r=K0.exec(t);if(!r||r.index===void 0)break;const s=V0(r[1])??`
42
42
 
43
- ${U_(r[1])}
43
+ ${W0(r[1])}
44
44
 
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
+ `;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function Ro(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=H0(L0(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
47
47
 
48
48
  `),n=n.replace(/<\/(div|li|tr)>/gi,`
49
- `),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function 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(/&nbsp;/gi," ").replace(/&([a-z]+);/gi,(t,n)=>F_[n.toLowerCase()]??t).replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>ro(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>ro(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function so(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
49
+ `),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function No(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const Y0={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function Do(e){return e.replace(/&nbsp;/gi," ").replace(/&([a-z]+);/gi,(t,n)=>Y0[n.toLowerCase()]??t).replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&quot;/gi,'"').replace(/&#(\d+);/g,(t,n)=>No(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>No(parseInt(n,16))??t).replace(/&amp;/gi,"&")}function xo(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
50
50
  `).replace(/\n{3,}/g,`
51
51
 
52
- `).trim()}const fc=/<\s*(html|body|div|p|table|br|span)\b/i;function j_(e){return fc.test(e)}function G_(e){return pc(e,!1)}function W_(e){return pc(e,!0)}function pc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const 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;
52
+ `).trim()}const fu=/<\s*(html|body|div|p|table|br|span)\b/i;function z0(e){return fu.test(e)}function X0(e){return pu(e,!1)}function Q0(e){return pu(e,!0)}function pu(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const i of R0){const a=e.search(i);a>=0&&a<n&&(n=a)}const r=e.slice(0,n);let o=xo(Do(Ro(r,t)));return o||(o=xo(Do(Ro(e,t)))),D0(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=Ql;exports.ACTIVITY_CATALOG=ne;exports.ADOPT_COLUMNS=er;exports.AGING_BUCKETS=vc;exports.AGREEMENT_SCOPE_KIND=_c;exports.AGREEMENT_TRANSITIONS=Yo;exports.AI_ATTACHMENT_LIMITS=Kc;exports.AI_ATTACHMENT_MAX_PER_TURN=x_;exports.AI_ATTACHMENT_TURN_BUDGET=D_;exports.AI_CAPABILITIES=vt;exports.AI_TOOL_PROVIDER_GROUP=P_;exports.AI_VENDORS=$n;exports.ALLOWED_LINK_SCHEMES=us;exports.APP_PERMISSIONS=UI;exports.ARTICLE_SCOPE_KIND=ym;exports.ARTIFACT_MAX_BLOCKS=nt;exports.ARTIFACT_MAX_BODY_BYTES=cs;exports.ARTIFACT_MAX_CELL_LEN=he;exports.ARTIFACT_MAX_KPI_ITEMS=it;exports.ARTIFACT_MAX_LIST_ITEMS=rt;exports.ARTIFACT_MAX_TABLE_COLUMNS=st;exports.ARTIFACT_MAX_TABLE_ROWS=ot;exports.ARTIFACT_MAX_TEXT_LEN=Ct;exports.ASSET_GROUP_SEEDS=Wf;exports.ASSIGNMENT_SCOPE_KIND=gs;exports.ASSIST_BANDS=U_;exports.ASSIST_SOURCE_PROVIDER_GROUP=$_;exports.ATTENTION_STATUSES=Ni;exports.AT_RISK_GAP=Za;exports.AUTH_APP_NAME=Wc;exports.AUTO_READY_MIN_PROPOSALS=Ca;exports.AUTO_READY_RATE=Ta;exports.ActivityTypeRegistry=Uo;exports.BOOKABLE_KINDS=uc;exports.BOOKABLE_ROUTES=G_;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=j_;exports.BOOKKEEPING_PROVIDER_GROUP=q_;exports.BOOKKEEPING_ROUTES=V_;exports.BUILT_IN_ONLY=Du;exports.BULK_PENALTY=Di;exports.BUSINESS_ENTITY_LIST_SERVICE=Td;exports.BUSINESS_ENTITY_PARAM=Kt;exports.CADENCE_FLOOR_MS=nu;exports.CADENCE_MIN_NEW_SEGMENTS=ru;exports.CADENCE_MIN_NOVELTY=ou;exports.CADENCE_WINDOW_MS=tu;exports.CAPITALIZATION_THRESHOLD_CENTS=ei;exports.CLASSIFY_VARS=uh;exports.CLEARABLE_FIELDS=Fp;exports.COMPANY_ADDRESS_KINDS=rf;exports.COMPANY_RECEIVABLES_SERVICE=Hb;exports.COMPANY_ROLE_KINDS=cf;exports.CONNECTOR_PROVIDER_GROUP=mI;exports.CONTEXT_COLLECT_SERVICE=gI;exports.CORE_DIMENSIONS=kl;exports.CRM_ACTIVITY_SCOPE_KIND=bf;exports.CRM_CALL_CHANNELS=If;exports.CRM_CALL_LOGGED=js;exports.CRM_CALL_OUTCOMES=Ef;exports.CRM_NOTE_ADDED=Fs;exports.CRM_STAGE_CHANGED=_f;exports.CUSTOM_RESOLUTION_PREFIX=pm;exports.CommunicationScheme=jc;exports.DAY_MS=vi;exports.DEFAULT_CHECK_IN_DAYS=Xa;exports.DEFAULT_DUNNING_POLICY=Sb;exports.DEFAULT_FORECAST_WEEKS=ua;exports.DEFAULT_JUMP_PERCENT=Da;exports.DEFAULT_MEMORY_BUDGET=ug;exports.DEFAULT_NUMBER_PADDING=Nb;exports.DEFAULT_PHONE_REGION=uu;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Eb;exports.DEFAULT_TAX_RATE_KEY=dg;exports.DEFAULT_TEMPLATE_CONDITIONS=_b;exports.DEFAULT_TOLERANCE=Pa;exports.DEFAULT_WORKSPACES=cc;exports.DEMAND_SOURCE_PROVIDER_GROUP=Tg;exports.DIMENSION_KEYS=qn;exports.DOCUMENT_APPLY_SERVICE=NI;exports.DOCUMENT_DESCRIBE_SERVICE=MI;exports.DOCUMENT_INSPECT_SERVICE=RI;exports.DOCUMENT_MAX_BLOCKS=nt;exports.DOCUMENT_MAX_BODY_BYTES=cs;exports.DOCUMENT_MAX_CELL_LEN=he;exports.DOCUMENT_MAX_KPI_ITEMS=it;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=fn;exports.DOCUMENT_MAX_LIST_ITEMS=rt;exports.DOCUMENT_MAX_RECIPIENT_LINES=as;exports.DOCUMENT_MAX_TABLE_COLUMNS=st;exports.DOCUMENT_MAX_TABLE_ROWS=ot;exports.DOCUMENT_MAX_TEXT_LEN=Ct;exports.DOCUMENT_MAX_TOTALS_ROWS=pn;exports.DOCUMENT_OPERATIONS=Cr;exports.DRAFT_FIELDS=Bp;exports.DUTCH_SLOT_LABELS=lc;exports.EMPTY_WORKFLOW=gh;exports.ENABLED_TRANSACTION_KINDS=tr;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=zs;exports.FEATURE_MESSAGE_REACTIONS=fI;exports.FEATURE_REMOTE_SEARCH=dI;exports.FEED_COLUMNS=gr;exports.FEED_EVERY_MS=Na;exports.FIXED_KINDS=xt;exports.FIXED_LEVELS=Le;exports.FIXED_TYPES=$t;exports.FIXED_UNITS=zd;exports.FOLLOW_UP_HOURS=xi;exports.FROZEN_WRITABLE_FIELDS=$p;exports.HOUR_MS=Ai;exports.HTML_BODY_RE=fu;exports.INELIGIBLE=ie;exports.INSTALLATION_HEADER=xI;exports.INTERACTION_KIND=Ia;exports.InteractionParticipantRole=uI;exports.KB_FALLBACK_LOCALE=Vi;exports.KB_LOCALES=ft;exports.LEAD_STATUSES=ff;exports.LEDGER_TEMPLATES=Dm;exports.LEGAL_FORMS=kd;exports.LIFECYCLE_STAGES=df;exports.LIVE_STATUSES=pe;exports.LOCALES=ft;exports.LOOSE_STATUSES=Ut;exports.MAIL_HINT_HEADERS=Mi;exports.MANUAL_JOURNAL_KINDS=zm;exports.MANUAL_PRICE_SOURCE=Rs;exports.MANUAL_STOCK_FRESH_MS=vh;exports.MAX_ACTIONS=qe;exports.MAX_ASSIGNMENT_TURNS=hs;exports.MAX_BLOCKS=tn;exports.MAX_CHOICE_OPTIONS=cn;exports.MAX_COLLECTION_DEPTH=or;exports.MAX_DELEGATION_DEPTH=ys;exports.MAX_EDITABLE_FILE_BYTES=i0;exports.MAX_FIELDS=Fe;exports.MAX_LIST_ITEMS=je;exports.MAX_MEMORY_BROWSE=sg;exports.MAX_MEMORY_BUDGET=cg;exports.MAX_MEMORY_CHARS=ig;exports.MAX_RULE_DEPTH=Mn;exports.MAX_SCORE_LEVELS=ln;exports.MAX_SHOWN_KEYS=cu;exports.MAX_TOPIC_CANDIDATES=rc;exports.MAX_TOPIC_EXAMPLES=nc;exports.MAX_TOPIC_EXAMPLE_CHARS=He;exports.MAX_VIEWABLE_FILE_BYTES=a0;exports.MICROS_PER_CENT=ct;exports.MIN_MEMORY_BUDGET=ag;exports.MIN_SCORE_LEVELS=un;exports.MISSING_PRICE_SOURCE=mn;exports.MODEL_TIERS=ye;exports.NAV_NOTICE_SLOT=b0;exports.NL_BV_TEMPLATE=Yi;exports.NL_PAYMENT_TERMS=$b;exports.NL_TAX_CODES=pg;exports.NL_TAX_RATES=fg;exports.NL_VAT_BOXES=La;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=KI;exports.OFF_TRACK_GAP=Ja;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=yg;exports.OPEN_STATES=Mt;exports.PAUSE_HOLD=yt;exports.PAUSE_SNOOZED=gt;exports.PAUSE_WAITING_FOR_CUSTOMER=ht;exports.PAYMENT_TERM_METHODS=wb;exports.PAYROLL_CATEGORIES=zi;exports.PHONE_REGIONS=Bt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Xg;exports.PLAYBOOK_RUN_SCOPE_KIND=ha;exports.PRESENCE_ONLINE_WINDOW_MS=Tr;exports.PRESENCE_SURVIVES_OFFLINE=Gc;exports.PRICE_PERS=$u;exports.PRODUCT_SCOPE_KIND=bc;exports.PROFILE_TOOL_DISPOSITIONS=_g;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=cI;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=aI;exports.PROVISIONING_ROUTES=VI;exports.PROVISIONING_SOURCE_GROUP=GI;exports.PUBLIC_EMAIL_DOMAINS=du;exports.PURCHASE_KINDS=yi;exports.PURCHASE_ORDER_KIND=wp;exports.READ_STEP_TYPES=En;exports.RECEIPT_BOOK_ACT=Id;exports.RECEIPT_SCOPE_KIND=_d;exports.RELATED_SUBJECT_KINDS=Zi;exports.RELEASED_STATES=cp;exports.REPORT_VIEW_LAYOUTS=Tl;exports.RESERVED_SEGMENTS=ac;exports.RESERVED_STATUS_KEYS=Ar;exports.RESERVED_TYPE_KEYS=n_;exports.RESOURCE_ATTACHED_SERVICE=zI;exports.RESOURCE_DESCRIBE_SERVICE=WI;exports.RESOURCE_RESOLVE_SERVICE=YI;exports.RESOURCE_SEARCH_SERVICE=HI;exports.SALES_KINDS=Rt;exports.SALES_SCOPE_KINDS=yc;exports.SCHEDULE_ENTRY_SCOPE_KIND=la;exports.SCHEDULE_EVENT=Ua;exports.SCOPE_ACTS_ROUTE=JI;exports.SCOPE_READ_ROUTE=ZI;exports.SCOPE_RELATED_ROUTE=QI;exports.SEGMENT_FILTER_KEYS=mf;exports.SEGMENT_LAYOUTS=hf;exports.SEGMENT_LIST_FILTERS=Us;exports.SEGMENT_PRESENCE_FILTERS=Bs;exports.SEGMENT_SORT_FIELDS=gf;exports.SENDING_STALE_MS=Cd;exports.SETTINGS_BASE_PATH=De;exports.SETTINGS_CATEGORIES=y0;exports.SIGNATURE_INTENTS=tf;exports.SLA_METRICS=Ay;exports.SLA_PAUSE_REASONS=vy;exports.STATUS_NAMES=Lp;exports.STEP_MAX_TOKENS_MAX=Aa;exports.STEP_MAX_TOKENS_MIN=Sa;exports.STEP_TYPES=mh;exports.STRATEGY_ITEM_SCOPE_KIND=Ya;exports.SUMMARY_MIN_LAST_CHARS=Oi;exports.SUMMARY_MIN_MESSAGES=ki;exports.SYNC_RUN_MAX_ERRORS=u0;exports.SYNC_TARGET_PROVIDER_GROUP=c0;exports.SYSTEM_ONE_NON_GOALS=hl;exports.SYSTEM_RESOLUTIONS=Fi;exports.TERMINAL_ASSIGNMENT_STATUSES=ms;exports.TERMINAL_RUN_STATUSES=ka;exports.TRANSACTION_KINDS=bi;exports.TRIGGER_VARS=ah;exports.UNARY_OPS=oy;exports.UNCOLLECTED_AFTER_DAYS=pc;exports.UNKNOWN_KIND=ea;exports.UNKNOWN_LEVEL_ORDER=za;exports.UNSENT_STATES=Jn;exports.UNSUPPORTED=pI;exports.UNWORKED_RESOLUTIONS=fm;exports.USAGE_DIMENSIONS=rs;exports.USAGE_DIMENSION_IDS=os;exports.USAGE_RECORDS_ROUTE=Jd;exports.USAGE_SOURCE_PROVIDER_GROUP=Zd;exports.UnresolvedRefError=yr;exports.WEBHOOK_EVENTS=Tc;exports.WORKSTREAM_SCOPE_KIND=da;exports.WORK_ACTIVITY_SCOPE_KIND=Mc;exports.WORK_AREAS=bg;exports.WORK_COMMENT_ADDED=Qb;exports.WORK_CYCLE_SYNC_KIND=a_;exports.WORK_ITEM_ASSIGNED=Zb;exports.WORK_ITEM_SCOPE_KIND=kc;exports.WORK_ITEM_STATUS_CHANGED=Jb;exports.WORK_PROJECT_SCOPE_KIND=Oc;exports.WORK_SORT_FIELDS=O_;exports.WORK_VIEW_FLAGS=k_;exports.WORK_VIEW_LAYOUTS=M_;exports.WORK_VIEW_LIST_FILTERS=T_;exports.W_PRIORITY=Re;exports.XAF_NAMESPACE=Xi;exports.acceptExampleCandidate=ib;exports.accountRow=kp;exports.accountTotals=vm;exports.accountTypeOf=eg;exports.accrualPostings=Ff;exports.actingIdentityKey=ma;exports.activeWorkTypes=ob;exports.activityIconOf=bu;exports.activityJoinUrl=Ou;exports.activitySnippet=Ko;exports.activityTextParams=$o;exports.activityTimelineText=ku;exports.activityTimestamp=Bo;exports.activityTypeInfo=H;exports.actorKey=zg;exports.addExampleCandidate=sb;exports.addMonths=fe;exports.addWorkingMs=wt;exports.admit=lp;exports.adoptPlan=Cp;exports.adoptRowsFromTable=Np;exports.adoptSeriesId=Ap;exports.adoptSummary=Tp;exports.agePresenceEntry=FI;exports.aggregateUsage=Ns;exports.agingBucketOf=Cc;exports.agingOf=Wb;exports.agreementEffectiveEnd=Ju;exports.agreementFromQuote=qu;exports.agreementHref=Ob;exports.agreementScopeKey=kb;exports.aiAttachmentKind=Lc;exports.aiAttachmentRejection=w_;exports.aiBudgetLimit=dn;exports.aiBudgetPeriodKey=Al;exports.aiBudgetPeriodStart=ns;exports.aiBudgetState=Sl;exports.aiVendorAcceptsAttachment=El;exports.aiVendorDefaultModel=bl;exports.aiVendorLabel=yl;exports.aiVendorNeedsBaseUrl=Il;exports.aiVendorsWith=_l;exports.allocate=de;exports.allocateInvoice=qh;exports.allowsFraction=Qd;exports.appNameFromPath=Hc;exports.applyApprovalDecision=Bl;exports.applyRounding=Jy;exports.applySignature=nf;exports.approvalRate=va;exports.artifactBodyBytes=fs;exports.artifactOutline=ps;exports.artifactToMarkdown=Bn;exports.assignmentMismatch=th;exports.assignmentScopeKey=Jl;exports.assignmentSubject=nd;exports.availabilityByPerson=Cg;exports.awaitsNumber=Up;exports.balanceSheet=Om;exports.belongsOnCalendar=Ig;exports.billableTimeGroups=Qy;exports.billedQuantity=ws;exports.billedThroughOf=rl;exports.billingStartOf=np;exports.billingTerm=Go;exports.bindParams=ty;exports.bindValue=pt;exports.bookingDocumentOf=pb;exports.bookingDocumentOfReceipt=Sd;exports.bookingLinesOf=Cs;exports.bookingSyncKey=Ad;exports.buildActivityPreview=Ru;exports.buildChannelIntents=Z_;exports.buildNavModel=LI;exports.buildShareKeys=Yl;exports.buildWindow=au;exports.businessEntitySender=Vs;exports.bySeries=mi;exports.calendarDaysBetween=ta;exports.calendarOf=Pt;exports.canConvert=jp;exports.canDecrease=fi;exports.canMoveAgreement=Qu;exports.canNestUnder=Im;exports.canParent=$y;exports.canTransition=Kp;exports.cancelPlan=rp;exports.canonicalJson=In;exports.capabilityDefaultFlag=cl;exports.capacityTotal=Ag;exports.capacityWeights=Vg;exports.capitalizationThreshold=Vf;exports.carriesText=Au;exports.cashForecast=Rm;exports.categoryLabel=Sm;exports.categoryOf=Dc;exports.causedBy=ly;exports.changesBilledLine=el;exports.changesBilledPrice=ol;exports.channelKindForScheme=iI;exports.channelKindOf=_u;exports.checkInOverdueMs=zy;exports.chooseOffer=Mh;exports.clampStepMaxTokens=ph;exports.classifyMail=om;exports.cleanDimensions=Ae;exports.cleanMessageMarkdown=Q0;exports.cleanMessageText=X0;exports.cleanReceiptLines=Qf;exports.codeQuery=Ld;exports.codedMessage=nI;exports.columnBalance=Mm;exports.commandOf=dp;exports.commitProblem=xd;exports.companyReceivablesOf=Yb;exports.compareAssistRank=F_;exports.compareReports=Am;exports.compareWorkTypes=tc;exports.conditionHolds=Gs;exports.contactName=pf;exports.contractSignals=Dh;exports.copyFrom=rr;exports.correlationKeyFor=W_;exports.costOverYear=ii;exports.countsAsPlanned=Se;exports.coverEndAt=Qo;exports.coverageByPerson=vg;exports.coverageFor=Dg;exports.coversWorkstream=cr;exports.crmActivityAt=Af;exports.cronMatches=$a;exports.currentAccountRelation=Lf;exports.currentLines=Hu;exports.currentOf=gp;exports.currentPeriod=xb;exports.customerProducts=xp;exports.cycleDayIndex=ur;exports.cycleOrder=v_;exports.cycleState=C_;exports.dealValueCents=Gu;exports.debtorOf=Tt;exports.decideAssignmentState=rd;exports.decideCadence=h0;exports.decideEach=Ll;exports.decideIncomingCall=z_;exports.decisionBand=gl;exports.decodeText=_I;exports.defaultLocaleOf=Wi;exports.defaultOffer=oi;exports.defaultStatusKey=g_;exports.defaultTemplateBlocks=dc;exports.defineIntent=lI;exports.delegationRefusal=od;exports.depreciationParts=Js;exports.depreciationPostings=Uf;exports.depthOf=qi;exports.derivePresence=BI;exports.describeClause=xl;exports.describeExpression=ay;exports.digitsOf=Ds;exports.disabledIntentsFromCapabilities=X_;exports.disposalLines=Bf;exports.documentBodyBytes=fs;exports.documentKindOf=DI;exports.documentOutline=ps;exports.documentToMarkdown=Bn;exports.documentToText=OI;exports.draftRequest=yn;exports.driftedFields=Fa;exports.dueAtOf=Dy;exports.dueCharges=Yu;exports.dueDateFrom=Lb;exports.dunningRunOf=Ab;exports.dunningStateOf=gc;exports.effectiveEndAt=tt;exports.elapsedSeconds=Zy;exports.emailDomain=C0;exports.emptyConditionLeaf=sy;exports.endable=op;exports.endpointKey=M0;exports.entryLinesOf=jm;exports.entryNumber=wm;exports.entryProblems=xm;exports.erlangC=ra;exports.excessiveLending=Kf;exports.expectedFor=Rh;exports.expectsInvoice=ni;exports.externalKeyOf=le;exports.extractParams=zc;exports.extractTerms=su;exports.failureLines=Rf;exports.feedOutcome=Lh;exports.fieldVarPath=gy;exports.fillDocument=Of;exports.fillText=qs;exports.filterByEndpoint=eI;exports.filterByIntent=J_;exports.filterByTargetScheme=Fc;exports.filterableDimensions=Dl;exports.findAiVendor=xe;exports.findEvent=hy;exports.findInListing=mp;exports.finishedAt=Zu;exports.fixedLevelForName=By;exports.fixedTypeForName=s_;exports.fixedTypes=i_;exports.flattenLocales=wI;exports.floorToPeriod=Ie;exports.forecastIntervals=Fg;exports.formatActingIdentity=pa;exports.formatCents=J;exports.formatClock=tb;exports.formatHm=eb;exports.formatItemKey=u_;exports.formatMicros=Fd;exports.formatPeriod=_e;exports.formatSeriesNumber=Db;exports.formatSlaDuration=Py;exports.freshSources=K_;exports.fromPathKey=zp;exports.getActivitySeenUserIds=xu;exports.getContactEndpoints=lf;exports.getShortTitle=dm;exports.getUrgencyScore=lm;exports.goodsReceiptProblems=ri;exports.groupDocumentLines=xa;exports.guessAdoptMapping=Rp;exports.guessFeedMapping=$h;exports.hasReacted=Hh;exports.hashedPartOf=$m;exports.healthCategory=Fy;exports.healthsInCategory=jy;exports.heightOf=sr;exports.helpCenterText=hm;exports.humanizeAction=sh;exports.indexPrices=sl;exports.interactionIdOf=Ea;exports.interestOnDailyBalance=xf;exports.interestPeriods=wf;exports.invoiceFromQuote=jo;exports.invoiceState=Yf;exports.invoicesFromOrders=Yp;exports.isAdoptSeries=vp;exports.isAgentUser=zb;exports.isAssigned=cm;exports.isAssignmentTerminal=Zl;exports.isAssignmentTrigger=ba;exports.isAssistantMode=vl;exports.isAuthoredCrmActivity=Sf;exports.isAutoReady=_h;exports.isAutonomy=nh;exports.isAwaitingThem=Bi;exports.isBookable=fb;exports.isChatMessageActivity=Pu;exports.isClosed=um;exports.isConnectedType=Cu;exports.isDescendant=Gi;exports.isEligible=Qp;exports.isEmailActivity=wu;exports.isFrozen=nr;exports.isHeldClock=Ny;exports.isHtmlBody=z0;exports.isInFlight=Eh;exports.isInteractionUnseen=Ri;exports.isLandingPath=n0;exports.isLikelyBulk=Ti;exports.isMessageShape=xn;exports.isMessageType=Iu;exports.isMoreSpecificPattern=Qc;exports.isNoteShape=wn;exports.isOpenClock=Ha;exports.isOutstanding=Er;exports.isOutwardTool=vr;exports.isOverdueOn=Ub;exports.isParked=Pi;exports.isPaused=Oa;exports.isPlaybookAuthoredType=vu;exports.isPricePer=Fu;exports.isPublicEmailDomain=k0;exports.isPublicPath=s0;exports.isPurchasable=Yd;exports.isRecurringLine=qo;exports.isReminderActive=Li;exports.isReplyableType=Su;exports.isResultAccount=we;exports.isSellable=Hd;exports.isSettingsPath=e0;exports.isSettled=Ac;exports.isShorter=Wu;exports.isSlaAtRisk=im;exports.isSupportedCron=uy;exports.isTerminal=Ih;exports.isThreadLongEnough=em;exports.isTradeable=Nd;exports.isTranscriptType=Tu;exports.isUncollected=hc;exports.isWebhookEvent=Xb;exports.isWorkClosed=h_;exports.isWorkTypeVisible=rb;exports.isWriteTool=kr;exports.itemDossierKeys=f_;exports.itemKey=dt;exports.itemKeyOf=md;exports.judgeRuleCase=dy;exports.kindFor=ee;exports.ladderFor=Nc;exports.ledgerRuleFor=Ts;exports.levelIn=Qa;exports.levelOrder=_t;exports.lineAffinity=hr;exports.lineKey=lh;exports.lineNet=Dt;exports.lineStatus=Wo;exports.lineTerm=W;exports.linkLabel=gm;exports.listedTransactionKinds=Pp;exports.listeningAllowed=Cl;exports.loanPostings=$f;exports.loanSchedule=Yn;exports.localeInstruction=_m;exports.localeName=bm;exports.localesOf=Em;exports.looksLikeEmail=A0;exports.lookup=Wn;exports.manualSettlement=jb;exports.marginCents=Ku;exports.markdownToDocument=kI;exports.matchApprovalPolicy=$l;exports.matchContactToIntents=tI;exports.matchDocumentLines=wa;exports.matchFeed=Ph;exports.matchPublicRoute=Zc;exports.matchRate=xs;exports.matchRules=Ba;exports.matchVerdict=Gh;exports.matchedLine=hd;exports.mcpCredentialScope=rg;exports.mcpToolPrefix=og;exports.measureRatio=Gy;exports.mergeDefaultFlags=ll;exports.mergeShownKeys=g0;exports.mergeable=Wp;exports.messageCountsAs=Lo;exports.metricOption=wl;exports.minutesOn=lr;exports.missingFieldPaths=yy;exports.modelAcceptsAttachment=fl;exports.monthEnd=Qs;exports.monthParts=Hs;exports.monthlyPeriods=Hm;exports.monthsIn=Ys;exports.mustAsk=Jc;exports.narrowAutonomy=oh;exports.navLabelText=PI;exports.needsOf=hi;exports.needsPhoneRegion=O0;exports.nestsUnderParent=Eu;exports.nextAttemptAt=up;exports.nextLevelBelow=Uy;exports.nextOccurrenceDates=A_;exports.nextPrice=nl;exports.nextSlaClock=xy;exports.nextStatuses=_i;exports.nextVersion=qp;exports.normalizeArtifactBlocks=ds;exports.normalizeBlocks=gu;exports.normalizeDocumentBlocks=ds;exports.normalizeEmail=Or;exports.normalizeExample=ce;exports.normalizeGtin=kt;exports.normalizeIban=$s;exports.normalizeIbans=af;exports.normalizeMeter=Ls;exports.normalizeUsageSource=ef;exports.normalizeVatNumber=sf;exports.noticeDeadline=Xo;exports.notificationPrefKey=$I;exports.novelty=iu;exports.offerValid=Qn;exports.onePerItem=gi;exports.openCentsOf=ad;exports.operationDescriptor=CI;exports.operationsForKind=vI;exports.opsForFieldType=my;exports.orderForDocument=Uh;exports.orderProgress=Ii;exports.organizationSender=Mf;exports.outcomeOf=I_;exports.overlap=St;exports.overlapSeconds=Ve;exports.overlaps=Ng;exports.ownWorkspaceKey=cb;exports.paceRatio=Vy;exports.parkMarksById=Zp;exports.parse=Ka;exports.parseActingIdentity=Hg;exports.parseAmount=nn;exports.parseCamt053=Is;exports.parseClockMinutes=Ey;exports.parseCodedMessage=oI;exports.parseCron=br;exports.parseCsv=hI;exports.parseDay=_n;exports.parseItemKey=l_;exports.parseLineKey=dh;exports.parseMicros=Gn;exports.parseMt940=Ss;exports.parsePackingSlip=Fh;exports.parseRateCsv=jd;exports.parseRatePrice=gn;exports.parseRecurrence=S_;exports.parseStatement=pd;exports.parseWorkspacePath=lb;exports.parseXafOpening=Jm;exports.partialDisposalLines=Gf;exports.partyTerms=ju;exports.pathToRegex=Yc;exports.patternFor=fr;exports.patternStartTime=dr;exports.pauseBitFor=Sy;exports.paymentOfItem=ud;exports.paymentStateOf=Ir;exports.pendingApprovers=Ul;exports.periodAt=Je;exports.periodOf=Ym;exports.periodShare=Vo;exports.periodsInRange=Rl;exports.phoneSuffix=v0;exports.pickMailHeaders=tm;exports.pickPaymentTerm=Pb;exports.pickTemplate=Cf;exports.placeLumps=Wg;exports.plainTextFromMarkdown=wo;exports.planFor=Sp;exports.planSlaEvent=Ry;exports.plannedBillable=xg;exports.plannedWorkTypeKey=ca;exports.priceAt=Zo;exports.priceOver=Et;exports.primaryAddress=of;exports.procedureOf=yh;exports.productCost=si;exports.productHref=Tb;exports.productScopeKey=vb;exports.profitAndLoss=km;exports.progressState=Hp;exports.projectDossierKeys=p_;exports.proposalRequestIds=Kl;exports.proposeMatch=sd;exports.providedOf=ap;exports.publicBasePathFor=Xc;exports.publicRoutePatterns=o0;exports.purchaseUnits=Jf;exports.qualificationView=tp;exports.quantityKey=al;exports.rateRecords=Gd;exports.ratedLineAmount=Vd;exports.ratedQuantity=Vn;exports.reactionWakesAssignment=td;exports.readDefaultFlags=ul;exports.readFeed=xh;exports.readPath=Xe;exports.readStepError=Ge;exports.ready=ui;exports.receiptGroupOf=Ed;exports.receiptProblems=vs;exports.receiptState=Hf;exports.receiptTotals=As;exports.receivableRowOf=Vb;exports.receivedFor=ti;exports.recencyOf=wi;exports.recipientLocale=vf;exports.reconciledOn=id;exports.reconciliationBalances=cd;exports.recoveryOf=fp;exports.refKey=pr;exports.referenceCostIn=wd;exports.registrableDomain=lu;exports.rejectExampleCandidate=sc;exports.relatedByDefault=lg;exports.remainingMsOf=bt;exports.reportOf=pi;exports.repriceLines=Bd;exports.requestIdOf=ci;exports.requestPath=Xp;exports.requiredAgents=ia;exports.requirementFor=aa;exports.requiresIdsOf=ai;exports.resolutionsFor=mm;exports.resolveAccountCapabilities=Bc;exports.resolveActivityText=Qe;exports.resolveAutonomy=rh;exports.resolveChannelIntents=Uc;exports.resolvePrice=Ms;exports.resolveRateCard=$d;exports.resolveRoute=pl;exports.resolveSignature=Ks;exports.resolveTier=ts;exports.resolveWorkMode=jI;exports.resolveWorkspace=ub;exports.resourceKindOf=XI;exports.restartOf=Xn;exports.restate=Fo;exports.retryDelayMinutes=vd;exports.reversedLines=Bm;exports.rhythmOf=Pn;exports.roleDirection=uf;exports.rollupChildren=Yy;exports.roundHalfUp=U;exports.runActor=Yg;exports.runApprovalKey=Qg;exports.runEvalSuite=Nf;exports.runIdOfApprovalRef=Zg;exports.runInteractionId=Ah;exports.runKind=bh;exports.runOutcome=py;exports.runSpans=Xu;exports.sanitizeInline=ls;exports.sanitizeTranscript=eu;exports.scheduleEntryScopeKey=jg;exports.scoreInteraction=am;exports.scoreWorkItem=t_;exports.segmentIsEmpty=yf;exports.selectLenses=ng;exports.sellableProduct=Wd;exports.serialKeyOf=ep;exports.serialKeysOf=zf;exports.serialize=We;exports.serialsInHouse=Xf;exports.seriesOf=hn;exports.seriesStart=zo;exports.serviceLevel=oa;exports.sessionsHoldCannotReach=Y_;exports.sessionsToHold=H_;exports.settingsPath=t0;exports.settle=pp;exports.settlementPatch=Fb;exports.settlesOn=bs;exports.shadowByKey=Od;exports.shareKeyForTeam=jn;exports.shareKeyForUser=Fn;exports.shareKeysForViewer=zl;exports.shareReceipts=Gp;exports.shortTermPrincipal=qf;exports.shortfalls=wg;exports.shouldRunAudioPipeline=qI;exports.slaBadgeTone=wy;exports.slaHoursByInbox=sm;exports.slaHoursFor=Ui;exports.slipProposal=Bh;exports.sortStatuses=xc;exports.sourceKey=$c;exports.splitLine=tl;exports.spread=zn;exports.spreadOverWeights=fa;exports.startingCents=jf;exports.statusIn=m_;exports.statusRequiresApproval=__;exports.stepDate=Pc;exports.stepsOf=hh;exports.strategyAncestorKeysFor=Ky;exports.strategyDossierKeys=Ly;exports.strategyItemScopeKey=_r;exports.stripHtml=Po;exports.structureProblems=li;exports.subjectKeyOf=Sh;exports.subjectOf=mr;exports.subjectRef=B_;exports.subscriptionRow=Op;exports.suggestProjectKey=d_;exports.suggestTreatments=bd;exports.suggestedHealth=Wy;exports.summariseEval=Ws;exports.summarizeReactions=Vh;exports.supplyChain=di;exports.tallies=Vp;exports.targetById=eh;exports.targetForActivityType=Jg;exports.targetOf=Ep;exports.targetOrder=Xy;exports.taxCodeProblem=gg;exports.taxDateOf=ae;exports.taxPercentOn=ar;exports.taxRateFor=Ji;exports.taxRatesOn=mg;exports.taxSideOf=Um;exports.termApplies=Sc;exports.termEndAt=re;exports.termStartAt=Kn;exports.termsFor=na;exports.tieredMicros=Ps;exports.timingOf=Ho;exports.toActingIdentity=ga;exports.toBaseUnits=Md;exports.toE164=Dn;exports.toInvoice=Ei;exports.toPathKey=Si;exports.toProductUnits=Zn;exports.toTransactionTerm=Kb;exports.toolBareName=_a;exports.toolDisplayName=ih;exports.toolReversible=L_;exports.toolSourceKinds=Xl;exports.toolVerdict=d0;exports.topicOfferedForTeam=ic;exports.topicsForTeam=ab;exports.trafficIntensity=sa;exports.transactionContext=mb;exports.transactionDossierKeys=Rb;exports.transactionHref=Cb;exports.transactionIdFromScope=Mb;exports.transactionKind=G;exports.transactionScopeKey=Ic;exports.transactionSlots=gb;exports.transactionTotals=hg;exports.transitoryLines=Fm;exports.triggerFillsVar=ch;exports.truncateExample=oc;exports.typeIn=o_;exports.typesFor=r_;exports.uniqueWorkStatusKey=y_;exports.uniqueWorkTypeKey=nb;exports.unitFactor=ks;exports.unitsProblem=Rd;exports.usageAccountOf=es;exports.usageAccountsOf=il;exports.usageMetricId=ss;exports.usageMetrics=Pl;exports.usersOf=Ee;exports.validateQuestions=ml;exports.validateStatuses=b_;exports.valueAtPath=ya;exports.variableJump=Ra;exports.variantOptionsProblem=Dd;exports.vatDateOf=Qh;exports.vatPeriods=zh;exports.vatReturn=Yh;exports.waitHoursOf=Nt;exports.wakesAssignment=ed;exports.withLineIds=fh;exports.withPrice=Jo;exports.workActivityScopeKey=c_;exports.workItemScopeKey=Rc;exports.workProjectScopeKey=Sr;exports.workRatio=Hy;exports.workStatusKey=wc;exports.workTypeKey=ec;exports.workingMsBetween=mt;exports.workspacePath=db;exports.workstreamScopeKey=qg;exports.xafAuditfile=Qm;exports.xmlBlocks=Q;exports.xmlText=N;exports.yearEndClosingLines=Nm;