@opencxh/domain 1.297.0 → 1.301.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/agreement/types.d.ts +7 -2
- package/dist/entities/bookkeeping/types.d.ts +2 -1
- package/dist/entities/business-entity/types.d.ts +6 -0
- package/dist/entities/catalog/article.d.ts +28 -0
- package/dist/entities/catalog/article.test.d.ts +1 -0
- package/dist/entities/catalog/index.d.ts +1 -0
- package/dist/entities/catalog/pricing.d.ts +12 -6
- package/dist/entities/catalog/rating.d.ts +30 -0
- package/dist/entities/catalog/types.d.ts +133 -66
- package/dist/entities/catalog/usage-source.d.ts +11 -0
- package/dist/entities/company/address.d.ts +30 -0
- package/dist/entities/company/address.test.d.ts +1 -0
- package/dist/entities/company/index.d.ts +2 -0
- package/dist/entities/company/role.d.ts +33 -0
- package/dist/entities/company/types.d.ts +0 -22
- package/dist/entities/contact/segment.d.ts +1 -1
- package/dist/entities/purchase/feed.d.ts +132 -0
- package/dist/entities/purchase/feed.test.d.ts +1 -0
- package/dist/entities/purchase/index.d.ts +1 -0
- package/dist/entities/purchase/logic.d.ts +10 -4
- package/dist/entities/purchase/types.d.ts +28 -7
- package/dist/entities/transaction/booking.d.ts +1 -1
- package/dist/entities/transaction/convert.d.ts +2 -2
- package/dist/entities/transaction/document.d.ts +2 -0
- package/dist/entities/transaction/payment-term.d.ts +15 -1
- package/dist/entities/transaction/types.d.ts +18 -1
- package/dist/index.cjs +25 -23
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3026 -2700
- package/dist/platform/bookkeeping.d.ts +4 -2
- package/dist/platform/csv.d.ts +12 -0
- package/dist/platform/csv.test.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Gt=10,De=10,we=10,xe=5,gc=new Set(["header","section","context","divider","image","list","actions","attachments"]);function Mt(e){if(typeof e=="string")return e.length>0;if(!e||typeof e!="object")return!1;const t=e;return typeof t.key=="string"||typeof t.value=="string"}function hc(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=Gt){t(`more than ${Gt} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!gc.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}switch(o.type){case"header":if(!Mt(o.text)){t("a header without text");continue}break;case"context":if(!Mt(o.text)){t("a context block without text");continue}break;case"image":if(!o.url||!o.alt){t("an image without url or alt");continue}break;case"section":Array.isArray(o.fields)&&o.fields.length>De&&(t(`more than ${De} fields in a section`),o.fields=o.fields.slice(0,De));break;case"list":if(!Array.isArray(o.items)||o.items.length===0){t("a list without items");continue}o.items.length>we&&(t(`more than ${we} list items`),o.items=o.items.slice(0,we));break;case"actions":{const s=Array.isArray(o.elements)?o.elements:[],a=s.filter(i=>i?.action_id&&i.invoke&&Mt(i.text));if(a.length!==s.length&&t("an action without action_id, invoke or text"),a.length===0)continue;a.length>xe&&t(`more than ${xe} actions`),o.elements=a.slice(0,xe);break}}n.push(o)}return n}const yc=/(\*\*|__)(?=\S)([\s\S]*?\S)\1/g,bc=/(\*|_)(?=\S)([^*_\n]*?\S)\1/g;function io(e){if(typeof e!="string"||!e)return"";let t=e;return t=t.replace(/```[a-z]*\n?/gi,"").replace(/~~~[a-z]*\n?/gi,""),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1"),t=t.replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1"),t=t.replace(/<((?:https?|mailto):[^>\s]+)>/gi,"$1"),t=t.split(`
|
|
2
2
|
`).map(n=>n.replace(/^\s{0,3}#{1,6}\s+/,"").replace(/^\s{0,3}>\s?/,"").replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+[.)]\s+/,"").replace(/^\s*(?:[-*_]\s*){3,}$/,"")).join(`
|
|
3
|
-
`),t=t.replace(ac,"$2"),t=t.replace(cc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function Jr(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function Me(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function nr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function kt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function rr(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const X={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${kt(e.payload.from)}`:`Outbound call started — ${kt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${nr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${kt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:or},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:or},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} toegevoegd`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} verlaten`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${rr(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`${rr(e.payload.callType)} ended${nr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function or(e){const t=e.payload,n=Zr(t.bodyText).trim()||t.bodySnippet?.trim()||Jr(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function uc(e){return j(e)?.icon??"circle"}function lc(e){return j(e)?.channelKind}function fn(e){return e==="message"||e==="note"}function dc(e){return fn(j(e)?.shape)}function pn(e){return e==="note"}function fc(e){return pn(j(e)?.shape)}function pc(e){return j(e)?.replyable===!0}function mc(e){return j(e)?.carriesText===!0}function eo(e){return j(e)?.countsAs}function gc(e){return j(e)?.playbookAuthored===!0}function hc(e){return j(e)?.connected===!0}function yc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function to(e){const t=j(e.type)?.snippet;return t?t(e):""}function bc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function _c(e){const t=j(e.type)?.joinUrl;return t?t(e):void 0}function Fe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function je(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Fe(t,e.value)||null;const r={};for(const[s,a]of Object.entries(e.params??{}))r[s]=Fe(t,a);const o=n(e.key,r);return o===e.key?null:o}function no(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Fe(t,o);return{key:e.key,params:n}}const sr=140;function Ec(e){const t=e.trim();return t.length<=sr?t:`${t.slice(0,sr-1).trimEnd()}…`}function Ic(e,t){const n=no(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Ec(r??to(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Sc=e=>e;function ir(e){const t=X[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function ar(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class ro{constructor(t=[],n=Sc){this.translate=n;for(const r of t)r?.type&&(r.type in X||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in X)return ir(t);const n=this.declared.get(t);return n?ar(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(ir),n=[...this.declared.values()].map(ar).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=X[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return je(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=X[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return je(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return fn(this.get(t)?.shape)}nestsUnderParent(t){return pn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const Ac=new ro;function Tc(e,t,n=[]){const r=e.createdAt;if(!r)return[];const o=new Set(n);return e.author.type==="user"&&e.author.id&&o.add(e.author.id),Object.entries(t).filter(([s,a])=>a>=r&&!o.has(s)).map(([s])=>s)}function oo(e){return e.createdAt??0}function Cc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function vc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function L(e){return e<0?-Math.round(-e):Math.round(e)}function Te(e,t){if(t.length===0)return[];const n=t.reduce((u,c)=>u+c,0);if(n===0)return t.map((u,c)=>c===0?e:0);const r=t.map(u=>e*u/n),o=r.map(u=>Math.trunc(u));let s=e-o.reduce((u,c)=>u+c,0);const a=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),i=s<0?-1:1;for(let u=0;s!==0&&u<a.length;u++)o[a[u].index]+=i,s-=i;return o}function H(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),a=s.slice(0,-2),i=s.slice(-2);let u="";for(let c=0;c<a.length;c++)c>0&&(a.length-c)%3===0&&(u+=r),u+=a[c];return`${o?"-":""}${u}${n}${i}`}function kc(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),a=o.lastIndexOf("."),i=Math.max(s,a),u=i===-1?"":o.slice(i+1),c=i!==-1&&u.length>=1&&u.length<=2,d=c?o.slice(0,i):o;if(!Oc(d))return;const l=d.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(l==="")return;const m=Number(l)*100+Number(f);return r?-m:m}function Oc(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Mc(e){return e.costPriceCents==null?e.netCents:e.netCents-L(e.costPriceCents*e.quantity)}const Rc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Nc=864e5,Dc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},cr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},ur=(e,t)=>Math.round((t-e)/Nc);function lt(e,t,n){const r=Ge[t],o=Te(e,Array.from({length:r},()=>1));let s=0;for(let a=Dc(n.from);a<n.to;a=cr(a)){const i=cr(a),u=Math.max(a,n.from),c=Math.min(i,n.to);if(c<=u)continue;const d=o[new Date(a).getUTCMonth()%r];s+=d*ur(u,c)/ur(a,i)}return L(s)}function so(e,t,n){return!t||!n||t===n?e:L(e*Ge[n]/Ge[t])}function wc(e){return typeof e=="string"&&e in Ge}function io(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function xc(e,t){const n=e.lines.filter(io).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:L(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Pc(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?lt(r.netCents,r.pricePer,t):r.netCents),0)}const Ft={month:1,quarter:3,year:12},Lc=864e5;function $c(e,t){return Ft[e]<Ft[t]}function We(e,t){const n=new Date(e),r=Ft[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function U(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function dt(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function ao(e,t,n){const r=dt(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,a)=>Math.round((a-s)/Lc);return o(r.from,r.to)/o(t.from,t.to)}function co(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function Kc(e,t,n){return t.filter(r=>co(e,r,n)!=="ended")}const jt=864e5;function mn(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function uo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/jt);function Uc(e,t,n,r){const o=[],s=[],a=e.graceDays*jt,i=e.proration===!0;for(const u of t){const c=U(e,u),d=mn(e,u),l=uo(u),f=n.filter(y=>y.agreementLineId===u.id);if(d==="once"){const y={from:c.from,to:c.from+jt};c.from+a<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:y,part:y,share:1,timing:"advance"});continue}const m=[];for(let y=We(c.from,d);y.from<(c.to??Number.POSITIVE_INFINITY)&&y.from+a<=r;y=We(y.to,d))m.push(y);const b=u.quantity.from==="fixed";for(const y of m.slice(-24)){const E=dt(c,y),g=y.to+a<=r,h=f.filter(I=>I.servicePeriod.from>=y.from&&I.servicePeriod.from<y.to),p=h.find(I=>!I.correction);if(!p){if(!E)continue;const I=E.from===y.from&&E.to===y.to;if(!(l==="advance"&&I)&&!g)continue;const C=b?ao(c,y,i):1;C>0&&o.push({lineId:u.id,window:y,part:E,share:C,timing:l});continue}b&&i&&g&&s.push(...Bc(u.id,y,E,p,h))}}return{charges:o,corrections:s}}function Bc(e,t,n,r,o){const s={...r.servicePeriod};for(const u of o){if(!u.correction)continue;Math.sign(u.quantity)!==Math.sign(r.quantity)?u.servicePeriod.from<=s.from?s.from=u.servicePeriod.to:s.to=u.servicePeriod.from:u.servicePeriod.to<=s.from?s.from=u.servicePeriod.from:s.to=u.servicePeriod.to}const a=[];if(s.to>s.from&&(n?(n.from>s.from&&a.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&a.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&a.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&a.push({part:{from:s.to,to:n.to},sign:1})):a.push({part:s,sign:-1})),r.pricePer){const u=r.pricePer;return a.map(({part:c,sign:d})=>({lineId:e,window:t,part:c,quantity:d*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&ge(c.part)>0)}const i=r.unitPriceCents*ge(t)/Math.max(1,ge(r.servicePeriod));return a.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:L(i*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Fc(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:a,to:i}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,a),to:Math.max(s.to,i)}:{timing:o.timing,from:a,to:i})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Ve=864e5,lo={draft:["active"],active:["draft","ended"],ended:["active"]};function jc(e,t){return e===t||lo[e].includes(t)}function Gc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=mn(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,We(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const He=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},fo=e=>e&&e.termMonths>=1?e:void 0;function gn(e,t){return Math.min(...t.map(n=>U(e,n).from))}function ne(e,t,n){let r=He(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=He(r,o);return r}function hn(e,t,n){const r=He(e,Math.max(1,t.termMonths)),o=ne(e,t,n);return o===r?e:He(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function yn(e,t,n){if(t=fo(t),!t)return null;const r=ne(e,t,n),o=r-t.noticeDays*Ve;return n<=o?o:t.renew==="none"?null:ne(e,t,r)-t.noticeDays*Ve}function Ee(e,t,n){if(t=fo(t),!t)return n;const r=ne(e,t,n);return n<=r-t.noticeDays*Ve||t.renew==="none"?r:ne(e,t,r)}function Wc(e,t){let n=t;for(const r of e.lines??[]){const o=U(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,Ee(Math.max(o.from,0),s,t))}return n}const lr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.price??null,e.commitment??null]);function Vc(e,t){return lr(e)!==lr(t)}function Hc(e,t,n,r){const{endsAt:o,...s}=e,a={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},a]}function po(e,t){const n=t.quantity;if(n?.from!=="meter")return null;if(n.accountRef)return{app:n.app,accountRef:n.accountRef};const r=e.sourceAccount;return r&&r.app===n.app?r:null}function qc(e){const t=new Map;for(const n of e.lines??[]){const r=po(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function Yc(e,t){return[e,t].join("@")}const ft=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function zc(e){return ft.find(t=>t.id===e)?.defaultFlag}function Xc(e){const t={};for(const n of ft)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function Qc(e,t){const n={};for(const r of ft){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const Zc={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function Jc(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=Zc[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],dr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},Gt=e=>ue.indexOf(e);function mo(e){const t=[];let n;return e.expectsSchema?(n="fast",t.push("schema-antwoord")):(e.mode??"agent")==="ask"&&!e.toolCount?(n="fast",t.push("vraag zonder tools")):e.toolCount||e.hasAttachments?(n="standard",t.push(e.hasAttachments?"bijlagen":"tools beschikbaar")):(n="standard",t.push("standaard")),e.repair&&(n=dr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=dr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&Gt(n)>Gt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function eu(e,t,n){const r=mo(t);if(!e)return{...r,...n,routed:!1};for(let o=Gt(r.tier);o>=0;o--){const s=ue[o],a=e[s];if(!a?.accountId||!a.model)continue;const i=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:i,accountId:a.accountId,model:a.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const Wt=255,Vt=2,Ht=10;function tu(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>Wt)return`vraag "${n}" heeft meer dan ${Wt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<Vt||o>Ht)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${Vt} tot ${Ht} zijn`}}return null}function nu(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const ru=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],bn=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function Ce(e){return bn.find(t=>t.id===e)}function ou(e){return Ce(e)?.label??e}function su(e,t="gpt-5-mini"){return Ce(e)?.defaultModel??t}function iu(e){return bn.filter(t=>t.capabilities.includes(e))}function au(e){const t=Ce(e);return!!t&&!t.baseUrl}function cu(e,t){return t==="text"?!0:Ce(e)?.attachmentKinds?.includes(t)===!0}function uu(e,t){if(!e.enabled)return"ok";const n=qt(e.hardLimitNanos),r=qt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function qt(e){return typeof e=="number"?e:void 0}function go(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function lu(e,t="month"){const n=new Date(go(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function du(e){return e==="ask"||e==="draft"||e==="agent"}function fu(e){return e?.listeningEnabled!==!1}const pu=["report"],mu=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function Ot(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Ot(n.getUTCMonth()+1)}-${Ot(n.getUTCDate())}`;return t==="day"?r:`${r}T${Ot(n.getUTCHours())}`}function fe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const gu=36e5,hu=864e5;function yu(e,t,n){const r=n==="hour"?gu:hu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const bu=new Set(["time"]);function _u(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!bu.has(o.id)).map(o=>({id:o.id,label:o.label,options:o.options?.length?o.options:n[o.id]??[]})).filter(o=>o.options.length>0)}function Eu(e,t){const n=t.find(o=>o.id===e.dimensionId),r=n?.options.find(o=>o.value===e.value);return`${n?.label??e.dimensionId} · ${r?.label??e.value}`}function Iu(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const ho=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],yo=ho.map(e=>e.id);function bo(e,t){return`${e}.usage.${t}`}function Su(e,t){return t.map(n=>({id:bo(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...yo,...n.extraDimensions??[],"time"]}))}async function Au(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const a=s?.status;if(a===403||a===400)r++;else throw s}return{decided:n,waiting:r}}function Tu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function Cu(e,t){return e.filter(r=>!r.enabled||r.scopeKind!==t.scopeKind||r.act!==t.act?!1:r.minAmountCents==null?!0:t.amountCents!=null&&t.amountCents>=r.minAmountCents).sort((r,o)=>{const s=r.minAmountCents??-1;return(o.minAmountCents??-1)-s||r.id.localeCompare(o.id)})[0]}function vu(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const a of t[s]??[])o.add(a);return r||o.delete(n),[...o]}function ku(e,t){if(e.status!=="pending"||e.decisions.some(s=>s.userId===t.userId))return e;const n=[...e.decisions,t],r=e.pendingUserIds.filter(s=>s!==t.userId);if(t.decision==="rejected")return{...e,decisions:n,pendingUserIds:r,status:"rejected",settledAt:t.at};const o=e.rule==="any"||r.length===0;return{...e,decisions:n,pendingUserIds:r,status:o?"approved":"pending",settledAt:o?t.at:void 0}}const _o=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Yt=10,Eo=8,zt=12,pt=4e3,ce=500,Io=1024*1024,Ou=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),So=["http:","https:","mailto:","tel:"],Mu=/^[a-z][a-z0-9+.-]*:/i;function _n(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Mu.exec(t)?.[0];return n?So.includes(n.toLowerCase()):!t.startsWith("//")}const Ru=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Nu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=fr(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=fr(e,s+2,"(",")");if(a<0){t+=e[n],n+=1;continue}const i=e.slice(o,s),u=e.slice(s+2,a).trim().split(/\s+/)[0]??"";t+=r||!_n(u)?i:e.slice(n,a+1),n=a+1}return t}function fr(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function Ao(e){return Nu(e).replace(Ru,(t,n,r)=>_n(r)?t:"")}function $(e,t=pt){return typeof e=="string"?Ao(e).slice(0,t):""}function Du(e,t=pt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function wu(e,t="info"){return typeof e=="string"&&_o.has(e)?e:t}function To(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=qe){t(`more than ${qe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!Ou.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const a=$(o.text);if(!a){t("a heading without text");continue}const i=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:i,text:a});break}case"paragraph":{const a=$(o.text);if(!a){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:a});break}case"quote":{const a=$(o.text);if(!a){t("a quote without text");continue}n.push({...s,type:"quote",text:a});break}case"code":{const a=Du(o.text);if(!a){t("a code block without text");continue}const i=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...i,text:a});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const c of a){if(i.length>=Ye){t(`more than ${Ye} list items`);break}const d=$(c?.text);if(!d)continue;const l=$(c?.lead,200);i.push(l?{lead:l,text:d}:{text:d})}if(i.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:i});break}case"table":{const a=Array.isArray(o.columns)?o.columns:[],i=[];for(const l of a){if(i.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(l?.label,ce),m=l?.align==="right"?"right":void 0;i.push(m?{label:f,align:m}:{label:f})}if(i.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const l of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(l)?l:[];c.push(i.map((m,b)=>$(f[b],ce)))}const d=$(o.caption,ce);n.push({...s,type:"table",columns:i,rows:c,...d?{caption:d}:{}});break}case"kpi":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const u of a){if(i.length>=Qe){t(`more than ${Qe} kpi items`);break}const c=$(u?.value,40),d=$(u?.label,80);if(!c||!d)continue;const l=u?.tone;i.push(typeof l=="string"&&_o.has(l)?{value:c,label:d,tone:l}:{value:c,label:d})}if(i.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:i});break}case"image":{const a=typeof o.url=="string"?o.url.trim():"";if(!a||!_n(a)){t("an image without a usable url");continue}const i=$(o.alt,200),u=$(o.caption,ce);n.push({...s,type:"image",url:a,...i?{alt:i}:{},...u?{caption:u}:{}});break}case"letterhead":{const a=Array.isArray(o.fields)?o.fields:[],i=[];for(const d of a){if(i.length>=Yt){t(`more than ${Yt} letterhead fields`);break}const l=d,f=typeof l?.key=="string"?l.key.slice(0,48):"",m=he(l?.value);if(!f||!m)continue;const b=he(l?.label,80);i.push(b?{key:f,label:b,value:m}:{key:f,value:m})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Eo).map(d=>he(d)).filter(Boolean);if(i.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:i,...c.length>0?{recipient:c}:{}});break}case"totals":{const a=c=>{const d=Array.isArray(c)?c:[],l=[];for(const f of d){if(l.length>=zt){t(`more than ${zt} totals rows`);break}const m=f,b=he(m?.label),y=he(m?.amount,40);!b||!y||l.push(m?.emphasis===!0?{label:b,amount:y,emphasis:!0}:{label:b,amount:y})}return l},i=a(o.rows);if(i.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=a(o.taxRows);n.push({...s,type:"totals",rows:i,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const a=$(o.text);if(!a){t("a callout without text");continue}const i=$(o.title,200);n.push({...s,type:"callout",tone:wu(o.tone),...i?{title:i}:{},text:a});break}}}return n}function Co(e){return JSON.stringify(e).length}function vo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function pr(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Mt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(pr).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(pr).join(" | ")} |`)]}function xu(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Mt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Mt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=``;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Mt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function En(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=xu(o);s.length>0&&n.push(s.join(`
|
|
3
|
+
`),t=t.replace(yc,"$2"),t=t.replace(bc,"$2"),t=t.replace(/~~(?=\S)([\s\S]*?\S)~~/g,"$1"),t=t.replace(/`([^`\n]+)`/g,"$1"),t.replace(/\s+/g," ").trim()}function ao(e){return e.replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<[^>]+>/g," ").replace(/ /g," ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/\s+/g," ").trim()}function Me(e){if(!e||e<0)return"";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n.toString().padStart(2,"0")}`}function cr(e){return e?` — ${Math.floor(e/60)}m ${e%60}s`:""}function Rt(e){return e?.split("@")?.[0]||e||""}function Re(e){return e.map(t=>t.name).join(", ")}function ur(e){return e==="meeting"?"Meeting":e==="video"?"Video call":"Audio call"}const X={VOICE_CALL_STARTED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek gestart",timeline:e=>e.direction==="inbound"?`Inbound call started — ${Rt(e.payload.from)}`:`Outbound call started — ${Rt(e.payload.to)}`},VOICE_CALL_ANSWERED:{shape:"event",channelKind:"voice",icon:"phone",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:(e,t)=>`Call answered — ${t}`},VOICE_CALL_HOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"In de wacht",timeline:(e,t)=>`Call on hold — ${t}`},VOICE_CALL_UNHOLD:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Hervat"},VOICE_CALL_ENDED:{shape:"event",channelKind:"voice",icon:"phone",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`Call ended${cr(e.payload.duration)}`},VOICE_CALL_MISSED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gemiste oproep",timeline:e=>`Missed call — ${Rt(e.payload.from)}`},VOICE_CALL_FAILED:{shape:"event",channelKind:"voice",icon:"phone",snippet:()=>"Gesprek mislukt",timeline:()=>"Call failed"},VOICE_CALL_VOICEMAIL:{shape:"artifact",channelKind:"voice",icon:"phone",snippet:e=>e.payload.transcription?.trim()?e.payload.transcription:"Voicemail ontvangen"},VIDEO_CALL_STARTED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek gestart",timeline:()=>"Video call started"},VIDEO_CALL_ANSWERED:{shape:"event",channelKind:"video",icon:"video",connected:!0,snippet:()=>"Gesprek aangenomen",timeline:()=>"Video call answered"},VIDEO_CALL_HOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"In de wacht"},VIDEO_CALL_UNHOLD:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Hervat"},VIDEO_CALL_ENDED:{shape:"event",channelKind:"video",icon:"video",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Video call ended"},VIDEO_CALL_MISSED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gemiste oproep",timeline:()=>"Missed video call"},VIDEO_CALL_FAILED:{shape:"event",channelKind:"video",icon:"video",snippet:()=>"Gesprek mislukt",timeline:()=>"Video call failed"},EMAIL_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.EMAIL_RECEIVED",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:lr},EMAIL_SENT:{shape:"message",component:"communication:EmailActivity",channelKind:"mail",icon:"mail",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:lr},CHAT_MESSAGE_SENT:{shape:"message",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"outbound_message",snippet:e=>e.payload.text??""},CHAT_MESSAGE_RECEIVED:{shape:"message",triggerable:!0,displayNameKey:"communication:activity.CHAT_MESSAGE_RECEIVED",component:"communication:ChatMessage",channelKind:"chat",icon:"message-circle",replyable:!0,carriesText:!0,countsAs:"inbound_message",snippet:e=>e.payload.text??""},CHAT_MEMBER_JOINED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} toegevoegd`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · added by ${e.payload.initiator.name}`:"";return`${t} joined the chat${n}`}},CHAT_MEMBER_LEFT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`${Re(e.payload.members)} verlaten`,timeline:e=>{const t=Re(e.payload.members)||"Someone",n=e.payload.initiator?.name?` · removed by ${e.payload.initiator.name}`:"";return`${t} left the chat${n}`}},CHAT_RENAMED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Hernoemd naar "${e.payload.newName}"`,timeline:e=>`Chat renamed to "${e.payload.newName}"${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`},CHAT_CALL_STARTED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:()=>"Gesprek gestart",timeline:e=>`${ur(e.payload.callType)} started${e.payload.initiator?` by ${e.payload.initiator.name}`:""}`,joinUrl:e=>e.payload.joinUrl},CHAT_CALL_ENDED:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>`Gesprek beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:e=>`${ur(e.payload.callType)} ended${cr(e.payload.duration)}`,joinUrl:e=>e.payload.joinUrl},CHAT_EVENT:{shape:"event",channelKind:"chat",icon:"message-circle",snippet:e=>e.payload.text??e.payload.eventType,timeline:e=>e.payload.text||e.payload.eventType},TRANSCRIPT_ADDED:{shape:"artifact",triggerable:!0,displayNameKey:"communication:activity.TRANSCRIPT_ADDED",component:"communication:TranscriptionActivity",icon:"captions",carriesText:!0,snippet:e=>(e.payload.segments??[]).map(t=>t.text).join(" ")},COMMENT_ADDED:{shape:"note",component:"communication:CommentActivity",icon:"sticky-note",carriesText:!0,snippet:e=>e.payload.text??""},FILE_UPLOADED:{shape:"artifact",component:"communication:FileActivity",icon:"paperclip",snippet:e=>`Bestand: ${e.payload.fileName}`},AI_MESSAGE_ADDED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.AI_MESSAGE_ADDED",icon:"circle",snippet:e=>e.payload.output?.text??e.payload.input?.text??"",timeline:()=>"AI message added"},AI_ACTION_PROPOSED:{shape:"event",component:"communication:ProposedActionCard",icon:"circle",playbookAuthored:!0,snippet:e=>`Voorstel wacht op goedkeuring (${e.payload.actions?.length??0} actie(s))`},PLAYBOOK_STARTED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`Playbook gestart${e.payload.playbookName?`: ${e.payload.playbookName}`:""}`,timeline:e=>`Playbook gestart${e.payload.playbookName?` — ${e.payload.playbookName}`:""}`},PLAYBOOK_COMPLETED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook afgerond",timeline:()=>"Playbook afgerond"},PLAYBOOK_ESCALATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:()=>"Playbook geëscaleerd naar een mens",timeline:()=>"Playbook geëscaleerd naar een mens"},AGENT_DELEGATED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} vroeg ${e.payload.toAgentName??"een collega"}${e.payload.ask?`: ${e.payload.ask}`:""}`,timeline:e=>`${e.payload.fromAgentName} schakelde ${e.payload.toAgentName??"een collega"} in`},AGENT_ANSWERED:{shape:"event",icon:"circle",playbookAuthored:!0,snippet:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`,timeline:e=>`${e.payload.fromAgentName} beantwoordde de deelvraag`},MEETING_SCHEDULED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering gepland: ${e.payload.title}`,timeline:()=>"Meeting scheduled",joinUrl:e=>e.payload.joinUrl},MEETING_STARTED:{shape:"event",icon:"calendar",connected:!0,snippet:e=>`Vergadering gestart: ${e.payload.title}`,timeline:()=>"Meeting started",joinUrl:e=>e.payload.joinUrl},MEETING_ENDED:{shape:"event",icon:"calendar",snippet:e=>`Vergadering beëindigd${e.payload.duration?` (${Me(e.payload.duration)})`:""}`,timeline:()=>"Meeting ended"},MEETING_PARTICIPANT_JOINED:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} deelgenomen`,timeline:(e,t)=>`${t} joined the meeting`},MEETING_PARTICIPANT_LEFT:{shape:"event",icon:"calendar",snippet:e=>`${e.payload.name} verlaten`,timeline:(e,t)=>`${t} left the meeting`},INTERACTION_CREATED:{shape:"event",icon:"circle",snippet:()=>"Interactie aangemaakt",timeline:(e,t)=>`Interaction started by ${t}`},INTERACTION_STATUS_CHANGED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.INTERACTION_STATUS_CHANGED",icon:"circle-dot",snippet:e=>`Status: ${e.payload.fromStatus} → ${e.payload.toStatus}`,timeline:(e,t)=>`Status changed to ${e.payload.toStatus} by ${t}`},INTERACTION_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Interactie toegewezen",timeline:(e,t)=>`Assigned by ${t}`},SLA_BREACHED:{shape:"event",triggerable:!0,displayNameKey:"communication:activity.SLA_BREACHED",icon:"alarm-clock",snippet:e=>`SLA verlopen: ${e.payload.metric}`,timeline:e=>`SLA target ${e.payload.metric} passed its deadline`},WORK_COMMENT_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Reactie"},WORK_ITEM_ASSIGNED:{shape:"event",icon:"user",snippet:()=>"Taak toegewezen",timeline:(e,t)=>`Assigned by ${t}`},WORK_ITEM_STATUS_CHANGED:{shape:"event",triggerable:!0,icon:"circle-dot",snippet:()=>"Status gewijzigd",timeline:(e,t)=>`Status changed by ${t}`},CRM_NOTE_ADDED:{shape:"note",icon:"sticky-note",carriesText:!0,snippet:()=>"Notitie"},CRM_CALL_LOGGED:{shape:"note",icon:"phone",carriesText:!0,snippet:()=>"Gesprek vastgelegd"},CRM_STAGE_CHANGED:{shape:"event",icon:"circle-dot",snippet:()=>"Fase gewijzigd",timeline:(e,t)=>`Stage changed by ${t}`}};function lr(e){const t=e.payload,n=io(t.bodyText).trim()||t.bodySnippet?.trim()||ao(t.body??"");return t.subject?`${t.subject} — ${n}`:n}function j(e){return X[e]}function _c(e){return j(e)?.icon??"circle"}function Ec(e){return j(e)?.channelKind}function yn(e){return e==="message"||e==="note"}function Sc(e){return yn(j(e)?.shape)}function bn(e){return e==="note"}function Ic(e){return bn(j(e)?.shape)}function Ac(e){return j(e)?.replyable===!0}function Cc(e){return j(e)?.carriesText===!0}function co(e){return j(e)?.countsAs}function vc(e){return j(e)?.playbookAuthored===!0}function Tc(e){return j(e)?.connected===!0}function kc(e){const t=j(e);return t?.shape==="artifact"&&t?.carriesText===!0}function uo(e){const t=j(e.type)?.snippet;return t?t(e):""}function Oc(e,t){const n=j(e.type)?.timeline;return n?n(e,t):e.type.replace(/_/g," ").toLowerCase()}function Mc(e){const t=j(e.type)?.joinUrl;return t?t(e):void 0}function Fe(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return"";n=n[r]}return n==null?"":typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):""}function je(e,t,n){if(e===void 0)return null;if(typeof e=="string")return e||null;if("value"in e)return Fe(t,e.value)||null;const r={};for(const[s,a]of Object.entries(e.params??{}))r[s]=Fe(t,a);const o=n(e.key,r);return o===e.key?null:o}function lo(e,t){if(!e||typeof e=="string"||"value"in e)return null;const n={};for(const[r,o]of Object.entries(e.params??{}))n[r]=Fe(t,o);return{key:e.key,params:n}}const dr=140;function Rc(e){const t=e.trim();return t.length<=dr?t:`${t.slice(0,dr-1).trimEnd()}…`}function Nc(e,t){const n=lo(t?.text,e),r=t?je(t.text,e,o=>o):null;return{activityId:e.id,type:e.type,snippet:Rc(r??uo(e)),authorName:e.author?.name??"",direction:e.direction,createdAt:e.createdAt??Date.now(),...n?{snippetKey:n.key,snippetParams:n.params}:{}}}const Dc=e=>e;function fr(e){const t=X[e];return{type:e,shape:t.shape,channelKind:t.channelKind,icon:t.icon,replyable:t.replyable===!0,countsAs:t.countsAs,carriesText:t.carriesText===!0,triggerable:t.triggerable===!0,component:t.component,builtIn:!0,displayNameKey:t.displayNameKey}}function pr(e){return{type:e.type,shape:e.shape,channelKind:e.channelKind,icon:e.icon||"circle",replyable:e.replyable===!0,countsAs:e.countsAs,carriesText:e.carriesText===!0,triggerable:e.triggerable===!0,component:e.component,builtIn:!1,displayNameKey:e.displayNameKey}}class fo{constructor(t=[],n=Dc){this.translate=n;for(const r of t)r?.type&&(r.type in X||this.declared.has(r.type)||this.declared.set(r.type,r))}declared=new Map;get(t){if(t in X)return fr(t);const n=this.declared.get(t);return n?pr(n):void 0}triggerable(){const t=Object.keys(X).filter(r=>X[r].triggerable).map(fr),n=[...this.declared.values()].map(pr).filter(r=>r.triggerable);return[...t,...n]}timelineText(t,n){const r=X[t.type];if(r?.timeline)return r.timeline(t,n);const o=this.declared.get(t.type);return je(o?.text,t,this.translate)??t.type.replace(/_/g," ").toLowerCase()}snippet(t){const n=X[t.type];if(n?.snippet)return n.snippet(t);const r=this.declared.get(t.type);return je(r?.text,t,this.translate)??""}descriptor(t){return this.declared.get(t)}blocks(t){const n=this.declared.get(t)?.render;return n?.length?n:void 0}isMessage(t){return yn(this.get(t)?.shape)}nestsUnderParent(t){return bn(this.get(t)?.shape)}isReplyable(t){return this.get(t)?.replyable===!0}carriesText(t){return this.get(t)?.carriesText===!0}countsAs(t){return this.get(t)?.countsAs}channelKind(t){return this.get(t)?.channelKind}isTranscript(t){const n=this.get(t);return n?.shape==="artifact"&&n.carriesText}get translator(){return this.translate}}const wc=new fo;function xc(e,t,n=[]){const r=e.createdAt;if(!r)return[];const o=new Set(n);return e.author.type==="user"&&e.author.id&&o.add(e.author.id),Object.entries(t).filter(([s,a])=>a>=r&&!o.has(s)).map(([s])=>s)}function po(e){return e.createdAt??0}function Pc(e){return e.type==="EMAIL_RECEIVED"||e.type==="EMAIL_SENT"}function Lc(e){return e.type==="CHAT_MESSAGE_SENT"||e.type==="CHAT_MESSAGE_RECEIVED"}function P(e){return e<0?-Math.round(-e):Math.round(e)}function Ce(e,t){if(t.length===0)return[];const n=t.reduce((u,c)=>u+c,0);if(n===0)return t.map((u,c)=>c===0?e:0);const r=t.map(u=>e*u/n),o=r.map(u=>Math.trunc(u));let s=e-o.reduce((u,c)=>u+c,0);const a=r.map((u,c)=>({index:c,fraction:Math.abs(u-o[c])})).sort((u,c)=>c.fraction-u.fraction),i=s<0?-1:1;for(let u=0;s!==0&&u<a.length;u++)o[a[u].index]+=i,s-=i;return o}function H(e,t={}){const n=t.decimal??",",r=t.group??".",o=e<0,s=Math.abs(Math.trunc(e)).toString().padStart(3,"0"),a=s.slice(0,-2),i=s.slice(-2);let u="";for(let c=0;c<a.length;c++)c>0&&(a.length-c)%3===0&&(u+=r),u+=a[c];return`${o?"-":""}${u}${n}${i}`}function Wt(e){const t=e.trim().replace(/[\s ]/g,"");if(!t)return;const n=t.replace(/^[-+]?[^\d.,-]*/,"").replace(/[^\d.,-]+$/,""),r=/^-/.test(t)||/-$/.test(t),o=n.replace(/-/g,"");if(!o||!/^[\d.,]+$/.test(o))return;const s=o.lastIndexOf(","),a=o.lastIndexOf("."),i=Math.max(s,a),u=i===-1?"":o.slice(i+1),c=i!==-1&&u.length>=1&&u.length<=2,l=c?o.slice(0,i):o;if(!$c(l))return;const d=l.replace(/[.,]/g,""),f=c?u.padEnd(2,"0"):"00";if(d==="")return;const m=Number(d)*100+Number(f);return r?-m:m}function $c(e){return/^\d+$/.test(e)?!0:e.includes(".")&&e.includes(",")?!1:/^\d{1,3}([.,]\d{3})*$/.test(e)}function Kc(e){return e.costPriceCents==null?e.netCents:e.netCents-P(e.costPriceCents*e.quantity)}const Uc=["month","quarter","year"],Ge={month:1,quarter:3,year:12},Bc=864e5,Fc=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)},mr=e=>{const t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)},gr=(e,t)=>Math.round((t-e)/Bc);function dt(e,t,n){const r=Ge[t],o=Ce(e,Array.from({length:r},()=>1));let s=0;for(let a=Fc(n.from);a<n.to;a=mr(a)){const i=mr(a),u=Math.max(a,n.from),c=Math.min(i,n.to);if(c<=u)continue;const l=o[new Date(a).getUTCMonth()%r];s+=l*gr(u,c)/gr(a,i)}return P(s)}function mo(e,t,n){return!t||!n||t===n?e:P(e*Ge[n]/Ge[t])}function jc(e){return typeof e=="string"&&e in Ge}function go(e){return e.kind==="product"&&!e.optional&&!!e.productId&&!!e.pricePer}function Gc(e,t){const n=e.lines.filter(go).map(r=>({id:"",productId:r.productId,name:r.name,quantity:{from:"fixed",value:r.quantity},price:{cents:P(r.unitPriceCents*(1-(r.discountPercent??0)/100)),currency:e.currency,...r.pricePer?{per:r.pricePer}:{}}}));return{title:e.title||e.reference||"",companyId:e.companyId,currency:e.currency,status:"draft",startsAt:t,interval:"month",sourceTransactionId:e.id,...e.taxOverrideKey?{taxOverrideKey:e.taxOverrideKey}:{},lines:n}}function Wc(e){const t={from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)};return e.lines.reduce((n,r)=>r.kind!=="product"||r.optional?n:n+(r.pricePer?dt(r.netCents,r.pricePer,t):r.netCents),0)}const Vt={month:1,quarter:3,year:12},Vc=864e5;function Hc(e,t){return Vt[e]<Vt[t]}function We(e,t){const n=new Date(e),r=Vt[t],o=Math.floor(n.getUTCMonth()/r)*r;return{from:Date.UTC(n.getUTCFullYear(),o,1),to:Date.UTC(n.getUTCFullYear(),o+r,1)}}function U(e,t){const n=Math.max(e.startsAt,t.startsAt??e.startsAt),r=[e.endsAt,t.endsAt].filter(o=>o!=null);return r.length?{from:n,to:Math.min(...r)}:{from:n}}function ft(e,t){const n=Math.max(e.from,t.from),r=Math.min(e.to??t.to,t.to);return r>n?{from:n,to:r}:null}function ho(e,t,n){const r=ft(e,t);if(!r)return 0;if(r.from===t.from&&r.to===t.to)return 1;if(!n)return 0;const o=(s,a)=>Math.round((a-s)/Vc);return o(r.from,r.to)/o(t.from,t.to)}function yo(e,t,n){const r=U(e,t);return r.to!=null&&r.to<=n?"ended":r.from>n?"planned":"active"}function qc(e,t,n){return t.filter(r=>yo(e,r,n)!=="ended")}const Ht=864e5;function _n(e,t){return t.quantity.from==="fixed"?t.every??e.interval:e.interval}function bo(e){return e.quantity.from==="fixed"?e.billing??"advance":"arrears"}const ge=e=>Math.round((e.to-e.from)/Ht);function Yc(e,t,n,r){const o=[],s=[],a=e.graceDays*Ht,i=e.proration===!0;for(const u of t){const c=U(e,u),l=_n(e,u),d=bo(u),f=n.filter(g=>g.agreementLineId===u.id);if(l==="once"){const g={from:c.from,to:c.from+Ht};c.from+a<=r&&!f.some(E=>!E.correction)&&o.push({lineId:u.id,window:g,part:g,share:1,timing:"advance"});continue}const m=[];for(let g=We(c.from,l);g.from<(c.to??Number.POSITIVE_INFINITY)&&g.from+a<=r;g=We(g.to,l))m.push(g);const b=u.quantity.from==="fixed";for(const g of m.slice(-24)){const E=ft(c,g),h=g.to+a<=r,y=f.filter(S=>S.servicePeriod.from>=g.from&&S.servicePeriod.from<g.to),p=y.find(S=>!S.correction);if(!p){if(!E)continue;const S=E.from===g.from&&E.to===g.to;if(!(d==="advance"&&S)&&!h)continue;const C=b?ho(c,g,i):1;C>0&&o.push({lineId:u.id,window:g,part:E,share:C,timing:d});continue}b&&i&&h&&s.push(...zc(u.id,g,E,p,y))}}return{charges:o,corrections:s}}function zc(e,t,n,r,o){const s={...r.servicePeriod};for(const u of o){if(!u.correction)continue;Math.sign(u.quantity)!==Math.sign(r.quantity)?u.servicePeriod.from<=s.from?s.from=u.servicePeriod.to:s.to=u.servicePeriod.from:u.servicePeriod.to<=s.from?s.from=u.servicePeriod.from:s.to=u.servicePeriod.to}const a=[];if(s.to>s.from&&(n?(n.from>s.from&&a.push({part:{from:s.from,to:Math.min(n.from,s.to)},sign:-1}),n.to<s.to&&a.push({part:{from:Math.max(n.to,s.from),to:s.to},sign:-1}),n.from<s.from&&a.push({part:{from:n.from,to:s.from},sign:1}),n.to>s.to&&a.push({part:{from:s.to,to:n.to},sign:1})):a.push({part:s,sign:-1})),r.pricePer){const u=r.pricePer;return a.map(({part:c,sign:l})=>({lineId:e,window:t,part:c,quantity:l*r.quantity,unitPriceCents:r.unitPriceCents,pricePer:u})).filter(c=>c.unitPriceCents!==0&&c.quantity!==0&&ge(c.part)>0)}const i=r.unitPriceCents*ge(t)/Math.max(1,ge(r.servicePeriod));return a.map(({part:u,sign:c})=>({lineId:e,window:t,part:u,quantity:c*r.quantity,unitPriceCents:P(i*ge(u)/ge(t))})).filter(u=>u.unitPriceCents!==0&&u.quantity!==0)}function Xc(e){const t=new Map;let n=0;for(const o of e){if(o.correction){n+=1;continue}const s=t.get(o.timing),{from:a,to:i}=o.servicePeriod;t.set(o.timing,s?{timing:o.timing,from:Math.min(s.from,a),to:Math.max(s.to,i)}:{timing:o.timing,from:a,to:i})}return{spans:["advance","arrears"].flatMap(o=>{const s=t.get(o);return s?[s]:[]}),corrections:n}}const Ve=864e5,_o={draft:["active"],active:["draft","ended"],ended:["active"]};function Qc(e,t){return e===t||_o[e].includes(t)}function Zc(e){const t=e.graceDays*Ve;let n=e.startsAt;for(const r of e.lines??[]){const o=U(e,r),s=_n(e,r);if(s==="once"){n=Math.max(n,o.from+t);continue}if(o.to==null)return null;o.to<=o.from||(n=Math.max(n,We(o.to-1,s).to+t))}return e.lines?.length||e.endsAt!=null?n:null}const He=(e,t)=>{const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+t,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes())},Eo=e=>e&&e.termMonths>=1?e:void 0;function En(e,t){return Math.min(...t.map(n=>U(e,n).from))}function ne(e,t,n){let r=He(e,Math.max(1,t.termMonths));if(t.renew==="none")return r;const o=t.renew==="month"?1:Math.max(1,t.termMonths);for(let s=0;r<=n&&s<1200;s++)r=He(r,o);return r}function Sn(e,t,n){const r=He(e,Math.max(1,t.termMonths)),o=ne(e,t,n);return o===r?e:He(o,-(t.renew==="month"?1:Math.max(1,t.termMonths)))}function In(e,t,n){if(t=Eo(t),!t)return null;const r=ne(e,t,n),o=r-t.noticeDays*Ve;return n<=o?o:t.renew==="none"?null:ne(e,t,r)-t.noticeDays*Ve}function Ee(e,t,n){if(t=Eo(t),!t)return n;const r=ne(e,t,n);return n<=r-t.noticeDays*Ve||t.renew==="none"?r:ne(e,t,r)}function Jc(e,t){let n=t;for(const r of e.lines??[]){const o=U(e,r);if(o.to!=null&&o.to<=t)continue;const s=r.commitment??e.commitment;n=Math.max(n,Ee(Math.max(o.from,0),s,t))}return n}const hr=e=>JSON.stringify([e.productId,e.quantity,e.included??0,e.billing??"advance",e.every??"",e.startsAt??null,e.price??null,e.commitment??null]);function eu(e,t){return hr(e)!==hr(t)}function tu(e,t,n,r){const{endsAt:o,...s}=e,a={...s,...o!=null?{endsAt:o}:{},...n,id:r,seriesId:e.seriesId??e.id,startsAt:t};return[{...e,endsAt:t},a]}function So(e,t){const n=t.quantity;if(n?.from!=="meter")return null;if(n.accountRef)return{app:n.app,accountRef:n.accountRef};const r=e.sourceAccount;return r&&r.app===n.app?r:null}function nu(e){const t=new Map;for(const n of e.lines??[]){const r=So(e,n);r&&t.set([r.app,r.accountRef].join("|"),r)}return[...t.values()]}function ru(e,t){return[e,t].join("@")}const pt=[{id:"chat",defaultFlag:"isDefaultLlm",label:"LLM"},{id:"transcription",defaultFlag:"isDefaultStt",label:"STT"},{id:"tts",defaultFlag:"isDefaultTts",label:"TTS"},{id:"embedding",defaultFlag:"isDefaultEmbedding",label:"Embeddings"},{id:"decision",defaultFlag:"isDefaultDecision",label:"Beslissingen"}];function ou(e){return pt.find(t=>t.id===e)?.defaultFlag}function su(e){const t={};for(const n of pt)t[n.defaultFlag]=e?.[n.defaultFlag]===!0;return t}function iu(e,t){const n={};for(const r of pt){const o=r.defaultFlag;n[o]=(e?.[o]??t?.[o])===!0}return n}const au={image:"image",pdf:"file",text:"text",audio:"audio",video:"video"};function cu(e,t){if(t==="text")return!0;if(!e?.in?.length)return;const n=au[t];return n?e.in.includes(n):!1}const ue=["fast","standard","deep"],yr=(e,t)=>{const n=ue.indexOf(e),r=Math.min(ue.length-1,Math.max(0,n+t));return ue[r]},qt=e=>ue.indexOf(e);function Io(e){const t=[];let n;return e.expectsSchema?(n="fast",t.push("schema-antwoord")):(e.mode??"agent")==="ask"&&!e.toolCount?(n="fast",t.push("vraag zonder tools")):e.toolCount||e.hasAttachments?(n="standard",t.push(e.hasAttachments?"bijlagen":"tools beschikbaar")):(n="standard",t.push("standaard")),e.repair&&(n=yr(n,1),t.push("herstelbeurt: een tier omhoog")),e.budgetPressure==="soft"&&n!=="fast"&&(n=yr(n,-1),t.push("budget bijna op: een tier omlaag in plaats van weigeren")),e.maxTier&&qt(n)>qt(e.maxTier)&&(n=e.maxTier,t.push(`plafond van de rol: ${e.maxTier}`)),{tier:n,reasons:t}}function uu(e,t,n){const r=Io(t);if(!e)return{...r,...n,routed:!1};for(let o=qt(r.tier);o>=0;o--){const s=ue[o],a=e[s];if(!a?.accountId||!a.model)continue;const i=s===r.tier?r.reasons:[...r.reasons,`${r.tier} niet ingericht, ${s} gebruikt`];return{tier:s,reasons:i,accountId:a.accountId,model:a.model,routed:!0}}return{...r,...n,routed:!1,reasons:[...r.reasons,"geen tier ingericht: het profiel beslist"]}}const Yt=255,zt=2,Xt=10;function lu(e){const t=Object.keys(e);if(!t.length)return"geen vragen gesteld";for(const n of t){const r=e[n];if(!r?.instructions?.trim())return`vraag "${n}" heeft geen instructie`;if(r.type==="choice"){const o=Object.keys(r.criteria??{});if(o.length<2)return`vraag "${n}" heeft minder dan twee opties`;if(o.length>Yt)return`vraag "${n}" heeft meer dan ${Yt} opties`}if(r.type==="score"){const o=r.criteria?.length??0;if(o<zt||o>Xt)return`vraag "${n}" heeft ${o} niveaus; het moeten er ${zt} tot ${Xt} zijn`}}return null}function du(e,t=.9,n=.6){return Number.isFinite(e)?e>=t?"act":e>=n?"check":"refuse":"refuse"}const fu=["counting or arithmetic","comparing dates or durations","judging whether two numbers are close","generating text"],An=[{id:"openai",attachmentKinds:["image","pdf"],label:"OpenAI",capabilities:["chat","transcription","embedding"],defaultModel:"gpt-5-mini",baseUrl:"https://api.openai.com/v1"},{id:"gemini",attachmentKinds:["image","pdf"],label:"Google Gemini",capabilities:["chat","transcription","embedding"],defaultModel:"gemini-3.5-flash",baseUrl:"https://generativelanguage.googleapis.com/v1beta"},{id:"anthropic",attachmentKinds:["image","pdf"],label:"Anthropic",capabilities:["chat"],defaultModel:"claude-haiku-4-5",baseUrl:"https://api.anthropic.com/v1"},{id:"elevenlabs",label:"ElevenLabs",capabilities:["transcription"],baseUrl:"https://api.elevenlabs.io/v1"},{id:"typesafe",label:"TypeSafe (Jev)",capabilities:["decision"],defaultModel:"jev-latest",baseUrl:"https://api.typesafe.ai/v1"},{id:"moonshot",label:"Moonshot (Kimi)",capabilities:["chat"],defaultModel:"kimi-k3",baseUrl:"https://api.moonshot.ai/v1"},{id:"deepseek",label:"DeepSeek",capabilities:["chat"],defaultModel:"deepseek-v4-flash",baseUrl:"https://api.deepseek.com/v1"},{id:"groq",label:"Groq",capabilities:["chat"],defaultModel:"openai/gpt-oss-120b",baseUrl:"https://api.groq.com/openai/v1"},{id:"mistral",label:"Mistral",capabilities:["chat"],defaultModel:"mistral-large-latest",baseUrl:"https://api.mistral.ai/v1"},{id:"openrouter",label:"OpenRouter",capabilities:["chat"],defaultModel:"openrouter/auto",baseUrl:"https://openrouter.ai/api/v1"},{id:"ollama",label:"Ollama (self-hosted)",capabilities:["chat"],defaultModel:"llama3.3"},{id:"openai-compatible",label:"OpenAI-compatible (eigen endpoint)",capabilities:["chat"],defaultModel:"default"}];function ve(e){return An.find(t=>t.id===e)}function pu(e){return ve(e)?.label??e}function mu(e,t="gpt-5-mini"){return ve(e)?.defaultModel??t}function gu(e){return An.filter(t=>t.capabilities.includes(e))}function hu(e){const t=ve(e);return!!t&&!t.baseUrl}function yu(e,t){return t==="text"?!0:ve(e)?.attachmentKinds?.includes(t)===!0}function bu(e,t){if(!e.enabled)return"ok";const n=Qt(e.hardLimitNanos),r=Qt(e.softLimitNanos);return n!==void 0&&t>=n?"hard":r!==void 0&&t>=r?"soft":"ok"}function Qt(e){return typeof e=="number"?e:void 0}function Ao(e,t="month"){const n=new Date(e);return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1)}function _u(e,t="month"){const n=new Date(Ao(e,t));return`${n.getUTCFullYear()}-${String(n.getUTCMonth()+1).padStart(2,"0")}`}function Eu(e){return e==="ask"||e==="draft"||e==="agent"}function Su(e){return e?.listeningEnabled!==!1}const Iu=["report"],Au=[{id:"agent",label:"Agent",labelSource:"user"},{id:"team",label:"Team",labelSource:"team"},{id:"inbox",label:"Inbox",labelSource:"inbox"},{id:"channel",label:"Kanaal",labelSource:"channel"},{id:"provider",label:"Provider",labelSource:"raw"},{id:"status",label:"Status",labelSource:"raw"},{id:"handledBy",label:"Afhandelaar",labelSource:"raw"},{id:"time",label:"Tijd",labelSource:"raw"}];function Nt(e){return e<10?`0${e}`:`${e}`}function de(e,t){const n=new Date(e),r=`${n.getUTCFullYear()}-${Nt(n.getUTCMonth()+1)}-${Nt(n.getUTCDate())}`;return t==="day"?r:`${r}T${Nt(n.getUTCHours())}`}function fe(e,t){const n=new Date(e);return n.setUTCMinutes(0,0,0),t==="day"&&n.setUTCHours(0),n.getTime()}const Cu=36e5,vu=864e5;function Tu(e,t,n){const r=n==="hour"?Cu:vu,o=[];for(let s=fe(e,n);s<=t;s+=r)o.push(de(s,n));return o}const ku=new Set(["time"]);function Ou(e,t,n){if(!e)return[];const r=new Set(e.supportedDimensions??[]);return t.filter(o=>r.has(o.id)&&!ku.has(o.id)).map(o=>({id:o.id,label:o.label,options:o.options?.length?o.options:n[o.id]??[]})).filter(o=>o.options.length>0)}function Mu(e,t){const n=t.find(o=>o.id===e.dimensionId),r=n?.options.find(o=>o.value===e.value);return`${n?.label??e.dimensionId} · ${r?.label??e.value}`}function Ru(e){return{value:e.id,label:`${e.category} · ${e.label}`}}const Co=[{id:"resource",label:"Resource",labelSource:"raw"},{id:"origin",label:"Herkomst",labelSource:"raw"}],vo=Co.map(e=>e.id);function To(e,t){return`${e}.usage.${t}`}function Nu(e,t){return t.map(n=>({id:To(e,n.unit),label:n.label,category:"Verbruik",valueType:n.valueType??"count",aggregation:"sum",supportedDimensions:["provider",...vo,...n.extraDimensions??[],"time"]}))}async function Du(e,t){let n=0,r=0;for(const o of e)try{await t(o),n++}catch(s){const a=s?.status;if(a===403||a===400)r++;else throw s}return{decided:n,waiting:r}}function wu(e){return e.approvalRequestIds?.length?[...e.approvalRequestIds]:e.approvalRequestId?[e.approvalRequestId]:[]}function xu(e,t){return e.filter(r=>!r.enabled||r.scopeKind!==t.scopeKind||r.act!==t.act?!1:r.minAmountCents==null?!0:t.amountCents!=null&&t.amountCents>=r.minAmountCents).sort((r,o)=>{const s=r.minAmountCents??-1;return(o.minAmountCents??-1)-s||r.id.localeCompare(o.id)})[0]}function Pu(e,t,n,r){const o=new Set(e.userIds);for(const s of e.teamIds)for(const a of t[s]??[])o.add(a);return r||o.delete(n),[...o]}function Lu(e,t){if(e.status!=="pending"||e.decisions.some(s=>s.userId===t.userId))return e;const n=[...e.decisions,t],r=e.pendingUserIds.filter(s=>s!==t.userId);if(t.decision==="rejected")return{...e,decisions:n,pendingUserIds:r,status:"rejected",settledAt:t.at};const o=e.rule==="any"||r.length===0;return{...e,decisions:n,pendingUserIds:r,status:o?"approved":"pending",settledAt:o?t.at:void 0}}const ko=new Set(["info","success","warning","destructive"]),qe=200,Ye=100,ze=200,Xe=12,Qe=4,Zt=10,Oo=8,Jt=12,mt=4e3,ce=500,Mo=1024*1024,$u=new Set(["heading","paragraph","list","quote","code","divider","table","kpi","callout","image","letterhead","totals","pagebreak"]),Ro=["http:","https:","mailto:","tel:"],Ku=/^[a-z][a-z0-9+.-]*:/i;function Cn(e){const t=e.trim().replace(/^<|>$/g,"");if(!t)return!1;const n=Ku.exec(t)?.[0];return n?Ro.includes(n.toLowerCase()):!t.startsWith("//")}const Uu=/^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;function Bu(e){let t="",n=0;for(;n<e.length;){const r=e[n]==="!"&&e[n+1]==="[";if(e[n]!=="["&&!r){t+=e[n],n+=1;continue}const o=n+(r?2:1),s=br(e,o,"[","]");if(s<0||e[s+1]!=="("){t+=e[n],n+=1;continue}const a=br(e,s+2,"(",")");if(a<0){t+=e[n],n+=1;continue}const i=e.slice(o,s),u=e.slice(s+2,a).trim().split(/\s+/)[0]??"";t+=r||!Cn(u)?i:e.slice(n,a+1),n=a+1}return t}function br(e,t,n,r){let o=1;for(let s=t;s<e.length;s+=1){if(e[s]==="\\"){s+=1;continue}if(e[s]===n)o+=1;else if(e[s]===r&&(o-=1,o===0))return s}return-1}function No(e){return Bu(e).replace(Uu,(t,n,r)=>Cn(r)?t:"")}function $(e,t=mt){return typeof e=="string"?No(e).slice(0,t):""}function Fu(e,t=mt){return typeof e=="string"?e.slice(0,t):""}function he(e,t=200){return $(e,t)}function ju(e,t="info"){return typeof e=="string"&&ko.has(e)?e:t}function Do(e,t=()=>{}){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(n.length>=qe){t(`more than ${qe} blocks; the rest was dropped`);break}if(!r||typeof r!="object")continue;const o=r;if(!$u.has(o.type)){t(`unknown block type ${String(o.type)}`);continue}const s=typeof o.block_id=="string"?{block_id:o.block_id}:{};switch(o.type){case"heading":{const a=$(o.text);if(!a){t("a heading without text");continue}const i=o.level===2||o.level===3?o.level:1;n.push({...s,type:"heading",level:i,text:a});break}case"paragraph":{const a=$(o.text);if(!a){t("a paragraph without text");continue}n.push({...s,type:"paragraph",text:a});break}case"quote":{const a=$(o.text);if(!a){t("a quote without text");continue}n.push({...s,type:"quote",text:a});break}case"code":{const a=Fu(o.text);if(!a){t("a code block without text");continue}const i=typeof o.lang=="string"?{lang:o.lang.slice(0,32)}:{};n.push({...s,type:"code",...i,text:a});break}case"divider":n.push({...s,type:"divider"});break;case"list":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const c of a){if(i.length>=Ye){t(`more than ${Ye} list items`);break}const l=$(c?.text);if(!l)continue;const d=$(c?.lead,200);i.push(d?{lead:d,text:l}:{text:l})}if(i.length===0){t("a list without usable items");continue}const u=o.style==="numbered"?"numbered":"bulleted";n.push({...s,type:"list",style:u,items:i});break}case"table":{const a=Array.isArray(o.columns)?o.columns:[],i=[];for(const d of a){if(i.length>=Xe){t(`more than ${Xe} table columns`);break}const f=$(d?.label,ce),m=d?.align==="right"?"right":void 0;i.push(m?{label:f,align:m}:{label:f})}if(i.length===0){t("a table without columns");continue}const u=Array.isArray(o.rows)?o.rows:[],c=[];for(const d of u){if(c.length>=ze){t(`more than ${ze} table rows`);break}const f=Array.isArray(d)?d:[];c.push(i.map((m,b)=>$(f[b],ce)))}const l=$(o.caption,ce);n.push({...s,type:"table",columns:i,rows:c,...l?{caption:l}:{}});break}case"kpi":{const a=Array.isArray(o.items)?o.items:[],i=[];for(const u of a){if(i.length>=Qe){t(`more than ${Qe} kpi items`);break}const c=$(u?.value,40),l=$(u?.label,80);if(!c||!l)continue;const d=u?.tone;i.push(typeof d=="string"&&ko.has(d)?{value:c,label:l,tone:d}:{value:c,label:l})}if(i.length===0){t("a kpi block without usable items");continue}n.push({...s,type:"kpi",items:i});break}case"image":{const a=typeof o.url=="string"?o.url.trim():"";if(!a||!Cn(a)){t("an image without a usable url");continue}const i=$(o.alt,200),u=$(o.caption,ce);n.push({...s,type:"image",url:a,...i?{alt:i}:{},...u?{caption:u}:{}});break}case"letterhead":{const a=Array.isArray(o.fields)?o.fields:[],i=[];for(const l of a){if(i.length>=Zt){t(`more than ${Zt} letterhead fields`);break}const d=l,f=typeof d?.key=="string"?d.key.slice(0,48):"",m=he(d?.value);if(!f||!m)continue;const b=he(d?.label,80);i.push(b?{key:f,label:b,value:m}:{key:f,value:m})}const c=(Array.isArray(o.recipient)?o.recipient:[]).slice(0,Oo).map(l=>he(l)).filter(Boolean);if(i.length===0&&c.length===0){t("a letterhead without fields or recipient");continue}n.push({...s,type:"letterhead",fields:i,...c.length>0?{recipient:c}:{}});break}case"totals":{const a=c=>{const l=Array.isArray(c)?c:[],d=[];for(const f of l){if(d.length>=Jt){t(`more than ${Jt} totals rows`);break}const m=f,b=he(m?.label),g=he(m?.amount,40);!b||!g||d.push(m?.emphasis===!0?{label:b,amount:g,emphasis:!0}:{label:b,amount:g})}return d},i=a(o.rows);if(i.length===0&&!o.block_id){t("a totals block without usable rows");continue}const u=a(o.taxRows);n.push({...s,type:"totals",rows:i,...u.length>0?{taxRows:u}:{}});break}case"pagebreak":n.push({...s,type:"pagebreak"});break;case"callout":{const a=$(o.text);if(!a){t("a callout without text");continue}const i=$(o.title,200);n.push({...s,type:"callout",tone:ju(o.tone),...i?{title:i}:{},text:a});break}}}return n}function wo(e){return JSON.stringify(e).length}function xo(e){return{blocks:e.length,types:e.map(t=>t.type),headings:e.flatMap(t=>t.type==="heading"?[t.text]:[])}}function _r(e){return e.replace(/\|/g,"\\|").replace(/\r?\n/g," ").trim()}function Dt(e,t,n){const r=e.map((o,s)=>n?.[s]==="right"?"---:":"---");return[`| ${e.map(_r).join(" | ")} |`,`| ${r.join(" | ")} |`,...t.map(o=>`| ${o.map(_r).join(" | ")} |`)]}function Gu(e){switch(e.type){case"heading":return[`${"#".repeat(e.level)} ${e.text}`];case"paragraph":return[e.text];case"quote":return e.text.split(/\r?\n/).map(t=>`> ${t}`);case"code":return[`\`\`\`${e.lang??""}`,e.text,"```"];case"divider":return["---"];case"list":return e.items.map((t,n)=>{const r=e.style==="numbered"?`${n+1}.`:"-";return t.lead?`${r} **${t.lead}** ${t.text}`:`${r} ${t.text}`});case"table":{const t=Dt(e.columns.map(n=>n.label),e.rows,e.columns.map(n=>n.align??"left"));return e.caption?[...t,"",`*${e.caption}*`]:t}case"kpi":return Dt(e.items.map(t=>t.value),[e.items.map(t=>t.label)]);case"callout":return(e.title?`**${e.title}** ${e.text}`:e.text).split(/\r?\n/).map(n=>`> ${n}`);case"image":{const t=``;return e.caption?[t,"",`*${e.caption}*`]:[t]}case"letterhead":{const t=[...e.recipient??[]];t.length>0&&e.fields.length>0&&t.push("");for(const n of e.fields)t.push(n.label?`**${n.label}:** ${n.value}`:n.value);return t.map((n,r)=>r<t.length-1?`${n} `:n)}case"totals":return Dt(["",""],[...e.rows,...e.taxRows??[]].map(t=>[t.emphasis?`**${t.label}**`:t.label,t.emphasis?`**${t.amount}**`:t.amount]),["left","right"]);case"pagebreak":return["---"]}}function vn(e,t){const n=[],r=e.some(o=>o.type==="heading"&&o.level===1);t&&!r&&n.push(`# ${t}`);for(const o of e){const s=Gu(o);s.length>0&&n.push(s.join(`
|
|
4
4
|
`))}return`${n.join(`
|
|
5
5
|
|
|
6
6
|
`)}
|
|
7
|
-
`}const
|
|
8
|
-
`),n=[];for(const
|
|
9
|
-
`)[0]??"",m=/^(\d{6})(\d{4})?(R?[CD])[A-Z]?([\d,]+)(?:N[A-Z0-9]{3})?([^/]*)(?:\/\/(\S+))?/.exec(f);if(!m)continue;u++;const b=Ze(m[4])??0,y=m[3]==="C"||m[3]==="RD",E=wo(m[1]??""),g=m[2]?`${E.slice(0,4)}-${m[2].slice(0,2)}-${m[2].slice(2,4)}`:E,h=m[6]??m[5]?.trim();i.push({date:g,valueDate:E,amountCents:y?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:h&&h!=="NONREF"?`ref:${h}`:`seq:${o}:${u}`})}else if(d==="86"){const f=i.at(-1);f&&!f.description&&Object.assign(f,Zu(l))}const c=i.map(d=>d.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??c[0]??"",to:a?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}function Ju(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Do(e):xo(e)}const el=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function tl(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Po(e){const t=e.reduce((r,o)=>r+o.netCents,0),n=e.reduce((r,o)=>r+o.taxCents,0);return{netCents:t,taxCents:n,grossCents:t+n}}const nl="receipt",rl="book";function Lo(e){const t=[];return e.fields.supplierName?.value.trim()||t.push("no_supplier"),e.fields.issueDate?.value||t.push("no_date"),e.lines.length?e.lines.some(n=>!n.accountKey)&&t.push("no_account"):t.push("no_lines"),e.lines.some(n=>n.treatment?.kind==="asset"&&!n.treatment.groupId)&&t.push("asset_without_group"),e.lines.some(n=>n.treatment?.kind==="spread"&&!(n.treatment.months>0&&n.treatment.firstMonth&&n.treatment.resultAccountId))&&t.push("spread_without_months"),t}function ol(e){if(e.status!=="to_check")return null;const t=Lo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function $o(e,t=""){const n=new Map;for(const r of e){const o=[r.accountKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",r.customerCompanyId??"",r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:a})=>({description:[...new Set(a)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},...r.customerCompanyId?{dimensions:{customerCompanyId:r.customerCompanyId}}:{},...r.productId?{productId:r.productId}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function sl(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:$o(e.lines,n.supplierName?.value??""),totals:Po(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function il(e,t,n){return`${e}:${t}:${n}`}function al(e){return[1,5,15][e-1]??60}const cl=10*6e4;function ul(e,t){const n=r=>t.find(o=>r(o.match));return e.productId&&n(r=>r.productId===e.productId)||e.ledgerCategoryKey&&n(r=>r.ledgerCategoryKey===e.ledgerCategoryKey)||n(r=>!!r.taxRateKey&&!r.productId&&!r.ledgerCategoryKey&&r.taxRateKey===e.taxRateKey)||n(r=>!r.productId&&!r.ledgerCategoryKey&&!r.taxRateKey)}const ll="organization.business-entities.list",dl=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function fl(e,t,n){return e?e===t:n}function pl(e){return e.isDefault===!0?[e.id,""]:[e.id]}function ml(e,t,n){const r=new Map;for(const o of e)o.businessEntityId||r.set(o[t],o);if(n)for(const o of e)o.businessEntityId===n&&r.set(o[t],o);return[...r.values()]}function Ko(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return gl(n.slice(0,13))===Number(n[13])?n:void 0}function gl(e){let t=0;for(let n=0;n<e.length;n++)t+=Number(e[n])*(n%2===0?3:1);return(10-t%10)%10}function hl(e,t){const n=t.trim(),r=Ko(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r}),{organizationId:e,$or:o}}const yl=[{key:"contract",matches:(e,t)=>!!e.contractId&&e.contractId===t.contractId&&!!e.productId},{key:"customer",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function Uo(e,t,n,r){const o=n.filter(s=>r(s)&&s.currency===e.currency&&(s.validFrom==null||s.validFrom<=t.at)&&(s.validTo==null||s.validTo>=t.at)&&(s.minQuantity==null||t.quantity>=s.minQuantity)&&(s.productId==null||s.productId===e.id)&&(s.categoryKey==null||s.categoryKey===e.categoryKey)&&(s.productId!=null||s.categoryKey!=null));for(const s of yl){const a=o.filter(u=>s.matches(u,t));if(a.length===0)continue;const i=a.reduce((u,c)=>{const d=(c.minQuantity??0)-(u.minQuantity??0);return d!==0?d>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:i,sourceKey:(i.minQuantity??0)>1?"tier":s.key}}return null}function Bo(e,t,n){const r=Uo(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:_l(r.rule,e.listPriceCents),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function bl(e,t,n){const r=Uo(e,t,n,o=>!!o.rateCardId);return r?.rule.rateCardId?{rateCardId:r.rule.rateCardId,sourceKey:r.sourceKey,ruleId:r.rule.id}:e.rateCardId?{rateCardId:e.rateCardId,sourceKey:"list"}:null}function _l(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?L(t*(1-e.discountPercent/100)):t}const Fo="manual";function El(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===Fo)return o;const s=t.find(c=>c.id===o.productId);if(!s)return o;const a=Bo(s,{...r,quantity:o.quantity},n);if(a.unitPriceCents===o.unitPriceCents&&a.sourceKey===o.priceSourceKey&&a.per===o.pricePer)return o;const{pricePer:i,...u}=o;return{...u,unitPriceCents:a.unitPriceCents,priceSourceKey:a.sourceKey,...a.per?{pricePer:a.per}:{}}})}function An(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function Il(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function Xt(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=An(e);return n===void 0?void 0:{kind:"flat",micros:n}}function Sl(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",a=t.dimensions,i=t.display.per>1,u=1+a.length+1;return o.forEach((c,d)=>{const l=d+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(d===0&&!Xt(f[u]??""))return;const m=f[0]??"",b={};a.forEach((R,D)=>{const G=f[1+D]??"";if(!G)return;const Q=/^[+\d\s-]+$/.test(G)?G.replace(/\D/g,"").replace(/^00/,""):G;b[R.key]=R.match==="prefix"?{prefix:Q}:{equals:G}});const y=f[1+a.length]??"",E=y===""?0:An(y),g=Xt(f[u]??""),[h,p]=i?(f[u+1]||`${t.display.per}/1`).split("/").map(Number):[1,1],I=i?f[u+2]??"":"",v=I===""?0:Number(I),C=m?E===void 0||!g?"price":!(h>0)||!((p??h)>0)||!Number.isFinite(v)?"increment":null:"label";if(C){r.push({line:l,message:C});return}n.push({label:m,match:b,setupMicros:E,price:g,unitSize:t.display.per,firstIncrement:h,nextIncrement:p??h,minimum:v})}),{rates:n,errors:r}}const jo=1e4;function Go(e,t){if(e.length===0)return 0;switch(t){case"max":return Math.max(...e.map(n=>n.quantity));case"last":return e.reduce((n,r)=>(r.occurredAt??0)>=(n.occurredAt??0)?r:n).quantity;case"average":return e.reduce((n,r)=>n+r.quantity,0)/e.length;default:return e.reduce((n,r)=>n+r.quantity,0)}}function Wo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Al(e,t){return t===void 0?!1:"equals"in e?t===e.equals:/^\d+$/.test(e.prefix)?Wo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function br(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Vo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>Al(a,e.dimensions[s]))&&(!n||br(r)>br(n))&&(n=r);return n}function Ho(e,t){const n=Math.max(t.firstIncrement,1),r=Math.max(t.nextIncrement,1),o=e<=n?n:n+Math.ceil((e-n)/r)*r;return Math.max(o,t.minimum)}function qo(e,t,n){const r=t.tiers;if(t.mode==="volume"){const i=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return i?{micros:L(e*i.micros/n),bands:[{quantity:e,micros:i.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,a=0;for(const i of r){if(e<=s)break;const u=i.upTo===void 0?e:Math.min(e,i.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:i.micros}),a+=c*i.micros/n),s=u}return{micros:L(a),bands:o}}function Tl(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=Vo(a,t);if(!i||i.price.kind==="markup"&&a.costMicros==null){r.push(a);continue}const u=o.get(i.id)??{rate:i,billed:[],ids:[],costMicros:0};u.ids.push(a.id),u.billed.push({quantity:Ho(a.quantity,i),occurredAt:a.occurredAt}),u.costMicros+=a.costMicros??0,o.set(i.id,u)}return{groups:[...o.values()].map(({rate:a,billed:i,ids:u,costMicros:c})=>{const d=Go(i,n),l=Math.min(a.included??0,d),f=d-l,m=a.setupMicros*i.length;let b,y;a.price.kind==="flat"?b=L(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:y}=qo(f,a.price,a.unitSize):b=L(c*(1+a.price.percent/100));const E=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:d,included:l,billed:f,micros:E,cents:L(E/jo),...y?{bands:y}:{}}}),unrated:r}}function Cl(e){if(e.costPriceCents!=null)return so(e.costPriceCents,e.costPricePer??e.pricePer,e.pricePer)}function vl(e){return!e.archived&&e.sellable!==!1}function kl(e){return!e.archived&&e.purchasable===!0}const Ol=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter"],Ml="usage-source",Rl="/usage/records";function Yo(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"}))}}function Nl(e){return{...e,meters:(e.meters??[]).map(t=>Yo(t)),accounts:e.accounts??[]}}const Dl=new Set(["mail","message"]);function zo(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function wl(e,t,n,r="html"){if(!e)return n;const o=zo(e,t);return o?`${n}${r==="text"?`
|
|
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),a=Er(`${e.description} ${e.endToEndId??""}`),i=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&&a.includes(Er(h.number))),c=u.find(h=>h.openCents===r);if(c)return{target:i(c),via:"exact",confidence:"high",reasons:["invoice_number","amount"],label:c.label};if(u.length===1&&u[0]){const h=u[0];return{target:i(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:i(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",a=n.filter(i=>i.status==="active").flatMap(i=>i.allocations).filter(i=>i.item.kind===s&&i.item.id===o).reduce((i,u)=>i+u.amountCents,0);return t-a}function rl(e){return e.allocations.reduce((t,n)=>t+n.amountCents,0)===0}function ol(e,t){const n=Math.sign(t)===Math.sign(e);return{state:t===0?"paid":n?Math.abs(t)>=Math.abs(e)?"unpaid":"partially_paid":"overpaid",paidCents:Math.abs(e-t),openCents:n?Math.abs(t):0}}const Uo=e=>e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim();function V(e,t){const n=[],r=new RegExp(`<${t}(?:\\s[^>]*)?>([\\s\\S]*?)</${t}>`,"g");for(let o=r.exec(e);o;o=r.exec(e))n.push(o[1]??"");return n}function k(e,...t){let n=e;for(const r of t)n=n===void 0?void 0:V(n,r)[0];return n===void 0?void 0:Uo(n)}const Ze=e=>{if(!e)return;const t=Number(e.replace(",","."));return Number.isFinite(t)?Math.round(t*100):void 0},Ir=e=>e?.slice(0,10),sl=e=>e?/(\d{4}-\d{2}-\d{2})/.exec(e)?.[1]:void 0;function Bo(e){const t=e.replace(/<(\/?)[\w-]+:/g,"<$1"),n=V(t,"Stmt")[0]??t,r=k(n,"Id")??"stmt",o=l=>{const d=V(n,"Bal").find(m=>k(m,"Cd")===l);if(!d)return;const f=Ze(k(d,"Amt"));if(f!==void 0)return{cents:k(d,"CdtDbtInd")==="DBIT"?-f:f,date:sl(d)}},s=o("OPBD")??o("PRCD"),a=o("CLBD"),i=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=i.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)??a?.date??u.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}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((a,i)=>{const u=(a.index??0)+a[0].length,c=r[i+1]?.index??t.length;o[a[1]??""]=t.slice(u,c).replace(/\/$/,"").trim()});const s=(o.REMI??"").replace(/^(?:USTD|STRD)\/+(?:[A-Z]+\/+)*/,"").trim();return{...o.NAME?{counterpartyName:o.NAME}:{},...o.IBAN?{counterpartyIban:o.IBAN.replace(/\s+/g,"").toUpperCase()}:{},...o.EREF&&o.EREF!=="NOTPROVIDED"?{endToEndId:o.EREF}:{},description:s||t.trim()}}function 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,a;const i=[];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")a=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();i.push({date:h,valueDate:E,amountCents:g?b:-b,currency:s?.currency??"EUR",description:"",dedupeKey:y&&y!=="NONREF"?`ref:${y}`:`seq:${o}:${u}`})}else if(l==="86"){const f=i.at(-1);f&&!f.description&&Object.assign(f,al(d))}const c=i.map(l=>l.date).sort();return{format:"mt940",...r&&/^[A-Z]{2}\d{2}/.test(r)?{iban:r}:{},...s?.currency?{currency:s.currency}:{},from:s?.date??c[0]??"",to:a?.date??c.at(-1)??"",...s?{openingCents:s.cents}:{},...a?{closingCents:a.cents}:{},lines:i}}function cl(e){return/<\s*(?:[\w-]+:)?Document[\s>]/.test(e)||e.includes("camt.053")?Bo(e):jo(e)}const ul=e=>(e.kind==="journal_line"?"jl:":"bl:")+e.id;function ll(e,t,n){return n===void 0?[...e]:e.map(r=>{if(r.treatment||r.use==="resale"||r.netCents<n)return r;const o=t.find(s=>s.costAccountId===r.accountKey);return o?{...r,treatment:{kind:"asset",groupId:o.id,aiSuggested:!0}}:r})}function Go(e){const t=e.reduce((r,o)=>r+o.netCents,0),n=e.reduce((r,o)=>r+o.taxCents,0);return{netCents:t,taxCents:n,grossCents:t+n}}const dl="receipt",fl="book";function Wo(e){const t=[];return e.fields.supplierName?.value.trim()||t.push("no_supplier"),e.fields.issueDate?.value||t.push("no_date"),e.lines.length?e.lines.some(n=>!n.accountKey)&&t.push("no_account"):t.push("no_lines"),e.lines.some(n=>n.treatment?.kind==="asset"&&!n.treatment.groupId)&&t.push("asset_without_group"),e.lines.some(n=>n.treatment?.kind==="spread"&&!(n.treatment.months>0&&n.treatment.firstMonth&&n.treatment.resultAccountId))&&t.push("spread_without_months"),t}function pl(e){if(e.status!=="to_check")return null;const t=Wo(e);return t.length?t.includes("no_account")||t.includes("no_lines")?"choose":"check":e.match&&!e.match.verdict.ok?"check":"confirm"}function Vo(e,t=""){const n=new Map;for(const r of e){const o=[r.accountKey??"",r.taxRateKey,r.taxPercent??"",r.taxKind??"",r.customerCompanyId??"",r.productId??"",r.period?[r.period.from,r.period.to].join("/"):""].join("|"),s=n.get(o)??{line:r,net:0,tax:0,words:[]};s.net+=r.netCents,s.tax+=r.taxCents,r.description&&s.words.push(r.description),n.set(o,s)}return[...n.values()].map(({line:r,net:o,tax:s,words:a})=>({description:[...new Set(a)].join(", ").slice(0,120)||t,netCents:o,taxCents:s,taxRateKey:r.taxRateKey,taxKind:r.taxKind??"standard",...r.taxPercent!==void 0?{taxPercent:r.taxPercent}:{},...r.accountKey?{accountKey:r.accountKey}:{},...r.customerCompanyId?{dimensions:{customerCompanyId:r.customerCompanyId}}:{},...r.productId?{productId:r.productId}:{},...r.period&&!r.treatment?{period:r.period}:{}}))}function ml(e,t="finance"){const n=e.fields;return{sourceApp:t,documentId:e.id,direction:"purchase",kind:"receipt",businessEntityId:e.businessEntityId,...n.invoiceNumber?.value?{number:n.invoiceNumber.value}:{},counterparty:{...e.supplierCompanyId?{companyId:e.supplierCompanyId}:{},name:n.supplierName?.value??"",...n.supplierVatNumber?.value?{vatNumber:n.supplierVatNumber.value}:{}},issueDate:n.issueDate?.value??"",...n.dueDate?.value?{dueDate:n.dueDate.value}:{},currency:n.currency?.value||"EUR",...n.fxRate?.value?{fxRate:n.fxRate.value}:{},lines:Vo(e.lines,n.supplierName?.value??""),totals:Go(e.lines),attachment:{mountId:e.file.mountId,fileId:e.file.fileId},...e.externalIds?.length?{externalIds:e.externalIds}:{},...e.kind==="credit_note"&&e.creditsReceiptId?{creditsDocumentId:e.creditsReceiptId}:{}}}function gl(e,t,n){return`${e}:${t}:${n}`}function hl(e){return[1,5,15][e-1]??60}const yl=10*6e4;function bl(e,t,n){const r=n?t.filter(s=>(s.direction??"sale")===n):t,o=s=>r.find(a=>s(a.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!!s.taxRateKey&&!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}const _l="organization.business-entities.list",El=["bv","nv","eenmanszaak","vof","maatschap","stichting","vereniging","other"];function Sl(e,t,n){return e?e===t:n}function Il(e){return e.isDefault===!0?[e.id,""]:[e.id]}function Al(e,t,n){const r=new Map;for(const o of e)o.businessEntityId||r.set(o[t],o);if(n)for(const o of e)o.businessEntityId===n&&r.set(o[t],o);return[...r.values()]}function Cl(e,t,n){return n*Ho(e,t)}function Ho(e,t){if(t===e.unitKey)return 1;const n=e.units?.find(r=>r.key===t);if(!n||!(n.factor>0))throw new Error(`unknown unit ${t}`);return n.factor}function vl(e){const t=new Set;for(const n of e.units??[]){if(!n.key||n.key===e.unitKey||t.has(n.key))return"unit_duplicate";if(!(n.factor>0))return"unit_factor_invalid";t.add(n.key)}return null}function Tl(e,t){return!t.some(n=>n.parentId===e.id)}function kl(e,t,n){const r=e.optionKeys??[],o=t.options??[];if(o.map(u=>u.key).length!==r.length||r.some(u=>!o.find(c=>c.key===u&&c.value.trim())))return"variant_options_mismatch";const a=u=>r.map(c=>u?.find(l=>l.key===c)?.value.trim()??"").join("\0"),i=a(o);return n.some(u=>u.id!==t.id&&a(u.options)===i)?"variant_options_duplicate":null}function Ol(e,t){return e.archived?"product_archived":t?t.blocked?"product_blocked":null:"product_not_released"}function Ml(e,t){return mo(e.cents,e.per??t,t)}function gt(e){const t=e.trim().replace(/[\s-]/g,"");if(!/^\d+$/.test(t)||![8,12,13,14].includes(t.length))return;const n=t.padStart(14,"0");return Rl(n.slice(0,13))===Number(n[13])?n:void 0}function Rl(e){let t=0;for(let n=0;n<e.length;n++)t+=Number(e[n])*(n%2===0?3:1);return(10-t%10)%10}function Nl(e,t){const n=t.trim(),r=gt(n),o=[{sku:n},{barcodes:{$in:[n]}}];return r&&o.push({gtin:r},{packGtins:{$in:[r]}}),{organizationId:e,$or:o}}const Dl=[{key:"contract",matches:(e,t)=>!!e.contractId&&e.contractId===t.contractId&&!!e.productId},{key:"customer",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.productId},{key:"customer_category",matches:(e,t)=>!e.contractId&&!!e.companyId&&e.companyId===t.companyId&&!!e.categoryKey},{key:"segment",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.productId},{key:"segment_category",matches:(e,t)=>!e.contractId&&!e.companyId&&!!e.segmentKey&&e.segmentKey===t.segmentKey&&!!e.categoryKey},{key:"everyone",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.productId},{key:"everyone_category",matches:e=>!e.contractId&&!e.companyId&&!e.segmentKey&&!!e.categoryKey}];function qo(e,t,n,r){const o=n.filter(s=>r(s)&&s.currency===e.currency&&(s.validFrom==null||s.validFrom<=t.at)&&(s.validTo==null||s.validTo>=t.at)&&(s.minQuantity==null||t.quantity>=s.minQuantity)&&(s.productId==null||s.productId===e.id)&&(s.categoryKey==null||s.categoryKey===e.categoryKey)&&(s.productId!=null||s.categoryKey!=null));for(const s of Dl){const a=o.filter(u=>s.matches(u,t));if(a.length===0)continue;const i=a.reduce((u,c)=>{const l=(c.minQuantity??0)-(u.minQuantity??0);return l!==0?l>0?c:u:(c.validFrom??0)>=(u.validFrom??0)?c:u});return{rule:i,sourceKey:(i.minQuantity??0)>1?"tier":s.key}}return null}function Yo(e,t,n){const r=qo(e,t,n,a=>!a.rateCardId),o={currency:e.currency,...e.pricePer?{per:e.pricePer}:{}};if(!r)return e.listPriceCents==null?{...o,sourceKey:en}:{unitPriceCents:e.listPriceCents,...o,sourceKey:"list"};if(r.rule.unitPriceCents==null&&e.listPriceCents==null)return{...o,sourceKey:en};const s=r.rule.unitPriceCents!=null&&r.rule.pricePer||e.pricePer;return{unitPriceCents:xl(r.rule,e.listPriceCents??0),currency:e.currency,...s?{per:s}:{},sourceKey:r.sourceKey,ruleId:r.rule.id}}function wl(e,t,n){const r=qo(e,t,n,o=>!!o.rateCardId);return r?.rule.rateCardId?{rateCardId:r.rule.rateCardId,sourceKey:r.sourceKey,ruleId:r.rule.id}:e.rateCardId?{rateCardId:e.rateCardId,sourceKey:"list"}:null}function xl(e,t){return e.unitPriceCents!=null?e.unitPriceCents:e.discountPercent!=null?P(t*(1-e.discountPercent/100)):t}const zo="manual",en="missing";function Pl(e,t,n,r){return e.map(o=>{if(o.kind!=="product"||o.priceSourceKey===zo||o.usage)return o;const s=t.find(d=>d.id===o.productId);if(!s)return o;const a=o.factor??1,i=Yo(s,{...r,quantity:o.quantity*a},n),u=i.unitPriceCents==null?0:i.unitPriceCents*a;if(u===o.unitPriceCents&&i.sourceKey===o.priceSourceKey&&i.per===o.pricePer)return o;const{pricePer:c,...l}=o;return{...l,unitPriceCents:u,priceSourceKey:i.sourceKey,...i.per?{pricePer:i.per}:{}}})}function On(e){const t=/^\s*(-?)(\d*)[.,]?(\d*)\s*$/.exec(e);if(!t||t[2]===""&&t[3]==="")return;const n=`${t[3]}000000`.slice(0,6),r=Number(t[2]||"0")*1e6+Number(n);return t[1]?-r:r}function Ll(e){const t=e<0?"-":"",n=Math.abs(Math.round(e)),r=String(n%1e6).padStart(6,"0").replace(/0{1,2}$/,"");return`${t}${Math.floor(n/1e6)},${r.length<4?r.padEnd(4,"0"):r}`}function tn(e){const t=/^\s*\+\s*(\d+(?:[.,]\d+)?)\s*%\s*$/.exec(e);if(t)return{kind:"markup",percent:Number(t[1].replace(",","."))};const n=On(e);return n===void 0?void 0:{kind:"flat",micros:n}}function $l(e,t){const n=[],r=[],o=e.split(/\r?\n/),s=(o[0]??"").includes(";")?";":",",a=t.dimensions,i=t.display.per>1,u=1+a.length+1;return o.forEach((c,l)=>{const d=l+1;if(!c.trim())return;const f=c.split(s).map(R=>R.trim());if(l===0&&!tn(f[u]??""))return;const m=f[0]??"",b={};a.forEach((R,D)=>{const G=f[1+D]??"";if(!G)return;const Q=/^[+\d\s-]+$/.test(G)?G.replace(/\D/g,"").replace(/^00/,""):G;b[R.key]=R.match==="prefix"?{prefix:Q}:{equals:G}});const g=f[1+a.length]??"",E=g===""?0:On(g),h=tn(f[u]??""),[y,p]=i?(f[u+1]||"1/1").split("/").map(Number):[1,1],S=i?f[u+2]??"":"",T=S===""?0:Number(S),C=m?E===void 0||!h?"price":!(y>0)||!((p??y)>0)||!Number.isFinite(T)?"increment":null:"label";if(C){r.push({line:d,message:C});return}n.push({label:m,match:b,setupMicros:E,price:h,unitSize:t.display.per,firstIncrement:y,nextIncrement:p??y,minimum:T})}),{rates:n,errors:r}}const Je=1e4;function Xo(e,t){if(e.length===0)return 0;switch(t){case"max":return Math.max(...e.map(n=>n.quantity));case"last":return e.reduce((n,r)=>(r.occurredAt??0)>=(n.occurredAt??0)?r:n).quantity;case"average":return e.reduce((n,r)=>n+r.quantity,0)/e.length;default:return e.reduce((n,r)=>n+r.quantity,0)}}function Qo(e){return e.replace(/\D/g,"").replace(/^00/,"")}function Kl(e,t){return"equals"in e?(t??"")===e.equals:t===void 0?!1:/^\d+$/.test(e.prefix)?Qo(t).startsWith(e.prefix):t.startsWith(e.prefix)}function Cr(e){return Object.values(e.match).reduce((t,n)=>t+("prefix"in n?n.prefix.length*100:1),0)}function Zo(e,t){let n;for(const r of t)Object.entries(r.match).every(([s,a])=>Kl(a,e.dimensions[s]))&&(!n||Cr(r)>Cr(n))&&(n=r);return n}function Jo(e,t){const n=Math.max(t.firstIncrement,1),r=Math.max(t.nextIncrement,1),o=e<=n?n:n+Math.ceil((e-n)/r)*r;return Math.max(o,t.minimum)}function es(e,t,n){const r=t.tiers;if(t.mode==="volume"){const i=r.find(u=>u.upTo===void 0||e<=u.upTo)??r.at(-1);return i?{micros:P(e*i.micros/n),bands:[{quantity:e,micros:i.micros}]}:{micros:0,bands:[]}}const o=[];let s=0,a=0;for(const i of r){if(e<=s)break;const u=i.upTo===void 0?e:Math.min(e,i.upTo),c=u-s;c>0&&(o.push({quantity:c,micros:i.micros}),a+=c*i.micros/n),s=u}return{micros:P(a),bands:o}}function Ul(e,t,n="sum"){const r=[],o=new Map;for(const a of e){if(a.quantity<=0)continue;const i=Zo(a,t);if(!i||i.price.kind==="markup"&&a.costMicros==null){r.push(a);continue}const u=o.get(i.id)??{rate:i,billed:[],ids:[],costMicros:0};u.ids.push(a.id),u.billed.push({quantity:Jo(a.quantity,i),occurredAt:a.occurredAt}),u.costMicros+=a.costMicros??0,o.set(i.id,u)}return{groups:[...o.values()].map(({rate:a,billed:i,ids:u,costMicros:c})=>{const l=Xo(i,n),d=Math.min(a.included??0,l),f=l-d,m=a.setupMicros*i.length;let b,g;a.price.kind==="flat"?b=P(f*a.price.micros/a.unitSize):a.price.kind==="tiered"?{micros:b,bands:g}=es(f,a.price,a.unitSize):b=P(c*(1+a.price.percent/100));const E=b+m;return{rateId:a.id,label:a.label,records:i.length,recordIds:u,measured:l,included:d,billed:f,micros:E,cents:P(E/Je),...g?{bands:g}:{}}}),unrated:r}}function Bl(e,t,n){const r={quantity:1,unitKey:"piece",unitPriceCents:e.cents};if(t?.price.kind!=="flat"||t.setupMicros||!e.billed)return r;const o=t.price.micros*n.per/t.unitSize;if(!Number.isInteger(o/Je))return r;const s=o/Je,a=Math.round(e.billed/n.per*1e4)/1e4;return P(a*s)===e.cents?{quantity:a,unitKey:n.unit,unitPriceCents:s}:r}function Mn(e){const t=e.usage;if(!t?.rateId||e.unitKey!=="piece"||!(t.per>0))return null;const n=Math.round((t.measured-(t.included??0))/t.per*100)/100;return{amount:Math.max(0,n),unit:t.unit}}function Fl(e,t,n,r){const{unitKey:o,id:s,organizationId:a,productId:i,businessEntityId:u,updatedAt:c,...l}=n??{};return{...e,...l,currency:n?.currency||r,...o?{salesUnitKey:o}:{},...t?{taxRateKey:t.taxRateKey,...t.ledgerCategoryKey?{ledgerCategoryKey:t.ledgerCategoryKey}:{},...t.referenceCost?{referenceCost:t.referenceCost}:{},...t.blocked?{blocked:!0}:{}}:{},released:!!t}}function jl(e){return!e.archived&&e.sellable!==!1}function Gl(e){return!e.archived&&e.purchasable===!0}const Wl=["piece","hour","day","month","km","license","minute","kg","ton","m","m2","m3","liter","box","roll","pallet","pack"],Vl="usage-source",Hl="/usage/records";function ts(e){const t=e.unit||"unit",n=Number(e.display?.per);return{key:e.key,label:e.label??e.key,unit:t,display:{unit:e.display?.unit||t,per:n>0?n:1},aggregation:e.aggregation??"sum",account:e.account==="customer"?"customer":"source",dimensions:(e.dimensions??[]).map(r=>({...r,match:r.match==="prefix"?"prefix":"exact"})),increments:(e.increments??[]).filter(r=>Number.isInteger(r.first)&&r.first>0&&Number.isInteger(r.next)&&r.next>0)}}function ql(e){return{...e,meters:(e.meters??[]).map(t=>ts(t)),accounts:e.accounts??[]}}const Yl=new Set(["mail","message"]);function ns(e,t){const n=e.settings?.signatures?.[t];return!n?.enabled||!n.body||n.body.trim()===""?null:n}function zl(e,t,n,r="html"){if(!e)return n;const o=ns(e,t);return o?`${n}${r==="text"?`
|
|
10
10
|
|
|
11
|
-
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}function Xo(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function xl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Pl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=Xo(n);r&&!t.includes(r)&&t.push(r)}return t}function Ll(e){return e.endpoints??[]}const $l=["lead","opportunity","customer","former"],Kl=["new","working","unqualified"];function Ul(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const Qo=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds"],Zo=["openDeal","hasContacts"],Bl={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","hasContacts"]},Fl=["updatedAt","createdAt","name"],jl=["list"];function Gl(e){return e.search?.trim()||e.createdWithinDays||Zo.some(t=>e[t])||Qo.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const Jo="CRM_NOTE_ADDED",Wl="crm_activity",es="CRM_CALL_LOGGED",Vl="CRM_STAGE_CHANGED",Hl=["phone","meeting","video"],ql=["callback","interested","no_answer","not_interested"],Yl=e=>e===Jo||e===es,zl=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function Xl(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function Ql(e,t,n,r){const o=e.filter(i=>i.key===t&&!i.archived);if(o.length===0)return;const s=se(n),a=se(r);return o.find(i=>se(i.locale)===s)??o.find(i=>se(i.locale)===a)??o.find(i=>!i.locale)??o[0]}const Zl=/\{([a-zA-Z0-9_.]+)\}/g;function Tn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function Jl(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ts(e,t,n){const r=[];return{text:e.replace(Zl,(s,a)=>{const i=Tn(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):Jl(i)}),unresolved:r}}function ns(e,t){if(!e)return!0;const n=Tn(t,e.key);if(e.exists!==void 0){const r=n!=null&&n!==""&&n!==!1;return e.exists?r:!r}return e.equals!==void 0?n===e.equals:!0}function ed(e,t,n,r,o){const s=[],a=[],i=new Set,u=c=>{const d=ts(c,t,o);for(const l of d.unresolved)s.includes(l)||s.push(l);return d.text};for(const c of e){if(c.block_id&&!ns(n?.[c.block_id],t))continue;const d=c.block_id?r?.[c.block_id]:void 0;if(d&&c.block_id){i.add(c.block_id),a.push(...d);continue}switch(c.type){case"heading":case"paragraph":case"quote":a.push({...c,text:u(c.text)});break;case"callout":a.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":a.push(c);break;case"list":a.push({...c,items:c.items.map(l=>({...l.lead?{lead:u(l.lead)}:{},text:u(l.text)}))});break;case"table":a.push({...c,columns:c.columns.map(l=>({...l,label:u(l.label)})),rows:c.rows.map(l=>l.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":a.push({...c,items:c.items.map(l=>({...l,value:u(l.value),label:u(l.label)}))});break;case"letterhead":a.push({...c,fields:c.fields.map(l=>({...l,value:u(l.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":a.push({...c,rows:c.rows.map(l=>({...l,label:u(l.label),amount:u(l.amount)})),...c.taxRows?{taxRows:c.taxRows.map(l=>({...l,label:u(l.label),amount:u(l.amount)}))}:{}});break;case"image":a.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:a.push(c)}}return{blocks:a,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!i.has(c))}}function rs(e){const t=e?.address,n=[t?.street,t?.houseNumber].filter(Boolean).join(" "),r=[t?.postalCode,t?.city].filter(Boolean).join(" ");return{name:e?.name??"",addressLines:[n,r,t?.country??""].filter(Boolean),footerLines:[e?.footerText??"",e?.kvkNumber?`KvK ${e.kvkNumber}`:"",e?.vatNumber?`Btw ${e.vatNumber}`:"",e?.iban?`IBAN ${e.iban}`:""].filter(Boolean),...e?.logo?{logo:e.logo}:{}}}function td(e){return rs({name:e?.billing?.companyName||e?.name||e?.displayName||"",address:e?.address,kvkNumber:e?.billing?.kvkNumber,vatNumber:e?.billing?.vatNumber,iban:e?.houseStyle?.iban,footerText:e?.houseStyle?.footerText,logo:e?.logo})}function os(e,t,n,r=Date.now()){const o=n.filter(s=>s.ok).length;return{suite:e,target:t,at:r,score:n.length?o/n.length:1,perCase:[...n]}}function nd(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function rd(e,t,n,r,o=Date.now()){const s=[];for(const a of n)try{s.push(await r(a))}catch(i){s.push({caseId:a.id,ok:!1,note:`beoordeling mislukt: ${i?.message??String(i)}`})}return os(e,t,s,o)}const Rt=864e5,Je=e=>Date.parse([e,"T00:00:00Z"].join("")),od=e=>new Date(e).toISOString().slice(0,10);function ss(e,t){const n=Je(t.from),r=Je(t.to)+Rt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let a=new Date(n);;){const i=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1);if(i>=r)break;const u=Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1),c=Math.round((Math.min(u,r)-Math.max(i,n))/Rt);o.push({month:od(i),share:c/Math.round((u-i)/Rt)}),a=new Date(u)}const s=Te(e,o.map(a=>a.share));return o.map((a,i)=>({month:a.month,cents:s[i]}))}function is(e){const t=new Date(Je(e.from)),n=new Date(Je(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Cn=864e5,mt=e=>new Date(e).toISOString().slice(0,10),et=e=>Date.parse(`${e}T00:00:00Z`);function me(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),a=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,a)),mt(s.getTime())}function vn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let a=r;for(let i=1;i<=t;i++){const u=Math.round(a*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;i===t&&(c=a),c=Math.min(c,a),a-=c,s.push({sequence:i,dueOn:me(e.firstDueOn,i-1),interestCents:u,principalCents:c,remainingCents:a})}return s}function sd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,d)=>c.date.localeCompare(d.date));let a=s.filter(c=>c.date<t).reduce((c,d)=>c+d.cents,0),i=s.findIndex(c=>c.date>=t);i<0&&(i=s.length);let u=0;for(let c=et(t);c<=et(n);c+=Cn){const d=mt(c);for(;i<s.length&&(s[i]?.date??"")<=d;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function id(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),a=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,i=[];let u=`${o}-${String(a).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const d=me(u,r);i.push({sequence:c,from:u<e?e:u,to:mt(et(d)-Cn)}),u=d}return i}const as=5e7,ad=["director","group_company","participation","other_company"],cd=e=>e?.relation&&ad.includes(e.relation)?e.relation:"director";function ud(e,t=as){return{over:e>t,ratio:Math.max(0,e)/t}}function ld(e,t){const r=e.terms.kind==="loan_received"?1:-1;return vn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function cs(e){return mt(et(me(`${e.slice(0,7)}-01`,1))-Cn)}function kn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function us(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:cs(me(n,u))})).filter(i=>i.dueOn<=r&&i.cents!==0).map(i=>({financingItemId:e,sequence:i.sequence,dueOn:i.dueOn,lines:o(i.cents,i.sequence),expectedBankCents:0,settlesVia:"direct",label:s(i.sequence)}))}const _r=600;function ls(e){const t=e.method??"linear",n=e.restart?.bookValueCents??e.costCents,r=n-e.residualCents;if(t==="none"||r<=0)return[];if(t==="linear"){const u=e.lifeMonths-((e.restart?.fromSequence??1)-1);return kn(r,Math.max(1,u))}const o=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(o>0&&o<1))return[];const s=1-(1-o)**(1/12),a=[];let i=n;for(;i>e.residualCents&&a.length<_r;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===_r-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function dd(e,t){const n=e.terms;if(n.disposal)return[];const r=ls(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return us(e.id,r,n.restart?.fromMonth??n.acquiredOn,t,(s,a)=>[{accountId:n.depreciationAccountId,amountCents:s,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-s,subAccountId:e.id,description:`Afschrijving ${a}/${o}`}],s=>`Afschrijving ${s}/${o}`,n.restart?.fromSequence??1)}function fd(e,t){const n=e.terms,r=[];t.movementsCents&&r.push({accountId:n.accumulatedAccountId,amountCents:-t.movementsCents,subAccountId:e.id,description:e.name}),t.proceedsCents&&r.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:e.name}),r.push({accountId:e.ledgerAccountId,amountCents:-n.costCents,subAccountId:e.id,description:e.name});const o=r.reduce((s,a)=>s+a.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function pd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return us(e.id,n.period?ss(n.totalCents,n.period).map(o=>o.cents):kn(n.totalCents,n.months),n.firstMonth,t,(o,s)=>[{accountId:n.resultAccountId,amountCents:r*o,description:e.name},{accountId:e.ledgerAccountId,amountCents:-r*o,subAccountId:e.id,description:`${e.name} ${s}/${n.months}`}],o=>`${o}/${n.months}`)}function md(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function gd(e,t){const n=me(t,12);return vn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function hd(e,t){const n=e.terms,r=n.quantity??1,o=l=>Math.round(l*t.quantity/r),s=o(n.costCents),a=o(n.residualCents),i=o(-t.movementsCents),u=[],c=`${e.name} (${t.quantity}/${r})`;i&&u.push({accountId:n.accumulatedAccountId,amountCents:i,subAccountId:e.id,description:c}),t.proceedsCents&&u.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:c}),u.push({accountId:e.ledgerAccountId,amountCents:-s,description:c});const d=u.reduce((l,f)=>l+f.amountCents,0);return d&&u.push({accountId:t.disposalAccountId,amountCents:-d,description:c}),{lines:u,costCents:s,residualCents:a}}const ds={NL:45e3},yd=(e,t)=>t??ds[(e??"NL").toUpperCase()],bd=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}],fs=36e5,ps=864e5,ee=-1/0,_d=e=>e.score>ee,Ie={urgent:40,high:25,normal:10,low:0};function Ed(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Id=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,ms=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function gs(e,t){return!!(e&&Id.test(e)||t&&ms.test(t))}const hs=3,ys=600;function Sd(e,t){return e>=hs||t>=ys}const bs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Ad(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&bs.includes(r)&&(t[r]=n.value)}return t}const Td=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Cd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function vd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Td.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&ms.test(e.body)||n&&Cd.test(n))return"marketing"}function _s(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const Es=["open"],Is=1e3,Ss=72;function As(e){return e.lastActivityAt??(e.createdAt?new Date(oo(e)).getTime():0)}function Ts(e,t){return Cs(t.remindersById?.[e.id],e,t.now)}function Cs(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const vs=e=>eo(e)==="outbound_message",ks=e=>Es.includes(e);function gt(e,t){return Math.max(0,(t-As(e))/fs)}function Os(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function kd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Od(e,t,n){if(!ks(e.status)||e.firstResponseAt)return!1;const r=Os(e,n);return r!==void 0&>(e,t)>r}function Ms(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!vs(n.type)?!1:gt(e,t)<Ss}function Md(e,t){if(!ks(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ms(e,t.now))return{score:ee,reasons:[]};if(Ts(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Ie[o]>0&&(n+=Ie[o],r.push(`priority:${o}`)),_s(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=gt(e,t.now);if(s>0){const u=Math.min(s*2,30);n+=u,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const a=e.lastActivityPreview;return a?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),a?.direction==="outbound"&&vs(a.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(u=>u==="marketing"||u==="automated")||gs(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Is,r.push("bulk")),{score:n,reasons:r}}const Rd=e=>!!e.assignedUserId||!!e.assignedInboxId,Nd=e=>e.status==="closed",Dd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,wd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,Rs=[{key:"solved",label:"resolution_solved",order:0,positive:!0,system:!0},{key:"no_action",label:"resolution_no_action",order:1,system:!0},{key:"duplicate",label:"resolution_duplicate",order:2,system:!0},{key:"spam",label:"resolution_spam",order:3,system:!0},{key:"unresolved",label:"resolution_unresolved",order:4,positive:!1,system:!0}],xd=["duplicate","spam"],Pd="c_";function Ld(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...Rs,...t]}function $d(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function Kd(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)??(n?r.find(o=>o.locale===n):void 0)??{locale:t}}const Ud="article",tt=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function Ns(e){const t=(e??"").toLowerCase();return tt.find(n=>n.code===t)??tt.find(n=>n.code===t.split("-")[0])}function Bd(e){return Ns(e)?.label??e}function Fd(e){const t=Ns(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const On=3;function Ds(e,t){const n=new Set;let r=1,o=t.get(e)?.parentId;for(;o;){if(n.has(o)||(n.add(o),r++,r>On+1))return 1/0;o=t.get(o)?.parentId}return r}function jd(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(a=>[a.id,a]));if(!r.has(e)||t&&ws(e,t,r))return!1;const o=Ds(e,r),s=t?Mn(t,n):1;return o+s<=On}function ws(e,t,n){const r=new Set;let o=n.get(e)?.parentId;for(;o;){if(o===t)return!0;if(r.has(o))return!1;r.add(o),o=n.get(o)?.parentId}return!1}function Mn(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(o=>o.parentId===e);return r.length?1+Math.max(...r.map(o=>Mn(o.id,t,n))):1}const xs="en";function Ps(e){return e.defaultLocale||e.locale||xs}function Gd(e){const t=new Set,n=[];for(const r of[Ps(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function Wd(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)?.name??(n?r.find(o=>o.locale===n)?.name:void 0)??e.name}function Vd(e,t){const n=i=>`${i.level}:${i.key}`,r=new Map((t?.rows??[]).map(i=>[n(i),i])),o=e.rows.map(i=>({...i,priorCents:r.get(n(i))?.amountCents??0})),s=new Set(o.map(n)),a=t?.rows??[];return a.forEach((i,u)=>{if(s.has(n(i)))return;const c=a.slice(0,u).reverse().find(f=>f.level<i.level);let d=o.length;const l=c?o.findIndex(f=>n(f)===n(c)):-1;if(l>=0)for(d=l+1;d<o.length&&(o[d]?.level??0)>(c?.level??0);)d+=1;o.splice(d,0,{...i,amountCents:0,priorCents:i.amountCents}),s.add(n(i))}),o}function Hd(e,t,n){const r=new Map;for(const o of e){if(o.date>n)continue;const s=r.get(o.accountId)??{accountId:o.accountId,openingCents:0,debitCents:0,creditCents:0,closingCents:0};o.date<t?s.openingCents+=o.functionalCents:o.functionalCents>0?s.debitCents+=o.functionalCents:s.creditCents-=o.functionalCents,s.closingCents=s.openingCents+s.debitCents-s.creditCents,r.set(o.accountId,s)}return r}const qd=["revenue","expense"],ve=e=>qd.includes(e.type),Yd=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Ls(e,t,n,r){const o=new Map;for(const a of[...e].sort((i,u)=>i.code.localeCompare(u.code))){if(!t(a))continue;const i=Yd(a),u=a.reportGroup??i,c=o.get(i)??new Map;c.set(u,[...c.get(u)??[],a]),o.set(i,c)}const s=[];for(const[a,i]of o){const u=n(a),c=l=>u==="debit"?t(l):-t(l),d=[...i.values()].flat().reduce((l,f)=>l+c(f),0);s.push({key:a,label:r(a),level:0,side:u,amountCents:d});for(const[l,f]of i){s.push({key:l,label:r(l),level:1,side:u,amountCents:f.reduce((m,b)=>m+c(b),0)});for(const m of f)s.push({key:m.code,label:`${m.code} ${m.name}`,level:2,side:u,amountCents:c(m),accountId:m.id})}}return s}function zd(e,t,n,r=o=>o){const o=e.filter(ve),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},a=Ls(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),i=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:a,totals:{resultCents:i},source:"finance"}}function Xd(e,t,n,r,o=s=>s){const s=e.filter(d=>!ve(d)),i=Ls(s,d=>t.get(d.id)?.closingCents??0,d=>d==="assets"?"debit":"credit",o);if(r){i.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const d=i.find(l=>l.level===0&&l.key==="equity");d?d.amountCents+=r:i.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=i.filter(d=>d.level===0&&d.side==="debit").reduce((d,l)=>d+l.amountCents,0),c=i.filter(d=>d.level===0&&d.side==="credit").reduce((d,l)=>d+l.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:i,totals:{debitCents:u,creditCents:c},source:"finance"}}function Qd(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=ve(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function Zd(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(i,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const i of t){const u=Math.max(0,Math.floor((Date.parse(`${i.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(i.cents>=0?c.inCents+=i.cents:c.outCents-=i.cents)}let a=e;for(const i of s)a+=i.inCents-i.outCents,i.closingCents=a;return s}function Jd(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const a=t.get(s.accountId);!a||!ve(a)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,a]of[...n.entries()].sort(([i],[u])=>i.localeCompare(u)))a&&(r.push({accountId:s,amountCents:-a,functionalCents:-a,currency:e.currency}),o+=a);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const S=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),$s={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[S("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),S("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),S("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),S("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),S("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),S("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),S("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),S("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),S("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),S("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),S("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),S("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),S("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),S("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),S("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),S("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),S("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),S("1000","Kas","asset","assets.current.cash","BLimKasKas"),S("1100","Bank","asset","assets.current.cash","BLimBanRba"),S("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),S("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),S("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),S("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),S("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),S("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),S("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),S("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),S("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),S("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),S("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),S("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),S("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),S("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),S("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),S("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),S("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),S("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),S("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),S("4000","Lonen","expense","costs.personnel","WPerLesLon"),S("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),S("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),S("4100","Huur","expense","costs.housing","WBedHuiBeh"),S("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),S("4200","Autokosten","expense","costs.car","WBedAutOak"),S("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),S("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),S("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),S("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),S("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),S("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),S("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),S("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),S("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),S("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),S("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),S("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),S("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),S("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),S("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),S("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),S("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),S("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),S("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),S("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),S("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),S("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),S("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),S("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),S("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),S("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},ef=[$s],Ks={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function tf(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,a)=>s+a.functionalCents,0);r!==0&&n.push({code:"entry_unbalanced",params:{cents:String(r)}});const o=new Map(t.accounts.map(s=>[s.id,s]));for(const s of e.lines){const a=o.get(s.accountId);a?a.archived?n.push({code:"entry_account_archived",params:{account:a.code}}):a.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:a.code}}):n.push({code:"entry_unknown_account",params:{account:s.accountId}})}return t.period?(t.period.status==="locked"&&t.allow!=="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function nf(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const rf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function of(e){const t={};for(const n of rf)e[n]!==void 0&&(t[n]=e[n]);return t}function Qt(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(Qt).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+Qt(r)).join(",")+"}"}function sf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Us(e,t,n){const r=t.filter(s=>s.appliesTo.direction===n.direction).filter(s=>!s.appliesTo.kind||s.appliesTo.kind===n.kind).sort((s,a)=>s.order-a.order),o=s=>r.find(a=>s(a.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}function af(e){if(!e)return{};const{projectId:t,costCenterId:n,...r}=e;return{...t?{projectId:t}:{},...n?{costCenter:n}:{},...Object.keys(r).length?{dimensions:r}:{}}}function cf(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&is(t.period)>1?[{index:n,period:t.period}]:[])}function uf(e,t){const n=e.kind==="journal"?ff(e,t):df(e,t);return n.ok?lf(n,e,t.functionalCurrency??"EUR"):n}function lf(e,t,n){if(!t.currency||t.currency===n)return e;const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=e.lines.map(a=>({...a,functionalCents:Math.round(a.amountCents*r)})),s=o.reduce((a,i)=>a+i.functionalCents,0);return o[0]={...o[0],functionalCents:o[0].functionalCents-s},{...e,lines:o}}function df(e,t){const n=b=>t.accounts.find(y=>y.role===b&&!y.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),a=n(r?"vat_payable":"vat_receivable"),i=r?-1:1,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,d=[],l=new Map;for(const b of e.lines){const y=b.accountKey??Us(b,t.rules,e)?.accountId??s?.id;if(!y)return{ok:!1,problem:"no_account_for_line"};d.push({...u,accountId:y,amountCents:i*b.netCents,functionalCents:i*b.netCents,taxCode:b.taxRateKey,taxCents:i*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...af(b.dimensions)}),b.taxCents&&l.set(b.taxRateKey,(l.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,y]of l){const E=t.taxAccounts.find(h=>h.taxKey===b),g=(r?E?.payableAccountId:E?.receivableAccountId)??a?.id;if(!g)return{ok:!1,problem:"no_vat_account"};d.push({...u,accountId:g,amountCents:i*y,functionalCents:i*y,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,y)=>b+y.netCents+y.taxCents,0);d.unshift({...u,accountId:o.id,amountCents:-i*f,functionalCents:-i*f});const m=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:d,description:m||e.documentId}}function ff(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??Us(o,t.rules,e)?.accountId??n(Ks[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const a=Math.round(Number(o.amountCents)||0);a&&r.push({accountId:s,amountCents:a,functionalCents:a,currency:e.currency,...o.description?{description:o.description}:{},...o.dimensions?.projectId?{projectId:o.dimensions.projectId}:{},...o.dimensions?.costCenterId?{costCenter:o.dimensions.costCenterId}:{},...o.dimensions?.employeeId?{dimensions:{employeeId:o.dimensions.employeeId}}:{}})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const Nt=e=>String(e).padStart(2,"0"),pf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function mf(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,a=e+Math.floor(s/12),i=s%12+1;return{fiscalYear:n,index:o+1,from:`${a}-${Nt(i)}-01`,to:`${a}-${Nt(i)}-${Nt(pf(a,i))}`,status:"open"}})}function gf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const Bs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",hf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Fs=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Rn=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Fs(Rn(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Dt=e=>e<0?"C":"D",Er=e=>Rn(e.replace(/-/g,""),35);function yf(e){const t=new Map(e.accounts.map(c=>[c.id,c.code])),n=new Map(e.periods.map(c=>[c.id,c.index])),r=[],o=(...c)=>{r.push(c.join(""))};o('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',Bs,'">',"<header>",A("fiscalYear",e.fiscalYear.replace("/","-")),A("startDate",e.startDate),A("endDate",e.endDate),A("curCode",e.currency),A("dateCreated",e.createdOn),A("softwareDesc",e.software.desc,50),A("softwareVersion",e.software.version,20),A("RGSVersion",e.rgsVersion,20),"</header>","<company>",A("Commercenr",e.company.commerceNr,100),A("companyName",e.company.name,255),A("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Fs(Rn(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",A("streetname",s.street,100),A("number",s.number,15),A("city",s.city,50),A("postalCode",s.postalCode,10),A("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",A("custSupID",Er(c.id)),A("custSupName",c.name,50),A("commerceNr",c.commerceNr,100),A("taxRegistrationCountry",c.country),A("taxRegIdent",c.vatNumber,30),A("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((d,l)=>d.code.localeCompare(l.code))){const d=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",d?"P":"B"),A("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",A("vatID",c.key,35),A("vatDesc",c.label,100),A("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),A("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((d,l)=>d.index-l.index))o("<period>",A("periodNumber",c.index),A("startDatePeriod",c.from),A("endDatePeriod",c.to),"</period>");o("</periods>");const a=e.opening.filter(c=>c.cents!==0);if(a.length){const c=a.filter(l=>l.cents>0).reduce((l,f)=>l+f.cents,0),d=-a.filter(l=>l.cents<0).reduce((l,f)=>l+f.cents,0);o("<openingBalance>",A("linesCount",a.length),A("totalDebit",Z(c)),A("totalCredit",Z(d))),a.forEach((l,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(l.accountId)??l.accountId),A("amnt",Z(l.cents)),A("amntTp",Dt(l.cents)),"</obLine>")}),o("</openingBalance>")}const i=e.entries.flatMap(c=>c.lines);o("<transactions>",A("linesCount",i.length),A("totalDebit",Z(i.filter(c=>c.functionalCents>0).reduce((c,d)=>c+d.functionalCents,0))),A("totalCredit",Z(-i.filter(c=>c.functionalCents<0).reduce((c,d)=>c+d.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const d=u.get(c.id);if(d?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",hf[c.kind]));for(const l of[...d].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",l.number,35),A("desc",l.description),A("periodNumber",n.get(l.periodId)??0),A("trDt",l.date),A("Source",l.source.app+(l.source.kind?" "+l.source.kind:""),999),A("User",l.postedBy,999)),l.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,l.date),y=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",l.source.number??l.number,255),A("effDate",f.taxPointDate??l.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Dt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Er(f.counterpartyCompanyId)),A("invRef",l.source.number,255),A("cost",f.costCenter,999),A("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+A("vatID",f.taxCode,35)+A("vatPerc",b)+A("vatAmnt",Z(f.taxCents))+A("vatAmntTp",Dt(f.taxCents))+"</vat>":"",y?"<currency>"+A("curCode",f.currency)+A("curAmnt",Z(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
-
`)}const bf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function _f(e){const t=V(e,"ledgerAccount").map(i=>{const u=k(i,"RGScode")??k(i,"leadCode");return{code:k(i,"accID")??"",name:k(i,"accDesc")??"",kind:k(i,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=i=>{const u=k(i,"accID");u&&(n[u]=(n[u]??0)+bf(k(i,"amnt"),k(i,"amntTp")))};for(const i of V(e,"obLine"))r(i);for(const i of V(e,"trLine"))r(i);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),a=k(o,"endDate");return{accounts:t.filter(i=>i.code),closing:n,...s?{fiscalYear:s}:{},...a?{endDate:a}:{}}}function Ef(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const Zt=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!Zt.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${Zt.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Pe(n);if(r)return r}if(t.type==="for-each"){const n=Pe(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Pe(t.else??[]);if(n)return n}}return null}function If(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function Sf(e,t){return e.filter(n=>n.enabled&&If(n.ownerScope,t))}function Af(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Tf(e){return`mcp__${e}__`}const Cf=1e3,vf=2e3,kf=500,Of=12e3,Mf=4e3,js=["contact","company","work_item"];function Rf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return js.includes(t)}const Nf=[{key:"high",label:"tax_high",percent:21,kind:"standard"},{key:"low",label:"tax_low",percent:9,kind:"reduced"},{key:"zero",label:"tax_zero",percent:0,kind:"zero"},{key:"reverse_charge",label:"tax_reverse_charge",percent:0,kind:"reverse_charge"},{key:"exempt",label:"tax_exempt",percent:0,kind:"exempt"}];function Gs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Df=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function Nn(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function wf(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:Nn(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const Ir=/^\d{4}-\d{2}-\d{2}$/;function xf(e){if(!e.key?.trim())return"tax_code_key";if(!e.label?.trim())return"tax_code_label";const t=e.rates??[];if(!t.length)return"tax_code_rates";for(const[n,r]of t.entries()){if(!Ir.test(r.validFrom)||r.validTo&&!Ir.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function ht(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=L(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?lt(n,e.pricePer,e.servicePeriod):n}function Pf(e,t,n){const r=e.map(c=>({...c,netCents:ht(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const d=n??r[c].taxRateKey,l=o.get(d);l?l.push(c):o.set(d,[c])}const s=[];let a=0,i=0;for(const[c,d]of o){const l=Gs(c,t),f=d.reduce((y,E)=>y+r[E].netCents,0),m=L(f*l.percent/100),b=Te(m,d.map(y=>r[y].netCents));for(let y=0;y<d.length;y++)r[d[y]].taxCents=b[y];s.push({taxRateKey:c,percent:l.percent,kind:l.kind,netCents:f,taxCents:m}),a+=f,i+=m}const u=r.reduce((c,d)=>d.costPriceCents==null||d.optional?c:c+L(d.costPriceCents*d.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const Lf="onboarding-source",$f=["support","billing","availability","sales","onboarding"],Kf=["keep","replace"],yt=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],Ws={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=yt){return t.find(n=>n.key===e)??{...Ws,key:e}}function pe(e){return e==="published"||e==="approved"}function Dn(e,t,n=yt){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function Uf(e,t=yt){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const Bf=864e5;function Vs(e,t){return Math.round((t-e)/Bf)}function wn(e,t){const n=e.cycleMinutes.length;return n===0?0:(Vs(e.anchor,t)%n+n)%n}function xn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[wn(e,t)]??0}function Pn(e,t){return e.startTimes?.[wn(e,t)]}function Ln(e,t,n,r){const o=e.filter(i=>i.effectiveFrom===void 0||i.effectiveFrom<=r),s=i=>i.sort((u,c)=>(c.effectiveFrom??0)-(u.effectiveFrom??0))[0],a=s(o.filter(i=>i.userId===t));return a||s(o.filter(i=>!i.userId&&i.teamId&&n.includes(i.teamId)))}function Hs(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const Jt=864e5;function Ff(e){const t=Math.max(1,Math.round((e.to-e.from)/Jt));return Array.from({length:t},(n,r)=>e.from+r*Jt)}function en(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Sr={interval:0,day:1,week:2};function jf(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(l=>l.userId&&pe(l.status)&&q(l.kindKey).capacity),a=n.filter(l=>l.userId&&pe(l.status)&&q(l.kindKey).absent),i=t.userIds??[...new Set([...s.map(l=>l.userId),...r.map(l=>l.userId),...o.map(l=>l.userId)])].filter(l=>!!l),u={};let c="interval";const d=l=>{Sr[l]>Sr[c]&&(c=l)};for(const l of i){const f=t.teamIdsOf?.(l)??[];let m=0,b=0,y=0;for(const h of Ff(e)){const p=Math.max(h,e.from),I=Math.min(h+Jt,e.to);y++;const v=s.filter(D=>D.userId===l).reduce((D,G)=>D+en(G.start,G.end,p,I),0);if(v>0){m+=v;continue}const C=Ln(r,l,f,h),R=C?xn(C,h):0;if(C&&R>0){m+=R*60,d(Pn(C,h)?"interval":"day");continue}C||b++}if(b>0){const h=Hs(o,l,e.from);h&&(m+=h.weeklyMinutes*60*(b/7),d("week"))}const E=a.filter(h=>h.userId===l).reduce((h,p)=>h+en(p.start,p.end,e.from,e.to),0),g=Math.max(0,m-E);(g>0||y>0)&&(u[l]=g)}return{seconds:Object.values(u).reduce((l,f)=>l+f,0),precision:c,byUser:u}}function Gf(e,t){if(!e.some(i=>i.userId))return[];const n="",r=new Map;for(const i of e){const u=i.userId??n;r.set(u,(r.get(u)??0)+i.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(i=>i!==n)])].map(i=>{const u=r.get(i)??0,c=t.byUser[i]??0;return{userId:i,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((i,u)=>i.netSeconds-u.netSeconds);const a=r.get(n)??0;return a>0&&s.push({requiredSeconds:a,capacitySeconds:0,netSeconds:-a}),s}function Wf(e,t,n,r){const o=e.filter(a=>a.userId&&pe(a.status)&&!q(a.kindKey).absent),s=Object.entries(r.byUser).map(([a,i])=>{let u=0,c=0;for(const d of o){if(d.userId!==a||q(d.kindKey).capacity&&!d.workstreamId)continue;const l=en(d.start,d.end,n.from,n.to);l<=0||(Dn(d,t)?u+=l:c+=l)}return{userId:a,capacitySeconds:i,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,i-u-c)}});return s.sort((a,i)=>i.freeSeconds-a.freeSeconds),s}const Vf="demand-source",Ar=1e3;function Hf(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function qs(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=Hf(e,t),r=t/e;return n/(1-r*(1-n))}function Ys(e,t,n,r){return r<=0?1:e<=t?0:1-qs(e,t)*Math.exp(-(e-t)*n/r)}function zs(e,t,n){return n<=0?0:e*t/n}function Xs(e,t,n,r){if(e<=0||t<=0)return 0;const o=zs(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,a=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let i=Math.max(1,Math.ceil(o));i<=Ar;i++)if(!(i<=o)&&!(Ys(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return Ar}const qf=36e5,Yf=864e5;function zf(e){return e==="day"?Yf:qf}function Xf(e,t){return e.start<t.end&&t.start<e.end}function Le(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function Qs(e,t,n){const r=e.handleSeconds??0,o=e.seconds??(e.volume!==void 0?e.volume*r:0);if(o<=0&&!e.volume)return{seconds:0,headcount:0};const s=(t.unplannedLossPercent??0)/100,a=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const i=Xs(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function Qf(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=zf(a),u=i/1e3,c=e.kinds,d=t.filter(y=>pe(y.status)),l=d.filter(y=>Dn(y,n,c)),f=d.filter(y=>q(y.kindKey,c).capacity),m=d.filter(y=>q(y.kindKey,c).absent),b=[];for(let y=fe(s.from,a);y<s.to;y+=i){const E=y+i,g=de(y,a);let h=0;for(const D of l)h+=Le(D,y,E);let p=0;for(const D of f)p+=Le(D,y,E);let I=0;for(const D of m)I+=Le(D,y,E);const v=o?.[g]??{},C=Qs(v,r,u),R=h/u;b.push({period:g,forecastVolume:v.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:h,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:I})}return b}function Zs(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function Zf(e,t,n){const r=Zs(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function Jf(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const ep=36e5,tn=6048e5,Js=8,tp=.5,np=2;function rp(e){const t=Number(e.slice(0,4)),n=Number(e.slice(5,7)),r=Number(e.slice(8,10)),o=e.length>10?Number(e.slice(11,13)):0;return Date.UTC(t,n-1,r,o)}function op(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*tn,i=a-tn;let u=0,c=!1;for(const[d,l]of e)d>=i&&d<a&&(u+=l,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o<=0?1:Math.min(np,Math.max(tp,r[0]/o))}function sp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function ip(e,t,n){const r=Math.max(1,n?.weeks??Js),o=new Map,s=new Set;for(const u of e)o.set(rp(u.period),u.value),s.add(u.period.slice(0,10));const a=op(o,fe(t.from,"hour"),r),i=[];for(let u=fe(t.from,"hour");u<t.to;u+=ep){let c=0,d=0;for(let m=1;m<=r;m++){const b=u-m*tn,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const g=r-m+1;c+=E*g,d+=g}let l=d>0?c/d*a:0;const f=sp(n?.adjustments,u);f?.absoluteVolume!==void 0?l=f.absoluteVolume:f?.factor!==void 0&&(l*=f.factor),i.push({period:de(u,"hour"),volume:l})}return i}const ei="schedule_entry",ti="workstream";function ap(e){return`${ei}:${e}`}function cp(e){return`${ti}:${e}`}const nn=36e5,le=864e5;function up(e,t){const n=t==="day"?le:nn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Tr(e){const t=Math.max(1,Math.round((e.to-e.from)/le));return Array.from({length:t},(n,r)=>e.from+r*le)}function wt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function lp(e,t,n={}){const r=n.grain??"hour",o=up(t,r),s=r==="day"?le:nn,a=new Map(o.map(l=>[l,0])),i=e.filter(l=>l.userId&&q(l.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const l of i)if(!(u&&l.userId&&!u.has(l.userId))){for(const f of o){const m=wt(l.start,l.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of Tr(t))wt(l.start,l.end,f,f+le)>0&&c.add(`${l.userId}:${f}`)}const d=n.userIds??[...new Set([...i.map(l=>l.userId),...(n.patterns??[]).map(l=>l.userId)])].filter(l=>!!l);if(n.patterns?.length)for(const l of d){const f=n.teamIdsOf?.(l)??[];for(const m of Tr(t)){if(c.has(`${l}:${m}`))continue;const b=Ln(n.patterns,l,f,m);if(!b)continue;const y=xn(b,m);if(y<=0)continue;const E=Pn(b,m);if(E){const[p,I]=E.split(":").map(Number),v=m+p*nn+(I??0)*6e4,C=v+y*6e4;for(const R of o){const D=wt(v,C,R,R+s);D>0&&a.set(R,(a.get(R)??0)+D)}continue}const g=o.filter(p=>p>=m&&p<m+le);if(!g.length)continue;const h=y*60/g.length;for(const p of g)a.set(p,(a.get(p)??0)+h)}}return o.map(l=>({period:de(l,r),weight:a.get(l)??0}))}function ni(e,t){if(e<=0||!t.length)return[];const n=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(n<=0){const r=e/t.length;return t.map(o=>({period:o.period,seconds:r}))}return t.filter(r=>r.weight>0).map(r=>({period:r.period,seconds:e*r.weight/n}))}function dp(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(i=>n(i.period)<o.by):t,a=s.length?s:t;for(const i of ni(o.seconds,a)){const u=`${i.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=i.seconds:r.set(u,{...i,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function ri(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function fp(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),o=t.slice(n+1).trim();if(o){if(r==="user")return{kind:"user",userId:o};if(r==="team")return{kind:"team",teamId:o}}}function oi(e){return ri(e)}function si(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function pp(e){return e.agentId?{kind:"user",userId:e.agentId}:si(e.ownerScope)}function mp(e){return oi(e)}const ii="playbook-run",gp="run";function hp(e,t=0){return`${ii}:${e}~${t}`}function yp(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function ai(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function bp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function _p(e,t){if(t)return e.targets.find(n=>n.id===t)}function ci(e){return e?.kind==="assignment"}function Ep(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return ci(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":a&&a===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const rn=["suggest","outward","auto"];function Ip(e){return typeof e=="string"&&rn.includes(e)}function Sp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Ap(e,t){const n=e??"suggest";return t&&rn.indexOf(t)<rn.indexOf(n)?t:n}function Tp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function ui(e){const t=e.split("__");return t[t.length-1]||e}function Cp(e){const t=ui(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const vp=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toCategory",type:"string",onlyFor:["WORK_ITEM_STATUS_CHANGED"]},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"priority",type:"string"},{name:"inboxId",type:"string"},{name:"topicId",type:"string"},{name:"assigneeUserId",type:"string"}];function kp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Op={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function $n(e){return`${e.type}:${e.id}`}function Mp(e){return[$n(e),e.lineId].join("#")}function Rp(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Np(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const li="interaction";function di(e){return e?.type===li?e.id:void 0}const fi=64,pi=8e3;function Dp(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),fi),pi)}const wp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],xp={kind:"workflow",steps:[]};function Pp(e){return e?.kind==="workflow"?e.steps:[]}function Lp(e){return e?.kind==="procedure"?e.procedure:void 0}function $p(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function mi(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const gi=10,hi=.9;function Kp(e){const{total:t,rate:n}=mi(e);return t>=gi&&n>=hi}const yi=["done","escalated","failed","stopped"];function Up(e){return yi.includes(e)}function bi(e){return e==="waiting"}function Bp(e){return e==="running"||bi(e)}function Kn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function Fp(e){const t=Kn(e);return t?$n(t):void 0}function jp(e){return di(Kn(e))}const xt=864e5;function Gp(e,t){return e.lines.flatMap(n=>{const r=dt(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=ht({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function _i(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const Cr=e=>e.seriesId??e.id;function Wp(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function Vp(e,t,n,r={}){const o=(r.noticeDays??30)*xt,s=(r.windowDays??7)*xt,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(Cr(c),[...u.get(Cr(c))??[],c]);for(const c of u.values()){const d=Wp(i,c,n),l=U(i,d);if(l.to!=null&&l.to<=n)continue;const f={contractId:i.id,lineId:d.id},m=d.commitment??i.commitment,b=gn(i,c),y=l.to??Ee(b,m,n);if(d.customerCompanyId){const h=d.salesLine?t.find(p=>p.agreementId===d.salesLine?.agreementId&&p.seriesId===d.salesLine?.seriesId):void 0;h?h.ended?a.push({kind:"not_covered",...f,reason:"sales_ended"}):(d.quantity.from==="fixed"&&h.quantity!=null&&h.quantity!==d.quantity.value&&a.push({kind:"not_covered",...f,reason:"quantity"}),h.unbilled.length&&a.push({kind:"not_billed",...f,windows:h.unbilled}),y>h.effectiveEndAt&&a.push({kind:"term_mismatch",...f,purchaseEnd:y,salesEnd:h.effectiveEndAt})):a.push({kind:"not_covered",...f,reason:"no_sales_line"})}const E=!!m&&m.termMonths>=3&&(m.renew==="term"||n<Ee(b,{...m,renew:"none"},b)),g=l.to==null&&E?yn(b,m,n):null;if(g!=null&&g-n<=o&&a.push({kind:"notice_due",...f,deadline:g}),m&&m.termMonths>=1&&d.changeWindowDays){const h=hn(b,m,n)+d.changeWindowDays*xt;h>n&&h-n<=s&&a.push({kind:"change_window",...f,closesAt:h})}if(d.expected==="variable"&&d.invoiced&&d.invoiced.length>=2){const h=[...d.invoiced].sort((I,v)=>I.from-v.from),p=h[h.length-1];_i(h.slice(0,-1).map(I=>I.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function Ei(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function Hp(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}function Ii(e,t,n){const r=[];for(const o of e.lines){const s=t.find(i=>i.id===o.poLineId),a=Ei(o.poLineId,n);(!s||e.movement==="in"&&a+o.quantity>s.quantity)&&r.push({code:"receipt_over_ordered",poLineId:o.poLineId}),e.movement==="return"&&o.quantity>a&&r.push({code:"receipt_return_over_received",poLineId:o.poLineId}),o.serials.length&&o.serials.length!==o.quantity&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function qp(e){return e.map(t=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(n=>String(n).trim()).filter(Boolean))],...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Si(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ai(e,t){const n=e.filter(r=>Si(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Ti(e,t){return t*(e.unitsPerPurchaseUnit&&e.unitsPerPurchaseUnit>0?e.unitsPerPurchaseUnit:1)}function Ci(e){return{cents:L(e.costCents/Ti(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function Yp(e){const t=Ci(e);return t.per?lt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const zp=864e5,on=e=>e.seriesId??e.id;function vr(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>U(e,r).from>n).sort((r,o)=>U(e,r).from-U(e,o).from)[0]??t[t.length-1]}function kr(e){const t=new Map;for(const n of e)t.set(on(n),[...t.get(on(n))??[],n]);return t}function Xp(e){const{now:t}=e,n=[],r=(i,u)=>{const c=U(i,u);return i.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(i=>[...kr(i.lines).values()].map(u=>({contract:i,line:vr(i,u,t),start:gn(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of kr(i.lines).values()){const c=vr(i,u,t);if(c.quantity.from!=="fixed")continue;const d=Ai(e.offers.filter(C=>C.productId===c.productId),t);if(!d)continue;const l=on(c),f=["demand:",i.id,"#",l].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===i.id&&C.line.salesLine.seriesId===l&&r(C.contract,C.line)),b=U(i,c),y={key:f,level:"item",supplierCompanyId:d.supplierCompanyId,offerId:d.id,productId:c.productId,name:c.name,customerCompanyId:i.companyId,salesLine:{agreementId:i.id,seriesId:l}};if(b.to!=null){if(!m)continue;const C=m.line.commitment??m.contract.commitment,R=Ee(m.start,C,t),D=C&&C.termMonths>=1?ne(m.start,C,t):R,G=yn(m.start,C,t);n.push({...y,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:R,...G!=null?{deadline:G}:{},...R>D?{nextTerm:!0}:{},...R>b.to?{runsOnUntil:R}:{}});continue}const E=c.quantity.value;if(!m){n.push({...y,action:"purchase",quantity:E});continue}const g=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(g===E)continue;const h={contractId:m.contract.id,lineId:m.line.id};if(E>g){n.push({...y,action:"change",quantity:E-g,targetQuantity:E,from:g,contractLine:h});continue}const p=m.line.commitment??m.contract.commitment,I=m.line.changeWindowDays??0,v=!p||p.termMonths<1||I>0&&t<hn(m.start,p,t)+I*zp;n.push({...y,action:"change",quantity:g-E,targetQuantity:E,from:g,contractLine:h,...v?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],a=(i,u,c)=>{const d=e.provisionable.get([u.app,u.offer].join(":"));if(i.action!=="purchase"||!d?.requires)return;const l=e.offers.find(b=>(!c||b.supplierCompanyId===i.supplierCompanyId)&&b.provider?.app===u.app&&b.provider?.offer===d.requires),f=o.some(b=>b.line.offerId===l?.id&&b.line.customerCompanyId===i.customerCompanyId&&r(b.contract,b.line));if(!l||f)return;const m=["account:",i.customerCompanyId,":",l.id].join("");return!e.open.has(m)&&!s.some(b=>b.key===m)&&s.unshift({key:m,action:"purchase",level:"account",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:l.productId,name:d.requires,quantity:1,customerCompanyId:i.customerCompanyId}),m};for(const i of n){const u=e.offers.find(d=>d.id===i.offerId),c=u?.provider?.app?a(i,u.provider,!0):void 0;u?.deliverTo?.app&&a(i,u.deliverTo,!1),s.push({...i,...c?{waitsFor:c}:{},...u?.deliverTo?.app?{deliverTo:u.deliverTo}:{}})}return[...s.filter(i=>i.level==="account"),...s.filter(i=>i.level!=="account")]}const vi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Qp="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function ki(e){const t=[];for(const n of e){const r=K(n.sku)||K(n.description),o=t.find(s=>(K(s.sku)||K(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Zp(e,t){const n=K(e.orderRef),r=K(e.supplierRef);return n&&t.find(o=>K(o.number)===n)||n&&t.find(o=>K(o.reference)===n)||r&&t.find(o=>K(o.reference)===r)||null}const Ne={reference:0,sku:1,description:2,loose:3};function Un(e,t,n){const r=K(e.externalRef);if(r&&K(t.externalRef)===r)return{via:"reference",rank:Ne.reference};if(r&&t.externalRef)return null;const o=K(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>K(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Ne.sku};const s=K(e.description),a=K(t.name);return!s||!a?null:s===a?{via:"description",rank:Ne.description}:a.includes(s)||s.includes(a)?{via:"description",rank:Ne.loose}:null}function Oi(e,t,n){const r=t.filter(i=>i.kind==="product"),o=new Set,s=[],a=[];return e.forEach((i,u)=>{let c=null;for(const d of r){if(o.has(d.id))continue;const l=Un(i,d,n);l&&(!c||l.rank<c.rank)&&(c={line:d,...l})}if(!c){a.push(u);return}o.add(c.line.id),s.push({docIndex:u,poLineId:c.line.id,via:c.via})}),{matches:s,unmatched:a}}function Jp(e,t,n,r){const o=ki(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=Oi(o,t.lines,n),i=s.map(c=>({poLineId:c.poLineId,quantity:o[c.docIndex].quantity,serials:o[c.docIndex].serials,docIndex:c.docIndex,via:c.via})),u=[...Ii({movement:"in",lines:i},t.lines,r).filter(c=>c.code!=="receipt_return_over_received").map(c=>({code:c.code,poLineId:c.poLineId,docIndex:i.find(d=>d.poLineId===c.poLineId)?.docIndex})),...a.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:i,problems:u}}function em(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const a=Number(String(s?.quantity??"").replace(",",".")),i=n(s?.description);if(!(a>0)||!i&&!n(s?.sku))return[];const u=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:i,quantity:a,serials:u}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const tm=864e5,Or=e=>Date.parse([e,"T00:00:00Z"].join(""));function nm(e,t,n,r){const o=new Map(t.map(u=>[u.id,u.openQty])),s=[],a=[],i=new Set;for(const u of e){const c=t.map((p,I)=>({candidate:p,order:I,hit:Un(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&i.has(p.candidate.id))).sort((p,I)=>p.hit.rank-I.hit.rank||p.order-I.order);if(!c.length){a.push(u.id);continue}const d=u.period?{from:Or(u.period.from),to:Or(u.period.to)+tm}:r,l=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,I,v)=>p.variable?null:ht({kind:"product",quantity:I,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:v}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;i.add(p.id);const I=u.quantity??p.openQty??1;s.push({...l(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:d},via:m.hit.via,quantity:I,amountCents:u.netCents,expectedCents:f(p,I,d),overQuantity:p.openQty!=null&&I!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),y=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let g=y;for(const{candidate:p}of b){if(g<=0)break;const I=Math.max(0,o.get(p.id)??0);if(!I)continue;const v=Math.min(I,g);E.push({candidate:p,quantity:v,over:!1}),o.set(p.id,I-v),g-=v}if(g>0){const p=E[E.length-1];p?(p.quantity+=g,p.over=!0):E.push({candidate:m.candidate,quantity:g,over:!0})}const h=Te(u.netCents,E.map(p=>p.quantity));E.forEach((p,I)=>{s.push({...l(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:h[I],expectedCents:f(p.candidate,p.quantity,u.period?d:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:a}}const Mi={percent:1,cents:100};function rm(e,t,n=Mi){const r=t.map(s=>({receiptLineId:s,issue:"unmatched"})),o=new Map;for(const s of e)o.set(s.receiptLineId,[...o.get(s.receiptLineId)??[],s]);for(const[s,a]of o){if(a.some(d=>d.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),a.some(d=>d.expectedCents===null))continue;const i=a.reduce((d,l)=>d+(l.expectedCents??0),0),u=a.reduce((d,l)=>d+l.amountCents,0),c=Math.max(Math.abs(i)*n.percent/100,n.cents);Math.abs(u-i)>c&&r.push({receiptLineId:s,issue:"price",expectedCents:i,amountCents:u})}return{ok:r.length===0&&e.length>0,issues:r}}function om(e){const t=[],n=new Map;for(const r of[...e].sort(sm)){const o=n.get(r.emoji);if(o){o.push(r.actor);continue}t.push(r.emoji),n.set(r.emoji,[r.actor])}return t.map(r=>{const o=n.get(r);return{emoji:r,count:o.length,actors:o}}).sort((r,o)=>o.count-r.count||t.indexOf(r.emoji)-t.indexOf(o.emoji))}const sm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function im(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const Ri=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function am(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(p=>[p.key,p])),r=n.get(e.standardKey??"high"),o={},s={},a=(p,I)=>{if(!e.trace||!p||!I.ref)return;const v=s[p]??[];v.includes(I.ref)||(s[p]=[...v,I.ref])};let i;const u=(p,I,v)=>{if(!p||!v)return;const C=o[p]??{};C[I]=(C[I]??0)+v,o[p]=C,i&&a(p,i)},c=new Map,d=new Set;let l=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const I=n.get(p.taxCode);if(!I){d.add(p.taxCode);continue}const v=I.boxes[t]?.[p.side];if(i=p,p.side==="sales")u(v?.base,"baseCents",p.baseCents),u(v?.tax,"taxCents",p.taxCents),I.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(I.selfAssessed){const C=r?Nn(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(v?.base,"baseCents",p.baseCents),u(v?.tax,"taxCents",R),l+=R,R&&a("5b",p)}else{const C=Math.round(p.taxCents*(I.deductiblePercent??100)/100);l+=C,C&&a("5b",p)}}const f=Ri.filter(p=>p<"5"),m=f.reduce((p,I)=>p+(o[I]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:l},o["5c"]={taxCents:m-l},o["5g"]={taxCents:m-l};const b=p=>Math.trunc(p/100),y=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const I=o[p];I&&(E[p]={...I.baseCents!==void 0?{base:b(I.baseCents)}:{},...I.taxCents!==void 0?{tax:b(I.taxCents)}:{}})}const g=f.reduce((p,I)=>p+(E[I]?.tax??0),0),h=y(l);return E["5a"]={tax:g},E["5b"]={tax:h},E["5c"]={tax:g-h},E["5g"]={tax:g-h},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,I])=>({...p?{counterpartyCompanyId:p}:{},baseCents:I})),unknownCodes:[...d],...e.trace?{refs:s}:{}}}function cm(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,a)=>new Date(Date.UTC(s,a,0)).getUTCDate();return Array.from({length:12/n},(s,a)=>{const i=a*n+1,u=i+n-1,c=u===12?e+1:e,d=u===12?1:u+1;return{label:t==="quarter"?`Q${a+1} ${e}`:t==="month"?`${e}-${r(i)}`:String(e),from:`${e}-${r(i)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(d)}-${r(o(c,d))}`}})}class Bn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const um=/^\{\{\s*([\w.]+)\s*\}\}$/,lm=/\{\{\s*([\w.]+)\s*\}\}/g,dm=/\$[A-Za-z_][\w]*\.[\w.]+/;function fm(e,t,n={}){return nt(e,t,n)}function nt(e,t,n={}){return typeof e=="string"?pm(e,t,n):Array.isArray(e)?e.map(r=>nt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,nt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function pm(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match(dm);if(s)throw new Bn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(um);if(o){const s=Mr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(lm,(s,a)=>{const i=Mr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function Mr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Bn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return mm(e,t)}function mm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const gm=new Set(["filled","empty"]);function hm(){return{kind:"rule",op:"==",varPath:"",value:""}}const ym=new Set(["==","!=",">","<",">=","<="]);function Pt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Rr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ni(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=sn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function sn(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const a=sn(s);if(!a)return null;o.push(a)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Pt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=sn(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Pt(s)||!Rr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(ym.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Pt(o)||!Rr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function $e(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?$e(e.children[0]):{[e.op]:e.children.map($e)}:e.kind==="not"?{"!":$e(e.child)}:e.op==="filled"?{"!!":[{var:e.varPath}]}:e.op==="empty"?{"!":[{var:e.varPath}]}:e.op==="in"?{in:[e.value,{var:e.varPath}]}:{[e.op]:[{var:e.varPath},e.value]}}function bm(e){const t=Ni(e);return t&&an(t)||null}function an(e){if(e.kind==="group"){const t=e.children.map(an).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${an(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Lt=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function _m(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,a]=o.split("/"),i=a===void 0?1:Number(a);if(!Number.isInteger(i)||i<1)return null;let u=t,c=n;if(s!=="*"&&s!==void 0){const[d,l]=s.split("-");if(u=Number(d),c=l===void 0?u:Number(l),!Number.isInteger(u)||!Number.isInteger(c)||(l===void 0&&a!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let d=u;d<=c;d+=i)r.add(d)}return r.size?r:null}function Fn(e){const t=e.trim().split(/\s+/);if(t.length!==Lt.length)return null;const n=[];for(let u=0;u<Lt.length;u++){const c=Lt[u],d=t[u];if(!c||d===void 0)return null;const l=_m(d,c.min,c.max);if(!l)return null;n.push(l)}const[r,o,s,a,i]=n;return i.has(7)&&i.add(0),{minute:r,hour:o,dayOfMonth:s,month:a,dayOfWeek:i,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Em(e){return Fn(e)!==null}function Di(e,t){const n=Fn(e);if(!n||!n.minute.has(t.getUTCMinutes())||!n.hour.has(t.getUTCHours())||!n.month.has(t.getUTCMonth()+1))return!1;const r=n.dayOfMonth.has(t.getUTCDate()),o=n.dayOfWeek.has(t.getUTCDay());return n.anyDayOfMonth&&n.anyDayOfWeek?!0:n.anyDayOfMonth?o:n.anyDayOfWeek?r:r||o}const wi="@schedule",cn=3;function xi(e,t,n){const r=[],o=e.depth??0;if(o>=cn)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${cn})`}))};const s={event:e.payload,subject:e.subject??{}},a=[];for(const i of t){if(!i.enabled){r.push({ruleId:i.id,reason:"staat uit"});continue}if(i.trigger.kind==="schedule"){if(e.name!==wi){r.push({ruleId:i.id,reason:"luistert op de klok"});continue}const u=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(u)){r.push({ruleId:i.id,reason:"tik zonder tijdstip"});continue}if(!Di(i.trigger.cron,new Date(u))){r.push({ruleId:i.id,reason:`niet aan de beurt (${i.trigger.cron})`});continue}}else if(i.trigger.kind!=="event"){r.push({ruleId:i.id,reason:`trigger "${i.trigger.kind}" draait hier niet`});continue}else if(i.trigger.name!==e.name){r.push({ruleId:i.id,reason:`luistert op ${i.trigger.name}`});continue}if(e.causedByRule===i.id){r.push({ruleId:i.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(i.when??null,s)){r.push({ruleId:i.id,reason:"voorwaarde niet waar"});continue}a.push({rule:i,idempotencyKey:`${e.id}:${i.id}:${i.version}`})}return{matched:a,skipped:r}}function Im(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Sm(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=xi(n,r,t),a=o.flatMap(c=>c.rule.then.map(d=>d.action)),i=e.expected?.actions??[];if(a.length===i.length&&a.every((c,d)=>c===i[d]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:a,note:i.length?`verwacht [${i.join(", ")}], kreeg [${a.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${a.join(", ")}]`}}function Am(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function Pi(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==Am(e,n))}function Tm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>Pi(r,t).length)?"corrected":"kept"}function Cm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function vm(e){return`subject.${e.path}`}function km(e,t){return e.events.find(n=>n.name===t)}function Om(e,t){return e.filter(n=>ai(t,n.path)===void 0).map(n=>n.path)}const un=6e4,Mm=36e5,Se=864e5,Li=800;function Nr(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Se+Mm}function Rm(e){const t=new Date(e).getUTCFullYear();return e>=Nr(t,2)&&e<Nr(t,9)}function $i(e,t){const n=t.dst==="eu"&&Rm(e)?60:0;return(t.utcOffsetMinutes+n)*un}function Nm(e){return(e+3)%7+1}function Ki(e,t){const n=$i(e,t),r=e+n,o=Math.floor(r/Se);if(!t.days.includes(Nm(o)))return null;const s=o*Se;return{open:s+t.fromMinutes*un-n,close:s+t.toMinutes*un-n}}function Ui(e,t){const n=$i(e,t),r=e+n;return(Math.floor(r/Se)+1)*Se-n}function rt(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Li&&o<t;s++){const a=Ki(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Ui(o,n)}return r}function bt(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Li;s++){const a=Ki(o,n);if(a){const i=Math.max(o,a.open);if(a.close>i){const u=a.close-i;if(r<=u)return i+r;r-=u}}o=Ui(o,n)}return e+t}function Dm(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const ot=1,st=2,it=4;function wm(e){return e==="snoozed"?ot:st}function _t(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const xm=["speed_of_answer","first_response","next_response","resolution","close"],Pm=["snoozed","waiting_for_customer"],Lm=6e4,Bi=["speed_of_answer","first_response","next_response"],$m=[...Bi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function Km(e,t){return ke(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Dr(e){return ke(e)?{state:"void"}:null}function Um(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:rt(n,e.dueAt,r)}}function Bm(e,t,n,r){if(!ke(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:bt(n,e.remainingMs,r)}}function Fm({event:e,at:t,now:n,clocks:r,profile:o}){const s=_t(o),a=Math.min(t,n),i=r.map(g=>({...g})),u=[],c=(g,h)=>{h&&(u.push({op:"patch",clockId:g.id,patch:h}),Object.assign(g,h))},d=g=>{for(const h of i)h.metric===g&&c(h,Km(h,a))},l=g=>{for(const h of i)g.includes(h.metric)&&c(h,Dr(h))},f=g=>{for(const h of i)c(h,Um(h,g,a,s))},m=g=>{for(const h of i)c(h,Bm(h,g,a,s))},b=g=>i.reduce((h,p)=>p.metric===g?Math.max(h,p.attempt):h,0)+1,y=g=>i.some(h=>h.metric===g&&ke(h)),E=(g,h)=>{const p=o.targets.find(v=>v.metric===g);if(!p)return;const I=p.minutes*Lm;u.push({op:"start",metric:g,attempt:b(g),startedAt:h,targetMs:I,dueAt:bt(h,I,s)})};switch(e){case"apply":{for(const g of i)g.profileId!==o.id&&c(g,Dr(g));for(const g of o.targets){if(g.metric==="next_response")continue;i.some(p=>p.metric===g.metric&&p.profileId===o.id)||E(g.metric,a)}break}case"answered":d("speed_of_answer");break;case"outbound":{d("first_response"),d("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(st);break}case"inbound":{m(st),!y("first_response")&&!y("next_response")&&E("next_response",a);break}case"resolved":d("resolution");break;case"closed":d("close"),d("resolution"),l(Bi);break;case"reopened":y("resolution")||E("resolution",a),y("close")||E("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(ot);break;case"unsnoozed":m(ot);break;case"hold":f(it);break;case"unhold":m(it);break;case"discarded":l($m);break}return u}function Fi(e){return e.state==="running"||e.state==="paused"}function jm(e){return(e.pauseBits&it)!==0}function at(e,t){const n=_t(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-rt(e.dueAt,t,n):rt(t,e.dueAt,n)}function Gm(e,t){return e.state==="paused"?bt(t,e.remainingMs,_t(e)):e.dueAt}function Wm(e,t){const n=e.filter(Fi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>at(a,t)<at(s,t)?a:s)}function Vm(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=at(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function Hm(e){const t=Math.floor(Math.abs(e)/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return n?r?`${n}d ${r}u`:`${n}d`:r?o?`${r}u ${o}m`:`${r}u`:o?`${o}m`:`${t%60}s`}const ji="strategy_item";function jn(e){return`${ji}:${e}`}function qm(e,t=25){const n=new Set([jn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Ym(e){return e?[...e.ancestorKeys??[],jn(e.id)]:[]}const Oe=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],Gi=999,Wi=7;function Vi(e,t=Oe){return t.find(n=>n.key===e)}function ct(e,t=Oe){return Vi(e,t)?.order??Gi}function zm(e,t,n=Oe){return ct(t,n)<=ct(e,n)}function Xm(e,t=Oe){const n=ct(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Qm(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const ln={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Zm(e){return ln[e]??"open"}function Jm(e){return Object.keys(ln).filter(t=>e.includes(ln[t]))}const eg=864e5,Et=e=>e<=0?0:e>1?1:e;function tg(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,a=o-r;return(n==="down"?a<0:a>0)?Et((t-r)/a):s?1:0}function ng(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return Et((t-n)/(r-n))}const Hi=.1,qi=.25;function rg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=qi?"off_track":n>=Hi?"at_risk":"on_track"}function og(e,t){if(t)return Et(e/t)}function sg(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return Et(t.reduce((n,r)=>n+r,0)/t.length)}function ig(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Wi)*eg,o=t-n-r;return o>0?o:0}function ag(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function cg(e){const t=new Map,n=[...e].sort((r,o)=>r.startedAt-o.startedAt);for(const r of n){const o=`${r.workType??""}|${r.scopeKey??""}`,s=t.get(o)??{workType:r.workType,scopeKey:r.scopeKey,scopeLabel:r.scopeLabel,seconds:0,hours:0,entryIds:[],from:r.startedAt,to:r.startedAt};s.seconds+=r.durationSeconds??0,s.hours=Math.round(s.seconds/3600*100)/100,s.entryIds.push(r.id),s.to=r.startedAt,t.set(o,s)}return[...t.values()]}function ug(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function lg(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function dg(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function fg(e){const t=Math.max(0,Math.floor(e)),n=s=>String(s).padStart(2,"0"),r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function Yi(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function pg(e,t){const n=Yi(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function mg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function gg(e){return e.filter(t=>!t.archived).sort(zi)}function zi(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const Xi=20,Qi=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function Zi(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ke)return t;const n=t.slice(0,Ke),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ke*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function hg(e,t){const n=Zi(t.text),r=te(n);if(!r||(e.examples??[]).some(a=>te(a)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(a=>te(a.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const a=[...o];return a[s]={...a[s],corrected:!0,addedAt:t.addedAt},wr(a)}return wr([{...t,text:n},...o]).slice(0,Qi)}function wr(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function yg(e,t){const n=te(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>te(s)===n)?r:[...r,t].slice(-Xi),exampleCandidates:Ji(e,t)}}function Ji(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function ea(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function bg(e,t){return e.filter(n=>ea(n,t))}const ta=["apps","settings","wake"],Gn="businessEntityId";function _g(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...na.map(s=>s.key),...ta,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Eg({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],a=i=>!!i&&(s.includes(i)||r&&i!=="apps"&&o.visible.includes(i));return a(t)?t:a(n)?n:s[0]??"apps"}const na=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function Ig(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,a,...i]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...a?{app:a}:{},path:`/${i.join("/")}${o}`}}function Sg({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const It=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","delivered","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["delivered","cancelled"],delivered:["confirmed"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:[],credits:"invoice"}],ra=[...It,...vi],Wn=["quote","order","invoice","credit_note"];function Ag(){const e=new Map;for(const t of It)Wn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return ra.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Tg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function oa(e,t){return F(e).transitions[t]??[]}function Cg(e,t,n){return oa(e,t).includes(n)}const sa=["invoice","credit_note"];function vg(e){return!!e.issuedAt&&sa.includes(e.kindKey)}function kg(e,t,n="sales"){const r=i=>e.totals?.byRate?.find(u=>u.taxRateKey===i),o=t?.address,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),a=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${F(e.kindKey).path}/${e.id}?${Gn}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId??"",...e.number?{number:e.number}:{},counterparty:{companyId:e.companyId,name:t?.name??"",...t?.vatNumber?{vatNumber:t.vatNumber}:{},...t?.kvkNumber?{kvkNumber:t.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:J(e.issuedAt??Date.now()),...a?{taxPointDate:J(a)}:{},...e.dueAt?{dueDate:J(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const u=e.taxOverrideKey??i.taxRateKey,c=r(u);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dealItemId?{dealItemId:i.dealItemId}:{}},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:J(i.servicePeriod.from),to:J(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Vn(e){return e.issuedAt!=null}const Og=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function Mg(e){return Vn(e)&&F(e.kindKey).numbered&&!e.number}const Rg=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","lines"],Ng=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo"];function Dg(e,t){if(!Wn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Vn(e)}function ia(e,t){const n=F(t).signFlip!==F(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...a})=>({...a,quantity:n?-a.quantity:a.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:r,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function wg(e){return{...ia(e,e.kindKey),sourceTransactionId:e.sourceTransactionId,previousVersionId:e.id,version:e.version+1,lines:e.lines.map(({timeEntryIds:n,...r})=>({...r})),totals:e.totals}}function xg(e,t={}){const n=F(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:$g(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:ae(e.issuedAt),valid_until:ae(e.expiresAt),due_date:ae(e.dueAt),delivery_date:ae(e.deliveredAt),period_from:ae(e.periodFrom),period_to:ae(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:H(r.netCents),tax:H(r.taxCents),gross:H(r.grossCents)}}}function Pg(e,t=[],n=aa){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=i=>t.find(u=>u.key===i)?.percent??0,s={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},{label:n.net,align:"right"}],rows:(e.lines??[]).map(i=>i.kind==="text"?[i.name,"","",""]:[Lg(i.name,i.description,i.optional,n.optional),Kg(i.quantity),i.pricePer?[H(i.unitPriceCents),n.per[i.pricePer]].join(" "):H(i.unitPriceCents),H(i.netCents)])},a={block_id:"totals",type:"totals",rows:[{label:n.net,amount:H(r.netCents)},{label:n.gross,amount:H(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(i=>({label:`${n.tax} ${i.percent??o(i.taxRateKey)}%`,amount:H(i.taxCents)}))};return{lines:[s],totals:[a]}}const aa={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},net:"Netto",tax:"Btw",gross:"Totaal"};function Lg(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function $g(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function Kg(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ae(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function ca(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:Bg[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${F(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:xr[n]??xr.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:Pr[n]??Pr.quote}]}const Ug=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),Bg={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},xr={quote:`Beste {customer.contact},
|
|
11
|
+
`:t==="mail"?"<br><br>-- <br>":"<br><br>"}${o.body}`:n}const Xl=["billing","delivery","site","visit"];function Ql(e,t){const n=e.filter(o=>!o.archived),r=o=>n.find(s=>s.primaryFor?.includes(o))??n.find(s=>s.kinds.includes(o));return r(t)??(t==="delivery"?r("billing"):void 0)}function rs(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Zl(e){return e.replace(/[^A-Za-z0-9]/g,"").toUpperCase()}function Jl(e){const t=[];for(const n of e){if(typeof n!="string")continue;const r=rs(n);r&&!t.includes(r)&&t.push(r)}return t}const ed=["customer","supplier"],td=e=>e==="customer"?"sales":"purchase";function nd(e){return e.endpoints??[]}const rd=["lead","opportunity","customer","former"],od=["new","working","unqualified"];function sd(e){return[e.firstName,e.lastName].filter(Boolean).join(" ").trim()}const os=["stages","leadStatuses","sources","scopes","cities","parentCompanyIds","roles"],ss=["openDeal","hasContacts"],id={contact:["stages","leadStatuses","sources","scopes","cities","openDeal"],company:["stages","sources","scopes","cities","parentCompanyIds","roles","hasContacts"]},ad=["updatedAt","createdAt","name"],cd=["list"];function ud(e){return e.search?.trim()||e.createdWithinDays||ss.some(t=>e[t])||os.some(t=>e[t]?.length)?!1:!Object.values(e.fields??{}).some(t=>t.length)}const is="CRM_NOTE_ADDED",ld="crm_activity",as="CRM_CALL_LOGGED",dd="CRM_STAGE_CHANGED",fd=["phone","meeting","video"],pd=["callback","interested","no_answer","not_interested"],md=e=>e===is||e===as,gd=e=>e.payload.call?.at??e.createdAt??0;function se(e){const t=(e??"").trim().toLowerCase();if(t)return t.split(/[-_]/)[0]||void 0}function hd(e){return se(e.contactLocale)??se(e.companyLocale)??se(e.organizationLocale)}function yd(e,t,n,r){const o=e.filter(i=>i.key===t&&!i.archived);if(o.length===0)return;const s=se(n),a=se(r);return o.find(i=>se(i.locale)===s)??o.find(i=>se(i.locale)===a)??o.find(i=>!i.locale)??o[0]}const bd=/\{([a-zA-Z0-9_.]+)\}/g;function Rn(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}function _d(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function cs(e,t,n){const r=[];return{text:e.replace(bd,(s,a)=>{const i=Rn(t,a);return i==null||i===""?(r.includes(a)||r.push(a),n??`{${a}}`):_d(i)}),unresolved:r}}function us(e,t){if(!e)return!0;const n=Rn(t,e.key);if(e.exists!==void 0){const r=n!=null&&n!==""&&n!==!1;return e.exists?r:!r}return e.equals!==void 0?n===e.equals:!0}function Ed(e,t,n,r,o){const s=[],a=[],i=new Set,u=c=>{const l=cs(c,t,o);for(const d of l.unresolved)s.includes(d)||s.push(d);return l.text};for(const c of e){if(c.block_id&&!us(n?.[c.block_id],t))continue;const l=c.block_id?r?.[c.block_id]:void 0;if(l&&c.block_id){i.add(c.block_id),a.push(...l);continue}switch(c.type){case"heading":case"paragraph":case"quote":a.push({...c,text:u(c.text)});break;case"callout":a.push({...c,...c.title?{title:u(c.title)}:{},text:u(c.text)});break;case"code":a.push(c);break;case"list":a.push({...c,items:c.items.map(d=>({...d.lead?{lead:u(d.lead)}:{},text:u(d.text)}))});break;case"table":a.push({...c,columns:c.columns.map(d=>({...d,label:u(d.label)})),rows:c.rows.map(d=>d.map(u)),...c.caption?{caption:u(c.caption)}:{}});break;case"kpi":a.push({...c,items:c.items.map(d=>({...d,value:u(d.value),label:u(d.label)}))});break;case"letterhead":a.push({...c,fields:c.fields.map(d=>({...d,value:u(d.value)})),...c.recipient?{recipient:c.recipient.map(u)}:{}});break;case"totals":a.push({...c,rows:c.rows.map(d=>({...d,label:u(d.label),amount:u(d.amount)})),...c.taxRows?{taxRows:c.taxRows.map(d=>({...d,label:u(d.label),amount:u(d.amount)}))}:{}});break;case"image":a.push({...c,url:u(c.url),...c.alt?{alt:u(c.alt)}:{}});break;default:a.push(c)}}return{blocks:a,unresolved:s,unusedSlots:Object.keys(r??{}).filter(c=>!i.has(c))}}function ls(e){const t=e?.address,n=[t?.street,t?.houseNumber].filter(Boolean).join(" "),r=[t?.postalCode,t?.city].filter(Boolean).join(" ");return{name:e?.name??"",addressLines:[n,r,t?.country??""].filter(Boolean),footerLines:[e?.footerText??"",e?.kvkNumber?`KvK ${e.kvkNumber}`:"",e?.vatNumber?`Btw ${e.vatNumber}`:"",e?.iban?`IBAN ${e.iban}`:""].filter(Boolean),...e?.logo?{logo:e.logo}:{}}}function Sd(e){return ls({name:e?.billing?.companyName||e?.name||e?.displayName||"",address:e?.address,kvkNumber:e?.billing?.kvkNumber,vatNumber:e?.billing?.vatNumber,iban:e?.houseStyle?.iban,footerText:e?.houseStyle?.footerText,logo:e?.logo})}function ds(e,t,n,r=Date.now()){const o=n.filter(s=>s.ok).length;return{suite:e,target:t,at:r,score:n.length?o/n.length:1,perCase:[...n]}}function Id(e){return e.perCase.filter(t=>!t.ok).map(t=>`${t.caseId}: ${t.note??"onverwacht resultaat"}`)}async function Ad(e,t,n,r,o=Date.now()){const s=[];for(const a of n)try{s.push(await r(a))}catch(i){s.push({caseId:a.id,ok:!1,note:`beoordeling mislukt: ${i?.message??String(i)}`})}return ds(e,t,s,o)}const wt=864e5,et=e=>Date.parse([e,"T00:00:00Z"].join("")),Cd=e=>new Date(e).toISOString().slice(0,10);function fs(e,t){const n=et(t.from),r=et(t.to)+wt;if(!(r>n))return[{month:[t.from.slice(0,7),"-01"].join(""),cents:e}];const o=[];for(let a=new Date(n);;){const i=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1);if(i>=r)break;const u=Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1),c=Math.round((Math.min(u,r)-Math.max(i,n))/wt);o.push({month:Cd(i),share:c/Math.round((u-i)/wt)}),a=new Date(u)}const s=Ce(e,o.map(a=>a.share));return o.map((a,i)=>({month:a.month,cents:s[i]}))}function ps(e){const t=new Date(et(e.from)),n=new Date(et(e.to));return(n.getUTCFullYear()-t.getUTCFullYear())*12+n.getUTCMonth()-t.getUTCMonth()+1}const Nn=864e5,ht=e=>new Date(e).toISOString().slice(0,10),tt=e=>Date.parse(`${e}T00:00:00Z`);function me(e,t){const[n,r,o]=e.split("-").map(Number),s=new Date(Date.UTC(n,r-1+t,1)),a=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth()+1,0)).getUTCDate();return s.setUTCDate(Math.min(o,a)),ht(s.getTime())}function Dn(e){const t=Math.max(1,Math.round(e.termMonths)),n=Number(e.ratePercent)/100/12,r=e.principalCents,o=n===0?r/t:r*n/(1-(1+n)**-t),s=[];let a=r;for(let i=1;i<=t;i++){const u=Math.round(a*n);let c=e.method==="annuity"?Math.round(o)-u:e.method==="linear"?Math.round(r/t):0;i===t&&(c=a),c=Math.min(c,a),a-=c,s.push({sequence:i,dueOn:me(e.firstDueOn,i-1),interestCents:u,principalCents:c,remainingCents:a})}return s}function vd(e,t,n,r){const o=Number(r)/100/365,s=[...e].sort((c,l)=>c.date.localeCompare(l.date));let a=s.filter(c=>c.date<t).reduce((c,l)=>c+l.cents,0),i=s.findIndex(c=>c.date>=t);i<0&&(i=s.length);let u=0;for(let c=tt(t);c<=tt(n);c+=Nn){const l=ht(c);for(;i<s.length&&(s[i]?.date??"")<=l;)a+=s[i]?.cents??0,i++;u+=a*o}return Math.round(u)}function Td(e,t,n){const r=n==="quarterly"?3:12,[o,s]=e.split("-").map(Number),a=n==="quarterly"?Math.floor((s-1)/3)*3+1:1,i=[];let u=`${o}-${String(a).padStart(2,"0")}-01`;for(let c=1;u<=t&&c<400;c++){const l=me(u,r);i.push({sequence:c,from:u<e?e:u,to:ht(tt(l)-Nn)}),u=l}return i}const ms=5e7,kd=["director","group_company","participation","other_company"],Od=e=>e?.relation&&kd.includes(e.relation)?e.relation:"director";function Md(e,t=ms){return{over:e>t,ratio:Math.max(0,e)/t}}function Rd(e,t){const r=e.terms.kind==="loan_received"?1:-1;return Dn(e.terms).filter(o=>o.dueOn<=t).map(o=>({financingItemId:e.id,sequence:o.sequence,dueOn:o.dueOn,lines:[...o.interestCents?[{accountId:e.terms.interestAccountId,amountCents:r*o.interestCents,description:`Rente termijn ${o.sequence}`}]:[],...o.principalCents?[{accountId:e.ledgerAccountId,amountCents:r*o.principalCents,subAccountId:e.id,description:`Aflossing termijn ${o.sequence}`}]:[]],expectedBankCents:-r*(o.interestCents+o.principalCents),settlesVia:"bank_line",label:`Termijn ${o.sequence}`}))}function gs(e){return ht(tt(me(`${e.slice(0,7)}-01`,1))-Nn)}function wn(e,t){const n=Math.max(1,Math.round(t)),r=Math.trunc(e/n);return Array.from({length:n},(o,s)=>s===n-1?e-r*(n-1):r)}function hs(e,t,n,r,o,s,a=1){return t.map((i,u)=>({cents:i,sequence:a+u,dueOn:gs(me(n,u))})).filter(i=>i.dueOn<=r&&i.cents!==0).map(i=>({financingItemId:e,sequence:i.sequence,dueOn:i.dueOn,lines:o(i.cents,i.sequence),expectedBankCents:0,settlesVia:"direct",label:s(i.sequence)}))}const vr=600;function ys(e){const t=e.method??"linear",n=e.restart?.bookValueCents??e.costCents,r=n-e.residualCents;if(t==="none"||r<=0)return[];if(t==="linear"){const u=e.lifeMonths-((e.restart?.fromSequence??1)-1);return wn(r,Math.max(1,u))}const o=Number(String(e.ratePercent??"0").replace(",","."))/100;if(!(o>0&&o<1))return[];const s=1-(1-o)**(1/12),a=[];let i=n;for(;i>e.residualCents&&a.length<vr;){const u=Math.max(1,Math.round(i*s)),c=i-u<=e.residualCents||a.length===vr-1;a.push(c?i-e.residualCents:u),i-=a[a.length-1]??0}return a}function Nd(e,t){const n=e.terms;if(n.disposal)return[];const r=ys(n),o=n.method==="declining"?(n.restart?.fromSequence??1)-1+r.length:n.lifeMonths;return hs(e.id,r,n.restart?.fromMonth??n.acquiredOn,t,(s,a)=>[{accountId:n.depreciationAccountId,amountCents:s,description:e.name},{accountId:n.accumulatedAccountId,amountCents:-s,subAccountId:e.id,description:`Afschrijving ${a}/${o}`}],s=>`Afschrijving ${s}/${o}`,n.restart?.fromSequence??1)}function Dd(e,t){const n=e.terms,r=[];t.movementsCents&&r.push({accountId:n.accumulatedAccountId,amountCents:-t.movementsCents,subAccountId:e.id,description:e.name}),t.proceedsCents&&r.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:e.name}),r.push({accountId:e.ledgerAccountId,amountCents:-n.costCents,subAccountId:e.id,description:e.name});const o=r.reduce((s,a)=>s+a.amountCents,0);return o&&r.push({accountId:t.disposalAccountId,amountCents:-o,description:e.name}),r}function wd(e,t){const n=e.terms,r=n.direction==="expense"?1:-1;return hs(e.id,n.period?fs(n.totalCents,n.period).map(o=>o.cents):wn(n.totalCents,n.months),n.firstMonth,t,(o,s)=>[{accountId:n.resultAccountId,amountCents:r*o,description:e.name},{accountId:e.ledgerAccountId,amountCents:-r*o,subAccountId:e.id,description:`${e.name} ${s}/${n.months}`}],o=>`${o}/${n.months}`)}function xd(e){return e.kind==="fixed_asset"?e.costCents:e.upfront?e.direction==="expense"?e.totalCents:-e.totalCents:0}function Pd(e,t){const n=me(t,12);return Dn(e).filter(r=>r.dueOn>t&&r.dueOn<=n).reduce((r,o)=>r+o.principalCents,0)}function Ld(e,t){const n=e.terms,r=n.quantity??1,o=d=>Math.round(d*t.quantity/r),s=o(n.costCents),a=o(n.residualCents),i=o(-t.movementsCents),u=[],c=`${e.name} (${t.quantity}/${r})`;i&&u.push({accountId:n.accumulatedAccountId,amountCents:i,subAccountId:e.id,description:c}),t.proceedsCents&&u.push({accountId:t.clearingAccountId,amountCents:t.proceedsCents,description:c}),u.push({accountId:e.ledgerAccountId,amountCents:-s,description:c});const l=u.reduce((d,f)=>d+f.amountCents,0);return l&&u.push({accountId:t.disposalAccountId,amountCents:-l,description:c}),{lines:u,costCents:s,residualCents:a}}const bs={NL:45e3},$d=(e,t)=>t??bs[(e??"NL").toUpperCase()],Kd=[{name:"Inventaris",cost:"0100",accumulated:"0110",depreciation:"4600",disposal:"4690",method:"linear",lifeMonths:60},{name:"Computers",cost:"0120",accumulated:"0130",depreciation:"4630",disposal:"4690",method:"linear",lifeMonths:36},{name:"Vervoermiddelen",cost:"0200",accumulated:"0210",depreciation:"4610",disposal:"4691",method:"linear",lifeMonths:60,residualPercent:"20"},{name:"Gebouwen",cost:"0050",accumulated:"0060",depreciation:"4620",disposal:"4692",method:"linear",lifeMonths:360},{name:"Grond",cost:"0040",disposal:"4693",method:"none"}],_s=36e5,Es=864e5,ee=-1/0,Ud=e=>e.score>ee,Se={urgent:40,high:25,normal:10,low:0};function Bd(e){return Object.fromEntries(e.map(t=>[t.resourceId,t]))}const Fd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i,Ss=/\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;function Is(e,t){return!!(e&&Fd.test(e)||t&&Ss.test(t))}const As=3,Cs=600;function jd(e,t){return e>=As||t>=Cs}const vs=["list-unsubscribe","list-unsubscribe-post","list-id","precedence","auto-submitted","x-auto-response-suppress","feedback-id","x-mailer"];function Gd(e){const t={};for(const n of e){const r=n.name?.toLowerCase();r&&n.value!==void 0&&vs.includes(r)&&(t[r]=n.value)}return t}const Wd=/(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i,Vd=/(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;function Hd(e){const t=e.headers??{},n=e.from?.email,r=t["auto-submitted"]?.toLowerCase();if(r&&r!=="no"||t["x-auto-response-suppress"]||n&&Wd.test(n))return"automated";const o=t.precedence?.toLowerCase();if(t["list-unsubscribe"]||t["list-unsubscribe-post"]||t["list-id"]||o==="bulk"||o==="list"||e.body&&Ss.test(e.body)||n&&Vd.test(n))return"marketing"}function Ts(e,t){return e.lastActivityAt?!(e.seenBy??[]).includes(t):!1}const ks=["open"],Os=1e3,Ms=72;function Rs(e){return e.lastActivityAt??(e.createdAt?new Date(po(e)).getTime():0)}function Ns(e,t){return Ds(t.remindersById?.[e.id],e,t.now)}function Ds(e,t,n){return!e||e.remindAt<=n?!1:!((t.lastActivityAt??0)>e.parkedAt&&t.lastActivityPreview?.direction==="inbound")}const ws=e=>co(e)==="outbound_message",xs=e=>ks.includes(e);function yt(e,t){return Math.max(0,(t-Rs(e))/_s)}function Ps(e,t){const n=e.assignedInboxId?t?.[e.assignedInboxId]:void 0;return typeof n=="number"&&n>0?n:void 0}function qd(e){const t={};for(const n of e)typeof n.slaHours=="number"&&n.slaHours>0&&(t[n.id]=n.slaHours);return t}function Yd(e,t,n){if(!xs(e.status)||e.firstResponseAt)return!1;const r=Ps(e,n);return r!==void 0&&yt(e,t)>r}function Ls(e,t){const n=e.lastActivityPreview;return n?.direction!=="outbound"||!ws(n.type)?!1:yt(e,t)<Ms}function zd(e,t){if(!xs(e.status))return{score:ee,reasons:[]};if(e.snoozedTill&&e.snoozedTill>t.now)return{score:ee,reasons:[]};if(Ls(e,t.now))return{score:ee,reasons:[]};if(Ns(e,t))return{score:ee,reasons:[]};let n=0;const r=[],o=e.priority??"normal";Se[o]>0&&(n+=Se[o],r.push(`priority:${o}`)),Ts(e,t.userId)&&(n+=20,r.push("unseen")),e.assignedUserId&&e.assignedUserId===t.userId&&(n+=15,r.push("assigned-to-you"));const s=yt(e,t.now);if(s>0){const u=Math.min(s*2,30);n+=u,s>=1&&r.push(`waiting:${Math.round(s)}h`)}const a=e.lastActivityPreview;return a?.type==="AI_ACTION_PROPOSED"&&(n+=30,r.push("awaiting-approval")),a?.direction==="outbound"&&ws(a.type)&&(n+=10,r.push("no-reply")),!e.firstResponseAt&&e.lastActivityPreview?.direction==="inbound"&&(n+=10,r.push("awaiting-reply")),(e.tags?.some(u=>u==="marketing"||u==="automated")||Is(e.remoteParty?.resource,e.lastActivityPreview?.snippet))&&(n-=Os,r.push("bulk")),{score:n,reasons:r}}const Xd=e=>!!e.assignedUserId||!!e.assignedInboxId,Qd=e=>e.status==="closed",Zd=e=>({urgent:10,high:5,normal:2,low:1})[e.priority]||0,Jd=(e,t=30)=>e.title?.length<=t?e.title:`${e.title.substring(0,t)}...`,$s=[{key:"solved",label:"resolution_solved",order:0,positive:!0,system:!0},{key:"no_action",label:"resolution_no_action",order:1,system:!0},{key:"duplicate",label:"resolution_duplicate",order:2,system:!0},{key:"spam",label:"resolution_spam",order:3,system:!0},{key:"unresolved",label:"resolution_unresolved",order:4,positive:!1,system:!0}],ef=["duplicate","spam"],tf="c_";function nf(e){const t=[...e?.resolutions??[]].filter(n=>!n.system).sort((n,r)=>n.order-r.order);return[...$s,...t]}function rf(e,t){const n=e.labels??[];return n.find(r=>r.locale===t)?.label??n[0]?.label??e.url}function of(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)??(n?r.find(o=>o.locale===n):void 0)??{locale:t}}const sf="article",nt=[{code:"nl",label:"Nederlands",english:"Dutch"},{code:"en",label:"English",english:"English"},{code:"de",label:"Deutsch",english:"German"},{code:"fr",label:"Français",english:"French"},{code:"es",label:"Español",english:"Spanish"},{code:"it",label:"Italiano",english:"Italian"},{code:"pt",label:"Português",english:"Portuguese"},{code:"pl",label:"Polski",english:"Polish"},{code:"sv",label:"Svenska",english:"Swedish"},{code:"da",label:"Dansk",english:"Danish"},{code:"nb",label:"Norsk bokmål",english:"Norwegian Bokmål"},{code:"fi",label:"Suomi",english:"Finnish"},{code:"tr",label:"Türkçe",english:"Turkish"}];function Ks(e){const t=(e??"").toLowerCase();return nt.find(n=>n.code===t)??nt.find(n=>n.code===t.split("-")[0])}function af(e){return Ks(e)?.label??e}function cf(e){const t=Ks(e);return t?t.english===t.label?`${t.english} (${t.code})`:`${t.english} — ${t.label} (${t.code})`:e}const xn=3;function Us(e,t){const n=new Set;let r=1,o=t.get(e)?.parentId;for(;o;){if(n.has(o)||(n.add(o),r++,r>xn+1))return 1/0;o=t.get(o)?.parentId}return r}function uf(e,t,n){if(!e)return!0;if(e===t)return!1;const r=new Map(n.map(a=>[a.id,a]));if(!r.has(e)||t&&Bs(e,t,r))return!1;const o=Us(e,r),s=t?Pn(t,n):1;return o+s<=xn}function Bs(e,t,n){const r=new Set;let o=n.get(e)?.parentId;for(;o;){if(o===t)return!0;if(r.has(o))return!1;r.add(o),o=n.get(o)?.parentId}return!1}function Pn(e,t,n=new Set){if(n.has(e))return 1;n.add(e);const r=t.filter(o=>o.parentId===e);return r.length?1+Math.max(...r.map(o=>Pn(o.id,t,n))):1}const Fs="en";function js(e){return e.defaultLocale||e.locale||Fs}function lf(e){const t=new Set,n=[];for(const r of[js(e),...e.locales??[]])!r||t.has(r)||(t.add(r),n.push(r));return n}function df(e,t,n){const r=e.translations??[];return r.find(o=>o.locale===t)?.name??(n?r.find(o=>o.locale===n)?.name:void 0)??e.name}function ff(e,t){const n=i=>`${i.level}:${i.key}`,r=new Map((t?.rows??[]).map(i=>[n(i),i])),o=e.rows.map(i=>({...i,priorCents:r.get(n(i))?.amountCents??0})),s=new Set(o.map(n)),a=t?.rows??[];return a.forEach((i,u)=>{if(s.has(n(i)))return;const c=a.slice(0,u).reverse().find(f=>f.level<i.level);let l=o.length;const d=c?o.findIndex(f=>n(f)===n(c)):-1;if(d>=0)for(l=d+1;l<o.length&&(o[l]?.level??0)>(c?.level??0);)l+=1;o.splice(l,0,{...i,amountCents:0,priorCents:i.amountCents}),s.add(n(i))}),o}function pf(e,t,n){const r=new Map;for(const o of e){if(o.date>n)continue;const s=r.get(o.accountId)??{accountId:o.accountId,openingCents:0,debitCents:0,creditCents:0,closingCents:0};o.date<t?s.openingCents+=o.functionalCents:o.functionalCents>0?s.debitCents+=o.functionalCents:s.creditCents-=o.functionalCents,s.closingCents=s.openingCents+s.debitCents-s.creditCents,r.set(o.accountId,s)}return r}const mf=["revenue","expense"],Te=e=>mf.includes(e.type),gf=e=>(e.reportGroup??e.type).split(".")[0]??e.type;function Gs(e,t,n,r){const o=new Map;for(const a of[...e].sort((i,u)=>i.code.localeCompare(u.code))){if(!t(a))continue;const i=gf(a),u=a.reportGroup??i,c=o.get(i)??new Map;c.set(u,[...c.get(u)??[],a]),o.set(i,c)}const s=[];for(const[a,i]of o){const u=n(a),c=d=>u==="debit"?t(d):-t(d),l=[...i.values()].flat().reduce((d,f)=>d+c(f),0);s.push({key:a,label:r(a),level:0,side:u,amountCents:l});for(const[d,f]of i){s.push({key:d,label:r(d),level:1,side:u,amountCents:f.reduce((m,b)=>m+c(b),0)});for(const m of f)s.push({key:m.code,label:`${m.code} ${m.name}`,level:2,side:u,amountCents:c(m),accountId:m.id})}}return s}function hf(e,t,n,r=o=>o){const o=e.filter(Te),s=u=>{const c=t.get(u.id);return c?c.debitCents-c.creditCents:0},a=Gs(o,s,u=>u==="revenue"||u==="financial"?"credit":"debit",r),i=-o.reduce((u,c)=>u+s(c),0);return{kind:"profit_and_loss",...n,rows:a,totals:{resultCents:i},source:"finance"}}function yf(e,t,n,r,o=s=>s){const s=e.filter(l=>!Te(l)),i=Gs(s,l=>t.get(l.id)?.closingCents??0,l=>l==="assets"?"debit":"credit",o);if(r){i.push({key:"equity.result_unappropriated",label:o("equity.result_unappropriated"),level:1,side:"credit",amountCents:r});const l=i.find(d=>d.level===0&&d.key==="equity");l?l.amountCents+=r:i.push({key:"equity",label:o("equity"),level:0,side:"credit",amountCents:r})}const u=i.filter(l=>l.level===0&&l.side==="debit").reduce((l,d)=>l+d.amountCents,0),c=i.filter(l=>l.level===0&&l.side==="credit").reduce((l,d)=>l+d.amountCents,0);return{kind:"balance",from:n.from,to:n.to,rows:i,totals:{debitCents:u,creditCents:c},source:"finance"}}function bf(e,t){return[...e].sort((n,r)=>n.code.localeCompare(r.code)).flatMap(n=>{const r=t.get(n.id);if(!r||!r.openingCents&&!r.debitCents&&!r.creditCents)return[];const o=Te(n),s=o?r.debitCents-r.creditCents:r.closingCents;return[{...r,code:n.code,name:n.name,balanceDebitCents:!o&&s>0?s:0,balanceCreditCents:!o&&s<0?-s:0,resultDebitCents:o&&s>0?s:0,resultCreditCents:o&&s<0?-s:0}]})}function _f(e,t,n,r=13){const o=Date.parse(`${n}T00:00:00Z`),s=Array.from({length:r},(i,u)=>({from:new Date(o+u*7*864e5).toISOString().slice(0,10),inCents:0,outCents:0,closingCents:0}));for(const i of t){const u=Math.max(0,Math.floor((Date.parse(`${i.date}T00:00:00Z`)-o)/6048e5)),c=s[u];c&&(i.cents>=0?c.inCents+=i.cents:c.outCents-=i.cents)}let a=e;for(const i of s)a+=i.inCents-i.outCents,i.closingCents=a;return s}function Ef(e){const t=new Map(e.accounts.map(s=>[s.id,s])),n=new Map;for(const s of e.lines){const a=t.get(s.accountId);!a||!Te(a)||n.set(s.accountId,(n.get(s.accountId)??0)+s.functionalCents)}const r=[];let o=0;for(const[s,a]of[...n.entries()].sort(([i],[u])=>i.localeCompare(u)))a&&(r.push({accountId:s,amountCents:-a,functionalCents:-a,currency:e.currency}),o+=a);return r.length&&r.push({accountId:e.resultAccountId,amountCents:o,functionalCents:o,currency:e.currency,description:"Resultaat boekjaar"}),{lines:r,resultCents:-o}}const I=(e,t,n,r,o,s)=>({code:e,name:t,type:n,reportGroup:r,rgs:o,...s?{role:s}:{}}),Ws={key:"nl-bv",label:"BV (Nederland)",rgsVersion:"3.5",accounts:[I("0040","Terreinen","asset","assets.fixed.tangible","BMvaTerVvp"),I("0050","Bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegVvp"),I("0060","Afschrijving bedrijfsgebouwen","asset","assets.fixed.tangible","BMvaBegCae"),I("0100","Inventaris","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0110","Afschrijving inventaris","asset","assets.fixed.tangible","BMvaBeiCae"),I("0120","Computers","asset","assets.fixed.tangible","BMvaBeiVvp"),I("0130","Afschrijving computers","asset","assets.fixed.tangible","BMvaBeiCae"),I("0200","Vervoermiddelen","asset","assets.fixed.tangible","BMvaTevVvp"),I("0210","Afschrijving vervoermiddelen","asset","assets.fixed.tangible","BMvaTevCae"),I("0500","Deelnemingen in groepsmaatschappijen","asset","assets.fixed.financial","BFvaDigNev"),I("0600","Leningen bank","liability","liabilities.long","BLasSakLvl"),I("0550","Leningen u/g","asset","assets.fixed.financial","BFvaLenLen"),I("0560","Waarborgsommen","asset","assets.fixed.financial","BFvaOvrWaa"),I("0800","Geplaatst kapitaal","equity","equity.capital","BEivGokGea"),I("0810","Agio","equity","equity.share_premium","BEivAgiAgi"),I("0900","Overige reserves","equity","equity.reserves","BEivOvrOrs"),I("0990","Resultaat boekjaar","equity","equity.result","BEivOreRvh","result"),I("1000","Kas","asset","assets.current.cash","BLimKasKas"),I("1100","Bank","asset","assets.current.cash","BLimBanRba"),I("1290","Tussenrekening desinvesteringen","asset","assets.current.other","BVorTusTov"),I("1300","Debiteuren","asset","assets.current.receivables","BVorDebHad","debtors"),I("1400","Vooruitbetaalde kosten","asset","assets.current.other","BVorOvaVof"),I("1410","Nog te factureren omzet","asset","assets.current.other","BVorOvaNtf"),I("1500","Te betalen btw","liability","liabilities.short.tax","BSchBepBtw","vat_payable"),I("1510","Te vorderen btw","asset","assets.current.tax","BVorVbkTvo","vat_receivable"),I("1520","Btw-afdracht","liability","liabilities.short.tax","BSchBepBaf"),I("1610","Aflossingsverplichtingen leningen","liability","liabilities.short.other","BSchAosLvk"),I("1600","Crediteuren","liability","liabilities.short.payables","BSchCreHac","creditors"),I("1700","Rekening-courant bestuurder","liability","liabilities.short.related","BSchOvsRcb"),I("1710","Rekening-courant groepsmaatschappijen","liability","liabilities.short.related","BSchSagSg1"),I("1720","Rekening-courant deelnemingen","liability","liabilities.short.related","BSchSapSp1"),I("1730","Rekening-courant verbonden maatschappijen","liability","liabilities.short.related","BSchSaoSo1"),I("1800","Nog te betalen kosten","liability","liabilities.short.other","BSchOpaNtb"),I("1810","Vooruitgefactureerde omzet","liability","liabilities.short.other","BSchOpaVgo"),I("1900","Te betalen loonheffing","liability","liabilities.short.tax","BSchBepLhe"),I("1910","Te betalen nettolonen","liability","liabilities.short.other","BSchSalNet"),I("1920","Tussenrekening salarissen","liability","liabilities.short.other","BSchTusTsa"),I("2000","Tussenrekening betalingen","asset","assets.current.other","BVorTusTbt","suspense"),I("4000","Lonen","expense","costs.personnel","WPerLesLon"),I("4010","Sociale lasten","expense","costs.personnel","WPerSolPsv"),I("4020","Pensioenlasten","expense","costs.personnel","WPerPenPen"),I("4100","Huur","expense","costs.housing","WBedHuiBeh"),I("4110","Gas, water en elektra","expense","costs.housing","WBedHuiGwe"),I("4200","Autokosten","expense","costs.car","WBedAutOak"),I("4300","Kantoorbenodigdheden","expense","costs.office","WBedKanKan"),I("4310","Automatisering en software","expense","costs.office","WBedKanKoa"),I("4400","Reclame- en advertentiekosten","expense","costs.sales","WBedVkkRea"),I("4500","Accountants- en advieskosten","expense","costs.general","WBedAeaAea"),I("4590","Algemene kosten","expense","costs.general","WBedAlkOal","expense_default"),I("4600","Afschrijving inventaris","expense","costs.depreciation","WAfsAmvBei"),I("4610","Afschrijving vervoermiddelen","expense","costs.depreciation","WAfsAmvTev"),I("4620","Afschrijving bedrijfsgebouwen","expense","costs.depreciation","WAfsAmvBeg"),I("4630","Afschrijving computers","expense","costs.depreciation","WAfsAmvBei"),I("4690","Boekresultaat inventaris","expense","costs.depreciation","WAfsRvmBei"),I("4691","Boekresultaat vervoermiddelen","expense","costs.depreciation","WAfsRvmTev"),I("4692","Boekresultaat bedrijfsgebouwen","expense","costs.depreciation","WAfsRvmBeg"),I("4693","Boekresultaat terreinen","expense","costs.depreciation","WAfsRvmBrt"),I("4900","Rente en kosten bank","expense","financial.expense","WFbeOrlRkb"),I("4930","Valutakoersverschillen","expense","financial.expense","WFbeWisWis","fx_difference"),I("4910","Rentelasten leningen kredietinstellingen","expense","financial.expense","WFbeRlsRlk"),I("4920","Rentelasten schulden aan bestuurders","expense","financial.expense","WFbeRlsRsd"),I("7000","Inkoopwaarde handelsgoederen","expense","costs.cost_of_sales","WKprInhInh"),I("8000","Omzet diensten hoog tarief","revenue","revenue.net","WOmzNodOdh","revenue_default"),I("8010","Omzet diensten laag tarief","revenue","revenue.net","WOmzNodOdl"),I("8020","Omzet diensten verlegd","revenue","revenue.net","WOmzNodOdv"),I("8030","Omzet vrijgestelde diensten","revenue","revenue.net","WOmzNodNod"),I("8100","Omzet diensten binnen de EU","revenue","revenue.net","WOmzNodOdi"),I("8110","Omzet diensten buiten de EU","revenue","revenue.net","WOmzNodOdb"),I("9000","Rentebaten bank","revenue","financial.income","WFbeRlmObr"),I("9010","Rentebaten rekening-courant bestuurders","revenue","financial.income","WFbeRlmRrb")],journals:[{code:"VK",name:"Verkoop",kind:"sales"},{code:"IK",name:"Inkoop",kind:"purchase"},{code:"BNK",name:"Bank",kind:"bank"},{code:"KAS",name:"Kas",kind:"cash"},{code:"MEM",name:"Memoriaal",kind:"memorial"},{code:"BEG",name:"Beginbalans",kind:"opening"}]},Sf=[Ws],Vs={"payroll.gross_wages":"4000","payroll.social_charges":"4010","payroll.pension":"4020","payroll.wage_tax":"1900","payroll.net_payable":"1910","payroll.clearing":"1920"};function If(e,t){const n=[];e.lines.length<2&&n.push({code:"entry_too_few_lines"});const r=e.lines.reduce((s,a)=>s+a.functionalCents,0);r!==0&&n.push({code:"entry_unbalanced",params:{cents:String(r)}});const o=new Map(t.accounts.map(s=>[s.id,s]));for(const s of e.lines){const a=o.get(s.accountId);a?a.archived?n.push({code:"entry_account_archived",params:{account:a.code}}):a.requiresSubAccount&&!s.subAccountId&&n.push({code:"entry_sub_account_required",params:{account:a.code}}):n.push({code:"entry_unknown_account",params:{account:s.accountId}})}return t.period?(t.period.status==="locked"&&t.allow!=="locked"||t.period.status==="closed"&&!t.allow)&&n.push({code:"entry_period_closed",params:{day:e.date}}):n.push({code:"entry_no_period",params:{day:e.date}}),n}function Af(e,t,n){return`${e}-${t.slice(0,4)}-${String(n).padStart(4,"0")}`}const Cf=["businessEntityId","journalId","number","journalSeq","fiscalYear","chainSeq","date","periodId","description","sourceKey","source","lines","reversesEntryId","attachment","prevHash","postedAt","postedBy"];function vf(e){const t={};for(const n of Cf)e[n]!==void 0&&(t[n]=e[n]);return t}function nn(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?"["+e.map(nn).join(",")+"]":"{"+Object.entries(e).filter(([,n])=>n!==void 0).sort(([n],[r])=>n<r?-1:n>r?1:0).map(([n,r])=>JSON.stringify(n)+":"+nn(r)).join(",")+"}"}function Tf(e){return e.map(t=>({...t,amountCents:-t.amountCents,functionalCents:-t.functionalCents,...t.taxCents!==void 0?{taxCents:-t.taxCents}:{}}))}function Hs(e,t,n){const r=t.filter(s=>s.appliesTo.direction===n.direction).filter(s=>!s.appliesTo.kind||s.appliesTo.kind===n.kind).sort((s,a)=>s.order-a.order),o=s=>r.find(a=>s(a.match));return e.productId&&o(s=>s.productId===e.productId)||e.ledgerCategoryKey&&o(s=>s.ledgerCategoryKey===e.ledgerCategoryKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&s.taxRateKey===e.taxRateKey)||o(s=>!s.productId&&!s.ledgerCategoryKey&&!s.taxRateKey)}function kf(e){if(!e)return{};const{projectId:t,costCenterId:n,...r}=e;return{...t?{projectId:t}:{},...n?{costCenter:n}:{},...Object.keys(r).length?{dimensions:r}:{}}}function Of(e){return e.kind==="journal"?[]:e.lines.flatMap((t,n)=>t.period&&ps(t.period)>1?[{index:n,period:t.period}]:[])}function Mf(e,t){const n=e.kind==="journal"?Df(e,t):Nf(e,t);return n.ok?Rf(n,e,t.functionalCurrency??"EUR"):n}function Rf(e,t,n){if(!t.currency||t.currency===n)return e;const r=Number(t.fxRate);if(!(r>0))return{ok:!1,problem:"fx_rate_required"};const o=e.lines.map(a=>({...a,functionalCents:Math.round(a.amountCents*r)})),s=o.reduce((a,i)=>a+i.functionalCents,0);return o[0]={...o[0],functionalCents:o[0].functionalCents-s},{...e,lines:o}}function Nf(e,t){const n=b=>t.accounts.find(g=>g.role===b&&!g.archived),r=e.direction==="sale",o=n(r?"debtors":"creditors");if(!o)return{ok:!1,problem:r?"no_debtors_account":"no_creditors_account"};const s=n(r?"revenue_default":"expense_default"),a=n(r?"vat_payable":"vat_receivable"),i=r?-1:1,u={currency:e.currency,...e.counterparty.companyId?{counterpartyCompanyId:e.counterparty.companyId}:{}},c=e.taxPointDate??e.issueDate,l=[],d=new Map;for(const b of e.lines){const g=b.accountKey??Hs(b,t.rules,e)?.accountId??s?.id;if(!g)return{ok:!1,problem:"no_account_for_line"};l.push({...u,accountId:g,amountCents:i*b.netCents,functionalCents:i*b.netCents,taxCode:b.taxRateKey,taxCents:i*b.taxCents,taxPointDate:c,...b.description?{description:b.description}:{},...kf(b.dimensions)}),b.taxCents&&d.set(b.taxRateKey,(d.get(b.taxRateKey)??0)+b.taxCents)}for(const[b,g]of d){const E=t.taxAccounts.find(y=>y.taxKey===b),h=(r?E?.payableAccountId:E?.receivableAccountId)??a?.id;if(!h)return{ok:!1,problem:"no_vat_account"};l.push({...u,accountId:h,amountCents:i*g,functionalCents:i*g,taxCode:b,taxPointDate:c})}const f=e.lines.reduce((b,g)=>b+g.netCents+g.taxCents,0);l.unshift({...u,accountId:o.id,amountCents:-i*f,functionalCents:-i*f});const m=[e.number,e.counterparty.name].filter(Boolean).join(" · ");return{ok:!0,journalKind:r?"sales":"purchase",lines:l,description:m||e.documentId}}function Df(e,t){const n=o=>o?t.accounts.find(s=>s.code===o&&!s.archived):void 0,r=[];for(const o of e.lines){const s=o.accountKey??Hs(o,t.rules,e)?.accountId??n(Vs[o.ledgerCategoryKey??""])?.id;if(!s)return{ok:!1,problem:"no_account_for_line"};const a=Math.round(Number(o.amountCents)||0);a&&r.push({accountId:s,amountCents:a,functionalCents:a,currency:e.currency,...o.description?{description:o.description}:{},...o.dimensions?.projectId?{projectId:o.dimensions.projectId}:{},...o.dimensions?.costCenterId?{costCenter:o.dimensions.costCenterId}:{},...o.dimensions?.employeeId?{dimensions:{employeeId:o.dimensions.employeeId}}:{}})}return r.length?r.reduce((o,s)=>o+s.amountCents,0)!==0?{ok:!1,problem:"journal_not_balanced"}:{ok:!0,journalKind:"memorial",lines:r,description:[e.number,e.counterparty.name].filter(Boolean).join(" · ")||e.documentId}:{ok:!1,problem:"journal_empty"}}const xt=e=>String(e).padStart(2,"0"),wf=(e,t)=>new Date(Date.UTC(e,t,0)).getUTCDate();function xf(e,t=1){const n=t===1?String(e):`${e}/${e+1}`;return Array.from({length:12},(r,o)=>{const s=t-1+o,a=e+Math.floor(s/12),i=s%12+1;return{fiscalYear:n,index:o+1,from:`${a}-${xt(i)}-01`,to:`${a}-${xt(i)}-${xt(wf(a,i))}`,status:"open"}})}function Pf(e,t){return e.find(n=>n.from<=t&&t<=n.to)}const qs="http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0",Lf={sales:"S",purchase:"P",bank:"B",cash:"C",memorial:"M",opening:"M"},Ys=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ln=(e,t)=>e.length>t?e.slice(0,t):e,A=(e,t,n=9999)=>t===void 0||t===""?"":"<"+e+">"+Ys(Ln(String(t),n))+"</"+e+">",Z=e=>{const t=Math.abs(e);return String(Math.trunc(t/100))+"."+String(t%100).padStart(2,"0")},Pt=e=>e<0?"C":"D",Tr=e=>Ln(e.replace(/-/g,""),35);function $f(e){const t=new Map(e.accounts.map(c=>[c.id,c.code])),n=new Map(e.periods.map(c=>[c.id,c.index])),r=[],o=(...c)=>{r.push(c.join(""))};o('<?xml version="1.0" encoding="UTF-8"?>','<auditfile xmlns="',qs,'">',"<header>",A("fiscalYear",e.fiscalYear.replace("/","-")),A("startDate",e.startDate),A("endDate",e.endDate),A("curCode",e.currency),A("dateCreated",e.createdOn),A("softwareDesc",e.software.desc,50),A("softwareVersion",e.software.version,20),A("RGSVersion",e.rgsVersion,20),"</header>","<company>",A("Commercenr",e.company.commerceNr,100),A("companyName",e.company.name,255),A("taxRegistrationCountry",e.company.country),"<taxRegIdent>"+Ys(Ln(e.company.vatNumber??"",30))+"</taxRegIdent>");const s=e.company.address;if(s&&(s.street||s.city)&&o("<streetAddress>",A("streetname",s.street,100),A("number",s.number,15),A("city",s.city,50),A("postalCode",s.postalCode,10),A("country",e.company.country),"</streetAddress>"),e.relations.length){o("<customersSuppliers>");for(const c of e.relations)o("<customerSupplier>",A("custSupID",Tr(c.id)),A("custSupName",c.name,50),A("commerceNr",c.commerceNr,100),A("taxRegistrationCountry",c.country),A("taxRegIdent",c.vatNumber,30),A("custSupTp",c.type),"</customerSupplier>");o("</customersSuppliers>")}o("<generalLedger>");for(const c of[...e.accounts].sort((l,d)=>l.code.localeCompare(d.code))){const l=c.type==="revenue"||c.type==="expense";o("<ledgerAccount>",A("accID",c.code,35),A("accDesc",c.name,255),A("accTp",l?"P":"B"),A("RGScode",c.taxonomy?.rgs,255),"</ledgerAccount>")}if(o("</generalLedger>"),e.taxCodes.length){o("<vatCodes>");for(const c of e.taxCodes)o("<vatCode>",A("vatID",c.key,35),A("vatDesc",c.label,100),A("vatToPayAccID",c.payableAccountId&&t.get(c.payableAccountId)),A("vatToClaimAccID",c.receivableAccountId&&t.get(c.receivableAccountId)),"</vatCode>");o("</vatCodes>")}o("<periods>");for(const c of[...e.periods].sort((l,d)=>l.index-d.index))o("<period>",A("periodNumber",c.index),A("startDatePeriod",c.from),A("endDatePeriod",c.to),"</period>");o("</periods>");const a=e.opening.filter(c=>c.cents!==0);if(a.length){const c=a.filter(d=>d.cents>0).reduce((d,f)=>d+f.cents,0),l=-a.filter(d=>d.cents<0).reduce((d,f)=>d+f.cents,0);o("<openingBalance>",A("linesCount",a.length),A("totalDebit",Z(c)),A("totalCredit",Z(l))),a.forEach((d,f)=>{o("<obLine>",A("nr",f+1),A("accID",t.get(d.accountId)??d.accountId),A("amnt",Z(d.cents)),A("amntTp",Pt(d.cents)),"</obLine>")}),o("</openingBalance>")}const i=e.entries.flatMap(c=>c.lines);o("<transactions>",A("linesCount",i.length),A("totalDebit",Z(i.filter(c=>c.functionalCents>0).reduce((c,l)=>c+l.functionalCents,0))),A("totalCredit",Z(-i.filter(c=>c.functionalCents<0).reduce((c,l)=>c+l.functionalCents,0))));const u=new Map;for(const c of e.entries)u.set(c.journalId,[...u.get(c.journalId)??[],c]);for(const c of e.journals){const l=u.get(c.id);if(l?.length){o("<journal>",A("jrnID",c.code,35),A("desc",c.name),A("jrnTp",Lf[c.kind]));for(const d of[...l].sort((f,m)=>f.journalSeq-m.journalSeq))o("<transaction>",A("nr",d.number,35),A("desc",d.description),A("periodNumber",n.get(d.periodId)??0),A("trDt",d.date),A("Source",d.source.app+(d.source.kind?" "+d.source.kind:""),999),A("User",d.postedBy,999)),d.lines.forEach((f,m)=>{const b=f.taxCode&&e.vatPercent?.(f.taxCode,d.date),g=f.currency&&f.currency!==e.currency;o("<trLine>",A("nr",m+1),A("accID",t.get(f.accountId)??f.accountId,35),A("docRef",d.source.number??d.number,255),A("effDate",f.taxPointDate??d.date),A("desc",f.description),A("amnt",Z(f.functionalCents)),A("amntTp",Pt(f.functionalCents)),A("custSupID",f.counterpartyCompanyId&&Tr(f.counterpartyCompanyId)),A("invRef",d.source.number,255),A("cost",f.costCenter,999),A("project",f.projectId,999),b&&f.taxCents!==void 0?"<vat>"+A("vatID",f.taxCode,35)+A("vatPerc",b)+A("vatAmnt",Z(f.taxCents))+A("vatAmntTp",Pt(f.taxCents))+"</vat>":"",g?"<currency>"+A("curCode",f.currency)+A("curAmnt",Z(f.amountCents))+"</currency>":"","</trLine>")}),o("</transaction>");o("</journal>")}}return o("</transactions>","</company>","</auditfile>"),r.join(`
|
|
12
|
+
`)}const Kf=(e,t)=>{const n=Math.round(Number((e??"0").replace(",","."))*100);return t==="C"?-Math.abs(n):Math.abs(n)};function Uf(e){const t=V(e,"ledgerAccount").map(i=>{const u=k(i,"RGScode")??k(i,"leadCode");return{code:k(i,"accID")??"",name:k(i,"accDesc")??"",kind:k(i,"accTp")==="P"?"P":"B",...u?{rgs:u}:{}}}),n={},r=i=>{const u=k(i,"accID");u&&(n[u]=(n[u]??0)+Kf(k(i,"amnt"),k(i,"amntTp")))};for(const i of V(e,"obLine"))r(i);for(const i of V(e,"trLine"))r(i);const o=V(e,"header")[0]??"",s=k(o,"fiscalYear"),a=k(o,"endDate");return{accounts:t.filter(i=>i.code),closing:n,...s?{fiscalYear:s}:{},...a?{endDate:a}:{}}}function Bf(e,t){const n=e.rgs??"";return/^BEiv/.test(n)?"equity":/^B(Iva|Mva|Fva|Vrd|Vor|Eff|Lim)/.test(n)?"asset":/^B(Vrz|Lsc|Las|Sch|Sub)/.test(n)?"liability":/^W(Omz|Oov|Fbe.*Rlm|Wiv)/.test(n)||/^WFbeOrb/.test(n)?"revenue":/^W/.test(n)?"expense":e.kind==="P"?t<0?"revenue":"expense":t<0?"liability":"asset"}const rn=["lookup","condition","parallel","for-each"];function Pe(e){for(const t of e){if(!rn.includes(t.type))return`staptype "${t.type}" mag niet meelezen (alleen ${rn.join(", ")})`;if(t.type==="parallel")for(const n of t.branches??[]){const r=Pe(n);if(r)return r}if(t.type==="for-each"){const n=Pe(t.body??[]);if(n)return n}if(t.type==="condition"){const n=Pe(t.else??[]);if(n)return n}}return null}function Ff(e,t){switch(e.kind){case"org":return!0;case"team":return!!t.teamId&&e.teamId===t.teamId;case"personal":return e.userId===t.userId}}function jf(e,t){return e.filter(n=>n.enabled&&Ff(n.ownerScope,t))}function Gf(e){return e.credentialScope?e.credentialScope:(e.authMode??"header")==="header"||e.oauth?.scope==="org"?"shared":"per-user"}function Wf(e){return`mcp__${e}__`}const Vf=1e3,Hf=2e3,qf=500,Yf=12e3,zf=4e3,zs=["contact","company","work_item"];function Xf(e){if(!e)return!1;const t=e.slice(0,e.indexOf(":"));return zs.includes(t)}const Qf=[{key:"high",label:"tax_high",percent:21,kind:"standard"},{key:"low",label:"tax_low",percent:9,kind:"reduced"},{key:"zero",label:"tax_zero",percent:0,kind:"zero"},{key:"reverse_charge",label:"tax_reverse_charge",percent:0,kind:"reverse_charge"},{key:"exempt",label:"tax_exempt",percent:0,kind:"exempt"}];function Xs(e,t){return t.find(n=>n.key===e)??{key:e,label:e,percent:0,kind:"zero"}}const Zf=[{key:"high",label:"tax_high",kind:"standard",direction:"both",rates:[{validFrom:"2012-10-01",percent:21}],boxes:{"nl-ob":{sales:{base:"1a",tax:"1a"},purchase:{tax:"5b"}}}},{key:"low",label:"tax_low",kind:"reduced",direction:"both",rates:[{validFrom:"2019-01-01",percent:9}],boxes:{"nl-ob":{sales:{base:"1b",tax:"1b"},purchase:{tax:"5b"}}}},{key:"zero",label:"tax_zero",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"}}}},{key:"reverse_charge",label:"tax_reverse_charge",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"1e"},purchase:{base:"2a",tax:"2a"}}},selfAssessed:!0},{key:"eu",label:"tax_eu",kind:"reverse_charge",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3b"},purchase:{base:"4b",tax:"4b"}}},selfAssessed:!0,icp:!0},{key:"non_eu",label:"tax_non_eu",kind:"zero",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{"nl-ob":{sales:{base:"3a"},purchase:{base:"4a",tax:"4a"}}},selfAssessed:!0},{key:"exempt",label:"tax_exempt",kind:"exempt",direction:"both",rates:[{validFrom:"2000-01-01",percent:0}],boxes:{}}];function $n(e,t){return e.rates.find(r=>r.validFrom<=t&&(!r.validTo||t<=r.validTo))?.percent??0}function Jf(e,t,n="sales"){return e.filter(r=>!r.archived&&(r.direction==="both"||r.direction===n)).map(r=>({key:r.key,label:r.label,kind:r.kind,percent:$n(r,t),...r.businessEntityId?{businessEntityId:r.businessEntityId}:{}}))}function J(e){return new Date(e).toISOString().slice(0,10)}const kr=/^\d{4}-\d{2}-\d{2}$/;function ep(e){if(!e.key?.trim())return"tax_code_key";if(!e.label?.trim())return"tax_code_label";const t=e.rates??[];if(!t.length)return"tax_code_rates";for(const[n,r]of t.entries()){if(!kr.test(r.validFrom)||r.validTo&&!kr.test(r.validTo))return"tax_code_date";if(!(r.percent>=0&&r.percent<=100))return"tax_code_range";if(r.validTo&&r.validTo<r.validFrom)return"tax_code_date";const o=t[n-1];if(o&&(!o.validTo||o.validTo>=r.validFrom))return"tax_code_overlap"}return null}function bt(e){if(e.kind!=="product")return 0;const t=1-(e.discountPercent??0)/100,n=P(e.quantity*e.unitPriceCents*t);return e.pricePer&&e.servicePeriod?dt(n,e.pricePer,e.servicePeriod):n}function tp(e,t,n){const r=e.map(c=>({...c,netCents:bt(c),taxCents:0})),o=new Map;for(let c=0;c<r.length;c++){if(r[c].kind!=="product"||r[c].optional)continue;const l=n??r[c].taxRateKey,d=o.get(l);d?d.push(c):o.set(l,[c])}const s=[];let a=0,i=0;for(const[c,l]of o){const d=Xs(c,t),f=l.reduce((g,E)=>g+r[E].netCents,0),m=P(f*d.percent/100),b=Ce(m,l.map(g=>r[g].netCents));for(let g=0;g<l.length;g++)r[l[g]].taxCents=b[g];s.push({taxRateKey:c,percent:d.percent,kind:d.kind,netCents:f,taxCents:m}),a+=f,i+=m}const u=r.reduce((c,l)=>l.costPriceCents==null||l.optional?c:c+P(l.costPriceCents*l.quantity),0);return{lines:r,totals:{netCents:a,taxCents:i,grossCents:a+i,costCents:u,byRate:s}}}const np="onboarding-source",rp=["support","billing","availability","sales","onboarding"],op=["keep","replace"],_t=[{key:"shift",label:"kind_shift",capacity:!0,productive:!1,absent:!1,icon:"calendar-clock"},{key:"allocation",label:"kind_allocation",capacity:!1,productive:!0,absent:!1,icon:"briefcase"},{key:"meeting",label:"kind_meeting",capacity:!1,productive:!1,absent:!1,icon:"users"},{key:"travel",label:"kind_travel",capacity:!1,productive:!1,absent:!1,icon:"car"},{key:"training",label:"kind_training",capacity:!1,productive:!1,absent:!1,icon:"graduation-cap"},{key:"break",label:"kind_break",capacity:!1,productive:!1,absent:!1,icon:"coffee"},{key:"absence",label:"kind_absence",capacity:!1,productive:!1,absent:!0,approvable:!0,icon:"palmtree"},{key:"sick",label:"kind_sick",capacity:!1,productive:!1,absent:!0,icon:"thermometer"},{key:"holiday",label:"kind_holiday",capacity:!1,productive:!1,absent:!0,icon:"party-popper"}],Qs={key:"unknown",label:"kind_unknown",capacity:!1,productive:!1,absent:!1};function q(e,t=_t){return t.find(n=>n.key===e)??{...Qs,key:e}}function pe(e){return e==="published"||e==="approved"}function Kn(e,t,n=_t){if(e.workstreamId!==t)return!1;const r=q(e.kindKey,n);return r.absent?!1:r.productive||r.capacity}function sp(e,t=_t){if(!e.userId||!pe(e.status))return!1;const n=q(e.kindKey,t);return n.capacity||n.productive||n.absent}const ip=864e5;function Zs(e,t){return Math.round((t-e)/ip)}function Un(e,t){const n=e.cycleMinutes.length;return n===0?0:(Zs(e.anchor,t)%n+n)%n}function Bn(e,t){return e.effectiveFrom!==void 0&&t<e.effectiveFrom?0:e.cycleMinutes[Un(e,t)]??0}function Fn(e,t){return e.startTimes?.[Un(e,t)]}function jn(e,t,n,r){const o=e.filter(i=>i.effectiveFrom===void 0||i.effectiveFrom<=r),s=i=>i.sort((u,c)=>(c.effectiveFrom??0)-(u.effectiveFrom??0))[0],a=s(o.filter(i=>i.userId===t));return a||s(o.filter(i=>!i.userId&&i.teamId&&n.includes(i.teamId)))}function Js(e,t,n){return e.filter(r=>r.userId===t&&(r.effectiveFrom===void 0||r.effectiveFrom<=n)).sort((r,o)=>(o.effectiveFrom??0)-(r.effectiveFrom??0))[0]}const on=864e5;function ap(e){const t=Math.max(1,Math.round((e.to-e.from)/on));return Array.from({length:t},(n,r)=>e.from+r*on)}function sn(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}const Or={interval:0,day:1,week:2};function cp(e,t){const{entries:n,patterns:r=[],terms:o=[]}=t,s=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).capacity),a=n.filter(d=>d.userId&&pe(d.status)&&q(d.kindKey).absent),i=t.userIds??[...new Set([...s.map(d=>d.userId),...r.map(d=>d.userId),...o.map(d=>d.userId)])].filter(d=>!!d),u={};let c="interval";const l=d=>{Or[d]>Or[c]&&(c=d)};for(const d of i){const f=t.teamIdsOf?.(d)??[];let m=0,b=0,g=0;for(const y of ap(e)){const p=Math.max(y,e.from),S=Math.min(y+on,e.to);g++;const T=s.filter(D=>D.userId===d).reduce((D,G)=>D+sn(G.start,G.end,p,S),0);if(T>0){m+=T;continue}const C=jn(r,d,f,y),R=C?Bn(C,y):0;if(C&&R>0){m+=R*60,l(Fn(C,y)?"interval":"day");continue}C||b++}if(b>0){const y=Js(o,d,e.from);y&&(m+=y.weeklyMinutes*60*(b/7),l("week"))}const E=a.filter(y=>y.userId===d).reduce((y,p)=>y+sn(p.start,p.end,e.from,e.to),0),h=Math.max(0,m-E);(h>0||g>0)&&(u[d]=h)}return{seconds:Object.values(u).reduce((d,f)=>d+f,0),precision:c,byUser:u}}function up(e,t){if(!e.some(i=>i.userId))return[];const n="",r=new Map;for(const i of e){const u=i.userId??n;r.set(u,(r.get(u)??0)+i.seconds)}const s=[...new Set([...Object.keys(t.byUser),...[...r.keys()].filter(i=>i!==n)])].map(i=>{const u=r.get(i)??0,c=t.byUser[i]??0;return{userId:i,requiredSeconds:u,capacitySeconds:c,netSeconds:c-u}});s.sort((i,u)=>i.netSeconds-u.netSeconds);const a=r.get(n)??0;return a>0&&s.push({requiredSeconds:a,capacitySeconds:0,netSeconds:-a}),s}function lp(e,t,n,r){const o=e.filter(a=>a.userId&&pe(a.status)&&!q(a.kindKey).absent),s=Object.entries(r.byUser).map(([a,i])=>{let u=0,c=0;for(const l of o){if(l.userId!==a||q(l.kindKey).capacity&&!l.workstreamId)continue;const d=sn(l.start,l.end,n.from,n.to);d<=0||(Kn(l,t)?u+=d:c+=d)}return{userId:a,capacitySeconds:i,onThisSeconds:u,elsewhereSeconds:c,freeSeconds:Math.max(0,i-u-c)}});return s.sort((a,i)=>i.freeSeconds-a.freeSeconds),s}const dp="demand-source",Mr=1e3;function fp(e,t){let n=1;for(let r=1;r<=e;r++)n=t*n/(r+t*n);return n}function ei(e,t){if(e<=0)return 1;if(t<=0)return 0;if(e<=t)return 1;const n=fp(e,t),r=t/e;return n/(1-r*(1-n))}function ti(e,t,n,r){return r<=0?1:e<=t?0:1-ei(e,t)*Math.exp(-(e-t)*n/r)}function ni(e,t,n){return n<=0?0:e*t/n}function ri(e,t,n,r){if(e<=0||t<=0)return 0;const o=ni(e,t,n);if(o<=0)return 0;const s=r.serviceLevelPercent/100,a=r.maxOccupancyPercent?r.maxOccupancyPercent/100:void 0;for(let i=Math.max(1,Math.ceil(o));i<=Mr;i++)if(!(i<=o)&&!(ti(i,o,r.targetSeconds,t)<s)&&!(a&&o/i>a))return i;return Mr}const pp=36e5,mp=864e5;function gp(e){return e==="day"?mp:pp}function hp(e,t){return e.start<t.end&&t.start<e.end}function Le(e,t,n){const r=Math.min(e.end,n)-Math.max(e.start,t);return r>0?r/1e3:0}function oi(e,t,n){const r=e.handleSeconds??0,o=e.seconds??(e.volume!==void 0?e.volume*r:0);if(o<=0&&!e.volume)return{seconds:0,headcount:0};const s=(t.unplannedLossPercent??0)/100,a=s>0&&s<1?1/(1-s):1;if(t.model==="queue"&&e.volume!==void 0&&r>0){const i=ri(e.volume,r,n,t);return{seconds:o,headcount:i*a}}return{seconds:o,headcount:o/n*a}}function yp(e){const{entries:t,workstreamId:n,staffing:r,demand:o,range:s}=e,a=e.grain??"hour",i=gp(a),u=i/1e3,c=e.kinds,l=t.filter(g=>pe(g.status)),d=l.filter(g=>Kn(g,n,c)),f=l.filter(g=>q(g.kindKey,c).capacity),m=l.filter(g=>q(g.kindKey,c).absent),b=[];for(let g=fe(s.from,a);g<s.to;g+=i){const E=g+i,h=de(g,a);let y=0;for(const D of d)y+=Le(D,g,E);let p=0;for(const D of f)p+=Le(D,g,E);let S=0;for(const D of m)S+=Le(D,g,E);const T=o?.[h]??{},C=oi(T,r,u),R=y/u;b.push({period:h,forecastVolume:T.volume,requiredSeconds:C.seconds,requiredHeadcount:C.headcount,scheduledSeconds:y,scheduledHeadcount:R,netHeadcount:R-C.headcount,capacitySeconds:p,absentSeconds:S})}return b}function si(e,t){return e.workTypeKey??t?.defaultWorkTypeKey}function bp(e,t,n){const r=si(e,t);return r?n.find(o=>o.key===r)?.defaultBillable??!1:!1}function _p(e){return e.filter(t=>t.netHeadcount<0&&t.requiredHeadcount>0)}const Ep=36e5,an=6048e5,ii=8,Sp=.5,Ip=2;function Ap(e){const t=Number(e.slice(0,4)),n=Number(e.slice(5,7)),r=Number(e.slice(8,10)),o=e.length>10?Number(e.slice(11,13)):0;return Date.UTC(t,n-1,r,o)}function Cp(e,t,n){const r=[];for(let s=0;s<n;s++){const a=t-s*an,i=a-an;let u=0,c=!1;for(const[l,d]of e)l>=i&&l<a&&(u+=d,c=!0);c&&r.push(u)}if(r.length<2)return 1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o<=0?1:Math.min(Ip,Math.max(Sp,r[0]/o))}function vp(e,t){if(!e?.length)return;let n;for(const r of e)t>=r.from&&t<r.to&&(n=r);return n}function Tp(e,t,n){const r=Math.max(1,n?.weeks??ii),o=new Map,s=new Set;for(const u of e)o.set(Ap(u.period),u.value),s.add(u.period.slice(0,10));const a=Cp(o,fe(t.from,"hour"),r),i=[];for(let u=fe(t.from,"hour");u<t.to;u+=Ep){let c=0,l=0;for(let m=1;m<=r;m++){const b=u-m*an,E=o.get(b)??(s.has(de(b,"day"))?0:void 0);if(E===void 0)continue;const h=r-m+1;c+=E*h,l+=h}let d=l>0?c/l*a:0;const f=vp(n?.adjustments,u);f?.absoluteVolume!==void 0?d=f.absoluteVolume:f?.factor!==void 0&&(d*=f.factor),i.push({period:de(u,"hour"),volume:d})}return i}const ai="schedule_entry",ci="workstream";function kp(e){return`${ai}:${e}`}function Op(e){return`${ci}:${e}`}const cn=36e5,le=864e5;function Mp(e,t){const n=t==="day"?le:cn,r=[];for(let o=fe(e.from,t);o<e.to;o+=n)r.push(o);return r}function Rr(e){const t=Math.max(1,Math.round((e.to-e.from)/le));return Array.from({length:t},(n,r)=>e.from+r*le)}function Lt(e,t,n,r){const o=Math.min(t,r)-Math.max(e,n);return o>0?o/1e3:0}function Rp(e,t,n={}){const r=n.grain??"hour",o=Mp(t,r),s=r==="day"?le:cn,a=new Map(o.map(d=>[d,0])),i=e.filter(d=>d.userId&&q(d.kindKey).capacity),u=n.userIds?.length?new Set(n.userIds):null,c=new Set;for(const d of i)if(!(u&&d.userId&&!u.has(d.userId))){for(const f of o){const m=Lt(d.start,d.end,f,f+s);m>0&&a.set(f,(a.get(f)??0)+m)}for(const f of Rr(t))Lt(d.start,d.end,f,f+le)>0&&c.add(`${d.userId}:${f}`)}const l=n.userIds??[...new Set([...i.map(d=>d.userId),...(n.patterns??[]).map(d=>d.userId)])].filter(d=>!!d);if(n.patterns?.length)for(const d of l){const f=n.teamIdsOf?.(d)??[];for(const m of Rr(t)){if(c.has(`${d}:${m}`))continue;const b=jn(n.patterns,d,f,m);if(!b)continue;const g=Bn(b,m);if(g<=0)continue;const E=Fn(b,m);if(E){const[p,S]=E.split(":").map(Number),T=m+p*cn+(S??0)*6e4,C=T+g*6e4;for(const R of o){const D=Lt(T,C,R,R+s);D>0&&a.set(R,(a.get(R)??0)+D)}continue}const h=o.filter(p=>p>=m&&p<m+le);if(!h.length)continue;const y=g*60/h.length;for(const p of h)a.set(p,(a.get(p)??0)+y)}}return o.map(d=>({period:de(d,r),weight:a.get(d)??0}))}function ui(e,t){if(e<=0||!t.length)return[];const n=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(n<=0){const r=e/t.length;return t.map(o=>({period:o.period,seconds:r}))}return t.filter(r=>r.weight>0).map(r=>({period:r.period,seconds:e*r.weight/n}))}function Np(e,t,n){const r=new Map;for(const o of e){const s=o.by?t.filter(i=>n(i.period)<o.by):t,a=s.length?s:t;for(const i of ui(o.seconds,a)){const u=`${i.period}|${o.userId??""}`,c=r.get(u);c?c.seconds+=i.seconds:r.set(u,{...i,userId:o.userId})}}return[...r.values()].sort((o,s)=>o.period.localeCompare(s.period)||(o.userId??"").localeCompare(s.userId??""))}function li(e){switch(e.kind){case"user":return`user:${e.userId}`;case"team":return`team:${e.teamId}`;case"org":return"org"}}function Dp(e){if(typeof e!="string")return;const t=e.trim();if(t==="org")return{kind:"org"};const n=t.indexOf(":");if(n<=0)return;const r=t.slice(0,n),o=t.slice(n+1).trim();if(o){if(r==="user")return{kind:"user",userId:o};if(r==="team")return{kind:"team",teamId:o}}}function di(e){return li(e)}function fi(e){switch(e.kind){case"personal":return{kind:"user",userId:e.userId};case"team":return{kind:"team",teamId:e.teamId};case"org":return{kind:"org"}}}function wp(e){return e.agentId?{kind:"user",userId:e.agentId}:fi(e.ownerScope)}function xp(e){return di(e)}const pi="playbook-run",Pp="run";function Lp(e,t=0){return`${pi}:${e}~${t}`}function $p(e){const t=e.indexOf("~");return t<0?e:e.slice(0,t)}function mi(e,t){if(!t)return;let n=e;for(const r of t.split(".")){if(n===null||typeof n!="object")return;n=n[r]}return n}function Kp(e,t){return e.targets.find(n=>n.activityTypes.includes(t))}function Up(e,t){if(t)return e.targets.find(n=>n.id===t)}function gi(e){return e?.kind==="assignment"}function Bp(e){const{trigger:t,agentId:n,target:r,activityType:o,assigneeUserId:s,authorUserId:a}=e;return gi(t)?n?r?r.activityTypes.includes(o)?s?s!==n?"assigned to someone else":a&&a===n?"the agent assigned this to itself, which would restart its own run":null:`no assignee found at ${r.assigneePath}`:`activity type ${o} does not announce an assignment for ${r.id}`:`assignment target kind "${t.targetKind}" is not declared by any installed app`:"this playbook has no agent, so an assignment can never be for it":"trigger is not an assignment trigger"}const un=["suggest","outward","auto"];function Fp(e){return typeof e=="string"&&un.includes(e)}function jp(e){const t=e.playbook?.autonomy??e.agent?.autonomy??"suggest";return e.demoted&&t==="auto"?"outward":t}function Gp(e,t){const n=e??"suggest";return t&&un.indexOf(t)<un.indexOf(n)?t:n}function Wp(e){return e.replace(/__/g," · ").replace(/\./g," · ").replace(/_/g," ")}function hi(e){const t=e.split("__");return t[t.length-1]||e}function Vp(e){const t=hi(e).replace(/[_.]+/g," ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1):e}const Hp=[{name:"text",type:"string"},{name:"subject",type:"string"},{name:"from",type:"string"},{name:"type",type:"string"},{name:"direction",type:"string"},{name:"channelId",type:"string"},{name:"interactionId",type:"string"},{name:"itemId",type:"string"},{name:"activityId",type:"string"},{name:"authorType",type:"string"},{name:"authorName",type:"string"},{name:"textRaw",type:"string"},{name:"fromStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toStatus",type:"string",onlyFor:["INTERACTION_STATUS_CHANGED"]},{name:"toCategory",type:"string",onlyFor:["WORK_ITEM_STATUS_CHANGED"]},{name:"contactId",type:"string"},{name:"companyId",type:"string"},{name:"priority",type:"string"},{name:"inboxId",type:"string"},{name:"topicId",type:"string"},{name:"assigneeUserId",type:"string"}];function qp(e,t){return!e.onlyFor||!t?.length?!0:t.some(n=>e.onlyFor?.includes(n))}const Yp={topics:[{name:"topicId",type:"string"},{name:"topic",type:"string"},{name:"confidence",type:"number"},{name:"reasoning",type:"string"}],question:[{name:"answer",type:"boolean"},{name:"reasoning",type:"string"}],extract:[]};function Gn(e){return`${e.type}:${e.id}`}function zp(e){return[Gn(e),e.lineId].join("#")}function Xp(e){const t=e.lastIndexOf("#"),n=e.indexOf(":");return n<=0||t<=n+1||t===e.length-1?null:{type:e.slice(0,n),id:e.slice(n+1,t),lineId:e.slice(t+1)}}function Qp(e){let t=1+Math.max(0,...e.map(n=>Number(/^l(\d+)$/.exec(n.id??"")?.[1]??0)));return e.map(n=>n.id?n:{...n,id:["l",t++].join("")})}const yi="interaction";function bi(e){return e?.type===yi?e.id:void 0}const _i=64,Ei=8e3;function Zp(e){const t=typeof e=="number"?e:Number(String(e??"").trim());if(!(!Number.isFinite(t)||t<=0))return Math.min(Math.max(Math.round(t),_i),Ei)}const Jp=["condition","for-each","parallel","lookup","action","classify","generate","agent","wait-for-reply","wait-for-task"],em={kind:"workflow",steps:[]};function tm(e){return e?.kind==="workflow"?e.steps:[]}function nm(e){return e?.kind==="procedure"?e.procedure:void 0}function rm(e){return e.assignmentId?"assignment":e.decider?.kind==="procedure"?"procedure":"workflow"}function Si(e){const t=e?.approved??0,n=t+(e?.rejected??0);return{total:n,rate:n?t/n:0}}const Ii=10,Ai=.9;function om(e){const{total:t,rate:n}=Si(e);return t>=Ii&&n>=Ai}const Ci=["done","escalated","failed","stopped"];function sm(e){return Ci.includes(e)}function vi(e){return e==="waiting"}function im(e){return e==="running"||vi(e)}function Wn(e){return e.subjectKind&&e.subjectId?{type:e.subjectKind,id:e.subjectId}:void 0}function am(e){const t=Wn(e);return t?Gn(t):void 0}function cm(e){return bi(Wn(e))}const $t=864e5;function um(e,t){return e.lines.flatMap(n=>{const r=ft(U(e,n),t);if(!r)return[];if(n.expected==="variable")return[{lineId:n.id,kind:"variable"}];if(n.quantity.from!=="fixed"||!n.price)return[{lineId:n.id,kind:"count"}];const o=bt({kind:"product",quantity:n.quantity.value,unitPriceCents:n.price.cents,pricePer:n.price.per,servicePeriod:r});return[{lineId:n.id,kind:"fixed",cents:o}]})}function Ti(e,t,n=.3){const r=e.slice(-3);if(!r.length)return!1;const o=r.reduce((s,a)=>s+a,0)/r.length;return o===0?t!==0:Math.abs(t-o)/Math.abs(o)>n}const Nr=e=>e.seriesId??e.id;function lm(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t[t.length-1]}function dm(e,t,n,r={}){const o=(r.noticeDays??30)*$t,s=(r.windowDays??7)*$t,a=[];for(const i of e){if(i.status!=="active")continue;const u=new Map;for(const c of i.lines)u.set(Nr(c),[...u.get(Nr(c))??[],c]);for(const c of u.values()){const l=lm(i,c,n),d=U(i,l);if(d.to!=null&&d.to<=n)continue;const f={contractId:i.id,lineId:l.id},m=l.commitment??i.commitment,b=En(i,c),g=d.to??Ee(b,m,n);if(l.customerCompanyId){const y=l.salesLine?t.find(p=>p.agreementId===l.salesLine?.agreementId&&p.seriesId===l.salesLine?.seriesId):void 0;y?y.ended?a.push({kind:"not_covered",...f,reason:"sales_ended"}):(l.quantity.from==="fixed"&&y.quantity!=null&&y.quantity!==l.quantity.value&&a.push({kind:"not_covered",...f,reason:"quantity"}),y.unbilled.length&&a.push({kind:"not_billed",...f,windows:y.unbilled}),g>y.effectiveEndAt&&a.push({kind:"term_mismatch",...f,purchaseEnd:g,salesEnd:y.effectiveEndAt})):a.push({kind:"not_covered",...f,reason:"no_sales_line"})}const E=!!m&&m.termMonths>=3&&(m.renew==="term"||n<Ee(b,{...m,renew:"none"},b)),h=d.to==null&&E?In(b,m,n):null;if(h!=null&&h-n<=o&&a.push({kind:"notice_due",...f,deadline:h}),m&&m.termMonths>=1&&l.changeWindowDays){const y=Sn(b,m,n)+l.changeWindowDays*$t;y>n&&y-n<=s&&a.push({kind:"change_window",...f,closesAt:y})}if(l.expected==="variable"&&l.invoiced&&l.invoiced.length>=2){const y=[...l.invoiced].sort((S,T)=>S.from-T.from),p=y[y.length-1];Ti(y.slice(0,-1).map(S=>S.cents),p.cents)&&a.push({kind:"variable_jump",...f,cents:p.cents})}}}return a}function ki(e,t){let n=0;for(const r of t){if(r.status!=="booked")continue;const o=r.movement==="return"?-1:1;for(const s of r.lines)s.poLineId===e&&(n+=o*s.quantity)}return n}function fm(e){const t=e.filter(n=>n.kind==="product"&&n.quantity>0);return!t.length||t.every(n=>(n.receivedQty??0)<=0)?"none":t.every(n=>(n.receivedQty??0)>=n.quantity)?"full":"partial"}function Oi(e,t,n){const r=[];for(const o of e.lines){const s=t.find(i=>i.id===o.poLineId),a=ki(o.poLineId,n);(!s||e.movement==="in"&&a+o.quantity>s.quantity)&&r.push({code:"receipt_over_ordered",poLineId:o.poLineId}),e.movement==="return"&&o.quantity>a&&r.push({code:"receipt_return_over_received",poLineId:o.poLineId}),o.serials.length&&o.serials.length!==Vn(s??{},o.quantity)&&r.push({code:"receipt_serials_count",poLineId:o.poLineId})}return r}function pm(e){return e.map(t=>({poLineId:String(t.poLineId),quantity:Number(t.quantity)||0,serials:[...new Set((t.serials??[]).map(n=>String(n).trim()).filter(Boolean))],...Number(t.backorderQty)>0?{backorderQty:Number(t.backorderQty)}:{}})).filter(t=>t.quantity>0)}function Mi(e,t){return(e.validFrom==null||e.validFrom<=t)&&(e.validTo==null||e.validTo>=t)}function Ri(e,t){const n=e.filter(r=>Mi(r,t));return n.find(r=>r.isDefault)??n[0]??null}function Vn(e,t){return t*(e.factor&&e.factor>0?e.factor:1)}function Ni(e){return{cents:P(e.costCents/Vn(e,1)),currency:e.currency,...e.per?{per:e.per}:{}}}function mm(e){const t=Ni(e);return t.per?dt(t.cents,t.per,{from:Date.UTC(2026,0,1),to:Date.UTC(2027,0,1)}):t.cents}const gm=864e5,ln=e=>e.seriesId??e.id;function Dr(e,t,n){return t.find(r=>{const o=U(e,r);return o.from<=n&&(o.to==null||o.to>n)})??t.filter(r=>U(e,r).from>n).sort((r,o)=>U(e,r).from-U(e,o).from)[0]??t[t.length-1]}function wr(e){const t=new Map;for(const n of e)t.set(ln(n),[...t.get(ln(n))??[],n]);return t}function hm(e){const{now:t}=e,n=[],r=(i,u)=>{const c=U(i,u);return i.status==="active"&&(c.to==null||c.to>t)},o=e.contracts.flatMap(i=>[...wr(i.lines).values()].map(u=>({contract:i,line:Dr(i,u,t),start:En(i,u)})));for(const i of e.agreements)if(!(i.status!=="active"&&i.status!=="draft"))for(const u of wr(i.lines).values()){const c=Dr(i,u,t);if(c.quantity.from!=="fixed")continue;const l=Ri(e.offers.filter(C=>C.productId===c.productId&&(C.businessEntityId||"")===(i.businessEntityId||"")),t);if(!l)continue;const d=ln(c),f=["demand:",i.id,"#",d].join("");if(e.open.has(f))continue;const m=o.find(C=>C.line.salesLine?.agreementId===i.id&&C.line.salesLine.seriesId===d&&r(C.contract,C.line)),b=U(i,c),g={key:f,level:"item",supplierCompanyId:l.supplierCompanyId,offerId:l.id,productId:c.productId,name:c.name,customerCompanyId:i.companyId,salesLine:{agreementId:i.id,seriesId:d}};if(b.to!=null){if(!m)continue;const C=m.line.commitment??m.contract.commitment,R=Ee(m.start,C,t),D=C&&C.termMonths>=1?ne(m.start,C,t):R,G=In(m.start,C,t);n.push({...g,action:"cancel",quantity:m.line.quantity.from==="fixed"?m.line.quantity.value:0,contractLine:{contractId:m.contract.id,lineId:m.line.id},effectiveAt:R,...G!=null?{deadline:G}:{},...R>D?{nextTerm:!0}:{},...R>b.to?{runsOnUntil:R}:{}});continue}const E=c.quantity.value;if(!m){n.push({...g,action:"purchase",quantity:E});continue}const h=m.line.quantity.from==="fixed"?m.line.quantity.value:E;if(h===E)continue;const y={contractId:m.contract.id,lineId:m.line.id};if(E>h){n.push({...g,action:"change",quantity:E-h,targetQuantity:E,from:h,contractLine:y});continue}const p=m.line.commitment??m.contract.commitment,S=m.line.changeWindowDays??0,T=!p||p.termMonths<1||S>0&&t<Sn(m.start,p,t)+S*gm;n.push({...g,action:"change",quantity:h-E,targetQuantity:E,from:h,contractLine:y,...T?{}:{atRenewal:!0,effectiveAt:ne(m.start,p,t)}})}const s=[],a=(i,u,c)=>{const l=e.provisionable.get([u.app,u.offer].join(":"));if(i.action!=="purchase"||!l?.requires)return;const d=e.offers.find(g=>g.id===i.offerId)?.businessEntityId||"",f=e.offers.find(g=>(g.businessEntityId||"")===d&&(!c||g.supplierCompanyId===i.supplierCompanyId)&&g.provider?.app===u.app&&g.provider?.offer===l.requires),m=o.some(g=>g.line.offerId===f?.id&&g.line.customerCompanyId===i.customerCompanyId&&r(g.contract,g.line));if(!f||m)return;const b=["account:",i.customerCompanyId,":",f.id].join("");return!e.open.has(b)&&!s.some(g=>g.key===b)&&s.unshift({key:b,action:"purchase",level:"account",supplierCompanyId:f.supplierCompanyId,offerId:f.id,productId:f.productId,name:l.requires,quantity:1,customerCompanyId:i.customerCompanyId}),b};for(const i of n){const u=e.offers.find(l=>l.id===i.offerId),c=u?.provider?.app?a(i,u.provider,!0):void 0;u?.deliverTo?.app&&a(i,u.deliverTo,!1),s.push({...i,...c?{waitsFor:c}:{},...u?.deliverTo?.app?{deliverTo:u.deliverTo}:{}})}return[...s.filter(i=>i.level==="account"),...s.filter(i=>i.level!=="account")]}const Hn=["vendorSku","gtin","description","cost","list","currency","stock","leadDays"],ym={day:864e5,week:7*864e5,month:31*864e5},Di=10;function bm(e,t){const n=(e[0]??[]).map(i=>i.trim().toLowerCase()),r={},o=[];for(const i of Hn){const u=t[i]?.trim();if(!u)continue;const c=n.indexOf(u.toLowerCase());c===-1?o.push(u):r[i]=c}const s=[],a=[];return r.vendorSku===void 0&&r.gtin===void 0?{rows:s,errors:[{line:1,message:"feed_no_key"}],missingHeaders:o}:(e.slice(1).forEach((i,u)=>{const c=u+2,l=p=>{const S=r[p];return S===void 0?"":(i[S]??"").trim()},d=l("vendorSku"),f=gt(l("gtin"));if(!d&&!f){a.push({line:c,message:"feed_row_no_key"});return}const m=l("cost")?Wt(l("cost")):void 0;if(l("cost")&&m===void 0){a.push({line:c,message:"feed_row_price"});return}const b=l("list")?Wt(l("list")):void 0,g=l("stock"),E=Number(g.replace(/[^\d-]/g,"")),h=r.stock===void 0?void 0:g&&/\d/.test(g)&&Number.isFinite(E)?Math.max(0,E):null,y=Number(l("leadDays"));s.push({line:c,...d?{vendorSku:d}:{},...f?{gtin:f}:{},...l("description")?{description:l("description")}:{},...m!==void 0?{costCents:m}:{},...b!==void 0?{listCents:b}:{},...l("currency")?{currency:l("currency").toUpperCase()}:{},...h!==void 0?{stock:h}:{},...l("leadDays")&&Number.isFinite(y)?{leadDays:y}:{}})}),{rows:s,errors:a,missingHeaders:o})}function _m(e,t,n){const r=new Map(t.filter(a=>a.vendorSku).map(a=>[a.vendorSku,a])),o=new Map(t.map(a=>[a.productId,a])),s=new Map;for(const a of n)for(const i of[a.gtin,...a.barcodes??[]]){const u=i?gt(i):void 0;u&&!s.has(u)&&s.set(u,a)}return e.map(a=>{const i=a.vendorSku?r.get(a.vendorSku):void 0;if(i)return{row:a,offer:i};const u=a.gtin?s.get(a.gtin):void 0;if(!u)return{row:a};const c=o.get(u.id);return c?{row:a,offer:c}:{row:a,product:u}})}function Em(e,t,n,r=Di){const o=new Map,s=[];let a=0;for(const u of e){const{row:c}=u;if(!("offer"in u)){s.push({line:c.line,...c.vendorSku?{vendorSku:c.vendorSku}:{},...c.gtin?{gtin:c.gtin}:{},...c.description?{description:c.description}:{},...c.costCents!==void 0?{costCents:c.costCents}:{},..."product"in u?{productId:u.product.id}:{}});continue}const l=u.offer,d={qty:c.stock===void 0?l.availability?.qty??null:c.stock,at:n,source:"feed",...c.leadDays!==void 0?{leadDays:c.leadDays}:{}},f={availability:d};c.costCents!==void 0&&c.costCents!==l.costCents&&(f.costCents=c.costCents),c.listCents!==void 0&&c.listCents!==l.listCents&&(f.listCents=c.listCents),c.currency&&c.currency!==l.currency&&(f.currency=c.currency),c.vendorSku&&!l.vendorSku&&(f.vendorSku=c.vendorSku),Object.keys(f).length>1||d.qty!==(l.availability?.qty??null)||a++;const b=f.costCents!==void 0&&l.costCents>0?Math.round(Math.abs(f.costCents-l.costCents)/l.costCents*1e3)/10:0;o.set(l.id,{offerId:l.id,set:f,...b>r?{jump:{fromCents:l.costCents,toCents:f.costCents,percent:b}}:{}})}const i=t.filter(u=>u.availability?.source==="feed"&&!o.has(u.id)).map(u=>u.id);return{changes:[...o.values()],unchanged:a,gone:i,unmatched:s}}const Sm={vendorSku:["artikelnummer","artikelnr","artnr","sku","part number","partnumber","item","vendor sku"],gtin:["ean","gtin","barcode","ean13","upc"],description:["omschrijving","description","naam","name","product"],cost:["netto","inkoopprijs","inkoop","prijs","price","net price","cost","dealer price"],list:["advies","adviesprijs","msrp","rrp","list price","erp"],currency:["valuta","currency"],stock:["voorraad","stock","qty","quantity","beschikbaar","available"],leadDays:["levertijd","lead time","leadtime","delivery days"]};function Im(e){const t=e.map(o=>o.trim()),n=new Set,r={};for(const o of Hn){const s=Sm[o],a=t.find(i=>!n.has(i)&&s.includes(i.toLowerCase()))??t.find(i=>!n.has(i)&&s.some(u=>i.toLowerCase().startsWith(u)));a&&(r[o]=a,n.add(a))}return r}const wi=[{key:"purchase_order",label:"kind_purchase_order",name:"Inkooporder",numbered:!0,signFlip:!1,statuses:["draft","sent","confirmed","received","cancelled","superseded"],path:"purchase-orders",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["confirmed","received","cancelled"],confirmed:["received","sent","cancelled"],received:["confirmed"]},convertsTo:[]}],Am="purchase_order",K=e=>(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"");function xi(e){const t=[];for(const n of e){const r=K(n.sku)||K(n.description),o=t.find(s=>(K(s.sku)||K(s.description))===r);o?(o.quantity+=n.quantity,o.serials.push(...n.serials)):t.push({...n,serials:[...n.serials]})}return t}function Cm(e,t){const n=K(e.orderRef),r=K(e.supplierRef);return n&&t.find(o=>K(o.number)===n)||n&&t.find(o=>K(o.reference)===n)||r&&t.find(o=>K(o.reference)===r)||null}const Ne={reference:0,sku:1,description:2,loose:3};function qn(e,t,n){const r=K(e.externalRef);if(r&&K(t.externalRef)===r)return{via:"reference",rank:Ne.reference};if(r&&t.externalRef)return null;const o=K(e.sku);if(o&&n.filter(u=>u.id===t.offerId||!!t.productId&&u.productId===t.productId).map(u=>K(u.vendorSku)).filter(Boolean).includes(o))return{via:"sku",rank:Ne.sku};const s=K(e.description),a=K(t.name);return!s||!a?null:s===a?{via:"description",rank:Ne.description}:a.includes(s)||s.includes(a)?{via:"description",rank:Ne.loose}:null}function Pi(e,t,n){const r=t.filter(i=>i.kind==="product"),o=new Set,s=[],a=[];return e.forEach((i,u)=>{let c=null;for(const l of r){if(o.has(l.id))continue;const d=qn(i,l,n);d&&(!c||d.rank<c.rank)&&(c={line:l,...d})}if(!c){a.push(u);return}o.add(c.line.id),s.push({docIndex:u,poLineId:c.line.id,via:c.via})}),{matches:s,unmatched:a}}function vm(e,t,n,r){const o=xi(e.lines);if(!t)return{lines:[],problems:[{code:"slip_no_order"}]};const{matches:s,unmatched:a}=Pi(o,t.lines,n),i=s.map(c=>({poLineId:c.poLineId,quantity:o[c.docIndex].quantity,serials:o[c.docIndex].serials,docIndex:c.docIndex,via:c.via})),u=[...Oi({movement:"in",lines:i},t.lines,r).filter(c=>c.code!=="receipt_return_over_received").map(c=>({code:c.code,poLineId:c.poLineId,docIndex:i.find(l=>l.poLineId===c.poLineId)?.docIndex})),...a.map(c=>({code:"slip_unknown_item",docIndex:c}))];return{lines:i,problems:u}}function Tm(e){let t;try{t=JSON.parse(e.slice(e.indexOf("{"),e.lastIndexOf("}")+1))}catch{return null}const n=s=>typeof s=="string"||typeof s=="number"?String(s).trim():"",r=(Array.isArray(t.lines)?t.lines:[]).flatMap(s=>{const a=Number(String(s?.quantity??"").replace(",",".")),i=n(s?.description);if(!(a>0)||!i&&!n(s?.sku))return[];const u=[...Array.isArray(s?.serials)?s.serials.map(n):[],...n(s?.serial)?[n(s?.serial)]:[]].filter(Boolean);return[{...n(s?.sku)?{sku:n(s?.sku)}:{},description:i,quantity:a,serials:u}]}),o=n(t.deliveredOn);return{...n(t.supplierRef)?{supplierRef:n(t.supplierRef)}:{},...n(t.orderRef)?{orderRef:n(t.orderRef)}:{},.../^\d{4}-\d{2}-\d{2}$/.test(o)?{deliveredOn:o}:{},lines:r}}const km=864e5,xr=e=>Date.parse([e,"T00:00:00Z"].join(""));function Om(e,t,n,r){const o=new Map(t.map(u=>[u.id,u.openQty])),s=[],a=[],i=new Set;for(const u of e){const c=t.map((p,S)=>({candidate:p,order:S,hit:qn(u,p,n)})).filter(p=>!!p.hit).filter(p=>!(p.candidate.kind==="contract_line"&&i.has(p.candidate.id))).sort((p,S)=>p.hit.rank-S.hit.rank||p.order-S.order);if(!c.length){a.push(u.id);continue}const l=u.period?{from:xr(u.period.from),to:xr(u.period.to)+km}:r,d=p=>({receiptLineId:u.id,businessEntityId:p.businessEntityId,...p.productId?{productId:p.productId}:{},...p.use?{use:p.use}:{},...p.customerCompanyId?{customerCompanyId:p.customerCompanyId}:{}}),f=(p,S,T)=>p.variable?null:bt({kind:"product",quantity:S,unitPriceCents:p.unitPriceCents,discountPercent:p.discountPercent,pricePer:p.pricePer,servicePeriod:T}),m=c[0];if(m.candidate.kind==="contract_line"){const p=m.candidate;i.add(p.id);const S=u.quantity??p.openQty??1;s.push({...d(p),target:{kind:"contract_line",contractId:p.parentId,lineId:p.id,period:l},via:m.hit.via,quantity:S,amountCents:u.netCents,expectedCents:f(p,S,l),overQuantity:p.openQty!=null&&S!==p.openQty});continue}const b=c.filter(p=>p.candidate.kind==="po_line"&&p.hit.rank===m.hit.rank),g=u.quantity??Math.max(1,o.get(m.candidate.id)??1),E=[];let h=g;for(const{candidate:p}of b){if(h<=0)break;const S=Math.max(0,o.get(p.id)??0);if(!S)continue;const T=Math.min(S,h);E.push({candidate:p,quantity:T,over:!1}),o.set(p.id,S-T),h-=T}if(h>0){const p=E[E.length-1];p?(p.quantity+=h,p.over=!0):E.push({candidate:m.candidate,quantity:h,over:!0})}const y=Ce(u.netCents,E.map(p=>p.quantity));E.forEach((p,S)=>{s.push({...d(p.candidate),target:{kind:"po_line",orderId:p.candidate.parentId,lineId:p.candidate.id},via:m.hit.via,quantity:p.quantity,amountCents:y[S],expectedCents:f(p.candidate,p.quantity,u.period?l:void 0),overQuantity:p.over})})}return{allocations:s,unmatched:a}}const Li={percent:1,cents:100};function Mm(e,t,n=Li){const r=t.map(s=>({receiptLineId:s,issue:"unmatched"})),o=new Map;for(const s of e)o.set(s.receiptLineId,[...o.get(s.receiptLineId)??[],s]);for(const[s,a]of o){if(a.some(l=>l.overQuantity)&&r.push({receiptLineId:s,issue:"quantity"}),a.some(l=>l.expectedCents===null))continue;const i=a.reduce((l,d)=>l+(d.expectedCents??0),0),u=a.reduce((l,d)=>l+d.amountCents,0),c=Math.max(Math.abs(i)*n.percent/100,n.cents);Math.abs(u-i)>c&&r.push({receiptLineId:s,issue:"price",expectedCents:i,amountCents:u})}return{ok:r.length===0&&e.length>0,issues:r}}function Rm(e){const t=[],n=new Map;for(const r of[...e].sort(Nm)){const o=n.get(r.emoji);if(o){o.push(r.actor);continue}t.push(r.emoji),n.set(r.emoji,[r.actor])}return t.map(r=>{const o=n.get(r);return{emoji:r,count:o.length,actors:o}}).sort((r,o)=>o.count-r.count||t.indexOf(r.emoji)-t.indexOf(o.emoji))}const Nm=(e,t)=>(e.createdAt??0)-(t.createdAt??0);function Dm(e,t){return t?e.actors.some(n=>n.type==="user"&&n.id===t):!1}const $i=["1a","1b","1c","1d","1e","2a","3a","3b","3c","4a","4b","5a","5b","5c","5g"];function wm(e){const t=e.taxonomy??"nl-ob",n=new Map(e.codes.map(p=>[p.key,p])),r=n.get(e.standardKey??"high"),o={},s={},a=(p,S)=>{if(!e.trace||!p||!S.ref)return;const T=s[p]??[];T.includes(S.ref)||(s[p]=[...T,S.ref])};let i;const u=(p,S,T)=>{if(!p||!T)return;const C=o[p]??{};C[S]=(C[S]??0)+T,o[p]=C,i&&a(p,i)},c=new Map,l=new Set;let d=0;for(const p of e.lines){if(p.taxPointDate<e.from||p.taxPointDate>e.to)continue;const S=n.get(p.taxCode);if(!S){l.add(p.taxCode);continue}const T=S.boxes[t]?.[p.side];if(i=p,p.side==="sales")u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",p.taxCents),S.icp&&c.set(p.counterpartyCompanyId??"",(c.get(p.counterpartyCompanyId??"")??0)+p.baseCents);else if(S.selfAssessed){const C=r?$n(r,p.taxPointDate)??0:0,R=Math.round(p.baseCents*C/100);u(T?.base,"baseCents",p.baseCents),u(T?.tax,"taxCents",R),d+=R,R&&a("5b",p)}else{const C=Math.round(p.taxCents*(S.deductiblePercent??100)/100);d+=C,C&&a("5b",p)}}const f=$i.filter(p=>p<"5"),m=f.reduce((p,S)=>p+(o[S]?.taxCents??0),0);o["5a"]={taxCents:m},o["5b"]={taxCents:d},o["5c"]={taxCents:m-d},o["5g"]={taxCents:m-d};const b=p=>Math.trunc(p/100),g=p=>p>=0?Math.ceil(p/100):Math.floor(p/100),E={};for(const p of f){const S=o[p];S&&(E[p]={...S.baseCents!==void 0?{base:b(S.baseCents)}:{},...S.taxCents!==void 0?{tax:b(S.taxCents)}:{}})}const h=f.reduce((p,S)=>p+(E[S]?.tax??0),0),y=g(d);return E["5a"]={tax:h},E["5b"]={tax:y},E["5c"]={tax:h-y},E["5g"]={tax:h-y},{boxes:o,euros:E,icp:[...c.entries()].filter(([,p])=>p!==0).map(([p,S])=>({...p?{counterpartyCompanyId:p}:{},baseCents:S})),unknownCodes:[...l],...e.trace?{refs:s}:{}}}function xm(e,t="quarter"){const n=t==="quarter"?3:t==="month"?1:12,r=s=>String(s).padStart(2,"0"),o=(s,a)=>new Date(Date.UTC(s,a,0)).getUTCDate();return Array.from({length:12/n},(s,a)=>{const i=a*n+1,u=i+n-1,c=u===12?e+1:e,l=u===12?1:u+1;return{label:t==="quarter"?`Q${a+1} ${e}`:t==="month"?`${e}-${r(i)}`:String(e),from:`${e}-${r(i)}-01`,to:`${e}-${r(u)}-${r(o(e,u))}`,dueOn:t==="year"?`${e+1}-03-31`:`${c}-${r(l)}-${r(o(c,l))}`}})}class Yn extends Error{constructor(t){super(t),this.name="UnresolvedRefError"}}const Pm=/^\{\{\s*([\w.]+)\s*\}\}$/,Lm=/\{\{\s*([\w.]+)\s*\}\}/g,$m=/\$[A-Za-z_][\w]*\.[\w.]+/;function Km(e,t,n={}){return rt(e,t,n)}function rt(e,t,n={}){return typeof e=="string"?Um(e,t,n):Array.isArray(e)?e.map(r=>rt(r,t,n)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,rt(o,t,{...n,where:`${n.where??"een parameter"} "${r}"`})])):e}function Um(e,t,n){const r=n.onMissing==="throw";if(r){const s=e.match($m);if(s)throw new Yn(`"${s[0]}" in ${n.where??"een waarde"} is de oude schrijfwijze; gebruik {{ ${s[0].slice(1)} }}.`)}const o=e.match(Pm);if(o){const s=Pr(t,o[1],e,n);return s===void 0&&!r?"":s}return e.replace(Lm,(s,a)=>{const i=Pr(t,a,s,n);return i==null?"":typeof i=="object"?JSON.stringify(i):String(i)})}function Pr(e,t,n,r){const o=t.split(".")[0]??"";if(r.onMissing==="throw"&&!Object.hasOwn(e,o)){const s=Object.keys(e);throw new Yn(`onbekende verwijzing ${n} in ${r.where??"een waarde"}: "${o}" bestaat niet. Beschikbaar: ${s.length?s.join(", "):"(nog niets)"}`)}return Bm(e,t)}function Bm(e,t){let n=e;for(const r of t.split(".")){if(n==null||typeof n!="object")return;n=n[r]}return n}const Fm=new Set(["filled","empty"]);function jm(){return{kind:"rule",op:"==",varPath:"",value:""}}const Gm=new Set(["==","!=",">","<",">=","<="]);function Kt(e){return!!e&&typeof e=="object"&&"var"in e&&typeof e.var=="string"}function Lr(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"}function Ki(e){if(e===!0||e==null)return{kind:"group",op:"and",children:[]};if(e===!1)return null;const t=dn(e);return t?t.kind==="group"?t:{kind:"group",op:"and",children:[t]}:null}function dn(e){if(typeof e!="object"||e===null)return null;const t=Object.keys(e);if(t.length!==1)return null;const n=t[0],r=e[n];if(n==="and"||n==="or"){if(!Array.isArray(r))return null;const o=[];for(const s of r){const a=dn(s);if(!a)return null;o.push(a)}return{kind:"group",op:n,children:o}}if(n==="!!"||n==="!"){const o=Array.isArray(r)?r.length===1?r[0]:void 0:r;if(Kt(o))return{kind:"rule",op:n==="!!"?"filled":"empty",varPath:o.var,value:""};if(n==="!!")return null;const s=dn(r);return s?{kind:"not",child:s}:null}if(n==="in"){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(s)||!Lr(o)?null:{kind:"rule",op:"in",varPath:s.var,value:o}}if(Gm.has(n)){if(!Array.isArray(r)||r.length!==2)return null;const[o,s]=r;return!Kt(o)||!Lr(s)?null:{kind:"rule",op:n,varPath:o.var,value:s}}return null}function $e(e){return e.kind==="group"?e.children.length===0?!0:e.children.length===1?$e(e.children[0]):{[e.op]:e.children.map($e)}:e.kind==="not"?{"!":$e(e.child)}:e.op==="filled"?{"!!":[{var:e.varPath}]}:e.op==="empty"?{"!":[{var:e.varPath}]}:e.op==="in"?{in:[e.value,{var:e.varPath}]}:{[e.op]:[{var:e.varPath},e.value]}}function Wm(e){const t=Ki(e);return t&&fn(t)||null}function fn(e){if(e.kind==="group"){const t=e.children.map(fn).filter(Boolean);return t.length===0?"":t.length===1?t[0]:t.join(e.op==="and"?" && ":" || ")}return e.kind==="not"?`!(${fn(e.child)})`:e.op==="filled"?`$${e.varPath}`:e.op==="empty"?`!$${e.varPath}`:e.op==="in"?`${JSON.stringify(e.value)} in $${e.varPath}`:`$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`}const Ut=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}];function Vm(e,t,n){const r=new Set;for(const o of e.split(",")){const[s,a]=o.split("/"),i=a===void 0?1:Number(a);if(!Number.isInteger(i)||i<1)return null;let u=t,c=n;if(s!=="*"&&s!==void 0){const[l,d]=s.split("-");if(u=Number(l),c=d===void 0?u:Number(d),!Number.isInteger(u)||!Number.isInteger(c)||(d===void 0&&a!==void 0&&(c=n),u<t||c>n||u>c))return null}for(let l=u;l<=c;l+=i)r.add(l)}return r.size?r:null}function zn(e){const t=e.trim().split(/\s+/);if(t.length!==Ut.length)return null;const n=[];for(let u=0;u<Ut.length;u++){const c=Ut[u],l=t[u];if(!c||l===void 0)return null;const d=Vm(l,c.min,c.max);if(!d)return null;n.push(d)}const[r,o,s,a,i]=n;return i.has(7)&&i.add(0),{minute:r,hour:o,dayOfMonth:s,month:a,dayOfWeek:i,anyDayOfMonth:t[2]==="*",anyDayOfWeek:t[4]==="*"}}function Hm(e){return zn(e)!==null}function Ui(e,t){const n=zn(e);if(!n||!n.minute.has(t.getUTCMinutes())||!n.hour.has(t.getUTCHours())||!n.month.has(t.getUTCMonth()+1))return!1;const r=n.dayOfMonth.has(t.getUTCDate()),o=n.dayOfWeek.has(t.getUTCDay());return n.anyDayOfMonth&&n.anyDayOfWeek?!0:n.anyDayOfMonth?o:n.anyDayOfWeek?r:r||o}const Bi="@schedule",pn=3;function Fi(e,t,n){const r=[],o=e.depth??0;if(o>=pn)return{matched:[],skipped:t.map(i=>({ruleId:i.id,reason:`keten te diep (${o} van ${pn})`}))};const s={event:e.payload,subject:e.subject??{}},a=[];for(const i of t){if(!i.enabled){r.push({ruleId:i.id,reason:"staat uit"});continue}if(i.trigger.kind==="schedule"){if(e.name!==Bi){r.push({ruleId:i.id,reason:"luistert op de klok"});continue}const u=typeof e.payload?.at=="number"?e.payload.at:Number.NaN;if(!Number.isFinite(u)){r.push({ruleId:i.id,reason:"tik zonder tijdstip"});continue}if(!Ui(i.trigger.cron,new Date(u))){r.push({ruleId:i.id,reason:`niet aan de beurt (${i.trigger.cron})`});continue}}else if(i.trigger.kind!=="event"){r.push({ruleId:i.id,reason:`trigger "${i.trigger.kind}" draait hier niet`});continue}else if(i.trigger.name!==e.name){r.push({ruleId:i.id,reason:`luistert op ${i.trigger.name}`});continue}if(e.causedByRule===i.id){r.push({ruleId:i.id,reason:"dit event komt van deze regel zelf"});continue}if(!n(i.when??null,s)){r.push({ruleId:i.id,reason:"voorwaarde niet waar"});continue}a.push({rule:i,idempotencyKey:`${e.id}:${i.id}:${i.version}`})}return{matched:a,skipped:r}}function qm(e,t){return{causedByRule:t,depth:(e.depth??0)+1}}function Ym(e,t){const{event:n,rules:r}=e.input,{matched:o,skipped:s}=Fi(n,r,t),a=o.flatMap(c=>c.rule.then.map(l=>l.action)),i=e.expected?.actions??[];if(a.length===i.length&&a.every((c,l)=>c===i[l]))return{caseId:e.id,ok:!0};const u=s.map(c=>`${c.ruleId}: ${c.reason}`).join(" · ");return{caseId:e.id,ok:!1,got:a,note:i.length?`verwacht [${i.join(", ")}], kreeg [${a.join(", ")}]${u?` — ${u}`:""}`:`mocht niet vuren, maar deed [${a.join(", ")}]`}}function zm(e,t){return e.wrote&&t in e.wrote?e.wrote[t]:t in e.params?e.params[t]:""}function ji(e,t){return e.fields.filter(n=>t?.[n]!==void 0&&t[n]!==zm(e,n))}function Xm(e,t,n){return n?"undone":!t||!e.length?"unknown":e.some(r=>ji(r,t).length)?"corrected":"kept"}function Qm(e){return e==="string[]"?["in"]:e==="boolean"?["==","!="]:e==="number"||e==="date"?["==","!=",">","<",">=","<="]:["==","!=","in","filled","empty"]}function Zm(e){return`subject.${e.path}`}function Jm(e,t){return e.events.find(n=>n.name===t)}function eg(e,t){return e.filter(n=>mi(t,n.path)===void 0).map(n=>n.path)}const mn=6e4,tg=36e5,Ie=864e5,Gi=800;function $r(e,t){const n=Date.UTC(e,t+1,0);return n-new Date(n).getUTCDay()*Ie+tg}function ng(e){const t=new Date(e).getUTCFullYear();return e>=$r(t,2)&&e<$r(t,9)}function Wi(e,t){const n=t.dst==="eu"&&ng(e)?60:0;return(t.utcOffsetMinutes+n)*mn}function rg(e){return(e+3)%7+1}function Vi(e,t){const n=Wi(e,t),r=e+n,o=Math.floor(r/Ie);if(!t.days.includes(rg(o)))return null;const s=o*Ie;return{open:s+t.fromMinutes*mn-n,close:s+t.toMinutes*mn-n}}function Hi(e,t){const n=Wi(e,t),r=e+n;return(Math.floor(r/Ie)+1)*Ie-n}function ot(e,t,n){if(t<=e)return 0;if(!n)return t-e;let r=0,o=e;for(let s=0;s<Gi&&o<t;s++){const a=Vi(o,n);if(a){const i=Math.max(o,a.open),u=Math.min(t,a.close);u>i&&(r+=u-i)}o=Hi(o,n)}return r}function Et(e,t,n){if(!n)return e+t;let r=t,o=e;for(let s=0;s<Gi;s++){const a=Vi(o,n);if(a){const i=Math.max(o,a.open);if(a.close>i){const u=a.close-i;if(r<=u)return i+r;r-=u}}o=Hi(o,n)}return e+t}function og(e){const t=/^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}const st=1,it=2,at=4;function sg(e){return e==="snoozed"?st:it}function St(e){const t=e.calendar;return t&&Array.isArray(t.days)?t:null}const ig=["speed_of_answer","first_response","next_response","resolution","close"],ag=["snoozed","waiting_for_customer"],cg=6e4,qi=["speed_of_answer","first_response","next_response"],ug=[...qi,"resolution","close"];function ke(e){return e.state==="running"||e.state==="paused"}function lg(e,t){return ke(e)?{state:(e.state==="paused"?e.remainingMs>0:t<=e.dueAt)?"hit":"missed",settledAt:Math.max(t,e.startedAt)}:null}function Kr(e){return ke(e)?{state:"void"}:null}function dg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)!==0)return null;const o=e.pauseBits|t;return e.state==="paused"?{pauseBits:o}:{pauseBits:o,state:"paused",remainingMs:ot(n,e.dueAt,r)}}function fg(e,t,n,r){if(!ke(e)||(e.pauseBits&t)===0)return null;const o=e.pauseBits&~t;return o!==0?{pauseBits:o}:{pauseBits:o,state:"running",dueAt:Et(n,e.remainingMs,r)}}function pg({event:e,at:t,now:n,clocks:r,profile:o}){const s=St(o),a=Math.min(t,n),i=r.map(h=>({...h})),u=[],c=(h,y)=>{y&&(u.push({op:"patch",clockId:h.id,patch:y}),Object.assign(h,y))},l=h=>{for(const y of i)y.metric===h&&c(y,lg(y,a))},d=h=>{for(const y of i)h.includes(y.metric)&&c(y,Kr(y))},f=h=>{for(const y of i)c(y,dg(y,h,a,s))},m=h=>{for(const y of i)c(y,fg(y,h,a,s))},b=h=>i.reduce((y,p)=>p.metric===h?Math.max(y,p.attempt):y,0)+1,g=h=>i.some(y=>y.metric===h&&ke(y)),E=(h,y)=>{const p=o.targets.find(T=>T.metric===h);if(!p)return;const S=p.minutes*cg;u.push({op:"start",metric:h,attempt:b(h),startedAt:y,targetMs:S,dueAt:Et(y,S,s)})};switch(e){case"apply":{for(const h of i)h.profileId!==o.id&&c(h,Kr(h));for(const h of o.targets){if(h.metric==="next_response")continue;i.some(p=>p.metric===h.metric&&p.profileId===o.id)||E(h.metric,a)}break}case"answered":l("speed_of_answer");break;case"outbound":{l("first_response"),l("next_response"),o.pauseOn.includes("waiting_for_customer")&&f(it);break}case"inbound":{m(it),!g("first_response")&&!g("next_response")&&E("next_response",a);break}case"resolved":l("resolution");break;case"closed":l("close"),l("resolution"),d(qi);break;case"reopened":g("resolution")||E("resolution",a),g("close")||E("close",a);break;case"snoozed":o.pauseOn.includes("snoozed")&&f(st);break;case"unsnoozed":m(st);break;case"hold":f(at);break;case"unhold":m(at);break;case"discarded":d(ug);break}return u}function Yi(e){return e.state==="running"||e.state==="paused"}function mg(e){return(e.pauseBits&at)!==0}function ct(e,t){const n=St(e);return e.state==="paused"?e.remainingMs:t>=e.dueAt?-ot(e.dueAt,t,n):ot(t,e.dueAt,n)}function gg(e,t){return e.state==="paused"?Et(t,e.remainingMs,St(e)):e.dueAt}function hg(e,t){const n=e.filter(Yi);if(!n.length)return;const r=n.filter(s=>s.state==="running");return(r.length?r:n).reduce((s,a)=>ct(a,t)<ct(s,t)?a:s)}function yg(e,t){if(e.state==="missed")return"breached";if(e.state==="hit")return"met";if(e.state==="paused")return"paused";if(e.state==="void")return"met";const n=ct(e,t);return n<=0?"breached":n<=e.targetMs/5?"urgent":"running"}function bg(e){const t=Math.floor(Math.abs(e)/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return n?r?`${n}d ${r}u`:`${n}d`:r?o?`${r}u ${o}m`:`${r}u`:o?`${o}m`:`${t%60}s`}const zi="strategy_item";function Xn(e){return`${zi}:${e}`}function _g(e,t=25){const n=new Set([Xn(e.id)]);for(const r of e.ancestorKeys??[])n.add(r);return Array.from(n).slice(0,t)}function Eg(e){return e?[...e.ancestorKeys??[],Xn(e.id)]:[]}const Oe=[{key:"area",label:"level_area",order:10,measurable:!1,icon:"compass"},{key:"objective",label:"level_objective",order:20,measurable:!0,icon:"target"},{key:"key_result",label:"level_key_result",order:30,measurable:!0,icon:"gauge"}],Xi=999,Qi=7;function Zi(e,t=Oe){return t.find(n=>n.key===e)}function ut(e,t=Oe){return Zi(e,t)?.order??Xi}function Sg(e,t,n=Oe){return ut(t,n)<=ut(e,n)}function Ig(e,t=Oe){const n=ut(e,t);return t.filter(o=>o.order>n).sort((o,s)=>o.order-s.order)[0]?.key??e}function Ag(e){const t=e.trim().toLowerCase();return t?t.includes("key result")||t.includes("keyresult")||t==="kr"?"key_result":t.includes("objective")||t.includes("goal")||t.includes("doel")?"objective":t.includes("focus")||t.includes("area")||t.includes("theme")?"area":null:null}const gn={pending:"open",on_track:"open",at_risk:"open",off_track:"open",paused:"paused",achieved:"closed",missed:"closed"};function Cg(e){return gn[e]??"open"}function vg(e){return Object.keys(gn).filter(t=>e.includes(gn[t]))}const Tg=864e5,It=e=>e<=0?0:e>1?1:e;function kg(e,t){const{direction:n}=e,r=e.startValue??0,o=e.targetValue??0;if(!Number.isFinite(t))return 0;const s=n==="down"?t<=o:t>=o,a=o-r;return(n==="down"?a<0:a>0)?It((t-r)/a):s?1:0}function Og(e,t){const{startDate:n,targetDate:r}=e;if(!(typeof n!="number"||typeof r!="number")&&!(r<=n))return It((t-n)/(r-n))}const Ji=.1,ea=.25;function Mg(e,t){if(typeof e!="number"||typeof t!="number")return;if(e>=1)return"achieved";const n=t-e;return n>=ea?"off_track":n>=Ji?"at_risk":"on_track"}function Rg(e,t){if(t)return It(e/t)}function Ng(e){const t=e.map(n=>n.progress?.ratio).filter(n=>typeof n=="number"&&Number.isFinite(n));if(t.length)return It(t.reduce((n,r)=>n+r,0)/t.length)}function Dg(e,t){const n=e.lastCheckInAt??e.createdAt;if(typeof n!="number")return 0;const r=(e.checkInEveryDays??Qi)*Tg,o=t-n-r;return o>0?o:0}function wg(e){return e.targetDate??Number.MAX_SAFE_INTEGER}function xg(e){const t=new Map,n=[...e].sort((r,o)=>r.startedAt-o.startedAt);for(const r of n){const o=`${r.workType??""}|${r.scopeKey??""}`,s=t.get(o)??{workType:r.workType,scopeKey:r.scopeKey,scopeLabel:r.scopeLabel,seconds:0,hours:0,entryIds:[],from:r.startedAt,to:r.startedAt};s.seconds+=r.durationSeconds??0,s.hours=Math.round(s.seconds/3600*100)/100,s.entryIds.push(r.id),s.to=r.startedAt,t.set(o,s)}return[...t.values()]}function Pg(e,t){const n=e.accumulatedSeconds||0;return e.runningSince?n+Math.max(0,Math.floor((t-e.runningSince)/1e3)):n}function Lg(e,t){const n=Math.max(1,Math.ceil(Math.max(0,e)/60));if(!t||t==="exact")return n*60;const r=Number(t);return!Number.isFinite(r)||r<=0?n*60:Math.ceil(n/r)*r*60}function $g(e){const t=Math.max(0,Math.round(e/60));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function Kg(e){const t=Math.max(0,Math.floor(e)),n=s=>String(s).padStart(2,"0"),r=Math.floor(t/60)%60,o=Math.floor(t/3600);return o>0?`${o}:${n(r)}:${n(t%60)}`:`${n(r)}:${n(t%60)}`}function ta(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function Ug(e,t){const n=ta(e)||"werksoort",r=new Set(t);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function Bg(e,t){const n=e.ownerScope;return!n||n.kind==="org"?!0:t.includes(n.teamId)}function Fg(e){return e.filter(t=>!t.archived).sort(na)}function na(e,t){const n=(e.order??0)-(t.order??0);return n!==0?n:(e.label||"").localeCompare(t.label||"")}const ra=20,oa=20,Ke=300;function te(e){return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function sa(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=Ke)return t;const n=t.slice(0,Ke),r=Math.max(n.lastIndexOf(". "),n.lastIndexOf("! "),n.lastIndexOf("? "));return r>Ke*.6?n.slice(0,r+1):`${n.trimEnd()}…`}function jg(e,t){const n=sa(t.text),r=te(n);if(!r||(e.examples??[]).some(a=>te(a)===r))return null;const o=e.exampleCandidates??[],s=o.findIndex(a=>te(a.text)===r);if(s>=0){if(o[s].corrected||!t.corrected)return null;const a=[...o];return a[s]={...a[s],corrected:!0,addedAt:t.addedAt},Ur(a)}return Ur([{...t,text:n},...o]).slice(0,oa)}function Ur(e){return[...e].sort((t,n)=>Number(n.corrected)-Number(t.corrected)||n.addedAt-t.addedAt)}function Gg(e,t){const n=te(t),r=(e.examples??[]).filter(s=>s.trim());return{examples:r.some(s=>te(s)===n)?r:[...r,t].slice(-ra),exampleCandidates:ia(e,t)}}function ia(e,t){const n=te(t);return(e.exampleCandidates??[]).filter(r=>te(r.text)!==n)}function aa(e,t){const n=e.ownerScope;return n?n.kind==="org"?!0:n.kind==="team"?!!t&&n.teamId===t:!1:!1}function Wg(e,t){return e.filter(n=>aa(n,t))}const ca=["apps","settings","wake"],At="businessEntityId";function Vg(e,t){const n=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"workspace",r=new Set([...ua.map(s=>s.key),...ca,...t]);let o=n;for(let s=2;r.has(o);s++)o=`${n}-${s}`;return o}function Hg({app:e,requested:t,current:n,isRecord:r,index:o}){const s=o.byApp[e]??[],a=i=>!!i&&(s.includes(i)||r&&i!=="apps"&&o.visible.includes(i));return a(t)?t:a(n)?n:s[0]??"apps"}const ua=[{key:"home",owner:"assist",icon:"HomeMark",order:10,sections:["home"]},{key:"inbox",owner:"communication",icon:"InboxMark",order:20,sections:["inbox"]},{key:"work",owner:"work",icon:"WorkMark",order:30,sections:["work","planning","time"]},{key:"files",owner:"storage",icon:"FilesMark",order:40,sections:["files"]},{key:"customers",owner:"crm",icon:"CrmMark",order:50,sections:["customers"]},{key:"sales",owner:"sales",icon:"SalesMark",order:60,sections:["sales","delivery","receivables","assortment"]},{key:"purchase",owner:"purchase",icon:"ShoppingCart",order:70,sections:["purchase","contracts","assortment"]},{key:"finance",owner:"finance",icon:"Wallet",order:80,sections:["finance","receivables","reports","ledger"]},{key:"knowledge",owner:"kb",icon:"KnowledgeMark",order:90,sections:["knowledge"]},{key:"reports",owner:"analytics",icon:"AnalyticsMark",order:100,sections:["reports"]}];function qg(e,t){const n=e.search(/[?#]/),r=n<0?e:e.slice(0,n),o=n<0?"":e.slice(n),[s,a,...i]=r.split("/").filter(Boolean);return!s||s!=="apps"&&s!=="settings"&&!t(s)?null:{workspace:s,...a?{app:a}:{},path:`/${i.join("/")}${o}`}}function Yg({workspace:e,app:t,path:n}){if(!t)return`/${e}`;const o=n==="/"||n===""||/^\/?[?#]/.test(n)?n.replace(/^\//,""):n.startsWith("/")?n:`/${n}`;return`/${e}/${t}${o}`}const Ct=[{key:"quote",label:"kind_quote",numbered:!1,signFlip:!1,name:"Offerte",statuses:["draft","sent","accepted","rejected","expired","cancelled","superseded"],path:"quotes",issuedStatus:"sent",transitions:{draft:["cancelled"],sent:["accepted","rejected","expired","cancelled"],accepted:["sent"],rejected:["sent"],expired:["sent"]},convertsTo:["order","invoice"]},{key:"order",label:"kind_order",numbered:!1,signFlip:!1,name:"Order",paperName:"Orderbevestiging",statuses:["draft","confirmed","delivered","cancelled","superseded"],path:"orders",issuedStatus:"confirmed",transitions:{draft:["cancelled"],confirmed:["delivered","cancelled"],delivered:["confirmed"]},convertsTo:["invoice"]},{key:"invoice",label:"kind_invoice",numbered:!0,signFlip:!1,name:"Factuur",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:["credit_note"]},{key:"credit_note",label:"kind_credit_note",numbered:!0,signFlip:!0,name:"Creditnota",statuses:["draft","open","cancelled","superseded"],path:"invoices",issuedStatus:"open",transitions:{draft:["cancelled"],open:["cancelled"]},convertsTo:[],credits:"invoice"}],la=[...Ct,...wi],Qn=["quote","order","invoice","credit_note"];function zg(){const e=new Map;for(const t of Ct)Qn.includes(t.key)&&(e.has(t.path)||e.set(t.path,t));return[...e.values()]}function F(e){return la.find(t=>t.key===e)??{key:e,label:e,name:e,numbered:!1,signFlip:!1,statuses:["draft"],path:"quotes",issuedStatus:"draft",transitions:{},convertsTo:[]}}const Xg={draft:"Concept",sent:"Verstuurd",accepted:"Geaccepteerd",rejected:"Afgewezen",expired:"Verlopen",confirmed:"Bevestigd",delivered:"Geleverd",received:"Ontvangen",open:"Openstaand",cancelled:"Geannuleerd",superseded:"Vervangen"};function da(e,t){return F(e).transitions[t]??[]}function Qg(e,t,n){return da(e,t).includes(n)}const fa=["invoice","credit_note"];function Zg(e){return!!e.issuedAt&&fa.includes(e.kindKey)}function Jg(e,t,n="sales"){const r=i=>e.totals?.byRate?.find(u=>u.taxRateKey===i),o=e.issuedPaper?.billingAddress,s=[o?.street,o?.houseNumber].filter(Boolean).join(" "),a=e.deliveredAt??e.periodTo;return{sourceApp:n,documentId:e.id,...e.businessEntityId?{path:`/apps/${n}/${F(e.kindKey).path}/${e.id}?${At}=${encodeURIComponent(e.businessEntityId)}`}:{},direction:"sale",kind:e.kindKey==="credit_note"?"credit_note":"invoice",businessEntityId:e.businessEntityId??"",...e.number?{number:e.number}:{},counterparty:{companyId:e.companyId,name:t?.name??"",...t?.vatNumber?{vatNumber:t.vatNumber}:{},...t?.kvkNumber?{kvkNumber:t.kvkNumber}:{},...o?{address:{...s?{street:s}:{},...o.postalCode?{postalCode:o.postalCode}:{},...o.city?{city:o.city}:{},...o.country?{country:o.country}:{}}}:{},...o?.country?{country:o.country}:{}},issueDate:J(e.issuedAt??Date.now()),...a?{taxPointDate:J(a)}:{},...e.dueAt?{dueDate:J(e.dueAt)}:{},currency:e.currency,...e.fxRate?{fxRate:e.fxRate}:{},lines:e.lines.filter(i=>i.kind==="product"&&!i.optional).map(i=>{const u=e.taxOverrideKey??i.taxRateKey,c=r(u);return{description:i.name,netCents:i.netCents,taxCents:i.taxCents,taxRateKey:u,taxKind:c?.kind??"standard",...c?.percent!==void 0?{taxPercent:c.percent}:{},...i.ledgerCategoryKey?{ledgerCategoryKey:i.ledgerCategoryKey}:{},...i.productId?{productId:i.productId}:{},dimensions:{customerCompanyId:e.companyId,...i.dealItemId?{dealItemId:i.dealItemId}:{}},...i.costPriceCents!=null?{costCents:Math.round(i.costPriceCents*i.quantity)}:{},...i.servicePeriod?{period:{from:J(i.servicePeriod.from),to:J(i.servicePeriod.to-864e5)}}:{}}}),totals:{netCents:e.totals?.netCents??0,taxCents:e.totals?.taxCents??0,grossCents:e.totals?.grossCents??0},...e.kindKey==="credit_note"&&e.sourceTransactionId?{creditsDocumentId:e.sourceTransactionId}:{},...e.externalIds?.length?{externalIds:e.externalIds}:{}}}function Zn(e){return e.issuedAt!=null}const eh=["status","fileRef","number","externalIds","postedAt","dunning","settlement","overdueSince","issuedPaper","updatedAt"];function th(e){return Zn(e)&&F(e.kindKey).numbered&&!e.number}const nh=["companyId","contactId","dealItemId","title","reference","currency","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","paymentTerm","billingAddressId","lines"],rh=["contactId","dealItemId","title","reference","taxOverrideKey","introText","termsText","expiresAt","deliveredAt","periodFrom","periodTo","billingAddressId"];function oh(e,t){if(!Qn.includes(t)||!F(e.kindKey).convertsTo.includes(t))return!1;const n=F(t);return!n.credits||n.credits===e.kindKey&&Zn(e)}function pa(e,t){const n=F(t).signFlip!==F(e.kindKey).signFlip,r=e.lines.map(({timeEntryIds:o,agreementLineId:s,...a})=>({...a,quantity:n?-a.quantity:a.quantity,netCents:0,taxCents:0}));return{kindKey:t,sourceTransactionId:e.id,agreementId:e.agreementId,version:1,businessEntityId:e.businessEntityId,companyId:e.companyId,contactId:e.contactId,dealItemId:e.dealItemId,ownerScope:e.ownerScope,ownerUserId:e.ownerUserId,title:e.title,reference:e.reference,currency:e.currency,status:"draft",lines:r,totals:{netCents:0,taxCents:0,grossCents:0,byRate:[]},taxOverrideKey:e.taxOverrideKey,introText:e.introText,termsText:e.termsText,paymentTerm:e.paymentTerm,deliveredAt:e.deliveredAt,periodFrom:e.periodFrom,periodTo:e.periodTo,source:e.source}}function sh(e){return{...pa(e,e.kindKey),sourceTransactionId:e.sourceTransactionId,previousVersionId:e.id,version:e.version+1,lines:e.lines.map(({timeEntryIds:n,...r})=>({...r})),totals:e.totals}}function ih(e,t={}){const n=F(e.kindKey),r=e.totals??{netCents:0,taxCents:0,grossCents:0};return{customer:{name:t.companyName??"",contact:t.contactName??"",address:uh(t.companyAddress),street:t.companyAddress?.street??"",house_number:t.companyAddress?.houseNumber??"",postal_code:t.companyAddress?.postalCode??"",city:t.companyAddress?.city??"",country:t.companyAddress?.country??""},organization:{name:t.organizationName??""},[n.key]:{number:e.number??"",credited_number:t.creditedNumber??"",title:e.title??"",reference:e.reference??"",version:String(e.version??1),date:ae(e.issuedAt),valid_until:ae(e.expiresAt),due_date:ae(e.dueAt),delivery_date:ae(e.deliveredAt),period_from:ae(e.periodFrom),period_to:ae(e.periodTo),payment_term:e.paymentTerm?.label??"",note:e.introText??"",terms:e.termsText??""},totals:{net:H(r.netCents),tax:H(r.taxCents),gross:H(r.grossCents)}}}function ah(e,t=[],n=ma){const r=e.totals??{netCents:0,grossCents:0,byRate:[]},o=i=>t.find(u=>u.key===i)?.percent??0,s={block_id:"lines",type:"table",columns:[{label:n.description},{label:n.quantity,align:"right"},{label:n.unitPrice,align:"right"},{label:n.net,align:"right"}],rows:(e.lines??[]).map(i=>i.kind==="text"?[i.name,"","",""]:[ch(i.name,i.description,i.optional,n.optional),lh(i,n),Mn(i)?"":i.pricePer?[H(i.unitPriceCents),n.per[i.pricePer]].join(" "):H(i.unitPriceCents),H(i.netCents)])},a={block_id:"totals",type:"totals",rows:[{label:n.net,amount:H(r.netCents)},{label:n.gross,amount:H(r.grossCents),emphasis:!0}],taxRows:r.byRate.map(i=>({label:`${n.tax} ${i.percent??o(i.taxRateKey)}%`,amount:H(i.taxCents)}))};return{lines:[s],totals:[a]}}const ma={description:"Omschrijving",optional:"optioneel",quantity:"Aantal",unitPrice:"Stuksprijs",per:{month:"per maand",quarter:"per kwartaal",year:"per jaar"},units:{second:"s",minute:"min",hour:"uur",message:"berichten",gigabyte:"GB"},net:"Netto",tax:"Btw",gross:"Totaal"};function ch(e,t,n,r){const o=t?`${e} — ${t}`:e;return n?`${o} (${r})`:o}function uh(e){return e?.street?[e.street,e.houseNumber].filter(Boolean).join(" "):""}function lh(e,t){const n=Mn(e);return n?[Br(n.amount),t.units[n.unit]??n.unit].join(" "):Br(e.quantity)}function Br(e){return Number.isInteger(e)?String(e):String(e).replace(".",",")}function ae(e){if(!e)return"";const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${n(t.getDate())}-${n(t.getMonth()+1)}-${t.getFullYear()}`}function ga(e){const t=F(e),n=t.key,r=t.numbered;return[{block_id:"head",type:"letterhead",fields:[...r?[{key:"number",label:fh[n]?.number??"Nummer",value:`{${n}.number}`}]:[],{key:"date",label:"Datum",value:`{${n}.date}`},...r?[{key:"due_date",label:"Vervaldatum",value:`{${n}.due_date}`}]:[{key:"valid_until",label:"Geldig tot",value:`{${n}.valid_until}`}],...t.credits?[{key:"credited_number",label:`Op ${F(t.credits).name.toLowerCase()}`,value:`{${n}.credited_number}`}]:[],{key:"reference",label:"Referentie",value:`{${n}.reference}`}],recipient:["{customer.name}","{customer.contact}","{customer.address}","{customer.postal_code} {customer.city}"]},{block_id:"title",type:"heading",level:1,text:`{${n}.title}`},{block_id:"intro",type:"paragraph",text:Fr[n]??Fr.quote},{block_id:"period",type:"paragraph",text:`Periode: {${n}.period_from} t/m {${n}.period_to}`},{block_id:"note",type:"paragraph",text:`{${n}.note}`},{block_id:"lines",type:"table",columns:[{label:""}],rows:[]},{block_id:"totals",type:"totals",rows:[]},...r?[{block_id:"payment",type:"paragraph",text:`Betaling: {${n}.payment_term}. Wij verzoeken u het bedrag vóór {${n}.due_date} over te maken onder vermelding van {${n}.number}.`}]:[],{block_id:"terms",type:"paragraph",text:jr[n]??jr.quote}]}const dh=e=>({note:{key:`${F(e).key}.note`,exists:!0},period:{key:`${F(e).key}.period_from`,exists:!0}}),fh={invoice:{number:"Factuurnummer"},credit_note:{number:"Creditnotanummer"}},Fr={quote:`Beste {customer.contact},
|
|
13
13
|
|
|
14
14
|
Hierbij onze offerte. Hieronder vindt u de specificatie.`,order:`Beste {customer.contact},
|
|
15
15
|
|
|
@@ -17,34 +17,36 @@ Hierbij de bevestiging van uw opdracht.`,invoice:`Beste {customer.contact},
|
|
|
17
17
|
|
|
18
18
|
Hierbij onze factuur. Hieronder vindt u de specificatie.`,credit_note:`Beste {customer.contact},
|
|
19
19
|
|
|
20
|
-
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},Pr={quote:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",order:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",invoice:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",credit_note:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld."},Fg=ca("quote"),jg={steps:[{level:1,afterDays:7,templateKey:"dunning_reminder",channel:"email"},{level:2,afterDays:21,templateKey:"dunning_notice",channel:"email"},{level:3,afterDays:14,templateKey:"dunning_final",channel:"email"}],minOpenCents:2500},Gg=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ua(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((i,u)=>i.level-u.level),o=r.find(i=>i.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,a=Gg(J(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function Wg(e,t,n){const r=[],o=[];for(const s of e){const a=ua(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const la=It.map(e=>e.key),da="product",fa="agreement";function pa(e,t){return`${e}:${t}`}function Vg(e){return`${da}:${e}`}function Hn(e,t){return`/apps/sales${e}?${Gn}=${encodeURIComponent(t)}`}function Hg(e,t){const n=e.businessEntityId||t;if(n)return Hn(`/${F(e.kindKey).path}/${e.id}`,n)}function qg(e,t){const n=e.businessEntityId||t;return n?Hn(`/product/${e.id}`,n):void 0}function Yg(e){return`${fa}:${e}`}function zg(e,t){const n=e.businessEntityId||t;return n?Hn(`/agreement/${e.id}`,n):void 0}function Xg(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return la.includes(n)?e.slice(t+1):void 0}function Qg(e){const t=new Set([pa(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Zg=4;function Jg(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function eh(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const th=["cash","credit","direct_debit","card","other"];function nh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function rh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const oh=[{code:"14D",label:"Binnen 14 dagen",method:"credit",dueDays:14,isDefault:!0,order:0},{code:"30D",label:"Binnen 30 dagen",method:"credit",dueDays:30,order:1},{code:"CONTANT",label:"Contant",method:"cash",dueDays:0,order:2}];function qn(e){return e.settlement?.state??"unpaid"}function ma(e){const t=qn(e);return t==="paid"||t==="overpaid"}function Yn(e){return!!e.issuedAt&&e.status==="open"&&!ma(e)}function sh(e,t){return!Yn(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function ih(e){return e.totals?.grossCents??0}function ah(e,t){const n={};return t.postedAt&&!e.postedAt&&(n.postedAt=t.postedAt),t.externalId&&!(e.externalIds??[]).includes(t.externalId)&&(n.externalIds=[...e.externalIds??[],t.externalId]),t.number&&!e.number&&(n.number=t.number),t.payment&&t.asOf>(e.settlement?.asOf??0)&&(n.settlement={...t.payment,source:"books",asOf:t.asOf}),Object.keys(n).length?n:null}function ch(e,t,n){const r=ih(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const ga=["current","d1_30","d31_60","d61_90","d90_plus"],uh=864e5;function lh(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/uh)}function dh(e,t){if(!Yn(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,a)=>!s||a.level>s.level?a:s,void 0),o=e.dueAt!=null?lh(J(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:qn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function ha(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function fh(e){const t=Object.fromEntries(ga.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[ha(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const ph="receivables.company";function mh(e){const t=e.filter(r=>r.overdueDays>0),n=r=>r.reduce((o,s)=>o+s.openCents,0);return{count:e.length,openCents:n(e),overdueCount:t.length,overdueCents:n(t),oldestOverdueDays:Math.max(0,...t.map(r=>r.overdueDays)),dunningLevel:Math.max(0,...e.map(r=>r.dunningLevel))}}function gh(e){return e.type==="agent"}const ya=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function hh(e){return ya.includes(e)}const yh="WORK_COMMENT_ADDED",bh="WORK_ITEM_ASSIGNED",_h="WORK_ITEM_STATUS_CHANGED";function Eh(e,t){const n=r=>{const o=new Date(r);return o.setHours(0,0,0,0),o.getTime()};return Math.round((n(e)-n(t))/ps)}function Ih(e,t){if(e.closedAt!=null)return{score:ee,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ee,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Ie[s]>0&&(r+=Ie[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const a=Eh(e.dueDate,t.now);a<0?(r+=35,o.push("overdue")):a===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const St=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],Sh=St.map(e=>e.key);function Ah(e){return e?.types?.length?e.types:St}function Th(e,t){return t.find(n=>n.key===e)}function Ch(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function vh(...e){return e.map(t=>St.find(n=>n.key===t)).filter(t=>!!t)}const ba="work_item",_a="work_project",Ea="work_activity",kh="work_cycle";function Ia(e){return`${ba}:${e}`}function zn(e){return`${_a}:${e}`}function Oh(e){return`${Ea}:${e}`}function Mh(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function Rh(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function Nh(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function Dh(e,t=25){const n=new Set([Ia(e.id)]);e.projectId&&n.add(zn(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function wh(e){return[zn(e.id)]}const At=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],Xn=At.map(e=>e.key);function Sa(e){return e?.statuses?.length?e.statuses:At}function Aa(e,t){return t.find(n=>n.key===e)?.category??"todo"}function xh(e,t){return t.find(n=>n.key===e)}function Ph(e){const t=Sa(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:Ta(t)[0]?.key??At[0].key}function Ta(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function Lh(e,t){return Aa(e,t)==="done"}function Ca(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function $h(e,t){const n=Ca(e)||"status",r=new Set([...t,...Xn]);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function Kh(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,o)=>{if(!r.key){t.push({index:o,reason:"missing_key"});return}Xn.includes(r.key)&&t.push({index:o,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:o,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}function Uh(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function Bh(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}const Fh=["day","week","month"];function jh(e){const t=e;if(!t||!Fh.includes(t.every))return;const n=Math.floor(Number(t.interval??1));if(!(!Number.isFinite(n)||n<1||n>365))return{every:t.every,interval:n}}function va(e,t){const n=new Date(e);if(t.every==="day")n.setDate(n.getDate()+t.interval);else if(t.every==="week")n.setDate(n.getDate()+7*t.interval);else{const r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t.interval),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate()))}return n.getTime()}function Gh(e,t,n){const r=va(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function Wh(e){return e.startDate??Number.MAX_SAFE_INTEGER}function Vh(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const Hh=["statusKeys","typeKeys","labels","priority","assignees"],qh=["blockedOnly","watchingOnly","reportedByMe"],Yh=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],zh=["list","board","calendar","workload"],Xh=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Qh=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function ka(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Xh.has(t)?"image":t==="application/pdf"?"pdf":Qh.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,Oa={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},Zh=25*ye,Jh=5;function ey(e,t){const n=ka(e);return n==="unsupported"?"unsupported":t>Oa[n]?"too-large":null}const ty="ai-tool";function ny(e){return e.access==="read"?"idempotent":e.reversible??"none"}function Qn(e){return e.access!=="read"&&e.effect!=="internal"}function Ma(e){return`${e.kind}:${e.id||e.url||e.title}`}function ry(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const a=Ma(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const oy="assist-source",sy=["blocking","due","open"];function iy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Lr={blocking:0,due:1,open:2};function ay(e,t){return Lr[e.band??"open"]-Lr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const cy="bookable-source",uy="bookkeeping",ly={get:"/bookable/get",issued:"/bookable/issued",ledgerCategories:"/bookable/ledger-categories",settled:"/bookable/settled"},dy={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function fy(e){return`oc:${e}`}function py(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function my(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function gy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ra(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(a=>!n.has(a.intent)).map(a=>yy(a,r[a.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(a=>a.intent));for(const a of e.extraIntents)s.has(a.intent)||(o.push(a),s.add(a.intent));return o}function Na(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const o=t?.[r.intent];n[r.intent]=o??r.defaultEnabled??!0}return n}function hy(e,t){const n=Na(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function yy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function by(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ra(r,o))n.push({channel:r,description:o,capability:s})}return n}function _y(e,t){return t.filter(n=>n.capability.intent===e)}function Da(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function Ey(e,t){return Da(e.scheme,t)}function Iy(e,t,n){const r=[];for(const o of e)for(const s of n)s.capability.intent===t&&s.capability.targetSchemes.includes(o.scheme)&&r.push({channelIntent:s,endpoint:o});return r}function Sy(e,t,n={}){let r=t,o=e;for(const[s,a]of Object.entries(n))r=r.split("{"+s+"}").join(String(a)),o+=" "+s+"="+encodeURIComponent(String(a));return r+" ["+o+"]"}const Ay=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Ty(e){const t=Ay.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}var wa=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(wa||{});const Cy={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function vy(e){return e?Cy[e]??"note":"note"}const ky="message_window",Oy="message_templates",My={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},Ry=(e,t)=>({intent:e,...t}),Ny="remote_search",Dy="message_reactions",wy={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},xy="connector",Py="context.collect",N=e=>({type:"string",description:e}),M=e=>({type:"number",description:e}),Ue=e=>({type:"boolean",description:e}),W=N("Sheet name. Omit for the sheet the user is looking at."),$r=N("Slide id, as `inspect` reports it.");function O(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const _e={undoable:!1,visible:!0},w={undoable:!0,visible:!0},Kr={undoable:!1,visible:!0},ut={undoable:!1,visible:!1},Ly=[O("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:M("1-based page number.")},["page"],_e),O("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:N("Text to find."),next:Ue("Jump to the next match instead of the first.")},["query"],_e),O("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],_e),O("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:N("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],w),O("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],Kr),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Kr),O("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The note's text."),left:M("Distance from the left edge, in PDF points (72 per inch)."),top:M("Distance from the top edge, in PDF points."),width:M("Box width in points. Omit for a sensible default."),height:M("Box height in points. Omit for a sensible default."),fontSize:M("Font size in points. Omit for 12.")},["page","text","left","top"],ut),O("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The exact phrase to highlight, as it appears in the page's text."),occurrence:M("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],ut)],$y=[O("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:W,range:N("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],w),O("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:W,range:N("A1 notation."),formula:N("Including the leading `=`.")},["range","formula"],w),O("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:W,range:N("A1 notation."),bold:Ue("Bold on or off."),italic:Ue("Italic on or off."),fontSize:M("Point size."),fontColor:N("CSS colour, e.g. `#b91c1c`."),background:N("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:N("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],w),O("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:W,at:M("1-based row number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:W,at:M("1-based first row to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:W,at:M("1-based column number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:W,at:M("1-based first column to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:W,range:N("A1 notation covering the rows to sort, header excluded."),column:M("1-based column *within the range*, not within the sheet."),ascending:Ue("Ascending. Omit for ascending.")},["range","column"],w),O("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:N("Name for the new sheet.")},["name"],w),O("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:N("Current name."),name:N("New name.")},["sheet","name"],w),O("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:N("Name of the sheet to delete.")},["sheet"],w),O("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:W,range:N("A1 notation to select. Omit to only switch sheets.")},[],_e)],Ky=[O("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:M("The offset the paragraph starts at, exactly as `inspect` prints it."),text:N("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],w),O("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:M("Character offset where the replaced text starts, as `inspect` reports offsets."),end:M("Character offset just past the last character to replace."),text:N("The replacement text. A newline starts a new paragraph.")},["start","end","text"],w),O("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:M("Character offset, as `inspect` reports offsets."),text:N("The text to insert.")},["index","text"],w),O("word.appendText",["word"],"Add text at the end of the document.",{text:N("The text to append.")},["text"],w),O("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:N("Paragraph text. Newlines start further paragraphs."),index:M("Character offset to insert at. Omit for the end of the document.")},[],w),O("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:M("Start character offset."),end:M("End character offset. Omit for a caret.")},["start"],_e)],Uy=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:$r,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],ut),O("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:$r,element:N("Element id."),left:M("Distance from the left edge, in pixels."),top:M("Distance from the top edge, in pixels."),width:M("Width in pixels."),height:M("Height in pixels.")},["slide","element"],ut)],Zn=[...Ly,...$y,...Ky,...Uy];function By(e){return Zn.filter(t=>t.kinds.includes(e))}function Fy(e){return Zn.find(t=>t.op===e)}const Ur=/(?: {2,}|\\)$/,jy=/^\*\*([^*]+)\*\*\s+(.*)$/;function Br(e){const t=jy.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Gy(e){const t=(e??"").replace(/\r\n/g,`
|
|
20
|
+
Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`},jr={quote:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}.",order:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",invoice:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",credit_note:"Genoemde bedragen zijn exclusief btw tenzij anders vermeld."},ph=ga("quote"),mh={steps:[{level:1,afterDays:7,templateKey:"dunning_reminder",channel:"email"},{level:2,afterDays:21,templateKey:"dunning_notice",channel:"email"},{level:3,afterDays:14,templateKey:"dunning_final",channel:"email"}],minOpenCents:2500},gh=(e,t)=>new Date(Date.parse(`${e}T00:00:00Z`)+t*864e5).toISOString().slice(0,10);function ha(e,t,n){if(e.dueAt==null||e.openCents<(t.minOpenCents??0))return null;const r=[...t.steps].sort((i,u)=>i.level-u.level),o=r.find(i=>i.level>e.dunningLevel);if(!o)return r.length?"done":null;const s=e.dunningLevel&&e.lastDunningAt?e.lastDunningAt:e.dueAt,a=gh(J(s),o.afterDays);return a<=n?{row:e,step:o,dueOn:a}:null}function hh(e,t,n){const r=[],o=[];for(const s of e){const a=ha(s,t,n);a==="done"?o.push(s):a&&r.push(a)}return{due:r,waiting:o}}const ya=Ct.map(e=>e.key),ba="product",_a="agreement";function Ea(e,t){return`${e}:${t}`}function yh(e){return`${ba}:${e}`}function Sa(e,t){return`/apps/sales${e}?${At}=${encodeURIComponent(t)}`}function bh(e,t){const n=e.businessEntityId||t;if(n)return Sa(`/${F(e.kindKey).path}/${e.id}`,n)}function _h(e,t){const n=e.businessEntityId||t;return n?`/apps/catalog/products/${e.id}?${At}=${encodeURIComponent(n)}`:void 0}function Eh(e){return`${_a}:${e}`}function Sh(e,t){const n=e.businessEntityId||t;return n?Sa(`/agreement/${e.id}`,n):void 0}function Ih(e){const t=e.indexOf(":");if(t<0)return;const n=e.slice(0,t);return ya.includes(n)?e.slice(t+1):void 0}function Ah(e){const t=new Set([Ea(e.kindKey,e.id)]);return e.companyId&&t.add(`company:${e.companyId}`),e.contactId&&t.add(`contact:${e.contactId}`),e.dealItemId&&t.add(`work_item:${e.dealItemId}`),Array.from(t)}const Ch=4;function vh(e,t){const n=String(t).padStart(Math.max(1,e.padding),"0");return`${e.prefix}${e.period?`${e.period}-`:""}${n}`}function Th(e,t=Date.now()){return e==="year"?String(new Date(t).getFullYear()):""}const kh=["cash","credit","direct_debit","card","other"],Ia=(e,t)=>!e.direction||e.direction===t;function Oh(e,t,n={}){const r=e.filter(s=>!s.archived&&Ia(s,t)),o=s=>s?r.find(a=>a.code===s):void 0;return o(n.explicit)??o(n.role)??r.find(s=>s.isDefault&&s.direction===t)??r.find(s=>s.isDefault)??r[0]??null}function Mh(e,t){return e+Math.max(0,Math.round(t))*24*60*60*1e3}function Rh(e){return{code:e.code,label:e.label,method:e.method,dueDays:e.dueDays}}const Nh=[{code:"14D",label:"Binnen 14 dagen",method:"credit",dueDays:14,isDefault:!0,order:0},{code:"30D",label:"Binnen 30 dagen",method:"credit",dueDays:30,order:1},{code:"CONTANT",label:"Contant",method:"cash",dueDays:0,order:2}];function Jn(e){return e.settlement?.state??"unpaid"}function Aa(e){const t=Jn(e);return t==="paid"||t==="overpaid"}function er(e){return!!e.issuedAt&&e.status==="open"&&!Aa(e)}function Dh(e,t){return!er(e)||e.dueAt==null?!1:new Date(e.dueAt).toISOString().slice(0,10)<t}function wh(e){return e.totals?.grossCents??0}function xh(e,t){const n={};return t.postedAt&&!e.postedAt&&(n.postedAt=t.postedAt),t.externalId&&!(e.externalIds??[]).includes(t.externalId)&&(n.externalIds=[...e.externalIds??[],t.externalId]),t.number&&!e.number&&(n.number=t.number),t.payment&&t.asOf>(e.settlement?.asOf??0)&&(n.settlement={...t.payment,source:"books",asOf:t.asOf}),Object.keys(n).length?n:null}function Ph(e,t,n){const r=wh(e);return{state:t,paidCents:t==="paid"?r:0,openCents:t==="paid"?0:r,...t==="paid"?{lastPaymentAt:n}:{},source:"manual",asOf:n}}const Ca=["current","d1_30","d31_60","d61_90","d90_plus"],Lh=864e5;function $h(e,t){return Math.round((Date.parse(`${t}T00:00:00Z`)-Date.parse(`${e}T00:00:00Z`))/Lh)}function Kh(e,t){if(!er(e))return null;const n=e.totals?.grossCents??0,r=(e.dunning??[]).reduce((s,a)=>!s||a.level>s.level?a:s,void 0),o=e.dueAt!=null?$h(J(e.dueAt),t):0;return{id:e.id,kindKey:e.kindKey,...e.number?{number:e.number}:{},companyId:e.companyId,...e.businessEntityId?{businessEntityId:e.businessEntityId}:{},...e.issuedAt?{issuedAt:e.issuedAt}:{},...e.dueAt!=null?{dueAt:e.dueAt}:{},overdueDays:Math.max(0,o),grossCents:n,openCents:e.settlement?.openCents??n,paymentState:Jn(e),dunningLevel:r?.level??0,...r?{lastDunningAt:r.sentAt}:{}}}function va(e){return e<=0?"current":e<=30?"d1_30":e<=60?"d31_60":e<=90?"d61_90":"d90_plus"}function Uh(e){const t=Object.fromEntries(Ca.map(n=>[n,{openCents:0,count:0}]));for(const n of e){const r=t[va(n.overdueDays)];r.openCents+=n.openCents,r.count+=1}return t}const Bh="receivables.company";function Fh(e){const t=e.filter(r=>r.overdueDays>0),n=r=>r.reduce((o,s)=>o+s.openCents,0);return{count:e.length,openCents:n(e),overdueCount:t.length,overdueCents:n(t),oldestOverdueDays:Math.max(0,...t.map(r=>r.overdueDays)),dunningLevel:Math.max(0,...e.map(r=>r.dunningLevel))}}function jh(e){return e.type==="agent"}const Ta=["communication:interactions:created","communication:interactions:updated","communication:activities:created","communication:activities:updated"];function Gh(e){return Ta.includes(e)}const Wh="WORK_COMMENT_ADDED",Vh="WORK_ITEM_ASSIGNED",Hh="WORK_ITEM_STATUS_CHANGED";function qh(e,t){const n=r=>{const o=new Date(r);return o.setHours(0,0,0,0),o.getTime()};return Math.round((n(e)-n(t))/Es)}function Yh(e,t){if(e.closedAt!=null)return{score:ee,reasons:[]};const n=t.remindersById?.[e.id];if(n&&n.remindAt>t.now)return{score:ee,reasons:[]};let r=0;const o=[],s=e.priority??"normal";if(Se[s]>0&&(r+=Se[s],o.push(`priority:${s}`)),typeof e.dueDate=="number"){const a=qh(e.dueDate,t.now);a<0?(r+=35,o.push("overdue")):a===0&&(r+=20,o.push("due-today"))}return e.source?.initiator==="system"&&e.source.systemReason&&(r+=15,o.push(`auto:${e.source.systemReason}`)),{score:r,reasons:o}}const vt=[{key:"task",label:"type_task"},{key:"bug",label:"type_bug"},{key:"story",label:"type_story"},{key:"epic",label:"type_epic"},{key:"subtask",label:"type_subtask"},{key:"case",label:"type_case"},{key:"deal",label:"type_deal"},{key:"milestone",label:"type_milestone"}],zh=vt.map(e=>e.key);function Xh(e){return e?.types?.length?e.types:vt}function Qh(e,t){return t.find(n=>n.key===e)}function Zh(e){const t=e.trim().toLowerCase();return t?t.includes("sub-task")||t.includes("subtask")||t.includes("sub task")?"subtask":t.includes("bug")||t.includes("defect")?"bug":t.includes("epic")?"epic":t.includes("story")?"story":t.includes("incident")||t.includes("problem")||t.includes("service request")||t.includes("change")?"case":t.includes("milestone")||t.includes("mijlpaal")?"milestone":t.includes("task")?"task":null:null}function Jh(...e){return e.map(t=>vt.find(n=>n.key===t)).filter(t=>!!t)}const ka="work_item",Oa="work_project",Ma="work_activity",ey="work_cycle";function Ra(e){return`${ka}:${e}`}function tr(e){return`${Oa}:${e}`}function ty(e){return`${Ma}:${e}`}function ny(e,t,n){const r=`${e}-${t}`;return n?`${r}-${n}`:r}function ry(e){const t=/^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e||"").trim());return t?{projectKey:t[1].toUpperCase(),sequenceNumber:Number(t[2]),...t[3]?{subSequence:Number(t[3])}:{}}:null}function oy(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toUpperCase().replace(/[^A-Z0-9]/g,"").slice(0,3)||"PRJ"}function sy(e,t=25){const n=new Set([Ra(e.id)]);e.projectId&&n.add(tr(e.projectId));for(const r of e.ancestorKeys??[])n.add(r);for(const r of e.partyKeys??[])n.add(r);return Array.from(n).slice(0,t)}function iy(e){return[tr(e.id)]}const Tt=[{key:"open",label:"status_open",category:"todo",order:0},{key:"in_progress",label:"status_in_progress",category:"in_progress",order:1},{key:"done",label:"status_done",category:"done",order:2},{key:"cancelled",label:"status_cancelled",category:"done",order:3}],nr=Tt.map(e=>e.key);function Na(e){return e?.statuses?.length?e.statuses:Tt}function Da(e,t){return t.find(n=>n.key===e)?.category??"todo"}function ay(e,t){return t.find(n=>n.key===e)}function cy(e){const t=Na(e),n=e?.defaultStatusKey;return n&&t.some(r=>r.key===n)?n:wa(t)[0]?.key??Tt[0].key}function wa(e){return[...e].sort((t,n)=>{const r=(t.order??0)-(n.order??0);return r!==0?r:(t.label||"").localeCompare(n.label||"")})}function uy(e,t){return Da(e,t)==="done"}function xa(e){return(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").slice(0,48).replace(/^-+|-+$/g,"")}function ly(e,t){const n=xa(e)||"status",r=new Set([...t,...nr]);if(!r.has(n))return n;for(let o=2;o<500;o++){const s=`${n}-${o}`;if(!r.has(s))return s}return`${n}-${r.size+1}`}function dy(e){const t=[];if(!e.length)return[{index:-1,reason:"empty"}];const n=new Set;return e.forEach((r,o)=>{if(!r.key){t.push({index:o,reason:"missing_key"});return}nr.includes(r.key)&&t.push({index:o,reason:"reserved_key",key:r.key}),n.has(r.key)&&t.push({index:o,reason:"duplicate_key",key:r.key}),n.add(r.key)}),e.some(r=>r.category==="todo"||r.category==="in_progress")||t.push({index:-1,reason:"no_open"}),e.some(r=>r.category==="done")||t.push({index:-1,reason:"no_done"}),t}function fy(e,t){return t.find(n=>n.key===e)?.requiresApproval===!0}function py(e,t){if(!e)return;const n=t?.resolutions?.find(r=>r.key===e)?.positive;return n===void 0?void 0:n?"won":"lost"}const my=["day","week","month"];function gy(e){const t=e;if(!t||!my.includes(t.every))return;const n=Math.floor(Number(t.interval??1));if(!(!Number.isFinite(n)||n<1||n>365))return{every:t.every,interval:n}}function Pa(e,t){const n=new Date(e);if(t.every==="day")n.setDate(n.getDate()+t.interval);else if(t.every==="week")n.setDate(n.getDate()+7*t.interval);else{const r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t.interval),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate()))}return n.getTime()}function hy(e,t,n){const r=Pa(e.dueDate??n,t);return e.startDate===void 0||e.dueDate===void 0?{dueDate:r}:{dueDate:r,startDate:r-(e.dueDate-e.startDate)}}function yy(e){return e.startDate??Number.MAX_SAFE_INTEGER}function by(e){return e.completedAt?"completed":e.startedAt?"active":"planned"}const _y=["statusKeys","typeKeys","labels","priority","assignees"],Ey=["blockedOnly","watchingOnly","reportedByMe"],Sy=["priority","dueDate","updatedAt","createdAt","title","estimateSeconds"],Iy=["list","board","calendar","workload"],Ay=new Set(["image/png","image/jpeg","image/jpg","image/gif","image/webp"]),Cy=new Set(["text/plain","text/markdown","text/csv","application/json","text/html","application/xml","text/xml"]);function La(e){const t=(e??"").trim().toLowerCase().split(";")[0];return t?Ay.has(t)?"image":t==="application/pdf"?"pdf":Cy.has(t)?"text":t.startsWith("audio/")?"audio":"unsupported":"unsupported"}const ye=1024*1024,$a={image:5*ye,pdf:20*ye,text:1*ye,audio:20*ye},vy=25*ye,Ty=5;function ky(e,t){const n=La(e);return n==="unsupported"?"unsupported":t>$a[n]?"too-large":null}const Oy="ai-tool";function My(e){return e.access==="read"?"idempotent":e.reversible??"none"}function rr(e){return e.access!=="read"&&e.effect!=="internal"}function Ka(e){return`${e.kind}:${e.id||e.url||e.title}`}function Ry(e,t=[]){const n=new Set(t),r=[],o=[];for(const s of e){const a=Ka(s);n.has(a)||(n.add(a),r.push(s),o.push(a))}return{sources:r,keys:o}}const Ny="assist-source",Dy=["blocking","due","open"];function wy(e,t){const[n,r]=(e.subjectKey??"").split(":");return n===t&&r?r:void 0}const Gr={blocking:0,due:1,open:2};function xy(e,t){return Gr[e.band??"open"]-Gr[t.band??"open"]||(t.priority??0)-(e.priority??0)||e.id.localeCompare(t.id)}const Py="bookable-source",Ly="bookkeeping",$y={get:"/bookable/get",issued:"/bookable/issued",settled:"/bookable/settled"},Ky={describe:"/bookkeeping/describe",post:"/bookkeeping/post",lookup:"/bookkeeping/lookup",payments:"/bookkeeping/payments",paymentRegister:"/bookkeeping/payment-register",paymentUndo:"/bookkeeping/payment-undo",settle:"/bookkeeping/settle",reports:"/bookkeeping/reports"};function Uy(e){return`oc:${e}`}function By(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&e.canHold(t.providerId))}function Fy(e){return e.sessions.filter(t=>t.id!==e.exceptSessionId&&t.state==="connected"&&!e.canHold(t.providerId))}function jy(e){return e.sessions.some(n=>n.id!==e.exceptSessionId&&(n.state==="connected"||n.state==="on_hold"))?{admit:!1,reason:"busy"}:{admit:!0}}function Ua(e,t){const n=new Set(e.disabledIntents??[]),r=e.intentOverrides??{},o=t.intents.filter(a=>!n.has(a.intent)).map(a=>Wy(a,r[a.intent]));if(!e.extraIntents||e.extraIntents.length===0)return o;const s=new Set(o.map(a=>a.intent));for(const a of e.extraIntents)s.has(a.intent)||(o.push(a),s.add(a.intent));return o}function Ba(e,t){const n={};for(const r of e.intents){if(!r.togglable)continue;const o=t?.[r.intent];n[r.intent]=o??r.defaultEnabled??!0}return n}function Gy(e,t){const n=Ba(e,t);return Object.entries(n).filter(([,r])=>!r).map(([r])=>r)}function Wy(e,t){return t?{intent:t.intent??e.intent,targetSchemes:t.targetSchemes??e.targetSchemes,transport:t.transport??e.transport}:e}function Vy(e,t){const n=[];for(const r of e){if(!r.enabled)continue;const o=t[r.providerId];if(o)for(const s of Ua(r,o))n.push({channel:r,description:o,capability:s})}return n}function Hy(e,t){return t.filter(n=>n.capability.intent===e)}function Fa(e,t){return t.filter(n=>n.capability.targetSchemes.includes(e))}function qy(e,t){return Fa(e.scheme,t)}function Yy(e,t,n){const r=[];for(const o of e)for(const s of n)s.capability.intent===t&&s.capability.targetSchemes.includes(o.scheme)&&r.push({channelIntent:s,endpoint:o});return r}function zy(e,t,n={}){let r=t,o=e;for(const[s,a]of Object.entries(n))r=r.split("{"+s+"}").join(String(a)),o+=" "+s+"="+encodeURIComponent(String(a));return r+" ["+o+"]"}const Xy=/ \[([a-z][a-z0-9_]*)((?: [a-zA-Z]\w*=[^\s\]]*)*)\]$/;function Qy(e){const t=Xy.exec(e);if(!t)return{text:e,params:{}};const n={};for(const r of t[2].trim().split(" ").filter(Boolean)){const o=r.indexOf("=");n[r.slice(0,o)]=decodeURIComponent(r.slice(o+1))}return{text:e.slice(0,t.index),code:t[1],params:n}}function Zy(e,t){const n=t??Jy(e),r=[];let o=[],s="",a=!1;for(let i=0;i<e.length;i++){const u=e[i];a?u==='"'&&e[i+1]==='"'?(s+='"',i++):u==='"'?a=!1:s+=u:u==='"'&&s===""?a=!0:u===n?(o.push(s),s=""):u===`
|
|
21
|
+
`||u==="\r"?(u==="\r"&&e[i+1]===`
|
|
22
|
+
`&&i++,o.push(s),s="",o.some(c=>c!=="")&&r.push(o),o=[]):s+=u}return o.push(s),o.some(i=>i!=="")&&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 a=s===0?o:o&63>>s;for(let i=1;i<=s;i++){const u=e[r+i];if(u>>6!==2)return Wr(e,t);a=a<<6|u&63}n.push(a),r+=s+1}return ja(n)}function Wr(e,t){const n=[];for(let r=t;r<e.length;r++)n.push(eb[e[r]]??e[r]);return ja(n)}function ja(e){let t="";for(let n=0;n<e.length;n+=8192)t+=String.fromCodePoint(...e.slice(n,n+8192));return t}var Ga=(e=>(e.MAILTO="mailto",e.SIP="sip",e.TEL="tel",e.WEBHOOK="webhook",e.USERNAME="username",e.ID="id",e.CUSTOM="custom",e.URL="url",e.TELEGRAM="telegram",e.WHATSAPP="whatsapp",e.MESSENGER="messenger",e.INSTAGRAM="instagram",e.VIBER="viber",e.SMS="sms",e.FAX="fax",e.TEAMS="teams",e.CALENDAR="calendar",e))(Ga||{});const nb={mailto:"mail",sip:"tel",tel:"tel",fax:"tel",sms:"chat",teams:"chat",telegram:"chat",messenger:"chat",instagram:"chat",viber:"chat",whatsapp:"wa",webhook:"note",url:"note",calendar:"note",username:"note",id:"note",custom:"note"};function rb(e){return e?nb[e]??"note":"note"}const ob="message_window",sb="message_templates",ib={FROM:"from",TO:"to",CC:"cc",BCC:"bcc",ORGANIZER:"organizer",PRESENTER:"presenter",ATTENDEE:"attendee",OWNER:"owner",MEMBER:"member",GUEST:"guest",HOST:"host",PARTICIPANT:"participant"},ab=(e,t)=>({intent:e,...t}),cb="remote_search",ub="message_reactions",lb={ok:!1,code:"UNSUPPORTED",message:"Provider does not support this op"},db="connector",fb="context.collect",N=e=>({type:"string",description:e}),M=e=>({type:"number",description:e}),Ue=e=>({type:"boolean",description:e}),W=N("Sheet name. Omit for the sheet the user is looking at."),Vr=N("Slide id, as `inspect` reports it.");function O(e,t,n,r,o,s){return{op:e,kinds:t,summary:n,parameters:{type:"object",properties:r,required:o},undoable:s.undoable,visible:s.visible}}const _e={undoable:!1,visible:!0},w={undoable:!0,visible:!0},Hr={undoable:!1,visible:!0},lt={undoable:!1,visible:!1},pb=[O("pdf.goToPage",["pdf"],"Scroll the viewer to a page.",{page:M("1-based page number.")},["page"],_e),O("pdf.search",["pdf"],"Search the document and highlight the matches, as the find bar does.",{query:N("Text to find."),next:Ue("Jump to the next match instead of the first.")},["query"],_e),O("pdf.setTool",["pdf"],"Select a markup tool for the user, so their next click draws it.",{tool:{type:"string",enum:["highlight","text","draw","image","signature","none"],description:"Which tool to arm. `none` puts the tool row back to reading."}},["tool"],_e),O("pdf.fillField",["pdf"],"Fill one form field of a fillable PDF.",{field:N("Field name, exactly as `inspect` reports it under `fields`."),value:{type:["string","boolean"],description:"Text for a text field, true/false for a checkbox or radio."}},["field","value"],w),O("pdf.reorderPages",["pdf"],"Put the pages in a different order. Pages left out are deleted.",{order:{type:"array",items:{type:"number"},description:"1-based source page numbers, in the order they should end up in."}},["order"],Hr),O("pdf.deletePages",["pdf"],"Remove pages, keeping the rest in order.",{pages:{type:"array",items:{type:"number"},description:"1-based page numbers."}},["pages"],Hr),O("pdf.addNote",["pdf"],"Place a text note on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The note's text."),left:M("Distance from the left edge, in PDF points (72 per inch)."),top:M("Distance from the top edge, in PDF points."),width:M("Box width in points. Omit for a sensible default."),height:M("Box height in points. Omit for a sensible default."),fontSize:M("Font size in points. Omit for 12.")},["page","text","left","top"],lt),O("pdf.highlightText",["pdf"],"Highlight a phrase on a page. Written on save; not visible before that.",{page:M("1-based page number."),text:N("The exact phrase to highlight, as it appears in the page's text."),occurrence:M("Which occurrence on that page, 1-based. Omit for the first.")},["page","text"],lt)],mb=[O("sheet.setValues",["sheet"],"Write a block of values. The block's shape must match the range.",{sheet:W,range:N("A1 notation, e.g. `B2:D5` or a single `A1`."),values:{type:"array",items:{type:"array",items:{type:["string","number","boolean","null"]}},description:"Rows of cells, top-left first. `null` clears a cell."}},["range","values"],w),O("sheet.setFormula",["sheet"],"Put a formula in every cell of a range.",{sheet:W,range:N("A1 notation."),formula:N("Including the leading `=`.")},["range","formula"],w),O("sheet.setStyle",["sheet"],"Change the look of a range. Only the properties you pass are touched.",{sheet:W,range:N("A1 notation."),bold:Ue("Bold on or off."),italic:Ue("Italic on or off."),fontSize:M("Point size."),fontColor:N("CSS colour, e.g. `#b91c1c`."),background:N("CSS colour for the cell fill."),horizontalAlignment:{type:"string",enum:["left","center","right"],description:"Horizontal alignment."},numberFormat:N("Number format pattern, e.g. `#,##0.00` or `0%`.")},["range"],w),O("sheet.insertRows",["sheet"],"Insert empty rows, pushing the rest down.",{sheet:W,at:M("1-based row number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteRows",["sheet"],"Delete rows, pulling the rest up.",{sheet:W,at:M("1-based first row to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.insertColumns",["sheet"],"Insert empty columns, pushing the rest right.",{sheet:W,at:M("1-based column number to insert before."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.deleteColumns",["sheet"],"Delete columns, pulling the rest left.",{sheet:W,at:M("1-based first column to delete."),count:M("How many. Omit for 1.")},["at"],w),O("sheet.merge",["sheet"],"Merge a range into one cell.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.unmerge",["sheet"],"Break merged cells in a range apart.",{sheet:W,range:N("A1 notation.")},["range"],w),O("sheet.sort",["sheet"],"Sort a range on one of its columns.",{sheet:W,range:N("A1 notation covering the rows to sort, header excluded."),column:M("1-based column *within the range*, not within the sheet."),ascending:Ue("Ascending. Omit for ascending.")},["range","column"],w),O("sheet.insertSheet",["sheet"],"Add a new sheet.",{name:N("Name for the new sheet.")},["name"],w),O("sheet.renameSheet",["sheet"],"Rename a sheet.",{sheet:N("Current name."),name:N("New name.")},["sheet","name"],w),O("sheet.deleteSheet",["sheet"],"Remove a sheet and everything on it.",{sheet:N("Name of the sheet to delete.")},["sheet"],w),O("sheet.activate",["sheet"],"Show the user a sheet and select a range on it.",{sheet:W,range:N("A1 notation to select. Omit to only switch sheets.")},[],_e)],gb=[O("word.replaceParagraph",["word"],"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",{at:M("The offset the paragraph starts at, exactly as `inspect` prints it."),text:N("The new text for that paragraph. A newline starts a further paragraph.")},["at","text"],w),O("word.replaceRange",["word"],"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",{start:M("Character offset where the replaced text starts, as `inspect` reports offsets."),end:M("Character offset just past the last character to replace."),text:N("The replacement text. A newline starts a new paragraph.")},["start","end","text"],w),O("word.insertText",["word"],"Insert text at a character offset, without removing anything.",{index:M("Character offset, as `inspect` reports offsets."),text:N("The text to insert.")},["index","text"],w),O("word.appendText",["word"],"Add text at the end of the document.",{text:N("The text to append.")},["text"],w),O("word.insertParagraph",["word"],"Start a new paragraph, optionally with text in it.",{text:N("Paragraph text. Newlines start further paragraphs."),index:M("Character offset to insert at. Omit for the end of the document.")},[],w),O("word.setSelection",["word"],"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",{start:M("Start character offset."),end:M("End character offset. Omit for a caret.")},["start"],_e)],hb=[O("slides.setText",["slides"],"Replace the text of one shape. Written on save; not visible before that, and not undoable.",{slide:Vr,element:N("Element id, as `inspect` reports it."),text:N("The new text.")},["slide","element","text"],lt),O("slides.setTransform",["slides"],"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",{slide:Vr,element:N("Element id."),left:M("Distance from the left edge, in pixels."),top:M("Distance from the top edge, in pixels."),width:M("Width in pixels."),height:M("Height in pixels.")},["slide","element"],lt)],or=[...pb,...mb,...gb,...hb];function yb(e){return or.filter(t=>t.kinds.includes(e))}function bb(e){return or.find(t=>t.op===e)}const qr=/(?: {2,}|\\)$/,_b=/^\*\*([^*]+)\*\*\s+(.*)$/;function Yr(e){const t=_b.exec(e);return t?{lead:t[1],text:t[2]}:{text:e}}function Eb(e){const t=(e??"").replace(/\r\n/g,`
|
|
21
23
|
`).split(`
|
|
22
|
-
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(
|
|
23
|
-
`)}),i=[])},
|
|
24
|
-
`)});continue}const b=f.match(/^(#{1,3})\s+(.*)$/);if(b){
|
|
25
|
-
`:" ")),
|
|
24
|
+
`),n=[];let r=null;const o=()=>{r&&n.push({type:"list",style:r.style,items:r.items}),r=null},s=(f,m)=>{r&&r.style!==f&&o(),r?r.items.push(Yr(m)):r={style:f,items:[Yr(m)]}};let a=[],i=[];const u=()=>{if(a.length){const f=a.join("").trim();f&&n.push({type:"paragraph",text:f}),a=[]}},c=()=>{i.length&&(n.push({type:"quote",text:i.join(`
|
|
25
|
+
`)}),i=[])},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(),i.push(f.replace(/^>\s?/,"")),d++;continue}if(f.trim()===""){l(),d++;continue}c(),o();const E=qr.test(f);a.push(f.replace(qr,"").trim()+(E?`
|
|
27
|
+
`:" ")),d++}return l(),n}function Sb(e,t){return vn(e,t).replace(/^```.*$/gm,"").replace(/^\|[\s:|-]*\|$/gm,"").replace(/[ \t]*\|[ \t]*/g," ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm,"").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/(\*\*|__|\*|_|`|~~)/g,"").replace(/[ \t]+$/gm,"").replace(/\n{3,}/g,`
|
|
26
28
|
|
|
27
|
-
`).trim()}const Vy="documents.describe",Hy="documents.inspect",qy="documents.apply";function Yy(e){const t=e.indexOf(":");if(t!==-1)return e.slice(0,t);const n=e.indexOf(".");return n===-1?e:e.slice(0,n)}const zy="installation-id";function Xy(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function Qy(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const Fr="main",be=e=>`${e.app}:${e.entry}`,$t=e=>be({app:e.app,entry:e.entry.id}),jr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Zy(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:a}=e,i=new Set(t.map(_=>_.name)),u=new Map(r.map(_=>[_.key,_])),c=new Set(n.map(_=>_.key)),d=new Map,l=new Map,f=new Map;for(const _ of t)for(const T of _.nav??[])for(const x of T.entries){const B={app:_.name,entry:x};if(d.set($t(B),B),T.workspace!=="apps"){l.set(T.workspace,[...l.get(T.workspace)??[],{item:B,section:T.section}]);continue}const Y=f.get(_.name)??[],re=T.section??Fr;let ie=Y.find(P=>P.key===re);ie||(ie={key:re,items:[]},T.section&&(ie.label={key:`${_.name}:section_${T.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const T=u.get(_.key),x=new Map(_.sections.map(P=>[P,[]]));for(const{item:P,section:z}of l.get(_.key)??[]){const Ct=z&&x.has(z)?z:_.sections[0];x.get(Ct)?.push(P)}const B=T?.sections??[],Y=new Set(B.flatMap(P=>(P.entries??[]).map(be))),re=new Set((T?.excluded??[]).map(be));return[...B.map(P=>P.key),..._.sections.filter(P=>!B.some(z=>z.key===P))].map(P=>{const z=B.find(oe=>oe.key===P),Ct=(z?.entries??[]).flatMap(oe=>d.get(be(oe))??[]),oc=(x.get(P)??[]).filter(oe=>!Y.has($t(oe)));return{key:P,label:z?.label?{text:z.label}:{key:`section_${P}`},items:[...Ct,...oc].filter(oe=>!re.has($t(oe)))}})},b=_=>(_.sections??[]).map(T=>({key:T.key,...T.label?{label:{text:T.label}}:{},items:(T.entries??[]).flatMap(x=>d.get(be(x))??[])})),y=[...n.filter(_=>i.has(_.owner)).map(_=>({key:_.key,label:{key:`workspace_${_.key}`},icon:_.icon,order:_.order,sections:m(_)})),...r.filter(_=>!c.has(_.key)).map(_=>({key:_.key,label:{text:_.label??_.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:b(_)}))],E=new Set(y.flatMap(_=>[...jr(_.sections)])),g=_=>_.map(T=>({...T,items:T.items.filter(x=>(x.entry.permissions??[]).every(a))})).filter(T=>T.items.length>0),h=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const T=u.get(_);if(T?.visibleByDefault===!1)return!1;const x=T?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},I=y.map(_=>{const T=u.get(_.key);return{..._,label:T?.label?{text:T.label}:_.label,icon:T?.icon??_.icon,order:T?.order??_.order}}).sort((_,T)=>_.order-T.order),v=I.map(({order:_,...T})=>{const x=c.has(T.key)?"default":"own";return{...T,group:"workspaces",kind:x,customized:x==="default"&&u.has(T.key),visible:h(T.key),visibleByDefault:p(T.key)}}),C=I.filter(_=>h(_.key)).map(_=>({..._,sections:g(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...T})=>({...T,group:"workspaces"})),R=new Map;for(const _ of t){const x=[...new Map((_.nav??[]).flatMap(Y=>Y.entries.map(re=>[re.id,re]))).values()].map(Y=>({app:_.name,entry:Y})),B=g(f.get(_.name)??[{key:Fr,items:x}]);B.length!==0&&R.set(_.name,{key:"apps",app:_.name,group:"apps",label:{text:_.displayName},icon:_.icon??"app-window",sections:B})}const D=[...R.values()].filter(_=>_.app&&(f.has(_.app)||!E.has(_.app))).sort((_,T)=>Gr(_).localeCompare(Gr(T))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const T of jr(_.sections))Q[T]??=[],G.get(_.key)===T?Q[T].unshift(_.key):Q[T].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:v,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Gr=e=>"text"in e.label?e.label.text:e.label.key,Jy="notification-source",eb=(e,t)=>`${e}.pref.${t}`,tb={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","calendar.read","calendar.write","channel.read","channel.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write"],context:["attribute.read","attribute.write","custom-field.read","custom-field.write","kind.read","kind.write","memory.read","memory.write","reaction.read","reaction.write","topic.read","topic.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},Jn=9e4,xa=["out_of_office"],Pa=e=>xa.includes(e);function nb(e,t,n){const r=n-e<Jn,o=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!o?.status)return{online:r,status:r?"available":"offline"};const s=o.status;return!r&&!Pa(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function rb(e,t){const n=t-e.lastSeenAt<Jn,r=n||Pa(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function ob(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function sb(e){return e.providerAvailable&&e.allowed}const ib="provisioning-source",ab={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},cb="resources.describe",ub="resources.search",lb="resources.resolve",db="resources.attached";function fb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const pb="/provider/scope/related",mb="/provider/scope/read",gb="/provider/scope/acts",La="auth";function $a(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function hb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function yb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function bb(e){return typeof e!="string"||e===""||e==="/"?!0:$a(e)===La}function _b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ka(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${_b(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function Ua(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,a)=>{if(s.startsWith(":")){const i=s.endsWith("?")?s.slice(1,-1):s.slice(1),u=r[a];u&&(o[i]=u)}}),o}function Ba(e){return e.publicBasePath??`/apps/${e.name}`}function Eb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Ba(n);for(const o of n.routes??[]){if(!o.public)continue;const s=o.path==="/"?"":o.path;t.push({appName:n.name,resource:o.resource,pattern:`${r}${s}`,props:o.props})}}return t}function Fa(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let o=0;o<Math.min(n.length,r.length);o++){const s=n[o].startsWith(":"),a=r[o].startsWith(":");if(s!==a)return a}return n.length>r.length}function ja(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ka(r.pattern).test(e)&&(!n||Fa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...Ua(n.pattern,e)}}:null}function Ib(e,t){return ja(e,t)!==null}const Sb=10*1024*1024,Ab=25*1024*1024,Tb="sync-target",Cb=20;function er(e,t){const n=Array.isArray(t)?t.find(r=>r.name===e.name)?.policy:void 0;return n?n!=="read":e.access?e.access!=="read":!0}function Ga(e,t,n){return er(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?Qn(e):!0:!1}function vb(e){return e.produces==="draft"}function kb(e,t){if(t.allowed){const n=t.personalTools==="allow"&&e.personal===!0;if(!t.allowed.has(e.name)&&!n)return"hidden"}return t.narrow&&!t.narrow.has(e.name)||!t.attended&&(e.personal===!0||e.surface==="interactive")||t.readOnly&&e.access!=="read"||t.mode==="ask"&&er(e)||t.mode==="draft"&&(Qn(e)||e.access!=="read"&&!vb(e))?"hidden":t.gate&&Ga(e,t.gate,t.policy)?"held":"free"}const Ob={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},Wa=e=>{let t=e;return Object.values(Ob).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},Va=6e4,Ha=8e3,qa=2,Ya=.4,Mb=3,Rb=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function za(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<Mb||Rb.has(n)||t.add(n);return[...t]}function Xa(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let o=0;for(const s of r)n.has(s)||(o+=1);return o/r.size}function Qa(e,t=Va){const n=e.filter(a=>!a.partial&&typeof a.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((a,i)=>Math.max(a,i.endedAt??0),0)-t;return{text:n.filter(a=>(a.endedAt??0)>=o).map(a=>Wa(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const Za=60;function Nb(e,t,n=Za){const r=new Set(e),o=[...e];for(const s of t)!s||r.has(s)||(r.add(s),o.push(s));return o.slice(-n)}function Db(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<Ha)return{trigger:!1,reason:"too_soon"};const o=Qa(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<qa)return{trigger:!1,reason:"too_few_new"};const a=za(o.text);return a.length?r.lastQueryTerms?.length&&Xa(a,r.lastQueryTerms)<Ya?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const wb=["personal","organization","connections","flows","work","administration","ai"],xb="navNotice",Tt={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},Ja="NL",Pb=15,Lb=8,$b=Array.from(new Set(Object.values(Tt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Wr(e){if(e)return Tt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Vr(e){if(e.length>Pb)return null;for(const t of $b){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(Tt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Be(s,r))return`+${t}${s}`}return null}return e.length<Lb?null:`+${e}`}function Kb(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function Ub(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function dn(e,t){if(!e)return null;const n=Kb(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Vr(o);if(o.startsWith("00"))return Vr(o.slice(2));const s=Wr(t)??Wr(Ja);if(!s)return null;const a=s.trunkPrefix;if(a&&o.startsWith(a)){const i=o.slice(a.length);return Be(i,s)?`+${s.callingCode}${i}`:null}if(o.startsWith(s.callingCode)){const i=o.slice(s.callingCode.length);if(Be(i,s))return`+${s.callingCode}${i}`}return!a&&Be(o,s)?`+${s.callingCode}${o}`:null}function Bb(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function tr(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function Fb(e){const t=tr(e);return t?t.slice(t.lastIndexOf("@")+1):null}const jb=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function ec(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return jb.has(n)&&t.length>=3?t.slice(-3).join("."):n}const tc=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function Gb(e){const t=ec(e);return t?tc.has(t):!1}function Wb(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function Vb(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=dn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=dn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=tr(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const Hb=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],Hr=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,qb=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function Yb(e){const t=e.split(`
|
|
28
|
-
`);for(let n=0;n<t.length;n++)if(
|
|
29
|
-
`).trim();return e}const
|
|
29
|
+
`).trim()}const Ib="documents.describe",Ab="documents.inspect",Cb="documents.apply";function vb(e){const t=e.indexOf(":");if(t!==-1)return e.slice(0,t);const n=e.indexOf(".");return n===-1?e:e.slice(0,n)}const Tb="installation-id";function kb(e){const t=[];for(const n of Object.keys(e))for(const r of Object.keys(e[n]))t.push({lang:n,key:r,value:e[n][r]});return t}function Ob(e,t){return e?"text"in e?e.text:t(e.key.includes(":")?e.key:`global:${e.key}`):""}const zr="main",be=e=>`${e.app}:${e.entry}`,Bt=e=>be({app:e.app,entry:e.entry.id}),Xr=e=>new Set(e.flatMap(t=>t.items.map(n=>n.app)));function Mb(e){const{manifests:t,defaults:n,org:r,prefs:o,teamIds:s,can:a}=e,i=new Set(t.map(_=>_.name)),u=new Map(r.map(_=>[_.key,_])),c=new Set(n.map(_=>_.key)),l=new Map,d=new Map,f=new Map;for(const _ of t)for(const v of _.nav??[])for(const x of v.entries){const B={app:_.name,entry:x};if(l.set(Bt(B),B),v.workspace!=="apps"){d.set(v.workspace,[...d.get(v.workspace)??[],{item:B,section:v.section}]);continue}const Y=f.get(_.name)??[],re=v.section??zr;let ie=Y.find(L=>L.key===re);ie||(ie={key:re,items:[]},v.section&&(ie.label={key:`${_.name}:section_${v.section}`}),Y.push(ie)),ie.items.push(B),f.set(_.name,Y)}const m=_=>{const v=u.get(_.key),x=new Map(_.sections.map(L=>[L,[]]));for(const{item:L,section:z}of d.get(_.key)??[]){const Ot=z&&x.has(z)?z:_.sections[0];x.get(Ot)?.push(L)}const B=v?.sections??[],Y=new Set(B.flatMap(L=>(L.entries??[]).map(be))),re=new Set((v?.excluded??[]).map(be));return[...B.map(L=>L.key),..._.sections.filter(L=>!B.some(z=>z.key===L))].map(L=>{const z=B.find(oe=>oe.key===L),Ot=(z?.entries??[]).flatMap(oe=>l.get(be(oe))??[]),mc=(x.get(L)??[]).filter(oe=>!Y.has(Bt(oe)));return{key:L,label:z?.label?{text:z.label}:{key:`section_${L}`},items:[...Ot,...mc].filter(oe=>!re.has(Bt(oe)))}})},b=_=>(_.sections??[]).map(v=>({key:v.key,...v.label?{label:{text:v.label}}:{},items:(v.entries??[]).flatMap(x=>l.get(be(x))??[])})),g=[...n.filter(_=>i.has(_.owner)).map(_=>({key:_.key,label:{key:`workspace_${_.key}`},icon:_.icon,order:_.order,sections:m(_)})),...r.filter(_=>!c.has(_.key)).map(_=>({key:_.key,label:{text:_.label??_.key},icon:"layout-grid",order:Number.MAX_SAFE_INTEGER,sections:b(_)}))],E=new Set(g.flatMap(_=>[...Xr(_.sections)])),h=_=>_.map(v=>({...v,items:v.items.filter(x=>(x.entry.permissions??[]).every(a))})).filter(v=>v.items.length>0),y=_=>o.hidden.includes(_)?!1:o.shown.includes(_)?!0:p(_),p=_=>{const v=u.get(_);if(v?.visibleByDefault===!1)return!1;const x=v?.audience?.teamIds;return!x||x.some(B=>s.includes(B))},S=g.map(_=>{const v=u.get(_.key);return{..._,label:v?.label?{text:v.label}:_.label,icon:v?.icon??_.icon,order:v?.order??_.order}}).sort((_,v)=>_.order-v.order),T=S.map(({order:_,...v})=>{const x=c.has(v.key)?"default":"own";return{...v,group:"workspaces",kind:x,customized:x==="default"&&u.has(v.key),visible:y(v.key),visibleByDefault:p(v.key)}}),C=S.filter(_=>y(_.key)).map(_=>({..._,sections:h(_.sections)})).filter(_=>_.sections.length>0).map(({order:_,...v})=>({...v,group:"workspaces"})),R=new Map;for(const _ of t){const x=[...new Map((_.nav??[]).flatMap(Y=>Y.entries.map(re=>[re.id,re]))).values()].map(Y=>({app:_.name,entry:Y})),B=h(f.get(_.name)??[{key:zr,items:x}]);B.length!==0&&R.set(_.name,{key:"apps",app:_.name,group:"apps",label:{text:_.displayName},icon:_.icon??"app-window",sections:B})}const D=[...R.values()].filter(_=>_.app&&(f.has(_.app)||!E.has(_.app))).sort((_,v)=>Qr(_).localeCompare(Qr(v))),G=new Map(n.map(_=>[_.key,_.owner])),Q={};for(const _ of C)for(const v of Xr(_.sections))Q[v]??=[],G.get(_.key)===v?Q[v].unshift(_.key):Q[v].push(_.key);for(const _ of D)_.app&&(Q[_.app]=[...Q[_.app]??[],"apps"]);return{workspaces:[...C,...D],all:T,index:{visible:C.map(_=>_.key),byApp:Q},ownColumn:_=>R.get(_),isWorkspaceKey:_=>c.has(_)||u.has(_)}}const Qr=e=>"text"in e.label?e.label.text:e.label.key,Rb="notification-source",Nb=(e,t)=>`${e}.pref.${t}`,Db={ai:["account.read","account.write","agent.read","agent.write","assignment.read","assignment.write","budget.read","budget.write","connector.read","connector.write","context.read","context.write","conversation.read","conversation.write","lens.read","lens.write","message.read","message.write","playbook.read","playbook.write","profile.read","profile.write","run.read","run.write","settings.read","settings.write","tool.read","transcript.write","usage.read"],analytics:["report.read"],"app-store":["app.publish","app.read","app.write","setting.read","setting.write"],assist:["board.read"],automations:["sync.read","sync.write","webhook.read","webhook.write"],communication:["account.read","account.write","activity-type.read","activity.read","activity.write","attachment.read","calendar.read","calendar.write","channel.read","channel.write","inbox.read","inbox.write","interaction.read","interaction.write","reminder.read","template.read","template.write"],context:["attribute.read","attribute.write","custom-field.read","custom-field.write","kind.read","kind.write","memory.read","memory.write","reaction.read","reaction.write","topic.read","topic.write"],crm:["company.read","company.write","contact.read","contact.write"],"eylo-voip":["account.read","account.write","callflow.read","callflow.write","channel.read","channel.write","contact.read","contact.write","device.read","device.write","group.read","group.write","interaction.read","interaction.write","media.read","media.write","menu.read","menu.write","phone-number.read","phone-number.write","recording.read","recording.write","sip.read","temporal-rule.read","temporal-rule.write","user.read","user.write","vmbox.read","vmbox.write","webhook.read","webhook.write"],google:["account.read","account.write","contact.read"],kb:["article.read","article.write","category.read","category.write","help-center.read","help-center.write","kb.read","kb.write"],mail:["account.write"],meta:["account.read","account.write"],microsoft:["account.read","account.write","contact.read","sync.write"],organization:["billing.read","billing.write","settings.read","settings.write","team.read","team.write"],shopify:["account.read","account.write","order.read"],slack:["thread.read","thread.write"],storage:["artifact.read","artifact.write","file.read","file.write","mount.read","mount.write"],time:["entry.read","entry.write","work-type.read","work-type.write"],user:["user.read","user.write"],work:["item.read","item.write","project.read","project.write"]},sr=9e4,Wa=["out_of_office"],Va=e=>Wa.includes(e);function wb(e,t,n){const r=n-e<sr,o=t?.status&&(!t.expiresAt||t.expiresAt>n)?t:void 0;if(!o?.status)return{online:r,status:r?"available":"offline"};const s=o.status;return!r&&!Va(s)?{online:!1,status:"offline"}:{online:r,status:s,message:o.message}}function xb(e,t){const n=t-e.lastSeenAt<sr,r=n||Va(e.status)?e.status:"offline";return n===e.online&&r===e.status?e:{...e,online:n,status:r}}function Pb(e,t){return e?.teamId&&t.includes(e.teamId)?{teamId:e.teamId,mustChoose:!1}:t.length===1?{teamId:t[0],mustChoose:!1}:{teamId:void 0,mustChoose:t.length>1}}function Lb(e){return e.providerAvailable&&e.allowed}const $b="provisioning-source",Kb={describe:"/provisioning/describe",submit:"/provisioning/submit",status:"/provisioning/status"},Ub="resources.describe",Bb="resources.search",Fb="resources.resolve",jb="resources.attached";function Gb(e){const t=e.indexOf(":");return t===-1?e:e.slice(0,t)}const Wb="/provider/scope/related",Vb="/provider/scope/read",Hb="/provider/scope/acts",Ha="auth";function qa(e){const t=typeof e=="string"?e.match(/apps\/([^/?#]+)/):null;return t?t[1]:null}const Ae="/settings";function qb(e){return typeof e=="string"&&(e===Ae||e.startsWith(`${Ae}/`))}function Yb(e){const t=e?e.indexOf(":"):-1;return!e||t<=0?Ae:`${Ae}/${e.slice(0,t)}/${e.slice(t+1)}`}function zb(e){return typeof e!="string"||e===""||e==="/"?!0:qa(e)===Ha}function Xb(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ya(e){const n=e.split("/").filter(Boolean).map(r=>r.startsWith(":")?r.endsWith("?")?"(?:/[^/]+)?":"/[^/]+":`/${Xb(r)}`).join("");return new RegExp(`^${n}\\/?$`)}function za(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean),o={};return n.forEach((s,a)=>{if(s.startsWith(":")){const i=s.endsWith("?")?s.slice(1,-1):s.slice(1),u=r[a];u&&(o[i]=u)}}),o}function Xa(e){return e.publicBasePath??`/apps/${e.name}`}function Qb(e){const t=[];for(const n of e){if(!n?.name)continue;const r=Xa(n);for(const o of n.routes??[]){if(!o.public)continue;const s=o.path==="/"?"":o.path;t.push({appName:n.name,resource:o.resource,pattern:`${r}${s}`,props:o.props})}}return t}function Qa(e,t){const n=e.split("/").filter(Boolean),r=t.split("/").filter(Boolean);for(let o=0;o<Math.min(n.length,r.length);o++){const s=n[o].startsWith(":"),a=r[o].startsWith(":");if(s!==a)return a}return n.length>r.length}function Za(e,t){if(typeof e!="string")return null;let n=null;for(const r of t)Ya(r.pattern).test(e)&&(!n||Qa(r.pattern,n.pattern))&&(n=r);return n?{...n,params:{...n.props,...za(n.pattern,e)}}:null}function Zb(e,t){return Za(e,t)!==null}const Jb=10*1024*1024,e_=25*1024*1024,t_="sync-target",n_=20;function ir(e,t){const n=Array.isArray(t)?t.find(r=>r.name===e.name)?.policy:void 0;return n?n!=="read":e.access?e.access!=="read":!0}function Ja(e,t,n){return ir(e,n)?t.guarded==="all"||t.guarded?.has(e.name)?!0:t.autonomy==="auto"?!1:t.autonomy==="outward"?rr(e):!0:!1}function r_(e){return e.produces==="draft"}function o_(e,t){if(t.allowed){const n=t.personalTools==="allow"&&e.personal===!0;if(!t.allowed.has(e.name)&&!n)return"hidden"}return t.narrow&&!t.narrow.has(e.name)||!t.attended&&(e.personal===!0||e.surface==="interactive")||t.readOnly&&e.access!=="read"||t.mode==="ask"&&ir(e)||t.mode==="draft"&&(rr(e)||e.access!=="read"&&!r_(e))?"hidden":t.gate&&Ja(e,t.gate,t.policy)?"held":"free"}const s_={afrikaans:["[Muziek]","(C) TV GELDERLAND 2021","*Thomp thomp thomp*","www.youtube.com","ä n wood s","!.."],english:["[applause]","[APPLAUSE]","(claps)","(clapping)","(audience applauds)","(keyboard clicking)","(keyboard clacking)","(clicking)","[CLICK]","[BLANK_AUDIO]","(upbeat music)","(dramatic music)","[music playing]","(electronic music)","(audience cheering)","(audience cheers)","[MUSIC]","( ( ( ( ) ( ) ( ) ( )","(laughs)","(air whooshing)","<u>Transcribed</u> by https://otter.ai","All new tonight at 6... coming up. A new look at your forecast is A new look at your forecast is","www.mooji.org","KATHRYN A new forecast is coming up... A new forecast is coming up...","KATHRYN pandemic started. increasing since the The pandemic has been","A new look at your forecast this morning... A new look at your","We'll be right back.","We'll see you next week.","Thanks for watching!","❤️ Translated by Amara.org Communit"],flemish:["*clap*","TV GELDERLAND 2020","TV Gelderland 2021","(C) TV GELDERLAND 2021","[Muziek]","Kuman","Ondertitels ingediend door de Amara.org gemeenschap","Ondertiteld door de Amara.org gemeenschap","Dank u wel voor het kijken.","Ondertiteling door de Amara.org gemeenschap","GELUID VAN MAHIH U similarly"],french:["(applaudissements)","[Applaudissements]","Sous-titres réalisés par la communauté d'Amara.org","- Bonne journée. - Bonjour.","POP POP הי","Merci d'avoir regardé cette vidéo.","Merci d'avoir regardé cette vidéo!","Merci d'avoir regardé la vidéo.","J'espère que vous avez apprécié la vidéo.","Je vous remercie de vous abonner","Merci d'avoir regardé!","❤️ par SousTitreur.com","— Sous-titrage ST'501 —","Thanks for watching!","Sous-titres réalisés par l'Amara.org","Sous-titres réalisés para la communauté d'Amara.org","Sous-titres réalisés par la communauté d'Amara.org","Sous-titres fait par Sous-titres par Amara.org","Sous-titres réalisés par les SousTitres d'Amara.org","Sous-titres par Amara.org","Sous-titres par la communauté d'Amara.org","Sous-titres réalisés pour la communauté d'Amara.org","Sous-titres réalisés par la communauté de l'Amara.org","Sous-Titres faits par la communauté d'Amara.org","Sous-titres par l'Amara.org","Sous-titres fait par la communauté d'Amara.org","Sous-titrage ST' 501","Sous-titrage ST'501","Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org","❤️ par SousTitreur.com"],german:["[Klicken]","(Jubel)","*lacht*","[Anhaltender Beifall]","[Applaus]","(Applaus)","* Applaus *","[MUSIK]","* mustard ml Drumglöck und knack in einem Handbewerb *","Untertitelung aufgrund der Amara.org-Community","Untertitel im Auftrag des ZDF für funk, 2017","Untertitel von Stephanie Geiges","Untertitel der Amara.org-Community","Untertitel im Auftrag des ZDF, 2017","Untertitel im Auftrag des ZDF, 2020","Untertitel im Auftrag des ZDF, 2018","Untertitel im Auftrag des ZDF, 2021","Untertitelung im Auftrag des ZDF, 2021","Copyright WDR 2021","Copyright WDR 2020","Copyright WDR 2019","SWR 2021","SWR 2020"],italian:["Alla prossima!","*applauso*","[Musica]","[Musica]","[Applausi]","*Bip bip bip bip*","(musica del NS shore)","D' 1962 alle tribunte del Gulf","Sottotitoli creati dalla comunità Amara.org","Sottotitoli di Sottotitoli di Amara.org","Sottotitoli e revisione al canale di Amara.org","Sottotitoli e revisione a cura di Amara.org","Sottotitoli e revisione a cura di QTSS","Sottotitoli e revisione a cura di QTSS.","Sottotitoli a cura di QTSS","Sottotitoli a cura di Sottotitoli"],spanish:["[música]","[Música de cierre]","[Aplausos]","(Aplausos)","www.alimmenta.com","¡Gracias por ver el vídeo!","(sonidos del celular) (Inudible distorsión)","¡Suscríbete!","Subtítulos realizados por la comunidad de Amara.org","Subtitulado por la comunidad de Amara.org","Subtítulos por la comunidad de Amara.org","Subtítulos creados por la comunidad de Amara.org","Subtítulos en español de Amara.org","Subtítulos hechos por la comunidad de Amara.org","Subtitulos por la comunidad de Amara.org","Más información www.alimmenta.com","www.mooji.org","[MÚSICA]","[Music cuts in British]"]},ec=e=>{let t=e;return Object.values(s_).forEach(n=>{n.forEach(r=>{t=t.replaceAll(r,"")})}),t=t.replace(/\(.*?\)/g,""),t=t.replace(/\[.*?\]/g,""),t},tc=6e4,nc=8e3,rc=2,oc=.4,i_=3,a_=new Set(["aan","als","ben","bent","bij","dan","dat","deze","die","dit","doen","door","dus","echt","een","eens","even","gaan","gaat","geen","geweest","goed","graag","had","heb","hebben","hebt","heeft","het","hier","hoe","hoor","iets","inderdaad","kan","klopt","kunnen","kunt","maar","mag","mee","meer","met","mij","mijn","misschien","moet","moeten","naar","net","niet","nog","nou","oke","ook","over","prima","toch","uhm","uit","van","veel","voor","wat","weer","weet","wel","wij","wil","wilt","worden","wordt","zeg","zeggen","zijn","zou","zult","about","and","are","been","but","can","does","for","have","just","know","like","not","okay","right","she","that","the","them","then","there","they","this","want","was","well","were","what","will","with","would","yeah","you","your"]);function sc(e){const t=new Set;for(const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))n.length<i_||a_.has(n)||t.add(n);return[...t]}function ic(e,t){if(!e.length)return 0;if(!t.length)return 1;const n=new Set(t),r=new Set(e);let o=0;for(const s of r)n.has(s)||(o+=1);return o/r.size}function ac(e,t=tc){const n=e.filter(a=>!a.partial&&typeof a.text=="string");if(!n.length)return{text:"",segmentCount:0};const o=n.reduce((a,i)=>Math.max(a,i.endedAt??0),0)-t;return{text:n.filter(a=>(a.endedAt??0)>=o).map(a=>ec(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g," ").trim(),segmentCount:n.length}}const cc=60;function c_(e,t,n=cc){const r=new Set(e),o=[...e];for(const s of t)!s||r.has(s)||(r.add(s),o.push(s));return o.slice(-n)}function u_(e){const{segments:t,now:n,state:r}=e;if(r.lastTriggerAt&&n-r.lastTriggerAt<nc)return{trigger:!1,reason:"too_soon"};const o=ac(t,e.windowMs);if(!o.text)return{trigger:!1,reason:"no_speech"};const s=o.segmentCount-(r.lastSegmentCount??0);if(r.lastQueryTerms&&s<rc)return{trigger:!1,reason:"too_few_new"};const a=sc(o.text);return a.length?r.lastQueryTerms?.length&&ic(a,r.lastQueryTerms)<oc?{trigger:!1,reason:"same_topic"}:{trigger:!0,text:o.text,terms:a,segmentCount:o.segmentCount}:{trigger:!1,reason:"no_speech"}}const l_=["personal","organization","connections","flows","work","administration","ai"],d_="navNotice",kt={NL:{callingCode:"31",trunkPrefix:"0",nsnMin:7,nsnMax:9},BE:{callingCode:"32",trunkPrefix:"0",nsnMin:8,nsnMax:9},LU:{callingCode:"352",nsnMin:6,nsnMax:9},DE:{callingCode:"49",trunkPrefix:"0",nsnMin:6,nsnMax:13},FR:{callingCode:"33",trunkPrefix:"0",nsnMin:9,nsnMax:9},GB:{callingCode:"44",trunkPrefix:"0",nsnMin:9,nsnMax:10},IE:{callingCode:"353",trunkPrefix:"0",nsnMin:7,nsnMax:9},ES:{callingCode:"34",nsnMin:9,nsnMax:9},PT:{callingCode:"351",nsnMin:9,nsnMax:9},IT:{callingCode:"39",nsnMin:6,nsnMax:11},AT:{callingCode:"43",trunkPrefix:"0",nsnMin:7,nsnMax:13},CH:{callingCode:"41",trunkPrefix:"0",nsnMin:9,nsnMax:9},DK:{callingCode:"45",nsnMin:8,nsnMax:8},SE:{callingCode:"46",trunkPrefix:"0",nsnMin:7,nsnMax:13},NO:{callingCode:"47",nsnMin:8,nsnMax:8},FI:{callingCode:"358",trunkPrefix:"0",nsnMin:5,nsnMax:12},PL:{callingCode:"48",nsnMin:9,nsnMax:9},US:{callingCode:"1",nsnMin:10,nsnMax:10},CA:{callingCode:"1",nsnMin:10,nsnMax:10}},uc="NL",f_=15,p_=8,m_=Array.from(new Set(Object.values(kt).map(e=>e.callingCode))).sort((e,t)=>t.length-e.length);function Zr(e){if(e)return kt[e.trim().toUpperCase()]}function Be(e,t){return e.length>=t.nsnMin&&e.length<=t.nsnMax}function Jr(e){if(e.length>f_)return null;for(const t of m_){if(!e.startsWith(t))continue;const n=e.slice(t.length);for(const r of Object.values(kt)){if(r.callingCode!==t)continue;const o=r.trunkPrefix,s=o&&n.startsWith(o)?n.slice(o.length):n;if(Be(s,r))return`+${t}${s}`}return null}return e.length<p_?null:`+${e}`}function g_(e){let t=e.trim();const n=t.match(/^(sips?|tel|whatsapp):/i);n&&(t=t.slice(n[0].length));const r=t.indexOf("@");return r>=0&&(t=t.slice(0,r)),t.trim()}function h_(e){if(!e)return!1;const t=e.indexOf("@");if(t<=0)return!1;const n=e.slice(0,t).trim();return!/^[+\d\s().-]+$/.test(n)}function hn(e,t){if(!e)return null;const n=g_(e);if(!n)return null;const r=n.startsWith("+"),o=n.replace(/\D/g,"");if(!o)return null;if(r)return Jr(o);if(o.startsWith("00"))return Jr(o.slice(2));const s=Zr(t)??Zr(uc);if(!s)return null;const a=s.trunkPrefix;if(a&&o.startsWith(a)){const i=o.slice(a.length);return Be(i,s)?`+${s.callingCode}${i}`:null}if(o.startsWith(s.callingCode)){const i=o.slice(s.callingCode.length);if(Be(i,s))return`+${s.callingCode}${i}`}return!a&&Be(o,s)?`+${s.callingCode}${o}`:null}function y_(e,t=9){const n=(e??"").replace(/\D/g,"");return n.length<t?null:n.slice(-t)}function ar(e){if(!e)return null;const t=e.trim().toLowerCase(),n=t.lastIndexOf("@");if(n<=0||n===t.length-1)return null;const r=t.slice(0,n).split("+")[0],o=t.slice(n+1);return!r||!o.includes(".")?null:`${r}@${o}`}function b_(e){const t=ar(e);return t?t.slice(t.lastIndexOf("@")+1):null}const __=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","co.nz","com.br","co.za"]);function lc(e){if(!e)return null;const t=e.trim().toLowerCase().replace(/\.$/,"").split(".").filter(Boolean);if(t.length<2)return null;const n=t.slice(-2).join(".");return __.has(n)&&t.length>=3?t.slice(-3).join("."):n}const dc=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","hotmail.nl","hotmail.be","hotmail.co.uk","live.com","live.nl","live.be","msn.com","yahoo.com","yahoo.co.uk","ymail.com","icloud.com","me.com","mac.com","aol.com","gmx.net","gmx.de","web.de","protonmail.com","proton.me","pm.me","tutanota.com","zoho.com","mail.com","ziggo.nl","kpnmail.nl","planet.nl","home.nl","casema.nl","chello.nl","xs4all.nl","telfort.nl","hetnet.nl","zonnet.nl","upcmail.nl","quicknet.nl","telenet.be","skynet.be","proximus.be","scarlet.be"]);function E_(e){const t=lc(e);return t?dc.has(t):!1}function S_(e){if(!e)return!1;const t=e.trim().toLowerCase();return t==="tel"||t==="sms"||t==="whatsapp"||t==="fax"}function I_(e,t,n){if(!e||!t)return null;const r=e.trim().toLowerCase();if(r==="tel"||r==="sms"||r==="whatsapp"){const s=hn(t,n);return s?`tel:${s}`:null}if(r==="fax"){const s=hn(t,n);return s?`fax:${s}`:null}if(r==="mailto"||r==="email"){const s=ar(t);return s?`mailto:${s}`:null}const o=t.trim().toLowerCase();return o?`${r}:${o}`:null}const A_=[/<blockquote/i,/class="?gmail_quote/i,/id="?[^"]*divRplyFwdMsg/i,/id="?[^"]*mail-editor-reference-message-container/i,/-{3,}\s*Original Message\s*-{3,}/i,/\n_{5,}\s*\n/,/\bOn\b[\s\S]{0,200}?\bwrote:/i],eo=/^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i,C_=/^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;function v_(e){const t=e.split(`
|
|
30
|
+
`);for(let n=0;n<t.length;n++)if(C_.test(t[n])||eo.test(t[n])&&t.slice(n+1,n+4).some(r=>eo.test(r)))return t.slice(0,n).join(`
|
|
31
|
+
`).trim();return e}const T_=/^(?:https?:|mailto:|tel:)/i,k_=/^(?:https?:|cid:|data:image\/)/i;function Ft(e,t){const n=e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`,"i"));return(n?.[1]??n?.[2]??n?.[3]??"").trim()}const O_=/(!\[[^\]]*\]\([^)]*\))/;function to(e){return e.replace(/\s+/g," ").trim().split(O_).map((t,n)=>n%2===1?t:t.replace(/[[\]]/g,"\\$&")).join("")}function jt(e){return e.replace(/[()\s<>"]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)}function M_(e){return e.replace(/<img\b([^>]*?)\/?>/gi,(n,r)=>{const o=Ft(r,"src");return k_.test(o)?`})`:""}).replace(/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,(n,r,o)=>{const s=to(o.replace(/<[^>]*>/g,"")),a=Ft(r,"href");return T_.test(a)?`[${s||jt(a)}](${jt(a)})`:s})}const R_=/<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i,N_=/<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi,D_=/<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;function w_(e,t){return/<table\b/i.test(e)||e.includes(`
|
|
30
32
|
|
|
31
|
-
|`)||t.includes("![")||t.length>200}const
|
|
33
|
+
|`)||t.includes("![")||t.length>200}const x_=40,P_={left:"---",center:":---:",right:"---:"};function L_(e){const t=e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);return t?t[1].toLowerCase():"left"}function $_(e){return e.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().replace(/\|/g,"\\|")}function K_(e){const t=[];for(const a of e.matchAll(N_)){const i=[];for(const u of a[1].matchAll(D_)){const c=$_(u[3]);if(w_(u[3],c))return null;i.push({text:c,align:L_(u[2])})}if(i.length===0)return null;i.some(u=>u.text!=="")&&t.push(i)}const n=t[0]?.length??0;if(t.length<2||n<2||t.some(a=>a.length!==n))return null;const r=a=>`| ${a.map(i=>i.text).join(" | ")} |`,o=t[1].map(a=>P_[a.align]).join(" | "),s=t.slice(1).map(r).join(`
|
|
32
34
|
`);return`
|
|
33
35
|
|
|
34
36
|
${r(t[0])}
|
|
35
37
|
| ${o} |
|
|
36
38
|
${s}
|
|
37
39
|
|
|
38
|
-
`}function
|
|
39
|
-
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function
|
|
40
|
+
`}function U_(e){return e.replace(/<\/(t[dh])\s*>/gi," ").replace(/<\/tr\s*>/gi,`
|
|
41
|
+
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi,"").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi,"")}function B_(e){let t=e;for(let n=0;n<x_;n++){const r=R_.exec(t);if(!r||r.index===void 0)break;const s=K_(r[1])??`
|
|
40
42
|
|
|
41
|
-
${
|
|
43
|
+
${U_(r[1])}
|
|
42
44
|
|
|
43
|
-
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function
|
|
44
|
-
`),t&&(n=
|
|
45
|
+
`;t=t.slice(0,r.index)+s+t.slice(r.index+r[0].length)}return t}function no(e,t){let n=e;return n=n.replace(/<(script|style)[\s\S]*?<\/\1>/gi,""),n=n.replace(/<!--[\s\S]*?-->/g,""),n=n.replace(/<br\s*\/?>/gi,`
|
|
46
|
+
`),t&&(n=B_(M_(n))),n=n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi,`
|
|
45
47
|
|
|
46
48
|
`),n=n.replace(/<\/(div|li|tr)>/gi,`
|
|
47
|
-
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function
|
|
49
|
+
`),n=n.replace(/<\/(td|th)>/gi," "),n=n.replace(/<[^>]+>/g,""),n=n.replace(/<[^>]*$/,""),n}function ro(e){return!Number.isInteger(e)||e<0||e>1114111?null:String.fromCodePoint(e)}const F_={euro:"€",pound:"£",yen:"¥",cent:"¢",copy:"©",reg:"®",trade:"™",deg:"°",plusmn:"±",times:"×",middot:"·",bull:"•",hellip:"…",mdash:"—",ndash:"–",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",apos:"'"};function oo(e){return e.replace(/ /gi," ").replace(/&([a-z]+);/gi,(t,n)=>F_[n.toLowerCase()]??t).replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/&#(\d+);/g,(t,n)=>ro(Number(n))??t).replace(/&#x([0-9a-f]+);/gi,(t,n)=>ro(parseInt(n,16))??t).replace(/&/gi,"&")}function so(e){return e.replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/ *\n */g,`
|
|
48
50
|
`).replace(/\n{3,}/g,`
|
|
49
51
|
|
|
50
|
-
`).trim()}const nc=/<\s*(html|body|div|p|table|br|span)\b/i;function d_(e){return nc.test(e)}function f_(e){return rc(e,!1)}function p_(e){return rc(e,!0)}function rc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of Hb){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=Qr(Xr(Yr(r,t)));return o||(o=Qr(Xr(Yr(e,t)))),Yb(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=Ku;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=ga;exports.AGREEMENT_SCOPE_KIND=fa;exports.AGREEMENT_TRANSITIONS=lo;exports.AI_ATTACHMENT_LIMITS=Oa;exports.AI_ATTACHMENT_MAX_PER_TURN=Jh;exports.AI_ATTACHMENT_TURN_BUDGET=Zh;exports.AI_CAPABILITIES=ft;exports.AI_TOOL_PROVIDER_GROUP=ty;exports.AI_VENDORS=bn;exports.ALLOWED_LINK_SCHEMES=So;exports.APP_PERMISSIONS=tb;exports.ARTICLE_SCOPE_KIND=Ud;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Io;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=pt;exports.ASSET_GROUP_SEEDS=bd;exports.ASSIGNMENT_SCOPE_KIND=Oo;exports.ASSIST_BANDS=sy;exports.ASSIST_SOURCE_PROVIDER_GROUP=oy;exports.ATTENTION_STATUSES=Es;exports.AT_RISK_GAP=Hi;exports.AUTH_APP_NAME=La;exports.AUTO_READY_MIN_PROPOSALS=gi;exports.AUTO_READY_RATE=hi;exports.ActivityTypeRegistry=ro;exports.BOOKABLE_KINDS=sa;exports.BOOKABLE_ROUTES=ly;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=cy;exports.BOOKKEEPING_PROVIDER_GROUP=uy;exports.BOOKKEEPING_ROUTES=dy;exports.BUILT_IN_ONLY=Ac;exports.BULK_PENALTY=Is;exports.BUSINESS_ENTITY_LIST_SERVICE=ll;exports.BUSINESS_ENTITY_PARAM=Gn;exports.CADENCE_FLOOR_MS=Ha;exports.CADENCE_MIN_NEW_SEGMENTS=qa;exports.CADENCE_MIN_NOVELTY=Ya;exports.CADENCE_WINDOW_MS=Va;exports.CAPITALIZATION_THRESHOLD_CENTS=ds;exports.CLASSIFY_VARS=Op;exports.CLEARABLE_FIELDS=Ng;exports.COMPANY_RECEIVABLES_SERVICE=ph;exports.CONNECTOR_PROVIDER_GROUP=xy;exports.CONTEXT_COLLECT_SERVICE=Py;exports.CORE_DIMENSIONS=mu;exports.CRM_ACTIVITY_SCOPE_KIND=Wl;exports.CRM_CALL_CHANNELS=Hl;exports.CRM_CALL_LOGGED=es;exports.CRM_CALL_OUTCOMES=ql;exports.CRM_NOTE_ADDED=Jo;exports.CRM_STAGE_CHANGED=Vl;exports.CUSTOM_RESOLUTION_PREFIX=Pd;exports.CommunicationScheme=wa;exports.DAY_MS=ps;exports.DEFAULT_CHECK_IN_DAYS=Wi;exports.DEFAULT_DUNNING_POLICY=jg;exports.DEFAULT_FORECAST_WEEKS=Js;exports.DEFAULT_MEMORY_BUDGET=Mf;exports.DEFAULT_NUMBER_PADDING=Zg;exports.DEFAULT_PHONE_REGION=Ja;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=Fg;exports.DEFAULT_TEMPLATE_CONDITIONS=Ug;exports.DEFAULT_TOLERANCE=Mi;exports.DEFAULT_WORKSPACES=na;exports.DEMAND_SOURCE_PROVIDER_GROUP=Vf;exports.DOCUMENT_APPLY_SERVICE=qy;exports.DOCUMENT_DESCRIBE_SERVICE=Vy;exports.DOCUMENT_INSPECT_SERVICE=Hy;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Io;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Yt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Eo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=pt;exports.DOCUMENT_MAX_TOTALS_ROWS=zt;exports.DOCUMENT_OPERATIONS=Zn;exports.DRAFT_FIELDS=Rg;exports.DUTCH_SLOT_LABELS=aa;exports.EMPTY_WORKFLOW=xp;exports.ENABLED_TRANSACTION_KINDS=Wn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=as;exports.FEATURE_MESSAGE_REACTIONS=Dy;exports.FEATURE_REMOTE_SEARCH=Ny;exports.FIXED_KINDS=yt;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=St;exports.FIXED_UNITS=Ol;exports.FOLLOW_UP_HOURS=Ss;exports.FROZEN_WRITABLE_FIELDS=Og;exports.HOUR_MS=fs;exports.HTML_BODY_RE=nc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=zy;exports.INTERACTION_KIND=li;exports.InteractionParticipantRole=My;exports.KB_FALLBACK_LOCALE=xs;exports.KB_LOCALES=tt;exports.LEAD_STATUSES=Kl;exports.LEDGER_TEMPLATES=ef;exports.LEGAL_FORMS=dl;exports.LIFECYCLE_STAGES=$l;exports.LOCALES=tt;exports.LOOSE_STATUSES=At;exports.MAIL_HINT_HEADERS=bs;exports.MANUAL_PRICE_SOURCE=Fo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=Mo;exports.MAX_BLOCKS=Bt;exports.MAX_CHOICE_OPTIONS=Wt;exports.MAX_COLLECTION_DEPTH=On;exports.MAX_DELEGATION_DEPTH=Ro;exports.MAX_EDITABLE_FILE_BYTES=Sb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Cf;exports.MAX_MEMORY_BUDGET=Of;exports.MAX_MEMORY_CHARS=vf;exports.MAX_RULE_DEPTH=cn;exports.MAX_SCORE_LEVELS=Ht;exports.MAX_SHOWN_KEYS=Za;exports.MAX_TOPIC_CANDIDATES=Qi;exports.MAX_TOPIC_EXAMPLES=Xi;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=Ab;exports.MICROS_PER_CENT=jo;exports.MIN_MEMORY_BUDGET=kf;exports.MIN_SCORE_LEVELS=Vt;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=xb;exports.NL_BV_TEMPLATE=$s;exports.NL_PAYMENT_TERMS=oh;exports.NL_TAX_CODES=Df;exports.NL_TAX_RATES=Nf;exports.NL_VAT_BOXES=Ri;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Jy;exports.OFF_TRACK_GAP=qi;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=Lf;exports.PAUSE_HOLD=it;exports.PAUSE_SNOOZED=ot;exports.PAUSE_WAITING_FOR_CUSTOMER=st;exports.PAYMENT_TERM_METHODS=th;exports.PAYROLL_CATEGORIES=Ks;exports.PHONE_REGIONS=Tt;exports.PLAYBOOK_RUN_APPROVAL_ACT=gp;exports.PLAYBOOK_RUN_SCOPE_KIND=ii;exports.PRESENCE_ONLINE_WINDOW_MS=Jn;exports.PRESENCE_SURVIVES_OFFLINE=xa;exports.PRICE_PERS=Rc;exports.PRODUCT_SCOPE_KIND=da;exports.PROFILE_TOOL_DISPOSITIONS=Kf;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=Oy;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ky;exports.PROVISIONING_ROUTES=ab;exports.PROVISIONING_SOURCE_GROUP=ib;exports.PUBLIC_EMAIL_DOMAINS=tc;exports.PURCHASE_KINDS=vi;exports.PURCHASE_ORDER_KIND=Qp;exports.READ_STEP_TYPES=Zt;exports.RECEIPT_BOOK_ACT=rl;exports.RECEIPT_SCOPE_KIND=nl;exports.RELATED_SUBJECT_KINDS=js;exports.REPORT_VIEW_LAYOUTS=pu;exports.RESERVED_SEGMENTS=ta;exports.RESERVED_STATUS_KEYS=Xn;exports.RESERVED_TYPE_KEYS=Sh;exports.RESOURCE_ATTACHED_SERVICE=db;exports.RESOURCE_DESCRIBE_SERVICE=cb;exports.RESOURCE_RESOLVE_SERVICE=lb;exports.RESOURCE_SEARCH_SERVICE=ub;exports.SALES_KINDS=It;exports.SALES_SCOPE_KINDS=la;exports.SCHEDULE_ENTRY_SCOPE_KIND=ei;exports.SCHEDULE_EVENT=wi;exports.SCOPE_ACTS_ROUTE=gb;exports.SCOPE_READ_ROUTE=mb;exports.SCOPE_RELATED_ROUTE=pb;exports.SEGMENT_FILTER_KEYS=Bl;exports.SEGMENT_LAYOUTS=jl;exports.SEGMENT_LIST_FILTERS=Qo;exports.SEGMENT_PRESENCE_FILTERS=Zo;exports.SEGMENT_SORT_FIELDS=Fl;exports.SENDING_STALE_MS=cl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=wb;exports.SIGNATURE_INTENTS=Dl;exports.SLA_METRICS=xm;exports.SLA_PAUSE_REASONS=Pm;exports.STATUS_NAMES=Tg;exports.STEP_MAX_TOKENS_MAX=pi;exports.STEP_MAX_TOKENS_MIN=fi;exports.STEP_TYPES=wp;exports.STRATEGY_ITEM_SCOPE_KIND=ji;exports.SUMMARY_MIN_LAST_CHARS=ys;exports.SUMMARY_MIN_MESSAGES=hs;exports.SYNC_RUN_MAX_ERRORS=Cb;exports.SYNC_TARGET_PROVIDER_GROUP=Tb;exports.SYSTEM_ONE_NON_GOALS=ru;exports.SYSTEM_RESOLUTIONS=Rs;exports.TERMINAL_ASSIGNMENT_STATUSES=ko;exports.TERMINAL_RUN_STATUSES=yi;exports.TRANSACTION_KINDS=ra;exports.TRIGGER_VARS=vp;exports.UNARY_OPS=gm;exports.UNKNOWN_KIND=Ws;exports.UNKNOWN_LEVEL_ORDER=Gi;exports.UNSUPPORTED=wy;exports.UNWORKED_RESOLUTIONS=xd;exports.USAGE_DIMENSIONS=ho;exports.USAGE_DIMENSION_IDS=yo;exports.USAGE_RECORDS_ROUTE=Rl;exports.USAGE_SOURCE_PROVIDER_GROUP=Ml;exports.UnresolvedRefError=Bn;exports.WEBHOOK_EVENTS=ya;exports.WORKSTREAM_SCOPE_KIND=ti;exports.WORK_ACTIVITY_SCOPE_KIND=Ea;exports.WORK_AREAS=$f;exports.WORK_COMMENT_ADDED=yh;exports.WORK_CYCLE_SYNC_KIND=kh;exports.WORK_ITEM_ASSIGNED=bh;exports.WORK_ITEM_SCOPE_KIND=ba;exports.WORK_ITEM_STATUS_CHANGED=_h;exports.WORK_PROJECT_SCOPE_KIND=_a;exports.WORK_SORT_FIELDS=Yh;exports.WORK_VIEW_FLAGS=qh;exports.WORK_VIEW_LAYOUTS=zh;exports.WORK_VIEW_LIST_FILTERS=Hh;exports.W_PRIORITY=Ie;exports.XAF_NAMESPACE=Bs;exports.acceptExampleCandidate=yg;exports.accountTotals=Hd;exports.accountTypeOf=Ef;exports.accrualPostings=pd;exports.actingIdentityKey=oi;exports.activeWorkTypes=gg;exports.activityIconOf=uc;exports.activityJoinUrl=_c;exports.activitySnippet=to;exports.activityTextParams=no;exports.activityTimelineText=bc;exports.activityTimestamp=oo;exports.activityTypeInfo=j;exports.actorKey=mp;exports.addExampleCandidate=hg;exports.addMonths=me;exports.addWorkingMs=bt;exports.agePresenceEntry=rb;exports.aggregateUsage=Go;exports.agingBucketOf=ha;exports.agingOf=fh;exports.agreementEffectiveEnd=Wc;exports.agreementFromQuote=xc;exports.agreementHref=zg;exports.agreementScopeKey=Yg;exports.aiAttachmentKind=ka;exports.aiAttachmentRejection=ey;exports.aiBudgetLimit=qt;exports.aiBudgetPeriodKey=lu;exports.aiBudgetPeriodStart=go;exports.aiBudgetState=uu;exports.aiVendorAcceptsAttachment=cu;exports.aiVendorDefaultModel=su;exports.aiVendorLabel=ou;exports.aiVendorNeedsBaseUrl=au;exports.aiVendorsWith=iu;exports.allocate=Te;exports.allocateInvoice=nm;exports.appNameFromPath=$a;exports.applyApprovalDecision=ku;exports.applyRounding=lg;exports.applySignature=wl;exports.approvalRate=mi;exports.artifactBodyBytes=Co;exports.artifactOutline=vo;exports.artifactToMarkdown=En;exports.assignmentMismatch=Ep;exports.assignmentScopeKey=Bu;exports.assignmentSubject=Gu;exports.availabilityByPerson=Wf;exports.awaitsNumber=Mg;exports.balanceSheet=Xd;exports.belongsOnCalendar=Uf;exports.belongsToEntity=fl;exports.billableTimeGroups=cg;exports.billedQuantity=Ho;exports.bindParams=fm;exports.bindValue=nt;exports.bookingDocumentOf=kg;exports.bookingDocumentOfReceipt=sl;exports.bookingLinesOf=$o;exports.bookingSyncKey=il;exports.buildActivityPreview=Ic;exports.buildChannelIntents=by;exports.buildNavModel=Zy;exports.buildShareKeys=Pu;exports.buildWindow=Qa;exports.businessEntitySender=rs;exports.calendarDaysBetween=Vs;exports.calendarOf=_t;exports.canConvert=Dg;exports.canMoveAgreement=jc;exports.canNestUnder=jd;exports.canParent=zm;exports.canTransition=Cg;exports.canonicalJson=Qt;exports.capabilityDefaultFlag=zc;exports.capacityTotal=jf;exports.capacityWeights=lp;exports.capitalizationThreshold=yd;exports.carriesText=mc;exports.cashForecast=Zd;exports.categoryLabel=Wd;exports.categoryOf=Aa;exports.causedBy=Im;exports.changesBilledLine=Vc;exports.channelKindForScheme=vy;exports.channelKindOf=lc;exports.checkInOverdueMs=ig;exports.clampStepMaxTokens=Dp;exports.classifyMail=vd;exports.cleanMessageMarkdown=p_;exports.cleanMessageText=f_;exports.cleanReceiptLines=qp;exports.codeQuery=hl;exports.codedMessage=Sy;exports.columnBalance=Qd;exports.companyReceivablesOf=mh;exports.compareAssistRank=ay;exports.compareReports=Vd;exports.compareWorkTypes=zi;exports.conditionHolds=ns;exports.contactName=Ul;exports.contractSignals=Vp;exports.copyFrom=ia;exports.correlationKeyFor=fy;exports.costInPricePeriod=Cl;exports.costOverYear=Yp;exports.countsAsPlanned=pe;exports.coverageByPerson=Gf;exports.coverageFor=Qf;exports.coversWorkstream=Dn;exports.crmActivityAt=zl;exports.cronMatches=Di;exports.currentAccountRelation=cd;exports.currentLines=Kc;exports.currentPeriod=eh;exports.cycleDayIndex=wn;exports.cycleOrder=Wh;exports.cycleState=Vh;exports.dealValueCents=Pc;exports.decideAssignmentState=Wu;exports.decideCadence=Db;exports.decideEach=Au;exports.decideIncomingCall=gy;exports.decisionBand=nu;exports.defaultLocaleOf=Ps;exports.defaultOffer=Ai;exports.defaultStatusKey=Ph;exports.defaultTemplateBlocks=ca;exports.defineIntent=Ry;exports.delegationRefusal=Vu;exports.demandFor=Xp;exports.depreciationParts=ls;exports.depreciationPostings=dd;exports.depthOf=Ds;exports.derivePresence=nb;exports.describeClause=Eu;exports.describeExpression=bm;exports.digitsOf=Wo;exports.disabledIntentsFromCapabilities=hy;exports.disposalLines=fd;exports.documentBodyBytes=Co;exports.documentKindOf=Yy;exports.documentOutline=vo;exports.documentToMarkdown=En;exports.documentToText=Wy;exports.driftedFields=Pi;exports.dueAtOf=Gm;exports.dueCharges=Uc;exports.dueDateFrom=nh;exports.dunningRunOf=Wg;exports.dunningStateOf=ua;exports.effectiveEndAt=Ee;exports.elapsedSeconds=ug;exports.emailDomain=Fb;exports.emptyConditionLeaf=hm;exports.endpointKey=Vb;exports.entityOwnerIds=pl;exports.entryLinesOf=uf;exports.entryNumber=nf;exports.entryProblems=tf;exports.erlangC=qs;exports.excessiveLending=ud;exports.expectedFor=Gp;exports.extractParams=Ua;exports.extractTerms=za;exports.failureLines=nd;exports.fieldVarPath=vm;exports.fillDocument=ed;exports.fillText=ts;exports.filterByEndpoint=Ey;exports.filterByIntent=_y;exports.filterByTargetScheme=Da;exports.filterableDimensions=_u;exports.findAiVendor=Ce;exports.findEvent=km;exports.finishedAt=Gc;exports.fixedLevelForName=Qm;exports.fixedTypeForName=Ch;exports.fixedTypes=vh;exports.flattenLocales=Xy;exports.floorToPeriod=fe;exports.forecastIntervals=ip;exports.formatActingIdentity=ri;exports.formatCents=H;exports.formatClock=fg;exports.formatHm=dg;exports.formatItemKey=Mh;exports.formatMicros=Il;exports.formatPeriod=de;exports.formatSeriesNumber=Jg;exports.formatSlaDuration=Hm;exports.freshSources=ry;exports.getActivitySeenUserIds=Tc;exports.getContactEndpoints=Ll;exports.getShortTitle=wd;exports.getUrgencyScore=Dd;exports.goodsReceiptProblems=Ii;exports.groupDocumentLines=ki;exports.hasReacted=im;exports.hashedPartOf=of;exports.healthCategory=Zm;exports.healthsInCategory=Jm;exports.heightOf=Mn;exports.helpCenterText=Kd;exports.humanizeAction=Tp;exports.interactionIdOf=di;exports.interestOnDailyBalance=sd;exports.interestPeriods=id;exports.isAgentUser=gh;exports.isAssigned=Rd;exports.isAssignmentTerminal=Uu;exports.isAssignmentTrigger=ci;exports.isAssistantMode=du;exports.isAuthoredCrmActivity=Yl;exports.isAutoReady=Kp;exports.isAutonomy=Ip;exports.isAwaitingThem=Ms;exports.isBookable=vg;exports.isChatMessageActivity=vc;exports.isClosed=Nd;exports.isConnectedType=hc;exports.isDescendant=ws;exports.isEligible=_d;exports.isEmailActivity=Cc;exports.isFrozen=Vn;exports.isHeldClock=jm;exports.isHtmlBody=d_;exports.isInFlight=Bp;exports.isInteractionUnseen=_s;exports.isLandingPath=bb;exports.isLikelyBulk=gs;exports.isMessageShape=fn;exports.isMessageType=dc;exports.isMoreSpecificPattern=Fa;exports.isNoteShape=pn;exports.isOpenClock=Fi;exports.isOutstanding=Yn;exports.isOutwardTool=Qn;exports.isOverdueOn=sh;exports.isParked=Ts;exports.isPaused=bi;exports.isPlaybookAuthoredType=gc;exports.isPricePer=wc;exports.isPublicEmailDomain=Gb;exports.isPublicPath=Ib;exports.isPurchasable=kl;exports.isRecurringLine=io;exports.isReminderActive=Cs;exports.isReplyableType=pc;exports.isResultAccount=ve;exports.isSellable=vl;exports.isSettingsPath=hb;exports.isSettled=ma;exports.isShorter=$c;exports.isSlaAtRisk=Od;exports.isSupportedCron=Em;exports.isTerminal=Up;exports.isThreadLongEnough=Sd;exports.isTranscriptType=yc;exports.isWebhookEvent=hh;exports.isWorkClosed=Lh;exports.isWorkTypeVisible=mg;exports.isWriteTool=er;exports.itemDossierKeys=Dh;exports.itemKeyOf=el;exports.judgeRuleCase=Sm;exports.kindFor=q;exports.ladderFor=Sa;exports.ledgerRuleFor=ul;exports.levelIn=Vi;exports.levelOrder=ct;exports.lineAffinity=Un;exports.lineKey=Mp;exports.lineNet=ht;exports.lineStatus=co;exports.lineTerm=U;exports.linkLabel=$d;exports.listedTransactionKinds=Ag;exports.listeningAllowed=fu;exports.loanPostings=ld;exports.loanSchedule=vn;exports.localeInstruction=Fd;exports.localeName=Bd;exports.localesOf=Gd;exports.looksLikeEmail=Ub;exports.lookup=Tn;exports.manualSettlement=ch;exports.marginCents=Mc;exports.markdownToDocument=Gy;exports.matchApprovalPolicy=Cu;exports.matchContactToIntents=Iy;exports.matchDocumentLines=Oi;exports.matchPublicRoute=ja;exports.matchRate=Vo;exports.matchRules=xi;exports.matchVerdict=rm;exports.mcpCredentialScope=Af;exports.mcpToolPrefix=Tf;exports.measureRatio=tg;exports.mergeDefaultFlags=Qc;exports.mergeShownKeys=Nb;exports.messageCountsAs=eo;exports.metricOption=Iu;exports.minutesOn=xn;exports.missingFieldPaths=Om;exports.modelAcceptsAttachment=Jc;exports.monthEnd=cs;exports.monthParts=ss;exports.monthlyPeriods=mf;exports.monthsIn=is;exports.mustAsk=Ga;exports.narrowAutonomy=Ap;exports.navLabelText=Qy;exports.needsPhoneRegion=Wb;exports.nestsUnderParent=fc;exports.nextLevelBelow=Xm;exports.nextOccurrenceDates=Gh;exports.nextSlaClock=Wm;exports.nextStatuses=oa;exports.nextVersion=wg;exports.normalizeArtifactBlocks=To;exports.normalizeBlocks=ic;exports.normalizeDocumentBlocks=To;exports.normalizeEmail=tr;exports.normalizeExample=te;exports.normalizeGtin=Ko;exports.normalizeIban=Xo;exports.normalizeIbans=Pl;exports.normalizeMeter=Yo;exports.normalizeUsageSource=Nl;exports.normalizeVatNumber=xl;exports.noticeDeadline=yn;exports.notificationPrefKey=eb;exports.novelty=Xa;exports.offerValid=Si;exports.openCentsOf=qu;exports.operationDescriptor=Fy;exports.operationsForKind=By;exports.opsForFieldType=Cm;exports.orderForDocument=Zp;exports.organizationSender=td;exports.outcomeOf=Bh;exports.overlap=dt;exports.overlapSeconds=Le;exports.overlaps=Xf;exports.ownWorkspaceKey=_g;exports.paceRatio=ng;exports.parkMarksById=Ed;exports.parse=Ni;exports.parseActingIdentity=fp;exports.parseAmount=kc;exports.parseCamt053=Do;exports.parseClockMinutes=Dm;exports.parseCodedMessage=Ty;exports.parseCron=Fn;exports.parseItemKey=Rh;exports.parseLineKey=Rp;exports.parseMicros=An;exports.parseMt940=xo;exports.parsePackingSlip=em;exports.parseRateCsv=Sl;exports.parseRatePrice=Xt;exports.parseRecurrence=jh;exports.parseStatement=Ju;exports.parseWorkspacePath=Ig;exports.parseXafOpening=_f;exports.partialDisposalLines=hd;exports.pathToRegex=Ka;exports.patternFor=Ln;exports.patternStartTime=Pn;exports.pauseBitFor=wm;exports.paymentOfItem=zu;exports.paymentStateOf=qn;exports.pendingApprovers=vu;exports.periodAt=We;exports.periodOf=gf;exports.periodShare=ao;exports.periodsInRange=yu;exports.phoneSuffix=Bb;exports.pickMailHeaders=Ad;exports.pickTemplate=Ql;exports.placeLumps=dp;exports.plainTextFromMarkdown=Zr;exports.planSlaEvent=Fm;exports.plannedBillable=Zf;exports.plannedWorkTypeKey=Zs;exports.priceOver=lt;exports.procedureOf=Lp;exports.productCost=Ci;exports.productHref=qg;exports.productScopeKey=Vg;exports.profitAndLoss=zd;exports.projectDossierKeys=wh;exports.proposalRequestIds=Tu;exports.proposeMatch=Hu;exports.publicBasePathFor=Ba;exports.publicRoutePatterns=Eb;exports.quantityKey=Yc;exports.rateRecords=Tl;exports.reactionWakesAssignment=ju;exports.readDefaultFlags=Xc;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=ol;exports.receiptProblems=Lo;exports.receiptState=Hp;exports.receiptTotals=Po;exports.receivableRowOf=dh;exports.receivedFor=Ei;exports.recencyOf=As;exports.recipientLocale=Xl;exports.reconciliationBalances=Yu;exports.refKey=$n;exports.registrableDomain=ec;exports.rejectExampleCandidate=Ji;exports.relatedByDefault=Rf;exports.remainingMsOf=at;exports.repriceLines=El;exports.requiredAgents=Xs;exports.requirementFor=Qs;exports.resolutionsFor=Ld;exports.resolveAccountCapabilities=Na;exports.resolveActivityText=je;exports.resolveAutonomy=Sp;exports.resolveChannelIntents=Ra;exports.resolvePrice=Bo;exports.resolveRateCard=bl;exports.resolveRoute=eu;exports.resolveSignature=zo;exports.resolveTier=mo;exports.resolveWorkMode=ob;exports.resolveWorkspace=Eg;exports.resourceKindOf=fb;exports.restate=so;exports.retryDelayMinutes=al;exports.reversedLines=sf;exports.rhythmOf=mn;exports.rollupChildren=sg;exports.roundHalfUp=L;exports.runActor=pp;exports.runApprovalKey=hp;exports.runEvalSuite=rd;exports.runIdOfApprovalRef=yp;exports.runInteractionId=jp;exports.runKind=$p;exports.runOutcome=Tm;exports.runSpans=Fc;exports.sanitizeInline=Ao;exports.sanitizeTranscript=Wa;exports.scheduleEntryScopeKey=ap;exports.scoreInteraction=Md;exports.scoreWorkItem=Ih;exports.segmentIsEmpty=Gl;exports.selectLenses=Sf;exports.serialize=$e;exports.seriesStart=gn;exports.serviceLevel=Ys;exports.sessionsHoldCannotReach=my;exports.sessionsToHold=py;exports.settingsPath=yb;exports.settlementPatch=ah;exports.shadowByKey=ml;exports.shareKeyForTeam=Sn;exports.shareKeyForUser=In;exports.shareKeysForViewer=Lu;exports.shortTermPrincipal=gd;exports.shortfalls=Jf;exports.shouldRunAudioPipeline=sb;exports.slaBadgeTone=Vm;exports.slaHoursByInbox=kd;exports.slaHoursFor=Os;exports.slipProposal=Jp;exports.sortStatuses=Ta;exports.sourceKey=Ma;exports.splitLine=Hc;exports.spread=kn;exports.spreadOverWeights=ni;exports.startingCents=md;exports.statusIn=xh;exports.statusRequiresApproval=Uh;exports.stepDate=va;exports.stepsOf=Pp;exports.strategyAncestorKeysFor=Ym;exports.strategyDossierKeys=qm;exports.strategyItemScopeKey=jn;exports.stripHtml=Jr;exports.subjectKeyOf=Fp;exports.subjectOf=Kn;exports.subjectRef=iy;exports.suggestProjectKey=Nh;exports.suggestTreatments=tl;exports.suggestedHealth=rg;exports.summariseEval=os;exports.summarizeReactions=om;exports.targetById=_p;exports.targetForActivityType=bp;exports.targetOrder=ag;exports.taxCodeProblem=xf;exports.taxDateOf=J;exports.taxPercentOn=Nn;exports.taxRateFor=Gs;exports.taxRatesOn=wf;exports.termEndAt=ne;exports.termStartAt=hn;exports.termsFor=Hs;exports.tieredMicros=qo;exports.timingOf=uo;exports.toActingIdentity=si;exports.toE164=dn;exports.toProductUnits=Ti;exports.toTransactionTerm=rh;exports.toolBareName=ui;exports.toolDisplayName=Cp;exports.toolReversible=ny;exports.toolSourceKinds=$u;exports.toolVerdict=kb;exports.topicOfferedForTeam=ea;exports.topicsForTeam=bg;exports.trafficIntensity=zs;exports.transactionContext=xg;exports.transactionDossierKeys=Qg;exports.transactionHref=Hg;exports.transactionIdFromScope=Xg;exports.transactionKind=F;exports.transactionScopeKey=pa;exports.transactionSlots=Pg;exports.transactionTotals=Pf;exports.transitoryLines=cf;exports.triggerFillsVar=kp;exports.truncateExample=Zi;exports.typeIn=Th;exports.typesFor=Ah;exports.uniqueWorkStatusKey=$h;exports.uniqueWorkTypeKey=pg;exports.usageAccountOf=po;exports.usageAccountsOf=qc;exports.usageMetricId=bo;exports.usageMetrics=Su;exports.validateQuestions=tu;exports.validateStatuses=Kh;exports.valueAtPath=ai;exports.variableJump=_i;exports.vatPeriods=cm;exports.vatReturn=am;exports.waitHoursOf=gt;exports.wakesAssignment=Fu;exports.withLineIds=Np;exports.workActivityScopeKey=Oh;exports.workItemScopeKey=Ia;exports.workProjectScopeKey=zn;exports.workRatio=og;exports.workStatusKey=Ca;exports.workTypeKey=Yi;exports.workingMsBetween=rt;exports.workspacePath=Sg;exports.workstreamScopeKey=cp;exports.xafAuditfile=yf;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Jd;
|
|
52
|
+
`).trim()}const fc=/<\s*(html|body|div|p|table|br|span)\b/i;function j_(e){return fc.test(e)}function G_(e){return pc(e,!1)}function W_(e){return pc(e,!0)}function pc(e,t){if(typeof e!="string"||!e)return"";let n=e.length;for(const a of A_){const i=e.search(a);i>=0&&i<n&&(n=i)}const r=e.slice(0,n);let o=so(oo(no(r,t)));return o||(o=so(oo(no(e,t)))),v_(o)||o}exports.ACTIVE_ASSIGNMENT_STATUSES=qu;exports.ACTIVITY_CATALOG=X;exports.AGING_BUCKETS=Ca;exports.AGREEMENT_SCOPE_KIND=_a;exports.AGREEMENT_TRANSITIONS=_o;exports.AI_ATTACHMENT_LIMITS=$a;exports.AI_ATTACHMENT_MAX_PER_TURN=Ty;exports.AI_ATTACHMENT_TURN_BUDGET=vy;exports.AI_CAPABILITIES=pt;exports.AI_TOOL_PROVIDER_GROUP=Oy;exports.AI_VENDORS=An;exports.ALLOWED_LINK_SCHEMES=Ro;exports.APP_PERMISSIONS=Db;exports.ARTICLE_SCOPE_KIND=sf;exports.ARTIFACT_MAX_BLOCKS=qe;exports.ARTIFACT_MAX_BODY_BYTES=Mo;exports.ARTIFACT_MAX_CELL_LEN=ce;exports.ARTIFACT_MAX_KPI_ITEMS=Qe;exports.ARTIFACT_MAX_LIST_ITEMS=Ye;exports.ARTIFACT_MAX_TABLE_COLUMNS=Xe;exports.ARTIFACT_MAX_TABLE_ROWS=ze;exports.ARTIFACT_MAX_TEXT_LEN=mt;exports.ASSET_GROUP_SEEDS=Kd;exports.ASSIGNMENT_SCOPE_KIND=Lo;exports.ASSIST_BANDS=Dy;exports.ASSIST_SOURCE_PROVIDER_GROUP=Ny;exports.ATTENTION_STATUSES=ks;exports.AT_RISK_GAP=Ji;exports.AUTH_APP_NAME=Ha;exports.AUTO_READY_MIN_PROPOSALS=Ii;exports.AUTO_READY_RATE=Ai;exports.ActivityTypeRegistry=fo;exports.BOOKABLE_KINDS=fa;exports.BOOKABLE_ROUTES=$y;exports.BOOKABLE_SOURCE_PROVIDER_GROUP=Py;exports.BOOKKEEPING_PROVIDER_GROUP=Ly;exports.BOOKKEEPING_ROUTES=Ky;exports.BUILT_IN_ONLY=wc;exports.BULK_PENALTY=Os;exports.BUSINESS_ENTITY_LIST_SERVICE=_l;exports.BUSINESS_ENTITY_PARAM=At;exports.CADENCE_FLOOR_MS=nc;exports.CADENCE_MIN_NEW_SEGMENTS=rc;exports.CADENCE_MIN_NOVELTY=oc;exports.CADENCE_WINDOW_MS=tc;exports.CAPITALIZATION_THRESHOLD_CENTS=bs;exports.CLASSIFY_VARS=Yp;exports.CLEARABLE_FIELDS=rh;exports.COMPANY_ADDRESS_KINDS=Xl;exports.COMPANY_RECEIVABLES_SERVICE=Bh;exports.COMPANY_ROLE_KINDS=ed;exports.CONNECTOR_PROVIDER_GROUP=db;exports.CONTEXT_COLLECT_SERVICE=fb;exports.CORE_DIMENSIONS=Au;exports.CRM_ACTIVITY_SCOPE_KIND=ld;exports.CRM_CALL_CHANNELS=fd;exports.CRM_CALL_LOGGED=as;exports.CRM_CALL_OUTCOMES=pd;exports.CRM_NOTE_ADDED=is;exports.CRM_STAGE_CHANGED=dd;exports.CUSTOM_RESOLUTION_PREFIX=tf;exports.CommunicationScheme=Ga;exports.DAY_MS=Es;exports.DEFAULT_CHECK_IN_DAYS=Qi;exports.DEFAULT_DUNNING_POLICY=mh;exports.DEFAULT_FORECAST_WEEKS=ii;exports.DEFAULT_JUMP_PERCENT=Di;exports.DEFAULT_MEMORY_BUDGET=zf;exports.DEFAULT_NUMBER_PADDING=Ch;exports.DEFAULT_PHONE_REGION=uc;exports.DEFAULT_QUOTE_TEMPLATE_BLOCKS=ph;exports.DEFAULT_TEMPLATE_CONDITIONS=dh;exports.DEFAULT_TOLERANCE=Li;exports.DEFAULT_WORKSPACES=ua;exports.DEMAND_SOURCE_PROVIDER_GROUP=dp;exports.DOCUMENT_APPLY_SERVICE=Cb;exports.DOCUMENT_DESCRIBE_SERVICE=Ib;exports.DOCUMENT_INSPECT_SERVICE=Ab;exports.DOCUMENT_MAX_BLOCKS=qe;exports.DOCUMENT_MAX_BODY_BYTES=Mo;exports.DOCUMENT_MAX_CELL_LEN=ce;exports.DOCUMENT_MAX_KPI_ITEMS=Qe;exports.DOCUMENT_MAX_LETTERHEAD_FIELDS=Zt;exports.DOCUMENT_MAX_LIST_ITEMS=Ye;exports.DOCUMENT_MAX_RECIPIENT_LINES=Oo;exports.DOCUMENT_MAX_TABLE_COLUMNS=Xe;exports.DOCUMENT_MAX_TABLE_ROWS=ze;exports.DOCUMENT_MAX_TEXT_LEN=mt;exports.DOCUMENT_MAX_TOTALS_ROWS=Jt;exports.DOCUMENT_OPERATIONS=or;exports.DRAFT_FIELDS=nh;exports.DUTCH_SLOT_LABELS=ma;exports.EMPTY_WORKFLOW=em;exports.ENABLED_TRANSACTION_KINDS=Qn;exports.EXCESSIVE_LENDING_THRESHOLD_CENTS=ms;exports.FEATURE_MESSAGE_REACTIONS=ub;exports.FEATURE_REMOTE_SEARCH=cb;exports.FEED_COLUMNS=Hn;exports.FEED_EVERY_MS=ym;exports.FIXED_KINDS=_t;exports.FIXED_LEVELS=Oe;exports.FIXED_TYPES=vt;exports.FIXED_UNITS=Wl;exports.FOLLOW_UP_HOURS=Ms;exports.FROZEN_WRITABLE_FIELDS=eh;exports.HOUR_MS=_s;exports.HTML_BODY_RE=fc;exports.INELIGIBLE=ee;exports.INSTALLATION_HEADER=Tb;exports.INTERACTION_KIND=yi;exports.InteractionParticipantRole=ib;exports.KB_FALLBACK_LOCALE=Fs;exports.KB_LOCALES=nt;exports.LEAD_STATUSES=od;exports.LEDGER_TEMPLATES=Sf;exports.LEGAL_FORMS=El;exports.LIFECYCLE_STAGES=rd;exports.LOCALES=nt;exports.LOOSE_STATUSES=Tt;exports.MAIL_HINT_HEADERS=vs;exports.MANUAL_PRICE_SOURCE=zo;exports.MAX_ACTIONS=xe;exports.MAX_ASSIGNMENT_TURNS=$o;exports.MAX_BLOCKS=Gt;exports.MAX_CHOICE_OPTIONS=Yt;exports.MAX_COLLECTION_DEPTH=xn;exports.MAX_DELEGATION_DEPTH=Ko;exports.MAX_EDITABLE_FILE_BYTES=Jb;exports.MAX_FIELDS=De;exports.MAX_LIST_ITEMS=we;exports.MAX_MEMORY_BROWSE=Vf;exports.MAX_MEMORY_BUDGET=Yf;exports.MAX_MEMORY_CHARS=Hf;exports.MAX_RULE_DEPTH=pn;exports.MAX_SCORE_LEVELS=Xt;exports.MAX_SHOWN_KEYS=cc;exports.MAX_TOPIC_CANDIDATES=oa;exports.MAX_TOPIC_EXAMPLES=ra;exports.MAX_TOPIC_EXAMPLE_CHARS=Ke;exports.MAX_VIEWABLE_FILE_BYTES=e_;exports.MICROS_PER_CENT=Je;exports.MIN_MEMORY_BUDGET=qf;exports.MIN_SCORE_LEVELS=zt;exports.MISSING_PRICE_SOURCE=en;exports.MODEL_TIERS=ue;exports.NAV_NOTICE_SLOT=d_;exports.NL_BV_TEMPLATE=Ws;exports.NL_PAYMENT_TERMS=Nh;exports.NL_TAX_CODES=Zf;exports.NL_TAX_RATES=Qf;exports.NL_VAT_BOXES=$i;exports.NOTIFICATION_SOURCE_PROVIDER_GROUP=Rb;exports.OFF_TRACK_GAP=ea;exports.ONBOARDING_SOURCE_PROVIDER_GROUP=np;exports.PAUSE_HOLD=at;exports.PAUSE_SNOOZED=st;exports.PAUSE_WAITING_FOR_CUSTOMER=it;exports.PAYMENT_TERM_METHODS=kh;exports.PAYROLL_CATEGORIES=Vs;exports.PHONE_REGIONS=kt;exports.PLAYBOOK_RUN_APPROVAL_ACT=Pp;exports.PLAYBOOK_RUN_SCOPE_KIND=pi;exports.PRESENCE_ONLINE_WINDOW_MS=sr;exports.PRESENCE_SURVIVES_OFFLINE=Wa;exports.PRICE_PERS=Uc;exports.PRODUCT_SCOPE_KIND=ba;exports.PROFILE_TOOL_DISPOSITIONS=op;exports.PROVIDER_FEATURE_MESSAGE_TEMPLATES=sb;exports.PROVIDER_FEATURE_MESSAGE_WINDOW=ob;exports.PROVISIONING_ROUTES=Kb;exports.PROVISIONING_SOURCE_GROUP=$b;exports.PUBLIC_EMAIL_DOMAINS=dc;exports.PURCHASE_KINDS=wi;exports.PURCHASE_ORDER_KIND=Am;exports.READ_STEP_TYPES=rn;exports.RECEIPT_BOOK_ACT=fl;exports.RECEIPT_SCOPE_KIND=dl;exports.RELATED_SUBJECT_KINDS=zs;exports.REPORT_VIEW_LAYOUTS=Iu;exports.RESERVED_SEGMENTS=ca;exports.RESERVED_STATUS_KEYS=nr;exports.RESERVED_TYPE_KEYS=zh;exports.RESOURCE_ATTACHED_SERVICE=jb;exports.RESOURCE_DESCRIBE_SERVICE=Ub;exports.RESOURCE_RESOLVE_SERVICE=Fb;exports.RESOURCE_SEARCH_SERVICE=Bb;exports.SALES_KINDS=Ct;exports.SALES_SCOPE_KINDS=ya;exports.SCHEDULE_ENTRY_SCOPE_KIND=ai;exports.SCHEDULE_EVENT=Bi;exports.SCOPE_ACTS_ROUTE=Hb;exports.SCOPE_READ_ROUTE=Vb;exports.SCOPE_RELATED_ROUTE=Wb;exports.SEGMENT_FILTER_KEYS=id;exports.SEGMENT_LAYOUTS=cd;exports.SEGMENT_LIST_FILTERS=os;exports.SEGMENT_PRESENCE_FILTERS=ss;exports.SEGMENT_SORT_FIELDS=ad;exports.SENDING_STALE_MS=yl;exports.SETTINGS_BASE_PATH=Ae;exports.SETTINGS_CATEGORIES=l_;exports.SIGNATURE_INTENTS=Yl;exports.SLA_METRICS=ig;exports.SLA_PAUSE_REASONS=ag;exports.STATUS_NAMES=Xg;exports.STEP_MAX_TOKENS_MAX=Ei;exports.STEP_MAX_TOKENS_MIN=_i;exports.STEP_TYPES=Jp;exports.STRATEGY_ITEM_SCOPE_KIND=zi;exports.SUMMARY_MIN_LAST_CHARS=Cs;exports.SUMMARY_MIN_MESSAGES=As;exports.SYNC_RUN_MAX_ERRORS=n_;exports.SYNC_TARGET_PROVIDER_GROUP=t_;exports.SYSTEM_ONE_NON_GOALS=fu;exports.SYSTEM_RESOLUTIONS=$s;exports.TERMINAL_ASSIGNMENT_STATUSES=Po;exports.TERMINAL_RUN_STATUSES=Ci;exports.TRANSACTION_KINDS=la;exports.TRIGGER_VARS=Hp;exports.UNARY_OPS=Fm;exports.UNKNOWN_KIND=Qs;exports.UNKNOWN_LEVEL_ORDER=Xi;exports.UNSUPPORTED=lb;exports.UNWORKED_RESOLUTIONS=ef;exports.USAGE_DIMENSIONS=Co;exports.USAGE_DIMENSION_IDS=vo;exports.USAGE_RECORDS_ROUTE=Hl;exports.USAGE_SOURCE_PROVIDER_GROUP=Vl;exports.UnresolvedRefError=Yn;exports.WEBHOOK_EVENTS=Ta;exports.WORKSTREAM_SCOPE_KIND=ci;exports.WORK_ACTIVITY_SCOPE_KIND=Ma;exports.WORK_AREAS=rp;exports.WORK_COMMENT_ADDED=Wh;exports.WORK_CYCLE_SYNC_KIND=ey;exports.WORK_ITEM_ASSIGNED=Vh;exports.WORK_ITEM_SCOPE_KIND=ka;exports.WORK_ITEM_STATUS_CHANGED=Hh;exports.WORK_PROJECT_SCOPE_KIND=Oa;exports.WORK_SORT_FIELDS=Sy;exports.WORK_VIEW_FLAGS=Ey;exports.WORK_VIEW_LAYOUTS=Iy;exports.WORK_VIEW_LIST_FILTERS=_y;exports.W_PRIORITY=Se;exports.XAF_NAMESPACE=qs;exports.acceptExampleCandidate=Gg;exports.accountTotals=pf;exports.accountTypeOf=Bf;exports.accrualPostings=wd;exports.actingIdentityKey=di;exports.activeWorkTypes=Fg;exports.activityIconOf=_c;exports.activityJoinUrl=Mc;exports.activitySnippet=uo;exports.activityTextParams=lo;exports.activityTimelineText=Oc;exports.activityTimestamp=po;exports.activityTypeInfo=j;exports.actorKey=xp;exports.addExampleCandidate=jg;exports.addMonths=me;exports.addWorkingMs=Et;exports.agePresenceEntry=xb;exports.aggregateUsage=Xo;exports.agingBucketOf=va;exports.agingOf=Uh;exports.agreementEffectiveEnd=Jc;exports.agreementFromQuote=Gc;exports.agreementHref=Sh;exports.agreementScopeKey=Eh;exports.aiAttachmentKind=La;exports.aiAttachmentRejection=ky;exports.aiBudgetLimit=Qt;exports.aiBudgetPeriodKey=_u;exports.aiBudgetPeriodStart=Ao;exports.aiBudgetState=bu;exports.aiVendorAcceptsAttachment=yu;exports.aiVendorDefaultModel=mu;exports.aiVendorLabel=pu;exports.aiVendorNeedsBaseUrl=hu;exports.aiVendorsWith=gu;exports.allocate=Ce;exports.allocateInvoice=Om;exports.appNameFromPath=qa;exports.applyApprovalDecision=Lu;exports.applyRounding=Lg;exports.applySignature=zl;exports.approvalRate=Si;exports.artifactBodyBytes=wo;exports.artifactOutline=xo;exports.artifactToMarkdown=vn;exports.assignmentMismatch=Bp;exports.assignmentScopeKey=zu;exports.assignmentSubject=Zu;exports.availabilityByPerson=lp;exports.awaitsNumber=th;exports.balanceSheet=yf;exports.belongsOnCalendar=sp;exports.belongsToEntity=Sl;exports.billableTimeGroups=xg;exports.billedQuantity=Jo;exports.bindParams=Km;exports.bindValue=rt;exports.bookingDocumentOf=Jg;exports.bookingDocumentOfReceipt=ml;exports.bookingLinesOf=Vo;exports.bookingSyncKey=gl;exports.buildActivityPreview=Nc;exports.buildChannelIntents=Vy;exports.buildNavModel=Mb;exports.buildShareKeys=Wu;exports.buildWindow=ac;exports.businessEntitySender=ls;exports.calendarDaysBetween=Zs;exports.calendarOf=St;exports.canConvert=oh;exports.canMoveAgreement=Qc;exports.canNestUnder=uf;exports.canParent=Sg;exports.canTransition=Qg;exports.canonicalJson=nn;exports.capabilityDefaultFlag=ou;exports.capacityTotal=cp;exports.capacityWeights=Rp;exports.capitalizationThreshold=$d;exports.carriesText=Cc;exports.cashForecast=_f;exports.categoryLabel=df;exports.categoryOf=Da;exports.causedBy=qm;exports.changesBilledLine=eu;exports.channelKindForScheme=rb;exports.channelKindOf=Ec;exports.checkInOverdueMs=Dg;exports.clampStepMaxTokens=Zp;exports.classifyMail=Hd;exports.cleanMessageMarkdown=W_;exports.cleanMessageText=G_;exports.cleanReceiptLines=pm;exports.codeQuery=Nl;exports.codedMessage=zy;exports.columnBalance=bf;exports.commitProblem=Ol;exports.companyReceivablesOf=Fh;exports.compareAssistRank=xy;exports.compareReports=ff;exports.compareWorkTypes=na;exports.conditionHolds=us;exports.contactName=sd;exports.contractSignals=dm;exports.copyFrom=pa;exports.correlationKeyFor=Uy;exports.costOverYear=mm;exports.countsAsPlanned=pe;exports.coverageByPerson=up;exports.coverageFor=yp;exports.coversWorkstream=Kn;exports.crmActivityAt=gd;exports.cronMatches=Ui;exports.currentAccountRelation=Od;exports.currentLines=qc;exports.currentPeriod=Th;exports.cycleDayIndex=Un;exports.cycleOrder=yy;exports.cycleState=by;exports.dealValueCents=Wc;exports.decideAssignmentState=Ju;exports.decideCadence=u_;exports.decideEach=Du;exports.decideIncomingCall=jy;exports.decisionBand=du;exports.decodeText=tb;exports.defaultLocaleOf=js;exports.defaultOffer=Ri;exports.defaultStatusKey=cy;exports.defaultTemplateBlocks=ga;exports.defineIntent=ab;exports.delegationRefusal=el;exports.demandFor=hm;exports.depreciationParts=ys;exports.depreciationPostings=Nd;exports.depthOf=Us;exports.derivePresence=wb;exports.describeClause=Mu;exports.describeExpression=Wm;exports.digitsOf=Qo;exports.disabledIntentsFromCapabilities=Gy;exports.disposalLines=Dd;exports.documentBodyBytes=wo;exports.documentKindOf=vb;exports.documentOutline=xo;exports.documentToMarkdown=vn;exports.documentToText=Sb;exports.driftedFields=ji;exports.dueAtOf=gg;exports.dueCharges=Yc;exports.dueDateFrom=Mh;exports.dunningRunOf=hh;exports.dunningStateOf=ha;exports.effectiveEndAt=Ee;exports.elapsedSeconds=Pg;exports.emailDomain=b_;exports.emptyConditionLeaf=jm;exports.endpointKey=I_;exports.entityOwnerIds=Il;exports.entryLinesOf=Mf;exports.entryNumber=Af;exports.entryProblems=If;exports.erlangC=ei;exports.excessiveLending=Md;exports.expectedFor=um;exports.extractParams=za;exports.extractTerms=sc;exports.failureLines=Id;exports.feedOutcome=Em;exports.fieldVarPath=Zm;exports.fillDocument=Ed;exports.fillText=cs;exports.filterByEndpoint=qy;exports.filterByIntent=Hy;exports.filterByTargetScheme=Fa;exports.filterableDimensions=Ou;exports.findAiVendor=ve;exports.findEvent=Jm;exports.finishedAt=Zc;exports.fixedLevelForName=Ag;exports.fixedTypeForName=Zh;exports.fixedTypes=Jh;exports.flattenLocales=kb;exports.floorToPeriod=fe;exports.forecastIntervals=Tp;exports.formatActingIdentity=li;exports.formatCents=H;exports.formatClock=Kg;exports.formatHm=$g;exports.formatItemKey=ny;exports.formatMicros=Ll;exports.formatPeriod=de;exports.formatSeriesNumber=vh;exports.formatSlaDuration=bg;exports.freshSources=Ry;exports.getActivitySeenUserIds=xc;exports.getContactEndpoints=nd;exports.getShortTitle=Jd;exports.getUrgencyScore=Zd;exports.goodsReceiptProblems=Oi;exports.groupDocumentLines=xi;exports.guessFeedMapping=Im;exports.hasReacted=Dm;exports.hashedPartOf=vf;exports.healthCategory=Cg;exports.healthsInCategory=vg;exports.heightOf=Pn;exports.helpCenterText=of;exports.humanizeAction=Wp;exports.interactionIdOf=bi;exports.interestOnDailyBalance=vd;exports.interestPeriods=Td;exports.isAgentUser=jh;exports.isAssigned=Xd;exports.isAssignmentTerminal=Yu;exports.isAssignmentTrigger=gi;exports.isAssistantMode=Eu;exports.isAuthoredCrmActivity=md;exports.isAutoReady=om;exports.isAutonomy=Fp;exports.isAwaitingThem=Ls;exports.isBookable=Zg;exports.isChatMessageActivity=Lc;exports.isClosed=Qd;exports.isConnectedType=Tc;exports.isDescendant=Bs;exports.isEligible=Ud;exports.isEmailActivity=Pc;exports.isFrozen=Zn;exports.isHeldClock=mg;exports.isHtmlBody=j_;exports.isInFlight=im;exports.isInteractionUnseen=Ts;exports.isLandingPath=zb;exports.isLikelyBulk=Is;exports.isMessageShape=yn;exports.isMessageType=Sc;exports.isMoreSpecificPattern=Qa;exports.isNoteShape=bn;exports.isOpenClock=Yi;exports.isOutstanding=er;exports.isOutwardTool=rr;exports.isOverdueOn=Dh;exports.isParked=Ns;exports.isPaused=vi;exports.isPlaybookAuthoredType=vc;exports.isPricePer=jc;exports.isPublicEmailDomain=E_;exports.isPublicPath=Zb;exports.isPurchasable=Gl;exports.isRecurringLine=go;exports.isReminderActive=Ds;exports.isReplyableType=Ac;exports.isResultAccount=Te;exports.isSellable=jl;exports.isSettingsPath=qb;exports.isSettled=Aa;exports.isShorter=Hc;exports.isSlaAtRisk=Yd;exports.isSupportedCron=Hm;exports.isTerminal=sm;exports.isThreadLongEnough=jd;exports.isTradeable=Tl;exports.isTranscriptType=kc;exports.isWebhookEvent=Gh;exports.isWorkClosed=uy;exports.isWorkTypeVisible=Bg;exports.isWriteTool=ir;exports.itemDossierKeys=sy;exports.itemKeyOf=ul;exports.judgeRuleCase=Ym;exports.kindFor=q;exports.ladderFor=Na;exports.ledgerRuleFor=bl;exports.levelIn=Zi;exports.levelOrder=ut;exports.lineAffinity=qn;exports.lineKey=zp;exports.lineNet=bt;exports.lineStatus=yo;exports.lineTerm=U;exports.linkLabel=rf;exports.listedTransactionKinds=zg;exports.listeningAllowed=Su;exports.loanPostings=Rd;exports.loanSchedule=Dn;exports.localeInstruction=cf;exports.localeName=af;exports.localesOf=lf;exports.looksLikeEmail=h_;exports.lookup=Rn;exports.manualSettlement=Ph;exports.marginCents=Kc;exports.markdownToDocument=Eb;exports.matchApprovalPolicy=xu;exports.matchContactToIntents=Yy;exports.matchDocumentLines=Pi;exports.matchFeed=_m;exports.matchPublicRoute=Za;exports.matchRate=Zo;exports.matchRules=Fi;exports.matchVerdict=Mm;exports.mcpCredentialScope=Gf;exports.mcpToolPrefix=Wf;exports.measureRatio=kg;exports.mergeDefaultFlags=iu;exports.mergeShownKeys=c_;exports.messageCountsAs=co;exports.metricOption=Ru;exports.minutesOn=Bn;exports.missingFieldPaths=eg;exports.modelAcceptsAttachment=cu;exports.monthEnd=gs;exports.monthParts=fs;exports.monthlyPeriods=xf;exports.monthsIn=ps;exports.mustAsk=Ja;exports.narrowAutonomy=Gp;exports.navLabelText=Ob;exports.needsPhoneRegion=S_;exports.nestsUnderParent=Ic;exports.nextLevelBelow=Ig;exports.nextOccurrenceDates=hy;exports.nextSlaClock=hg;exports.nextStatuses=da;exports.nextVersion=sh;exports.normalizeArtifactBlocks=Do;exports.normalizeBlocks=hc;exports.normalizeDocumentBlocks=Do;exports.normalizeEmail=ar;exports.normalizeExample=te;exports.normalizeGtin=gt;exports.normalizeIban=rs;exports.normalizeIbans=Jl;exports.normalizeMeter=ts;exports.normalizeUsageSource=ql;exports.normalizeVatNumber=Zl;exports.noticeDeadline=In;exports.notificationPrefKey=Nb;exports.novelty=ic;exports.offerValid=Mi;exports.openCentsOf=nl;exports.operationDescriptor=bb;exports.operationsForKind=yb;exports.opsForFieldType=Qm;exports.orderForDocument=Cm;exports.organizationSender=Sd;exports.outcomeOf=py;exports.overlap=ft;exports.overlapSeconds=Le;exports.overlaps=hp;exports.ownWorkspaceKey=Vg;exports.paceRatio=Og;exports.parkMarksById=Bd;exports.parse=Ki;exports.parseActingIdentity=Dp;exports.parseAmount=Wt;exports.parseCamt053=Bo;exports.parseClockMinutes=og;exports.parseCodedMessage=Qy;exports.parseCron=zn;exports.parseCsv=Zy;exports.parseItemKey=ry;exports.parseLineKey=Xp;exports.parseMicros=On;exports.parseMt940=jo;exports.parsePackingSlip=Tm;exports.parseRateCsv=$l;exports.parseRatePrice=tn;exports.parseRecurrence=gy;exports.parseStatement=cl;exports.parseWorkspacePath=qg;exports.parseXafOpening=Uf;exports.partialDisposalLines=Ld;exports.pathToRegex=Ya;exports.patternFor=jn;exports.patternStartTime=Fn;exports.pauseBitFor=sg;exports.paymentOfItem=ol;exports.paymentStateOf=Jn;exports.pendingApprovers=Pu;exports.periodAt=We;exports.periodOf=Pf;exports.periodShare=ho;exports.periodsInRange=Tu;exports.phoneSuffix=y_;exports.pickMailHeaders=Gd;exports.pickPaymentTerm=Oh;exports.pickTemplate=yd;exports.placeLumps=Np;exports.plainTextFromMarkdown=io;exports.planSlaEvent=pg;exports.plannedBillable=bp;exports.plannedWorkTypeKey=si;exports.priceOver=dt;exports.primaryAddress=Ql;exports.procedureOf=nm;exports.productCost=Ni;exports.productHref=_h;exports.productScopeKey=yh;exports.profitAndLoss=hf;exports.projectDossierKeys=iy;exports.proposalRequestIds=wu;exports.proposeMatch=tl;exports.publicBasePathFor=Xa;exports.publicRoutePatterns=Qb;exports.quantityKey=ru;exports.rateRecords=Ul;exports.ratedLineAmount=Bl;exports.ratedQuantity=Mn;exports.reactionWakesAssignment=Qu;exports.readDefaultFlags=su;exports.readFeed=bm;exports.readPath=Fe;exports.readStepError=Pe;exports.receiptGroupOf=pl;exports.receiptProblems=Wo;exports.receiptState=fm;exports.receiptTotals=Go;exports.receivableRowOf=Kh;exports.receivedFor=ki;exports.recencyOf=Rs;exports.recipientLocale=hd;exports.reconciliationBalances=rl;exports.refKey=Gn;exports.referenceCostIn=Ml;exports.registrableDomain=lc;exports.rejectExampleCandidate=ia;exports.relatedByDefault=Xf;exports.remainingMsOf=ct;exports.repriceLines=Pl;exports.requiredAgents=ri;exports.requirementFor=oi;exports.resolutionsFor=nf;exports.resolveAccountCapabilities=Ba;exports.resolveActivityText=je;exports.resolveAutonomy=jp;exports.resolveChannelIntents=Ua;exports.resolvePrice=Yo;exports.resolveRateCard=wl;exports.resolveRoute=uu;exports.resolveSignature=ns;exports.resolveTier=Io;exports.resolveWorkMode=Pb;exports.resolveWorkspace=Hg;exports.resourceKindOf=Gb;exports.restate=mo;exports.retryDelayMinutes=hl;exports.reversedLines=Tf;exports.rhythmOf=_n;exports.roleDirection=td;exports.rollupChildren=Ng;exports.roundHalfUp=P;exports.runActor=wp;exports.runApprovalKey=Lp;exports.runEvalSuite=Ad;exports.runIdOfApprovalRef=$p;exports.runInteractionId=cm;exports.runKind=rm;exports.runOutcome=Xm;exports.runSpans=Xc;exports.sanitizeInline=No;exports.sanitizeTranscript=ec;exports.scheduleEntryScopeKey=kp;exports.scoreInteraction=zd;exports.scoreWorkItem=Yh;exports.segmentIsEmpty=ud;exports.selectLenses=jf;exports.sellableProduct=Fl;exports.serialize=$e;exports.seriesStart=En;exports.serviceLevel=ti;exports.sessionsHoldCannotReach=Fy;exports.sessionsToHold=By;exports.settingsPath=Yb;exports.settlementPatch=xh;exports.shadowByKey=Al;exports.shareKeyForTeam=kn;exports.shareKeyForUser=Tn;exports.shareKeysForViewer=Vu;exports.shortTermPrincipal=Pd;exports.shortfalls=_p;exports.shouldRunAudioPipeline=Lb;exports.slaBadgeTone=yg;exports.slaHoursByInbox=qd;exports.slaHoursFor=Ps;exports.slipProposal=vm;exports.sortStatuses=wa;exports.sourceKey=Ka;exports.splitLine=tu;exports.spread=wn;exports.spreadOverWeights=ui;exports.startingCents=xd;exports.statusIn=ay;exports.statusRequiresApproval=fy;exports.stepDate=Pa;exports.stepsOf=tm;exports.strategyAncestorKeysFor=Eg;exports.strategyDossierKeys=_g;exports.strategyItemScopeKey=Xn;exports.stripHtml=ao;exports.subjectKeyOf=am;exports.subjectOf=Wn;exports.subjectRef=wy;exports.suggestProjectKey=oy;exports.suggestTreatments=ll;exports.suggestedHealth=Mg;exports.summariseEval=ds;exports.summarizeReactions=Rm;exports.targetById=Up;exports.targetForActivityType=Kp;exports.targetOrder=wg;exports.taxCodeProblem=ep;exports.taxDateOf=J;exports.taxPercentOn=$n;exports.taxRateFor=Xs;exports.taxRatesOn=Jf;exports.termApplies=Ia;exports.termEndAt=ne;exports.termStartAt=Sn;exports.termsFor=Js;exports.tieredMicros=es;exports.timingOf=bo;exports.toActingIdentity=fi;exports.toBaseUnits=Cl;exports.toE164=hn;exports.toProductUnits=Vn;exports.toTransactionTerm=Rh;exports.toolBareName=hi;exports.toolDisplayName=Vp;exports.toolReversible=My;exports.toolSourceKinds=Hu;exports.toolVerdict=o_;exports.topicOfferedForTeam=aa;exports.topicsForTeam=Wg;exports.trafficIntensity=ni;exports.transactionContext=ih;exports.transactionDossierKeys=Ah;exports.transactionHref=bh;exports.transactionIdFromScope=Ih;exports.transactionKind=F;exports.transactionScopeKey=Ea;exports.transactionSlots=ah;exports.transactionTotals=tp;exports.transitoryLines=Of;exports.triggerFillsVar=qp;exports.truncateExample=sa;exports.typeIn=Qh;exports.typesFor=Xh;exports.uniqueWorkStatusKey=ly;exports.uniqueWorkTypeKey=Ug;exports.unitFactor=Ho;exports.unitsProblem=vl;exports.usageAccountOf=So;exports.usageAccountsOf=nu;exports.usageMetricId=To;exports.usageMetrics=Nu;exports.validateQuestions=lu;exports.validateStatuses=dy;exports.valueAtPath=mi;exports.variableJump=Ti;exports.variantOptionsProblem=kl;exports.vatPeriods=xm;exports.vatReturn=wm;exports.waitHoursOf=yt;exports.wakesAssignment=Xu;exports.withLineIds=Qp;exports.workActivityScopeKey=ty;exports.workItemScopeKey=Ra;exports.workProjectScopeKey=tr;exports.workRatio=Rg;exports.workStatusKey=xa;exports.workTypeKey=ta;exports.workingMsBetween=ot;exports.workspacePath=Yg;exports.workstreamScopeKey=Op;exports.xafAuditfile=$f;exports.xmlBlocks=V;exports.xmlText=k;exports.yearEndClosingLines=Ef;
|