PageSourceSearch

https://campio.web.app/chunk-Z5MXOCEW.js

js campio.web.app collected 2026-10-03 12:19:22 UTC 757,575 bytes, 219 lines download raw bytes

1import{a as Dm,b as Pm,e as km,f as Om}from"./chunk-UHZFZXDL.js";import{a as Tm}from"./chunk-3VTU7MU5.js";import{g as Wo}from"./chunk-6IWEYDTR.js";import{$a as fe,$g as Ki,$j as kr,Aa as $,Ad as jt,Ae as cl,Ah as Fe,Ak as bm,B as nr,Ba as w,Bd as hi,Be as fr,Ca as h,Cd as ct,Ce as hr,Ch as Jt,Cj as nm,D as or,Da as $o,Dd as ni,Dh as Bd,Dj as om,Ea as zo,Eb as ud,Ed as gi,Ee as vd,Eh as wr,Ej as fo,F as Xc,Fa as id,Fd as he,Fh as Er,Fj as ae,G as Un,Ga as Xt,Gd as oi,Gh as Ld,Gj as am,H as ar,Ha as Tt,Hd as dr,He as Kn,Hf as Dd,Hj as ft,Ia as Dt,Id as He,Ie as yd,If as Pd,Ij as rm,J as ui,Ja as lt,Jd as mr,Je as Sd,Jh as Nd,Ka as ki,Kh as Vd,La as Y,Ld as ai,Lg as Rd,Lh as lo,M as F,Ma as Wt,Md as ri,Mh as co,N as B,Na as d,Nh as mo,Ni as Kd,Nk as ul,Oa as _,Of as pl,Oh as ge,Oi as Xd,Oj as sm,P as X,Pa as A,Pg as vr,Q as Jc,Qa as rt,Qg as yr,Qi as po,Qj as on,R as Nt,Ra as Gi,Rd as si,Rg as Sr,Ri as nn,Rj as jo,S as Wn,Sa as nd,Sd as dt,Se as Md,Sg as Mr,Sh as $d,Sj as Dr,Sk as xm,T as Vo,Ta as Pt,Tb as cr,Td as ne,Te as wd,Th as zd,Ti as Jd,Tj as lm,U as Zc,Ua as kt,Ue as Ed,Uh as Hd,Ui as Zd,Va as Ot,Vh as jd,W as td,Wb as xe,Wd as Qn,Wg as Jn,Wj as Pr,X as fi,Xb as fd,Xg as Zn,Xh as Zt,Xk as fl,Yg as J,Yh as Oe,Yj as cm,Yk as hl,Z as m,Za as od,Zb as Gt,Zg as st,Zh as Ud,Zk as gl,_a as De,_b as Ye,_g as Z,_k as _l,a as Yc,aa as O,ab as ad,ac as sl,ba as L,bb as rd,bf as dl,bh as ot,bk as Or,ca as Gn,cb as S,ce as pr,cf as Oi,cg as bn,ch as Ad,d as tt,da as al,db as P,de as hd,dl as vm,e as Qc,ea as Wi,eb as mt,ee as gd,ek as je,fa as T,fb as $t,fe as _d,fi as gt,fj as _e,fk as Ir,ge as Ft,gi as _t,gj as tm,gk as Uo,h as xi,ha as Ge,hb as qi,hh as to,hi as Ct,hk as We,ia as ed,ig as Cr,ih as eo,ii as Wd,ij as Tr,ik as Ri,j as pi,ja as x,je as ur,jf as Td,jh as li,ji as bt,jk as Rr,ka as rr,kb as Yn,ke as Pe,kh as io,ki as xt,kk as Ar,kl as ym,la as v,le as Cd,lh as no,li as Gd,lk as dm,ll as Sm,m as Pi,ma as rl,mb as sd,me as ht,mg as kd,mh as oo,mi as vt,mj as uo,mk as Qe,n as Kc,na as U,nb as ii,ng as Od,nh as ao,ni as yt,nk as mm,nl as Mm,o as tr,oa as z,oe as Rt,og as Id,oi as qd,ok as pm,ol as wm,p as Le,pa as H,pb as sr,pe as Vt,pf as Ii,ph as Xi,pi as St,pk as Fr,q as jn,qa as C,qb as pt,qf as gr,qh as ro,qi as Mt,qk as Br,r as er,ra as l,rb as ld,re as bd,rf as Qi,rh as ve,ri as Yd,rk as Lr,s as Yt,sa as s,sb as qe,se as ke,sf as Xn,sh as so,si as wt,sk as um,t as ir,ta as M,tb as cd,te as Ae,tf as ml,tg as xn,th as Ji,ti as Qt,tk as ho,u as It,ua as Me,ub as vi,ue as et,uf as _r,ug as br,uh as Zi,ui as Qd,uk as an,ul as Em,v as Te,va as we,vb as dd,ve as xd,vg as xr,vh as Fd,vi as tn,vj as em,vk as fm,wb as Yi,wi as en,wj as ut,wk as hm,xa as I,xb as lr,xk as gm,ya as R,yb as md,ye as ll,yj as im,yk as _m,za as qn,zb as pd,ze as ee,zf as Ho,zk as Cm}from"./chunk-JKBBTWAY.js";import"./chunk-DZ7C7OU7.js";import"./chunk-JURUXNMY.js";import"./chunk-O3NHZOCN.js";import{a as nt,b as Et,j as ce}from"./chunk-HT3IURLE.js";function zu(t,n){if(t&1&&(l(0,"mat-option",5),d(1),s()),t&2){let e=n.$implicit;C("value",e.code),m(),A(" ",e.name," ")}}function Hu(t,n){if(t&1){let e=$();l(0,"button",13),w("click",function(){F(e);let o=h();return B(o.addCampsite())}),d(1,"Create"),s()}}function ju(t,n){if(t&1&&(l(0,"div",10),d(1),s()),t&2){let e=h();m(),A('Campsite "',e.campsiteName,'" was created successfully.')}}function Uu(t,n){t&1&&(l(0,"div",11),M(1,"i",14),d(2,"Processing..."),s())}function Wu(t,n){t&1&&(l(0,"div",12),d(1,"Something went wrong. Please try again later."),s())}function Gu(t,n){if(t&1){let e=$();l(0,"button",13),w("click",function(){F(e);let o=h();return B(o.goToDashboard())}),d(1,"Go to dashboard"),s(),l(2,"button",15),w("click",function(){F(e);let o=h();return B(o.addAnother())}),d(3,"Add another"),s()}}var Go=(()=>{let n=class n{constructor(i,o,a,r){this.dbService=i,this.campService=o,this.fb=a,this.router=r,this.campsiteAdded=!1,this.campsiteAddFail=!1,this.campsiteAddInProgress=!1,this.countries=Cr}ngOnInit(){this.initForm()}initForm(){let i=this.fb.group({lat:["",hi.required],long:["",hi.required]});this.form=this.fb.group({name:["",hi.required],coordinates:i,supportedCampTypes:[[]],description:[""],images:[[]],country:["",hi.required]})}get campTypeFormArray(){return this.form.get("supportedCampTypes")}
1addCampsite(){if(this.form.invalid){this.form.markAllAsTouched();return}this.campsiteAddInProgress=!0,this.dbService.addCampsite(this.form.value).then(i=>{this.campsiteId=i.id,this.campsiteName=this.form.value.name,this.campsiteAddInProgress=!1,this.campsiteAdded=!0}).catch(i=>{this.campsiteAddFail=!0,this.campsiteAddInProgress=!1,console.log("Error occurred while adding new campsite.",i)})}addAnother(){this.campsiteId=null,this.campsiteName=null,this.campsiteAddInProgress=!1,this.campsiteAdded=!1,this.campsiteAddFail=!1,this.initForm()}goToDashboard(){this.campsiteId&&this.router.navigate(["/dashboard/info"],{queryParams:{campsiteId:this.campsiteId}})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(nn),O(si),O(Gt))},n.\u0275cmp=L({type:n,selectors:[["app-add-site"]],decls:32,vars:6,consts:[[1,"row"],[1,"column"],["autocomplete","off",3,"formGroup"],["type","text","matInput","","formControlName","name"],["matInput","","formControlName","country"],[3,"value"],["formGroupName","coordinates"],["type","number","matInput","","formControlName","lat","placeholder","Ex: 59.962655"],["type","number","matInput","","formControlName","long","placeholder","Ex: 10.642186"],["mat-flat-button","","color","primary"],[1,"alert","alert-success"],[1,"alert","alert-info"],[1,"alert","alert-danger"],["mat-flat-button","","color","primary",3,"click"],[1,"fas","fa-circle-notch","fa-spin"],["mat-flat-button","",3,"click"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title"),d(5,"Add campsite"),s()(),l(6,"mat-card-content")(7,"form",2)(8,"mat-form-field")(9,"mat-label"),d(10,"Name"),s(),M(11,"input",3),s(),l(12,"mat-form-field")(13,"mat-label"),d(14,"Country"),s(),l(15,"mat-select",4),z(16,zu,2,2,"mat-option",5,U),s()(),l(18,"div",6)(19,"mat-form-field")(20,"mat-label"),d(21,"Latitude"),s(),M(22,"input",7),s(),l(23,"mat-form-field")(24,"mat-label"),d(25,"Longitude"),s(),M(26,"input",8),s()()(),x(27,Hu,2,0,"button",9),x(28,ju,2,1,"div",10),x(29,Uu,3,0,"div",11),x(30,Wu,2,0,"div",12),x(31,Gu,4,0),s()()()()),o&2&&(m(7),C("formGroup",a.form),m(9),H(a.countries),m(11),v(!a.campsiteAdded&&!a.campsiteAddFail&&!a.campsiteAddInProgress?27:-1),m(),v(a.campsiteAdded?28:-1),m(),v(a.campsiteAddInProgress?29:-1),m(),v(a.campsiteAddFail?30:-1),m(),v(a.campsiteAdded?31:-1))},dependencies:[J,ot,st,Z,dt,oi,jt,dr,ct,ni,ne,ri,ai,mr,ht,Ft,Jt,Vt,Rt,et],styles:["mat-form-field[_ngcontent-%COMP%]{display:block}"]});let t=n;return t})();var Cl=[{label:"MANAGEMENT",items:[{type:"group",label:"Campsites",icon:"cabin",indexRoute:"campsite",items:[{type:"leaf",label:"Create campsite",route:"add"},{type:"leaf",label:"Manage campsite",route:"edit"}]},{type:"group",label:"Channel manager",icon:"hub",indexRoute:"channel-manager",items:[{type:"leaf",label:"Connections",route:"channel-manager/connections"},{type:"leaf",label:"Bookings",route:"channel-manager/bookings"}]}]},{label:"OPERATIONS",items:[{type:"group",label:"Community",icon:"groups",indexRoute:"community",items:[{type:"leaf",label:"Reviews",route:"reviews"},{type:"leaf",label:"Community requests",route:"community-campsites"},{type:"leaf",label:"Loyalty program",route:"loyalty-points"},{type:"leaf",label:"Loyalty program users",route:"user-search"}]},{type:"leaf",label:"Self-service onboarding",route:"onboarding-submissions",icon:"checklist"},{type:"group",label:"Discount codes",icon:"sell",indexRoute:"discount-codes",items:[{type:"leaf",label:"Codes",route:"discount-codes/codes"},{type:"leaf",label:"Usage",route:"discount-codes/usage"}]},{type:"group",label:"Point shop",icon:"redeem",indexRoute:"point-shop",items:[{type:"leaf",label:"Vendors",route:"point-shop/vendors"},{type:"leaf",label:"Products",route:"point-shop/products"}]}]},{label:"INSIGHT",items:[{type:"group",label:"Reports",icon:"bar_chart",indexRoute:"reports",items:[{type:"leaf",label:"Bookings",route:"bookings"},{type:"leaf",label:"Turnover",route:"turnover"},{type:"leaf",label:"Turnover v2",route:"turnover-report"}]},{type:"group",label:"Monitoring",icon:"query_stats",indexRoute:"monitoring",items:[{type:"leaf",label:"Str
1ipe transfers",route:"stripe-transfers"},{type:"leaf",label:"Stripe payouts",route:"stripe-payouts"},{type:"leaf",label:"Distribution",route:"distribution"},{type:"leaf",label:"Bookability",route:"bookability"}]},{type:"group",label:"Users",icon:"group",indexRoute:"users",items:[{type:"leaf",label:"Campsite directors",route:"users/directors"},{type:"leaf",label:"Campio staff",route:"users/staff"}]}]}],Nr=Cl.flatMap(t=>t.items);function Im(t){return t.type==="group"}var Rm=Nr.filter(Im).reduce((t,n)=>(t[n.label]=n.indexRoute,t),{});function Am(t){return t?Nr.find(n=>Im(n)&&n.label===t)??null:null}var rn={CULTSWITCH:"CultSwitch",CAMPERCONTACT:"Campercontact",GOOGLE_HOTELS:"Google Hotels"},bl=[25,50,100];var go={BALANCED:{label:"Balanced",colorClass:"chip--green"},BALANCED_ACKNOWLEDGED:{label:"Acknowledged",colorClass:"chip--blue"},REVERSED:{label:"Reversed",colorClass:"chip--blue"},REVERSAL:{label:"Reversal",colorClass:"chip--blue"},UNBALANCED:{label:"Unbalanced",colorClass:"chip--amber"},PENDING_RETRY:{label:"Pending retry",colorClass:"chip--amber"},UNSUPPORTED_MANUAL_PAYOUT:{label:"Unsupported manual payout",colorClass:"chip--amber"},FAILED:{label:"Failed",colorClass:"chip--red"},CANCELED:{label:"Canceled",colorClass:"chip--red"},QUEUED:{label:"Queued",colorClass:"chip--grey"},RESOLVING:{label:"Resolving",colorClass:"chip--grey"}},_o={ARCHIVED:{label:"Archived",colorClass:"chip--green"},PENDING:{label:"Pending",colorClass:"chip--grey"},REFUSED:{label:"Refused",colorClass:"chip--amber"},NOT_APPLICABLE:{label:"Not applicable",colorClass:"chip--grey"}},xl={ISSUED:{label:"Issued",colorClass:"chip--green"},CANCELLED:{label:"Cancelled",colorClass:"chip--red"}},Fm={UNMAPPED_BALANCE_TRANSACTION:"Unmapped balance transaction",UNRESOLVED_BALANCE_TRANSACTION:"Unresolved balance transaction",ORPHANED_CAMPIO_TRANSFER:"Orphaned Campio transfer",NO_CAMPIO_TRANSACTIONS:"No Campio transactions",PAYOUT_AMOUNT_MISMATCH:"Payout amount mismatch",DERIVED_AMOUNT_MISMATCH:"Derived amount mismatch",UNEXPECTED_STRIPE_FEE:"Unexpected Stripe fee",CURRENCY_MISMATCH:"Currency mismatch",STRIPE_RECONCILIATION_IN_PROGRESS:"Stripe reconciliation in progress",RESOLUTION_LIMIT_EXCEEDED:"Resolution limit exceeded",TRANSFER_PROBE_LIMIT_EXCEEDED:"Transfer probe limit exceeded"},Bm={ORDER:"Order",REFUND:"Refund",ADJUSTMENT:"Adjustment"},Lm={CAPTURED_ID:"Captured id",EXPANDED_SOURCE:"Expanded source",TRANSFER_GROUP:"Transfer group",UNRESOLVED:"Unresolved"},Nm={STRIPE:"Stripe",STRIPE_NEW:"Stripe New"};function qo(t){return t/100}function Yo(t){return t.campsiteName||t.campsiteId}var Co=class{constructor(){this.campioTotal=[],this.sites=[]}};var Yu=t=>["/admin",t];function Qu(t,n){if(t&1&&(l(0,"a",2),d(1),s()),t&2){let e=h(3);C("routerLink",fe(2,Yu,e.groupRoute)),m(),_(e.group)}}function Ku(t,n){if(t&1&&(l(0,"span",3),d(1),s()),t&2){let e=h(3);m(),_(e.group)}}function Xu(t,n){if(t&1&&(x(0,Qu,2,4,"a",2)(1,Ku,2,1,"span",3),l(2,"span",4),d(3,"\u203A"),s()),t&2){let e=h(2);v(e.groupRoute?0:1)}}function Ju(t,n){if(t&1&&(l(0,"a",5),d(1),s(),l(2,"span",4),d(3,"\u203A"),s(),l(4,"span",1),d(5),s()),t&2){let e=h(3);C("routerLink",e.trailLink),m(),_(e.trail),m(4),_(e.leaf)}}function Zu(t,n){if(t&1&&(l(0,"span",1),d(1),s()),t&2){let e=h(3);m(),_(e.trail)}}function tf(t,n){if(t&1&&(l(0,"a",5),d(1),s(),l(2,"span",4),d(3,"\u203A"),s(),x(4,Ju,6,3)(5,Zu,2,1,"span",1)),t&2){let e=h(2);C("routerLink","/admin/"+e.parentRoute),m(),_(e.label),m(3),v(e.leaf&&e.trailLink?4:5)}}function ef(t,n){if(t&1&&(l(0,"span",1),d(1),s()),t&2){let e=h(2);m(),_(e.label)}}function nf(t,n){if(t&1&&(l(0,"nav",0),x(1,Xu,4,1),x(2,tf,6,3)(3,ef,2,1,"span",1),s()),t&2){let e=h();m(),v(e.group?1:-1),m(),v(e.parentRoute&&e.trail?2:3)}}var vl=(()=>{let n=class n{constructor(i,o,a){this.router=i,this.route=o,this.breadcrumbService=a,this.label=null,this.group=null,this.groupRoute=null,this.parentRoute=null,this.trail=null,this.trailLink=null,this.leaf=null}ngOnInit(){this.update(),this.navigationSub=this.router.events.pipe(Le(i=>i instanceof cr)).subscribe(()=>this.update()),this.trailSub=this.breadcrumbService.trail$.subscribe(i=>this.trail=i),this.trailLinkSub=this.breadcrumbService.trailLink$.subscribe(i=>this.trailLink=i)}ngOnDestroy(){this.navigationSub?.unsubscribe(),this.trailSub?.unsubscribe(),this.trailLinkSub?.unsubscribe()}update(){let i=this.route.root;for(;i.firstChild;)i=i.firstChild;let o=i.snapshot.data;this.label=o.breadcrumb??null,this.group=o.group??null,this.groupRoute=this.group?Rm[this.group]??null:null,this.parentRoute=o.parentRoute??null,this.leaf=o.leaf??null}};n.\u0275fac=function(o){return new(o||n)(O(Gt),O(xe),O(Qe))},n.\u0275cmp=L({type:n,selectors:[["app-admin-breadcrumb"]],decls:1,vars:1,consts:[["aria-label","Breadcrumb",1,"breadcrumb"],[1,"breadcrumb-current"],[1,"breadcrumb-group",3,"routerLink"],[1,"breadcrumb-group"],[1,"breadcrumb-sep"],[1,"breadcrumb-parent",3,"routerLink"]],template:function(o,a){o&1&&x(0,nf,4,2,"nav",0),o&2&&v(a.label?0:-1)},dependencies:[Ye],styles:["[_nghost-%COMP%]{display:block;flex:1 1 auto;min-width:0}.breadcrumb[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.4;min-width:0}
1.breadcrumb-group[_ngcontent-%COMP%]{color:#1a1f1a8c;text-decoration:none;white-space:nowrap}.breadcrumb-group[_ngcontent-%COMP%]:hover{color:var(--accent, #19988b)}.breadcrumb-sep[_ngcontent-%COMP%]{color:#1a1f1a4d}.breadcrumb-current[_ngcontent-%COMP%]{color:#1a1f1a;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]});let t=n;return t})();function Vr(t){return t.length>15?`${t.slice(0,15).trimEnd()}\u2026`:t}function Vm(t,n,e){let i=n.trim().toLowerCase();return t.filter(o=>i?o.campsiteName.toLowerCase().includes(i):!0).filter(o=>e?o.channels.includes(e):!0).sort((o,a)=>o.campsiteName.localeCompare(a.campsiteName))}function $m(t,n){let e=n.query?.trim().toLowerCase()??"";return t.filter(i=>n.campsiteId&&i.campsiteId!==n.campsiteId||n.channel&&i.channel!==n.channel||n.status==="active"&&i.cancelled||n.status==="cancelled"&&!i.cancelled?!1:e?i.guestName.toLowerCase().includes(e)||i.externalId.toLowerCase().includes(e)||i.reference.toLowerCase().includes(e):!0)}var of={"7d":7,"30d":30};function zm(t,n,e){if(t==="custom"){if(!e)throw new Error("receivedWindow: custom preset requires a from/to range");return{from:e.from.toISOString(),to:Sd(e.to).toISOString()}}return{from:new Date(n.getTime()-of[t]*24*60*6e4).toISOString(),to:n.toISOString()}}var rf={"1h":60*6e4,"24h":1440*6e4,"7d":10080*6e4,"30d":720*60*6e4},jm=["INVENTORY","AVAILABILITY","RATES","CONTENT","FULL_RESYNC"];function Qo(t,n){return{from:new Date(n.getTime()-rf[t]),to:n}}function yl(t){return t==="1h"||t==="24h"?"hour":"day"}function Um(t,n,e,i){let o=i==="hour"?36e5:864e5,a=Hm(n,i),r=Hm(e,i),c=new Map;for(let p=a.getTime();p<=r.getTime();p+=o)c.set(lf(new Date(p),i),sf());for(let p of t){let u=c.get(p.day);u&&(u[p.type]=(u[p.type]??0)+p.count)}return[...c.entries()].map(([p,u])=>({label:p,counts:u,total:jm.reduce((f,g)=>f+u[g],0)}))}function Wm(t,n,e,i){let o=t.reduce((g,b)=>g+b.count,0),a=n.reduce((g,b)=>g+b.count,0),r=sn(n,"ACCEPTED"),c=sn(n,"REJECTED"),p=sn(n,"TRANSPORT_ERROR"),u=sn(n,"UNKNOWN"),f=r+c+p+u;return{events:o,messages:a,acceptedPct:f===0?0:Math.round(r/f*100),rejected:c,transportErrors:p,unknown:u,stuckScopes:e.filter(g=>Ko(g,i)).length,coalescingRatio:a===0?0:Math.round(o/a*100)/100}}function Gm(t,n){return n.map(e=>{let i=t.filter(o=>o.channel===e.name);return{channel:e.name,mode:e.mode,lastAcceptedAt:e.lastAcceptedAt,messages:i.reduce((o,a)=>o+a.count,0),accepted:sn(i,"ACCEPTED"),rejected:sn(i,"REJECTED"),transportErrors:sn(i,"TRANSPORT_ERROR"),unknown:sn(i,"UNKNOWN")}})}function Ko(t,n){return!t.flushScheduled||!t.armedAt?!1:n.getTime()-new Date(t.armedAt).getTime()>10*6e4}function qm(t,n,e){let i=t.filter(a=>Ko(a,e)).map(a=>({kind:"STUCK_SCOPE",id:a.id,channel:a.channel,campsiteId:a.campsiteId,campsiteName:a.campsiteName,detail:`${a.eventIds.length} pending event(s)`})),o=n.map(a=>({kind:"UNKNOWN_VERDICT",id:a.id,channel:a.channel,campsiteId:a.campsiteId,campsiteName:a.campsiteName,detail:`${a.kind} message built ${a.builtAt}`}));return[...i,...o]}function vn(t){switch(t.status){case"BUILT":return"built \xB7 shadow";case"SENT":return"pending";case"TRANSPORT_ERROR":return"transport error";default:return t.status.toLowerCase()}}function Ym(t){return!t.sentAt||!t.verdictAt?null:new Date(t.verdictAt).getTime()-new Date(t.sentAt).getTime()}function Qm(t,n){let e=new Map;for(let i of t){if(i.channel!==n)continue;let o=e.get(i.day)??{day:i.day,accepted:0,rejected:0,transportError:0,unknown:0,total:0};i.status==="ACCEPTED"?o.accepted+=i.count:i.status==="REJECTED"?o.rejected+=i.count:i.status==="TRANSPORT_ERROR"?o.transportError+=i.count:i.status==="UNKNOWN"&&(o.unknown+=i.count),o.total+=i.count,e.set(i.day,o)}return[...e.values()].sort((i,o)=>i.day.localeCompare(o.day)).slice(-7)}function sn(t,n){return t.filter(e=>e.status===n).reduce((e,i)=>e+i.count,0)}function sf(){return jm.reduce((t,n)=>Et(nt({},t),{[n]:0}),{})}function Hm(t,n){let e=new Date(t);return n==="hour"?e.setUTCMinutes(0,0,0):e.setUTCHours(0,0,0,0),e}function lf(t,n){let e=t.toISOString();return n==="hour"?e.slice(0,13):e.slice(0,10)}function Ai(t){switch(t){case"INVENTORY":return"blue";case"AVAILABILITY":return"violet";case"RATES":return"green";case"FULL_RESYNC":return"amber";default:return"grey"}}function $r(t){switch(t){case"CREATE":return"green";case"UPDATE":return"blue";case"DELETE":return"red";default:return"grey"}}function Fi(t){switch(t){case"ACCEPTED":return"green";case"REJECTED":return"red";case"TRANSPORT_ERROR":return"orange";case"UNKNOWN":return"amber";default:return"outline"}}function yi(t){return t==="LIVE"?"blue":"outline"}function Ce(t){return`dist-chip dist-chip--${t}`}function zr(t){return t===null?"\u2014":t<1e3?`${t} B`:t<1e6?`${(t/1e3).toFixed(1)} KB`:`${(t/1e6).toFixed(2)} MB`}function Km(t){return t===null?"\u2014":t<1e3?`${t} ms`:`${(t/1e3).toFixed(1)} s`}function yn(t){if(!t)return"\u2014";let n=new Date(t.from),e=new Date(t.to),i=a=>a.toLocaleDateString("en-GB",{day:"numeric",month:"short",timeZone:"UTC"}),o=e.getUTCFullYear();return`${i(n)} \u2013 ${i(e)} ${o}`}function Xm(t,n){if(!t.armedAt)return"not armed";let e=Math.max(0,n.getTime()-new Date(t.armedAt).getTime()),i=e<6e4?`${Math.round(e/1e3)} s`:e<60*6e4?`${Math.round(e/6e4)} min`:`${Math.round(e/(60*6e4))} h`;return Ko(t,n)?`armed ${i} ago, never flushed`:`armed ${i} ago`}function Jm(t){if(t.resolvedAs==="NONE")return"nothing resolves this id";let n=(e,i)=>`${e} ${i}${e===1?"":"s"}`;return`${n(t.events.length,"event")} \u2192 ${n(t.scopes.length,"scope")} \u2192 ${n(t.messages.length,"message")}`}
1function Zm(t){return{east:t.lng+.0013,north:t.lat+8e-4,south:t.lat-8e-4,west:t.lng-.0013}}function tp(t,n,e){let a=8e-4*(n/e)/Math.cos(t.lat*Math.PI/180);return{east:t.lng+a,north:t.lat+8e-4,south:t.lat-8e-4,west:t.lng-a}}function ep(t,n){return t.east!==n.east||t.north!==n.north||t.south!==n.south||t.west!==n.west}function cf(t,n){if(t&1){let e=$();l(0,"map-rectangle",4,0),w("boundsChanged",function(){F(e);let o=lt(1),a=h(2);return B(a.onBoundsChanged(o))}),s()}if(t&2){let e=h(2);C("bounds",e.rectangleBounds)("options",e.rectangleOptions)}}function df(t,n){if(t&1&&M(0,"map-ground-overlay",3),t&2){let e=h(2);C("bounds",e.rectangleBounds)("url",e.mapOverlay==null?null:e.mapOverlay.imageUrl)}}function mf(t,n){if(t&1&&(l(0,"google-map",1),x(1,cf,2,2,"map-rectangle",2),x(2,df,1,2,"map-ground-overlay",3),s()),t&2){let e=h();C("center",e.center)("options",e.mapOptions)("zoom",e.zoom),m(),v(e.rectangleBounds?1:-1),m(),v(e.rectangleBounds?2:-1)}}var Xo=(()=>{let n=class n{constructor(){this.overlayPositionChanged=new X,this.zoom=Id,this.mapOptions=kd,this.rectangleOptions=Et(nt({},Od),{fillOpacity:0})}ngOnChanges(i){i?.campsite?.currentValue&&this._handleMapCenterInit(),i?.mapOverlay?.currentValue&&this._handleMapOverlay()}ngOnDestroy(){this.rectangleBoundsChangedTimeout&&clearTimeout(this.rectangleBoundsChangedTimeout)}onBoundsChanged(i){let o=i.getBounds().toJSON();ep(o,this.rectangleBounds)&&(this.rectangleBoundsChangedTimeout&&clearTimeout(this.rectangleBoundsChangedTimeout),this.rectangleBoundsChangedTimeout=setTimeout(()=>{this.rectangleBounds=o,this.overlayPositionChanged.emit(o)},300))}_handleMapOverlay(){this.mapOverlay.bounds&&(this.rectangleBounds=this.mapOverlay.bounds)}_handleMapCenterInit(){!this.campsite?.coordinates?.lat||!this.campsite?.coordinates?.long||(this.center={lat:this.campsite.coordinates.lat,lng:this.campsite.coordinates.long})}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-booking-map-overlay"]],inputs:{campsite:"campsite",mapOverlay:"mapOverlay"},outputs:{overlayPositionChanged:"overlayPositionChanged"},features:[Nt],decls:1,vars:1,consts:[["rectangle","mapRectangle"],["height","100%","width","100%",3,"center","options","zoom"],[3,"bounds","options"],[3,"bounds","url"],[3,"boundsChanged","bounds","options"]],template:function(o,a){o&1&&x(0,mf,3,5,"google-map",1),o&2&&v(a.campsite?0:-1)},dependencies:[Dm,km,Pm],styles:["[_nghost-%COMP%]{display:block;height:60vh;border-radius:4px;overflow:hidden}"],changeDetection:0});let t=n;return t})();function uf(t,n){t&1&&(l(0,"th",28),d(1,"Campsite"),s())}function ff(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"middleSubstring"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.campsiteName))}}function hf(t,n){t&1&&(l(0,"th",30),d(1,"Order ID"),s())}function gf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"lastSixLettersSubstring"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.orderId))}}function _f(t,n){t&1&&(l(0,"th",31),d(1,"Paid"),s())}function Cf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.paidAt))}}function bf(t,n){t&1&&(l(0,"th",31),d(1,"Arrival"),s())}function xf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.startDate))}}function vf(t,n){t&1&&(l(0,"th",31),d(1,"Departure"),s())}function yf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.endDate))}}function Sf(t,n){t&1&&(l(0,"th",30),d(1,"Booked unit"),s())}function Mf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"middleSubstring"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.unitName))}}function wf(t,n){t&1&&(l(0,"th",31),d(1,"Guest name"),s())}function Ef(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.name)}}function Tf(t,n){t&1&&(l(0,"th",31),d(1,"Country"),s())}function Df(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"translateCountryCode"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.nationality))}}function Pf(t,n){t&1&&(l(0,"th",31),d(1,"Amount"),s())}function kf(t,n){if(t&1&&(l(0,"td",29),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),_($t(2,1,e.totalAmountInclServiceFee,"",""))}}function Of(t,n){t&1&&(l(0,"th",31),d(1,"Currency"),s())}function If(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.currency)}}function Rf(t,n){t&1&&(l(0,"th",31),d(1,"Origin"),s())}function Af(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.orderOrigin)}}function Ff(t,n){t&1&&(l(0,"th",31),d(1,"Commission"),s())}function Bf(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),A("",e.commissionPercentage," %")}}function Lf(t,n){t&1&&(l(0,"th",31),d(1,"Platform"),s())}function Nf(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.userPlatform)}}function Vf(t,n){t&1&&(l(0,"th",31),d(1,"Payment method"),s())}function $f(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.paymentMethod)}}function zf(t,n){t&1&&(l(0,"th",31),d(1,"Payment provider"),s())}function Hf(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.paymentProvider)}}function jf(t,n){t&1&&(l(0,"th",31),d(1,"Affiliate"),s())}function Uf(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.viaAffiliate)}}function Wf(t,n){t&1&&(l(0,"th",32),d(1,"Cancelled"),s())}function Gf(t,n){if(t&1&&(l(0,"span",33),d(1),S(2,"adminDate"),s()),t&2){let e=h().$implicit;m(),A(" ",P(2,1,e.cancelledAt)," ")}}function qf(t,n){if(t&1&&(l(0,"td",29),x(1,Gf,3,3,"span",33),s()),t&2){let e=n.$implicit;m(),v(e.cancelledAt?1:-1)}}function Yf(t,n){t&1&&M(0,"tr",34)}function Qf(t,n){t&1&&M(0,"tr",35)}var Jo=(()=>{let n=class n{constructor(){this.paginationChanged=new X,this.displayedColumns=["campsiteId","id","paidAt","startDate","endDate","unitName","name","nationality","totalAmountInclServiceFee","currency","orderOrigin","commissionPercentage","userPlatform","paymentProvider","paymentMethod","viaAffiliate","cancelled"],this.pageSizeOptions=[10,25,50,100],this.defaultPageSize=100}
1ngOnChanges(i){i.bookings?.currentValue&&(this.dataSource=new Qt(this.bookings))}ngAfterViewInit(){this._handleTableActionsChanges()}ngOnDestroy(){this._tablePaginatorSubscription?.unsubscribe(),this._tableSortSubscription?.unsubscribe()}_handleTableActionsChanges(){this._tablePaginatorSubscription=this.paginator?.page?.subscribe(i=>this.paginationChanged.emit(Et(nt({},this.pagination||{}),{limit:i.pageSize,offset:i.pageIndex*i.pageSize}))),this._tableSortSubscription=this.sort?.sortChange?.subscribe(i=>{this.paginator.pageIndex=0,this.paginationChanged.emit(Et(nt({},this.pagination||{}),{offset:0,sortBy:i.active,sortDirection:i.direction}))})}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-bookings-table"]],viewQuery:function(o,a){if(o&1&&Xt(ee,5)(Zt,5),o&2){let r;Tt(r=Dt())&&(a.paginator=r.first),Tt(r=Dt())&&(a.sort=r.first)}},inputs:{bookings:"bookings",totalCount:"totalCount",pagination:"pagination"},outputs:{paginationChanged:"paginationChanged"},features:[Nt],decls:64,vars:9,consts:[[3,"hidden"],[1,"table-responsive"],["mat-table","","matSort","","matSortDisableClear","",1,"table-bookings",3,"dataSource","matSortActive","matSortDirection"],["matColumnDef","campsiteId"],["mat-header-cell","","mat-sort-header","campsiteName",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","id"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","paidAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["matColumnDef","startDate"],["matColumnDef","endDate"],["matColumnDef","unitName"],["matColumnDef","name"],["matColumnDef","nationality"],["matColumnDef","totalAmountInclServiceFee"],["matColumnDef","currency"],["matColumnDef","orderOrigin"],["matColumnDef","commissionPercentage"],["matColumnDef","userPlatform"],["matColumnDef","paymentMethod"],["matColumnDef","paymentProvider"],["matColumnDef","viaAffiliate"],["matColumnDef","cancelled"],["mat-header-cell","","mat-sort-header","cancelledAt",4,"matHeaderCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[3,"length","pageSize","pageSizeOptions"],["mat-header-cell","","mat-sort-header","campsiteName"],["mat-cell",""],["mat-header-cell",""],["mat-header-cell","","mat-sort-header",""],["mat-header-cell","","mat-sort-header","cancelledAt"],[2,"font-weight","bold","color","red"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"mat-card")(2,"mat-card-content")(3,"mat-card-subtitle")(4,"span")(5,"b"),d(6,"NB!"),s(),d(7," Report includes discounts supplied by Campio, meaning amounts here represent actual income/refunds. "),s()(),l(8,"div",1)(9,"table",2),I(10,3),T(11,uf,2,0,"th",4)(12,ff,3,3,"td",5),R(),I(13,6),T(14,hf,2,0,"th",7)(15,gf,3,3,"td",5),R(),I(16,8),T(17,_f,2,0,"th",9)(18,Cf,3,3,"td",5),R(),I(19,10),T(20,bf,2,0,"th",9)(21,xf,3,3,"td",5),R(),I(22,11),T(23,vf,2,0,"th",9)(24,yf,3,3,"td",5),R(),I(25,12),T(26,Sf,2,0,"th",7)(27,Mf,3,3,"td",5),R(),I(28,13),T(29,wf,2,0,"th",9)(30,Ef,2,1,"td",5),R(),I(31,14),T(32,Tf,2,0,"th",9)(33,Df,3,3,"td",5),R(),I(34,15),T(35,Pf,2,0,"th",9)(36,kf,3,5,"td",5),R(),I(37,16),T(38,Of,2,0,"th",9)(39,If,2,1,"td",5),R(),I(40,17),T(41,Rf,2,0,"th",9)(42,Af,2,1,"td",5),R(),I(43,18),T(44,Ff,2,0,"th",9)(45,Bf,2,1,"td",5),R(),I(46,19),T(47,Lf,2,0,"th",9)(48,Nf,2,1,"td",5),R(),I(49,20),T(50,Vf,2,0,"th",9)(51,$f,2,1,"td",5),R(),I(52,21),T(53,zf,2,0,"th",9)(54,Hf,2,1,"td",5),R(),I(55,22),T(56,jf,2,0,"th",9)(57,Uf,2,1,"td",5),R(),I(58,23),T(59,Wf,2,0,"th",24)(60,qf,2,1,"td",5),R(),T(61,Yf,1,0,"tr",25)(62,Qf,1,0,"tr",26),s()(),M(63,"mat-paginator",27),s()()()),o&2&&(C("hidden",!(a.bookings!=null&&a.bookings.length)),m(9),C("dataSource",a.dataSource)("matSortActive",a.pagination==null?null:a.pagination.sortBy)("matSortDirection",a.pagination==null?null:a.pagination.sortDirection),m(52),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("length",a.totalCount||0)("pageSize",(a.pagination==null?null:a.pagination.limit)||a.defaultPageSize)("pageSizeOptions",a.pageSizeOptions))},dependencies:[J,Z,Ki,gt,Zt,bt,Ct,xt,Oe,_t,vt,yt,Mt,St,wt,ee,Yi,ft,om,ym,fo],styles:[".table-bookings[_ngcontent-%COMP%]{width:100%;overflow:hidden}.table-bookings[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px;font-size:13px}"],changeDetection:0});let t=n;return t})();function Xf(t,n){if(t&1&&(l(0,"span",4),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),_($t(2,1,e.value,e.key,"symbol"))}}function Jf(t,n){if(t&1&&(l(0,"mat-card",0)(1,"mat-card-content")(2,"div",1)(3,"div")(4,"span",2)(5,"b"),d(6," Bookings "),s()(),l(7,"span"),d(8),s()(),l(9,"span",3),d(10,"|"),s(),l(11,"div")(12,"span",2)(13,"b"),d(14," Revenue "),s()(),z(15,Xf,3,5,"span",4,U),S(17,"keyvalue"),s()()()()),t&2){let e=h();m(8),A(" ",e.totalNumberOfBookings," "),m(7),H(P(17,1,e.totalIncome))}}var Zo=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-total-income"]],inputs:{totalIncome:"totalIncome",totalNumberOfBookings:"totalNumberOfBookings"},decls:1,vars:1,consts:[[2,"width","100%"],[2,"display","flex","gap","2rem"],[2,"margin-right","1rem"],[2,"color","#ccc"],[2,"margin-right","2rem"]],template:function(o,a){o&1&&x(0,Jf,18,3,"mat-card",0),o&2&&v(a.totalIncome?0:-1)},dependencies:[J,Z,Yi,cd],encapsulation:2});let t=n;return t})();var Sn=(()=>{let n=class n{constructor(i){this.formBuilder=i,this.changed=new X,this.descriptionForm=this.formBuilder.group({description:""}),this.isDifferent=!1}ngOnInit(){this._descriptionFormChangesSubscription=this.descriptionForm.valueChanges.subscribe(i=>this.changed.emit())}
1ngOnChanges(i){i?.communityCampsite?.currentValue&&this.descriptionForm.patchValue(this.communityCampsite,{emitEvent:!1})}ngOnDestroy(){this._descriptionFormChangesSubscription.unsubscribe()}isHighlighted(){if(!this.campsite||!this.communityCampsite)return!1;let i=this.communityCampsite.description&&this.campsite.description!==this.communityCampsite.description;return i&&(this.isDifferent=!0),i}};n.\u0275fac=function(o){return new(o||n)(O(si))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-description-form"]],inputs:{campsite:"campsite",communityCampsite:"communityCampsite"},outputs:{changed:"changed"},features:[Nt],decls:10,vars:3,consts:[["autocomplete","off",3,"formGroup"],["formControlName","description","matInput","","rows","15","type","text"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"In update"),s()(),l(4,"mat-card-content")(5,"form",0)(6,"mat-form-field")(7,"mat-label"),d(8,"Description"),s(),M(9,"textarea",1),s()()()()),o&2&&(m(5),C("formGroup",a.descriptionForm),m(),Y("highlighted",a.isHighlighted()))},dependencies:[J,ot,st,Z,dt,oi,jt,ct,ni,ne,ri,ai,ht,Ft,Jt],styles:["[_nghost-%COMP%]{display:block}.highlighted[_ngcontent-%COMP%]  .mat-form-field-outline{background-color:#ffffe0}"],changeDetection:0});let t=n;return t})();function eh(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3," Current "),s()(),l(4,"mat-card-content")(5,"p"),d(6),s()()()),t&2){let e=h();m(6),_(e.campsite.description)}}var ta=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-description"]],inputs:{campsite:"campsite"},decls:1,vars:1,template:function(o,a){o&1&&x(0,eh,7,1,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z],styles:["[_nghost-%COMP%]{display:block}mat-card-content[_ngcontent-%COMP%]{padding-block:1rem}p[_ngcontent-%COMP%]{white-space:pre-wrap}"],changeDetection:0});let t=n;return t})();function nh(t,n){if(t&1){let e=$();l(0,"mat-option",2),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.addFacility(o))}),M(1,"i",3),d(2),s()}if(t&2){let e=n.$implicit,i=h(2);m(),Wt("fa-lg fa-fw far fa-"+e.iconName),m(),A(" ",e.i18n[i.lang]&&e.i18n[i.lang]," ")}}function oh(t,n){if(t&1&&(l(0,"mat-form-field")(1,"mat-label"),d(2,"Add new facility"),s(),l(3,"mat-select"),z(4,nh,3,3,"mat-option",null,U),s()()),t&2){let e=h();m(4),H(e.allFacilities)}}function ah(t,n){if(t&1){let e=$();l(0,"tr")(1,"td",4),M(2,"i"),s(),l(3,"td",5),d(4),s(),l(5,"td")(6,"button",6),w("click",function(){let o=F(e).$implicit,a=h();return B(a.removeFacility(o))}),M(7,"i",7),d(8," Remove "),s()()()}if(t&2){let e=n.$implicit,i=h();Y("highlighted",i.isHighlighted(e)),m(2),Wt("fa-lg fa-fw far fa-"+e.iconName),m(2),A(" ",e.i18n[i.lang]&&e.i18n[i.lang]," ")}}var Mn=(()=>{let n=class n{constructor(){this.allFacilities=[],this.changed=new X,this.facilities=[],this.isDifferent=!1,this.lang="en"}ngOnInit(){this._sortFacilities()}ngOnChanges(){this.allFacilities&&this.communityCampsite&&(this.facilities=Rd(this.communityCampsite.facilities,this.campsite?.facilities||[]).map(i=>this.allFacilities.find(o=>o.value===i)).filter(i=>!!i),this._sortFacilities())}getFacilitiesByValue(){return this.facilities.map(i=>i.value)}addFacility(i){this.facilities.find(a=>a.value===i.value)||(this.facilities=[i,...this.facilities],this.changed.emit())}removeFacility(i){this.facilities=this.facilities.filter(o=>o.value!==i.value),this.changed.emit()}isHighlighted(i){if(!this.campsite||!this.communityCampsite)return!1;let o=!this.campsite.facilities.includes(i.value);return o&&(this.isDifferent=!0),o}trackBy(i,o){return o.value}_sortFacilities(){this.lang&&(this.allFacilities?.sort((i,o)=>i.i18n[this.lang].localeCompare(o.i18n[this.lang])),this.facilities?.sort((i,o)=>i.i18n[this.lang].localeCompare(o.i18n[this.lang])))}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-facilities-form"]],inputs:{allFacilities:"allFacilities",campsite:"campsite",communityCampsite:"communityCampsite"},outputs:{changed:"changed"},features:[Nt],decls:10,vars:1,consts:[[1,"table"],[3,"highlighted"],[3,"click"],[2,"margin-right","8px"],[2,"width","45px","text-align","center","vertical-align","middle"],[2,"vertical-align","middle"],["mat-button","","color","warn",3,"click"],[1,"far","fa-tras
1h",2,"color","lightcoral"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"In update"),s()(),l(4,"mat-card-content"),x(5,oh,6,0,"mat-form-field"),l(6,"table",0)(7,"tbody"),z(8,ah,9,5,"tr",1,a.trackBy,!0),s()()()()),o&2&&(m(5),v(a.allFacilities!=null&&a.allFacilities.length?5:-1),m(3),H(a.facilities))},dependencies:[J,ot,st,Z,ht,Ft,Vt,Rt,et],styles:["[_nghost-%COMP%]{display:block;min-height:75vh}.highlighted[_ngcontent-%COMP%]{background-color:#ffffe0}"],changeDetection:0});let t=n;return t})();function sh(t,n){if(t&1&&(l(0,"tr")(1,"td",1),M(2,"i"),s(),l(3,"td",2),d(4),s()()),t&2){let e=n.$implicit,i=h(2);m(2),Wt("fa-lg fa-fw far fa-"+e.iconName),m(2),A(" ",e.i18n[i.lang]&&e.i18n[i.lang]," ")}}function lh(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"Current"),s()(),l(4,"mat-card-content")(5,"table",0)(6,"tbody"),z(7,sh,5,3,"tr",null,U),s()()()()),t&2){let e=h();m(7),H(e.facilities)}}var ea=(()=>{let n=class n{constructor(){this.allFacilities=[],this.facilities=[],this.lang="en"}ngOnChanges(){this.allFacilities&&this.campsite&&(this._convertFacilityTypes(),this._sortFacilities())}_convertFacilityTypes(){this.facilities=this.campsite.facilities.map(i=>this.allFacilities.find(o=>o.value===i)).filter(i=>!!i)}_sortFacilities(){this.lang&&(this.allFacilities?.sort((i,o)=>i.i18n[this.lang].localeCompare(o.i18n[this.lang])),this.facilities?.sort((i,o)=>i.i18n[this.lang].localeCompare(o.i18n[this.lang])))}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-facilities"]],inputs:{allFacilities:"allFacilities",campsite:"campsite"},features:[Nt],decls:1,vars:1,consts:[[1,"table"],[2,"width","45px","text-align","center","vertical-align","middle"],[2,"vertical-align","middle"]],template:function(o,a){o&1&&x(0,lh,9,0,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z],styles:["[_nghost-%COMP%]{display:block}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{padding-block:1rem;vertical-align:middle}"],changeDetection:0});let t=n;return t})();var dh=()=>[],wn=(()=>{let n=class n{constructor(){this.changed=new X,this.images=[]}ngOnChanges(){console.log("this.communityCampsite.images",this.communityCampsite.images),this.communityCampsite&&(this.images=this.communityCampsite.images)}onImageDeleted(i){this.images.splice(i,1),this.changed.emit(this.images)}onImageReorder(){this.changed.emit(this.images)}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-images-form"]],inputs:{communityCampsite:"communityCampsite"},outputs:{changed:"changed"},features:[Nt],decls:6,vars:2,consts:[[3,"imageDeleted","imageReorder","images"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"In update"),s()(),l(4,"mat-card-content")(5,"app-image-reorder-list",0),w("imageDeleted",function(c){return a.onImageDeleted(c)})("imageReorder",function(){return a.onImageReorder()}),s()()()),o&2&&(m(5),C("images",a.images||De(1,dh)))},dependencies:[J,ot,st,Z,lm],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0});let t=n;return t})();function ph(t,n){t&1&&(l(0,"div"),M(1,"i",2),d(2," No images added"),s())}function uh(t,n){if(t&1){let e=$();l(0,"div",1),M(1,"img",3),l(2,"button",4),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.openImageDialog(o))}),M(3,"i",5),d(4," Show"),s()()}if(t&2){let e=n.$implicit;m(),C("src",e.versions.medium??e.versions.original,fi)}}function fh(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"Current"),s()(),l(4,"mat-card-content"),x(5,ph,3,0,"div"),l(6,"div",0),z(7,uh,5,1,"div",1,U),s()()()),t&2){let e=h();m(5),v(e.campsite.mediaRefs.length?-1:5),m(2),H(e.campsite.mediaRefs)}}var ia=(()=>{let n=class n{constructor(i){this.dialog=i}openImageDialog(i){this.dialog.open(sm,{panelClass:"image-dialog-panel",data:{imageUrl:i.versions.large??i.versions.original}})}};n.\u0275fac=function(o){return new(o||n)(O(ve))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-images"]],inputs:{campsite:"campsite"},decls:1,vars:1,consts:[[1,"image-list"],[1,"image-box"],[1,"fal","fa-lg","fa-folder-open"],["alt","",3,"src"],["mat-button","","type","button",3,"click"],[1,"far","fa-expand"]],template:function(o,a){o&1&&x(0,fh,9,1,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z,et],styles:["[_nghost-%COMP%]{display:block}mat-card-content[_ngcontent-%COMP%]{display:flex}.image-list[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column}.image-box[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:1rem;border-bottom:2px solid #ddd;box-sizing:border-box}.image-box[_ngcontent-%COMP%]:last-child{border-bottom:0}img[_ngcontent-%COMP%]{width:40%;height:100%;border-radius:.25rem}"],changeDetection:0});let t=n;return t})();function gh(t,n){if(t&1&&(l(0,"mat-option",8),d(1),s()),t&2){let e=n.$implicit;C("value",e.code),m(),A(" ",e.name," ")}}var En=(()=>{let n=class n{constructor(i){this.formBuilder=i,this.changed=new X,this.infoForm=this.formBuilder.group({address:"",country:"",coordinates:this.formBuilder.group({lat:[],long:[]}
1),email:"",facebook:"",instagram:"",name:"",phone:"",phone2:"",website:""}),this.countries=Cr,this.isDifferent=!1}ngOnInit(){this._infoFormChangesSubscription=this.infoForm.valueChanges.subscribe(i=>this.changed.emit())}ngOnChanges(i){i?.communityCampsite?.currentValue&&this.infoForm.patchValue(this.communityCampsite,{emitEvent:!1})}ngOnDestroy(){this._infoFormChangesSubscription.unsubscribe()}isHighlighted(i){if(!this.campsite||!this.communityCampsite)return!1;let o=this.communityCampsite[i]&&this.campsite[i]!==this.communityCampsite[i];return o&&(this.isDifferent=!0),o}isCoordinatesHighlighted(i){if(!this.campsite||!this.communityCampsite)return!1;let o=this.communityCampsite.coordinates?.[i]&&this.campsite.coordinates?.[i]!==this.communityCampsite.coordinates?.[i];return o&&(this.isDifferent=!0),o}};n.\u0275fac=function(o){return new(o||n)(O(si))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-info-form"]],inputs:{campsite:"campsite",communityCampsite:"communityCampsite"},outputs:{changed:"changed"},features:[Nt],decls:54,vars:23,consts:[["autocomplete","off",3,"formGroup"],["formControlName","name","matInput","","type","text"],["formControlName","email","matInput","","type","email"],[1,"form-group"],["formControlName","phone","matInput","","type","text","inputmode","numeric"],["formControlName","phone2","matInput","","type","text","inputmode","numeric"],["formControlName","address","matInput","","type","text"],["matInput","","formControlName","country"],[3,"value"],["formGroupName","coordinates",1,"form-group"],["formControlName","lat","matInput","","type","number","inputmode","numeric"],["formControlName","long","matInput","","type","number","inputmode","numeric"],["formControlName","website","matInput","","type","text"],["formControlName","facebook","matInput","","type","text"],["formControlName","instagram","matInput","","type","text"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"In update"),s()(),l(4,"mat-card-content")(5,"form",0)(6,"mat-form-field")(7,"mat-label"),d(8,"Name"),s(),M(9,"input",1),s(),l(10,"mat-form-field")(11,"mat-label"),d(12,"Email"),s(),M(13,"input",2),s(),l(14,"div",3)(15,"mat-form-field")(16,"mat-label"),d(17,"Phone"),s(),M(18,"input",4),s(),l(19,"mat-form-field")(20,"mat-label"),d(21,"Phone 2"),s(),M(22,"input",5),s()(),l(23,"mat-form-field")(24,"mat-label"),d(25,"Address"),s(),M(26,"input",6),s(),l(27,"mat-form-field")(28,"mat-label"),d(29,"Country"),s(),l(30,"mat-select",7),z(31,gh,2,2,"mat-option",8,U),s()(),l(33,"div",9)(34,"mat-form-field")(35,"mat-label"),d(36,"Coordinate - latitude"),s(),M(37,"input",10),s(),l(38,"mat-form-field")(39,"mat-label"),d(40,"Coordinate - longitude"),s(),M(41,"input",11),s()(),l(42,"mat-form-field")(43,"mat-label"),d(44,"Website"),s(),M(45,"input",12),s(),l(46,"mat-form-field")(47,"mat-label"),d(48,"Facebook page"),s(),M(49,"input",13),s(),l(50,"mat-form-field")(51,"mat-label"),d(52,"Instagram profile"),s(),M(53,"input",14),s()()()()),o&2&&(m(5),C("formGroup",a.infoForm),m(),Y("highlighted",a.isHighlighted("name")),m(4),Y("highlighted",a.isHighlighted("email")),m(5),Y("highlighted",a.isHighlighted("phone")),m(4),Y("highlighted",a.isHighlighted("phone2")),m(4),Y("highlighted",a.isHighlighted("address")),m(4),Y("highlighted",a.isHighlighted("country")),m(4),H(a.countries),m(3),Y("highlighted",a.isCoordinatesHighlighted("lat")),m(4),Y("highlighted",a.isCoordinatesHighlighted("long")),m(4),Y("highlighted",a.isHighlighted("website")),m(4),Y("highlighted",a.isHighlighted("facebook")),m(4),Y("highlighted",a.isHighlighted("instagram")))},dependencies:[J,ot,st,Z,dt,oi,jt,dr,ct,ni,ne,ri,ai,mr,ht,Ft,Jt,Vt,Rt],styles:["[_nghost-%COMP%]{display:block}.form-group[_ngcontent-%COMP%]{display:flex;gap:1rem}.highlighted[_ngcontent-%COMP%]  .mat-form-field-outline{background-color:#ffffe0}"],changeDetection:0});let t=n;return t})();function Ch(t,n){t&1&&(l(0,"span"),d(1,"/"),s())}function bh(t,n){if(t&1&&(l(0,"tr")(1,"th",2),d(2,"Facebook"),s(),l(3,"td"),M(4,"i",3),d(5),S(6,"stripSocialMediaLink"),s()()),t&2){let e=h(2);m(5),A(" ",P(6,1,e.campsite.facebook)," ")}}function xh(t,n){if(t&1&&(l(0,"tr")(1,"th",2),d(2,"Instagram"),s(),l(3,"td"),M(4,"i",4),d(5),S(6,"stripSocialMediaLink"),s()()),t&2){let e=h(2);m(5),A(" ",P(6,1,e.campsite.instagram)," ")}}function vh(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3," Current "),s()(),l(4,"mat-card-content")(5,"div",0)(6,"table",1)(7,"tbody")(8,"tr")(9,"th",2),d(10,"Name"),s(),l(11,"td"),d(12),s()(),l(13,"tr")(14,"th",2),d(15,"Email"),s(),l(16,"td"),d(17
1),s()(),l(18,"tr")(19,"th",2),d(20,"Phone"),s(),l(21,"td"),d(22),x(23,Ch,2,0,"span"),d(24),s()(),l(25,"tr")(26,"th",2),d(27,"Address"),s(),l(28,"td"),d(29),s()(),l(30,"tr")(31,"th",2),d(32,"Country"),s(),l(33,"td"),d(34),S(35,"translateCountryCode"),s()(),l(36,"tr")(37,"th",2),d(38,"Coordinates"),s(),l(39,"td"),d(40),s()(),l(41,"tr")(42,"th",2),d(43,"Website"),s(),l(44,"td"),d(45),s()(),x(46,bh,7,3,"tr"),x(47,xh,7,3,"tr"),s()()()()()),t&2){let e=h();m(12),_(e.campsite.name),m(5),_(e.campsite.email),m(5),A(" ",e.campsite.phone," "),m(),v(e.campsite.phone2?23:-1),m(),A(" ",e.campsite.phone2," "),m(5),_(e.campsite.address),m(5),_(P(35,12,e.campsite.country)),m(6),rt("",e.campsite.coordinates.lat,", ",e.campsite.coordinates.long),m(5),_(e.campsite.website),m(),v(e.campsite.facebook?46:-1),m(),v(e.campsite.instagram?47:-1)}}var na=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-info"]],inputs:{campsite:"campsite"},decls:1,vars:1,consts:[[1,"table-responsive"],[1,"table"],["scope","row"],[1,"fab","fa-facebook","facebook-icon"],[1,"fab","fa-instagram"]],template:function(o,a){o&1&&x(0,vh,48,14,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z,wm,fo],styles:["[_nghost-%COMP%]{display:block}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{padding-block:1rem;vertical-align:middle}"],changeDetection:0});let t=n;return t})();function Sh(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e.value),m(),A(" ",e.name," ")}}function Mh(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),A(" ",e," ")}}function wh(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e.value),m(),A(" ",e.name," ")}}function Eh(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),A(" ",e," ")}}var Tn=(()=>{let n=class n{constructor(i,o){this.dateManagementService=i,this.formBuilder=o,this.changed=new X,this.seasonDatesForm=this.formBuilder.group({closeDay:[],closeMonth:[],openDay:[],openMonth:[]}),this.closeMonthDays=[],this.isDifferent=!1,this.openMonthDays=[],this.months=this.dateManagementService.months}ngOnInit(){this._handleMonthDays()}ngOnChanges(i){i?.communityCampsite?.currentValue&&(this.seasonDatesForm.patchValue(this.communityCampsite?.seasonDates,{emitEvent:!1}),this._handleCloseMonthDays(this.communityCampsite.seasonDates?.closeMonth),this._handleOpenMonthDays(this.communityCampsite.seasonDates?.openMonth))}ngOnDestroy(){this._closeMonthValueSubscription.unsubscribe(),this._openMonthValueSubscription.unsubscribe()}isHighlighted(i){if(!this.campsite||!this.communityCampsite)return!1;let o=this.communityCampsite.seasonDates?.[i]&&this.campsite.seasonDates?.[i]!==this.communityCampsite.seasonDates?.[i];return o&&(this.isDifferent=!0),o}_handleMonthDays(){this._closeMonthValueSubscription=this.seasonDatesForm.get("closeMonth").valueChanges.subscribe(i=>{this._handleCloseMonthDays(i),this.changed.emit()}),this._openMonthValueSubscription=this.seasonDatesForm.get("openMonth").valueChanges.subscribe(i=>{this._handleOpenMonthDays(i),this.changed.emit()})}_handleCloseMonthDays(i){if(!i)return;let o=this.months.find(a=>a.value===i);this.closeMonthDays=[...Array(o.days).keys()].map(a=>a+1)}_handleOpenMonthDays(i){if(!i)return;let o=this.months.find(a=>a.value===i);this.openMonthDays=[...Array(o.days).keys()].map(a=>a+1)}};n.\u0275fac=function(o){return new(o||n)(O(tm),O(si))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-season-dates-form"]],inputs:{campsite:"campsite",communityCampsite:"communityCampsite"},outputs:{changed:"changed"},features:[Nt],decls:32,vars:9,consts:[["autocomplete","off",3,"formGroup"],[1,"form-group"],["matInput","","formControlName","openMonth"],[3,"value"],["matInput","","formControlName","openDay"],["matInput","","formControlName","closeMonth"],["matInput","","formControlName","closeDay"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"In update"),s()(),l(4,"mat-card-content")(5,"form",0)(6,"div",1)(7,"mat-form-field")(8,"mat-label"),d(9,"Open month"),s(),l(10,"mat-select",2),z(11,Sh,2,2,"mat-option",3,U),s()(),l(13,"mat-form-field")(14,"mat-label"),d(15,"Open day"),s(),l(16,"mat-select",4),z(17,Mh,2,2,"mat-option",3,U),s()()(),l(19,"div",1)(20,"mat-form-field")(21,"mat-label"),d(22,"Close month"),s(),l(23,"mat-select",5),z(24,wh,2,2,"mat-option",3,U),s()(),l(26,"mat-form-field")(27,"mat-label"),d(28,"Close day"),s(),l(29,"mat-select",6),z(30,Eh,2,2,"mat-option",3,U),s()()()()()()),o&2&&(m(5),C("formGroup",a.seasonDatesForm),m(2),Y("highlighted",a.isHighlighted("openMonth")),m(4),H(a.months),m(2),Y("highlighted",a.isHighlighted("openDay")),m(4),H(a.openMonthDays),m(3),Y("highlighted",a.isHighlighted("closeMonth")),m(4),H(a.months),m(2),Y("highlighted",a.isHighlighted("closeDay")),m(4),H(a.closeMonthDays))},dependencies:[J,ot,st,Z,dt,oi,ct,ni,ne,ri,ai,ht,Ft,Vt,Rt],styles:["[_nghost-%COMP%]{display:block;min-height:75vh}.form-group[_ngcontent-%COMP%]{display:flex;gap:1rem}.highlighted[_ngcontent-%COMP%]  .mat-form-field-outline{background-color:#ffffe0}"],changeDetection:0});let t=n;return t})();function Dh(t,n){if(t&1&&(l(0,"div")(1,"b"),d(2),S(3,"seasonDatesToString"),s()()),t&2){let e=h(2);m(2),_(mt(3,1,e.campsite.seasonDates,e.activeLang))}}function Ph(t,n){t&1&&(l(0,"div"),d(1,"Season not set"),s())}
1function kh(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3," Current "),s()(),l(4,"mat-card-content"),x(5,Dh,4,4,"div"),x(6,Ph,2,0,"div"),s()()),t&2){let e=h();m(5),v(e.campsiteSeasonIsSet?5:-1),m(),v(e.campsiteSeasonIsSet?-1:6)}}var oa=(()=>{let n=class n{constructor(i){this.translocoService=i,this.activeLang=this.translocoService.getActiveLang()}get campsiteSeasonIsSet(){return!!this.campsite.seasonDates&&!!this.campsite.seasonDates.closeDay&&!!this.campsite.seasonDates.closeMonth&&!!this.campsite.seasonDates.openDay&&!!this.campsite.seasonDates.openMonth}};n.\u0275fac=function(o){return new(o||n)(O(Qn))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-season-dates"]],inputs:{campsite:"campsite"},decls:1,vars:1,template:function(o,a){o&1&&x(0,kh,7,2,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z,Mm],styles:["[_nghost-%COMP%]{display:block}mat-card-content[_ngcontent-%COMP%]{padding-block:1rem}"],changeDetection:0});let t=n;return t})();var Ih=()=>[5,10,15,20];function Rh(t,n){t&1&&(l(0,"th",15),d(1,"Date"),s())}function Ah(t,n){if(t&1&&(l(0,"td",16),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),A(" ",P(2,1,e.createdAt)," ")}}function Fh(t,n){t&1&&(l(0,"th",17),d(1,"Campsite/POI"),s())}function Bh(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.campsiteName||e.name," ")}}function Lh(t,n){t&1&&(l(0,"th",17),d(1,"User"),s())}function Nh(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.createdByName," ")}}function Vh(t,n){t&1&&(l(0,"th",15),d(1,"Type"),s())}function $h(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.requestType," ")}}function zh(t,n){t&1&&(l(0,"th",15),d(1,"Status"),s())}function Hh(t,n){if(t&1&&(l(0,"td",16)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Y("success",e.status===i.CommunityCampsiteStatus.APPROVED)("danger",e.status===i.CommunityCampsiteStatus.DECLINED),m(),A(" ",e.status," ")}}function jh(t,n){t&1&&(l(0,"th",17),d(1,"Actions"),s())}function Uh(t,n){if(t&1){let e=$();l(0,"td",16)(1,"div",18)(2,"button",19),w("click",function(){let o=F(e).$implicit,a=h();return B(a.seeMore.emit(o))}),d(3,"See more"),s(),l(4,"button",20),w("click",function(){let o=F(e).$implicit,a=h();return B(a.approveCommunityCampsite.emit(o))}),d(5," Approve "),s(),l(6,"button",21),w("click",function(){let o=F(e).$implicit,a=h();return B(a.declineCommunitCampsite.emit(o))}),d(7," Decline "),s()()()}if(t&2){let e=n.$implicit,i=h();m(4),C("disabled",e.status===i.CommunityCampsiteStatus.APPROVED),m(2),C("disabled",e.status===i.CommunityCampsiteStatus.DECLINED||e.status===i.CommunityCampsiteStatus.APPROVED)}}function Wh(t,n){t&1&&M(0,"tr",22)}function Gh(t,n){t&1&&M(0,"tr",23)}function qh(t,n){t&1&&(l(0,"div",14),d(1,"There are no community campsites requests at the moment!"),s())}function Yh(t,n){t&1&&M(0,"app-loading")}var aa=(()=>{let n=class n{constructor(){this.approveCommunityCampsite=new X,this.declineCommunitCampsite=new X,this.paginationChanged=new X,this.seeMore=new X,this.CommunityCampsiteStatus=Ri,this.dataSource=new Qt([]),this.displayedColumns=["createdAt","campsiteName","createdByName","requestType","status","actions"]}ngOnChanges(i){i?.communityCampsites?.currentValue&&(this.dataSource=new Qt(this.communityCampsites))}ngAfterViewInit(){this._handleTableActionsChanges()}ngOnDestroy(){this._tablePaginatorSubscription?.unsubscribe(),this._tableSortSubscription?.unsubscribe()}_handleTableActionsChanges(){this._tablePaginatorSubscription=this.paginator?.page?.subscribe(i=>this.paginationChanged.emit(Et(nt({},this.pagination||{}),{limit:i.pageSize,offset:i.pageIndex*i.pageSize}))),this._tableSortSubscription=this.sort?.sortChange?.subscribe(i=>{this.paginator.pageIndex=0,this.paginationChanged.emit(Et(nt({},this.pagination||{}),{offset:0,sortBy:i.active,sortDirection:i.direction}))})}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-community-campsites-table"]],viewQuery:function(o,a){if(o&1&&Xt(ee,5)(Zt,5),o&2){let r;Tt(r=Dt())&&(a.paginator=r.first),Tt(r=Dt())&&(a.sort=r.first)}},inputs:{communityCampsites:"communityCampsites",loading:"loading",pagination:"pagination",totalCount:"totalCount"},outputs:{approveCommunityCampsite:"approveCommunityCampsite",declineCommunitCampsite:"declineCommunitCampsite",paginationChanged:"paginationChanged",seeMore:"seeMore"},features:[Nt],decls:25,vars:12,consts:[[1,"table-responsive",3,"hidden"],["mat-table","","matSort","","matSortDisableClear","",3,"dataSource","matSortActive","matSortDirection"],["matColumnDef","createdAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","campsiteName"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","createdByName"],["matColumnDef","requestType"],["matColumnDef","status"],["matColumnDef","actions"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[3,"length","pageSizeOptions","pageSize"],[1,"alert","alert-info"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],[1,"table-actions"],["mat-button","","mat-stroked-button","",3,"click"],["color","primary","mat-button","","mat-flat-button","",3,"click","disabled"],["color","warn","mat-button","","mat-flat-button","",3,"click","disabled"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,Rh,2,0,"th",3)(4,Ah,3,3,"td",4),R(),I(5,5),T(6,Fh,2,0,"th",6)(7,Bh,2,1,"td",4),R(),I(8,7),T(9,Lh,2,0,"th",6)(10,Nh,2,1,"td",4),R(),I(11,8),T(12,Vh,2,0,"th",3)(13,$h,2,1,"td",4),R(),I(14,9),T(15,zh,2,0,"th",3)(16,Hh,3,5,"td",4),R(),I(17,10),T(18,jh,2,0,"th",6)(19,Uh,8,2,"td",4),R(),T(20,Wh,1,0,"tr",11)(21,Gh,1,0,"tr",12),s(),M(22,"mat-paginator",13),s(),x(23,qh,2,0,"div",14),x(24,Yh,1,0,"app-loading")),o&2&&(C("hidden",!(a.communityCampsites!=null&&a.communityCampsites.length)),m(),C("dataSource",a.dataSource)("matSortActive",a.pagination.sortBy)("matSortDirection",a.pagination.sortDirection),m(19),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("length",a.totalCount||0)("pageSizeOptions",De(11,Ih))("pageSize",(a.pagination==null?null:a.pagination.limit)||10),m(),v((a.communityCampsites==null?null:a.communityCampsites.length)===0?23:-1),m(),v(a.loading?24:-1))},dependencies:[gt,Zt,bt,Ct,xt,Oe,_t,vt,et,yt,Mt,St,wt,ee,ae,ft],styles:["[_nghost-%COMP%]{display:block;position:relative}table[_ngcontent-%COMP%]{width:100%}.table-actions[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:.5rem}.alert-info[_ngcontent-%COMP%]{margin:.75rem 0 0}"],changeDetection:0});let t=n;return t})();function Kh(t,n){if(t&1&&(l(0,"span",6),d(1),s()),t&2){let e=h().$implicit;m(),_(e.label)}}function Xh(t,n){if(t&1&&(l(0,"mat-option",4)(1,"span",5),d(2),s(),x(3,Kh,2,1,"span",6),s()),t&2){let e=n.$implicit;C("value",e),m(2),_(e.name),m(),v(e.label?3:-1)}}var Jh=3,Zh=300,Dn=(()=>{let n=class n{constructor(i){this.campsiteService=i,this.selected=new X,this.control=new gi(""),this.options$=new tt([]),this._subscription=null}ngOnInit(){this._subscription=this.control.valueChanges.pipe(Le(i=>typeof i=="string"),er(Zh),ir(),nr(i=>i.trim().length<Jh?(this.options$.next([]),[]):this.campsiteService.searchCampsites(i.trim()))).subscribe({next:i=>this.options$.next(i.map(o=>({id:o.id,name:o.name,label:o.address}))),error:()=>this.options$.next([])})}ngOnDestroy(){this._subscription?.unsubscribe()}displayName(i){return typeof i=="string"?i:i?.name??""}onSelected(i){this.selected.emit(i)}};n.\u0275fac=function(o){return new(o||n)(O(nn))},n.\u0275cmp=L({type:n,selectors:[["app-distribution-campsite-search"]],outputs:{selected:"selected"},decls:11,vars:5,consts:[["auto","matAutocomplete"],["matInput","","type","text","autocomplete","off","spellcheck","fal
1se",3,"formControl","matAutocomplete"],["matPrefix",""],[3,"optionSelected","displayWith"],[3,"value"],[1,"distribution-campsite-option-name"],[1,"distribution-campsite-option-label"]],template:function(o,a){if(o&1&&(l(0,"mat-form-field")(1,"mat-label"),d(2,"Search campsite"),s(),M(3,"input",1),l(4,"mat-icon",2),d(5,"search"),s(),l(6,"mat-autocomplete",3,0),w("optionSelected",function(c){return a.onSelected(c.option.value)}),z(8,Xh,4,3,"mat-option",4,U),S(10,"async"),s()()),o&2){let r=lt(7);m(3),C("formControl",a.control)("matAutocomplete",r),m(3),C("displayWith",a.displayName),m(2),H(P(10,3,a.options$))}},dependencies:[ht,Ft,Jt,dt,jt,ct,Sr,ne,He,Fe,ur,yr,Rt,pt],styles:["[_nghost-%COMP%]{display:block;width:100%;min-width:0}mat-form-field[_ngcontent-%COMP%]{width:100%;margin-bottom:0}[_nghost-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.distribution-campsite-option-name[_ngcontent-%COMP%]{font-weight:500}.distribution-campsite-option-label[_ngcontent-%COMP%]{margin-left:8px;font-size:12px;color:#0000008a}"],changeDetection:0});let t=n;return t})();function eg(t,n){if(t&1&&(l(0,"div",18)(1,"div",20),M(2,"div",21)(3,"div",22)(4,"div",23)(5,"div",24)(6,"div",25),s(),l(7,"div",26),d(8),S(9,"slice"),s()()),t&2){let e=n.$implicit,i=h(),o=h(2);C("matTooltip",o.sparkTooltip(e)),m(2),ki("height",o.segHeight(e.unknown,i),"%"),m(),ki("height",o.segHeight(e.transportError,i),"%"),m(),ki("height",o.segHeight(e.rejected,i),"%"),m(),ki("height",o.segHeight(e.accepted,i),"%"),m(),ki("height",o.segHeight(e.total-e.accepted-e.rejected-e.transportError-e.unknown,i),"%"),m(2),_(mt(9,12,e.day,5))}}function ig(t,n){t&1&&(l(0,"div",19),d(1,"No messages built for this channel in the last 7 days."),s())}function ng(t,n){if(t&1&&(l(0,"div",12),z(1,eg,10,15,"div",18,U),x(3,ig,2,0,"div",19),s()),t&2){let e=n;m(),H(e),m(2),v(e.length?-1:3)}}function og(t,n){if(t&1&&(l(0,"div",1)(1,"div",3)(2,"h2"),d(3),s(),l(4,"span"),d(5),s(),l(6,"span",4),d(7,"Toggle mode \u{1F512}"),s()(),l(8,"div",5)(9,"div",6)(10,"span",7),d(11,"Queue tier"),s(),l(12,"span",8),d(13),s()(),l(14,"div",6)(15,"span",7),d(16,"Granularity"),s(),l(17,"span",8),d(18),S(19,"lowercase"),s()(),l(20,"div",6)(21,"span",7),d(22,"Debounce"),s(),l(23,"span",8),d(24),s()(),l(25,"div",6)(26,"span",7),d(27,"Rate limit"),s(),l(28,"span",8),d(29),s()(),l(30,"div",6)(31,"span",7),d(32,"Max attempts"),s(),l(33,"span",8),d(34),s()(),l(35,"div",6)(36,"span",7),d(37,"Last accepted"),s(),l(38,"span",8),d(39),S(40,"adminDate"),s()()(),l(41,"div",9)(42,"div",10)(43,"span",7),d(44,"Verdicts, last 7 days"),s(),l(45,"span",11),d(46),s()(),x(47,ng,4,1,"div",12),s(),l(48,"div",13)(49,"div",7),d(50,"Shadow vs live"),s(),l(51,"div",14),d(52),s()(),l(53,"div",15)(54,"span",16),d(55,"Trigger FULL_RESYNC for a campsite\u2026"),s(),l(56,"span",17),d(57,"phase 2"),s()()()),t&2){let e,i=n.$implicit,o=h();m(3),_(i.name),m(),Wt(o.modeClass(i.mode)),m(),_(i.mode),m(8),_(i.policy.queueTier),m(5),_(P(19,16,i.policy.granularity)),m(6),A("",i.policy.debounceSeconds," s"),m(5),rt("",i.queue.maxDispatchesPerSecond,"/s \xB7 ",i.queue.maxConcurrentDispatches," conc."),m(5),_(i.queue.maxAttempts),m(4),Y("distribution-channel-stat-value--muted",!i.lastAcceptedAt),m(),_(i.lastAcceptedAt?mt(40,18,i.lastAcceptedAt,!0):"never"),m(7),_(o.sparkNote(i)),m(),v((e=o.sparkFor(i))?47:-1,e),m(5),_(o.shadowNote(i))}}function ag(t,n){t&1&&(l(0,"div",2),d(1,"No channels reported."),s())}var Sl=(()=>{let n=class n{constructor(){this.channels=[],this.messageStats=[]}sparkFor(i){return Qm(this.messageStats,i.name)}sparkMax(i){return i.reduce((o,a)=>Math.max(o,a.total),0)}barHeight(i,o){let a=this.sparkMax(o);return a===0?0:i.total/a*100}segHeight(i,o){let a=this.sparkMax(o);return a===0||i<=0?0:i/a*100}sparkTooltip(i){let o=i.total-i.accepted-i.rejected-i.transportError-i.unknown;return`${i.day} \xB7 ${i.total} messages \xB7 ${i.accepted} accepted \xB7 ${i.rejected} rejected \xB7 ${i.transportError} transport \xB7 ${i.unknown} unknown \xB7 ${o} built/pending`}sparkNote(i){let o=this.sparkFor(i),a=o.reduce((c,p)=>c+p.total,0),r=o.reduce((c,p)=>c+p.accepted,0);return a?`${a} messages \xB7 ${Math.round(r/a*100)}% accepted`:"no messages"}shadowNote(i){let o=this.messageStats.filter(c=>c.channel===i.name),a=o.filter(c=>c.mode==="SHADOW").reduce((c,p)=>c+p.count,0),r=o.filter(c=>c.mode==="LIVE").reduce((c,p)=>c+p.count,0);return i.mode==="SHADOW"?a?`Shadow: ${a} message${a===1?"":"s"} were built and recorded in the last 7 days but nothing was sent. Flip DISTRIBUTION_MODE to LIVE to deliver.`:"Shadow: nothing was built for this channel in the last 7 days.":`Live: ${r} message${r===1?"":"s"} sent in the last 7 days${a?` (${a} older shadow row${a===1?"":"s"} in the same window)`:""}.`}modeClass(i){return Ce(yi(i))}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-distribution-channels"]],inputs:{channels:"channels",messageStats:"messageStats"},decls:4,vars:1,consts:[[1,"distribution-channels"],[1,"dist-card","dist-card--padded","distribution-channel"],[1,"dist-info"],[1,"distribution-channel-head"],["matTooltip","Mode is deploy-time configuration (DISTRIBUTION_MODE_*)",1,"dist-ghost"],[1,"distribution-channel-stats"],[1,"distribution-channel-stat"],[1,"dist-label"],[1,"distribution-channel-stat-value"],[1,"distribution-s
1park"],[1,"distribution-spark-head"],[1,"dist-id"],[1,"distribution-spark-bars"],[1,"distribution-shadow-note"],[1,"distribution-shadow-note-text"],[1,"distribution-channel-actions"],["matTooltip","Phase 2",1,"dist-ghost"],[1,"dist-phase2"],["matTooltipPosition","above",1,"distribution-spark-day",3,"matTooltip"],[1,"dist-info","distribution-spark-empty"],[1,"distribution-spark-stack"],[1,"distribution-spark-seg","distribution-spark-seg--amber"],[1,"distribution-spark-seg","distribution-spark-seg--orange"],[1,"distribution-spark-seg","distribution-spark-seg--red"],[1,"distribution-spark-seg","distribution-spark-seg--green"],[1,"distribution-spark-seg","distribution-spark-seg--grey"],[1,"distribution-spark-label"]],template:function(o,a){o&1&&(l(0,"div",0),z(1,og,58,21,"div",1,U),x(3,ag,2,0,"div",2),s()),o&2&&(m(),H(a.channels),m(2),v(a.channels.length?-1:3))},dependencies:[Ae,ld,lr,ft],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-channels[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(560px,100%),1fr));gap:14px}.distribution-channel[_ngcontent-%COMP%]{padding:16px 18px}.distribution-channel-head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.distribution-channel-head[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:15px;font-weight:600}.distribution-channel-stats[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#eeeeec;border:1px solid #eeeeec;border-radius:6px;margin-top:14px;overflow:hidden}.distribution-channel-stat[_ngcontent-%COMP%]{background:#fff;padding:10px 12px;min-width:0;display:flex;flex-direction:column}.distribution-channel-stat-value[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}.distribution-channel-stat-value--muted[_ngcontent-%COMP%]{color:#a9aaad;font-weight:500}
1.distribution-spark[_ngcontent-%COMP%]{margin-top:14px}.distribution-spark-head[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:10px}.distribution-spark-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.distribution-spark-bars[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:6px;height:80px;margin-top:8px}.distribution-spark-day[_ngcontent-%COMP%]{flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end;height:100%}.distribution-spark-stack[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;gap:1px}.distribution-spark-seg[_ngcontent-%COMP%]{width:100%;border-radius:1px}.distribution-spark-seg--green[_ngcontent-%COMP%]{background:#2e9e5b}.distribution-spark-seg--red[_ngcontent-%COMP%]{background:#d64a2a}.distribution-spark-seg--orange[_ngcontent-%COMP%]{background:#e98a3c}.distribution-spark-seg--amber[_ngcontent-%COMP%]{background:#e0a02b}.distribution-spark-seg--grey[_ngcontent-%COMP%]{background:#d9d9d6}.distribution-spark-label[_ngcontent-%COMP%]{font-size:9.5px;color:#a9aaad;text-align:center;margin-top:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.distribution-spark-empty[_ngcontent-%COMP%]{width:100%;align-self:center}.distribution-shadow-note[_ngcontent-%COMP%]{margin-top:14px;padding:10px 12px;background:#f6f6f5;border:1px solid #e3e3e1;border-radius:6px}.distribution-shadow-note-text[_ngcontent-%COMP%]{font-size:12.5px;color:#45464a;margin-top:4px}.distribution-channel-actions[_ngcontent-%COMP%]{margin-top:14px;display:flex;align-items:center;gap:10px}"],changeDetection:0});let t=n;return t})();var rg=()=>["expandedDetail"],sg=t=>[t];function lg(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function cg(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function dg(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function mg(t,n){if(t&1){let e=$();l(0,"app-distribution-campsite-search",13),w("selected",function(o){F(e);let a=h();return B(a.onCampsiteSelected(o.id,o.name))}),s()}}function pg(t,n){if(t&1){let e=$();l(0,"span",5),d(1),l(2,"button",14),w("click",function(){F(e);let o=h();return B(o.onClearCampsite())}),l(3,"mat-icon"),d(4,"close"),s()()()}if(t&2){let e=h();m(),A(" ",e.campsiteName??e.campsiteId," ")}}function ug(t,n){if(t&1&&(l(0,"span",11),d(1),S(2,"number"),s()),t&2){let e=h();m(),A("",P(2,1,e.count)," events")}}function fg(t,n){t&1&&(l(0,"th",34),d(1,"Emitted"),s())}function hg(t,n){if(t&1&&(l(0,"td",35)(1,"div"),d(2),S(3,"adminDate"),l(4,"span",36),d(5),S(6,"date"),s()(),l(7,"div",37),d(8),s()()),t&2){let e=n.$implicit;m(2),A(" ",P(3,3,e.emittedAt)," "),m(3),_(mt(6,5,e.emittedAt,"HH:mm:ss")),m(3),_(e.id)}}function gg(t,n){t&1&&(l(0,"th",34),d(1,"Type"),s())}function _g(t,n){if(t&1&&(l(0,"td",35)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(),Wt(i.typeClass(e.type)),m(),_(e.type)}}function Cg(t,n){t&1&&(l(0,"th",34),d(1,"Action"),s())}function bg(t,n){if(t&1&&(l(0,"td",35)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(),Wt(i.actionClass(e.action)),m(),_(e.action)}}function xg(t,n){t&1&&(l(0,"th",34),d(1,"Campsite"),s())}function vg(t,n){if(t&1){let e=$();l(0,"td",35)(1,"div")(2,"a",38),w("click",function(o){let a=F(e).$implicit;return h(2).campsiteClick.emit(a.campsiteId),B(o.stopPropagation())}),d(3),s()(),l(4,"div",37),d(5),s()()}if(t&2){let e=n.$implicit;m(3),_(e.campsiteName??e.campsiteId),m(2),_(e.campsiteId)}}function yg(t,n){t&1&&(l(0,"th",34),d(1,"Accommodation"),s())}function Sg(t,n){if(t&1&&(l(0,"span",39),d(1),s()),t&2){let e=h().$implicit;m(),_(e.accommodationId)}}function Mg(t,n){t&1&&(l(0,"span",36),d(1,"\u2014"),s())}function wg(t,n){if(t&1&&(l(0,"td",35),x(1,Sg,2,1,"span",39)(2,Mg,2,0,"span",36),s()),t&2){let e=n.$implicit;m(),v(e.accommodationId?1:2)}}function Eg(t,n){t&1&&(l(0,"th",34),d(1,"Window"),s())}function Tg(t,n){if(t&1&&(l(0,"td",35)(1,"span",39),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(2),_(i.windowLabel(e))}}function Dg(t,n){t&1&&(l(0,"th",34),d(1,"Trace"),s())}function Pg(t,n){if(t&1){let e=$();l(0,"button",42),w("click",function(o){let a=F(e).$implicit;return h(3).copyId(a.id),B(o.stopPropagation())}),d(1),s()}if(t&2){let e=n.$implicit;m(),rt(" ",e.object," ",e.id," ")}}function kg(t,n){t&1&&(l(0,"span",36),d(1,"\u2014"),s())}function Og(t,n){if(t&1&&(l(0,"td",35)(1,"div",40),z(2,Pg,2,2,"button",41,U),x(4,kg,2,0,"span",36),s()()),t&2){let e=n.$implicit;m(2),H(e.trace),m(2),v(e.trace.length?-1:4)}}function Ig(t,n){t&1&&M(0,"th",34)}function Rg(t,n){if(t&1&&(l(0,"td",43)(1,"mat-icon",44),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(2),_(e.id===i.expandedId?"expand_more":"chevron_right")}}function Ag(t,n){if(t&1&&(l(0,"span",37),d(1),s()),t&2){let e=h(2).$implicit;m(),A("taskName ",e.taskName)}}function Fg(t,n){if(t&1&&(d(0),S(1,"adminDate")),t&2){let e=h().$implicit;A(" \xB7 armed ",mt(1,1,e.armedAt,!0)," ")}}function Bg(t,n){if(t&1&&(l(0,"div",50)(1,"div",54),d(2),s(),l(3,"div",36),d(4),x(5,Fg,2,4),s()()),t&2){let e=n.$implicit;m(2),nd(" ",e.channel," \xB7 ",e.campsiteName??e.campsiteId," \xB7 ",e.accommodationId??"camp"," \xB7 ",e.kind," "),m(2),Gi(" ",e.flushScheduled?"flush scheduled":"not armed"," \xB7 ",e.eventIds.length," pending \xB7 ",e.claimedEventIds.length," claimed "),m(),v(e.armedAt?5:-1)}}function Lg(t,n){t&1&&(l(0,"div",51),d(1," No scope holds this event any more \u2014 it has been flushed (or the scope was cleaned up). "),s())}function Ng(t,n){if(t&1){let e=$();l(0,"div",55),w("click",function(){let o=F(e).$implicit,a=h(4);return B(a.traceClick.emit(o.id))}),l(1,"span",39),d(2),s(),l(3,"span",36),d(4),s(),l(5,"span",56)(6,"span"),d(7),s(),l(8,"span"),d(9),s()()()}if(t&2){let e=n.$implicit,i=h(4);m(2),_(e.id),m(2),rt("",e.channel," \xB7 ",e.kind),m(2),Wt(i.modeClass(e.mode)),m(),_(e.mode),m(),Wt(i.verdictClass(e.status)),m(),_(i.verdictLabel(e))}}function Vg(t,n){t&1&&(l(0,"div",53),d(1," No message yet \u2014 the scope is armed and has not been flushed, or the event was coalesced into a message that has since expired. "),s())}function $g(t,n){if(t&1&&(l(0,"div",45)(1,"div")(2,"div",46)(3,"span",47),d(4,"Event JSON"),s(),x(5,Ag,2,1,"span",37),s(),l(6,"pre",48),d(7),s()(),l(8,"div",0)(9,"div")(10,"div",47),d(11,"Scope it landed in"),s(),l(12,"div",49),z(13,Bg,6,8,"div",50,U),x(15,Lg,2,0,"div",51),s()(),l(16,"div")(17,"div",47),d(18,"Messages it ended up in"),s(),l(19,"div",49),z(20,Ng,10,9,"div",52,U),x(22,Vg,2,0,"div",53),s()()()()),t&2){let e=h().$implicit,i=h(2);m(5),v(e.taskName?5:-1),m(2),_(i.eventJson(e)),m(6),H(i.expandedScopes),m(2),v(i.expandedScopes.length?-1:15),m(5),H(i.expandedMessages),m(2),v(i.expandedMessages.length?-1:22)}}function zg(t,n){if(t&1&&(l(0,"td",35),x(1,$g,23,4,"div",45),s()),t&2){let e=n.$implicit,i=h(2);Ge("colspan",i.displayedColumns.length),m(),v(e.id===i.expandedId?1:-1)}}function Hg(t,n){t&1&&M(0,"tr",57)}function jg(t,n){if(t&1){let e=$();l(0,"tr",58),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.toggleExpand(o))}),s()}if(t&2){let e=n.$implicit,i=h(2);Y("dist-row--expanded",e.id===i.expandedId)}}function Ug(t,n){if(t&1&&M(0,"tr",59),t&2){let e=n.$implicit,i=h(2);Y("dist-detail-row--collapsed",e.id!==i.expandedId)}}function Wg(t,n){t&1&&(l(0,"div",32),d(1,"No events match the current filters."),s())}function Gg(t,n){if(t&1){let e=$();l(0,"div",12)(1,"div",15)(2,"table",16),I(3,17),T(4,fg,2,0,"th",18)(5,hg,9,8,"td",19),R(),I(6,20),T(7,gg,2,0,"th",18)(8,_g,3,3,"td",19),R(),I(9,21),T(10,Cg,2,0,"th",18)(11,bg,3,3,"td",19),R(),I(12,22),T(13,xg,2,0,"th",18)(14,vg,6,2,"td",19),R(),I(15,23),T(16,yg,2,0,"th",18)(17,wg,3,1,"td",19),R(),I(18,24),T(19,Eg,2,0,"th",18)(20,Tg,3,1,"td",19),R(),I(21,25),T(22,Dg,2,0,"th",18)(23,Og,5,1,"td",19),R(),I(24,26),T(25,Ig,1,0,"th",18)(26,Rg,3,1,"td",27),R(),I(27,28),T(28,zg,2,2,"td",19),R(),T(29,Hg,1,0,"tr",29)(30,jg,1,2,"tr",30)(31,Ug,1,2,"tr",3
11),s()(),x(32,Wg,2,0,"div",32),l(33,"mat-paginator",33),w("page",function(o){F(e);let a=h();return B(a.page.emit(o))}),s()()}if(t&2){let e=h();m(2),C("dataSource",e.rows),m(27),C("matHeaderRowDef",e.displayedColumns),m(),C("matRowDefColumns",e.displayedColumns),m(),C("matRowDefColumns",De(10,rg))("matRowDefWhen",e.isDetailRow),m(),v(!e.loading&&!e.rows.length?32:-1),m(),C("length",e.count)("pageSize",e.pageSize)("pageIndex",e.offset/e.pageSize)("pageSizeOptions",fe(11,sg,e.pageSize))}}function qg(t,n){t&1&&(l(0,"th",34),d(1,"Bucket"),s())}function Yg(t,n){if(t&1&&(l(0,"td",67),d(1),s()),t&2){let e=n.$implicit;m(),_(e.day)}}function Qg(t,n){t&1&&(l(0,"th",34),d(1,"Type"),s())}function Kg(t,n){if(t&1&&(l(0,"td",35)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(),Wt(i.typeClass(e.type)),m(),_(e.type)}}function Xg(t,n){t&1&&(l(0,"th",34),d(1,"Action"),s())}function Jg(t,n){if(t&1&&(l(0,"td",35)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h(2);m(),Wt(i.actionClass(e.action)),m(),_(e.action)}}function Zg(t,n){t&1&&(l(0,"th",34),d(1,"Cause"),s())}function t_(t,n){if(t&1&&(l(0,"span",68),d(1),s()),t&2){let e=h().$implicit;m(),_(e.cause)}}function e_(t,n){t&1&&(l(0,"span",36),d(1,"\u2014"),s())}function i_(t,n){if(t&1&&(l(0,"td",35),x(1,t_,2,1,"span",68)(2,e_,2,0,"span",36),s()),t&2){let e=n.$implicit;m(),v(e.cause?1:2)}}function n_(t,n){t&1&&(l(0,"th",69),d(1,"Events"),s())}function o_(t,n){if(t&1&&(l(0,"td",43),d(1),S(2,"number"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.count))}}function a_(t,n){t&1&&M(0,"tr",57)}function r_(t,n){t&1&&M(0,"tr",70)}function s_(t,n){t&1&&(l(0,"div",32),d(1,"No events in this range."),s())}function l_(t,n){if(t&1&&(l(0,"div",12)(1,"div",15)(2,"table",60),I(3,61),T(4,qg,2,0,"th",18)(5,Yg,2,1,"td",62),R(),I(6,20),T(7,Qg,2,0,"th",18)(8,Kg,3,3,"td",19),R(),I(9,21),T(10,Xg,2,0,"th",18)(11,Jg,3,3,"td",19),R(),I(12,63),T(13,Zg,2,0,"th",18)(14,i_,3,1,"td",19),R(),I(15,64),T(16,n_,2,0,"th",65)(17,o_,3,3,"td",27),R(),T(18,a_,1,0,"tr",29)(19,r_,1,0,"tr",66),s()(),x(20,s_,2,0,"div",32),s()),t&2){let e=h();m(2),C("dataSource",e.statsRows),m(16),C("matHeaderRowDef",e.statsColumns),m(),C("matRowDefColumns",e.statsColumns),m(),v(!e.loading&&!e.statsRows.length?20:-1)}}var ra=(()=>{let n=class n{constructor(i){this.uiMessagingService=i,this.rows=[],this.count=0,this.offset=0,this.pageSize=50,this.loading=!1,this.view="rows",this.statsRows=[],this.campsiteId=null,this.campsiteName=null,this.type=null,this.action=null,this.traceObject=null,this.expandedId=null,this.expandedScopes=[],this.expandedMessages=[],this.filterChange=new X,this.page=new X,this.expand=new X,this.viewChange=new X,this.campsiteClick=new X,this.traceClick=new X,this.displayedColumns=["emittedAt","type","action","campsite","accommodation","window","trace","caret"],this.statsColumns=["day","type","action","cause","count"],this.types=["INVENTORY","AVAILABILITY","RATES","CONTENT","FULL_RESYNC"],this.actions=["CREATE","UPDATE","DELETE"],this.traceObjects=["BOOKING","ORDER","EXTERNAL_BOOKING","ICAL_MAPPING","BLOCKER","UNIT","ACCOMMODATION","CAMP","RATE_PLAN","DAILY_RATES","GUEST_RATES","EXTRA"],this.isDetailRow=()=>!0}copyId(i){navigator.clipboard?.writeText(i).then(()=>this.uiMessagingService.openSnackBar(`Copied ${i}`))}onCampsiteSelected(i,o){this.filterChange.emit({campsiteId:i,campsiteName:o,type:this.t
1ype,action:this.action,traceObject:this.traceObject})}onClearCampsite(){this.filterChange.emit({campsiteId:null,campsiteName:null,type:this.type,action:this.action,traceObject:this.traceObject})}onFieldFilterChange(){this.filterChange.emit({campsiteId:this.campsiteId,campsiteName:this.campsiteName,type:this.type,action:this.action,traceObject:this.traceObject})}onClearFilters(){this.type=null,this.action=null,this.traceObject=null,this.filterChange.emit({campsiteId:null,campsiteName:null,type:null,action:null,traceObject:null})}toggleExpand(i){this.expand.emit(this.expandedId===i.id?null:i.id)}eventJson(i){return JSON.stringify(i,null,2)}windowLabel(i){return yn(i.window)}typeClass(i){return Ce(Ai(i))}actionClass(i){return Ce($r(i))}modeClass(i){return Ce(yi(i))}verdictClass(i){return Ce(Fi(i))}verdictLabel(i){return vn(i)}};n.\u0275fac=function(o){return new(o||n)(O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-distribution-events-table"]],inputs:{rows:"rows",count:"count",offset:"offset",pageSize:"pageSize",loading:"loading",view:"view",statsRows:"statsRows",campsiteId:"campsiteId",campsiteName:"campsiteName",type:"type",action:"action",traceObject:"traceObject",expandedId:"expandedId",expandedScopes:"expandedScopes",expandedMessages:"expandedMessages"},outputs:{filterChange:"filterChange",page:"page",expand:"expand",viewChange:"viewChange",campsiteClick:"campsiteClick",traceClick:"traceClick"},decls:40,vars:12,consts:[[1,"dist-stack"],[1,"dist-filterbar"],[1,"dist-filterbar-inputs"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],[1,"dist-campsite-chip"],[1,"dist-filterbar-actions"],[3,"change","value"],["value","rows"],["value","stats"],["mat-button","","type","button",3,"click"],[1,"dist-filterbar-note"],[1,"dist-card"],[3,"selected"],["mat-icon-button","","type","button",3,"click"],[1,"table-responsive"],["mat-table","","multiTemplateDataRows","",3,"dataSource"],["matColumnDef","emittedAt"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],["matColumnDef","action"],["matColumnDef","campsite"],["matColumnDef","accommodation"],["matColumnDef","window"],["matColumnDef","trace"],["matColumnDef","caret"],["mat-cell","","class","dist-num",4,"matCellDef"],["matColumnDef","expandedDetail"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","dist-row--clickable",3,"dist-row--expanded","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","dist-detail-row",3,"dist-detail-row--collapsed",4,"matRowDef","matRowDefColumns","matRowDefWhen"],[1,"dist-info","dist-empty"],[1,"dist-paginator",3,"page","length","pageSize","pageIndex","pageSizeOptions"],["mat-header-cell",""],["mat-cell",""],[1,"dist-muted"],[1,"dist-id"],[1,"dist-link",3,"click"],[1,"dist-mono","distribution-small"],[1,"dist-chip-row"],["type","button","matTooltip","Copy id",1,"dist-trace-chip","dist-trace-chip--copy"],["type","button","matTooltip","Copy id",1,"dist-trace-chip","dist-trace-chip--copy",3,"click"],["mat-cell","",1,"dist-num"],[1,"dist-caret"],[1,"dist-detail","dist-detail-grid"],[1,"dist-pre-head"],[1,"dist-label"],[1,"dist-pre"],[1,"distribution-boxes"],[1,"dist-box"],[1,"dist-box","dist-muted"],[1,"dist-box","dist-box--clickable","distribution-message-row"],[1,"dist-info"],[1,"distribution-box-title"],[1,"dist-box","dist-box--clickable","distribution-message-row",3,"click"],[1,"distribution-message-chips"],["mat-header-row",""],["mat-row","",1,"dist-row--clickable",3,"click"],["mat-row","",1,"dist-detail-row"],["mat-table","",3,"dataSource"],["matColumnDef","day"],["mat-cell","","class","dist-mono",4,"matCellDef"],["matColumnDef","cause"],["matColumnDef","count"],["mat-header-cell","","class","dist-num",4,"matHeaderCellDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-cell","",1,"dist-mono"],[1,"dist-trace-chip"],["mat-header-cell","",1,"dist-num"],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-form-field")(4,"mat-label"),d(5,"Type"),s(),l(6,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.type,c)||(a.type=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(7,"mat-option",4),d(8,"All types"),s(),z(9,lg,2,2,"mat-option",4,U),s()(),l(11,"mat-form-field")(12,"mat-label"),d(13,"Action"),s(),l(14,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.action,c)||(a.action=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(15,"mat-option",4),d(16,"All actions"),s(),z(17,cg,2,2,"mat-option",4,U),s()(),l(19,"mat-form-field")(20,"mat-label"),d(21,"Trace object"),s(),l(22,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.traceObject,c)||(a.traceObject=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(23,"mat-option",4),d(24,"Any object"),s(),z(25,dg,2,2,"mat-option",4,U),s()(),x(27,mg,1,0,"app-distribution-campsite-search"),x(28,pg,5,
11,"span",5),s(),l(29,"div",6)(30,"mat-button-toggle-group",7),w("change",function(c){return a.viewChange.emit(c.value)}),l(31,"mat-button-toggle",8),d(32,"Rows"),s(),l(33,"mat-button-toggle",9),d(34,"Stats"),s()(),l(35,"button",10),w("click",function(){return a.onClearFilters()}),d(36,"Clear"),s(),x(37,ug,3,3,"span",11),s()(),x(38,Gg,34,13,"div",12),x(39,l_,21,4,"div",12),s()),o&2&&(m(6),Pt("ngModel",a.type),m(),C("value",null),m(2),H(a.types),m(5),Pt("ngModel",a.action),m(),C("value",null),m(2),H(a.actions),m(5),Pt("ngModel",a.traceObject),m(),C("value",null),m(2),H(a.traceObjects),m(2),v(a.campsiteId?-1:27),m(),v(a.campsiteId?28:-1),m(2),C("value",a.view),m(7),v(a.view==="rows"?37:-1),m(),v(a.view==="rows"?38:-1),m(),v(a.view==="stats"?39:-1))},dependencies:[ht,Ft,Vt,dt,ct,he,Rt,Dn,ke,Fe,Jn,Zn,et,gt,bt,Ct,xt,_t,vt,Ae,yt,Mt,St,wt,ee,vi,qe,ft],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-small[_ngcontent-%COMP%]{font-size:12px;color:#45464a}.distribution-boxes[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;margin-top:6px}.distribution-box-title[_ngcontent-%COMP%]{font-size:12.5px;font-weight:500}.distribution-message-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.distribution-message-chips[_ngcontent-%COMP%]{margin-left:auto;display:flex;gap:6px}"],changeDetection:0});let t=n;return t})();var d_=()=>["expandedDetail"],m_=t=>[t];function p_(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function u_(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function f_(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit,i=h();C("value",e),m(),_(i.statusOptionLabel(e))}}function h_(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function g_(t,n){if(t&1){let e=$();l(0,"app-distribution-campsite-search",34),w("selected",function(o){F(e);let a=h();return B(a.onCampsiteSelected(o.id,o.name))}),s()}}function __(t,n){if(t&1){let e=$();l(0,"span",5),d(1),l(2,"button",35),w("click",function(){F(e);let o=h();return B(o.onClearCampsite())}),l(3,"mat-icon"),d(4,"close"),s()()()}if(t&2){let e=h();m(),A(" ",e.campsiteName??e.campsiteId," ")}}function C_(t,n){t&1&&(l(0,"th",36),d(1,"Built"),s())}function b_(t,n){if(t&1&&(l(0,"td",37)(1,"div"),d(2),S(3,"adminDate"),l(4,"span",38),d(5),S(6,"date"),s()(),l(7,"div",39),d(8),s()()),t&2){let e=n.$implicit;m(2),A(" ",P(3,3,e.builtAt)," "),m(3),_(mt(6,5,e.builtAt,"HH:mm:ss")),m(3),_(e.id)}}function x_(t,n){t&1&&(l(0,"th",36),d(1,"Channel"),s())}function v_(t,n){if(t&1&&(l(0,"td",37)(1,"span",40),d(2),s()()),t&2){let e=n.$implicit;m(2),_(e.channel)}}function y_(t,n){t&1&&(l(0,"th",36),d(1,"Kind"),s())}function S_(t,n){if(t&1&&(l(0,"td",37)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Wt(i.kindClass(e.kind)),m(),_(e.kind)}}function M_(t,n){t&1&&(l(0,"th",36),d(1,"Campsite"),s())}function w_(t,n){if(t&1){let e=$();l(0,"td",37)(1,"div")(2,"a",41),w("click",function(o){let a=F(e).$implicit;return h().campsiteClick.emit(a.campsiteId),B(o.stopPropagation())}),d(3),s()(),l(4,"div",39),d(5),s()()}if(t&2){let e=n.$implicit;m(3),_(e.campsiteName??e.campsiteId),m(2),_(e.accommodationId??"camp-level")}}function E_(t,n){t&1&&(l(0,"th",36),d(1,"Window"),s())}function T_(t,n){if(t&1&&(l(0,"td",37)(1,"span",40),d(2),s()()),t&2){let e=n.$implicit,i=h();m(2),_(i.windowLabel(e))}}function D_(t,n){t&1&&(l(0,"th",36),d(1,"Mode"),s())}function P_(t,n){if(t&1&&(l(0,"td",37)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Wt(i.modeClass(e.mode)),m(),_(e.mode)}}function k_(t,n){t&1&&(l(0,"th",36),d(1,"Verdict"),s())}function O_(t,n){if(t&1&&(l(0,"td",37)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Wt(i.verdictClass(e.status)),m(),_(i.verdictLabel(e))}}function I_(t,n){t&1&&(l(0,"th",42),d(1,"Att."),s())}function R_(t,n){if(t&1&&(l(0,"td",43),d(1),s()),t&2){let e=n.$implicit;m(),_(e.attempts)}}function A_(t,n){t&1&&(l(0,"th",42),d(1,"Events"),s())}function F_(t,n){if(t&1&&(l(0,"td",43),d(1),s()),t&2){let e=n.$implicit;m(),_(e.eventIds.length)}}function B_(t,n){t&1&&(l(0,"th",42),d(1,"Latency"),s())}function L_(t,n){if(t&1&&(l(0,"td",43),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.latency(e))}}function N_(t,n){t&1&&(l(0,"th",42),d(1,"Payload"),s())}function V_(t,n){if(t&1&&(l(0,"td",43),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.bytes(e.requestBytes))}}function $_(t,n){t&1&&M(0,"th",36)}function z_(t,n){if(t&1&&(l(0,"td",43)(1,"mat-icon",44),d(2),s()()),t&2){let e=n.$implicit,i=h();m(2),_(e.id===i.expandedId?"expand_more":"chevron_right")}}function H_(t,n){if(t&1&&(d(0),S(1,"date")),t&2){let e=h(2).$implicit;A(" \xB7 sent ",mt(1,1,e.sentAt,"dd MMM HH:mm:ss")," ")}}function j_(t,n){if(t&1&&(d(0),S(1,"date")),t&2){let e=h(2).$implicit;A(" \xB7 verdict ",mt(1,1,e.verdictAt,"dd MMM HH:mm:ss")," ")}}function U_(t,n){t&1&&M(0,"mat-progress-bar",50)}function W_(t,n){t&1&&(l(0,"div",56),d(1),s()),t&2&&(m(),_(n))}function G_(t,n){if(t&1){let e=$();l(0,"button",63),w("click",function(o){let a=F(e).$implicit;return h(6).copyId(a.id),B(o.stopPropagation())}),d(1),s()}if(t&2){let e=n.$implicit;m(),rt(" ",e.object," ",e.id," ")}}function q_(t,n){if(t&1){let e=$();l(0,"tr")(1,"td",60)(2,"a",41),w("click",function(){let o=F(e).$implicit,a=h(5);return B(a.traceClick.emit(o.id))}),d(3),s()(),l(4,"td")(5,"span"),d(6),s()(),l(7,"td")(8,"span"),d(9),s()(),l(10,"td",38),d(11),S(12,"date"),s(),l(13,"td")(14,"div",61),z(15,G_,2,2,"button",62,U),s()()()}if(t&2){let e=n.$implicit,i=h(5);m(3),_(e.id),m(2),Wt(i.typeClass(e.type)),m(),_(e.type),m(2),Wt(i.actionClass(e.action)),m(),_(e.action),m(2),_(mt(12,8,e.emittedAt,"dd MMM HH:mm:ss")),m(4),H(e.trace)}}function Y_(t,n){if(t&1&&(l(0,"table",58)(1,"tbody"),z(2,q_,17,11,"tr",null,U),s()()),t&2){let e=h(4);m(2),H(e.expandedDetail.events)}}function Q_(t,n){t&1&&(l(0,"div",59),d(1,"The events behind this message have expired (events are kept 60 days)."),s())}function K_(t,n){if(t&1){let e=$();l(0,"div",51)(1,"div")(2,"div",52)(3,"span",53),d(4,"Request body"),s(),l(5,"span",39),d(6),s(),l(7,"button",54),w("click",function(){F(e);let o=h(3);return B(o.copy(o.expandedDetail.message.request))}),d(8," Copy "),s()(),l(9,"pre",55),d(10),s()(),l(11,"div")(12,"div",52)(13,"span",53),d(14,"Response body"),s(),l(15,"span",39),d(16),s()(),l(17,"pre",55),d(18),s(),x(19,W_,2,1,"div",56),s()(),l(20,"div",57)(21,"div",53),d(22,"Events coalesced into this message"),s(),x(23,Y_,4,0,"table",58),x(24,Q_,2,0,"div",59),s()}if(t&2){let e,i=h(2).$implicit,o=h();m(6),rt("",o.bytes(i.requestBytes)," \xB7 ",o.bodyKind(o.expandedDetail.message.request)),m(4),_(o.bodyText(o.expandedDetail.message.request)),m(6),_(
1o.bodyKind(o.expandedDetail.message.response)),m(),Y("distribution-pre--shadow",i.mode==="SHADOW"),m(),_(o.responseText(i,o.expandedDetail.message.response)),m(),v((e=o.failureText(i))?19:-1,e),m(4),v(o.expandedDetail.events.length?23:-1),m(),v(o.expandedDetail.events.length?-1:24)}}function X_(t,n){if(t&1&&(l(0,"div",45)(1,"div",46)(2,"span",47),d(3,"Resend"),s(),l(4,"span",47),d(5,"Compare with previous message for this scope"),s(),l(6,"span",48),d(7,"phase 2"),s(),l(8,"span",49),d(9),x(10,H_,2,4),x(11,j_,2,4),s()(),x(12,U_,1,0,"mat-progress-bar",50),x(13,K_,25,10),s()),t&2){let e=h().$implicit,i=h();m(9),rt(" ",e.eventIds.length," event id",e.eventIds.length===1?"":"s"," "),m(),v(e.sentAt?10:-1),m(),v(e.verdictAt?11:-1),m(),v(i.detailLoading?12:-1),m(),v(!i.detailLoading&&i.expandedDetail?13:-1)}}function J_(t,n){if(t&1&&(l(0,"td",37),x(1,X_,14,6,"div",45),s()),t&2){let e=n.$implicit,i=h();Ge("colspan",i.displayedColumns.length),m(),v(e.id===i.expandedId?1:-1)}}function Z_(t,n){t&1&&M(0,"tr",64)}function t1(t,n){if(t&1){let e=$();l(0,"tr",65),w("click",function(){let o=F(e).$implicit,a=h();return B(a.toggleExpand(o))}),s()}if(t&2){let e=n.$implicit,i=h();Y("dist-row--expanded",e.id===i.expandedId)}}function e1(t,n){if(t&1&&M(0,"tr",66),t&2){let e=n.$implicit,i=h();Y("dist-detail-row--collapsed",e.id!==i.expandedId)}}function i1(t,n){t&1&&(l(0,"div",32),d(1,"No messages match the current filters."),s())}var sa=(()=>{let n=class n{constructor(i){this.uiMessagingService=i,this.rows=[],this.count=0,this.offset=0,this.pageSize=50,this.loading=!1,this.campsiteId=null,this.campsiteName=null,this.channel=null,this.kind=null,this.mode=null,this.status=null,this.expandedId=null,this.expandedDetail=null,this.detailLoading=!1,this.filterChange=new X,this.page=new X,this.expand=new X,this.campsiteClick=new X,this.traceClick=new X,this.displayedColumns=["builtAt","channel","kind","campsite","window","mode","status","attempts","events","latency","size","caret"],this.channelOptions=["GOOGLE_HOTELS","CULTSWITCH","CAMPERCONTACT"],this.kindOptions=["INVENTORY","AVAILABILITY","RATES","PROPERTY","TAX_FEE"],this.modeOptions=["SHADOW","LIVE"],this.statusOptions=["BUILT","SENT","ACCEPTED","REJECTED","TRANSPORT_ERROR","UNKNOWN"],this.isDetailRow=()=>!0}copyId(i){navigator.clipboard?.writeText(i).then(()=>this.uiMessagingService.openSnackBar(`Copied ${i}`))}onCampsiteSelected(i,o){this._emitFilters(i,o)}onClearCampsite(){this._emitFilters(null,null)}onFieldFilterChange(){this._emitFilters(this.campsiteId,this.campsiteName)}onClearFilters(){this.channel=null,this.kind=null,this.mode=null,this.status=null,this._emitFilters(null,null)}toggleExpand(i){this.expand.emit(this.expandedId===i.id?null:i.id)}statusOptionLabel(i){switch(i){case"BUILT":return"Built (shadow)";case"SENT":return"Pending verdict";default:return i}}verdictLabel(i){return vn(i)}latency(i){return Km(Ym(i))}bytes(i){return zr(i)}windowLabel(i){return yn(i.window)}kindClass(i){return Ce(Ai(i))}typeClass(i){return Ce(Ai(i))}actionClass(i){return Ce($r(i))}modeClass(i){return Ce(yi(i))}verdictClass(i){return Ce(Fi(i))}bodyKind(i){return i==null?"empty":typeof i=="string"?"text":"JSON"}bodyText(i){return i==null?"(empty)":typeof i=="string"?i:JSON.stringify(i,null,2)}responseText(i,o){return i.mode==="SHADOW"?"(shadow mode \u2014 nothing was sent; payload recorded only)":i.status==="SENT"?"(awaiting vendor reply)":this.bodyText(o)}failureText(i){switch(i.status){case"REJECTED":return"The vendor rejected this message \u2014 read the response body for the reason.";case"TRANSPORT_ERROR":return`The message never reached the vendor (${i.attempts} attempt${i.attempts===1?"":"s"}).`;case"UNKNOWN":return"The vendor answered HTTP 200 but the reply could not be parsed \u2014 treat as not delivered.";default:return null}}copy(i){navigator.clipboard?.writeText(this.bodyText(i))}_emitFilters(i,o){this.filterChange.emit({campsiteId:i,campsiteName:o,channel:this.channel,kind:this.kind,mode:this.mode,status:this.status})}};n.\u0275fac=function(o){return new(o||n)(O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-distribution-messages-table"]],inputs:{rows:"rows",count:"count",offset:"offset",pageSize:"pageSize",loading:"loading",campsiteId:"campsiteId",campsiteName:"campsiteName",channel:"channel",kind:"kind",mode:"mode",status:"status",expandedId:"expandedId",expandedDetail:"expandedDetail",detailLoa
vendor: 4,696 bytes, line 1
1ding:"detailLoading"},outputs:{filterChange:"filterChange",page:"page",expand:"expand",campsiteClick:"campsiteClick",traceClick:"traceClick"},decls:89,vars:26,consts:[[1,"dist-stack"],[1,"dist-filterbar"],[1,"dist-filterbar-inputs"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],[1,"dist-campsite-chip"],[1,"dist-filterbar-actions"],["mat-button","","type","button",3,"click"],[1,"dist-filterbar-note"],[1,"dist-card"],[1,"table-responsive"],["mat-table","","multiTemplateDataRows","",3,"dataSource"],["matColumnDef","builtAt"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","channel"],["matColumnDef","kind"],["matColumnDef","campsite"],["matColumnDef","window"],["matColumnDef","mode"],["matColumnDef","status"],["matColumnDef","attempts"],["mat-header-cell","","class","dist-num",4,"matHeaderCellDef"],["mat-cell","","class","dist-num",4,"matCellDef"],["matColumnDef","events"],["matColumnDef","latency"],["matColumnDef","size"],["matColumnDef","caret"],["matColumnDef","expandedDetail"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","dist-row--clickable",3,"dist-row--expanded","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","dist-detail-row",3,"dist-detail-row--collapsed",4,"matRowDef","matRowDefColumns","matRowDefWhen"],[1,"dist-info","dist-empty"],[1,"dist-paginator",3,"page","length","pageSize","pageIndex","pageSizeOptions"],[3,"selected"],["mat-icon-button","","type","button",3,"click"],["mat-header-cell",""],["mat-cell",""],[1,"dist-muted"],[1,"dist-id"],[1,"dist-mono","distribution-small"],[1,"dist-link",3,"click"],["mat-header-cell","",1,"dist-num"],["mat-cell","",1,"dist-num"],[1,"dist-caret"],[1,"dist-detail"],[1,"distribution-detail-actions"],["matTooltip","Phase 2",1,"dist-ghost"],[1,"dist-phase2"],[1,"distribution-detail-meta","dist-mono"],["mode","indeterminate"],[1,"dist-detail-grid"],[1,"dist-pre-head"],[1,"dist-label"],["mat-stroked-button","","type","button",1,"distribution-copy",3,"click"],[1,"dist-pre"],[1,"dist-error","distribution-error"],[1,"distribution-coalesced"],[1,"dist-subtable"],[1,"dist-info"],[1,"dist-mono","distribution-subtable-id"],[1,"dist-chip-row"],["type","button","matTooltip","Copy id",1,"dist-trace-chip","dist-trace-chip--copy"],["type","button","matTooltip","Copy id",1,"dist-trace-chip","dist-trace-chip--copy",3,"click"],["mat-header-row",""],["mat-row","",1,"dist-row--clickable",3,"click"],["mat-row","",1,"dist-detail-row"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-form-field")(4,"mat-label"),d(5,"Channel"),s(),l(6,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.channel,c)||(a.channel=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(7,"mat-option",4),d(8,"All channels"),s(),z(9,p_,2,2,"mat-option",4,U),s()(),l(11,"mat-form-field")(12,"mat-label"),d(13,"Kind"),s(),l(14,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.kind,c)||(a.kind=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(15,"mat-option",4),d(16,"All kinds"),s(),z(17,u_,2,2,"mat-option",4,U),s()(),l(19,"mat-form-field")(20,"mat-label"),d(21,"Verdict"),s(),l(22,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.status,c)||(a.status=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(23,"mat-option",4),d(24,"All verdicts"),s(),z(25,f_,2,2,"mat-option",4,U),s()(),l(27,"mat-form-field")(28,"mat-label"),d(29,"Mode"),s(),l(30,"mat-select",3),Ot("ngModelChange",function(c){return kt(a.mode,c)||(a.mode=c),c}),w("selectionChange",function(){return a.onFieldFilterChange()}),l(31,"mat-option",4),d(32,"All modes"),s(),z(33,h_,2,2,"mat-option",4,U),s()(),x(35,g_,1,0,"app-distribution-campsite-search"),x(36,__,5,1,"span",5),s(),l(37,"div",6)(38,"button",7),w("click",function(){return a.onClearFilters()}),d(39,"Clear"),s(),l(40,"span",8),d(41),S(42,"number"),s()()(),l(43,"div",9)(44,"div",10)(45,"table",11),I(46,12),T(47,C_,2,0,"th",13)(48,b_,9,8,"td",14),R(),I(49,15),T(50,x_,2,0,"th",13)(51,v_,3,1,"td",14),R(),I(52,16),T(53,y_,2,0,"th",13)(54,S_,3,3,"td",14),R(),I(55,17),T(56,M_,2,0,"th",13)(57,w_,6,2,"td",14),R(),I(58,18),T(59,E_,2,0,"th",13)(60,T_,3,1,"td",14),R(),I(61,19),T(62,D_,2,0,"th",13)(63,P_,3,3,"td",14),R(),I(64,20),T(65,k_,2,0,"th",13)(66,O_,3,3,"td",14),R(),I(67,21),T(68,I_,2,0,"th",22)(69,R_,2,1,"td",23),R(),I(70,24),T(71,A_,2,0,"th",22)(72,F_,2,1,"td",23),R(),I(73,25),T(74,B_,2,0,"th",22)(75,L_,2,1,"td",23),R(),I(76,26),T(77,N_,2,0,"th",22)(78,V_,2,1,"td",23),R(),I(79,27),T(80,$_,1,0,"th",13)(81,z_,3,1,"td",23),R(),I(82,28),T(83,J_,2,2,"td",14),R(),T(84,Z_,1,0,"tr",29)(85,t1,1,2,"tr",30)(86,e1,1,2,"tr",3
11),s()(),x(87,i1,2,0,"div",32),l(88,"mat-paginator",33),w("page",function(c){return a.page.emit(c)}),s()()()),o&2&&(m(6),Pt("ngModel",a.channel),m(),C("value",null),m(2),H(a.channelOptions),m(5),Pt("ngModel",a.kind),m(),C("value",null),m(2),H(a.kindOptions),m(5),Pt("ngModel",a.status),m(),C("value",null),m(2),H(a.statusOptions),m(5),Pt("ngModel",a.mode),m(),C("value",null),m(2),H(a.modeOptions),m(2),v(a.campsiteId?-1:35),m(),v(a.campsiteId?36:-1),m(5),A("",P(42,21,a.count)," messages"),m(4),C("dataSource",a.rows),m(39),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("matRowDefColumns",De(23,d_))("matRowDefWhen",a.isDetailRow),m(),v(!a.loading&&!a.rows.length?87:-1),m(),C("length",a.count)("pageSize",a.pageSize)("pageIndex",a.offset/a.pageSize)("pageSizeOptions",fe(24,m_,a.pageSize)))},dependencies:[ht,Ft,Vt,dt,ct,he,Rt,Dn,ke,Fe,et,gt,bt,Ct,xt,_t,vt,Ae,ge,yt,Mt,St,wt,ee,vi,qe,ft],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-small[_ngcontent-%COMP%]{font-size:12px;color:#45464a}.distribution-detail-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.distribution-detail-meta[_ngcontent-%COMP%]{margin-left:auto;font-size:11.5px;color:#6c6d70}.distribution-copy[_ngcontent-%COMP%]{margin-left:auto;
1--mat-button-outlined-container-height: 26px;font-size:11px}.distribution-pre--shadow[_ngcontent-%COMP%]{color:#a9aaad}.distribution-error[_ngcontent-%COMP%]{margin-top:8px}.distribution-coalesced[_ngcontent-%COMP%]{margin-top:14px}.distribution-coalesced[_ngcontent-%COMP%]   .dist-subtable[_ngcontent-%COMP%]{margin-top:6px}.distribution-subtable-id[_ngcontent-%COMP%]{width:220px}"],changeDetection:0});let t=n;return t})();function o1(t,n){if(t&1&&(l(0,"div",1)(1,"div",37)(2,"span",38),d(3,"Events"),s(),l(4,"span",39),d(5),S(6,"number"),s(),l(7,"span",40),d(8,"received in range"),s()(),l(9,"div",37)(10,"span",38),d(11,"Messages"),s(),l(12,"span",39),d(13),S(14,"number"),s(),l(15,"span",40),d(16,"built in range"),s()(),l(17,"div",37)(18,"span",38),d(19,"Accepted"),s(),l(20,"span",39),d(21),s(),l(22,"span",40),d(23,"of verdicts"),s()(),l(24,"div",37)(25,"span",38),d(26,"Rejected"),s(),l(27,"span",39),d(28),S(29,"number"),s(),l(30,"span",40),d(31,"vendor said no"),s()(),l(32,"div",37)(33,"span",38),d(34,"Transport errors"),s(),l(35,"span",39),d(36),S(37,"number"),s(),l(38,"span",40),d(39,"never reached vendor"),s()(),l(40,"div",37)(41,"span",38),d(42,"Unknown"),s(),l(43,"span",39),d(44),S(45,"number"),s(),l(46,"span",40),d(47,"200 with no parsable result"),s()(),l(48,"div",37)(49,"span",38),d(50,"Stuck scopes"),s(),l(51,"span",39),d(52),S(53,"number"),s(),l(54,"span",40),d(55,"armed > 10 min, never flushed"),s()(),l(56,"div",37)(57,"span",38),d(58,"Coalescing"),s(),l(59,"span",39),d(60),s(),l(61,"span",40),d(62,"events per message"),s()()()),t&2){let e=h();m(5),_(P(6,18,e.tiles.events)),m(8),_(P(14,20,e.tiles.messages)),m(7),Y("dist-tile-value--good",e.tiles.acceptedPct>0),m(),A("",e.tiles.acceptedPct,"%"),m(6),Y("dist-tile-value--bad",e.tiles.rejected>0),m(),_(P(29,22,e.tiles.rejected)),m(7),Y("dist-tile-value--bad",e.tiles.transportErrors>0),m(),_(P(37,24,e.tiles.transportErrors)),m(7),Y("dist-tile-value--warn",e.tiles.unknown>0),m(),_(P(45,26,e.tiles.unknown)),m(7),Y("dist-tile-value--bad",e.tiles.stuckScopes>0),m(),_(P(53,28,e.tiles.stuckScopes)),m(8),_(e.tiles.coalescingRatio)}}function a1(t,n){if(t&1&&(l(0,"span",6),M(1,"span",41),d(2),s()),t&2){let e=n.$implicit,i=h();m(),ki("background-color",i.chartColor(e)),m(),A("",e," ")}}function r1(t,n){if(t&1&&M(0,"div",44),t&2){let e=n.$implicit,i=h().$implicit,o=h(2);ki("height",o.barHeight(i,e),"%")("background-color",o.chartColor(e))}}function s1(t,n){if(t&1&&(l(0,"div",42),z(1,r1,1,4,"div",43,U),s()),t&2){let e=n.$implicit,i=h(2);C("matTooltip",e.label+" \xB7 "+e.total+" events"),m(),H(i.chartTypes)}}function l1(t,n){if(t&1&&(l(0,"div",7),z(1,s1,3,1,"div",42,U),s()),t&2){let e=h();m(),H(e.chart)}}function c1(t,n){if(t&1&&(l(0,"div",8)(1,"span"),d(2),s(),l(3,"span"),d(4),s()()),t&2){let e=h();m(2),_(e.chart[0].label),m(2),_(e.chart[e.chart.length-1].label)}}function d1(t,n){t&1&&(l(0,"div",9),d(1,"No events in this range."),s())}function m1(t,n){t&1&&(l(0,"th",45),d(1,"Channel"),s())}function p1(t,n){if(t&1&&(l(0,"td",46),d(1),s()),t&2){let e=n.$implicit;m(),_(e.channel)}}function u1(t,n){t&1&&(l(0,"th",45),d(1,"Mode"),s())}function f1(t,n){if(t&1&&(l(0,"td",47)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Wt(i.modeClass(e.mode)),m(),_(e.mode)}}function h1(t,n){t&1&&(l(0,"th",48),d(1,"Messages"),s())}function g1(t,n){if(t&1&&(l(0,"td",49),d(1),S(2,"number"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.messages))}}function _1(t,n){t&1&&(l(0,"th",45),d(1,"Verdict split"),s())}function C1(t,n){if(t&1&&(l(0,"span",51),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.accepted," accepted")}}function b1(t,n){if(t&1&&(l(0,"span",52),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.rejected," rejected")}}function x1(t,n){if(t&1&&(l(0,"span",53),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.transportErrors," transport")}}function v1(t,n){if(t&1&&(l(0,"span",54),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.unknown," unknown")}}function y1(t,n){t&1&&(l(0,"span",55),d(1,"no verdicts"),s())}function S1(t,n){if(t&1&&(l(0,"td",47)(1,"div",50),x(2,C1,2,1,"span",51),x(3,b1,2,1,"span",52),x(4,x1,2,1,"span",53),x(5,v1,2,1,"span",54),x(6,y1,2,0,"span",55),s()()),t&2){let e=n.$implicit;m(2),v(e.accepted?2:-1),m(),v(e.rejected?3:-1),m(),v(e.transportErrors?4:-1),m(),v(e.unknown?5:-1),m(),v(!e.accepted&&!e.rejected&&!e.transportErrors&&!e.unknown?6:-1)}}function M1(t,n){t&1&&(l(0,"th",45),d(1,"Last accepted"),s())}function w1(t,n){if(t&1&&(l(0,"td",47),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(e.lastAcceptedAt?mt(2,1,e.lastAcceptedAt,!0):"never")}}function E1(t,n){t&1&&M(0,"tr",56)}function T1(t,n){t&1&&M(0,"tr",57)}function D1(t,n){t&1&&(l(0,"th",45),d(1,"Campsite"),s())}function P1(t,n){if(t&1&&(l(0,"td",47)(1,"div",58),d(2),s(),l(3,"div",59),d(4),s()()),t&2){let e=n.$implicit;m(2),_(e.campsiteName??e.campsiteId),m(2),_(e.campsiteId)}}function k1(t,n){t&1&&(l(0,"th",48),d(1,"Events"),s())}function O1(t,n){if(t&1&&(l(0,"td",49),d(1),S(2,"number"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.events))}}function I1(t,n){t&1&&(l(0,"th",48),d(1,"Messages"),s())}function R1(t,n){if(t&1&&(l(0,"td",49),d(1),S(2,"number"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.messages))}}function A1(t,n){t&1&&(l(0,"th",48),d(1,"Failures"),s())}function F1(t,n){if(t&1&&(l(0,"td",49)(1,"span",60),d(2),s()()),t&2){let e=n.$implicit;m(),Y("dist-chip--red",e.failures>0)("dist-chip--grey",e.failures===0),m(),_(e.failures)}}function B1(t,n){t&1&&(l(0,"th",45),d(1,"Last push"),s())}function L1(t,n){if(t&1&&(l(0,"td",47),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(e.lastBuiltAt?mt(2,1,e.lastBuiltAt,!0):"\u2014")}}function N1(t,n){t&1&&M(0,"tr",56)}function V1(t,n){if(t&1){let e=$();l(0,"tr",61),w("click",function(){let o=F(e).$implicit,a=h();
1return B(a.campsiteClick.emit(o.campsiteId))}),s()}}function $1(t,n){t&1&&(l(0,"div",32),d(1,"No events in this range."),s())}function z1(t,n){if(t&1){let e=$();l(0,"tr")(1,"td",62)(2,"span",60),d(3),s()(),l(4,"td",63)(5,"a",64),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.campsiteClick.emit(o.campsiteId))}),d(6),s(),d(7),s(),l(8,"td",65),d(9),s(),l(10,"td",66)(11,"button",67),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.attentionClick.emit(o.id))}),d(12,"Trace"),s()()()}if(t&2){let e=n.$implicit;m(2),Y("dist-chip--red",e.kind==="STUCK_SCOPE")("dist-chip--amber",e.kind==="UNKNOWN_VERDICT"),m(),_(e.kind==="STUCK_SCOPE"?"Stuck scope":"UNKNOWN in LIVE"),m(3),_(e.campsiteName??e.campsiteId),m(),rt(" \xB7 ",e.channel," \xB7 ",e.detail," "),m(2),_(e.id)}}function H1(t,n){if(t&1&&(l(0,"table",36)(1,"tbody"),z(2,z1,13,9,"tr",null,U),s()()),t&2){let e=h();m(2),H(e.attention)}}var np={INVENTORY:"#2b5fd9",AVAILABILITY:"#7b61c9",RATES:"#2e9e5b",CONTENT:"#a9aaad",FULL_RESYNC:"#e0a02b"},la=(()=>{let n=class n{constructor(){this.tiles=null,this.chart=[],this.perChannel=[],this.topCampsites=[],this.attention=[],this.campsiteClick=new X,this.attentionClick=new X,this.chartTypes=Object.keys(np),this.channelColumns=["channel","mode","messages","split","lastAccepted"],this.campsiteColumns=["campsite","events","messages","failures","lastPush"]}chartColor(i){return np[i]}barHeight(i,o){let a=this.maxTotal();return a===0?0:i.counts[o]/a*100}maxTotal(){return this.chart.reduce((i,o)=>Math.max(i,o.total),0)}modeClass(i){return Ce(yi(i))}attentionLabel(){if(!this.attention.length)return"nothing needs attention right now";let i=this.attention.filter(r=>r.kind==="STUCK_SCOPE").length,o=this.attention.length-i,a=[];return i&&a.push(`${i} stuck scope${i===1?"":"s"}`),o&&a.push(`${o} UNKNOWN verdict${o===1?"":"s"} in LIVE`),a.join(" \xB7 ")}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-distribution-overview"]],inputs:{tiles:"tiles",chart:"chart",perChannel:"perChannel",topCampsites:"topCampsites",attention:"attention"},outputs:{campsiteClick:"campsiteClick",attentionClick:"attentionClick"},decls:69,vars:16,consts:[[1,"dist-stack"],[1,"dist-tiles"],[1,"dist-card","dist-card--padded"],[1,"distribution-chart-head"],[1,"dist-muted"],[1,"distribution-legend"],[1,"distribution-legend-item"],[1,"distribution-chart"],[1,"distribution-chart-axis"],[1,"dist-info"],[1,"dist-grid-2"],[1,"dist-card"],[1,"dist-card-title"],[1,"table-responsive"],["mat-table","",3,"dataSource"],["matColumnDef","channel"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","","class","distribution-strong",4,"matCellDef"],["matColumnDef","mode"],["mat-cell","",4,"matCellDef"],["matColumnDef","messages"],["mat-header-cell","","class","dist-num",4,"matHeaderCellDef"],["mat-cell","","class","dist-num",4,"matCellDef"],["matColumnDef","split"],["matColumnDef","lastAccepted"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["matColumnDef","campsite"],["matColumnDef","events"],["matColumnDef","failures"],["matColumnDef","lastPush"],["mat-row","","class","dist-row--clickable",3,"click",4,"matRowDef","matRowDefColumns"],[1,"dist-info","dist-empty"],[1,"distribution-attention"],[1,"distribution-attention-title"],[1,"distribution-attention-sub"],[1,"distribution-attention-table"],[1,"dist-tile"],[1,"dist-label"],[1,"dist-tile-value"],[1,"dist-tile-hint"],[1,"distribution-legend-dot"],["matTooltipPosition","above",1,"distribution-chart-bucket",3,"matTooltip"],[1,"distribution-chart-bar",3,"height","backgroundColor"],[1,"distribution-chart-bar"],["mat-header-cell",""],["mat-cell","",1,"distribution-strong"],["mat-cell",""],["mat-header-cell","",1,"dist-num"],["mat-cell","",1,"dist-num"],[1,"dist-chip-row"],[1,"dist-chip","dist-chip--green"],[1,"dist-chip","dist-chip--red"],[1,"dist-chip","dist-chip--orange"],[1,"dist-chip","dist-chip--amber"],[1,"dist-chip","dist-chip--outline"],["mat-header-row",""],["mat-row",""],[1,"distribution-strong"],[1,"dist-id"],[1,"dist-chip"],["mat-row","",1,"dist-row--clickable",3,"click"],[1,"distribution-attention-kind"],[1,"distribution-attention-text"],[1,"dist-link",3,"click"],[1,"distribution-attention-ref","dist-mono"],[1,"distribution-attention-action"],["mat-stroked-button","","type","button",3,"click"]],template:function(o,a){o&1&&(l(0,"div",0),x(1,o1,63,30,"div",1),l(2,"div",2)(3,"div",3)(4,"h2"),d(5),s(),l(6,"span",4),d(7,"stacked by event type"),s(),l(8,"div",5),z(9,a1,3,3,"span",6,U),s()(),x(11,l1,3,0,"div",7),x(12,c1,5,2,"div",8),x(13,d1,2,0,"div",9),s(),l(14,"div",10)(15,"div",11)(16,"div",12)(17,"h2"),d(18,"Per channel"),s()(),l(19,"div",13)(20,"table",14),I(21,15),T(22,m1,2,0,"th",16)(23,p1,2,1,"td",17),R(),I(24,18),T(25,u1,2,0,"th",16)(26,f1,3,3,"td",19),R(),I(27,20),T(28,h1,2,0,"th",21)(29,g1,3,3,"td",22),R(),I(30,23),T(31,_1,2,0,"th",16)(32,S1,7,5,"td",19),R(),I(33,24),T(34,M1,2,0,"th",16)(35,w1,3,4,"td",19),R(),T(36,E1,1,0,"tr",25)(37,T1,1,0,"tr",26),s()()(),l(38,"div",11)(39,"div",12)(40,"h2"),d(41,"Top campsites by events"),s()(),l(42,"div",13)(43,"table",14),I(44,27),T(45,D1,2,0,"th",16)(46,P1,5,2,"td",19),R(),I(47,28),T(48,k1,2,0,"th",21)(49,O1,3,3,"td",22),R(),I(50,20),T(51,I1,2,0,"th",21)(52,R1,3,3,"td",22),R(),I(53,29),T(54,A1,2,0,"th",21)(55,F1,3,5,"td",22),R(),I(56,30),T(57,B1,2,0,"th",16)(58,L1,3,4,"td",19),R(),T(59,N1,1,0,"tr",25)(60,V1,1,0,"tr",31),s()(),x(61,$1,2,0,"div",32),s()(),l(62,"div",33)(63,"div",34)(64,"span"),d(65,"Needs attention"),s(),l(66,"span",35),d(67),s()(),x(68,H1,4,0,"table",36),s()()),o&2&&(m(),v(a.tiles?1:-1),m(4),A("Events per ",a.chart.length>31?"hour":"day"),m(4),H(a.chartTypes),m(2),v(a.chart.length?11:-1),m(),v(a.chart.length?12:-1),m(),v(a.chart.length?-1:13),m(7),C("dataSource",a.perChannel),m(16),C("matHeaderRowDef",a.channelColumns),m(),C("matRowDefColumns",a.channelColumns),m(6),C("dataSource",a.topCampsites),m(16),C("matHeaderRowDef",a.campsiteColumns),m(),C("matRowDefColumns",a.campsiteColumns),m(),v(a.topCampsites.length?-1:61),m(),Y("distribution-attention--calm",!a.attention.length),m(5),_(a.attentionLabel()),m(),v(a.attention.length?68:-1))},dependencies:[Ae,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,et,vi,ft],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-strong[_ngcontent-%COMP%]{font-weight:500}.distribution-chart-head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}.distribution-chart-head[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.distribution-legend[_ngcontent-%COMP%]{margin-left:auto;display:flex;flex-wrap:wrap;gap:12px}.distribution-legend-item[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#45464a}.distribution-legend-dot[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:2px;display:inline-block}.distribution-chart[_ngcontent-%COMP%]{display:flex;align-items:flex-end;
1gap:3px;height:168px;margin-top:14px}.distribution-chart-bucket[_ngcontent-%COMP%]{flex:1 1 0;min-width:0;display:flex;flex-direction:column-reverse;justify-content:flex-start;gap:1px;height:100%}.distribution-chart-bar[_ngcontent-%COMP%]{width:100%;border-radius:1px}.distribution-chart-axis[_ngcontent-%COMP%]{display:flex;justify-content:space-between;margin-top:6px;font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.distribution-attention[_ngcontent-%COMP%]{background:#fffaf6;border:1px solid #f0d4c0;border-radius:7px;overflow:auto}.distribution-attention--calm[_ngcontent-%COMP%]{background:#fff;border-color:#e3e3e1}.distribution-attention-title[_ngcontent-%COMP%]{padding:11px 14px;display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:600;color:#8c2f0f}.distribution-attention--calm[_ngcontent-%COMP%]   .distribution-attention-title[_ngcontent-%COMP%]{color:#17181a}.distribution-attention-sub[_ngcontent-%COMP%]{font-size:11.5px;font-weight:400;color:#9a5a33}.distribution-attention--calm[_ngcontent-%COMP%]   .distribution-attention-sub[_ngcontent-%COMP%]{color:#8a8b8e}.distribution-attention-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;border-top:1px solid #f6e6da}.distribution-attention-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:9px 14px;border-bottom:1px solid #f6e6da;vertical-align:middle}.distribution-attention-table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.distribution-attention-kind[_ngcontent-%COMP%]{width:150px}.distribution-attention-text[_ngcontent-%COMP%]{font-size:12.5px;color:#17181a}.distribution-attention-ref[_ngcontent-%COMP%]{font-size:11.5px;color:#6c6d70;white-space:nowrap}.distribution-attention-action[_ngcontent-%COMP%]{text-align:right;width:90px}"],changeDetection:0});let t=n;return t})();function U1(t,n){if(t&1&&(l(0,"mat-option",5),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function W1(t,n){if(t&1&&(l(0,"mat-option",5),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function G1(t,n){t&1&&(l(0,"th",31),d(1,"Channel"),s())}function q1(t,n){if(t&1&&(l(0,"td",32)(1,"span",33),d(2),s()()),t&2){let e=n.$implicit;m(2),_(e.channel)}}function Y1(t,n){t&1&&(l(0,"th",31),d(1,"Campsite"),s())}function Q1(t,n){if(t&1){let e=$();l(0,"td",32)(1,"div")(2,"a",34),w("click",function(){let o=F(e).$implicit,a=h();return B(a.campsiteClick.emit(o.campsiteId))}),d(3),s()(),l(4,"div",35),d(5),s()()}if(t&2){let e=n.$implicit;m(3),_(e.campsiteName??e.campsiteId),m(2),_(e.campsiteId)}}function K1(t,n){t&1&&(l(0,"th",31),d(1,"Accommodation"),s())}function X1(t,n){if(t&1&&(l(0,"span",33),d(1),s()),t&2){let e=h().$implicit;m(),_(e.accommodationId)}}function J1(t,n){t&1&&(l(0,"span",36),d(1,"camp-level"),s())}function Z1(t,n){t&1&&(l(0,"span",36),d(1,"camp-level"),s())}function tC(t,n){if(t&1&&(l(0,"td",32),x(1,X1,2,1,"span",33)(2,J1,2,0,"span",36),T(3,Z1,2,0,"ng-template",null,0,qi),s()),t&2){let e=n.$implicit;m(),v(e.accommodationId?1:2)}}function eC(t,n){t&1&&(l(0,"th",31),d(1,"Kind"),s())}function iC(t,n){if(t&1&&(l(0,"td",32)(1,"span"),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Wt(i.kindClass(e.kind)),m(),_(e.kind)}}function nC(t,n){t&1&&(l(0,"th",37),d(1,"Pending"),s())}function oC(t,n){if(t&1&&(l(0,"td",38),d(1),s()),t&2){let e=n.$implicit;m(),_(e.eventIds.length)}}function aC(t,n){t&1&&(l(0,"th",37),d(1,"Claimed"),s())}function rC(t,n){if(t&1&&(l(0,"td",38),d(1),s()),t&2){let e=n.$implicit;m(),_(e.claimedEventIds.length)}}function sC(t,n){t&1&&(l(0,"th",31),d(1,"Flush"),s())}function lC(t,n){if(t&1&&(l(0,"td",32)(1,"span",39),d(2),s()()),t&2){let e=n.$implicit;m(),Y("dist-chip--blue",e.flushScheduled)("dist-chip--outline",!e.flushScheduled),m(),_(e.flushScheduled?"scheduled":"idle")}}function cC(t,n){t&1&&(l(0,"th",31),d(1,"Armed"),s())}function dC(t,n){if(t&1&&(l(0,"div",35),d(1),s()),t&2){let e=h().$implicit;m(),A("re-armed ",e.rearmCount,"\xD7")}}function mC(t,n){if(t&1&&(l(0,"td",32)(1,"span"),d(2),s(),x(3,dC,2,1,"div",35),s()),t&2){let e=n.$implicit,i=h();m(),Y("distribution-stuck",i.isStuck(e))("distribution-fresh",!i.isStuck(e)&&e.armedAt),m(),_(i.armedAgeLabel(e)),m(),v(e.rearmCount?3:-1)}}function pC(t,n){t&1&&(l(0,"th",31),d(1,"Queue tier"),s())}function uC(t,n){if(t&1&&(l(0,"td",32)(1,"span",40),d(2),s()()),t&2){let e=n.$implicit,i=h();m(2),_(i.queueTier(e))}}function fC(t,n){t&1&&(l(0,"th",37),d(1,"Actions"),s())}function hC(t,n){t&1&&(l(0,"td",38)(1,"span",41)(2,"span",42),d(3,"Force flush"),s(),l(4,"span",42),d(5,"Unclaim"),s()()())}function gC(t,n){t&1&&M(0,"tr",43)}function _C(t,n){if(t&1&&M(0,"tr",44),t&2){let e=n.$implicit,i=h();Y("distribution-row--stuck",i.isStuck(e))}}function CC(t,n){t&1&&(l(0,"div",30),d(1,"Nothing is waiting to be sent \u2014 every scope has been flushed."),s())}function bC(t,n){t&1&&(l(0,"div",30),d(1,"No pending scopes match the current filters."),s())}var ca=(()=>{let n=class n{constructor(){this.rows=[],this.channels=[],this.loading=!1,this.now=new Date,this.channel=null,this.kind=null,this.stuckOnly=!1,this.armedOnly=!1,this.campsiteClick=new X,this.displayedColumns=["channel","campsite","accommodation","kind","pen
1ding","claimed","flush","armedAge","queueTier","actions"],this.channelOptions=["GOOGLE_HOTELS","CULTSWITCH","CAMPERCONTACT"],this.kindOptions=["INVENTORY","AVAILABILITY","RATES","PROPERTY","TAX_FEE"]}get visibleRows(){return this.rows.filter(i=>!(this.channel&&i.channel!==this.channel||this.kind&&i.kind!==this.kind||this.stuckOnly&&!this.isStuck(i)||this.armedOnly&&!i.armedAt))}onClearFilters(){this.channel=null,this.kind=null,this.stuckOnly=!1,this.armedOnly=!1}isStuck(i){return Ko(i,this.now)}queueTier(i){return this.channels.find(o=>o.name===i.channel)?.policy.queueTier??"\u2014"}armedAgeMinutes(i){return i.armedAt?Math.round((this.now.getTime()-new Date(i.armedAt).getTime())/6e4):null}armedAgeLabel(i){return Xm(i,this.now)}kindClass(i){return Ce(Ai(i))}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-distribution-scopes-table"]],inputs:{rows:"rows",channels:"channels",loading:"loading",now:"now",channel:"channel",kind:"kind",stuckOnly:"stuckOnly",armedOnly:"armedOnly"},outputs:{campsiteClick:"campsiteClick"},decls:66,vars:12,consts:[["camp",""],[1,"dist-stack"],[1,"dist-filterbar"],[1,"dist-filterbar-inputs"],[3,"ngModelChange","ngModel"],[3,"value"],[1,"dist-filterbar-actions"],["multiple",""],[3,"change","checked"],["mat-button","","type","button",3,"click"],[1,"dist-filterbar-note"],[1,"dist-card"],[1,"table-responsive"],["mat-table","",3,"dataSource"],["matColumnDef","channel"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","campsite"],["matColumnDef","accommodation"],["matColumnDef","kind"],["matColumnDef","pending"],["mat-header-cell","","class","dist-num",4,"matHeaderCellDef"],["mat-cell","","class","dist-num",4,"matCellDef"],["matColumnDef","claimed"],["matColumnDef","flush"],["matColumnDef","armedAge"],["matColumnDef","queueTier"],["matColumnDef","actions"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"distribution-row--stuck",4,"matRowDef","matRowDefColumns"],[1,"dist-info","dist-empty"],["mat-header-cell",""],["mat-cell",""],[1,"dist-mono","distribution-small"],[1,"dist-link",3,"click"],[1,"dist-id"],[1,"dist-muted"],["mat-header-cell","",1,"dist-num"],["mat-cell","",1,"dist-num"],[1,"dist-chip"],[1,"dist-chip","dist-chip--grey"],[1,"distribution-actions"],["matTooltip","Phase 2",1,"dist-ghost"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",1)(1,"div",2)(2,"div",3)(3,"mat-form-field")(4,"mat-label"),d(5,"Channel"),s(),l(6,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.channel,c)||(a.channel=c),c}),l(7,"mat-option",5),d(8,"All channels"),s(),z(9,U1,2,2,"mat-option",5,U),s()(),l(11,"mat-form-field")(12,"mat-label"),d(13,"Kind"),s(),l(14,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.kind,c)||(a.kind=c),c}),l(15,"mat-option",5),d(16,"All kinds"),s(),z(17,W1,2,2,"mat-option",5,U),s()()(),l(19,"div",6)(20,"mat-button-toggle-group",7)(21,"mat-button-toggle",8),w("change",function(c){return a.stuckOnly=c.source.checked}),d(22,"Only stuck"),s(),l(23,"mat-button-toggle",8),w("change",function(c){return a.armedOnly=c.source.checked}),d(24,"Only armed"),s()(),l(25,"button",9),w("click",function(){return a.onClearFilters()}),d(26,"Clear"),s(),l(27,"span",10),d(28),s()()(),l(29,"div",11)(30,"div",12)(31,"table",13),I(32,14),T(33,G1,2,0,"th",15)(34,q1,3,1,"td",16),R(),I(35,17),T(36,Y1,2,0,"th",15)(37,Q1,6,2,"td",16),R(),I(38,18),T(39,K1,2,0,"th",15)(40,tC,5,1,"td",16),R(),I(41,19),T(42,eC,2,0,"th",15)(43,iC,3,3,"td",16),R(),I(44,20),T(45,nC,2,0,"th",21)(46,oC,2,1,"td",22),R(),I(47,23),T(48,aC,2,0,"th",21)(49,rC,2,1,"td",22),R(),I(50,24),T(51,sC,2,0,"th",15)(52,lC,3,5,"td",16),R(),I(53,25),T(54,cC,2,0,"th",15)(55,mC,4,6,"td",16),R(),I(56,26),T(57,pC,2,0,"th",15)(58,uC,3,1,"td",16),R(),I(59,27),T(60,fC,2,0,"th",21)(61,hC,6,0,"td",22),R(),T(62,gC,1,0,"tr",28)(63,_C,1,2,"tr",29),s()(),x(64,CC,2,0,"div",30)(65,bC,2,0,"div",30),s()()),o&2&&(m(6),Pt("ngModel",a.channel),m(),C("value",null),m(2),H(a.channelOptions),m(5),Pt("ngModel",a.kind),m(),C("value",null),m(2),H(a.kindOptions),m(4),C("checked",a.stuckOnly),m(2),C("checked",a.armedOnly),m(5),rt("",a.visibleRows.length," of ",a.rows.length," pending scopes \xB7 stuck = armed > 10 min, never flushed"),m(3),C("dataSource",a.visibleRows),m(31),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(!a.loading&&!a.rows.length?64:!a.loading&&!a.visibleRows.length?65:-1))},dependencies:[ht,Ft,Vt,dt,ct,he,Rt,Jn,Zn,et,gt,bt,Ct,xt,_t,vt,Ae,yt,Mt,St,wt],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-small[_ngcontent-%COMP%]{font-size:12px;color:#45464a}.distribution-fresh[_ngcontent-%COMP%]{color:#1e7e34}.distribution-stuck[_ngcontent-%COMP%]{color:#c5221f;font-weight:600}.distribution-row--stuck[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#fffaf6}.distribution-actions[_ngcontent-%COMP%]{display:inline-flex;gap:6px}"],changeDetection:0});let t=n;return t})();var vC=(t,n)=>n.kind+n.id;function yC(t,n){t&1&&(l(0,"div",7),d(1,' No event, scope or message carries this id. A write that was gated or dropped never reaches this ledger \u2014 check the producer log in Cloud Logging (jsonPayload.log = "distribution-emit"). '),s())}function SC(t,n){t&1&&M(0,"span",17)}function MC(t,n){if(t&1&&(l(0,"span"),d(1),s()),t&2){let e=h().$implicit;
1Wt(e.verdictClass),m(),_(e.verdictLabel)}}function wC(t,n){if(t&1){let e=$();l(0,"div",14),w("click",function(){let o=F(e).$implicit,a=h(3);return B(a.selectNode.emit({kind:o.kind,id:o.id}))}),l(1,"div",15),M(2,"span",16),x(3,SC,1,0,"span",17),s(),l(4,"div",18)(5,"div",19)(6,"span"),d(7),s(),l(8,"span",20),d(9),s(),x(10,MC,2,3,"span",21),l(11,"span",22),d(12),S(13,"date"),s()(),l(14,"div",23),d(15),l(16,"a",24),w("click",function(o){let a=F(e).$implicit;return h(3).campsiteClick.emit(a.campsiteId),B(o.stopPropagation())}),d(17),s()()()()}if(t&2){let e=n.$implicit,i=n.$index,o=n.$count,a=h(3);Y("distribution-node--selected",a.isSelected(e.kind,e.id)),m(2),C("ngClass","distribution-node-dot--"+e.tone),m(),v(i!==o-1?3:-1),m(3),Wt(a.kindChipClass(e.kind)),m(),_(e.kind),m(2),_(e.id),m(),v(e.verdictLabel?10:-1),m(2),_(e.time?mt(13,12,e.time,"dd MMM HH:mm:ss"):""),m(3),A(" ",e.text," "),m(2),_(e.campsiteLabel)}}function EC(t,n){if(t&1&&(l(0,"span",31),d(1),s()),t&2){let e=n.$implicit;m(),rt("",e.object," ",e.id)}}function TC(t,n){if(t&1&&(l(0,"div",28)(1,"span",2),d(2,"Task"),s(),l(3,"span",34),d(4),s()()),t&2){let e=h();m(4),_(e.taskName)}}function DC(t,n){if(t&1&&(l(0,"h3"),d(1),s(),l(2,"p",26),d(3),S(4,"adminDate"),S(5,"adminDate"),s(),l(6,"div",27)(7,"div",28)(8,"span",2),d(9,"Campsite"),s(),l(10,"span"),d(11),s()(),l(12,"div",28)(13,"span",2),d(14,"Accommodation"),s(),l(15,"span",29),d(16),s()(),l(17,"div",28)(18,"span",2),d(19,"Window"),s(),l(20,"span",29),d(21),s()(),l(22,"div",28)(23,"span",2),d(24,"Trace"),s(),l(25,"span",30),z(26,EC,2,2,"span",31,U),s()(),x(28,TC,5,1,"div",28),s(),l(29,"div",32)(30,"div",2),d(31,"Event JSON"),s(),l(32,"pre",33),d(33),s()()),t&2){let e=n,i=h(4);m(),rt("",e.type," \xB7 ",e.action),m(2),rt(" Emitted ",mt(4,9,e.emittedAt,!0)," \xB7 consumed ",mt(5,12,e.consumedAt,!0)," "),m(8),_(e.campsiteName??e.campsiteId),m(5),_(e.accommodationId??"camp-level"),m(5),_(i.windowLabel(e.window)),m(5),H(e.trace),m(2),v(e.taskName?28:-1),m(5),_(i.bodyJson(e))}}function PC(t,n){if(t&1&&(l(0,"h3"),d(1),s(),l(2,"p",26),d(3,"Coalescing mailbox \u2014 one row per channel, campsite, accommodation and kind."),s(),l(4,"div",27)(5,"div",28)(6,"span",2),d(7,"Campsite"),s(),l(8,"span"),d(9),s()(),l(10,"div",28)(11,"span",2),d(12,"Accommodation"),s(),l(13,"span",29),d(14),s()(),l(15,"div",28)(16,"span",2),d(17,"Flush"),s(),l(18,"span"),d(19),s()(),l(20,"div",28)(21,"span",2),d(22,"Armed"),s(),l(23,"span"),d(24),S(25,"adminDate"),s()(),l(26,"div",28)(27,"span",2),d(28,"Pending"),s(),l(29,"span"),d(30),s()(),l(31,"div",28)(32,"span",2),d(33,"Claimed"),s(),l(34,"span"),d(35),s()(),l(36,"div",28)(37,"span",2),d(38,"Re-armed"),s(),l(39,"span"),d(40),s()()(),l(41,"div",32)(42,"div",2),d(43,"Scope row"),s(),l(44,"pre",33),d(45),s()()),t&2){let e=n,i=h(4);m(),rt("",e.channel," \xB7 ",e.kind),m(8),_(e.campsiteName??e.campsiteId),m(5),_(e.accommodationId??"camp-level"),m(5),_(e.flushScheduled?"scheduled":"idle"),m(5),_(e.armedAt?mt(25,12,e.armedAt,!0):"not armed"),m(6),rt("",e.eventIds.length," event id",e.eventIds.length===1?"":"s"),m(5),rt("",e.claimedEventIds.length," event id",e.claimedEventIds.length===1?"":"s"),m(5),A("",e.rearmCount,"\xD7"),m(5),_(i.bodyJson(e))}}function kC(t,n){if(t&1&&(d(0),S(1,"date")),t&2){let e=h();A(" \xB7 sent ",mt(1,1,e.sentAt,"HH:mm:ss")," ")}}function OC(t,n){if(t&1&&(d(0),S(1,"date")),t&2){let e=h();A(" \xB7 verdict ",mt(1,1,e.verdictAt,"HH:mm:ss")," ")}}function IC(t,n){t&1&&M(0,"mat-progress-bar",35)}function RC(t,n){if(t&1&&(l(0,"div",32)(1,"div",2),d(2,"Request body"),s(),l(3,"pre",33),d(4),s()(),l(5,"div",32)(6,"div",2),d(7,"Response body"),s(),l(8,"pre",33),d(9),s()()),t&2){let e=h(),i=h(4);m(4),_(i.bodyText(i.selectedMessageDetail.message.request)),m(5),_(i.responseText(e,i.selectedMessageDetail.message.response))}}function AC(t,n){if(t&1&&(l(0,"h3"),d(1),s(),l(2,"p",26),d(3),S(4,"adminDate"),x(5,kC,2,4),x(6,OC,2,4),s(),l(7,"div",27)(8,"div",28)(9,"span",2),d(10,"Campsite"),s(),l(11,"span"),d(12),s()(),l(13,"div",28)(14,"span",2),d(15,"Mode"),s(),l(16,"span")(17,"span"),d(18),s()()(),l(19,"div",28)(20,"span",2),d(21,"Verdict"),s(),l(22,"span")(23,"span"),d(24),s()()(),l(25,"div",28)(26,"span",2),d(27,"Attempts"),s(),l(28,"span"),d(29),s()(),l(30,"div",28)(31,"span",2),d(32,"Window"),s(),l(33,"span",29),d(34),s()(),l(35,"div",28)(36,"span",2),d(37,"Payload"),s(),l(38,"span"),d(39),s()()(),x(40,IC,1,0,"mat-progress-bar",35),x(41,RC,10,2)),t&2){let e=n,i=h(4);m(),rt("",e.channel," \xB7 ",e.kind),m(2),A(" Built ",mt(4,18,e.builtAt,!0)," "),m(2),v(e.sentAt?5:-1),m(),v(e.verdictAt?6:-1),m(6),_(e.campsiteName??e.campsiteId),m(5),Wt(i.modeClass(e.mode)),m(),_(e.mode),m(5),Wt(i.verdictClass(e.status)),m(),_(i.verdictLabel(e)),m(5),_(e.attempts),m(5),_(i.windowLabel(e.window)),m(5),rt("",i.bytes(e.requestBytes)," \xB7 ",e.eventIds.length," events coalesced"),m(),v(i.detailLoa
1ding?40:-1),m(),v(!i.detailLoading&&i.selectedMessageDetail?41:-1)}}function FC(t,n){if(t&1&&(l(0,"div",25)(1,"span"),d(2),s(),l(3,"span",20),d(4),s()(),x(5,DC,34,15),x(6,PC,46,15),x(7,AC,42,21)),t&2){let e,i,o,a=h(3);m(),Wt(a.kindChipClass(a.selectedNode.kind)),m(),_(a.selectedNode.kind),m(2),_(a.selectedNode.id),m(),v((e=a.selectedNode.kind==="EVENT"&&a.selectedEvent())?5:-1,e),m(),v((i=a.selectedNode.kind==="SCOPE"&&a.selectedScope())?6:-1,i),m(),v((o=a.selectedNode.kind==="MESSAGE"&&a.selectedMessage())?7:-1,o)}}function BC(t,n){t&1&&(l(0,"div",13),d(1,"Pick a node on the left to see its details and payload."),s())}function LC(t,n){if(t&1&&(l(0,"div",8)(1,"div",9)(2,"div",10),z(3,wC,18,15,"div",11,vC),s()(),l(5,"div",12),x(6,FC,8,7)(7,BC,2,0,"div",13),s()()),t&2){let e=h(2);m(3),H(e.nodes()),m(3),v(e.selectedNode?6:7)}}function NC(t,n){if(t&1&&(l(0,"div",0)(1,"div",1)(2,"span",2),d(3,"Searched"),s(),l(4,"span",3),d(5),s(),l(6,"span",4),d(7,"\u2192"),s(),l(8,"span",5),d(9),s(),l(10,"span",6),d(11," resolved as "),l(12,"span"),d(13),s()()(),x(14,yC,2,0,"div",7),x(15,LC,8,1,"div",8),s()),t&2){let e=h();m(5),_(e.trace.id),m(4),_(e.resolution()),m(3),Wt(e.resolvedChipClass()),m(),_(e.trace.resolvedAs),m(),v(e.trace.resolvedAs==="NONE"?14:-1),m(),v(e.nodes().length?15:-1)}}function VC(t,n){t&1&&(l(0,"div",9)(1,"span",2),d(2,"Trace"),s(),l(3,"p",36),d(4," Type any id in the search box above \u2014 an event, message or scope id, or a booking, order, blocker, rate plan or other source record id \u2014 and press Trace to see the chain it belongs to: events \u2192 scopes \u2192 messages. "),s()())}function $C(t,n){if(t&1&&x(0,VC,5,0,"div",9),t&2){let e=h();v(e.loading?-1:0)}}var da=(()=>{let n=class n{constructor(){this.trace=null,this.loading=!1,this.selectedNode=null,this.selectedMessageDetail=null,this.detailLoading=!1,this.selectNode=new X,this.campsiteClick=new X}isSelected(i,o){return this.selectedNode?.kind===i&&this.selectedNode?.id===o}selectedEvent(){return this._find(this.trace?.events,"EVENT")}selectedScope(){return this._find(this.trace?.scopes,"SCOPE")}selectedMessage(){return this._find(this.trace?.messages,"MESSAGE")}resolution(){return this.trace?Jm(this.trace):""}resolvedChipClass(){return Ce(this.trace?.resolvedAs==="NONE"?"amber":"blue")}nodes(){if(!this.trace)return[];let i=[...this.trace.events].sort((r,c)=>r.emittedAt.localeCompare(c.emittedAt)).map(r=>({kind:"EVENT",id:r.id,tone:Ai(r.type),time:r.emittedAt,text:`${r.type} \xB7 ${r.action} \xB7 ${r.accommodationId??"camp-level"} \xB7 ${yn(r.window)} \xB7`,campsiteId:r.campsiteId,campsiteLabel:r.campsiteName??r.campsiteId,verdictLabel:null,verdictClass:""})),o=this.trace.scopes.map(r=>({kind:"SCOPE",id:r.id,tone:"grey",time:r.armedAt,text:`${r.channel} \xB7 ${r.kind} \xB7 ${r.flushScheduled?"flush scheduled":"idle"} \xB7 ${r.eventIds.length} pending \xB7`,campsiteId:r.campsiteId,campsiteLabel:r.campsiteName??r.campsiteId,verdictLabel:null,verdictClass:""})),a=[...this.trace.messages].sort((r,c)=>r.builtAt.localeCompare(c.builtAt)).map(r=>({kind:"MESSAGE",id:r.id,tone:Fi(r.status)==="outline"?"grey":Fi(r.status),time:r.sentAt??r.builtAt,text:`${r.channel} \xB7 ${r.kind} \xB7 ${r.mode} \xB7 ${r.eventIds.length} events \xB7`,campsiteId:r.campsiteId,campsiteLabel:r.campsiteName??r.campsiteId,verdictLabel:vn(r),verdictClass:Ce(Fi(r.status))}));return[...i,...o,...a]}kindChipClass(i){return Ce(i==="EVENT"?"blue":i==="SCOPE"?"grey":"violet")}modeClass(i){return Ce(yi(i))}verdictClass(i){return Ce(Fi(i))}verdictLabel(i){return vn(i)}windowLabel(i){return yn(i)}bytes(i){return zr(i)}bodyJson(i){return JSON.stringify(i,null,2)}bodyText(i){return i==null?"(empty)":typeof i=="string"?i:JSON.stringify(i,null,2)}responseText(i,o){return i.mode==="SHADOW"?"(shadow mode \u2014 nothing was sent; payload recorded only)":i.status==="SENT"?"(awaiting vendor reply)":this.bodyText(o)}_find(i,o){return!i||this.selectedNode?.kind!==o?null:i.find(a=>a.id===this.selectedNode?.id)??null}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-distribution-trace"]],inputs:{trace:"trace",loading:"loading",selectedNode:"selectedNode",selectedMessageDetail:"selectedMessageDetail",detailLoa
1ding:"detailLoading"},outputs:{selectNode:"selectNode",campsiteClick:"campsiteClick"},decls:2,vars:1,consts:[[1,"dist-stack"],[1,"dist-card","dist-card--padded","distribution-searched"],[1,"dist-label"],[1,"distribution-searched-id","dist-mono"],[1,"distribution-searched-arrow"],[1,"distribution-searched-text"],[1,"distribution-searched-as"],[1,"dist-warn"],[1,"distribution-trace-grid"],[1,"dist-card","dist-card--padded"],[1,"distribution-timeline"],[1,"distribution-node",3,"distribution-node--selected"],[1,"dist-card","dist-card--padded","distribution-detail"],[1,"dist-info"],[1,"distribution-node",3,"click"],[1,"distribution-node-rail"],[1,"distribution-node-dot",3,"ngClass"],[1,"distribution-node-line"],[1,"distribution-node-body"],[1,"distribution-node-head"],[1,"dist-mono","distribution-node-id"],[3,"class"],[1,"distribution-node-time","dist-mono"],[1,"distribution-node-text"],[1,"dist-link",3,"click"],[1,"distribution-detail-head"],[1,"dist-muted"],[1,"distribution-fields"],[1,"distribution-field"],[1,"dist-mono"],[1,"dist-chip-row"],[1,"dist-trace-chip"],[1,"distribution-payload"],[1,"dist-pre"],[1,"dist-mono","distribution-wrap"],["mode","indeterminate"],[1,"distribution-hint"]],template:function(o,a){o&1&&x(0,NC,16,7,"div",0)(1,$C,1,1),o&2&&v(a.trace?0:1)},dependencies:[ii,ge,qe,ft],styles:[".dist-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dist-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dist-id[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.dist-muted[_ngcontent-%COMP%]{color:#6c6d70;font-size:11.5px}.dist-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.dist-link[_ngcontent-%COMP%]{color:#2b5fd9;cursor:pointer}.dist-link[_ngcontent-%COMP%]:hover{color:#1e46a8;text-decoration:underline}.dist-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-card--padded[_ngcontent-%COMP%]{padding:14px 16px}.dist-card-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:11px 14px;border-bottom:1px solid #eeeeec}.dist-card-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.dist-card-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.dist-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.dist-grid-2[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px}.dist-filterbar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.dist-filterbar[_ngcontent-%COMP%]   .mat-mdc-form-field[_ngcontent-%COMP%]{margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper{display:none}.dist-filterbar-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;align-items:center}.dist-filterbar-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-width:0;width:100%}.dist-filterbar[_ngcontent-%COMP%]     app-search-campsites-auto-complete, .dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}.dist-filterbar[_ngcontent-%COMP%]     app-search-with-auto-complete .mat-mdc-form-field{width:100%}.dist-filterbar-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.dist-filterbar-note[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#8a8b8e}.dist-campsite-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 12px;border-radius:16px;background:#eef2fb;border:1px solid #d6e0f6;color:#2f4a93;font-size:12px;font-weight:500}.dist-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.dist-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.dist-tile-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.dist-tile-value--good[_ngcontent-%COMP%]{color:#1e7e34}.dist-tile-value--bad[_ngcontent-%COMP%]{color:#c5221f}.dist-tile-value--warn[_ngcontent-%COMP%]{color:#8a5b12}.dist-tile-hint[_ngcontent-%COMP%]{display:block;font-size:11px;color:#a9aaad;margin-top:2px}.dist-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.dist-chip--green[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.dist-chip--blue[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.dist-chip--amber[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.dist-chip--orange[_ngcontent-%COMP%]{background:#fdeee2;border-color:#f2d0ae;color:#8f4a11}.dist-chip--red[_ngcontent-%COMP%]{background:#fdeae4;border-color:#f3c4b4;color:#a33417}.dist-chip--violet[_ngcontent-%COMP%]{background:#f2f0fb;border-color:#ded9f4;color:#4e3f8d}.dist-chip--grey[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#4a5350}.dist-chip--outline[_ngcontent-%COMP%]{background:#fff;border:1px dashed #c3c4c6;color:#6c6d70;font-weight:500}.dist-trace-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#45464a;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.dist-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dist-ghost[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid #e8e8e6;border-radius:5px;background:#fafafa;color:#b6b6b3;font-size:11.5px;cursor:not-allowed;white-space:nowrap}.dist-phase2[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.dist-pre[_ngcontent-%COMP%]{margin:0;padding:11px 12px;background:#24262a;color:#e7e9ea;border-radius:6px;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.dist-pre-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.dist-pre-head[_ngcontent-%COMP%]   .dist-id[_ngcontent-%COMP%]{margin-top:0}.dist-info[_ngcontent-%COMP%]{padding:10px 12px;background:#eef2fb;border:1px solid #d6e0f6;border-radius:6px;color:#2f4a93;font-size:12.5px}.dist-warn[_ngcontent-%COMP%]{padding:9px 12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#7a3e1d;font-size:12px}.dist-error[_ngcontent-%COMP%]{padding:9px 12px;background:#fdeae4;border:1px solid #f3c4b4;border-radius:6px;color:#a33417;font-size:12px}.dist-empty[_ngcontent-%COMP%]{margin:14px}table[mat-table][_ngcontent-%COMP%]{width:100%;font-variant-numeric:tabular-nums}table[mat-table][_ngcontent-%COMP%]   th.mat-mdc-header-cell[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e;background:#fafafa;white-space:nowrap}table[mat-table][_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{font-size:12.5px;vertical-align:top;padding-top:9px;padding-bottom:9px}table[mat-table][_ngcontent-%COMP%]   .dist-num[_ngcontent-%COMP%]{text-align:right}.dist-row--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-row--clickable[_ngcontent-%COMP%]:hover   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f1f4fb}.dist-row--expanded[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{background:#f7f8fa}.dist-detail-row[_ngcontent-%COMP%]   td.mat-mdc-cell[_ngcontent-%COMP%]{padding:0;background:#fbfbfa}.dist-detail[_ngcontent-%COMP%]{padding:14px}.dist-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.dist-box[_ngcontent-%COMP%]{padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:6px}.dist-box--clickable[_ngcontent-%COMP%]{cursor:pointer}.dist-box--clickable[_ngcontent-%COMP%]:hover{background:#f1f4fb}.dist-caret[_ngcontent-%COMP%]{color:#8a8b8e;font-size:12px}.dist-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:12px;background:#fafafa;border-top:1px solid #eeeeec}.dist-paginator[_ngcontent-%COMP%]{border-top:1px solid #eeeeec;background:#fafafa}.dist-subtable[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e3e1;border-radius:6px;font-variant-numeric:tabular-nums}.dist-subtable[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:7px 12px;border-bottom:1px solid #f2f2f0;font-size:11.5px;color:#45464a;vertical-align:top}.dist-subtable[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:last-child   td[_ngcontent-%COMP%]{border-bottom:none}.dist-detail-row--collapsed[_ngcontent-%COMP%]{display:none}button.dist-trace-chip--copy[_ngcontent-%COMP%]{cursor:pointer;font:inherit;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}button.dist-trace-chip--copy[_ngcontent-%COMP%]:hover{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}",".distribution-searched[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.distribution-searched-id[_ngcontent-%COMP%]{font-size:13px;font-weight:600}.distribution-searched-arrow[_ngcontent-%COMP%]{color:#b6b6b3}.distribution-searched-text[_ngcontent-%COMP%]{font-size:12.5px;color:#45464a}.distribution-searched-as[_ngcontent-%COMP%]{margin-left:auto;font-size:11.5px;color:#6c6d70;display:inline-flex;align-items:center;gap:6px}.distribution-hint[_ngcontent-%COMP%]{margin:6px 0 0;font-size:12.5px;color:#45464a}.distribution-trace-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;align-items:start}.distribution-timeline[_ngcontent-%COMP%]{display:flex;flex-direction:column}.distribution-node[_ngcontent-%COMP%]{display:flex;gap:12px;padding:8px 8px 0;border-radius:6px;cursor:pointer}.distribution-node[_ngcontent-%COMP%]:hover{background:#f7f8fa}.distribution-node--selected[_ngcontent-%COMP%]{background:#eef2fb}.distribution-node-rail[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;width:18px;flex:0 0 18px}
1.distribution-node-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;margin-top:4px;border:2px solid #fff;box-shadow:0 0 0 1px #d9d9d6;background:#a9aaad}.distribution-node-dot--blue[_ngcontent-%COMP%]{background:#2b5fd9}.distribution-node-dot--violet[_ngcontent-%COMP%]{background:#7b61c9}.distribution-node-dot--green[_ngcontent-%COMP%]{background:#2e9e5b}.distribution-node-dot--red[_ngcontent-%COMP%]{background:#d64a2a}.distribution-node-dot--amber[_ngcontent-%COMP%]{background:#e0a02b}.distribution-node-dot--orange[_ngcontent-%COMP%]{background:#e98a3c}.distribution-node-line[_ngcontent-%COMP%]{flex:1 1 auto;width:2px;background:#e3e3e1;margin-top:4px}.distribution-node-body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;padding-bottom:14px}.distribution-node-head[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.distribution-node-id[_ngcontent-%COMP%]{font-size:12px;color:#45464a}.distribution-node-time[_ngcontent-%COMP%]{margin-left:auto;font-size:11px;color:#a9aaad}.distribution-node-text[_ngcontent-%COMP%]{margin-top:3px;font-size:12px;color:#6c6d70}.distribution-detail[_ngcontent-%COMP%]{position:sticky;top:16px}.distribution-detail-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.distribution-detail[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:10px 0 2px;font-size:14px;font-weight:600}.distribution-detail[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0}.distribution-fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1px;background:#eeeeec;border:1px solid #eeeeec;border-radius:6px;margin-top:14px;overflow:hidden}.distribution-field[_ngcontent-%COMP%]{background:#fff;padding:8px 12px;display:flex;gap:12px;align-items:baseline;font-size:12.5px}.distribution-field[_ngcontent-%COMP%]   .dist-label[_ngcontent-%COMP%]{width:120px;flex:0 0 120px}.distribution-wrap[_ngcontent-%COMP%]{word-break:break-all}.distribution-payload[_ngcontent-%COMP%]{margin-top:12px}.distribution-payload[_ngcontent-%COMP%]   .dist-pre[_ngcontent-%COMP%]{margin-top:6px;max-height:260px}"],changeDetection:0});let t=n;return t})();function HC(t,n){if(t&1){let e=$();l(0,"button",9),w("click",function(){F(e);let o=h(2);return B(o.fetchInitialStatus())}),d(1," Load AI Extraction Status "),s()}}function jC(t,n){t&1&&(l(0,"p",1),d(1,"No AI extraction history available."),s())}function UC(t,n){if(t&1&&(l(0,"p"),d(1," Request ID: "),l(2,"span",16),d(3),s()()),t&2){let e=h(3);m(3),_(e.requestIdFromTrigger)}}function WC(t,n){if(t&1&&(l(0,"p"),d(1," Pipeline started: "),l(2,"span",16),d(3),s()()),t&2){let e=h(3);m(3),_(e.formatStatusTimestamp(e.triggerInitiatedAt))}}function GC(t,n){t&1&&(l(0,"p"),d(1,"Pipeline started: "),l(2,"span",16),d(3,"Not available"),s()())}function qC(t,n){if(t&1&&(l(0,"p"),d(1," For Campsite url: "),l(2,"a",17),d(3),s()()),t&2){let e=h(3);m(2),C("href",e.campsiteUrl,fi),m(),_(e.campsiteUrl)}}function YC(t,n){if(t&1&&(l(0,"tr")(1,"td"),d(2),s(),l(3,"td"),d(4),s(),l(5,"td"),d(6),s(),l(7,"td"),d(8),s(),l(9,"td"),d(10),s()()),t&2){let e=n.$implicit,i=h(3);m(2),_(e.pipeline_stage),m(2),_(e.status),m(2),_(i.formatStatusTimestamp(e.status_timestamp)),m(2),_(e.message),m(2),_(e.source)}}function QC(t,n){if(t&1&&(l(0,"tr")(1,"td"),d(2),s(),l(3,"td",20),d(4),s()()),t&2){let e=n.$implicit;m(2),_(e.key),m(2),_(e.value)}}function KC(t,n){if(t&1&&(l(0,"h4",18)(1,"strong"),d(2,"Data Changes Detected"),s()(),l(3,"table",19)(4,"thead")(5,"tr")(6,"th"),d(7,"Field"),s(),l(8,"th"),d(9,"New Value"),s()()(),l(10,"tbody"),z(11,QC,5,2,"tr",null,U),s()()),t&2){let e=h(3);m(11),H(e.diffData)}}function XC(t,n){if(t&1){let e=$();l(0,"button",21),w("click",function(){F(e);let o=h(3);return B(o.pollStatus())}),d(1," Poll AI Extraction Status "),s()}if(t&2){let e=h(3);C("disabled",e.shouldDisablePollButton())}}function JC(t,n){if(t&1&&(l(0,"div",2)(1,"div",10)(2,"strong"),d(3,"Status: "),s(),d(4),s(),l(5,"div",11)(6,"h4",12)(7,"strong"),d(8,"AI Extraction Status History"),s()(),l(9,"div",13),x(10,UC,4,1,"p"),x(11,WC,4,1,"p"),x(12,GC,4,0,"p"),x(13,qC,4,2,"p"),s(),l(14,"table",14)(15,"thead")(16,"tr")(17,"th"),d(18,"Stage"),s(),l(19,"th"),d(20,"Status"),s(),l(21,"th"),d(22,"Timestamp"),s(),l(23,"th"),d(24,"Message"),s(),l(25,"th"),d(26,"Source"),s()()(),l(27,"tbody"),z(28,YC,11,5,"tr",null,U),s()(),x(30,KC,13,0),x(31,XC,2,1,"button",15),s()()),t&2){let e=h(2);m(),C("ngClass",e.getTerminalStatusColor()),m(3),A(" ",e.terminalStatus?e.terminalStatus.replace("_"," "):"N/A"," "),m(6),v(e.requestIdFromTrigger?10:-1),m(),v(e.triggerInitiatedAt?11:-1),m(),v(!e.triggerInitiatedAt&&!e.statusLoading?12:-1),m(),v(e.campsiteUrl?13:-1),m(15),H(e.historyEntries),m(2),v(e.terminalStatus==="SUCCESS"&&e.diffData.length>0?30:-1),m(),v(e.statusLoading?-1:31)}}function ZC(t,n){t&1&&(l(0,"div",7),d(1,"AI Extraction process initiated..."),s())}function tb(t,n){if(t&1&&(l(0,"div",8),d(1),s()),t&2){let e=h(2);m(),A(" ",e.triggerErrorMessage||"Failed to trigger AI Extraction."," ")}}function eb(t,n){t&1&&(l(0,"div",7),d(1,"Fetching AI Extraction status..."),s())}function ib(t,n){t&1&&(l(0,"div",8),d(1,"Failed to fetch AI Extraction status."),s())}function nb(t,n){t&1&&M(0,"app-loading")}function ob(t,n){if(t&1){let e=$();l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"AI Extraction Information"),s()(),l(4,"mat-card-content"),x(5,HC,2,0,"button",0),x(6,jC,2,0,"p",1),x(7,JC,32,8,"div",2),M(8,"hr"),l(9,"div",3)(10,"div",4)(11,"button",5),w("click",function(){F(e);let o=h();return B(o.triggerAiExtraction())}),d(12),s()()(),l(13,"div",6),x(14,ZC,2,0,"div",7),x(15,tb,2,1,"div",8),x(16,eb,2,0,"div",7),x(17,ib,2,0,"div",8),s()(),x(18,nb,1,0,"app-loading"),s()}if(t&2){let e=h();m(5),v(!e.statusLoaded&&!e.statusLoading&&!e.loading?5:-1),m(),v(e.statusLoaded&&!e.loading&&!e.statusLoading&&!e.statusError&&e.historyEntries.length===0?6:-1),m(),v(e.historyEntries.length>0?7:-1),m(4),C("disabled",e.loading||e.statusLoading),m(),A(" ",e.historyEntries.length>0?"Retrigger AI Extraction":"Trigger AI Extraction"," "),m(2),v(e.loading?14:-1),m(),v(e.triggerError?15:-1),m(),v(e.statusLoading?16:-1),m(),v(e.statusError?17:-1),m(),v(e.loading||e.statusLoading?18:-1)}}var ma=(()=>{let n=class n{constructor(i,o){this.http=i,this.cdr=o,this.loading=!1,this.extractInfoEmitter=new X,this.triggerEndpoint="ai-extraction/:campsiteId/trigger",this.statusEndpoint="ai-extraction/:campsiteId/status",this.diffData=[],this.requestIdFromTrigger="",this.campsiteUrl="",this.statusData=null,this.historyEntries=[],this.triggerInitiatedAt=null,this.terminalStatus=null,this.statusLoading=!1,this.statusLoaded=!1,this.statusError=!1,this.triggerError=!1,this.triggerErrorMessage="",this.currentCampsiteId=null}
1ngOnChanges(i){if(!i.campsite)return;let o=this.campsite?.id??null;o!==this.currentCampsiteId&&(this.currentCampsiteId=o,this.resetAllState(),this.cdr.markForCheck())}resetAllState(){this.requestIdFromTrigger="",this.statusData=null,this.historyEntries=[],this.triggerInitiatedAt=null,this.terminalStatus=null,this.statusLoading=!1,this.statusLoaded=!1,this.statusError=!1,this.loading=!1,this.triggerError=!1,this.triggerErrorMessage="",this.diffData=[]}fetchInitialStatus(){if(!this.campsite?.id){console.warn("Campsite or Campsite ID is missing, cannot fetch initial status."),this.statusLoading=!1,this.statusError=!0,this.cdr.detectChanges();return}this.statusLoading=!0,this.statusLoaded=!1,this.statusError=!1,this.statusData=null,this.historyEntries=[],this.triggerInitiatedAt=null,this.terminalStatus=null,this.triggerError=!1,this.triggerErrorMessage="",this.diffData=[];let i=`${this.statusEndpoint}`.replace(":campsiteId",this.campsite.id);this.http.get(i).subscribe({next:o=>{if(this.statusLoading=!1,this.statusLoaded=!0,this.statusData=o,o?.cloudFunctionResponse){let a=o.cloudFunctionResponse;this.historyEntries=a.full_history||[],this.triggerInitiatedAt=a.earliest_timestamp||null,this.requestIdFromTrigger=a.request_id||"",this.campsiteUrl=a.campsite_url||"",this.terminalStatus=a.terminal_status||null,o.diff&&Object.keys(o.diff).length>0?this.diffData=Object.entries(o.diff).map(([r,c])=>{let p;return Array.isArray(c)?p=c.length>0?c.join(", "):"[Empty Array]":typeof c=="object"&&c!==null?p=JSON.stringify(c,null,2):p=String(c),{key:r,value:p}}):this.diffData=[]}else this.historyEntries=[],this.triggerInitiatedAt=null,this.requestIdFromTrigger="",this.terminalStatus=null,this.diffData=[];this.cdr.detectChanges()},error:o=>{console.error("Error fetching initial status:",o),this.statusLoading=!1,this.statusError=!0,this.statusData=null,this.historyEntries=[],this.triggerInitiatedAt=null,this.requestIdFromTrigger="",this.terminalStatus=null,this.diffData=[],this.cdr.detectChanges()}})}formatStatusTimestamp(i){if(!i)return"N/A";try{return this.formatTimestampToYYMMDDHHMMSS(i)}catch(o){return console.error("Error formatting timestamp:",o,"Timestamp:",i),i}}formatTimestampToYYMMDDHHMMSS(i){let o=new Date(i),a=o.getFullYear().toString(),r=(o.getMonth()+1).toString().padStart(2,"0"),c=o.getDate().toString().padStart(2,"0"),p=o.getHours().toString().padStart(2,"0"),u=o.getMinutes().toString().padStart(2,"0"),f=o.getSeconds().toString().padStart(2,"0");return`${a}-${r}-${c} ${p}:${u}:${f}`}triggerAiExtraction(){if(!this.campsite?.id){console.error("Campsite or Campsite ID is missing, cannot trigger AI extraction."),this.triggerError=!0,this.triggerErrorMessage="Campsite ID is missing.",this.extractInfoEmitter.emit({success:!1});return}this.loading=!0,this.triggerError=!1,this.triggerErrorMessage="",this.statusError=!1,this.requestIdFromTrigger="",this.statusData=null,this.statusLoaded=!1,this.historyEntries=[],this.triggerInitiatedAt=null,this.terminalStatus=null,this.diffData=[];let i=this.campsite.id,o=`${this.triggerEndpoint}`.replace(":campsiteId",i);this.http.post(o,{}).subscribe({next:a=>{this.loading=!1,a.errorMessage?(this.triggerError=!0,this.triggerErrorMessage=a.errorMessage,this.extractInfoEmitter.emit({success:!1}),console.error("Backend trigger error:",a.errorMessage)):a.aiExtractionRequest?.requestId?(this.requestIdFromTrigger=a.aiExtractionRequest.requestId,this.extractInfoEmitter.emit({success:!0}),this.statusLoading=!0,Kc(1e3).subscribe(()=>{if(this.currentCampsiteId!==i){this.statusLoading=!1,this.cdr.detectChanges();return}this.fetchInitialStatus()})):(this.triggerError=!0,this.triggerErrorMessage="Unexpected successful response from AI trigger. Request details are missing.",this.extractInfoEmitter.emit({success:!1})),this.cdr.detectChanges()},error:a=>{console.error("Error triggering AI extraction (HTTP error):",a),this.loading=!1,this.triggerError=!0,this.triggerErrorMessage="Failed to trigger AI Extraction.",this.extractInfoEmitter.emit({success:!1}),this.cdr.detectChanges()}})}pollStatus(){if(!this.campsite?.id){console.error("Campsite or Campsite ID is missing, cannot poll status."),this.statusError=!0;return}this.fetchInitialStatus()}getTerminalStatusColor(){switch(this.terminalStatus){case"SUCCESS":case"NO_CHANGES":return"status-success";case"FAILED":return"status-failed";case"IN_PROGRESS":return"status-in-progress";default:return""}}shouldDisablePollButton(){return this.terminalStatus==="SUCCESS"||this.terminalStatus==="FAILED"||this.statusLoading}};n.\u0275fac=function(o){return new(o||n)(O(ud),O(Yn))},n.\u0275cmp=L({type:n,selectors:[["app-ai-extract-info"]],inputs:{campsite:"campsite",loading:"loading"},outputs:{extractInfoEmitter:"extractInfoEmitter"},features:[Nt],decls:1,vars:1,consts:[["type","button","mat-flat-button","","color","accent",1,"load-status-button"],[1,"n
1o-history-message"],[1,"status-history-container"],[1,"ai-status-section"],[1,"ai-trigger-section"],["type","button","mat-flat-button","","color","primary",3,"click","disabled"],[1,"taskStatus"],[1,"alert","alert-info"],[1,"alert","alert-danger"],["type","button","mat-flat-button","","color","accent",1,"load-status-button",3,"click"],[1,"terminal-status-indicator",3,"ngClass"],[1,"status-history"],[1,"history-main-header"],[1,"history-detail-info"],[1,"history-table"],["type","button","mat-flat-button","","color","accent",1,"poll-button",3,"disabled"],[1,"detail-value"],["target","_blank",3,"href"],[1,"diff-header"],[1,"diff-table"],[2,"white-space","pre-wrap"],["type","button","mat-flat-button","","color","accent",1,"poll-button",3,"click","disabled"]],template:function(o,a){o&1&&x(0,ob,19,10,"mat-card"),o&2&&v(a.campsite?0:-1)},dependencies:[J,ot,st,Z,et,ii,ae],styles:[".website-info[_ngcontent-%COMP%]{margin-bottom:10px}.taskStatus[_ngcontent-%COMP%]{margin-top:15px}.alert[_ngcontent-%COMP%]{padding:10px;border-radius:4px;margin-top:10px}.alert-info[_ngcontent-%COMP%]{background-color:#e3f2fd;color:#0d47a1}.alert-danger[_ngcontent-%COMP%]{background-color:#ffebee;color:#b71c1c}.request-id-info[_ngcontent-%COMP%]{margin-top:15px;padding:10px;background-color:#f5f5f5;border-radius:4px}.request-id-info[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-top:10px}.status-info[_ngcontent-%COMP%]{margin-top:15px;padding:10px;background-color:#f5f5f5;border-radius:4px}.status-info[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin-top:0;margin-bottom:10px;color:#333}.status-info[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:15px;background-color:#fff;border-radius:4px;overflow:hidden}.status-info[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .status-info[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 12px;border:1px solid #eee;vertical-align:top;line-height:1.4}.status-info[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#f9f9f9}.status-info[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#555;font-weight:600;min-width:120px;display:inline-block}.status-info[_ngcontent-%COMP%]   button[mat-flat-button][_ngcontent-%COMP%]{margin-top:10px}.history-summary-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:15px;margin-bottom:15px;padding:10px;background-color:#f0f0f0;border-radius:4px}.history-summary-header[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin:0;color:#333;white-space:nowrap}.history-summary-header[_ngcontent-%COMP%]   .header-info[_ngcontent-%COMP%]{font-size:.9em;color:#555;white-space:nowrap}.history-summary-header[_ngcontent-%COMP%]   .header-info[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{color:#333;font-weight:600}.inline-block[_ngcontent-%COMP%]{display:inline-block}.ai-trigger-section[_ngcontent-%COMP%]{margin-bottom:15px;text-align:left}.ai-status-section[_ngcontent-%COMP%]{margin-top:20px}.status-history-container[_ngcontent-%COMP%]{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:20px;background-color:#f9f9f9}.terminal-status-indicator[_ngcontent-%COMP%]{padding:8px 12px;border-radius:5px;margin-bottom:15px;font-size:1.1em;font-weight:700;text-align:center;color:#fff;text-transform:capitalize}.status-success[_ngcontent-%COMP%]{background-color:#4caf50}.status-failed[_ngcontent-%COMP%]{background-color:#f44336}.status-in-progress[_ngcontent-%COMP%]{background-color:#2196f3}.history-main-header[_ngcontent-%COMP%]{margin-top:0;margin-bottom:15px;color:#333;font-size:1.2em;font-weight:600}.history-detail-info[_ngcontent-%COMP%]{margin-bottom:20px;line-height:1.6}.history-detail-info[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:5px 0;font-size:.9em;color:#555}.history-detail-info[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{min-width:150px;display:inline-block;text-align:right;margin-right:10px;font-weight:400;color:#333}.detail-value[_ngcontent-%COMP%]{font-weight:400;color:#555}.history-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:20px}.history-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .history-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{border:1px solid #ddd;padding:8px;text-align:left}.history-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f2f2f2;font-weight:700}.history-table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#f9f9f9}.poll-button[_ngcontent-%COMP%]{margin-top:15px}.no-history-message[_ngcontent-%COMP%]{font-style:italic;
1color:#777;text-align:center;padding:20px;border:1px dashed #ccc;border-radius:5px;margin-top:0;margin-bottom:20px}.diff-header[_ngcontent-%COMP%]{margin-top:24px;margin-bottom:8px;font-size:1.1rem;font-weight:500}.diff-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-top:10px;margin-bottom:20px;table-layout:fixed}.diff-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .diff-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{border:1px solid #ddd;padding:10px;text-align:left;vertical-align:top;word-break:break-word}.diff-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#f9f9f9;font-weight:600}.diff-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:first-child{font-weight:500;width:25%}"],changeDetection:0});let t=n;return t})();function rb(t,n){if(t&1){let e=$();l(0,"div",1),M(1,"img",3),l(2,"div",4)(3,"a",5),S(4,"async"),M(5,"i",6),d(6," Edit "),s(),l(7,"button",7),S(8,"async"),w("click",function(){F(e);let o=h(2);return B(o.deleteMapOverlay())}),M(9,"i",8),d(10," Delete "),s()()()}if(t&2){let e=h(2);m(),C("src",n.imageUrl,fi),m(2),C("routerLink",e.editorLink)("disabled",P(4,4,e.busy$)),m(4),C("disabled",P(8,6,e.busy$))}}function sb(t,n){if(t&1){let e=$();l(0,"app-uploader",9),S(1,"async"),w("downloadUrls",function(o){F(e);let a=h(2);return B(a.onImageUploaded(o[0]))}),s()}if(t&2){let e=h(2);C("campsiteId",e.selectedCampsite==null?null:e.selectedCampsite.id)("multiple",!1)("loading",P(1,4,e.busy$))("uploadDestination",e.imageUploadDestination)}}function lb(t,n){if(t&1&&(x(0,rb,11,8,"div",1),S(1,"async"),rr(2,sb,2,6,"app-uploader",2)),t&2){let e,i=h();v((e=P(1,1,i.mapOverlay$))?0:2,e)}}function cb(t,n){t&1&&M(0,"app-loading")}var pa=(()=>{let n=class n{constructor(i,o,a,r,c){this.databaseService=i,this.mapOverlayService=o,this.uiMessagingService=a,this.dialog=r,this.router=c,this.selectedCampsite=null,this.mapOverlay$=new tt(null),this.loading$=new tt(!1),this.busy$=new tt(!1),this.imageUploadDestination=Cm.MAP_OVERLAY,this.campsiteId=null,this.campsiteData=null,this._generation=0,this._subs=new Yc}ngOnChanges(i){if(!i.selectedCampsite)return;let o=this.selectedCampsite?.id??null;o!==this.campsiteId&&(this._generation++,this.campsiteId=o,this.campsiteData=null,this.mapOverlay$.next(null),this.busy$.next(!1),o&&this._load(o,this._generation))}ngOnDestroy(){this._generation++,this._subs.unsubscribe()}get editorLink(){return["/admin/edit",this.campsiteId,"map-overlay"]}onImageUploaded(i){let o=this.campsiteId,a=this.campsiteData?.coordinates;if(!i||!o||!a)return;let r=this._generation,c={lat:a.lat,lng:a.long};this.busy$.next(!0),this._loadImageSize(i).then(({width:p,height:u})=>tp(c,p,u)).catch(()=>Zm(c)).then(p=>{r===this._generation&&this._subs.add(this.mapOverlayService.createMapOverlay({campsiteId:o,imageUrl:i,bounds:p}).subscribe({next:u=>{r===this._generation&&(this.mapOverlay$.next(u),this.busy$.next(!1),this.router.navigate(this.editorLink))},error:u=>{r===this._generation&&(this.busy$.next(!1),this.uiMessagingService.openSnackBarError("Creating map overlay failed!"),console.log("BOOKING MAP CARD | CREATE MAP OVERLAY",u))}}))})}deleteMapOverlay(){if(!this.mapOverlay$.getValue()?.id||!this.campsiteId)return;let o=this.campsiteData?.name??this.selectedCampsite?.name??"",a=this.campsiteId,r=this._generation;this.dialog.open(on,{data:{header:`Delete ${o} map overlay`,message:`Are you sure you want to delete map overlay for ${o}?`,deleteButtonText:"Yes, delete",cancelButtonText:"Abort"}}).afterClosed().pipe(Yt(1)).subscribe(c=>{!c||r!==this._generation||(this.busy$.next(!0),this._subs.add(this.mapOverlayService.deleteMapOverlay(a).subscribe({next:()=>{r===this._generation&&(this.mapOverlay$.next(null),this.busy$.next(!1),this.uiMessagingService.openSnackBarSuccess(`${o} map overlay deleted successfully.`))},error:()=>{r===this._generation&&(this.busy$.next(!1),this.uiMessagingService.openSnackBarError(`Deleting map overlay for ${o} failed!`))}})))})}_load(i,o){this.loading$.next(!0),this.databaseService.getSiteDataById(i).then(a=>{o===this._generation&&(this.campsiteData=a,this._subs.add(this.mapOverlayService.getMapOverlay(i).subscribe({next:r=>{o===this._generation&&(this.mapOverlay$.next(r?.id?r:null),this.loading$.next(!1))},error:r=>{o===this._generation&&(this.loading$.next(!1),console.log("BOOKING MAP CARD | GET MAP OVERLAY",r))}})))}).catch(a=>{o===this._generation&&(this.loading$.next(!1),console.log("BOOKING MAP CARD | GET CAMPSITE BY ID",a))})}_loadImageSize(i){return new Promise((o,a)=>{let r=new Image;r.onload=()=>
1o({width:r.naturalWidth,height:r.naturalHeight}),r.onerror=()=>a(new Error("Failed to load map overlay image")),r.src=i})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(Ar),O(ut),O(ve),O(Gt))},n.\u0275cmp=L({type:n,selectors:[["app-booking-map-card"]],inputs:{selectedCampsite:"selectedCampsite"},features:[Nt],decls:10,vars:8,consts:[[1,"booking-map-overlay-card"],[1,"preview-frame"],[1,"uploader-frame",3,"campsiteId","multiple","loading","uploadDestination"],["alt","Booking map overlay image",1,"preview",3,"src"],[1,"actions"],["mat-flat-button","","color","primary",3,"routerLink","disabled"],[1,"fas","fa-pen"],["mat-flat-button","","type","button","color","warn",3,"click","disabled"],[1,"fas","fa-trash"],[1,"uploader-frame",3,"downloadUrls","campsiteId","multiple","loading","uploadDestination"]],template:function(o,a){o&1&&(l(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),d(3,"Booking map overlay"),s()(),l(4,"mat-card-content"),x(5,lb,3,3),S(6,"async"),s(),x(7,cb,1,0,"app-loading"),S(8,"async"),S(9,"async"),s()),o&2&&(m(5),v(P(6,2,a.loading$)===!1?5:-1),m(2),v(P(8,4,a.loading$)||P(9,6,a.busy$)?7:-1))},dependencies:[xd,J,ot,st,Z,Ye,bm,ae,pt],styles:["[_nghost-%COMP%]{display:block;position:relative}.booking-map-overlay-card[_ngcontent-%COMP%]   mat-card-content[_ngcontent-%COMP%]{padding-top:0}.preview-frame[_ngcontent-%COMP%]{position:relative;display:inline-block;max-width:80%;vertical-align:top}.preview[_ngcontent-%COMP%]{display:block;max-width:100%;max-height:256px;border-radius:8px}.actions[_ngcontent-%COMP%]{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.5rem}.actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{box-shadow:0 1px 4px #00000040}.uploader-frame[_ngcontent-%COMP%]{display:block;width:427px;max-width:100%}.uploader-frame[_ngcontent-%COMP%]     .dropzone{aspect-ratio:4 / 3;box-sizing:border-box}"]});let t=n;return t})();function mb(t,n){if(t&1){let e=$();l(0,"div",8),d(1),l(2,"button",9),w("click",function(){F(e);let o=h(2);return B(o.dismissError())}),d(3,"Dismiss"),s()()}if(t&2){let e=h(2);m(),A(" ",e.errorMessage," ")}}function pb(t,n){if(t&1&&(l(0,"form",4)(1,"mat-form-field",5)(2,"mat-label"),d(3,"Name"),s(),M(4,"input",6),s(),l(5,"mat-form-field",5)(6,"mat-label"),d(7,"Email"),s(),M(8,"input",7),s()(),x(9,mb,4,1,"div",8)),t&2){let e=h();C("formGroup",e.form),m(9),v(e.errorMessage?9:-1)}}function ub(t,n){if(t&1&&(l(0,"p"),d(1," Created "),l(2,"b"),d(3),s(),d(4),s()),t&2){let e=h(2);m(3),_(e.result.name),m(),rt(" (",e.result.email,") as director of ",e.result.grantedCampsite,". ")}}function fb(t,n){if(t&1&&(l(0,"p"),d(1," Moved "),l(2,"b"),d(3),s(),d(4," from "),l(5,"b"),d(6),s(),d(7),s()),t&2){let e=h(3);m(3),_(e.result.email),m(3),_(e.result.movedFrom),m(),rt(" to ",e.result.grantedCampsite,". They no longer have access to ",e.result.movedFrom,". ")}}function hb(t,n){if(t&1&&(l(0,"p")(1,"b"),d(2),s(),d(3),s()),t&2){let e=h(3);m(2),_(e.result.email),m(),A(" already had an account and is now director of ",e.result.grantedCampsite,". ")}}function gb(t,n){if(t&1&&x(0,fb,8,4,"p")(1,hb,4,2,"p"),t&2){let e=h(2);v(e.result.movedFrom?0:1)}}function _b(t,n){if(t&1&&(l(0,"p"),d(1," This email already belongs to "),l(2,"b"),d(3),s(),d(4),s()),t&2){let e=h(2);m(3),_(e.result.name),m(),rt(" (",e.result.email,") \u2014 not the name you entered. Check you have the right person: that account now has access to ",e.result.grantedCampsite,". ")}}function Cb(t,n){if(t&1&&(l(0,"p"),d(1),s(),l(2,"mat-form-field",5),M(3,"input",10),l(4,"button",11),M(5,"i",12),s()(),l(6,"p"),d(7," Valid about an hour and shown only here \u2014 copy it now. If it expires, submit the same email again to get a new one. "),s()),t&2){let e=h(2);m(),A("Send this one-time sign-in link to ",e.result.email," so they can set a password."),m(2),C("value",e.result.passwordResetLink),m(),C("cdkCopyToClipboard",e.result.passwordResetLink)}}function bb(t,n){t&1&&(l(0,"p"),d(1," No sign-in link was issued because this account already has a working way to sign in \u2014 they use the method they already have. "),s())}function xb(t,n){if(t&1&&(l(0,"div",1),x(1,ub,5,3,"p")(2,gb,2,1),x(3,_b,5,3,"p"),x(4,Cb,8,3),x(5,bb,2,0,"p"),s()),t&2){let e=h();
1C("ngClass",e.resultAlertClass),m(),v(e.result.outcome===e.CampsiteDirectorGrantOutcome.CREATED?1:2),m(2),v(e.identityMismatch?3:-1),m(),v(e.result.passwordResetLink?4:-1),m(),v(e.result.passwordResetLink?-1:5)}}function vb(t,n){t&1&&M(0,"app-loading")}function yb(t,n){if(t&1){let e=$();l(0,"button",13),w("click",function(){F(e);let o=h();return B(o.cancel())}),d(1,"Cancel"),s(),l(2,"button",14),w("click",function(){F(e);let o=h();return B(o.submit())}),d(3,"Create"),s()}if(t&2){let e=h();C("disabled",e.loading),m(2),C("disabled",e.loading)}}function Sb(t,n){if(t&1){let e=$();l(0,"button",15),w("click",function(){F(e);let o=h();return B(o.done())}),d(1,"Done"),s()}}var ua=(()=>{let n=class n{constructor(i,o,a,r,c){this.formBuilder=i,this.campsiteDirectorService=o,this.uiMessaging=a,this.dialogRef=r,this.data=c,this.loading=!1,this.errorMessage=null,this.result=null,this.submitted=null,this.CampsiteDirectorGrantOutcome=Ir,this.form=this.formBuilder.group({name:["",hi.required],email:["",[hi.required,hi.email]]})}get resultAlertClass(){return this.result?this.result.outcome===Ir.CREATED?"alert alert-success":this.result.movedFrom?"alert alert-warning":"alert alert-info":""}get identityMismatch(){return!this.result||!this.submitted||this.result.outcome!==Ir.LINKED?!1:this._normalize(this.result.email)!==this._normalize(this.submitted.email)||this._normalize(this.result.name)!==this._normalize(this.submitted.name)}submit(){if(this.loading)return;if(this.form.invalid){this.form.markAllAsTouched();return}let i=this.data?.campsite?.id;if(!i)return;let{email:o,name:a}=this.form.value;this.submitted={campsiteId:i,email:o,name:a},this.loading=!0,this.errorMessage=null,this.result=null,this.dialogRef.disableClose=!0,this.campsiteDirectorService.createCampsiteDirector(i,{name:a.trim(),email:o.trim()}).pipe(Yt(1),It(()=>{this.loading=!1,this.dialogRef.disableClose=!!this.result?.passwordResetLink})).subscribe({next:r=>{this.result=r;let c=r.passwordResetLink?" A one-time sign-in link is shown below \u2014 copy it now.":"";r.movedFrom?this.uiMessaging.openSnackBarNegative(`${r.email} was moved from ${r.movedFrom} to ${r.grantedCampsite}.${c}`):r.passwordResetLink?this.uiMessaging.openSnackBarSuccess(`${r.name} was added as director of ${r.grantedCampsite}.${c}`):this.uiMessaging.openSnackBarSuccess(`${r.email} is now director of ${r.grantedCampsite}.`)},error:r=>{let c=this.campsiteDirectorService.errorMessageFor(r);this.errorMessage=c,this.uiMessaging.openSnackBarError(c),console.log("CAMPSITE DIRECTOR DIALOG | ADD CAMPSITE DIRECTOR",r)}})}dismissError(){this.errorMessage=null}done(){this.result=null,this.submitted=null,this.dialogRef.disableClose=!1,this.dialogRef.close()}cancel(){this.loading||this.dialogRef.close()}_normalize(i){return(i??"").trim().toLowerCase()}};n.\u0275fac=function(o){return new(o||n)(O(si),O(ho),O(ut),O(Xi),O(ro))},n.\u0275cmp=L({type:n,selectors:[["app-campsite-director-dialog"]],decls:9,vars:5,consts:[["mat-dialog-title",""],[3,"ngClass"],["align","end"],["type","button","mat-raised-button","","color","primary"],["autocomplete","off",3,"formGroup"],[1,"full-width"],["type","text","matInput","","formControlName","name"],["type","email","matInput","","formControlName","email"],[1,"alert","alert-danger"],["type","button","mat-button","",3,"click"],["matInput","","readonly","true","type","text",3,"value"],["mat-icon-button","","matSuffix","",1,"copy-button",3,"cdkCopyToClipboard"],[1,"far","fa-copy"],["type","button","mat-button","",3,"click","disabled"],["type","button","mat-raised-button","","color","primary",3,"click","disabled"],["type","button","mat-raised-button","","color","primary",3,"click"]],template:function(o,a){o&1&&(l(0,"h2",0),d(1,"Add campsite director"),s(),l(2,"mat-dialog-content"),x(3,pb,10,2),x(4,xb,6,5,"div",1),x(5,vb,1,0,"app-loading"),s(),l(6,"mat-dialog-actions",2),x(7,yb,4,2),x(8,Sb,2,0,"button",3),s()),o&2&&(m(3),v(a.result?-1:3),m(),v(a.result?4:-1),m(),v(a.loading?5:-1),m(2),v(a.result?-1:7),m(),v(a.result?8:-1))},dependencies:[so,Ji,dt,oi,jt,ct,ni,ne,ri,ai,ht,Ft,Jt,et,ii,ke,Pe,vr,ae,Zi],styles:["form[_ngcontent-%COMP%]{display:flex;flex-direction:column}.full-width[_ngcontent-%COMP%]{width:100%}button.copy-button[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 1.25rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}"]});let t=n;return t})();function wb(t,n){if(t&1&&(l(0,"p"),d(1," The directors list shows "),l(2,"b"),d(3),s(),d(4," for this row. The address above is the one on the Campio login itself, and that is the account this link changes \u2014 check it is the right person before you send it. "),s()),t&2){let e=h();m(3),_(e.rowEmailLabel)}}var fa=(()=>{let n=class n{constructor(i,o){this.dialogRef=i,this.data=o}get emailMismatch(){return this._normalize(this.data?.email)!==this._normalize(this.data?.rowEmail)}get rowEmailLabel(){return this.data?.rowEmail?.trim()||"no email"}done(){this.dialogRef.close()}_normalize(i){return(i??"").trim().toLowerCase()}};n.\u0275fac=function(o){return new(o||n)(O(Xi),O(ro))},n.\u0275cmp=L({type:n,selectors:[["app-campsite-director-reset-link-dialog"]],decls:23,vars:5,consts:[["mat-dialog-title",""],[1,"full-width"],["matInput","","readonly","true","type","text",3,"value"],["mat-icon-button","","matSuffix","","aria-label","Copy password reset link",1,"copy-button",3,"cdkCopyToClipboard"],[1,"far","fa-copy"],["align","end"],["type","button","mat-raised-button","","color","primary",3,"click"]],template:function(o,a){o&1&&(l(0,"h2",0),d(1,"Password reset link"),s(),l(2,"mat-dialog-content")(3,"p"),d(4," Reset link for "),l(5,"b"),d(6),s(),d(7,". "),s(),l(8,"p"),d(9," It resets the password on the Campio login "),l(10,"b"),d(11),s(),d(12,". "),s(),x(13,wb,5,1,"p"),l(14,"mat-form-field",1),M(15,"input",2),l(16,"button",3),M(17,"i",4),s()(),l(18,"p"),d(19,"Valid about an hour and shown only here \u2014 copy it now. If it expires, get a new one from the same row."),s()(),l(20,"mat-dialog-actions",5)(21,"button",6),w("click",function(){return a.done()}),d(22,"Done"),s()()),o&2&&(m(6),_(a.data.rowLabel),m(5),_(a.data.email),m(2),v(a.emailMismatch?13:-1),m(2),C("value",a.data.passwordResetLink),m(),C("cdkCopyToClipboard",a.data.passwordResetLink))},dependencies:[so,Ji,ht,Jt,ke,Pe,vr,Zi,et],styles:[".full-width[_ngcontent-%COMP%]{width:100%}button.copy-button[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 1.25rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}"],changeDetection:0});let t=n;return t})();function Tb(t,n){if(t&1){let e=$();l(0,"button",11),w("click",function(){F(e);let o=h().$implicit,a=h();return B(a.getPasswordResetLink.emit(a.rowActionFor(o)))}),M(1,"i",12),s(),l(2,"button",13),w("click",function(){F(e);let o=h().$implicit,a=h();return B(a.deleteDirector.emit(a.rowActionFor(o)))}),M(3,"i",14),s()}if(t&2){let e=h().$implicit,i=h();C("disabled",i.actionsBusy),Ge("aria-label","Get password reset link for "+i.displayName(e)),m(2),C("disabled",i.actionsBusy),Ge("aria-label","Delete "+i.displayName(e))}}function Db(t,n){if(t&1&&(l(0,"div",4)(1,"div",7)(2,"span",8),d(3),s(),l(4,"span",9),d(5),s()(),l(6,"div",10),x(7,Tb,4,4),s()()),t&2){let e=n.$implicit,i=h();m(2),Y("value-missing",!i.hasName(e)),m(),_(i.displayName(e)),m(),Y("value-missing",!i.hasEmail(e)),m(),_(i.displaySublabel(e)),m(2),v(i.hasActions(e)?7:-1)}}function Pb(t,n){t&1&&(l(0,"p",5),d(1,"No directors have access to this campsite."),s())}function kb(t,n){if(t&1&&(l(0,"div",6),d(1),s()),t&2){let e=h();m(),_(e.errorMessage)}}function Ob(t,n){t&1&&M(0,"app-loading")}var ha=(()=>{let n=class n{constructor(){this.directors=[],this.loading=!1,this.errorMessage=null,this.actionsBusy=!1,this.addDirector=new X,this.deleteDirector=new X,this.getPasswordResetLink=new X}get isEmpty(){return!this.loading&&!this.errorMessage&&(this.directors?.length??0)===0}hasName(i){return!!i?.name?.trim()}displayName(i){return this.hasName(i)?i.name.trim():"No name on file"}hasEmail(i){return!!i?.email?.trim()}displaySublabel(i){return this.hasEmail(i)?i.email.trim():i?.id?.trim()||"No email on file"}hasActions(i){return!!i?.id?.trim()}rowActionFor(i){return{director:i,displayName:this.displayName(i),displaySublabel:this.displaySublabel(i)}}trackDirector(i,o){return o?.id||`#${i}`}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-campsite-directors"]],inputs:{directors:"directors",loading:"loading",errorMessage:"errorMessage",actionsBusy:"actionsBusy"},outputs:{addDirector:"addDirector",deleteDirector:"deleteDirector",getPasswordResetLink:"getPasswordResetLink"},decls:12,vars:3,consts:[[1,"directors-card"],[1,"directors-header"],["type","button","mat-icon-button","","aria-label","Add campsite director",1,"header-action",3,"click"],[1,"far","fa-plus"],[1,"director-row"],[1,"n
1o-directors-message"],[1,"alert","alert-danger"],[1,"row-labels"],[1,"row-label"],[1,"row-sublabel"],[1,"row-actions"],["type","button","mat-icon-button","","matTooltip","Get password reset link",1,"row-action",3,"click","disabled"],[1,"far","fa-key"],["type","button","mat-icon-button","","color","warn","matTooltip","Delete",1,"row-action","row-action-delete",3,"click","disabled"],[1,"far","fa-trash-can"]],template:function(o,a){o&1&&(l(0,"mat-card",0)(1,"mat-card-header",1)(2,"mat-card-title"),d(3,"Campsite directors"),s(),l(4,"button",2),w("click",function(){return a.addDirector.emit()}),M(5,"i",3),s()(),l(6,"mat-card-content"),z(7,Db,8,7,"div",4,a.trackDirector,!0),x(9,Pb,2,0,"p",5),x(10,kb,2,1,"div",6),s(),x(11,Ob,1,0,"app-loading"),s()),o&2&&(m(7),H(a.directors),m(2),v(a.isEmpty?9:-1),m(),v(a.errorMessage?10:-1),m(),v(a.loading?11:-1))},dependencies:[J,ot,st,ke,Z,Ae,ae],styles:[".directors-card[_ngcontent-%COMP%]   mat-card-content[_ngcontent-%COMP%]{padding-top:0}.directors-header[_ngcontent-%COMP%]{align-items:center}.directors-header[_ngcontent-%COMP%]     .mat-mdc-card-header-text{flex:1 1 auto;min-width:0}.directors-header[_ngcontent-%COMP%]   .header-action[_ngcontent-%COMP%]{flex:0 0 auto;margin-left:auto}.director-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;align-items:center;column-gap:1rem;min-height:3.25rem;padding:.375rem 0;border-top:1px solid rgba(0,0,0,.08)}.row-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.row-labels[_ngcontent-%COMP%]{display:grid;gap:.125rem;min-width:0}.row-label[_ngcontent-%COMP%]{font-weight:500}.row-sublabel[_ngcontent-%COMP%]{font-size:.8125rem;color:#0000008a}.value-missing[_ngcontent-%COMP%]{font-style:italic;color:#0000008a}.no-directors-message[_ngcontent-%COMP%]{margin:0;padding:.75rem 0;color:#0000008a}button.row-action[_ngcontent-%COMP%], button.header-action[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 1.25rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}"],changeDetection:0});let t=n;return t})();function Rb(t,n){if(t&1&&(l(0,"span",5),d(1),s()),t&2){let e=h(2);m(),_(e.externalSourceName)}}function Ab(t,n){if(t&1){let e=$();l(0,"mat-card",0)(1,"mat-card-content",1)(2,"div",2)(3,"h2",3),d(4),s(),l(5,"code",4),d(6),s(),x(7,Rb,2,1,"span",5),s(),l(8,"button",6),w("click",function(){F(e);let o=h();return B(o.dashboardClick.emit())}),d(9," Dashboard "),M(10,"i",7),s()()()}if(t&2){let e=h();m(4),_(e.campsite.name),m(2),_(e.campsite.id),m(),v(e.externalSourceName?7:-1)}}var ga=(()=>{let n=class n{constructor(){this.externalSourceName=null,this.dashboardClick=new X}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-campsite-header"]],inputs:{campsite:"campsite",externalSourceName:"externalSourceName"},outputs:{dashboardClick:"dashboardClick"},decls:1,vars:1,consts:[[1,"campsite-header-card"],[1,"campsite-header"],[1,"campsite-identity"],[1,"campsite-name"],[1,"campsite-id"],[1,"campsite-external-source"],["type","button","mat-flat-button","","color","primary",3,"click"],["matButtonIcon","","iconPositionEnd","",1,"far","fa-arrow-right"]],template:function(o,a){o&1&&x(0,Ab,11,3,"mat-card",0),o&2&&v(a.campsite?0:-1)},dependencies:[J,Z,et],styles:[".campsite-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.campsite-identity[_ngcontent-%COMP%]{display:grid;gap:.125rem;min-width:0}
1.campsite-name[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;line-height:1.3}.campsite-id[_ngcontent-%COMP%]{font-family:monospace;font-size:.8125rem;color:#0000008a;word-break:break-all}.campsite-external-source[_ngcontent-%COMP%]{font-size:.8125rem;color:#0000008a;word-break:break-all}.campsite-header[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]   i[_ngcontent-%COMP%], .campsite-header[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]   svg.svg-inline--fa[_ngcontent-%COMP%]{margin-left:.5rem;margin-right:-.25rem;font-size:1.125rem;width:1.125rem;height:1.125rem;line-height:1}"],changeDetection:0});let t=n;return t})();function Bb(t,n){if(t&1&&(l(0,"dl",0)(1,"dt"),d(2,"Campsite id"),s(),l(3,"dd"),d(4),s(),l(5,"dt"),d(6,"Stripe location id"),s(),l(7,"dd"),d(8),s(),l(9,"dt"),d(10,"Token"),s(),l(11,"dd")(12,"code"),d(13),s()(),l(14,"dt"),d(15,"Created at"),s(),l(16,"dd"),d(17),S(18,"adminDate"),s(),l(19,"dt"),d(20,"Updated at"),s(),l(21,"dd"),d(22),S(23,"adminDate"),s()()),t&2){let e=h();m(4),_(e.campsiteToken.campsiteId),m(4),_(e.campsiteToken.stripeLocationId||"\u2014"),m(5),_(e.campsiteToken.token),m(4),_(mt(18,5,e.campsiteToken.createdAt,!0)),m(5),_(mt(23,8,e.campsiteToken.updatedAt,!0))}}function Lb(t,n){t&1&&(l(0,"p",2),d(1,"No token exists for this campsite yet."),s(),l(2,"p"),d(3,"Click below to create Stripe location and terminal app token"),s())}function Nb(t,n){if(t&1){let e=$();l(0,"button",3),w("click",function(){F(e);let o=h();return B(o.provision())}),d(1,"Run setup"),s()}if(t&2){let e=h();C("disabled",e.loading)}}var _a=(()=>{let n=class n{constructor(){this.loading=!1,this.provisionTokenEmitter=new X}get isProvisioned(){return!!this.campsiteToken?.stripeLocationId}provision(){this.provisionTokenEmitter.emit()}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-dropin-terminal-token-form"]],inputs:{campsiteId:"campsiteId",campsiteToken:"campsiteToken",loading:"loading"},outputs:{provisionTokenEmitter:"provisionTokenEmitter"},decls:8,vars:2,consts:[[1,"token-info"],["type","button","mat-flat-button","","color","primary",3,"disabled"],[1,"empty"],["type","button","mat-flat-button","","color","primary",3,"click","disabled"]],template:function(o,a){o&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3,"Drop-in terminal token"),s()(),l(4,"mat-card-content"),x(5,Bb,24,11,"dl",0)(6,Lb,4,0),x(7,Nb,2,1,"button",1),s()()),o&2&&(m(5),v(a.campsiteToken?5:6),m(2),v(a.isProvisioned?-1:7))},dependencies:[J,ot,st,Z,et,ft],styles:[".token-info[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;column-gap:1rem;row-gap:.25rem;margin:0 0 1rem}.token-info[_ngcontent-%COMP%]   dt[_ngcontent-%COMP%]{font-weight:600}.token-info[_ngcontent-%COMP%]   dd[_ngcontent-%COMP%]{margin:0;word-break:break-all}.token-info[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-family:monospace}.empty[_ngcontent-%COMP%]{margin:0 0 1rem;color:#0009;font-style:italic}.form-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.form-wrapper[_ngcontent-%COMP%]   mat-form-field[_ngcontent-%COMP%]{width:100%;max-width:28rem}@media screen and (max-width:600px){.form-wrapper[_ngcontent-%COMP%]   mat-form-field[_ngcontent-%COMP%]{width:100%}button[_ngcontent-%COMP%]{width:100%}}"],changeDetection:0});let t=n;return t})();function $b(t,n){if(t&1&&(l(0,"span",6),d(1),s()),t&2){let e=h().$implicit;m(),_(e.sublabel)}}function zb(t,n){t&1&&(l(0,"span",10),d(1,"Read-only"),s())}function Hb(t,n){if(t&1&&(l(0,"span",9),d(1),s(),x(2,zb,2,0,"span",10)),t&2){let e=h().$implicit,i=h(2);m(),_(i.displayValue(e)),m(),v(e.readonlyChip?2:-1)}}function jb(t,n){if(t&1){let e=$();l(0,"mat-slide-toggle",11),w("change",function(o){F(e);let a=h(2).$implicit,r=h(2);return B(r.stageToggle(a,o.checked))}),s(),l(1,"span",9),d(2),s()}if(t&2){let e=h(2).$implicit,i=h(2);C("checked",!!i.stagedValue(e))("disabled",i.isSaving(e)),m(2),_(i.displayValue(e))}}function Ub(t,n){if(t&1&&(l(0,"span",9),d(1),s()),t&2){let e=h(3).$implicit,i=h(2);m(),_(i.displayValue(e))}}function Wb(t,n){if(t&1){let e=$();l(0,"mat-form-field",13)(1,"input",16),w("input",function(o){F(e);let a=h(4).$implicit,r=h(2);return B(r.stagePercent(a,o.target.value))}),s(),l(2,"span",17),d(3,"%"),s()()}if(t&2){let e=h(4).$implicit,i=h(2);m(),C("min",e.min)("max",e.max)("value",i.percentInputValue(e))("disabled",i.isSaving(e))}}function Gb(t,n){if(t&1&&(l(0,"mat-option",19),d(1),s()),t&2){let e=n.$implicit;C("value",e.value)("disabled",e.disabled),m(),A(" ",e.label," ")}}function qb(t,n){if(t&1){let e=$();l(0,"mat-form-field",14)(1,"mat-select",18),w("selectionChange",function(o){F(e);let a=h(4).$implicit,r=h(2);return B(r.stageSelect(a,o.value))}),z(2,Gb,2,3,"mat-option",19,U),s()()}if(t&2){let e=h(4).$implicit,i=h(2);m(),C("value",i.stagedValue(e))("disabled",i.isSaving(e)),m(),H(e.options)}}function Yb(t,n){if(t&1){let e=$();l(0,"mat-form-field",15)(1,"input",20),w("input",function(o){F(e);let a=h(4).$implicit,r=h(2);return B(r.stageText(a,o.target.value))}),s()()}if(t&2){let e=h(4).$implicit,i=h(2);m(),C("type",e.inputType??"text")("value",i.stagedValue(e))("disabled",i.isSaving(e))}}function Qb(t,n){if(t&1&&x(0,Wb,4,4,"mat-form-field",13)(1,qb,4,2,"mat-form-field",14)(2,Yb,2,3,"mat-form-field",15),t&2){let e,i=h(3).$implicit;v((e=i.kind)==="percent"?0:e==="select"?1:e==="text"?2:-1)}}function Kb(t,n){if(t&1){let e=$();l(0,"button",21),w("click",function(){F(e);let o=h(3).$implicit,a=h().$implicit,r=h();return B(r.triggerDestructiveAction(a,o))}),d(1),s()}if(t&2){let e=h(3).$implicit,i=h(2);
1C("disabled",i.savingRowId!==null),m(),A(" ",e.destructiveActionLabel," ")}}function Xb(t,n){if(t&1&&(x(0,Ub,2,1,"span",9),x(1,Qb,3,1),x(2,Kb,2,2,"button",12)),t&2){let e=h(2).$implicit,i=h(2);v(i.isEditing(e)?-1:0),m(),v(i.isEditing(e)?1:-1),m(),v(i.isEditing(e)&&e.destructiveActionLabel?2:-1)}}function Jb(t,n){if(t&1&&(x(0,jb,3,3),x(1,Xb,3,3)),t&2){let e=h().$implicit;v(e.kind==="toggle"?0:-1),m(),v(e.kind!=="toggle"?1:-1)}}function Zb(t,n){if(t&1){let e=$();l(0,"button",24),w("click",function(){F(e);let o=h(2).$implicit,a=h(2);return B(a.startEditing(o))}),M(1,"i",25),s()}if(t&2){let e=h(4);C("disabled",e.savingRowId!==null)}}function tx(t,n){if(t&1){let e=$();l(0,"button",26),w("click",function(){F(e);let o=h(2).$implicit,a=h(2);return B(a.stopEditing(o))}),M(1,"i",27),s()}}function ex(t,n){if(t&1){let e=$();l(0,"button",28),w("click",function(){F(e);let o=h(2).$implicit,a=h().$implicit,r=h();return B(r.save(a,o))}),d(1," Save "),s(),l(2,"button",29),w("click",function(){F(e);let o=h(2).$implicit,a=h(2);return B(a.revert(o))}),d(3," Undo "),s()}if(t&2){let e=h(2).$implicit,i=h(2);C("disabled",i.savingRowId!==null||i.isInvalid(e)),m(2),C("disabled",i.savingRowId!==null)}}function ix(t,n){if(t&1&&(x(0,Zb,2,1,"button",22),x(1,tx,2,0,"button",23),x(2,ex,4,2)),t&2){let e=h().$implicit,i=h(2);v(e.kind!=="toggle"&&!i.isEditing(e)&&!i.isDirty(e)?0:-1),m(),v(i.isEditing(e)&&!i.isDirty(e)?1:-1),m(),v(i.isDirty(e)?2:-1)}}function nx(t,n){if(t&1&&(l(0,"div",3)(1,"div",4)(2,"span",5),d(3),s(),x(4,$b,2,1,"span",6),s(),l(5,"div",7),x(6,Hb,3,2)(7,Jb,2,2),s(),l(8,"div",8),x(9,ix,3,3),s()()),t&2){let e=n.$implicit,i=h(2);Y("saving",i.isSaving(e)),m(3),_(e.label),m(),v(e.sublabel?4:-1),m(2),v(i.isEditable(e)?7:6),m(3),v(i.isEditable(e)?9:-1)}}function ox(t,n){if(t&1&&(l(0,"div",1),d(1),s(),z(2,nx,10,6,"div",2,ed().trackRow,!0)),t&2){let e=n.$implicit;m(),_(e.header),m(),H(e.rows)}}var Ca=(()=>{let n=class n{constructor(i){this.cdr=i,this.title="Settings",this.groups=[],this.saveRow=new X,this.destructiveAction=new X,this.rowState=new Map,this.savingRowId=null}ngOnChanges(i){if(!i.groups)return;let o=new Map;for(let a of this.groups??[])for(let r of a.rows)o.set(r.id,r.value);for(let[a,r]of Array.from(this.rowState.entries()))o.has(a)?!r.editing&&r.staged===o.get(a)&&this.rowState.delete(a):this.rowState.delete(a)}stagedValue(i){return this.rowState.get(i.id)?.staged??i.value}isEditing(i){return this.rowState.get(i.id)?.editing??!1}isDirty(i){return this.stagedValue(i)!==i.value}isSaving(i){return this.savingRowId===i.id}isInvalid(i){if(i.kind!=="percent")return!1;let o=this.stagedValue(i);return!!(typeof o!="number"||Number.isNaN(o)||i.min!==void 0&&o<i.min||i.max!==void 0&&o>i.max)}percentInputValue(i){let o=this.stagedValue(i);return typeof o=="number"&&Number.isNaN(o)?"":o}isEditable(i){return i.kind!=="readonly"&&!i.readonlyChip}displayValue(i){let o=this.stagedValue(i);switch(i.kind){case"toggle":return o?"On":"Off";case"percent":return`${o}%`;case"select":return i.options?.find(r=>r.value===o)?.label??String(o??"\u2014");default:return o==null||o===""?"\u2014":String(o)}}startEditing(i){if(this.savingRowId!==null)return;let o=this.rowState.get(i.id);this.rowState.set(i.id,{staged:o?.staged??i.value,editing:!0})}stopEditing(i){this.rowState.delete(i.id)}revert(i){this.rowState.delete(i.id)}stagePercent(i,o){this.setStaged(i,o.trim()===""?Number.NaN:Number(o))}stageText(i,o){this.setStaged(i,String(o))}stageSelect(i,o){this.setStaged(i,String(o))}stageToggle(i,o){this.setStaged(i,!!o,!1)}save(i,o){this.savingRowId!==null||!this.isDirty(o)||this.isInvalid(o)||(this.savingRowId=o.id,this.saveRow.emit({groupId:i.id,rowId:o.id,value:this.stagedValue(o)}))}triggerDestructiveAction(i,o){this.savingRowId!==null||!o.destructiveActionLabel||this.destructiveAction.emit({groupId:i.id,rowId:o.id})}onSaveSuccess(i){this.rowState.delete(i),this.savingRowId===i&&(this.savingRowId=null),this.cdr.markForCheck()}onSaveError(i){this.rowState.delete(i),this.savingRowId===i&&(this.savingRowId=null),this.cdr.markForCheck()}resetAll(){this.rowState.clear(),this.savingRowId=null,this.cdr.markForCheck()}trackGroup(i,o){return o.id}trackRow(i,o){return o.id}setStaged(i,o,a=!0){let r=this.rowState.get(i.id);this.rowState.set(i.id,{staged:o,editing:r?.editing??a})}};n.\u0275fac=function(o){return new(o||n)(O(Yn))},n.\u0275cmp=L({type:n,selectors:[["app-admin-settings-table"]],inputs:{title:"title",groups:"groups"},outputs:{saveRow:"saveRow",destructiveAction:"destructiveAction"},features:[Nt],decls:7,vars:1,consts:[[1,"settings-card"],[1,"group-header"],[1,"settings-row",3,"saving"],[1,"settings-row"],[1,"row-labels"],[1,"row-label"],[1,"row-sublabel"],[1,"row-value"],[1,"row-actions"],[1,"value-text"],[1,"readonly-chip"],[3,"change","checked","disabled"],["type","button","mat-button","","color","warn",1,"destructive-action",3,"disabled"],["appearance","outline","subscriptSizing","dynamic",1,"value-field","value-field-percent"],["appearance","outline","subscriptSizing","dynamic",1,"value-field","value-field-select"],["appearance","outline","subscriptSizing","dynamic",1,"value-field","value-field-text"],["matInput","","type","number","autocomplete","off","spellcheck","fal
1se",3,"input","min","max","value","disabled"],["matTextSuffix",""],[3,"selectionChange","value","disabled"],[3,"value","disabled"],["matInput","","autocomplete","off","spellcheck","false",3,"input","type","value","disabled"],["type","button","mat-button","","color","warn",1,"destructive-action",3,"click","disabled"],["type","button","mat-icon-button","","aria-label","Edit",1,"row-action",3,"disabled"],["type","button","mat-icon-button","","aria-label","Close",1,"row-action"],["type","button","mat-icon-button","","aria-label","Edit",1,"row-action",3,"click","disabled"],[1,"far","fa-pen"],["type","button","mat-icon-button","","aria-label","Close",1,"row-action",3,"click"],[1,"far","fa-xmark"],["type","button","mat-flat-button","","color","primary",1,"save-button",3,"click","disabled"],["type","button","mat-button","",1,"revert-button",3,"click","disabled"]],template:function(o,a){o&1&&(l(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),d(3),s()(),l(4,"mat-card-content"),z(5,ox,4,1,null,null,a.trackGroup,!0),s()()),o&2&&(m(3),_(a.title),m(2),H(a.groups))},dependencies:[J,ot,st,Z,jd,ht,Jt,Pe,Vt,Rt,et,ke],styles:[".settings-card[_ngcontent-%COMP%]   mat-card-content[_ngcontent-%COMP%]{padding-top:0}.group-header[_ngcontent-%COMP%]{padding:1rem 0 .5rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#19988b}.settings-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 9.5rem;align-items:center;column-gap:1rem;min-height:3.25rem;padding:.375rem 0;border-top:1px solid rgba(0,0,0,.08)}.settings-row.saving[_ngcontent-%COMP%]{opacity:.6;pointer-events:none}.row-labels[_ngcontent-%COMP%]{display:grid;gap:.125rem;min-width:0}.row-label[_ngcontent-%COMP%]{font-weight:500}.row-sublabel[_ngcontent-%COMP%]{font-size:.8125rem;color:#0000008a}.row-value[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;min-width:0}.row-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}button.row-action[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 1.25rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}.value-text[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums}.readonly-chip[_ngcontent-%COMP%]{padding:.125rem .625rem;border-radius:1rem;background-color:#00000014;font-size:.75rem;font-weight:500;color:#0009}.value-field[_ngcontent-%COMP%]{margin-bottom:0}.destructive-action[_ngcontent-%COMP%]{margin-bottom:0;white-space:nowrap}.value-field-percent[_ngcontent-%COMP%]{width:7rem}.value-field-text[_ngcontent-%COMP%]{width:12rem}.value-field-select[_ngcontent-%COMP%]{width:14rem}.settings-row[_ngcontent-%COMP%]     .value-field .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px;min-height:40px}@media screen and (max-width:768px){.settings-row[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr) 9.5rem;row-gap:.25rem}.row-labels[_ngcontent-%COMP%]{grid-column:1 / -1}.row-value[_ngcontent-%COMP%]{flex-wrap:wrap}.value-field-percent[_ngcontent-%COMP%], .value-field-text[_ngcontent-%COMP%], .value-field-select[_ngcontent-%COMP%]{width:100%;min-width:0}}"],changeDetection:0});let t=n;return t})();var jr=class{tracker;columnIndex=0;rowIndex=0;get rowCount(){return this.rowIndex+1}get rowspan(){let n=Math.max(...this.tracker);return n>1?this.rowCount+n-1:this.rowCount}positions;update(n,e){this.columnIndex=0,this.rowIndex=0,this.tracker=new Array(n),this.tracker.fill(0,0,this.tracker.length),this.positions=e.map(i=>this._trackTile(i))}_trackTile(n){let e=this._findMatchingGap(n.colspan);return this._markTilePosition(e,n),this.columnIndex=e+n.colspan,new Ml(this.rowIndex,e)}_findMatchingGap(n){n>this.tracker.length;let e=-1,i=-1;do{if(this.columnIndex+n>this.tracker.length){this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e);continue}if(e=this.tracker.indexOf(0,this.columnIndex),e==-1){this._nextRow(),e=this.tracker.indexOf(0,this.columnIndex),i=this._findGapEndIndex(e);continue}i=this._findGapEndIndex(e),this.columnIndex=e+1}while(i-e<n||i==0);return Math.max(e,0)}_nextRow(){this.columnIndex=0,this.rowIndex++;for(let n=0;n<this.tracker.length;n++)this.tracker[n]=Math.max(0,this.tracker[n]-1)}_findGapEndIndex(n){for(let e=n+1;e<this.tracker.length;e++)if(this.tracker[e]!=0)return e;return this.tracker.length}_markTilePosition(n,e){for(let i=0;i<e.colspan;i++)this.tracker[n+i]=e.rowspan}},Ml=class{row;col;constructor(n,e){this.row=n,this.col=e}};var op=["*"];var rx=`.mat-grid-list {
2  display: block;
3  position: relative;
4}
5
6.mat-grid-tile {
7  display: block;
8  position: absolute;
9  overflow: hidden;
10}
11.mat-grid-tile .mat-grid-tile-header,
12.mat-grid-tile .mat-grid-tile-footer {
13  display: flex;
14  align-items: center;
15  height: 48px;
16  color: #fff;
17  background: rgba(0, 0, 0, 0.38);
18  overflow: hidden;
19  padding: 0 16px;
20  position: absolute;
21  left: 0;
22  right: 0;
23}
24.mat-grid-tile .mat-grid-tile-header > *,
25.mat-grid-tile .mat-grid-tile-footer > * {
26  margin: 0;
27  padding: 0;
28  font-weight: normal;
29  font-size: inherit;
30}
31.mat-grid-tile .mat-grid-tile-header.mat-2-line,
32.mat-grid-tile .mat-grid-tile-footer.mat-2-line {
33  height: 68px;
34}
35.mat-grid-tile .mat-grid-list-text {
36  display: flex;
37  flex-direction: column;
38  flex: auto;
39  box-sizing: border-box;
40  overflow: hidden;
41}
42.mat-grid-tile .mat-grid-list-text > * {
43  margin: 0;
44  padding: 0;
45  font-weight: normal;
46  font-size: inherit;
47}
48.mat-grid-tile .mat-grid-list-text:empty {
49  display: none;
50}
51.mat-grid-tile .mat-grid-tile-header {
52  top: 0;
53}
54.mat-grid-tile .mat-grid-tile-footer {
55  bottom: 0;
56}
57.mat-grid-tile .mat-grid-avatar {
58  padding-right: 16px;
59}
60[dir=rtl] .mat-grid-tile .mat-grid-avatar {
61  padding-right: 0;
62  padding-left: 16px;
63}
64.mat-grid-tile .mat-grid-avatar:empty {
65  display: none;
66}
67
68.mat-grid-tile-header {
69  font-size: var(--mat-grid-list-tile-header-primary-text-size, var(--mat-sys-body-large));
70}
71.mat-grid-tile-header .mat-line {
72  white-space: nowrap;
73  overflow: hidden;
74  text-overflow: ellipsis;
75  display: block;
76  box-sizing: border-box;
77}
78.mat-grid-tile-header .mat-line:nth-child(n+2) {
79  font-size: var(--mat-grid-list-tile-header-secondary-text-size, var(--mat-sys-body-medium));
80}
81
82.mat-grid-tile-footer {
83  font-size: var(--mat-grid-list-tile-footer-primary-text-size, var(--mat-sys-body-large));
84}
85.mat-grid-tile-footer .mat-line {
86  white-space: nowrap;
87  overflow: hidden;
88  text-overflow: ellipsis;
89  display: block;
90  box-sizing: border-box;
91}
92.mat-grid-tile-footer .mat-line:nth-child(n+2) {
93  font-size: var(--mat-grid-list-tile-footer-secondary-text-size, var(--mat-sys-body-medium));
94}
95
96.mat-grid-tile-content {
97  top: 0;
98  left: 0;
99  right: 0;
100  bottom: 0;
101  position: absolute;
102  display: flex;
103  align-items: center;
104  justify-content: center;
105  height: 100%;
106  padding: 0;
107  margin: 0;
108}
109`,ap=new ar("MAT_GRID_LIST"),Dl=(()=>{class t{_element=ui(Vo);_gridList=ui(ap,{optional:!0});_rowspan=1;_colspan=1;constructor(){}get rowspan(){return this._rowspan}
109set rowspan(e){this._rowspan=Math.round(pr(e))}get colspan(){return this._colspan}set colspan(e){this._colspan=Math.round(pr(e))}_setStyle(e,i){this._element.nativeElement.style[e]=i}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=L({type:t,selectors:[["mat-grid-tile"]],hostAttrs:[1,"mat-grid-tile"],hostVars:2,hostBindings:function(i,o){i&2&&Ge("rowspan",o.rowspan)("colspan",o.colspan)},inputs:{rowspan:"rowspan",colspan:"colspan"},exportAs:["matGridTile"],ngContentSelectors:op,decls:2,vars:0,consts:[[1,"mat-grid-tile-content"]],template:function(i,o){i&1&&($o(),Me(0,"div",0),zo(1),we())},styles:[`.mat-grid-list {
110  display: block;
111  position: relative;
112}
113
114.mat-grid-tile {
115  display: block;
116  position: absolute;
117  overflow: hidden;
118}
119.mat-grid-tile .mat-grid-tile-header,
120.mat-grid-tile .mat-grid-tile-footer {
121  display: flex;
122  align-items: center;
123  height: 48px;
124  color: #fff;
125  background: rgba(0, 0, 0, 0.38);
126  overflow: hidden;
127  padding: 0 16px;
128  position: absolute;
129  left: 0;
130  right: 0;
131}
132.mat-grid-tile .mat-grid-tile-header > *,
133.mat-grid-tile .mat-grid-tile-footer > * {
134  margin: 0;
135  padding: 0;
136  font-weight: normal;
137  font-size: inherit;
138}
139.mat-grid-tile .mat-grid-tile-header.mat-2-line,
140.mat-grid-tile .mat-grid-tile-footer.mat-2-line {
141  height: 68px;
142}
143.mat-grid-tile .mat-grid-list-text {
144  display: flex;
145  flex-direction: column;
146  flex: auto;
147  box-sizing: border-box;
148  overflow: hidden;
149}
150.mat-grid-tile .mat-grid-list-text > * {
151  margin: 0;
152  padding: 0;
153  font-weight: normal;
154  font-size: inherit;
155}
156.mat-grid-tile .mat-grid-list-text:empty {
157  display: none;
158}
159.mat-grid-tile .mat-grid-tile-header {
160  top: 0;
161}
162.mat-grid-tile .mat-grid-tile-footer {
163  bottom: 0;
164}
165.mat-grid-tile .mat-grid-avatar {
166  padding-right: 16px;
167}
168[dir=rtl] .mat-grid-tile .mat-grid-avatar {
169  padding-right: 0;
170  padding-left: 16px;
171}
172.mat-grid-tile .mat-grid-avatar:empty {
173  display: none;
174}
175
176.mat-grid-tile-header {
177  font-size: var(--mat-grid-list-tile-header-primary-text-size, var(--mat-sys-body-large));
178}
179.mat-grid-tile-header .mat-line {
180  white-space: nowrap;
181  overflow: hidden;
182  text-overflow: ellipsis;
183  display: block;
184  box-sizing: border-box;
185}
186.mat-grid-tile-header .mat-line:nth-child(n+2) {
187  font-size: var(--mat-grid-list-tile-header-secondary-text-size, var(--mat-sys-body-medium));
188}
189
190.mat-grid-tile-footer {
191  font-size: var(--mat-grid-list-tile-footer-primary-text-size, var(--mat-sys-body-large));
192}
193.mat-grid-tile-footer .mat-line {
194  white-space: nowrap;
195  overflow: hidden;
196  text-overflow: ellipsis;
197  display: block;
198  box-sizing: border-box;
199}
200.mat-grid-tile-footer .mat-line:nth-child(n+2) {
201  font-size: var(--mat-grid-list-tile-footer-secondary-text-size, var(--mat-sys-body-medium));
202}
203
204.mat-grid-tile-content {
205  top: 0;
206  left: 0;
207  right: 0;
208  bottom: 0;
209  position: absolute;
210  display: flex;
211  align-items: center;
212  justify-content: center;
213  height: 100%;
214  padding: 0;
215  margin: 0;
216}
217`],encapsulation:2,changeDetection:0})}return t})();var sx=/^-?\d+((\.\d+)?[A-Za-z%$]?)+$/,ba=class{_gutterSize;_rows=0;_rowspan=0;_cols;_direction;init(n,e,i,o){this._gutterSize=rp(n),this._rows=e.rowCount,this._rowspan=e.rowspan,this._cols=i,this._direction=o}getBaseTileSize(n,e){return`(${n}% - (${this._gutterSize} * ${e}))`}getTilePosition(n,e){return e===0?"0":Pn(`(${n} + ${this._gutterSize}) * ${e}`)}getTileSize(n,e){return`(${n} * ${e}) + (${e-1} * ${this._gutterSize})`}setStyle(n,e,i){let o=100/this._cols,a=(this._cols-1)/this._cols;this.setColStyles(n,i,o,a),this.setRowStyles(n,e,o,a)}setColStyles(n,e,i,o){let a=this.getBaseTileSize(i,o),r=this._direction==="rtl"?"right":"left";n._setStyle(r,this.getTilePosition(a,e)),n._setStyle("width",Pn(this.getTileSize(a,n.colspan)))}getGutterSpan(){return`${this._gutterSize} * (${this._rowspan} - 1)`}getTileSpan(n){return`${this._rowspan} * ${this.getTileSize(n,1)}`}getComputedHeight(){return null}},wl=class extends ba{fixedRowHeight;constructor(n){super(),this.fixedRowHeight=n}init(n,e,i,o){super.init(n,e,i,o),this.fixedRowHeight=rp(this.fixedRowHeight),sx.test(this.fixedRowHeight)}setRowStyles(n,e){n._setStyle("top",this.getTilePosition(this.fixedRowHeight,e)),n._setStyle("height",Pn(this.getTileSize(this.fixedRowHeight,n.rowspan)))}getComputedHeight(){return["height",Pn(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`)]}reset(n){n._setListStyle(["height",null]),n._tiles&&n._tiles.forEac
217h(e=>{e._setStyle("top",null),e._setStyle("height",null)})}},El=class extends ba{rowHeightRatio;baseTileHeight;constructor(n){super(),this._parseRatio(n)}setRowStyles(n,e,i,o){let a=i/this.rowHeightRatio;this.baseTileHeight=this.getBaseTileSize(a,o),n._setStyle("marginTop",this.getTilePosition(this.baseTileHeight,e)),n._setStyle("paddingTop",Pn(this.getTileSize(this.baseTileHeight,n.rowspan)))}getComputedHeight(){return["paddingBottom",Pn(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`)]}reset(n){n._setListStyle(["paddingBottom",null]),n._tiles.forEach(e=>{e._setStyle("marginTop",null),e._setStyle("paddingTop",null)})}_parseRatio(n){let e=n.split(":");e.length,this.rowHeightRatio=parseFloat(e[0])/parseFloat(e[1])}},Tl=class extends ba{setRowStyles(n,e){let i=100/this._rowspan,o=(this._rows-1)/this._rows,a=this.getBaseTileSize(i,o);n._setStyle("top",this.getTilePosition(a,e)),n._setStyle("height",Pn(this.getTileSize(a,n.rowspan)))}reset(n){n._tiles&&n._tiles.forEach(e=>{e._setStyle("top",null),e._setStyle("height",null)})}};function Pn(t){return`calc(${t})`}function rp(t){return t.match(/([A-Za-z%]+)$/)?t:`${t}px`}var lx="fit",sp=(()=>{class t{_element=ui(Vo);_dir=ui(gd,{optional:!0});_cols;_tileCoordinator;_rowHeight;_gutter="1px";_tileStyler;_tiles;constructor(){}get cols(){return this._cols}set cols(e){this._cols=Math.max(1,Math.round(pr(e)))}get gutterSize(){return this._gutter}set gutterSize(e){this._gutter=`${e??""}`}get rowHeight(){return this._rowHeight}set rowHeight(e){let i=`${e??""}`;i!==this._rowHeight&&(this._rowHeight=i,this._setTileStyler(this._rowHeight))}ngOnInit(){this._checkCols(),this._checkRowHeight()}ngAfterContentChecked(){this._layoutTiles()}_checkCols(){this.cols}_checkRowHeight(){this._rowHeight||this._setTileStyler("1:1")}_setTileStyler(e){this._tileStyler&&this._tileStyler.reset(this),e===lx?this._tileStyler=new Tl:e&&e.indexOf(":")>-1?this._tileStyler=new El(e):this._tileStyler=new wl(e)}_layoutTiles(){this._tileCoordinator||(this._tileCoordinator=new jr);let e=this._tileCoordinator,i=this._tiles.filter(a=>!a._gridList||a._gridList===this),o=this._dir?this._dir.value:"ltr";this._tileCoordinator.update(this.cols,i),this._tileStyler.init(this.gutterSize,e,this.cols,o),i.forEach((a,r)=>{let c=e.positions[r];this._tileStyler.setStyle(a,c.row,c.col)}),this._setListStyle(this._tileStyler.getComputedHeight())}_setListStyle(e){e&&(this._element.nativeElement.style[e[0]]=e[1])}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=L({type:t,selectors:[["mat-grid-list"]],contentQueries:function(i,o,a){if(i&1&&id(a,Dl,5),i&2){let r;Tt(r=Dt())&&(o._tiles=r)}},hostAttrs:[1,"mat-grid-list"],hostVars:1,hostBindings:function(i,o){i&2&&Ge("cols",o.cols)},inputs:{cols:"cols",gutterSize:"gutterSize",rowHeight:"rowHeight"},exportAs:["matGridList"],features:[od([{provide:ap,useExisting:t}])],ngContentSelectors:op,decls:2,vars:0,template:function(i,o){i&1&&($o(),Me(0,"div"),zo(1),we())},styles:[rx],encapsulation:2,changeDetection:0})}return t})(),lp=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=Gn({type:t});static \u0275inj=Un({imports:[cl,_d,cl]})}return t})();function cx(t,n){if(t&1&&(l(0,"mat-grid-tile"),M(1,"img",9),s()),t&2){let e=n.$implicit;m(),C("src",e,fi)}}function dx(t,n){if(t&1&&(l(0,"mat-list-item"),d(1),s()),t&2){let e=n.$implicit;m(),_(e)}}function mx(t,n){if(t&1&&(l(0,"mat-grid-tile"),M(1,"img",9),s()),t&2){let e=n.$implicit;m(),C("src",e,fi)}}var xa=(()=>{let n=class n{constructor(i,o){this.dialogRef=i,this.data=o}close(){this.dialogRef.close()}approve(){this.dialogRef.close({approve:!0})}decline(){this.dialogRef.close({decline:!0})}};n.\u0275fac=function(o){return new(o||n)(O(Xi),O(ro))},n.\u0275cmp=L({type:n,selectors:[["app-onboarding-submission-dialog"]],decls:154,vars:28,consts:[[2,"height","fit-content"],[1,"row"],[1,"column"],[1,"mb-4"],["cols","4","rowHeight","80px"],[2,"display","flex","justify-content","space-evenly","border-top","2px solid #ccc","padding","1rem"],["mat-button","","color","primary",3,"click"],["mat-button","",3,"click"],["mat-button","","color","warn",3,"click"],["mat-card-image","","alt","Campsite Image",3,"src"]],template:function(o,a){o&1&&(l(0,"mat-dialog-content",0)(1,"div",1)(2,"div",2)(3,"mat-card",3)(4,"mat-card-header")(5,"mat-card-title"),d(6,"Basic Information"),s()(),l(7,"mat-card-content")(8,"mat-list")(9,"mat-list-item")(10,"strong"),d(11,"ID:"),s(),d(12),s(),l(13,"mat-list-item")(14,"strong"),d(15,"Status:"),s(),d(16),s(),l(17,"mat-list-item")(18,"strong"),d(19,"Created at:"),s(),d(20),S(21,"adminDate"),s(),l(22,"mat-list-item")(23,"strong"),d(24,"Updated at:"),s(),d(25),S(26,"adminDate"),s()()()(),l(27,"mat-card",3)(28,"mat-card-header")(29,"mat-card-title"),d(30,"User Data"),s()(),l(31,"mat-card-content")(32,"mat-list")(33,"mat-list-item")(34,"strong"),d(35,"ID:"),s(),d(36),s(),l(37,"mat-list-item")(38,"strong"),d(39,"Name:"),s(),d(40),s(),l(41,"mat-list-item")(42,"strong"),d(43,"Email:"),s(),d(44),s(),l(45,"mat-list-item")(46,"strong"),d(47,"Phone number:"),s(),d(48),s()()()(),l(49,"mat-card",3)(50,"mat-card-header")(51,"mat-card-title"),d(52,"Duplicate Information"),s()(),l(53,"mat-card-content")(54,"p")(55,"strong"),d(56,"Duplicate of:"),s(),d(57),s()()()(),l(58,"div",2)(59,"mat-card",3)(60,"mat-card-header")(61,"mat-card-title"),d(62,"Campsite Information"),s()(),l(63,"mat-card-content")(64,"mat-list")(65,"mat-list-item")(66,"strong"),d(67,"Name:"),s(),d(68),s(),l(69,"mat-list-item")(70,"strong"),d(71,"Address:"),s(),d(72),s(),l(73,"mat-list-item")(74,"strong"),d(75,"Country:"),s(),d(76),s(),l(77,"mat-list-item")(78,"strong"),d(79,"Coordinates:"),s(),d(80),s(),l(81,"mat-list-item")(82,"strong"),d(83,"Email:"),s(),d(84),s(),l(85,"mat-list-item")(86,"strong"),d(87,"Phone:"),s(),d(88),s()(),M(89,"br")(90,"mat-divider")(91,"br"),l(92,"p")(93,"strong"),d(94,"Description:"),s()(),l(95,"p"),d(96),s(),M(97,"br"),l(98,"mat-grid-list",4),z(99,cx,2,1,"mat-grid-tile",null,U),s()()(),l(101,"mat-card",3)(102,"mat-card-header")(103,"mat-card-title"),d(104,"Accommodation"),s()(),l(105,"mat-card-content")(106,"mat-list")(107,"mat-list-item")(108,"strong"),d(109,"Name:"),s(),d(110),s(),l(111,"mat-list-item")(112,"strong"),d(113,"Camp type:"),s(),d(114),s(),l(115,"mat-list-item")(116,"strong"),d(117,"Allowed vehicle types:"),s()(),l(118,"mat-list"),z(119,dx,2,1,"mat-list-item",null,U),s()(),M(121,"br")(122,"mat-divider")(123,"br"),l(124,"p")(125,"strong"),d(126,"Description:"),s()(),l(127,"p"),d(128),s(),M(129,"br"),l(130,"mat-grid-list",4),z(131,mx,2,1,"mat-grid-tile",null,U),s()()(),l(133,"mat-card",3)(134,"mat-card-header")(135,"mat-card-title"),d(136,"Payout Info"),s()(),l(137,"mat-card-content")(138,"mat-list")(139,"mat-list-item")(140,"strong"),d(141,"Account number:"),s(),d(142),s(),l(143,"mat-list-item")(144,"strong"),d(145,"Organization number:"),s(),d(146),s()()()()()()(),l(147,"mat-dialog-actions",5)(148,"button",6),w("click",function(){return a.approve()}),d(149,"Approve"),s(),l(150,"button",7),w("click",function(){return a.close()}),d(151,"Close"),s(),l(152,"button",8),w("click",function(){return a.decline()}),d(153,"Decline"),s()()),o&2&&(m(12),A(" ",a.data==null?null:a.data.id),m(4),A(" ",a.data==null?null:a.data.status),m(4),A(" ",mt(21,22,a.data==null?null:a.data.createdAt,!0)),m(5),A(" ",mt(26,25,a.data==null?null:a.data.updatedAt,!0)),m(11),A(" ",a.data==null||a.data.userData==null?null:a.data.userData.id),m(4),A(" ",a.data==null||a.data.userData==null?null:a.data.userData.name),m(4),A(" ",a.data==null||a.data.userData==null?null:a.data.userData.email),m(4),A(" ",a.data==null||a.data.userData==null?null:a.data.userData.phoneNumber),m(9),A(" ",a.data==null?null:a.data.duplicateOf),m(11),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.name),m(4),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.address),m(4),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.country),m(4),rt(" ",a.data==null||a.data.campsite==null||a.data.campsite.coordinates==null?null:a.data.campsite.coordinates.lat,", ",a.data==null||a.data.campsite==null||a.data.campsite.coordinates==null?null:a.data.campsite.coordinates.long," "),m(4),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.email),m(4),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.phone),m(8),A(" ",a.data==null||a.data.campsite==null?null:a.data.campsite.description," "),m(3),H(a.data==null||a.data.campsite==null?null:a.data.campsite.images),m(11),A(" ",a.data==null||a.data.accommodation==null?null:a.data.accommodation.name),m(4),A(" ",a.data==null||a.data.accommodation==null?null:a.data.accommodation.campType),m(5),H(a.data==null||a.data.accommodation==null?null:a.data.accommodation.allowedVehicleTypes),m(9),A(" ",a.data==null||a.data.accommodation==null?null:a.data.accommodation.description," "),m(3),H(a.data==null||a.data.accommodation==null?null:a.data.accommodation.images),m(11),A(" ",a.data==null||a.data.payoutInfo==null?null:a.data.payoutInfo.accountNumber),m(4),A(" ",a.data==null||a.data.payoutInfo==null?null:a.data.payoutInfo.orgNumber))},dependencies:[Ji,J,ot,st,Z,wr,Er,Fd,sp,Dl,Ad,Zi,et,ft],styles:[".mat-mdc-list-item[_ngcontent-%COMP%]{height:auto!important;padding:.25rem 0rem}"]});let t=n;return t})();function ux(t,n){t&1&&(l(0,"th",16),d(1,"Created"),s())}function fx(t,n){if(t&1&&(l(0,"td",17),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),A(" ",mt(2,1,e.createdAt,!0)," ")}}
217function hx(t,n){t&1&&(l(0,"th",16),d(1,"Last updated"),s())}function gx(t,n){if(t&1&&(l(0,"td",17),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),A(" ",mt(2,1,e.updatedAt,!0)," ")}}function _x(t,n){t&1&&(l(0,"th",16),d(1,"Time spent"),s())}function Cx(t,n){if(t&1&&(l(0,"span")(1,"b"),d(2),S(3,"msToString"),s()()),t&2){let e=h().$implicit,i=h();m(2),A(" ",P(3,1,i.msSinceCreatedAt(e.createdAt))," ")}}function bx(t,n){if(t&1&&(l(0,"td",17),x(1,Cx,4,3,"span"),s()),t&2){let e=n.$implicit,i=h();m(),v(e.status===i.OnboardingStatus.INCOMPLETE?1:-1)}}function xx(t,n){t&1&&(l(0,"th",18),d(1,"Campsite"),s())}function vx(t,n){if(t&1&&(l(0,"td",17),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",(e.campsite==null?null:e.campsite.name)||"none"," ")}}function yx(t,n){t&1&&(l(0,"th",18),d(1,"User"),s())}function Sx(t,n){if(t&1&&(l(0,"span",19),d(1),s()),t&2){let e=h().$implicit;m(),rt(" ",e.userData.email," | ",e.userData.phoneNumber," ")}}function Mx(t,n){if(t&1&&(l(0,"td",17),d(1),x(2,Sx,2,2,"span",19),s()),t&2){let e=n.$implicit;m(),A(" ",(e.userData==null?null:e.userData.name)||e.createdBy," "),m(),v(e.userData?2:-1)}}function wx(t,n){t&1&&(l(0,"th",16),d(1,"Status"),s())}function Ex(t,n){if(t&1&&(l(0,"td",17)(1,"span")(2,"b"),d(3),s()()()),t&2){let e=n.$implicit,i=h();m(),Y("success",e.status===i.OnboardingStatus.APPROVED)("danger",e.status===i.OnboardingStatus.DECLINED)("info",e.status===i.OnboardingStatus.PENDING_REVIEW)("warn",e.status===i.OnboardingStatus.INCOMPLETE),m(2),A(" ",e.status," ")}}function Tx(t,n){t&1&&(l(0,"th",18),d(1,"Actions"),s())}function Dx(t,n){if(t&1){let e=$();l(0,"td",17)(1,"div",20)(2,"button",21),w("click",function(){let o=F(e).$implicit,a=h();return B(a.viewDetails(o))}),d(3,"Details"),s(),l(4,"button",22),w("click",function(){let o=F(e).$implicit,a=h();return B(a.approve(o))}),d(5," Approve "),s(),l(6,"button",23),w("click",function(){let o=F(e).$implicit,a=h();return B(a.decline(o))}),d(7," Decline "),s()()()}if(t&2){let e=n.$implicit,i=h();m(4),C("disabled",e.status===i.OnboardingStatus.APPROVED||e.status===i.OnboardingStatus.DECLINED),m(2),C("disabled",e.status===i.OnboardingStatus.DECLINED||e.status===i.OnboardingStatus.APPROVED)}}function Px(t,n){t&1&&M(0,"tr",24)}function kx(t,n){t&1&&M(0,"tr",25)}function Ox(t,n){t&1&&(l(0,"div",15),d(1,"There are no community campsites requests at the moment!"),s())}function Ix(t,n){t&1&&M(0,"app-loading")}var va=(()=>{let n=class n{constructor(i){this.dialog=i,this.approveSubmission=new X,this.declineSubmission=new X,this.paginationChanged=new X,this.OnboardingStatus=Td,this.dataSource=new Qt([]),this.displayedColumns=["createdAt","updatedAt","ongoingFor","campsiteName","createdBy","status","actions"],this.pageSizeOptions=[10]}ngOnChanges(i){i?.onboardingSubmissions?.currentValue&&(this.dataSource=new Qt(this.onboardingSubmissions))}ngAfterViewInit(){this._handleTableActionsChanges()}ngOnDestroy(){this._tablePaginatorSubscription?.unsubscribe(),this._tableSortSubscription?.unsubscribe()}msSinceCreatedAt(i){return yd(new Date,new Date(i))}approve(i){this.approveSubmission.emit(i.id)}decline(i){this.declineSubmission.emit(i.id)}viewDetails(i){this.dialog.open(xa,{data:i,width:"95vw",maxHeight:"95vh"}).afterClosed().pipe(Te()).subscribe(a=>{a?.approve&&this.approve(i),a?.decline&&this.decline(i)})}_handleTableActionsChanges(){this._tablePaginatorSubscription=this.paginator?.page?.subscribe(i=>this.paginationChanged.emit(Et(nt({},this.pagination||{}),{limit:i.pageSize,offset:i.pageIndex*i.pageSize}))),this._tableSortSubscription=this.sort?.sortChange?.subscribe(i=>{this.paginator.pageIndex=0,this.paginationChanged.emit(Et(nt({},this.pagination||{}),{offset:0,sortBy:i.active,sortDirection:i.direction}))})}};n.\u0275fac=function(o){return new(o||n)(O(ve))},n.\u0275cmp=L({type:n,selectors:[["app-onboarding-submissions-table"]],viewQuery:function(o,a){if(o&1&&Xt(ee,5)(Zt,5),o&2){let r;Tt(r=Dt())&&(a.paginator=r.first),Tt(r=Dt())&&(a.sort=r.first)}},inputs:{onboardingSubmissions:"onboardingSubmissions",loading:"loading",pagination:"pagination",totalCount:"totalCount"},outputs:{approveSubmission:"approveSubmission",declineSubmission:"declineSubmission",paginationChanged:"paginationChanged"},features:[Nt],decls:28,vars:11,consts:[[1,"table-responsive",3,"hidden"],["mat-table","","matSort","","matSortDisableClear","",3,"dataSource","matSortActive","matSortDirection"],["matColumnDef","createdAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","updatedAt"],["matColumnDef","ongoingFor"],["matColumnDef","campsiteName"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","createdBy"],["matColumnDef","status"],["matColumnDef","actions"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[3,"length","pageSizeOptions","pageSize"],[1,"alert","alert-info"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],[2,"font-size","12px","color","#999","display","block"],[1,"table-actions"],["mat-button","","mat-stroked-button","",3,"click"],["color","primary","mat-button","","mat-flat-button","",3,"click","disabled"],["color","warn","mat-button","","mat-flat-button","",3,"click","disabled"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,ux,2,0,"th",3)(4,fx,3,4,"td",4),R(),I(5,5),T(6,hx,2,0,"th",3)(7,gx,3,4,"td",4),R(),I(8,6),T(9,_x,2,0,"th",3)(10,bx,2,1,"td",4),R(),I(11,7),T(12,xx,2,0,"th",8)(13,vx,2,1,"td",4),R(),I(14,9),T(15,yx,2,0,"th",8)(16,Mx,3,2,"td",4),R(),I(17,10),T(18,wx,2,0,"th",3)(19,Ex,4,9,"td",4),R(),I(20,11),T(21,Tx,2,0,"th",8)(22,Dx,8,2,"td",4),R(),T(23,Px,1,0,"tr",12)(24,kx,1,0,"tr",13),s(),M(25,"mat-paginator",14),s(),x(26,Ox,2,0,"div",15),x(27,Ix,1,0,"app-loading")),o&2&&(C("hidden",!(a.onboardingSubmissions!=null&&a.onboardingSubmissions.length)),m(),C("dataSource",a.dataSource)("matSortActive",a.pagination.sortBy)("matSortDirection",a.pagination.sortDirection),m(22),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("length",a.totalCount||0)("pageSizeOptions",a.pageSizeOptions)("pageSize",(a.pagination==null?null:a.pagination.limit)||10),m(),v((a.onboardingSubmissions==null?null:a.onboardingSubmissions.length)===0?26:-1),m(),v(a.loading?27:-1))},dependencies:[gt,Zt,bt,Ct,xt,Oe,_t,vt,et,yt,Mt,St,wt,ee,ae,ft,Sm],styles:["button[_ngcontent-%COMP%]{margin-right:.5rem}"],changeDetection:0});let t=n;return t})();function Ma(t){return t+.5|0}var ln=(t,n,e)=>Math.max(Math.min(t,e),n);function ya(t){return ln(Ma(t*2.55),0,255)}function cn(t){return ln(Ma(t*255),0,255)}function Bi(t){return ln(Ma(t/2.55)/100,0,1)}function cp(t){return ln(Ma(t*100),0,100)}var ci={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},kl=[..."0123456789ABCDEF"],Ax=t=>kl[t&15],Fx=t=>kl[(t&240)>>4]+kl[t&15],Ur=t=>(t&240)>>4===(t&15),Bx=t=>Ur(t.r)&&Ur(t.g)&&Ur(t.b)&&Ur(t.a);function Lx(t){var n=t.length,e;return t[0]==="#"&&(n===4||n===5?e={r:255&ci[t[1]]*17,g:255&ci[t[2]]*17,b:255&ci[t[3]]*17,a:n===5?ci[t[4]]*17:255}:(n===7||n===9)&&(e={r:ci[t[1]]<<4|ci[t[2]],g:ci[t[3]]<<4|ci[t[4]],b:ci[t[5]]<<4|ci[t[6]],a:n===9?ci[t[7]]<<4|ci[t[8]]:255})),e}var Nx=(t,n)=>t<255?n(t):"";function Vx(t){var n=Bx(t)?Ax:Fx;return t?"#"+n(t.r)+n(t.g)+n(t.b)+Nx(t.a,n):void 0}var $x=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function up(t,n,e){let i=n*Math.min(e,1-e),o=(a,r=(a+t/30)%12)=>e-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function zx(t,n,e){let i=(o,a=(o+t/60)%6)=>e-e*n*Math.max(Math.min(a,4-a,1),0);return[i(5),i(3),i(1)]}function Hx(t,n,e){let i=up(t,1,.5),o;for(n+e>1&&(o=1/(n+e),n*=o,e*=o),o=0;o<3;o++)i[o]*=1-n-e,i[o]+=n;return i}function jx(t,n,e,i,o){return t===o?(n-e)/i+(n<e?6:0):n===o?(e-t)/i+2:(t-n)/i+4}function Ol(t){let e=t.r/255,i=t.g/255,o=t.b/255,a=Math.max(e,i,o),r=M
vendor: 11,579 bytes, line 217
217ath.min(e,i,o),c=(a+r)/2,p,u,f;return a!==r&&(f=a-r,u=c>.5?f/(2-a-r):f/(a+r),p=jx(e,i,o,f,a),p=p*60+.5),[p|0,u||0,c]}function Il(t,n,e,i){return(Array.isArray(n)?t(n[0],n[1],n[2]):t(n,e,i)).map(cn)}function Rl(t,n,e){return Il(up,t,n,e)}function Ux(t,n,e){return Il(Hx,t,n,e)}function Wx(t,n,e){return Il(zx,t,n,e)}function fp(t){return(t%360+360)%360}function Gx(t){let n=$x.exec(t),e=255,i;if(!n)return;n[5]!==i&&(e=n[6]?ya(+n[5]):cn(+n[5]));let o=fp(+n[2]),a=+n[3]/100,r=+n[4]/100;return n[1]==="hwb"?i=Ux(o,a,r):n[1]==="hsv"?i=Wx(o,a,r):i=Rl(o,a,r),{r:i[0],g:i[1],b:i[2],a:e}}function qx(t,n){var e=Ol(t);e[0]=fp(e[0]+n),e=Rl(e),t.r=e[0],t.g=e[1],t.b=e[2]}function Yx(t){if(!t)return;let n=Ol(t),e=n[0],i=cp(n[1]),o=cp(n[2]);return t.a<255?`hsla(${e}, ${i}%, ${o}%, ${Bi(t.a)})`:`hsl(${e}, ${i}%, ${o}%)`}var dp={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},mp={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Qx(){let t={},n=Object.keys(mp),e=Object.keys(dp),i,o,a,r,c;for(i=0;i<n.length;i++){for(r=c=n[i],o=0;o<e.length;o++)a=e[o],c=c.replace(a,dp[a]);a=parseInt(mp[r],16),t[c]=[a>>16&255,a>>8&255,a&255]}return t}var Wr;function Kx(t){Wr||(Wr=Qx(),Wr.transparent=[0,0,0,0]);let n=Wr[t.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:n.length===4?n[3]:255}}var Xx=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Jx(t){let n=Xx.exec(t),e=255,i,o,a;if(n){if(n[7]!==i){let r=+n[7];e=n[8]?ya(r):ln(r*255,0,255)}return i=+n[1],o=+n[3],a=+n[5],i=255&(n[2]?ya(i):ln(i,0,255)),o=255&(n[4]?ya(o):ln(o,0,255)),a=255&(n[6]?ya(a):ln(a,0,255)),{r:i,g:o,b:a,a:e}}}function Zx(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${Bi(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}var Pl=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,bo=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function tv(t,n,e){let i=bo(Bi(t.r)),o=bo(Bi(t.g)),a=bo(Bi(t.b));return{r:cn(Pl(i+e*(bo(Bi(n.r))-i))),g:cn(Pl(o+e*(bo(Bi(n.g))-o))),b:cn(Pl(a+e*(bo(Bi(n.b))-a))),a:t.a+e*(n.a-t.a)}}function Gr(t,n,e){if(t){let i=Ol(t);i[n]=Math.max(0,Math.min(i[n]+i[n]*e,n===0?360:1)),i=Rl(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function hp(t,n){return t&&Object.assign(n||{},t)}function pp(t){var n={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(n={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(n.a=cn(t[3]))):(n=hp(t,{r:0,g:0,b:0,a:1}),n.a=cn(n.a)),n}function ev(t){return t.charAt(0)==="r"?Jx(t):Gx(t)}var Sa=class t{constructor(n){if(n instanceof t)return n;let e=typeof n,i;e==="object"?i=pp(n):e==="string"&&(i=Lx(n)||Kx(n)||ev(n)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var n=hp(this._rgb);return n&&(n.a=Bi(n.a)),n}set rgb(n){this._rgb=pp(n)}rgbString(){return this._valid?Zx(this._rgb):void 0}hexString(){return this._valid?Vx(this._rgb):void 0}hslString(){return this._valid?Yx(this._rgb):void 0}mix(n,e){if(n){let i=this.rgb,o=n.rgb,a,r=e===a?.5:e,c=2*r-1,p=i.a-o.a,u=((c*p===-1?c:(c+p)/(1+c*p))+1)/2;a=1-u,i.r=255&u*i.r+a*o.r+.5,i.g=255&u*i.g+a*o.g+.5,i.b=255&u*i.b+a*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(n,e){return n&&(this._rgb=tv(this._rgb,n._rgb,e)),this}clone(){return new t(this.rgb)}alpha(n){return this._rgb.a=cn(n),this}clearer(n){let e=this._rgb;return e.a*=1-n,this}greyscale(){let n=this._rgb,e=Ma(n.r*.3+n.g*.59+n.b*.11);return n.r=n.g=n.b=e,this}opaquer(n){let e=this._rgb;return e.a*=1+n,this}negate(){let n=this._rgb;return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,this}lighten(n){return Gr(this._rgb,2,n),this}darken(n){return Gr(this._rgb,2,-n),this}saturate(n){return Gr(this._rgb,1,n),this}desaturate(n){return Gr(this._rgb,1,-n),this}rotate(n){return qx(this._rgb,n),this}};function wi(){}var Ep=(()=>{let t=0;return()=>t++})();function Ut(t){return t===null||typeof t>"u"}function re(t){if(Array.isArray&&Array.isArray(t))return!0;let n=Object.prototype.toString.call(t);return n.slice(0,7)==="[object"&&n.slice(-6)==="Array]"}function zt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function be(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Je(t,n){return be(t)?t:n}function At(t,n){return typeof t>"u"?n:t}var Tp=(t,n)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/n,Ll=(t,n)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*n:+t;function oe(t,n,e){if(t&&typeof t.call=="function")return t.apply(e,n)}function te(t,n,e,i){let o,a,r;if(re(t))if(a=t.length,i)for(o=a-1;o>=0;o--)n.call(e,t[o],o);else for(o=0;o<a;o++)n.call(e,t[o],o);else if(zt(t))for(r=Object.keys(t),a=r.length,o=0;o<a;o++)n.call(e,t[r[o]],r[o])}function Ta(t,n){let e,i,o,a;if(!t||!n||t.length!==n.length)return!1;for(e=0,i=t.length;e<i;++e)if(o=t[e],a=n[e],o.datasetIndex!==a.datasetIndex||o.index!==a.index)return!1;return!0}function Kr(t){if(re(t))return t.map(Kr);if(zt(t)){let n=Object.create(null),e=Object.keys(t),i=e.length,o=0;for(;o<i;++o)n[e[o]]=Kr(t[e[o]]);return n}return t}function Dp(t){return["__proto__","prototype","constructor"].indexOf(t)===-1}function iv(t,n,e,i){if(!Dp(t))return;let o=n[t],a=e[t];zt(o)&&zt(a)?vo(o,a,i):n[t]=Kr(a)}function vo(t,n,e){let i=re(n)?n:[n],o=i.length;if(!zt(t))return t;e=e||{};let a=e.merger||iv,r;for(let c=0;c<o;++c){if(r=i[c],!zt(r))continue;let p=Object.keys(r);for(let u=0,f=p.length;u<f;++u)a(p[u],t,r,e)}return t}function So(t,n){return vo(t,n,{merger:nv})}function nv(t,n,e){if(!Dp(t))return;let i=n[t],o=e[t];zt(i)&&zt(o)?So(i,o):Object.prototype.hasOwnProperty.call(n,t)||(n[t]=Kr(o))}var gp={"":t=>t,x:t=>t.x,y:t=>t.y};function ov(t){let n=t.split("."),e=[],i="";for(let o of n)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(e.push(i),i="");return e}function av(t){let n=ov(t);return e=>{for(let i of n){if(i==="")break;e=e&&e[i]}return e}}function Vi(t,n){return(gp[n]||(gp[n]=av(n)))(t)}function ts(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Mo=t=>typeof t<"u",Li=t=>typeof t=="function",Nl=(t,n)=>{if(t.size!==n.size)return!1;for(let e of t)if(!n.has(e))return!1;return!0};function Pp(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}var se=Math.PI,le=2*se,rv=le+se,Xr=Number.POSITIVE_INFINITY,sv=se/180,ye=se/2,kn=se/4,_p=se*2/3,Ni=Math.log10,_i=Math.sign;function wo(t,n,e){return Math.abs(t-n)<e}function Vl(t){let n=Math.round(t);t=wo(t,n,t/1e3)?n:t;let e=Math.pow(10,Math.floor(Ni(t))),i=t/e;return(i<=1?1:i<=2?2:i<=5?5:10)*e}function kp(t){let n=[],e=Math.sqrt(t),i;for(i=1;i<e;i++)t%i===0&&(n.push(i),n.push(t/i));return e===(e|0)&&n.push(e),n.sort((o,a)=>o-a).pop(),n}function Rn(t){return!isNaN(parseFloat(t))&&isFinite(t)}function Op(t,n){let e=Math.round(t);return e-n<=t&&e+n>=t}function $l(t,n,e){let i,o,a;for(i=0,o=t.length;i<o;i++)a=t[i][e],isNaN(a)||(n.min=Math.min(n.min,a),n.max=Math.max(n.max,a))}function di(t){return t*(se/180)}function es(t){return t*(180/se)}function zl(t){if(!be(t))return;let n=1,e=0;for(;Math.round(t*n)/n!==t;)n*=10,e++;return e}function Hl(t,n){let e=n.x-t.x,i=n.y-t.y,o=Math.sqrt(e*e+i*i),a=Math.atan2(i,e);return a<-.5*se&&(a+=le),{angle:a,distance:o}}function Jr(t,n){return Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2))}function lv(t,n){return(t-n+rv)%le-se}function Xe(t){return(t%le+le)%le}function Eo(t,n,e,i){let o=Xe(t),a=Xe(n),r=Xe(e),c=Xe(a-o),p=Xe(r-o),u=Xe(o-a),f=Xe(o-r);return o===a||o===r||i&&a===r||c>p&&u<f}function Re(t,n,e){return Math.max(n,Math.min(e,t))}function Ip(t){return Re(t,-32768,32767)}function Ei(t,n,e,i=1e-6){return t>=Math.min(n,e)-i&&t<=Math.max(n,e)+i}function is(t,n,e){e=e||(r=>t[r]<n);let i=t.length-1,o=0,a;for(;i-o>1;)a=o+i>>1,e(a)?o=a:i=a;return{lo:o,hi:i}}var Si=(t,n,e,i)=>is(t,e,i?o=>{let a=t[o][n];return a<e||a===e&&t[o+1][n]===e}:o=>t[o][n]<e),Rp=(t,n,e)=>is(t,e,i=>t[i][n]>=e);function Ap(t,n,e){let i=0,o=t.length;for(;i<o&&t[i]<n;)i++;for(;o>i&&t[o-1]>e;)o--;return i>0||o<t.length?t.slice(i,o):t}var Fp=["push","pop","shift","splice","unshift"];function Bp(t,n){if(t._chartjs){t._chartjs.listeners.push(n);return}Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[n]}}),Fp.forEach(e=>{let i="_onData"+ts(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...a){let r=o.apply(this,a);return t._chartjs.listeners.forEach(c=>{typeof c[i]=="function"&&c[i](...a)}),r}})})}function jl(t,n){let e=t._chartjs;if(!e)return;let i=e.listeners,o=i.indexOf(n);o!==-1&&i.splice(o,1),!(i.length>0)&&(Fp.forEach(a=>{delete t[a]}),delete t._chartjs)}function Ul(t){let n=new Set(t);return n.size===t.length?t:Array.from(n)}var Wl=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function Gl(t,n){let e=[],i=!1;return function(...o){e=o,i||(i=!0,Wl.call(window,()=>{i=!1,t.apply(n,e)}))}}function Lp(t,n){let e;return function(...i){return n?(clearTimeout(e),e=setTimeout(t,n,i)):t.apply(this,i),n}}var ns=t=>t==="start"?"left":t==="end"?"right":"center",Ve=(t,n,e)=>t==="start"?n:t==="end"?e:(n+e)/2,Np=(t,n,e,i)=>t===(i?"left":"right")?e:t==="center"?(n+e)/2:n;function ql(t,n,e){let i=n.length,o=0,a=i;if(t._sorted){let{iScale:r,_parsed:c}=t,p=r.axis,{min:u,max:f,minDefined:g,maxDefined:b}=r.getUserBounds();
vendor: 1,511 bytes, line 217
217g&&(o=Re(Math.min(Si(c,p,u).lo,e?i:Si(n,p,r.getPixelForValue(u)).lo),0,i-1)),b?a=Re(Math.max(Si(c,r.axis,f,!0).hi+1,e?0:Si(n,p,r.getPixelForValue(f),!0).hi+1),o,i)-o:a=i-o}return{start:o,count:a}}function Yl(t){let{xScale:n,yScale:e,_scaleRanges:i}=t,o={xmin:n.min,xmax:n.max,ymin:e.min,ymax:e.max};if(!i)return t._scaleRanges=o,!0;let a=i.xmin!==n.min||i.xmax!==n.max||i.ymin!==e.min||i.ymax!==e.max;return Object.assign(i,o),a}var qr=t=>t===0||t===1,Cp=(t,n,e)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-n)*le/e)),bp=(t,n,e)=>Math.pow(2,-10*t)*Math.sin((t-n)*le/e)+1,xo={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*ye)+1,easeOutSine:t=>Math.sin(t*ye),easeInOutSine:t=>-.5*(Math.cos(se*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>qr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>qr(t)?t:Cp(t,.075,.3),easeOutElastic:t=>
vendor: 4,568 bytes, line 217
217qr(t)?t:bp(t,.075,.3),easeInOutElastic(t){return qr(t)?t:t<.5?.5*Cp(t*2,.1125,.45):.5+.5*bp(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let n=1.70158;return(t/=.5)<1?.5*(t*t*(((n*=1.525)+1)*t-n)):.5*((t-=2)*t*(((n*=1.525)+1)*t+n)+2)},easeInBounce:t=>1-xo.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?xo.easeInBounce(t*2)*.5:xo.easeOutBounce(t*2-1)*.5+.5};function Ql(t){if(t&&typeof t=="object"){let n=t.toString();return n==="[object CanvasPattern]"||n==="[object CanvasGradient]"}return!1}function Kl(t){return Ql(t)?t:new Sa(t)}function Al(t){return Ql(t)?t:new Sa(t).saturate(.5).darken(.1).hexString()}var cv=["x","y","borderWidth","radius","tension"],dv=["color","borderColor","backgroundColor"];function mv(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:n=>n!=="onProgress"&&n!=="onComplete"&&n!=="fn"}),t.set("animations",{colors:{type:"color",properties:dv},numbers:{type:"number",properties:cv}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:n=>n|0}}}})}function pv(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var xp=new Map;function uv(t,n){n=n||{};let e=t+JSON.stringify(n),i=xp.get(e);return i||(i=new Intl.NumberFormat(t,n),xp.set(e,i)),i}function To(t,n,e){return uv(n,e).format(t)}var Vp={values(t){return re(t)?t:""+t},numeric(t,n,e){if(t===0)return"0";let i=this.chart.options.locale,o,a=t;if(e.length>1){let u=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(u<1e-4||u>1e15)&&(o="scientific"),a=fv(t,e)}let r=Ni(Math.abs(a)),c=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),p={notation:o,minimumFractionDigits:c,maximumFractionDigits:c};return Object.assign(p,this.options.ticks.format),To(t,i,p)},logarithmic(t,n,e){if(t===0)return"0";let i=e[n].significand||t/Math.pow(10,Math.floor(Ni(t)));return[1,2,3,5,10,15].includes(i)||n>.8*e.length?Vp.numeric.call(this,t,n,e):""}};function fv(t,n){let e=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;return Math.abs(e)>=1&&t!==Math.floor(t)&&(e=t-Math.floor(t)),e}var Da={formatters:Vp};function hv(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(n,e)=>e.lineWidth,tickColor:(n,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Da.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:n=>!n.startsWith("before")&&!n.startsWith("after")&&n!=="callback"&&n!=="parser",_indexable:n=>n!=="borderDash"&&n!=="tickBorderDash"&&n!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:n=>n!=="backdropPadding"&&n!=="callback",_indexable:n=>n!=="backdropPadding"})}var mn=Object.create(null),os=Object.create(null);function wa(t,n){if(!n)return t;let e=n.split(".");for(let i=0,o=e.length;i<o;++i){let a=e[i];t=t[a]||(t[a]=Object.create(null))}return t}function Fl(t,n,e){return typeof n=="string"?vo(wa(t,n),e):vo(wa(t,""),n)}var Bl=class{constructor(n,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=i=>i.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={}
vendor: 5,425 bytes, line 217
217,this.hoverBackgroundColor=(i,o)=>Al(o.backgroundColor),this.hoverBorderColor=(i,o)=>Al(o.borderColor),this.hoverColor=(i,o)=>Al(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(n),this.apply(e)}set(n,e){return Fl(this,n,e)}get(n){return wa(this,n)}describe(n,e){return Fl(os,n,e)}override(n,e){return Fl(mn,n,e)}route(n,e,i,o){let a=wa(this,n),r=wa(this,i),c="_"+e;Object.defineProperties(a,{[c]:{value:a[e],writable:!0},[e]:{enumerable:!0,get(){let p=this[c],u=r[o];return zt(p)?Object.assign({},u,p):At(p,u)},set(p){this[c]=p}}})}apply(n){n.forEach(e=>e(this))}},me=new Bl({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[mv,pv,hv]);function gv(t){return!t||Ut(t.size)||Ut(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Ea(t,n,e,i,o){let a=n[o];return a||(a=n[o]=t.measureText(o).width,e.push(o)),a>i&&(i=a),i}function $p(t,n,e,i){i=i||{};let o=i.data=i.data||{},a=i.garbageCollect=i.garbageCollect||[];i.font!==n&&(o=i.data={},a=i.garbageCollect=[],i.font=n),t.save(),t.font=n;let r=0,c=e.length,p,u,f,g,b;for(p=0;p<c;p++)if(g=e[p],g!=null&&!re(g))r=Ea(t,o,a,r,g);else if(re(g))for(u=0,f=g.length;u<f;u++)b=g[u],b!=null&&!re(b)&&(r=Ea(t,o,a,r,b));t.restore();let y=a.length/2;if(y>e.length){for(p=0;p<y;p++)delete o[a[p]];a.splice(0,y)}return r}function pn(t,n,e){let i=t.currentDevicePixelRatio,o=e!==0?Math.max(e/2,.5):0;return Math.round((n-o)*i)/i+o}function Xl(t,n){n=n||t.getContext("2d"),n.save(),n.resetTransform(),n.clearRect(0,0,t.width,t.height),n.restore()}function as(t,n,e,i){Jl(t,n,e,i,null)}function Jl(t,n,e,i,o){let a,r,c,p,u,f,g,b,y=n.pointStyle,E=n.rotation,D=n.radius,k=(E||0)*sv;if(y&&typeof y=="object"&&(a=y.toString(),a==="[object HTMLImageElement]"||a==="[object HTMLCanvasElement]")){t.save(),t.translate(e,i),t.rotate(k),t.drawImage(y,-y.width/2,-y.height/2,y.width,y.height),t.restore();return}if(!(isNaN(D)||D<=0)){switch(t.beginPath(),y){default:o?t.ellipse(e,i,o/2,D,0,0,le):t.arc(e,i,D,0,le),t.closePath();break;case"triangle":f=o?o/2:D,t.moveTo(e+Math.sin(k)*f,i-Math.cos(k)*D),k+=_p,t.lineTo(e+Math.sin(k)*f,i-Math.cos(k)*D),k+=_p,t.lineTo(e+Math.sin(k)*f,i-Math.cos(k)*D),t.closePath();break;case"rectRounded":u=D*.516,p=D-u,r=Math.cos(k+kn)*p,g=Math.cos(k+kn)*(o?o/2-u:p),c=Math.sin(k+kn)*p,b=Math.sin(k+kn)*(o?o/2-u:p),t.arc(e-g,i-c,u,k-se,k-ye),t.arc(e+b,i-r,u,k-ye,k),t.arc(e+g,i+c,u,k,k+ye),t.arc(e-b,i+r,u,k+ye,k+se),t.closePath();break;case"rect":if(!E){p=Math.SQRT1_2*D,f=o?o/2:p,t.rect(e-f,i-p,2*f,2*p);break}k+=kn;case"rectRot":g=Math.cos(k)*(o?o/2:D),r=Math.cos(k)*D,c=Math.sin(k)*D,b=Math.sin(k)*(o?o/2:D),t.moveTo(e-g,i-c),t.lineTo(e+b,i-r),t.lineTo(e+g,i+c),t.lineTo(e-b,i+r),t.closePath();break;case"crossRot":k+=kn;case"cross":g=Math.cos(k)*(o?o/2:D),r=Math.cos(k)*D,c=Math.sin(k)*D,b=Math.sin(k)*(o?o/2:D),t.moveTo(e-g,i-c),t.lineTo(e+g,i+c),t.moveTo(e+b,i-r),t.lineTo(e-b,i+r);break;case"star":g=Math.cos(k)*(o?o/2:D),r=Math.cos(k)*D,c=Math.sin(k)*D,b=Math.sin(k)*(o?o/2:D),t.moveTo(e-g,i-c),t.lineTo(e+g,i+c),t.moveTo(e+b,i-r),t.lineTo(e-b,i+r),k+=kn,g=Math.cos(k)*(o?o/2:D),r=Math.cos(k)*D,c=Math.sin(k)*D,b=Math.sin(k)*(o?o/2:D),t.moveTo(e-g,i-c),t.lineTo(e+g,i+c),t.moveTo(e+b,i-r),t.lineTo(e-b,i+r);break;case"line":r=o?o/2:Math.cos(k)*D,c=Math.sin(k)*D,t.moveTo(e-r,i-c),t.lineTo(e+r,i+c);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(k)*(o?o/2:D),i+Math.sin(k)*D);break;case!1:t.closePath();break}t.fill(),n.borderWidth>0&&t.stroke()}}function Mi(t,n,e){return e=e||.5,!n||t&&t.x>n.left-e&&t.x<n.right+e&&t.y>n.top-e&&t.y<n.bottom+e}function Pa(t,n){t.save(),t.beginPath(),t.rect(n.left,n.top,n.right-n.left,n.bottom-n.top),t.clip()}function ka(t){t.restore()}function zp(t,n,e,i,o){if(!n)return t.lineTo(e.x,e.y);if(o==="middle"){let a=(n.x+e.x)/2;t.lineTo(a,n.y),t.lineTo(a,e.y)}else o==="after"!=!!i?t.lineTo(n.x,e.y):t.lineTo(e.x,n.y);t.lineTo(e.x,e.y)}function Hp(t,n,e,i){if(!n)return t.lineTo(e.x,e.y);t.bezierCurveTo(i?n.cp1x:n.cp2x,i?n.cp1y:n.cp2y,i?e.cp2x:e.cp1x,i?e.cp2y:e.cp1y,e.x,e.y)}function _v(t,n){n.translation&&t.translate(n.translation[0],n.translation[1]),Ut(n.rotation)||t.rotate(n.rotation),n.color&&(t.fillStyle=n.color),n.textAlign&&(t.textAlign=n.textAlign),n.textBaseline&&(t.textBaseline=n.textBaseline)}function Cv(t,n,e,i,o){if(o.strikethrough||o.underline){let a=t.measureText(i),r=n-a.actualBoundingBoxLeft,c=n+a.actualBoundingBoxRight,p=e-a.actualBoundingBoxAscent,u=e+a.actualBoundingBoxDescent,f=o.strikethrough?(p+u)/2:u;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=o.decorationWidth||2,t.moveTo(r,f),t.lineTo(c,f),t.stroke()}}function bv(t,n){let e=t.fillStyle;t.fillStyle=n.color,t.fillRect(n.left,n.top,n.width,n.height),t.fillStyle=e}function un(t,n,e,i,o,a={}){let r=re(n)?n:[n],c=a.strokeWidth>0&&a.strokeColor!=="",p,u;for(t.save(),t.font=o.string,_v(t,a),p=0;p<r.length;++p)u=r[p],a.backdrop&&bv(t,a.backdrop),c&&(a.strokeColor&&(t.strokeStyle=a.strokeColor),Ut(a.strokeWidth)||(t.lineWidth=a.strokeWidth),t.strokeText(u,e,i,a.maxWidth)),t.fillText(u,e,i,a.maxWidth),Cv(t,e,i,u,a),i+=Number(o.lineHeight);
vendor: 5,371 bytes, line 217
217t.restore()}function Do(t,n){let{x:e,y:i,w:o,h:a,radius:r}=n;t.arc(e+r.topLeft,i+r.topLeft,r.topLeft,1.5*se,se,!0),t.lineTo(e,i+a-r.bottomLeft),t.arc(e+r.bottomLeft,i+a-r.bottomLeft,r.bottomLeft,se,ye,!0),t.lineTo(e+o-r.bottomRight,i+a),t.arc(e+o-r.bottomRight,i+a-r.bottomRight,r.bottomRight,ye,0,!0),t.lineTo(e+o,i+r.topRight),t.arc(e+o-r.topRight,i+r.topRight,r.topRight,0,-ye,!0),t.lineTo(e+r.topLeft,i)}var xv=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,vv=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function yv(t,n){let e=(""+t).match(xv);if(!e||e[1]==="normal")return n*1.2;switch(t=+e[2],e[3]){case"px":return t;case"%":t/=100;break}return n*t}var Sv=t=>+t||0;function rs(t,n){let e={},i=zt(n),o=i?Object.keys(n):n,a=zt(t)?i?r=>At(t[r],t[n[r]]):r=>t[r]:()=>t;for(let r of o)e[r]=Sv(a(r));return e}function Zl(t){return rs(t,{top:"y",right:"x",bottom:"y",left:"x"})}function fn(t){return rs(t,["topLeft","topRight","bottomLeft","bottomRight"])}function $e(t){let n=Zl(t);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function Ie(t,n){t=t||{},n=n||me.font;let e=At(t.size,n.size);typeof e=="string"&&(e=parseInt(e,10));let i=At(t.style,n.style);i&&!(""+i).match(vv)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);let o={family:At(t.family,n.family),lineHeight:yv(At(t.lineHeight,n.lineHeight),e),size:e,style:i,weight:At(t.weight,n.weight),string:""};return o.string=gv(o),o}function Po(t,n,e,i){let o=!0,a,r,c;for(a=0,r=t.length;a<r;++a)if(c=t[a],c!==void 0&&(n!==void 0&&typeof c=="function"&&(c=c(n),o=!1),e!==void 0&&re(c)&&(c=c[e%c.length],o=!1),c!==void 0))return i&&!o&&(i.cacheable=!1),c}function jp(t,n,e){let{min:i,max:o}=t,a=Ll(n,(o-i)/2),r=(c,p)=>e&&c===0?0:c+p;return{min:r(i,-Math.abs(a)),max:r(o,a)}}function $i(t,n){return Object.assign(Object.create(t),n)}function ss(t,n=[""],e,i,o=()=>t[0]){let a=e||t;typeof i>"u"&&(i=Gp("_fallback",t));let r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:a,_fallback:i,_getTarget:o,override:c=>ss([c,...t],n,a,i)};return new Proxy(r,{deleteProperty(c,p){return delete c[p],delete c._keys,delete t[0][p],!0},get(c,p){return Up(c,p,()=>Ov(p,n,t,c))},getOwnPropertyDescriptor(c,p){return Reflect.getOwnPropertyDescriptor(c._scopes[0],p)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(c,p){return yp(c).includes(p)},ownKeys(c){return yp(c)},set(c,p,u){let f=c._storage||(c._storage=o());return c[p]=f[p]=u,delete c._keys,!0}})}function In(t,n,e,i){let o={_cacheable:!1,_proxy:t,_context:n,_subProxy:e,_stack:new Set,_descriptors:tc(t,i),setContext:a=>In(t,a,e,i),override:a=>In(t.override(a),n,e,i)};return new Proxy(o,{deleteProperty(a,r){return delete a[r],delete t[r],!0},get(a,r,c){return Up(a,r,()=>wv(a,r,c))},getOwnPropertyDescriptor(a,r){return a._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(a,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(a,r,c){return t[r]=c,delete a[r],!0}})}function tc(t,n={scriptable:!0,indexable:!0}){let{_scriptable:e=n.scriptable,_indexable:i=n.indexable,_allKeys:o=n.allKeys}=t;return{allKeys:o,scriptable:e,indexable:i,isScriptable:Li(e)?e:()=>e,isIndexable:Li(i)?i:()=>i}}var Mv=(t,n)=>t?t+ts(n):n,ec=(t,n)=>zt(n)&&t!=="adapters"&&(Object.getPrototypeOf(n)===null||n.constructor===Object);function Up(t,n,e){if(Object.prototype.hasOwnProperty.call(t,n))return t[n];let i=e();return t[n]=i,i}function wv(t,n,e){let{_proxy:i,_context:o,_subProxy:a,_descriptors:r}=t,c=i[n];return Li(c)&&r.isScriptable(n)&&(c=Ev(n,c,t,e)),re(c)&&c.length&&(c=Tv(n,c,t,r.isIndexable)),ec(n,c)&&(c=In(c,o,a&&a[n],r)),c}function Ev(t,n,e,i){let{_proxy:o,_context:a,_subProxy:r,_stack:c}=e;if(c.has(t))throw new Error("Recursion detected: "+Array.from(c).join("->")+"->"+t);c.add(t);let p=n(a,r||i);return c.delete(t),ec(t,p)&&(p=ic(o._scopes,o,t,p)),p}function Tv(t,n,e,i){let{_proxy:o,_context:a,_subProxy:r,_descriptors:c}=e;if(typeof a.index<"u"&&i(t))return n[a.index%n.length];if(zt(n[0])){let p=n,u=o._scopes.filter(f=>f!==p);n=[];for(let f of p){let g=ic(u,o,t,f);n.push(In(g,a,r&&r[t],c))}}return n}function Wp(t,n,e){return Li(t)?t(n,e):t}var Dv=(t,n)=>t===!0?n:typeof t=="string"?Vi(n,t):void 0;function Pv(t,n,e,i,o){for(let a of n){let r=Dv(e,a);if(r){t.add(r);let c=Wp(r._fallback,e,o);if(typeof c<"u"&&c!==e&&c!==i)return c}else if(r===!1&&typeof i<"u"&&e!==i)return null}return!1}function ic(t,n,e,i){let o=n._rootScopes,a=Wp(n._fallback,e,i),r=[...t,...o],c=new Set;c.add(i);let p=vp(c,r,e,a||e,i);return p===null||typeof a<"u"&&a!==e&&(p=vp(c,r,a,p,i),p===null)?!1:ss(Array.from(c),[""],o,a,()=>kv(n,e,i))}function vp(t,n,e,i,o){for(;e;)e=Pv(t,n,e,i,o);return e}function kv(t,n,e){let i=t._getTarget();n in i||(i[n]={});let o=i[n];return re(o)&&zt(e)?e:o||{}}function Ov(t,n,e,i){let o;for(let a of n)if(o=Gp(Mv(a,t),e),typeof o<"u")return ec(t,o)?ic(e,i,t,o):o}function Gp(t,n){for(let e of n){if(!e)continue;let i=e[t];if(typeof i<"u")return i}}function yp(t){let n=t._keys;return n||(n=t._keys=Iv(t._scopes)),n}function Iv(t){let n=new Set;for(let e of t)for(let i of Object.keys(e).filter(o=>!o.startsWith("_")))n.add(i);return Array.from(n)}function nc(t,n,e,i){let{iScale:o}=t,{key:a="r"}=this._parsing,r=new Array(i),c,p,u,f;for(c=0,p=i;c<p;
vendor: 4,403 bytes, line 217
217++c)u=c+e,f=n[u],r[c]={r:o.parse(Vi(f,a),u)};return r}var Rv=Number.EPSILON||1e-14,yo=(t,n)=>n<t.length&&!t[n].skip&&t[n],qp=t=>t==="x"?"y":"x";function Av(t,n,e,i){let o=t.skip?n:t,a=n,r=e.skip?n:e,c=Jr(a,o),p=Jr(r,a),u=c/(c+p),f=p/(c+p);u=isNaN(u)?0:u,f=isNaN(f)?0:f;let g=i*u,b=i*f;return{previous:{x:a.x-g*(r.x-o.x),y:a.y-g*(r.y-o.y)},next:{x:a.x+b*(r.x-o.x),y:a.y+b*(r.y-o.y)}}}function Fv(t,n,e){let i=t.length,o,a,r,c,p,u=yo(t,0);for(let f=0;f<i-1;++f)if(p=u,u=yo(t,f+1),!(!p||!u)){if(wo(n[f],0,Rv)){e[f]=e[f+1]=0;continue}o=e[f]/n[f],a=e[f+1]/n[f],c=Math.pow(o,2)+Math.pow(a,2),!(c<=9)&&(r=3/Math.sqrt(c),e[f]=o*r*n[f],e[f+1]=a*r*n[f])}}function Bv(t,n,e="x"){let i=qp(e),o=t.length,a,r,c,p=yo(t,0);for(let u=0;u<o;++u){if(r=c,c=p,p=yo(t,u+1),!c)continue;let f=c[e],g=c[i];r&&(a=(f-r[e])/3,c[`cp1${e}`]=f-a,c[`cp1${i}`]=g-a*n[u]),p&&(a=(p[e]-f)/3,c[`cp2${e}`]=f+a,c[`cp2${i}`]=g+a*n[u])}}function Lv(t,n="x"){let e=qp(n),i=t.length,o=Array(i).fill(0),a=Array(i),r,c,p,u=yo(t,0);for(r=0;r<i;++r)if(c=p,p=u,u=yo(t,r+1),!!p){if(u){let f=u[n]-p[n];o[r]=f!==0?(u[e]-p[e])/f:0}a[r]=c?u?_i(o[r-1])!==_i(o[r])?0:(o[r-1]+o[r])/2:o[r-1]:o[r]}Fv(t,o,a),Bv(t,a,n)}function Yr(t,n,e){return Math.max(Math.min(t,e),n)}function Nv(t,n){let e,i,o,a,r,c=Mi(t[0],n);for(e=0,i=t.length;e<i;++e)r=a,a=c,c=e<i-1&&Mi(t[e+1],n),a&&(o=t[e],r&&(o.cp1x=Yr(o.cp1x,n.left,n.right),o.cp1y=Yr(o.cp1y,n.top,n.bottom)),c&&(o.cp2x=Yr(o.cp2x,n.left,n.right),o.cp2y=Yr(o.cp2y,n.top,n.bottom)))}function Yp(t,n,e,i,o){let a,r,c,p;if(n.spanGaps&&(t=t.filter(u=>!u.skip)),n.cubicInterpolationMode==="monotone")Lv(t,o);else{let u=i?t[t.length-1]:t[0];for(a=0,r=t.length;a<r;++a)c=t[a],p=Av(u,c,t[Math.min(a+1,r-(i?0:1))%r],n.tension),c.cp1x=p.previous.x,c.cp1y=p.previous.y,c.cp2x=p.next.x,c.cp2y=p.next.y,u=c}n.capBezierPoints&&Nv(t,e)}function oc(){return typeof window<"u"&&typeof document<"u"}function ls(t){let n=t.parentNode;return n&&n.toString()==="[object ShadowRoot]"&&(n=n.host),n}function Zr(t,n,e){let i;return typeof t=="string"?(i=parseInt(t,10),t.indexOf("%")!==-1&&(i=i/100*n.parentNode[e])):i=t,i}var cs=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function Vv(t,n){return cs(t).getPropertyValue(n)}var $v=["top","right","bottom","left"];function On(t,n,e){let i={};e=e?"-"+e:"";for(let o=0;o<4;o++){let a=$v[o];i[a]=parseFloat(t[n+"-"+a+e])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}var zv=(t,n,e)=>(t>0||n>0)&&(!e||!e.shadowRoot);function Hv(t,n){let e=t.touches,i=e&&e.length?e[0]:t,{offsetX:o,offsetY:a}=i,r=!1,c,p;if(zv(o,a,t.target))c=o,p=a;else{let u=n.getBoundingClientRect();c=i.clientX-u.left,p=i.clientY-u.top,r=!0}return{x:c,y:p,box:r}}function hn(t,n){if("native"in t)return t;let{canvas:e,currentDevicePixelRatio:i}=n,o=cs(e),a=o.boxSizing==="border-box",r=On(o,"padding"),c=On(o,"border","width"),{x:p,y:u,box:f}=Hv(t,e),g=r.left+(f&&c.left),b=r.top+(f&&c.top),{width:y,height:E}=n;return a&&(y-=r.width+c.width,E-=r.height+c.height),{x:Math.round((p-g)/y*e.width/i),y:Math.round((u-b)/E*e.height/i)}}function jv(t,n,e){let i,o;if(n===void 0||e===void 0){let a=ls(t);if(!a)n=t.clientWidth,e=t.clientHeight;else{let r=a.getBoundingClientRect(),c=cs(a),p=On(c,"border","width"),u=On(c,"padding");n=r.width-u.width-p.width,e=r.height-u.height-p.height,i=Zr(c.maxWidth,a,"clientWidth"),o=Zr(c.maxHeight,a,"clientHeight")}}return{width:n,height:e,maxWidth:i||Xr,maxHeight:o||Xr}}var Qr=t=>Math.round(t*10)/10;function Qp(t,n,e,i){let o=cs(t),a=On(o,"margin"),r=Zr(o.maxWidth,t,"clientWidth")||Xr,c=Zr(o.maxHeight,t,"clientHeight")||Xr,p=jv(t,n,e),{width:u,height:f}=p;if(o.boxSizing==="content-box"){let b=On(o,"border","width"),y=On(o,"padding");u-=y.width+b.width,f-=y.height+b.height}return u=Math.max(0,u-a.width),f=Math.max(0,i?u/i:f-a.height),u=Qr(Math.min(u,r,p.maxWidth)),f=Qr(Math.min(f,c,p.maxHeight)),u&&!f&&(f=Qr(u/2)),(n!==void 0||e!==void 0)&&i&&p.height&&f>p.height&&(f=p.height,u=Qr(Math.floor(f*i))),{width:u,height:f}}function ac(t,n,e){let i=n||1,o=Math.floor(t.height*i),a=Math.floor(t.width*i);t.height=Math.floor(t.height),t.width=Math.floor(t.width);let r=t.canvas;return r.style&&(e||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==a?(t.currentDevicePixelRatio=i,r.height=o,r.width=a,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}var Kp=(function(){let t=!1;
vendor: 4,137 bytes, line 217
217try{let n={get passive(){return t=!0,!1}};window.addEventListener("test",null,n),window.removeEventListener("test",null,n)}catch(n){}return t})();function rc(t,n){let e=Vv(t,n),i=e&&e.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function dn(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:t.y+e*(n.y-t.y)}}function Xp(t,n,e,i){return{x:t.x+e*(n.x-t.x),y:i==="middle"?e<.5?t.y:n.y:i==="after"?e<1?t.y:n.y:e>0?n.y:t.y}}function Jp(t,n,e,i){let o={x:t.cp2x,y:t.cp2y},a={x:n.cp1x,y:n.cp1y},r=dn(t,o,e),c=dn(o,a,e),p=dn(a,n,e),u=dn(r,c,e),f=dn(c,p,e);return dn(u,f,e)}var Uv=function(t,n){return{x(e){return t+t+n-e},setWidth(e){n=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,i){return e-i},leftForLtr(e,i){return e-i}}},Wv=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,n){return t+n},leftForLtr(t,n){return t}}};function An(t,n,e){return t?Uv(n,e):Wv()}function sc(t,n){let e,i;(n==="ltr"||n==="rtl")&&(e=t.canvas.style,i=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",n,"important"),t.prevTextDirection=i)}function lc(t,n){n!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",n[0],n[1]))}function Zp(t){return t==="angle"?{between:Eo,compare:lv,normalize:Xe}:{between:Ei,compare:(n,e)=>n-e,normalize:n=>n}}function Sp({start:t,end:n,count:e,loop:i,style:o}){return{start:t%e,end:n%e,loop:i&&(n-t+1)%e===0,style:o}}function Gv(t,n,e){let{property:i,start:o,end:a}=e,{between:r,normalize:c}=Zp(i),p=n.length,{start:u,end:f,loop:g}=t,b,y;if(g){for(u+=p,f+=p,b=0,y=p;b<y&&r(c(n[u%p][i]),o,a);++b)u--,f--;u%=p,f%=p}return f<u&&(f+=p),{start:u,end:f,loop:g,style:t.style}}function cc(t,n,e){if(!e)return[t];let{property:i,start:o,end:a}=e,r=n.length,{compare:c,between:p,normalize:u}=Zp(i),{start:f,end:g,loop:b,style:y}=Gv(t,n,e),E=[],D=!1,k=null,V,N,W,q=()=>p(o,W,V)&&c(o,W)!==0,j=()=>c(a,V)===0||p(a,W,V),G=()=>D||q(),it=()=>!D||j();for(let Q=f,at=f;Q<=g;++Q)N=n[Q%r],!N.skip&&(V=u(N[i]),V!==W&&(D=p(V,o,a),k===null&&G()&&(k=c(V,o)===0?Q:at),k!==null&&it()&&(E.push(Sp({start:k,end:Q,loop:b,count:r,style:y})),k=null),at=Q,W=V));return k!==null&&E.push(Sp({start:k,end:g,loop:b,count:r,style:y})),E}function dc(t,n){let e=[],i=t.segments;for(let o=0;o<i.length;o++){let a=cc(i[o],t.points,n);a.length&&e.push(...a)}return e}function qv(t,n,e,i){let o=0,a=n-1;if(e&&!i)for(;o<n&&!t[o].skip;)o++;for(;o<n&&t[o].skip;)o++;for(o%=n,e&&(a+=o);a>o&&t[a%n].skip;)a--;return a%=n,{start:o,end:a}}function Yv(t,n,e,i){let o=t.length,a=[],r=n,c=t[n],p;for(p=n+1;p<=e;++p){let u=t[p%o];u.skip||u.stop?c.skip||(i=!1,a.push({start:n%o,end:(p-1)%o,loop:i}),n=r=u.stop?p:null):(r=p,c.skip&&(n=p)),c=u}return r!==null&&a.push({start:n%o,end:r%o,loop:i}),a}function t0(t,n){let e=t.points,i=t.options.spanGaps,o=e.length;if(!o)return[];let a=!!t._loop,{start:r,end:c}=qv(e,o,a,i);if(i===!0)return Mp(t,[{start:r,end:c,loop:a}],e,n);let p=c<r?c+o:c,u=!!t._fullLoop&&r===0&&c===o-1;return Mp(t,Yv(e,r,p,u),e,n)}function Mp(t,n,e,i){return!i||!i.setContext||!e?n:Qv(t,n,e,i)}function Qv(t,n,e,i){let o=t._chart.getContext(),a=wp(t.options),{_datasetIndex:r,options:{spanGaps:c}}=t,p=e.length,u=[],f=a,g=n[0].start,b=g;function y(E,D,k,V){let N=c?-1:1;if(E!==D){for(E+=p;e[E%p].skip;)E-=N;for(;e[D%p].skip;)D+=N;E%p!==D%p&&(u.push({start:E%p,end:D%p,loop:k,style:V}),f=V,g=D%p)}}for(let E of n){g=c?g:E.start;let D=e[g%p],k;for(b=g+1;b<=E.end;b++){let V=e[b%p];k=wp(i.setContext($i(o,{type:"segment",p0:D,p1:V,p0DataIndex:(b-1)%p,p1DataIndex:b%p,datasetIndex:r}))),Kv(k,f)&&y(g,b-1,E.loop,f),D=V,f=k}g<b-1&&y(g,b-1,E.loop,f)}return u}function wp(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function Kv(t,n){if(!n)return!1;let e=[],i=function(o,a){return Ql(a)?(e.includes(a)||e.push(a),e.indexOf(a)):a};return JSON.stringify(t,i)!==JSON.stringify(n,i)}var xc=class{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}
vendor: 10,529 bytes, line 217
217_notify(n,e,i,o){let a=e.listeners[o],r=e.duration;a.forEach(c=>c({chart:n,initial:e.initial,numSteps:r,currentStep:Math.min(i-e.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=Wl.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(n=Date.now()){let e=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;let a=i.items,r=a.length-1,c=!1,p;for(;r>=0;--r)p=a[r],p._active?(p._total>i.duration&&(i.duration=p._total),p.tick(n),c=!0):(a[r]=a[a.length-1],a.pop());c&&(o.draw(),this._notify(o,i,n,"progress")),a.length||(i.running=!1,this._notify(o,i,n,"complete"),i.initial=!1),e+=a.length}),this._lastDate=n,e===0&&(this._running=!1)}_getAnims(n){let e=this._charts,i=e.get(n);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(n,i)),i}listen(n,e,i){this._getAnims(n).listeners[e].push(i)}add(n,e){!e||!e.length||this._getAnims(n).items.push(...e)}has(n){return this._getAnims(n).items.length>0}start(n){let e=this._charts.get(n);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(n){if(!this._running)return!1;let e=this._charts.get(n);return!(!e||!e.running||!e.items.length)}stop(n){let e=this._charts.get(n);if(!e||!e.items.length)return;let i=e.items,o=i.length-1;for(;o>=0;--o)i[o].cancel();e.items=[],this._notify(n,e,Date.now(),"complete")}remove(n){return this._charts.delete(n)}},zi=new xc,e0="transparent",Xv={boolean(t,n,e){return e>.5?n:t},color(t,n,e){let i=Kl(t||e0),o=i.valid&&Kl(n||e0);return o&&o.valid?o.mix(i,e).hexString():n},number(t,n,e){return t+(n-t)*e}},vc=class{constructor(n,e,i,o){let a=e[i];o=Po([n.to,o,a,n.from]);let r=Po([n.from,a,o]);this._active=!0,this._fn=n.fn||Xv[n.type||typeof r],this._easing=xo[n.easing]||xo.linear,this._start=Math.floor(Date.now()+(n.delay||0)),this._duration=this._total=Math.floor(n.duration),this._loop=!!n.loop,this._target=e,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(n,e,i){if(this._active){this._notify(!1);let o=this._target[this._prop],a=i-this._start,r=this._duration-a;this._start=i,this._duration=Math.floor(Math.max(r,n.duration)),this._total+=a,this._loop=!!n.loop,this._to=Po([n.to,e,o,n.from]),this._from=Po([n.from,o,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(n){let e=n-this._start,i=this._duration,o=this._prop,a=this._from,r=this._loop,c=this._to,p;if(this._active=a!==c&&(r||e<i),!this._active){this._target[o]=c,this._notify(!0);return}if(e<0){this._target[o]=a;return}p=e/i%2,p=r&&p>1?2-p:p,p=this._easing(Math.min(1,Math.max(0,p))),this._target[o]=this._fn(a,c,p)}wait(){let n=this._promises||(this._promises=[]);return new Promise((e,i)=>{n.push({res:e,rej:i})})}_notify(n){let e=n?"res":"rej",i=this._promises||[];for(let o=0;o<i.length;o++)i[o][e]()}},bs=class{constructor(n,e){this._chart=n,this._properties=new Map,this.configure(e)}configure(n){if(!zt(n))return;let e=Object.keys(me.animation),i=this._properties;Object.getOwnPropertyNames(n).forEach(o=>{let a=n[o];if(!zt(a))return;let r={};for(let c of e)r[c]=a[c];(re(a.properties)&&a.properties||[o]).forEach(c=>{(c===o||!i.has(c))&&i.set(c,r)})})}_animateOptions(n,e){let i=e.options,o=Zv(n,i);if(!o)return[];let a=this._createAnimations(o,i);return i.$shared&&Jv(n.options.$animations,i).then(()=>{n.options=i},()=>{}),a}_createAnimations(n,e){let i=this._properties,o=[],a=n.$animations||(n.$animations={}),r=Object.keys(e),c=Date.now(),p;for(p=r.length-1;p>=0;--p){let u=r[p];if(u.charAt(0)==="$")continue;if(u==="options"){o.push(...this._animateOptions(n,e));continue}let f=e[u],g=a[u],b=i.get(u);if(g)if(b&&g.active()){g.update(b,f,c);continue}else g.cancel();if(!b||!b.duration){n[u]=f;continue}a[u]=g=new vc(b,n,u,f),o.push(g)}return o}update(n,e){if(this._properties.size===0){Object.assign(n,e);return}let i=this._createAnimations(n,e);if(i.length)return zi.add(this._chart,i),!0}};function Jv(t,n){let e=[],i=Object.keys(n);for(let o=0;o<i.length;o++){let a=t[i[o]];a&&a.active()&&e.push(a.wait())}return Promise.all(e)}function Zv(t,n){if(!n)return;let e=t.options;if(!e){t.options=n;return}return e.$shared&&(t.options=e=Object.assign({},e,{$shared:!1,$animations:{}})),e}function i0(t,n){let e=t&&t.options||{},i=e.reverse,o=e.min===void 0?n:0,a=e.max===void 0?n:0;return{start:i?a:o,end:i?o:a}}function ty(t,n,e){if(e===!1)return!1;let i=i0(t,e),o=i0(n,e);return{top:o.end,right:i.end,bottom:o.start,left:i.start}}function ey(t){let n,e,i,o;return zt(t)?(n=t.top,e=t.right,i=t.bottom,o=t.left):n=e=i=o=t,{top:n,right:e,bottom:i,left:o,disabled:t===!1}}function iu(t,n){let e=[],i=t._getSortedDatasetMetas(n),o,a;for(o=0,a=i.length;o<a;++o)e.push(i[o].index);return e}function n0(t,n,e,i={}){let o=t.keys,a=i.mode==="single",r,c,p,u;if(n!==null){for(r=0,c=o.length;r<c;++r){if(p=+o[r],p===e){if(i.all)continue;break}u=t.values[p],be(u)&&(a||n===0||_i(n)===_i(u))&&(n+=u)}return n}}function iy(t){let n=Object.keys(t),e=new Array(n.length),i,o,a;for(i=0,o=n.length;i<o;++i)a=n[i],e[i]={x:a,y:t[a]};return e}function o0(t,n){let e=t&&t.options.stacked;return e||e===void 0&&n.stack!==void 0}function ny(t,n,e){return`${t.id}.${n.id}.${e.stack||e.type}`}function oy(t){let{min:n,max:e,minDefined:i,maxDefined:o}=t.getUserBounds();return{min:i?n:Number.NEGATIVE_INFINITY,max:o?e:Number.POSITIVE_INFINITY}}function ay(t,n,e){let i=t[n]||(t[n]={});return i[e]||(i[e]={})}function a0(t,n,e,i){for(let o of n.getMatchingVisibleMetas(i).reverse()){let a=t[o.index];if(e&&a>0||!e&&a<0)return o.index}return null}function r0(t,n){let{chart:e,_cachedMeta:i}=t,o=e._stacks||(e._stacks={}),{iScale:a,vScale:r,index:c}=i,p=a.axis,u=r.axis,f=ny(a,r,i),g=n.length,b;for(let y=0;y<g;++y){let E=n[y],{[p]:D,[u]:k}=E,V=E._stacks||(E._stacks={});b=V[u]=ay(o,f,D),b[c]=k,b._top=a0(b,r,!0,i.type),b._bottom=a0(b,r,!1,i.type);let N=b._visualValues||(b._visualValues={});N[c]=k}}function mc(t,n){let e=t.scales;return Object.keys(e).filter(i=>e[i].axis===n).shift()}function ry(t,n){return $i(t,{active:!1,dataset:void 0,datasetIndex:n,index:n,mode:"default",type:"dataset"})}function sy(t,n,e){return $i(t,{active:!1,dataIndex:n,parsed:void 0,raw:void 0,element:e,index:n,mode:"default",type:"data"})}function Oa(t,n){let e=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){n=n||t._parsed;for(let o of n){let a=o._stacks;if(!a||a[i]===void 0||a[i][e]===void 0)return;delete a[i][e],a[i]._visualValues!==void 0&&a[i]._visualValues[e]!==void 0&&delete a[i]._visualValues[e]}}}var pc=t=>t==="reset"||t==="none",s0=(t,n)=>n?t:Object.assign({},t),ly=(t,n,e)=>t&&!n.hidden&&n._stacked&&{keys:iu(e,!0),values:null},_n=(()=>{class t{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,i){this.chart=e,this._ctx=e.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=o0(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&Oa(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,i=this._cachedMeta,o=this.getDataset(),a=(b,y,E,D)=>b==="x"?y:b==="r"?D:E,r=i.xAxisID=At(o.xAxisID,mc(e,"x")),c=i.yAxisID=At(o.yAxisID,mc(e,"y")),p=i.rAxisID=At(o.rAxisID,mc(e,"r")),u=i.indexAxis,f=i.iAxisID=a(u,r,c,p),g=i.vAxisID=a(u,c,r,p);i.xScale=this.getScaleForId(r),i.yScale=this.getScaleForId(c),i.rScale=this.getScaleForId(p),i.iScale=this.getScaleForId(f),i.vScale=this.getScaleForId(g)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let i=this._cachedMeta;return e===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){let e=this._cachedMeta;this._data&&jl(this._data,this),e._stacked&&Oa(e)}_dataCheck(){let e=this.getDataset(),i=e.data||(e.data=[]),o=this._data;if(zt(i))this._data=iy(i);else if(o!==i){if(o){jl(o,this);let a=this._cachedMeta;Oa(a),a._parsed=[]}i&&Object.isExtensible(i)&&Bp(i,this),this._syncList=[],this._data=i}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let i=this._cachedMeta,o=this.getDataset(),a=!1;this._dataCheck();let r=i._stacked;i._stacked=o0(i.vScale,i),i.stack!==o.stack&&(a=!0,Oa(i),i.stack=o.stack),this._resyncElements(e),(a||r!==i._stacked)&&r0(this,i._parsed)}configure(){let e=this.chart.config,i=e.datasetScopeKeys(this._type),o=e.getOptionScopes(this.getDataset(),i,!0);this.options=e.createResolver(o,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,i){let{_cachedMeta:o,_data:a}=this,{iScale:r,_stacked:c}=o,p=r.axis,u=e===0&&i===a.length?!0:o._sorted,f=e>0&&o._parsed[e-1],g,b,y;if(this._parsing===!1)o._parsed=a,o._sorted=!0,y=a;else{re(a[e])?y=this.parseArrayData(o,a,e,i):zt(a[e])?y=this.parseObjectData(o,a,e,i):y=this.parsePrimitiveData(o,a,e,i);let E=()=>b[p]===null||f&&b[p]<f[p];for(g=0;g<i;++g)o._parsed[g+e]=b=y[g],u&&(E()&&(u=!1),f=b);o._sorted=u}c&&r0(this,y)}parsePrimitiveData(e,i,o,a){let{iScale:r,vScale:c}=e,p=r.axis,u=c.axis,f=r.getLabels(),g=r===c,b=new Array(a),y,E,D;for(y=0,E=a;y<E;++y)D=y+o,b[y]={[p]:g||r.parse(f[D],D),[u]:c.parse(i[D],D)};return b}parseArrayData(e,i,o,a){let{xScale:r,yScale:c}=e,p=new Array(a),u,f,g,b;for(u=0,f=a;u<f;++u)g=u+o,b=i[g],p[u]={x:r.parse(b[0],g),y:c.parse(b[1],g)};return p}parseObjectData(e,i,o,a){let{xScale:r,yScale:c}=e,{xAxisKey:p="x",yAxisKey:u="y"}=this._parsing,f=new Array(a),g,b,y,E;for(g=0,b=a;g<b;++g)y=g+o,E=i[y],f[g]={x:r.parse(Vi(E,p),y),y:c.parse(Vi(E,u),y)};return f}getParsed(e){return this._cachedMeta._parsed[e]}getDataElement(e){return this._cachedMeta.data[e]}applyStack(e,i,o){let a=this.chart,r=this._cachedMeta,c=i[e.axis],p={ke
vendor: 8,269 bytes, line 217
217ys:iu(a,!0),values:i._stacks[e.axis]._visualValues};return n0(p,c,r.index,{mode:o})}updateRangeFromParsed(e,i,o,a){let r=o[i.axis],c=r===null?NaN:r,p=a&&o._stacks[i.axis];a&&p&&(a.values=p,c=n0(a,r,this._cachedMeta.index)),e.min=Math.min(e.min,c),e.max=Math.max(e.max,c)}getMinMax(e,i){let o=this._cachedMeta,a=o._parsed,r=o._sorted&&e===o.iScale,c=a.length,p=this._getOtherScale(e),u=ly(i,o,this.chart),f={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:g,max:b}=oy(p),y,E;function D(){E=a[y];let k=E[p.axis];return!be(E[e.axis])||g>k||b<k}for(y=0;y<c&&!(!D()&&(this.updateRangeFromParsed(f,e,E,u),r));++y);if(r){for(y=c-1;y>=0;--y)if(!D()){this.updateRangeFromParsed(f,e,E,u);break}}return f}getAllParsedValues(e){let i=this._cachedMeta._parsed,o=[],a,r,c;for(a=0,r=i.length;a<r;++a)c=i[a][e.axis],be(c)&&o.push(c);return o}getMaxOverflow(){return!1}getLabelAndValue(e){let i=this._cachedMeta,o=i.iScale,a=i.vScale,r=this.getParsed(e);return{label:o?""+o.getLabelForValue(r[o.axis]):"",value:a?""+a.getLabelForValue(r[a.axis]):""}}_update(e){let i=this._cachedMeta;this.update(e||"default"),i._clip=ey(At(this.options.clip,ty(i.xScale,i.yScale,this.getMaxOverflow())))}update(e){}draw(){let e=this._ctx,i=this.chart,o=this._cachedMeta,a=o.data||[],r=i.chartArea,c=[],p=this._drawStart||0,u=this._drawCount||a.length-p,f=this.options.drawActiveElementsOnTop,g;for(o.dataset&&o.dataset.draw(e,r,p,u),g=p;g<p+u;++g){let b=a[g];b.hidden||(b.active&&f?c.push(b):b.draw(e,r))}for(g=0;g<c.length;++g)c[g].draw(e,r)}getStyle(e,i){let o=i?"active":"default";return e===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(o):this.resolveDataElementOptions(e||0,o)}getContext(e,i,o){let a=this.getDataset(),r;if(e>=0&&e<this._cachedMeta.data.length){let c=this._cachedMeta.data[e];r=c.$context||(c.$context=sy(this.getContext(),e,c)),r.parsed=this.getParsed(e),r.raw=a.data[e],r.index=r.dataIndex=e}else r=this.$context||(this.$context=ry(this.chart.getContext(),this.index)),r.dataset=a,r.index=r.datasetIndex=this.index;return r.active=!!i,r.mode=o,r}resolveDatasetElementOptions(e){return this._resolveElementOptions(this.datasetElementType.id,e)}resolveDataElementOptions(e,i){return this._resolveElementOptions(this.dataElementType.id,i,e)}_resolveElementOptions(e,i="default",o){let a=i==="active",r=this._cachedDataOpts,c=e+"-"+i,p=r[c],u=this.enableOptionSharing&&Mo(o);if(p)return s0(p,u);let f=this.chart.config,g=f.datasetElementScopeKeys(this._type,e),b=a?[`${e}Hover`,"hover",e,""]:[e,""],y=f.getOptionScopes(this.getDataset(),g),E=Object.keys(me.elements[e]),D=()=>this.getContext(o,a,i),k=f.resolveNamedOptions(y,E,D,b);return k.$shared&&(k.$shared=u,r[c]=Object.freeze(s0(k,u))),k}_resolveAnimations(e,i,o){let a=this.chart,r=this._cachedDataOpts,c=`animation-${i}`,p=r[c];if(p)return p;let u;if(a.options.animation!==!1){let g=this.chart.config,b=g.datasetAnimationScopeKeys(this._type,i),y=g.getOptionScopes(this.getDataset(),b);u=g.createResolver(y,this.getContext(e,o,i))}let f=new bs(a,u&&u.animations);return u&&u._cacheable&&(r[c]=Object.freeze(f)),f}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,i){return!i||pc(e)||this.chart._animationsDisabled}_getSharedOptions(e,i){let o=this.resolveDataElementOptions(e,i),a=this._sharedOptions,r=this.getSharedOptions(o),c=this.includeOptions(i,r)||r!==a;return this.updateSharedOptions(r,i,o),{sharedOptions:r,includeOptions:c}}updateElement(e,i,o,a){pc(a)?Object.assign(e,o):this._resolveAnimations(i,a).update(e,o)}updateSharedOptions(e,i,o){e&&!pc(i)&&this._resolveAnimations(void 0,i).update(e,o)}_setStyle(e,i,o,a){e.active=a;let r=this.getStyle(i,a);this._resolveAnimations(i,o,a).update(e,{options:!a&&this.getSharedOptions(r)||r})}removeHoverStyle(e,i,o){this._setStyle(e,o,"active",!1)}setHoverStyle(e,i,o){this._setStyle(e,o,"active",!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){let i=this._data,o=this._cachedMeta.data;for(let[p,u,f]of this._syncList)this[p](u,f);this._syncList=[];let a=o.length,r=i.length,c=Math.min(r,a);c&&this.parse(0,c),r>a?this._insertElements(a,r-a,e):r<a&&this._removeElements(r,a-r)}_insertElements(e,i,o=!0){let a=this._cachedMeta,r=a.data,c=e+i,p,u=f=>{for(f.length+=i,p=f.length-1;p>=c;p--)f[p]=f[p-i]};for(u(r),p=e;p<c;++p)r[p]=new this.dataElementType;this._parsing&&u(a._parsed),this.parse(e,i),o&&this.updateElements(r,e,i,"reset")}updateElements(e,i,o,a){}_removeElements(e,i){let o=this._cachedMeta;if(this._parsing){let a=o._parsed.splice(e,i);o._stacked&&Oa(o,a)}o.data.splice(e,i)}_sync(e){if(this._parsing)this._syncList.push(e);else{let[i,o,a]=e;this[i](o,a)}this.chart._dataChanges.push([this.index,...e])}_onDataPush(){let e=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-e,e])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(e,i){i&&this._sync(["_removeElements",e,i]);let o=arguments.length-2;o&&this._sync(["_insertElements",e,o])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}return t})();function cy(t,n){if(!t._cache.$bar){let e=t.getMatchingVisibleMetas(n),i=[];for(let o=0,a=e.length;o<a;o++)i=i.concat(e[o].controller.getAllParsedValues(t));t._cache.$bar=Ul(i.sort((o,a)=>o-a))}return t._cache.$bar}function dy(t){let n=t.iScale,e=cy(n,t.type),i=n._length,o,a,r,c,p=()=>{r===32767||r===-32768||(Mo(c)&&(i=Math.min(i,Math.abs(r-c)||i)),c=r)};for(o=0,a=e.length;o<a;++o)r=n.getPixelForValue(e[o]),p();for(c=void 0,o=0,a=n.ticks.length;o<a;++o)r=n.getPixelForTick(o),p();return i}function my(t,n,e,i){let o=e.barThickness,a,r;return Ut(o)?(a=n.min*e.categoryPercentage,r=e.barPercentage):(a=o*i,r=1),{chunk:a/i,ratio:r,start:n.pixels[t]-a/2}}function py(t,n,e,i){let o=n.pixels,a=o[t],r=t>0?o[t-1]:null,c=t<o.length-1?o[t+1]:null,p=e.categoryPercentage;r===null&&(r=a-(c===null?n.end-n.start:c-a)),c===null&&(c=a+a-r);let u=a-(a-Math.min(r,c))/2*p;return{chunk:Math.abs(c-r)/2*p/i,ratio:e.barPercentage,start:u}}function uy(t,n,e,i){let o=e.parse(t[0],i),a=e.parse(t[1],i),r=Math.min(o,a),c=Math.max(o,a),p=r,u=c;Math.abs(r)>Math.abs(c)&&(p=c,u=r),n[e.axis]=u,n._custom={barStart:p,barEnd:u,start:o,end:a,min:r,max:c}}function nu(t,n,e,i){return re(t)?uy(t,n,e,i):n[e.axis]=e.parse(t,i),n}function l0(t,n,e,i){let o=t.iScale,a=t.vScale,r=o.getLabels(),c=o===a,p=[],u,f,g,b;for(u=e,f=e+i;u<f;++u)b=n[u],g={},g[o.axis]=c||o.parse(r[u],u),p.push(nu(b,g,a,u));return p}function uc(t){return t&&t.barStart!==void 0&&t.barEnd!==void 0}function fy(t,n,e){return t!==0?_i(t):(n.isHorizontal()?1:-1)*(n.min>=e?1:-1)}function hy(t){let n,e,i,o,a;return t.horizontal?(n=t.base>t.x,e="left",i="right"):(n=t.base<t.y,e="bottom",i="top"),n?(o="end",a="start"):(o="start",a="end"),{start:e,end:i,reverse:n,top:o,bottom:a}}function gy(t,n,e,i){let o=n.borderSkipped,a={};if(!o){t.borderSkipped=a;return}if(o===!0){t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}let{start:r,end:c,reverse:p,top:u,bottom:f}=hy(t);o==="middle"&&e&&(t.enableBorderRadius=!0,(e._top||0)===i?o=u:(e._bottom||0)===i?o=f:(a[c0(f,r,c,p)]=!0,o=u)),a[c0(o,r,c,p)]=!0,t.borderSkipped=a}function c0(t,n,e,i){return i?(t=_y(t,n,e),t=d0(t,e,n)):t=d0(t,n,e),t}function _y(t,n,e){return t===n?e:t===e?n:t}function d0(t,n,e){return t==="start"?n:t==="end"?e:t}function Cy(t,{inflateAmount:n},e){t.inflateAmount=n==="auto"?e===1?.33:0:n}var by=(()=>{class t extends _n{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(e,i,o,a){return l0(e,i,o,a)}parseArrayData(e,i,o,a){return l0(e,i,o,a)}parseObjectData(e,i,o,a){let{iScale:r,vScale:c}=e,{xAxisKey:p="x",yAxisKey:u="y"}=this._parsing,f=r.axis==="x"?p:u,g=c.axis==="x"?p:u,b=[],y,E,D,k;for(y=o,E=o+a;y<E;++y)k=i[y],D={}
217,D[r.axis]=r.parse(Vi(k,f),y),b.push(nu(Vi(k,g),D,c,y));return b}updateRangeFromParsed(e,i,o,a){super.updateRangeFromParsed(e,i,o,a);let r=o._custom;r&&i===this._cachedMeta.vScale&&(e.min=Math.min(e.min,r.min),e.max=Math.max(e.max,r.max))}getMaxOverflow(){return 0}getLabelAndValue(e){let i=this._cachedMeta,{iScale:o,vScale:a}=i,r=this.getParsed(e),c=r._custom,p=uc(c)?"["+c.start+", "+c.end+"]":""+a.getLabelForValue(r[a.axis]);return{label:""+o.getLabelForValue(r[o.axis]),value:p}}initialize(){this.enableOptionSharing=!0,super.initialize();let e=this._cachedMeta;e.stack=this.getDataset().stack}update(e){let i=this._cachedMeta;this.updateElements(i.data,0,i.data.length,e)}updateElements(e,i,o,a){let r=a==="reset",{index:c,_cachedMeta:{vScale:p}}=this,u=p.getBasePixel(),f=p.isHorizontal(),g=this._getRuler(),{sharedOptions:b,includeOptions:y}=this._getSharedOptions(i,a);for(let E=i;E<i+o;E++){let D=this.getParsed(E),k=r||Ut(D[p.axis])?{base:u,head:u}:this._calculateBarValuePixels(E),V=this._calculateBarIndexPixels(E,g),N=(D._stacks||{})[p.axis],W={horizontal:f,base:k.base,enableBorderRadius:!N||uc(D._custom)||c===N._top||c===N._bottom,x:f?k.head:V.center,y:f?V.center:k.head,height:f?V.size:Math.abs(k.size),width:f?Math.abs(k.size):V.size};y&&(W.options=b||this.resolveDataElementOptions(E,e[E].active?"active":a));let q=W.options||e[E].options;gy(W,q,N,c),Cy(W,q,g.ratio),this.updateElement(e[E],E,W,a)}}_getStacks(e,i){let{iScale:o}=this._cachedMeta,a=o.getMatchingVisibleMetas(this._type).filter(u=>u.controller.options.grouped),r=o.options.stacked,c=[],p=u=>{let f=u.controller.getParsed(i),g=f&&f[u.vScale.axis];if(Ut(g)||isNaN(g))return!0};for(let u of a)if(!(i!==void 0&&p(u))&&((r===!1||c.indexOf(u.stack)===-1||r===void 0&&u.stack===void 0)&&c.push(u.stack),u.index===e))break;return c.length||c.push(void 0),c}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,i,o){let a=this._getStacks(e,o),r=i!==void 0?a.indexOf(i):-1;return r===-1?a.length-1:r}_getRuler(){let e=this.options,i=this._cachedMeta,o=i.iScale,a=[],r,c;for(r=0,c=i.data.length;r<c;++r)a.push(o.getPixelForValue(this.getParsed(r)[o.axis],r));let p=e.barThickness;return{min:p||dy(i),pixels:a,start:o._startPixel,end:o._endPixel,stackCount:this._getStackCount(),scale:o,grouped:e.grouped,ratio:p?1:e.categoryPercentage*e.barPercentage}}_calculateBarValuePixels(e){let{_cachedMeta:{vScale:i,_stacked:o,index:a},options:{base:r,minBarLength:c}}=this,p=r||0,u=this.getParsed(e),f=u._custom,g=uc(f),b=u[i.axis],y=0,E=o?this.applyStack(i,u,o):b,D,k;E!==b&&(y=E-b,E=b),g&&(b=f.barStart,E=f.barEnd-f.barStart,b!==0&&_i(b)!==_i(f.barEnd)&&(y=0),y+=b);let V=!Ut(r)&&!g?r:y,N=i.getPixelForValue(V);if(this.chart.getDataVisibility(e)?D=i.getPixelForValue(y+E):D=N,k=D-N,Math.abs(k)<c){k=fy(k,i,p)*c,b===p&&(N-=k/2);let W=i.getPixelForDecimal(0),q=i.getPixelForDecimal(1),j=Math.min(W,q),G=Math.max(W,q);N=Math.max(Math.min(N,G),j),D=N+k,o&&!g&&(u._stacks[i.axis]._visualValues[a]=i.getValueForPixel(D)-i.getValueForPixel(N))}if(N===i.getPixelForValue(p)){let W=_i(k)*i.getLineWidthForValue(p)/2;N+=W,k-=W}return{size:k,base:N,head:D,center:D+k/2}}_calculateBarIndexPixels(e,i){let o=i.scale,a=this.options,r=a.skipNull,c=At(a.maxBarThickness,1/0),p,u;if(i.grouped){let f=r?this._getStackCount(e):i.stackCount,g=a.barThickness==="flex"?py(e,i,a,f):my(e,i,a,f),b=this._getStackIndex(this.index,this._cachedMeta.stack,r?e:void 0);p=g.start+g.chunk*b+g.chunk/2,u=Math.min(c,g.chunk*g.ratio)}else p=o.getPixelForValue(this.getParsed(e)[o.axis],e),u=Math.min(c,i.min*i.ratio);return{base:p-u/2,head:p+u/2,center:p,size:u}}draw(){let e=this._cachedMeta,i=e.vScale,o=e.data,a=o.length,r=0;for(;r<a;++r)this.getParsed(r)[i.axis]!==null&&o[r].draw(this._ctx)}}return t})(),xy=(()=>{class t extends _n{static id="bubble";static defaults={datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}};static overrides={scales:{x:{type:"linear"},y:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(e,i,o,a){let r=super.parsePrimitiveData(e,i,o,a);for(let c=0;c<r.length;c++)r[c]._custom=this.resolveDataElementOptions(c+o).radius;return r}parseArrayData(e,i,o,a){let r=super.parseArrayData(e,i,o,a);for(let c=0;c<r.length;c++){let p=i[o+c];r[c]._custom=At(p[2],this.resolveDataElementOptions(c+o).radius)}return r}parseObjectData(e,i,o,a){let r=super.parseObjectData(e,i,o,a);for(let c=0;c<r.length;c++){let p=i[o+c];r[c]._custom=At(p&&p.r&&+p.r,this.resolveDataElementOptions(c+o).radius)}return r}getMaxOverflow(){let e=this._cachedMeta.data,i=0;for(let o=e.length-1;o>=0;--o)i=Math.max(i,e[o].size(this.resolveDataElementOptions(o))/2);return i>0&&i}getLabelAndValue(e){let i=this._cachedMeta,o=this.chart.data.labels||[],{xScale:a,yScale:r}=i,c=this.getParsed(e),p=a.getLabelForValue(c.x),u=r.getLabelForValue(c.y),f=c._custom;return{label:o[e]||"",value:"("+p+", "+u+(f?", "+f:"")+")"}}update(e){let i=this._cachedMeta.data;this.updateElements(i,0,i.length,e)}updateElements(e,i,o,a){let r=a==="reset",{iScale:c,vScale:p}=this._cachedMeta,{sharedOptions:u,includeOptions:f}=this._getSharedOptions(i,a),g=c.axis,b=p.axis;for(let y=i;y<i+o;y++){let E=e[y],D=!r&&this.getParsed(y),k={},V=k[g]=r?c.getPixelForDecimal(.5):c.getPixelForValue(D[g]),N=k[b]=r?p.getBasePixel():p.getPixelForValue(D[b]);k.skip=isNaN(V)||isNaN(N),f&&(k.options=u||this.resolveDataElementOptions(y,E.active?"active":a),r&&(k.options.radius=0)),this.updateElement(E,y,k,a)}}resolveDataElementOptions(e,i){let o=this.getParsed(e),a=super.resolveDataElementOptions(e,i);a.$shared&&(a=Object.assign({},a,{$shared:!1}));let r=a.radius;return i!=="active"&&(a.radius=0),a.radius+=At(o&&o._custom,r),a}}return t})();
vendor: 4,761 bytes, line 217
217function vy(t,n,e){let i=1,o=1,a=0,r=0;if(n<le){let c=t,p=c+n,u=Math.cos(c),f=Math.sin(c),g=Math.cos(p),b=Math.sin(p),y=(W,q,j)=>Eo(W,c,p,!0)?1:Math.max(q,q*e,j,j*e),E=(W,q,j)=>Eo(W,c,p,!0)?-1:Math.min(q,q*e,j,j*e),D=y(0,u,g),k=y(ye,f,b),V=E(se,u,g),N=E(se+ye,f,b);i=(D-V)/2,o=(k-N)/2,a=-(D+V)/2,r=-(k+N)/2}return{ratioX:i,ratioY:o,offsetX:a,offsetY:r}}var zc=(()=>{class t extends _n{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let i=e.data;if(i.labels.length&&i.datasets.length){let{labels:{pointStyle:o,color:a}}=e.legend.options;return i.labels.map((r,c)=>{let u=e.getDatasetMeta(0).controller.getStyle(c);return{text:r,fillStyle:u.backgroundColor,strokeStyle:u.borderColor,fontColor:a,lineWidth:u.borderWidth,pointStyle:o,hidden:!e.getDataVisibility(c),index:c}})}return[]}},onClick(e,i,o){o.chart.toggleDataVisibility(i.index),o.chart.update()}}}};constructor(e,i){super(e,i),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,i){let o=this.getDataset().data,a=this._cachedMeta;if(this._parsing===!1)a._parsed=o;else{let r=u=>+o[u];if(zt(o[e])){let{key:u="value"}=this._parsing;r=f=>+Vi(o[f],u)}let c,p;for(c=e,p=e+i;c<p;++c)a._parsed[c]=r(c)}}_getRotation(){return di(this.options.rotation-90)}_getCircumference(){return di(this.options.circumference)}_getRotationExtents(){let e=le,i=-le;for(let o=0;o<this.chart.data.datasets.length;++o)if(this.chart.isDatasetVisible(o)&&this.chart.getDatasetMeta(o).type===this._type){let a=this.chart.getDatasetMeta(o).controller,r=a._getRotation(),c=a._getCircumference();e=Math.min(e,r),i=Math.max(i,r+c)}return{rotation:e,circumference:i-e}}update(e){let i=this.chart,{chartArea:o}=i,a=this._cachedMeta,r=a.data,c=this.getMaxBorderWidth()+this.getMaxOffset(r)+this.options.spacing,p=Math.max((Math.min(o.width,o.height)-c)/2,0),u=Math.min(Tp(this.options.cutout,p),1),f=this._getRingWeight(this.index),{circumference:g,rotation:b}=this._getRotationExtents(),{ratioX:y,ratioY:E,offsetX:D,offsetY:k}=vy(b,g,u),V=(o.width-c)/y,N=(o.height-c)/E,W=Math.max(Math.min(V,N)/2,0),q=Ll(this.options.radius,W),j=Math.max(q*u,0),G=(q-j)/this._getVisibleDatasetWeightTotal();this.offsetX=D*q,this.offsetY=k*q,a.total=this.calculateTotal(),this.outerRadius=q-G*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-G*f,0),this.updateElements(r,0,r.length,e)}_circumference(e,i){let o=this.options,a=this._cachedMeta,r=this._getCircumference();return i&&o.animation.animateRotate||!this.chart.getDataVisibility(e)||a._parsed[e]===null||a.data[e].hidden?0:this.calculateCircumference(a._parsed[e]*r/le)}updateElements(e,i,o,a){let r=a==="reset",c=this.chart,p=c.chartArea,f=c.options.animation,g=(p.left+p.right)/2,b=(p.top+p.bottom)/2,y=r&&f.animateScale,E=y?0:this.innerRadius,D=y?0:this.outerRadius,{sharedOptions:k,includeOptions:V}=this._getSharedOptions(i,a),N=this._getRotation(),W;for(W=0;W<i;++W)N+=this._circumference(W,r);for(W=i;W<i+o;++W){let q=this._circumference(W,r),j=e[W],G={x:g+this.offsetX,y:b+this.offsetY,startAngle:N,endAngle:N+q,circumference:q,outerRadius:D,innerRadius:E};V&&(G.options=k||this.resolveDataElementOptions(W,j.active?"active":a)),N+=q,this.updateElement(j,W,G,a)}}calculateTotal(){let e=this._cachedMeta,i=e.data,o=0,a;for(a=0;a<i.length;a++){let r=e._parsed[a];r!==null&&!isNaN(r)&&this.chart.getDataVisibility(a)&&!i[a].hidden&&(o+=Math.abs(r))}return o}calculateCircumference(e){let i=this._cachedMeta.total;return i>0&&!isNaN(e)?le*(Math.abs(e)/i):0}getLabelAndValue(e){let i=this._cachedMeta,o=this.chart,a=o.data.labels||[],r=To(i._parsed[e],o.options.locale);return{label:a[e]||"",value:r}}getMaxBorderWidth(e){let i=0,o=this.chart,a,r,c,p,u;if(!e){for(a=0,r=o.data.datasets.length;a<r;++a)if(o.isDatasetVisible(a)){c=o.getDatasetMeta(a),e=c.data,p=c.controller;break}}if(!e)return 0;for(a=0,r=e.length;a<r;++a)u=p.resolveDataElementOptions(a),u.borderAlign!=="inner"&&(i=Math.max(i,u.borderWidth||0,u.hoverBorderWidth||0));return i}getMaxOffset(e){let i=0;for(let o=0,a=e.length;o<a;++o){let r=this.resolveDataElementOptions(o);i=Math.max(i,r.offset||0,r.hoverOffset||0)}return i}_getRingWeightOffset(e){let i=0;for(let o=0;o<e;
217++o)this.chart.isDatasetVisible(o)&&(i+=this._getRingWeight(o));return i}_getRingWeight(e){return Math.max(At(this.chart.data.datasets[e].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}return t})(),yy=(()=>{class t extends _n{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){let i=this._cachedMeta,{dataset:o,data:a=[],_dataset:r}=i,c=this.chart._animationsDisabled,{start:p,count:u}=ql(i,a,c);this._drawStart=p,this._drawCount=u,Yl(i)&&(p=0,u=a.length),o._chart=this.chart,o._datasetIndex=this.index,o._decimated=!!r._decimated,o.points=a;let f=this.resolveDatasetElementOptions(e);this.options.showLine||(f.borderWidth=0),f.segment=this.options.segment,this.updateElement(o,void 0,{animated:!c,options:f},e),this.updateElements(a,p,u,e)}updateElements(e,i,o,a){let r=a==="reset",{iScale:c,vScale:p,_stacked:u,_dataset:f}=this._cachedMeta,{sharedOptions:g,includeOptions:b}=this._getSharedOptions(i,a),y=c.axis,E=p.axis,{spanGaps:D,segment:k}=this.options,V=Rn(D)?D:Number.POSITIVE_INFINITY,N=this.chart._animationsDisabled||r||a==="none",W=i+o,q=e.length,j=i>0&&this.getParsed(i-1);for(let G=0;G<q;++G){let it=e[G],Q=N?it:{};if(G<i||G>=W){Q.skip=!0;continue}let at=this.getParsed(G),Lt=Ut(at[E]),Bt=Q[y]=c.getPixelForValue(at[y],G),Ht=Q[E]=r||Lt?p.getBasePixel():p.getPixelForValue(u?this.applyStack(p,at,u):at[E],G);Q.skip=isNaN(Bt)||isNaN(Ht)||Lt,Q.stop=G>0&&Math.abs(at[y]-j[y])>V,k&&(Q.parsed=at,Q.raw=f.data[G]),b&&(Q.options=g||this.resolveDataElementOptions(G,it.active?"active":a)),N||this.updateElement(it,G,Q,a),j=at}}getMaxOverflow(){let e=this._cachedMeta,i=e.dataset,o=i.options&&i.options.borderWidth||0,a=e.data||[];if(!a.length)return o;let r=a[0].size(this.resolveDataElementOptions(0)),c=a[a.length-1].size(this.resolveDataElementOptions(a.length-1));return Math.max(o,r,c)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}return t})(),ou=(()=>{class t extends _n{static id="polarArea";static defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let i=e.data;if(i.labels.length&&i.datasets.length){let{labels:{pointStyle:o,color:a}}=e.legend.options;return i.labels.map((r,c)=>{let u=e.getDatasetMeta(0).controller.getStyle(c);return{text:r,fillStyle:u.backgroundColor,strokeStyle:u.borderColor,fontColor:a,lineWidth:u.borderWidth,pointStyle:o,hidden:!e.getDataVisibility(c),index:c}})}return[]}},onClick(e,i,o){o.chart.toggleDataVisibility(i.index),o.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(e,i){super(e,i),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){let i=this._cachedMeta,o=this.chart,a=o.data.labels||[],r=To(i._parsed[e].r,o.options.locale);return{label:a[e]||"",value:r}}parseObjectData(e,i,o,a){return nc.bind(this)(e,i,o,a)}update(e){let i=this._cachedMeta.data;this._updateRadius(),this.updateElements(i,0,i.length,e)}getMinMax(){let e=this._cachedMeta,i={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return e.data.forEach((o,a)=>{let r=this.getParsed(a).r;!isNaN(r)&&this.chart.getDataVisibility(a)&&(r<i.min&&(i.min=r),r>i.max&&(i.max=r))}),i}_updateRadius(){let e=this.chart,i=e.chartArea,o=e.options,a=Math.min(i.right-i.left,i.bottom-i.top),r=Math.max(a/2,0),c=Math.max(o.cutoutPercentage?r/100*o.cutoutPercentage:1,0),p=(r-c)/e.getVisibleDatasetCount();this.outerRadius=r-p*this.index,this.innerRadius=this.outerRadius-p}updateElements(e,i,o,a){let r=a==="reset",c=this.chart,u=c.options.animation,f=this._cachedMeta.rScale,g=f.xCenter,b=f.yCenter,y=f.getIndexAngle(0)-.5*se,E=y,D,k=360/this.countVisibleElements();for(D=0;D<i;++D)E+=this._computeAngle(D,a,k);for(D=i;D<i+o;D++){let V=e[D],N=E,W=E+this._computeAngle(D,a,k),q=c.getDataVisibility(D)?f.getDistanceFromCenterForValue(this.getParsed(D).r):0;E=W,r&&(u.animateScale&&(q=0),u.animateRotate&&(N=W=y));let j={x:g,y:b,innerRadius:0,outerRadius:q,startAngle:N,endAngle:W,options:this.resolveDataElementOptions(D,V.active?"active":a)};this.updateElement(V,D,j,a)}}countVisibleElements(){let e=this._cachedMeta,i=0;return e.data.forEach((o,a)=>{!isNaN(this.getParsed(a).r)&&this.chart.getDataVisibility(a)&&i++}),i}_computeAngle(e,i,o){return this.chart.getDataVisibility(e)?di(this.resolveDataElementOptions(e,i).angle||o):0}}return t})(),Sy=(()=>{class t extends zc{static id="pie";
217static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}}return t})(),My=(()=>{class t extends _n{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(e){let i=this._cachedMeta.vScale,o=this.getParsed(e);return{label:i.getLabels()[e],value:""+i.getLabelForValue(o[i.axis])}}parseObjectData(e,i,o,a){return nc.bind(this)(e,i,o,a)}update(e){let i=this._cachedMeta,o=i.dataset,a=i.data||[],r=i.iScale.getLabels();if(o.points=a,e!=="resize"){let c=this.resolveDatasetElementOptions(e);this.options.showLine||(c.borderWidth=0);let p={_loop:!0,_fullLoop:r.length===a.length,options:c};this.updateElement(o,void 0,p,e)}this.updateElements(a,0,a.length,e)}updateElements(e,i,o,a){let r=this._cachedMeta.rScale,c=a==="reset";for(let p=i;p<i+o;p++){let u=e[p],f=this.resolveDataElementOptions(p,u.active?"active":a),g=r.getPointPositionForValue(p,this.getParsed(p).r),b=c?r.xCenter:g.x,y=c?r.yCenter:g.y,E={x:b,y,angle:g.angle,skip:isNaN(b)||isNaN(y),options:f};this.updateElement(u,p,E,a)}}}return t})(),wy=(()=>{class t extends _n{static id="scatter";static defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};static overrides={interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}};getLabelAndValue(e){let i=this._cachedMeta,o=this.chart.data.labels||[],{xScale:a,yScale:r}=i,c=this.getParsed(e),p=a.getLabelForValue(c.x),u=r.getLabelForValue(c.y);return{label:o[e]||"",value:"("+p+", "+u+")"}}update(e){let i=this._cachedMeta,{data:o=[]}=i,a=this.chart._animationsDisabled,{start:r,count:c}=ql(i,o,a);if(this._drawStart=r,this._drawCount=c,Yl(i)&&(r=0,c=o.length),this.options.showLine){this.datasetElementType||this.addElements();let{dataset:p,_dataset:u}=i;p._chart=this.chart,p._datasetIndex=this.index,p._decimated=!!u._decimated,p.points=o;let f=this.resolveDatasetElementOptions(e);f.segment=this.options.segment,this.updateElement(p,void 0,{animated:!a,options:f},e)}else this.datasetElementType&&(delete i.dataset,this.datasetElementType=!1);this.updateElements(o,r,c,e)}addElements(){let{showLine:e}=this.options;!this.datasetElementType&&e&&(this.datasetElementType=this.chart.registry.getElement("line")),super.addElements()}updateElements(e,i,o,a){let r=a==="reset",{iScale:c,vScale:p,_stacked:u,_dataset:f}=this._cachedMeta,g=this.resolveDataElementOptions(i,a),b=this.getSharedOptions(g),y=this.includeOptions(a,b),E=c.axis,D=p.axis,{spanGaps:k,segment:V}=this.options,N=Rn(k)?k:Number.POSITIVE_INFINITY,W=this.chart._animationsDisabled||r||a==="none",q=i>0&&this.getParsed(i-1);for(let j=i;j<i+o;++j){let G=e[j],it=this.getParsed(j),Q=W?G:{},at=Ut(it[D]),Lt=Q[E]=c.getPixelForValue(it[E],j),Bt=Q[D]=r||at?p.getBasePixel():p.getPixelForValue(u?this.applyStack(p,it,u):it[D],j);Q.skip=isNaN(Lt)||isNaN(Bt)||at,Q.stop=j>0&&Math.abs(it[E]-q[E])>N,V&&(Q.parsed=it,Q.raw=f.data[j]),y&&(Q.options=b||this.resolveDataElementOptions(j,G.active?"active":a)),W||this.updateElement(G,j,Q,a),q=it}this.updateSharedOptions(b,a,g)}getMaxOverflow(){let e=this._cachedMeta,i=e.data||[];if(!this.options.showLine){let p=0;for(let u=i.length-1;u>=0;--u)p=Math.max(p,i[u].size(this.resolveDataElementOptions(u))/2);return p>0&&p}let o=e.dataset,a=o.options&&o.options.borderWidth||0;if(!i.length)return a;let r=i[0].size(this.resolveDataElementOptions(0)),c=i[i.length-1].size(this.resolveDataElementOptions(i.length-1));return Math.max(a,r,c)/2}}return t})(),Ey=Object.freeze({__proto__:null,BarController:by,BubbleController:xy,DoughnutController:zc,LineController:yy,PieController:Sy,PolarAreaController:ou,RadarController:My,ScatterController:wy});function Fn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}var yc=class t{static override(n){Object.assign(t.prototype,n)}options;constructor(n){this.options=n||{}}init(){}formats(){return Fn()}parse(){return Fn()}format(){return Fn()}add(){return Fn()}diff(){return Fn()}startOf(){return Fn()}endOf(){return Fn()}},Ty={_date:yc};function Dy(t,n,e,i){let{controller:o,data:a,_sorted:r}=t,c=o._cachedMeta.iScale;if(c&&n===c.axis&&n!=="r"&&r&&a.length){let p=c._reversePixels?Rp:Si;if(i){if(o._sharedOptions){let u=a[0],f=typeof u.getRange=="function"&&u.getRange(n);if(f){let g=p(a,n,e-f),b=p(a,n,e+f);return{lo:g.lo,hi:b.hi}}}}else return p(a,n,e)}return{lo:0,hi:a.length-1}}function za(t,n,e,i,o){let a=t.getSortedVisibleDatasetMetas(),r=e[n];for(let c=0,p=a.length;c<p;++c){let{index:u,data:f}=a[c],{lo:g,hi:b}=Dy(a[c],n,r,o);for(let y=g;y<=b;++y){let E=f[y];E.skip||i(E,u,y)}}}function Py(t){let n=t.indexOf("x")!==-1,e=t.indexOf("y")!==-1;return function(i,o){let a=n?Math.abs(i.x-o.x):0,r=e?Math.abs(i.y-o.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(r,2))}}function fc(t,n,e,i,o){let a=[];return!o&&!t.isPointInArea(n)||za(t,e,n,function(c,p,u){!o&&!Mi(c,t.chartArea,0)||c.inRange(n.x,n.y,i)&&a.push({element:c,datasetIndex:p,index:u})},!0),a}function ky(t,n,e,i){let o=[];function a(r,c,p){let{startAngle:u,endAngle:f}=r.getProps(["startAngle","endAngle"],i),{angle:g}=Hl(r,{x:n.x,y:n.y});Eo(g,u,f)&&o.push({element:r,datasetIndex:c,index:p})}return za(t,e,n,a),o}function Oy(t,n,e,i,o,a){let r=[],c=Py(e),p=Number.POSITIVE_INFINITY;function u(f,g,b){let y=f.inRange(n.x,n.y,o);if(i&&!y)return;let E=f.getCenterPoint(o);if(!(!!a||t.isPointInArea(E))&&!y)return;let k=c(n,E);k<p?(r=[{element:f,datasetIndex:g,index:b}],p=k):k===p&&r.push({element:f,datasetIndex:g,index:b})}return za(t,e,n,u),r}function hc(t,n,e,i,o,a){return!a&&!t.isPointInArea(n)?[]:e==="r"&&!i?ky(t,n,e,o):Oy(t,n,e,i,o,a)}function m0(t,n,e,i,o){let a=[],r=e==="x"?"inXRange":"inYRange",c=!1;return za(t,e,n,(p,u,f)=>{p[r](n[e],o)&&(a.push({element:p,datasetIndex:u,index:f}),c=c||p.inRange(n.x,n.y,o))}),i&&!c?[]:a}var Iy={evaluateInteractionItems:za,modes:{index(t,n,e,i){let o=hn(n,t),a=e.axis||"x",r=e.includeInvisible||!1,c=e.intersect?fc(t,o,a,i,r):hc(t,o,a,!1,i,r),p=[];
vendor: 55,328 bytes, line 217
217return c.length?(t.getSortedVisibleDatasetMetas().forEach(u=>{let f=c[0].index,g=u.data[f];g&&!g.skip&&p.push({element:g,datasetIndex:u.index,index:f})}),p):[]},dataset(t,n,e,i){let o=hn(n,t),a=e.axis||"xy",r=e.includeInvisible||!1,c=e.intersect?fc(t,o,a,i,r):hc(t,o,a,!1,i,r);if(c.length>0){let p=c[0].datasetIndex,u=t.getDatasetMeta(p).data;c=[];for(let f=0;f<u.length;++f)c.push({element:u[f],datasetIndex:p,index:f})}return c},point(t,n,e,i){let o=hn(n,t),a=e.axis||"xy",r=e.includeInvisible||!1;return fc(t,o,a,i,r)},nearest(t,n,e,i){let o=hn(n,t),a=e.axis||"xy",r=e.includeInvisible||!1;return hc(t,o,a,e.intersect,i,r)},x(t,n,e,i){let o=hn(n,t);return m0(t,o,"x",e.intersect,i)},y(t,n,e,i){let o=hn(n,t);return m0(t,o,"y",e.intersect,i)}}},au=["left","top","right","bottom"];function Ia(t,n){return t.filter(e=>e.pos===n)}function p0(t,n){return t.filter(e=>au.indexOf(e.pos)===-1&&e.box.axis===n)}function Ra(t,n){return t.sort((e,i)=>{let o=n?i:e,a=n?e:i;return o.weight===a.weight?o.index-a.index:o.weight-a.weight})}function Ry(t){let n=[],e,i,o,a,r,c;for(e=0,i=(t||[]).length;e<i;++e)o=t[e],{position:a,options:{stack:r,stackWeight:c=1}}=o,n.push({index:e,box:o,pos:a,horizontal:o.isHorizontal(),weight:o.weight,stack:r&&a+r,stackWeight:c});return n}function Ay(t){let n={};for(let e of t){let{stack:i,pos:o,stackWeight:a}=e;if(!i||!au.includes(o))continue;let r=n[i]||(n[i]={count:0,placed:0,weight:0,size:0});r.count++,r.weight+=a}return n}function Fy(t,n){let e=Ay(t),{vBoxMaxWidth:i,hBoxMaxHeight:o}=n,a,r,c;for(a=0,r=t.length;a<r;++a){c=t[a];let{fullSize:p}=c.box,u=e[c.stack],f=u&&c.stackWeight/u.weight;c.horizontal?(c.width=f?f*i:p&&n.availableWidth,c.height=o):(c.width=i,c.height=f?f*o:p&&n.availableHeight)}return e}function By(t){let n=Ry(t),e=Ra(n.filter(u=>u.box.fullSize),!0),i=Ra(Ia(n,"left"),!0),o=Ra(Ia(n,"right")),a=Ra(Ia(n,"top"),!0),r=Ra(Ia(n,"bottom")),c=p0(n,"x"),p=p0(n,"y");return{fullSize:e,leftAndTop:i.concat(a),rightAndBottom:o.concat(p).concat(r).concat(c),chartArea:Ia(n,"chartArea"),vertical:i.concat(o).concat(p),horizontal:a.concat(r).concat(c)}}function u0(t,n,e,i){return Math.max(t[e],n[e])+Math.max(t[i],n[i])}function ru(t,n){t.top=Math.max(t.top,n.top),t.left=Math.max(t.left,n.left),t.bottom=Math.max(t.bottom,n.bottom),t.right=Math.max(t.right,n.right)}function Ly(t,n,e,i){let{pos:o,box:a}=e,r=t.maxPadding;if(!zt(o)){e.size&&(t[o]-=e.size);let g=i[e.stack]||{size:0,count:1};g.size=Math.max(g.size,e.horizontal?a.height:a.width),e.size=g.size/g.count,t[o]+=e.size}a.getPadding&&ru(r,a.getPadding());let c=Math.max(0,n.outerWidth-u0(r,t,"left","right")),p=Math.max(0,n.outerHeight-u0(r,t,"top","bottom")),u=c!==t.w,f=p!==t.h;return t.w=c,t.h=p,e.horizontal?{same:u,other:f}:{same:f,other:u}}function Ny(t){let n=t.maxPadding;function e(i){let o=Math.max(n[i]-t[i],0);return t[i]+=o,o}t.y+=e("top"),t.x+=e("left"),e("right"),e("bottom")}function Vy(t,n){let e=n.maxPadding;function i(o){let a={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{a[r]=Math.max(n[r],e[r])}),a}return i(t?["left","right"]:["top","bottom"])}function Ba(t,n,e,i){let o=[],a,r,c,p,u,f;for(a=0,r=t.length,u=0;a<r;++a){c=t[a],p=c.box,p.update(c.width||n.w,c.height||n.h,Vy(c.horizontal,n));let{same:g,other:b}=Ly(n,e,c,i);u|=g&&o.length,f=f||b,p.fullSize||o.push(c)}return u&&Ba(o,n,e,i)||f}function ds(t,n,e,i,o){t.top=e,t.left=n,t.right=n+i,t.bottom=e+o,t.width=i,t.height=o}function f0(t,n,e,i){let o=e.padding,{x:a,y:r}=n;for(let c of t){let p=c.box,u=i[c.stack]||{count:1,placed:0,weight:1},f=c.stackWeight/u.weight||1;if(c.horizontal){let g=n.w*f,b=u.size||p.height;Mo(u.start)&&(r=u.start),p.fullSize?ds(p,o.left,r,e.outerWidth-o.right-o.left,b):ds(p,n.left+u.placed,r,g,b),u.start=r,u.placed+=g,r=p.bottom}else{let g=n.h*f,b=u.size||p.width;Mo(u.start)&&(a=u.start),p.fullSize?ds(p,a,o.top,b,e.outerHeight-o.bottom-o.top):ds(p,a,n.top+u.placed,b,g),u.start=a,u.placed+=g,a=p.right}}n.x=a,n.y=r}var Ue={addBox(t,n){t.boxes||(t.boxes=[]),n.fullSize=n.fullSize||!1,n.position=n.position||"top",n.weight=n.weight||0,n._layers=n._layers||function(){return[{z:0,draw(e){n.draw(e)}}]},t.boxes.push(n)},removeBox(t,n){let e=t.boxes?t.boxes.indexOf(n):-1;e!==-1&&t.boxes.splice(e,1)},configure(t,n,e){n.fullSize=e.fullSize,n.position=e.position,n.weight=e.weight},update(t,n,e,i){if(!t)return;let o=$e(t.options.layout.padding),a=Math.max(n-o.width,0),r=Math.max(e-o.height,0),c=By(t.boxes),p=c.vertical,u=c.horizontal;te(t.boxes,D=>{typeof D.beforeLayout=="function"&&D.beforeLayout()});let f=p.reduce((D,k)=>k.box.options&&k.box.options.display===!1?D:D+1,0)||1,g=Object.freeze({outerWidth:n,outerHeight:e,padding:o,availableWidth:a,availableHeight:r,vBoxMaxWidth:a/2/f,hBoxMaxHeight:r/2}),b=Object.assign({},o);ru(b,$e(i));let y=Object.assign({maxPadding:b,w:a,h:r,x:o.left,y:o.top},o),E=Fy(p.concat(u),g);Ba(c.fullSize,y,g,E),Ba(p,y,g,E),Ba(u,y,g,E)&&Ba(p,y,g,E),Ny(y),f0(c.leftAndTop,y,g,E),y.x+=y.w,y.y+=y.h,f0(c.rightAndBottom,y,g,E),t.chartArea={left:y.left,top:y.top,right:y.left+y.w,bottom:y.top+y.h,height:y.h,width:y.w},te(c.chartArea,D=>{let k=D.box;Object.assign(k,t.chartArea),k.update(y.w,y.h,{left:0,top:0,right:0,bottom:0})})}},xs=class{acquireContext(n,e){}releaseContext(n){return!1}addEventListener(n,e,i){}removeEventListener(n,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(n,e,i,o){return e=Math.max(0,e||n.width),i=i||n.height,{width:e,height:Math.max(0,o?Math.floor(e/o):i)}}isAttached(n){return!0}updateConfig(n){}},Sc=class extends xs{acquireContext(n){return n&&n.getContext&&n.getContext("2d")||null}updateConfig(n){n.options.animation=!1}},_s="$chartjs",$y={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},h0=t=>t===null||t==="";function zy(t,n){let e=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[_s]={initial:{height:i,width:o,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",h0(o)){let a=rc(t,"width");a!==void 0&&(t.width=a)}if(h0(i))if(t.style.height==="")t.height=t.width/(n||2);else{let a=rc(t,"height");a!==void 0&&(t.height=a)}return t}var su=Kp?{passive:!0}:!1;function Hy(t,n,e){t.addEventListener(n,e,su)}function jy(t,n,e){t.canvas.removeEventListener(n,e,su)}function Uy(t,n){let e=$y[t.type]||t.type,{x:i,y:o}=hn(t,n);return{type:e,chart:n,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function vs(t,n){for(let e of t)if(e===n||e.contains(n))return!0}function Wy(t,n,e){let i=t.canvas,o=new MutationObserver(a=>{let r=!1;for(let c of a)r=r||vs(c.addedNodes,i),r=r&&!vs(c.removedNodes,i);r&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}function Gy(t,n,e){let i=t.canvas,o=new MutationObserver(a=>{let r=!1;for(let c of a)r=r||vs(c.removedNodes,i),r=r&&!vs(c.addedNodes,i);r&&e()});return o.observe(document,{childList:!0,subtree:!0}),o}var Na=new Map,g0=0;function lu(){let t=window.devicePixelRatio;t!==g0&&(g0=t,Na.forEach((n,e)=>{e.currentDevicePixelRatio!==t&&n()}))}function qy(t,n){Na.size||window.addEventListener("resize",lu),Na.set(t,n)}function Yy(t){Na.delete(t),Na.size||window.removeEventListener("resize",lu)}function Qy(t,n,e){let i=t.canvas,o=i&&ls(i);if(!o)return;let a=Gl((c,p)=>{let u=o.clientWidth;e(c,p),u<o.clientWidth&&e()},window),r=new ResizeObserver(c=>{let p=c[0],u=p.contentRect.width,f=p.contentRect.height;u===0&&f===0||a(u,f)});return r.observe(o),qy(t,a),r}function gc(t,n,e){e&&e.disconnect(),n==="resize"&&Yy(t)}function Ky(t,n,e){let i=t.canvas,o=Gl(a=>{t.ctx!==null&&e(Uy(a,t))},t);return Hy(i,n,o),o}var Mc=class extends xs{acquireContext(n,e){let i=n&&n.getContext&&n.getContext("2d");return i&&i.canvas===n?(zy(n,e),i):null}releaseContext(n){let e=n.canvas;if(!e[_s])return!1;let i=e[_s].initial;["height","width"].forEach(a=>{let r=i[a];Ut(r)?e.removeAttribute(a):e.setAttribute(a,r)});let o=i.style||{};return Object.keys(o).forEach(a=>{e.style[a]=o[a]}),e.width=e.width,delete e[_s],!0}addEventListener(n,e,i){this.removeEventListener(n,e);let o=n.$proxies||(n.$proxies={}),r={attach:Wy,detach:Gy,resize:Qy}[e]||Ky;o[e]=r(n,e,i)}removeEventListener(n,e){let i=n.$proxies||(n.$proxies={}),o=i[e];if(!o)return;({attach:gc,detach:gc,resize:gc}[e]||jy)(n,e,o),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(n,e,i,o){return Qp(n,e,i,o)}isAttached(n){let e=ls(n);return!!(e&&e.isConnected)}};function Xy(t){return!oc()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Sc:Mc}var Ci=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(n){let{x:e,y:i}=this.getProps(["x","y"],n);return{x:e,y:i}}hasValue(){return Rn(this.x)&&Rn(this.y)}getProps(n,e){let i=this.$animations;if(!e||!i)return this;let o={};return n.forEach(a=>{o[a]=i[a]&&i[a].active()?i[a]._to:this[a]}),o}};function Jy(t,n){let e=t.options.ticks,i=Zy(t),o=Math.min(e.maxTicksLimit||i,i),a=e.major.enabled?e2(n):[],r=a.length,c=a[0],p=a[r-1],u=[];if(r>o)return i2(n,u,a,r/o),u;let f=t2(a,n,o);if(r>0){let g,b,y=r>1?Math.round((p-c)/(r-1)):null;for(ms(n,u,f,Ut(y)?0:c-y,c),g=0,b=r-1;g<b;g++)ms(n,u,f,a[g],a[g+1]);return ms(n,u,f,p,Ut(y)?n.length:p+y),u}return ms(n,u,f),u}function Zy(t){let n=t.options.offset,e=t._tickSize(),i=t._length/e+(n?0:1),o=t._maxLength/e;return Math.floor(Math.min(i,o))}function t2(t,n,e){let i=n2(t),o=n.length/e;if(!i)return Math.max(o,1);let a=kp(i);for(let r=0,c=a.length-1;r<c;r++){let p=a[r];if(p>o)return p}return Math.max(o,1)}function e2(t){let n=[],e,i;for(e=0,i=t.length;e<i;e++)t[e].major&&n.push(e);return n}function i2(t,n,e,i){let o=0,a=e[0],r;for(i=Math.ceil(i),r=0;r<t.length;r++)r===a&&(n.push(t[r]),o++,a=e[o*i])}function ms(t,n,e,i,o){let a=At(i,0),r=Math.min(At(o,t.length),t.length),c=0,p,u,f;for(e=Math.ceil(e),o&&(p=o-i,e=p/Math.floor(p/e)),f=a;f<0;)c++,f=Math.round(a+c*e);for(u=Math.max(a,0);u<r;u++)u===f&&(n.push(t[u]),c++,f=Math.round(a+c*e))}function n2(t){let n=t.length,e,i;if(n<2)return!1;for(i=t[0],e=1;e<n;++e)if(t[e]-t[e-1]!==i)return!1;return i}var o2=t=>t==="left"?"right":t==="right"?"left":t,_0=(t,n,e)=>n==="top"||n==="left"?t[n]+e:t[n]-e,C0=(t,n)=>Math.min(n||t,t);function b0(t,n){let e=[],i=t.length/n,o=t.length,a=0;for(;a<o;a+=i)e.push(t[Math.floor(a)]);return e}function a2(t,n,e){let i=t.ticks.length,o=Math.min(n,i-1),a=t._startPixel,r=t._endPixel,c=1e-6,p=t.getPixelForTick(o),u;if(!(e&&(i===1?u=Math.max(p-a,r-p):n===0?u=(t.getPixelForTick(1)-p)/2:u=(p-t.getPixelForTick(o-1))/2,p+=o<n?u:-u,p<a-c||p>r+c)))return p}function r2(t,n){te(t,e=>{let i=e.gc,o=i.length/2,a;if(o>n){for(a=0;a<o;++a)delete e.data[i[a]];i.splice(0,o)}})}function Aa(t){return t.drawTicks?t.tickLength:0}function x0(t,n){if(!t.display)return 0;let e=Ie(t.font,n),i=$e(t.padding);return(re(t.text)?t.text.length:1)*e.lineHeight+i.height}function s2(t,n){return $i(t,{scale:n,type:"scale"})}function l2(t,n,e){return $i(t,{tick:e,index:n,type:"tick"})}function c2(t,n,e){let i=ns(t);return(e&&n!=="right"||!e&&n==="right")&&(i=o2(i)),i}function d2(t,n,e,i){let{top:o,left:a,bottom:r,right:c,chart:p}=t,{chartArea:u,scales:f}=p,g=0,b,y,E,D=r-o,k=c-a;if(t.isHorizontal()){if(y=Ve(i,a,c),zt(e)){let V=Object.keys(e)[0],N=e[V];E=f[V].getPixelForValue(N)+D-n}else e==="center"?E=(u.bottom+u.top)/2+D-n:E=_0(t,e,n);b=c-a}else{if(zt(e)){let V=Object.keys(e)[0],N=e[V];y=f[V].getPixelForValue(N)-k+n}else e==="center"?y=(u.left+u.right)/2-k+n:y=_0(t,e,n);E=Ve(i,r,o),g=e==="left"?-ye:ye}return{titleX:y,titleY:E,maxWidth:b,rotation:g}}var Ln=class t extends Ci{constructor(n){super(),this.id=n.id,this.type=n.type,this.options=void 0,this.ctx=n.ctx,this.chart=n.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(n){this.options=n.setContext(this.getContext()),this.axis=n.axis,this._userMin=this.parse(n.min),this._userMax=this.parse(n.max),this._suggestedMin=this.parse(n.suggestedMin),this._suggestedMax=this.parse(n.suggestedMax)}parse(n,e){return n}getUserBounds(){let{_userMin:n,_userMax:e,_suggestedMin:i,_suggestedMax:o}=this;return n=Je(n,Number.POSITIVE_INFINITY),e=Je(e,Number.NEGATIVE_INFINITY),i=Je(i,Number.POSITIVE_INFINITY),o=Je(o,Number.NEGATIVE_INFINITY),{min:Je(n,i),max:Je(e,o),minDefined:be(n),maxDefined:be(e)}}getMinMax(n){let{min:e,max:i,minDefined:o,maxDefined:a}=this.getUserBounds(),r;if(o&&a)return{min:e,max:i};let c=this.getMatchingVisibleMetas();for(let p=0,u=c.length;p<u;++p)r=c[p].controller.getMinMax(this,n),o||(e=Math.min(e,r.min)),a||(i=Math.max(i,r.max));return e=a&&e>i?i:e,i=o&&e>i?e:i,{min:Je(e,Je(i,e)),max:Je(i,Je(e,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let n=this.chart.data;return this.options.labels||(this.isHorizontal()?n.xLabels:n.yLabels)||n.labels||[]}getLabelItems(n=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(n))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){oe(this.options.beforeUpdate,[this])}update(n,e,i){let{beginAtZero:o,grace:a,ticks:r}=this.options,c=r.sampleSize;this.beforeUpdate(),this.maxWidth=n,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=jp(this,a,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let p=c<this.ticks.length;this._convertTicksToLabels(p?b0(this.ticks,c):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),r.display&&(r.autoSkip||r.source==="auto")&&(this.ticks=Jy(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),p&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let n=this.options.reverse,e,i;this.isHorizontal()?(e=this.left,i=this.right):(e=this.top,i=this.bottom,n=!n),this._startPixel=e,this._endPixel=i,this._reversePixels=n,this._length=i-e,this._alignToPixels=this.options.alignToPixels}afterUpdate(){oe(this.options.afterUpdate,[this])}beforeSetDimensions(){oe(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){oe(this.options.afterSetDimensions,[this])}_callHooks(n){this.chart.notifyPlugins(n,this.getContext()),oe(this.options[n],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){oe(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(n){let e=this.options.ticks,i,o,a;for(i=0,o=n.length;i<o;i++)a=n[i],a.label=oe(e.callback,[a.value,i,n],this)}afterTickToLabelConversion(){oe(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){oe(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){let n=this.options,e=n.ticks,i=C0(this.ticks.length,n.ticks.maxTicksLimit),o=e.minRotation||0,a=e.maxRotation,r=o,c,p,u;if(!this._isVisible()||!e.display||o>=a||i<=1||!this.isHorizontal()){this.labelRotation=o;return}let f=this._getLabelSizes(),g=f.widest.width,b=f.highest.height,y=Re(this.chart.width-g,0,this.maxWidth);c=n.offset?this.maxWidth/i:y/(i-1),g+6>c&&(c=y/(i-(n.offset?.5:1)),p=this.maxHeight-Aa(n.grid)-e.padding-x0(n.title,this.chart.options.font),u=Math.sqrt(g*g+b*b),r=es(Math.min(Math.asin(Re((f.highest.height+6)/c,-1,1)),Math.asin(Re(p/u,-1,1))-Math.asin(Re(b/u,-1,1)))),r=Math.max(o,Math.min(a,r))),this.labelRotation=r}afterCalculateLabelRotation(){oe(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){oe(this.options.beforeFit,[this])}fit(){let n={width:0,height:0},{chart:e,options:{ticks:i,title:o,grid:a}}=this,r=this._isVisible(),c=this.isHorizontal();if(r){let p=x0(o,e.options.font);if(c?(n.width=this.maxWidth,n.height=Aa(a)+p):(n.height=this.maxHeight,n.width=Aa(a)+p),i.display&&this.ticks.length){let{first:u,last:f,widest:g,highest:b}=this._getLabelSizes(),y=i.padding*2,E=di(this.labelRotation),D=Math.cos(E),k=Math.sin(E);if(c){let V=i.mirror?0:k*g.width+D*b.height;n.height=Math.min(this.maxHeight,n.height+V+y)}else{let V=i.mirror?0:D*g.width+k*b.height;n.width=Math.min(this.maxWidth,n.width+V+y)}this._calculatePadding(u,f,k,D)}}this._handleMargins(),c?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=n.height):(this.width=n.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(n,e,i,o){let{ticks:{align:a,padding:r},position:c}=this.options,p=this.labelRotation!==0,u=c!=="top"&&this.axis==="x";if(this.isHorizontal()){let f=this.getPixelForTick(0)-this.left,g=this.right-this.getPixelForTick(this.ticks.length-1),b=0,y=0;p?u?(b=o*n.width,y=i*e.height):(b=i*n.height,y=o*e.width):a==="start"?y=e.width:a==="end"?b=n.width:a!=="inner"&&(b=n.width/2,y=e.width/2),this.paddingLeft=Math.max((b-f+r)*this.width/(this.width-f),0),this.paddingRight=Math.max((y-g+r)*this.width/(this.width-g),0)}else{let f=e.height/2,g=n.height/2;a==="start"?(f=0,g=n.height):a==="end"&&(f=e.height,g=0),this.paddingTop=f+r,this.paddingBottom=g+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){oe(this.options.afterFit,[this])}isHorizontal(){let{axis:n,position:e}=this.options;return e==="top"||e==="bottom"||n==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(n){this.beforeTickToLabelConversion(),this.generateTickLabels(n);let e,i;for(e=0,i=n.length;e<i;e++)Ut(n[e].label)&&(n.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let n=this._labelSizes;if(!n){let e=this.options.ticks.sampleSize,i=this.ticks;e<i.length&&(i=b0(i,e)),this._labelSizes=n=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return n}_computeLabelSizes(n,e,i){let{ctx:o,_longestTextCache:a}=this,r=[],c=[],p=Math.floor(e/C0(e,i)),u=0,f=0,g,b,y,E,D,k,V,N,W,q,j;for(g=0;g<e;g+=p){if(E=n[g].label,D=this._resolveTickFontOptions(g),o.font=k=D.string,V=a[k]=a[k]||{data:{},gc:[]},N=D.lineHeight,W=q=0,!Ut(E)&&!re(E))W=Ea(o,V.data,V.gc,W,E),q=N;else if(re(E))for(b=0,y=E.length;b<y;++b)j=E[b],!Ut(j)&&!re(j)&&(W=Ea(o,V.data,V.gc,W,j),q+=N);r.push(W),c.push(q),u=Math.max(W,u),f=Math.max(q,f)}r2(a,e);let G=r.indexOf(u),it=c.indexOf(f),Q=at=>({width:r[at]||0,height:c[at]||0});return{first:Q(0),last:Q(e-1),widest:Q(G),highest:Q(it),widths:r,heights:c}}getLabelForValue(n){return n}getPixelForValue(n,e){return NaN}getValueForPixel(n){}getPixelForTick(n){let e=this.ticks;return n<0||n>e.length-1?null:this.getPixelForValue(e[n].value)}getPixelForDecimal(n){this._reversePixels&&(n=1-n);let e=this._startPixel+n*this._length;return Ip(this._alignToPixels?pn(this.chart,e,0):e)}getDecimalForPixel(n){let e=(n-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:n,max:e}=this;return n<0&&e<0?e:n>0&&e>0?n:0}getContext(n){let e=this.ticks||[];if(n>=0&&n<e.length){let i=e[n];return i.$context||(i.$context=l2(this.getContext(),n,i))}return this.$context||(this.$context=s2(this.chart.getContext(),this))}_tickSize(){let n=this.options.ticks,e=di(this.labelRotation),i=Math.abs(Math.cos(e)),o=Math.abs(Math.sin(e)),a=this._getLabelSizes(),r=n.autoSkipPadding||0,c=a?a.widest.width+r:0,p=a?a.highest.height+r:0;return this.isHorizontal()?p*i>c*o?c/i:p/o:p*o<c*i?p/i:c/o}_isVisible(){let n=this.options.display;return n!=="auto"?!!n:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(n){let e=this.axis,i=this.chart,o=this.options,{grid:a,position:r,border:c}=o,p=a.offset,u=this.isHorizontal(),g=this.ticks.length+(p?1:0),b=Aa(a),y=[],E=c.setContext(this.getContext()),D=E.display?E.width:0,k=D/2,V=function(ue){return pn(i,ue,D)},N,W,q,j,G,it,Q,at,Lt,Bt,Ht,Be;if(r==="top")N=V(this.bottom),it=this.bottom-b,at=N-k,Bt=V(n.top)+k,Be=n.bottom;else if(r==="bottom")N=V(this.top),Bt=n.top,Be=V(n.bottom)-k,it=N+k,at=this.top+b;else if(r==="left")N=V(this.right),G=this.right-b,Q=N-k,Lt=V(n.left)+k,Ht=n.right;else if(r==="right")N=V(this.left),Lt=n.left,Ht=V(n.right)-k,G=N+k,Q=this.left+b;else if(e==="x"){if(r==="center")N=V((n.top+n.bottom)/2+.5);else if(zt(r)){let ue=Object.keys(r)[0],Se=r[ue];N=V(this.chart.scales[ue].getPixelForValue(Se))}Bt=n.top,Be=n.bottom,it=N+k,at=it+b}else if(e==="y"){if(r==="center")N=V((n.left+n.right)/2);else if(zt(r)){let ue=Object.keys(r)[0],Se=r[ue];N=V(this.chart.scales[ue].getPixelForValue(Se))}G=N-k,Q=G-b,Lt=n.left,Ht=n.right}let ei=At(o.ticks.maxTicksLimit,g),ie=Math.max(1,Math.ceil(g/ei));for(W=0;W<g;W+=ie){let ue=this.getContext(W),Se=a.setContext(ue),mi=c.setContext(ue),ze=Se.lineWidth,zn=Se.color,Za=mi.dash||[],Hn=mi.dashOffset,Fo=Se.tickWidth,Bo=Se.tickColor,Lo=Se.tickBorderDash||[],No=Se.tickBorderDashOffset;q=a2(this,W,p),q!==void 0&&(j=pn(i,q,ze),u?G=Q=Lt=Ht=j:it=at=Bt=Be=j,y.push({tx1:G,ty1:it,tx2:Q,ty2:at,x1:Lt,y1:Bt,x2:Ht,y2:Be,width:ze,color:zn,borderDash:Za,borderDashOffset:Hn,tickWidth:Fo,tickColor:Bo,tickBorderDash:Lo,tickBorderDashOffset:No}))}return this._ticksLength=g,this._borderValue=N,y}_computeLabelItems(n){let e=this.axis,i=this.options,{position:o,ticks:a}=i,r=this.isHorizontal(),c=this.ticks,{align:p,crossAlign:u,padding:f,mirror:g}=a,b=Aa(i.grid),y=b+f,E=g?-f:y,D=-di(this.labelRotation),k=[],V,N,W,q,j,G,it,Q,at,Lt,Bt,Ht,Be="middle";if(o==="top")G=this.bottom-E,it=this._getXAxisLabelAlignment();else if(o==="bottom")G=this.top+E,it=this._getXAxisLabelAlignment();else if(o==="left"){let ie=this._getYAxisLabelAlignment(b);it=ie.textAlign,j=ie.x}else if(o==="right"){let ie=this._getYAxisLabelAlignment(b);it=ie.textAlign,j=ie.x}else if(e==="x"){if(o==="center")G=(n.top+n.bottom)/2+y;else if(zt(o)){let ie=Object.keys(o)[0],ue=o[ie];G=this.chart.scales[ie].getPixelForValue(ue)+y}it=this._getXAxisLabelAlignment()}else if(e==="y"){if(o==="center")j=(n.left+n.right)/2-y;else if(zt(o)){let ie=Object.keys(o)[0],ue=o[ie];j=this.chart.scales[ie].getPixelForValue(ue)}it=this._getYAxisLabelAlignment(b).textAlign}e==="y"&&(p==="start"?Be="top":p==="end"&&(Be="bottom"));let ei=this._getLabelSizes();for(V=0,N=c.length;V<N;++V){W=c[V],q=W.label;let ie=a.setContext(this.getContext(V));Q=this.getPixelForTick(V)+a.labelOffset,at=this._resolveTickFontOptions(V),Lt=at.lineHeight,Bt=re(q)?q.length:1;let ue=Bt/2,Se=ie.color,mi=ie.textStrokeColor,ze=ie.textStrokeWidth,zn=it;r?(j=Q,it==="inner"&&(V===N-1?zn=this.options.reverse?"left":"right":V===0?zn=this.options.reverse?"right":"left":zn="center"),o==="top"?u==="near"||D!==0?Ht=-Bt*Lt+Lt/2:u==="center"?Ht=-ei.highest.height/2-ue*Lt+Lt:Ht=-ei.highest.height+Lt/2:u==="near"||D!==0?Ht=Lt/2:u==="center"?Ht=ei.highest.height/2-ue*Lt:Ht=ei.highest.height-Bt*Lt,g&&(Ht*=-1),D!==0&&!ie.showLabelBackdrop&&(j+=Lt/2*Math.sin(D))):(G=Q,Ht=(1-Bt)*Lt/2);let Za;if(ie.showLabelBackdrop){let Hn=$e(ie.backdropPadding),Fo=ei.heights[V],Bo=ei.widths[V],Lo=Ht-Hn.top,No=0-Hn.left;switch(Be){case"middle":Lo-=Fo/2;break;case"bottom":Lo-=Fo;break}switch(it){case"center":No-=Bo/2;break;case"right":No-=Bo;break}Za={left:No,top:Lo,width:Bo+Hn.width,height:Fo+Hn.height,color:ie.backdropColor}}k.push({label:q,font:at,textOffset:Ht,options:{rotation:D,color:Se,strokeColor:mi,strokeWidth:ze,textAlign:zn,textBaseline:Be,translation:[j,G],backdrop:Za}})}return k}_getXAxisLabelAlignment(){let{position:n,ticks:e}=this.options;if(-di(this.labelRotation))return n==="top"?"left":"right";let o="center";return e.align==="start"?o="left":e.align==="end"?o="right":e.align==="inner"&&(o="inner"),o}_getYAxisLabelAlignment(n){let{position:e,ticks:{crossAlign:i,mirror:o,padding:a}}=this.options,r=this._getLabelSizes(),c=n+a,p=r.widest.width,u,f;return e==="left"?o?(f=this.right+a,i==="near"?u="left":i==="center"?(u="center",f+=p/2):(u="right",f+=p)):(f=this.right-c,i==="near"?u="right":i==="center"?(u="center",f-=p/2):(u="left",f=this.left)):e==="right"?o?(f=this.left+a,i==="near"?u="right":i==="center"?(u="center",f-=p/2):(u="left",f-=p)):(f=this.left+c,i==="near"?u="left":i==="center"?(u="center",f+=p/2):(u="right",f=this.right)):u="right",{textAlign:u,x:f}}_computeLabelArea(){if(this.options.ticks.mirror)return;let n=this.chart,e=this.options.position;if(e==="left"||e==="right")return{top:0,left:this.left,bottom:n.height,right:this.right};if(e==="top"||e==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:n.width}}drawBackground(){let{ctx:n,options:{backgroundColor:e},left:i,top:o,width:a,height:r}=this;e&&(n.save(),n.fillStyle=e,n.fillRect(i,o,a,r),n.restore())}getLineWidthForValue(n){let e=this.options.grid;if(!this._isVisible()||!e.display)return 0;let o=this.ticks.findIndex(a=>a.value===n);return o>=0?e.setContext(this.getContext(o)).lineWidth:0}drawGrid(n){let e=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(n)),a,r,c=(p,u,f)=>{!f.width||!f.color||(i.save(),i.lineWidth=f.width,i.strokeStyle=f.color,i.setLineDash(f.borderDash||[]),i.lineDashOffset=f.borderDashOffset,i.beginPath(),i.moveTo(p.x,p.y),i.lineTo(u.x,u.y),i.stroke(),i.restore())};if(e.display)for(a=0,r=o.length;a<r;++a){let p=o[a];e.drawOnChartArea&&c({x:p.x1,y:p.y1},{x:p.x2,y:p.y2},p),e.drawTicks&&c({x:p.tx1,y:p.ty1},{x:p.tx2,y:p.ty2},{color:p.tickColor,width:p.tickWidth,borderDash:p.tickBorderDash,borderDashOffset:p.tickBorderDashOffset})}}drawBorder(){let{chart:n,ctx:e,options:{border:i,grid:o}}=this,a=i.setContext(this.getContext()),r=i.display?a.width:0;if(!r)return;let c=o.setContext(this.getContext(0)).lineWidth,p=this._borderValue,u,f,g,b;this.isHorizontal()?(u=pn(n,this.left,r)-r/2,f=pn(n,this.right,c)+c/2,g=b=p):(g=pn(n,this.top,r)-r/2,b=pn(n,this.bottom,c)+c/2,u=f=p),e.save(),e.lineWidth=a.width,e.strokeStyle=a.color,e.beginPath(),e.moveTo(u,g),e.lineTo(f,b),e.stroke(),e.restore()}drawLabels(n){if(!this.options.ticks.display)return;let i=this.ctx,o=this._computeLabelArea();o&&Pa(i,o);let a=this.getLabelItems(n);for(let r of a){let c=r.options,p=r.font,u=r.label,f=r.textOffset;un(i,u,0,f,p,c)}o&&ka(i)}drawTitle(){let{ctx:n,options:{position:e,title:i,reverse:o}}=this;if(!i.display)return;let a=Ie(i.font),r=$e(i.padding),c=i.align,p=a.lineHeight/2;e==="bottom"||e==="center"||zt(e)?(p+=r.bottom,re(i.text)&&(p+=a.lineHeight*(i.text.length-1))):p+=r.top;let{titleX:u,titleY:f,maxWidth:g,rotation:b}=d2(this,p,e,c);un(n,i.text,0,0,a,{color:i.color,maxWidth:g,rotation:b,textAlign:c2(c,e,o),textBaseline:"middle",translation:[u,f]})}draw(n){this._isVisible()&&(this.drawBackground(),this.drawGrid(n),this.drawBorder(),this.drawTitle(),this.drawLabels(n))}_layers(){let n=this.options,e=n.ticks&&n.ticks.z||0,i=At(n.grid&&n.grid.z,-1),o=At(n.border&&n.border.z,0);return!this._isVisible()||this.draw!==t.prototype.draw?[{z:e,draw:a=>{this.draw(a)}}]:[{z:i,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:e,draw:a=>{this.drawLabels(a)}}]}getMatchingVisibleMetas(n){let e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[],a,r;for(a=0,r=e.length;a<r;++a){let c=e[a];c[i]===this.id&&(!n||c.type===n)&&o.push(c)}return o}_resolveTickFontOptions(n){let e=this.options.ticks.setContext(this.getContext(n));return Ie(e.font)}_maxDigits(){let n=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/n}},Oo=class{constructor(n,e,i){this.type=n,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(n){return Object.prototype.isPrototypeOf.call(this.type.prototype,n.prototype)}register(n){let e=Object.getPrototypeOf(n),i;u2(e)&&(i=this.register(e));let o=this.items,a=n.id,r=this.scope+"."+a;if(!a)throw new Error("class does not have id: "+n);return a in o||(o[a]=n,m2(n,r,i),this.override&&me.override(n.id,n.overrides)),r}get(n){return this.items[n]}unregister(n){let e=this.items,i=n.id,o=this.scope;i in e&&delete e[i],o&&i in me[o]&&(delete me[o][i],this.override&&delete mn[i])}};function m2(t,n,e){let i=vo(Object.create(null),[e?me.get(e):{},me.get(n),t.defaults]);me.set(n,i),t.defaultRoutes&&p2(n,t.defaultRoutes),t.descriptors&&me.describe(n,t.descriptors)}function p2(t,n){Object.keys(n).forEach(e=>{let i=e.split("."),o=i.pop(),a=[t].concat(i).join("."),r=n[e].split("."),c=r.pop(),p=r.join(".");me.route(a,o,p,c)})}function u2(t){return"id"in t&&"defaults"in t}var wc=class{constructor(){this.controllers=new Oo(_n,"datasets",!0),this.elements=new Oo(Ci,"elements"),this.plugins=new Oo(Object,"plugins"),this.scales=new Oo(Ln,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...n){this._each("register",n)}remove(...n){this._each("unregister",n)}addControllers(...n){this._each("register",n,this.controllers)}addElements(...n){this._each("register",n,this.elements)}addPlugins(...n){this._each("register",n,this.plugins)}addScales(...n){this._each("register",n,this.scales)}getController(n){return this._get(n,this.controllers,"controller")}getElement(n){return this._get(n,this.elements,"element")}getPlugin(n){return this._get(n,this.plugins,"plugin")}getScale(n){return this._get(n,this.scales,"scale")}removeControllers(...n){this._each("unregister",n,this.controllers)}removeElements(...n){this._each("unregister",n,this.elements)}removePlugins(...n){this._each("unregister",n,this.plugins)}removeScales(...n){this._each("unregister",n,this.scales)}_each(n,e,i){[...e].forEach(o=>{let a=i||this._getRegistryForType(o);i||a.isForType(o)||a===this.plugins&&o.id?this._exec(n,a,o):te(o,r=>{let c=i||this._getRegistryForType(r);this._exec(n,c,r)})})}_exec(n,e,i){let o=ts(n);oe(i["before"+o],[],i),e[n](i),oe(i["after"+o],[],i)}_getRegistryForType(n){for(let e=0;e<this._typedRegistries.length;e++){let i=this._typedRegistries[e];if(i.isForType(n))return i}return this.plugins}_get(n,e,i){let o=e.get(n);if(o===void 0)throw new Error('"'+n+'" is not a registered '+i+".");return o}},Di=new wc,Ec=class{constructor(){this._init=[]}notify(n,e,i,o){e==="beforeInit"&&(this._init=this._createDescriptors(n,!0),this._notify(this._init,n,"install"));let a=o?this._descriptors(n).filter(o):this._descriptors(n),r=this._notify(a,n,e,i);return e==="afterDestroy"&&(this._notify(a,n,"stop"),this._notify(this._init,n,"uninstall")),r}_notify(n,e,i,o){o=o||{};for(let a of n){let r=a.plugin,c=r[i],p=[e,o,a.options];if(oe(c,p,r)===!1&&o.cancelable)return!1}return!0}invalidate(){Ut(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(n){if(this._cache)return this._cache;let e=this._cache=this._createDescriptors(n);return this._notifyStateChanges(n),e}_createDescriptors(n,e){let i=n&&n.config,o=At(i.options&&i.options.plugins,{}),a=f2(i);return o===!1&&!e?[]:g2(n,a,o,e)}_notifyStateChanges(n){let e=this._oldCache||[],i=this._cache,o=(a,r)=>a.filter(c=>!r.some(p=>c.plugin.id===p.plugin.id));this._notify(o(e,i),n,"stop"),this._notify(o(i,e),n,"start")}};function f2(t){let n={},e=[],i=Object.keys(Di.plugins.items);for(let a=0;a<i.length;a++)e.push(Di.getPlugin(i[a]));let o=t.plugins||[];for(let a=0;a<o.length;a++){let r=o[a];e.indexOf(r)===-1&&(e.push(r),n[r.id]=!0)}return{plugins:e,localIds:n}}function h2(t,n){return!n&&t===!1?null:t===!0?{}:t}function g2(t,{plugins:n,localIds:e},i,o){let a=[],r=t.getContext();for(let c of n){let p=c.id,u=h2(i[p],o);u!==null&&a.push({plugin:c,options:_2(t.config,{plugin:c,local:e[p]},u,r)})}return a}function _2(t,{plugin:n,local:e},i,o){let a=t.pluginScopeKeys(n),r=t.getOptionScopes(i,a);return e&&n.defaults&&r.push(n.defaults),t.createResolver(r,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Tc(t,n){let e=me.datasets[t]||{};return((n.datasets||{})[t]||{}).indexAxis||n.indexAxis||e.indexAxis||"x"}function C2(t,n){let e=t;return t==="_index_"?e=n:t==="_value_"&&(e=n==="x"?"y":"x"),e}function b2(t,n){return t===n?"_index_":"_value_"}function v0(t){if(t==="x"||t==="y"||t==="r")return t}function x2(t){if(t==="top"||t==="bottom")return"x";if(t==="left"||t==="right")return"y"}function Dc(t,...n){if(v0(t))return t;for(let e of n){let i=e.axis||x2(e.position)||t.length>1&&v0(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function y0(t,n,e){if(e[n+"AxisID"]===t)return{axis:n}}function v2(t,n){if(n.data&&n.data.datasets){let e=n.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(e.length)return y0(t,"x",e[0])||y0(t,"y",e[0])}return{}}function y2(t,n){let e=mn[t.type]||{scales:{}},i=n.scales||{},o=Tc(t.type,n),a=Object.create(null);return Object.keys(i).forEach(r=>{let c=i[r];if(!zt(c))return console.error(`Invalid scale configuration for scale: ${r}`);if(c._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);let p=Dc(r,c,v2(r,t),me.scales[c.type]),u=b2(p,o),f=e.scales||{};a[r]=So(Object.create(null),[{axis:p},c,f[p],f[u]])}),t.data.datasets.forEach(r=>{let c=r.type||t.type,p=r.indexAxis||Tc(c,n),f=(mn[c]||{}).scales||{};Object.keys(f).forEach(g=>{let b=C2(g,p),y=r[b+"AxisID"]||b;a[y]=a[y]||Object.create(null),So(a[y],[{axis:b},i[y],f[g]])})}),Object.keys(a).forEach(r=>{let c=a[r];So(c,[me.scales[c.type],me.scale])}),a}function cu(t){let n=t.options||(t.options={});n.plugins=At(n.plugins,{}),n.scales=y2(t,n)}function du(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function S2(t){return t=t||{},t.data=du(t.data),cu(t),t}var S0=new Map,mu=new Set;function ps(t,n){let e=S0.get(t);return e||(e=n(),S0.set(t,e),mu.add(e)),e}var Fa=(t,n,e)=>{let i=Vi(n,e);i!==void 0&&t.add(i)},Pc=class{constructor(n){this._config=S2(n),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(n){this._config.type=n}get data(){return this._config.data}set data(n){this._config.data=du(n)}get options(){return this._config.options}set options(n){this._config.options=n}get plugins(){return this._config.plugins}update(){let n=this._config;this.clearCache(),cu(n)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(n){return ps(n,()=>[[`datasets.${n}`,""]])}datasetAnimationScopeKeys(n,e){return ps(`${n}.transition.${e}`,()=>[[`datasets.${n}.transitions.${e}`,`transitions.${e}`],[`datasets.${n}`,""]])}datasetElementScopeKeys(n,e){return ps(`${n}-${e}`,()=>[[`datasets.${n}.elements.${e}`,`datasets.${n}`,`elements.${e}`,""]])}pluginScopeKeys(n){let e=n.id,i=this.type;return ps(`${i}-plugin-${e}`,()=>[[`plugins.${e}`,...n.additionalOptionScopes||[]]])}_cachedScopes(n,e){let i=this._scopeCache,o=i.get(n);return(!o||e)&&(o=new Map,i.set(n,o)),o}getOptionScopes(n,e,i){let{options:o,type:a}=this,r=this._cachedScopes(n,i),c=r.get(e);if(c)return c;let p=new Set;e.forEach(f=>{n&&(p.add(n),f.forEach(g=>Fa(p,n,g))),f.forEach(g=>Fa(p,o,g)),f.forEach(g=>Fa(p,mn[a]||{},g)),f.forEach(g=>Fa(p,me,g)),f.forEach(g=>Fa(p,os,g))});let u=Array.from(p);return u.length===0&&u.push(Object.create(null)),mu.has(e)&&r.set(e,u),u}chartOptionScopes(){let{options:n,type:e}=this;return[n,mn[e]||{},me.datasets[e]||{},{type:e},me,os]}resolveNamedOptions(n,e,i,o=[""]){let a={$shared:!0},{resolver:r,subPrefixes:c}=M0(this._resolverCache,n,o),p=r;if(w2(r,e)){a.$shared=!1,i=Li(i)?i():i;let u=this.createResolver(n,i,c);p=In(r,i,u)}for(let u of e)a[u]=p[u];return a}createResolver(n,e,i=[""],o){let{resolver:a}=M0(this._resolverCache,n,i);return zt(e)?In(a,e,void 0,o):a}};function M0(t,n,e){let i=t.get(n);i||(i=new Map,t.set(n,i));let o=e.join(),a=i.get(o);return a||(a={resolver:ss(n,e),subPrefixes:e.filter(c=>!c.toLowerCase().includes("hover"))},i.set(o,a)),a}var M2=t=>zt(t)&&Object.getOwnPropertyNames(t).reduce((n,e)=>n||Li(t[e]),!1);function w2(t,n){let{isScriptable:e,isIndexable:i}=tc(t);for(let o of n){let a=e(o),r=i(o),c=(r||a)&&t[o];if(a&&(Li(c)||M2(c))||r&&re(c))return!0}return!1}var E2="4.4.0",T2=["top","bottom","left","right","chartArea"];function w0(t,n){return t==="top"||t==="bottom"||T2.indexOf(t)===-1&&n==="x"}function E0(t,n){return function(e,i){return e[t]===i[t]?e[n]-i[n]:e[t]-i[t]}}function T0(t){let n=t.chart,e=n.options.animation;n.notifyPlugins("afterRender"),oe(e&&e.onComplete,[t],n)}function D2(t){let n=t.chart,e=n.options.animation;oe(e&&e.onProgress,[t],n)}function pu(t){return oc()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}var Cs={},D0=t=>{let n=pu(t);return Object.values(Cs).filter(e=>e.canvas===n).pop()};function P2(t,n,e){let i=Object.keys(t);for(let o of i){let a=+o;if(a>=n){let r=t[o];delete t[o],(e>0||a>n)&&(t[a+e]=r)}}}function k2(t,n,e,i){return!e||t.type==="mouseout"?null:i?n:t}function us(t,n,e){return t.options.clip?t[e]:n[e]}function O2(t,n){let{xScale:e,yScale:i}=t;return e&&i?{left:us(e,n,"left"),right:us(e,n,"right"),top:us(i,n,"top"),bottom:us(i,n,"bottom")}:n}var ws=(()=>{class t{static defaults=me;static instances=Cs;static overrides=mn;static registry=Di;static version=E2;static getChart=D0;static register(...e){Di.add(...e),P0()}static unregister(...e){Di.remove(...e),P0()}constructor(e,i){let o=this.config=new Pc(i),a=pu(e),r=D0(a);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");let c=o.createResolver(o.chartOptionScopes(),this.getContext());this.platform=new(o.platform||Xy(a)),this.platform.updateConfig(o);let p=this.platform.acquireContext(a,c.aspectRatio),u=p&&p.canvas,f=u&&u.height,g=u&&u.width;if(this.id=Ep(),this.ctx=p,this.canvas=u,this.width=g,this.height=f,this._options=c,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Ec,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Lp(b=>this.update(b),c.resizeDelay||0),this._dataChanges=[],Cs[this.id]=this,!p||!u){console.error("Failed to create chart: can't acquire context from the given item");return}zi.listen(this,"complete",T0),zi.listen(this,"progress",D2),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:i},width:o,height:a,_aspectRatio:r}=this;return Ut(e)?i&&r?r:a?o/a:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return Di}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ac(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Xl(this.canvas,this.ctx),this}stop(){return zi.stop(this),this}resize(e,i){zi.running(this)?this._resizeBeforeDraw={width:e,height:i}:this._resize(e,i)}_resize(e,i){let o=this.options,a=this.canvas,r=o.maintainAspectRatio&&this.aspectRatio,c=this.platform.getMaximumSize(a,e,i,r),p=o.devicePixelRatio||this.platform.getDevicePixelRatio(),u=this.width?"resize":"attach";this.width=c.width,this.height=c.height,this._aspectRatio=this.aspectRatio,ac(this,p,!0)&&(this.notifyPlugins("resize",{size:c}),oe(o.onResize,[this,c],this),this.attached&&this._doResize(u)&&this.render())}ensureScalesHaveIDs(){let i=this.options.scales||{};te(i,(o,a)=>{o.id=a})}buildOrUpdateScales(){let e=this.options,i=e.scales,o=this.scales,a=Object.keys(o).reduce((c,p)=>(c[p]=!1,c),{}),r=[];i&&(r=r.concat(Object.keys(i).map(c=>{let p=i[c],u=Dc(c,p),f=u==="r",g=u==="x";return{options:p,dposition:f?"chartArea":g?"bottom":"left",dtype:f?"radialLinear":g?"category":"linear"}}))),te(r,c=>{let p=c.options,u=p.id,f=Dc(u,p),g=At(p.type,c.dtype);(p.position===void 0||w0(p.position,f)!==w0(c.dposition))&&(p.position=c.dposition),a[u]=!0;let b=null;if(u in o&&o[u].type===g)b=o[u];else{let y=Di.getScale(g);b=new y({id:u,type:g,ctx:this.ctx,chart:this}),o[b.id]=b}b.init(p,e)}),te(a,(c,p)=>{c||delete o[p]}),te(o,c=>{Ue.configure(this,c,c.options),Ue.addBox(this,c)})}_updateMetasets(){let e=this._metasets,i=this.data.datasets.length,o=e.length;if(e.sort((a,r)=>a.index-r.index),o>i){for(let a=i;a<o;++a)this._destroyDatasetMeta(a);e.splice(i,o-i)}this._sortedMetasets=e.slice(0).sort(E0("order","index"))}_removeUnreferencedMetasets(){let{_metasets:e,data:{datasets:i}}=this;e.length>i.length&&delete this._stacks,e.forEach((o,a)=>{i.filter(r=>r===o._dataset).length===0&&this._destroyDatasetMeta(a)})}buildOrUpdateControllers(){let e=[],i=this.data.datasets,o,a;for(this._removeUnreferencedMetasets(),o=0,a=i.length;o<a;o++){let r=i[o],c=this.getDatasetMeta(o),p=r.type||this.config.type;if(c.type&&c.type!==p&&(this._destroyDatasetMeta(o),c=this.getDatasetMeta(o)),c.type=p,c.indexAxis=r.indexAxis||Tc(p,this.options),c.order=r.order||0,c.index=o,c.label=""+r.label,c.visible=this.isDatasetVisible(o),c.controller)c.controller.updateIndex(o),c.controller.linkScales();else{let u=Di.getController(p),{datasetElementType:f,dataElementType:g}=me.datasets[p];Object.assign(u,{dataElementType:Di.getElement(g),datasetElementType:f&&Di.getElement(f)}),c.controller=new u(this,o),e.push(c.controller)}}return this._updateMetasets(),e}_resetElements(){te(this.data.datasets,(e,i)=>{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){let i=this.config;i.update();let o=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),a=this._animationsDisabled=!o.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;let r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let c=0;for(let f=0,g=this.data.datasets.length;f<g;f++){let{controller:b}=this.getDatasetMeta(f),y=!a&&r.indexOf(b)===-1;b.buildOrUpdateElements(y),c=Math.max(+b.getMaxOverflow(),c)}c=this._minPadding=o.layout.autoPadding?c:0,this._updateLayout(c),a||te(r,f=>{f.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(E0("z","_idx"));let{_active:p,_lastEvent:u}=this;u?this._eventHandler(u,!0):p.length&&this._updateHoverStyles(p,p,!0),this.render()}_updateScales(){te(this.scales,e=>{Ue.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options,i=new Set(Object.keys(this._listeners)),o=new Set(e.events);(!Nl(i,o)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,i=this._getUniformDataChanges()||[];for(let{method:o,start:a,count:r}of i){let c=o==="_removeElements"?-r:r;P2(e,a,c)}}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let i=this.data.datasets.length,o=r=>new Set(e.filter(c=>c[0]===r).map((c,p)=>p+","+c.splice(1).join(","))),a=o(0);for(let r=1;r<i;r++)if(!Nl(a,o(r)))return;return Array.from(a).map(r=>r.split(",")).map(r=>({method:r[1],start:+r[2],count:+r[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Ue.update(this,this.width,this.height,e);let i=this.chartArea,o=i.width<=0||i.height<=0;this._layers=[],te(this.boxes,a=>{o&&a.position==="chartArea"||(a.configure&&a.configure(),this._layers.push(...a._layers()))},this),this._layers.forEach((a,r)=>{a._idx=r}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let i=0,o=this.data.datasets.length;i<o;++i)this.getDatasetMeta(i).controller.configure();for(let i=0,o=this.data.datasets.length;i<o;++i)this._updateDataset(i,Li(e)?e({datasetIndex:i}):e);this.notifyPlugins("afterDatasetsUpdate",{mode:e})}}_updateDataset(e,i){let o=this.getDatasetMeta(e),a={meta:o,index:e,mode:i,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",a)!==!1&&(o.controller._update(i),a.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",a))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(zi.has(this)?this.attached&&!zi.running(this)&&zi.start(this):(this.draw(),T0({chart:this})))}draw(){let e;if(this._resizeBeforeDraw){let{width:o,height:a}=this._resizeBeforeDraw;this._resize(o,a),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;let i=this._layers;for(e=0;e<i.length&&i[e].z<=0;++e)i[e].draw(this.chartArea);for(this._drawDatasets();e<i.length;++e)i[e].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(e){let i=this._sortedMetasets,o=[],a,r;for(a=0,r=i.length;a<r;++a){let c=i[a];(!e||c.visible)&&o.push(c)}return o}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;let e=this.getSortedVisibleDatasetMetas();for(let i=e.length-1;i>=0;--i)this._drawDataset(e[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){let i=this.ctx,o=e._clip,a=!o.disabled,r=O2(e,this.chartArea),c={meta:e,index:e.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",c)!==!1&&(a&&Pa(i,{left:o.left===!1?0:r.left-o.left,right:o.right===!1?this.width:r.right+o.right,top:o.top===!1?0:r.top-o.top,bottom:o.bottom===!1?this.height:r.bottom+o.bottom}),e.controller.draw(),a&&ka(i),c.cancelable=!1,this.notifyPlugins("afterDatasetDraw",c))}isPointInArea(e){return Mi(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,i,o,a){let r=Iy.modes[i];return typeof r=="function"?r(this,e,o,a):[]}getDatasetMeta(e){let i=this.data.datasets[e],o=this._metasets,a=o.filter(r=>r&&r._dataset===i).pop();return a||(a={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:e,_dataset:i,_parsed:[],_sorted:!1},o.push(a)),a}getContext(){return this.$context||(this.$context=$i(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let i=this.data.datasets[e];if(!i)return!1;let o=this.getDatasetMeta(e);return typeof o.hidden=="boolean"?!o.hidden:!i.hidden}setDatasetVisibility(e,i){let o=this.getDatasetMeta(e);o.hidden=!i}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,i,o){let a=o?"show":"hide",r=this.getDatasetMeta(e),c=r.controller._resolveAnimations(void 0,a);Mo(i)?(r.data[i].hidden=!o,this.update()):(this.setDatasetVisibility(e,o),c.update(r,{visible:o}),this.update(p=>p.datasetIndex===e?a:void 0))}hide(e,i){this._updateVisibility(e,i,!1)}show(e,i){this._updateVisibility(e,i,!0)}_destroyDatasetMeta(e){let i=this._metasets[e];i&&i.controller&&i.controller._destroy(),delete this._metasets[e]}_stop(){let e,i;for(this.stop(),zi.remove(this),e=0,i=this.data.datasets.length;e<i;++e)this._destroyDatasetMeta(e)}destroy(){this.notifyPlugins("beforeDestroy");let{canvas:e,ctx:i}=this;this._stop(),this.config.clearCache(),e&&(this.unbindEvents(),Xl(e,i),this.platform.releaseContext(i),this.canvas=null,this.ctx=null),delete Cs[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...e){return this.canvas.toDataURL(...e)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){let e=this._listeners,i=this.platform,o=(r,c)=>{i.addEventListener(this,r,c),e[r]=c},a=(r,c,p)=>{r.offsetX=c,r.offsetY=p,this._eventHandler(r)};te(this.options.events,r=>o(r,a))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});let e=this._responsiveListeners,i=this.platform,o=(u,f)=>{i.addEventListener(this,u,f),e[u]=f},a=(u,f)=>{e[u]&&(i.removeEventListener(this,u,f),delete e[u])},r=(u,f)=>{this.canvas&&this.resize(u,f)},c,p=()=>{a("attach",p),this.attached=!0,this.resize(),o("resize",r),o("detach",c)};c=()=>{this.attached=!1,a("resize",r),this._stop(),this._resize(0,0),o("attach",p)},i.isAttached(this.canvas)?p():c()}unbindEvents(){te(this._listeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._listeners={},te(this._responsiveListeners,(e,i)=>{this.platform.removeEventListener(this,i,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,i,o){let a=o?"set":"remove",r,c,p,u;for(i==="dataset"&&(r=this.getDatasetMeta(e[0].datasetIndex),r.controller["_"+a+"DatasetHoverStyle"]()),p=0,u=e.length;p<u;++p){c=e[p];let f=c&&this.getDatasetMeta(c.datasetIndex).controller;f&&f[a+"HoverStyle"](c.element,c.datasetIndex,c.index)}}getActiveElements(){return this._active||[]}setActiveElements(e){let i=this._active||[],o=e.map(({datasetIndex:r,index:c})=>{let p=this.getDatasetMeta(r);if(!p)throw new Error("No dataset found at index "+r);return{datasetIndex:r,element:p.data[c],index:c}});!Ta(o,i)&&(this._active=o,this._lastEvent=null,this._updateHoverStyles(o,i))}notifyPlugins(e,i,o){return this._plugins.notify(this,e,i,o)}isPluginEnabled(e){return this._plugins._cache.filter(i=>i.plugin.id===e).length===1}_updateHoverStyles(e,i,o){let a=this.options.hover,r=(u,f)=>u.filter(g=>!f.some(b=>g.datasetIndex===b.datasetIndex&&g.index===b.index)),c=r(i,e),p=o?e:r(e,i);c.length&&this.updateHoverStyle(c,a.mode,!1),p.length&&a.mode&&this.updateHoverStyle(p,a.mode,!0)}_eventHandler(e,i){let o={event:e,replay:i,cancelable:!0,inChartArea:this.isPointInArea(e)},a=c=>(c.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",o,a)===!1)return;let r=this._handleEvent(e,i,o.inChartArea);return o.cancelable=!1,this.notifyPlugins("afterEvent",o,a),(r||o.changed)&&this.render(),this}_handleEvent(e,i,o){let{_active:a=[],options:r}=this,c=i,p=this._getActiveElements(e,a,o,c),u=Pp(e),f=k2(e,this._lastEvent,o,u);o&&(this._lastEvent=null,oe(r.onHover,[e,p,this],this),u&&oe(r.onClick,[e,p,this],this));let g=!Ta(p,a);return(g||i)&&(this._active=p,this._updateHoverStyles(p,a,i)),this._lastEvent=f,g}_getActiveElements(e,i,o,a){if(e.type==="mouseout")return[];if(!o)return i;let r=this.options.hover;return this.getElementsAtEventForMode(e,r.mode,r,a)}}return t})();function P0(){return te(ws.instances,t=>t._plugins.invalidate())}function I2(t,n,e){let{startAngle:i,pixelMargin:o,x:a,y:r,outerRadius:c,innerRadius:p}=n,u=o/c;t.beginPath(),t.arc(a,r,c,i-u,e+u),p>o?(u=o/p,t.arc(a,r,p,e+u,i-u,!0)):t.arc(a,r,o,e+ye,i-ye),t.closePath(),t.clip()}function R2(t){return rs(t,["outerStart","outerEnd","innerStart","innerEnd"])}function A2(t,n,e,i){let o=R2(t.options.borderRadius),a=(e-n)/2,r=Math.min(a,i*n/2),c=p=>{let u=(e-Math.min(a,p))*i/2;return Re(p,0,Math.min(a,u))};return{outerStart:c(o.outerStart),outerEnd:c(o.outerEnd),innerStart:Re(o.innerStart,0,r),innerEnd:Re(o.innerEnd,0,r)}}function ko(t,n,e,i){return{x:e+t*Math.cos(n),y:i+t*Math.sin(n)}}function ys(t,n,e,i,o,a){let{x:r,y:c,startAngle:p,pixelMargin:u,innerRadius:f}=n,g=Math.max(n.outerRadius+i+e-u,0),b=f>0?f+i+e+u:0,y=0,E=o-p;if(i){let ie=f>0?f-i:0,ue=g>0?g-i:0,Se=(ie+ue)/2,mi=Se!==0?E*Se/(Se+i):E;y=(E-mi)/2}let D=Math.max(.001,E*g-e/se)/g,k=(E-D)/2,V=p+k+y,N=o-k-y,{outerStart:W,outerEnd:q,innerStart:j,innerEnd:G}=A2(n,b,g,N-V),it=g-W,Q=g-q,at=V+W/it,Lt=N-q/Q,Bt=b+j,Ht=b+G,Be=V+j/Bt,ei=N-G/Ht;if(t.beginPath(),a){let ie=(at+Lt)/2;if(t.arc(r,c,g,at,ie),t.arc(r,c,g,ie,Lt),q>0){let ze=ko(Q,Lt,r,c);t.arc(ze.x,ze.y,q,Lt,N+ye)}let ue=ko(Ht,N,r,c);if(t.lineTo(ue.x,ue.y),G>0){let ze=ko(Ht,ei,r,c);t.arc(ze.x,ze.y,G,N+ye,ei+Math.PI)}let Se=(N-G/b+(V+j/b))/2;if(t.arc(r,c,b,N-G/b,Se,!0),t.arc(r,c,b,Se,V+j/b,!0),j>0){let ze=ko(Bt,Be,r,c);t.arc(ze.x,ze.y,j,Be+Math.PI,V-ye)}let mi=ko(it,V,r,c);if(t.lineTo(mi.x,mi.y),W>0){let ze=ko(it,at,r,c);t.arc(ze.x,ze.y,W,V-ye,at)}}else{t.moveTo(r,c);let ie=Math.cos(at)*g+r,ue=Math.sin(at)*g+c;t.lineTo(ie,ue);let Se=Math.cos(Lt)*g+r,mi=Math.sin(Lt)*g+c;t.lineTo(Se,mi)}t.closePath()}function F2(t,n,e,i,o){let{fullCircles:a,startAngle:r,circumference:c}=n,p=n.endAngle;if(a){ys(t,n,e,i,p,o);for(let u=0;u<a;++u)t.fill();isNaN(c)||(p=r+(c%le||le))}return ys(t,n,e,i,p,o),t.fill(),p}function B2(t,n,e,i,o){let{fullCircles:a,startAngle:r,circumference:c,options:p}=n,{borderWidth:u,borderJoinStyle:f,borderDash:g,borderDashOffset:b}=p,y=p.borderAlign==="inner";if(!u)return;t.setLineDash(g||[]),t.lineDashOffset=b,y?(t.lineWidth=u*2,t.lineJoin=f||"round"):(t.lineWidth=u,t.lineJoin=f||"bevel");let E=n.endAngle;if(a){ys(t,n,e,i,E,o);for(let D=0;D<a;++D)t.stroke();isNaN(c)||(E=r+(c%le||le))}y&&I2(t,n,E),a||(ys(t,n,e,i,E,o),t.stroke())}var kc=class extends Ci{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:n=>n!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(n){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,e,i){let o=this.getProps(["x","y"],i),{angle:a,distance:r}=Hl(o,{x:n,y:e}),{startAngle:c,endAngle:p,innerRadius:u,outerRadius:f,circumference:g}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),b=(this.options.spacing+this.options.borderWidth)/2,
vendor: 4,700 bytes, line 217
217E=At(g,p-c)>=le||Eo(a,c,p),D=Ei(r,u+b,f+b);return E&&D}getCenterPoint(n){let{x:e,y:i,startAngle:o,endAngle:a,innerRadius:r,outerRadius:c}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:p,spacing:u}=this.options,f=(o+a)/2,g=(r+c+u+p)/2;return{x:e+Math.cos(f)*g,y:i+Math.sin(f)*g}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){let{options:e,circumference:i}=this,o=(e.offset||0)/4,a=(e.spacing||0)/2,r=e.circular;if(this.pixelMargin=e.borderAlign==="inner"?.33:0,this.fullCircles=i>le?Math.floor(i/le):0,i===0||this.innerRadius<0||this.outerRadius<0)return;n.save();let c=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(c)*o,Math.sin(c)*o);let p=1-Math.sin(Math.min(se,i||0)),u=o*p;n.fillStyle=e.backgroundColor,n.strokeStyle=e.borderColor,F2(n,this,u,a,r),B2(n,this,u,a,r),n.restore()}};function uu(t,n,e=n){t.lineCap=At(e.borderCapStyle,n.borderCapStyle),t.setLineDash(At(e.borderDash,n.borderDash)),t.lineDashOffset=At(e.borderDashOffset,n.borderDashOffset),t.lineJoin=At(e.borderJoinStyle,n.borderJoinStyle),t.lineWidth=At(e.borderWidth,n.borderWidth),t.strokeStyle=At(e.borderColor,n.borderColor)}function L2(t,n,e){t.lineTo(e.x,e.y)}function N2(t){return t.stepped?zp:t.tension||t.cubicInterpolationMode==="monotone"?Hp:L2}function fu(t,n,e={}){let i=t.length,{start:o=0,end:a=i-1}=e,{start:r,end:c}=n,p=Math.max(o,r),u=Math.min(a,c),f=o<r&&a<r||o>c&&a>c;return{count:i,start:p,loop:n.loop,ilen:u<p&&!f?i+u-p:u-p}}function V2(t,n,e,i){let{points:o,options:a}=n,{count:r,start:c,loop:p,ilen:u}=fu(o,e,i),f=N2(a),{move:g=!0,reverse:b}=i||{},y,E,D;for(y=0;y<=u;++y)E=o[(c+(b?u-y:y))%r],!E.skip&&(g?(t.moveTo(E.x,E.y),g=!1):f(t,D,E,b,a.stepped),D=E);return p&&(E=o[(c+(b?u:0))%r],f(t,D,E,b,a.stepped)),!!p}function $2(t,n,e,i){let o=n.points,{count:a,start:r,ilen:c}=fu(o,e,i),{move:p=!0,reverse:u}=i||{},f=0,g=0,b,y,E,D,k,V,N=q=>(r+(u?c-q:q))%a,W=()=>{D!==k&&(t.lineTo(f,k),t.lineTo(f,D),t.lineTo(f,V))};for(p&&(y=o[N(0)],t.moveTo(y.x,y.y)),b=0;b<=c;++b){if(y=o[N(b)],y.skip)continue;let q=y.x,j=y.y,G=q|0;G===E?(j<D?D=j:j>k&&(k=j),f=(g*f+q)/++g):(W(),t.lineTo(q,j),E=G,g=0,D=k=j),V=j}W()}function Oc(t){let n=t.options,e=n.borderDash&&n.borderDash.length;return!t._decimated&&!t._loop&&!n.tension&&n.cubicInterpolationMode!=="monotone"&&!n.stepped&&!e?$2:V2}function z2(t){return t.stepped?Xp:t.tension||t.cubicInterpolationMode==="monotone"?Jp:dn}function H2(t,n,e,i){let o=n._path;o||(o=n._path=new Path2D,n.path(o,e,i)&&o.closePath()),uu(t,n.options),t.stroke(o)}function j2(t,n,e,i){let{segments:o,options:a}=n,r=Oc(n);for(let c of o)uu(t,a,c.style),t.beginPath(),r(t,n,c,{start:e,end:e+i-1})&&t.closePath(),t.stroke()}var U2=typeof Path2D=="function";function W2(t,n,e,i){U2&&!n.options.segment?H2(t,n,e,i):j2(t,n,e,i)}var Es=(()=>{class t extends Ci{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,i){let o=this.options;if((o.tension||o.cubicInterpolationMode==="monotone")&&!o.stepped&&!this._pointsUpdated){let a=o.spanGaps?this._loop:this._fullLoop;Yp(this._points,o,e,a,i),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=t0(this,this.options.segment))}first(){let e=this.segments,i=this.points;return e.length&&i[e[0].start]}last(){let e=this.segments,i=this.points,o=e.length;return o&&i[e[o-1].end]}interpolate(e,i){let o=this.options,a=e[i],r=this.points,c=dc(this,{property:i,start:a,end:a});if(!c.length)return;let p=[],u=z2(o),f,g;for(f=0,g=c.length;f<g;++f){let{start:b,end:y}=c[f],E=r[b],D=r[y];if(E===D){p.push(E);continue}let k=Math.abs((a-E[i])/(D[i]-E[i])),V=u(E,D,k,o.stepped);V[i]=e[i],p.push(V)}return p.length===1?p[0]:p}pathSegment(e,i,o){return Oc(this)(e,this,i,o)}path(e,i,o){let a=this.segments,r=Oc(this),c=this._loop;i=i||0,o=o||this.points.length-i;for(let p of a)c&=r(e,this,p,{start:i,end:i+o-1});return!!c}draw(e,i,o,a){let r=this.options||{};(this.points||[]).length&&r.borderWidth&&(e.save(),W2(e,this,o,a),e.restore(
217)),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}return t})();function k0(t,n,e,i){let o=t.options,{[e]:a}=t.getProps([e],i);return Math.abs(n-a)<o.radius+o.hitRadius}var G2=(()=>{class t extends Ci{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,i,o){let a=this.options,{x:r,y:c}=this.getProps(["x","y"],o);return Math.pow(e-r,2)+Math.pow(i-c,2)<Math.pow(a.hitRadius+a.radius,2)}inXRange(e,i){return k0(this,e,"x",i)}inYRange(e,i){return k0(this,e,"y",i)}getCenterPoint(e){let{x:i,y:o}=this.getProps(["x","y"],e);return{x:i,y:o}}size(e){e=e||this.options||{};let i=e.radius||0;i=Math.max(i,i&&e.hoverRadius||0);let o=i&&e.borderWidth||0;return(i+o)*2}draw(e,i){let o=this.options;this.skip||o.radius<.1||!Mi(this,i,this.size(o)/2)||(e.strokeStyle=o.borderColor,e.lineWidth=o.borderWidth,e.fillStyle=o.backgroundColor,as(e,o,this.x,this.y))}getRange(){let e=this.options||{};return e.radius+e.hitRadius}}return t})();function hu(t,n){let{x:e,y:i,base:o,width:a,height:r}=t.getProps(["x","y","base","width","height"],n),c,p,u,f,g;return t.horizontal?(g=r/2,c=Math.min(e,o),p=Math.max(e,o),u=i-g,f=i+g):(g=a/2,c=e-g,p=e+g,u=Math.min(i,o),f=Math.max(i,o)),{left:c,top:u,right:p,bottom:f}}function gn(t,n,e,i){return t?0:Re(n,e,i)}function q2(t,n,e){let i=t.options.borderWidth,o=t.borderSkipped,a=Zl(i);return{t:gn(o.top,a.top,0,e),r:gn(o.right,a.right,0,n),b:gn(o.bottom,a.bottom,0,e),l:gn(o.left,a.left,0,n)}}function Y2(t,n,e){let{enableBorderRadius:i}=t.getProps(["enableBorderRadius"]),o=t.options.borderRadius,a=fn(o),r=Math.min(n,e),c=t.borderSkipped,p=i||zt(o);return{topLeft:gn(!p||c.top||c.left,a.topLeft,0,r),topRight:gn(!p||c.top||c.right,a.topRight,0,r),bottomLeft:gn(!p||c.bottom||c.left,a.bottomLeft,0,r),bottomRight:gn(!p||c.bottom||c.right,a.bottomRight,0,r)}}function Q2(t){let n=hu(t),e=n.right-n.left,i=n.bottom-n.top,o=q2(t,e/2,i/2),a=Y2(t,e/2,i/2);return{outer:{x:n.left,y:n.top,w:e,h:i,radius:a},inner:{x:n.left+o.l,y:n.top+o.t,w:e-o.l-o.r,h:i-o.t-o.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(o.t,o.l)),topRight:Math.max(0,a.topRight-Math.max(o.t,o.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(o.b,o.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(o.b,o.r))}}}}function _c(t,n,e,i){let o=n===null,a=e===null,c=t&&!(o&&a)&&hu(t,i);return c&&(o||Ei(n,c.left,c.right))&&(a||Ei(e,c.top,c.bottom))}function K2(t){return t.topLeft||t.topRight||t.bottomLeft||t.bottomRight}function X2(t,n){t.rect(n.x,n.y,n.w,n.h)}function Cc(t,n,e={}){let i=t.x!==e.x?-n:0,o=t.y!==e.y?-n:0,a=(t.x+t.w!==e.x+e.w?n:0)-i,r=(t.y+t.h!==e.y+e.h?n:0)-o;return{x:t.x+i,y:t.y+o,w:t.w+a,h:t.h+r,radius:t.radius}}var Ic=class extends Ci{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(n){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,n&&Object.assign(this,n)}draw(n){let{inflateAmount:e,options:{borderColor:i,backgroundColor:o}}=this,{inner:a,outer:r}=Q2(this),c=K2(r.radius)?Do:X2;n.save(),(r.w!==a.w||r.h!==a.h)&&(n.beginPath(),c(n,Cc(r,e,a)),n.clip(),c(n,Cc(a,-e,r)),n.fillStyle=i,n.fill("evenodd")),n.beginPath(),c(n,Cc(a,e)),n.fillStyle=o,n.fill(),n.restore()}inRange(n,e,i){return _c(this,n,e,i)}inXRange(n,e){return _c(this,n,null,e)}inYRange(n,e){return _c(this,null,n,e)}getCenterPoint(n){let{x:e,y:i,base:o,horizontal:a}=this.getProps(["x","y","base","horizontal"],n);return{x:a?(e+o)/2:e,y:a?i:(i+o)/2}}getRange(n){return n==="x"?this.width/2:this.height/2}},J2=Object.freeze({__proto__:null,ArcElement:kc,BarElement:Ic,LineElement:Es,PointElement:G2}),Rc=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],O0=Rc.map(t=>t.replace("rgb(","rgba(").replace(")",", 0.5)"));function gu(t){return Rc[t%Rc.length]}function _u(t){return O0[t%O0.length]}function Z2(t,n){return t.borderColor=gu(n),t.backgroundColor=_u(n),++n}function tS(t,n){return t.backgroundColor=t.data.map(()=>gu(n++)),n}
217function eS(t,n){return t.backgroundColor=t.data.map(()=>_u(n++)),n}function iS(t){let n=0;return(e,i)=>{let o=t.getDatasetMeta(i).controller;o instanceof zc?n=tS(e,n):o instanceof ou?n=eS(e,n):o&&(n=Z2(e,n))}}function I0(t){let n;for(n in t)if(t[n].borderColor||t[n].backgroundColor)return!0;return!1}function nS(t){return t&&(t.borderColor||t.backgroundColor)}var oS={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,n,e){if(!e.enabled)return;let{data:{datasets:i},options:o}=t.config,{elements:a}=o;if(!e.forceOverride&&(I0(i)||nS(o)||a&&I0(a)))return;let r=iS(t);i.forEach(r)}};function aS(t,n,e,i,o){let a=o.samples||i;if(a>=e)return t.slice(n,n+e);let r=[],c=(e-2)/(a-2),p=0,u=n+e-1,f=n,g,b,y,E,D;for(r[p++]=t[f],g=0;g<a-2;g++){let k=0,V=0,N,W=Math.floor((g+1)*c)+1+n,q=Math.min(Math.floor((g+2)*c)+1,e)+n,j=q-W;for(N=W;N<q;N++)k+=t[N].x,V+=t[N].y;k/=j,V/=j;let G=Math.floor(g*c)+1+n,it=Math.min(Math.floor((g+1)*c)+1,e)+n,{x:Q,y:at}=t[f];for(y=E=-1,N=G;N<it;N++)E=.5*Math.abs((Q-k)*(t[N].y-at)-(Q-t[N].x)*(V-at)),E>y&&(y=E,b=t[N],D=N);r[p++]=b,f=D}return r[p++]=t[u],r}function rS(t,n,e,i){let o=0,a=0,r,c,p,u,f,g,b,y,E,D,k=[],V=n+e-1,N=t[n].x,q=t[V].x-N;for(r=n;r<n+e;++r){c=t[r],p=(c.x-N)/q*i,u=c.y;let j=p|0;if(j===f)u<E?(E=u,g=r):u>D&&(D=u,b=r),o=(a*o+c.x)/++a;else{let G=r-1;if(!Ut(g)&&!Ut(b)){let it=Math.min(g,b),Q=Math.max(g,b);it!==y&&it!==G&&k.push(Et(nt({},t[it]),{x:o})),Q!==y&&Q!==G&&k.push(Et(nt({},t[Q]),{x:o}))}r>0&&G!==y&&k.push(t[G]),k.push(c),f=j,a=0,E=D=u,g=b=y=r}}return k}function Cu(t){if(t._decimated){let n=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:n})}}function R0(t){t.data.datasets.forEach(n=>{Cu(n)})}function sS(t,n){let e=n.length,i=0,o,{iScale:a}=t,{min:r,max:c,minDefined:p,maxDefined:u}=a.getUserBounds();return p&&(i=Re(Si(n,a.axis,r).lo,0,e-1)),u?o=Re(Si(n,a.axis,c).hi+1,i,e)-i:o=e-i,{start:i,count:o}}var lS={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,n,e)=>{if(!e.enabled){R0(t);return}let i=t.width;t.data.datasets.forEach((o,a)=>{let{_data:r,indexAxis:c}=o,p=t.getDatasetMeta(a),u=r||o.data;if(Po([c,t.options.indexAxis])==="y"||!p.controller.supportsDecimation)return;let f=t.scales[p.xAxisID];if(f.type!=="linear"&&f.type!=="time"||t.options.parsing)return;let{start:g,count:b}=sS(p,u),y=e.threshold||4*i;if(b<=y){Cu(o);return}Ut(r)&&(o._data=u,delete o.data,Object.defineProperty(o,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(D){this._data=D}}));let E;switch(e.algorithm){case"lttb":E=aS(u,g,b,i,e);break;case"min-max":E=rS(u,g,b,i);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}o._decimated=E})},destroy(t){R0(t)}};function cS(t,n,e){let i=t.segments,o=t.points,a=n.points,r=[];for(let c of i){let{start:p,end:u}=c;u=Hc(p,u,o);let f=Ac(e,o[p],o[u],c.loop);if(!n.segments){r.push({source:c,target:f,start:o[p],end:o[u]});continue}let g=dc(n,f);for(let b of g){let y=Ac(e,a[b.start],a[b.end],b.loop),E=cc(c,o,y);for(let D of E)r.push({source:D,target:b,start:{[e]:A0(f,y,"start",Math.max)},end:{[e]:A0(f,y,"end",Math.min)}})}}return r}function Ac(t,n,e,i){if(i)return;let o=n[t],a=e[t];return t==="angle"&&(o=Xe(o),a=Xe(a)),{property:t,start:o,end:a}}function dS(t,n){let{x:e=null,y:i=null}=t||{},o=n.points,a=[];return n.segments.forEach(({start:r,end:c})=>{c=Hc(r,c,o);let p=o[r],u=o[c];i!==null?(a.push({x:p.x,y:i}),a.push({x:u.x,y:i})):e!==null&&(a.push({x:e,y:p.y}),a.push({x:e,y:u.y}))}),a}function Hc(t,n,e){for(;n>t;n--){let i=e[n];if(!isNaN(i.x)&&!isNaN(i.y))break}return n}function A0(t,n,e,i){return t&&n?i(t[e],n[e]):t?t[e]:n?n[e]:0}function bu(t,n){let e=[],i=!1;return re(t)?(i=!0,e=t):e=dS(t,n),e.length?new Es({points:e,options:{tension:0},_loop:i,_fullLoop:i}):null}function F0(t){return t&&t.fill!==!1}function mS(t,n,e){let o=t[n].fill,a=[n],r;if(!e)return o;for(;o!==!1&&a.indexOf(o)===-1;){if(!be(o))return o;if(r=t[o],!r)return!1;if(r.visible)return o;a.push(o),o=r.fill}return!1}function pS(t,n,e){let i=gS(t);if(zt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return be(o)&&Math.floor(o)===o?uS(i[0],n,o,e):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function uS(t,n,e,i){return(t==="-"||t==="+")&&(e=n+e),e===n||e<0||e>=i?!1:e}function fS(t,n){let e=null;return t==="start"?e=n.bottom:t==="end"?e=n.top:zt(t)?e=n.getPixelForValue(t.value):n.getBasePixel&&(e=n.getBasePixel()),e}function hS(t,n,e){let i;return t==="start"?i=e:t==="end"?i=n.options.reverse?n.min:n.max:zt(t)?i=t.value:i=n.getBaseValue(),i}function gS(t){let n=t.options,e=n.fill,i=At(e&&e.target,e);return i===void 0&&(i=!!n.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function _S(t){let{scale:n,index:e,line:i}=t,o=[],a=i.segments,r=i.points,c=CS(n,e);c.push(bu({x:null,y:n.bottom},i));for(let p=0;p<a.length;p++){let u=a[p];for(let f=u.start;f<=u.end;f++)bS(o,r[f],c)}return new Es({points:o,options:{}})}function CS(t,n){let e=[],i=t.getMatchingVisibleMetas("line");for(let o=0;o<i.length;o++){let a=i[o];if(a.index===n)break;a.hidden||e.unshift(a.dataset)}return e}function bS(t,n,e){let i=[];for(let o=0;o<e.length;o++){let a=e[o],{first:r,last:c,point:p}=xS(a,n,"x");if(!(!p||r&&c)){if(r)i.unshift(p);else if(t.push(p),!c)break}}t.push(...i)}function xS(t,n,e){let i=t.interpolate(n,e);if(!i)return{};let o=i[e],a=t.segments,r=t.points,c=!1,p=!1;for(let u=0;u<a.length;u++){let f=a[u],g=r[f.start][e],b=r[f.end][e];if(Ei(o,g,b)){c=o===g,p=o===b;break}}return{first:c,last:p,point:i}}var Ss=class{constructor(n){this.x=n.x,this.y=n.y,this.radius=n.radius}pathSegment(n,e,i){let{x:o,y:a,radius:r}=this;return e=e||{start:0,end:le},n.arc(o,a,r,e.end,e.start,!0),!i.bounds}interpolate(n){let{x:e,y:i,radius:o}=this,a=n.angle;return{x:e+Math.cos(a)*o,y:i+Math.sin(a)*o,angle:a}}};function vS(t){let{chart:n,fill:e,line:i}=t;if(be(e))return yS(n,e);if(e==="stack")return _S(t);if(e==="shape")return!0;let o=SS(t);return o instanceof Ss?o:bu(o,i)}function yS(t,n){let e=t.getDatasetMeta(n);return e&&t.isDatasetVisible(n)?e.dataset:null}function SS(t){return(t.scale||{}).getPointPositionForValue?wS(t):MS(t)}function MS(t){let{scale:n={},fill:e}=t,i=fS(e,n);if(be(i)){let o=n.isHorizontal();return{x:o?i:null,y:o?null:i}}return null}function wS(t){let{scale:n,fill:e}=t,i=n.options,o=n.getLabels().length,a=i.reverse?n.max:n.min,r=hS(e,n,a),c=[];if(i.grid.circular){let p=n.getPointPositionForValue(0,a);return new Ss({x:p.x,y:p.y,radius:n.getDistanceFromCenterForValue(r)})}for(let p=0;p<o;++p)c.push(n.getPointPositionForValue(p,r));return c}function bc(t,n,e){let i=vS(n),{line:o,scale:a,axis:r}=n,c=o.options,p=c.fill,u=c.backgroundColor,{above:f=u,below:g=u}=p||{};i&&o.points.length&&(Pa(t,e),ES(t,{line:o,target:i,above:f,below:g,area:e,scale:a,axis:r}),ka(t))}function ES(t,n){let{line:e,target:i,above:o,below:a,area:r,scale:c}=n,p=e._loop?"angle":n.axis;t.save(),p==="x"&&a!==o&&(B0(t,i,r.top),L0(t,{line:e,target:i,color:o,scale:c,property:p}
vendor: 4,283 bytes, line 217
217),t.restore(),t.save(),B0(t,i,r.bottom)),L0(t,{line:e,target:i,color:a,scale:c,property:p}),t.restore()}function B0(t,n,e){let{segments:i,points:o}=n,a=!0,r=!1;t.beginPath();for(let c of i){let{start:p,end:u}=c,f=o[p],g=o[Hc(p,u,o)];a?(t.moveTo(f.x,f.y),a=!1):(t.lineTo(f.x,e),t.lineTo(f.x,f.y)),r=!!n.pathSegment(t,c,{move:r}),r?t.closePath():t.lineTo(g.x,e)}t.lineTo(n.first().x,e),t.closePath(),t.clip()}function L0(t,n){let{line:e,target:i,property:o,color:a,scale:r}=n,c=cS(e,i,o);for(let{source:p,target:u,start:f,end:g}of c){let{style:{backgroundColor:b=a}={}}=p,y=i!==!0;t.save(),t.fillStyle=b,TS(t,r,y&&Ac(o,f,g)),t.beginPath();let E=!!e.pathSegment(t,p),D;if(y){E?t.closePath():N0(t,i,g,o);let k=!!i.pathSegment(t,u,{move:E,reverse:!0});D=E&&k,D||N0(t,i,f,o)}t.closePath(),t.fill(D?"evenodd":"nonzero"),t.restore()}}function TS(t,n,e){let{top:i,bottom:o}=n.chart.chartArea,{property:a,start:r,end:c}=e||{};a==="x"&&(t.beginPath(),t.rect(r,i,c-r,o-i),t.clip())}function N0(t,n,e,i){let o=n.interpolate(e,i);o&&t.lineTo(o.x,o.y)}var DS={id:"filler",afterDatasetsUpdate(t,n,e){let i=(t.data.datasets||[]).length,o=[],a,r,c,p;for(r=0;r<i;++r)a=t.getDatasetMeta(r),c=a.dataset,p=null,c&&c.options&&c instanceof Es&&(p={visible:t.isDatasetVisible(r),index:r,fill:pS(c,r,i),chart:t,axis:a.controller.options.indexAxis,scale:a.vScale,line:c}),a.$filler=p,o.push(p);for(r=0;r<i;++r)p=o[r],!(!p||p.fill===!1)&&(p.fill=mS(o,r,e.propagate))},beforeDraw(t,n,e){let i=e.drawTime==="beforeDraw",o=t.getSortedVisibleDatasetMetas(),a=t.chartArea;for(let r=o.length-1;r>=0;--r){let c=o[r].$filler;c&&(c.line.updateControlPoints(a,c.axis),i&&c.fill&&bc(t.ctx,c,a))}},beforeDatasetsDraw(t,n,e){if(e.drawTime!=="beforeDatasetsDraw")return;let i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){let a=i[o].$filler;F0(a)&&bc(t.ctx,a,t.chartArea)}},beforeDatasetDraw(t,n,e){let i=n.meta.$filler;!F0(i)||e.drawTime!=="beforeDatasetDraw"||bc(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},V0=(t,n)=>{let{boxHeight:e=n,boxWidth:i=n}=t;return t.usePointStyle&&(e=Math.min(e,n),i=t.pointStyleWidth||Math.min(i,n)),{boxWidth:i,boxHeight:e,itemHeight:Math.max(n,e)}},PS=(t,n)=>t!==null&&n!==null&&t.datasetIndex===n.datasetIndex&&t.index===n.index,Ms=class extends Ci{constructor(n){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=n.chart,this.options=n.options,this.ctx=n.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(n,e,i){this.maxWidth=n,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let n=this.options.labels||{},e=oe(n.generateLabels,[this.chart],this)||[];n.filter&&(e=e.filter(i=>n.filter(i,this.chart.data))),n.sort&&(e=e.sort((i,o)=>n.sort(i,o,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){let{options:n,ctx:e}=this;if(!n.display){this.width=this.height=0;return}let i=n.labels,o=Ie(i.font),a=o.size,r=this._computeTitleHeight(),{boxWidth:c,itemHeight:p}=V0(i,a),u,f;e.font=o.string,this.isHorizontal()?(u=this.maxWidth,f=this._fitRows(r,a,c,p)+10):(f=this.maxHeight,u=this._fitCols(r,o,c,p)+10),this.width=Math.min(u,n.maxWidth||this.maxWidth),this.height=Math.min(f,n.maxHeight||this.maxHeight)}_fitRows(n,e,i,o){let{ctx:a,maxWidth:r,options:{labels:{padding:c}}}=this,p=this.legendHitBoxes=[],u=this.lineWidths=[0],f=o+c,g=n;a.textAlign="left",a.textBaseline="middle";let b=-1,y=-f;return this.legendItems.forEach((E,D)=>{let k=i+e/2+a.measureText(E.text).width;(D===0||u[u.length-1]+k+2*c>r)&&(g+=f,u[u.length-(D>0?0:1)]=0,y+=f,b++),p[D]={left:0,top:y,row:b,width:k,height:o},u[u.length-1]+=k+c}),g}_fitCols(n,e,i,o){let{ctx:a,maxHeight:r,options:{labels:{padding:c}}}=this,p=this.legendHitBoxes=[],u=this.columnSizes=[],f=r-n,g=c,b=0,y=0,E=0,D=0;
vendor: 6,225 bytes, line 217
217return this.legendItems.forEach((k,V)=>{let{itemWidth:N,itemHeight:W}=kS(i,e,a,k,o);V>0&&y+W+2*c>f&&(g+=b+c,u.push({width:b,height:y}),E+=b+c,D++,b=y=0),p[V]={left:E,top:y,col:D,width:N,height:W},b=Math.max(b,N),y+=W+c}),g+=b,u.push({width:b,height:y}),g}adjustHitBoxes(){if(!this.options.display)return;let n=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:o},rtl:a}}=this,r=An(a,this.left,this.width);if(this.isHorizontal()){let c=0,p=Ve(i,this.left+o,this.right-this.lineWidths[c]);for(let u of e)c!==u.row&&(c=u.row,p=Ve(i,this.left+o,this.right-this.lineWidths[c])),u.top+=this.top+n+o,u.left=r.leftForLtr(r.x(p),u.width),p+=u.width+o}else{let c=0,p=Ve(i,this.top+n+o,this.bottom-this.columnSizes[c].height);for(let u of e)u.col!==c&&(c=u.col,p=Ve(i,this.top+n+o,this.bottom-this.columnSizes[c].height)),u.top=p,u.left+=this.left+o,u.left=r.leftForLtr(r.x(u.left),u.width),p+=u.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){let n=this.ctx;Pa(n,this),this._draw(),ka(n)}}_draw(){let{options:n,columnSizes:e,lineWidths:i,ctx:o}=this,{align:a,labels:r}=n,c=me.color,p=An(n.rtl,this.left,this.width),u=Ie(r.font),{padding:f}=r,g=u.size,b=g/2,y;this.drawTitle(),o.textAlign=p.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=u.string;let{boxWidth:E,boxHeight:D,itemHeight:k}=V0(r,g),V=function(G,it,Q){if(isNaN(E)||E<=0||isNaN(D)||D<0)return;o.save();let at=At(Q.lineWidth,1);if(o.fillStyle=At(Q.fillStyle,c),o.lineCap=At(Q.lineCap,"butt"),o.lineDashOffset=At(Q.lineDashOffset,0),o.lineJoin=At(Q.lineJoin,"miter"),o.lineWidth=at,o.strokeStyle=At(Q.strokeStyle,c),o.setLineDash(At(Q.lineDash,[])),r.usePointStyle){let Lt={radius:D*Math.SQRT2/2,pointStyle:Q.pointStyle,rotation:Q.rotation,borderWidth:at},Bt=p.xPlus(G,E/2),Ht=it+b;Jl(o,Lt,Bt,Ht,r.pointStyleWidth&&E)}else{let Lt=it+Math.max((g-D)/2,0),Bt=p.leftForLtr(G,E),Ht=fn(Q.borderRadius);o.beginPath(),Object.values(Ht).some(Be=>Be!==0)?Do(o,{x:Bt,y:Lt,w:E,h:D,radius:Ht}):o.rect(Bt,Lt,E,D),o.fill(),at!==0&&o.stroke()}o.restore()},N=function(G,it,Q){un(o,Q.text,G,it+k/2,u,{strikethrough:Q.hidden,textAlign:p.textAlign(Q.textAlign)})},W=this.isHorizontal(),q=this._computeTitleHeight();W?y={x:Ve(a,this.left+f,this.right-i[0]),y:this.top+f+q,line:0}:y={x:this.left+f,y:Ve(a,this.top+q+f,this.bottom-e[0].height),line:0},sc(this.ctx,n.textDirection);let j=k+f;this.legendItems.forEach((G,it)=>{o.strokeStyle=G.fontColor,o.fillStyle=G.fontColor;let Q=o.measureText(G.text).width,at=p.textAlign(G.textAlign||(G.textAlign=r.textAlign)),Lt=E+b+Q,Bt=y.x,Ht=y.y;p.setWidth(this.width),W?it>0&&Bt+Lt+f>this.right&&(Ht=y.y+=j,y.line++,Bt=y.x=Ve(a,this.left+f,this.right-i[y.line])):it>0&&Ht+j>this.bottom&&(Bt=y.x=Bt+e[y.line].width+f,y.line++,Ht=y.y=Ve(a,this.top+q+f,this.bottom-e[y.line].height));let Be=p.x(Bt);if(V(Be,Ht,G),Bt=Np(at,Bt+E+b,W?Bt+Lt:this.right,n.rtl),N(p.x(Bt),Ht,G),W)y.x+=Lt+f;else if(typeof G.text!="string"){let ei=u.lineHeight;y.y+=xu(G,ei)+f}else y.y+=j}),lc(this.ctx,n.textDirection)}drawTitle(){let n=this.options,e=n.title,i=Ie(e.font),o=$e(e.padding);if(!e.display)return;let a=An(n.rtl,this.left,this.width),r=this.ctx,c=e.position,p=i.size/2,u=o.top+p,f,g=this.left,b=this.width;if(this.isHorizontal())b=Math.max(...this.lineWidths),f=this.top+u,g=Ve(n.align,g,this.right-b);else{let E=this.columnSizes.reduce((D,k)=>Math.max(D,k.height),0);f=u+Ve(n.align,this.top,this.bottom-E-n.labels.padding-this._computeTitleHeight())}let y=Ve(c,g,g+b);r.textAlign=a.textAlign(ns(c)),r.textBaseline="middle",r.strokeStyle=e.color,r.fillStyle=e.color,r.font=i.string,un(r,e.text,y,f,i)}_computeTitleHeight(){let n=this.options.title,e=Ie(n.font),i=$e(n.padding);return n.display?e.lineHeight+i.height:0}_getLegendItemAt(n,e){let i,o,a;if(Ei(n,this.left,this.right)&&Ei(e,this.top,this.bottom)){for(a=this.legendHitBoxes,i=0;i<a.length;++i)if(o=a[i],Ei(n,o.left,o.left+o.width)&&Ei(e,o.top,o.top+o.height))return this.legendItems[i]}return null}handleEvent(n){let e=this.options;if(!RS(n.type,e))return;let i=this._getLegendItemAt(n.x,n.y);if(n.type==="mousemove"||n.type==="mouseout"){let o=this._hoveredItem,a=PS(o,i);o&&!a&&oe(e.onLeave,[n,o,this],this),this._hoveredItem=i,i&&!a&&oe(e.onHover,[n,i,this],this)}else i&&oe(e.onClick,[n,i,this],this)}};function kS(t,n,e,i,o){let a=OS(i,t,n,e),r=IS(o,i,n.lineHeight);return{itemWidth:a,itemHeight:r}}function OS(t,n,e,i){let o=t.text;return o&&typeof o!="string"&&(o=o.reduce((a,r)=>a.length>r.length?a:r)),n+e.size/2+i.measureText(o).width}function IS(t,n,e){let i=t;return typeof n.text!="string"&&(i=xu(n,e)),i}function xu(t,n){let e=t.text?t.text.length:0;return n*e}function RS(t,n){return!!((t==="mousemove"||t==="mouseout")&&(n.onHover||n.onLeave)||n.onClick&&(t==="click"||t==="mouseup"))}var AS={id:"legend",_element:Ms,start(t,n,e){let i=t.legend=new Ms({ctx:t.ctx,options:e,chart:t});Ue.configure(t,i,e),Ue.addBox(t,i)},stop(t){Ue.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,n,e){let i=t.legend;Ue.configure(t,i,e),i.options=e},afterUpdate(t){let n=t.legend;n.buildLabels(),n.adjustHitBoxes()},afterEvent(t,n){n.replay||t.legend.handleEvent(n.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,n,e){let i=n.datasetIndex,o=e.chart;o.isDatasetVisible(i)?(o.hide(i),n.hidden=!0):(o.show(i),n.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){let n=t.data.datasets,{labels:{usePointStyle:e,pointStyle:i,textAlign:o,color:a,useBorderRadius:r,borderRadius:c}}=t.legend.options;return t._getSortedDatasetMetas().map(p=>{let u=p.controller.getStyle(e?0:void 0),f=$e(u.borderWidth);return{text:n[p.index].label,fillStyle:u.backgroundColor,fontColor:a,hidden:!p.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(f.width+f.height)/4,strokeStyle:u.borderColor,pointStyle:i||u.pointStyle,rotation:u.rotation,textAlign:o||u.textAlign,borderRadius:r&&(c||u.borderRadius),datasetIndex:p.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}}
vendor: 4,535 bytes, lines 217-219
217,descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}},Va=class extends Ci{constructor(n){super(),this.chart=n.chart,this.options=n.options,this.ctx=n.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(n,e){let i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=n,this.height=this.bottom=e;let o=re(i.text)?i.text.length:1;this._padding=$e(i.padding);let a=o*Ie(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=a:this.width=a}isHorizontal(){let n=this.options.position;return n==="top"||n==="bottom"}_drawArgs(n){let{top:e,left:i,bottom:o,right:a,options:r}=this,c=r.align,p=0,u,f,g;return this.isHorizontal()?(f=Ve(c,i,a),g=e+n,u=a-i):(r.position==="left"?(f=i+n,g=Ve(c,o,e),p=se*-.5):(f=a-n,g=Ve(c,e,o),p=se*.5),u=o-e),{titleX:f,titleY:g,maxWidth:u,rotation:p}}draw(){let n=this.ctx,e=this.options;if(!e.display)return;let i=Ie(e.font),a=i.lineHeight/2+this._padding.top,{titleX:r,titleY:c,maxWidth:p,rotation:u}=this._drawArgs(a);un(n,e.text,0,0,i,{color:e.color,maxWidth:p,rotation:u,textAlign:ns(e.align),textBaseline:"middle",translation:[r,c]})}};function FS(t,n){let e=new Va({ctx:t.ctx,options:n,chart:t});Ue.configure(t,e,n),Ue.addBox(t,e),t.titleBlock=e}var BS={id:"title",_element:Va,start(t,n,e){FS(t,e)},stop(t){let n=t.titleBlock;Ue.removeBox(t,n),delete t.titleBlock},beforeUpdate(t,n,e){let i=t.titleBlock;Ue.configure(t,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},fs=new WeakMap,LS={id:"subtitle",start(t,n,e){let i=new Va({ctx:t.ctx,options:e,chart:t});Ue.configure(t,i,e),Ue.addBox(t,i),fs.set(t,i)},stop(t){Ue.removeBox(t,fs.get(t)),fs.delete(t)},beforeUpdate(t,n,e){let i=fs.get(t);Ue.configure(t,i,e),i.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},La={average(t){if(!t.length)return!1;let n,e,i=0,o=0,a=0;for(n=0,e=t.length;n<e;++n){let r=t[n].element;if(r&&r.hasValue()){let c=r.tooltipPosition();i+=c.x,o+=c.y,++a}}return{x:i/a,y:o/a}},nearest(t,n){if(!t.length)return!1;let e=n.x,i=n.y,o=Number.POSITIVE_INFINITY,a,r,c;for(a=0,r=t.length;a<r;++a){let p=t[a].element;if(p&&p.hasValue()){let u=p.getCenterPoint(),f=Jr(n,u);f<o&&(o=f,c=p)}}if(c){let p=c.tooltipPosition();e=p.x,i=p.y}return{x:e,y:i}}};function Ti(t,n){return n&&(re(n)?Array.prototype.push.apply(t,n):t.push(n)),t}function Hi(t){return(typeof t=="string"||t instanceof String)&&t.indexOf(`
218`)>-1?t.split(`
219`):t}function NS(t,n){let{element:e,datasetIndex:i,index:o}=n,a=t.getDatasetMeta(i).controller,{label:r,value:c}=a.getLabelAndValue(o);return{chart:t,label:r,parsed:a.getParsed(o),raw:t.data.datasets[i].data[o],formattedValue:c,dataset:a.getDataset(),dataIndex:o,datasetIndex:i,element:e}}function $0(t,n){let e=t.chart.ctx,{body:i,footer:o,title:a}=t,{boxWidth:r,boxHeight:c}=n,p=Ie(n.bodyFont),u=Ie(n.titleFont),f=Ie(n.footerFont),g=a.length,b=o.length,y=i.length,E=$e(n.padding),D=E.height,k=0,V=i.reduce((q,j)=>q+j.before.length+j.lines.length+j.after.length,0);if(V+=t.beforeBody.length+t.afterBody.length,g&&(D+=g*u.lineHeight+(g-1)*n.titleSpacing+n.titleMarginBottom),V){let q=n.displayColors?Math.max(c,p.lineHeight):p.lineHeight;D+=y*q+(V-y)*p.lineHeight+(V-1)*n.bodySpacing}b&&(D+=n.footerMarginTop+b*f.lineHeight+(b-1)*n.footerSpacing);let N=0,W=function(q){k=Math.max(k,e.measureText(q).width+N)};return e.save(),e.font=u.string,te(t.title,W),e.font=p.string,te(t.beforeBody.concat(t.afterBody),W),N=n.displayColors?r+2+n.boxPadding:0,te(i,q=>{te(q.before,W),te(q.lines,W),te(q.after,W)}),N=0,e.font=f.string,te(t.footer,W),e.restore(),k+=E.width,{width:k,height:D}}function VS(t,n){let{y:e,height:i}=n;return e<i/2?"top":e>t.height-i/2?"bottom":"center"}function $S(t,n,e,i){let{x:o,width:a}=i,r=e.caretSize+e.caretPadding;if(t==="left"&&o+a+r>n.width||t==="right"&&o-a-r<0)return!0}function zS(t,n,e,i){let{x:o,width:a}=e,{width:r,chartArea:{left:c,right:p}}=t,u="center";return i==="center"?u=o<=(c+p)/2?"left":"right":o<=a/2?u="left":o>=r-a/2&&(u="right"),$S(u,t,n,e)&&(u="center"),u}
vendor: 9,783 bytes, line 219
219function z0(t,n,e){let i=e.yAlign||n.yAlign||VS(t,e);return{xAlign:e.xAlign||n.xAlign||zS(t,n,e,i),yAlign:i}}function HS(t,n){let{x:e,width:i}=t;return n==="right"?e-=i:n==="center"&&(e-=i/2),e}function jS(t,n,e){let{y:i,height:o}=t;return n==="top"?i+=e:n==="bottom"?i-=o+e:i-=o/2,i}function H0(t,n,e,i){let{caretSize:o,caretPadding:a,cornerRadius:r}=t,{xAlign:c,yAlign:p}=e,u=o+a,{topLeft:f,topRight:g,bottomLeft:b,bottomRight:y}=fn(r),E=HS(n,c),D=jS(n,p,u);return p==="center"?c==="left"?E+=u:c==="right"&&(E-=u):c==="left"?E-=Math.max(f,b)+o:c==="right"&&(E+=Math.max(g,y)+o),{x:Re(E,0,i.width-n.width),y:Re(D,0,i.height-n.height)}}function hs(t,n,e){let i=$e(e.padding);return n==="center"?t.x+t.width/2:n==="right"?t.x+t.width-i.right:t.x+i.left}function j0(t){return Ti([],Hi(t))}function US(t,n,e){return $i(t,{tooltip:n,tooltipItems:e,type:"tooltip"})}function U0(t,n){let e=n&&n.dataset&&n.dataset.tooltip&&n.dataset.tooltip.callbacks;return e?t.override(e):t}var vu={beforeTitle:wi,title(t){if(t.length>0){let n=t[0],e=n.chart.data.labels,i=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return n.dataset.label||"";if(n.label)return n.label;if(i>0&&n.dataIndex<i)return e[n.dataIndex]}return""},afterTitle:wi,beforeBody:wi,beforeLabel:wi,label(t){if(this&&this.options&&this.options.mode==="dataset")return t.label+": "+t.formattedValue||t.formattedValue;let n=t.dataset.label||"";n&&(n+=": ");let e=t.formattedValue;return Ut(e)||(n+=e),n},labelColor(t){let e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){let e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:wi,afterBody:wi,beforeFooter:wi,footer:wi,afterFooter:wi};function Ze(t,n,e,i){let o=t[n].call(e,i);return typeof o>"u"?vu[n].call(e,i):o}var W0=(()=>{class t extends Ci{static positioners=La;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let e=this._cachedAnimations;if(e)return e;let i=this.chart,o=this.options.setContext(this.getContext()),a=o.enabled&&i.options.animation&&o.animations,r=new bs(this.chart,a);return a._cacheable&&(this._cachedAnimations=Object.freeze(r)),r}getContext(){return this.$context||(this.$context=US(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,i){let{callbacks:o}=i,a=Ze(o,"beforeTitle",this,e),r=Ze(o,"title",this,e),c=Ze(o,"afterTitle",this,e),p=[];return p=Ti(p,Hi(a)),p=Ti(p,Hi(r)),p=Ti(p,Hi(c)),p}getBeforeBody(e,i){return j0(Ze(i.callbacks,"beforeBody",this,e))}getBody(e,i){let{callbacks:o}=i,a=[];return te(e,r=>{let c={before:[],lines:[],after:[]},p=U0(o,r);Ti(c.before,Hi(Ze(p,"beforeLabel",this,r))),Ti(c.lines,Ze(p,"label",this,r)),Ti(c.after,Hi(Ze(p,"afterLabel",this,r))),a.push(c)}),a}getAfterBody(e,i){return j0(Ze(i.callbacks,"afterBody",this,e))}getFooter(e,i){let{callbacks:o}=i,a=Ze(o,"beforeFooter",this,e),r=Ze(o,"footer",this,e),c=Ze(o,"afterFooter",this,e),p=[];return p=Ti(p,Hi(a)),p=Ti(p,Hi(r)),p=Ti(p,Hi(c)),p}_createItems(e){let i=this._active,o=this.chart.data,a=[],r=[],c=[],p=[],u,f;for(u=0,f=i.length;u<f;++u)p.push(NS(this.chart,i[u]));return e.filter&&(p=p.filter((g,b,y)=>e.filter(g,b,y,o))),e.itemSort&&(p=p.sort((g,b)=>e.itemSort(g,b,o))),te(p,g=>{let b=U0(e.callbacks,g);a.push(Ze(b,"labelColor",this,g)),r.push(Ze(b,"labelPointStyle",this,g)),c.push(Ze(b,"labelTextColor",this,g))}),this.labelColors=a,this.labelPointStyles=r,this.labelTextColors=c,this.dataPoints=p,p}update(e,i){let o=this.options.setContext(this.getContext()),a=this._active,r,c=[];if(!a.length)this.opacity!==0&&(r={opacity:0});else{let p=La[o.position].call(this,a,this._eventPosition);c=this._createItems(o),this.title=this.getTitle(c,o),this.beforeBody=this.getBeforeBody(c,o),this.body=this.getBody(c,o),this.afterBody=this.getAfterBody(c,o),this.footer=this.getFooter(c,o);let u=this._size=$0(this,o),f=Object.assign({},p,u),g=z0(this.chart,o,f),b=H0(o,f,g,this.chart);this.xAlign=g.xAlign,this.yAlign=g.yAlign,r={opacity:1,x:b.x,y:b.y,width:u.width,height:u.height,caretX:p.x,caretY:p.y}}this._tooltipItems=c,this.$context=void 0,r&&this._resolveAnimations().update(this,r),e&&o.external&&o.external.call(this,{chart:this.chart,tooltip:this,replay:i})}drawCaret(e,i,o,a){let r=this.getCaretPosition(e,o,a);i.lineTo(r.x1,r.y1),i.lineTo(r.x2,r.y2),i.lineTo(r.x3,r.y3)}getCaretPosition(e,i,o){let{xAlign:a,yAlign:r}=this,{caretSize:c,cornerRadius:p}=o,{topLeft:u,topRight:f,bottomLeft:g,bottomRight:b}=fn(p),{x:y,y:E}=e,{width:D,height:k}=i,V,N,W,q,j,G;return r==="center"?(j=E+k/2,a==="left"?(V=y,N=V-c,q=j+c,G=j-c):(V=y+D,N=V+c,q=j-c,G=j+c),W=V):(a==="left"?N=y+Math.max(u,g)+c:a==="right"?N=y+D-Math.max(f,b)-c:N=this.caretX,r==="top"?(q=E,j=q-c,V=N-c,W=N+c):(q=E+k,j=q+c,V=N+c,W=N-c),G=q),{x1:V,x2:N,x3:W,y1:q,y2:j,y3:G}}drawTitle(e,i,o){let a=this.title,r=a.length,c,p,u;if(r){let f=An(o.rtl,this.x,this.width);for(e.x=hs(this,o.titleAlign,o),i.textAlign=f.textAlign(o.titleAlign),i.textBaseline="middle",c=Ie(o.titleFont),p=o.titleSpacing,i.fillStyle=o.titleColor,i.font=c.string,u=0;u<r;++u)i.fillText(a[u],f.x(e.x),e.y+c.lineHeight/2),e.y+=c.lineHeight+p,u+1===r&&(e.y+=o.titleMarginBottom-p)}}_drawColorBox(e,i,o,a,r){let c=this.labelColors[o],p=this.labelPointStyles[o],{boxHeight:u,boxWidth:f}=r,g=Ie(r.bodyFont),b=hs(this,"left",r),y=a.x(b),E=u<g.lineHeight?(g.lineHeight-u)/2:0,D=i.y+E;if(r.usePointStyle){let k={radius:Math.min(f,u)/2,pointStyle:p.pointStyle,rotation:p.rotation,borderWidth:1},V=a.leftForLtr(y,f)+f/2,N=D+u/2;e.strokeStyle=r.multiKeyBackground,e.fillStyle=r.multiKeyBackground,as(e,k,V,N),e.strokeStyle=c.borderColor,e.fillStyle=c.backgroundColor,as(e,k,V,N)}else{e.lineWidth=zt(c.borderWidth)?Math.max(...Object.values(c.borderWidth)):c.borderWidth||1,e.strokeStyle=c.borderColor,e.setLineDash(c.borderDash||[]),e.lineDashOffset=c.borderDashOffset||0;let k=a.leftForLtr(y,f),V=a.leftForLtr(a.xPlus(y,1),f-2),N=fn(c.borderRadius);Object.values(N).some(W=>W!==0)?(e.beginPath(),e.fillStyle=r.multiKeyBackground,Do(e,{x:k,y:D,w:f,h:u,radius:N}),e.fill(),e.stroke(),e.fillStyle=c.backgroundColor,e.beginPath(),Do(e,{x:V,y:D+1,w:f-2,h:u-2,radius:N}),e.fill()):(e.fillStyle=r.multiKeyBackground,e.fillRect(k,D,f,u),e.strokeRect(k,D,f,u),e.fillStyle=c.backgroundColor,e.fillRect(V,D+1,f-2,u-2))}e.fillStyle=this.labelTextColors[o]}drawBody(e,i,o){let{body:a}=this,{bodySpacing:r,bodyAlign:c,displayColors:p,boxHeight:u,boxWidth:f,boxPadding:g}=o,b=Ie(o.bodyFont),y=b.lineHeight,E=0,D=An(o.rtl,this.x,this.width),k=function(at){i.fillText(at,D.x(e.x+E),e.y+y/2),e.y+=y+r},V=D.textAlign(c),N,W,q,j,G,it,Q;for(i.textAlign=c,i.textBaseline="middle",i.font=b.string,e.x=hs(this,V,o),i.fillStyle=o.bodyColor,te(this.beforeBody,k),E=p&&V!=="right"?c==="center"?f/2+g:f+2+g:0,j=0,it=a.length;j<it;++j){for(N=a[j],W=this.labelTextColors[j],i.fillStyle=W,te(N.before,k),q=N.lines,p&&q.length&&(this._drawColorBox(i,e,j,D,o),y=Math.max(b.lineHeight,u)),G=0,Q=q.length;G<Q;++G)k(q[G]),y=b.lineHeight;te(N.after,k)}E=0,y=b.lineHeight,te(this.afterBody,k),e.y-=r}drawFooter(e,i,o){let a=this.footer,r=a.length,c,p;if(r){let u=An(o.rtl,this.x,this.width);for(e.x=hs(this,o.footerAlign,o),e.y+=o.footerMarginTop,i.textAlign=u.textAlign(o.footerAlign),i.textBaseline="middle",c=Ie(o.footerFont),i.fillStyle=o.footerColor,i.font=c.string,p=0;p<r;++p)i.fillText(a[p],u.x(e.x),e.y+c.lineHeight/2),e.y+=c.lineHeight+o.footerSpacing}}drawBackground(e,i,o,a){let{xAlign:r,yAlign:c}=this,{x:p,y:u}=e,{width:f,height:g}=o,{topLeft:b,topRight:y,bottomLeft:E,bottomRight:D}=fn(a.cornerRadius);i.fillStyle=a.backgroundColor,i.strokeStyle=a.borderColor,i.lineWidth=a.borderWidth,i.beginPath(),i.moveTo(p+b,u),c==="top"&&this.drawCaret(e,i,o,a),i.lineTo(p+f-y,u),i.quadraticCurveTo(p+f,u,p+f,u+y),c==="center"&&r==="right"&&this.drawCaret(e,i,o,a),i.lineTo(p+f,u+g-D),i.quadraticCurveTo(p+f,u+g,p+f-D,u+g),c==="bottom"&&this.drawCaret(e,i,o,a),i.lineTo(p+E,u+g),i.quadraticCurveTo(p,u+g,p,u+g-E),c==="center"&&r==="left"&&this.drawCaret(e,i,o,a),i.lineTo(p,u+b),i.quadraticCurveTo(p,u,p+b,u),i.closePath(),i.fill(),a.borderWidth>0&&i.stroke()}_updateAnimationTarget(e){let i=this.chart,o=this.$animations,a=o&&o.x,r=o&&o.y;if(a||r){let c=La[e.position].call(this,this._active,this._eventPosition);if(!c)return;let p=this._size=$0(this,e),u=Object.assign({},c,this._size),f=z0(i,e,u),g=H0(e,u,f,i);(a._to!==g.x||r._to!==g.y)&&(this.xAlign=f.xAlign,this.yAlign=f.yAlign,this.width=p.width,this.height=p.height,this.caretX=c.x,this.caretY=c.y,this._resolveAnimations().update(this,g))}}_willRender(){return!!this.opacity}draw(e){let i=this.options.setContext(this.getContext()),o=this.opacity;if(!o)return;this._updateAnimationTarget(i);let a={width:this.width,height:this.height},r={x:this.x,y:this.y};o=Math.abs(o)<.001?0:o;let c=$e(i.padding),p=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;
vendor: 8,575 bytes, line 219
219i.enabled&&p&&(e.save(),e.globalAlpha=o,this.drawBackground(r,e,a,i),sc(e,i.textDirection),r.y+=c.top,this.drawTitle(r,e,i),this.drawBody(r,e,i),this.drawFooter(r,e,i),lc(e,i.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,i){let o=this._active,a=e.map(({datasetIndex:p,index:u})=>{let f=this.chart.getDatasetMeta(p);if(!f)throw new Error("Cannot find a dataset at index "+p);return{datasetIndex:p,element:f.data[u],index:u}}),r=!Ta(o,a),c=this._positionChanged(a,i);(r||c)&&(this._active=a,this._eventPosition=i,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,i,o=!0){if(i&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let a=this.options,r=this._active||[],c=this._getActiveElements(e,r,i,o),p=this._positionChanged(c,e),u=i||!Ta(c,r)||p;return u&&(this._active=c,(a.enabled||a.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,i))),u}_getActiveElements(e,i,o,a){let r=this.options;if(e.type==="mouseout")return[];if(!a)return i;let c=this.chart.getElementsAtEventForMode(e,r.mode,r,o);return r.reverse&&c.reverse(),c}_positionChanged(e,i){let{caretX:o,caretY:a,options:r}=this,c=La[r.position].call(this,e,i);return c!==!1&&(o!==c.x||a!==c.y)}}return t})(),WS={id:"tooltip",_element:W0,positioners:La,afterInit(t,n,e){e&&(t.tooltip=new W0({chart:t,options:e}))},beforeUpdate(t,n,e){t.tooltip&&t.tooltip.initialize(e)},reset(t,n,e){t.tooltip&&t.tooltip.initialize(e)},afterDraw(t){let n=t.tooltip;if(n&&n._willRender()){let e={tooltip:n};if(t.notifyPlugins("beforeTooltipDraw",Et(nt({},e),{cancelable:!0}))===!1)return;n.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",e)}},afterEvent(t,n){if(t.tooltip){let e=n.replay;t.tooltip.handleEvent(n.event,e,n.inChartArea)&&(n.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,n)=>n.bodyFont.size,boxWidth:(t,n)=>n.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:vu},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},GS=Object.freeze({__proto__:null,Colors:oS,Decimation:lS,Filler:DS,Legend:AS,SubTitle:LS,Title:BS,Tooltip:WS}),qS=(t,n,e,i)=>(typeof n=="string"?(e=t.push(n)-1,i.unshift({index:e,label:n})):isNaN(n)&&(e=null),e);function YS(t,n,e,i){let o=t.indexOf(n);if(o===-1)return qS(t,n,e,i);let a=t.lastIndexOf(n);return o!==a?e:o}var QS=(t,n)=>t===null?null:Re(Math.round(t),0,n);function G0(t){let n=this.getLabels();return t>=0&&t<n.length?n[t]:t}var KS=(()=>{class t extends Ln{static id="category";static defaults={ticks:{callback:G0}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){let i=this._addedLabels;if(i.length){let o=this.getLabels();for(let{index:a,label:r}of i)o[a]===r&&o.splice(a,1);this._addedLabels=[]}super.init(e)}parse(e,i){if(Ut(e))return null;let o=this.getLabels();return i=isFinite(i)&&o[i]===e?i:YS(o,e,At(i,e),this._addedLabels),QS(i,o.length-1)}determineDataLimits(){let{minDefined:e,maxDefined:i}=this.getUserBounds(),{min:o,max:a}=this.getMinMax(!0);this.options.bounds==="ticks"&&(e||(o=0),i||(a=this.getLabels().length-1)),this.min=o,this.max=a}buildTicks(){let e=this.min,i=this.max,o=this.options.offset,a=[],r=this.getLabels();r=e===0&&i===r.length-1?r:r.slice(e,i+1),this._valueRange=Math.max(r.length-(o?0:1),1),this._startValue=this.min-(o?.5:0);for(let c=e;c<=i;c++)a.push({value:c});return a}getLabelForValue(e){return G0.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return typeof e!="number"&&(e=this.parse(e)),e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){let i=this.ticks;return e<0||e>i.length-1?null:this.getPixelForValue(i[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}return t})();function XS(t,n){let e=[],{bounds:o,step:a,min:r,max:c,precision:p,count:u,maxTicks:f,maxDigits:g,includeBounds:b}=t,y=a||1,E=f-1,{min:D,max:k}=n,V=!Ut(r),N=!Ut(c),W=!Ut(u),q=(k-D)/(g+1),j=Vl((k-D)/E/y)*y,G,it,Q,at;if(j<1e-14&&!V&&!N)return[{value:D},{value:k}];at=Math.ceil(k/j)-Math.floor(D/j),at>E&&(j=Vl(at*j/E/y)*y),Ut(p)||(G=Math.pow(10,p),j=Math.ceil(j*G)/G),o==="ticks"?(it=Math.floor(D/j)*j,Q=Math.ceil(k/j)*j):(it=D,Q=k),V&&N&&a&&Op((c-r)/a,j/1e3)?(at=Math.round(Math.min((c-r)/j,f)),j=(c-r)/at,it=r,Q=c):W?(it=V?r:it,Q=N?c:Q,at=u-1,j=(Q-it)/at):(at=(Q-it)/j,wo(at,Math.round(at),j/1e3)?at=Math.round(at):at=Math.ceil(at));let Lt=Math.max(zl(j),zl(it));G=Math.pow(10,Ut(p)?Lt:p),it=Math.round(it*G)/G,Q=Math.round(Q*G)/G;let Bt=0;for(V&&(b&&it!==r?(e.push({value:r}),it<r&&Bt++,wo(Math.round((it+Bt*j)*G)/G,r,q0(r,q,t))&&Bt++):it<r&&Bt++);Bt<at;++Bt){let Ht=Math.round((it+Bt*j)*G)/G;if(N&&Ht>c)break;e.push({value:Ht})}return N&&b&&Q!==c?e.length&&wo(e[e.length-1].value,c,q0(c,q,t))?e[e.length-1].value=c:e.push({value:c}):(!N||Q===c)&&e.push({value:Q}),e}function q0(t,n,{horizontal:e,minRotation:i}){let o=di(i),a=(e?Math.sin(o):Math.cos(o))||.001,r=.75*n*(""+t).length;return Math.min(n/a,r)}var Io=class extends Ln{constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(n,e){return Ut(n)||(typeof n=="number"||n instanceof Number)&&!isFinite(+n)?null:+n}handleTickRangeOptions(){let{beginAtZero:n}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds(),{min:o,max:a}=this,r=p=>o=e?o:p,c=p=>a=i?a:p;if(n){let p=_i(o),u=_i(a);p<0&&u<0?c(0):p>0&&u>0&&r(0)}if(o===a){let p=a===0?1:Math.abs(a*.05);c(a+p),n||r(o-p)}this.min=o,this.max=a}getTickLimit(){let n=this.options.ticks,{maxTicksLimit:e,stepSize:i}=n,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),e=e||11),e&&(o=Math.min(e,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){let n=this.options,e=n.ticks,i=this.getTickLimit();i=Math.max(2,i);let o={maxTicks:i,bounds:n.bounds,min:n.min,max:n.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},a=this._range||this,r=XS(o,a);return n.bounds==="ticks"&&$l(r,this,"value"),n.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let n=this.ticks,e=this.min,i=this.max;if(super.configure(),this.options.offset&&n.length){let o=(i-e)/Math.max(n.length-1,1)/2;e-=o,i+=o}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(n){return To(n,this.chart.options.locale,this.options.ticks.format)}},Fc=class extends Io{static id="linear";static defaults={ticks:{callback:Da.formatters.numeric}};determineDataLimits(){let{min:n,max:e}=this.getMinMax(!0);this.min=be(n)?n:0,this.max=be(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){let n=this.isHorizontal(),e=n?this.width:this.height,i=di(this.options.ticks.minRotation),o=(n?Math.sin(i):Math.cos(i))||.001,a=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,a.lineHeight/o))}getPixelForValue(n){return n===null?NaN:this.getPixelForDecimal((n-this._startValue)/this._valueRange)}getValueForPixel(n){return this._startValue+this.getDecimalForPixel(n)*this._valueRange}},$a=t=>Math.floor(Ni(t)),Bn=(t,n)=>Math.pow(10,$a(t)+n);function Y0(t){return t/Math.pow(10,$a(t))===1}function Q0(t,n,e){let i=Math.pow(10,e),o=Math.floor(t/i);return Math.ceil(n/i)-o}function JS(t,n){let e=n-t,i=$a(e);for(;Q0(t,n,i)>10;)i++;for(;Q0(t,n,i)<10;)i--;return Math.min(i,$a(t))}function ZS(t,{min:n,max:e}){n=Je(t.min,n);
vendor: 4,377 bytes, line 219
219let i=[],o=$a(n),a=JS(n,e),r=a<0?Math.pow(10,Math.abs(a)):1,c=Math.pow(10,a),p=o>a?Math.pow(10,o):0,u=Math.round((n-p)*r)/r,f=Math.floor((n-p)/c/10)*c*10,g=Math.floor((u-f)/Math.pow(10,a)),b=Je(t.min,Math.round((p+f+g*Math.pow(10,a))*r)/r);for(;b<e;)i.push({value:b,major:Y0(b),significand:g}),g>=10?g=g<15?15:20:g++,g>=20&&(a++,g=2,r=a>=0?1:r),b=Math.round((p+f+g*Math.pow(10,a))*r)/r;let y=Je(t.max,b);return i.push({value:y,major:Y0(y),significand:g}),i}var Bc=class extends Ln{static id="logarithmic";static defaults={ticks:{callback:Da.formatters.logarithmic,major:{enabled:!0}}};constructor(n){super(n),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(n,e){let i=Io.prototype.parse.apply(this,[n,e]);if(i===0){this._zero=!0;return}return be(i)&&i>0?i:null}determineDataLimits(){let{min:n,max:e}=this.getMinMax(!0);this.min=be(n)?Math.max(0,n):null,this.max=be(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!be(this._userMin)&&(this.min=n===Bn(this.min,0)?Bn(this.min,-1):Bn(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:n,maxDefined:e}=this.getUserBounds(),i=this.min,o=this.max,a=c=>i=n?i:c,r=c=>o=e?o:c;i===o&&(i<=0?(a(1),r(10)):(a(Bn(i,-1)),r(Bn(o,1)))),i<=0&&a(Bn(o,-1)),o<=0&&r(Bn(i,1)),this.min=i,this.max=o}buildTicks(){let n=this.options,e={min:this._userMin,max:this._userMax},i=ZS(e,this);return n.bounds==="ticks"&&$l(i,this,"value"),n.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(n){return n===void 0?"0":To(n,this.chart.options.locale,this.options.ticks.format)}configure(){let n=this.min;super.configure(),this._startValue=Ni(n),this._valueRange=Ni(this.max)-Ni(n)}getPixelForValue(n){return(n===void 0||n===0)&&(n=this.min),n===null||isNaN(n)?NaN:this.getPixelForDecimal(n===this.min?0:(Ni(n)-this._startValue)/this._valueRange)}getValueForPixel(n){let e=this.getDecimalForPixel(n);return Math.pow(10,this._startValue+e*this._valueRange)}};function Lc(t){let n=t.ticks;if(n.display&&t.display){let e=$e(n.backdropPadding);return At(n.font&&n.font.size,me.font.size)+e.height}return 0}function tM(t,n,e){return e=re(e)?e:[e],{w:$p(t,n.string,e),h:e.length*n.lineHeight}}function K0(t,n,e,i,o){return t===i||t===o?{start:n-e/2,end:n+e/2}:t<i||t>o?{start:n-e,end:n}:{start:n,end:n+e}}function eM(t){let n={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},e=Object.assign({},n),i=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,c=r.centerPointLabels?se/a:0;for(let p=0;p<a;p++){let u=r.setContext(t.getPointLabelContext(p));o[p]=u.padding;let f=t.getPointPosition(p,t.drawingArea+o[p],c),g=Ie(u.font),b=tM(t.ctx,g,t._pointLabels[p]);i[p]=b;let y=Xe(t.getIndexAngle(p)+c),E=Math.round(es(y)),D=K0(E,f.x,b.w,0,180),k=K0(E,f.y,b.h,90,270);iM(e,n,y,D,k)}t.setCenterPoint(n.l-e.l,e.r-n.r,n.t-e.t,e.b-n.b),t._pointLabelItems=aM(t,i,o)}function iM(t,n,e,i,o){let a=Math.abs(Math.sin(e)),r=Math.abs(Math.cos(e)),c=0,p=0;i.start<n.l?(c=(n.l-i.start)/a,t.l=Math.min(t.l,n.l-c)):i.end>n.r&&(c=(i.end-n.r)/a,t.r=Math.max(t.r,n.r+c)),o.start<n.t?(p=(n.t-o.start)/r,t.t=Math.min(t.t,n.t-p)):o.end>n.b&&(p=(o.end-n.b)/r,t.b=Math.max(t.b,n.b+p))}function nM(t,n,e){let i=t.drawingArea,{extra:o,additionalAngle:a,padding:r,size:c}=e,p=t.getPointPosition(n,i+o+r,a),u=Math.round(es(Xe(p.angle+ye))),f=lM(p.y,c.h,u),g=rM(u),b=sM(p.x,c.w,g);return{visible:!0,x:p.x,y:f,textAlign:g,left:b,top:f,right:b+c.w,bottom:f+c.h}}function oM(t,n){if(!n)return!0;let{left:e,top:i,right:o,bottom:a}=t;return!(Mi({x:e,y:i},n)||Mi({x:e,y:a},n)||Mi({x:o,y:i},n)||Mi({x:o,y:a},n))}function aM(t,n,e){let i=[],o=t._pointLabels.length,a=t.options,{centerPointLabels:r,display:c}=a.pointLabels,p={extra:Lc(a)/2,additionalAngle:r?se/o:0},u;for(let f=0;f<o;f++){p.padding=e[f],p.size=n[f];let g=nM(t,f,p);i.push(g),c==="auto"&&(g.visible=oM(g,u),g.visible&&(u=g))}return i}function rM(t){return t===0||t===180?"center":t<180?"left":"right"}function sM(t,n,e){return e==="right"?t-=n:e==="center"&&(t-=n/2),t}function lM(t,n,e){return e===90||e===270?t-=n/2:(e>270||e<90)&&(t-=n),t}function cM(t,n,e){let{left:i,top:o,right:a,bottom:r}=e,{backdropColor:c}=n;if(!Ut(c)){let p=fn(n.borderRadius),u=$e(n.backdropPadding);t.fillStyle=c;
vendor: 8,377 bytes, line 219
219let f=i-u.left,g=o-u.top,b=a-i+u.width,y=r-o+u.height;Object.values(p).some(E=>E!==0)?(t.beginPath(),Do(t,{x:f,y:g,w:b,h:y,radius:p}),t.fill()):t.fillRect(f,g,b,y)}}function dM(t,n){let{ctx:e,options:{pointLabels:i}}=t;for(let o=n-1;o>=0;o--){let a=t._pointLabelItems[o];if(!a.visible)continue;let r=i.setContext(t.getPointLabelContext(o));cM(e,r,a);let c=Ie(r.font),{x:p,y:u,textAlign:f}=a;un(e,t._pointLabels[o],p,u+c.lineHeight/2,c,{color:r.color,textAlign:f,textBaseline:"middle"})}}function yu(t,n,e,i){let{ctx:o}=t;if(e)o.arc(t.xCenter,t.yCenter,n,0,le);else{let a=t.getPointPosition(0,n);o.moveTo(a.x,a.y);for(let r=1;r<i;r++)a=t.getPointPosition(r,n),o.lineTo(a.x,a.y)}}function mM(t,n,e,i,o){let a=t.ctx,r=n.circular,{color:c,lineWidth:p}=n;!r&&!i||!c||!p||e<0||(a.save(),a.strokeStyle=c,a.lineWidth=p,a.setLineDash(o.dash),a.lineDashOffset=o.dashOffset,a.beginPath(),yu(t,e,r,i),a.closePath(),a.stroke(),a.restore())}function pM(t,n,e){return $i(t,{label:e,index:n,type:"pointLabel"})}var Nc=class extends Io{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Da.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(n){return n},padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(n){super(n),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){let n=this._padding=$e(Lc(this.options)/2),e=this.width=this.maxWidth-n.width,i=this.height=this.maxHeight-n.height;this.xCenter=Math.floor(this.left+e/2+n.left),this.yCenter=Math.floor(this.top+i/2+n.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){let{min:n,max:e}=this.getMinMax(!1);this.min=be(n)&&!isNaN(n)?n:0,this.max=be(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Lc(this.options))}generateTickLabels(n){Io.prototype.generateTickLabels.call(this,n),this._pointLabels=this.getLabels().map((e,i)=>{let o=oe(this.options.pointLabels.callback,[e,i],this);return o||o===0?o:""}).filter((e,i)=>this.chart.getDataVisibility(i))}fit(){let n=this.options;n.display&&n.pointLabels.display?eM(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(n,e,i,o){this.xCenter+=Math.floor((n-e)/2),this.yCenter+=Math.floor((i-o)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(n,e,i,o))}getIndexAngle(n){let e=le/(this._pointLabels.length||1),i=this.options.startAngle||0;return Xe(n*e+di(i))}getDistanceFromCenterForValue(n){if(Ut(n))return NaN;let e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-n)*e:(n-this.min)*e}getValueForDistanceFromCenter(n){if(Ut(n))return NaN;let e=n/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(n){let e=this._pointLabels||[];if(n>=0&&n<e.length){let i=e[n];return pM(this.getContext(),n,i)}}getPointPosition(n,e,i=0){let o=this.getIndexAngle(n)-ye+i;return{x:Math.cos(o)*e+this.xCenter,y:Math.sin(o)*e+this.yCenter,angle:o}}getPointPositionForValue(n,e){return this.getPointPosition(n,this.getDistanceFromCenterForValue(e))}getBasePosition(n){return this.getPointPositionForValue(n||0,this.getBaseValue())}getPointLabelPosition(n){let{left:e,top:i,right:o,bottom:a}=this._pointLabelItems[n];return{left:e,top:i,right:o,bottom:a}}drawBackground(){let{backgroundColor:n,grid:{circular:e}}=this.options;if(n){let i=this.ctx;i.save(),i.beginPath(),yu(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=n,i.fill(),i.restore()}}drawGrid(){let n=this.ctx,e=this.options,{angleLines:i,grid:o,border:a}=e,r=this._pointLabels.length,c,p,u;if(e.pointLabels.display&&dM(this,r),o.display&&this.ticks.forEach((f,g)=>{if(g!==0){p=this.getDistanceFromCenterForValue(f.value);let b=this.getContext(g),y=o.setContext(b),E=a.setContext(b);mM(this,y,p,r,E)}}),i.display){for(n.save(),c=r-1;c>=0;c--){let f=i.setContext(this.getPointLabelContext(c)),{color:g,lineWidth:b}=f;!b||!g||(n.lineWidth=b,n.strokeStyle=g,n.setLineDash(f.borderDash),n.lineDashOffset=f.borderDashOffset,p=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),u=this.getPointPosition(c,p),n.beginPath(),n.moveTo(this.xCenter,this.yCenter),n.lineTo(u.x,u.y),n.stroke())}n.restore()}}drawBorder(){}drawLabels(){let n=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;let o=this.getIndexAngle(0),a,r;n.save(),n.translate(this.xCenter,this.yCenter),n.rotate(o),n.textAlign="center",n.textBaseline="middle",this.ticks.forEach((c,p)=>{if(p===0&&!e.reverse)return;let u=i.setContext(this.getContext(p)),f=Ie(u.font);if(a=this.getDistanceFromCenterForValue(this.ticks[p].value),u.showLabelBackdrop){n.font=f.string,r=n.measureText(c.label).width,n.fillStyle=u.backdropColor;let g=$e(u.backdropPadding);n.fillRect(-r/2-g.left,-a-f.size/2-g.top,r+g.width,f.size+g.height)}un(n,c.label,0,-a,f,{color:u.color,strokeColor:u.textStrokeColor,strokeWidth:u.textStrokeWidth})}),n.restore()}drawTitle(){}},Ts={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ti=Object.keys(Ts);function X0(t,n){return t-n}function J0(t,n){if(Ut(n))return null;let e=t._adapter,{parser:i,round:o,isoWeekday:a}=t._parseOpts,r=n;return typeof i=="function"&&(r=i(r)),be(r)||(r=typeof i=="string"?e.parse(r,i):e.parse(r)),r===null?null:(o&&(r=o==="week"&&(Rn(a)||a===!0)?e.startOf(r,"isoWeek",a):e.startOf(r,o)),+r)}function Z0(t,n,e,i){let o=ti.length;for(let a=ti.indexOf(t);a<o-1;++a){let r=Ts[ti[a]],c=r.steps?r.steps:Number.MAX_SAFE_INTEGER;if(r.common&&Math.ceil((e-n)/(c*r.size))<=i)return ti[a]}return ti[o-1]}function uM(t,n,e,i,o){for(let a=ti.length-1;a>=ti.indexOf(e);a--){let r=ti[a];if(Ts[r].common&&t._adapter.diff(o,i,r)>=n-1)return r}return ti[e?ti.indexOf(e):0]}function fM(t){for(let n=ti.indexOf(t)+1,e=ti.length;n<e;++n)if(Ts[ti[n]].common)return ti[n]}function tu(t,n,e){if(!e)t[n]=!0;else if(e.length){let{lo:i,hi:o}=is(e,n),a=e[i]>=n?e[i]:e[o];t[a]=!0}}function hM(t,n,e,i){let o=t._adapter,a=+o.startOf(n[0].value,i),r=n[n.length-1].value,c,p;for(c=a;c<=r;c=+o.add(c,1,i))p=e[c],p>=0&&(n[p].major=!0);return n}function eu(t,n,e){let i=[],o={},a=n.length,r,c;for(r=0;r<a;++r)c=n[r],o[c]=r,i.push({value:c,major:!1});return a===0||!e?i:hM(t,i,o,e)}var Vc=(()=>{class t extends Ln{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,i={}){let o=e.time||(e.time={}),a=this._adapter=new Ty._date(e.adapters.date);a.init(i),So(o.displayFormats,a.formats()),this._parseOpts={parser:o.parser,round:o.round,isoWeekday:o.isoWeekday},super.init(e),this._normalized=i.normalized}parse(e,i){return e===void 0?null:J0(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){let e=this.options,i=this._adapter,o=e.time.unit||"day",{min:a,max:r,minDefined:c,maxDefined:p}=this.getUserBounds();function u(f){!c&&!isNaN(f.min)&&(a=Math.min(a,f.min)),!p&&!isNaN(f.max)&&(r=Math.max(r,f.max))}(!c||!p)&&(u(this._getLabelBounds()),(e.bounds!=="ticks"||e.ticks.source!=="labels")&&u(this.getMinMax(!1))),a=be(a)&&!isNaN(a)?a:+i.startOf(Date.now(),o),r=be(r)&&!isNaN(r)?r:+i.endOf(Date.now(),o)+1,this.min=Math.min(a,r-1),this.max=Math.max(a+1,r)}_getLabelBounds(){let e=this.getLabelTimestamps(),i=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY;return e.length&&(i=e[0],o=e[e.length-1]),{min:i,max:o}}buildTicks(){let e=this.options,i=e.time,o=e.ticks,a=o.source==="labels"?this.getLabelTimestamps():this._generate();
vendor: 1,794 bytes, line 219
219e.bounds==="ticks"&&a.length&&(this.min=this._userMin||a[0],this.max=this._userMax||a[a.length-1]);let r=this.min,c=this.max,p=Ap(a,r,c);return this._unit=i.unit||(o.autoSkip?Z0(i.minUnit,this.min,this.max,this._getLabelCapacity(r)):uM(this,p.length,i.minUnit,this.min,this.max)),this._majorUnit=!o.major.enabled||this._unit==="year"?void 0:fM(this._unit),this.initOffsets(a),e.reverse&&p.reverse(),eu(this,p,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(e=>+e.value))}initOffsets(e=[]){let i=0,o=0,a,r;this.options.offset&&e.length&&(a=this.getDecimalForValue(e[0]),e.length===1?i=1-a:i=(this.getDecimalForValue(e[1])-a)/2,r=this.getDecimalForValue(e[e.length-1]),e.length===1?o=r:o=(r-this.getDecimalForValue(e[e.length-2]))/2);let c=e.length<3?.5:.25;i=Re(i,0,c),o=Re(o,0,c),this._offsets={start:i,end:o,factor:1/(i+1+o)}}_generate(){let e=this._adapter,i=this.min,o=this.max,a=this.options,r=a.time,c=r.unit||Z0(r.minUnit,i,o,this._getLabelCapacity(i)),p=At(a.ticks.stepSize,1),u=c==="week"?r.isoWeekday:!1,f=Rn(u)||u===!0,g={},b=i,y,E;if(f&&(b=+e.startOf(b,"isoWeek",u)),b=+e.startOf(b,f?"day":c),e.diff(o,i,c)>1e5*p)throw new Error(i+" and "+o+" are too far apart with stepSize of "+p+" "+c);let D=a.ticks.source==="data"&&this.getDataTimestamps();for(y=b,E=0;y<o;y=+e.add(y,p,c),E++)tu(g,y,D);return(y===o||a.bounds==="ticks"||E===1)&&tu(g,y,D),Object.keys(g).sort(X0).map(k=>+k)}getLabelForValue(e){let i=this._adapter,o=this.options.time;return o.tooltipFormat?i.format(e,o.tooltipFormat):i.format(e,o.displayFormats.datetime)}format(e,i){let a=this.options.time.displayFormats,r=this._unit,c=i||a[r];return this._adapter.format(e,c)}_tickFormatFunction(e,i,o,a){let r=this.options,c=r.ticks.callback;if(c)return oe(c,[e,i,o],this);
219let p=r.time.displayFormats,u=this._unit,f=this._majorUnit,g=u&&p[u],b=f&&p[f],y=o[i],E=f&&b&&y&&y.major;return this._adapter.format(e,a||(E?b:g))}generateTickLabels(e){let i,o,a;for(i=0,o=e.length;i<o;++i)a=e[i],a.label=this._tickFormatFunction(a.value,i,e)}getDecimalForValue(e){return e===null?NaN:(e-this.min)/(this.max-this.min)}getPixelForValue(e){let i=this._offsets,o=this.getDecimalForValue(e);return this.getPixelForDecimal((i.start+o)*i.factor)}getValueForPixel(e){let i=this._offsets,o=this.getDecimalForPixel(e)/i.factor-i.end;return this.min+o*(this.max-this.min)}_getLabelSize(e){let i=this.options.ticks,o=this.ctx.measureText(e).width,a=di(this.isHorizontal()?i.maxRotation:i.minRotation),r=Math.cos(a),c=Math.sin(a),p=this._resolveTickFontOptions(0).size;return{w:o*r+p*c,h:o*c+p*r}}_getLabelCapacity(e){let i=this.options.time,o=i.displayFormats,a=o[i.unit]||o.millisecond,r=this._tickFormatFunction(e,0,eu(this,[e],this._majorUnit),a),c=this._getLabelSize(r),p=Math.floor(this.isHorizontal()?this.width/c.w:this.height/c.h)-1;return p>0?p:1}getDataTimestamps(){let e=this._cache.data||[],i,o;if(e.length)return e;let a=this.getMatchingVisibleMetas();if(this._normalized&&a.length)return this._cache.data=a[0].controller.getAllParsedValues(this);for(i=0,o=a.length;i<o;++i)e=e.concat(a[i].controller.getAllParsedValues(this));return this._cache.data=this.normalize(e)}getLabelTimestamps(){let e=this._cache.labels||[],i,o;if(e.length)return e;let a=this.getLabels();for(i=0,o=a.length;i<o;++i)e.push(J0(this,a[i]));return this._cache.labels=this._normalized?e:this.normalize(e)}normalize(e){return Ul(e.sort(X0))}}return t})();function gs(t,n,e){let i=0,o=t.length-1,a,r,c,p;e?(n>=t[i].pos&&n<=t[o].pos&&({lo:i,hi:o}=Si(t,"pos",n)),{pos:a,time:c}=t[i],{pos:r,time:p}=t[o]):(n>=t[i].time&&n<=t[o].time&&({lo:i,hi:o}=Si(t,"time",n)),{time:a,pos:c}=t[i],{time:r,pos:p}=t[o]);let u=r-a;return u?c+(p-c)*(n-a)/u:c}var $c=class extends Vc{static id="timeseries";static defaults=Vc.defaults;constructor(n){super(n),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let n=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(n);this._minPos=gs(e,this.min),this._tableRange=gs(e,this.max)-this._minPos,super.initOffsets(n)}buildLookupTable(n){let{min:e,max:i}=this,o=[],a=[],r,c,p,u,f;for(r=0,c=n.length;r<c;++r)u=n[r],u>=e&&u<=i&&o.push(u);if(o.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(r=0,c=o.length;r<c;++r)f=o[r+1],p=o[r-1],u=o[r],Math.round((f+p)/2)!==u&&a.push({time:u,pos:r/(c-1)});return a}_generate(){let n=this.min,e=this.max,i=super.getDataTimestamps();return(!i.includes(n)||!i.length)&&i.splice(0,0,n),(!i.includes(e)||i.length===1)&&i.push(e),i.sort((o,a)=>o-a)}_getTimestampsForTable(){let n=this._cache.all||[];if(n.length)return n;let e=this.getDataTimestamps(),i=this.getLabelTimestamps();return e.length&&i.length?n=this.normalize(e.concat(i)):n=e.length?e:i,n=this._cache.all=n,n}getDecimalForValue(n){return(gs(this._table,n)-this._minPos)/this._tableRange}getValueForPixel(n){let e=this._offsets,i=this.getDecimalForPixel(n)/e.factor-e.end;return gs(this._table,i*this._tableRange+this._minPos,!0)}},gM=Object.freeze({__proto__:null,CategoryScale:KS,LinearScale:Fc,LogarithmicScale:Bc,RadialLinearScale:Nc,TimeScale:Vc,TimeSeriesScale:$c}),Su=[Ey,J2,GS,gM];function Ds(t){if(!t||typeof t!="object")return!1;let n=Object.getPrototypeOf(t);return n===null||n===Object.prototype||Object.getPrototypeOf(n)===null?Object.prototype.toString.call(t)==="[object Object]":!1}function jc(t){return Ds(t)||Array.isArray(t)}function Mu(t){return t==="__proto__"}function Nn(t,n){let e=Object.keys(n);for(let i=0;i<e.length;i++){let o=e[i];if(Mu(o))continue;let a=n[o],r=t[o];jc(a)&&jc(r)?t[o]=Nn(r,a):Array.isArray(a)?t[o]=Nn([],a):Ds(a)?t[o]=Nn({},a):(r===void 0||a!==void 0)&&(t[o]=a)}return t}var wu=new ar("Configuration for ngCharts");function Eu(...t){return{registerables:[...Su,...t]}}function Tu(...t){let n=t.reduce(Nn,{});return{provide:wu,useValue:n}}var _M=(()=>{let n=class n{constructor(){this.colorschemesOptions=new tt(void 0)}setColorschemesOptions(i){this.pColorschemesOptions=i,this.colorschemesOptions.next(i)}getColorschemesOptions(){return this.pColorschemesOptions}};n.\u0275fac=function(o){return new(o||n)},n.\u0275prov=Xc({token:n,factory:n.\u0275fac,providedIn:"root"});let t=n;return t})(),Du=(()=>{let n=class n{constructor(){this.type="bar",this.plugins=[],this.chartClick=new X,this.chartHover=new X,this.ctx=null,this.subs=[],this.themeOverrides={},this.element=ui(Vo),this.zone=ui(Jc),this.themeService=ui(_M),this.config=ui(wu,{optional:!0}),this.platformId=ui(Zc),this.isBrowser=pd(this.platformId),this.config?.registerables&&ws.register(...this.config.registerables),this.config?.defaults&&me.set(this.config.defaults),this.isBrowser&&(this.ctx=this.element.nativeElement.getContext("2d")),this.subs.push(this.themeService.colorschemesOptions.pipe(ir()).subscribe(i=>this.themeChanged(i)))}
219ngOnChanges(i){if(!this.isBrowser)return;let o=["type"],a=Object.getOwnPropertyNames(i);if(a.some(r=>o.includes(r))||a.every(r=>i[r].isFirstChange()))this.render();else if(this.chart&&i.legend){let r=this.getChartConfiguration();r.options&&(this.chart.options=r.options),this.update()}else if(this.chart){let r=this.getChartConfiguration();r.data&&this.chart.config.data&&Object.assign(this.chart.config.data,r.data),r.plugins&&this.chart.config.plugins&&Object.assign(this.chart.config.plugins,r.plugins),r.options&&this.chart.config.options&&Object.assign(this.chart.config.options,r.options),this.update()}}ngOnDestroy(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.subs.forEach(i=>i.unsubscribe())}render(){if(!(!this.isBrowser||!this.ctx))return this.chart&&this.chart.destroy(),this.zone.runOutsideAngular(()=>this.chart=new ws(this.ctx,this.getChartConfiguration()))}update(i){this.chart&&this.isBrowser&&this.zone.runOutsideAngular(()=>this.chart?.update(i))}hideDataset(i,o){this.chart&&this.isBrowser&&(this.chart.getDatasetMeta(i).hidden=o,this.update())}isDatasetHidden(i){return this.chart?.getDatasetMeta(i)?.hidden}toBase64Image(){return this.chart?.toBase64Image()}themeChanged(i){this.themeOverrides=i,this.chart&&(this.chart.config.options&&Object.assign(this.chart.config.options,this.getChartOptions()),this.update())}getChartOptions(){return[{onHover:(i,o)=>{!this.chartHover.observed&&!this.chartHover.observers?.length||this.zone.run(()=>this.chartHover.emit({event:i,active:o}))},onClick:(i,o)=>{!this.chartClick.observed&&!this.chartClick.observers?.length||this.zone.run(()=>this.chartClick.emit({event:i,active:o}))}},this.themeOverrides??{},this.options??{},{plugins:{legend:{display:this.legend}}}].reduce(Nn,{})}getChartConfiguration(){return{type:this.type,data:this.getChartData(),options:this.getChartOptions(),plugins:this.plugins}}getChartData(){return this.data?this.data:{labels:this.labels||[],datasets:this.datasets||[]}}};n.\u0275fac=function(o){return new(o||n)},n.\u0275dir=al({type:n,selectors:[["canvas","baseChart",""]],inputs:{type:"type",legend:"legend",data:"data",options:"options",plugins:"plugins",labels:"labels",datasets:"datasets"},outputs:{chartClick:"chartClick",chartHover:"chartHover"},exportAs:["base-chart"],features:[Nt]});let t=n;return t})();function CM(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-subtitle"),d(3),s()(),l(4,"mat-card-content"),M(5,"canvas",0),s()()),t&2){let e=h();m(3),A(" ",e.dataTable.title," "),m(2),C("type","doughnut")("datasets",e.chartDatasets)("labels",e.chartLabels)("options",e.chartOptions)("plugins",e.chartPlugins)("legend",e.chartLegend)}}var Ha=(()=>{let n=class n{constructor(){this.chartOptions={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"right"}}},this.chartLabels=[],this.chartDatasets=[{data:[]}],this.chartLegend=!0,this.chartPlugins=[]}ngOnChanges(i){i.dataTable?.currentValue&&(this.chartLabels=this.dataTable.data.map(o=>String(o.key)),this.chartDatasets.at(0).data=this.dataTable.data.map(o=>o.value))}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-simple-donut-chart"]],inputs:{dataTable:"dataTable"},features:[Nt],decls:1,vars:1,consts:[["baseChart","",3,"type","datasets","labels","options","plugins","legend"]],template:function(o,a){o&1&&x(0,CM,6,7,"mat-card"),o&2&&v(a.dataTable?0:-1)},dependencies:[J,ot,Ki,Z,Du],styles:["[_nghost-%COMP%]{display:block}mat-card-content[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:250px}"],changeDetection:0});let t=n;return t})();var xM=()=>[5,10,15,20];function vM(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function yM(t,n){t&1&&(l(0,"th",22),d(1,"Date Created"),s())}function SM(t,n){if(t&1&&(l(0,"td",23),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.createdAt))}}function MM(t,n){t&1&&(l(0,"th",24),d(1,"Type"),s())}function wM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit;m(),_(e.type)}}function EM(t,n){t&1&&(l(0,"th",24),d(1,"Customer ID"),s())}function TM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.getDisplayName(e.customer))}}function DM(t,n){t&1&&(l(0,"th",22),d(1,"Amount"),s())}function PM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit;m(),_(e.amount)}}function kM(t,n){t&1&&(l(0,"th",22),d(1,"Remaining"),s())}function OM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit;
219m(),A("",e.remainingAmount,"P")}}function IM(t,n){t&1&&(l(0,"th",24),d(1,"Is cancelled?"),s())}function RM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.isCancelled," ")}}function AM(t,n){t&1&&(l(0,"th",22),d(1,"Valid from"),s())}function FM(t,n){if(t&1&&(l(0,"td",25),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit,i=h();C("title",i.getRelativeDate(e.validFrom)),m(),A(" ",P(2,2,e.validFrom)," ")}}function BM(t,n){t&1&&(l(0,"th",22),d(1,"Expires"),s())}function LM(t,n){if(t&1&&(l(0,"td",25),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit,i=h();C("title",i.getRelativeDate(e.validTo)),m(),A(" ",P(2,2,e.validTo)," ")}}function NM(t,n){t&1&&(l(0,"th",24),d(1,"Description"),s())}function VM(t,n){if(t&1&&(l(0,"td",23),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.description," ")}}function $M(t,n){t&1&&M(0,"tr",26)}function zM(t,n){t&1&&M(0,"tr",27)}var ji=(()=>{let n=class n extends Pr{constructor(i){super(),this.translocoService=i,this.PointDepositType=Object.values(Kd),this.filterType=new gi([]),this.queryChange=new X,this.displayedColumns=["createdAt","type","customer","amount","remainingAmount","validFrom","validTo","isCancelled","description"]}getFilterQuery(){return{type:xr(this.filterType.value)?this.filterType.value:br}}getFilterObservables(){return tr(this.filterType.valueChanges,this.parentInvalidationTrigger$)}getRelativeDate(i){return new Intl.RelativeTimeFormat(this.translocoService.getActiveLang()).format(Kn(new Date(i).getTime(),Date.now()),"days")}getDisplayName(i){return i.firstName&&i.lastName?`${i.firstName} ${i.lastName} (${i.email})`:i.email}};n.\u0275fac=function(o){return new(o||n)(O(Qn))},n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-global-deposit-table"]],viewQuery:function(o,a){if(o&1&&Xt(ee,5)(Zt,5),o&2){let r;Tt(r=Dt())&&(a.paginator=r.first),Tt(r=Dt())&&(a.sort=r.first)}},inputs:{parentInvalidationTrigger$:"parentInvalidationTrigger$",source:"source"},outputs:{queryChange:"queryChange"},features:[Wi],decls:41,vars:7,consts:[[1,"table"],["scope","row"],["multiple","",3,"formControl"],[3,"value"],[1,"table-container"],["mat-table","","matSort","","matSortActive","amount","matSortDirection","desc",1,"table-responsive",3,"dataSource"],["matColumnDef","createdAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","customer"],["matColumnDef","amount"],["matColumnDef","remainingAmount"],["matColumnDef","isCancelled"],["matColumnDef","validFrom"],["mat-cell","",3,"title",4,"matCellDef"],["matColumnDef","validTo"],["matColumnDef","description"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[3,"pageSizeOptions","pageSize"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],["mat-cell","",3,"title"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"table",0)(1,"tbody")(2,"tr")(3,"th",1),d(4,"Type"),s(),l(5,"td")(6,"mat-select",2),z(7,vM,2,2,"mat-option",3,U),s()()()()(),l(9,"div",4)(10,"table",5),I(11,6),T(12,yM,2,0,"th",7)(13,SM,3,3,"td",8),R(),I(14,9),T(15,MM,2,0,"th",10)(16,wM,2,1,"td",8),R(),I(17,11),T(18,EM,2,0,"th",10)(19,TM,2,1,"td",8),R(),I(20,12),T(21,DM,2,0,"th",7)(22,PM,2,1,"td",8),R(),I(23,13),T(24,kM,2,0,"th",7)(25,OM,2,1,"td",8),R(),I(26,14),T(27,IM,2,0,"th",10)(28,RM,2,1,"td",8),R(),I(29,15),T(30,AM,2,0,"th",7)(31,FM,3,4,"td",16),R(),I(32,17),T(33,BM,2,0,"th",7)(34,LM,3,4,"td",16),R(),I(35,18),T(36,NM,2,0,"th",10)(37,VM,2,1,"td",8),R(),T(38,$M,1,0,"tr",19)(39,zM,1,0,"tr",20),s(),M(40,"mat-paginator",21),s()),o&2&&(m(6),C("formControl",a.filterType),m(),H(a.PointDepositType),m(3),C("dataSource",a.source),m(28),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("pageSizeOptions",De(6,xM))("pageSize",20))},dependencies:[Vt,dt,ct,ne,He,Rt,gt,Zt,bt,Ct,xt,Oe,_t,vt,yt,Mt,St,wt,ee,ft],styles:[".table-responsive[_ngcontent-%COMP%]{width:100%}.table-container[_ngcontent-%COMP%]{overflow-x:scroll}"]});let t=n;return t})();var jM=()=>[5,10,15,20];function UM(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function WM(t,n){t&1&&(l(0,"th",20),d(1,"Type"),s())}function GM(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.type," ")}}function qM(t,n){t&1&&(l(0,"th",22),d(1,"Amount"),s())}function YM(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),A("",e.amount,"P")}}function QM(t,n){t&1&&(l(0,"th",22),d(1,"Remaining"),s())}function KM(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;
219m(),A("",e.remainingAmount,"P")}}function XM(t,n){t&1&&(l(0,"th",20),d(1,"Is cancelled?"),s())}function JM(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.isCancelled," ")}}function ZM(t,n){t&1&&(l(0,"th",22),d(1,"Valid from"),s())}function tw(t,n){if(t&1&&(l(0,"td",23),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit,i=h();C("title",i.getRelativeDate(e.validFrom)),m(),A(" ",P(2,2,e.validFrom)," ")}}function ew(t,n){t&1&&(l(0,"th",22),d(1,"Expires"),s())}function iw(t,n){if(t&1&&(l(0,"td",23),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit,i=h();C("title",i.getRelativeDate(e.validTo)),m(),A(" ",P(2,2,e.validTo)," ")}}function nw(t,n){t&1&&(l(0,"th",20),d(1,"Description"),s())}function ow(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.description," ")}}function aw(t,n){t&1&&M(0,"tr",24)}function rw(t,n){if(t&1&&M(0,"tr",25),t&2){let e=n.$implicit;Y("cancelled-row",e.isCancelled)}}function sw(t,n){t&1&&(l(0,"p"),d(1,"No loyalty points!"),s())}var Vn=(()=>{let n=class n extends ji{constructor(){super(...arguments),this.displayedColumns=["type","amount","remainingAmount","validFrom","validTo","isCancelled","description"]}};n.\u0275fac=(()=>{let i;return function(a){return(i||(i=Wn(n)))(a||n)}})(),n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-deposit-table"]],features:[Wi],decls:36,vars:8,consts:[[1,"table"],["scope","row"],["multiple","",3,"formControl"],[3,"value"],[1,"table-responsive"],["mat-table","","matSort","","matSortActive","validFrom","matSortDirection","desc","matSortDisableClear","",3,"dataSource"],["matColumnDef","type"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["matColumnDef","remainingAmount"],["matColumnDef","isCancelled"],["matColumnDef","validFrom"],["mat-cell","",3,"title",4,"matCellDef"],["matColumnDef","validTo"],["matColumnDef","description"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"cancelled-row",4,"matRowDef","matRowDefColumns"],[3,"pageSizeOptions","pageSize"],["mat-header-cell",""],["mat-cell",""],["mat-header-cell","","mat-sort-header",""],["mat-cell","",3,"title"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"table",0)(1,"tbody")(2,"tr")(3,"th",1),d(4,"Type"),s(),l(5,"td")(6,"mat-select",2),z(7,UM,2,2,"mat-option",3,U),s()()()()(),l(9,"div",4)(10,"table",5),I(11,6),T(12,WM,2,0,"th",7)(13,GM,2,1,"td",8),R(),I(14,9),T(15,qM,2,0,"th",10)(16,YM,2,1,"td",8),R(),I(17,11),T(18,QM,2,0,"th",10)(19,KM,2,1,"td",8),R(),I(20,12),T(21,XM,2,0,"th",7)(22,JM,2,1,"td",8),R(),I(23,13),T(24,ZM,2,0,"th",10)(25,tw,3,4,"td",14),R(),I(26,15),T(27,ew,2,0,"th",10)(28,iw,3,4,"td",14),R(),I(29,16),T(30,nw,2,0,"th",7)(31,ow,2,1,"td",8),R(),T(32,aw,1,0,"tr",17)(33,rw,1,2,"tr",18),s(),M(34,"mat-paginator",19),s(),x(35,sw,2,0,"p")),o&2&&(m(6),C("formControl",a.filterType),m(),H(a.PointDepositType),m(3),C("dataSource",a.source),m(22),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("pageSizeOptions",De(7,jM))("pageSize",5),m(),v(a.source.data.length===0?35:-1))},dependencies:[Vt,dt,ct,ne,He,Rt,gt,Zt,bt,Ct,xt,_t,vt,Oe,yt,Mt,St,wt,ee,ft],encapsulation:2});let t=n;return t})();var cw=()=>[5,10,15,20];function dw(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function mw(t,n){t&1&&(l(0,"th",18),d(1,"Date Created"),s())}function pw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.getFormattedDate(e.createdAt))}}function uw(t,n){t&1&&(l(0,"th",20),d(1,"Type"),s())}function fw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit;m(),_(e.type)}}function hw(t,n){t&1&&(l(0,"th",20),d(1,"Customer ID"),s())}function gw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.getDisplayName(e.customer))}}function _w(t,n){t&1&&(l(0,"th",18),d(1,"Amount"),s())}function Cw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit;m(),_(e.amount)}}function bw(t,n){t&1&&(l(0,"th",20),d(1,"Is cancelled?"),s())}function xw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.isCancelled," ")}}function vw(t,n){t&1&&(l(0,"th",20),d(1,"Description"),s())}function yw(t,n){if(t&1&&(l(0,"td",19),d(1),s()),t&2){let e=n.$implicit;
219m(),A(" ",e.description," ")}}function Sw(t,n){t&1&&M(0,"tr",21)}function Mw(t,n){t&1&&M(0,"tr",22)}var Ui=(()=>{let n=class n extends Pr{constructor(){super(...arguments),this.PointExpenseType=Object.values(Xd),this.filterType=new gi([]),this.queryChange=new X,this.displayedColumns=["createdAt","type","customer","amount","isCancelled","description"]}getFilterQuery(){return{type:xr(this.filterType.value)?this.filterType.value:br}}getFilterObservables(){return tr(this.filterType.valueChanges,this.parentInvalidationTrigger$)}getFormattedDate(i){return sd(i,"dd/MM/yyyy","en-US")}getDisplayName(i){return i.firstName&&i.lastName?`${i.firstName} ${i.lastName} (${i.email})`:i.email}};n.\u0275fac=(()=>{let i;return function(a){return(i||(i=Wn(n)))(a||n)}})(),n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-global-expense-table"]],viewQuery:function(o,a){if(o&1&&Xt(ee,5)(Zt,5),o&2){let r;Tt(r=Dt())&&(a.paginator=r.first),Tt(r=Dt())&&(a.sort=r.first)}},inputs:{parentInvalidationTrigger$:"parentInvalidationTrigger$",source:"source"},outputs:{queryChange:"queryChange"},features:[Wi],decls:32,vars:7,consts:[[1,"table"],["scope","row"],["multiple","",3,"formControl"],[3,"value"],[1,"table-container"],["mat-table","","matSort","","matSortActive","amount","matSortDirection","desc",1,"table-responsive",3,"dataSource"],["matColumnDef","createdAt"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","customer"],["matColumnDef","amount"],["matColumnDef","isCancelled"],["matColumnDef","description"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[3,"pageSizeOptions","pageSize"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"table",0)(1,"tbody")(2,"tr")(3,"th",1),d(4,"Type"),s(),l(5,"td")(6,"mat-select",2),z(7,dw,2,2,"mat-option",3,U),s()()()()(),l(9,"div",4)(10,"table",5),I(11,6),T(12,mw,2,0,"th",7)(13,pw,2,1,"td",8),R(),I(14,9),T(15,uw,2,0,"th",10)(16,fw,2,1,"td",8),R(),I(17,11),T(18,hw,2,0,"th",10)(19,gw,2,1,"td",8),R(),I(20,12),T(21,_w,2,0,"th",7)(22,Cw,2,1,"td",8),R(),I(23,13),T(24,bw,2,0,"th",10)(25,xw,2,1,"td",8),R(),I(26,14),T(27,vw,2,0,"th",10)(28,yw,2,1,"td",8),R(),T(29,Sw,1,0,"tr",15)(30,Mw,1,0,"tr",16),s(),M(31,"mat-paginator",17),s()),o&2&&(m(6),C("formControl",a.filterType),m(),H(a.PointExpenseType),m(3),C("dataSource",a.source),m(19),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("pageSizeOptions",De(6,cw))("pageSize",20))},dependencies:[Vt,dt,ct,ne,He,Rt,gt,Zt,bt,Ct,xt,Oe,_t,vt,yt,Mt,St,wt,ee],styles:[".table-responsive[_ngcontent-%COMP%]{width:100%}.table-container[_ngcontent-%COMP%]{overflow-x:scroll}"]});let t=n;return t})();var Ew=()=>[5,10,15,20];function Tw(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}function Dw(t,n){t&1&&(l(0,"th",17),d(1,"Type"),s())}function Pw(t,n){if(t&1&&(l(0,"td",18),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.type," ")}}function kw(t,n){t&1&&(l(0,"th",19),d(1,"Amount"),s())}function Ow(t,n){if(t&1&&(l(0,"td",18),d(1),s()),t&2){let e=n.$implicit;m(),A("",e.amount,"P")}}function Iw(t,n){t&1&&(l(0,"th",17),d(1,"Date Created"),s())}function Rw(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),A(" ",P(2,1,e.createdAt)," ")}}function Aw(t,n){t&1&&(l(0,"th",17),d(1,"Is cancelled?"),s())}function Fw(t,n){if(t&1&&(l(0,"td",18),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.isCancelled," ")}}function Bw(t,n){t&1&&(l(0,"th",17),d(1,"Description"),s())}function Lw(t,n){if(t&1&&(l(0,"td",18),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.description," ")}}function Nw(t,n){t&1&&M(0,"tr",20)}function Vw(t,n){if(t&1&&M(0,"tr",21),t&2){let e=n.$implicit;Y("cancelled-row",e.isCancelled)}}function $w(t,n){t&1&&(l(0,"p"),d(1,"No loyalty points!"),s())}var $n=(()=>{let n=class n extends Ui{constructor(){super(...arguments),this.displayedColumns=["type","amount","createdAt","isCancelled","description"]}};n.\u0275fac=(()=>{let i;return function(a){return(i||(i=Wn(n)))(a||n)}})(),n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-expense-table"]],features:[Wi],decls:30,vars:8,consts:[[1,"table"],["scope","row"],["multiple","",3,"formControl"],[3,"value"],[1,"table-responsive"],["mat-table","","matSort","","matSortActive","amount","matSortDirection","desc","matSortDisableClear","",3,"dataSource"],["matColumnDef","type"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","amount"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["matColumnDef","createdAt"],["matColumnDef","isCancelled"],["matColumnDef","description"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"cancelled-row",4,"matRowDef","matRowDefColumns"],[3,"pageSizeOptions","pageSize"],["mat-header-cell",""],["mat-cell",""],["mat-header-cell","","mat-sort-header",""],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"table",0)(1,"tbody")(2,"tr")(3,"th",1),d(4,"Type"),s(),l(5,"td")(6,"mat-select",2),z(7,Tw,2,2,"mat-option",3,U),s()()()()(),l(9,"div",4)(10,"table",5),I(11,6),T(12,Dw,2,0,"th",7)(13,Pw,2,1,"td",8),R(),I(14,9),T(15,kw,2,0,"th",10)(16,Ow,2,1,"td",8),R(),I(17,11),T(18,Iw,2,0,"th",7)(19,Rw,3,3,"td",8),R(),I(20,12),T(21,Aw,2,0,"th",7)(22,Fw,2,1,"td",8),R(),I(23,13),T(24,Bw,2,0,"th",7)(25,Lw,2,1,"td",8),R(),T(26,Nw,1,0,"tr",14)(27,Vw,1,2,"tr",15),s(),M(28,"mat-paginator",16),s(),x(29,$w,2,0,"p")),o&2&&(m(6),C("formControl",a.filterType),m(),H(a.PointExpenseType),m(3),C("dataSource",a.source),m(16),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("pageSizeOptions",De(7,Ew))("pageSize",5),m(),v(a.source.data.length===0?29:-1))},dependencies:[Vt,dt,ct,ne,He,Rt,gt,Zt,bt,Ct,xt,_t,vt,Oe,yt,Mt,St,wt,ee,ft],encapsulation:2});let t=n;return t})();function Hw(t,n){t&1&&(l(0,"th",9),d(1,"Expiration"),s())}function jw(t,n){if(t&1&&(l(0,"td",10),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit,i=h();C("title",i.getRelativeDate(e.expiration)),m(),A(" ",P(2,2,e.expiration)," ")}}function Uw(t,n){t&1&&(l(0,"th",9),d(1,"Amount"),s())}function Ww(t,n){if(t&1&&(l(0,"td",11),d(1),s()),t&2){let e=n.$implicit;m(),A("",e.amount,"P")}}function Gw(t,n){t&1&&M(0,"tr",12)}
219function qw(t,n){t&1&&M(0,"tr",13)}function Yw(t,n){t&1&&(l(0,"p"),d(1,"No loyalty points!"),s())}var ja=(()=>{let n=class n{constructor(i){this.translocoService=i,this.displayedColumns=["expiration","amount"]}getRelativeDate(i){return new Intl.RelativeTimeFormat(this.translocoService.getActiveLang()).format(Kn(new Date(i).getTime(),Date.now()),"days")}};n.\u0275fac=function(o){return new(o||n)(O(Qn))},n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-expiration-table"]],inputs:{source:"source"},decls:11,vars:4,consts:[[1,"table-responsive"],["mat-table","","matSort","","matSortActive","validTo","matSortDirection","desc","matSortDisableClear","",3,"dataSource"],["matColumnDef","expiration"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",3,"title",4,"matCellDef"],["matColumnDef","amount"],["mat-cell","",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell","",3,"title"],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,Hw,2,0,"th",3)(4,jw,3,4,"td",4),R(),I(5,5),T(6,Uw,2,0,"th",3)(7,Ww,2,1,"td",6),R(),T(8,Gw,1,0,"tr",7)(9,qw,1,0,"tr",8),s()(),x(10,Yw,2,0,"p")),o&2&&(m(),C("dataSource",a.source),m(7),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.source.data.length===0?10:-1))},dependencies:[gt,Zt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,ft],encapsulation:2});let t=n;return t})();var Uc=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-loyalty-point-user-info"]],inputs:{user:"user",balance:"balance"},decls:33,vars:9,consts:[[1,"table-responsive"],[1,"table"],["scope","row"]],template:function(o,a){o&1&&(Me(0,"div",0)(1,"table",1)(2,"tbody")(3,"tr")(4,"th",2),d(5,"Name"),we(),Me(6,"td"),d(7),we()(),Me(8,"tr")(9,"th",2),d(10,"Address"),we(),Me(11,"td"),d(12),we()(),Me(13,"tr")(14,"th",2),d(15,"Country"),we(),Me(16,"td"),d(17),we()(),Me(18,"tr")(19,"th",2),d(20,"Email"),we(),Me(21,"td"),d(22),we()(),Me(23,"tr")(24,"th",2),d(25,"Phone"),we(),Me(26,"td"),d(27),we()(),Me(28,"tr")(29,"th",2),d(30,"Balance"),we(),Me(31,"td"),d(32),we()()()()()),o&2&&(m(7),rt("",a.user.firstName," ",a.user.lastName),m(5),Gi("",a.user.address," (",a.user.postalCode," ",a.user.city,")"),m(5),_(a.user.nationality),m(5),_(a.user.email),m(5),A(" ",a.user.phone," "),m(5),A(" ",a.balance," "))},encapsulation:2});let t=n;return t})();function Kw(t,n){t&1&&(l(0,"th",15),d(1,"Vendor"),s())}function Xw(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.vendor.name)}}function Jw(t,n){t&1&&(l(0,"th",15),d(1,"Type"),s())}function Zw(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.type)}}function tE(t,n){t&1&&(l(0,"th",15),d(1,"Title"),s())}function eE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.title.en)}}function iE(t,n){t&1&&(l(0,"th",15),d(1,"Description"),s())}function nE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.description.en)}}function oE(t,n){t&1&&(l(0,"th",15),d(1,"Tags"),s())}function aE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.tags.join(","))}}function rE(t,n){t&1&&(l(0,"th",15),d(1,"Max per user"),s())}function sE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.maxPurchasesPerUser)}}function lE(t,n){t&1&&(l(0,"th",15),d(1,"Max total"),s())}function cE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),_(e.maxPurchasesTotal)}}function dE(t,n){t&1&&(l(0,"th",15),d(1,"Status"),s())}function mE(t,n){if(t&1&&(l(0,"td",16),d(1),s()),t&2){let e=n.$implicit;m(),A(" ",e.isActive?"Active":"Inactive"," ")}}function pE(t,n){t&1&&M(0,"th",15)}function uE(t,n){if(t&1){let e=$();l(0,"td",16)(1,"div",17)(2,"button",18),w("click",function(){let o=F(e).$implicit,a=h();return B(a.handleEditClick(o))}),M(3,"i",19),s(),l(4,"button",20),w("click",function(){let o=F(e).$implicit,a=h();return B(a.handleDeleteClick(o))}),M(5,"i",21),s()()()}}function fE(t,n){t&1&&M(0,"tr",22)}function hE(t,n){t&1&&M(0,"tr",23)}function gE(t,n){t&1&&(l(0,"p"),d(1,"No items!"),s())}var Ua=(()=>{let n=class n{constructor(){this.editClick=new X,this.deleteClick=new X,this.displayedColumns=["vendor","type","title","description","tags","maxPurchasesPerUser","maxPurchasesTotal","isActive","actions"]}handleEditClick(i){this.editClick.emit(i)}handleDeleteClick(i){this.deleteClick.emit(i)}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-product-overview"]],inputs:{source:"source"}
219,outputs:{editClick:"editClick",deleteClick:"deleteClick"},decls:32,vars:4,consts:[[1,"table-responsive"],["mat-table","",3,"dataSource"],["matColumnDef","vendor"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],["matColumnDef","title"],["matColumnDef","description"],["matColumnDef","tags"],["matColumnDef","maxPurchasesPerUser"],["matColumnDef","maxPurchasesTotal"],["matColumnDef","isActive"],["matColumnDef","actions"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],[1,"table-actions"],["mat-icon-button","","color","primary","matTooltip","Edit",1,"action-button",3,"click"],[1,"far","fa-pen"],["mat-icon-button","","color","warn","matTooltip","Delete",1,"action-button",3,"click"],[1,"far","b-fa-trash-alt"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,Kw,2,0,"th",3)(4,Xw,2,1,"td",4),R(),I(5,5),T(6,Jw,2,0,"th",3)(7,Zw,2,1,"td",4),R(),I(8,6),T(9,tE,2,0,"th",3)(10,eE,2,1,"td",4),R(),I(11,7),T(12,iE,2,0,"th",3)(13,nE,2,1,"td",4),R(),I(14,8),T(15,oE,2,0,"th",3)(16,aE,2,1,"td",4),R(),I(17,9),T(18,rE,2,0,"th",3)(19,sE,2,1,"td",4),R(),I(20,10),T(21,lE,2,0,"th",3)(22,cE,2,1,"td",4),R(),I(23,11),T(24,dE,2,0,"th",3)(25,mE,2,1,"td",4),R(),I(26,12),T(27,pE,1,0,"th",3)(28,uE,6,0,"td",4),R(),T(29,fE,1,0,"tr",13)(30,hE,1,0,"tr",14),s()(),x(31,gE,2,0,"p")),o&2&&(m(),C("dataSource",a.source),m(28),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.source.data.length===0?31:-1))},dependencies:[gt,bt,Ct,xt,_t,vt,ke,Ae,yt,Mt,St,wt],styles:["td[_ngcontent-%COMP%]{max-width:200px;overflow:hidden;text-overflow:ellipsis}"]});let t=n;return t})();function CE(t,n){t&1&&(l(0,"th",8),d(1,"Vendor name"),s())}function bE(t,n){if(t&1&&(l(0,"td",9),d(1),s()),t&2){let e=n.$implicit;m(),_(e.name)}}function xE(t,n){t&1&&M(0,"th",8)}function vE(t,n){if(t&1){let e=$();l(0,"td",9)(1,"div",10)(2,"button",11),w("click",function(){let o=F(e).$implicit,a=h();return B(a.handleEditClick(o))}),M(3,"i",12),s(),l(4,"button",13),w("click",function(){let o=F(e).$implicit,a=h();return B(a.handleDeleteClick(o))}),M(5,"i",14),s()()()}}function yE(t,n){t&1&&M(0,"tr",15)}function SE(t,n){t&1&&M(0,"tr",16)}function ME(t,n){t&1&&(l(0,"p"),d(1,"No vendors!"),s())}var Wa=(()=>{let n=class n{constructor(){this.editClick=new X,this.deleteClick=new X,this.displayedColumns=["name","actions"]}handleEditClick(i){this.editClick.emit(i)}handleDeleteClick(i){this.deleteClick.emit(i)}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-vendor-overview"]],inputs:{source:"source"},outputs:{editClick:"editClick",deleteClick:"deleteClick"},decls:11,vars:4,consts:[[1,"table-responsive"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","actions"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],[1,"table-actions"],["mat-icon-button","","color","primary","matTooltip","Edit",1,"action-button",3,"click"],[1,"far","fa-pen"],["mat-icon-button","","color","warn","matTooltip","Delete",1,"action-button",3,"click"],[1,"far","b-fa-trash-alt"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,CE,2,0,"th",3)(4,bE,2,1,"td",4),R(),I(5,5),T(6,xE,1,0,"th",3)(7,vE,6,0,"td",4),R(),T(8,yE,1,0,"tr",6)(9,SE,1,0,"tr",7),s()(),x(10,ME,2,0,"p")),o&2&&(m(),C("dataSource",a.source),m(7),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.source.data.length===0?10:-1))},dependencies:[gt,bt,Ct,xt,_t,vt,ke,Ae,yt,Mt,St,wt],encapsulation:2});let t=n;return t})();function EE(t,n){t&1&&(l(0,"th",17),d(1,"Income"),s())}function TE(t,n){if(t&1&&(l(0,"td",18)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=n.$implicit;m(2),_($t(3,1,e.income,"",""))}}function DE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.income,"",""))}}function PE(t,n){t&1&&(l(0,"th",17),d(1,"Refunds"),s())}function kE(t,n){if(t&1&&(l(0,"td",18)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=n.$implicit;m(2),_($t(3,1,e.refunds,"",""))}}function OE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.refunds,"",""))}}function IE(t,n){t&1&&(l(0,"th",17),d(1," Discounts "),l(2,"span",20),d(3," (owed) "),s()())}function RE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),A(" ",$t(2,1,e.discounts,"","")," ")}}function AE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.discounts,"",""))}}function FE(t,n){t&1&&(l(0,"th",17),d(1,"Service fees"),s())}function BE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),A(" ",$t(2,1,e.serviceFees,"","")," ")}}function LE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.serviceFees,"",""))}}function NE(t,n){t&1&&(l(0,"th",17),d(1,"Net"),s())}function VE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),A(" ",$t(2,1,e.net,"","")," ")}}function $E(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.net,"",""))}}function zE(t,n){t&1&&(l(0,"th",17),d(1,"Commission rate"),s())}function HE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"percent"),s()),t&2){let e=n.$implicit;m(),A(" ",P(2,1,e.commissionRate)," ")}}function jE(t,n){t&1&&M(0,"td",19)}function UE(t,n){t&1&&(l(0,"th",17),d(1,"Commission gross"),s())}function WE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),A(" ",$t(2,1,e.commission,"","")," ")}}function GE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.commission,"",""))}}function qE(t,n){t&1&&(l(0,"th",17),d(1,"Commission VAT"),s())}function YE(t,n){if(t&1&&(l(0,"td",18),d(1),S(2,"currency"),s()),t&2){let e=n.$implicit;m(),A(" ",$t(2,1,e.commissionTax,"","")," ")}}function QE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.commissionTax,"",""))}}function KE(t,n){t&1&&(l(0,"th",17),d(1,"Payable"),s())}function XE(t,n){if(t&1&&(l(0,"td",18)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=n.$implicit;m(2),_($t(3,1,e.payable,"",""))}}function JE(t,n){if(t&1&&(l(0,"td",19)(1,"b"),d(2),S(3,"currency"),s()()),t&2){let e=h();m(2),_($t(3,1,e.totalRow.payable,"",""))}}function ZE(t,n){t&1&&M(0,"tr",21)}function tT(t,n){t&1&&M(0,"tr",22)}function eT(t,n){t&1&&M(0,"tr",23)}function iT(t,n){t&1&&M(0,"app-loading")}var Ga=(()=>{let n=class n{constructor(){this.dataSource=new Qt([]),this.displayedColumns=["income","refunds","serviceFees","discounts","net","commissionRate","commission","commissionTax","payable"]}ngAfterViewInit(){this.dataSource.sort=this.sort}
219ngOnChanges(i){i?.rows?.currentValue&&(this.dataSource=new Qt(i.rows.currentValue),this.dataSource.sort=this.sort)}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-turnover-report-table"]],viewQuery:function(o,a){if(o&1&&Xt(Zt,5),o&2){let r;Tt(r=Dt())&&(a.sort=r.first)}},inputs:{rows:"rows",totalRow:"totalRow",loading:"loading"},features:[Nt],decls:42,vars:5,consts:[[1,"table-responsive"],["mat-table","","matSort","",3,"dataSource"],["matColumnDef","income"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["mat-footer-cell","",4,"matFooterCellDef"],["matColumnDef","refunds"],["matColumnDef","discounts"],["matColumnDef","serviceFees"],["matColumnDef","net"],["matColumnDef","commissionRate"],["matColumnDef","commission"],["matColumnDef","commissionTax"],["matColumnDef","payable"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-footer-row","",4,"matFooterRowDef"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-footer-cell",""],[2,"font-size","12px","color","#999","margin-left","5px"],["mat-header-row",""],["mat-row",""],["mat-footer-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"table",1),I(2,2),T(3,EE,2,0,"th",3)(4,TE,4,5,"td",4)(5,DE,4,5,"td",5),R(),I(6,6),T(7,PE,2,0,"th",3)(8,kE,4,5,"td",4)(9,OE,4,5,"td",5),R(),I(10,7),T(11,IE,4,0,"th",3)(12,RE,3,5,"td",4)(13,AE,4,5,"td",5),R(),I(14,8),T(15,FE,2,0,"th",3)(16,BE,3,5,"td",4)(17,LE,4,5,"td",5),R(),I(18,9),T(19,NE,2,0,"th",3)(20,VE,3,5,"td",4)(21,$E,4,5,"td",5),R(),I(22,10),T(23,zE,2,0,"th",3)(24,HE,3,3,"td",4)(25,jE,1,0,"td",5),R(),I(26,11),T(27,UE,2,0,"th",3)(28,WE,3,5,"td",4)(29,GE,4,5,"td",5),R(),I(30,12),T(31,qE,2,0,"th",3)(32,YE,3,5,"td",4)(33,QE,4,5,"td",5),R(),I(34,13),T(35,KE,2,0,"th",3)(36,XE,4,5,"td",4)(37,JE,4,5,"td",5),R(),T(38,ZE,1,0,"tr",14)(39,tT,1,0,"tr",15)(40,eT,1,0,"tr",16),s()(),x(41,iT,1,0,"app-loading")),o&2&&(m(),C("dataSource",a.dataSource),m(37),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("matFooterRowDef",a.displayedColumns),m(),v(a.loading?41:-1))},dependencies:[gt,Zt,bt,Ct,xt,Oe,_t,vt,Wd,Gd,yt,Mt,St,wt,qd,Yd,ae,dd,Yi],styles:[".mat-mdc-table[_ngcontent-%COMP%]   .mat-mdc-footer-cell[_ngcontent-%COMP%]{color:#000;font-weight:600;border-top:2px solid #111!important}.mat-mdc-table[_ngcontent-%COMP%]{width:100%;table-layout:fixed}.mat-mdc-header-cell[_ngcontent-%COMP%], .mat-mdc-cell[_ngcontent-%COMP%], .mat-mdc-footer-cell[_ngcontent-%COMP%]{box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-header-cell[_ngcontent-%COMP%], .mat-mdc-cell[_ngcontent-%COMP%], .mat-mdc-footer-cell[_ngcontent-%COMP%]{width:12.5%}.mat-column-income[_ngcontent-%COMP%]{background-color:#00ff4b1a}.mat-column-refunds[_ngcontent-%COMP%]{background-color:#ffd7001a}"]});let t=n;return t})();var oT=["images"],aT=(t,n,e)=>({"status-pill--approved":t,"status-pill--pending":n,"status-pill--declined":e}),Ro=t=>({"changed-fields-styling":t}),rT=(t,n)=>n.key;function sT(t,n){t&1&&d(0," Approved ")}function lT(t,n){t&1&&d(0," Declined ")}function cT(t,n){t&1&&d(0," Pending ")}function dT(t,n){if(t&1&&(d(0),S(1,"adminDate")),t&2){let e=h();rt(" Submitted ",P(1,2,e.displayedReview==null?null:e.displayedReview.createdAt)," \xB7 approved by ",e.displayedReview==null?null:e.displayedReview.statusReviewedBy," ")}}function mT(t,n){if(t&1&&(d(0),S(1,"adminDate")),t&2){let e=h();rt(" Submitted ",P(1,2,e.displayedReview==null?null:e.displayedReview.createdAt)," \xB7 declined by ",e.displayedReview==null?null:e.displayedReview.statusReviewedBy," ")}}function pT(t,n){if(t&1&&(d(0),S(1,"adminDate")),t&2){let e=h();A(" Submitted ",P(1,1,e.displayedReview==null?null:e.displayedReview.createdAt)," \xB7 awaiting moderation ")}}function uT(t,n){if(t&1&&M(0,"span",45),t&2){let e=n.$implicit;Y("rating-pip--filled",e)}}function fT(t,n){if(t&1&&M(0,"span",45),t&2){let e=n.$implicit;Y("rating-pip--filled",e)}}function hT(t,n){if(t&1&&(l(0,"div",22)(1,"span",46),d(2),s(),l(3,"span",19),z(4,fT,1,2,"span",20,rl),s(),l(6,"span",47),d(7),s()()),t&2){let e=n.$implicit,i=h();m(2),_(e.label),m(),C("ngClass",fe(3,Ro,i.changedFields==null||i.changedFields.rating==null?null:i.changedFields.rating[e.key])),m(),H(i.pipsFor(e.value)),m(3),_(e.value)}}function gT(t,n){if(t&1&&d(0),t&2){let e=h();rt(" ",e.displayedReview==null||e.displayedReview.customer==null?null:e.displayedReview.customer.firstName," ",e.displayedReview==null||e.displayedReview.customer==null?null:e.displayedReview.customer.lastName," ")}}function _T(t,n){t&1&&d(0," \u2014 ")}function CT(t,n){if(t&1&&(l(0,"mat-list-option",31),M(1,"img",48),s()),t&2){let e=n.$implicit,i=h();C("disabled",i.readOnly)("value",e)("selected",!0),m(),C("src",e,fi)}}function bT(t,n){if(t&1&&(l(0,"p",32),d(1),s()),t&2){h();let e=lt(55);m(),A("Images selected: ",e.selectedOptions.selected.length)}}function xT(t,n){t&1&&(l(0,"span",37),d(1,"Approved"),s())}function vT(t,n){t&1&&(l(0,"span",38),d(1,"Pending"),s())}function yT(t,n){t&1&&(l(0,"span",39),d(1,"Declined"),s())}function ST(t,n){t&1&&(l(0,"span",54),d(1,"(most recent)"),s())}function MT(t,n){if(t&1){let e=$();l(0,"mat-list-item",50),w("click",function(){let o=F(e),a=o.$implicit,r=o.$index,c=h(2);
219return B(r===0?c.onReviewClick():c.onRevisionClick(a))}),l(1,"span",51),M(2,"i",52),l(3,"span",53),d(4),S(5,"adminDate"),s(),x(6,ST,2,0,"span",54),s()()}if(t&2){let e=n.$implicit,i=n.$index,o=h(2);Y("revision-entry--selected",e===o.selectedRevision),m(2),Y("is-selected",e===o.selectedRevision),m(2),_(P(5,6,e.timestamp)),m(2),v(i===0?6:-1)}}function wT(t,n){if(t&1&&(l(0,"mat-list",43),z(1,MT,7,8,"mat-list-item",49,U),s()),t&2){let e=h();m(),H(e.displayedReview==null?null:e.displayedReview.revisions)}}function ET(t,n){t&1&&(l(0,"div",44),M(1,"div",55),l(2,"div",56),d(3,"No revisions yet"),s(),l(4,"div",57),d(5,"Edits made after moderation will show up here."),s()())}var qa=(()=>{let n=class n{constructor(){this.initialSelection=[],this.approveStatus=new X,this.declinedStatus=new X,this.readOnly=!1,this.selectedRevision=null,this.changedFields={},this.reviewMapping={images:"images",rating:"rating",statusReviewedBy:"editor",updatedAt:"timestamp",status:"status",review:"review"},this.ReviewStatus=Xn}get ratingBreakdown(){let i=this.displayedReview?.rating;return[{key:"location",label:"Location",value:i?.location??0},{key:"service",label:"Service",value:i?.service??0},{key:"facility",label:"Facilities",value:i?.facility??0}]}pipsFor(i){let o=Math.round(i??0);return Array.from({length:5},(a,r)=>r<o)}getInitials(){let i=this.displayedReview?.customer?.firstName?.charAt(0)??"",o=this.displayedReview?.customer?.lastName?.charAt(0)??"";return(i+o).toUpperCase()}ngOnChanges(i){i.review&&i.review.currentValue&&(this.displayedReview=nt({},i.review.currentValue),this.displayedReview.revisions.length>0&&(this.reverseRevisionsList(),this.compareRevisionWithReview(this.displayedReview.revisions[0],this.review),this.selectedRevision=this.displayedReview.revisions[0]))}onApproveChange(){if(this.images&&this.images.selectedOptions){let i=this.images.selectedOptions.selected.map(o=>o.value);this.review.images=i,this.approveStatus.emit(i)}}onRevisionClick(i){this.selectedRevision=i,!this.isSameReview(this.displayedReview,i)&&(this.review.revisions[this.review.revisions.length-1]===i?Object.keys(i).forEac
219h(o=>{this.changedFields[o]=!1}):this.identifyChangedAttributes(this.review.revisions.at(this.findIndexOfRevision(i)+1),i),this.updateDisplayedReview(i),this.handleReadOnly(i))}findIndexOfRevision(i){return this.review.revisions.indexOf(i)}isSameReview(i,o){return Object.keys(this.reviewMapping).every(a=>i[a]===o[this.reviewMapping[a]])}updateDisplayedReview(i){for(let o in this.reviewMapping)this.displayedReview[o]=i[this.reviewMapping[o]]}handleReadOnly(i){this.readOnly=this.displayedReview.updatedAt!==this.review.updatedAt||i===this.review.revisions[0]}reverseRevisionsList(){this.displayedReview.revisions=this.displayedReview.revisions.reverse()}onReviewClick(){this.displayedReview=nt({},this.review),this.compareRevisionWithReview(this.review.revisions[0],this.review),this.selectedRevision=this.review.revisions[0]??null,this.readOnly=!1}onDeclineChange(){this.declinedStatus.emit(Xn.DECLINED)}compareRevisionWithReview(i,o){Object.keys(i).forEach(a=>{this.changedFields[a]=a==="rating"?this.compareRatings(i.rating,o.rating):i[a]!==o[a]})}compareRatings(i,o){return{total:i.total!==o.total,facility:i.facility!==o.facility,location:i.location!==o.location,service:i.service!==o.service}}
219identifyChangedAttributes(i,o){Object.keys(i).forEach(a=>{this.changedFields[a]=a==="rating"?this.compareRatings(i.rating,o.rating):i[a]!==o[a]})}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-review-details-overlay"]],viewQuery:function(o,a){if(o&1&&Xt(oT,5),o&2){let r;Tt(r=Dt())&&(a.images=r.first)}},inputs:{review:"review",initialSelection:"initialSelection"},outputs:{approveStatus:"approveStatus",declinedStatus:"declinedStatus"},features:[Nt],decls:106,vars:43,consts:[["images",""],[1,"details-header-card"],[1,"details-header"],[1,"details-header-main"],[1,"details-header-title-row"],[1,"details-title"],[1,"status-pill",3,"ngClass"],[1,"details-subhead"],[1,"details-header-actions"],["type","button","mat-stroked-button","","color","warn",3,"click","disabled"],["mat-flat-button","","color","primary",3,"click","disabled"],[1,"details-grid"],[1,"details-column","details-column--main"],[1,"rating-card"],[1,"rating-card-overall"],[1,"rating-card-overall-label"],[1,"rating-card-overall-value"],[1,"rating-card-overall-number"],[1,"rating-card-overall-max"],[1,"rating-pips",3,"ngClass"],[1,"rating-pip",3,"rating-pip--filled"],[1,"rating-card-breakdown"],[1,"rating-breakdown-row"],[1,"review-card"],[1,"review-card-body"],[1,"review-avatar"],[1,"review-card-content"],[1,"review-card-author"],[1,"review-card-quote",3,"ngClass"],[1,"photos-card"],[1,"image-grid"],[1,"photo-option",3,"disabled","value","selected"],[1,"photos-selected"],[1,"details-column","details-column--side"],[1,"details-list-card"],[1,"reviewValue"],[1,"reviewValue",3,"ngClass"],[1,"success"],[1,"primary"],[1,"danger"],[1,"revisions-card"],[1,"revisions-card-header"],[1,"revisions-count"],[1,"scrollable-list"],[1,"revisions-empty"],[1,"rating-pip"],[1,"rating-breakdown-label"],[1,"rating-breakdown-value"],["alt","",3,"src"],[1,"revision-entry",3,"revision-entry--selected"],[1,"revision-entry",3,"click"],["matListItemTitle","",1,"revision-row"],["aria-hidden","true",1,"fa","fa-check","revision-check"],[1,"revision-date"],[1,"revision-tag"],[1,"revisions-empty-icon"],[1,"revisions-empty-title"],[1,"revisions-empty-text"]],template:function(o,a){if(o&1&&(l(0,"mat-card",1)(1,"mat-card-content",2)(2,"div",3)(3,"div",4)(4,"h1",5),d(5),s(),l(6,"span",6),x(7,sT,1,0)(8,lT,1,0)(9,cT,1,0),s()(),l(10,"p",7),x(11,dT,2,4)(12,mT,2,4)(13,pT,2,3),s()(),l(14,"div",8)(15,"button",9),w("click",function(){return a.onDeclineChange()}),d(16," Decline "),s(),l(17,"button",10),w("click",function(){return a.onApproveChange()}),d(18," Approve "),s()()()(),l(19,"div",11)(20,"div",12)(21,"mat-card",13)(22,"mat-card-content")(23,"div",14)(24,"div",15),d(25,"Overall rating"),s(),l(26,"div",16)(27,"span",17),d(28),s(),l(29,"span",18),d(30,"/ 5"),s()(),l(31,"div",19),z(32,uT,1,2,"span",20,rl),s()(),l(34,"div",21),z(35,hT,8,5,"div",22,rT),s()()(),l(37,"mat-card",23)(38,"mat-card-content")(39,"h2"),d(40,"Written review"),s(),l(41,"div",24)(42,"div",25),d(43),s(),l(44,"div",26)(45,"div",27),x(46,gT,1,2)(47,_T,1,0),s(),l(48,"blockquote",28),d(49),s()()()()(),l(50,"mat-card",29)(51,"mat-card-content")(52,"h2"),d(53,"Images"),s(),l(54,"mat-selection-list",30,0),z(56,CT,2,4,"mat-list-option",31,U),s(),x(58,bT,2,1,"p",32),s()()(),l(59,"div",33)(60,"mat-card",34)(61,"mat-card-content")(62,"h2"),d(63,"Details"),s(),l(64,"div",35)(65,"h6"),d(66,"Created at"),s(),l(67,"p"),d(68),S(69,"adminDate"),s()(),l(70,"div",36)(71,"h6"),d(72,"Updated at"),s(),l(73,"p"),d(74),S(75,"adminDate"),s()(),l(76,"div",35)(77,"h6"),d(78,"Campsite/POI"),s(),l(79,"p"),d(80),s()(),l(81,"div",35)(82,"h6"),d(83,"User"),s(),l(84,"p"),d(85),s()(),l(86,"div",36)(87,"h6"),d(88,"Reviewed by"),s(),l(89,"p"),d(90),s()(),l(91,"div",36)(92,"h6"),d(93,"Status"),s(),x(94,xT,2,0,"span",37)(95,vT,2,0,"span",38)(96,yT,2,0,"span",39),s()()(),l(97,"mat-card",40)(98,"mat-card-content")(99,"div",41)(100,"h2"),d(101,"Revisions"),s(),l(102,"span",42),d(103),s()(),x(104,wT,3,0,"mat-list",43)(105,ET,6,0,"div",44),s()()()()),o&2){let r,c,p,u=lt(55);m(5),_(a.displayedReview==null||a.displayedReview.campsite==null?null:a.displayedReview.campsite.name),m(),C("ngClass",rd(29,aT,(a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.APPROVED,(a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.PENDING,(a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.DECLINED)),m(),v((r=a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.APPROVED?7:r===a.ReviewStatus.DECLINED?8:9),m(4),v((c=a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.APPROVED?11:c===a.ReviewStatus.DECLINED?12:13),m(4),C("disabled",(a.review==null?null:a.review.status)===a.ReviewStatus.DECLINED||a.readOnly),m(2),C("disabled",(a.review==null?null:a.review.status)===a.ReviewStatus.APPROVED||a.readOnly),m(11),_((a.displayedReview==null||a.displayedReview.rating==null?null:a.displayedReview.rating.total)??0),m(3),C("ngClass",fe(33,Ro,a.changedFields==null||a.changedFields.rating==null?null:a.changedFields.rating.total)),m(
219),H(a.pipsFor(a.displayedReview==null||a.displayedReview.rating==null?null:a.displayedReview.rating.total)),m(3),H(a.ratingBreakdown),m(8),_(a.getInitials()),m(3),v(a.displayedReview!=null&&a.displayedReview.customer?46:47),m(2),C("ngClass",fe(35,Ro,a.changedFields==null?null:a.changedFields.review)),m(),A(" ",(a.displayedReview==null?null:a.displayedReview.review)||"The guest left no written comment."," "),m(7),H(a.displayedReview==null?null:a.displayedReview.images),m(2),v(!a.readOnly&&u.selectedOptions.selected.length>0?58:-1),m(10),_(P(69,25,a.displayedReview==null?null:a.displayedReview.createdAt)),m(2),C("ngClass",fe(37,Ro,a.changedFields.timestamp)),m(4),_(P(75,27,a.displayedReview==null?null:a.displayedReview.updatedAt)),m(6),_(a.displayedReview==null||a.displayedReview.campsite==null?null:a.displayedReview.campsite.name),m(5),rt("",a.displayedReview==null||a.displayedReview.customer==null?null:a.displayedReview.customer.firstName," ",a.review==null||a.review.customer==null?null:a.review.customer.lastName),m(),C("ngClass",fe(39,Ro,a.changedFields.editor)),m(4),_((a.displayedReview==null?null:a.displayedReview.statusReviewedBy)||"\u2014"),m(),C("ngClass",fe(41,Ro,a.changedFields.status)),m(3),v((p=a.displayedReview==null?null:a.displayedReview.status)===a.ReviewStatus.APPROVED?94:p===a.ReviewStatus.PENDING?95:p===a.ReviewStatus.DECLINED?96:-1),m(9),_((a.displayedReview==null||a.displayedReview.revisions==null?null:a.displayedReview.revisions.length)||0),m(),v(!(a.displayedReview==null||a.displayedReview.revisions==null)&&a.displayedReview.revisions.length?104:105)}},dependencies:[J,Z,ii,et,Nd,Ld,wr,Er,Bd,ft],styles:["[_nghost-%COMP%]{display:block;font-size:14px}.details-header-card[_ngcontent-%COMP%]{margin-bottom:20px}.details-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.details-header-main[_ngcontent-%COMP%]{flex:1;min-width:0}.details-header-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.details-title[_ngcontent-%COMP%]{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;color:#1a1f1a}.details-subhead[_ngcontent-%COMP%]{margin:6px 0 0;font-size:13px;color:#1a1f1a99}.details-header-actions[_ngcontent-%COMP%]{display:flex;gap:10px;flex:none;padding-top:4px}.status-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.status-pill--pending[_ngcontent-%COMP%]{background:#fdf4e3;color:#a36a10}.status-pill--approved[_ngcontent-%COMP%]{background:var(--accent-tint, #e5f4f1);color:var(--accent-on-tint, #0e5f57)}.status-pill--declined[_ngcontent-%COMP%]{background:#fdf0ed;color:#b8402e}.details-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:20px;align-items:start}.details-column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:20px;min-width:0}@media(max-width:992px){.details-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.rating-card[_ngcontent-%COMP%]   mat-card-content[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:0}.rating-card-overall[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;gap:10px;padding-right:20px;border-right:1px solid rgba(26,31,26,.09)}.rating-card-overall-label[_ngcontent-%COMP%]{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#1a1f1a73}.rating-card-overall-value[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:4px}.rating-card-overall-number[_ngcontent-%COMP%]{font-size:40px;font-weight:700;letter-spacing:-.02em;color:var(--accent-on-tint, #0e5f57)}.rating-card-overall-max[_ngcontent-%COMP%]{font-size:14px;color:#1a1f1a66}.rating-card-breakdown[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px;justify-content:center;padding-left:20px}.rating-breakdown-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:14px}.rating-breakdown-label[_ngcontent-%COMP%]{flex:none;width:76px;font-size:12.5px;
219color:#1a1f1a99}.rating-breakdown-value[_ngcontent-%COMP%]{flex:none;width:20px;text-align:right;font-size:13px;font-weight:600}.rating-pips[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;gap:5px;border-radius:4px}.rating-pip[_ngcontent-%COMP%]{flex:1;height:6px;border-radius:999px;background:#1a1f1a1a}.rating-pip--filled[_ngcontent-%COMP%]{background:var(--accent, #19988b)}.review-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .photos-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .details-list-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .revisions-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0 0 16px;font-size:15px;font-weight:600;letter-spacing:-.01em}.review-card-body[_ngcontent-%COMP%]{display:flex;gap:14px;align-items:flex-start}.review-avatar[_ngcontent-%COMP%]{flex:none;width:38px;height:38px;border-radius:999px;background:var(--accent-tint, #e5f4f1);color:var(--accent-on-tint, #0e5f57);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.review-card-content[_ngcontent-%COMP%]{min-width:0;flex:1}.review-card-author[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;margin-bottom:8px}.review-card-quote[_ngcontent-%COMP%]{margin:0;border-left:2px solid var(--accent-border, rgba(11, 122, 100, .25));padding:2px 0 2px 14px;font-size:14px;line-height:1.6;color:#17211f}.photos-selected[_ngcontent-%COMP%]{margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(26,31,26,.07);font-size:12.5px;color:#1a1f1a8c}.reviewValue[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-direction:row;flex-wrap:nowrap;gap:1rem;padding:.5rem 0;margin:0}.reviewValue[_ngcontent-%COMP%] + .reviewValue[_ngcontent-%COMP%]{border-top:1px solid rgba(26,31,26,.08)}.reviewValue[_ngcontent-%COMP%]   h6[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:400;color:#1a1f1ab3}.reviewValue[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0}.image-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:0}.photo-option[_ngcontent-%COMP%]{position:relative;aspect-ratio:4 / 3;height:auto!important;padding:0;border-radius:12px;overflow:hidden;border:2px solid rgba(26,31,26,.1);background:#e9e6e0}.photo-option[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;object-position:center;display:block}  .image-grid .photo-option .mdc-list-item__content,   .image-grid .photo-option .mat-mdc-list-item-unscoped-content,   .image-grid .photo-option .mdc-list-item__primary-text{display:block;width:100%;height:100%;padding:0;margin:0}  .image-grid .photo-option.mdc-list-item--selected{border-color:var(--accent, #19988b);box-shadow:0 0 0 3px #19988b1f}  .image-grid .photo-option .mdc-list-item__end{position:absolute;top:8px;right:8px;margin:0}.revisions-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;margin-bottom:14px}.revisions-card-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0}.revisions-count[_ngcontent-%COMP%]{padding:2px 8px;border-radius:999px;background:#f1efeb;font-size:11.5px;font-weight:600;color:#1a1f1a80}.revision-entry[_ngcontent-%COMP%]:hover{background-color:var(--accent-tint, #e5f4f1);cursor:pointer}.revision-entry--selected[_ngcontent-%COMP%]{background-color:var(--accent-tint, #e5f4f1)}.revision-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.revision-check[_ngcontent-%COMP%]{flex:none;width:1em;opacity:0;color:var(--accent, #19988b)}.revision-check.is-selected[_ngcontent-%COMP%]{opacity:1}.revision-tag[_ngcontent-%COMP%]{color:#1a1f1a80;font-size:12px}.changed-fields-styling[_ngcontent-%COMP%]{background-color:#e8fcff}.scrollable-list[_ngcontent-%COMP%]{max-height:300px;overflow-y:auto}.revisions-empty[_ngcontent-%COMP%]{border:1px dashed rgba(26,31,26,.16);border-radius:12px;padding:22px 18px;text-align:center;background:#fbfaf8}.revisions-empty-icon[_ngcontent-%COMP%]{width:30px;height:30px;margin:0 auto 10px;border-radius:9px;background:#f1efeb;border:1px solid rgba(26,31,26,.08)}.revisions-empty-title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;margin-bottom:4px}.revisions-empty-text[_ngcontent-%COMP%]{font-size:12.5px;
219color:#1a1f1a80}  .mat-list-option{height:auto!important}"]});let t=n;return t})();var Ya=(()=>{let n=class n{constructor(i,o){this.formBuilder=i,this.dialogRef=o,this.form=this.formBuilder.group({reason:["",hi.required]})}confirm(){if(this.form.invalid){this.form.markAllAsTouched();return}this.dialogRef.close(this.form.value.reason.trim())}cancel(){this.dialogRef.close()}};n.\u0275fac=function(o){return new(o||n)(O(si),O(Xi))},n.\u0275cmp=L({type:n,selectors:[["app-stripe-payout-acknowledge-dialog"]],decls:15,vars:1,consts:[["mat-dialog-title",""],["autocomplete","off",3,"formGroup"],[1,"full-width"],["matInput","","formControlName","reason","rows","3","placeholder","Reason for accepting this payout"],["align","end"],["type","button","mat-button","",3,"click"],["type","button","mat-raised-button","","color","primary",3,"click"]],template:function(o,a){o&1&&(l(0,"h2",0),d(1,"Acknowledge unbalanced payout"),s(),l(2,"mat-dialog-content")(3,"p"),d(4,"The delta will be folded out and a self-billing document issued. This is recorded in the audit trail."),s(),l(5,"form",1)(6,"mat-form-field",2)(7,"mat-label"),d(8,"Reason"),s(),M(9,"textarea",3),s()()(),l(10,"mat-dialog-actions",4)(11,"button",5),w("click",function(){return a.cancel()}),d(12,"Cancel"),s(),l(13,"button",6),w("click",function(){return a.confirm()}),d(14,"Acknowledge"),s()()),o&2&&(m(5),C("formGroup",a.form))},dependencies:[so,Ji,dt,oi,jt,ct,ni,ne,ri,ai,ht,Ft,Jt,Zi,et],styles:[".full-width[_ngcontent-%COMP%]{width:100%}"]});let t=n;return t})();var PT=["*"],pe=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-admin-subnav"]],ngContentSelectors:PT,decls:2,vars:0,consts:[[1,"admin-subnav"]],template:function(o,a){o&1&&($o(),Me(0,"div",0),zo(1),we())},styles:["[_nghost-%COMP%]{display:block;margin:calc(-1 * var(--admin-page-pad, 1rem)) calc(-1 * var(--admin-page-pad, 1rem)) var(--admin-page-pad, 1rem)}.admin-subnav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;padding:10px 28px;background:#fff;border-bottom:1px solid rgba(26,31,26,.09)}  .admin-subnav .mat-mdc-form-field{margin-bottom:0}  .admin-subnav .mat-mdc-form-field-subscript-wrapper{display:none}  .admin-subnav app-search-campsites-auto-complete{display:block;flex:1 1 auto;min-width:0}  .admin-subnav app-search-with-auto-complete{display:block;width:100%;margin-bottom:0}  .admin-subnav app-search-with-auto-complete .mat-mdc-form-field{width:100%}  .admin-subnav .admin-subnav-fields{display:flex;flex-wrap:wrap;gap:12px;width:100%}  .admin-subnav .admin-subnav-fields>*{flex:1 1 0;min-width:0}@media(max-width:767.98px){  .admin-subnav .admin-subnav-fields>*{flex:1 1 100%}}  .admin-subnav .admin-subnav-actions{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:12px;align-items:center}"]});let t=n;return t})();var kT=["totalReport"],OT=["siteReports"];function IT(t,n){if(t&1&&(l(0,"mat-option",7),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),A(" ",e," ")}}function RT(t,n){t&1&&(l(0,"div",13)(1,"div",14),M(2,"mat-progress-bar",15),s()())}function AT(t,n){t&1&&(l(0,"div",13)(1,"div",14)(2,"div",16)(3,"div",17),M(4,"i",18)(5,"p",19),s()()()()),t&2&&(m(5),C("innerHTML","Select period and click <b> Get report </b>",td))}function FT(t,n){t&1&&qn(0)}function BT(t,n){t&1&&qn(0)}function LT(t,n){if(t&1&&(l(0,"span"),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.commissionPercentage,"%")}}function NT(t,n){if(t&1&&(l(0,"tr")(1,"td"),d(2),S(3,"currency"),s(),l(4,"td"),d(5),S(6,"currency"),s(),l(7,"td"),d(8),S(9,"currency"),s(),l(10,"td",32),d(11),S(12,"currency"),s(),l(13,"td"),x(14,LT,2,1,"span"),s(),l(15,"td"),d(16),S(17,"currency"),s(),l(18,"td"),d(19),S(20,"currency"),s(),l(21,"td",33),d(22),S(23,"currency"),s()()),t&2){let e=n.$implicit;Y("totals-row",e.isTotalsRow),m(2),_($t(3,10,e.income,"","")),m(3),_($t(6,14,e.refunds,"","")),m(3),_($t(9,18,e.serviceFees,"","")),m(3),_($t(12,22,e.gross,"","")),m(3),v(e.isTotalsRow?-1:14),m(2),_($t(17,26,e.commissionGross,"","")),m(3),_($t(20,30,e.commissionTax,"","")),m(3),_($t(23,34,e.sitePayable,"",""))}}function VT(t,n){if(t&1){let e=$();l(0,"div",13)(1,"div",24)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-subtitle"),d(5," Number of bookings "),s()(),l(6,"mat-card-content")(7,"h5"),d(8),s()()()(),l(9,"div",24)(10,"mat-card")(11,"mat-card-header")(12,"mat-card-subtitle"),d(13," Number of cancellations "),s()(),l(14,"mat-card-content")(15,"h5"),d(16),s()()()()(),l(17,"div",13)(18,"div",14)(19,"mat-card")(20,"mat-card-content")(21,"div",25)(22,"span")(23,"b"),d(24,"NB!"),s(),d(25," Report omits discounts supplied by Campio. This means that payout amounts can be higher than what is reported by Nets. "),s(),l(26,"button",26),M(27,"i",27),d(28," Download "),s(),l(29,"mat-menu",null,3)(31,"button",28),w("click",function(){F(e);let o=h(2);return B(o.exportTotalReportToExcel())}),d(32,"Excel"),s(),l(33,"button",28),w("click",function(){F(e);let o=h(2);return B(o.exportTotalReportToPdf())}),d(34,"PDF"),s()()(),M(35,"hr"),l(36,"div",null,4)(38,"table",29)(39,"tr")(40,"td")(41,"b"),d(42,"Turnover report"),s()()(),l(43,"tr")(44,"td"),d(45,"Total for Campio"),s()(),l(46,"tr")(47,"td"),d(48),S(49,"adminDate"),S(50,"adminDate"),s()(),l(51,"tr")(52,"td"),d(53," Currency: "),l(54,"b"),d(55),s()()()(),l(56,"div",30)(57,"table",31)(58,"thead")(59,"tr")(60,"th"),d(61,"Revenue"),s(),l(62,"th"),d(63,"Refunds"),s(),l(64,"th"),d(65,"Service Fee"),s(),l(66,"th",32),d(67,"To supplier"),s(),l(68,"th"),d(69,"Commission % (excl. VAT)"),s(),l(70,"th"),d(71,"Gross commission"),s(),l(72,"th"),d(73,"VAT"),s(),l(74,"th",33),d(75,"For payment"),s()()(),l(76,"tbody"),z(77,NT,24,38,"tr",34,U),s()()()()()()()()}if(t&2){let e=lt(30),i=h(2);m(8),_(i.activeBookings.length),m(8),_(i.cancelledBookings.length),m(10),C("appLoading",i.exportingReport)("disabled",i.exportingReport)("matMenuTriggerFor",e)("hidden",!i.reportActive),m(22),rt("",P(49,9,i.startDate)," - ",P(50,11,i.endDate)),m(7),_(i.selectedCurrency),m(22),H(i.turnoverReport.campioTotal)}}function $T(t,n){t&1&&d(0," Yes ")}function zT(t,n){t&1&&d(0," No ")}function HT(t,n){if(t&1&&(l(0,"span"),d(1),s()),t&2){let e=h().$implicit;m(),A("",e.commissionPercentage,"%")}}function jT(t,n){if(t&1&&(l(0,"tr")(1,"td"),d(2),S(3,"currency"),s(),l(4,"td"),d(5),S(6,"currency"),s(),l(7,"td"),d(8),S(9,"currency"),s(),l(10,"td",32),d(11),S(12,"currency"),s(),l(13,"td"),x(14,HT,2,1,"span"),s(),l(15,"td"),d(16),S(17,"currency"),s(),l(18,"td"),d(19),S(20,"currency"),s(),l(21,"td",33),d(22),S(23,"currency"),s()()),t&2){let e=n.$implicit;Y("totals-row",e.isTotalsRow),m(2),_($t(3,10,e.income,"","")),m(3),_($t(6,14,e.refunds,"","")),m(3),_($t(9,18,e.serviceFees,"","")),m(3),_($t(12,22,e.gross,"","")),m(3),v(e.isTotalsRow?-1:14),m(2),_($t(17,26,e.commissionGross,"","")),m(3),_($t(20,30,e.commissionTax,"","")),m(3),_($t(23,34,e.sitePayable,"",""))}}function UT(t,n){if(t&1&&(l(0,"div",36,5)(2,"table",37)(3,"tr")(4,"td")(5,"h5"),d(6),s()(),l(7,"td",38),d(8," Turnover report"),M(9,"br"),d(10),S(11,"adminDate"),S(12,"adminDate"),s()()(),l(13,"table",39)(14,"tr")(15,"th"),d(16,"Org. number"),s(),l(17,"td"),d(18),s()(),l(19,"tr")(20,"th"),d(21,"Country"),s(),l(22,"td"),d(23),S(24,"translateCountryCode"),s()(),l(25,"tr")(26,"th"),d(27,"Address"),s(),l(28,"td"),d(29),s()(),l(30,"tr")(31,"th"),d(32,"Phone"),s(),l(33,"td"),d(34),s()(),l(35,"tr")(36,"th"),d(37,"Email"),s(),l(38,"td"),d(39),s()(),l(40,"tr")(41,"th"),d(42,"Account number"),s(),l(43,"td"),d(44),s()(),l(45,"tr")(46,"th"),d(47,"VAT registered"),s(),l(48,"td"),x(49,$T,1,0),x(50,zT,1,0),s()(),l(51,"tr")(52,"th"),d(53,"SWIFT"),s(),l(54,"td"),d(55),s()(),l(56,"tr")(57,"th"),d(58,"Currency"),s(),l(59,"td"),d(60),s()()(),l(61,"div",30)(62,"table",31)(63,"thead")(64,"tr")(65,"th"),d(66,"Revenue"),s(),l(67,"th"),d(68,"Refunds"),s(),l(69,"th"),d(70,"Service Fee"),s(),l(71,"th",32),d(72,"To supplier"),s(),l(73,"th"),d(74,"Commission % (excl. VAT)"),s(),l(75,"th"),d(76,"Gross commission"),s(),l(77,"th"),d(78,"VAT"),s(),l(79,"th",33),d(80,"For payment"),s()()(),l(81,"tbody"),z(82,jT,24,38,"tr",34,U),s()()()()),t&2){let e=n.$implicit,i=h(3);m(6),_(e.companyInfo.orgName),m(4),rt(" ",P(11,13,i.startDate)," - ",P(12,15,i.endDate)," "),m(8),_(e.companyInfo.orgNumber),m(5),_(P(24,17,e.companyInfo.country)),m(6),_(e.companyInfo.orgAddress),m(5),_(e.companyInfo.orgPhone),m(5),_(e.companyInfo.orgEmail),m(5),_(e.companyInfo.accountNumber),m(5),v(e.companyInfo.vatRegistered?49:-1),m(),v(e.companyInfo.vatRegistered?-1:50),m(5),_(e.companyInfo.swift||"-"),m(5),A(" ",i.selectedCurrency," "),m(22),H(e.rows)}}function WT(t,n){if(t&1){let e=$();l(0,"div",13)(1,"div",14)(2,"mat-card")(3,"mat-card-content")(4,"div",25)(5,"span")(6,"b"),d(7,"NB!"),s(),d(8," Report omits discounts supplied by Campio. This means that payout amounts can be higher than what is reported by Nets. "),s(),l(9,"button",35),M(10,"i",27),d(11," Download "),s(),l(12,"mat-menu",null,3)(14,"button",28),w("click",function(){F(e);let o=h(2);return B(o.exportExcel())}),d(15,"Excel"),s(),l(16,"button",28),w("click",function(){F(e);let o=h(2);return B(o.exportPdf())}),d(17,"PDF"),s()()(),M(18,"hr"),z(19,UT,84,19,"div",36,U),s()()()()}if(t&2){let e=lt(13),i=h(2);m(9),C("matMenuTriggerFor",e)("hidden",!i.reportActive),m(10),H(i.turnoverReport.sites)}}function GT(t,n){if(t&1&&(l(0,"div",13)(1,"div",14)(2,"mat-tab-group",20)(3,"mat-tab",21),T(4,FT,1,0,"ng-container",22),s(),l(5,"mat-tab",23),T(6,BT,1,0,"ng-container",22),s()()()(),T(7,VT,79,13,"ng-template",null,1,qi)(9,WT,21,2,"ng-template",null,2,qi)),t&2){let e=lt(8),i=lt(10);m(4),C("ngTemplateOutlet",e),m(2),C("ngTemplateOutlet",i)}}var Qa=(()=>{let n=class n{constructor(i,o,a){this.dbService=i,this.exportService=o,this.uiMessagingService=a,this.reportActive=!1,this.loadingReport=!1,this.showDownloadButton=!0,this.turnoverReport=new Co,this.exportingReport=!1,this.startDate=wd(hr(new Date,{weekStartsOn:1}
219),2),this.endDate=fr(this.startDate,6),this.currencies=Object.keys(dl),this.selectedCurrency=dl.NOK}changeInput(){this.reportActive=!1,this.activeBookings=null,this.cancelledBookings=null,this.turnoverReport=new Co}getReport(){return ce(this,null,function*(){if(this.turnoverReport=new Co,Kn(this.endDate,this.startDate)>32){this.uiMessagingService.openSnackBarError("Max 31 days");return}this.loadingReport=!0,yield this.summarizeIncome(),yield this.summarizeRefunds(),yield this.calculateColumns(),yield this.calculateTotalRows(),yield this.populateCompanyInfo(),yield this.calculateCampioTotal(),this.loadingReport=!1,this.reportActive=!0})}getActiveBookings(){return ce(this,null,function*(){let i=yield this.dbService.getCreatedBookingsAdmin(this.startDate,this.endDate,!0,!1);this.activeBookings=i.filter(o=>o.isSubjectToCommission).filter(o=>o.currency===this.selectedCurrency).filter(o=>o.paymentProvider==="NETS")})}getCancelledBookings(){return ce(this,null,function*(){let i=yield this.dbService.getCancelledBookingsAdmin(this.startDate,this.endDate);this.cancelledBookings=i.filter(o=>o.isSubjectToCommission).filter(o=>o.currency===this.selectedCurrency).filter(o=>o.paymentProvider==="NETS")})}summarizeIncome(){return ce(this,null,function*(){this.activeBookings||(yield this.getActiveBookings());for(let i of this.activeBookings)for(let o of i.receipt){let a=o.type===Ed.SERVICEFEE,r=o.price*o.count;this.updateOrAddReportRow(i.campsiteId,i.commissionPercentage,r,a,!1)}})}summarizeRefunds(){return ce(this,null,function*(){this.cancelledBookings||(yield this.getCancelledBookings());for(let i of this.cancelledBookings)if(!(!i.refund||!i.refund?.percent))for(let o of i.receipt){let a=o.price*o.count*(i.refund.percent/100);this.updateOrAddReportRow(i.campsiteId,i.commissionPercentage,a,!1,!0)}})}calculateColumns(){return ce(this,null,function*(){for(let i of this.turnoverReport.sites)for(let o of i.rows){let a=o.income-o.refunds-o.serviceFees,r=Dd(a,o.commissionPercentage,this.selectedCurrency),c=Pd(a,o.commissionPercentage,this.selectedCurrency);o.commissionGross=r,o.commissionTax=c,o.gross=a,o.sitePayable=a-r}})}calculateTotalRows(){return ce(this,null,function*(){for(let i of this.turnoverReport.sites){let o={income:0,refunds:0,serviceFees:0,gross:0,commissionPercentage:0,commissionGross:0,commissionTax:0,sitePayable:0,isTotalsRow:!0};for(let a of i.rows)o.income+=a.income,o.refunds+=a.refunds,o.serviceFees+=a.serviceFees,o.gross+=a.gross,o.commissionGross+=a.commissionGross,o.commissionTax+=a.commissionTax,o.sitePayable+=a.sitePayable;i.rows.push(o)}})}calculateCampioTotal(){return ce(this,null,function*(){let i={income:0,refunds:0,serviceFees:0,gross:0,commissionPercentage:0,commissionGross:0,commissionTax:0,sitePayable:0,isTotalsRow:!0};for(let o of this.turnoverReport.sites)for(let a of o.rows){if(a.isTotalsRow){i.income+=a.income,i.refunds+=a.refunds,i.serviceFees+=a.serviceFees,i.gross+=a.gross,i.commissionGross+=a.commissionGross,i.commissionTax+=a.commissionTax,i.sitePayable+=a.sitePayable;continue}let r=this.turnoverReport.campioTotal.find(c=>c.commissionPercentage===a.commissionPercentage);r?(r.income+=a.income,r.refunds+=a.refunds,r.serviceFees+=a.serviceFees,r.gross+=a.gross,r.commissionGross+=a.commissionGross,r.commissionTax+=a.commissionTax,r.sitePayable+=a.sitePayable):this.turnoverReport.campioTotal.push(nt({},a))}this.turnoverReport.campioTotal.push(nt({},i))})}populateCompanyInfo(){return ce(this,null,function*(){try{let i=yield this.dbService.getCompanyInfoById(this.turnoverReport.sites.flatMap(o=>o.siteId));this.turnoverReport=Et(nt({},this.turnoverReport),{sites:this.turnoverReport.sites.map(o=>{let a=i.find(r=>r.campsiteId===o.siteId);return Et(nt({},o),{companyInfo:a||o.companyInfo})})})}catch(i){console.log(i)}})}updateOrAddReportRow(i,o,a,r,c){let p={income:c?0:a,refunds:c?a:0,serviceFees:c?0:r?a:0,gross:0,commissionPercentage:o,commissionGross:0,commissionTax:0,sitePayable:0,isTotalsRow:!1},u=this.turnoverReport.sites.find(f=>f.siteId==i);if(u){let f=u.rows.find(g=>g.commissionPercentage==o);f?c?f.refunds+=a:(f.income+=a,r&&!c&&(f.serviceFees+=a)):u.rows.push(nt({},p))}else{let f={siteId:i,companyInfo:null,rows:[nt({},p)]};this.turnoverReport.sites.push(nt({},f))}}get reportPeriodString(){return`${pl(this.startDate)}-${pl(this.endDate)}`}getFileNameForTotalReport(i){return`campio_omsetning_${this.reportPeriodString}.${i}`}getFileNameForSiteReport(i){return`${this.turnoverReport.sites.at(i).companyInfo.orgName.replace(" ","_")}_${this.reportPeriodString}`}getSheetNameForSiteReport(i){return this.turnoverReport.sites.at(i).companyInfo?.orgName?.replace(/[^\w\s]/gi,"").substring(0,30)||"Unknown"}exportTotalReportToExcel(){return ce(this,null,function*(){let i="Omsetning",o=this.getFileNameForTotalReport("xlsx");this.exportingReport=!0,yield this.exportService.exportXlsx(this.totalReport.nativeElement,i,o),this.exportingReport=!1})}exportTotalReportToPdf(){return ce(this,null,function*(){let i=this.getFileNameForTotalReport("pdf");this.exportingReport=!0,yield this.exportService.exportPdf(this.totalReport.nativeElement,i),this.exportingReport=!1})}exportExcel(){let i=[],o=this.siteReports.toArray();for(let a=0;a<o.length;
219a++)i.push({fileContent:o[a].nativeElement,contentName:this.getSheetNameForSiteReport(a)});this.exportService.exportXslxMulitpleSheets(i,`Omsetningsrapporter_${this.reportPeriodString}.xlsx`)}exportPdf(){return ce(this,null,function*(){let i=[],o=this.siteReports.toArray();for(let a=0;a<o.length;a++)i.push({fileContent:o[a].nativeElement,fileName:this.getFileNameForSiteReport(a)});this.exportService.exportPdfToZip(i,`Omsetningsrapporter_${this.reportPeriodString}.zip`)})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(uo),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-turnover-report"]],viewQuery:function(o,a){if(o&1&&Xt(kT,5)(OT,5),o&2){let r;Tt(r=Dt())&&(a.totalReport=r.first),Tt(r=Dt())&&(a.siteReports=r)}},decls:19,vars:10,consts:[["picker",""],["campioTotalReport",""],["PerSiteReports",""],["menu","matMenu"],["totalReport",""],["siteReports",""],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],[3,"focus","click","rangePicker"],["matStartDate","",1,"date-input",3,"ngModelChange","ngModel","readonly"],["matEndDate","",1,"date-input",3,"ngModelChange","dateChange","ngModel","readonly"],["matSuffix","",3,"for"],["mat-flat-button","","type","submit","color","primary",3,"click"],[1,"row"],[1,"column",2,"width","100%"],["mode","indeterminate"],[1,"center-div-hv"],[2,"display","block","text-align","center","color","rgb(160, 160, 160)"],[1,"fal","fa-3x","fa-arrow-circle-up"],[2,"margin-top","30px",3,"innerHTML"],[2,"background-color","white"],["label","Campio"],[4,"ngTemplateOutlet"],["label","Per site"],[1,"column"],[2,"display","flex","justify-content","space-between","align-items","center"],["mat-stroked-button","","color","primary",3,"appLoading","disabled","matMenuTriggerFor","hidden"],[1,"far","fa-arrow-to-bottom"],["mat-menu-item","",3,"click"],[2,"margin-bottom","30px"],[1,"table","table-responsive","table-hover"],[1,"table"],[1,"col-blue"],[1,"col-green"],[3,"totals-row"],["mat-stroked-button","","color","primary",3,"matMenuTriggerFor","hidden"],[1,"reportSection"],[2,"width","100%"],[2,"text-align","right"],[1,"company-info-table"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"mat-form-field")(2,"mat-label"),d(3,"Currency"),s(),l(4,"mat-select",6),Ot("ngModelChange",function(p){return F(r),kt(a.selectedCurrency,p)||(a.selectedCurrency=p),B(p)}),w("selectionChange",function(){return a.changeInput()}),z(5,IT,2,2,"mat-option",7,U),s()(),l(7,"mat-form-field")(8,"mat-date-range-input",8),w("focus",function(){F(r);let p=lt(13);return B(p.open())})("click",function(){F(r);let p=lt(13);return B(p.open())}),l(9,"input",9),Ot("ngModelChange",function(p){return F(r),kt(a.startDate,p)||(a.startDate=p),B(p)}),s(),l(10,"input",10),Ot("ngModelChange",function(p){return F(r),kt(a.endDate,p)||(a.endDate=p),B(p)}),w("dateChange",function(){return a.changeInput()}),s()(),M(11,"mat-datepicker-toggle",11)(12,"mat-date-range-picker",null,0),s(),l(14,"button",12),w("click",function(){return a.getReport()}),d(15,"Get report"),s()(),x(16,RT,3,0,"div",13),x(17,AT,6,1,"div",13),x(18,GT,11,2)}if(o&2){let r=lt(13);m(4),Pt("ngModel",a.selectedCurrency),m(),H(a.currencies),m(3),C("rangePicker",r),m(),Pt("ngModel",a.startDate),C("readonly",!0),m(),Pt("ngModel",a.endDate),C("readonly",!0),m(),C("for",r),m(5),v(a.loadingReport?16:-1),m(),v(a.reportActive?-1:17),m(),v(a.reportActive?18:-1)}},dependencies:[pe,ht,Ft,Vt,dt,jt,ct,he,Rt,io,no,oo,li,Pe,ao,et,ge,en,tn,sr,J,ot,Ki,Z,vm,mo,co,lo,Yi,ft,fo],styles:["th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{width:10%;white-space:nowrap}.totals-row[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{font-weight:700}.reportSection[_ngcontent-%COMP%]{border:1px solid #ccc;border-radius:5px;padding:20px;margin-bottom:50px}.col-green[_ngcontent-%COMP%]{background:#e2f0d9}.col-blue[_ngcontent-%COMP%]{background:#dae3f3}.company-info-table[_ngcontent-%COMP%]{width:min-content;margin:10px 0 25px}.company-info-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding-right:15px}"]});let t=n;return t})();function YT(t,n){if(t&1&&(l(0,"div",1),d(1),s()),t&2){let e=h();m(),_(e.errorMessage)}}function QT(t,n){t&1&&(l(0,"p",2),d(1,"No Campio staff accounts were found."),s())}function KT(t,n){t&1&&(l(0,"th",13),d(1,"Name"),s())}function XT(t,n){if(t&1&&(l(0,"td",14),d(1),s()),t&2){let e=n.$implicit,i=h(2);m(),_(i.displayName(e))}}function JT(t,n){t&1&&(l(0,"th",13),d(1,"Email"),s())}function ZT(t,n){if(t&1&&(l(0,"td",14),d(1),s()),t&2){let e=n.$implicit,i=h(2);m(),_(i.displayEmail(e))}}function t3(t,n){t&1&&(l(0,"th",13),d(1,"Role"),s())}function e3(t,n){if(t&1&&(l(0,"td",14),d(1),s()),t&2){let e=n.$implicit,i=h(2);m(),_(i.displayRole(e))}}function i3(t,n){t&1&&(l(0,"th",13),d(1,"User id"),s())}function n3(t,n){if(t&1&&(l(0,"td",14),d(1),s()),t&2){let e=n.$implicit;m(),_(e.id)}}function o3(t,n){t&1&&M(0,"tr",15)}function a3(t,n){t&1&&M(0,"tr",16)}function r3(t,n){if(t&1&&(l(0,"div",3)(1,"table",4),I(2,5),T(3,KT,2,0,"th",6)(4,XT,2,1,"td",7),R(),I(5,8),T(6,JT,2,0,"th",6)(7,ZT,2,1,"td",7),R(),I(8,9),T(9,t3,2,0,"th",6)(10,e3,2,1,"td",7),R(),I(11,10),T(12,i3,2,0,"th",6)(13,n3,2,1,"td",7),R(),T(14,o3,1,0,"tr",11)(15,a3,1,0,"tr",12),s()()),t&2){let e=h();m(),C("dataSource",e.dataSource)("trackBy",e.trackRow),m(13),C("matHeaderRowDef",e.displayedColumns),m(),C("matRowDefColumns",e.displayedColumns)}}function s3(t,n){t&1&&M(0,"app-loading")}var Ka=(()=>{let n=class n{constructor(){this.staff=[],this.loading=!1,this.errorMessage=null,this.dataSource=new Qt([]),this.displayedColumns=["name","email","role","uid"]}set matSort(i){this._sort=i,i&&(this.dataSource.sort=i)}
219ngOnChanges(i){i.staff&&(this.dataSource=new Qt(this.staff??[]),this.dataSource.sortingDataAccessor=(o,a)=>this._sortValue(o,a),this.dataSource.sort=this._sort??null)}get isEmpty(){return!this.loading&&!this.errorMessage&&(this.staff?.length??0)===0}get hasRows(){return(this.staff?.length??0)>0}displayName(i){return i?.name?.trim()||i?.email?.trim()||i?.id?.trim()||"No name on file"}displayEmail(i){return i?.email?.trim()||"No email on file"}displayRole(i){return i?.role?.trim()||"No role on file"}trackRow(i,o){return o?.id||`#${i}`}_sortValue(i,o){switch(o){case"name":return this.displayName(i).toLowerCase();case"email":return this.displayEmail(i).toLowerCase();case"role":return this.displayRole(i).toLowerCase();default:return i?.id??""}}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-campio-staff"]],viewQuery:function(o,a){if(o&1&&Xt(Zt,5),o&2){let r;Tt(r=Dt())&&(a.matSort=r.first)}},inputs:{staff:"staff",loading:"loading",errorMessage:"errorMessage"},features:[Nt],decls:9,vars:4,consts:[[1,"campio-staff-card"],[1,"alert","alert-danger"],[1,"no-staff-message"],[1,"table-responsive"],["mat-table","","matSort","",3,"dataSource","trackBy"],["matColumnDef","name"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","email"],["matColumnDef","role"],["matColumnDef","uid"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),d(3,"Campio staff"),s()(),l(4,"mat-card-content"),x(5,YT,2,1,"div",1),x(6,QT,2,0,"p",2),x(7,r3,16,4,"div",3),s(),x(8,s3,1,0,"app-loading"),s()),o&2&&(m(5),v(a.errorMessage?5:-1),m(),v(a.isEmpty?6:-1),m(),v(a.hasRows?7:-1),m(),v(a.loading?8:-1))},dependencies:[J,ot,st,Z,gt,Zt,bt,Ct,xt,Oe,_t,vt,yt,Mt,St,wt,ae],styles:[".campio-staff-card[_ngcontent-%COMP%]   mat-card-content[_ngcontent-%COMP%]{padding-top:0}.no-staff-message[_ngcontent-%COMP%]{margin:0;padding:.75rem 0;color:#0000008a}.table-responsive[_ngcontent-%COMP%]{overflow-x:auto}.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]{width:100%}"],changeDetection:0});let t=n;return t})();function c3(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e.value),m(),_(e.label)}}function d3(t,n){t&1&&(l(0,"p",10),d(1," Pick what to search by, enter a term and press Search. Nothing is loaded until you do. "),s())}function m3(t,n){t&1&&M(0,"app-loading")}function p3(t,n){t&1&&(l(0,"p",11),d(1,"No campsite directors match that search."),s())}function u3(t,n){if(t&1&&(l(0,"p",12),d(1),s()),t&2){let e=h();m(),_(e.stateMessage)}}function f3(t,n){if(t&1&&(l(0,"div",13),d(1),s()),t&2){let e=h();m(),_(e.stateMessage)}}function h3(t,n){if(t&1&&(l(0,"p",14),d(1),s()),t&2){let e=h(2);m(),_(e.capNotice)}}function g3(t,n){t&1&&(l(0,"p",15),d(1,"No rows left on this page \u2014 search again to see the matches that remain."),s())}function _3(t,n){t&1&&(l(0,"th",28),d(1,"Name"),s())}function C3(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit,i=h(3);m(),_(i.displayName(e))}}function b3(t,n){t&1&&(l(0,"th",28),d(1,"Email"),s())}function x3(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit,i=h(3);m(),_(i.displayEmail(e))}}function v3(t,n){t&1&&(l(0,"th",28),d(1,"Campsite"),s())}function y3(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit,i=h(3);m(),_(i.displayCampsite(e))}}function S3(t,n){t&1&&(l(0,"th",28),d(1,"User id"),s())}function M3(t,n){if(t&1&&(l(0,"td",29),d(1),s()),t&2){let e=n.$implicit;m(),_(e.id)}}function w3(t,n){t&1&&(l(0,"th",30),d(1,"Actions"),s())}function E3(t,n){if(t&1){let e=$();l(0,"button",32),w("click",function(){F(e);let o=h().$implicit,a=h(3);return B(a.deleteDirector.emit(a.rowActionFor(o)))}),M(1,"i",33),s()}if(t&2){let e=h().$implicit,i=h(3);C("disabled",i.actionsBusy),Ge("aria-label","Delete "+i.displayName(e))}}function T3(t,n){if(t&1&&(l(0,"td",29),x(1,E3,2,2,"button",31),s()),t&2){let e=n.$implicit,i=h(3);m(),v(i.hasActions(e)?1:-1)}}function D3(t,n){t&1&&M(0,"tr",34)}function P3(t,n){t&1&&M(0,"tr",35)}function k3(t,n){if(t&1&&(l(0,"div",16)(1,"table",17),I(2,18),T(3,_3,2,0,"th",19)(4,C3,2,1,"td",20),R(),I(5,21),T(6,b3,2,0,"th",19)(7,x3,2,1,"td",20),R(),I(8,22),T(9,v3,2,0,"th",19)(10,y3,2,1,"td",20),R(),I(11,23),T(12,S3,2,0,"th",19)(13,M3,2,1,"td",20),R(),I(14,24),T(15,w3,2,0,"th",25)(16,T3,2,1,"td",20),R(),T(17,D3,1,0,"tr",26)(18,P3,1,0,"tr",27),s()()),t&2){let e=h(2);m(),C("dataSource",e.dataSource)("trackBy",e.trackRow),m(16),C("matHeaderRowDef",e.displayedColumns),m(),C("matRowDefColumns",e.displayedColumns)}}function O3(t,n){if(t&1&&(x(0,h3,2,1,"p",14),x(1,g3,2,0,"p",15),x(2,k3,19,4,"div",16)),t&2){let e=h();v(e.capNotice?0:-1),m(),v(e.isEmptyPage?1:-1),m(),v(e.isEmptyPage?-1:2)}}var Xa=(()=>{let n=class n{constructor(){this.state={kind:"idle"},this.actionsBusy=!1,this.searchRequested=new X,this.deleteDirector=new X,this.searchByOptions=[{value:je.CAMPSITE_NAME,label:"Campsite name"},{value:je.CAMPSITE_ID,label:"Campsite id"},{value:je.USER_NAME,label:"User name"},{value:je.USER_EMAIL,label:"User email"},{value:je.USER_ID,label:"User id"}
219],this.searchByControl=new gi(je.CAMPSITE_NAME,{nonNullable:!0}),this.termControl=new gi("",{nonNullable:!0}),this.dataSource=new Qt([]),this.displayedColumns=["name","email","campsite","uid","actions"]}set matSort(i){this._sort=i,i&&(this.dataSource.sort=i)}ngOnChanges(i){let o=i.state?.currentValue;o?.kind==="results"&&(this.dataSource=new Qt(o.rows),this.dataSource.sortingDataAccessor=(a,r)=>this._sortValue(a,r),this.dataSource.sort=this._sort??null)}get canSearch(){return!!this.termControl.value.trim()&&this.state?.kind!=="searching"}get stateMessage(){return this.state?.kind==="refused"||this.state?.kind==="error"?this.state.message:null}get capNotice(){if(this.state?.kind!=="results")return null;let{rows:i,count:o,capped:a}=this.state;return o>i.length?`Showing ${i.length} of ${o} matches \u2014 narrow your search.`:a?`Showing the first ${i.length} matches \u2014 there may be more. Narrow your search.`:null}get isEmptyPage(){return this.state?.kind==="results"&&this.state.rows.length===0}submit(){this.canSearch&&this.searchRequested.emit({searchBy:this.searchByControl.value,term:this.termControl.value.trim()})}displayName(i){return i?.name?.trim()||i?.email?.trim()||i?.id?.trim()||"No name on file"}displayEmail(i){return i?.email?.trim()||"No email on file"}displayCampsite(i){return i?.campsiteName?.trim()||`${i?.campsiteId??""} (unknown campsite)`}hasActions(i){return!!i?.id?.trim()&&!!i?.campsiteId?.trim()}rowActionFor(i){return{row:i,displayName:this.displayName(i),displayEmail:this.displayEmail(i),displayCampsite:this.displayCampsite(i)}}trackRow(i,o){return o?.id||`#${i}`}_sortValue(i,o){switch(o){case"name":return this.displayName(i).toLowerCase();case"email":return this.displayEmail(i).toLowerCase();case"campsite":return this.displayCampsite(i).toLowerCase();default:return i?.id??""}}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-director-search"]],viewQuery:function(o,a){if(o&1&&Xt(Zt,5),o&2){let r;Tt(r=Dt())&&(a.matSort=r.first)}},inputs:{state:"state",actionsBusy:"actionsBusy"},outputs:{searchRequested:"searchRequested",deleteDirector:"deleteDirector"},features:[Nt],decls:24,vars:4,consts:[[1,"search-term"],["matInput","","type","text","autocomplete","off",3,"keyup.enter","formControl"],[1,"search-by"],[3,"formControl"],[3,"value"],["type","button","mat-flat-button","","color","primary",1,"search-button",3,"click","disabled"],[1,"row"],[1,"column",2,"width","100%"],[1,"director-search-card"],[1,"results-area"],[1,"search-prompt"],[1,"no-matches-message"],[1,"refused-message"],[1,"alert","alert-danger"],[1,"cap-notice"],[1,"empty-page-message"],[1,"table-responsive"],["mat-table","","matSort","",3,"dataSource","trackBy"],["matColumnDef","name"],["mat-header-cell","","mat-sort-header","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","email"],["matColumnDef","campsite"],["matColumnDef","uid"],["matColumnDef","actions"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell","","mat-sort-header",""],["mat-cell",""],["mat-header-cell",""],["type","button","mat-icon-button","","color","warn","matTooltip","Delete",1,"row-action","row-action-delete",3,"disabled"],["type","button","mat-icon-button","","color","warn","matTooltip","Delete",1,"row-action","row-action-delete",3,"click","disabled"],[1,"far","fa-trash-can"],["mat-header-row",""],["mat-row",""]],template:function(o,a){if(o&1&&(l(0,"app-admin-subnav")(1,"mat-form-field",0)(2,"mat-label"),d(3,"Search term"),s(),l(4,"input",1),w("keyup.enter",function(){return a.submit()}),s()(),l(5,"mat-form-field",2)(6,"mat-label"),d(7,"Search by"),s(),l(8,"mat-select",3),z(9,c3,2,2,"mat-option",4,U),s()(),l(11,"button",5),w("click",function(){return a.submit()}),d(12," Search "),s()(),l(13,"div",6)(14,"div",7)(15,"mat-card",8)(16,"mat-card-content")(17,"div",9),x(18,d3,2,0,"p",10)(19,m3,1,0,"app-loading")(20,p3,2,0,"p",11)(21,u3,2,1,"p",12)(22,f3,2,1,"div",13)(23,O3,3,3),s()()()()()),o&2){let r;m(4),C("formControl",a.termControl),m(4),C("formControl",a.searchByControl),m(),H(a.searchByOptions),m(2),C("disabled",!a.canSearch),m(7),v((r=a.state==null?null:a.state.kind)==="idle"?18:r==="searching"?19:r==="no-matches"?20:r==="refused"?21:r==="error"?22:r==="results"?23:-1)}},dependencies:[pe,ht,Ft,Jt,dt,jt,ct,ne,He,Vt,Rt,et,J,Z,ae,gt,Zt,bt,Ct,xt,Oe,_t,vt,ke,Ae,yt,Mt,St,wt],styles:[".search-term[_ngcontent-%COMP%]{flex:1 1 20rem;min-width:12rem;width:auto}.search-by[_ngcontent-%COMP%]{flex:0 1 14rem;width:auto}.search-button[_ngcontent-%COMP%]{flex:0 0 auto}.results-area[_ngcontent-%COMP%]{min-height:6rem;display:flex;flex-direction:column;justify-content:center}.search-prompt[_ngcontent-%COMP%], .no-matches-message[_ngcontent-%COMP%], .refused-message[_ngcontent-%COMP%], .empty-page-message[_ngcontent-%COMP%]{margin:0;padding:.75rem 0;color:#0000008a}.cap-notice[_ngcontent-%COMP%]{margin:0 0 .5rem;padding:.5rem .75rem;border-radius:4px;background-color:#ff98001f;color:#000000b8}.table-responsive[_ngcontent-%COMP%]{overflow-x:auto}.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]{width:100%}.table-responsive[_ngcontent-%COMP%]   .mat-column-actions[_ngcontent-%COMP%]{width:3.5rem;text-align:right;white-space:nowrap}button.row-action[_ngcontent-%COMP%]{--mat-icon-button-icon-size: 1.25rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}"],changeDetection:0});let t=n;return t})();var A3=()=>["expandedDetail"],F3=t=>[t],B3=(t,n)=>n.id;function L3(t,n){t&1&&M(0,"mat-progress-bar",8)}function N3(t,n){t&1&&(l(0,"th",24),d(1,"Camp"),s())}function V3(t,n){if(t&1&&(l(0,"td",25)(1,"div",26)(2,"mat-icon",27),d(3),s(),l(4,"div")(5,"div"),d(6),s(),l(7,"div",28),d(8),s()()()()),t&2){let e=n.$implicit,i=h();m(3),_(e.campsiteId===i.expandedCampsiteId?"expand_more":"chevron_right"),m(3),_(e.campName),m(2),_(e.campsiteId)}}function $3(t,n){t&1&&(l(0,"th",24),d(1,"Status"),s())}function z3(t,n){if(t&1&&(l(0,"td",25)(1,"span",29),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),Y("bookability-chip--green",e.bookable)("bookability-chip--red",!e.bookable),m(),A(" ",i.bookableLabel(e.bookable)," ")}}function H3(t,n){t&1&&(l(0,"th",24),d(1,"Reason"),s())}function j3(t,n){if(t&1&&(l(0,"td",25),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.reasonLabels[e.reason])}}function U3(t,n){t&1&&(l(0,"th",24),d(1,"Changed by"),s())}function W3(t,n){if(t&1&&(l(0,"td",25),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.userLabel(e.user))}}function G3(t,n){t&1&&(l(0,"th",24),d(1,"When"),s())}function q3(t,n){if(t&1&&(l(0,"td",25),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(mt(2,1,e.at,!0))}}function Y3(t,n){t&1&&M(0,"mat-progress-bar",8)}function Q3(t,n){if(t&1&&(l(0,"div",32)(1,"span",33),d(2),S(3,"adminDate"),s(),l(4,"span"),d(5),s(),l(6,"span"),d(7),s(),l(8,"span"),d(9),s()()),t&2){let e=n.$implicit,i=h(3);m(2),_(mt(3,5,e.at,!0)),m(3),rt("",i.bookableLabel(e.from)," \u2192 ",i.bookableLabel(e.to)),m(2),_(i.reasonLabels[e.reason]),m(2),_(i.userLabel(e.user))}}function K3(t,n){t&1&&(l(0,"div",22),d(1,"No bookability records yet."),s())}function X3(t,n){if(t&1&&(l(0,"div",30)(1,"div",31),d(2,"Flip history"),s(),x(3,Y3,1,0,"mat-progress-bar",8),z(4,Q3,10,8,"div",32,B3),x(6,K3,2,0,"div",22),s()),t&2){let e=h(2);m(3),v(e.historyLoading?3:-1),m(),H(e.history),m(2),v(!e.historyLoading&&!e.history.length?6:-1)}}function J3(t,n){if(t&1&&(l(0,"td",25),x(1,X3,7,2,"div",30),s()),t&2){let e=n.$implicit,i=h();Ge("colspan",i.displayedColumns.length),m(),v(e.campsiteId===i.expandedCampsiteId?1:-1)}}function Z3(t,n){t&1&&M(0,"tr",34)}function tD(t,n){if(t&1){let e=$();l(0,"tr",35),w("click",function(){let o=F(e).$implicit,a=h();return B(a.toggleExpand(o))}),s()}if(t&2){let e=n.$implicit,i=h();Y("bookability-row--expanded",e.campsiteId===i.expandedCampsiteId)}}function eD(t,n){if(t&1&&M(0,"tr",36),t&2){let e=n.$implicit,i=h();Y("bookability-detail-row--collapsed",e.campsiteId!==i.expandedCampsiteId)}}function iD(t,n){t&1&&(l(0,"div",22),d(1,"No bookability records yet."),s())}var Ps=(()=>{let n=class n{constructor(i,o){this.bookabilityService=i,this.uiMessagingService=o,this.displayedColumns=["campName","bookable","reason","user","at"],this.reasonLabels={OWNER_SWITCH:"Owner switch",ADMIN_SWITCH:"Admin switch",ONBOARDING_APPROVED:"Onboarding approved",
219LAST_ACCOMMODATION_DEACTIVATED:"Last accommodation deactivated",LAST_ACCOMMODATION_DELETED:"Last accommodation deleted",ACCOMMODATION_ACTIVATED:"Accommodation activated",CAMP_DISABLED:"Camp disabled",CAMP_ENABLED:"Camp re-enabled",BACKFILL:"Backfilled baseline"},this.rows=[],this.count=0,this.totals={bookable:0,notBookable:0},this.filter="all",this.offset=0,this.pageSize=50,this.loading$=new tt(!1),this.loaded=!1,this.expandedCampsiteId=null,this.history=[],this.historyLoading=!1,this.isDetailRow=()=>!0}ngOnInit(){this._load()}setFilter(i){i!==this.filter&&(this.filter=i,this.offset=0,this.expandedCampsiteId=null,this.history=[],this._load())}onPage(i){this.offset=i.pageIndex*i.pageSize,this._load()}toggleExpand(i){if(this.expandedCampsiteId===i.campsiteId){this.expandedCampsiteId=null,this.history=[];return}this.expandedCampsiteId=i.campsiteId,this.history=[],this._loadHistory(i)}bookableLabel(i){return i?"Bookable":"Not bookable"}userLabel(i){return i?.email??i?.uid??"\u2014"}_load(){this.loading$.next(!0),this.bookabilityService.listCamps(nt({limit:this.pageSize,offset:this.offset},this.filter==="all"?{}:{bookable:this.filter==="bookable"})).pipe(It(()=>this.loading$.next(!1))).subscribe({next:i=>{this.rows=i.data,this.count=i.count,this.totals=i.totals??{bookable:0,notBookable:0},this.loaded=!0},error:i=>this.uiMessagingService.openSnackBarError(this.bookabilityService.errorMessageFor(i))})}_loadHistory(i){this.historyLoading=!0,this.bookabilityService.getHistory(i.campsiteId).pipe(It(()=>this.historyLoading=!1)).subscribe({next:o=>{if(this.expandedCampsiteId!==i.campsiteId)return;this.history=o.data;let a=o.data[0];a&&(i.bookable=a.to,i.reason=a.reason,i.user=a.user,i.at=a.at)},error:o=>this.uiMessagingService.openSnackBarError(this.bookabilityService.errorMessageFor(o))})}};n.\u0275fac=function(o){return new(o||n)(O(um),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-bookability"]],decls:49,vars:26,consts:[[1,"row"],[1,"column",2,"width","100%"],["role","group","aria-label","Filter camps",1,"bookability-tiles"],["type","button",1,"bookability-tile",3,"click"],[1,"bookability-tile-count"],[1,"bookability-tile-label"],["type","button",1,"bookability-tile","bookability-tile--green",3,"click"],["type","button",1,"bookability-tile","bookability-tile--red",3,"click"],["mode","indeterminate"],[1,"table-responsive",3,"hidden"],["mat-table","","multiTemplateDataRows","",3,"dataSource"],["matColumnDef","campName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","bookable"],["matColumnDef","reason"],["matColumnDef","user"],["matColumnDef","at"],["matColumnDef","expandedDetail"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","bookability-row",3,"bookability-row--expanded","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","bookability-detail-row",3,"bookability-detail-row--collapsed",4,"matRowDef","matRowDefColumns","matRowDefWhen"],[1,"bookability-empty"],[3,"page","length","pageSize","pageIndex","pageSizeOptions"],["mat-header-cell",""],["mat-cell",""],[1,"bookability-camp-cell"],[1,"bookability-caret"],[1,"bookability-id"],[1,"bookability-chip"],[1,"bookability-detail"],[1,"bookability-label"],[1,"bookability-history-row"],[1,"bookability-history-at"],["mat-header-row",""],["mat-row","",1,"bookability-row",3,"click"],["mat-row","",1,"bookability-detail-row"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title"),d(5,"Bookability"),s()(),l(6,"mat-card-content")(7,"div",2)(8,"button",3),w("click",function(){return a.setFilter("all")}),l(9,"span",4),d(10),s(),l(11,"span",5),d(12,"All camps"),s()(),l(13,"button",6),w("click",function(){return a.setFilter("bookable")}),l(14,"span",4),d(15),s(),l(16,"span",5),d(17,"Bookable now"),s()(),l(18,"button",7),w("click",function(){return a.setFilter("not_bookable")}),l(19,"span",4),d(20),s(),l(21,"span",5),d(22,"Were bookable"),s()()(),x(23,L3,1,0,"mat-progress-bar",8),S(24,"async"),l(25,"div",9)(26,"table",10),I(27,11),T(28,N3,2,0,"th",12)(29,V3,9,3,"td",13),R(),I(30,14),T(31,$3,2,0,"th",12)(32,z3,3,5,"td",13),R(),I(33,15),T(34,H3,2,0,"th",12)(35,j3,2,1,"td",13),R(),I(36,16),T(37,U3,2,0,"th",12)(38,W3,2,1,"td",13),R(),I(39,17),T(40,G3,2,0,"th",12)(41,q3,3,4,"td",13),R(),I(42,18),T(43,J3,2,2,"td",13),R(),T(44,Z3,1,0,"tr",19)(45,tD,1,2,"tr",20)(46,eD,1,2,"tr",21),s()(),x(47,iD,2,0,"div",22),l(48,"mat-paginator",23),w("page",function(c){return a.onPage(c)}),s()()()()()),o&2&&(m(8),Y("is-selected",a.filter==="all"),m(2),_(a.totals.bookable+a.totals.notBookable),m(3),Y("is-selected",a.filter==="bookable"),m(2),_(a.totals.bookable),m(3),Y("is-selected",a.filter==="not_bookable"),m(2),_(a.totals.notBookable),m(3),v(P(24,21,a.loading$)?23:-1),m(2),C("hidden",!a.rows.length),m(),C("dataSource",a.rows),m(18),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),C("matRowDefColumns",De(23,A3))("matRowDefWhen",a.isDetailRow),m(),v(a.loaded&&!a.rows.length?47:-1),m(),C("length",a.count)("pageSize",a.pageSize)("pageIndex",a.offset/a.pageSize)("pageSizeOptions",fe(24,F3,a.pageSize)))},dependencies:[J,ot,st,Z,ge,Fe,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,ee,pt,ft],styles:["table[_ngcontent-%COMP%]{width:100%}.bookability-row[_ngcontent-%COMP%]{cursor:pointer}.bookability-row[_ngcontent-%COMP%]:hover{background-color:#00000005}.bookability-row--expanded[_ngcontent-%COMP%], .bookability-row--expanded[_ngcontent-%COMP%]:hover, .bookability-detail-row[_ngcontent-%COMP%]:not(.bookability-detail-row--collapsed){background-color:#eef7f6}.bookability-row--expanded[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{border-bottom-color:transparent;font-weight:500}.bookability-row--expanded[_ngcontent-%COMP%]   .bookability-caret[_ngcontent-%COMP%]{color:#035157}.bookability-camp-cell[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.bookability-caret[_ngcontent-%COMP%]{color:#00000061}.bookability-id[_ngcontent-%COMP%]{color:#0000008a;font-size:11px;margin-top:2px}.bookability-chip[_ngcontent-%COMP%]{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.bookability-chip--green[_ngcontent-%COMP%]{background-color:#e6f4ea;color:#1e7e34}.bookability-chip--red[_ngcontent-%COMP%]{background-color:#fce8e6;color:#c5221f}.bookability-detail-row[_ngcontent-%COMP%]{height:0}.bookability-detail-row--collapsed[_ngcontent-%COMP%]{display:none}.bookability-detail[_ngcontent-%COMP%]{padding:12px 4px}.bookability-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#0009;margin-bottom:8px}.bookability-history-row[_ngcontent-%COMP%]{display:grid;
219grid-template-columns:160px 220px 1fr 1fr;gap:12px;padding:6px 0;font-size:13px;border-bottom:1px solid rgba(0,0,0,.06)}.bookability-history-at[_ngcontent-%COMP%]{color:#0009}.bookability-empty[_ngcontent-%COMP%]{padding:16px 0;color:#0000008a;text-align:center}.bookability-tiles[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.bookability-tile[_ngcontent-%COMP%]{--tile-color: #035157;flex:1 1 160px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.bookability-tile--green[_ngcontent-%COMP%]{--tile-color: #1e7e34}.bookability-tile--red[_ngcontent-%COMP%]{--tile-color: #c5221f}.bookability-tile[_ngcontent-%COMP%]:hover{border-color:var(--tile-color)}.bookability-tile.is-selected[_ngcontent-%COMP%]{border-color:var(--tile-color);box-shadow:inset 0 0 0 1px var(--tile-color)}.bookability-tile-count[_ngcontent-%COMP%]{font-size:24px;font-weight:600;line-height:30px;color:var(--tile-color)}.bookability-tile-label[_ngcontent-%COMP%]{font-size:13px;color:#0009}"]});let t=n;return t})();function nD(t,n){if(t&1){let e=$();l(0,"app-booking-map-overlay",9),S(1,"async"),w("overlayPositionChanged",function(o){F(e);let a=h();return B(a.onBoundsChanged(o))}),s()}if(t&2){let e=h();C("campsite",P(1,2,e.campsite$))("mapOverlay",n)}}function oD(t,n){t&1&&(l(0,"p",8),d(1,"This campsite has no map overlay yet. Upload an image on Manage campsite first."),s())}function aD(t,n){t&1&&M(0,"app-loading")}var ks=(()=>{let n=class n{constructor(i,o,a,r,c,p){this.router=o,this.databaseService=a,this.mapOverlayService=r,this.uiMessagingService=c,this.breadcrumbService=p,this.campsite$=new tt(null),this.mapOverlay$=new tt(null),this.loading$=new tt(!0),this.saving$=new tt(!1),this.missing=!1,this.stagedBounds=null,this.campsiteId=i.snapshot.paramMap.get("campsiteId"),this._load()}ngOnDestroy(){this.breadcrumbService.clear()}get backLink(){return["/admin/edit",this.campsiteId]}onBoundsChanged(i){this.stagedBounds=i}get hasChanges(){return!!this.stagedBounds}save(){let i=this.mapOverlay$.getValue();!i||!this.stagedBounds||this.saving$.getValue()||(this.saving$.next(!0),this.mapOverlayService.updateMapOverlay(this.campsiteId,{bounds:this.stagedBounds,imageUrl:i.imageUrl}).subscribe({next:()=>{this.saving$.next(!1),this.uiMessagingService.openSnackBarSuccess("Map overlay saved."),this.router.navigate(this.backLink)},error:()=>{this.saving$.next(!1),this.uiMessagingService.openSnackBarError("Saving map overlay failed!")}}))}_load(){return ce(this,null,function*(){try{let[i,o]=yield Promise.all([this.databaseService.getSiteDataById(this.campsiteId),new Promise((a,r)=>this.mapOverlayService.getMapOverlay(this.campsiteId).subscribe({next:a,error:r}))]);this.campsite$.next(i),this.mapOverlay$.next(o),this.missing=!o?.id,this.breadcrumbService.set(Vr(i?.name??this.campsiteId),this.backLink)}catch(i){this.missing=!0,this.uiMessagingService.openSnackBarError("Loading map overlay failed!"),console.log("BOOKING MAP EDITOR | LOAD",i)}finally{this.loading$.next(!1)}})}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Gt),O(_e),O(Ar),O(ut),O(Qe))},n.\u0275cmp=L({type:n,selectors:[["app-booking-map-editor"]],decls:18,vars:14,consts:[[1,"editor"],[1,"editor-toolbar"],[1,"editor-hint"],[1,"editor-actions"],["mat-stroked-button","",3,"routerLink"],["mat-flat-button","","type","button","color","primary",3,"click","disabled"],[1,"fas","fa-check"],[3,"campsite","mapOverlay"],[1,"editor-missing"],[3,"overlayPositionChanged","campsite","mapOverlay"]],template:function(o,a){if(o&1&&(l(0,"div",0)(1,"div",1)(2,"span",2),d(3,"Drag the box and its corners to place the map image."),s(),l(4,"div",3)(5,"a",4),d(6,"Cancel"),s(),l(7,"button",5),S(8,"async"),w("click",function(){return a.save()}),M(9,"i",6),d(10," Save "),s()()(),x(11,nD,2,4,"app-booking-map-overlay",7),S(12,"async"),S(13,"async"),rr(14,oD,2,0,"p",8),s(),x(15,aD,1,0,"app-loading"),S(16,"async"),S(17,"async")),o&2){let r;m(5),C("routerLink",a.backLink),m(2),C("disabled",!a.hasChanges||P(8,4,a.saving$)),m(4),v((r=P(12,6,a.mapOverlay$))?11:a.missing&&P(13,8,a.loading$)===!1?14:-1,r),m(4),v(P(16,10,a.loading$)||P(17,12,a.saving$)?15:-1)}},dependencies:[et,Ye,Xo,ae,pt],styles:["[_nghost-%COMP%]{display:block;position:relative;padding:0 1rem}.editor-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
219.editor-hint[_ngcontent-%COMP%]{color:#1a1f1a99;font-size:14px}.editor-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}app-booking-map-overlay[_ngcontent-%COMP%]{height:calc(100vh - 170px);min-height:400px}"]});let t=n;return t})();function rD(t,n){t&1&&(l(0,"div",7)(1,"div",8),M(2,"mat-progress-bar",14),s()())}var sD="admin-bookings.csv",lD="UNKNOWN",cD=[{key:"0",min:0,max:0},{key:"1",min:1,max:1},{key:"2",min:2,max:2},{key:"3-5",min:3,max:5},{key:"6-9",min:6,max:9},{key:"10-15",min:10,max:15},{key:"16-20",min:16,max:20},{key:"21+",min:21,max:null}],Os=(()=>{let n=class n{constructor(i,o,a){this.adminBookingsService=i,this.fileExportService=o,this.uiMessagingService=a,this.loading$=new tt(!1),this.totalIncome$=new tt(null),this.totalNumberOfBookings$=new tt(0),this.totalNumberOfCancellations$=new tt(0),this.orderOrigins$=new tt(null),this.paymentPlatforms$=new tt(null),this.paymentMethods$=new tt(null),this.paidCurrencies$=new tt(null),this.paymentProviders$=new tt(null),this.viaAffiliates$=new tt(null),this.dropIns$=new tt(null),this.lengthOfStay$=new tt(null),this.rows$=new tt(null),this.totalCount$=new tt(0),this.pagination={limit:100,offset:0,sortBy:"paidAt",sortDirection:"desc"},this.startDate=new Date,this.endDate=new Date}ngOnInit(){this.startDate.setDate(new Date().getDate()-7)}getData(){this.pagination=Et(nt({},this.pagination),{offset:0}),this.loading$.next(!0),Pi({stats:this.adminBookingsService.getStats(this.startDate,this.endDate),page:this.adminBookingsService.getPage(this.startDate,this.endDate,this.pagination)}).pipe(It(()=>this.loading$.next(!1))).subscribe({next:({stats:i,page:o})=>{this._fillStats(i),this.rows$.next(o.data),this.totalCount$.next(o.count)},error:i=>this._handleError(i)})}handlePagination(i){this.pagination=nt(nt({},this.pagination),i),this.loading$.next(!0),this.adminBookingsService.getPage(this.startDate,this.endDate,this.pagination).pipe(It(()=>this.loading$.next(!1))).subscribe({next:o=>{this.rows$.next(o.data),this.totalCount$.next(o.count)},error:o=>this._handleError(o)})}exportCsv(){this.loading$.next(!0),this.adminBookingsService.exportCsv(this.startDate,this.endDate).pipe(It(()=>this.loading$.next(!1))).subscribe({next:i=>this.fileExportService.saveBlob(i,sD),error:i=>this._handleError(i)})}_fillStats(i){this.totalIncome$.next(i.totalIncomeByCurrency),this.totalNumberOfBookings$.next(i.totalBookings),this.totalNumberOfCancellations$.next(i.totalCancellations),this.orderOrigins$.next(this._toDataTable(i.orderOrigin,"Order Origins")),this.paymentPlatforms$.next(this._toDataTable(i.userPlatform,"Payment Platforms")),this.paymentMethods$.next(this._toDataTable(i.paymentMethod,"Payment Methods")),this.paidCurrencies$.next(this._toDataTable(i.currency,"Paid Currencies")),this.paymentProviders$.next(this._toDataTable(i.paymentProvider,"Payment Providers")),this.viaAffiliates$.next(this._toDataTable(this._omitUnknown(i.viaAffiliate),"Inbound affiliate split")),this.dropIns$.next(this._toDataTable(i.dropIns,"Drop-ins")),this.lengthOfStay$.next(this._toDataTable(this._bucketLengthOfStay(i.lengthOfStay),"Length of Stay"))}_omitUnknown(i){return Object.fromEntries(Object.entries(i??{}).filter(([o])=>o!==lD))}_bucketLengthOfStay(i){let o={};for(let{key:a,min:r,max:c}of cD){let p=Object.entries(i??{}).filter(([u])=>{let f=parseInt(u,10);return f>=r&&(c===null||f<=c)}).reduce((u,[,f])=>u+f,0);p>0&&(o[a]=p)}return o}_toDataTable(i,o){return{title:o,data:Object.entries(i??{}).map(([a,r])=>({key:a,value:r}))}}_handleError(i){this.uiMessagingService.openSnackBarError(this.adminBookingsService.errorMessageFor(i))}};n.\u0275fac=function(o){return new(o||n)(O(dm),O(uo),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-bookings"]],decls:50,vars:49,consts:[["picker",""],[3,"focus","click","rangePicker"],["matStartDate","",1,"date-input",3,"ngModelChange","ngModel","readonly"],["matEndDate","",1,"date-input",3,"ngModelChange","ngModel","readonly"],["matSuffix","",3,"for"],["mat-flat-button","","type","submit","color","primary",3,"click"],["mat-stroked-button","","type","button",3,"click","disabled"],[1,"row"],[1,"column",2,"width","100%"],[3,"totalIncome","totalNumberOfBookings"],[1,"row","statistics-row"],[1,"column"],[3,"dataTable"],[3,"paginationChanged","bookings","totalCount","pagination"],["mode","indeterminate"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"mat-form-field")(2,"mat-date-range-input",1),w("focus",function(){F(r);let p=lt(7);return B(p.open())})("click",function(){F(r);let p=lt(7);return B(p.open())}
219),l(3,"input",2),Ot("ngModelChange",function(p){return F(r),kt(a.startDate,p)||(a.startDate=p),B(p)}),s(),l(4,"input",3),Ot("ngModelChange",function(p){return F(r),kt(a.endDate,p)||(a.endDate=p),B(p)}),s()(),M(5,"mat-datepicker-toggle",4)(6,"mat-date-range-picker",null,0),s(),l(8,"button",5),w("click",function(){return a.getData()}),d(9,"Show bookings"),s(),l(10,"button",6),S(11,"async"),w("click",function(){return a.exportCsv()}),d(12,"Export bookings"),s()(),x(13,rD,3,0,"div",7),S(14,"async"),l(15,"div",7)(16,"div",8),M(17,"app-total-income",9),S(18,"async"),S(19,"async"),s()(),l(20,"div",10)(21,"div",11),M(22,"app-simple-donut-chart",12),S(23,"async"),s(),l(24,"div",11),M(25,"app-simple-donut-chart",12),S(26,"async"),s(),l(27,"div",11),M(28,"app-simple-donut-chart",12),S(29,"async"),s(),l(30,"div",11),M(31,"app-simple-donut-chart",12),S(32,"async"),s(),l(33,"div",11),M(34,"app-simple-donut-chart",12),S(35,"async"),s(),l(36,"div",11),M(37,"app-simple-donut-chart",12),S(38,"async"),s(),l(39,"div",11),M(40,"app-simple-donut-chart",12),S(41,"async"),s(),l(42,"div",11),M(43,"app-simple-donut-chart",12),S(44,"async"),s()(),l(45,"div",7)(46,"div",8)(47,"app-bookings-table",13),S(48,"async"),S(49,"async"),w("paginationChanged",function(p){return a.handlePagination(p)}),s()()()}if(o&2){let r=lt(7);m(2),C("rangePicker",r),m(),Pt("ngModel",a.startDate),C("readonly",!0),m(),Pt("ngModel",a.endDate),C("readonly",!0),m(),C("for",r),m(5),C("disabled",P(11,21,a.loading$)),m(3),v(P(14,23,a.loading$)?13:-1),m(4),C("totalIncome",P(18,25,a.totalIncome$))("totalNumberOfBookings",P(19,27,a.totalNumberOfBookings$)),m(5),C("dataTable",P(23,29,a.orderOrigins$)),m(3),C("dataTable",P(26,31,a.paymentPlatforms$)),m(3),C("dataTable",P(29,33,a.paymentMethods$)),m(3),C("dataTable",P(32,35,a.paidCurrencies$)),m(3),C("dataTable",P(35,37,a.paymentProviders$)),m(3),C("dataTable",P(38,39,a.viaAffiliates$)),m(3),C("dataTable",P(41,41,a.dropIns$)),m(3),C("dataTable",P(44,43,a.lengthOfStay$)),m(4),C("bookings",P(48,45,a.rows$))("totalCount",P(49,47,a.totalCount$))("pagination",a.pagination)}},dependencies:[pe,ht,io,no,dt,jt,ct,he,oo,li,Pe,ao,et,ge,Zo,Ha,Jo,pt],styles:[".statistics-row[_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]{width:25%}@media(max-width:75em){.statistics-row[_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]{width:50%}}@media(max-width:45em){.statistics-row[_ngcontent-%COMP%]   .column[_ngcontent-%COMP%]{width:100%}}"]});let t=n;return t})();function dD(t,n){if(t&1&&(M(0,"app-campio-staff",2),S(1,"async"),S(2,"async"),S(3,"async")),t&2){let e=h();C("staff",P(1,3,e.staff$))("loading",P(2,5,e.staffLoading$))("errorMessage",P(3,7,e.staffErrorMessage$))}}var Is=(()=>{let n=class n{constructor(i,o){this.adminUsersService=i,this.authService=o,this.staff$=new tt([]),this.staffLoading$=new tt(!1),this.staffErrorMessage$=new tt(null),this.canViewStaff=!1}ngOnInit(){this.canViewStaff=this.authService.isUserSuperAdmin(),this.canViewStaff&&this._getStaff()}ngOnDestroy(){this._staffSub?.unsubscribe()}_getStaff(){this.staffLoading$.next(!0),this.staffErrorMessage$.next(null),this._staffSub=this.adminUsersService.getStaff().pipe(It(()=>this.staffLoading$.next(!1))).subscribe({next:i=>this.staff$.next(i),error:i=>this.staffErrorMessage$.next(this.adminUsersService.errorMessageFor(i))})}};n.\u0275fac=function(o){return new(o||n)(O(Lr),O(po))},n.\u0275cmp=L({type:n,selectors:[["app-admin-campio-staff-page"]],decls:3,vars:1,consts:[[1,"row"],[1,"column",2,"width","100%"],[3,"staff","loading","errorMessage"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1),x(2,dD,4,9,"app-campio-staff",2),s()()),o&2&&(m(2),v(a.canViewStaff?2:-1))},dependencies:[Ka,pt],encapsulation:2});let t=n;return t})();function mD(t,n){if(t&1&&(Me(0,"span"),d(1),we()),t&2){let e=h();Wt(e.chipClass),m(),_(e.label)}}function pD(t,n){t&1&&(Me(0,"span",1),d(1,"\u2014"),we())}var uD={CULTSWITCH:"cm-chip--cultswitch",CAMPERCONTACT:"cm-chip--campercontact",GOOGLE_HOTELS:"cm-chip--google-hotels"},Ao=(()=>{let n=class n{constructor(){this.channel=null}get label(){return this.channel?rn[this.channel]:"\u2014"}get chipClass(){return this.channel?`cm-chip ${uD[this.channel]}`:"cm-chip cm-chip--muted"}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-channel-chip"]],inputs:{channel:"channel"},decls:2,vars:1,consts:[[3,"class"],[1,"cm-chip","cm-chip--muted"]],template:function(o,a){o&1&&x(0,mD,2,3,"span",0)(1,pD,2,0,"span",1),o&2&&v(a.channel?0:1)},styles:[".cm-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}.cm-chip--cultswitch[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.cm-chip--campercontact[_ngcontent-%COMP%]{background:#ecf7ef;border-color:#c7e6d0;color:#1f6b3a}.cm-chip--google-hotels[_ngcontent-%COMP%]{background:#fdf3e2;border-color:#efdcb4;color:#8a5b12}.cm-chip--muted[_ngcontent-%COMP%]{background:#f1f3f2;border-color:#e0e3e1;color:#8a8b8e}"]});let t=n;return t})();var fD=t=>["/admin/channel-manager/connections",t],hD=t=>["/dashboard/order",t],gD=t=>({campsiteId:t});function _D(t,n){t&1&&M(0,"div",19)}function CD(t,n){if(t&1&&(l(0,"div",0),z(1,_D,1,0,"div",19,U),s()),t&2){let e=h();m(),H(e.skeletonRows)}}function bD(t,n){t&1&&(l(0,"th",20),d(1,"Received at"),s())}function xD(t,n){if(t&1&&(l(0,"td",21),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(mt(2,1,e.createdAt,!0))}}function vD(t,n){t&1&&(l(0,"th",20),d(1,"Channel"),s())}
219function yD(t,n){if(t&1&&(l(0,"td",21),M(1,"app-channel-chip",22),s()),t&2){let e=n.$implicit;m(),C("channel",e.channel)}}function SD(t,n){t&1&&(l(0,"th",20),d(1,"External ID"),s())}function MD(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),_(e.externalId)}}function wD(t,n){t&1&&(l(0,"th",20),d(1,"Campsite"),s())}function ED(t,n){if(t&1&&(l(0,"td",21)(1,"a",23),d(2),s()()),t&2){let e=n.$implicit;m(),C("routerLink",fe(2,fD,e.campsiteId)),m(),_(e.campsiteName||e.campsiteId)}}function TD(t,n){t&1&&(l(0,"th",20),d(1,"Status"),s())}function DD(t,n){if(t&1&&(l(0,"td",21)(1,"span",24),d(2),s()()),t&2){let e=n.$implicit;m(),Y("cbt-status--cancelled",e.cancelled),m(),A(" ",e.cancelled?"Cancelled":"Active"," ")}}function PD(t,n){t&1&&(l(0,"th",20),d(1,"Guest"),s())}function kD(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),_(e.guestName)}}function OD(t,n){t&1&&(l(0,"th",20),d(1,"Arrival"),s())}function ID(t,n){if(t&1&&(l(0,"td",21),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.startDate))}}function RD(t,n){t&1&&(l(0,"th",20),d(1,"Departure"),s())}function AD(t,n){if(t&1&&(l(0,"td",21),d(1),S(2,"adminDate"),s()),t&2){let e=n.$implicit;m(),_(P(2,1,e.endDate))}}function FD(t,n){t&1&&(l(0,"th",20),d(1,"Unit"),s())}function BD(t,n){if(t&1&&(l(0,"td",21)(1,"div"),d(2),s(),l(3,"div",25),d(4),s()()),t&2){let e=n.$implicit;m(2),_(e.unitName),m(2),_(e.accommodationName)}}function LD(t,n){t&1&&(l(0,"th",20),d(1,"Internal ID"),s())}function ND(t,n){if(t&1&&(l(0,"td",21)(1,"a",26),d(2),s()()),t&2){let e=n.$implicit;m(),C("routerLink",fe(3,hD,e.orderId))("queryParams",fe(5,gD,e.campsiteId)),m(),_(e.reference)}}function VD(t,n){t&1&&M(0,"tr",27)}function $D(t,n){t&1&&M(0,"tr",28)}function zD(t,n){if(t&1&&(l(0,"div",17)(1,"h3"),d(2),s(),l(3,"p"),d(4),s()()),t&2){let e=h();m(2),_(e.emptyTitle),m(2),_(e.emptyText)}}var Pu=[20,50,100],Rs=(()=>{let n=class n{constructor(){this.rows=[],this.loading=!1,this.showCampsite=!0,this.emptyTitle="",this.emptyText="",this.pageSizes=Pu,this.skeletonRows=[1,2,3,4,5,6],this.pageIndex=0,this.pageSize=Pu[0],this.pagedRows=[]}get displayedColumns(){let i=["receivedAt","channel","externalId"];return this.showCampsite&&i.push("campsite"),i.push("status","guest","arrival","departure","unit","internalId"),i}ngOnChanges(i){i.rows&&(this.pageIndex=0,this._applyPage())}onPage(i){this.pageIndex=i.pageIndex,this.pageSize=i.pageSize,this._applyPage()}_applyPage(){let i=this.pageIndex*this.pageSize;this.pagedRows=this.rows.slice(i,i+this.pageSize)}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=L({type:n,selectors:[["app-channel-bookings-table"]],inputs:{rows:"rows",loading:"loading",showCampsite:"showCampsite",emptyTitle:"emptyTitle",emptyText:"emptyText"},features:[Nt],decls:37,vars:10,consts:[[1,"cbt-skeleton"],[1,"table-responsive",3,"hidden"],["mat-table","",3,"dataSource"],["matColumnDef","receivedAt"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","channel"],["matColumnDef","externalId"],["matColumnDef","campsite"],["matColumnDef","status"],["matColumnDef","guest"],["matColumnDef","arrival"],["matColumnDef","departure"],["matColumnDef","unit"],["matColumnDef","internalId"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"cbt-empty"],[3,"page","length","pageSize","pageIndex","pageSizeOptions"],[1,"cbt-skeleton-row"],["mat-header-cell",""],["mat-cell",""],[3,"channel"],[3,"routerLink"],[1,"cbt-status"],[1,"cbt-muted"],[3,"routerLink","queryParams"],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(x(0,CD,3,0,"div",0),l(1,"div",1)(2,"table",2),I(3,3),T(4,bD,2,0,"th",4)(5,xD,3,4,"td",5),R(),I(6,6),T(7,vD,2,0,"th",4)(8,yD,2,1,"td",5),R(),I(9,7),T(10,SD,2,0,"th",4)(11,MD,2,1,"td",5),R(),I(12,8),T(13,wD,2,0,"th",4)(14,ED,3,4,"td",5),R(),I(15,9),T(16,TD,2,0,"th",4)(17,DD,3,3,"td",5),R(),I(18,10),T(19,PD,2,0,"th",4)(20,kD,2,1,"td",5),R(),I(21,11),T(22,OD,2,0,"th",4)(23,ID,3,3,"td",5),R(),I(24,12),T(25,RD,2,0,"th",4)(26,AD,3,3,"td",5),R(),I(27,13),T(28,FD,2,0,"th",4)(29,BD,5,2,"td",5),R(),I(30,14),T(31,LD,2,0,"th",4)(32,ND,3,7,"td",5),R(),T(33,VD,1,0,"tr",15)(34,$D,1,0,"tr",16),s()(),x(35,zD,5,2,"div",17),l(36,"mat-paginator",18),w("page",function(c){return a.onPage(c)}),s()),o&2&&(v(a.loading?0:-1),m(),C("hidden",a.loading||!a.pagedRows.length),m(),C("dataSource",a.pagedRows),m(31),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(!a.loading&&!a.pagedRows.length?35:-1),m(),C("length",a.rows.length)("pageSize",a.pageSize)("pageIndex",a.pageIndex)("pageSizeOptions",a.pageSizes))},dependencies:[Ye,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,ee,Ao,ft],styles:["table[_ngcontent-%COMP%]{width:100%}.cbt-skeleton[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.cbt-skeleton-row[_ngcontent-%COMP%]{height:40px;border-radius:4px;background:#f1f3f2}.cbt-status[_ngcontent-%COMP%]{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap;background:#e6f4ea;color:#1e7e34}.cbt-status--cancelled[_ngcontent-%COMP%]{background:#fce8e6;color:#c5221f}.cbt-muted[_ngcontent-%COMP%]{color:#0000008a;font-size:11px;margin-top:2px}.cbt-empty[_ngcontent-%COMP%]{padding:24px 0;text-align:center;color:#0000008a}.cbt-empty[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0 0 4px;font-size:14px;font-weight:600}.cbt-empty[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;font-size:13px}"]});let t=n;return t})();var HD=(t,n)=>n.id;function jD(t,n){if(t&1&&(l(0,"mat-option",5),d(1),s()),t&2){let e=n.$implicit;C("value",e.id),m(),_(e.name)}
219}function UD(t,n){if(t&1&&(l(0,"mat-option",5),d(1),s()),t&2){let e=n.$implicit,i=h();C("value",e),m(),_(i.channelLabels[e])}}function WD(t,n){if(t&1){let e=$();l(0,"mat-form-field")(1,"mat-label"),d(2,"From"),s(),l(3,"input",17),Ot("ngModelChange",function(o){F(e);let a=h();return kt(a.customFrom,o)||(a.customFrom=o),B(o)}),w("dateChange",function(){F(e);let o=h();return B(o.applyCustomRange())})("focus",function(){F(e);let o=lt(6);return B(o.open())})("click",function(){F(e);let o=lt(6);return B(o.open())}),s(),M(4,"mat-datepicker-toggle",18)(5,"mat-datepicker",null,0),s(),l(7,"mat-form-field")(8,"mat-label"),d(9,"To"),s(),l(10,"input",17),Ot("ngModelChange",function(o){F(e);let a=h();return kt(a.customTo,o)||(a.customTo=o),B(o)}),w("dateChange",function(){F(e);let o=h();return B(o.applyCustomRange())})("focus",function(){F(e);let o=lt(13);return B(o.open())})("click",function(){F(e);let o=lt(13);return B(o.open())}),s(),M(11,"mat-datepicker-toggle",18)(12,"mat-datepicker",null,1),s()}if(t&2){let e=lt(6),i=lt(13),o=h();m(3),C("matDatepicker",e),Pt("ngModel",o.customFrom),m(),C("for",e),m(6),C("matDatepicker",i),Pt("ngModel",o.customTo),m(),C("for",i)}}function GD(t,n){t&1&&(l(0,"div",15),d(1,"Showing the newest 1,000 \u2014 narrow the date range."),s())}var As=(()=>{let n=class n{constructor(i,o){this.channelManagerAdminService=i,this.uiMessagingService=o,this.channelOptions=["CULTSWITCH","CAMPERCONTACT","GOOGLE_HOTELS"],this.channelLabels=rn,this.loading$=new tt(!1),this.truncated=!1,this.preset="7d",this.customFrom=null,this.customTo=null,this.query="",this.campsiteId=null,this.channel=null,this.status=null,this.filteredRows=[],this._allRows=[]}ngOnInit(){this._load()}get campsiteOptions(){let i=new Map;for(let o of this._allRows)i.has(o.campsiteId)||i.set(o.campsiteId,o.campsiteName||o.campsiteId);return[...i.entries()].map(([o,a])=>({id:o,name:a}))}get emptyTitle(){return this._allRows.length?"No matching bookings":"No channel bookings yet"}get emptyText(){return this._allRows.length?"No channel bookings match the current filters.":"No channel bookings received yet."}onPresetChange(){this.preset!=="custom"&&this._load()}applyCustomRange(){!this.customFrom||!this.customTo||this._load()}onFilterChange(){this._applyFilter()}clearFilters(){this.query="",this.campsiteId=null,this.channel=null,this.status=null,this._applyFilter()}_load(){let i=this.preset==="custom"&&this.customFrom&&this.customTo?{from:this.customFrom,to:this.customTo}:void 0,o=zm(this.preset,new Date,i);this.loading$.next(!0),this.channelManagerAdminService.bookings(o).pipe(It(()=>this.loading$.next(!1))).subscribe({next:a=>{this._allRows=a.data,this.truncated=a.truncated,this._applyFilter()},error:a=>this.uiMessagingService.openSnackBarError(this.channelManagerAdminService.errorMessageFor(a))})}_applyFilter(){this.filteredRows=$m(this._allRows,{query:this.query,campsiteId:this.campsiteId??void 0,channel:this.channel??void 0,status:this.status??void 0})}};n.\u0275fac=function(o){return new(o||n)(O(an),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-channel-manager-bookings"]],decls:53,vars:17,consts:[["fromPicker",""],["toPicker",""],[1,"admin-subnav-fields"],["matInput","","placeholder","Guest, external or internal ID",3,"ngModelChange","ngModel"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["value","active"],["value","cancelled"],["value","7d"],["value","30d"],["value","custom"],[1,"admin-subnav-actions"],["mat-stroked-button","","type","button",3,"click"],[1,"row"],[1,"column",2,"width","100%"],[1,"cm-truncated"],[3,"rows","loading","showCampsite","emptyTitle","emptyText"],["matInput","","readonly","",3,"ngModelChange","dateChange","focus","click","matDatepicker","ngModel"],["matSuffix","",3,"for"]],template:function(o,a){o&1&&(l(0,"app-admin-subnav")(1,"div",2)(2,"mat-form-field")(3,"mat-label"),d(4,"Search"),s(),l(5,"input",3),Ot("ngModelChange",function(c){return kt(a.query,c)||(a.query=c),c}),w("ngModelChange",function(){return a.onFilterChange()}),s()(),l(6,"mat-form-field")(7,"mat-label"),d(8,"Campsite"),s(),l(9,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.campsiteId,c)||(a.campsiteId=c),c}),w("selectionChange",function(){return a.onFilterChange()}),l(10,"mat-option",5),d(11,"All campsites"),s(),z(12,jD,2,2,"mat-option",5,HD),s()(),l(14,"mat-form-field")(15,"mat-label"),d(16,"Channel"),s(),l(17,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.channel,c)||(a.channel=c),c}),w("selectionChange",function(){return a.onFilterChange()}),l(18,"mat-option",5),d(19,"All channels"),s(),z(20,UD,2,2,"mat-option",5,U),s()(),l(22,"mat-form-field")(23,"mat-label"),d(24,"Status"),s(),l(25,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.status,c)||(a.status=c),c}),w("selectionChange",function(){return a.onFilterChange()}),l(26,"mat-option",5),d(27,"All statuses"),s(),l(28,"mat-option",6),d(29,"Active"),s(),l(30,"mat-option",7),d(31,"Cancelled"),s()()(),l(32,"mat-form-field")(33,"mat-label"),d(34,"Received"),s(),l(35,"mat-select",4),Ot("ngModelChange",function(c){return kt(a.preset,c)||(a.preset=c),c}),w("selectionChange",function(){return a.onPresetChange()}),l(36,"mat-option",8),d(37,"Last 7 days"),s(),l(38,"mat-option",9),d(39,"Last 30 days"),s(),l(40,"mat-option",10),d(41,"Custom range"),s()()(),x(42,WD,14,6),s(),l(43,"div",11)(44,"button",12),w("click",function(){return a.clearFilters()}),d(45,"Clear filters"),s()()(),l(46,"div",13)(47,"div",14)(48,"mat-card")(49,"mat-card-content"),x(50,GD,2,0,"div",15),M(51,"app-ch
219annel-bookings-table",16),S(52,"async"),s()()()()),o&2&&(m(5),Pt("ngModel",a.query),m(4),Pt("ngModel",a.campsiteId),m(),C("value",null),m(2),H(a.campsiteOptions),m(5),Pt("ngModel",a.channel),m(),C("value",null),m(2),H(a.channelOptions),m(5),Pt("ngModel",a.status),m(),C("value",null),m(9),Pt("ngModel",a.preset),m(7),v(a.preset==="custom"?42:-1),m(8),v(a.truncated?50:-1),m(),C("rows",a.filteredRows)("loading",P(52,15,a.loading$))("showCampsite",!0)("emptyTitle",a.emptyTitle)("emptyText",a.emptyText))},dependencies:[dt,jt,ct,he,pe,Rs,et,J,Z,ht,Ft,Jt,Vt,Rt,eo,li,Pe,to,pt],styles:[".cm-truncated[_ngcontent-%COMP%]{padding:8px 12px;margin-bottom:12px;background:#fdf3e2;border:1px solid #efdcb4;border-radius:6px;color:#8a5b12;font-size:12.5px}"]});let t=n;return t})();var Wc=(t,n)=>n.channel;function qD(t,n){t&1&&M(0,"mat-progress-bar",2)}function YD(t,n){if(t&1&&M(0,"app-channel-chip",5),t&2){let e=n.$implicit;C("channel",e.channel)}}function QD(t,n){if(t&1&&(l(0,"span",19),d(1),S(2,"date"),s()),t&2){let e=h(2).$implicit;m(),A("since ",P(2,1,e.statusSince))}}function KD(t,n){if(t&1&&(l(0,"div"),d(1),x(2,QD,3,3,"span",19),s()),t&2){let e=h().$implicit;m(),A(" Status: ",e.status," "),m(),v(e.status==="PENDING"?2:-1)}}function XD(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-content")(2,"div",18),M(3,"app-channel-chip",5),l(4,"span"),d(5),s()(),l(6,"div")(7,"strong"),d(8),s(),d(9," of "),l(10,"strong"),d(11),s(),d(12," "),l(13,"span",19),d(14,"accommodations mapped"),s()(),x(15,KD,3,2,"div"),s()()),t&2){let e=n.$implicit,i=h(2);m(3),C("channel",e.channel),m(2),A("External ID: ",e.propertyExternalId??"\u2014"),m(3),_(e.mappedAccommodationCount),m(3),_(i.campsite.accommodations.length),m(4),v(e.status?15:-1)}}function JD(t,n){t&1&&(l(0,"th",20),d(1,"Name"),s())}function ZD(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),_(e.name)}}function tP(t,n){t&1&&(l(0,"th",20),d(1,"Type"),s())}function eP(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit;m(),_(e.campType)}}function iP(t,n){if(t&1&&(l(0,"th",20),d(1),s()),t&2){let e=h().$implicit,i=h(2);m(),A("",i.channelLabels[e.channel]," ID")}}function nP(t,n){if(t&1&&(l(0,"td",21),d(1),s()),t&2){let e=n.$implicit,i=h().$implicit;m(),_(e.externalIds[i.channel]??"\u2014")}}function oP(t,n){if(t&1&&(I(0,14),T(1,iP,2,1,"th",11)(2,nP,2,1,"td",12),R()),t&2){let e=n.$implicit;C("matColumnDef",e.channel)}}function aP(t,n){t&1&&M(0,"tr",22)}function rP(t,n){t&1&&M(0,"tr",23)}function sP(t,n){if(t&1&&(l(0,"div",3)(1,"div",4)(2,"h1"),d(3),s(),z(4,YD,1,1,"app-channel-chip",5,Wc),s(),l(6,"div",6),d(7),s()(),l(8,"div",7),z(9,XD,16,5,"mat-card",null,Wc),s(),l(11,"mat-card")(12,"mat-card-header")(13,"mat-card-title"),d(14,"Mappings"),s()(),l(15,"mat-card-content")(16,"div",8)(17,"table",9),I(18,10),T(19,JD,2,0,"th",11)(20,ZD,2,1,"td",12),R(),I(21,13),T(22,tP,2,0,"th",11)(23,eP,2,1,"td",12),R(),z(24,oP,3,1,"ng-container",14,Wc),T(26,aP,1,0,"tr",15)(27,rP,1,0,"tr",16),s()()()(),l(28,"mat-card")(29,"mat-card-header")(30,"mat-card-title"),d(31,"Bookings"),s()(),l(32,"mat-card-content"),M(33,"app-channel-bookings-table",17),S(34,"async"),s()()),t&2){let e=h();m(3),_(e.campsite.campsiteName||e.campsite.campsiteId),m(),H(e.campsite.channels),m(3),rt(" ",e.campsite.campsiteId," \xB7 ",e.campsite.accommodations.length," accommodation(s) "),m(2),H(e.campsite.channels),m(8),C("dataSource",e.campsite.accommodations),m(7),H(e.campsite.channels),m(2),C("matHeaderRowDef",e.mappingColumns),m(),C("matRowDefColumns",e.mappingColumns),m(6),C("rows",e.bookings)("loading",P(34,9,e.loading$))("showCampsite",!1)}}var Fs=(()=>{let n=class n{constructor(i,o,a,r,c){this.route=i,this.router=o,this.channelManagerAdminService=a,this.breadcrumbService=r,this.uiMessagingService=c,this.channelLabels=rn,this.loading$=new tt(!1),this.campsite=null,this.bookings=[]}get mappingColumns(){return["name","type",...this.campsite?.channels.map(i=>i.channel)??[]]}ngOnInit(){let i=this.route.snapshot.params.campsiteId;this.loading$.next(!0),Pi({campsite:this.channelManagerAdminService.campsite(i),bookings:this.channelManagerAdminService.bookings({campsiteId:i})}).pipe(It(()=>this.loading$.next(!1))).subscribe({next:({campsite:o,bookings:a})=>{this.campsite=o,this.bookings=a.data,this.breadcrumbService.set(o.campsiteName||o.campsiteId)},error:o=>{this.uiMessagingService.openSnackBarError(this.channelManagerAdminService.errorMessageFor(o)),o?.status===404&&this.router.navigate(["/admin/channel-manager/connections"])}})}ngOnDestroy(){this.breadcrumbService.clear()}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Gt),O(an),O(Qe),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-channel-manager-connection-detail
219s"]],decls:5,vars:4,consts:[[1,"row"],[1,"column",2,"width","100%"],["mode","indeterminate"],[1,"cm-header"],[1,"cm-header-title"],[3,"channel"],[1,"cm-header-meta"],[1,"cm-channel-cards"],[1,"table-responsive"],["mat-table","",3,"dataSource"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","type"],[3,"matColumnDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["emptyTitle","No channel bookings yet","emptyText","No channel bookings received yet for this campsite.",3,"rows","loading","showCampsite"],[1,"cm-channel-card-head"],[1,"cm-muted"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1),x(2,qD,1,0,"mat-progress-bar",2),S(3,"async"),x(4,sP,35,11),s()()),o&2&&(m(2),v(P(3,2,a.loading$)?2:-1),m(2),v(a.campsite?4:-1))},dependencies:[ge,J,ot,st,Z,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,Ao,Rs,pt,qe],styles:["table[_ngcontent-%COMP%]{width:100%}mat-card[_ngcontent-%COMP%]{margin-bottom:16px}.cm-header[_ngcontent-%COMP%]{margin-bottom:16px}.cm-header-title[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.cm-header-title[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0;font-size:20px;font-weight:700}.cm-header-meta[_ngcontent-%COMP%]{margin-top:4px;color:#0009;font-size:13px}.cm-channel-cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,320px);gap:12px;margin-bottom:16px}.cm-channel-card-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cm-muted[_ngcontent-%COMP%]{color:#0000008a}"]});let t=n;return t})();var lP=()=>[1,2,3,4,5,6],cP=(t,n)=>({campsiteId:t,campsiteName:n}),dP=t=>["/admin/channel-manager/connections",t];function mP(t,n){if(t&1&&(l(0,"mat-option",3),d(1),s()),t&2){let e=n.$implicit,i=h();C("value",e),m(),_(i.channelLabels[e])}}function pP(t,n){t&1&&M(0,"div",21)}function uP(t,n){t&1&&(l(0,"div",8),z(1,pP,1,0,"div",21,U),s()),t&2&&(m(),H(De(0,lP)))}function fP(t,n){if(t&1){let e=$();l(0,"th",22),w("click",function(){F(e);let o=h();return B(o.toggleSort())}),l(1,"span",23),d(2," Campsite "),l(3,"mat-icon",24),d(4),s()()()}if(t&2){let e=h();m(4),_(e.sortDir==="asc"?"arrow_upward":"arrow_downward")}}function hP(t,n){if(t&1&&(l(0,"td",25)(1,"strong"),d(2),s()()),t&2){let e=n.$implicit;m(2),_(e.campsiteName||e.campsiteId)}}function gP(t,n){t&1&&(l(0,"th",26),d(1,"Channels"),s())}
219function _P(t,n){if(t&1&&M(0,"app-channel-chip",28),t&2){let e=n.$implicit;C("channel",e)}}function CP(t,n){if(t&1&&(l(0,"td",25)(1,"div",27),z(2,_P,1,1,"app-channel-chip",28,U),s()()),t&2){let e=n.$implicit;m(2),H(e.channels)}}function bP(t,n){t&1&&M(0,"th",26)}function xP(t,n){if(t&1&&(l(0,"td",25)(1,"a",29),w("click",function(i){return i.stopPropagation()}),d(2,"View in Distribution \u2192"),s()()),t&2){let e=n.$implicit;m(),C("queryParams",ad(1,cP,e.campsiteId,e.campsiteName||null))}}function vP(t,n){t&1&&M(0,"tr",30)}function yP(t,n){if(t&1&&M(0,"tr",31),t&2){let e=n.$implicit;C("routerLink",fe(1,dP,e.campsiteId))}}function SP(t,n){if(t&1&&(l(0,"div",19),d(1),s()),t&2){let e=h();m(),_(e.emptyMessage)}}var Bs=(()=>{let n=class n{constructor(i,o){this.channelManagerAdminService=i,this.uiMessagingService=o,this.pageSizes=bl,this.channelOptions=["CULTSWITCH","CAMPERCONTACT","GOOGLE_HOTELS"],this.channelLabels=rn,this.displayedColumns=["campsiteName","channels","distribution"],this.loading$=new tt(!1),this.loaded=!1,this.query="",this.channel=null,this.sortDir="asc",this.pageIndex=0,this.pageSize=bl[0],this.filteredRows=[],this.pagedRows=[],this._allRows=[]}ngOnInit(){this.loading$.next(!0),this.channelManagerAdminService.connections().pipe(It(()=>this.loading$.next(!1))).subscribe({next:i=>{this._allRows=i.data,this.loaded=!0,this._applyFilter()},error:i=>this.uiMessagingService.openSnackBarError(this.channelManagerAdminService.errorMessageFor(i))})}get emptyMessage(){let i=`No campsites match "${this.query}"`;return this.channel?`${i} on ${this.channelLabels[this.channel]}.`:`${i}.`}onFilterChange(){this.pageIndex=0,this._applyFilter()}toggleSort(){this.sortDir=this.sortDir==="asc"?"desc":"asc",this._applyFilter()}onPage(i){this.pageIndex=i.pageIndex,this.pageSize=i.pageSize,this._applyPage()}clearFilters(){this.query="",this.channel=null,this.pageIndex=0,this._applyFilter()}_applyFilter(){let i=Vm(this._allRows,this.query,this.channel);this.filteredRows=this.sortDir==="asc"?i:[...i].reverse(),this._applyPage()}_applyPage(){let i=this.pageIndex*this.pageSize;this.pagedRows=this.filteredRows.slice(i,i+this.pageSize)}};n.\u0275fac=function(o){return new(o||n)(O(an),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-channel-manager-connections"]],decls:40,vars:19,consts:[[1,"admin-subnav-fields"],["matInput","","placeholder","Campsite name",3,"ngModelChange","ngModel"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],[1,"admin-subnav-actions"],["mat-stroked-button","","type","button",3,"click"],[1,"row"],[1,"column",2,"width","100%"],[1,"cm-skeleton-rows"],[1,"table-responsive",3,"hidden"],["mat-table","",3,"dataSource"],["matColumnDef","campsiteName"],["mat-header-cell","",3,"click",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","channels"],["mat-header-cell","",4,"matHeaderCellDef"],["matColumnDef","distribution"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","cm-row-link",3,"routerLink",4,"matRowDef","matRowDefColumns"],[1,"cm-empty"],[3,"page","length","pageSize","pageIndex","pageSizeOptions"],[1,"cm-skeleton-row"],["mat-header-cell","",3,"click"],[1,"cm-sortable"],[1,"cm-sort-icon"],["mat-cell",""],["mat-header-cell",""],[1,"cm-chip-row"],[3,"channel"],["mat-stroked-button","","routerLink","/admin/distribution",3,"click","queryParams"],["mat-header-row",""],["mat-row","",1,"cm-row-link",3,"routerLink"]],template:function(o,a){o&1&&(l(0,"app-admin-subnav")(1,"div",0)(2,"mat-form-field")(3,"mat-label"),d(4,"Campsite"),s(),l(5,"input",1),Ot("ngModelChange",function(c){return kt(a.query,c)||(a.query=c),c}),w("ngModelChange",function(){return a.onFilterChange()}),s()(),l(6,"mat-form-field")(7,"mat-label"),d(8,"Channel"),s(),l(9,"mat-select",2),Ot("ngModelChange",function(c){return kt(a.channel,c)||(a.channel=c),c}),w("selectionChange",function(){return a.onFilterChange()}),l(10,"mat-option",3),d(11,"All channels"),s(),z(12,mP,2,2,"mat-option",3,U),s()()(),l(14,"div",4)(15,"button",5),w("click",function(){return a.clearFilters()}),d(16,"Clear filters"),s()()(),l(17,"div",6)(18,"div",7)(19,"mat-card")(20,"mat-card-content"),x(21,uP,3,1,"div",8),S(22,"async"),l(23,"div",9),S(24,"async"),l(25,"table",10),I(26,11),T(27,fP,5,1,"th",12)(28,hP,3,1,"td",13),R(),I(29,14),T(30,gP,2,0,"th",15)(31,CP,4,0,"td",13),R(),I(32,16),T(33,bP,1,0,"th",15)(34,xP,3,4,"td",13),R(),T(35,vP,1,0,"tr",17)(36,yP,1,3,"tr",18),s()(),x(37,SP,2,1,"div",19),S(38,"async"),l(39,"mat-paginator",20),w("page",function(c){return a.onPage(c)}),s()()()()()),o&2&&(m(5),Pt("ngModel",a.query),m(4),Pt("ngModel",a.channel),m(),C("value",null),m(2),H(a.channelOptions),m(9),v(P(22,13,a.loading$)?21:-1),m(2),C("hidden",P(24,15,a.loading$)||!a.pagedRows.length),m(2),C("dataSource",a.pagedRows),m(10),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.loaded&&P(38,17,a.loading$)===!1&&!a.filteredRows.length?37:-1),m(2),C("length",a.filteredRows.length)("pageSize",a.pageSize)("pageIndex",a.pageIndex)("pageSizeOptions",a.pageSizes))},dependencies:[dt,jt,ct,he,Ye,et,J,Z,ht,Ft,Jt,Vt,Rt,Fe,ee,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,Ao,pe,pt],styles:["table[_ngcontent-%COMP%]{width:100%}.cm-row-link[_ngcontent-%COMP%]{cursor:pointer}.cm-row-link[_ngcontent-%COMP%]:hover{background:#0000000a}.cm-sortable[_ngcontent-%COMP%]{cursor:pointer;display:inline-flex;align-items:center;gap:4px}.cm-sort-icon[_ngcontent-%COMP%]{font-size:16px;height:16px;width:16px}.cm-chip-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px}.cm-skeleton-rows[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.cm-skeleton-row[_ngcontent-%COMP%]{height:40px;border-radius:4px;background:#f1f3f2}.cm-empty[_ngcontent-%COMP%]{padding:24px 0;text-align:center;color:#0000008a}"]});let t=n;return t})();function MP(t,n){if(t&1&&(l(0,"span",10),d(1," General information "),s(),M(2,"div",11)),t&2){let e=h(3);C("matBadgeHidden",!(e.communityCampsiteInfoFormComponent!=null&&e.communityCampsiteInfoFormComponent.isDifferent))}}function wP(t,n){if(t&1&&(l(0,"div",8),M(1,"app-community-campsite-info",12),S(2,"async"),s()),t&2){let e=h(3);m(),C("campsite",P(2,1,e.campsite$))}}function EP(t,n){if(t&1){let e=$();l(0,"mat-tab"),T(1,MP,3,1,"ng-template",6),l(2,"div",7),x(3,wP,3,3,"div",8),S(4,"async"),l(5,"div",8)(6,"app-community-campsite-info-form",9),S(7,"async"),w("changed",function(){F(e);let o=h(2);return B(o.setUnsavedChanges())}),s()()()()}if(t&2){let e=h(),i=h();m(3),v(P(4,3,i.showCurrentDataColumn$)?3:-1),m(3),C("campsite",P(7,5,i.campsite$))("communityCampsite",e)}}function TP(t,n){if(t&1&&(l(0,"span",10),d(1," Season "),s(),M(2,"div",11)),t&2){let e=h(3);C("matBadgeHidden",!(e.communityCampsiteSeasonDatesFormComponent!=null&&e.communityCampsiteSeasonDatesFormComponent.isDifferent))}}function DP(t,n){if(t&1&&(l(0,"div",8),M(1,"app-community-campsite-season-dates",12),S(2,"async"),s()),t&2){let e=h(3);m(),C("campsite",P(2,1,e.campsite$))}}function PP(t,n){if(t&1){let e=$();l(0,"mat-tab"),T(1,TP,3,1,"ng-template",6),l(2,"div",7),x(3,DP,3,3,"div",8),S(4,"async"),l(5,"div",8)(6,"app-community-campsite-season-dates-form",9),S(7,"async"),w("changed",function(){F(e);let o=h(2);return B(o.setUnsavedChanges())}),s()()()()}if(t&2){let e=h(),i=h();m(3),v(P(4,3,i.showCurrentDataColumn$)?3:-1),m(3),C("campsite",P(7,5,i.campsite$))("communityCampsite",e)}}function kP(t,n){if(t&1&&(l(0,"span",10),d(1," Description "),s(),M(2,"div",11)),t&2){let e=h(3);C("matBadgeHidden",!(e.communityCampsiteDescriptionFormComponent!=null&&e.communityCampsiteDescriptionFormComponent.isDifferent))}}function OP(t,n){if(t&1&&(l(0,"div",8),M(1,"app-community-campsite-description",12),S(2,"async"),s()),t&2){let e=h(3);m(),C("campsite",P(2,1,e.campsite$))}}function IP(t,n){if(t&1){let e=$();l(0,"mat-tab"),T(1,kP,3,1,"ng-template",6),l(2,"div",7),x(3,OP,3,3,"div",8),S(4,"async"),l(5,"div",8)(6,"app-community-campsite-description-form",9),S(7,"async"),w("changed",function(){F(e);let o=h(2);return B(o.setUnsavedChanges())}),s()()()()}if(t&2){let e=h(),i=h();m(3),v(P(4,3,i.showCurrentDataColumn$)?3:-1),m(3),C("campsite",P(7,5,i.campsite$))("communityCampsite",e)}}function RP(t,n){if(t&1&&(l(0,"span",10),d(1," Facilities "),s(),M(2,"div",11)),t&2){let e=h(3);C("matBadgeHidden",!(e.communityCampsiteFacilitiesFormComponent!=null&&e.communityCampsiteFacilitiesFormComponent.isDifferent))}}function AP(t,n){if(t&1&&(l(0,"div",8),M(1,"app-community-campsite-facilities",14),S(2,"async"),S(3,"async"),s()),t&2){let e=h(3);m(),C("allFacilities",P(2,2,e.facilities$))("campsite",P(3,4,e.campsite$))}}function FP(t,n){if(t&1){let e=$();l(0,"mat-tab"),T(1,RP,3,1,"ng-template",6),l(2,"div",7),x(3,AP,4,6,"div",8),S(4,"async"),l(5,"div",8)(6,"app-community-campsite-facilities-form",13),S(7,"async"),S(8,"async"),w("changed",function(){F(e);let o=h(2);return B(o.setUnsavedChanges())}),s()()()()}if(t&2){let e=h(),i=h();m(3),v(P(4,4,i.showCurrentDataColumn$)?3:-1),m(3),C("allFacilities",P(7,6,i.facilities$))("campsite",P(8,8,i.campsite$))("communityCampsite",e)}}function BP(t,n){t&1&&(l(0,"span"),d(1," Images "),s(),M(2,"div",11))}function LP(t,n){if(t&1&&(l(0,"div",8),M(1,"app-community-campsite-images",12),S(2,"async"),s()),t&2){let e=h(3);m(),C("campsite",P(2,1,e.campsite$))}}function NP(t,n){if(t&1){let e=$();l(0,"mat-tab"),T(1,BP,3,0,"ng-template",6),l(2,"div",7),x(3,LP,3,3,"div",8),S(4,"async"),l(5,"div",8)(6,"app-community-campsite-images-form",15),w("changed",function(o){F(e);let a=h(2);return B(a.onImagesChanged(o))}),s()()()()}if(t&2){let e=h(),i=h();m(3),v(P(4,2,i.showCurrentDataColumn$)?3:-1),m(3),C("communityCampsite",e)}}function VP(t,n){if(t&1&&(l(0,"mat-tab-group"),x(1,EP,8,7,"mat-tab"),S(2,"async"),x(3,PP,8,7,"mat-tab"),S(4,"async"),x(5,IP,8,7,"mat-tab"),S(6,"async"),x(7,FP,9,10,"mat-tab"),S(8,"async"),x(9,NP,7,4,"mat-tab"),S(10,"async"),s()),t&2){let e=h();m(),v(P(2,5,e.showGeneralInfoTab$)?1:-1),m(2),v(P(4,7,e.showSeasonTab$)?3:-1),m(2),v(P(6,9,e.showDescriptionTab$)?5:-1),m(2),v(P(8,11,e.showFacilitiesTab$)?7:-1),m(2),v(P(10,13,e.showImagesTab$)?9:-1)}}function $P(t,n){t&1&&M(0,"app-loading")}var Ls=(()=>{let n=class n{constructor(i,o,a,r,c,p){this.activatedRoute=i,this.communityCampsiteService=o,this.dialog=a,this.router=r,this.staticDataService=c,this.uiMessagingService=p,this.CommunityCampsiteStatus=Ri,this.unsavedChanges=!1}ngOnInit(){if(this.communityCampsiteId=this.activatedRoute.snapshot.paramMap.get("communityCampsiteId"),!this.communityCampsiteId){this.router.navigate(["/admin/community-campsites"]);return}this.campsite$=this.communityCampsiteService.selectedCampsite$,this.campsiteLoading$=this.communityCampsiteService.selectedCampsiteLoading$,this.communityCampsite$=this.communityCampsiteService.selectedCommunityCampsite$,this.communityCampsiteLoading$=this.communityCampsiteService.selectedCommunityCampsiteLoading$,this.facilities$=this.staticDataService.facilitiesCollectionForCamp$,this.showCurrentDataColumn$=this.communityCampsite$.pipe(pi(i=>i.requestType===We.UPDATE)),this.showGeneralInfoTab$=this.communityCampsite$.pipe(pi(i=>
219[We.CREATE,We.UPDATE].includes(i.requestType))),this.showFacilitiesTab$=this.communityCampsite$.pipe(pi(i=>[We.CREATE,We.UPDATE].includes(i.requestType))),this.showSeasonTab$=this.communityCampsite$.pipe(pi(i=>[We.CREATE,We.UPDATE].includes(i.requestType))),this.showDescriptionTab$=this.communityCampsite$.pipe(pi(i=>[We.CREATE,We.UPDATE].includes(i.requestType))),this.showImagesTab$=this.communityCampsite$.pipe(pi(i=>[We.CREATE,We.IMAGE_UPLOAD].includes(i.requestType))),this.communityCampsiteService.getCommunityCampsiteById(this.communityCampsiteId).subscribe(),this.staticDataService.getFaciliesForCamp(),this.communityCampsite$.pipe(Le(i=>!!i),Yt(1)).subscribe(i=>{this.communityCampsiteData=i,i.campsiteIdForUpdate&&this.communityCampsiteService.getSelectedCampsite(i.campsiteIdForUpdate).subscribe()})}ngOnDestroy(){this.communityCampsiteService.resetSelectedCommunityCampsiteState()}updateCommunityCampsiteStatus(i){this.dialog.open(jo,Et(nt({},bn),{data:{commitButtonText:i===Ri.APPROVED?"Approve":"Decline",discardButtonText:"Abort",header:i===Ri.APPROVED?"Approve":"Decline",message:"Are you sure? This action cannot be undone."}})).afterClosed().pipe(Yt(1)).subscribe(a=>{a&&this.communityCampsiteService.updateCommunityChangesStatus(this.communityCampsiteId,i).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess(i===Ri.APPROVED?"Community changes approved":"Community changes declined"),this.unsavedChanges=!1,this.router.navigate(["/admin/community-campsites"])},error:()=>this.uiMessagingService.openSnackBarError("An error has occurred!")})})}saveCommunityCampsiteChanges(){let i=nt({},this.communityCampsiteData);this.communityCampsiteData.requestType===We.IMAGE_UPLOAD?i.images=this.communityCampsiteImagesFormComponent.images:this.communityCampsiteData.requestType===We.UPDATE?(i=nt(nt({},i),this.communityCampsiteInfoFormComponent.infoForm.getRawValue()),i.description=this.communityCampsiteDescriptionFormComponent.descriptionForm.value.description,i.facilities=this.communityCampsiteFacilitiesFormComponent.getFacilitiesByValue(),i.seasonDates=this.communityCampsiteSeasonDatesFormComponent.seasonDatesForm.getRawValue()):this.communityCampsiteData.requestType===We.CREATE&&(i=nt(nt({},i),this.communityCampsiteInfoFormComponent.infoForm.getRawValue()),i.description=this.communityCampsiteDescriptionFormComponent.descriptionForm.value.description,i.facilities=this.communityCampsiteFacilitiesFormComponent.getFacilitiesByValue(),i.seasonDates=this.communityCampsiteSeasonDatesFormComponent.seasonDatesForm.getRawValue(),i.images=this.communityCampsiteImagesFormComponent.images),this.communityCampsiteService.saveCommunityChanges(this.communityCampsiteId,i).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Community changes saved"),this.unsavedChanges=!1},error:()=>this.uiMessagingService.openSnackBarError("An error has occurred!")})}setUnsavedChanges(){console.log("setUnsavedChanges"),this.unsavedChanges=!0}onImagesChanged(i){this.communityCampsiteImagesFormComponent.images=i,this.unsavedChanges=!0}abortChanges(){this.unsavedChanges=!1,this.router.navigate(["/admin/community-campsites"])}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Rr),O(ve),O(Gt),O(im),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsite-details"]],viewQuery:function(o,a){if(o&1&&Xt(Sn,5)(Mn,5)(wn,5)(En,5)(Tn,5),o&2){let r;Tt(r=Dt())&&(a.communityCampsiteDescriptionFormComponent=r.first),Tt(r=Dt())&&(a.communityCampsiteFacilitiesFormComponent=r.first),Tt(r=Dt())&&(a.communityCampsiteImagesFormComponent=r.first),Tt(r=Dt())&&(a.communityCampsiteInfoFormComponent=r.first),Tt(r=Dt())&&(a.communityCampsiteSeasonDatesFormComponent=r.first)}},decls:17,vars:16,consts:[[3,"title"],["actions",""],["mat-flat-button","",1,"approve-button",3,"click","disabled"],["mat-flat-button","","color","warn",3,"click","disabled"],["mat-flat-button","","color","primary",3,"click","disabled"],["mat-stroked-button","",3,"click"],["mat-tab-label",""],[1,"row"],[1,"column"],[3,"changed","campsite","communityCampsite"],["matBadge","\xB7","matBadgeColor","warn","matBadgeSize","small",3,"matBadgeHidden"],[1,"badge"],[3,"campsite"],[3,"changed","allFacilities","campsite","communityCampsite"],[3,"allFacilities","campsite"],[3,"changed","communityCampsite"]],template:function(o,a){if(o&1&&(l(0,"app-page-header",0),S(1,"async"),S(2,"async"),I(3,1),l(4,"button",2),w("click",function(){return a.updateCommunityCampsiteStatus(a.CommunityCampsiteStatus.APPROVED)}),d(5," Approve "),s(),l(6,"button",3),w("click",function(){return a.updateCommunityCampsiteStatus(a.CommunityCampsiteStatus.DECLINED)}),d(7," Decline "),s(),l(8,"button",4),w("click",function(){return a.saveCommunityCampsiteChanges()}),d(9," Save changes "),s(),l(10,"button",5),w("click",function(){return a.abortChanges()}),d(11,"Abort"),s(),R(),s(),x(12,VP,11,15,"mat-tab-group"),S(13,"async"),x(14,$P,1,0,"app-loading"),S(15,"async"),S(16,"async")),o&2){let r,c;C("title",((r=P(1,6,a.communityCampsite$))==null?null:r.name)+" | "+((r=P(2,8,a.communityCampsite$))==null?null:r.requestType)),m(4),C("disabled",(a.communityCampsiteData==null?null:a.communityCampsiteData.status)===a.CommunityCampsiteStatus.APPROVED),m(2),C("disabled",(a.communityCampsiteData==null?null:a.communityCampsiteData.status)===a.CommunityCampsiteStatus.DECLINED||(a.communityCampsiteData==null?null:a.communityCampsiteData.status)===a.CommunityCampsiteStatus.APPROVED),m(2),C("disabled",(a.communityCampsiteData==null?null:a.communityCampsiteData.status)===a.CommunityCampsiteStatus.DECLINED||(a.communityCampsiteData==null?null:a.communityCampsiteData.status)===a.CommunityCampsiteStatus.APPROVED),m(4),v((c=P(13,10,a.communityCampsite$))?12:-1,c),m(2),v(P(15,12,a.communityCampsiteLoading$)&&P(16,14,a.campsiteLoading$)?14:-1)}},dependencies:[cm,et,en,tn,Qd,Mr,na,En,oa,Tn,ta,Sn,ea,Mn,ia,wn,ae,pt],styles:["[_nghost-%COMP%]{position:relative}.approve-button[_ngcontent-%COMP%]{background-color:#0070c0;color:#fff}mat-tab-group[_ngcontent-%COMP%]{border-top:1px solid #dedede}.column[_ngcontent-%COMP%]{width:40%}"]});let t=n;return t})();var Ns=(()=>{let n=class n{constructor(i,o){this.communityCampsiteService=i,this.router=o,this.pagination={limit:10,offset:0,sortBy:"createdAt",sortDirection:"desc"},this.CommunityCampsiteStatus=Ri}ngOnInit(){this.communityCampsites$=this.communityCampsiteService.communityCampsites$,this.communityCampsitesLoading$=this.communityCampsiteService.communityCampsitesLoading$,this.communityCampsitesTotalCount$=this.communityCampsiteService.communityCampsitesTotalCount$,this._getCommunityCampsites()}handlePagination(i){this.pagination=nt(nt({},this.pagination),i),this._getCommunityCampsites()}seeMore(i){this.router.navigate([`/admin/community-campsites/${i.id}`])}updateCommunityCampsiteStatus(i,o){this.communityCampsiteService.updateCommunityChangesStatus(i.id,o).subscribe()}_getCommunityCampsites(){this.communityCampsiteService.getCommunityCampsites({pagination:this.pagination}).subscribe()}};n.\u0275fac=function(o){return new(o||n)(O(Rr),O(Gt))},n.\u0275cmp=L({type:n,selectors:[["app-community-campsites"]],decls:12,vars:10,consts:[[1,"row"],[1,"column"],[3,"approveCommunityCampsite","declineCommunitCampsite","paginationChanged","seeMore","communityCampsites","loading","pagination","totalCount"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title")(5,"b"),d(6,"Community requests"),s()()(),l(7,"mat-card-content")(8,"app-community-campsites-table",2),S(9,"async"),S(10,"async"),S(11,"async"),w("approveCommunityCampsite",function(c){return a.updateCommunityCampsiteStatus(c,a.CommunityCampsiteStatus.APPROVED)})("declineCommunitCampsite",function(c){return a.updateCommunityCampsiteStatus(c,a.CommunityCampsiteStatus.DECLINED)})("paginationChanged",function(c){return a.handlePagination(c)})("seeMore",function(c){return a.seeMore(c)}),s()()()()()),o&2&&(m(8),C("communityCampsites",P(9,4,a.communityCampsites$))("loading",P(10,6,a.communityCampsitesLoading$))("pagination",a.pagination)("totalCount",P(11,8,a.communityCampsitesTotalCount$)))},dependencies:[J,ot,st,Z,aa,pt],styles:["mat-card[_ngcontent-%COMP%]{min-height:30vh}.column[_ngcontent-%COMP%]{width:100%}"]});let t=n;return t})();var ku=3,Vs=(()=>{let n=class n{constructor(i,o,a,r,c){this.adminUsersService=i,this.campsiteDirectorService=o,this.campsiteService=a,this.uiMessagingService=r,this.userDialog=c,this.directorState$=new tt({kind:"idle"}),this._searchGeneration=0,this._directorActionUid=null,this._directorActionToken=0}ngOnDestroy(){this._searchSub?.unsubscribe()}onSearch(i){let o=i.term.trim();if(!o)return;this._searchSub?.unsubscribe();let a=++this._searchGeneration;if(this._directorActionUid=null,this._directorActionToken++,this._needsMinLe
219ngth(i.searchBy)&&o.length<ku){this.directorState$.next({kind:"refused",message:`Enter at least ${ku} characters.`});return}this.directorState$.next({kind:"searching"}),this._searchSub=this._decide(i.searchBy,o).pipe(or(r=>{a===this._searchGeneration&&(r.kind==="refused"?this.directorState$.next(r):r.kind==="error"&&(this.directorState$.next(r),this.uiMessagingService.openSnackBarError(r.message)))}),nr(r=>r.kind==="query"?this.adminUsersService.searchDirectors(r.query):Qc)).subscribe({next:r=>{if(a!==this._searchGeneration)return;let c=r?.data??[];if(c.length===0){this.directorState$.next({kind:"no-matches"});return}this.directorState$.next({kind:"results",rows:c,count:r.count,capped:c.length>=200})},error:r=>{if(a!==this._searchGeneration)return;let c=this.adminUsersService.errorMessageFor(r);if(r?.status===400){this.directorState$.next({kind:"refused",message:c});return}this.directorState$.next({kind:"error",message:c}),this.uiMessagingService.openSnackBarError(c)}})}get directorActionsBusy(){return this._directorActionUid!==null}onDeleteDirector(i){return ce(this,null,function*(){if(this._directorActionUid)return;let o=i.row?.campsiteId?.trim(),a=i.row?.id?.trim();if(!a||!o||!(yield this.userDialog.confirmDelete({header:"Delete campsite director?",message:`Delete <b>${i.displayName}</b> (${i.displayEmail} \xB7 ${a})?<br><br>This deletes their whole <b>Campio login</b>, not just their access to <b>${i.displayCampsite}</b>. If they also use this account to book as a guest on Campio, that sign-in stops working too and they lose access to their own bookings.<br><br>This cannot be undone.`,deleteButtonText:"Delete account"})))return;let c=this._searchGeneration,p=this._claimDirectorAction(a);this.campsiteDirectorService.deleteCampsiteDirector(o,a).pipe(Yt(1),It(()=>this._releaseDirectorAction(p))).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess(`${i.displayName} was deleted \u2014 their Campio login is gone.`),this._dropDirectorRow(a,c)},error:u=>{console.log("ADMIN USERS | DELETE CAMPSITE DIRECTOR",u),this.uiMessagingService.openSnackBarError(this.campsiteDirectorService.errorMessageFor(u,Uo.DELETE))}})})}_claimDirectorAction(i){return this._directorActionUid=i,++this._directorActionToken}_releaseDirectorAction(i){i===this._directorActionToken&&(this._directorActionUid=null)}_dropDirectorRow(i,o){if(o!==this._searchGeneration)return;let a=this.directorState$.getValue();if(a.kind!=="results")return;let r=a.rows.filter(p=>p.id?.trim()!==i);if(r.length===a.rows.length)return;let c=a.count-1;if(c<=0){this.directorState$.next({kind:"no-matches"});return}this.directorState$.next({kind:"results",rows:r,count:c,capped:a.capped})}_needsMinLength(i){return i===je.USER_NAME||i===je.USER_EMAIL||i===je.CAMPSITE_NAME}_decide(i,o){switch(i){case je.CAMPSITE_NAME:return this.campsiteService.searchCampsites(o).pipe(pi(a=>{let r=a.map(c=>c.id);return r.length===0?{kind:"refused",message:"No campsite matches that name."}:{kind:"query",query:{field:"campsiteId",campsiteIds:r}}}),jn(a=>(console.log("ADMIN USERS | SEARCH CAMPSITES",a),xi({kind:"error",message:this.adminUsersService.errorMessageFor(a)}))));case je.CAMPSITE_ID:return xi({kind:"query",query:{field:"campsiteId",campsiteIds:[o]}});case je.USER_NAME:return xi({kind:"query",query:{field:"name",q:o}});case je.USER_EMAIL:return xi({kind:"query",query:{field:"email",q:o}});case je.USER_ID:return xi({kind:"query",query:{field:"uid",q:o}});default:{let a=i;throw new Error(`Unhandled search identity: ${a}`)}}}};n.\u0275fac=function(o){return new(o||n)(O(Lr),O(ho),O(nn),O(ut),O(Dr))},n.\u0275cmp=L({type:n,selectors:[["app-admin-directors"]],decls:2,vars:4,consts:[[3,"searchRequested","deleteDirector","state","actionsBusy"]],template:function(o,a){o&1&&(l(0,"app-director-search",0),S(1,"async"),w("searchRequested",function(c){return a.onSearch(c)})("deleteDirector",function(c){return a.onDeleteDirector(c)}),s()),o&2&&C("state",P(1,2,a.directorState$))("actionsBusy",a.directorActionsBusy)},dependencies:[Xa,pt],encapsulation:2});let t=n;return t})();var jP={limit:5,offset:0,sortDirection:"desc"},$s=(()=>{let n=class n{constructor(i){this.discountCodeService=i,this.discountCodeOrdersLimitedDataOptions=jP}ngOnInit(){this.discountCodeOrders$=this.discountCodeService.discountCodeOrders$,this.discountCodeOrdersLoading$=this.discountCodeService.discountCodeOrdersLoading$,this.discountCodeOrdersTotalCount$=this.discountCodeService.discountCodeOrdersTotalCount$,this.discountCodeService.getDiscountCodeOrders(this.discountCodeOrdersLimitedDataOptions).subscribe()}ngOnDestroy(){this.discountCodeService.resetState()}handleDiscountCodeOrdersLimitedDataOptionsChanged(i){this.discountCodeOrdersLimitedDataOptions=i,this.discountCodeService.getDiscountCodeOrders(i).subscribe()}};n.\u0275fac=function(o){return new(o||n)(O(Tr))},n.\u0275cmp=L({type:n,selectors:[["ng-component"]],decls:12,vars:10,consts:[[1,"row"],[1,"column",2,"width","100%"],[3,"limitedDataOptionsChanges","discountCodeOrders","discountCodeOrdersTotalCount","limitedDataOptions","loading"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title")(5,"b"),d(6,"Discount codes usage"),s()()(),l(7,"mat-card-content")(8,"app-discount-code-orders-table",2),S(9,"async"),S(10,"async"),S(11,"async"),w("limitedDataOptionsChanges",function(c){return a.handleDiscountCodeOrdersLimitedDataOptionsChanged(c)}),s()()()()()),o&2&&(m(8),C("discountCodeOrders",P(9,4,a.discountCodeOrders$))("discountCodeOrdersTotalCount",P(10,6,a.discountCodeOrdersTotalCount$))("limitedDataOptions",a.discountCodeOrdersLimitedDataOptions)("loading",P(11,8,a.discountCodeOrdersLoading$)))},dependencies:[J,ot,st,Z,am,pt],encapsulation:2});let t=n;return t})();var UP={limit:5,offset:0,sortDirection:"desc"},zs=(()=>{let n=class n{constructor(i,o,a,r){this.dialog=i,this.discountCodeService=o,this.discountCodeConverterService=a,this.uiMessagingService=r,this.discountCodesLimitedDataOptions=UP}ngOnInit(){this.discountCodesLoading$=this.discountCodeService.discountCodesLoading$,this.discountCodesTotalCount$=this.discountCodeService.discountCodesTotalCount$,this.discountCodes$=this.discountCodeService.discountCodes$,this.discountCodeService.getDiscountCodes(this.discountCodesLimitedDataOptions).subscribe()}ngOnDestroy(){this.discountCodeService.resetState()}handleDiscountCodesLimitedDataOptionsChanged(i){this.discountCodesLimitedDataOptions=i,this.discountCodeService.getDiscountCodes(i).subscribe()}handleCreateDiscountCode(){this.dialog.open(ul,Et(nt({},xn(Oi.LARGE)),{data:{isAdmin:!0}})).afterClosed().pipe(Yt(1)).subscribe(o=>{o&&this.discountCodeService.createDiscountCode(this.discountCodeConverterService.convertDiscountCodeDb(
219o)).subscribe({next:()=>this.uiMessagingService.openSnackBarSuccess("Discount code created successfully"),error:()=>this.uiMessagingService.openSnackBarError("Creating discount code failed!")})})}handleDeactivateDiscountCode(i){this.dialog.open(on,{data:{header:"Deactivate discount code",message:`Are you sure you want to deactivate <b>${i.code}</b> - discount code?`,deleteButtonText:"Yes, deactivate",cancelButtonText:"Abort"}}).afterClosed().pipe(Yt(1)).subscribe(a=>{a&&this.discountCodeService.updateDiscountCode(Et(nt({},i),{isActive:!1})).subscribe({next:()=>this.uiMessagingService.openSnackBarSuccess("Discount code deactivated successfully"),error:()=>this.uiMessagingService.openSnackBarError("Deactivating discount code failed!")})})}handleUpdateDiscountCode(i){this.dialog.open(ul,Et(nt({},xn(Oi.LARGE)),{data:{discountCode:i,isAdmin:!0}})).afterClosed().pipe(Yt(1)).subscribe(a=>{a&&this.discountCodeService.updateDiscountCode(this.discountCodeConverterService.convertDiscountCodeFormToDiscountCode(i,a)).subscribe({next:()=>this.uiMessagingService.openSnackBarSuccess("Discount code created successfully"),error:()=>this.uiMessagingService.openSnackBarError("Creating discount code failed!")})})}};n.\u0275fac=function(o){return new(o||n)(O(ve),O(Tr),O(Jd),O(ut))},n.\u0275cmp=L({type:n,selectors:[["ng-component"]],decls:15,vars:10,consts:[[1,"row"],[1,"column",2,"width","100%"],["mat-flat-button","","color","primary",3,"click"],[1,"fa","fa-plus"],[3,"deactivate","edit","limitedDataOptionsChanges","discountCodes","discountCodesTotalCount","limitedDataOptions","loading"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title")(5,"b"),d(6,"Discount code"),s()(),l(7,"button",2),w("click",function(){return a.handleCreateDiscountCode()}),M(8,"i",3),d(9," Add new"),s()(),l(10,"mat-card-content")(11,"app-discount-codes-table",4),S(12,"async"),S(13,"async"),S(14,"async"),w("deactivate",function(c){return a.handleDeactivateDiscountCode(c)})("edit",function(c){return a.handleUpdateDiscountCode(c)})("limitedDataOptionsChanges",function(c){return a.handleDiscountCodesLimitedDataOptionsChanged(c)}),s()()()()()),o&2&&(m(11),C("discountCodes",P(12,4,a.discountCodes$))("discountCodesTotalCount",P(13,6,a.discountCodesTotalCount$))("limitedDataOptions",a.discountCodesLimitedDataOptions)("loading",P(14,8,a.discountCodesLoading$)))},dependencies:[J,ot,st,et,Z,rm,pt],styles:["mat-card-title[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}"]});let t=n;return t})();function GP(t,n){t&1&&M(0,"mat-progress-bar",12)}var Ou=0,Gc=1,qP=2,YP=3,QP=4,Iu=5,Hs=(()=>{let n=class n{constructor(i,o,a){this.distributionService=i,this.uiMessagingService=o,this.route=a,this.range="24h",this.selectedTab=Ou,this.loading$=new tt(!1),this.traceIdInput="",this.overviewTiles=null,this.overviewChart=[],this.overviewPerChannel=[],this.overviewTopCampsites=[],this.overviewAttention=[],this.eventsRows=[],this.eventsCount=0,this.eventsOffset=0,this.eventsView="rows",this.eventsStatsRows=[],this.eventsCampsiteId=null,this.eventsCampsiteName=null,this.eventsType=null,this.eventsAction=null,this.eventsTraceObject=null,this.expandedEventId=null,this.expandedEventScopes=[],this.expandedEventMessages=[],this.scopesRows=[],this.scopesNow=new Date,this.messagesRows=[],this.messagesCount=0,this.messagesOffset=0,this.messagesCampsiteId=null,this.messagesCampsiteName=null,this.messagesChannel=null,this.messagesKind=null,this.messagesMode=null,this.messagesStatus=null,this.expandedMessageId=null,this.expandedMessageDetail=null,this.messageDetailLoading=!1,this.channels=[],this.channelMessageStats=[],this.traceId=null,this.trace=null,this.traceSelectedNode=null,this.traceSelectedMessageDetail=null,this.traceDetailLoading=!1,this.pageSize=50,this._generation=0}ngOnInit(){let i=this.route.snapshot.queryParamMap,o=i.get("campsiteId");o&&(this.selectedTab=Gc,this.eventsCampsiteId=o,this.eventsCampsiteName=i.get("campsiteName")),this._loadTab(!0)}onRangeChange(){this._loadTab(!0)}onRefresh(){this._loadTab(!1)}onTabChange(i){i!==this.selectedTab&&(this.selectedTab=i,this._loadTab(!0))}onSearch(){let i=this.traceIdInput.trim();i&&(this.traceId=i,this.selectedTab=Iu,this._loadTrace())}onGoToTrace(i){this.traceIdInput=i,this.onSearch()}onCampsiteClick(i){this.selectedTab=Gc,this.eventsCampsiteId=i,this.eventsCampsiteName=null,this._loadEvents(!0)}onEventsFilterChange(i){this.eventsCampsiteId=i.campsiteId,this.eventsCampsiteName=i.campsiteName,this.eventsType=i.type,this.eventsAction=i.action,this.eventsTraceObject=i.traceObject,this._loadEvents(!0)}onEventsPage(i){this.eventsOffset=i.pageIndex*i.pageSize,this._loadEvents(!1)}onEventsViewChange(i){this.eventsView=i,this._loadEvents(!0)}onEventsExpand(i){this.expandedEventId=i,this.expandedEventScopes=[],this.expandedEventMessages=[],i&&this.distributionService.trace(i).subscribe({next:o=>{i===this.expandedEventId&&(this.expandedEventScopes=o.scopes,this.expandedEventMessages=o.messages)},error:o=>
219this.uiMessagingService.openSnackBarError(this.distributionService.errorMessageFor(o))})}onMessagesFilterChange(i){this.messagesCampsiteId=i.campsiteId,this.messagesCampsiteName=i.campsiteName,this.messagesChannel=i.channel,this.messagesKind=i.kind,this.messagesMode=i.mode,this.messagesStatus=i.status,this._loadMessages(!0)}onMessagesPage(i){this.messagesOffset=i.pageIndex*i.pageSize,this._loadMessages(!1)}onMessagesExpand(i){this.expandedMessageId=i,this.expandedMessageDetail=null,i&&this._loadMessageDetail(i,o=>this.messageDetailLoading=o,o=>{i===this.expandedMessageId&&(this.expandedMessageDetail=o)})}onTraceSelectNode(i){this.traceSelectedNode=i,this.traceSelectedMessageDetail=null,i.kind==="MESSAGE"&&this._loadMessageDetail(i.id,o=>this.traceDetailLoading=o,o=>{i.id===this.traceSelectedNode?.id&&(this.traceSelectedMessageDetail=o)})}_loadTab(i){switch(this.selectedTab){case Ou:this._loadOverview();break;case Gc:this._loadEvents(i);break;case qP:this._loadScopes();break;case YP:this._loadMessages(i);break;case QP:this._loadChannels();break;case Iu:this._loadTrace();break}}_loadOverview(){let i=this._startLoad(),{from:o,to:a}=Qo(this.range,new Date),r=yl(this.range),c=o.toISOString(),p=a.toISOString();Pi({eventStats:this.distributionService.eventStats({from:c,to:p,bucket:r}),messageStats:this.distributionService.messageStats({from:c,to:p,bucket:r}),pending:this.distributionService.pending(),channels:this.distributionService.channels(),campsiteStats:this.distributionService.campsiteStats({from:c,to:p,limit:10}),unknownLive:this.distributionService.messages({from:c,to:p,status:"UNKNOWN",mode:"LIVE",limit:5})}).pipe(It(()=>this._finishLoad(i))).subscribe({next:u=>{if(i!==this._generation)return;let f=new Date;this.overviewTiles=Wm(u.eventStats.days,u.messageStats,u.pending.data,f),this.overviewChart=Um(u.eventStats.days,o,a,r),this.overviewPerChannel=Gm(u.messageStats,u.channels),this.overviewTopCampsites=u.campsiteStats,this.overviewAttention=qm(u.pending.data,u.unknownLive.data,f),this.channels=u.channels},error:u=>this._onError(i,u)})}_loadEvents(i){i&&(this.eventsOffset=0);let o=this._startLoad(),{from:a,to:r}=Qo(this.range,new Date);if(this.eventsView==="stats"){this.distributionService.eventStats({from:a.toISOString(),to:r.toISOString(),bucket:yl(this.range)}).pipe(It(()=>this._finishLoad(o))).subscribe({next:c=>{o===this._generation&&(this.eventsStatsRows=c.days)},error:c=>this._onError(o,c)});return}this.distributionService.events({from:a.toISOString(),to:r.toISOString(),campsiteId:this.eventsCampsiteId??void 0,type:this.eventsType??void 0,action:this.eventsAction??void 0,traceObject:this.eventsTraceObject??void 0,offset:this.eventsOffset,limit:this.pageSize}).pipe(It(()=>this._finishLoad(o))).subscribe({next:c=>{o===this._generation&&(this.eventsRows=c.data,this.eventsCount=c.count)},error:c=>this._onError(o,c)})}_loadScopes(){let i=this._startLoad();this.distributionService.pending().pipe(It(()=>this._finishLoad(i))).subscribe({next:o=>{i===this._generation&&(this.scopesRows=o.data,this.scopesNow=new Date)},error:o=>this._onError(i,o)})}_loadMessages(i){i&&(this.messagesOffset=0);let o=this._startLoad(),{from:a,to:r}=Qo(this.range,new Date);this.distributionService.messages({from:a.toISOString(),to:r.toISOString(),campsiteId:this.messagesCampsiteId??void 0,channel:this.messagesChannel??void 0,kind:this.messagesKind??void 0,mode:this.messagesMode??void 0,status:this.messagesStatus??void 0,offset:this.messagesOffset,limit:this.pageSize}).pipe(It(()=>this._finishLoad(o))).subscribe({next:c=>{o===this._generation&&(this.messagesRows=c.data,this.messagesCount=c.count)},error:c=>this._onError(o,c)})}_loadChannels(){let i=this._startLoad(),{from:o,to:a}=Qo("7d",new Date);Pi({channels:this.distributionService.channels(),messageStats:this.distributionService.messageStats({from:o.toISOString(),to:a.toISOString(),bucket:"day"})}).pipe(It(()=>this._finishLoad(i))).subscribe({next:r=>{i===this._generation&&(this.channels=r.channels,this.channelMessageStats=r.messageStats)},error:r=>this._onError(i,r)})}_loadTrace(){if(!this.traceId)return;let i=this._startLoad();this.distributionService.trace(this.traceId).pipe(It(()=>this._finishLoad(i))).subscribe({next:o=>{if(i!==this._generation)return;let a=this.trace?.id===o.id;this.trace=o,(!a||this.traceSelectedNode&&!this._traceContainsNode(o,this.traceSelectedNode))&&(this.traceSelectedNode=null,this.traceSelectedMessageDetail=null)},error:o=>this._onError(i,o)})}_traceContainsNode(i,o){switch(o.kind){case"EVENT":return i.events.some(a=>a.id===o.id);case"SCOPE":return i.scopes.some(a=>a.id===o.id);case"MESSAGE":return i.messages.some(a=>a.id===o.id)}}_loadMessageDetail(i,o,a){o(!0),this.distributionService.messageDetail(i).pipe(It(()=>o(!1))).subscribe({next:r=>a(r),error:r=>{a(null),this.uiMessagingService.openSnackBarError(this.distributionService.errorMessageFor(r))}})}_startLoad(){let i=++this._generation;return this.loading$.next(!0),i}_finishLoad(i){i===this._generation&&this.loading$.next(!1)}_onError(i,o){i===this._generation&&this.uiMessagingService.openSnackBarError(this.distributionService.errorMessageFor(o))}};n.\u0275fac=function(o){return new(o||n)(O(mm),O(ut),O(xe))},n.\u0275cmp=L({type:n,selectors:[["app-distribution"]],decls:44,vars:62,consts:[[1,"distribution-range",3,"ngModelChange","change","ngModel"],["value","1h"],["value","24h"],["value","7d"],["value","30d"],[1,"distribution-search"],["matInput","",1,"distribution-search-input",3,"ngModelChange","keyup.enter","ngModel"],["matPrefix",""],["mat-flat-button","","color","primary","type","button",3,"click"],["mat-stroked-button","","type","button",1,"distribution-refresh",3,"click","disabled"],[1,"distribution-tabbar"],[1,"distribution-progress"],["mode","indeterminate"],["animationDuration","0ms",1,"distribution-tabs",3,"selectedIndexChange","selectedIndex"],["label","Overview"],[3,"campsiteClick","attentionClick","tiles","chart","perChannel","topCampsites","attention"],["label","Events"],[3,"filterChange","page","viewChange","expand","campsiteClick","traceClick","rows","count","offset","pageSize","loading","view","statsRows","campsiteId","campsiteName","type","action","traceObject","expandedId","expandedScopes","expandedMessages"],["label","Scopes"],[3,"campsiteClick","rows","channels","loading","now"],["label","Messages"],[3,"filterChange","page","expand","campsiteClick","traceClick","rows","count","offset","pageSize","loading","campsiteId","campsiteName","channel","kind","mode","status","expandedId","expandedDetail","detailLoa
219ding"],["label","Channels"],[3,"channels","messageStats"],["label","Trace"],[3,"selectNode","campsiteClick","trace","loading","selectedNode","selectedMessageDetail","detailLoading"]],template:function(o,a){o&1&&(l(0,"app-admin-subnav")(1,"mat-button-toggle-group",0),Ot("ngModelChange",function(c){return kt(a.range,c)||(a.range=c),c}),w("change",function(){return a.onRangeChange()}),l(2,"mat-button-toggle",1),d(3,"1h"),s(),l(4,"mat-button-toggle",2),d(5,"24h"),s(),l(6,"mat-button-toggle",3),d(7,"7d"),s(),l(8,"mat-button-toggle",4),d(9,"30d"),s()(),l(10,"mat-form-field",5)(11,"mat-label"),d(12,"Any id: event, message, scope, booking, order\u2026"),s(),l(13,"input",6),Ot("ngModelChange",function(c){return kt(a.traceIdInput,c)||(a.traceIdInput=c),c}),w("keyup.enter",function(){return a.onSearch()}),s(),l(14,"mat-icon",7),d(15,"search"),s()(),l(16,"button",8),w("click",function(){return a.onSearch()}),d(17,"Trace"),s(),l(18,"button",9),S(19,"async"),w("click",function(){return a.onRefresh()}),l(20,"mat-icon"),d(21,"refresh"),s(),d(22," Refresh "),s()(),l(23,"div",10)(24,"div",11),x(25,GP,1,0,"mat-progress-bar",12),S(26,"async"),s(),l(27,"mat-tab-group",13),w("selectedIndexChange",function(c){return a.onTabChange(c)}),l(28,"mat-tab",14)(29,"app-distribution-overview",15),w("campsiteClick",function(c){return a.onCampsiteClick(c)})("attentionClick",function(c){return a.onGoToTrace(c)}),s()(),l(30,"mat-tab",16)(31,"app-distribution-events-table",17),S(32,"async"),w("filterChange",function(c){return a.onEventsFilterChange(c)})("page",function(c){return a.onEventsPage(c)})("viewChange",function(c){return a.onEventsViewChange(c)})("expand",function(c){return a.onEventsExpand(c)})("campsiteClick",function(c){return a.onCampsiteClick(c)})("traceClick",function(c){return a.onGoToTrace(c)}),s()(),l(33,"mat-tab",18)(34,"app-distribution-scopes-table",19),S(35,"async"),w("campsiteClick",function(c){return a.onCampsiteClick(c)}),s()(),l(36,"mat-tab",20)(37,"app-distribution-messages-table",21),S(38,"async"),w("filterChange",function(c){return a.onMessagesFilterChange(c)})("page",function(c){return a.onMessagesPage(c)})("expand",function(c){return a.onMessagesExpand(c)})("campsiteClick",function(c){return a.onCampsiteClick(c)})("traceClick",function(c){return a.onGoToTrace(c)}),s()(),l(39,"mat-tab",22),M(40,"app-distribution-channels",23),s(),l(41,"mat-tab",24)(42,"app-distribution-trace",25),S(43,"async"),w("selectNode",function(c){return a.onTraceSelectNode(c)})("campsiteClick",function(c){return a.onCampsiteClick(c)}),s()()()()),o&2&&(m(),Pt("ngModel",a.range),m(12),Pt("ngModel",a.traceIdInput),m(5),C("disabled",P(19,50,a.loading$)??!1),m(7),v(P(26,52,a.loading$)?25:-1),m(2),C("selectedIndex",a.selectedTab),m(2),C("tiles",a.overviewTiles)("chart",a.overviewChart)("perChannel",a.overviewPerChannel)("topCampsites",a.overviewTopCampsites)("attention",a.overviewAttention),m(2),C("rows",a.eventsRows)("count",a.eventsCount)("offset",a.eventsOffset)("pageSize",a.pageSize)("loading",P(32,54,a.loading$)??!1)("view",a.eventsView)("statsRows",a.eventsStatsRows)("campsiteId",a.eventsCampsiteId)("campsiteName",a.eventsCampsiteName)("type",a.eventsType)("action",a.eventsAction)("traceObject",a.eventsTraceObject)("expandedId",a.expandedEventId)("expandedScopes",a.expandedEventScopes)("expandedMessages",a.expandedEventMessages),m(3),C("rows",a.scopesRows)("channels",a.channels)("loading",P(35,56,a.loading$)??!1)("now",a.scopesNow),m(3),C("rows",a.messagesRows)("count",a.messagesCount)("offset",a.messagesOffset)("pageSize",a.pageSize)("loading",P(38,58,a.loading$)??!1)("campsiteId",a.messagesCampsiteId)("campsiteName",a.messagesCampsiteName)("channel",a.messagesChannel)("kind",a.messagesKind)("mode",a.messagesMode)("status",a.messagesStatus)("expandedId",a.expandedMessageId)("expandedDetail",a.expandedMessageDetail)("detailLoading",a.messageDetailLoading),m(3),C("channels",a.channels)("messageStats",a.channelMessageStats),m(2),C("trace",a.trace)("loading",P(43,60,a.loading$)??!1)("selectedNode",a.traceSelectedNode)("selectedMessageDetail",a.traceSelectedMessageDetail)("detailLoa
219ding",a.traceDetailLoading))},dependencies:[pe,Jn,dt,jt,ct,he,Zn,ht,Ft,Jt,Fe,ur,et,ge,en,tn,la,ra,ca,sa,Sl,da,pt],styles:[".distribution-range[_ngcontent-%COMP%]{height:36px}.distribution-range[_ngcontent-%COMP%]     .mat-button-toggle-label-content{line-height:34px;font-size:12px;font-weight:500}.distribution-search[_ngcontent-%COMP%]{flex:1 1 320px;max-width:460px;min-width:0}.distribution-search-input[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.distribution-refresh[_ngcontent-%COMP%]{margin-left:auto}.distribution-tabbar[_ngcontent-%COMP%]{position:relative;margin:calc(-1 * var(--admin-page-pad, 1rem)) calc(-1 * var(--admin-page-pad, 1rem)) 0}.distribution-progress[_ngcontent-%COMP%]{position:absolute;top:48px;margin-top:-4px;left:0;right:0;height:4px;z-index:2}.distribution-tabs[_ngcontent-%COMP%]{display:block;background:transparent}.distribution-tabs[_ngcontent-%COMP%]     .mat-mdc-tab-header{background:#fff;border-bottom:1px solid rgba(26,31,26,.09);padding:0 calc(var(--admin-page-pad, 1rem) + 12px)}.distribution-tabs[_ngcontent-%COMP%]     .mat-mdc-tab .mdc-tab__text-label{font-size:12.5px;font-weight:500;letter-spacing:0}.distribution-tabs[_ngcontent-%COMP%]     .mat-mdc-tab-body-wrapper{background:transparent}.distribution-tabs[_ngcontent-%COMP%]     .mat-mdc-tab-body-content{background:transparent;padding:var(--admin-page-pad, 1rem) var(--admin-page-pad, 1rem) 40px;overflow:visible}"]});let t=n;return t})();var KP=["settingsTableRef"],XP=["mappingsTableRef"],JP=(t,n)=>n.id;function ZP(t,n){if(t&1){let e=$();l(0,"app-admin-settings-table",15,0),w("saveRow",function(o){F(e);let a=h(2);return B(a.onSaveRow(o))}),s()}if(t&2){let e=h(2);C("groups",e.settingsGroups)}}function tk(t,n){if(t&1){let e=$();l(0,"app-admin-settings-table",16,1),w("saveRow",function(o){F(e);let a=h(2);return B(a.onSaveRow(o))})("destructiveAction",function(o){F(e);let a=h(2);return B(a.onDestructiveAction(o))}),s()}if(t&2){let e=h(2);C("groups",e.mappingsGroups)}}function ek(t,n){if(t&1){let e=$();l(0,"app-dropin-terminal-token-form",17),S(1,"async"),S(2,"async"),w("provisionTokenEmitter",function(){F(e);let o=h(2);return B(o.provisionCampsiteToken())}),s()}if(t&2){let e=h(2);C("campsiteId",e.selectedCampsite.id)("campsiteToken",P(1,3,e.campsiteToken$))("loading",P(2,5,e.campsiteTokenLoading$))}}function ik(t,n){if(t&1){let e=$();l(0,"app-campsite-directors",18),S(1,"async"),S(2,"async"),S(3,"async"),w("addDirector",function(){F(e);let o=h(2);return B(o.openAddDirectorDialog())})("deleteDirector",function(o){F(e);let a=h(2);return B(a.onDeleteDirector(o))})("getPasswordResetLink",function(o){F(e);let a=h(2);return B(a.onGetPasswordResetLink(o))}),s()}if(t&2){let e=h(2);C("directors",P(1,4,e.directors$))("loading",P(2,6,e.directorsLoading$))("errorMessage",P(3,8,e.directorsErrorMessage$))("actionsBusy",e.directorActionsBusy)}}function nk(t,n){if(t&1){let e=$();l(0,"app-ai-extract-info",19),S(1,"async"),w("extractInfoEmitter",function(o){F(e);let a=h(2);return B(a.onAiExtractInfo(o))}),s()}if(t&2){let e=h(2);C("campsite",e.selectedCampsite)("loading",P(1,2,e.aiExtractLoading$))}}function ok(t,n){if(t&1){let e=$();l(0,"div",3)(1,"div",5)(2,"app-campsite-header",6),w("dashboardClick",function(){F(e);let o=h();return B(o.goToDashboard(o.selectedCampsite))}),s()(),l(3,"div",7),x(4,ZP,2,1,"app-admin-settings-table",8),s(),l(5,"div",9),x(6,tk,2,1,"app-admin-settings-table",10),x(7,ek,3,7,"app-dropin-terminal-token-form",11),M(8,"app-booking-map-card",12),x(9,ik,4,10,"app-campsite-directors",13),x(10,nk,2,4,"app-ai-extract-info",14),s()()}if(t&2){let e=h();m(2),C("campsite",e.selectedCampsite)("externalSourceName",(e.campDashboard==null||e.campDashboard.externalSource==null?null:e.campDashboard.externalSource.name)??null),m(2),v(e.settingsGroups.length>0?4:-1),m(2),v(e.mappingsGroups.length>0?6:-1),m(),v(e.isSuperAdmin()?7:-1),m(),C("selectedCampsite",e.selectedCampsite),m(),v(e.canCreateCampsiteOwner()?9:-1),m(),v(e.isSuperAdmin()?10:-1)}}function ak(t,n){if(t&1){let e=$();l(0,"button",23),w("click",function(){let o=F(e).$implicit,a=h(2);return B(a.onSearchSelect(o))}),l(1,"span",24),d(2),s(),l(3,"mat-icon",25),d(4,"chevron_right"),s()()}if(t&2){let e=n.$implicit;
219m(2),_(e.name||e.id)}}function rk(t,n){if(t&1&&(l(0,"div",4)(1,"h2",20),d(2,"Recent campsites"),s(),l(3,"div",21),z(4,ak,5,1,"button",22,JP),s()()),t&2){let e=h();m(4),H(e.recentCampsites)}}function sk(t,n){t&1&&M(0,"app-loading")}var Ru={[gr.BY_PAYMENT_DATE]:[Ii.NETS,Ii.STRIPE_NEW]},Au={[Ii.NETS]:[gr.BY_PAYMENT_DATE]},qc=t=>Object.values(ml).includes(t),Ja=(()=>{let n=class n{constructor(i,o,a,r,c,p,u,f,g,b,y,E,D,k){this.authService=i,this.campsiteService=o,this.campsiteDirectorService=a,this.adminSiteSettings=r,this.channelManagerAdmin=c,this.router=p,this.settingsService=u,this.uiMessaging=f,this.databaseService=g,this.userDialog=b,this.dialog=y,this.route=E,this.breadcrumbService=D,this.recentCampsitesService=k,this.directors$=new tt([]),this.directorsLoading$=new tt(!1),this.directorsErrorMessage$=new tt(null),this.aiExtractError$=new tt(!1),this.aiExtractLoading$=new tt(!1),this.campsiteToken$=new tt(null),this.campsiteTokenLoading$=new tt(!1),this.siteSettingsLoading$=new tt(!1),this.campDashboardLoading$=new tt(!1),this.commission=null,this.paymentSettings=null,this.serviceFeePolicy=null,this.googleHotelsChannel=void 0,this.settingsGroups=[],this.mappingsGroups=[],this.campDashboard=null,this.recentCampsites=[],this.deletingMapping=!1,this._routeGeneration=0,this._directorsGeneration=0,this.directorActionUid=null,this._directorActionToken=0}ngOnInit(){this._paramSub=this.route.paramMap.subscribe(i=>{let o=i.get("campsiteId"),a=++this._routeGeneration;if(!o){this.breadcrumbService.clear(),this.recentCampsites=this.recentCampsitesService.getAll();return}this.databaseService.getSiteDataById(o).then(r=>{if(a!==this._routeGeneration)return;let c=r?.name??"";this.selectCampsite({id:o,name:c}),this.breadcrumbService.set(Vr(c||o)),this.recentCampsitesService.record({id:o,name:c})}).catch(r=>console.log("EDIT SITE | SELECT FROM ROUTE",r))})}ngOnDestroy(){this._paramSub?.unsubscribe(),this.breadcrumbService.clear()}onSearchSelect(i){i?.id&&this.router.navigate(["/admin/edit",i.id])}selectCampsite(i){if(!i?.id)return;let o={id:i.id,name:i.name};this.directors$.next([]),this.directorsLoading$.next(!1),this.directorsErrorMessage$.next(null),this.selectedCampsite=o,this.commission=null,this.paymentSettings=null,this.serviceFeePolicy=null,this.googleHotelsChannel=void 0,this.campDashboard=null,this.mappingsGroups=[],this.deletingMapping=!1,this._directorActionToken++,this.directorActionUid=null,this.buildSettingsGroups(),this.settingsTable?.resetAll(),this.mappingsTable?.resetAll(),this.campsiteToken$.next(null),this._getCampsiteSettings(i.id),this._getCampsiteToken(i.id),this._getCampDashboard(i.id),this._getCampsiteDirectors(i.id)}_getCampDashboard(i){this.campDashboardLoading$.next(!0),this.databaseService.getSiteDataById(i).then(o=>{this.selectedCampsite?.id===i&&(this.campDashboard=this.campDashboardViewFrom(o),this.buildSettingsGroups(),this.buildMappingsGroups())}).catch(o=>{console.log("EDIT SITE | GET CAMP DASHBOARD",o),this.uiMessaging.openSnackBarError("Failed to load campsite details.")}).finally(()=>this.campDashboardLoading$.next(!1))}campDashboardViewFrom(i){return{stellplatzId:i?.stellplatzId==null||i.stellplatzId===""?"":String(i.stellplatzId),externalSource:i?.externalSource?.name&&i?.externalSource?.id?{name:String(i.externalSource.name),id:String(i.externalSource.id)}:null,serviceTier:qc(i?.serviceTier)?i.serviceTier:null,disabled:!!i?.disabled,hidden:!!i?.hidden,bookable:!!i?.bookable}}_getCampsiteToken(i){this.campsiteTokenLoading$.next(!0),this.settingsService.getCampsiteToken(i).pipe(Yt(1)).subscribe({next:o=>this.campsiteToken$.next(o),error:o=>{console.log("EDIT SITE | GET CAMPSITE TOKEN",o),this.uiMessaging.openSnackBarError("Failed to load drop-in terminal token.")},complete:()=>this.campsiteTokenLoading$.next(!1)})}provisionCampsiteToken(){this.selectedCampsite&&(this.campsiteTokenLoading$.next(!0),this.settingsService.provisionCampsiteToken(this.selectedCampsite.id).pipe(Yt(1)).subscribe({next:i=>{this.campsiteToken$.next(i),this.uiMessaging.openSnackBarSuccess("Drop-in terminal token provisioned.")},error:i=>{console.log("EDIT SITE | PROVISION CAMPSITE TOKEN",i),this.uiMessaging.openSnackBarError("Failed to provision drop-in terminal token.")},complete:()=>this.campsiteTokenLoading$.next(!1)}))}_getCampsiteSettings(i){this.siteSettingsLoading$.next(!0),Pi({settings:this.adminSiteSettings.getSiteSettings(i).pipe(Yt(1)),googleHotelsChannel:this.channelManagerAdmin.campsite(i).pipe(pi(o=>o.channels.find(a=>a.channel==="GOOGLE_HOTELS")??null),jn(()=>xi(null)))}).pipe(It(()=>this.siteSettingsLoading$.next(!1))).subscribe({next:({settings:o,googleHotelsChannel:a})=>{this.selectedCampsite?.id===i&&(this.commission=this.commissionFromSettings(o),this.paymentSettings={paymentProvider:o.paymentProvider,payoutPolicy:o.payoutPolicy},this.serviceFeePolicy=this.serviceFeePolicyFromSettings(o),this.googleHotelsChannel=a,this.buildSettingsGroups())},error:o=>console.log("EDIT SITE | GET CAMPSITE SETTINGS",o)})}_getCampsiteDirectors(i){if(!this.canCreateCampsiteOwner())return;let o=++this._directorsGeneration;this.directorsLoading$.next(!0),this.campsiteDirectorService.getCampsiteDirectors(i).pipe(Yt(1)).subscribe({next:a=>{o===this._directorsGeneration&&(this.directors$.next(a),this.directorsErrorMessage$.next(null),this.directorsLoading$.next(!1))},error:a=>{if(console.log("EDIT SITE | GET CAMPSITE DIRECTORS",a),o!==this._directorsGeneration)return;let r=this.campsiteDirectorService.errorMessageFor(a);this.directorsErrorMessage$.next(r),this.uiMessaging.openSnackBarError(r),this.directorsLoading$.next(!1)}})}openAddDirectorDialog(){if(!this.selectedCampsite)return;let i=this.selectedCampsite.id;this.dialog.open(ua,{width:"600px",maxWidth:"95%",autoFocus:!0,data:{campsite:this.selectedCampsite}}).afterClosed().pipe(Yt(1)).subscribe(()=>{this.selectedCampsite?.id===i&&this._getCampsiteDirectors(i)})}get directorActionsBusy(){return this.directorActionUid!==null}onDeleteDirector(i){return ce(this,null,function*(){if(!this.selectedCampsite||this.directorActionUid)return;let o=this.selectedCampsite.id,a=this.selectedCampsite.name,r=i.director?.id?.trim();if(!r||!(yield this.userDialog.confirmDelete({header:"Delete campsite director?",message:`Delete <b>${i.displayName}</b> (${i.displaySublabel})?<br><br>This deletes their whole <b>Campio login</b>, not just their access to <b>${a}</b>. If they also use this account to book as a guest on Campio, that sign-in stops working too and they lose access to their own bookings.<br><br>This cannot be undone.`,deleteButtonText:"Delete account"}))||this.selectedCampsite?.id!==o)return;let p=this._claimDirectorAction(r);this.campsiteDirectorService.deleteCampsiteDirector(o,r).pipe(Yt(1),It(()=>this._releaseDirectorAction(p))).subscribe({next:()=>{this.uiMessaging.openSnackBarSuccess(`${i.displayName} was deleted \u2014 their Campio login is gone.`),this.selectedCampsite?.id===o&&this.directors$.next(this.directors$.value.filter(u=>u.id!==r))},error:u=>{console.log("EDIT SITE | DELETE CAMPSITE DIRECTOR",u),this.uiMessaging.openSnackBarError(this.campsiteDirectorService.errorMessageFor(u,Uo.DELETE)),this.selectedCampsite?.id===o&&this._getCampsiteDirectors(o)}})})}onGetPasswordResetLink(i){if(!this.selectedCampsite||this.directorActionUid)return;let o=this.selectedCampsite.id,a=i.director?.id?.trim();if(!a)return;let r=i.director.email??"",c=i.displayName,p=this._claimDirectorAction(a);this.campsiteDirectorService.generatePasswordResetLink(o,a).pipe(Yt(1),It(()=>this._releaseDirectorAction(p))).subscribe({next:u=>{if(!u?.passwordResetLink?.trim()){console.log("EDIT SITE | GET DIRECTOR PASSWORD RESET LINK | 200 with 
219no link",u?.id),this.uiMessaging.openSnackBarError("No reset link came back from the server. Try again \u2014 if it keeps happening, tell the tech dept.");return}this.dialog.open(fa,Et(nt({},bn),{width:Oi.LARGE,autoFocus:!0,closeOnNavigation:!1,data:{email:u.email,rowEmail:r,rowLabel:c,passwordResetLink:u.passwordResetLink}}))},error:u=>{console.log("EDIT SITE | GET DIRECTOR PASSWORD RESET LINK",u),this.uiMessaging.openSnackBarError(this.campsiteDirectorService.errorMessageFor(u,Uo.RESET_LINK))}})}_claimDirectorAction(i){return this.directorActionUid=i,++this._directorActionToken}_releaseDirectorAction(i){i===this._directorActionToken&&(this.directorActionUid=null)}onSaveRow(i){let{groupId:o,rowId:a,value:r}=i;if(this.selectedCampsite)switch(o){case"commission":this.settingsService.updateCampsiteCommission(this.selectedCampsite.id,Et(nt({},this.commission),{[a]:Number(r)})).pipe(Yt(1)).subscribe({next:c=>{this.commission=this.commissionFromSettings(c),this.onRowSaved(a)},error:c=>this.onRowSaveFailed(a,"UPDATE CAMPSITE COMMISSION",c)});break;case"service-fee-policy":this.settingsService.updateServiceFeePolicy(this.selectedCampsite.id,Et(nt({},this.serviceFeePolicy),{[a]:!!r})).pipe(Yt(1)).subscribe({next:c=>{this.serviceFeePolicy=this.serviceFeePolicyFromSettings(c),this.onRowSaved(a)},error:c=>this.onRowSaveFailed(a,"UPDATE SERVICE FEE POLICY",c)});break;case"payment-settings":this.settingsService.updatePaymentSettings(this.selectedCampsite.id,Et(nt({},this.paymentSettings),{[a]:String(r)})).pipe(Yt(1)).subscribe({next:c=>{this.paymentSettings={paymentProvider:c.paymentProvider,payoutPolicy:c.payoutPolicy},this.onRowSaved(a)},error:c=>this.onRowSaveFailed(a,"UPDATE PAYMENT SETTINGS",c)});break;case"service-tier":{if(a!=="serviceTier"){this.settingsTable?.onSaveError(a);return}let c=this.selectedCampsite.id,p=r===_r?null:qc(r)?r:void 0;if(p===void 0){this.settingsTable?.onSaveError(a);return}this.campsiteService.setServiceTier(c,p).pipe(Yt(1)).subscribe({next:u=>{this.selectedCampsite?.id===c&&this.campDashboard&&(this.campDashboard=Et(nt({},this.campDashboard),{serviceTier:qc(u?.serviceTier)?u.serviceTier:null}),this.onRowSaved("serviceTier"))},error:u=>this.onRowSaveFailed("serviceTier","SET SERVICE TIER",u)});break}case"visibility":{let c=this.selectedCampsite.id,p=!!r,u={},f;if(a==="activeListing")f=this.databaseService.disableCampsite(c,!p).then(g=>u={disabled:!p,bookable:!!g?.bookable});else if(a==="searchVisible")f=this.databaseService.setCampsiteHidden(c,!p).then(()=>u={hidden:!p});else if(a==="bookable")f=this.databaseService.setCampsiteBookableAsAdmin(c,p).then(g=>u={bookable:g.bookable});else return;f.then(()=>{this.applyCampDashboardPatch(c,u),this.onRowSaved(a)}).catch(g=>this.onRowSaveFailed(a,"UPDATE CAMPSITE VISIBILITY",g));break}case"stellplatz":{if(this.deletingMapping){this.mappingsTable?.onSaveError("stellplatzId");return}let c=this.selectedCampsite.id,p=Number(String(r).trim());if(!Number.isInteger(p)||p<=0){this.uiMessaging.openSnackBarError("Stellplatz ID must be a positive integer."),this.mappingsTable?.onSaveError("stellplatzId");return}this.campsiteService.setStellplatzMapping(c,p).pipe(Yt(1)).subscribe({next:u=>{this.selectedCampsite?.id===c&&this.campDashboard&&(this.campDashboard=Et(nt({},this.campDashboard),{stellplatzId:u?.stellplatzId==null?"":String(u.stellplatzId)}),this.onRowSaved("stellplatzId"))},error:u=>this.onRowSaveFailed("stellplatzId","SET STELLPLATZ MAPPING",u)});break}}}onDestructiveAction(i){return ce(this,null,function*(){if(i.groupId!=="stellplatz"||i.rowId!=="stellplatzId"||!this.selectedCampsite||this.deletingMapping)return;let o=this.selectedCampsite.id,a=this.selectedCampsite.name,r=this.campDashboard?.stellplatzId??"";!r||!(yield this.userDialog.confirmDelete({header:"Delete Stellplatz mapping?",message:`This unlinks <b>${a}</b> from Stellplatz ID <b>${r}</b>. The campsite stays in Campio.`,deleteButtonText:"Delete mapping"}))||(this.deletingMapping=!0,this.campsiteService.deleteStellplatzMapping(o).pipe(Yt(1),It(()=>this.deletingMapping=!1)).subscribe({next:()=>{this.selectedCampsite?.id===o&&this.campDashboard&&(this.campDashboard=Et(nt({},this.campDashboard),{stellplatzId:""}),this.onRowSaved("stellplatzId","Stellplatz mapping deleted."))},error:p=>this.onRowSaveFailed("stellplatzId","DELETE STELLPLATZ MAPPING",p)}))})}applyCampDashboardPatch(i,o){this.selectedCampsite?.id!==i||!this.campDashboard||(this.campDashboard=nt(nt({},this.campDashboard),o))}ownsMappingRow(i){return this.mappingsGroups.some(o=>o.rows.some(a=>a.id===i))}tableFor(i){return this.ownsMappingRow(i)?this.mappingsTable:this.settingsTable}onRowSaved(i,o="Setting saved!"){let a=this.ownsMappingRow(i);a?this.buildMappingsGroups():this.buildSettingsGroups(),(a?this.mappingsTable:this.settingsTable)?.onSaveSuccess(i),this.uiMessaging.openSnackBarSuccess(o)}onRowSaveFailed(i,o,a){console.log(`EDIT SITE | ${o}`,a),this.tableFor(i)?.onSaveError(i),this.uiMessaging.openSnackBarError("Failed to save setting. Please try again.")}buildSettingsGroups(){let i=[];this.canEditServiceTier()&&this.campDashboard&&i.push({id:"service-tier",header:"SERVICE TIER",rows:[{id:"serviceTier",kind:"select",label:"Current tier",value:this.campDashboard.serviceTier??_r,options:this.serviceTierOptions()}]}),this.canEditDisabled()&&this.campDashboard&&i.push({id:"visibility",header:"VISIBILITY",rows:[{id:"activeListing",kind:"toggle",label:"Active listing",value:!this.campDashboard.disabled},{id:"searchVisible",kind:"toggle",label:"Show in search results and sitemap",value:!this.campDashboard.hidden},{id:"bookable",kind:"toggle",label:"Bookable",value:this.campDashboard.bookable,readonlyChip:!!this.campDashboard.externalSource}]}),this.canEditCommissionRates()&&this.commission&&i.push({id:"commission",header:"COMMISSION",rows:[{id:"commissionPercentageRegular",kind:"percent",label:"Regular bookings",value:this.commission.commissionPercentageRegular,min:0,max:100},{id:"commissionPercentageLinked",kind:"percent",label:"Linked bookings",value:this.commission.commissionPercentageLinked,min:0,max:100},{id:"commissionPercentageDropinTerminal",kind:"percent",label:"Terminal bookings",value:this.commission.commissionPercentageDropinTerminal,min:0,max:100}]}),this.canEditServiceFeePolicy()&&this.serviceFeePolicy&&i.push({id:"service-fee-policy",header:"SERVICE FEE POLICY",rows:[{id:"waiveAll",kind:"toggle",label:"Waive all service fees",value:this.serviceFeePolicy.waiveAll},{id:"waiveLinked",kind:"toggle",label:"Waive for linked bookings",value:this.serviceFeePolicy.waiveLinked},{id:"waiveTerminal",kind:"toggle",label:"Waive for terminal bookings",value:this.serviceFeePolicy.waiveTerminal},{id:"useMinimumFee",kind:"toggle",label:"Use minimum fee (where not waived)",value:this.serviceFeePolicy.useMinimumFee}]}),this.canEditPaymentSettings()&&this.paymentSettings&&i.push({id:"payment-settings",header:"PAYMENT SETTINGS",rows:[{id:"paymentProvider",kind:"select",label:"Payment provider",value:this.paymentSettings.paymentProvider,options:this.paymentProviderOptions()},{id:"payoutPolicy",kind:"select",label:"Payout policy",value:this.paymentSettings.payoutPolicy,options:this.payoutPolicyOptions()}]}),this.canEditIntegrations()&&this.googleHotelsChannel!==void 0&&i.push({id:"google-hotels",header:"GOOG
219LE HOTELS",rows:[{id:"googleHotelsStatus",kind:"readonly",label:"Google Hotels",value:this.googleHotelsStatusText()}]}),this.settingsGroups=i}buildMappingsGroups(){let i=[];if(this.isSuperAdmin()&&this.campDashboard&&i.push({id:"stellplatz",header:"STELLPLATZ",rows:[{id:"stellplatzId",kind:"text",inputType:"number",label:"Stellplatz ID",value:this.campDashboard.stellplatzId,destructiveActionLabel:this.campDashboard.stellplatzId?"Delete mapping":void 0}]}),this.campDashboard?.externalSource){let{name:o,id:a}=this.campDashboard.externalSource;i.push({id:"external-source",header:"EXTERNAL SOURCE",rows:[{id:"externalSourceName",kind:"text",label:"Source name",value:o,readonlyChip:!0},{id:"externalSourceId",kind:"text",label:"External ID",value:a,readonlyChip:!0}]})}this.mappingsGroups=i}paymentProviderOptions(){let i=this.paymentSettings?.payoutPolicy,o=Ru[i];return Object.values(Ii).map(a=>{let r=Au[a];return{value:a,label:a,disabled:a===Ii.STRIPE||!!o&&!o.includes(a)||!!r&&!r.includes(i)}})}serviceTierOptions(){return[...Object.values(ml).map(i=>({value:i,label:i})),{value:_r,label:"Unknown"}]}payoutPolicyOptions(){let i=this.paymentSettings?.paymentProvider,o=Au[i];return Object.values(gr).map(a=>{let r=Ru[a];return{value:a,label:a,disabled:!!o&&!o.includes(a)||!!r&&!r.includes(i)}})}commissionFromSettings(i){return{commissionPercentageLinked:i.commissionPercentageLinked,commissionPercentageRegular:i.commissionPercentageRegular,commissionPercentageDropinTerminal:i.commissionPercentageDropinTerminal}}googleHotelsStatusText(){let i=this.googleHotelsChannel;if(!i||!i.status)return"Not listed";switch(i.status){case"ACTIVE":return"Active";case"WITHDRAWN":return"Withdrawn";case"PENDING":return`Pending \u2014 waiting for Google to match (${i.statusSince?vd(new Date,new Date(i.statusSince)):0} days)`}}serviceFeePolicyFromSettings(i){return{waiveAll:i.serviceFeePolicy?.waiveAll??!1,waiveLinked:i.serviceFeePolicy?.waiveLinked??!1,waiveTerminal:i.serviceFeePolicy?.waiveTerminal??!1,useMinimumFee:i.serviceFeePolicy?.useMinimumFee??!1}}canEditServiceFeePolicy(){return this.isSuperAdmin()}goToDashboard(i){i&&this.router.navigate(["/dashboard/info"],{queryParams:{campsiteId:i.id}})}isSuperAdmin(){return this.authService.currentUserRole===Ho.ADMIN_SUPER}canCreateCampsiteOwner(){return this.isSuperAdmin()||this.authService.currentUserRole===Ho.ADMIN_CSM}canEditPaymentSettings(){return this.isSuperAdmin()||this.authService.currentUserRole===Ho.ADMIN_CSM}canEditDisabled(){return this.isSuperAdmin()||this.authService.currentUserRole===Ho.ADMIN_CSM}canEditCommissionRates(){return this.isSuperAdmin()}canEditServiceTier(){return this.isSuperAdmin()}canEditIntegrations(){return this.isSuperAdmin()}onAiExtractInfo(i){i.success?this.uiMessaging.openSnackBarSuccess("AI extraction triggered successfully!"):this.uiMessaging.openSnackBarError("Error triggering AI extraction. Please try again.")}};n.\u0275fac=function(o){return new(o||n)(O(po),O(nn),O(ho),O(pm),O(an),O(Gt),O(em),O(ut),O(_e),O(Dr),O(ve),O(xe),O(Qe),O(hm))},n.\u0275cmp=L({type:n,selectors:[["app-edit-site"]],viewQuery:function(o,a){if(o&1&&Xt(KP,5)(XP,5),o&2){let r;Tt(r=Dt())&&(a.settingsTable=r.first),Tt(r=Dt())&&(a.mappingsTable=r.first)}},decls:7,vars:6,consts:[["settingsTableRef",""],["mappingsTableRef",""],[3,"selectedData"],[1,"campsite-grid"],[1,"recent-campsites"],[1,"grid-header"],[3,"dashboardClick","campsite","externalSourceName"],[1,"grid-left"],["title","Settings",3,"groups"],[1,"grid-right"],["title","Mappings",3,"groups"],[3,"campsiteId","campsiteToken","loading"],[3,"selectedCampsite"],[3,"directors","loading","errorMessage","actionsBusy"],[3,"campsite","loading"],["title","Settings",3,"saveRow","groups"],["title","Mappings",3,"saveRow","destructiveAction","groups"],[3,"provisionTokenEmitter","campsiteId","campsiteToken","loading"],[3,"addDirector","deleteDirector","getPasswordResetLink","directors","loading","errorMessage","actionsBusy"],[3,"extractInfoEmitter","campsite","loading"],[1,"recent-campsites-title"],[1,"recent-campsites-grid"],["type","button",1,"recent-campsites-card"],["type","button",1,"recent-campsites-card",3,"click"],[1,"recent-campsites-card-label"],[1,"recent-campsites-card-arrow"]],template:function(o,a){o&1&&(l(0,"app-admin-subnav")(1,"app-search-campsites-auto-complete",2),w("selectedData",function(c){return a.onSearchSelect(c)}),s()(),x(2,ok,11,8,"div",3)(3,rk,6,0,"div",4),x(4,sk,1,0,"app-loading"),S(5,"async"),S(6,"async")),o&2&&(m(2),v(
219a.selectedCampsite?2:a.recentCampsites.length>0?3:-1),m(2),v(P(5,2,a.siteSettingsLoading$)||P(6,4,a.campDashboardLoading$)?4:-1))},dependencies:[pe,Or,ga,Ca,ha,_a,ma,pa,ae,Fe,pt],styles:['.campsite-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"header header" "left right";gap:1.25rem;padding:0 .5rem;width:100%}.grid-header[_ngcontent-%COMP%]{grid-area:header}.grid-left[_ngcontent-%COMP%]{grid-area:left;display:flex;flex-direction:column;gap:1.25rem;min-width:0}.grid-right[_ngcontent-%COMP%]{grid-area:right;display:flex;flex-direction:column;gap:1.25rem;min-width:0}.grid-header[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .grid-left[_ngcontent-%COMP%] > *[_ngcontent-%COMP%], .grid-right[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{width:100%}@media screen and (max-width:1100px){.campsite-grid[_ngcontent-%COMP%]{grid-template-columns:1fr;grid-template-areas:"header" "left" "right"}}.recent-campsites[_ngcontent-%COMP%]{padding:0 .5rem}.recent-campsites-title[_ngcontent-%COMP%]{margin:0 0 16px;font-family:inherit;font-size:20px;font-weight:700;letter-spacing:-.015em;color:#1a1f1a}.recent-campsites-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.recent-campsites-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:18px 20px;background:#fff;border:1px solid rgba(26,31,26,.09);border-radius:14px;color:#1a1f1a;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.recent-campsites-card[_ngcontent-%COMP%]:hover{border-color:var(--accent-border, #74c2ba);box-shadow:0 1px 3px #0000000f}.recent-campsites-card[_ngcontent-%COMP%]:hover   .recent-campsites-card-arrow[_ngcontent-%COMP%]{color:var(--accent, #19988b)}.recent-campsites-card-label[_ngcontent-%COMP%]{font-family:inherit;font-size:14px;font-weight:600}.recent-campsites-card-arrow[_ngcontent-%COMP%]{margin-left:auto;color:#1a1f1a66}']});let t=n;return t})();function lk(t,n){if(t&1&&(l(0,"a",4)(1,"span",5),d(2),s(),l(3,"mat-icon",6),d(4,"chevron_right"),s()()),t&2){let e=n.$implicit;C("routerLink","/admin/"+e.route),m(2),_(e.label)}}function ck(t,n){if(t&1&&(l(0,"div",0)(1,"h1",1),d(2),s(),l(3,"p",2),d(4),s(),l(5,"div",3),z(6,lk,5,2,"a",4,U),s()()),t&2){let e=n;m(2),_(e.label),m(2),A("Choose a page in ",e.label,"."),m(2),H(e.items)}}var bi=(()=>{let n=class n{constructor(i){this.group=Am(i.snapshot.data.groupIndex)}};n.\u0275fac=function(o){return new(o||n)(O(xe))},n.\u0275cmp=L({type:n,selectors:[["app-admin-group-index"]],decls:1,vars:1,consts:[[1,"group-index"],[1,"group-index-title"],[1,"group-index-subtitle"],[1,"group-index-grid"],[1,"group-index-card",3,"routerLink"],[1,"group-index-card-label"],[1,"group-index-card-arrow"]],template:function(o,a){if(o&1&&x(0,ck,8,2,"div",0),o&2){let r;v((r=a.group)?0:-1,r)}},dependencies:[Ye,Fe],styles:[".group-index[_ngcontent-%COMP%]{padding:28px}.group-index-title[_ngcontent-%COMP%]{margin:0;font-family:inherit;font-size:24px;font-weight:700;line-height:1.15;letter-spacing:-.015em;color:#1a1f1a}.group-index-subtitle[_ngcontent-%COMP%]{margin:6px 0 20px;font-family:inherit;font-size:14px;color:#1a1f1a8c}.group-index-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.group-index-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:18px 20px;background:#fff;border:1px solid rgba(26,31,26,.09);border-radius:14px;text-decoration:none;color:#1a1f1a;transition:border-color .15s ease,box-shadow .15s ease}.group-index-card[_ngcontent-%COMP%]:hover{border-color:var(--accent-border, #74c2ba);box-shadow:0 1px 3px #0000000f}.group-index-card[_ngcontent-%COMP%]:hover   .group-index-card-arrow[_ngcontent-%COMP%]{color:var(--accent, #19988b)}.group-index-card-label[_ngcontent-%COMP%]{font-family:inherit;font-size:14px;font-weight:600}.group-index-card-arrow[_ngcontent-%COMP%]{margin-left:auto;color:#1a1f1a66}"]});let t=n;return t})();var Fu=t=>[t];function dk(t,n){if(t&1&&(l(0,"a",27),d(1),s()),t&2){let e=n.$implicit,i=h(5);Y("admin-nav-row--active",i.isLeafActive(e.route)),C("routerLink",fe(4,Fu,e.route)),m(),A(" ",e.label," ")}}function mk(t,n){if(t&1&&(l(0,"div",25),z(1,dk,2,6,"a",26,U),s()),t&2){let e=h(2).$implicit;m(),H(e.items)}}function pk(t,n){if(t&1){let e=$();l(0,"button",23),w("click",function(){F(e);let o=h().$implicit,a=h(2);return B(a.toggleGroup(o))}),l(1,"mat-icon"),d(2),s(),l(3,"span"),d(4),s(),l(5,"mat-icon",24),d(6," expand_more "),s()(),x(7,mk,3,0,"div",25)}if(t&2){let e=h().$implicit,i=h(2);Y("admin-nav-row--active",i.isGroupActive(e)),m(2),_(e.icon),m(2),_(e.label),m(),Y("admin-nav-chevron--collapsed",!i.isGroupExpanded(e)),m(2),v(i.isGroupExpanded(e)?7:-1)}}function uk(t,n){if(t&1&&(l(0,"a",28)(1,"mat-icon"),d(2),s(),l(3,"span"),d(4),s()()),t&2){let e=h().$implicit,i=h(2);Y("admin-nav-row--active",i.isLeafActive(e.route)),C("routerLink",fe(5,Fu,e.route)),m(2),_(e.icon),m(2),_(e.label)}}function fk(t,n){if(t&1&&x(0,pk,8,7)(1,uk,5,7,"a",22),t&2){let e=n.$implicit;v(e.type==="group"?0:1)}}function hk(t,n){if(t&1&&(l(0,"div",21),d(1),s(),z(2,fk,2,1,null,null,U)),t&2){let e=n.$implicit;m(),_(e.label),m(),H(e.items)}}function gk(t,n){if(t&1){let e=$();l(0,"button",29),w("click",function(){F(e),h();let o=lt(2);return B(o.toggle())}),l(1,"mat-icon"),d(2,"menu"),s()()}}function _k(t,n){if(t&1&&(l(0,"span",17),d(1),s()),t&2){let e=h();m(),_(e.userRole)}
219}var js=(()=>{let n=class n{constructor(i,o,a){this.authService=i,this.breakpointObserver=o,this.router=a,this.userRole="",this.userTier=null,this.sections=Cl,this.items=Nr,this.sideNavMode="side",this.sideNavOpen=!0,this.expandedGroups=new Set,this.activeUrl=""}ngOnInit(){this.userDataSub=this.authService.userData$.subscribe(i=>this.loggedInUser=i?.name??""),this.userStateSub=this.authService.userState$.subscribe(i=>{this.userRole=i.kind==="super-admin"?this.roleLabel(i.tier):"",this.userTier=i.kind==="super-admin"?i.tier:null}),this.breakpointSub=this.breakpointObserver.observe("(min-width: 800px)").subscribe(({matches:i})=>{this.sideNavMode=i?"side":"over",this.sideNavOpen=i}),this.autoExpandFor(this.router.url),this.routerSub=this.router.events.pipe(Le(i=>i instanceof cr)).subscribe(i=>{this.autoExpandFor(i.urlAfterRedirects),this.sideNavMode==="over"&&(this.sideNavOpen=!1)})}ngOnDestroy(){this.userDataSub?.unsubscribe(),this.userStateSub?.unsubscribe(),this.breakpointSub?.unsubscribe(),this.routerSub?.unsubscribe()}signOut(){this.authService.signOut()}get userInitial(){return this.loggedInUser?.trim().charAt(0).toUpperCase()??""}get visibleSections(){return this.sections.filter(i=>i.label!=="INSIGHT"||this.userTier==="super")}roleLabel(i){switch(i){case"super":return"Super admin";case"csm":return"CSM";case"content_mgr":return"Content manager"}}toggleGroup(i){this.expandedGroups.has(i.label)?this.expandedGroups.delete(i.label):this.expandedGroups.add(i.label)}isGroupExpanded(i){return this.expandedGroups.has(i.label)}isGroupActive(i){return this.matchesRoute(i.indexRoute)||i.items.some(o=>this.matchesRoute(o.route))}isLeafActive(i){return this.matchesRoute(i)}matchesRoute(i){let o=this.activeUrl.split("?")[0],a=`/admin/${i}`;return o===a||o.startsWith(`${a}/`)}autoExpandFor(i){this.activeUrl=i;for(let o of this.items)o.type==="group"&&this.isGroupActive(o)&&this.expandedGroups.add(o.label)}};n.\u0275fac=function(o){return new(o||n)(O(po),O(hd),O(Gt))},n.\u0275cmp=L({type:n,selectors:[["app-admin-home"]],decls:37,vars:8,consts:[["sidenav",""],["userMenu","matMenu"],[1,"admin-shell"],[1,"admin-sidebar",3,"openedChange","mode","opened","fixedInViewport"],[1,"admin-sidebar-brand"],[1,"admin-sidebar-logo"],["src","assets/campio.png","alt",""],[1,"admin-badge"],[1,"admin-nav"],[1,"admin-sidebar-footer"],[1,"admin-content"],[1,"admin-topbar"],["mat-icon-button","","aria-label","Menu icon"],["type","button","aria-label","User menu",1,"admin-topbar-user",3,"matMenuTriggerFor"],[1,"admin-avatar"],[1,"admin-user-meta"],[1,"admin-user-name"],[1,"admin-user-role"],[1,"admin-user-chevron"],["mat-menu-item","",3,"click"],[1,"admin-page"],[1,"admin-nav-section-label"],[1,"admin-nav-row","admin-nav-single",3,"admin-nav-row--active","routerLink"],["type","button",1,"admin-nav-row","admin-nav-group",3,"click"],[1,"admin-nav-chevron"],[1,"admin-nav-subgroup"],[1,"admin-nav-row","admin-nav-subitem",3,"admin-nav-row--active","routerLink"],[1,"admin-nav-row","admin-nav-subitem",3,"routerLink"],[1,"admin-nav-row","admin-nav-single",3,"routerLink"],["mat-icon-button","","aria-label","Menu icon",3,"click"]],template:function(o,a){if(o&1&&(l(0,"mat-sidenav-container",2)(1,"mat-sidenav",3,0),w("openedChange",function(c){return a.sideNavOpen=c}),l(3,"div",4)(4,"div",5),M(5,"img",6),s(),l(6,"b"),d(7,"Campio"),s(),l(8,"span",7),d(9,"SUPER-ADMIN"),s()(),l(10,"nav",8),z(11,hk,4,1,null,null,U),s(),l(13,"div",9),M(14,"app-app-version"),s()(),l(15,"mat-sidenav-content",10)(16,"header",11),x(17,gk,3,0,"button",12),M(18,"app-admin-breadcrumb"),l(19,"button",13)(20,"span",14),d(21),s(),l(22,"span",15)(23,"span",16),d(24),s(),x(25,_k,2,1,"span",17),s(),l(26,"mat-icon",18),d(27,"expand_more"),s()(),l(28,"mat-menu",null,1)(30,"button",19),w("click",function(){return a.signOut()}),l(31,"mat-icon"),d(32,"logout"),s(),l(33,"span"),d(34,"Log out"),s()()()(),l(35,"div",20),M(36,"router-outlet"),s()()()),o&2){let r=lt(29);m(),C("mode",a.sideNavMode)("opened",a.sideNavOpen)("fixedInViewport",a.sideNavMode==="over"),m(10),H(a.visibleSections),m(6),v(a.sideNavMode==="over"?17:-1),m(2),C("matMenuTriggerFor",r),m(2),_(a.userInitial),m(3),_(a.loggedInUser),m(),v(a.userRole?25:-1)}},dependencies:[Hd,zd,Fe,Ye,nm,$d,ke,vl,mo,co,lo,fd],styles:["[_nghost-%COMP%]{display:block;height:100vh;--accent: #19988b;--accent-strong: #12776c;--accent-tint: #e5f4f1;--accent-tint-strong: #d0eae5;--accent-on-tint: #0e5f57;--accent-border: #74c2ba;--admin-page-pad: 1rem}.admin-shell[_ngcontent-%COMP%]{height:100%}.admin-sidebar[_ngcontent-%COMP%]{width:260px;background:#fff;border-right:1px solid rgba(26,31,26,.09);display:flex;flex-direction:column}.admin-sidebar-brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:20px 20px 18px}.admin-sidebar-logo[_ngcontent-%COMP%]{width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center}.admin-sidebar-logo[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:28px;height:28px;object-fit:contain}.admin-sidebar-brand[_ngcontent-%COMP%]   b[_ngcontent-%COMP%]{font-family:inherit;font-size:15px;
219color:#1a1f1a;letter-spacing:-.01em}.admin-badge[_ngcontent-%COMP%]{margin-left:auto;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700;color:#1a1f1a73;border:1px solid rgba(26,31,26,.12);border-radius:4px;padding:3px 5px}.admin-nav[_ngcontent-%COMP%]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:6px 12px 12px}.admin-nav-section-label[_ngcontent-%COMP%]{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:600;letter-spacing:.08em;color:#1a1f1a61;padding:16px 10px 8px}.admin-nav-section-label[_ngcontent-%COMP%]:first-child{padding-top:10px}.admin-nav-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;border:none;background:transparent;color:#1a1f1ab8;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;text-align:left}.admin-nav-row[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.admin-nav-row--active[_ngcontent-%COMP%]{background:var(--accent-tint);color:var(--accent-on-tint);font-weight:600}.admin-nav-chevron[_ngcontent-%COMP%]{margin-left:auto;transition:transform .15s ease}.admin-nav-chevron--collapsed[_ngcontent-%COMP%]{transform:rotate(-90deg)}.admin-nav-subgroup[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px 21px;padding-left:13px;border-left:1px solid rgba(26,31,26,.1)}.admin-nav-subitem[_ngcontent-%COMP%]{padding:8px 10px;border-radius:7px;font-family:inherit;font-size:14px;font-weight:500;color:#1a1f1a9e;text-decoration:none}.admin-nav-subitem.admin-nav-row--active[_ngcontent-%COMP%]{background:var(--accent);color:#fff;font-weight:600}.admin-sidebar-footer[_ngcontent-%COMP%]{border-top:1px solid rgba(26,31,26,.08)}.admin-content[_ngcontent-%COMP%]{background:#f6f7f5;display:flex;flex-direction:column;height:100%}.admin-topbar[_ngcontent-%COMP%]{min-height:64px;flex:none;display:flex;align-items:center;gap:16px;padding:8px 28px;background:#fff;border-bottom:1px solid rgba(26,31,26,.09)}.admin-page[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding:var(--admin-page-pad)}.admin-topbar-user[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:10px;padding:4px 6px 4px 4px;border:none;border-radius:10px;background:transparent;cursor:pointer;font-family:inherit}.admin-topbar-user[_ngcontent-%COMP%]:hover{background:#1a1f1a0a}.admin-avatar[_ngcontent-%COMP%]{width:32px;height:32px;flex:none;border-radius:50%;background:var(--accent-tint-strong);color:var(--accent-on-tint);display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:12px;font-weight:600}.admin-user-meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1}.admin-user-name[_ngcontent-%COMP%]{font-family:inherit;font-size:12.5px;font-weight:600;color:#1a1f1a}.admin-user-role[_ngcontent-%COMP%]{font-family:inherit;font-size:10.5px;color:#1a1f1a73}.admin-user-chevron[_ngcontent-%COMP%]{color:#1a1f1a66;font-size:18px;width:18px;height:18px}@media(max-width:800px){.admin-user-meta[_ngcontent-%COMP%], .admin-user-chevron[_ngcontent-%COMP%]{display:none}}  .admin-shell .mat-drawer-backdrop.mat-drawer-shown{background-color:#0e120d6b}  .admin-shell .mat-mdc-form-field{--mat-form-field-outlined-outline-color: rgba(26, 31, 26, .18);--mat-form-field-outlined-hover-outline-color: rgba(26, 31, 26, .32);--mat-form-field-outlined-focus-outline-color: rgba(26, 31, 26, .45)}  .admin-shell mat-card{margin:0}  .admin-shell .column{gap:.5rem}  .admin-shell .row+.row{margin-top:.5rem}  .admin-shell .row{margin-left:-.5rem;margin-right:-.5rem}"]});let t=n;return t})();var Cn=t=>({query(n,e,i){return t(n,e,i).pipe(jn(()=>xi(null)),Le(o=>o!==null))}});var Us=(()=>{let n=class n{constructor(i){this.databaseService=i,this.invalidateQueries$=new X,this.depositSubject$=Cn((o,a,r)=>this.databaseService.getPointDepositsForAdmin(void 0,o,a,r)),this.depositSource=new Qt,this.expenseSubject$=Cn((o,a,r)=>this.databaseService.getPointExpensesForAdmin(void 0,o,a,r)),this.expenseSource=new Qt}onDepositQueryChange(i){this.depositSubject$.query(...i).subscribe(o=>{this.deposits.source.data=o.data,this.deposits.paginator.length=o.count})}onExpenseQueryChange(i){this.expenseSubject$.query(...i).subscribe(o=>{this.expenses.source.data=o.data,this.expenses.paginator.length=o.count})}};n.\u0275fac=function(o){return new(o||n)(O(_e))},n.\u0275cmp=L({type:n,selectors:[["app-loyalty-points"]],viewQuery:function(o,a){if(o&1&&Xt(ji,5)(Ui,5),o&2){let r;Tt(r=Dt())&&(a.deposits=r.first),Tt(r=Dt())&&(a.expenses=r.first)}},decls:17,vars:4,consts:[[1,"row"],[1,"column"],[3,"queryChange","source","parentInvalidationTrigger$"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title")(5,"b"),d(6,"Point deposits"),s()()(),l(7,"mat-card-content")(8,"app-loyalty-point-global-deposit-table",2),w("queryChange",function(c){return a.onDepositQueryChange(c)}),s()()()(),l(9,"div",1)(10,"mat-card")(11,"mat-card-header")(12,"mat-card-title")(13,"b"),d(14,"Point expenses"),s()()(),l(15,"mat-card-content")(16,"app-loyalty-point-global-expense-table",2),w("queryChange",function(c){return a.onExpenseQueryChange(c)}),s()()()()()),o&2&&(m(8),C("source",a.depositSource)("parentInvalidationTrigger$",a.invalidateQueries$),m(8),C("source",a.expenseSource)("parentInvalidationTrigger$",a.invalidateQueries$))},dependencies:[J,ot,st,Z,ji,Ui],encapsulation:2});let t=n;return t})();var Ws=(()=>{let n=class n{constructor(i,o,a,r){this.databaseService=i,this.router=o,this.dialog=a,this.uiMessagingService=r,this.depositSubject$=Cn((c,p,u)=>this.databaseService.getPointDepositsForAdmin(this.user.firebaseId,c,p,u)),this.depositSource=new Qt,this.expenseSubject$=Cn((c,p,u)=>
219this.databaseService.getPointExpensesForAdmin(this.user.firebaseId,c,p,u)),this.expenseSource=new Qt,this.expirationSource=new Qt,this.balance$=new tt(-1),this.invalidateQueries$=new X,this.user=history.state.user,this.user||o.navigateByUrl("/admin")}onDepositQueryChange(i){this.depositSubject$.query(...i).subscribe(o=>{this.deposits.source.data=o.data,this.deposits.paginator.length=o.count})}onExpenseQueryChange(i){this.expenseSubject$.query(...i).subscribe(o=>{this.expenses.source.data=o.data,this.expenses.paginator.length=o.count})}ngAfterViewInit(){this.getExpirationDates(),this.getPointBalance(),this.invalidateQueries$.subscribe(()=>{this.getExpirationDates(),this.getPointBalance()})}ngOnDestroy(){this.invalidateQueries$.complete()}getExpirationDates(){this.databaseService.getPointExpirationsForAdmin(this.user.firebaseId).pipe(Te()).subscribe(i=>{this.expirationSource.data=i.expirations})}getPointBalance(){this.databaseService.getPointBalanceForAdmin(this.user.firebaseId).pipe(Te()).subscribe(i=>{this.balance$.next(i)})}handleCompensationModalOpen(){this.dialog.open(xm,{data:{maxRevocation:this.balance$.value}}).afterClosed().pipe(Te()).subscribe(o=>{this.databaseService.giveCompensationPointsToUser(this.user.firebaseId,o.reason,o.amount).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Points have been compensated!"),this.invalidateQueries$.emit()},error:a=>{this.uiMessagingService.openSnackBarError("An error occured"),console.log("POINT SHOP SERVICE | UPDATE VENDOR",a)}})})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(Gt),O(ve),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-loyalty-profile"]],viewQuery:function(o,a){if(o&1&&Xt(Vn,5)($n,5),o&2){let r;Tt(r=Dt())&&(a.deposits=r.first),Tt(r=Dt())&&(a.expenses=r.first)}},decls:27,vars:7,consts:[[1,"row"],[1,"column"],[2,"display","flex","justify-content","space-between"],["mat-raised-button","","color","primary",3,"click"],[3,"balance","user"],[3,"source"],[3,"queryChange","parentInvalidationTrigger$","source"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title",2),d(5," Profile information "),s(),l(6,"button",3),w("click",function(){return a.handleCompensationModalOpen()}),d(7,"Compensate points"),s()(),l(8,"mat-card-content"),M(9,"app-loyalty-point-user-info",4),s(),l(10,"mat-card-title")(11,"b"),d(12,"Point expiration dates"),s()(),l(13,"mat-card-content"),M(14,"app-loyalty-point-expiration-table",5),s()()(),l(15,"div",1)(16,"mat-card")(17,"mat-card-header")(18,"mat-card-title"),d(19," Point deposits "),s()(),l(20,"mat-card-content")(21,"app-loyalty-point-deposit-table",6),w("queryChange",function(c){return a.onDepositQueryChange(c)}),s()(),l(22,"mat-card-title")(23,"b"),d(24,"Point expenses"),s()(),l(25,"mat-card-content")(26,"app-loyalty-point-expense-table",6),w("queryChange",function(c){return a.onExpenseQueryChange(c)}),s()()()()()),o&2&&(m(9),C("balance",a.balance$.value)("user",a.user),m(5),C("source",a.expirationSource),m(7),C("parentInvalidationTrigger$",a.invalidateQueries$)("source",a.depositSource),m(5),C("parentInvalidationTrigger$",a.invalidateQueries$)("source",a.expenseSource))},dependencies:[J,ot,st,et,Z,Uc,ja,Vn,$n],encapsulation:2});let t=n;return t})();var Gs=(()=>{let n=class n{constructor(i,o,a){this.databaseService=i,this.uiMessagingService=o,this.dialog=a,this.pointShopVendors=new Qt}ngOnInit(){this._fetchShopVendors()}_fetchShopVendors(){return ce(this,null,function*(){this.databaseService.getPointShopVendors().pipe(Te()).subscribe(i=>{this.pointShopVendors.data=i})})}handleModalOpen(i,o){return this.dialog.open(i,Et(nt({},xn(Oi.LARGE)),{data:o})).afterClosed().pipe(Te(),Le(r=>!!r))}handleCreateVendor(){this.handleModalOpen(_l,{}).subscribe(i=>{this.databaseService.createPointShopVendor(i).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Vendor created!"),this._fetchShopVendors()},error:o=>{this.uiMessagingService.openSnackBarError("Vendor creation failed!"),console.log("POINT SHOP SERVICE | CREATE VENDOR",o)}})})}handleUpdateVendor(i){this.handleModalOpen(_l,{vendor:i}).subscribe(o=>{this.databaseService.updatePointShopVendor(i.id,o).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Vendor edited!"),this._fetchShopVendors()},error:a=>{this.uiMessagingService.openSnackBarError("Failed to edit vendor product!"),console.log("POINT SHOP SERVICE | UPDATE VENDOR",a)}})})}handleDeleteVendor(i){this.handleModalOpen(on,{header:"Delete vendor?",message:`Are you sure you want to delete the vendor "${i.name}"?`,deleteButtonText:"Yes, delete",cancelButtonText:"Abort"}).subscribe(o=>{o&&this.databaseService.deletePointShopVendor(i.id).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Vendor edited!"),this._fetchShopVendors()},error:a=>{this.uiMessagingService.openSnackBarError("Failed to edit vendor product!"),console.log("POINT SHOP SERVICE | DELETE VENDOR",a)}})})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(ut),O(ve))},n.\u0275cmp=L({type:n,selectors:[["app-point-shop-vendors"]],decls:11,vars:1,consts:[[1,"row"],[1,"column",2,"width","100%"],["mat-flat-button","","color","primary",3,"click"],[1,"table-responsive"],[3,"editClick","deleteClick","
219source"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title"),d(5,"Point shop vendors"),s(),l(6,"button",2),w("click",function(){return a.handleCreateVendor()}),d(7,"Add vendor"),s()(),l(8,"mat-card-content")(9,"div",3)(10,"app-vendor-overview",4),w("editClick",function(c){return a.handleUpdateVendor(c)})("deleteClick",function(c){return a.handleDeleteVendor(c)}),s()()()()()()),o&2&&(m(10),C("source",a.pointShopVendors))},dependencies:[J,ot,st,et,Z,Wa],encapsulation:2});let t=n;return t})();var qs=(()=>{let n=class n{constructor(i,o,a,r){this.databaseService=i,this.pointShopConverterService=o,this.uiMessagingService=a,this.dialog=r,this.pointShopItems=new Qt,this.pointShopVendors=new Qt,this.displayedColumns=["vendor","type","title","description","tags","isActive","maxPurchasesPerUser","maxPurchasesTotal","actions"],this.PointShopItemType=Qi}ngOnInit(){this._fetchShopVendors(),this._fetchShopItems()}_fetchShopItems(){return ce(this,null,function*(){this.databaseService.getPointShopItems().pipe(Te()).subscribe(i=>{this.pointShopItems.data=i})})}_fetchShopVendors(){return ce(this,null,function*(){this.databaseService.getPointShopVendors().pipe(Te()).subscribe(i=>{this.pointShopVendors.data=i})})}handleModalOpen(i,o){return this.dialog.open(i,Et(nt({},xn(Oi.LARGE)),{data:o})).afterClosed().pipe(Te(),Le(r=>!!r))}handleCreateShopItem(i){let o;switch(i){case Qi.CAMPIO_GIFTCARD:o=this.handleModalOpen(fl,{vendors:this.pointShopVendors.data,defaultValue:null});break;case Qi.DONATION:o=this.handleModalOpen(hl,{vendors:this.pointShopVendors.data,defaultValue:null});break;case Qi.GENERIC:o=this.handleModalOpen(gl,{vendors:this.pointShopVendors.data,defaultValue:null});break}o.subscribe(a=>{let r=this.pointShopConverterService.mapPointShopItemFormToInsert(a);this.databaseService.createPointShopItem(r).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Vendor created!"),this._fetchShopItems()},error:c=>{this.uiMessagingService.openSnackBarError("Vendor creation failed!"),console.log("POINT SHOP SERVICE | CREATE POINT SHOP ITEM",c)}})})}handleUpdateShopItem(i){let o;switch(i.type){case Qi.DONATION:o=this.handleModalOpen(hl,{vendors:this.pointShopVendors.data,defaultValue:i});break;case Qi.CAMPIO_GIFTCARD:o=this.handleModalOpen(fl,{vendors:this.pointShopVendors.data,defaultValue:i});break;case Qi.GENERIC:o=this.handleModalOpen(gl,{vendors:this.pointShopVendors.data,defaultValue:i});break}o.subscribe(a=>{let r=this.pointShopConverterService.mapPointShopItemFormToInsert(a);this.databaseService.updatePointShopItem(i.id,r).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Point shop product edited!"),this._fetchShopItems()},error:c=>{this.uiMessagingService.openSnackBarError("Failed to edit point shop product!"),console.log("POINT SHOP SERVICE | UPDATE POINT SHOP ITEM",c)}})})}handleDeleteShopItem(i){this.handleModalOpen(on,{header:"Delete product?",message:`Are you sure you want to delete the product "${i.title.en}"?`,deleteButtonText:"Yes, delete",cancelButtonText:"Abort"}).subscribe(o=>{o&&this.databaseService.deletePointShopItem(i.id).pipe(Te()).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Point shop product edited!"),this._fetchShopItems()},error:a=>{this.uiMessagingService.openSnackBarError("Failed to edit point shop product!"),console.log("POINT SHOP SERVICE | DELETE POINT SHOP ITEM",a)}})})}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(Zd),O(ut),O(ve))},n.\u0275cmp=L({type:n,selectors:[["app-point-shop"]],decls:19,vars:2,consts:[["menu","matMenu"],[1,"row"],[1,"column",2,"width","100%"],["mat-flat-button","","color","primary",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],[1,"table-responsive"],[3,"editClick","deleteClick","source"]],template:function(o,a){if(o&1&&(l(0,"div",1)(1,"div",2)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title"),d(5," Point shop products "),s(),l(6,"button",3),d(7,"Add product"),s(),l(8,"mat-menu",null,0)(10,"button",4),w("click",function(){return a.handleCreateShopItem(a.PointShopItemType.DONATION)}),d(11,"Add donation product"),s(),l(12,"button",4),w("click",function(){return a.handleCreateShopItem(a.PointShopItemType.CAMPIO_GIFTCARD)}),d(13," Add Campio gift card product "),s(),l(14,"button",4),w("click",function(){return a.handleCreateShopItem(a.PointShopItemType.GENERIC)}),d(15,"Add generic product"),s()()(),l(16,"mat-card-content")(17,"div",5)(18,"app-product-overview",6),w("edit
219Click",function(c){return a.handleUpdateShopItem(c)})("deleteClick",function(c){return a.handleDeleteShopItem(c)}),s()()()()()()),o&2){let r=lt(9);m(6),C("matMenuTriggerFor",r),m(12),C("source",a.pointShopItems)}},dependencies:[J,ot,st,et,mo,co,lo,Z,Ua],styles:["mat-card-title[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.table-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:.25rem}"]});let t=n;return t})();function Ck(t,n){if(t&1){let e=$();l(0,"app-review-details-overlay",3),w("approveStatus",function(o){F(e);let a=h();return B(a.onApproveChange(o))})("declinedStatus",function(){F(e);let o=h();return B(o.onDeclineChange())}),s()}t&2&&C("review",n)}var Ys=(()=>{let n=class n{constructor(i,o,a,r,c){this.route=i,this.router=o,this.databaseService=a,this.uiMessagingService=r,this.breadcrumbService=c,this.review$=new tt(null)}ngOnInit(){this._getReview()}_getReview(){if(this.reviewId=this.route.snapshot.paramMap.get("id"),!this.reviewId){this.router.navigate(["/admin/reviews"]);return}try{this.reviewSubscription=this.databaseService.getReviewById(this.reviewId).subscribe(i=>{this.review$.next(i);let o=new ft().transform(i.createdAt);this.breadcrumbService.set(`${i.campsite?.name}, ${o}`)})}catch(i){console.log("REVIEW COMPONENT | GET REVIEW",i)}}onApproveChange(i){let o={images:i,status:Xn.APPROVED};this.reviewStatusSubscription=this.databaseService.approveReviewById(this.reviewId,o).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Updated"),this.router.navigate(["/admin/reviews"])},error:()=>this.uiMessagingService.openSnackBarError("Error")})}onDeclineChange(){let i={status:Xn.DECLINED};this.reviewStatusSubscription=this.databaseService.approveReviewById(this.reviewId,i).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Updated"),this.router.navigate(["/admin/reviews"])},error:()=>this.uiMessagingService.openSnackBarError("Error")})}ngOnDestroy(){this.breadcrumbService.clear(),this.reviewSubscription?.unsubscribe(),this.reviewStatusSubscription?.unsubscribe()}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Gt),O(_e),O(ut),O(Qe))},n.\u0275cmp=L({type:n,selectors:[["app-review-details"]],decls:4,vars:3,consts:[[1,"row"],[1,"column"],[3,"review"],[3,"approveStatus","declinedStatus","review"]],template:function(o,a){if(o&1&&(l(0,"div",0)(1,"div",1),x(2,Ck,1,1,"app-review-details-overlay",2),S(3,"async"),s()()),o&2){let r;m(2),v((r=P(3,1,a.review$))?2:-1,r)}},dependencies:[qa,pt],styles:[".column[_ngcontent-%COMP%]{width:100%}"],changeDetection:0});let t=n;return t})();function bk(t,n){if(t&1&&(l(0,"mat-option",2),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),_(e)}}var Qs=(()=>{let n=class n{constructor(i,o,a){this.databaseService=i,this.uiMessagingService=o,this.cdr=a,this.loading$=new tt(!1),this.reviewsTotalCount$=new tt(0),this.reviewSource=new Qt,this.reviewSubject$=Cn((r,c,p)=>this.databaseService.getReviews(r,c,p))}onReviewQueryChange(i){this.loading$.next(!0),this.reviewSubject$.query(...i).subscribe(o=>{this.reviewTable.source.data=o.data,this.reviewTable.paginator.length=o.count,this.loading$.next(!1)})}updateReviewStatus(i){let o={status:i.status};this.reviewStatusUpdateSubscription=this.databaseService.approveReviewById(i.id,o).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Review is updated!"),this.updateRowStatus(i.id,i.status)},error:()=>this.uiMessagingService.openSnackBarError("Failed!")})}updateRowStatus(i,o){this.reviewSource.data=this.reviewSource.data.map(a=>a.id===i?Et(nt({},a),{status:o}):a),this.cdr.markForCheck()}ngOnDestroy(){this.reviewStatusUpdateSubscription?.unsubscribe()}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(ut),O(Yn))},n.\u0275cmp=L({type:n,selectors:[["ng-component"]],viewQuery:function(o,a){if(o&1&&Xt(kr,5),o&2){let r;Tt(r=Dt())&&(a.reviewTable=r.first)}},decls:17,vars:8,consts:[["reviewsRef",""],[3,"formControl"],[3,"value"],["mat-stroked-button","",3,"click"],[1,"row"],[1,"column"],[3,"queryChange","reviewStatusUpdated","reviewsTotalCount","loading","source"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"mat-form-field")(2,"mat-label"),d(3,"Filter by status "),s(),l(4,"mat-select",1),z(5,bk,2,2,"mat-option",2,U),s()(),l(7,"button",3),w("click",function(){F(r);let p=lt(14);return B(p.resetFilter())}),d(8,"Reset filter"),s()(),l(9,"div",4)(10,"div",5)(11,"mat-card")(12,"mat-card-content")(13,"app-reviews",6,0),S(15,"async"),S(16,"async"),w("queryChange",function(p){return a.onReviewQueryChange(p)})("reviewStatusUpdated",function(p){return a.updateReviewStatus(p)}),s()()()()()}if(o&2){let r=lt(14);m(4),C("formControl",r.filterType),m(),H(r.ReviewStatusTypes),m(8),C("reviewsTotalCount",P(15,4,a.reviewsTotalCount$))("loading",P(16,6,a.loading$))("source",a.reviewSource)}},dependencies:[pe,ht,Ft,Vt,dt,ct,ne,He,Rt,et,J,Z,kr,pt],styles:[".column[_ngcontent-%COMP%]{width:100%}"],changeDetection:0});let t=n;return t})();function xk(t,n){t&1&&M(0,"mat-progress-bar",2)}function vk(t,n){if(t&1){let e=$();l(0,"button",26),S(1,"async"),w("click",function(){F(e);let o=h(2);return B(o.openAcknowledge())}),d(2," Acknowledge "),s()}if(t&2){let e=h(2);C("disabled",P(1,1,e.loading$))}}function yk(t,n){if(t&1&&(l(0,"div")(1,"span",9),d(2,"Generated"),s(),l(3,"div"),d(4),S(5,"adminDate"),s()()),t&2){let e=h();m(4),_(P(5,1,e.generatedAt))}}function Sk(t,n){if(t&1&&(l(0,"div",21),d(1),s()),t&2){let e=h();m(),A(" Invoice cancelled",e.cancellationReason?": "+e.cancellationReason:"",". ")}}function Mk(t,n){if(t&1){let e=$();l(0,"div",27)(1,"div")(2,"span",9),d(3,"Self-billing invoice"),s(),l(4,"div",28),d(5),s()(),l(6,"span",6),d(7),s(),x(8,yk,6,3,"div"),l(9,"div",29)(10,"button",11),w("click",function(){F(e);let o=h(2);return B(o.download("pdf"))}),d(11," Download PDF "),s(),l(12,"button",11),w("click",function(){F(e);let o=h(2);return B(o.download("excel"))}),d(13," Download Excel "),s()()(),x(14,Sk,2,1,"div",21)}if(t&2){let e=n,i=h(2);m(5),_(e.number),m(),C("ngClass",i.invoiceStatusColorClass(e.status)),m(),_(i.invoiceStatusLabel(e.status)),m(),v(e.generatedAt?8:-1),m(2),C("disabled",!e.files.pdf),m(2),C("disabled",!e.files.excel),m(2),v(e.status==="CANCELLED"?14:-1)}}function wk(t,n){if(t&1){let e=$();l(0,"button",11),S(1,"async"),w("click",function(){F(e);let o=h(3);return B(o.syncSellerLegal())}),d(2," Sync seller legal from Stripe "),s()}if(t&2){let e=h(3);C("disabled",P(1,1,e.loading$))}}function Ek(t,n){if(t&1&&(l(0,"div",20)(1,"span"),d(2),s(),x(3,wk,3,3,"button",30),s()),t&2){let e=h(),i=h();m(2),A("Document refused",e.documentRefusal?": "+e.documentRefusal.code:"","."),m(),v(i.showSyncSellerLegal(e)?3:-1)}}function Tk(t,n){t&1&&(l(0,"div",21),d(1,"Balanced \u2014 the self-billing document has not been generated yet."),s())}function Dk(t,n){t&1&&(l(0,"div",21),d(1,"Not applicable for this payout."),s())}function Pk(t,n){if(t&1&&(l(0,"tr")(1,"td"),d(2),s(),l(3,"td",5),d(4),s(),l(5,"td",24),d(6),s(),l(7,"td",24),d(8),s(),l(9,"td",24),d(10),s(),l(11,"td",24),d(12),s(),l(13,"td"),d(14),s()()),t&2){let e=n.$implicit,i=h(2);m(2),_(i.lineKindLabel(e.kind)),m(2),_(i.lineRef(e)),m(2),_(i.money(e.gross,e.currency)),m(2),_(i.money(e.vatAmount,e.currency)),m(2),_(i.money(e.commissionExVat,e.currency)),m(2),_(i.money(e.sellerPayable,e.currency)),m(2),_(i.resolutionLabel(e.resolution))}}function kk(t,n){if(t&1&&(l(0,"tr",25)(1,"td",31),d(2,"Totals"),s(),l(3,"td",24),d(4),s(),l(5,"td",24),d(6),s(),l(7,"td",24),d(8),s(),l(9,"td",24),d(10),s(),M(11,"td"),s()),t&2){let e=h(),i=h();m(4),_(i.money(i.linesTotal(e,"gross"),e.payoutCurrency)),m(2),_(i.money(i.linesTotal(e,"vatAmount"),e.payoutCurrency)),m(2),_(i.money(i.linesTotal(e,"commissionExVat"),e.payoutCurrency)),m(2),_(i.money(i.linesTotal(e,"sellerPayable"),e.payoutCurrency))}}function Ok(t,n){if(t&1&&(l(0,"tr",25)(1,"td",32),d(2),s()()),t&2){let e=h();m(2),A("Mixed currencies (",e.mixedCurrencies==null?null:e.mixedCurrencies.join(", "),") \u2014 no single-currency total.")}}function Ik(t,n){if(t&1&&(l(0,"span",36),d(1),s()),t&2){let e=n.$implicit,i=h(3);m(),_(i.reasonLabel(e))}}function Rk(t,n){if(t&1&&(l(0,"div",27)(1,"div")(2,"span",9),d(3,"Last error"),s(),l(4,"div"),d(5),s()(),l(6,"div")(7,"span",9),d(8,"Failure c
219ode"),s(),l(9,"div",5),d(10),s(),l(11,"div"),d(12),s()()()),t&2){let e=h(2);m(5),_(e.lastError),m(5),_(e.failureCode||"\u2014"),m(2),_(e.failureMessage)}}function Ak(t,n){if(t&1&&(l(0,"h2",33),d(1,"Errors & imbalance"),s(),l(2,"div",34)(3,"div",27)(4,"div")(5,"span",9),d(6,"Unbalanced delta"),s(),l(7,"div",16),d(8),s()(),l(9,"div",35)(10,"span",9),d(11,"Reasons"),s(),l(12,"div"),z(13,Ik,2,1,"span",36,U),s()(),l(15,"div")(16,"span",9),d(17,"Retry attempts"),s(),l(18,"div",16),d(19),s()()(),x(20,Rk,13,3,"div",27),s()),t&2){let e=h(),i=h();m(8),_(i.money(e.unbalancedDelta,e.payoutCurrency)),m(5),H(e.unbalancedReasons),m(6),_(e.resolutionAttempts),m(),v(e.lastError?20:-1)}}function Fk(t,n){if(t&1&&(l(0,"span",36),d(1),s()),t&2){let e=n.$implicit,i=h(3);m(),_(i.reasonLabel(e))}}function Bk(t,n){if(t&1&&(l(0,"h2"),d(1,"Acknowledgement audit"),s(),l(2,"div",18)(3,"div",27)(4,"div")(5,"span",9),d(6,"Accepted by"),s(),l(7,"div"),d(8),s()(),l(9,"div")(10,"span",9),d(11,"When"),s(),l(12,"div"),d(13),S(14,"adminDate"),s()(),l(15,"div")(16,"span",9),d(17,"Reason"),s(),l(18,"div"),d(19),s()()(),l(20,"div",35)(21,"span",9),d(22,"Folded out"),s(),l(23,"div"),z(24,Fk,2,1,"span",36,U),s()()()),t&2){let e=n;m(8),_(e.by),m(5),_(P(14,3,e.at)),m(6),_(e.reason),m(5),H(e.acknowledgedReasons)}}function Lk(t,n){if(t&1){let e=$();l(0,"div",3)(1,"div",4)(2,"h1"),d(3),s(),l(4,"span",5),d(5),s(),l(6,"span",6),d(7),s()(),l(8,"div",7)(9,"div",8)(10,"span",9),d(11,"Payout id"),s(),l(12,"span",5),d(13),s()(),l(14,"div",8)(15,"span",9),d(16,"Arrival"),s(),l(17,"span"),d(18),S(19,"adminDate"),s()(),l(20,"div",8)(21,"span",9),d(22,"Processed"),s(),l(23,"span"),d(24),S(25,"adminDate"),s()(),l(26,"div",8)(27,"span",9),d(28,"Connected account"),s(),l(29,"span",5),d(30),s()(),l(31,"div",8)(32,"span",9),d(33,"Provider"),s(),l(34,"span"),d(35),s()(),l(36,"div",8)(37,"span",9),d(38,"Stripe payout status"),s(),l(39,"span"),d(40),s()()(),l(41,"div",10)(42,"button",11),S(43,"async"),w("click",function(){F(e);let o=h();return B(o.reResolve())}),d(44,"Re-resolve"),s(),x(45,vk,3,3,"button",12),l(46,"button",11),S(47,"async"),w("click",function(){F(e);let o=h();return B(o.regenerateDocument())}),d(48," Regenerate documents "),s()()(),l(49,"div",13)(50,"div",14)(51,"span",15),d(52,"Seller payable"),s(),l(53,"span",16),d(54),s(),l(55,"span",17),d(56,"headline figure"),s()(),l(57,"div",14)(58,"span",15),d(59,"Gross"),s(),l(60,"span",16),d(61),s(),l(62,"span",17),d(63,"booking revenue"),s()(),l(64,"div",14)(65,"span",15),d(66,"Commission"),s(),l(67,"span",16),d(68),s(),l(69,"span",17),d(70),s()(),l(71,"div",14)(72,"span",15),d(73,"Stripe net"),s(),l(74,"span",16),d(75),s(),l(76,"span",17),d(77,"amount paid out"),s()(),l(78,"div",14)(79,"span",15),d(80,"Excluded"),s(),l(81,"span",16),d(82),s(),l(83,"span",17),d(84),s()()(),l(85,"h2"),d(86,"Documents"),s(),l(87,"div",18)(88,"div",19)(89,"span",9),d(90,"Document state"),s(),l(91,"span",6),d(92),s()(),x(93,Mk,15,7),l(94,"div"),x(95,Ek,4,2,"div",20)(96,Tk,2,0,"div",21)(97,Dk,2,0,"div",21),s()(),l(98,"div",22)(99,"h2"),d(100,"Reconciliation lines"),s(),l(101,"span"),d(102),s()(),l(103,"div",18)(104,"table",23)(105,"thead")(106,"tr")(107,"th"),d(108,"Kind"),s(),l(109,"th"),d(110,"Order / booking"),s(),l(111,"th",24),d(112,"Gross"),s(),l(113,"th",24),d(114,"VAT"),s(),l(115,"th",24),d(116,"Commission"),s(),l(117,"th",24),d(118,"Seller payable"),s(),l(119,"th"),d(120,"Resolution"),s()()(),l(121,"tbody"),z(122,Pk,15,7,"tr",null,U),s(),l(124,"tfoot"),x(125,kk,12,4,"tr",25)(126,Ok,3,1,"tr",25),s()()(),x(127,Ak,21,3),x(128,Bk,26,5)}if(t&2){let e,i,o,a=n,r=h();m(3),_(r.campsiteLabel(a)),m(2),_(a.campsiteId),m(),C("ngClass",r.statusColorClass(a)),m(),_(r.statusLabel(a)),m(6),_(a.stripePayoutId),m(5),_(P(19,30,a.arrivalDate)),m(6),_(mt(25,32,r.processedAt(a),!0)),m(6),_(a.connectedAccountId),m(5),_(r.providerLabel(a)),m(5),_(a.stripePayoutStatus),m(2),C("disabled",P(43,35,r.loading$)),m(3),v(r.showAcknowledge(a)?45:-1),m(),C("disabled",P(47,37,r.loading$)),m(8),_(r.money(a.totals.sellerPayable,a.payoutCurrency)),m(7),_(r.money(a.totals.gross,a.payoutCurrency)),m(7),_(r.money(a.totals.commissionExVat,a.payoutCurrency)),m(2),A("ex VAT \xB7 VAT ",r.money(a.totals.commissionVat,a.payoutCurrency)),m(5),_(r.money(a.stripePayoutAmount,a.payoutCurrency)),m(7),_(r.money(a.excludedNet,a.payoutCurrency)),m(2),rt("",a.excludedCount," foreign transaction",a.excludedCount===1?"":"s"," folded out"),m(7),C("ngClass",r.documentStateColorClass(a)),m(),_(r.documentStateLabel(a)),m(),v((e=a.invoice)?93:-1,e),m(2),v((i=a.documentState)==="REFUSED"?95:i==="PENDING"?96:i==="NOT_APPLICABLE"?97:-1),m(7),rt("",a.lines.length," balance-transaction lines \xB7 ",a.payoutCurrency.toUpperCase()),m(20),H(a.lines),m(3),v(r.showLinesTotal(a)?125:126),m(2),v(r.hasProblems(a)?127:-1),m(),v((o=a.acknowledgement)?128:-1,o)}}var Nk=new Set(["MISSING_SELLER_IDENTIFIER","MISSING_SELLER_NAME","MISSING_SELLER_COUNTRY"]),Ks=(()=>{let n=class n{constructor(i,o,a,r,c,p,u){if(this.router=o,this.dialog=a,this.adminStripePayoutsService=r,this.fileExportService=c,this.uiMessagingService=p,this.breadcrumbService=u,this.dto$=new tt(null),this.loading$=new tt(!1),this._stripePayoutId=i.snapshot.paramMap.get("id"),!this._stripePayoutId){this.router.navigate(["/admin","stripe-payouts"]);return}this._load()}ngOnDestroy(){this._sub?.unsubscribe(),this.breadcrumbService.clear()}statusLabel(i){return go[i.status].label}statusColorClass(i){return go[i.status].colorClass}providerLabel(i){return Nm[i.paymentProvider]}campsiteLabel(i){return Yo(i)}money(i,o){return`${o.toUpperCase()} ${qo(i).toFixed(2)}`}processedAt(i){return i.resolvedAt??i.terminalAt??i.createdAt}lineKindLabel(i){return Bm[i]}resolutionLabel(i){return Lm[i]}reasonLabel(i){return Fm[i]}lineRef(i){return i.orderId??i.refundId??i.bookingIds[0]??""}linesTotal(i,o){return i.lines.reduce((a,r)=>a+r[o],0)}
219showLinesTotal(i){return!i.mixedCurrencies?.length}documentStateLabel(i){return _o[i.documentState].label}documentStateColorClass(i){return _o[i.documentState].colorClass}invoiceStatusLabel(i){return xl[i].label}invoiceStatusColorClass(i){return xl[i].colorClass}showAcknowledge(i){return i.status==="UNBALANCED"}hasProblems(i){return i.unbalancedDelta!==0||i.unbalancedReasons.length>0||!!i.lastError}showSyncSellerLegal(i){return i.documentState!=="REFUSED"||!i.documentRefusal?!1:Nk.has(i.documentRefusal.code)}reResolve(){this._stripePayoutId&&(this.loading$.next(!0),this.adminStripePayoutsService.reResolve(this._stripePayoutId).pipe(It(()=>this.loading$.next(!1))).subscribe({next:i=>{if(i.status===204){this.uiMessagingService.openSnackBarSuccess("Payout discarded \u2014 it held no Campio money"),this.router.navigate(["/admin","stripe-payouts"]);return}this.uiMessagingService.openSnackBarSuccess("Payout re-resolved."),this._load()},error:i=>this._handleActionError(i)}))}openAcknowledge(){this.dialog.open(Ya,{width:"460px",maxWidth:"95%",autoFocus:!0}).afterClosed().pipe(Yt(1)).subscribe(i=>{i&&this._acknowledge(i)})}regenerateDocument(){this._stripePayoutId&&(this.loading$.next(!0),this.adminStripePayoutsService.regenerateDocument(this._stripePayoutId).pipe(It(()=>this.loading$.next(!1))).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Document regeneration started."),this._load()},error:i=>this._handleActionError(i)}))}syncSellerLegal(){let i=this.dto$.getValue();i&&(this.loading$.next(!0),this.adminStripePayoutsService.syncSellerLegal(i.campsiteId).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Seller legal synced from Stripe \u2014 regenerating documents\u2026"),this.regenerateDocument()},error:o=>{this.loading$.next(!1),this._handleActionError(o)}}))}download(i){let o=this.dto$.getValue();if(!this._stripePayoutId||!o?.invoice)return;let a=`${o.invoice.number}.${i==="pdf"?"pdf":"xlsx"}`;this.adminStripePayoutsService.download(this._stripePayoutId,i).subscribe({next:r=>this.fileExportService.saveBlob(r,a),error:r=>this._handleActionError(r)})}_acknowledge(i){this._stripePayoutId&&(this.loading$.next(!0),this.adminStripePayoutsService.acknowledge(this._stripePayoutId,i).pipe(It(()=>this.loading$.next(!1))).subscribe({next:()=>{this.uiMessagingService.openSnackBarSuccess("Payout acknowledged."),this._load()},error:o=>this._handleActionError(o)}))}_load(){this._stripePayoutId&&(this.loading$.next(!0),this._sub?.unsubscribe(),this._sub=this.adminStripePayoutsService.getById(this._stripePayoutId).pipe(It(()=>this.loading$.next(!1))).subscribe({next:i=>{this.dto$.next(i),this.breadcrumbService.set(Yo(i)||i.stripePayoutId)},error:i=>this._handleActionError(i)}))}_handleActionError(i){this.uiMessagingService.openSnackBarError(this.adminStripePayoutsService.errorMessageFor(i))}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Gt),O(ve),O(Fr),O(uo),O(ut),O(Qe))},n.\u0275cmp=L({type:n,selectors:[["app-stripe-payout-details"]],decls:6,vars:6,consts:[[1,"row"],[1,"column","stripe-payout-details-page",2,"width","100%"],["mode","indeterminate"],[1,"stripe-payout-details-header"],[1,"stripe-payout-details-title"],[1,"stripe-payout-details-mono"],[1,"stripe-payout-details-chip",3,"ngClass"],[1,"stripe-payout-details-meta"],[1,"stripe-payout-details-meta-item"],[1,"stripe-payout-details-meta-label"],[1,"stripe-payout-details-actions"],["mat-stroked-button","","type","button",3,"click","disabled"],["mat-stroked-button","","type","button",1,"stripe-payout-details-ack-button",3,"disabled"],[1,"stripe-payout-details-tiles"],[1,"stripe-payout-details-tile"],[1,"stripe-payout-details-tile-label"],[1,"stripe-payout-details-tile-value"],[1,"stripe-payout-details-tile-hint"],[1,"stripe-payout-details-card"],[1,"stripe-payout-details-doc-state"],[1,"alert","alert-warning","stripe-payout-details-doc-refused"],[1,"alert","alert-info"],[1,"stripe-payout-details-section-title"],[1,"stripe-payout-details-lines"],[1,"stripe-payout-details-num"],[1,"stripe-payout-details-totals-row"],["mat-stroked-button","","type","button",1,"stripe-payout-details-ack-button",3,"click","disabled"],[1,"stripe-payout-details-doc-row"],[1,"stripe-payout-details-mono","stripe-payout-details-invoice-number"],[1,"stripe-payout-details-doc-actions"],["mat-stroked-button","","type","button",3,"disabled"],["colspan","2"],["colspan","7"],[1,"stripe-payout-details-problems-title"],[1,"stripe-payout-details-card","stripe-payout-details-problems"],[1,"stripe-payout-details-reasons"],[1,"stripe-payout-details-reason-chip"]],template:function(o,a){if(o&1&&(l(0,"div",0)(1,"div",1),x(2,xk,1,0,"mat-progress-bar",2),S(3,"async"),x(4,Lk,129,39),S(5,"async"),s()()),o&2){let r;m(2),v(P(3,2,a.loading$)?2:-1),m(2),v((r=P(5,4,a.dto$))?4:-1,r)}},dependencies:[ge,ii,et,pt,ft],styles:[".stripe-payout-details-page[_ngcontent-%COMP%]{padding-bottom:40px}.stripe-payout-details-header[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;padding:18px 20px}.stripe-payout-details-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.stripe-payout-details-title[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0;font-size:18px;font-weight:600}
219.stripe-payout-details-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#0000008a}.stripe-payout-details-meta[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:12px}.stripe-payout-details-meta-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.stripe-payout-details-meta-label[_ngcontent-%COMP%]{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#0006}.stripe-payout-details-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.stripe-payout-details-ack-button[_ngcontent-%COMP%]{color:#8a5b12}.stripe-payout-details-chip[_ngcontent-%COMP%]{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.chip--green[_ngcontent-%COMP%]{background-color:#e6f4ea;color:#1e7e34}.chip--blue[_ngcontent-%COMP%]{background-color:#eef2fb;color:#2f4a93}.chip--amber[_ngcontent-%COMP%]{background-color:#fdf3e2;color:#8a5b12}.chip--red[_ngcontent-%COMP%]{background-color:#fce8e6;color:#c5221f}.chip--grey[_ngcontent-%COMP%]{background-color:#0000000f;color:#0000008a}.stripe-payout-details-tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:#eeeeec;border:1px solid #eeeeec;border-radius:6px;margin-top:16px;overflow:hidden}.stripe-payout-details-tile[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.stripe-payout-details-tile-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#0006}.stripe-payout-details-tile-value[_ngcontent-%COMP%]{font-size:17.5px;font-weight:600;white-space:nowrap}.stripe-payout-details-tile-hint[_ngcontent-%COMP%]{font-size:11px;color:#0006}.stripe-payout-details-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;padding:14px 16px}.stripe-payout-details-doc-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.stripe-payout-details-doc-refused[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.stripe-payout-details-doc-state[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.stripe-payout-details-invoice-number[_ngcontent-%COMP%]{font-size:14px;font-weight:600;margin-top:2px}.stripe-payout-details-doc-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;gap:8px}.stripe-payout-details-section-title[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:10px;margin:22px 0 10px}.stripe-payout-details-section-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0}table.stripe-payout-details-lines[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.stripe-payout-details-lines[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .stripe-payout-details-lines[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 14px;border-bottom:1px solid #f6f6f5;text-align:left;font-size:12.5px}.stripe-payout-details-lines[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#0006;background:#fafafa}.stripe-payout-details-totals-row[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{background:#fafafa;font-weight:600}.stripe-payout-details-num[_ngcontent-%COMP%]{text-align:right}.stripe-payout-details-problems-title[_ngcontent-%COMP%]{color:#8c2f0f}.stripe-payout-details-problems[_ngcontent-%COMP%]{background:#fffaf6;border-color:#f0d4c0}.stripe-payout-details-reasons[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;flex:1 1 320px;min-width:0}.stripe-payout-details-reason-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:2px 9px;border-radius:10px;background:#fdeae4;color:#a33417;font-size:11.5px;font-weight:500;margin:2px 4px 0 0}"]});let t=n;return t})();function Vk(t,n){if(t&1){let e=$();l(0,"app-search-campsites-auto-complete",41),w("selectedData",function(o){F(e);let a=h();return B(a.onCampsiteSelected(o))}),s()}}function $k(t,n){t&1&&M(0,"mat-progress-bar",22)}function zk(t,n){t&1&&(l(0,"th",42),d(1,"Arrival"),s())}function Hk(t,n){if(t&1&&(l(0,"td",43)(1,"div")(2,"span"),d(3),S(4,"adminDate"),s()(),l(5,"div",44),d(6),s()()),t&2){let e=n.$implicit;m(3),_(P(4,2,e.arrivalDate)),m(3),_(e.stripePayoutId)}}function jk(t,n){t&1&&(l(0,"th",42),d(1,"Processed"),s())}function Uk(t,n){if(t&1&&(l(0,"td",43)(1,"div")(2,"span"),d(3),S(4,"adminDate"),s()(),l(5,"div",45),d(6),S(7,"date"),s()()),t&2){let e=n.$implicit,i=h();m(3),_(P(4,2,i.processedAt(e))),m(3),_(mt(7,4,i.processedAt(e),"HH:mm"))}}function Wk(t,n){t&1&&(l(0,"th",42),d(1,"Campsite"),s())}function Gk(t,n){if(t&1&&(l(0,"td",43)(1,"div"),d(2),s(),l(3,"div",44),d(4),s()()),t&2){let e=n.$implicit,i=h();m(2),_(i.campsiteLabel(e)),m(2),_(e.campsiteId)}}function qk(t,n){t&1&&(l(0,"th",42),d(1,"Account"),s())}function Yk(t,n){if(t&1&&(l(0,"td",46),d(1),s()),t&2){let e=n.$implicit;m(),_(e.connectedAccountId)}}function Qk(t,n){t&1&&(l(0,"th",42),d(1,"Amount"),s())}function Kk(t,n){if(t&1&&(l(0,"td",47),d(1),S(2,"number"),s()),t&2){let e=n.$implicit,i=h();m(),rt(" ",e.payoutCurrency.toUpperCase()," ",mt(2,2,i.amount(e),"1.2-2")," ")}}function Xk(t,n){t&1&&(l(0,"th",42),d(1,"Status"),s())}function Jk(t,n){if(t&1&&(l(0,"td",43)(1,"span",48),d(2),s()()),t&2){let e=n.$implicit,i=h();m(),C("ngClass",i.statusColorClass(e.status)),m(),_(i.statusLabel(e.status))}}function Zk(t,n){t&1&&(l(0,"th",42),d(1,"Documents"),s())}function tO(t,n){if(t&1&&(l(0,"td",43)(1,"span",48),d(2),s()()),t&2){let e=n.$implicit,i=h();
219m(),C("ngClass",i.documentStateColorClass(e)),m(),_(i.documentStateLabel(e))}}function eO(t,n){t&1&&(l(0,"th",42),d(1,"Difference"),s())}function iO(t,n){t&1&&(l(0,"span",49),d(1,"\u2014"),s())}function nO(t,n){if(t&1&&(l(0,"span",50),d(1),S(2,"number"),s()),t&2){let e=h().$implicit,i=h();m(),rt("",e.payoutCurrency.toUpperCase()," ",mt(2,2,i.difference(e),"1.2-2"))}}function oO(t,n){if(t&1&&(l(0,"td",47),x(1,iO,2,0,"span",49)(2,nO,3,5,"span",50),s()),t&2){let e=n.$implicit;m(),v(e.unbalancedDelta===0?1:2)}}function aO(t,n){t&1&&M(0,"tr",51)}function rO(t,n){if(t&1){let e=$();l(0,"tr",52),w("click",function(){let o=F(e).$implicit,a=h();return B(a.openPayout(o))}),s()}}function sO(t,n){t&1&&(l(0,"div",39),d(1,"No payouts match the current filters."),s())}function lO(t,n){if(t&1){let e=$();l(0,"div",40)(1,"button",53),w("click",function(){F(e);let o=h();return B(o.loadMore())}),d(2,"Load more"),s()()}}var Xs=(()=>{let n=class n{constructor(i,o,a,r){this.adminStripePayoutsService=i,this.router=o,this.route=a,this.uiMessagingService=r,this.displayedColumns=["arrival","processed","campsite","account","amount","status","documents","balance"],this.rows=[],this.loading$=new tt(!1),this.hasMore=!1,this.loaded=!1,this.campsiteId=null,this.campsiteName=null,this.status=null,this.from=null,this.to=null,this.campsiteFilterVisible=!0,this._generation=0}ngOnInit(){let i=this.route.snapshot.queryParamMap;this.campsiteId=i.get("campsiteId"),this.campsiteName=i.get("campsiteName"),this.status=i.get("status"),this.from=this._parseDateParam(i.get("from")),this.to=this._parseDateParam(i.get("to")),this._load(!0)}get activeFilterCount(){return[this.campsiteId,this.status,this.from,this.to].filter(i=>i!==null).length}onFilterChange(){this._syncQueryParams(),this._load(!0)}onCampsiteSelected(i){this.campsiteId=i.id,this.campsiteName=i.name,this._syncQueryParams(),this._load(!0)}onClearFilters(){this.campsiteId=null,this.campsiteName=null,this.status=null,this.from=null,this.to=null,this.campsiteFilterVisible=!1,setTimeout(()=>this.campsiteFilterVisible=!0),this._syncQueryParams(),this._load(!0)}loadMore(){this._load(!1)}openPayout(i){this.router.navigate(["/admin","stripe-payouts",i.stripePayoutId])}campsiteLabel(i){return Yo(i)}amount(i){return qo(i.stripePayoutAmount)}difference(i){return qo(i.unbalancedDelta)}processedAt(i){return i.resolvedAt??i.terminalAt??i.createdAt}statusLabel(i){return go[i].label}statusColorClass(i){return go[i].colorClass}documentStateLabel(i){return _o[i.documentState].label}documentStateColorClass(i){return _o[i.documentState].colorClass}_load(i){let o=++this._generation,a=i?void 0:this.rows[this.rows.length-1];this.loading$.next(!0),this.adminStripePayoutsService.list(this._buildParams(a)).pipe(It(()=>o===this._generation&&this.loading$.next(!1))).subscribe({next:r=>{o===this._generation&&(this.rows=i?r:[...this.rows,...r],this.hasMore=r.length===50,this.loaded=!0)},error:r=>{o===this._generation&&this.uiMessagingService.openSnackBarError(this.adminStripePayoutsService.errorMessageFor(r))}})}_syncQueryParams(){let i={campsiteId:this.campsiteId||null,campsiteName:this.campsiteName||null,status:this.status||null,from:this.from?this.from.toISOString():null,to:this.to?this.to.toISOString():null};this.router.navigate([],{relativeTo:this.route,queryParams:i,replaceUrl:!0})}_parseDateParam(i){if(!i)return null;let o=new Date(i);return Number.isNaN(o.getTime())?null:o}_buildParams(i){let o={limit:50};return this.campsiteId&&(o.campsiteId=this.campsiteId),this.status&&(o.status=this.status),this.from&&(o.from=this.from),this.to&&(o.to=this.to),i&&(o.before=i.arrivalDate,o.beforeId=i.id),o}};n.\u0275fac=function(o){return new(o||n)(O(Fr),O(Gt),O(xe),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-stripe-payouts"]],decls:84,vars:20,consts:[["fromPicker",""],["toPicker",""],[1,"admin-subnav-fields"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["value","QUEUED"],["value","RESOLVING"],["value","BALANCED"],["value","BALANCED_ACKNOWLEDGED"],["value","UNBALANCED"],["value","PENDING_RETRY"],["value","FAILED"],["value","CANCELED"],["value","REVERSED"],["value","REVERSAL"],["value","UNSUPPORTED_MANUAL_PAYOUT"],["matInput","","readonly","",3,"ngModelChange","dateChange","focus","click","matDatepicker","ngModel"],["matSuffix","",3,"for"],[1,"admin-subnav-actions"],["mat-stroked-button","","type","button","matBadgeSize","small","matBadgeOverlap","false",3,"click","matBadge","matBadgeHidden"],[1,"row"],[1,"column",2,"width","100%"],["mode","indeterminate"],[1,"table-responsive",3,"hidden"],["mat-table","",3,"dataSource"],["matColumnDef","arrival"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","processed"],["matColumnDef","campsite"],["matColumnDef","account"],["mat-cell","","class","stripe-payouts-mono",4,"matCellDef"],["matColumnDef","amount"],["mat-cell","","class","stripe-payouts-num",4,"matCellDef"],["matColumnDef","status"],["matColumnDef","documents"],["matColumnDef","balance"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","stripe-payouts-row",3,"click",4,"matRowDef","matRowDefColumns"],[1,"alert","alert-info"],[1,"stripe-payouts-load-more"],[3,"selectedData"],["mat-header-cell",""],["mat-cell",""],[1,"stripe-payouts-id"],[1,"stripe-payouts-time"],["mat-cell","",1,"stripe-payouts-mono"],["mat-cell","",1,"stripe-payouts-num"],[1,"stripe-payouts-chip",3,"ngClass"],[1,"stripe-payouts-no-difference"],[1,"stripe-payouts-unbalanced"],["mat-header-row",""],["mat-row","",1,"stripe-payouts-row",3,"click"],["mat-stroked-button","","type","button",3,"click"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"div",2),x(2,Vk,1,0,"app-search-campsites-auto-complete"),l(3,"mat-form-field")(4,"mat-label"),d(5,"Status"),s(),l(6,"mat-select",3),Ot("ngModelChange",function(p){return F(r),kt(a.status,p)||(a.status=p),B(p)}),w("selectionChange",function(){return a.onFilterChange()}),l(7,"mat-option",4),d(8,"All statuses"),s(),l(9,"mat-option",5),d(10,"Queued"),s(),l(11,"mat-option",6),d(12,"Resolving"),s(),l(13,"mat-option",7),d(14,"Balanced"),s(),l(15,"mat-option",8),d(16,"Acknowledged"),s(),l(17,"mat-option",9),d(18,"Unbalanced"),s(),l(19,"mat-option",10),d(20,"Pending retry"),s(),l(21,"mat-option",11),d(22,"Failed"),s(),l(23,"mat-option",12),d(24,"Canceled"),s(),l(25,"mat-option",13),d(26,"Reversed"),s(),l(27,"mat-option",14),d(28,"Reversal"),s(),l(29,"mat-option",15),d(30,"Unsupported manual payout"),s()()(),l(31,"mat-form-field")(32,"mat-label"),d(33,"From"),s(),l(34,"input",16),Ot("ngModelChange",function(p){return F(r),kt(a.from,p)||(a.from=p),B(p)}),w("dateChange",function(){return a.onFilterChange()})("focus",function(){F(r);let p=lt(37);return B(p.open())})("click",function(){F(r);let p=lt(37);return B(p.open())}),s(),M(35,"mat-datepicker-toggle",17)(36,"mat-datepicker",null,0),s(),l(38,"mat-form-field")(39,"mat-label"),d(40,"To"),s(),l(41,"input",16),Ot("ngModelChange",function(p){return F(r),kt(a.to,p)||(a.to=p),B(p)}),w("dateChange",function(){return a.onFilterChange()})("focus",function(){F(r);let p=lt(44);return B(p.open())})("click",function(){F(r);let p=lt(44);return B(p.open())}),s(),M(42,"mat-datepicker-toggle",17)(43,"mat-datepicker",null,1),s()(),l(45,"div",18)(46,"button",19),w("click",function(){return a.onClearFilters()}),d(47," Clear filters "),s()()(),l(48,"div",20)(49,"div",21)(50,"mat-card")(51,"mat-card-content"),x(52,$k,1,0,"mat-progress-bar",22),S(53,"async"),l(54,"div",23)(55,"table",24),I(56,25),T(57,zk,2,0,"th",26)(58,Hk,7,4,"td",27),R(),I(59,28),T(60,jk,2,0,"th",26)(61,Uk,8,7,"td",27),R(),I(62,29),T(63,Wk,2,0,"th",26)(64,Gk,5,2,"td",27),R(),I(65,30),T(66,qk,2,0,"th",26)(67,Yk,2,1,"td",31),R(),I(68,32),T(69,Qk,2,0,"th",26)(70,Kk,3,5,"td",33),R(),I(71,34),T(72,Xk,2,0,"th",26)(73,Jk,3,2,"td",27),R(),I(74,35),T(75,Zk,2,0,"th",26)(76,tO,3,2,"td",27),R(),I(77,36),T(78,eO,2,0,"th",26)(79,oO,3,1,"td",33),R(),T(80,aO,1,0,"tr",37)(81,rO,1,0,"tr",38),s()(),x(82,sO,2,0,"div",39),x(83,lO,3,0,"div",40),s()()()()}if(o&2){let r=lt(37),c=lt(44);m(2),v(a.campsiteFilterVisible?2:-1),m(4),Pt("ngModel",a.status),m(),C("value",null),m(27),C("matDatepicker",r),Pt("ngModel",a.from),m(),C("for",r),m(6),C("matDatepicker",c),Pt("ngModel",a.to),m(),C("for",c),m(4),C("matBadge",a.activeFilterCount)("matBadgeHidden",a.activeFilterCount===0),m(6),v(P(53,18,a.loading$)?52:-1),m(2),C("hidden",!a.rows.length),m(),C("dataSource",a.rows),m(25),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.loaded&&a.rows.length===0?82:-1),m(),v(a.hasMore?83:-1)}},dependencies:[pe,Or,ht,Ft,Vt,dt,jt,ct,he,Rt,Jt,eo,li,Pe,to,et,Mr,J,Z,ge,gt,bt,Ct,xt,_t,vt,ii,yt,Mt,St,wt,pt,vi,qe,ft],styles:["table[_ngcontent-%COMP%]{width:100%}.stripe-payouts-row[_ngcontent-%COMP%]{cursor:pointer}.stripe-payouts-id[_ngcontent-%COMP%]{color:#0000008a;font-size:11px;margin-top:2px}
219.stripe-payouts-time[_ngcontent-%COMP%]{color:#0000008a;font-size:12px;margin-top:2px}.stripe-payouts-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#000000ad}.stripe-payouts-num[_ngcontent-%COMP%]{text-align:right;white-space:nowrap}.stripe-payouts-chip[_ngcontent-%COMP%]{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.chip--green[_ngcontent-%COMP%]{background-color:#e6f4ea;color:#1e7e34}.chip--blue[_ngcontent-%COMP%]{background-color:#eef2fb;color:#2f4a93}.chip--amber[_ngcontent-%COMP%]{background-color:#fdf3e2;color:#8a5b12}.chip--red[_ngcontent-%COMP%]{background-color:#fce8e6;color:#c5221f}.chip--grey[_ngcontent-%COMP%]{background-color:#0000000f;color:#0000008a}.stripe-payouts-no-difference[_ngcontent-%COMP%]{color:#0006}.stripe-payouts-unbalanced[_ngcontent-%COMP%]{color:#c5221f;font-weight:600}.stripe-payouts-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:16px 0 0}"]});let t=n;return t})();var cO=(t,n)=>n.currency;function dO(t,n){t&1&&M(0,"mat-progress-bar",2)}function mO(t,n){if(t&1&&(l(0,"span",14),d(1),S(2,"number"),s()),t&2){let e=n.$implicit;m(),rt("",e.currency," ",mt(2,2,e.amount,"1.2-2"))}}function pO(t,n){if(t&1){let e=$();l(0,"span",23),d(1),s(),l(2,"button",24),w("click",function(){F(e);let o=h(2);return B(o.clearQuery())}),d(3,"Clear"),s()}if(t&2){let e=h(),i=h();m(),rt(" ",i.matchedDestinations(e).length," destinations \xB7 ",i.matchedFailures(e).length," failures ")}}function uO(t,n){if(t&1&&(l(0,"div",26),d(1),s()),t&2){let e=h(3);m(),A("No destination in this run matches \u201C",e.query,"\u201D.")}}function fO(t,n){if(t&1&&(d(0),l(1,"span",33),d(2," / "),s()),t&2){let e=h().$implicit;A(" ",e.campsiteName)}}function hO(t,n){t&1&&(l(0,"span",40),d(1,"adopted"),s())}function gO(t,n){if(t&1&&(l(0,"tr")(1,"td",32),d(2),s(),l(3,"td",38),d(4),S(5,"number"),s(),l(6,"td",37),d(7),s(),l(8,"td")(9,"span",39),d(10),s(),x(11,hO,2,0,"span",40),s()()),t&2){let e=n.$implicit;m(2),_(e.orderId),m(2),A(" ",mt(5,5,e.amount,"1.2-2")," "),m(3),_(e.bookingCount),m(3),_(e.transferId),m(),v(e.adopted?11:-1)}}function _O(t,n){if(t&1&&(l(0,"div",28)(1,"div",30)(2,"span",31),x(3,fO,3,1),l(4,"span",32),d(5),s(),l(6,"span",33),d(7," / "),s(),l(8,"span",32),d(9),s()(),l(10,"span",34),d(11),s(),l(12,"span",35),d(13),S(14,"number"),s()(),l(15,"table",36)(16,"thead")(17,"tr")(18,"th"),d(19,"Order"),s(),l(20,"th",37),d(21,"Amount"),s(),l(22,"th",37),d(23,"Bookings"),s(),l(24,"th"),d(25,"Stripe transfer"),s()()(),l(26,"tbody"),z(27,gO,12,8,"tr",null,U),s()()()),t&2){let e=n.$implicit,i=h(3);m(3),v(e.campsiteName?3:-1),m(2),_(e.campsiteId),m(4),_(e.accountId),m(2),_(i.destinationCurrency(e)),m(2),rt(" ",i.destinationSummary(e)," \xB7 ",mt(14,6,i.destinationTotal(e),"1.2-2")," "),m(14),H(e.transfers)}}function CO(t,n){if(t&1){let e=$();l(0,"div",29)(1,"button",24),w("click",function(){F(e);let o=h(3);return B(o.loadMoreDestinations())}),d(2,"Load more destinations"),s()()}}function bO(t,n){if(t&1&&(l(0,"div",25)(1,"h2"),d(2,"Destinations paid"),s(),l(3,"span"),d(4),s()(),x(5,uO,2,1,"div",26),l(6,"div",27),z(7,_O,29,9,"div",28,U),S(9,"slice"),s(),x(10,CO,3,0,"div",29)),t&2){let e=n,i=h(2);m(4),Gi("showing ",i.destinationsShown<e.length?i.destinationsShown:e.length," of ",e.length," accounts",i.hasQuery()?" matching filter":""),m(),v(i.hasQuery()&&e.length===0?5:-1),m(2),H($t(9,5,e,0,i.destinationsShown)),m(3),v(i.destinationsShown<e.length?10:-1)}}function xO(t,n){if(t&1&&(l(0,"span",44),d(1),s()),t&2){let e=h().$implicit;m(),_(e.campsiteName)}}function vO(t,n){if(t&1&&(l(0,"tr")(1,"td",43),x(2,xO,2,1,"span",44),l(3,"span",32),d(4),s()(),l(5,"td"),d(6),s(),l(7,"td",37),d(8),s()()),t&2){let e=n.$implicit;m(2),v(e.campsiteName?2:-1),m(2),_(e.campsiteId),m(2),_(e.reason),m(2),_(e.pendingBookingsCount)}}function yO(t,n){if(t&1&&(l(0,"div",41)(1,"table",42)(2,"thead")(3,"tr")(4,"th"),d(5,"Campsite"),s(),l(6,"th"),d(7,"Reason"),s(),l(8,"th",37),d(9,"Pending bookings"),s()()(),l(10,"tbody"),z(11,vO,9,4,"tr",null,U),s()()()),t&2){let e=h();m(11),H(e)}}function SO(t,n){if(t&1&&(l(0,"div",26),d(1),s()),t&2){let e=h(3);m(),_(e.failuresEmptyText())}}function MO(t,n){t&1&&x(0,yO,13,0,"div",41)(1,SO,2,1,"div",26),t&2&&v(n.length?0:1)}function wO(t,n){if(t&1){let e=$();l(0,"div",3)(1,"div",4)(2,"h1"),d(3),S(4,"adminDate"),s(),l(5,"span",5),d(6),S(7,"date"),s(),l(8,"span",6),d(9),s(),l(10,"span",7),d(11),s()(),l(12,"div",8)(13,"div",9)(14,"div",10)(15,"span",11),d(16,"Total amount"),s(),l(17,"span",12),d(18),s()(),l(19,"div",13),z(20,mO,3,5,"span",14,cO),s(),l(22,"div",15),d(23,"gross transferred, not converted"),s()(),l(24,"div",16)(25,"span",11),d(26,"Accounts paid"),s(),l(27,"span",17),d(28),s(),l(29,"span",15),d(30,"connected Stripe accounts"),s()(),l(31,"div",16)(32,"span",11),d(33,"Transfers"),s(),l(34,"span",17),d(35),s(),l(36,"span",15),d(37,"across all destinations"),s()(),l(38,"div",16)(39,"span",11),d(40,"Adopted"),s(),l(41,"span",18),d(42),s(),l(43,"span",15),d(44,"pre-existing in Stripe"),s()(),l(45,"div",16)(46,"span",11),d(47,"Failures"),s(),l(48,"span",18),d(49),s(),l(50,"span",15),d(51,"campsites skipped"),s()()()(),l(52,"div",19)(53,"span",20),d(54,"Filter run"),s(),l(55,"input",21),w("ngModelChange",function(o){F(e);let a=h();return B(a.onQueryChange(o))}),s(),x(56,pO,4,2),s(),x(57,bO,11,9),l(58,"div",22)(59,"h2"),d(60,"Failures"),s(),l(61,"span"),d(62),s()(),x(63,MO,2,1)}if(t&2){let e,i,o=n,a=h();m(3),_(P(4,18,o.createdAt)),m(3),_(mt(7,20,o.createdAt,"HH:mm")),m(2),Y("stripe-transfers-policy--checkout",a.isCheckoutPolicy(o.payoutPolicy)),m(),_(a.policyLabel(o.payoutPolicy)),m(2),_(o.id),m(7),_(a.currencySummary(o)),m(2),H(a.currencyTotals(o)),m(8),_(a.accountsPaid(o)),m(7),_(a.transferCount(o)),m(7),_(o.adoptedTransferCount),m(6),Y("stripe-transfer-details-stat-value--fail",o.failures.length>
2190),m(),_(o.failures.length),m(6),C("ngModel",a.query),m(),v(a.hasQuery()?56:-1),m(),v((e=a.matchedDestinations(o))?57:-1,e),m(5),_(a.failuresLabel(o)),m(),v((i=a.matchedFailures(o))?63:-1,i)}}var Js=25,Zs=(()=>{let n=class n{constructor(i,o,a,r,c){this.router=o,this.adminStripeTransfersService=a,this.uiMessagingService=r,this.breadcrumbService=c,this.run$=new tt(null),this.loading$=new tt(!1),this.destinationsShown=Js,this.query="";let p=i.snapshot.paramMap.get("id");if(!p){this.router.navigate(["/admin","stripe-transfers"]);return}this.loading$.next(!0),this._sub=this.adminStripeTransfersService.getById(p).pipe(It(()=>this.loading$.next(!1))).subscribe({next:u=>{this.destinationsShown=Js,this.run$.next(u),this.breadcrumbService.set(new ft().transform(u.createdAt,!0)||u.id)},error:u=>{this.uiMessagingService.openSnackBarError(this.adminStripeTransfersService.errorMessageFor(u))}})}ngOnDestroy(){this._sub?.unsubscribe(),this.breadcrumbService.clear()}policyLabel(i){return i==="BY_CHECKOUT_DATE"?"By checkout date":"By payment date"}accountsPaid(i){return i.destinations.length}transferCount(i){return i.destinations.reduce((o,a)=>o+a.transfers.length,0)}destinationCurrency(i){return i.transfers[0]?.currency??""}destinationTotal(i){return i.transfers.reduce((o,a)=>o+a.amount,0)}currencyTotals(i){let o=new Map;for(let a of i.destinations)for(let r of a.transfers)o.set(r.currency,(o.get(r.currency)??0)+r.amount);return[...o.entries()].map(([a,r])=>({currency:a,amount:r}))}currencySummary(i){let o=this.currencyTotals(i).length;return`${o} ${o===1?"currency":"currencies"}`}destinationSummary(i){let o=i.transfers.length;return`${o} ${o===1?"transfer":"transfers"}`}destinationTitle(i){return[i.campsiteName,i.campsiteId,i.accountId].filter(Boolean).join(" / ")}isCheckoutPolicy(i){return i==="BY_CHECKOUT_DATE"}loadMoreDestinations(){this.destinationsShown+=Js}hasQuery(){return this.query.trim().length>0}onQueryChange(i){this.query=i,this.destinationsShown=Js}clearQuery(){this.onQueryChange("")}matchedDestinations(i){let o=this.query.trim().toLowerCase();return o?i.destinations.filter(a=>a.accountId.toLowerCase().includes(o)||a.campsiteId.toLowerCase().includes(o)||(a.campsiteName?.toLowerCase().includes(o)??!1)):i.destinations}matchedFailures(i){let o=this.query.trim().toLowerCase();return o?i.failures.filter(a=>a.campsiteId.toLowerCase().includes(o)||(a.campsiteName?.toLowerCase().includes(o)??!1)):i.failures}failuresLabel(i){let o=this.matchedFailures(i).length,a=this.hasQuery()?" matching filter":"";return o?`${o} ${o===1?"campsite":"campsites"} skipped${a}`:this.hasQuery()?"none matching filter":"none"}failuresEmptyText(){return this.hasQuery()?"No failed campsite in this run matches this filter.":"No campsites failed or were skipped in this run."}};n.\u0275fac=function(o){return new(o||n)(O(xe),O(Gt),O(Br),O(ut),O(Qe))},n.\u0275cmp=L({type:n,selectors:[["app-stripe-transfer-details"]],decls:6,vars:6,consts:[[1,"row"],[1,"column","stripe-transfer-details-page",2,"width","100%"],["mode","indeterminate"],[1,"stripe-transfer-details-header"],[1,"stripe-transfer-details-title"],[1,"stripe-transfer-details-time"],[1,"stripe-transfers-policy"],[1,"stripe-transfer-details-id"],[1,"stripe-transfer-details-stats"],[1,"stripe-transfer-details-stat","stripe-transfer-details-stat--wide"],[1,"stripe-transfer-details-stat-head"],[1,"stripe-transfer-details-stat-label"],[1,"stripe-transfer-details-stat-sub"],[1,"stripe-transfer-details-totals"],[1,"stripe-transfer-details-total"],[1,"stripe-transfer-details-hint"],[1,"stripe-transfer-details-stat"],[1,"stripe-transfer-details-stat-value","stripe-transfer-details-stat-value--paid"],[1,"stripe-transfer-details-stat-value"],[1,"stripe-transfer-details-filter"],[1,"stripe-transfer-details-filter-label"],["type","text","placeholder","Campsite name, Campsite ID or Stripe Account ID",1,"stripe-transfer-details-filter-input",3,"ngModelChange","ngModel"],[1,"stripe-transfer-details-section-title","stripe-transfer-details-section-title--failures"],[1,"stripe-transfer-details-filter-count"],["mat-stroked-button","","type","button",3,"click"],[1,"stripe-transfer-details-section-title"],[1,"alert","alert-info"],[1,"stripe-transfer-details-destinations"],[1,"stripe-transfer-details-card"],[1,"stripe-transfer-details-load-more"],[1,"stripe-transfer-details-destination-header"],[1,"stripe-transfer-details-destination-title"],[1,"stripe-transfer-details-mono"],[1,"stripe-transfer-details-sep"],[1,"stripe-transfer-details-currency"],[1,"stripe-transfer-details-destination-summary"],[1,"stripe-transfer-details-transfers"],[1,"stripe-transfer-details-num"],[1,"stripe-transfer-details-num","stripe-transfer-details-amount"],[1,"stripe-transfer-details-mono","stripe-transfer-details-transfer-id"],[1,"stripe-transfer-details-adopted"],[1,"stripe-transfer-details-failures-wrap"],[1,"stripe-transfer-details-failures"],[1,"stripe-transfer-details-failure-campsite"],[1,"stripe-transfer-details-failure-name"]],template:function(o,a){if(o&1&&(l(0,"div",0)(1,"div",1),x(2,dO,1,0,"mat-progress-bar",2),S(3,"async"),x(4,wO,64,23),S(5,"async"),s()()),o&2){let r;m(2),v(P(3,2,a.loading$)?2:-1),m(2),v((r=P(5,4,a.run$))?4:-1,r)}},dependencies:[ge,dt,jt,ct,he,et,pt,lr,vi,qe,ft],styles:[".stripe-transfer-details-mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
219.stripe-transfer-details-num[_ngcontent-%COMP%]{text-align:right;font-variant-numeric:tabular-nums}.stripe-transfer-details-header[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;padding:18px 20px}.stripe-transfer-details-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.stripe-transfer-details-title[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.stripe-transfer-details-time[_ngcontent-%COMP%]{font-size:13px;color:#6c6d70;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stripe-transfer-details-id[_ngcontent-%COMP%]{margin-left:auto;font-size:11.5px;color:#a9aaad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stripe-transfers-policy[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11.5px;font-weight:500;white-space:nowrap;background:#f1f3f2;border:1px solid #e0e3e1;color:#4a5350}.stripe-transfers-policy--checkout[_ngcontent-%COMP%]{background:#eef2fb;border-color:#d6e0f6;color:#2f4a93}.stripe-transfer-details-stats[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:#eeeeec;border:1px solid #eeeeec;border-radius:6px;margin-top:16px;overflow:hidden}.stripe-transfer-details-stat[_ngcontent-%COMP%]{background:#fff;padding:12px 14px;min-width:0}.stripe-transfer-details-stat--wide[_ngcontent-%COMP%]{grid-column:span 2}.stripe-transfer-details-stat-head[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:8px}.stripe-transfer-details-stat-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.stripe-transfer-details-stat-sub[_ngcontent-%COMP%]{font-size:10.5px;color:#a9aaad}.stripe-transfer-details-stat-value[_ngcontent-%COMP%]{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-top:5px;font-variant-numeric:tabular-nums}.stripe-transfer-details-stat-value--fail[_ngcontent-%COMP%]{color:#c5221f}.stripe-transfer-details-stat-value--paid[_ngcontent-%COMP%]{color:#1e7e34}.stripe-transfer-details-hint[_ngcontent-%COMP%]{font-size:11px;color:#a9aaad;margin-top:2px}.stripe-transfer-details-totals[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:6px}.stripe-transfer-details-total[_ngcontent-%COMP%]{font-size:14.5px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}.stripe-transfer-details-filter[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e3e3e1;border-radius:7px}.stripe-transfer-details-filter-label[_ngcontent-%COMP%]{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8b8e}.stripe-transfer-details-filter-input[_ngcontent-%COMP%]{flex:1 1 300px;min-width:0;padding:6px 9px;border:1px solid #d9d9d6;border-radius:5px;background:#fff;color:#17181a;font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stripe-transfer-details-filter-input[_ngcontent-%COMP%]::placeholder{font-family:Noto Sans,sans-serif}.stripe-transfer-details-filter-count[_ngcontent-%COMP%]{font-size:11.5px;color:#6c6d70}.stripe-transfer-details-section-title[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:10px;margin:0}.stripe-transfer-details-section-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}.stripe-transfer-details-section-title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11.5px;color:#8a8b8e}.stripe-transfer-details-section-title--failures[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#8c2f0f}.stripe-transfer-details-destinations[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.stripe-transfer-details-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e3e3e1;border-radius:7px;overflow:hidden}.stripe-transfer-details-destination-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;background:#fafafa;border-bottom:1px solid #eeeeec}.stripe-transfer-details-destination-title[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .35em;min-width:0;font-size:12.5px;font-weight:500}.stripe-transfer-details-destination-title[_ngcontent-%COMP%]   .stripe-transfer-details-mono[_ngcontent-%COMP%]{font-size:11.5px;color:#6c6d70}.stripe-transfer-details-sep[_ngcontent-%COMP%]{color:#a9aaad}.stripe-transfer-details-currency[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:1px 6px;border:1px solid #e0e3e1;border-radius:9px;background:#f6f6f5;color:#4a5350;font-size:10.5px;font-weight:600;letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stripe-transfer-details-destination-summary[_ngcontent-%COMP%]{margin-left:auto;font-size:11.5px;color:#6c6d70;font-variant-numeric:tabular-nums}.stripe-transfer-details-transfers[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.stripe-transfer-details-transfers[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:7px 14px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#a9aaad;border-bottom:1px solid #f2f2f0;text-align:left}.stripe-transfer-details-transfers[_ngcontent-%COMP%]   th.stripe-transfer-details-num[_ng
219content-%COMP%]{text-align:right}.stripe-transfer-details-transfers[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:8px 14px;border-bottom:1px solid #f6f6f5;font-size:12px;color:#45464a}.stripe-transfer-details-amount[_ngcontent-%COMP%]{font-size:12.5px;font-weight:500;color:#17181a}.stripe-transfer-details-transfer-id[_ngcontent-%COMP%]{font-size:11.5px;color:#6c6d70}.stripe-transfer-details-adopted[_ngcontent-%COMP%]{margin-left:8px;padding:1px 6px;border:1px solid #dfe3ea;border-radius:9px;background:#f3f5f9;color:#5b6478;font-size:10px;letter-spacing:.03em;text-transform:uppercase;font-weight:600}.stripe-transfer-details-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:12px}.stripe-transfer-details-failures-wrap[_ngcontent-%COMP%]{background:#fffaf6;border:1px solid #f0d4c0;border-radius:7px;overflow:hidden}.stripe-transfer-details-failures[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.stripe-transfer-details-failures[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:8px 14px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#9a5a33;background:#fdf2e9;border-bottom:1px solid #f0d4c0;text-align:left}.stripe-transfer-details-failures[_ngcontent-%COMP%]   th.stripe-transfer-details-num[_ngcontent-%COMP%]{text-align:right}.stripe-transfer-details-failures[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{padding:10px 14px;border-bottom:1px solid #f6e6da;font-size:12.5px;color:#7a3e1d}.stripe-transfer-details-failure-campsite[_ngcontent-%COMP%]{min-width:0}.stripe-transfer-details-failure-campsite[_ngcontent-%COMP%]   .stripe-transfer-details-mono[_ngcontent-%COMP%]{color:#17181a}.stripe-transfer-details-failure-name[_ngcontent-%COMP%]{display:block;font-size:12.5px;color:#17181a}.stripe-transfer-details-failures[_ngcontent-%COMP%]   td.stripe-transfer-details-num[_ngcontent-%COMP%]{color:#17181a}"]});let t=n;return t})();function EO(t,n){t&1&&M(0,"mat-progress-bar",13)}function TO(t,n){t&1&&(l(0,"th",26),d(1,"Run"),s())}function DO(t,n){if(t&1&&(l(0,"td",27)(1,"div")(2,"span"),d(3),S(4,"adminDate"),s(),l(5,"span",28),d(6),S(7,"date"),s()()()),t&2){let e=n.$implicit;m(3),_(P(4,2,e.createdAt)),m(3),_(mt(7,4,e.createdAt,"HH:mm"))}}function PO(t,n){t&1&&(l(0,"th",26),d(1,"Payout policy"),s())}function kO(t,n){if(t&1&&(l(0,"td",27),d(1),s()),t&2){let e=n.$implicit,i=h();m(),_(i.policyLabel(e.payoutPolicy))}}function OO(t,n){t&1&&(l(0,"th",26),d(1,"Succeeded"),s())}function IO(t,n){if(t&1&&(l(0,"td",27)(1,"span",29),d(2),s()()),t&2){let e=n.$implicit;m(2),_(e.destinationCount)}}function RO(t,n){t&1&&(l(0,"th",26),d(1,"Failures"),s())}function AO(t,n){if(t&1&&(l(0,"td",27)(1,"span",30),d(2),s()()),t&2){let e=n.$implicit;m(),Y("stripe-transfers-count--failure",e.failureCount>0)("stripe-transfers-count--muted",e.failureCount===0),m(),_(e.failureCount)}}function FO(t,n){t&1&&M(0,"tr",31)}function BO(t,n){if(t&1){let e=$();l(0,"tr",32),w("click",function(){let o=F(e).$implicit,a=h();return B(a.openRun(o))}),s()}}function LO(t,n){t&1&&(l(0,"div",24),d(1,"No transfer runs match the current filters."),s())}function NO(t,n){if(t&1){let e=$();l(0,"div",25)(1,"button",10),w("click",function(){F(e);let o=h();return B(o.loadMore())}),d(2,"Load more runs"),s()()}}var Lu=50,tl=(()=>{let n=class n{constructor(i,o,a){this.adminStripeTransfersService=i,this.router=o,this.uiMessagingService=a,this.displayedColumns=["run","payoutPolicy","destinationCount","failureCount"],this.rows=[],this.loading$=new tt(!1),this.hasMore=!1,this.loaded=!1,this.from=null,this.to=null,this.payoutPolicy=null,this._generation=0}ngOnInit(){this._load(!0)}onFilterChange(){this._load(!0)}onClearFilters(){this.from=null,this.to=null,this.payoutPolicy=null,this._load(!0)}loadMore(){this._load(!1)}openRun(i){this.router.navigate(["/admin","stripe-transfers",i.id])}policyLabel(i){return i==="BY_CHECKOUT_DATE"?"By checkout date":"By payment date"}_load(i){let o=++this._generation,a=i?void 0:this.rows[this.rows.length-1]?.createdAt;this.loading$.next(!0),this.adminStripeTransfersService.list(this._buildFilter(a)).pipe(It(()=>o===this._generation&&this.loading$.next(!1))).subscribe({next:r=>{o===this._generation&&(this.rows=i?r:[...this.rows,...r],this.hasMore=r.length===Lu,this.loaded=!0)},error:r=>{o===this._generation&&this.uiMessagingService.openSnackBarError(this.adminStripeTransfersService.errorMessageFor(r))}})}_buildFilter(i){let o={limit:Lu};return this.from&&(o.from=this.from),this.to&&(o.to=this.to),this.payoutPolicy&&(o.payoutPolicy=this.payoutPolicy),i&&(o.before=i),o}};n.\u0275fac=function(o){return new(o||n)(O(Br),O(Gt),O(ut))},n.\u0275cmp=L({type:n,selectors:[["app-stripe-transfers"]],decls:53,vars:17,consts:[["fromPicker",""],["toPicker",""],[1,"admin-subnav-fields"],["matInput","","readonly","",3,"ngModelChange","dateChange","focus","click","matDatepicker","ngModel"],["matSuffix","",3,"for"],[3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["value","BY_CHECKOUT_DATE"],["value","BY_PAYMENT_DATE"],[1,"admin-subnav-actions"],["mat-stroked-button","","type","button",3,"click"],[1,"row"],[1,"column",2,"width","100%"],["mode","indeterminate"],[1,"table-responsive",3,"hidden"],["mat-table","",3,"dataSource"],["matColumnDef","run"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","payoutPolicy"],["matColumnDef","destinationCount"],["matColumnDef","failureCount"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","class","stripe-transfers-row",3,"click",4,"matRowDef","matRowDefColumns"],[1,"alert","alert-info"],[1,"stripe-transfers-load-more"],["mat-header-cell",""],["mat-cell",""],[1,"stripe-transfers-time"],[1,"stripe-transfers-count","stripe-transfers-count--success"],[1,"stripe-transfers-count"],["mat-header-row",""],["mat-row","",1,"stripe-transfers-row",3,"click"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"div",2)(2,"mat-form-field")(3,"mat-label"),d(4,"From"),s(),l(5,"input",3),Ot("ngModelChange",function(p){return F(r),kt(a.from,p)||(a.from=p),B(p)}),w("dateChange",function(){return a.onFilterChange()})("focus",function(){F(r);let p=lt(8);return B(p.open())})("click",function(){F(r);let p=lt(8);return B(p.open())}),s(),M(6,"mat-datepicker-toggle",4)(7,"mat-datepicker",null,0),s(),l(9,"mat-form-field")(10,"mat-label"),d(11,"To"),s(),l(12,"input",3),Ot("ngModelChange",function(p){return F(r),kt(a.to,p)||(a.to=p),B(p)}),w("dateChange",function(){return a.onFilterChange()})("focus",function(){F(r);let p=lt(15);return B(p.open())})("click",function(){F(r);let p=lt(15);return B(p.open())}),s(),M(13,"mat-datepicker-toggle",4)(14,"mat-datepicker",null,1),s(),l(16,"mat-form-field")(17,"mat-label"),d(18,"Payout policy"),s(),l(19,"mat-select",5),Ot("ngModelChange",function(p){return F(r),kt(a.payoutPolicy,p)||(a.payoutPolicy=p),B(p)}),w("selectionChange",function(){return a.onFilterChange()}),l(20,"mat-option",6),d(21,"All policies"),s(),l(22,"mat-option",7),d(23,"By checkout date"),s(),l(24,"mat-option",8),d(25,"By payment date"),s()()()(),l(26,"div",9)(27,"button",10),w("click",function(){return a.onClearFilters()}),d(28,"Clear filters"),s()()(),l(29,"div",11)(30,"div",12)(31,"mat-card")(32,"mat-card-content"),x(33,EO,1,0,"mat-progress-bar",13),S(34,"async"),l(35,"div",14)(36,"table",15),I(37,16),T(38,TO,2,0,"th",17)(39,DO,8,7,"td",18),R(),I(40,19),T(41,PO,2,0,"th",17)(42,kO,2,1,"td",18),R(),I(43,20),T(44,OO,2,0,"th",17)(45,IO,3,1,"td",18),R(),I(46,21),T(47,RO,2,0,"th",17)(48,AO,3,5,"td",18),R(),T(49,FO,1,0,"tr",22)(50,BO,1,0,"tr",23),s()(),x(51,LO,2,0,"div",24),x(52,NO,3,0,"div",25),s()()()()}if(o&2){let r=lt(8),c=lt(15);m(5),C("matDatepicker",r),Pt("ngModel",a.from),m(),C("for",r),m(6),C("matDatepicker",c),Pt("ngModel",a.to),m(),C("for",c),m(6),Pt("ngModel",a.payoutPolicy),m(),C("value",null),m(13),v(P(34,15,a.loading$)?33:-1),m(2),C("hidden",!a.rows.length),m(),C("dataSource",a.rows),m(13),C("matHeaderRowDef",a.displayedColumns),m(),C("matRowDefColumns",a.displayedColumns),m(),v(a.loaded&&a.rows.length===0?51:-1),m(),v(a.hasMore?52:-1)}},dependencies:[pe,ht,Ft,Jt,eo,dt,jt,ct,he,li,Pe,to,Vt,Rt,et,J,Z,ge,gt,bt,Ct,xt,_t,vt,yt,Mt,St,wt,pt,qe,ft],styles:[".stripe-transfers-time[_ng
219content-%COMP%]{color:#0000008a;font-size:12px}.stripe-transfers-time[_ngcontent-%COMP%]{margin-left:8px}table[_ngcontent-%COMP%]{width:100%}.stripe-transfers-row[_ngcontent-%COMP%]{cursor:pointer}.stripe-transfers-count[_ngcontent-%COMP%]{display:inline-block;min-width:28px;padding:2px 10px;border-radius:12px;text-align:center;font-weight:500}.stripe-transfers-count--success[_ngcontent-%COMP%]{background-color:#e6f4ea;color:#1e7e34}.stripe-transfers-count--failure[_ngcontent-%COMP%]{background-color:#fce8e6;color:#c5221f}.stripe-transfers-count--muted[_ngcontent-%COMP%]{background-color:#0000000f;color:#0000008a}.stripe-transfers-load-more[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:16px 0 0}"]});let t=n;return t})();function VO(t,n){t&1&&(l(0,"div",2),M(1,"app-loading",8),s())}function $O(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),Gi(" ",e.firstName," ",e.lastName," (",e.email,") ")}}function zO(t,n){t&1&&(l(0,"div",7),M(1,"mat-progress-bar",9),s())}var el=(()=>{let n=class n{constructor(i,o){this.databaseService=i,this.router=o,this.searching$=new tt(!1),this.alternatives$=new tt([]),this.control=new gi("")}ngOnInit(){this.control.valueChanges.pipe(Le(i=>!!i),er(500)).subscribe(i=>{this.searching$.next(!0),this.databaseService.getUserByEmail(encodeURIComponent(i)).pipe(or(()=>this.searching$.next(!1)),Le(o=>o.length>0)).subscribe(o=>{this.alternatives$.next(o)})})}setSelected(i){this.control.patchValue(i.option.value.email),this.router.navigateByUrl("/admin/loyalty-profile",{state:{user:i.option.value}})}formatEmail(i){return i?.email??""}};n.\u0275fac=function(o){return new(o||n)(O(_e),O(Gt))},n.\u0275cmp=L({type:n,selectors:[["app-user-search"]],decls:16,vars:11,consts:[["auto","matAutocomplete"],["type","email","autocomplete","off","spellcheck","false","matInput","",3,"formControl","matAutocomplete"],["matSuffix","",1,"loader"],[3,"optionSelected","displayWith"],[3,"value"],[1,"row"],[1,"column"],[2,"margin","20px 0"],["size","18"],["mode","indeterminate"]],template:function(o,a){if(o&1&&(l(0,"app-admin-subnav")(1,"mat-form-field")(2,"mat-label"),d(3,"Search by user email"),s(),M(4,"input",1),x(5,VO,2,0,"div",2),S(6,"async"),l(7,"mat-autocomplete",3,0),w("optionSelected",function(c){return a.setSelected(c)}),z(9,$O,2,4,"mat-option",4,U),S(11,"async"),s()()(),l(12,"div",5)(13,"div",6),x(14,zO,2,0,"div",7),S(15,"async"),s()()),o&2){let r=lt(8);m(4),C("formControl",a.control)("matAutocomplete",r),m(),v(P(6,5,a.searching$)?5:-1),m(2),C("displayWith",a.formatEmail),m(2),H(P(11,7,a.alternatives$)),m(5),v(P(15,9,a.searching$)?14:-1)}},dependencies:[pe,ht,Ft,Jt,dt,jt,ct,Sr,ne,He,Pe,ae,yr,Rt,ge,pt],encapsulation:2});let t=n;return t})();var il=(()=>{let n=class n{constructor(i,o){this.onboardingService=i,this.dialog=o,this.pagination={limit:10,offset:0,sortBy:"createdAt",sortDirection:"desc"}}ngOnInit(){this.onboardingSubmissions$=this.onboardingService.onboardingSubmissions$,this.onboardingSubmissionsLoading$=this.onboardingService.onboardingSubmissionsLoading$,this.onboardingSubmissionsTotalCount$=this.onboardingService.onboardingSubmissionsTotalCount$,this._getOnboardingSubmissions()}handlePagination(i){this.pagination=nt(nt({},this.pagination),i),this._getOnboardingSubmissions()}approveSubmission(i){this.dialog.open(jo,Et(nt({},bn),{data:{header:"Are you sure you want to approve this submission?",message:"This action cannot be undone.",commitButtonText:"Yes, approve",discardButtonText:"No, cancel"}})).afterClosed().subscribe(a=>{a&&this.onboardingService.approveSubmission(i)})}declineSubmission(i){console.log(i),this.dialog.open(jo,Et(nt({},bn),{data:{header:"Are you sure you want to decline this submission?",message:"This action cannot be undone.",commitButtonText:"Yes, decline",discardButtonText:"No, cancel"}})).afterClosed().subscribe(a=>{a&&this.onboardingService.declineSubmission(i)})}_getOnboardingSubmissions(){this.onboardingService.getAllOnboardingSessions({pagination:this.pagination}).subscribe()}};n.\u0275fac=function(o){return new(o||n)(O(fm),O(ve))},n.\u0275cmp=L({type:n,selectors:[["app-onboarding-submissions"]],decls:11,vars:10,consts:[[1,"row"],[1,"column"],[3,"approveSubmission","declineSubmission","paginationChanged","onboardingSubmissions","loading","pagination","totalCount"]],template:function(o,a){o&1&&(l(0,"div",0)(1,"div",1)(2,"mat-card")(3,"mat-card-header")(4,"mat-card-title"),d(5," Self
219-service onboarding "),s()(),l(6,"mat-card-content")(7,"app-onboarding-submissions-table",2),S(8,"async"),S(9,"async"),S(10,"async"),w("approveSubmission",function(c){return a.approveSubmission(c)})("declineSubmission",function(c){return a.declineSubmission(c)})("paginationChanged",function(c){return a.handlePagination(c)}),s()()()()()),o&2&&(m(7),C("onboardingSubmissions",P(8,4,a.onboardingSubmissions$))("loading",P(9,6,a.onboardingSubmissionsLoading$))("pagination",a.pagination)("totalCount",P(10,8,a.onboardingSubmissionsTotalCount$)))},dependencies:[J,ot,st,Z,va,pt],styles:[".column[_ngcontent-%COMP%]{width:100%}"]});let t=n;return t})();function HO(t,n){if(t&1&&(l(0,"mat-option",4),d(1),s()),t&2){let e=n.$implicit;C("value",e),m(),A(" ",e," ")}}function jO(t,n){t&1&&d(0," Select dates ")}function UO(t,n){t&1&&(l(0,"p"),d(1,"No data available"),s())}function WO(t,n){t&1&&qn(0)}function GO(t,n){t&1&&qn(0)}function qO(t,n){if(t&1&&(l(0,"mat-tab-group")(1,"mat-tab",12),T(2,WO,1,0,"ng-container",13),s(),l(3,"mat-tab",12),T(4,GO,1,0,"ng-container",13),s()()),t&2){h();let e=lt(29),i=lt(31);m(),C("label","By currency"),m(),C("ngTemplateOutlet",e),m(),C("label","By account"),m(),C("ngTemplateOutlet",i)}}function YO(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3),s()(),l(4,"mat-card-content")(5,"mat-card-subtitle"),d(6),M(7,"br"),d(8),S(9,"adminDate"),S(10,"adminDate"),s(),M(11,"app-turnover-report-table",14),S(12,"async"),s()()),t&2){let e=n.$implicit,i=h(2);m(3),_(e.currency),m(3),A(" ",i.reportPaymentProvider," "),m(2),rt(" ",P(9,7,i.reportStartDate)," - ",P(10,9,i.reportEndDate)," "),m(3),C("rows",e.summary.rows)("totalRow",e.summary.total)("loading",P(12,11,i.loading$))}}function QO(t,n){if(t&1&&(z(0,YO,13,13,"mat-card",null,U),S(2,"async")),t&2){let e,i=h();H((e=P(2,0,i.data$))==null?null:e.currencies)}}function KO(t,n){if(t&1&&(l(0,"div")(1,"p")(2,"strong"),d(3,"Org. name:"),s(),d(4),M(5,"br"),l(6,"strong"),d(7,"Org. number:"),s(),d(8),M(9,"br"),l(10,"strong"),d(11,"Address:"),s(),d(12),M(13,"br"),l(14,"strong"),d(15,"Email:"),s(),d(16),M(17,"br"),l(18,"strong"),d(19,"Phone number:"),s(),d(20),M(21,"br")(22,"br"),l(23,"strong"),d(24,"Account number:"),s(),d(25),M(26,"br"),l(27,"strong"),d(28,"Swift:"),s(),d(29),M(30,"br"),l(31,"strong"),d(32,"VAT reg:"),s(),d(33),s()()),t&2){let e=h().$implicit;m(4),A(" ",e.accountInfo.orgName," "),m(4),A(" ",e.accountInfo.orgNumber," "),m(4),A(" ",e.accountInfo.orgAddress," "),m(4),A(" ",e.accountInfo.orgEmail," "),m(4),A(" ",e.accountInfo.orgPhone," "),m(5),A(" ",e.accountInfo.accountNumber," "),m(4),A(" ",e.accountInfo.swift||"-"," "),m(4),A(" ",e.accountInfo.vatRegistered?"Yes":"No"," ")}}function XO(t,n){if(t&1&&(l(0,"span"),M(1,"i",18),d(2),s()),t&2){let e=h(2).$implicit;m(2),A(" ",e.accountInfo.stripeAccountId," ")}}function JO(t,n){t&1&&(l(0,"span"),M(1,"i",19),d(2," Not connected "),s())}function ZO(t,n){if(t&1&&(l(0,"div")(1,"b"),d(2,"Stripe account: "),s(),x(3,XO,3,1,"span"),x(4,JO,3,0,"span"),s()),t&2){let e=h().$implicit;m(3),v(e.accountInfo.stripeAccountId?3:-1),m(),v(e.accountInfo.stripeAccountId?-1:4)}}function tI(t,n){if(t&1&&(l(0,"mat-card")(1,"mat-card-header")(2,"mat-card-title"),d(3),M(4,"br"),l(5,"span",15)(6,"b"),d(7,"Campio ID:"),s(),d(8),s(),M(9,"br"),l(10,"span",16),d(11),s()(),l(12,"span",17),d(13),M(14,"br"),l(15,"b"),d(16),S(17,"adminDate"),S(18,"adminDate"),s(),M(19,"br"),s()(),l(20,"mat-card-content"),x(21,KO,34,8,"div"),x(22,ZO,5,2,"div"),M(23,"hr")(24,"app-turnover-report-table",14),S(25,"async"),s()()),t&2){let e=n.$implicit,i=h(3);m(3),A(" ",e.campsiteName," "),m(5),A(" ",e.accountInfo.campsiteId," "),m(3),A("(",e.currency,")"),m(2),A(" ",i.reportPaymentProvider," "),m(3),rt("",P(17,11,i.reportStartDate)," - ",P(18,13,i.reportEndDate)),m(5),v(i.reportPaymentProvider==="NETS"?21:-1),m(),v(i.reportPaymentProvider==="STRIPE"||i.reportPaymentProvider==="STRIPE_NEW"?22:-1),m(2),C("rows",e.rows)("totalRow",e.total)("loading",P(25,15,i.loading$))}}function eI(t,n){if(t&1&&z(0,tI,26,17,"mat-card",null,U),t&2){let e=n.$implicit;H(e.accounts)}}function iI(t,n){if(t&1&&(z(0,eI,2,0,null,null,U),S(2,"async")),t&2){let e,i=h();H((e=P(2,0,i.data$))==null?null:e.currencies)}}var nl=(()=>{let n=class n{constructor(i){this.adminReportsService=i,this.paymentProviders=Object.values(Ii),this.paymentProvider=Ii.NETS;let o=Md(hr(new Date,{weekStartsOn:1}
219),7);this.startDate=o,this.endDate=fr(o,6)}ngOnInit(){this.data$=this.adminReportsService.turnoverReport$,this.loading$=this.adminReportsService.turnoverReportLoading$}getReport(){this.adminReportsService.getTurnoverReport(this.startDate,this.endDate,this.paymentProvider).pipe(Yt(1)).subscribe(),this.reportStartDate=this.startDate,this.reportEndDate=this.endDate,this.reportPaymentProvider=this.paymentProvider}};n.\u0275fac=function(o){return new(o||n)(O(gm))},n.\u0275cmp=L({type:n,selectors:[["app-turnover-report-v2"]],decls:32,vars:16,consts:[["picker",""],["byCurrency",""],["byAccount",""],[3,"ngModelChange","ngModel"],[3,"value"],[3,"focus","click","rangePicker"],["matStartDate","",1,"date-input",3,"ngModelChange","ngModel","readonly"],["matEndDate","",1,"date-input",3,"ngModelChange","ngModel","readonly"],["matSuffix","",3,"for"],["mat-flat-button","","type","submit","color","primary",3,"click"],[1,"row"],[1,"column",2,"width","100%"],[3,"label"],[4,"ngTemplateOutlet"],[3,"rows","totalRow","loading"],[2,"font-size","12px","color","#999"],[2,"font-size","1rem"],[2,"text-align","right"],[1,"far","fa-check-circle",2,"color","green"],[1,"far","fa-times-circle",2,"color","red"]],template:function(o,a){if(o&1){let r=$();l(0,"app-admin-subnav")(1,"mat-form-field")(2,"mat-label"),d(3,"Payment provider"),s(),l(4,"mat-select",3),Ot("ngModelChange",function(p){return F(r),kt(a.paymentProvider,p)||(a.paymentProvider=p),B(p)}),z(5,HO,2,2,"mat-option",4,U),s()(),l(7,"mat-form-field")(8,"mat-label"),d(9,"Date range"),s(),l(10,"mat-date-range-input",5),w("focus",function(){F(r);let p=lt(15);return B(p.open())})("click",function(){F(r);let p=lt(15);return B(p.open())}),l(11,"input",6),Ot("ngModelChange",function(p){return F(r),kt(a.startDate,p)||(a.startDate=p),B(p)}),s(),l(12,"input",7),Ot("ngModelChange",function(p){return F(r),kt(a.endDate,p)||(a.endDate=p),B(p)}),s()(),M(13,"mat-datepicker-toggle",8)(14,"mat-date-range-picker",null,0),s(),l(16,"button",9),w("click",function(){return a.getReport()}),d(17,"Get report"),s()(),l(18,"div",10)(19,"div",11)(20,"mat-card")(21,"mat-card-content"),x(22,jO,1,0),S(23,"async"),x(24,UO,2,0,"p"),S(25,"async"),x(26,qO,5,4,"mat-tab-group"),S(27,"async"),s()(),T(28,QO,3,2,"ng-template",null,1,qi)(30,iI,3,2,"ng-template",null,2,qi),s()()}if(o&2){let r,c,p=lt(15);m(4),Pt("ngModel",a.paymentProvider),m(),H(a.paymentProviders),m(5),C("rangePicker",p),m(),Pt("ngModel",a.startDate),C("readonly",!0),m(),Pt("ngModel",a.endDate),C("readonly",!0),m(),C("for",p),m(9),v(P(23,10,a.data$)===null?22:-1),m(2),v(((r=P(25,12,a.data$))==null?null:r.currencies.length)===0?24:-1),m(2),v(((c=P(27,14,a.data$))==null?null:c.currencies.length)>0?26:-1)}},dependencies:[pe,ht,Ft,Vt,dt,jt,ct,he,Rt,io,no,oo,li,Pe,ao,et,J,Z,en,tn,sr,ot,st,Ki,Ga,pt,ft],encapsulation:2});let t=n;return t})();var Nu=[Ps,ks,Os,Is,As,Fs,Bs,Ls,Ns,Vs,zs,$s,Hs,Ja,bi,js,Us,Ws,qs,Gs,Ys,Qs,Ks,Xs,Zs,tl,el,il,nl];var Kt=Wo(["super"]),nI=Wo(["super","csm"]),ol=Wo(["super","csm","content_mgr"]),Vu=Wo(["super","csm","content_mgr"]),oI=[{path:"",component:js,children:[{path:"campsite",component:bi,canMatch:[ol],data:{breadcrumb:"Campsites",groupIndex:"Campsites"}},{path:"community",component:bi,canMatch:[Kt],data:{breadcrumb:"Community",groupIndex:"Community"}},{path:"reports",component:bi,canMatch:[Kt],data:{breadcrumb:"Reports",groupIndex:"Reports"}},{path:"monitoring",component:bi,canMatch:[Kt],data:{breadcrumb:"Monitoring",groupIndex:"Monitoring"}},{path:"stripe-transfers",component:tl,canMatch:[Kt],data:{breadcrumb:"Stripe transfers",group:"Monitoring"}},{path:"stripe-transfers/:id",component:Zs,canMatch:[Kt],data:{breadcrumb:"Stripe transfers",group:"Monitoring",parentRoute:"stripe-transfers"}},{path:"distribution",component:Hs,canMatch:[Kt],data:{breadcrumb:"Distribution",group:"Monitoring"}},{path:"bookability",component:Ps,canMatch:[Kt],data:{breadcrumb:"Bookability",group:"Monitoring"}},{path:"stripe-payouts",component:Xs,canMatch:[Kt],data:{breadcrumb:"Stripe payouts",group:"Monitoring"}},{path:"stripe-payouts/:id",component:Ks,canMatch:[Kt],data:{breadcrumb:"Stripe payouts",group:"Monitoring",parentRoute:"stripe-payouts"}},{path:"add",component:Go,canMatch:[nI],data:{breadcrumb:"Create campsite",group:"Campsites"}},{path:"bookings",component:Os,canMatch:[Kt],data:{breadcrumb:"Bookings",group:"Reports"}},{path:"channel-manager/connections",component:Bs,canMatch:[Kt],data:{breadcrumb:"C
219onnections",group:"Channel manager"}},{path:"channel-manager/connections/:campsiteId",component:Fs,canMatch:[Kt],data:{breadcrumb:"Connections",group:"Channel manager",parentRoute:"channel-manager/connections"}},{path:"channel-manager/bookings",component:As,canMatch:[Kt],data:{breadcrumb:"Bookings",group:"Channel manager"}},{path:"channel-manager",component:bi,canMatch:[Kt],data:{breadcrumb:"Channel manager",groupIndex:"Channel manager"}},{path:"community-campsites",component:Ns,canMatch:[Kt],data:{breadcrumb:"Community requests",group:"Community"}},{path:"community-campsites/:communityCampsiteId",component:Ls,canMatch:[Kt],canDeactivate:[Tm],data:{breadcrumb:"Community requests",group:"Community"}},{path:"discount-codes",component:bi,canMatch:[Kt],data:{breadcrumb:"Discount codes",groupIndex:"Discount codes"}},{path:"discount-codes/codes",component:zs,canMatch:[Kt],data:{breadcrumb:"Codes",group:"Discount codes"}},{path:"discount-codes/usage",component:$s,canMatch:[Kt],data:{breadcrumb:"Usage",group:"Discount codes"}},{path:"loyalty-points",component:Us,canMatch:[Kt],data:{breadcrumb:"Loyalty program",group:"Community"}},{path:"edit",component:Ja,canMatch:[ol],data:{breadcrumb:"Manage campsite",group:"Campsites"}},{path:"edit/:campsiteId",component:Ja,canMatch:[ol],data:{breadcrumb:"Manage campsite",group:"Campsites",parentRoute:"edit"}},{path:"edit/:campsiteId/map-overlay",component:ks,canMatch:[ol],data:{breadcrumb:"Manage campsite",group:"Campsites",parentRoute:"edit",leaf:"Map overlay"}},{path:"point-shop",component:bi,canMatch:[Kt],data:{breadcrumb:"Point shop",groupIndex:"Point shop"}},{path:"point-shop/vendors",component:Gs,canMatch:[Kt],data:{breadcrumb:"Vendors",group:"Point shop"}},{path:"point-shop/products",component:qs,canMatch:[Kt],data:{breadcrumb:"Products",group:"Point shop"}},{path:"turnover",component:Qa,canMatch:[Kt],data:{breadcrumb:"Turnover",group:"Reports"}},{path:"loyalty-profile",component:Ws,canMatch:[Kt],data:{breadcrumb:"Loyalty profile"}},{path:"reviews",component:Qs,canMatch:[Kt],data:{breadcrumb:"Reviews",group:"Community"}},{path:"reviews/:id",component:Ys,canMatch:[Kt],data:{breadcrumb:"Reviews",group:"Community",parentRoute:"reviews"}},{path:"user-search",component:el,canMatch:[Kt],data:{breadcrumb:"Loyalty program users",group:"Community"}},{path:"users",component:bi,canMatch:[Vu],data:{breadcrumb:"Users",groupIndex:"Users"}},{path:"users/directors",component:Vs,canMatch:[Vu],data:{breadcrumb:"Campsite directors",group:"Users"}},{path:"users/staff",component:Is,canMatch:[Kt],data:{breadcrumb:"Campio staff",group:"Users"}},{path:"onboarding-submissions",component:il,canMatch:[Kt],data:{breadcrumb:"Self-service onboarding"}},{path:"turnover-report",component:nl,canMatch:[Kt],data:{breadcrumb:"Turnover v2",group:"Reports"}}]}],$u=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275mod=Gn({type:n}),n.\u0275inj=Un({imports:[sl.forChild(oI),sl]});let t=n;return t})();var hW=(()=>{let n=class n{};n.\u0275fac=function(o){return new(o||n)},n.\u0275mod=Gn({type:n}),n.\u0275inj=Un({providers:[..._m,Tu(Eu()),{provide:Cd,useValue:{appearance:"outline",floatLabel:"auto",subscriptSizing:"dynamic"}},{provide:ll,useClass:ll}],imports:[$u,md,Em,Ud,Om,bd,Vd,lp,Nu,Go,Xo,Jo,Zo,ta,Sn,ea,Mn,ia,wn,na,En,oa,Tn,aa,ra,sa,la,ca,da,Dn,Ca,ma,pa,ua,fa,ha,ga,_a,Qa,Ha,$n,Vn,ja,ji,Ui,qa,Ya,Wa,Ua,va,xa,Ga,Ka,Xa]});let t=n;return t})();export{hW as AdminModule};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.