@rero/rero-ils-ui
Version:
User interface for RERO integrated library system (RERO ILS).
3 lines • 147 kB
JavaScript
import{c as dn,d as mn,e as Q,f as kt,g as de,h as G,j as Pt,k as Ce,l as Dt,m as Ft,n as fn,o as hn,q as vn,r as Ne,s as xe,t as Gt,u as wt,v as K,w as xn}from"./chunk-V2RCNW6W.js";import{a as Rt,b as Cn}from"./chunk-HYDLQENX.js";import{a as bi,b as Ei,c as Ii,d as ki,e as Pi,f as Fe,g as ne,h as un,i as _n}from"./chunk-QQFISVFQ.js";import{$ as qe,$b as Vi,A as Ci,Ac as U,Cc as jt,Ee as ln,Fc as Ye,Gb as wi,Gc as Ie,Ha as pe,Hc as Ki,Ic as ke,Ie as cn,Jc as zi,Kb as gt,Kc as Wi,Lb as Ri,Lc as Ji,Le as Qe,Mb as Li,Mc as Yi,Ne as pn,Ob as ze,Oc as Xi,Oe as It,Pc as Zi,Qb as Mi,Qc as Qi,Rb as Bi,Rd as nn,S as xi,Sc as ue,Sd as on,T as Ke,U as Ae,V as ht,Vd as Ht,W as vt,Wb as Ai,Wd as Et,X as $t,Xb as Oi,Xd as Pe,Y as Ct,Z as Oe,Zd as an,_b as qi,_c as en,ac as ie,ad as Tt,bc as Ni,bd as bt,ca as gi,cc as $i,ce as Re,dc as ji,eb as Ti,g as te,ga as Si,ge as rn,ha as yi,he as De,ic as We,id as Ve,ie as ve,j as mi,jd as tn,k as ui,kd as Xe,l as _i,m as fi,mc as Hi,md as B,me as Ze,n as hi,p as ft,pb as he,pc as V,q as H,qc as P,rc as F,sc as Gi,tb as xt,ue as X,v as vi,vb as Di,vc as Ui,vd as A,wb as q,wc as St,wd as z,we as sn,xb as Fi,xc as yt,y as Y,zc as Je,zd as N,ze as Z}from"./chunk-6Y5CFLSI.js";import{$ as se,$b as R,$c as b,Ab as ii,C as ge,Ca as W,Cc as He,Db as _,Dc as l,Ec as T,F as Xt,Fc as C,Gc as ee,Ha as ei,Hc as si,Ic as mt,Ja as je,Jc as ut,Kc as _t,Ob as be,Oc as li,Pb as Ee,Pc as fe,Qc as D,R as Zt,Rb as Vt,Rc as Be,Sb as u,Tc as ci,Ub as ni,Vb as pt,Vc as pi,Wb as Me,Yb as m,Zb as j,Zc as p,_c as h,a as it,ac as L,b as qt,ba as le,bc as a,bd as J,cb as Ue,cc as o,cd as di,db as ti,dc as v,dd as M,ec as oi,fa as Te,fc as ai,ga as st,gc as nt,h as me,hb as r,hc as I,la as f,m as zt,n as Wt,oc as g,pc as c,rd as Nt,s as Jt,sa as Le,sb as lt,ta as S,tc as dt,ua as y,uc as ri,w as $,wa as Qt,xb as E,y as Yt,yb as ct}from"./chunk-ZG5LY3H2.js";var gn=(()=>{class t{constructor(){this.dynamicDialogRef=f(Ie)}setAction(e){this.action=e,this.dynamicDialogRef.close(e)}checkinItemOnEnterKey(e){e.key==="Enter"&&this.setAction("item")}closeModal(){this.dynamicDialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-checkin-action"]],standalone:!1,decls:7,vars:6,consts:[["translate","",1,"ui:font-bold","ui:mb-4"],[1,"ui:flex","ui:gap-2",3,"keyup.enter"],["id","action-patron","icon","fa fa-user","styleClass","ui:outline-0","outlined","",3,"onClick","label"],["id","action-item","icon","fa fa-file-o","styleClass","ui:outline-0","outlined","",3,"onClick","label"]],template:function(i,n){i&1&&(a(0,"div",0),l(1,` One item and one patron were found.
`),o(),a(2,"div",1),g("keyup.enter",function(x){return n.checkinItemOnEnterKey(x)}),a(3,"p-button",2),p(4,"translate"),g("onClick",function(){return n.setAction("patron")}),o(),a(5,"p-button",3),p(6,"translate"),g("onClick",function(){return n.setAction("item")}),o()()),i&2&&(r(3),u("label",h(4,2,"Patron account")),r(2),u("label",h(6,4,"Checkin the item")))},dependencies:[q,P,F],encapsulation:2})}}return t})();var we=(()=>{class t{constructor(){this.recordService=f(A),this.userService=f(Z),this.routeToolService=f(_n),this.translateService=f(V),this.messageService=f(pe),this.patronTransactionsSubject$=new Wt([]),this.patronFeesOperationSubject$=new zt}_buildQuery(e,i,n,d){let x=[];return e!==void 0&&x.push(`patron.pid:${e}`),i!==void 0&&x.push(`loan.pid:${i}`),n!==void 0&&x.push(`type:${n}`),d!==void 0&&x.push(`status:${d}`),x.join(" AND ")}_loadPatronTransactions(e,i="-creation_date"){return this.recordService.getRecords("patron_transactions",e,1,A.MAX_REST_RESULTS_SIZE,void 0,void 0,void 0,i).pipe($(n=>n.hits),$(n=>this.recordService.totalHits(n.total)===0?[]:n.hits),$(n=>n.map(d=>new Gt(d.metadata))))}patronTransactionsByLoan$(e,i,n){let d=this._buildQuery(void 0,e,i,n);return this.recordService.getRecords("patron_transactions",d,1,A.MAX_REST_RESULTS_SIZE).pipe($(x=>x.hits),$(x=>this.recordService.totalHits(x.total)===0?[]:x.hits),$(x=>x.map(k=>new Gt(k.metadata))))}patronTransactionsByPatron$(e,i,n){let d=this._buildQuery(e,void 0,i,n);return this._loadPatronTransactions(d)}emitPatronTransactionByPatron(e,i,n){this.patronTransactionsByPatron$(e,i,n).subscribe(d=>this.patronTransactionsSubject$.next(d))}loadTransactionHistory(e){let i=`parent.pid:${e.pid}`;return this.recordService.getRecords("patron_transaction_events",i,1,A.MAX_REST_RESULTS_SIZE).pipe($(n=>n.hits),$(n=>this.recordService.totalHits(n.total)===0?[]:n.hits),$(n=>n.map(d=>new wt(d.metadata))))}computeTotalTransactionsAmount(e){return e.reduce((i,n)=>n.status===Ne.OPEN?parseFloat((i+n.total_amount).toFixed(2)):i,0)}_buildTransactionEventsSkeleton(e){let i=this.userService.user;return{parent:{$ref:this.routeToolService.apiService.getRefEndpoint("patron_transactions",e.pid)},operator:{$ref:this.routeToolService.apiService.getRefEndpoint("patrons",i.patronLibrarian.pid)},library:{$ref:this.routeToolService.apiService.getRefEndpoint("libraries",i.currentLibrary)}}}payPatronTransaction(e,i,n){let d=this._buildTransactionEventsSkeleton(e);d.type=xe.PAYMENT,d.subtype=n,d.amount=i,this.patronFeesOperationSubject$.next(0-i),this._createTransactionEvent(d,e.patron.pid)}disputePatronTransaction(e,i){let n=this._buildTransactionEventsSkeleton(e);n.type=xe.DISPUTE,n.note=i,this._createTransactionEvent(n,e.patron.pid)}cancelPatronTransaction(e,i,n){let d=this._buildTransactionEventsSkeleton(e);d.type=xe.CANCEL,d.amount=i,d.note=n,this.patronFeesOperationSubject$.next(0-i),this._createTransactionEvent(d,e.patron.pid)}_createTransactionEvent(e,i){this.recordService.create("patron_transaction_events",e).subscribe({next:()=>{this.emitPatronTransactionByPatron(i,void 0,"open");let n=this.translateService.instant(e.type);this.messageService.add({severity:"success",summary:this.translateService.instant("Patron"),detail:this.translateService.instant("{{ type }} registered",{type:n}),life:N.MESSAGE_LIFE})},error:n=>{let d=n.hasOwnProperty("message")&&n.message().hasOwnProperty("message")?n.message.message:"Server error :: "+(n.title||n.toString()),x="["+n.status+" - "+n.statusText+"] "+d,k=this.translateService.instant(e.type);this.messageService.add({severity:"error",summary:this.translateService.instant("{{ type }} creation failed!",{type:k}),detail:x,sticky:!0,closable:!0})}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var oe=(()=>{class t{constructor(){this.patronService=f(K),this.patronTransactionService=f(we),this.statistics=je({feesEngaged:0,fees:0,overdueFees:0,pending:0,pickup:0,loan:0,ill:0}),this.messages=je([]),this.overdueTransactions=je([]),this.engagedTransactions=je([])}updateStats(e){this.getStats(e).subscribe()}updateFees(e){return this.patronService.getOverduePreview(e).pipe(le(i=>{let n=0;i.map(d=>{n+=d.fees.total}),this.setOverdueFees(n,i)}),le(()=>this.patronTransactionService.emitPatronTransactionByPatron(e,void 0,"open")),se(()=>this.patronTransactionService.patronTransactionsSubject$),le(i=>this.setFeesEngaged(this.patronTransactionService.computeTotalTransactionsAmount(i),i)))}setOverdueFees(e,i){this.overdueTransactions.set(i);let n=this.statistics();this.statistics.set(qt(it({},n),{overdueFees:e,fees:e+n.feesEngaged}))}setFeesEngaged(e,i){this.engagedTransactions.set(i);let n=this.statistics();this.statistics.set(qt(it({},n),{feesEngaged:e,fees:n.overdueFees+e}))}getStats(e){return this.patronService.getCirculationInformations(e).pipe($(i=>this.processStats(i)))}clearMessages(){this.messages.set([])}processStats(e){let i=e.statistics,n={pending:0,pickup:0,loan:0,ill:0};Object.keys(i).forEach(d=>{switch(d){case Q[Q.PENDING]:case Q[Q.ITEM_IN_TRANSIT_FOR_PICKUP]:n.pending+=Number(i[d]);break;case Q[Q.ITEM_AT_DESK]:n.pickup=Number(i[d]);break;case Q[Q.ITEM_ON_LOAN]:n.loan=Number(i[d]);break;case"ill_requests":n.ill=Number(i[d]);break}}),this.statistics.set(it(it({},this.statistics()),n)),this.clearMessages(),e.messages.map(d=>{this.messages.set([...this.messages(),{severity:Ft(d.type),detail:d.content}])})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var lo=t=>({"ui:text-muted-color":t});function co(t,s){if(t&1&&(a(0,"span",9),l(1),o()),t&2){let e=c(2);r(),C(", ",e.patron.first_name,"")}}function po(t,s){t&1&&(l(0," \xA0 "),v(1,"i",17))}function mo(t,s){if(t&1&&(l(0),p(1,"dateTranslate"),p(2,"translate"),_(3,po,2,0)),t&2){let e=c(2);si(" ",b(1,4,e.patron.birth_date,"mediumDate")," (",e.patronAge," ",h(2,7,"years old"),") "),r(3),m(e.isBirthday?3:-1)}}function uo(t,s){t&1&&(a(0,"div",13),l(1),o()),t&2&&(r(),T(s))}function _o(t,s){if(t&1){let e=I();a(0,"div",15)(1,"p-button",18),g("onClick",function(){S(e);let n=c(2);return y(n.clear())}),o()()}}function fo(t,s){if(t&1&&(a(0,"li",21)(1,"span",22),l(2),p(3,"translate"),p(4,"ucfirst"),o(),v(5,"p",23),p(6,"nl2br"),o()),t&2){let e=s.$implicit;r(2),T(h(4,4,h(3,2,e.type))),r(3),u("innerHTML",h(6,6,e.content),Ue)}}function ho(t,s){if(t&1&&(a(0,"div",16)(1,"p-message",19)(2,"ul",20),R(3,fo,7,8,"li",21,j),o()()()),t&2){let e=c(2);r(3),L(e.patron.notes)}}function vo(t,s){if(t&1&&v(0,"p-message",25),t&2){let e=s.$implicit;u("text",e.content)}}function Co(t,s){if(t&1&&R(0,vo,1,1,"p-message",25,j),t&2){let e=c(3);L(e.patron.circulation_informations.messages)}}function xo(t,s){if(t&1&&v(0,"p-message",24),t&2){let e=s.$implicit;u("severity",e.severity)("text",e.detail)}}function go(t,s){if(t&1&&(_(0,Co,2,0),R(1,xo,1,2,"p-message",24,j)),t&2){let e=c(2);m(e.patron.circulation_information?0:-1),r(),L(e.circulationMessages())}}function So(t,s){if(t&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),v(5,"i",5),o(),a(6,"div",3)(7,"div",6)(8,"h3")(9,"a",7)(10,"span",8),l(11),o(),_(12,co,2,1,"span",9),o()(),a(13,"div",10)(14,"div",2)(15,"div",11),_(16,mo,4,9),o(),a(17,"div",12),l(18),o()(),a(19,"div",2),_(20,uo,2,1,"div",13),p(21,"getRecord"),p(22,"async"),a(23,"div",14),l(24),o()()()()(),_(25,_o,2,0,"div",15),o(),_(26,ho,5,0,"div",16),o(),a(27,"div",2),_(28,go,3,1),o()()()),t&2){let e,i=c();u("ngClass",D(18,lo,!i.clearPatronButton)),r(9),u("routerLink",i.patronLink),r(2),T(i.patron.last_name),r(),m(i.patron.first_name?12:-1),r(4),m(i.patron.birth_date?16:-1),r(2),T(i.patron.city),r(2),m((e=h(22,16,J(21,11,i.patron.patron.type.pid,"patron_types","string","name")))?20:-1,e),r(4),T(i.barcode),r(),m(i.clearPatronButton?25:-1),r(),m(i.patron.notes?26:-1),r(2),m(i.displayCirculationMessages?28:-1)}}var Lt=(()=>{class t{constructor(){this.circulationStatsService=f(oe),this.displayCirculationMessages=!1,this.clearPatronButton=!0,this.linkMode="detail",this.clearPatron=new W,this.isBirthday=!1,this.circulationMessages=je([])}ngOnChanges(e){if(e.patron){if(this.patron&&(this.patronLink=this.linkMode==="detail"?"/records/patrons/detail/"+this.patron.pid:"/circulation/patron/"+this.barcode+"/loan"),this.patron&&this.patron.birth_date){let i=ue.now().toFormat("M-dd"),n=ue.fromISO(this.patron.birth_date).toFormat("M-dd");i===n&&(this.isBirthday=!0)}if(this.patron&&this.patron.birth_date){let i=ue.fromISO(this.patron.birth_date);this.patronAge=Math.floor(ue.now().diff(i,"years").years)}this.circulationMessages=this.circulationStatsService.messages}}ngOnDestroy(){this.circulationStatsService.clearMessages()}clear(){this.patron&&this.clearPatron.emit(this.patron),this.circulationStatsService.clearMessages()}getMessageSeverity(e){return Ft(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-patron-detailed"]],inputs:{patron:"patron",barcode:"barcode",displayCirculationMessages:"displayCirculationMessages",clearPatronButton:"clearPatronButton",linkMode:"linkMode"},outputs:{clearPatron:"clearPatron"},standalone:!1,features:[Le],decls:1,vars:1,consts:[[3,"ngClass"],[1,"ui:grid","ui:grid-cols-12","ui:gap-x-4","ui:mt-1"],[1,"ui:col-span-6"],[1,"ui:flex","ui:w-full"],[1,"ui:flex","ui:mr-6","ui:items-center"],["aria-hidden","true",1,"fa","fa-user","fa-5x"],[1,"ui:w-full"],[3,"routerLink"],["id","patron-last-name"],["id","patron-first-name"],[1,"ui:grid","ui:grid-cols-12","ui:w-full","ui:mt-2"],["id","patron-birth-date"],["id","patron-city"],["id","patron-type"],["id","patron-barcode"],[1,"ui:flex"],[1,"ui:my-3"],[1,"fa","fa-birthday-cake","text-warning","ui:animate-pulse"],["icon","fa fa-close","severity","danger","outlined","",3,"onClick"],["severity","warn","showTransitionOptions","0ms",1,"ui:w-full"],[1,"ui:list-none"],[1,"ui:my-1"],[1,"ui:font-bold","ui:text-xl"],[3,"innerHTML"],["severity","info","showTransitionOptions","0ms",1,"ui:w-full",3,"severity","text"],["severity","getMessageSeverity(message.type)","showTransitionOptions","0ms",1,"ui:w-full",3,"text"]],template:function(i,n){i&1&&_(0,So,29,20,"div",0),i&2&&m(n.patron!=null&&n.patron.patron?0:-1)},dependencies:[q,U,te,Yi,H,z,F,Tt,tn,B],encapsulation:2})}}return t})();var yn=(()=>{class t{constructor(){this.loanService=f(Dt)}transform(e){return this.loanService.getCirculationPolicy(e.pid)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ii({name:"getLoanCipo",type:t,pure:!0,standalone:!1})}}return t})();var bo=(t,s)=>({"callout callout-warning":t," ui:text-muted-color":s}),Eo=t=>["/records","items","detail",t],Io=t=>["/records","documents","detail",t],Tn=t=>["/circulation","patron",t,"loan"],ko=()=>({prefix:"item",suffix:"renew-button"}),Ut=()=>({height:"500px"}),Po=t=>["/records","circ_policies","detail",t],Do=(t,s)=>s.pid;function Fo(t,s){if(t&1){let e=I();a(0,"shared-open-close-button",21),g("status",function(n){S(e);let d=c(2);return y(d.isCollapsed=n)}),o()}if(t&2){let e=c(2);u("collapsed",e.isCollapsed)}}function wo(t,s){t&1&&(v(0,"i",7),p(1,"translate")),t&2&&u("title",h(1,1,"Note"))}function Ro(t,s){if(t&1&&v(0,"shared-inherited-call-number",8),t&2){let e=c(2);u("item",e.item)}}function Lo(t,s){t&1&&v(0,"i",22)}function Mo(t,s){if(t&1&&_(0,Lo,1,0,"i",22),t&2){let e=c(2);m(e.item.actionDone===e.itemAction.checkin&&e.item.getNote("checkin_note")||e.item.actionDone===e.itemAction.checkout&&e.item.getNote("checkout_note")?0:-1)}}function Bo(t,s){t&1&&v(0,"i",22)}function Ao(t,s){if(t&1&&_(0,Bo,1,0,"i",22),t&2){let e=c(2);m(e.item.actions?-1:0)}}function Oo(t,s){if(t&1&&(l(0),p(1,"mainTitle"),p(2,"truncateText"),p(3,"mainTitle")),t&2){let e=c(2);C(" ",e.isCollapsed?b(2,3,h(1,1,e.item.document.title),12):h(3,6,e.item.document.title)," ")}}function qo(t,s){if(t&1&&l(0),t&2){let e=c(3);C(" ",e.document.title[0]._text," ")}}function Vo(t,s){if(t&1&&_(0,qo,1,1),t&2){let e=c(2);m(e.document?0:-1)}}function No(t,s){if(t&1&&v(0,"p-tag",10),t&2){let e=c(2);u("value",e.item.enumerationAndChronology)}}function $o(t,s){if(t&1&&v(0,"shared-contribution",11),t&2){let e=c(2);u("contributions",e.document==null?null:e.document.contribution)}}function jo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),v(3,"i",26),a(4,"span"),l(5),p(6,"dateTranslate"),o()()),t&2){let e=c(3);r(),C(" ",h(2,4,e.item.status)," "),r(3),ni("text-warning",e.loan&&e.loan.expired),r(),C(" ",b(6,6,e.item.loan.dueDate,"shortDate")," ")}}function Ho(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.pickup_name," ")}}function Go(t,s){if(t&1&&(l(0),p(1,"getRecord"),p(2,"async")),t&2){let e=c();C(" ",h(2,6,J(1,1,e.metadata.library.pid,"libraries","field","name"))," ")}}function Uo(t,s){if(t&1&&(l(0),p(1,"translate"),_(2,Ho,1,1)(3,Go,3,8),l(4,") ")),t&2){let e=c(4);C(" (",h(1,2,"to")," "),r(2),m(e.item.loan&&e.item.loan.state==="ITEM_IN_TRANSIT_FOR_PICKUP"?2:3)}}function Ko(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),_(3,Uo,5,4),p(4,"getRecord"),p(5,"async"),o()),t&2){let e,i=c(3);r(),C(" ",h(2,2,i.item.status)," "),r(2),m((e=h(5,7,b(4,4,i.getTransitLocationPid(),"locations")))?3:-1,e)}}function zo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),o()),t&2){let e=c(3);r(),T(h(2,1,e.item.status))}}function Wo(t,s){if(t&1&&l(0),t&2){let e=c(4);C(" (",e.item.loan.pickup_location.pickup_name,") ")}}function Jo(t,s){if(t&1&&l(0),t&2){let e=c(4);C(" (",e.item.pending_loans[0].pickup_location.pickup_name,") ")}}function Yo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),_(3,Wo,1,1)(4,Jo,1,1),o()),t&2){let e=c(3);r(),C(" ",h(2,3,e.item.status)," "),r(2),m(e.item.loan&&e.item.loan.pickup_location?3:-1),r(),m(!e.item.loan&&e.item.pending_loans&&e.item.pending_loans.length>0&&e.item.pending_loans[0].pickup_location?4:-1)}}function Xo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),o()),t&2){let e=c(3);r(),T(h(2,1,e.item.status))}}function Zo(t,s){if(t&1&&(a(0,"p-tag",24),p(1,"translate"),l(2),v(3,"i",27),o()),t&2){let e=c(3);u("title",h(1,2,"Renewals")),r(2),C(" ",e.item.loan.extension_count," ")}}function Qo(t,s){if(t&1&&(a(0,"p-tag",25),p(1,"translate"),l(2),p(3,"currency"),o()),t&2){let e=c(3);u("title",h(1,2,"Fees")),r(2),C(" ",b(3,4,e.totalAmountOfFee,e.organisation.default_currency)," ")}}function ea(t,s){if(t&1&&(a(0,"p-tag",24),p(1,"translate"),a(2,"div",28),v(3,"i",29),l(4,"\xA0 "),a(5,"a",30),l(6),o()()()),t&2){let e=c(3);u("title",h(1,4,"Requests")),r(5),u("title",e.item.pending_loans[0].patron.name)("routerLink",D(6,Tn,e.item.pending_loans[0].patron.barcode)),r(),C(" ",e.item.pending_loans[0].patron.name," ")}}function ta(t,s){if(t&1&&(a(0,"ul",13),_(1,jo,7,9,"li")(2,Ko,6,9,"li")(3,zo,3,3,"li")(4,Yo,5,5,"li")(5,Xo,3,3,"li"),a(6,"li",23),_(7,Zo,4,4,"p-tag",24)(8,Qo,4,7,"p-tag",25)(9,ea,7,8,"p-tag",24),o()()),t&2){let e,i=c(2);r(),m((e=i.item.status)==="on_loan"?1:e==="in_transit"?2:e==="on_shelf"?3:e==="at_desk"?4:5),r(6),m(i.isCollapsed&&i.item.loan&&i.item.loan.extension_count&&(!i.item.actionDone||i.item.actionDone!==i.itemAction.checkin)?7:-1),r(),m(i.isCollapsed&&i.totalAmountOfFee>0?8:-1),r(),m(i.isCollapsed&&i.item.pending_loans&&i.item.pending_loans.length?9:-1)}}function ia(t,s){if(t&1&&(l(0),p(1,"translate")),t&2){let e=c(2);C(" ",h(1,1,e.item.status)," ")}}function na(t,s){t&1&&(v(0,"i",31),a(1,"span",32),l(2,"checked in"),o())}function oa(t,s){t&1&&(v(0,"i",33),a(1,"span",32),l(2,"checked out"),o())}function aa(t,s){t&1&&(v(0,"i",34),a(1,"span",32),l(2,"renewed"),o())}function ra(t,s){if(t&1&&(a(0,"span"),l(1),p(2,"translate"),o()),t&2){let e=c(3);r(),T(h(2,1,e.item.actionDone))}}function sa(t,s){if(t&1&&(a(0,"div",16),_(1,na,3,0)(2,oa,3,0)(3,aa,3,0)(4,ra,3,3,"span"),o()),t&2){let e,i=c(2);r(),m((e=i.item.actionDone)===i.itemAction.checkin?1:e===i.itemAction.checkout?2:e===i.itemAction.extend_loan?3:4)}}function la(t,s){if(t&1){let e=I();a(0,"p-button",35),p(1,"translate"),p(2,"idAttribute"),g("onClick",function(n){S(e);let d=c(2);return y(d.extendLoanClick(n))}),o()}if(t&2){let e=c(2);u("label",h(1,4,"Renew"))("outlined",!0)("disabled",!e.item.actions.includes(e.itemAction.extend_loan))("id",b(2,6,e.item.barcode,fe(9,ko)))}}function ca(t,s){if(t&1&&(a(0,"dt",32),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(3);r(3),C(" ",e.item.enumerationAndChronology," ")}}function pa(t,s){if(t&1&&(a(0,"dt",32),l(1,"Location"),o(),a(2,"dd"),l(3),p(4,"getRecord"),p(5,"async"),o()),t&2){let e=s;r(3),ee(" ",h(5,7,J(4,2,e.metadata.library.pid,"libraries","field","name")),": ",e.metadata.name," ")}}function da(t,s){if(t&1&&(a(0,"dt",32),l(1,"Temporary location"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(3);r(3),C(" ",e.item.temporary_location.name," ")}}function ma(t,s){if(t&1&&(a(0,"dt",32),l(1,"Exhibition/course"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(3);r(3),C(" ",e.item.collections.join(", ")," ")}}function ua(t,s){if(t&1&&(a(0,"dt",32),l(1,"Renewals"),o(),a(2,"dd")(3,"p-tag",38),l(4),v(5,"i",27),o()()),t&2){let e=c(3);r(4),C(" ",e.item.loan.extension_count," ")}}function _a(t,s){if(t&1&&(a(0,"dt",32),l(1,"Due date"),o(),a(2,"dd"),l(3),p(4,"dateTranslate"),o()),t&2){let e=c(3);r(3),C(" ",b(4,1,e.item.loan.last_end_date,"shortDate")," ")}}function fa(t,s){if(t&1&&(a(0,"dt",32),l(1,"Fees"),o(),a(2,"dd")(3,"p-tag",39),l(4),p(5,"currency"),o()()),t&2){let e=c(3);r(4),C(" ",b(5,1,e.totalAmountOfFee,e.organisation.default_currency)," ")}}function ha(t,s){if(t&1&&(a(0,"li")(1,"span",40),l(2),p(3,"dateTranslate"),p(4,"dateTranslate"),p(5,"translate"),o(),l(6),p(7,"translate"),o()),t&2){let e=s.$implicit;r(2),C(" ",e.metadata.process_date?b(3,2,e.metadata.process_date,"short"):b(4,5,e.metadata.creation_date,"shortDate")+"\xA0("+h(5,8,"Not yet sent")+")"," "),r(4),C(" \u2014 ",h(7,10,e.metadata.notification_type)," ")}}function va(t,s){if(t&1&&(a(0,"dt",32),l(1,"Notifications"),o(),a(2,"dd")(3,"ul",13),R(4,ha,8,12,"li",null,j),o()()),t&2){let e=c();r(4),L(e)}}function Ca(t,s){t&1&&_(0,va,6,0),t&2&&m(s.length>0?0:-1)}function xa(t,s){if(t&1&&(a(0,"p-tag",38),l(1),o(),v(2,"i",41)),t&2){let e=c(4);r(),C(" ",e.item.pending_loans.length," ")}}function ga(t,s){if(t&1&&(a(0,"p-tag",38),v(1,"i",42),l(2,"\xA0 "),a(3,"a",43),l(4),o()()),t&2){let e=s.$implicit;r(3),u("title",e.patron.name)("routerLink",D(3,Tn,e.patron.barcode)),r(),T(e.patron.name)}}function Sa(t,s){if(t&1&&(a(0,"dt",32),l(1,"Requests"),o(),a(2,"dd"),_(3,xa,3,1),R(4,ga,5,5,"p-tag",38,Do),o()),t&2){let e=c(3);r(3),m(e.item.pending_loans.length>1?3:-1),r(),L(e.item.pending_loans)}}function ya(t,s){if(t&1&&(l(0),p(1,"translate")),t&2){let e=c().$implicit;C(" ",h(1,1,e.type)," ")}}function Ta(t,s){t&1&&(l(0),p(1,"translate")),t&2&&C(" ",h(1,1,"Note")," ")}function ba(t,s){if(t&1&&(a(0,"dt"),v(1,"i",44),_(2,ya,2,3)(3,Ta,2,3),o(),a(4,"dd"),l(5),o()),t&2){let e=s.$implicit,i=c(3);r(2),m(e.type!==i.NOTEAPI?2:3),r(3),T(e.content)}}function Ea(t,s){if(t&1&&(a(0,"div",18)(1,"dl",36)(2,"dt",32),l(3,"Call number"),o(),a(4,"dd"),v(5,"shared-inherited-call-number",37),o(),_(6,ca,4,1)(7,pa,6,9),p(8,"getRecord"),p(9,"async"),_(10,da,4,1)(11,ma,4,1)(12,ua,6,1)(13,_a,5,4)(14,fa,6,4)(15,Ca,1,1),p(16,"async"),_(17,Sa,6,1),R(18,ba,6,2,null,null,j),o()()),t&2){let e,i,n=c(2);r(5),u("item",n.item),r(),m(n.item.enumerationAndChronology?6:-1),r(),m((e=h(9,13,b(8,10,n.item.location.pid,"locations")))?7:-1,e),r(3),m(n.item.temporary_location?10:-1),r(),m(n.item.collections&&n.item.collections.length>0?11:-1),r(),m(n.item.loan&&n.item.loan.extension_count?12:-1),r(),m(n.item.loan&&n.item.actionDone==="checkin"&&(!(n.item==null||n.item.loan==null)&&n.item.loan.last_end_date)?13:-1),r(),m(n.item.loan&&n.totalAmountOfFee>0?14:-1),r(),m((i=h(16,15,n.item.loan&&n.notifications$))?15:-1,i),r(2),m(n.item.pending_loans?17:-1),r(),L(n.getCirculationNoteForAction())}}function Ia(t,s){if(t&1){let e=I();a(0,"div",19)(1,"p-button",45),g("onClick",function(){S(e);let n=c(2);return y(n.debugMode=!n.debugMode)}),v(2,"i",46),o()()}if(t&2){let e=c(2);r(),u("icon",e.debugMode?"fa fa-toggle-on":"fa fa-toggle-off")("outlined",!0)}}function ka(t,s){if(t&1&&(a(0,"div",50)(1,"h5"),l(2),p(3,"translate"),a(4,"a",53),v(5,"i",54),o()(),a(6,"p-scrollPanel",51)(7,"pre",52),l(8),p(9,"json"),o()()()),t&2){let e=s;r(2),C(" ",h(3,5,"Circulation policy"),"\xA0 "),r(2),u("routerLink",D(9,Po,e.pid)),r(2),pt(fe(11,Ut)),r(2),T(h(9,7,e))}}function Pa(t,s){if(t&1&&(a(0,"div",49)(1,"div",50)(2,"h5",32),l(3,"Loan"),o(),a(4,"p-scrollPanel",51)(5,"pre",52),l(6),p(7,"json"),o()()()(),a(8,"div",49),_(9,ka,10,12,"div",50),p(10,"getLoanCipo"),p(11,"async"),o()),t&2){let e,i=c(3);r(4),pt(fe(10,Ut)),r(2),T(h(7,4,i.loan)),r(3),m((e=h(11,8,h(10,6,i.loan)))?9:-1,e)}}function Da(t,s){if(t&1&&(a(0,"div",20)(1,"div",50)(2,"h5",32),l(3,"Item"),o(),a(4,"p-scrollPanel",51)(5,"pre",52),l(6),p(7,"json"),o()()()()),t&2){let e=c(3);r(4),pt(fe(5,Ut)),r(2),T(h(7,3,e.item))}}function Fa(t,s){if(t&1&&(a(0,"div",20)(1,"h5",47),v(2,"i",46),l(3),p(4,"translate"),o(),a(5,"div",48),_(6,Pa,12,11)(7,Da,8,6,"div",20),o()()),t&2){let e=c(2);r(3),C("\xA0",h(4,2,"Debug"),""),r(3),m(e.loan?6:7)}}function wa(t,s){if(t&1&&(a(0,"div",0)(1,"div",1),_(2,Fo,1,1,"shared-open-close-button",2),a(3,"div",3)(4,"div",4)(5,"div",5)(6,"a",6),l(7),o()(),_(8,wo,2,3,"i",7),o(),_(9,Ro,1,1,"shared-inherited-call-number",8),o(),_(10,Mo,1,1)(11,Ao,1,1),o(),a(12,"div",9)(13,"a",6),_(14,Oo,4,8)(15,Vo,1,1),o(),_(16,No,1,1,"p-tag",10)(17,$o,1,1,"shared-contribution",11),o(),a(18,"div",12),_(19,ta,10,4,"ul",13)(20,ia,2,3),o(),a(21,"div",14)(22,"div",15),_(23,sa,5,1,"div",16)(24,la,3,10,"p-button",17),o()(),_(25,Ea,20,17,"div",18)(26,Ia,3,2,"div",19)(27,Fa,8,4,"div",20),o()),t&2){let e=c();u("ngClass",Be(17,bo,e.needCallout(e.item,"warning")||e.item.actionDone===e.itemAction.checkin&&e.totalAmountOfFee>0||!e.item.loan,e.item.status!==e.ItemStatus.ON_LOAN)),r(2),m(!e.item.actions||e.item.loan||e.totalAmountOfFee||e.item.pending_loans||e.notifications$?2:-1),r(4),u("routerLink",D(20,Eo,e.item.pid)),r(),T(e.item.barcode),r(),m(e.getCirculationNoteForAction().length>0?8:-1),r(),m(e.isCollapsed?9:-1),r(),m(e.item.actionDone?10:11),r(3),u("routerLink",D(22,Io,e.item.document.pid)),r(),m(e.item.document!=null&&e.item.document.title?14:15),r(2),m(e.item.enumerationAndChronology&&e.isCollapsed?16:-1),r(),m(e.document?17:-1),r(2),m(e.item.loan?19:20),r(4),m(e.item.actionDone?23:-1),r(),m(e.patron&&!e.item.actionDone?24:-1),r(),m(e.isCollapsed?-1:25),r(),m(e.canUseDebugMode&&!e.isCollapsed?26:-1),r(),m(e.debugMode&&!e.isCollapsed?27:-1)}}var bn=(()=>{class t{constructor(){this.recordService=f(A),this.organisationService=f(ne),this.patronTransactionService=f(we),this.itemService=f(Ce),this.permissionsService=f(sn),this.userService=f(Z),this.circulationStatsService=f(oe),this.NOTEAPI=de.API,this.isCollapsed=!0,this.hasFeesEmitter=new W,this.extendLoanClicked=new W,this.totalAmountOfFee=0,this.itemAction=G,this.document=void 0,this.ItemStatus=Re,this.debugMode=!1}get organisation(){return this.organisationService.organisation}get canUseDebugMode(){return this.permissionsService.canAccessDebugMode()}ngOnChanges(e){if(e?.item?.currentValue){if(this.loan=this.item&&this.item.loan?new kt(this.item.loan):null,this.loan){let i=this.item.loan.pid;this.patronTransactionService.patronTransactionsByLoan$(i,"overdue","open").subscribe(n=>{this.totalAmountOfFee=this.patronTransactionService.computeTotalTransactionsAmount(n),this.totalAmountOfFee>0&&(this.hasFeesEmitter.emit(!0),this.patron.pid&&this.circulationStatsService.updateFees(this.patron.pid).subscribe())}),this.notifications$=this.recordService.getRecords("notifications",`context.loan.pid:${i}`,1,A.MAX_REST_RESULTS_SIZE,[],{},null,"mostrecent").pipe($(n=>n.hits.hits))}this.item?.document?.pid&&this.recordService.getRecord("documents",this.item.document.pid,1,{Accept:"application/rero+json, application/json"}).subscribe(i=>this.document=i.metadata)}}getTransitLocationPid(){if(this.patron||this.item.action_applied===void 0){if(this.item.loan&&this.item.loan.state===Q.ITEM_IN_TRANSIT_FOR_PICKUP)return this.item.loan.pickup_location_pid;if(this.item.loan&&this.item.loan.state===Q.ITEM_IN_TRANSIT_TO_HOUSE)return this.item.location.pid}else{let e=new kt(this.item.action_applied[G.validate]),i=new kt(this.item.action_applied[G.checkin]);if(e&&e.state===Q.ITEM_IN_TRANSIT_FOR_PICKUP)return e.pickup_location_pid;if(i&&i.state===Q.ITEM_IN_TRANSIT_TO_HOUSE)return this.item.location.pid}return null}getCirculationNoteForAction(){if(this.item.actionDone){let e=this.item.getNote(de.CHECKIN);if(e&&(this.item.actionDone===this.itemAction.checkin||this.item.actionDone===this.itemAction.receive&&this.item.library.pid===this.userService.user.currentLibrary))return[e];let i=this.item.getNote(de.CHECKOUT);if(i&&this.item.actionDone===this.itemAction.checkout)return[i]}else if(this.item.notes)return this.item?.notes.filter(e=>[de.CHECKIN,de.API].includes(e.type));return[]}extendLoanClick(e){this.extendLoanClicked.emit(this.item)}needCallout(e,i){return this.itemService.needCallout(e,i)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-item"]],inputs:{item:"item",patron:"patron",isCollapsed:"isCollapsed"},outputs:{hasFeesEmitter:"hasFeesEmitter",extendLoanClicked:"extendLoanClicked"},standalone:!1,features:[Le],decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:items-start","ui:p-2",3,"ngClass"],["name","barcode",1,"ui:col-span-3","ui:flex","ui:gap-2"],[3,"collapsed"],[1,"ui:flex","ui:flex-col","ui:gap-2","ui:w-full"],[1,"ui:flex","ui:items-center"],[1,"ui:grow"],[3,"routerLink"],[1,"fa","fa-sticky-note-o","text-warning",3,"title"],[1,"ui:block","ui:text-sm",3,"item"],["name","title",1,"ui:col-span-5"],["severity","info",3,"value"],[3,"contributions"],["name","circ-info",1,"ui:col-span-2"],[1,"ui:list-none"],["name","action-done",1,"ui:col-span-2"],[1,"ui:flex","ui:justify-end"],["pButton","","severity","secondary","outlined","",1,"ui:flex","ui:gap-2","p-disabled"],["icon","fa fa-refresh","severity","secondary",3,"label","outlined","disabled","id"],[1,"ui:col-span-8","ui:col-start-4"],[1,"ui:flex","ui:justify-end","ui:mt-2","ui:col-span-12"],[1,"ui:col-span-12"],[3,"status","collapsed"],[1,"fa","fa-exclamation-triangle","text-warning","ui:mt-1","ui:ml-auto","ui:mr-2"],[1,"ui:mt-1"],["severity","secondary","styleClass","ui:mr-1",3,"title"],["severity","warn","styleClass","ui:mr-1",3,"title"],["aria-hidden","true",1,"fa","fa-arrow-right"],[1,"fa","fa-refresh","ui:ml-1"],[1,"ui:flex","ui:items-start","ui:gap-1"],[1,"fa","fa-shopping-basket","ui:mt-1"],[1,"ui:truncate",3,"title","routerLink"],["aria-hidden","true",1,"fa","fa-arrow-circle-o-down","text-success"],["translate",""],["aria-hidden","true",1,"fa","fa-arrow-circle-o-right","text-success"],["aria-hidden","true",1,"fa","fa-refresh","text-success"],["icon","fa fa-refresh","severity","secondary",3,"onClick","label","outlined","disabled","id"],[1,"metadata"],[3,"item"],["severity","secondary","styleClass","ui:mr-1"],["severity","warn","styleClass","ui:mr-1"],[1,"ui:text-muted-color","ui:text-sm"],[1,"fa","fa-long-arrow-right","ui:px-2"],[1,"fa","fa-shopping-basket"],[3,"title","routerLink"],[1,"fa","fa-sticky-note-o","text-warning","ui:mr-1"],["severity","warn",3,"onClick","icon","outlined"],[1,"fa","fa-bug"],[1,"text-error"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"ui:lg:col-span-6","ui:col-span-12"],[1,"ui:flex","ui:flex-col","ui:border","ui:border-surface","ui:rounded-border","ui:p-2","ui:bg-white"],["styleClass","ui:w-full"],[1,"ui:text-sm"],["target","_circulation",3,"routerLink"],[1,"fa","fa-external-link"]],template:function(i,n){i&1&&_(0,wa,28,24,"div",0),i&2&&m(n.item&&!n.item.loading?0:-1)},dependencies:[Di,q,U,te,gt,P,De,Qe,X,ie,H,vi,Y,z,F,Ve,B,Ze,ve,yn],encapsulation:2})}}return t})();var In=()=>({prefix:"item"}),En=(t,s)=>s.pid;function La(t,s){t&1&&(a(0,"div",1)(1,"span",2),l(2,"No loan for the current patron."),o()())}function Ma(t,s){if(t&1){let e=I();a(0,"p-button",11),p(1,"translate"),g("onClick",function(){S(e);let n=c(3);return y(n.extendAllLoansClick())}),o()}if(t&2){let e=c(3);u("label",h(1,2,"Renew all"))("disabled",e.loansToExtend.length<1)}}function Ba(t,s){if(t&1){let e=I();a(0,"div",4)(1,"div",5)(2,"div")(3,"shared-open-close-button",6),g("status",function(n){S(e);let d=c(2);return y(d.allCollapsed=n)}),o()(),a(4,"div",2),l(5,"Item"),o()(),a(6,"div",7),l(7,"Document"),o(),a(8,"div",8),l(9,"Circulation info"),o(),a(10,"div",9),_(11,Ma,2,4,"p-button",10),o()()}if(t&2){let e=c(2);r(11),m(e.patron?11:-1)}}function Aa(t,s){if(t&1){let e=I();a(0,"div",3)(1,"admin-item",12),p(2,"idAttribute"),g("extendLoanClicked",function(n){let d=S(e).$implicit,x=c(2);return y(x.extendLoanClick(n,d))}),o()()}if(t&2){let e=s.$implicit,i=c(2);r(),u("patron",i.patron)("item",e)("isCollapsed",i.allCollapsed),Vt("id",b(2,4,e.barcode,fe(7,In)))}}function Oa(t,s){if(t&1){let e=I();a(0,"div",3)(1,"admin-item",13),p(2,"idAttribute"),g("hasFeesEmitter",function(n){S(e);let d=c(2);return y(d.hasFees(n))}),o()()}if(t&2){let e=s.$implicit,i=c(2);r(),u("patron",i.patron)("item",e)("isCollapsed",i.allCollapsed),Vt("id",b(2,4,e.barcode,fe(7,In)))}}function qa(t,s){if(t&1&&(a(0,"p-card"),_(1,Ba,12,1,"ng-template",null,0,M),a(3,"div"),R(4,Aa,3,8,"div",3,En),R(6,Oa,3,8,"div",3,En),o()()),t&2){let e=c();r(4),L(e.checkedOutItems),r(2),L(e.checkedInItems)}}var Mt=(()=>{class t{constructor(){this.extendAllLoansClicked=new W,this.extendLoanClicked=new W,this.hasFeesEmitter=new W,this.allCollapsed=!0}ngOnInit(){this.checkedOutItems=null}extendLoanClick(e,i){i.currentAction=G.extend_loan,this.extendLoanClicked.emit(i)}extendAllLoansClick(){this.extendAllLoansClicked.emit(this.loansToExtend.map(e=>(e.currentAction=G.extend_loan,e)))}get loansToExtend(){return this.checkedOutItems.filter(e=>e.actions.includes(G.extend_loan))}hasFees(e){return this.hasFeesEmitter.emit(e),e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-items-list"]],inputs:{checkedOutItems:"checkedOutItems",checkedInItems:"checkedInItems",patron:"patron"},outputs:{extendAllLoansClicked:"extendAllLoansClicked",extendLoanClicked:"extendLoanClicked",hasFeesEmitter:"hasFeesEmitter"},standalone:!1,decls:2,vars:2,consts:[["header",""],[1,"ui:mb-2"],["translate",""],[1,"ui:odd:bg-surface-50"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:text-lg","ui:font-bold","ui:items-center"],[1,"ui:col-span-3","ui:flex","ui:gap-2","ui:items-center"],[3,"status"],["translate","",1,"ui:col-span-5"],["translate","",1,"ui:col-span-2"],[1,"ui:col-span-2","ui:flex","ui:justify-end"],["id","renew-all-button",3,"label","disabled"],["id","renew-all-button",3,"onClick","label","disabled"],[3,"extendLoanClicked","patron","item","isCollapsed"],[3,"hasFeesEmitter","patron","item","isCollapsed"]],template:function(i,n){i&1&&_(0,La,3,0,"div",1)(1,qa,8,0,"p-card"),i&2&&(m(n.checkedOutItems&&n.checkedOutItems.length===0&&n.patron?0:-1),r(),m(n.checkedOutItems&&n.checkedOutItems.length>0||n.checkedInItems&&n.checkedInItems.length>0?1:-1))},dependencies:[q,he,P,X,bn,F,Ze],encapsulation:2})}}return t})();function Va(t,s){if(t&1&&v(0,"admin-circulation-patron-detailed",3),t&2){let e=c();u("patron",e.patronInfo)("barcode",e.barcode)("linkMode","circulation")("clearPatronButton",!1)}}var Pn=(()=>{class t{constructor(){this.messageService=f(pe),this.dialogService=f(ke),this.userService=f(Z),this.recordService=f(A),this.itemsService=f(Ce),this.router=f(Je),this.translate=f(V),this.patronService=f(K),this.placeholder="Please enter a patron card number or an item barcode.",this.searchText="",this.items=[],this.searchInputFocus=!0,this.searchInputDisabled=!1}ngOnInit(){this.loggedUser=this.userService.user,this.patronService.currentPatron$.subscribe(e=>this.patronInfo=e),this.currentLibraryPid=this.loggedUser.currentLibrary,this.patronInfo=null,this.barcode=null}searchValueUpdated(e){if(!e)return null;this.searchText=e,this.getPatronOrItem(this.searchText)}checkin(e){this.searchInputFocus=!1,this.searchInputDisabled=!0,this.itemsService.checkin(e,this.loggedUser.currentLibrary).subscribe({next:i=>{if(i===null||i.location.organisation.pid!==this.loggedUser.currentOrganisation){this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Item or patron not found!"),sticky:!0,closable:!0}),this._resetSearchInput();return}switch(i.hasRequests&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item contains requests"),life:N.MESSAGE_LIFE}),i.actionDone){case G.return_missing:this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item has been returned from missing"),life:N.MESSAGE_LIFE});break;case G.checkin:if(this.displayCirculationInformation(i,de.CHECKIN),i.action_applied&&i.action_applied.checkin&&this.getPatronInfo(i.action_applied.checkin.patron.barcode),i.status===Re.IN_TRANSIT){let n=i.loan.item_destination.library_name;this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item is in transit to {{ destination }}",{destination:n}),life:N.MESSAGE_LIFE})}break;case G.receive:i.library.pid===this.userService.user.currentLibrary&&this.displayCirculationInformation(i,de.CHECKIN);break}this.items.unshift(i),this._resetSearchInput()},error:i=>{this.item&&this.items.findIndex(n=>n.barcode===this.item.barcode)===-1?this.itemsService.getItem(this.item.barcode).subscribe(n=>{delete n.actions,n.notes||(n.notes=[]),n.notes.push({content:this.processErrorMessage(i.error.status),type:de.API}),this.items.unshift(n),this._checkinErrorManagement(i,n)}):i.error&&(this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.processErrorMessage(i.error.status),life:N.MESSAGE_LIFE}),this._resetSearchInput())}})}getPatronInfo(e){e?(this.barcode=e,this.patronService.getPatron(e).subscribe({error:i=>this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:i.message,sticky:!0,closable:!0})})):(this.patronInfo=null,this.barcode=null)}getPatronOrItem(e){this.item=void 0;let i=this.loggedUser.currentOrganisation,n=`patron.barcode:${e} AND organisation.pid:${i}`,d=this.recordService.getRecords("patrons",n,1,1,[]).pipe($(k=>k.hits)),x=this.recordService.getRecords("items",`barcode:${e}`,1,1,[]).pipe($(k=>k.hits));ge([d,x]).subscribe({next:([k,re])=>{k.total.value===0&&re.total.value===0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Patron not found!"),life:N.MESSAGE_LIFE}),k.total.value>1&&re.total.value===0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Found more than one patron."),life:N.MESSAGE_LIFE}),k.total.value===1&&re.total.value===1?this.dialogService.open(gn,{header:this.translate.instant("Circulation action"),modal:!0,focusOnShow:!1,closable:!0,width:"25vw"}).onClose.subscribe(tt=>{if(tt)switch(tt){case"patron":this.router.navigate(["/circulation","patron",e,"loan"]);break;case"item":this.checkin(e);break;default:this._resetSearchInput();break}}):re.total.value===1?(this.item=re.hits[0].metadata,this.items.find($e=>$e.barcode===e)?(this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item is already in the list."),life:N.MESSAGE_LIFE}),this._resetSearchInput()):this.checkin(e)):k.total.value===1&&this.router.navigate(["/circulation","patron",e,"loan"])},error:k=>this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:k.message,sticky:!0,closable:!0})})}displayCirculationInformation(e,i){let n=[],d=e.getNote(i);if(d!=null&&n.push(d.content),e.library.pid===this.userService.user.currentLibrary){let x=this.displayCollectionsAndTemporaryLocation(e);x.length>0&&(n.length>0&&n.push("<br />"),n.push(x))}n.length>0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:n.join(),life:N.MESSAGE_LIFE})}_checkinErrorManagement(e,i){let n=e.hasOwnProperty("error")&&e.error.hasOwnProperty("status")?this.processErrorMessage(e.error.status):e.message;if(n=this.translate.instant(n),n+=`<br/>${this.translate.instant("Status")}: ${this.translate.instant(i.status.toString())}`,i.status===Re.IN_TRANSIT&&i.loan&&i.loan.item_destination){let{library_name:x}=i.loan.item_destination;n+=` (${this.translate.instant("to")} ${x})`}let d=i.getNote(de.CHECKIN);if(d&&(n+=`<br/>${this.translate.instant("Note")}: ${d.content}`),i.library.pid===this.userService.user.currentLibrary){let x=this.displayCollectionsAndTemporaryLocation(i);x.length>0&&(n+=`<br />${x}`)}this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:n,life:N.MESSAGE_LIFE}),this._resetSearchInput()}displayCollectionsAndTemporaryLocation(e){let i=[];return e.collections&&e.collections.length>0&&(i.push(`${this.translate.instant("This item is in exhibition/course")} "${e.collections[0]}"`),e.collections.length>1&&i.push(` ${this.translate.instant("and {{ count }} other(s)",{count:e.collections.length-1})}`),i.push(".")),e.temporary_location&&i.push(`<br/>${this.translate.instant("This item is in temporary location")} "${e.temporary_location.name}".`),i.join("")}hasFees(e){e&&this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item has fees"),sticky:!0,closable:!0})}processErrorMessage(e){return e.replace(/^error:/,"").trim()}_resetSearchInput(){this.searchInputDisabled=!1,this.searchText="",setTimeout(()=>{this.searchInputFocus=!0})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-checkout"]],standalone:!1,decls:8,vars:8,consts:[["translate",""],[1,"ui:flex","ui:flex-col","ui:gap-4"],[3,"search","placeholder","searchText","focus","disabled"],[3,"patron","barcode","linkMode","clearPatronButton"],[3,"hasFeesEmitter","checkedInItems"]],template:function(i,n){i&1&&(a(0,"h4",0),l(1,"Checkout/checkin"),o(),a(2,"section")(3,"div",1)(4,"ng-core-search-input",2),p(5,"translate"),g("search",function(x){return n.searchValueUpdated(x)}),o(),_(6,Va,1,4,"admin-circulation-patron-detailed",3),a(7,"admin-circulation-items-list",4),g("hasFeesEmitter",function(x){return n.hasFees(x)}),o()()()),i&2&&(r(4),u("placeholder",h(5,6,n.placeholder))("searchText",n.searchText)("focus",n.searchInputFocus)("disabled",n.searchInputDisabled),r(2),m(n.patronInfo?6:-1),r(),u("checkedInItems",n.items))},dependencies:[P,Xe,Lt,Mt,F],encapsulation:2})}}return t})();function Na(t,s){if(t&1&&(a(0,"div",1)(1,"div",2),l(2),o(),v(3,"p",3),o()),t&2){let e=s.$implicit;r(2),C(" ",e.summary," "),r(),u("innerHtml",e.detail,Ue)}}var Dn=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-main"]],standalone:!1,decls:5,vars:0,consts:[["message",""],[1,"ui:flex","ui:flex-col","ui:items-start","ui:grow"],[1,"ui:font-medium","ui:text-lg","ui:text-surface-900"],[3,"innerHtml"]],template:function(i,n){i&1&&(v(0,"router-outlet"),a(1,"p-toast"),_(2,Na,4,2,"ng-template",null,0,M),o(),v(4,"p-confirmDialog"))},dependencies:[yt,zi,Qi],encapsulation:2})}}return t})();var $a=t=>["/records","items","detail",t],ja=t=>["/records","documents","detail",t],Ha=()=>({prefix:"item",suffix:"validate-button"}),Ga=t=>["/circulation","patron",t];function Ua(t,s){if(t&1&&(a(0,"a",4),l(1),o(),v(2,"br")),t&2){let e=c(2);u("routerLink",D(2,ja,e.document.pid)),r(),C(" ",s," ")}}function Ka(t,s){if(t&1){let e=I();a(0,"p-button",12),p(1,"translate"),p(2,"idAttribute"),g("onClick",function(){S(e);let n=c(2);return y(n.validateRequest())}),o()}if(t&2){let e=c(2);u("label",h(1,2,"Validate"))("id",b(2,4,e.item.barcode,fe(7,Ha)))}}function za(t,s){if(t&1&&(a(0,"dt",14),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(3);r(3),T(e.item.enumerationAndChronology)}}function Wa(t,s){if(t&1&&l(0),t&2){let e=c(3);C(" ",e.item.temporary_location.name," ")}}function Ja(t,s){if(t&1&&l(0),t&2){let e=c(3);C(" ",e.item.location.name," ")}}function Ya(t,s){if(t&1&&l(0),t&2){let e=c(3);C(" ",e.item.loan.pickup_location.pickup_name," ")}}function Xa(t,s){if(t&1&&l(0),t&2){let e=c(3);ee(" ",e.item.loan.pickup_location.library_name,": ",e.item.loan.pickup_location.name," ")}}function Za(t,s){if(t&1&&(a(0,"div",11)(1,"dl",13),_(2,za,4,1),a(3,"dt",14),l(4,"Requested by"),o(),a(5,"dd")(6,"a",15),l(7),o()(),a(8,"dt",14),l(9,"Location"),o(),a(10,"dd"),l(11),_(12,Wa,1,1)(13,Ja,1,1),o(),a(14,"dt",14),l(15,"Pick-up location"),o(),a(16,"dd",16),v(17,"i",17)(18,"i",18),_(19,Ya,1,1)(20,Xa,1,2),o()()()),t&2){let e=c(2);r(2),m(e.item.enumerationAndChronology?2:-1),r(4),u("routerLink",D(6,Ga,e.item.loan.patron.barcode)),r(),C(" ",e.item.loan.patron.name," "),r(4),C(" ",e.item.library.name," - "),r(),m(e.item.temporary_location!=null&&e.item.temporary_location.name?12:13),r(7),m(e.item.loan.pickup_location.pickup_name?19:20)}}function Qa(t,s){if(t&1){let e=I();a(0,"div",0)(1,"div",1)(2,"div",2)(3,"shared-open-close-button",3),g("status",function(n){S(e);let d=c();return y(d.isCollapsed=n)}),o(),a(4,"a",4),l(5),o()()(),a(6,"div",5),_(7,Ua,3,4),p(8,"mainTitle"),v(9,"shared-contribution",6),o(),a(10,"div",7),v(11,"shared-inherited-call-number",8),o(),a(12,"div",7),l(13),p(14,"dateTranslate"),o(),a(15,"div",9),_(16,Ka,3,8,"p-button",10),o(),_(17,Za,21,8,"div",11),o()}if(t&2){let e,i=c();dt("id","request-",i.item.barcode,""),u("ngClass",i.getCallout()),r(3),u("collapsed",i.isCollapsed),r(),u("routerLink",D(17,$a,i.item.pid)),r(),T(i.item.barcode),r(2),m((e=h(8,12,i.document.title))?7:-1,e),r(2),u("contributions",i.document==null?null:i.document.contribution),r(2),u("item",i.item),r(2),T(b(14,14,i.item.loan.creation_date,"medium")),r(3),m(i.item.loan.state===i.LoanState.PENDING?16:-1),r(),m(i.isCollapsed?-1:17)}}var Fn=(()=>{class t{constructor(){this.recordService=f(A),this.callout=null,this.requestValidated=new W,this.LoanState=Q}ngOnInit(){this.item&&this.recordService.getRecord("documents",this.item.loan.document_pid,1,{Accept:"application/rero+json, application/json"}).subscribe(e=>this.document=e.metadata)}validateRequest(){this.requestValidated.emit(this.item.barcode)}getCallout(){return this.callout!==null?`callout ${this.callout}`:null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-requested-item"]],inputs:{item:"item",isCollapsed:"isCollapsed",callout:"callout"},outputs:{requestValidated:"requestValidated"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:p-2",3,"ngClass","id"],[1,"ui:col-span-3"],[1,"ui:flex","ui:items-start","ui:gap-2"],[3,"status","collapsed"],[3,"routerLink"],["name","title",1,"ui:col-span-4"],[3,"contributions"],[1,"ui:col-span-2"],[3,"item"],[1,"ui:col-span-1","ui:flex","ui:justify-end"],["icon","fa fa-check","outlined","",3,"label","id"],[1,"ui:col-start-4","ui:col-span-8"],["icon","fa fa-check","outlined","",3,"onClick","label","id"],[1,"metadata","ui:ml-1"],["translate",""],["name","patron-name",3,"routerLink"],[1,"ui:flex","ui:gap-1"],[1,"fa","fa-truck","fa-flip-horizontal"],[1,"fa","fa-long-arrow-right"]],template:function(i,n){i&1&&_(0,Qa,18,19,"div",0),i&2&&m(n.document?0:-1)},dependencies:[q,U,te,P,De,Qe,X,F,B,Ze,ve],encapsulation:2})}}return t})();var tr=()=>[he,P,X,Fn,F],ir=(t,s)=>s.pid;function nr(t,s){if(t&1){let e=I();a(0,"div",2)(1,"div",3)(2,"div",4)(3,"shared-open-close-button",5),g("status",function(n){S(e);let d=c(2);return y(d.isCollapsed=n)}),o(),a(4,"span",6),l(5,"Item"),o()()(),a(6,"div",7),l(7,"Document"),o(),a(8,"div",8),l(9,"Call number"),o(),a(10,"div",8),l(11,"Request date"),o()()}if(t&2){let e=c(2);r(3),u("collapsed",e.isCollapsed)}}function or(t,s){if(t&1){let e=I();a(0,"div",9)(1,"admin-requested-item",10),g("requestValidated",function(n){S(e);let d=c(3);return y(d.validateRequest(n))}),o()()}if(t&2){let e=s.$implicit,i=c(3);r(),u("item",e)("isCollapsed",i.isCollapsed)("callout",i.getItemCallout(e))}}function ar(t,s){if(t&1&&R(0,or,2,3,"div",9,ir),t&2){let e=c(2);L(e.items)}}function rr(t,s){t&1&&(a(0,"div",1),l(1),p(2,"translate"),o()),t&2&&(r(),C(" ",h(2,1,"no request to validate")," "))}function sr(t,s){if(t&1&&(a(0,"p-card"),_(1,nr,12,1,"ng-template",null,0,M)(3,ar,2,0)(4,rr,3,3,"div",1),o()),t&2){let e=c();r(3),m(e.items.length>0?3:4)}}function lr(t,s){t&1&&(a(0,"div",11),l(1,"Loading in progress"),o())}var wn=(()=>{class t{constructor(){this.requestValidated=new W,this.isCollapsed=!1,this.knownItemBarcodes=null}ngOnChanges(e){e.hasOwnProperty("items")&&!e.items.firstChange&&e.items.previousValue&&(this.knownItemBarcodes=e.items.previousValue.map(i=>i.barcode))}getItemCallout(e){return e.loan.state!==Q.PENDING?"callout-success callout-bg-success":this.knownItemBarcodes&&!this.knownItemBarcodes.includes(e.barcode)?"callout-warning callout-bg-warning":null}validateRequest(e){this.requestValidated.emit(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-requested-items-list"]],inputs:{items:"items"},outputs:{requestValidated:"requestValidated"},standalone:!1,features:[Le],decls:4,vars:1,consts:[["header",""],[1,"ui:mx-4","ui:my-6"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:m-2","ui:text-lg","ui:font-bold","ui:items-center"],[1,"ui:col-span-3"],[1,"ui:flex","ui:gap-2","ui:items-center"],[3,"status","collapsed"],["translate",""],["translate","",1,"ui:col-span-4"],["translate","",1,"ui:col-span-2"],[1,"ui:odd:bg-surface-50","ui:print:border-b-1"],[3,"requestValidated","item","isCollapsed","callout"],["translate","",1,"ui:mx-2","ui:my-6"]],template:function(i,n){i&1&&(_(0,sr,5,1)(1,lr,2,0),be(2,0,tr,null,1)),i&2&&(r(2),Ee(n.items))},dependencies:[P],encapsulation:2})}}return t})();function pr(t,s){if(t&1&&(a(0,"div",15),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}function dr(t,s){if(t&1&&(a(0,"div",15),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}function mr(t,s){if(t&1){let e=I();a(0,"p-select",11),g("onChange",function(n){S(e);let d=c();return y(d.selectingIntervalTimer(n.value))}),_(1,pr,4,3,"ng-template",null,0,M)(3,dr,4,3,"ng-template",null,1,M),o()}if(t&2){let e=c();u("options",e.refreshOptions)}}function ur(t,s){if(t&1&&(a(0,"div",15),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}function _r(t,s){if(t&1&&(a(0,"div",15),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}var Ln=(()=>{class t{constructor(){this.userService=f(Z),this.itemsService=f(Ce),this.translateService=f(V),this.messageService=f(pe),this.refreshOptions=[{value:"15000",label:"15 s",icon:"fa fa-clock-o"},{value:"30000",label:"30 s",icon:"fa fa-clock-o"},{value:"60000",label:"1 m",icon:"fa fa-clock-o"},{value:"300000",label:"5 m",icon:"fa fa-clock-o"},{value:"600000",label:"10 m",icon:"fa fa-clock-o"},{value:"3000000",label:"30 m",icon:"fa fa-clock-o"}],this.sortingCriteria=[{value:"requestdate",label:this.translateService.instant("Request date"),icon:"fa fa-sort-numeric-asc"},{value:"-requestdate",label:this.translateService.instant("Request date (desc)"),icon:"fa fa-sort-numeric-desc"},{value:"callnumber",label:this.translateService.instant("Call number"),icon:"fa fa-sort-alpha-asc"},{value:"-callnumber",label:this.translateService.instant("Call number (desc)"),icon:"fa fa-sort-alpha-desc"},{value:"location",label:this.translateService.instant("Location"),icon:"fa fa-sort-alpha-asc"},{value:"-location",label:this.translateService.instant("Location (desc)"),icon:"fa fa-sort-alpha-desc"},{value:"pickuplocation",label:this.translateService.instant("Pick-up location"),icon:"fa fa-sort-alpha-asc"},{value:"-pickuplocation",label:this.translateService.instant("Pick-up location (desc)"),icon:"fa fa-sort-alpha-desc"}],this.placeholder="Please enter an item barcode.",this.searchText="",this.items=null,this.refreshInterval=0,this.searchInputFocus=!0,this.searchInputDisabled=!1,this.intervalSubscription=new me,this.sortCriteria=this.sortingCriteria[1].value}ngOnInit(){let{user:e}=this.userService;e&&(this.libraryPid=e.currentLibrary,this.getRequestedLoans(),this._enableAutoRefresh())}ngOnDestroy(){this.intervalSubscription&&this.intervalSubscription.unsubscribe()}_enableAutoRefresh(){this.intervalSubscription&&(this.intervalSubscription.unsubscribe(),this.intervalSubscription=new me),this.refreshInterval>0&&(this.intervalSubscription=Xt(this.refreshInterval).subscribe(()=>this.getRequestedLoans()))}_sortingRequestedLoans(e){this.items=e.sort((i,n)=>{let d=ue.fromISO(i.loan.transaction_date),x=ue.fromISO(n.loan.transaction_date);switch(this.sortCriteria){case"-requestdate":return x.diff(d);case"callnumber":return"call_number"in i&&"call_number"in n?i.call_number.localeCompare(n.call_number):1;case"-callnumber":return"call_number"in i&&"call_number"in n?n.call_number.localeCompare(i.call_number):1;case"location":case"-location":let k=i.library.name+" "+i.location.name,re=n.library.name+" "+n.location.name;return this.sortCriteria==="location"?k.localeCompare(re):re.localeCompare(k);case"pickuplocation":case"-pickuplocation":let $e=i.loan.pickup_location.pickup_name?i.loan.pickup_location.pickup_name:i.loan.pickup_location.library_name+" "+i.loan.pickup_location.name,tt=i.loan.pickup_location.pickup_name?n.loan.pickup_location.pickup_name:n.loan.pickup_location.library_name+" "+n.loan.pickup_location.name;return this.sortCriteria==="pickuplocation"?$e.localeCompare(tt):tt.localeCompare($e);default:return d.diff(x)}})}getRequestedLoans(){this.itemsService.getRequestedLoans(this.libraryPid).subscribe(e=>{this._sortingRequestedLoans(e)})}searchValueUpdated(e){if(!e)return null;this.searchInputFocus=!1,this.searchInputDisabled=!0,this.searchText=e;let i=this.items.find(n=>n.barcode===e);i===void 0?(this.messageService.add({severity:"warn",summary:this.translateService.instant("request"),detail:this.translateService.instant("No request corresponding to the given item has been found."),life:N.MESSAGE_LIFE}),this._resetSearchInput()):this.itemsService.doValidateRequest(i,this.libraryPid).subscribe(n=>{this._sortingRequestedLoans(this.items.map(d=>d.pid===n.pid?n:d)),this.messageService.add({severity:"warn",summary:this.translateService.instant("request"),detail:this.translateService.instant("The item is ").concat(this.translateService.instant(n.status)),life:N.MESSAGE_LIFE}),this._resetSearchInput()})}enableAutoRefresh(e){this.refreshInterval=e?parseInt(this.refreshOptions[0].value,10):0,this._enableAutoRefresh()}selectingIntervalTimer(e){this.refreshInterval=parseInt(e,10),this._enableAutoRefresh()}selectingSortCriteria(e){this.sortCriteria=e,this._sortingRequestedLoans(this.items)}_resetSearchInput(){this.searchInputDisabled=!1,this.searchText="",setTimeout(()=>{this.searchInputFocus=!0})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-main-request"]],standalone:!1,decls:20,vars:10,consts:[["selectedItem",""],["item",""],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:mb-6","ui:print:hidden"],[1,"ui:col-span-6"],[3,"search","placeholder","searchText","focus","disabled"],[1,"ui:flex","ui:gap-2","ui:w-full","ui:items-center"],[1,"ui:flex","ui:grow","ui:gap-2","ui:justify-start"],["id","auto-refresh",3,"onChange","ngModel"],["for","auto-refresh","translate",""],[1,"ui:flex","ui:gap-2","ui:justify-end"],[3,"options"],[3,"onChange","options"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"ui:col-span-12"],[3,"requestValidated","items"],[1,"ui:flex","ui:items-center","ui:gap-2"]],template:function(i,n){if(i&1){let d=I();a(0,"div",2)(1,"div",3)(2,"ng-core-search-input",4),p(3,"translate"),g("search",function(k){return S(d),y(n.searchValueUpdated(k))}),o()(),a(4,"div",3)(5,"div",5)(6,"div",6)(7,"p-toggleswitch",7),g("onChange",function(k){return S(d),y(n.enableAutoRefresh(k.checked))}),o(),a(8,"label",8),l(9,"Auto refresh"),o()(),a(10,"div",9),_(11,mr,5,1,"p-select",10),a(12,"p-select",11),g("onChange",function(k){return S(d),y(n.selectingSortCriteria(k.value))}),_(13,ur,4,3,"ng-template",null,0,M)(15,_r,4,3,"ng-template",null,1,M),o()()()()(),a(17,"div",12)(18,"div",13)(19,"admin-circulation-requested-items-list",14),g("requestValidated",function(k){return S(d),y(n.searchValueUpdated(k))}),o()()()}i&2&&(r(2),u("placeholder",h(3,8,n.placeholder))("searchText",n.searchText)("focus",n.searchInputFocus)("disabled",n.searchInputDisabled),r(5),u("ngModel",n.refreshInterval>0),r(4),m(n.refreshInterval>0?11:-1),r(),u("options",n.sortingCriteria),r(7),u("items",n.items))},dependencies:[Ke,Ct,ze,$i,P,Xe,wn,F],encapsulation:2})}}return t})();var hr=()=>({Accept:"application/rero+json"}),vr=(t,s)=>[t,"documents","object","",s],Cr=t=>["/records","documents","detail",t],xr=t=>["/records","items","detail",t],gr=(t,s)=>({"ui:bg-green-200":t,"ui:bg-red-200":s}),Sr=(t,s)=>({"fa-angle-double-left":t,"fa-angle-double-right":s}),yr=t=>({$implicit:t});function Tr(t,s){if(t&1&&v(0,"p-tag",14),t&2){let e=c(3);u("value",e.log.metadata.loan.item.enumerationAndChronology)}}function br(t,s){if(t&1&&(a(0,"div",9)(1,"a",13),l(2),o(),_(3,Tr,1,1,"p-tag",14),o()),t&2){let e=c(2);r(),u("routerLink",D(3,Cr,e.log.metadata.loan.item.document.pid)),r(),C(" ",e.log.metadata.loan.item.document.title," "),r(),m(e.log.metadata.loan.item.enumerationAndChronology?3:-1)}}function Er(t,s){if(t&1&&l(0),t&2){let e=c(2);C(" ",e.log.metadata.loan.item.document.title," ")}}function Ir(t,s){if(t&1&&v(0,"shared-contribution",10),t&2){let e=c().ngVar;u("contributions",e.metadata.contribution)("limitRecord",3)}}function kr(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.pid," ")}}function Pr(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.barcode," ")}}function Dr(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.call_number," ")}}function Fr(t,s){if(t&1&&(a(0,"div",15)(1,"div",18),l(2,"Item"),o(),a(3,"div",19)(4,"a",13),_(5,kr,1,1)(6,Pr,1,1)(7,Dr,1,1),o()()()),t&2){let e=s;r(4),u("routerLink",D(4,xr,e.metadata.pid)),r(),m(!e.metadata.barcode&&!e.metadata.call_number?5:-1),r(),m(e.metadata.barcode?6:-1),r(),m(!e.metadata.barcode&&e.metadata.call_number?7:-1)}}function wr(t,s){if(t&1&&v(0,"span",20),t&2){let e=s.$implicit;u("ngClass",Be(1,gr,e.type==="Checkin",e.type==="Checkout"))}}function Rr(t,s){if(t&1&&(a(0,"div",15)(1,"div",21)(2,"div",9),v(3,"i",22),a(4,"span"),l(5),p(6,"translate"),o()()(),a(7,"div",23),nt(8,24),o()()),t&2){let e=s.$implicit;c(3);let i=He(4);r(3),u("ngClass",Be(6,Sr,e.type==="Checkin",e.type==="Checkout")),r(2),C(" ",h(6,4,e.type)," "),r(3),u("ngTemplateOutlet",i)("ngTemplateOutletContext",D(9,yr,e.loan.transaction_location))}}function Lr(t,s){if(t&1&&(a(0,"small",25),v(1,"i",26),l(2),p(3,"dateTranslate"),v(4,"i",27),l(5),p(6,"dateTranslate"),o()),t&2){let e=s.$implicit;r(2),C(" ",b(3,2,e.date,"shortDate")," "),r(3),C(" ",b(6,5,e.date,"HH:mm:ss")," ")}}function Mr(t,s){if(t&1&&(a(0,"div",12),_(1,Fr,8,6,"div",15),p(2,"getRecord"),p(3,"async"),a(4,"h6",16),l(5,"Transaction history"),o(),a(6,"p-timeline",17),_(7,wr,1,4,"ng-template",null,1,M)(9,Rr,9,11,"ng-template",null,2,M)(11,Lr,7,8,"ng-template",null,3,M),o()()),t&2){let e,i=c(2);r(),m((e=h(3,5,b(2,2,i.log.metadata.loan.item.pid,"items")))?1:-1,e),r(5),u("value",i.events)}}function Br(t,s){if(t&1){let e=I();a(0,"div")(1,"div",5)(2,"div",6)(3,"shared-open-close-button",7),g("status",function(n){S(e);let d=c();return d.isCollapsed=n,y(d.loadCheckout())}),o(),a(4,"div",8),_(5,br,4,5,"div",9)(6,Er,1,1)(7,Ir,1,2,"shared-contribution",10),o()(),a(8,"div",11),l(9),p(10,"dateTranslate"),o()(),_(11,Mr,13,7,"div",12),o()}if(t&2){let e=s.ngVar,i=c();r(5),m(e?5:6),r(2),m(!(e==null||e.metadata==null)&&e.metadata.contribution&&e.metadata.contribution.length>0?7:-1),r(2),C(" ",b(10,4,i.log.metadata.date,"short")," "),r(2),m(i.isCollapsed?-1:11)}}function Ar(t,s){if(t&1&&l(0),t&2){let e=c().$implicit;C(" ",e.library.name," ")}}function Or(t,s){if(t&1&&l(0),t&2){let e=c().$implicit;C(" ",e.name," ")}}function qr(t,s){if(t&1&&(v(0,"i",28),_(1,Ar,1,1)(2,Or,1,1)),t&2){let e=s.$implicit;r(),m(e.library?1:2)}}var Mn=(()=>{class t{constructor(){this.operationLogsApiService=f(Et),this.isCollapsed=!0,this.provisionActivityType=cn,this.checkoutLoaded=!1,this.events=[]}loadCheckout(){this.checkoutLoaded||this.operationLogsApiService.getHistoryByLoanPid(this.log.metadata.loan.pid,"checkout").subscribe(e=>{this.checkoutLoaded=!0,this.log.metadata.type="Checkin",this.events=[this.log.metadata],e&&(e.metadata.type="Checkout",this.events.push(e.metadata))})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-history-log"]],inputs:{log:"log"},standalone:!1,decls:5,vars:13,consts:[["logLibrary",""],["marker",""],["content",""],["opposite",""],[4,"ngVar"],[1,"ui:grid","ui:grid-cols-12","ui:p-2"],[1,"ui:col-span-10","ui:flex","ui:gap-2"],[3,"status"],[1,"ui:flex","ui:flex-col"],[1,"ui:flex","ui:gap-2"],[3,"contributions","limitRecord"],[1,"ui:col-span-2"],[1,"ui:m-4","ui:pb-4"],[3,"routerLink"],["severity","info",3,"value"],[1,"ui:grid","ui:grid-cols-12"],["translate","",1,"ui:mt-2"],[3,"value"],["translate","",1,"ui:col-span-2","ui:font-bold"],[1,"ui:col-span-10"],[1,"ui:flex","ui:w-4","ui:h-4","ui:items-center","ui:justify-center","ui:text-white","ui:rounded-full","ui:z-10","ui:shadow-sm",3,"ngClass"],[1,"ui:col-span-3"],[1,"fa",3,"ngClass"],[1,"ui:col-span-9"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ui:text-muted-color"],[1,"fa","fa-calendar-o"],[1,"fa","fa-clock-o","ui:pl-1"],[1,"fa","fa-map-marker","ui:mr-1"]],template:function(i,n){i&1&&(_(0,Br,12,7,"div",4),p(1,"getRecord"),p(2,"async"),_(3,qr,3,1,"ng-template",null,0,M)),i&2&&u("ngVar",h(2,7,di(1,1,Be(10,vr,n.log.metadata.loan.item.document.pid,fe(9,hr)))))},dependencies:[U,te,ft,P,bt,De,X,ie,Rt,H,z,F,B],encapsulation:2})}}return t})();function Nr(t,s){t&1&&(a(0,"div",2)(1,"div",3),l(2),p(3,"translate"),p(4,"translate"),o(),a(5,"div",4),l(6,"Return date"),o()()),t&2&&(r(2),ee("",h(3,2,"Title")," / ",h(4,4,"Authors"),""))}function $r(t,s){if(t&1&&(a(0,"div",5),v(1,"admin-history-log",6),o()),t&2){let e=s.$implicit;r(),u("log",e)}}function jr(t,s){if(t&1&&R(0,$r,2,1,"div",5,j),t&2){let e=c();L(e)}}function Hr(t,s){t&1&&(a(0,"div",1),l(1,"No history."),o())}function Gr(t,s){t&1&&(a(0,"p-card"),_(1,Nr,7,6,"ng-template",null,0,M)(3,jr,2,0)(4,Hr,2,0,"div",1),o()),t&2&&(r(3),m(s.length>0?3:4))}var Bn=(()=>{class t{constructor(){this.patronService=f(K),this.operationLogsApiService=f(Et)}ngOnInit(){this.historyLogs$=this.patronService.currentPatron$.pipe(se(e=>this.operationLogsApiService.getCheckInHistory(e.pid,1,A.MAX_REST_RESULTS_SIZE).pipe($(i=>i.hits.hits))))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-history"]],standalone:!1,decls:2,vars:3,consts:[["header",""],["translate","",1,"ui:mx-4","ui:my-6"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:pl-4","ui:pr-7","ui:text-lg","ui:font-bold","ui:items-center"],[1,"ui:col-span-10"],["translate","",1,"ui:col-span-2"],[1,"ui:odd:bg-surface-50"],[3,"log"]],template:function(i,n){if(i&1&&(_(0,Gr,5,1,"p-card"),p(1,"async")),i&2){let d;m((d=h(1,1,n.historyLogs$))?0:-1,d)}},dependencies:[he,P,Mn,H,F],encapsulation:2})}}return t})();var An=(()=>{class t extends Ht{constructor(){super(...arguments),this.recordService=f(A),this.RESOURCE_NAME="ill_requests"}getByPatronPid(e,i,n="-created"){let d=`patron.pid:${e}`;return this.recordService.getRecords(this.RESOURCE_NAME,d,1,A.MAX_REST_RESULTS_SIZE,void 0,i,Ht.reroJsonheaders,n).pipe($(x=>x.hits.hits))}static{this.\u0275fac=(()=>{let e;return function(n){return(e||(e=Qt(t)))(n||t)}})()}static{this.\u0275prov=Te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Ur=t=>["/","records","ill_requests","detail",t];function Kr(t,s){if(t&1&&(a(0,"dt",11),l(1,"Publisher"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),T(e.record.metadata.document.publisher)}}function zr(t,s){if(t&1&&(a(0,"dt",11),l(1,"Year"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),T(e.record.metadata.document.year)}}function Wr(t,s){if(t&1&&(a(0,"dt",11),l(1,"Identifier"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),T(e.record.metadata.document.identifier)}}function Jr(t,s){if(t&1&&(l(0),p(1,"journalVolume")),t&2){let e=c(3);C(" ",h(1,1,e.record.metadata.document.source)," ")}}function Yr(t,s){if(t&1&&(a(0,"dt",11),l(1,"Source"),o(),a(2,"dd"),_(3,Jr,2,3),o()),t&2){let e=c(2);r(3),m(e.record.metadata.document.source.volume||e.record.metadata.document.source.number?3:-1)}}function Xr(t,s){t&1&&(l(0),p(1,"translate")),t&2&&C(" ",h(1,1,"Copy")," ")}function Zr(t,s){t&1&&(l(0),p(1,"translate")),t&2&&C(" ",h(1,1,"Loan")," ")}function Qr(t,s){if(t&1&&(a(0,"dt",11),l(1,"Pages"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),T(e.record.metadata.pages)}}function es(t,s){if(t&1&&(a(0,"dt",11),l(1,"Found in"),o(),a(2,"dd")(3,"a",12),l(4),p(5,"truncateText"),o(),v(6,"p-tag",13),o()),t&2){let e=c(2);r(3),u("title",e.record.metadata.found_in.url)("href",e.record.metadata.found_in.url,ti),r(),C(" ",J(5,4,e.record.metadata.found_in.url,80,"\u2026","char")," "),r(2),u("value",e.record.metadata.found_in.source)}}function ts(t,s){if(t&1&&(v(0,"li",15),p(1,"nl2br")),t&2){let e=s.$implicit;u("innerHTML",h(1,1,e.content),Ue)}}function is(t,s){if(t&1&&(a(0,"dt",11),l(1,"Note"),o(),a(2,"dd")(3,"ul",14),R(4,ts,2,3,"li",15,j),o()()),t&2){let e=c(2);r(4),L(e.record.metadata.notes)}}function ns(t,s){if(t&1&&(a(0,"div",9)(1,"dl",10),_(2,Kr,4,1)(3,zr,4,1)(4,Wr,4,1)(5,Yr,4,1),a(6,"dt",11),l(7,"Scope"),o(),a(8,"dd"),_(9,Xr,2,3)(10,Zr,2,3),o(),_(11,Qr,4,1)(12,es,7,9),a(13,"dt",11),l(14,"Request status"),o(),a(15,"dd"),v(16,"p-tag",6),p(17,"translate"),o(),_(18,is,6,0),o()()),t&2){let e=c();r(2),m(e.record.metadata.document.publisher?2:-1),r(),m(e.record.metadata.document.year?3:-1),r(),m(e.record.metadata.document.identifier?4:-1),r(),m(e.record.metadata.document.source?5:-1),r(4),m(e.record.metadata.copy?9:10),r(2),m(e.record.metadata.copy&&e.record.metadata.pages?11:-1),r(),m(e.record.metadata.found_in?12:-1),r(4),u("severity",e.badgeColor(e.record.metadata.status))("value",h(17,10,e.record.metadata.status)),r(2),m(e.record.metadata.notes&&e.record.metadata.notes.length>0?18:-1)}}var On=(()=>{class t{constructor(){this.isCollapsed=!0}badgeColor(e){return fn(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-ill-request-item"]],inputs:{record:"record"},standalone:!1,decls:19,vars:18,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:p-2"],[1,"ui:col-span-4","ui:flex","ui:gap-2"],[3,"status"],[1,"ui:text-sm"],[1,"ui:col-span-3"],[1,"ui:col-span-2"],[3,"severity","value"],[1,"ui:col-span-1","ui:text-right"],["icon","fa fa-eye","outlined","",3,"title","routerLink"],[1,"ui:col-span-12"],[1,"metadata","ui:ml-11"],["translate",""],["target","_blank",3,"title","href"],["severity","secondary",1,"ui:ml-2",3,"value"],[1,"ui:list-none"],[3,"innerHTML"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"div",1)(2,"shared-open-close-button",2),g("status",function(x){return n.isCollapsed=x}),o(),a(3,"div"),l(4),a(5,"div",3),l(6),o()()(),a(7,"div",4),l(8),o(),a(9,"div",5),l(10),p(11,"dateTranslate"),o(),a(12,"div",5),v(13,"p-tag",6),p(14,"translate"),o(),a(15,"div",7),v(16,"p-button",8),p(17,"translate"),o(),_(18,ns,19,12,"div",9),o()),i&2&&(r(4),C(" ",n.record.metadata.document.title," "),r(2),T(n.record.metadata.document.authors),r(2),T(n.record.metadata.pickup_location.name),r(2),T(b(11,9,n.record.created,"medium")),r(3),u("severity",n.badgeColor(n.record.metadata.loan_status))("value",h(14,12,n.record.metadata.loan_status)),r(3),u("title",h(17,14,"Details"))("routerLink",D(16,Ur,n.record.metadata.pid)),r(2),m(n.isCollapsed?-1:18))},dependencies:[q,U,P,X,ie,F,Tt,Ve,B,ln],encapsulation:2})}}return t})();function as(t,s){t&1&&(a(0,"div",3)(1,"div",4),l(2,"Document"),o(),a(3,"div",5),l(4,"Pickup location"),o(),a(5,"div",6),l(6,"Request date"),o(),a(7,"div",6),l(8,"Loan status"),o(),v(9,"div",7),o())}function rs(t,s){if(t&1&&(a(0,"div",8),v(1,"admin-ill-request-item",9),o()),t&2){let e=s.$implicit;r(),u("record",e)}}function ss(t,s){if(t&1&&(a(0,"div"),R(1,rs,2,1,"div",8,j),o()),t&2){let e=c();r(),L(e)}}function ls(t,s){t&1&&(a(0,"div",2),l(1," No ill request. "),o())}function cs(t,s){t&1&&(a(0,"p-card"),_(1,as,10,0,"ng-template",null,0,M)(3,ss,3,0,"div")(4,ls,2,0,"div",2),o()),t&2&&(r(3),m(s.length>0?3:4))}function ps(t,s){t&1&&(a(0,"div",1),l(1,"Loading in progress"),o())}var qn=(()=>{class t{constructor(){this.illRequestApiService=f(An),this.patronService=f(K)}ngOnInit(){this.illRequests$=this.patronService.currentPatron$.pipe(se(e=>e?this.illRequestApiService.getByPatronPid(e.pid,{remove_archived:"1"}):Jt(null)))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-ill-request"]],standalone:!1,decls:3,vars:3,consts:[["header",""],["translate","",1,"ui:mx-2","ui:my-6"],["translate","",1,"ui:mx-4","ui:my-6"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:m-1","ui:text-lg","ui:font-bold","ui:items-center"],["translate","",1,"ui:col-span-4"],["translate","",1,"ui:col-span-3"],["translate","",1,"ui:col-span-2"],["translate","",1,"ui:col-span-1"],[1,"ui:odd:bg-surface-50"],[3,"record"]],template:function(i,n){if(i&1&&(_(0,cs,5,1,"p-card"),p(1,"async"),_(2,ps,2,0,"div",1)),i&2){let d;m((d=h(1,1,n.illRequests$))?0:2,d)}},dependencies:[he,P,On,H],encapsulation:2})}}return t})();var et=(()=>{class t{constructor(){this.localeStorageService=f(on),this.libraryService=f(dn),this.menuService=f(mn),this._dueDateKey="due_date_remember",this._keyExpiration=43200,this.init()}hasValue(){return this.localeStorageService.has(this._dueDateKey)}set(e){this.localeStorageService.set(this._dueDateKey,e)}get(){if(this.localeStorageService.has(this._dueDateKey))if(this.localeStorageService.isExpired(this._dueDateKey,this._keyExpiration))this.remove();else{let e=this.localeStorageService.get(this._dueDateKey),i=new Date(new Date(e).toDateString()).getTime(),n=new Date(new Date().toDateString()).getTime();if(i>=n)return e;this.remove()}}remove(){this.localeStorageService.remove(this._dueDateKey)}init(){this.libraryService.switch$.subscribe(()=>this.remove()),this.menuService.logout$.subscribe(()=>this.remove())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Bt=(()=>{class t{constructor(){this.loanFixedDateService=f(et),this.checkoutCirculationSettings=[]}add(e){this.checkoutCirculationSettings.push(e)}clear(){this.checkoutCirculationSettings=[]}getSettings(){return this.checkoutCirculationSettings}remove(e){let i=this.checkoutCirculationSettings.findIndex(n=>n.key===e);if(i>=0)return e==="endDate"&&this.checkoutCirculationSettings[i].extra.remember&&this.loanFixedDateService.remove(),this.checkoutCirculationSettings.splice(i,1)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Te({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Kt=(()=>{class t{static{this.DATE_FORMAT="yyyy-LL-dd"}static minimumDateValidator(e,i){return n=>{if(n.value==null)return null;let d=ue.fromJSDate(n.value);if(!d.isValid)return null;let x=e.setHours(0,0,0,0);return d.set({hours:0,minutes:0,seconds:0,milliseconds:0}),d>=x?null:{"minimum-date":{"date-minimum":ue.fromJSDate(e).toFormat(i),actual:d.toFormat(i)}}}}}return t})();var ds=t=>({"ui:border-warning":t}),Vn=t=>({message:t});function ms(t,s){t&1&&(a(0,"span",4),v(1,"i",12),l(2),p(3,"translate"),o()),t&2&&(r(2),C(" ",h(3,1,"This date will override the circulation policy behavior")," "))}function us(t,s){if(t&1&&(nt(0,5),p(1,"translate")),t&2){c();let e=He(17);u("ngTemplateOutlet",e)("ngTemplateOutletContext",D(4,Vn,h(1,2,"The field is required")))}}function _s(t,s){if(t&1&&(nt(0,5),p(1,"translate")),t&2){c();let e=He(17);u("ngTemplateOutlet",e)("ngTemplateOutletContext",D(4,Vn,h(1,2,"Selected date cannot be in the past.")))}}function fs(t,s){if(t&1&&(a(0,"span",13),v(1,"i",14),l(2),o()),t&2){let e=s.message;r(2),C(" ",e," ")}}var Nn=(()=>{class t{constructor(){this.dynamicDialogRef=f(Ie),this.userService=f(Z),this.recordService=f(A),this.formGroup=new ht({endDate:new $t("",[xi.required,Kt.minimumDateValidator(new Date,Kt.DATE_FORMAT)]),remember:new $t(!1)}),this.disabledDays=[],this.today=new Date,this.subscription=new me}ngOnInit(){this.userService.user&&this.recordService.getRecord("libraries",this.userService.user.currentLibrary,1).subscribe(e=>{let i=new vn(e.metadata);this.disabledDays=i.closedDays})}ngOnDestroy(){this.subscription.unsubscribe()}onSubmitForm(){this.dynamicDialogRef.close({action:"submit",content:this.formGroup.value})}closeModal(){this.dynamicDialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-fixed-date-form"]],standalone:!1,decls:18,vars:20,consts:[["errorMessage",""],[3,"ngSubmit","formGroup"],[1,"ui:flex","ui:flex-col","ui:gap-2"],["appendTo","body","id","end-date","appendTo","body","formControlName","endDate","styleClass","ui:w-full","firstDayOfWeek","1",3,"showIcon","iconDisplay","ngClass","readonlyInput","disabledDays","minDate"],[1,"text-warning","ui:flex","ui:gap-1"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ui:flex","ui:gap-1"],["inputId","remember","formControlName","remember",3,"binary"],["for","remember","translate",""],[1,"ui:mt-4","ui:flex","ui:gap-1","ui:justify-end"],["severity","danger","outlined","",3,"onClick","label"],["type","submit",3,"label","disabled"],[1,"fa","fa-exclamation-triangle"],[1,"text-error","ui:flex","ui:gap-1"],[1,"fa","fa-times-circle"]],template:function(i,n){if(i&1){let d=I();a(0,"form",1),g("ngSubmit",function(){return S(d),y(n.onSubmitForm())}),a(1,"div",2),v(2,"p-datepicker",3),a(3,"div"),_(4,ms,4,3,"span",4)(5,us,2,6,"ng-container",5)(6,_s,2,6,"ng-container",5),o(),a(7,"div",6),v(8,"p-checkbox",7),a(9,"label",8),l(10,"Remember this date in current session"),o()()(),a(11,"div",9)(12,"p-button",10),p(13,"translate"),g("onClick",function(){return S(d),y(n.closeModal())}),o(),v(14,"p-button",11),p(15,"translate"),o()(),_(16,fs,3,1,"ng-template",null,0,M)}i&2&&(u("formGroup",n.formGroup),r(2),u("showIcon",!0)("iconDisplay","input")("ngClass",D(18,ds,n.formGroup.controls.endDate.touched&&n.formGroup.controls.endDate.invalid))("readonlyInput",!0)("disabledDays",n.disabledDays)("minDate",n.today),r(2),m(n.formGroup.controls.endDate.valid||!n.formGroup.controls.endDate.touched?4:-1),r(),m(n.formGroup.controls.endDate.touched&&n.formGroup.controls.endDate.hasError("required")?5:-1),r(),m(n.formGroup.controls.endDate.touched&&n.formGroup.controls.endDate.hasError("minimum-date")?6:-1),r(2),u("binary",!0),r(4),u("label",h(13,14,"Cancel")),r(2),u("label",h(15,16,"Apply"))("disabled",n.formGroup.invalid))},dependencies:[q,te,ft,Oe,Ke,Ae,qe,gi,Mi,Bi,P,F],encapsulation:2})}}return t})();var $n=(()=>{class t{constructor(){this.translateService=f(V),this.dialogService=f(ke),this.loanFixedDateService=f(et),this.dateTranslatePipe=f(B),this.circulationSettingsService=f(Bt),this.items=[]}ngOnInit(){this.items=[{label:this.translateService.instant("Check-out for a fix date"),code:"fix-date",command:()=>this.openFixedEndDateDialog()},{label:this.translateService.instant("Override blockings"),code:"override",command:()=>this.overrideBlocking()}];let e=this.loanFixedDateService.get();e&&this.setCheckoutDateSetting(new Date(e),!0)}openFixedEndDateDialog(){this.dialogRef=this.dialogService.open(Nn,{header:this.translateService.instant("Choose a due date"),modal:!0,focusOnShow:!1,width:"30vw"}),this.dialogRef.onClose.subscribe(e=>{if(e&&"action"in e&&e.action==="submit"){let i=this.setCheckoutDateSetting(e.content.endDate,e.content.remember);e.content.remember&&this.loanFixedDateService.set(i)}})}overrideBlocking(){this._setCheckoutSetting({key:"overrideBlocking",label:this.translateService.instant("Override blockings"),value:!0})}setCheckoutDateSetting(e,i){e.setHours(23,59);let n=this.dateTranslatePipe.transform(e,"shortDate"),d={key:"endDate",label:this.translateService.instant("Active chosen due date: {{ endDate }}",{endDate:n}),value:e.toISOString(),extra:{remember:i,severity:i?"success":"warn"}};return this._setCheckoutSetting(d),d.value}_setCheckoutSetting(e){this.circulationSettingsService.remove(e.key),this.circulationSettingsService.add(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-settings"]],standalone:!1,decls:3,vars:2,consts:[["menu",""],[3,"model","popup"],["size","large","outlined","","icon","fa fa-cog","styleClass","ui:text-muted-color",3,"onClick"]],template:function(i,n){if(i&1){let d=I();v(0,"p-menu",1,0),a(2,"p-button",2),g("onClick",function(k){S(d);let re=He(1);return y(re.toggle(k))}),o()}i&2&&u("model",n.items)("popup",!0)},dependencies:[q,Wi],encapsulation:2})}}return t})();var vs=t=>({value:"-transactiondate",label:t,icon:"fa fa-sort-numeric-desc"}),Cs=t=>({value:"transactiondate",label:t,icon:"fa fa-sort-numeric-asc"}),xs=t=>({value:"-duedate",label:t,icon:"fa fa-sort-numeric-desc"}),gs=t=>({value:"duedate",label:t,icon:"fa fa-sort-numeric-asc"}),Ss=t=>({value:"-location",label:t,icon:"fa fa-sort-numeric-desc"}),ys=t=>({value:"location",label:t,icon:"fa fa-sort-numeric-asc"}),Ts=(t,s,e,i,n,d)=>[t,s,e,i,n,d];function bs(t,s){if(t&1){let e=I();a(0,"p-tag",12),l(1),a(2,"i",13),g("click",function(){let n=S(e).$implicit,d=c(2);return y(d.removeCheckoutSettings(n.key))}),o()()}if(t&2){let e=s.$implicit;u("severity",(e.extra==null?null:e.extra.severity)||"warn"),r(),C(" ",e.label," ")}}function Es(t,s){if(t&1&&(a(0,"div",8),R(1,bs,3,2,"p-tag",12,j),o()),t&2){let e=c();r(),L(e.checkoutSettings)}}function Is(t,s){if(t&1&&(a(0,"div",14),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}function ks(t,s){if(t&1&&(a(0,"div",14),v(1,"i"),a(2,"div"),l(3),o()()),t&2){let e=s.$implicit;r(),Me(e.icon),r(2),T(e.label)}}var jn=(()=>{class t{constructor(){this.itemsService=f(Ce),this.translateService=f(V),this.patronService=f(K),this.userService=f(Z),this.messageService=f(pe),this.circulationSettingsService=f(Bt),this.circulationStatsService=f(oe),this.searchText="",this.checkedOutItems=[],this.checkedInItems=[],this.searchInputFocus=!1,this.searchInputDisabled=!1,this.pickupItems=[],this.subscription=new me,this.sortCriteria="-transaction_date"}get checkoutSettings(){return this.circulationSettingsService.getSettings()}_getCheckoutSetting(e){let i=this.circulationSettingsService.getSettings().find(n=>n.key===e);return i!==void 0?i.value:null}removeCheckoutSettings(e){this.circulationSettingsService.remove(e)}ngOnInit(){this.subscription.add(this.patronService.currentPatron$.subscribe(e=>{if(this.patron=e,e){let i=this.patronService.getItems(e.pid,this.sortCriteria),n=this.patronService.getItemsPickup(e.pid);ge([i,n]).subscribe({next:([d,x])=>{d.map(k=>k.loading=!0),this.checkedOutItems=d,d.forEach((k,re)=>{this.patronService.getItem(k.barcode).subscribe($e=>d[re]=$e)}),this.pickupItems=x},error:d=>{}})}})),this.currentLibraryPid=this.userService.user.currentLibrary,this.searchInputFocus=!0}ngOnDestroy(){this.subscription.unsubscribe(),this.circulationSettingsService.clear()}searchValueUpdated(e){if(!e)return null;this.searchText=e,this.getItem(this.searchText)}getItem(e){this.searchInputFocus=!1,this.searchInputDisabled=!0;let i=this.checkedOutItems.find(n=>n.barcode===e);if(i&&i.actions.includes(G.checkin)){if(i.currentAction=G.checkin,this.applyItems([i]),i.pending_loans&&this.messageService.add({severity:"warn",summary:this.translateService.instant("Checkin"),detail:this.translateService.instant("The item has a request"),life:N.MESSAGE_LIFE}),i.status===Re.IN_TRANSIT){let n=i.loan.item_destination.library_name;this.messageService.add({severity:"warn",summary:this.translateService.instant("Checkin"),detail:this.translateService.instant("The item is in transit to {{ destination }}",{destination:n}),life:N.MESSAGE_LIFE})}}else this.itemsService.getItem(e,this.patron.pid).subscribe({next:n=>{n===null?(this.messageService.add({severity:"error",summary:this.translateService.instant("Checkout"),detail:this.translateService.instant("Item not found"),sticky:!0,closable:!0}),this._resetSearchInput()):n.status===Re.ON_LOAN?(this.messageService.add({severity:"error",summary:this.translateService.instant("Checkout"),detail:this.translateService.instant("Checkout impossible: the item is already on loan for another patron"),sticky:!0,closable:!0}),this._resetSearchInput()):n.pending_loans&&n.pending_loans[0].patron_pid!==this.patron.pid?(this.messageService.add({severity:"error",summary:this.translateService.instant("Checkout"),detail:this.translateService.instant("Checkout impossible: the item is requested by another patron"),sticky:!0,closable:!0}),this._resetSearchInput()):(n.currentAction=G.checkout,this.applyItems([n]))},error:n=>{this.messageService.add({severity:"error",summary:this.translateService.instant("Checkout"),detail:this.translateService.instant(n.message),sticky:!0,closable:!0}),this._resetSearchInput()}})}applyItems(e){let i=[];for(let n of e)if(n.currentAction!==G.no){let d={};n.currentAction===G.checkout&&this.circulationSettingsService.getSettings().map(x=>d[x.key]=x.value),i.push(this.itemsService.doAction(n,this.currentLibraryPid,this.userService.user.patronLibrarian.pid,this.patron.pid,d))}ge(i).pipe(le(n=>n.map(d=>{switch(d.actionDone){case G.checkin:{if(this.displayCirculationInformation(G.checkin,d,de.CHECKIN),this.checkedOutItems=this.checkedOutItems.filter(x=>x.pid!==d.pid),this.checkedInItems.unshift(d),d.status===Re.IN_TRANSIT){let x=d.loan.item_destination.library_name;this.messageService.add({severity:"warn",summary:this.translateService.instant("Checkin"),detail:this.translateService.instant("The item is in transit to {{ destination }}",{destination:x}),life:N.MESSAGE_LIFE})}break}case G.checkout:{this._displayTransactionEndDateChanged(d),this.displayCirculationInformation(G.checkout,d,de.CHECKOUT),this.checkedOutItems.unshift(d),this.checkedInItems=this.checkedInItems.filter(k=>k.pid!==d.pid);let x=this.pickupItems.findIndex(k=>k.metadata.item.pid===d.pid);x>-1&&this.pickupItems.splice(x,1);break}case G.extend_loan:{let x=this.checkedOutItems.findIndex(k=>k.pid===d.pid);this.checkedOutItems[x]=d;break}}})),le(()=>this._resetSearchInput()),Zt(200),se(()=>this.circulationStatsService.getStats(this.patron.pid))).subscribe({error:n=>{let d="";if(n&&n.error&&n.error.message&&(d=n.error.message),n.error.status===403){let x=this.translateService.instant(d)||this.translateService.instant("Checkout is not allowed by circulation policy"),k=this.translateService.instant("Circulation");if(x.includes(": ")){let re=x.split(": ",2);k=re[0].trim(),x=re[1].trim(),x=x.charAt(0).toUpperCase()+x.slice(1)}this.messageService.add({severity:"error",summary:k,detail:x,sticky:!0,closable:!0})}else this.messageService.add({severity:"error",summary:this.translateService.instant("Circulation"),detail:this.translateService.instant("An error occurred on the server: ")+d,sticky:!0,closable:!0});this._resetSearchInput()}})}displayCirculationInformation(e,i,n){let d=[],x=i.getNote(n);if(x!=null&&d.push(x.content),e===G.checkin&&i.library.pid===this.userService.user.currentLibrary){let k=this.displayCollectionsAndTemporaryLocation(i);k.length>0&&(d.length>0&&d.push("<br />"),d.push(k))}d.length>0&&this.messageService.add({severity:"warn",summary:this.translateService.instant("Checkin"),detail:d.join(),life:N.MESSAGE_LIFE})}displayCollectionsAndTemporaryLocation(e){let i=[];return e.collections&&e.collections.length>0&&(i.push(`${this.translateService.instant("This item is in exhibition/course")} "${e.collections[0]}"`),e.collections.length>1&&i.push(` ${this.translateService.instant("and {{ count }} other(s)",{count:e.collections.length-1})}`),i.push(".")),e.temporary_location&&i.push(`<br/>${this.translateService.instant("This item is in temporary location")} "${e.temporary_location.name}".`),i.join("")}_displayTransactionEndDateChanged(e){let i=this._getCheckoutSetting("endDate"),n=e.loan.end_date||null;i!==null&&n!==null&&(i=new Date(i),n=new Date(n),(i.getFullYear()!==n.getFullYear()||i.getMonth()!==n.getMonth()||i.getDate()!==n.getDate())&&this.messageService.add({severity:"warn",summary:this.translateService.instant("Checkout"),detail:this.translateService.instant("The due date has been set to the next business day, since the selected day is closed."),life:N.MESSAGE_LIFE}))}hasFees(e){e&&this.messageService.add({severity:"error",summary:this.translateService.instant("Checkin"),detail:this.translateService.instant("The item has fees"),sticky:!0,closable:!0})}selectingSortCriteria(e){switch(e.value){case"duedate":this.checkedOutItems.sort((i,n)=>i.loan.end_date.diff(n.loan.end_date));break;case"-duedate":this.checkedOutItems.sort((i,n)=>n.loan.end_date.diff(i.loan.end_date));break;case"transactiondate":this.checkedOutItems.sort((i,n)=>i.loan.transaction_date.diff(n.loan.transaction_date));break;case"location":this.checkedOutItems.sort((i,n)=>i.library_location_name.localeCompare(n.library_location_name));break;case"-location":this.checkedOutItems.sort((i,n)=>n.library_location_name.localeCompare(i.library_location_name));break;default:this.checkedOutItems.sort((i,n)=>n.loan.transaction_date.diff(i.loan.transaction_date))}}_resetSearchInput(){this.searchInputDisabled=!1,this.searchText="",setTimeout(()=>{this.searchInputFocus=!0})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-loan"]],standalone:!1,features:[li([B,et])],decls:23,vars:42,consts:[["selectedItem",""],["item",""],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:mb-6"],[1,"ui:col-span-6"],[1,"ui:flex","ui:gap-1"],[1,"ui:grow"],[3,"search","placeholder","searchText","focus","disabled"],[1,"ui:self-center","ui:pl-1"],[1,"ui:flex","ui:gap-1","ui:mt-2"],[1,"ui:col-span-6","ui:flex","ui:items-start","ui:justify-end"],[3,"onChange","options"],[3,"extendLoanClicked","extendAllLoansClicked","hasFeesEmitter","checkedOutItems","checkedInItems","patron"],[3,"severity"],[1,"fa","fa-times-circle","ui:ml-2",3,"click"],[1,"ui:flex","ui:items-center","ui:gap-2"]],template:function(i,n){if(i&1){let d=I();a(0,"section")(1,"div",2)(2,"div",3)(3,"div",4)(4,"div",5)(5,"ng-core-search-input",6),p(6,"translate"),g("search",function(k){return S(d),y(n.searchValueUpdated(k))}),o()(),a(7,"div",7),v(8,"admin-circulation-settings"),o()(),_(9,Es,3,0,"div",8),o(),a(10,"div",9)(11,"p-select",10),p(12,"translate"),p(13,"translate"),p(14,"translate"),p(15,"translate"),p(16,"translate"),p(17,"translate"),g("onChange",function(k){return S(d),y(n.selectingSortCriteria(k))}),_(18,Is,4,3,"ng-template",null,0,M)(20,ks,4,3,"ng-template",null,1,M),o()()(),a(22,"admin-circulation-items-list",11),g("extendLoanClicked",function(k){return S(d),y(n.applyItems([k]))})("extendAllLoansClicked",function(k){return S(d),y(n.applyItems(k))})("hasFeesEmitter",function(k){return S(d),y(n.hasFees(k))}),o()()}i&2&&(r(5),u("placeholder",h(6,9,"Checkout/checkin: please enter an item barcode."))("searchText",n.searchText)("focus",n.searchInputFocus)("disabled",n.searchInputDisabled),r(4),m(n.checkoutSettings?9:-1),r(2),u("options",pi(35,Ts,D(23,vs,h(12,11,"Transaction date (desc)")),D(25,Cs,h(13,13,"Transaction date")),D(27,xs,h(14,15,"Due date (desc)")),D(29,gs,h(15,17,"Due date")),D(31,Ss,h(16,19,"Location (desc)")),D(33,ys,h(17,21,"Location")))),r(11),u("checkedOutItems",n.checkedOutItems)("checkedInItems",n.checkedInItems)("patron",n.patron))},dependencies:[ze,Xe,ie,$n,Mt,F],encapsulation:2})}}return t})();var Ds=(t,s)=>s.id;function Fs(t,s){if(t&1&&(v(0,"p-badge",4),p(1,"currency")),t&2){let e=c(2).$implicit,i=c(2);u("severity",e.tag.severity||"info")("value",b(1,2,e.tag.statistics()[e.id],i.organisation.default_currency))}}function ws(t,s){if(t&1&&v(0,"p-badge",4),t&2){let e=c(2).$implicit;u("severity",e.tag.severity||"info")("value",e.tag.statistics()[e.id])}}function Rs(t,s){if(t&1&&_(0,Fs,2,5,"p-badge",4)(1,ws,1,2,"p-badge",4),t&2){let e=c().$implicit;m(e.tag.withCurrency?0:1)}}function Ls(t,s){if(t&1&&(a(0,"p-tab",2)(1,"span"),l(2),p(3,"translate"),o(),_(4,Rs,2,1),o()),t&2){let e=s.$implicit;u("value",e.id)("routerLink",e.routerLink),r(2),T(h(3,4,e.label)),r(2),m(e.tag!=null&&e.tag.statistics&&(e.tag!=null&&e.tag.statistics()[e.id])&&(e.tag==null?null:e.tag.statistics()[e.id])>0?4:-1)}}function Ms(t,s){if(t&1){let e=I();a(0,"admin-circulation-patron-detailed",0),g("clearPatron",function(){S(e);let n=c();return y(n.clearPatron())}),o(),a(1,"p-tabs",1)(2,"p-tablist"),R(3,Ls,5,6,"p-tab",2,Ds),o()(),a(5,"div",3),v(6,"router-outlet"),o()}if(t&2){let e=c();u("patron",e.patron)("barcode",e.barcode)("displayCirculationMessages",!0),r(),u("value",e.activeTab()),r(2),L(e.items)}}var Hn=(()=>{class t{constructor(){this.route=f(St),this.router=f(Je),this.patronService=f(K),this.organisationService=f(ne),this.hotKeysService=f(xn),this.translateService=f(V),this.circulationStatsService=f(oe),this._shortcuts=[],this.patron=void 0,this.items=[],this.activeTab=lt.required(),this.subscription=new me}get organisation(){return this.organisationService.organisation}ngOnInit(){this.subscription.add(this.route.params.subscribe(e=>{e.hasOwnProperty("barcode")&&this.barcode!==e.barcode&&this.load(e.barcode)})),this.subscription.add(this.router.events.subscribe(e=>{e instanceof Ui&&this.activeTab.set(this.router.url.split("/").pop())})),this.activeTab.set(this.router.url.split("/").pop())}ngOnDestroy(){this._unregisterShortcuts(),this.subscription.unsubscribe()}load(e){this.barcode=e,this.subscription.add(this.patronService.getPatron(e).pipe(le(i=>this.patron=i),le(()=>this.initializeTabs(this.patron.keep_history)),se(i=>this.circulationStatsService.getStats(i.pid)),se(()=>this.circulationStatsService.updateFees(this.patron.pid)),le(()=>this.initializeShortcuts(this.patron.keep_history)),le(()=>{this._unregisterShortcuts(),this._registerShortcuts()})).subscribe())}clearPatron(){this.router.navigate(["/circulation"])}_registerShortcuts(){for(let e of this._shortcuts){let{callback:i}=e;delete e.callback,this.hotKeysService.addShortcut(e).subscribe(n=>i(n))}}_unregisterShortcuts(){let e=this.hotKeysService.getHotkeys().map(d=>d.keys),i=this._shortcuts.map(d=>d.keys),n=e.filter(d=>i.includes(d));n.length>0&&this.hotKeysService.removeShortcuts(n)}initializeTabs(e){let i=[{id:"loan",label:this.translateService.instant("On loan"),routerLink:["/circulation","patron",this.barcode,"loan"],tag:{statistics:this.circulationStatsService.statistics}},{id:"pickup",label:this.translateService.instant("To pick up"),routerLink:["/circulation","patron",this.barcode,"pickup"],tag:{statistics:this.circulationStatsService.statistics}},{id:"pending",label:this.translateService.instant("Pending"),routerLink:["/circulation","patron",this.barcode,"pending"],tag:{statistics:this.circulationStatsService.statistics}},{id:"ill",label:this.translateService.instant("Interlibrary loan"),routerLink:["/circulation","patron",this.barcode,"ill"],tag:{statistics:this.circulationStatsService.statistics}},{id:"profile",label:this.translateService.instant("Profile"),routerLink:["/circulation","patron",this.barcode,"profile"]},{id:"fees",label:this.translateService.instant("Fees"),routerLink:["/circulation","patron",this.barcode,"fees"],tag:{severity:"warn",statistics:this.circulationStatsService.statistics,withCurrency:!0}}];e&&i.push({id:"history",label:this.translateService.instant("History"),routerLink:["/circulation","patron",this.barcode,"history"]}),this.items=i}initializeShortcuts(e){this._shortcuts=[{keys:"1",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "circulation" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"loan"])}},{keys:"2",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "pickup" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"pickup"])}},{keys:"3",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "pending" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"pending"])}},{keys:"4",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "ILL" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"ill"])}},{keys:"5",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "patron profile" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"profile"])}},{keys:"6",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "fees" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"fees"])}}],e&&this._shortcuts.push({keys:"7",group:this.translateService.instant("Patron profile shortcuts"),description:this.translateService.instant('Go to "history" tab'),callback:i=>{this.router.navigate(["/circulation","patron",this.barcode,"history"])}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-main"]],inputs:{activeTab:[1,"activeTab"]},outputs:{activeTab:"activeTabChange"},standalone:!1,decls:1,vars:1,consts:[[3,"clearPatron","patron","barcode","displayCirculationMessages"],[3,"value"],[3,"value","routerLink"],[1,"ui:mt-6"],[3,"severity","value"]],template:function(i,n){i&1&&_(0,Ms,7,4),i&2&&m(n.patron&&n.items?0:-1)},dependencies:[yt,U,xt,qi,Ai,Oi,Lt,Y,F],encapsulation:2})}}return t})();var Bs=()=>[q,We,Oe,Ae,qe,F];function As(t,s){if(t&1){let e=I();a(0,"form",0),g("ngSubmit",function(){S(e);let n=c();return y(n.submit(n.model))}),v(1,"formly-form",1),a(2,"div",2)(3,"p-button",3),p(4,"translate"),g("onClick",function(){S(e);let n=c();return y(n.closeModal())}),o(),v(5,"p-button",4),p(6,"translate"),o()()}if(t&2){let e=c();u("formGroup",e.form),r(),u("form",e.form)("fields",e.formFields)("model",e.model),r(2),u("label",h(4,7,"Cancel")),r(2),u("label",h(6,9,"Save"))("disabled",!e.form.valid)}}var Un=(()=>{class t{constructor(){this.messageService=f(pe),this.dynamicDialogConfig=f(Ye),this.dynamicDialogRef=f(Ie),this.recordService=f(A),this.translateService=f(V),this.organisationService=f(ne),this.userService=f(Z),this.patronTransactionApiService=f(hn),this.apiService=f(en),this.circulationStatsService=f(oe),this.form=new ht({})}ngOnInit(){let e=this.dynamicDialogConfig.data;this.patron=e.patron,this.organisationPid=e.organisationPid,this.recordService.getSchemaForm("patron_transactions").subscribe(n=>{this._initForm(n.schema.properties)})}submit(e){e.creation_date instanceof Date&&(e.creation_date=ue.fromObject(e.creation_date).toISO()),this.patronTransactionApiService.addFee(e).pipe(se(()=>this.circulationStatsService.getStats(this.patron.pid))).subscribe({next:()=>{this.closeModal(),this.messageService.add({severity:"success",summary:this.translateService.instant("Patron transaction"),detail:this.translateService.instant("Added a new fee."),life:N.MESSAGE_LIFE})},error:()=>this.messageService.add({severity:"error",summary:this.translateService.instant("Patron transaction"),detail:this.translateService.instant("An error has occurred. Please try again."),sticky:!0,closable:!0})})}closeModal(){this.dynamicDialogRef.close()}_initForm(e){this.formFields=[{key:"type",type:"select",props:{appendTo:"body",label:"Type",required:!0,options:e.type.widget.formlyConfig.props.options}},{key:"total_amount",type:"input",props:{type:"number",label:"Amount",required:!0,addonLeft:[It.currencySymbol(this.translateService.currentLang,this.organisationService.organisation.default_currency)]}},{key:"note",type:"input",props:{label:"Note"}},{key:"creation_date",type:"datePicker",wrappers:["form-field"],props:{label:"Date",required:!0,dateFormat:"yy-mm-dd"}}],this.model={type:{label:this.translateService.instant(e.type.default),value:e.type.default,data:e.type.default},total_amount:null,creation_date:new Date,patron:{$ref:this.apiService.getRefEndpoint("patrons",this.patron.pid)},organisation:{$ref:this.apiService.getRefEndpoint("organisations",this.organisationPid)},library:{$ref:this.apiService.getRefEndpoint("libraries",this.userService.user.currentLibrary)},status:"open",event:{operator:{$ref:this.apiService.getRefEndpoint("patrons",this.userService.user.patronLibrarian.pid)},library:{$ref:this.apiService.getRefEndpoint("libraries",this.userService.user.currentLibrary)}}}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-patron-fee"]],standalone:!1,decls:3,vars:1,consts:[[3,"ngSubmit","formGroup"],[3,"form","fields","model"],[1,"ui:flex","ui:justify-end","ui:gap-1","ui:mt-2"],["severity","danger","outlined","",3,"onClick","label"],["type","submit",3,"label","disabled"]],template:function(i,n){i&1&&(_(0,As,7,11),be(1,0,Bs)),i&2&&(r(),Ee(n.formFields))},encapsulation:2})}}return t})();var Os=(t,s)=>s.pid;function qs(t,s){if(t&1&&(a(0,"div",8)(1,"label",9),l(2,"Note"),o(),a(3,"span",10),l(4),o()()),t&2){let e=c().$implicit;r(4),T(e.note)}}function Vs(t,s){if(t&1&&(a(0,"p-panel",4),p(1,"translate"),a(2,"div",7),_(3,qs,5,1,"div",8),a(4,"div",8)(5,"label",9),l(6,"Creation date"),o(),a(7,"span",10),l(8),p(9,"dateTranslate"),o()(),a(10,"div",8)(11,"label",9),l(12,"Total amount"),o(),a(13,"span",10),l(14),p(15,"currency"),o()()()()),t&2){let e=s.$implicit,i=c(2);u("header",h(1,4,e.type)),r(3),m(e.note?3:-1),r(5),T(b(9,6,e.creation_date,"shortDate")),r(6),T(b(15,9,e.total_amount,i.organisation.default_currency))}}function Ns(t,s){if(t&1){let e=I();a(0,"form",1),g("ngSubmit",function(){S(e);let n=c();return y(n.onSubmitForm())}),v(1,"formly-form",2),a(2,"p-scrollPanel",3),R(3,Vs,16,12,"p-panel",4,Os),o(),a(5,"div",5),v(6,"p-button",6),p(7,"translate"),o()()}if(t&2){let e=c();u("formGroup",e.form),r(),u("form",e.form)("fields",e.formFields)("model",e.model),r(2),L(e.transactions),r(3),u("label",h(7,6,"Save"))("disabled",e.form.status!=="VALID")}}var rt=(()=>{class t{constructor(){this.dynamicDialogConfig=f(Ye),this.dynamicDialogRef=f(Ie),this.translateService=f(V),this.organisationService=f(ne),this.patronTransactionService=f(we),this.form=new vt({}),this.formFields=[]}ngOnInit(){let e=this.dynamicDialogConfig.data;this.transactions=e.transactions,this.action=e.action,this.mode=e.mode,this._initForm()}_initForm(){if(this.action==="pay")this.formFields.push(this._amountFormFieldDefinition()),this.formFields.push(this._methodFormFieldDefinition()),this.model={amount:this.mode==="full"?this._computeTotalAmount():0,method:"cash"};else if(this.action==="cancel"){let e=this.translateService.instant("Cancellation reason");this.formFields.push(this._amountFormFieldDefinition()),this.formFields.push(this._commentFormFieldDefinition(e)),this.model={amount:0,method:"cash"}}else{let e=this.translateService.instant("Reason of dispute");this.formFields.push(this._commentFormFieldDefinition(e))}}_amountFormFieldDefinition(){return{key:"amount",type:"input",focus:!0,props:{label:this.translateService.instant("Amount"),type:"number",min:0,max:this._computeTotalAmount(),step:.1,pattern:"^\\d*(\\.\\d{0,2})?$",required:!0,addonLeft:[It.currencySymbol(this.translateService.currentLang,this.organisationService.organisation.default_currency)]},validation:{messages:{pattern:(e,i)=>"Only 2 decimals are allowed"}},validators:{min:{expression:e=>e.value>0,message:e=>this.translateService.instant("Must be greater than 0")}}}}_methodFormFieldDefinition(){return{key:"method",type:"select",props:{label:this.translateService.instant("Payment method"),required:!0,placeholder:this.translateService.instant("Select\u2026"),options:[{value:"cash",label:this.translateService.instant("Cash")},{value:"invoice",label:this.translateService.instant("Invoice")},{value:"debit_card",label:this.translateService.instant("Debit card")},{value:"credit_card",label:this.translateService.instant("Credit card")},{value:"paypal",label:"Paypal"}]}}}_commentFormFieldDefinition(e){return{key:"comment",type:"textarea",props:{label:this.translateService.instant("Comment"),required:!0,placeholder:e,rows:4,minLength:5}}}_computeTotalAmount(){return this.transactions.reduce((e,i)=>parseFloat((e+i.total_amount).toFixed(2)),0)}closeModal(){this.dynamicDialogRef.close()}get organisation(){return this.organisationService.organisation}onSubmitForm(){let e=this.form.value;if(this.action==="pay"){let i=e.amount;for(let n of this.transactions){let d=i>=n.total_amount?n.total_amount:i;if(this.patronTransactionService.payPatronTransaction(n,d,e.method),i=parseFloat((i-d).toFixed(2)),i<=0)break}}else if(this.action==="dispute")for(let i of this.transactions)this.patronTransactionService.disputePatronTransaction(i,e.comment);else if(this.action==="cancel")for(let i of this.transactions)this.patronTransactionService.cancelPatronTransaction(i,e.amount,e.comment);this.dynamicDialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-patron-transaction-form"]],standalone:!1,decls:1,vars:1,consts:[[3,"formGroup"],[3,"ngSubmit","formGroup"],[3,"form","fields","model"],[1,"ui:m-6","ui:w-full","ui:max-h-[500px]"],["styleClass","ui:mb-2",3,"header"],[1,"ui:flex","ui:justify-end"],["type","submit",3,"label","disabled"],[1,"ui:ml-4","ui:mb-2"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],["translate","",1,"ui:col-span-4"],[1,"ui:col-span-8"]],template:function(i,n){i&1&&_(0,Ns,8,8,"form",0),i&2&&m(n.transactions?0:-1)},dependencies:[q,We,Oe,Ae,qe,wi,gt,P,Y,F,B],encapsulation:2})}}return t})();var $s=(t,s,e,i)=>({"ui:bg-orange-200":t,"ui:bg-red-200":s,"ui:bg-green-200":e,"ui:bg-blue-200":i}),js=(t,s)=>({"fa-eye":t,"fa-eye-slash":s});function Hs(t,s){if(t&1&&v(0,"span",4),t&2){let e=s.$implicit,i=c();u("ngClass",ci(1,$s,e.type===i.patronTransactionEventType.DISPUTE,e.type===i.patronTransactionEventType.FEE,e.type===i.patronTransactionEventType.PAYMENT,e.type===i.patronTransactionEventType.CANCEL))}}function Gs(t,s){if(t&1&&(v(0,"p-tag",7),p(1,"currency")),t&2){let e=c().$implicit,i=c();u("value",b(1,2,e.amount,i.organisation.default_currency))("severity",i.tagSeverity(e))}}function Us(t,s){if(t&1){let e=I();a(0,"i",11),g("click",function(){S(e);let n=c().$implicit,d=c();return y(d.hideShowEvent("event-"+n.pid))}),o()}if(t&2){let e=c().$implicit,i=c();u("ngClass",Be(1,js,i.hideShowEye("event-"+e.pid),!i.hideShowEye("event-"+e.pid)))}}function Ks(t,s){if(t&1&&(a(0,"div",10)(1,"div",12),v(2,"i",13),l(3),p(4,"translate"),o(),a(5,"div",14),l(6),o()()),t&2){let e=c().$implicit;r(3),C("\xA0 ",h(4,2,"Note")," "),r(3),T(e.note)}}function zs(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.last_name," ")}}function Ws(t,s){t&1&&l(0," , ")}function Js(t,s){if(t&1&&l(0),t&2){let e=c();C(" ",e.metadata.first_name," ")}}function Ys(t,s){if(t&1&&(a(0,"div",10)(1,"div",12),v(2,"i",15),l(3),p(4,"translate"),o(),a(5,"div",14),_(6,zs,1,1)(7,Ws,1,0)(8,Js,1,1),o()()),t&2){let e=s;r(3),C("\xA0 ",h(4,4,"Operator")," "),r(3),m(e.metadata.last_name?6:-1),r(),m(e.metadata.last_name&&e.metadata.first_name?7:-1),r(),m(e.metadata.first_name?8:-1)}}function Xs(t,s){if(t&1&&(_(0,Ys,9,6,"div",10),p(1,"getRecord"),p(2,"async")),t&2){let e,i=c().$implicit;m((e=h(2,4,b(1,1,i.operator.pid,"patrons")))?0:-1,e)}}function Zs(t,s){t&1&&(a(0,"div",10)(1,"div",12),v(2,"i",16),l(3),p(4,"translate"),o(),a(5,"div",14),l(6),o()()),t&2&&(r(3),C("\xA0 ",h(4,2,"Library")," "),r(3),T(s.metadata.name))}function Qs(t,s){if(t&1&&(_(0,Zs,7,4,"div",10),p(1,"getRecord"),p(2,"async")),t&2){let e,i=c().$implicit;m((e=h(2,4,b(1,1,i.library.pid,"libraries")))?0:-1,e)}}function el(t,s){t&1&&(v(0,"i",20),l(1),p(2,"translate")),t&2&&(r(),C("\xA0 ",h(2,1,"Steps")," "))}function tl(t,s){if(t&1&&(v(0,"p-tag",7),p(1,"currency")),t&2){let e=c().$implicit,i=c(2).$implicit,n=c();u("value",b(1,2,e.amount,n.organisation.default_currency))("severity",n.tagSeverity(i))}}function il(t,s){if(t&1&&(a(0,"div",17)(1,"div",12),_(2,el,3,3),o(),a(3,"div",18),l(4),p(5,"dateTranslate"),o(),a(6,"div",19),_(7,tl,2,5,"p-tag",7),o()()),t&2){let e=s.$implicit,i=s.$index,n=c(2).$implicit,d=c();r(2),m(i===0?2:-1),r(2),T(b(5,3,e.timestamp,"shortDate")),r(3),m(n.type!==d.patronTransactionEventType.DISPUTE?7:-1)}}function nl(t,s){if(t&1&&R(0,il,8,6,"div",17,j),t&2){let e=c().$implicit;L(e.steps)}}function ol(t,s){if(t&1&&(a(0,"div",5)(1,"div",6)(2,"div"),l(3),o(),_(4,Gs,2,5,"p-tag",7)(5,Us,1,4,"i",8),o()(),a(6,"div",9),_(7,Ks,7,4,"div",10)(8,Xs,3,6)(9,Qs,3,6)(10,nl,2,0),o()),t&2){let e=s.$implicit,i=c();r(3),T(i.eventLabel(e)),r(),m(e.type!==i.patronTransactionEventType.DISPUTE?4:-1),r(),m(e.pid?5:-1),r(),dt("id","event-",e.pid,""),u("hidden",!0),r(),m(e.note?7:-1),r(),m(e.operator?8:-1),r(),m(e.library?9:-1),r(),m(e.steps?10:-1)}}function al(t,s){if(t&1&&(a(0,"small",21),v(1,"i",22),l(2),p(3,"dateTranslate"),v(4,"i",23),l(5),p(6,"dateTranslate"),o()),t&2){let e=s.$implicit;r(2),C(" ",b(3,2,e.creation_date,"shortDate")," "),r(3),C(" ",b(6,5,e.creation_date,"HH:mm:ss")," ")}}var At=(()=>{class t{constructor(){this.translateService=f(V),this.organisationService=f(ne),this.events=ei.required(),this.patronTransactionEventType=xe}get organisation(){return this.organisationService.organisation}eventLabel(e){return e.subtype?`${this.translateService.instant(e.type.toString())} [${this.translateService.instant(e.subtype)}]`:this.translateService.instant(e.type.toString())}tagSeverity(e){switch(e.type){case this.patronTransactionEventType.FEE:return"danger";case this.patronTransactionEventType.PAYMENT:return"success";case this.patronTransactionEventType.CANCEL:return"info"}}hideShowEye(e){return document.getElementById(e).hidden}hideShowEvent(e){let i=document.getElementById(e);i.hidden=!i.hidden}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-patron-transaction-history"]],inputs:{events:[1,"events"]},standalone:!1,decls:7,vars:1,consts:[["marker",""],["content",""],["opposite",""],[3,"value"],[1,"ui:flex","ui:w-4","ui:h-4","ui:items-center","ui:justify-center","ui:text-white","ui:rounded-full","ui:z-10","ui:shadow-sm",3,"ngClass"],[1,"ui:flex","ui:gap-2","ui:items-start"],[1,"ui:flex","ui:gap-2","ui:items-center"],[3,"value","severity"],[1,"fa",3,"ngClass"],[1,"ui:my-2",3,"id","hidden"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"fa",3,"click","ngClass"],[1,"ui:col-span-4"],[1,"fa","fa-comment-o"],[1,"ui:col-span-8"],[1,"fa","fa-user"],[1,"fa","fa-map-marker"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:mb-1"],[1,"ui:col-span-6"],[1,"ui:col-span-2"],[1,"fa","fa-cubes"],[1,"ui:text-muted-color"],[1,"fa","fa-calendar-o"],[1,"fa","fa-clock-o","ui:pl-1"]],template:function(i,n){i&1&&(a(0,"p-timeline",3),_(1,Hs,1,6,"ng-template",null,0,M)(3,ol,11,10,"ng-template",null,1,M)(5,al,7,8,"ng-template",null,2,M),o()),i&2&&u("value",n.events())},dependencies:[te,ie,Rt,H,Y,z,F,B],encapsulation:2})}}return t})();var rl=t=>["/records","documents","detail",t],sl=t=>["/records","items","detail",t];function ll(t,s){if(t&1&&(a(0,"a",5),l(1),p(2,"truncateText"),o()),t&2){let e=c(2);u("routerLink",D(5,rl,e.document.pid)),r(),C(" ",b(2,2,s,15)," ")}}function cl(t,s){if(t&1&&(a(0,"div",12),l(1,"Borrowed at"),o(),a(2,"div",13),l(3),p(4,"getRecord"),p(5,"async"),o()),t&2){let e=c().ngVar;r(3),ee(" ",h(5,7,J(4,2,e.metadata.library.pid,"libraries","field","name")),": ",e.metadata.name," ")}}function pl(t,s){if(t&1&&(oi(0),_(1,cl,6,9),ai()),t&2){let e=s.ngVar;r(),m(e?1:-1)}}function dl(t,s){if(t&1&&(a(0,"div",10)(1,"div",12),l(2,"Item"),o(),a(3,"div",13)(4,"a",5),l(5),o()(),a(6,"div",12),l(7,"Call number"),o(),a(8,"div",13),v(9,"shared-inherited-call-number",14),o(),a(10,"div",12),l(11,"Borrowed on"),o(),a(12,"div",13),l(13),p(14,"dateTranslate"),o(),_(15,pl,2,1,"ng-container",15),p(16,"getRecord"),p(17,"async"),o()),t&2){let e=c(3);r(4),u("routerLink",D(13,sl,e.item.pid)),r(),T(e.item.barcode),r(4),u("item",e.item),r(4),T(b(14,5,e.transaction.loan.start_date,"short")),r(2),u("ngVar",h(17,11,b(16,8,e.transaction.loan.transaction_location_pid,"locations")))}}function ml(t,s){if(t&1&&(a(0,"div",7)(1,"h6",8),l(2,"Details"),o(),a(3,"section",9),_(4,dl,18,15,"div",10),o(),a(5,"h6",8),l(6,"Transaction history"),o(),v(7,"admin-patron-transaction-history",11),o()),t&2){let e=c(2);r(4),m(e.item?4:-1),r(3),u("events",e.transaction.fees.steps)}}function ul(t,s){if(t&1){let e=I();a(0,"div",0)(1,"div",1)(2,"div",2)(3,"shared-open-close-button",3),g("status",function(n){S(e);let d=c();return y(d.isCollapsed=n)}),o(),l(4),p(5,"dateTranslate"),o(),a(6,"div",4),_(7,ll,3,7,"a",5),p(8,"mainTitle"),o(),a(9,"div",6),l(10),p(11,"currency"),o()(),_(12,ml,8,2,"div",7),o()}if(t&2){let e,i=c();r(4),C(" ",b(5,4,i.transaction.loan.end_date,"shortDate")," "),r(3),m((e=h(8,7,i.document&&i.document.title))?7:-1,e),r(3),T(b(11,9,i.transaction.fees.total,i.organisation.default_currency)),r(2),m(i.isCollapsed?-1:12)}}var zn=(()=>{class t{constructor(){this.organisationService=f(ne),this.recordService=f(A),this.isCollapsed=!0,this.item=void 0,this.document=void 0}get organisation(){return this.organisationService.organisation}ngOnInit(){let e=this.recordService.getRecord("items",this.transaction.loan.item_pid.value),i=this.recordService.getRecord("documents",this.transaction.loan.document_pid);ge([e,i]).subscribe(([n,d])=>{this.item=new Pt(n.metadata),this.document=d.metadata}),this.transaction.fees.steps=this.transaction.fees.steps.map(n=>new wt({creation_date:n[1],amount:n[0],type:xe.FEE,subtype:"overdue"})).reverse()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-overdue-transaction"]],inputs:{transaction:"transaction"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:p-2"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:items-start"],[1,"ui:col-span-2","ui:flex","ui:gap-2"],[3,"status"],[1,"ui:col-span-8"],[3,"routerLink"],[1,"ui:col-span-2","ui:flex","ui:justify-end"],[1,"ui:mt-2"],["translate",""],[1,"ui:mb-4"],[1,"ui:grid","ui:grid-cols-12"],[3,"events"],["translate","",1,"ui:col-span-2"],[1,"ui:col-span-10"],[3,"item"],[4,"ngVar"]],template:function(i,n){i&1&&_(0,ul,13,12,"div",0),i&2&&m(n.transaction!==void 0&&n.transaction.fees.total>0?0:-1)},dependencies:[U,P,bt,Qe,X,At,H,Y,z,Ve,B,ve],encapsulation:2})}}return t})();function fl(t,s){if(t&1&&(a(0,"div",0)(1,"div",1),l(2,"Note"),o(),a(3,"div",2),l(4),o()()),t&2){let e=c();r(4),T(e.transaction.note)}}var Wn=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-default-transaction-detail"]],inputs:{transaction:"transaction"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12"],["translate","",1,"ui:col-span-2"],[1,"ui:col-span-10"]],template:function(i,n){i&1&&_(0,fl,5,1,"div",0),i&2&&m(n.transaction!=null&&n.transaction.note?0:-1)},dependencies:[P],encapsulation:2})}}return t})();var vl=t=>["/records","documents","detail",t],Cl=t=>["/records","items","detail",t];function xl(t,s){if(t&1&&(a(0,"div",1),l(1,"Note"),o(),a(2,"div",2),l(3),o()),t&2){let e=c(2);r(3),T(e.transaction.note)}}function gl(t,s){if(t&1&&(a(0,"a",3),l(1),p(2,"truncateText"),o()),t&2){let e=c(4);u("routerLink",D(5,vl,e.transaction.document.pid)),r(),C(" ",b(2,2,s,15)," ")}}function Sl(t,s){if(t&1&&(a(0,"div",1),l(1,"Document"),o(),a(2,"div",2),_(3,gl,3,7,"a",3),p(4,"mainTitle"),o()),t&2){let e;r(3),m((e=h(4,1,s.metadata.title))?3:-1,e)}}function yl(t,s){if(t&1&&(_(0,Sl,5,3),p(1,"getRecord"),p(2,"async")),t&2){let e,i=c(2);m((e=h(2,4,b(1,1,i.transaction.document.pid,"documents")))?0:-1,e)}}function Tl(t,s){if(t&1&&(a(0,"div",1),l(1,"Item"),o(),a(2,"div",2)(3,"a",3),l(4),o()()),t&2){let e=c(2);r(3),u("routerLink",D(2,Cl,e.item.pid)),r(),T(e.item.barcode)}}function bl(t,s){t&1&&(a(0,"div",1),l(1,"Loan started at"),o(),a(2,"div",2),l(3),p(4,"dateTranslate"),o()),t&2&&(r(3),T(b(4,1,s.metadata.start_date,"shortDate")))}function El(t,s){if(t&1&&(_(0,bl,5,4),p(1,"getRecord"),p(2,"async")),t&2){let e,i=c(2);m((e=h(2,4,b(1,1,i.transaction.loan.pid,"loans")))?0:-1,e)}}function Il(t,s){if(t&1&&(a(0,"div",0),_(1,xl,4,1)(2,yl,3,6)(3,Tl,5,4)(4,El,3,6),o()),t&2){let e=c();r(),m(e.transaction.note?1:-1),r(),m(!(e.transaction==null||e.transaction.document==null)&&e.transaction.document.pid?2:-1),r(),m(e.item?3:-1),r(),m(e.transaction.loan!==null?4:-1)}}var Jn=(()=>{class t{constructor(){this.recordService=f(A)}ngOnInit(){this.transaction&&this.transaction.loan&&this.transaction.loan.pid&&this.recordService.getRecord("loans",this.transaction.loan.pid).pipe($(e=>e.metadata),Yt(e=>this.recordService.getRecord("items",e.item_pid.value)),$(e=>new Pt(e.metadata))).subscribe(e=>this.item=e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-overdue-transaction-detail"]],inputs:{transaction:"transaction"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12"],["translate","",1,"ui:col-span-2"],[1,"ui:col-span-10"],[3,"routerLink"]],template:function(i,n){i&1&&_(0,Il,5,4,"div",0),i&2&&m(n.transaction?0:-1)},dependencies:[U,P,H,z,Ve,B,ve],encapsulation:2})}}return t})();var Pl=t=>({"callout callout-warning":t});function Dl(t,s){if(t&1&&(a(0,"span"),l(1),p(2,"getRecord"),p(3,"async"),o()),t&2){let e=c(2);r(),T(h(3,6,J(2,1,e.transaction.library.pid,"libraries","field","name")))}}function Fl(t,s){if(t&1){let e=I();a(0,"p-select",8),p(1,"translate"),_t("ngModelChange",function(n){S(e);let d=c(2);return ut(d.menuSelectedAction,n)||(d.menuSelectedAction=n),y(n)}),g("onChange",function(n){S(e);let d=c(2);return y(d.patronTransactionEvent(n))}),o()}if(t&2){let e=c(2);u("placeholder",h(1,3,"Action"))("options",e.menuItems),mt("ngModel",e.menuSelectedAction)}}function wl(t,s){if(t&1&&v(0,"admin-overdue-transaction-detail",15),t&2){let e=c(3);u("transaction",e.transaction)}}function Rl(t,s){if(t&1&&v(0,"admin-default-transaction-detail",15),t&2){let e=c(3);u("transaction",e.transaction)}}function Ll(t,s){if(t&1&&(a(0,"div",7)(1,"div",9)(2,"h6",10),l(3,"Details"),o(),a(4,"section",11),_(5,wl,1,1,"admin-overdue-transaction-detail",12)(6,Rl,1,1,"admin-default-transaction-detail",13),o(),a(7,"h6",10),l(8,"Transaction history"),o(),v(9,"admin-patron-transaction-history",14),o()()),t&2){let e=c(2);r(4),u("ngSwitch",e.transaction==null?null:e.transaction.type),r(),u("ngSwitchCase","overdue"),r(4),u("events",e.transaction.get_events())}}function Ml(t,s){if(t&1){let e=I();a(0,"div",0)(1,"div",1)(2,"div",2)(3,"shared-open-close-button",3),g("status",function(n){S(e);let d=c();return y(d.isCollapsed=n)}),o(),a(4,"div"),l(5),p(6,"dateTranslate"),o()(),a(7,"div",4),l(8),p(9,"translate"),o(),a(10,"div",4),_(11,Dl,4,8,"span"),o(),a(12,"div",5),l(13),p(14,"currency"),o(),a(15,"div",5),_(16,Fl,2,5,"p-select",6),o()(),_(17,Ll,10,3,"div",7),o()}if(t&2){let e=c();u("ngClass",D(16,Pl,e.isDisputed())),r(3),u("collapsed",e.isCollapsed),r(2),C(" ",b(6,8,e.transaction.creation_date,"shortDate")," "),r(3),T(h(9,11,e.transaction.type)),r(3),m(e.transaction.library?11:-1),r(2),T(b(14,13,e.transactionAmount,e.organisation.default_currency)),r(3),m(e.transaction.status===e.patronTransactionStatus.OPEN?16:-1),r(),m(e.isCollapsed?-1:17)}}var Yn=(()=>{class t{constructor(){this.dialogService=f(ke),this.organisationService=f(ne),this.patronTransactionService=f(we),this.router=f(St),this.translateService=f(V),this.currencyPipe=f(Y),this.isCollapsed=!0,this.patronTransactionStatus=Ne,this.menuItems=[],this.menuSelectedAction=void 0,this.patronTransactionEventType=xe}get transactionAmount(){if(this.transaction.status===Ne.OPEN)return this.transaction.total_amount;{let e=0;for(let i of this.transaction.get_events())i.type===xe.FEE&&(e+=i.amount);return e}}get organisation(){return this.organisationService.organisation}ngOnChanges(e){e?.transaction?.currentValue&&(this.router.snapshot.queryParams.event===e.transaction.currentValue&&(this.isCollapsed=!1),this.patronTransactionService.loadTransactionHistory(this.transaction).subscribe(i=>this.transaction.events=i),this.generateActionsMenu())}isDisputed(){return this.transaction.status===Ne.OPEN?this.transaction.events.some(e=>e.type===xe.DISPUTE):!1}patronTransactionEvent(e){e.value.command(),this.menuSelectedAction={}}patronTransactionAction(e,i){this.dialogService.open(rt,{header:this.translateService.instant(e),modal:!0,focusOnShow:!1,closable:!0,width:"40vw",data:{action:e,mode:i,transactions:[this.transaction]}})}generateActionsMenu(){this.menuItems=[{label:[this.translateService.instant("Pay"),this.currencyPipe.transform(this.transaction.total_amount,this.organisationService.organisation.default_currency)].join(" "),command:()=>this.patronTransactionAction("pay","full")},{label:this.translateService.instant("Pay a part"),command:()=>this.patronTransactionAction("pay","part")},{label:this.translateService.instant("Dispute"),command:()=>this.patronTransactionAction("dispute")},{label:this.translateService.instant("Delete"),command:()=>this.patronTransactionAction("cancel")}]}eventLabel(e){return e.subtype?`${this.translateService.instant(e.type.toString())} [${this.translateService.instant(e.subtype)}]`:this.translateService.instant(e.type.toString())}tagSeverity(e){switch(e.type){case this.patronTransactionEventType.FEE:return"danger";case this.patronTransactionEventType.PAYMENT:return"success";case this.patronTransactionEventType.CANCEL:return"info"}}hideShowEye(e){return document.getElementById(e).hidden}hideShowEvent(e){let i=document.getElementById(e);i.hidden=!i.hidden}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-patron-transaction"]],inputs:{transaction:"transaction"},standalone:!1,features:[Le],decls:1,vars:1,consts:[[1,"ui:p-2",3,"ngClass"],[1,"ui:grid","ui:grid-cols-12","ui:items-start"],[1,"ui:col-span-2","ui:flex","ui:gap-2"],[3,"status","collapsed"],[1,"ui:col-span-3"],[1,"ui:col-span-2","ui:flex","ui:justify-end"],["appendTo","body",3,"placeholder","options","ngModel"],[1,"ui:grid","ui:grid-cols-12"],["appendTo","body",3,"ngModelChange","onChange","placeholder","options","ngModel"],[1,"ui:col-start-3","ui:col-span-9","ui:mt-2"],["translate",""],[1,"ui:mb-4",3,"ngSwitch"],[3,"transaction",4,"ngSwitchCase"],[3,"transaction",4,"ngSwitchDefault"],[3,"events"],[3,"transaction"]],template:function(i,n){i&1&&_(0,Ml,18,18,"div",0),i&2&&m(n.transaction!==void 0?0:-1)},dependencies:[te,mi,ui,_i,Ke,Ct,ze,P,X,Wn,Jn,At,H,Y,z,F,B],encapsulation:2})}}return t})();var Xn=(t,s)=>s.pid;function Al(t,s){if(t&1&&(a(0,"p-tag",4),l(1),p(2,"currency"),o()),t&2){let e=c();r(),C(" ",b(2,1,e.statistics().feesEngaged,e.organisation.default_currency)," ")}}function Ol(t,s){if(t&1&&(a(0,"div",19),v(1,"admin-patron-transaction",20),o()),t&2){let e=s.$implicit;r(),u("transaction",e)}}function ql(t,s){if(t&1){let e=I();a(0,"div",13)(1,"div",14),l(2,"Date"),o(),a(3,"div",15),l(4,"Category"),o(),a(5,"div",15),l(6,"Library"),o(),a(7,"div",16),l(8),p(9,"translate"),p(10,"currency"),o(),a(11,"div",17)(12,"p-splitButton",18),p(13,"translate"),g("onClick",function(){S(e);let n=c();return y(n.payAllTransactions())}),o()()(),a(14,"div"),R(15,Ol,2,1,"div",19,Xn),o()}if(t&2){let e=c();r(8),ee(" ",h(9,5,"Total amount"),": ",b(10,7,e.statistics().feesEngaged,e.organisation.default_currency)," "),r(4),u("label",h(13,10,"Pay all"))("disabled",e.statistics().feesEngaged<=0)("model",e.actions()),r(3),L(e.tabs.engagedFees.transactions())}}function Vl(t,s){t&1&&(a(0,"div",7),l(1),p(2,"translate"),o()),t&2&&(r(),C(" ",h(2,1,"No pending fee for this patron")," "))}function Nl(t,s){if(t&1&&(a(0,"p-tag",9),l(1),p(2,"currency"),o()),t&2){let e=c();r(),C(" ",b(2,1,e.statistics().overdueFees,e.organisation.default_currency)," ")}}function $l(t,s){if(t&1&&(a(0,"div",19),v(1,"admin-overdue-transaction",20),o()),t&2){let e=s.$implicit;r(),u("transaction",e)}}function jl(t,s){if(t&1&&(a(0,"div",21)(1,"div",14),l(2,"Due date"),o(),a(3,"div",22),l(4,"Document"),o(),a(5,"div",16),l(6),p(7,"translate"),p(8,"currency"),o(),v(9,"div",23),o(),a(10,"div"),R(11,$l,2,1,"div",19,j),o()),t&2){let e=c();r(6),ee(" ",h(7,2,"Total amount"),": ",b(8,4,e.statistics().overdueFees,e.organisation.default_currency)," "),r(5),L(e.tabs.overduePreviewFees.transactions())}}function Hl(t,s){t&1&&(a(0,"div",10),l(1),p(2,"translate"),o()),t&2&&(r(),C(" ",h(2,1,"No overdue fees for this patron")," "))}function Gl(t,s){if(t&1&&(a(0,"div",19),v(1,"admin-patron-transaction",20),o()),t&2){let e=s.$implicit;r(),u("transaction",e)}}function Ul(t,s){if(t&1&&(a(0,"div",24)(1,"div",14),l(2,"Date"),o(),a(3,"div",15),l(4,"Category"),o(),a(5,"div",15),l(6,"Library"),o(),a(7,"div",25),l(8,"Amount"),o()(),a(9,"div"),R(10,Gl,2,1,"div",19,Xn),o()),t&2){let e=c();r(10),L(e.tabs.historyFees.transactions)}}function Kl(t,s){t&1&&(a(0,"div",10),l(1),p(2,"translate"),o()),t&2&&(r(),C(" ",h(2,1,"No fee history for this patron")," "))}var Zn=(()=>{class t{constructor(){this.dialogService=f(ke),this.organisationService=f(ne),this.patronTransactionService=f(we),this.userService=f(Z),this.translateService=f(V),this.patronService=f(K),this.circulationStatsService=f(oe),this.activePanel=lt(void 0),this.statistics=this.circulationStatsService.statistics,this.tabs={engagedFees:{transactions:null},overduePreviewFees:{transactions:null},historyFees:{transactions:null}},this.actions=Nt(()=>[{label:this.translateService.instant("for my library"),command:()=>this.payAllTransactionsInMyLibrary(),disabled:this.myLibraryEngagedFees().length===0}]),this.patron=void 0,this.subscriptions=new me,this.myLibraryEngagedFees=Nt(()=>{let e=this.userService.user.currentLibrary;return this.tabs.engagedFees.transactions().filter(i=>i.library!=null&&i.library.pid===e)})}get organisation(){return this.organisationService.organisation}ngOnInit(){this.activePanel.set("0"),this.tabs.overduePreviewFees.transactions=this.circulationStatsService.overdueTransactions,this.tabs.engagedFees.transactions=this.circulationStatsService.engagedTransactions,this.patronService.currentPatron$.subscribe(e=>this.patron=e),this.subscriptions.add(this.activePanel.subscribe(e=>{e==="2"&&this.loadFeesHistory()}))}ngOnDestroy(){this.subscriptions.unsubscribe()}loadFeesHistory(){this.patron&&this.patronTransactionService.patronTransactionsByPatron$(this.patron.pid,void 0,Ne.CLOSED.toString()).subscribe(e=>{this.tabs.historyFees.transactions=e})}payAllTransactions(){this.dialogService.open(rt,{header:this.translateService.instant("Pay"),modal:!0,focusOnShow:!1,width:"50vw",closable:!0,data:{action:"pay",mode:"full",transactions:this.tabs.engagedFees.transactions()}})}payAllTransactionsInMyLibrary(){this.dialogService.open(rt,{header:this.translateService.instant("Pay for my library"),modal:!0,focusOnShow:!1,width:"50vw",closable:!0,data:{action:"pay",mode:"full",transactions:this.myLibraryEngagedFees()}})}addFee(){this.dynamicDialogRef=this.dialogService.open(Un,{header:this.translateService.instant("New fee"),modal:!0,focusOnShow:!1,width:"30vw",closable:!0,data:{patron:this.patron,organisationPid:this.patron.organisation.pid}}),this.subscriptions.add(this.dynamicDialogRef.onClose.subscribe(()=>this.reloadEngagedFees()))}reloadEngagedFees(){this.patronTransactionService.emitPatronTransactionByPatron(this.patron.pid,void 0,"open")}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-patron-transactions"]],inputs:{activePanel:[1,"activePanel"]},outputs:{activePanel:"activePanelChange"},standalone:!1,decls:30,vars:9,consts:[[3,"valueChange","value"],["value","0"],[1,"ui:flex","ui:items-center","ui:w-full"],["translate","",1,"ui:flex","ui:grow"],["severity","warn",1,"ui:mr-2"],[1,"ui:flex","ui:justify-end","ui:my-2"],["size","small","icon","fa fa-plus",3,"onClick","label"],[1,"ui:mt-4","ui:font-bold"],["value","1"],["severity","secondary",1,"ui:mr-2"],[1,"ui:mt-4"],["value","2"],["translate",""],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:my-1","ui:text-lg","ui:font-bold","ui:items-center","ui:border-t","ui:border-surface"],["translate","",1,"ui:col-span-2"],["translate","",1,"ui:col-span-3"],[1,"ui:col-span-2","ui:text-right"],[1,"ui:col-span-2","ui:flex","ui:justify-end"],["size","sm","appendTo","body",3,"onClick","label","disabled","model"],[1,"ui:odd:bg-surface-50"],[3,"transaction"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:my-1","ui:text-lg","ui:font-bold","ui:items-center","ui:border-t","ui:border-b","ui:border-surface"],["translate","",1,"ui:col-span-8"],[1,"ui:col-span-1"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:my-1","ui:text-lg","ui:font-bold","ui:items-center"],["translate","",1,"ui:col-span-2","ui:flex","ui:justify-end"]],template:function(i,n){i&1&&(a(0,"section")(1,"p-accordion",0),_t("valueChange",function(x){return ut(n.activePanel,x)||(n.activePanel=x),x}),a(2,"p-accordion-panel",1)(3,"p-accordion-header")(4,"div",2)(5,"h6",3),l(6,"Engaged fees"),o(),_(7,Al,3,4,"p-tag",4),o()(),a(8,"p-accordion-content")(9,"div",5)(10,"p-button",6),p(11,"translate"),g("onClick",function(){return n.addFee()}),o()(),_(12,ql,17,12)(13,Vl,3,3,"div",7),o()(),a(14,"p-accordion-panel",8)(15,"p-accordion-header")(16,"div",2)(17,"h6",3),l(18,"Overdue preview fees"),o(),_(19,Nl,3,4,"p-tag",9),o()(),a(20,"p-accordion-content"),_(21,jl,13,7)(22,Hl,3,3,"div",10),o()(),a(23,"p-accordion-panel",11)(24,"p-accordion-header")(25,"h6",12),l(26,"History"),o()(),a(27,"p-accordion-content"),_(28,Ul,12,0)(29,Kl,3,3,"div",10),o()()()()),i&2&&(r(),mt("value",n.activePanel),r(6),m(n.statistics().feesEngaged>0?7:-1),r(3),u("label",h(11,7,"Add a fee")),r(2),m(n.tabs.engagedFees.transactions().length>0?12:13),r(7),m(n.statistics().overdueFees>0?19:-1),r(2),m(n.tabs.overduePreviewFees.transactions().length>0?21:22),r(7),m((n.tabs.historyFees==null||n.tabs.historyFees.transactions==null?null:n.tabs.historyFees.transactions.length)>0?28:29))},dependencies:[ki,bi,Ei,Ii,q,Xi,P,ie,zn,Yn,Y,F],encapsulation:2})}}return t})();var Ot=(()=>{class t{constructor(){this.loanService=f(Dt),this.userService=f(Z),this.translateService=f(V),this.messageService=f(pe),this.cancelRequestEvent=new W}canCancelRequest(){return this.loanService.canCancelRequest(this.loan)}showCancelRequestDialog(e){this.loanService.cancelRequestDialog(e,()=>{this.loanService.cancelLoan(this.loan.metadata.item.pid,this.loan.metadata.pid,this.userService.user.currentLibrary).subscribe(i=>{let n=this.translateService.instant("The request has been cancelled.");i?.pending_loans?.length>0&&(n+="<br>",n+=this.translateService.instant("The item contains requests.")),this.messageService.add({severity:"warn",summary:this.translateService.instant("Request"),detail:n,life:N.MESSAGE_LIFE}),this.cancelRequestEvent.emit(this.loan.id)})})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-cancel-request-button"]],inputs:{loan:"loan"},outputs:{cancelRequestEvent:"cancelRequestEvent"},standalone:!1,decls:2,vars:5,consts:[["icon","fa fa-trash","severity","danger","outlined","","tooltipPosition","top",1,"ui:pointer-events-auto",3,"onClick","pTooltip","disabled","tooltipDisabled"]],template:function(i,n){i&1&&(a(0,"p-button",0),p(1,"translate"),g("onClick",function(x){return n.showCancelRequestDialog(x)}),o()),i&2&&u("pTooltip",h(1,3,"The request cannot be cancelled"))("disabled",!n.canCancelRequest())("tooltipDisabled",n.canCancelRequest())},dependencies:[q,Li,F],encapsulation:2})}}return t})();var zl=t=>["/records","items","detail",t],Wl=t=>["/records","documents","detail",t];function Jl(t,s){if(t&1&&v(0,"p-tag",10),t&2){let e=c(3);u("value",e.item.enumerationAndChronology)}}function Yl(t,s){if(t&1&&(a(0,"a",3),l(1),o(),_(2,Jl,1,1,"p-tag",10),v(3,"br")),t&2){let e=c(2);u("routerLink",D(3,Wl,e.document.pid)),r(),C(" ",s," "),r(),m(e.item.enumerationAndChronology?2:-1)}}function Xl(t,s){if(t&1&&(a(0,"dt",11),l(1,"Location"),o(),a(2,"dd"),l(3),p(4,"getRecord"),p(5,"async"),o()),t&2){let e=c(3);r(3),ee(" ",h(5,7,J(4,2,s.metadata.library.pid,"libraries","field","name")),": ",e.item.location.name," ")}}function Zl(t,s){if(t&1&&(a(0,"dl",6)(1,"dt",11),l(2,"Position"),o(),a(3,"dd"),v(4,"p-badge",10),o(),_(5,Xl,6,9),p(6,"getRecord"),p(7,"async"),o()),t&2){let e,i=c(2);r(4),ri("value","",i.loan.metadata.rank," / ",i.item.current_pending_requests,""),r(),m((e=h(7,7,b(6,4,i.item.location.pid,"locations")))?5:-1,e)}}function Ql(t,s){if(t&1){let e=I();a(0,"div",0)(1,"div",1)(2,"div")(3,"shared-open-close-button",2),g("status",function(n){S(e);let d=c();return y(d.isCollapsed=n)}),o()(),a(4,"div")(5,"a",3),l(6),o()()(),a(7,"div",4),_(8,Yl,4,5),p(9,"mainTitle"),v(10,"shared-contribution",5),_(11,Zl,8,9,"dl",6),o(),a(12,"div",7),l(13),p(14,"dateTranslate"),o(),a(15,"div",8)(16,"admin-cancel-request-button",9),g("cancelRequestEvent",function(n){S(e);let d=c();return y(d.cancelRequest(n))}),o()()()}if(t&2){let e,i=c();r(5),u("routerLink",D(12,zl,i.item.pid)),r(),T(i.item.barcode),r(2),m((e=h(9,7,i.document.title))?8:-1,e),r(2),u("contributions",i.document==null?null:i.document.contribution),r(),m(i.isCollapsed?-1:11),r(2),T(b(14,9,i.loan.created,"short")),r(3),u("loan",i.loan)}}var eo=(()=>{class t{constructor(){this.recordService=f(A),this.itemService=f(Ce),this.loan=void 0,this.cancelRequestEvent=new W,this.item=void 0,this.document=void 0,this.isCollapsed=!0}ngOnInit(){if(this.loan){let e=this.itemService.getItem(this.loan.metadata.item.barcode,this.loan.metadata.paton_pid),i=this.recordService.getRecord("documents",this.loan.metadata.item.document.pid,1,{Accept:"application/rero+json"});ge([e,i]).subscribe(([n,d])=>{this.item=n,this.document=d.metadata})}}cancelRequest(e){this.cancelRequestEvent.emit(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-pending-item"]],inputs:{loan:"loan"},outputs:{cancelRequestEvent:"cancelRequestEvent"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:p-2"],[1,"ui:col-span-3","ui:flex","ui:items-start","ui:gap-2"],[3,"status"],[3,"routerLink"],[1,"ui:col-span-6"],[3,"contributions"],[1,"metadata","ui:pl-0"],[1,"ui:col-span-2"],[1,"ui:col-span-1","ui:flex","ui:justify-end"],[3,"cancelRequestEvent","loan"],["severity","info",3,"value"],["translate",""]],template:function(i,n){i&1&&_(0,Ql,17,14,"div",0),i&2&&m(n.item&&n.document?0:-1)},dependencies:[U,xt,P,De,X,ie,Ot,H,z,B,ve],encapsulation:2})}}return t})();var tc=()=>[he,P,eo],ic=(t,s)=>s.metadata.pid;function nc(t,s){t&1&&(a(0,"div",2)(1,"div",3),l(2,"Item"),o(),a(3,"div",4),l(4,"Title"),o(),a(5,"div",5),l(6,"Request date"),o()())}function oc(t,s){if(t&1){let e=I();a(0,"div",6)(1,"admin-pending-item",7),g("cancelRequestEvent",function(n){S(e);let d=c(3);return y(d.cancelRequest(n))}),o()()}if(t&2){let e=s.$implicit;r(),u("loan",e)}}function ac(t,s){if(t&1&&(a(0,"div"),R(1,oc,2,1,"div",6,ic),o()),t&2){let e=c(2);r(),L(e.loans)}}function rc(t,s){t&1&&(a(0,"div",1),l(1," No items "),o())}function sc(t,s){if(t&1&&(a(0,"p-card"),_(1,nc,7,0,"ng-template",null,0,M)(3,ac,3,0,"div")(4,rc,2,0,"div",1),o()),t&2){let e=c();r(3),m(e.loans.length>0?3:4)}}function lc(t,s){t&1&&(a(0,"div",8),l(1,"Loading in progress"),o())}var to=(()=>{class t{constructor(){this.patronService=f(K),this.circulationStatsService=f(oe)}ngOnInit(){this.patronService.currentPatron$.subscribe(e=>{this.patron=e,e&&this.patronService.getItemsRequested(e.pid).subscribe(i=>{this.loans=i})})}cancelRequest(e){let i=this.loans.findIndex(n=>n.id==e);this.loans.splice(i,1),this.circulationStatsService.updateStats(this.patron.pid)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-pending"]],standalone:!1,decls:4,vars:1,consts:[["header",""],["translate","",1,"ui:mx-4","ui:my-6"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:m-1","ui:text-lg","ui:font-bold","ui:items-center"],["translate","",1,"ui:col-span-3"],["translate","",1,"ui:col-span-6"],["translate","",1,"ui:col-span-2"],[1,"ui:odd:bg-surface-50"],[3,"cancelRequestEvent","loan"],["translate","",1,"ui:mx-2","ui:my-6"]],template:function(i,n){i&1&&(_(0,sc,5,1)(1,lc,2,0),be(2,0,tc,null,1)),i&2&&(r(2),Ee(n.loans))},dependencies:[P],encapsulation:2})}}return t})();var cc=t=>["/records","items","detail",t],pc=t=>["/records","documents","detail",t];function dc(t,s){if(t&1&&v(0,"p-tag",8),t&2){let e=c(3);u("value",e.item.enumerationAndChronology)}}function mc(t,s){if(t&1&&(a(0,"a",2),l(1),o(),_(2,dc,1,1,"p-tag",8),v(3,"br")),t&2){let e=c(2);u("routerLink",D(3,pc,e.document.pid)),r(),C(" ",s," "),r(),m(e.item.enumerationAndChronology?2:-1)}}function uc(t,s){if(t&1&&(l(0),p(1,"dateTranslate")),t&2){let e=c(2);C(" ",b(1,1,e.loan.metadata.request_expire_date,"shortDate")," ")}}function _c(t,s){t&1&&(l(0),p(1,"translate")),t&2&&C(" ",h(1,1,"Unknown")," ")}function fc(t,s){if(t&1){let e=I();a(0,"div",0)(1,"div",1)(2,"a",2),l(3),o()(),a(4,"div",3),_(5,mc,4,5),p(6,"mainTitle"),v(7,"shared-contribution",4),o(),a(8,"div",5),l(9),p(10,"getRecord"),p(11,"async"),o(),a(12,"div",1),_(13,uc,2,4)(14,_c,2,3),o(),a(15,"div",6)(16,"admin-cancel-request-button",7),g("cancelRequestEvent",function(n){S(e);let d=c();return y(d.cancelRequest(n))}),o()()()}if(t&2){let e,i=c();r(2),u("routerLink",D(16,cc,i.item.pid)),r(),T(i.item.barcode),r(2),m((e=h(6,7,i.document.title))?5:-1,e),r(2),u("contributions",i.document==null?null:i.document.contribution),r(2),C(" ",h(11,14,J(10,9,i.loan.metadata.pickup_location_pid,"locations","field","pickup_name"))," "),r(4),m(i.loan.metadata.request_expire_date?13:14),r(3),u("loan",i.loan)}}var io=(()=>{class t{constructor(){this.recordService=f(A),this.itemService=f(Ce),this.loan=void 0,this.cancelRequestEvent=new W,this.item=void 0,this.document=void 0}ngOnInit(){if(this.loan){let e=this.itemService.getItem(this.loan.metadata.item.barcode,this.loan.metadata.paton_pid),i=this.recordService.getRecord("documents",this.loan.metadata.item.document.pid,1,{Accept:"application/rero+json"});ge([e,i]).subscribe(([n,d])=>{this.item=n,this.document=d.metadata})}}cancelRequest(e){this.cancelRequestEvent.emit(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-pickup-item"]],inputs:{loan:"loan"},outputs:{cancelRequestEvent:"cancelRequestEvent"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:p-2"],[1,"ui:col-span-2"],[3,"routerLink"],[1,"ui:col-span-4"],[3,"contributions"],[1,"ui:col-span-3"],[1,"ui:col-span-1","ui:flex","ui:justify-end"],[3,"cancelRequestEvent","loan"],["severity","info",3,"value"]],template:function(i,n){i&1&&_(0,fc,17,18,"div",0),i&2&&m(n.item?0:-1)},dependencies:[U,De,ie,Ot,H,z,F,B,ve],encapsulation:2})}}return t})();var vc=()=>[he,P,io];function Cc(t,s){t&1&&(a(0,"div",2)(1,"div",3),l(2,"Item"),o(),a(3,"div",4),l(4,"Title"),o(),a(5,"div",5),l(6,"Pickup location"),o(),a(7,"div",3),l(8,"To pick-up until"),o()())}function xc(t,s){if(t&1){let e=I();a(0,"div",6)(1,"admin-pickup-item",7),g("cancelRequestEvent",function(n){S(e);let d=c(3);return y(d.cancelRequest(n))}),o()()}if(t&2){let e=s.$implicit;r(),u("loan",e)}}function gc(t,s){if(t&1&&(a(0,"div"),R(1,xc,2,1,"div",6,j),o()),t&2){let e=c(2);r(),L(e.loans)}}function Sc(t,s){t&1&&(a(0,"div",1),l(1," No items "),o())}function yc(t,s){if(t&1&&(a(0,"p-card"),_(1,Cc,9,0,"ng-template",null,0,M)(3,gc,3,0,"div")(4,Sc,2,0,"div",1),o()),t&2){let e=c();r(3),m(e.loans.length>0?3:4)}}function Tc(t,s){t&1&&(a(0,"div",8),l(1,"Loading in progress"),o())}var no=(()=>{class t{constructor(){this.patronService=f(K),this.circulationStatsService=f(oe)}ngOnInit(){this.patronService.currentPatron$.subscribe(e=>{this.patron=e,e&&this.patronService.getItemsPickup(e.pid).subscribe(i=>{this.loans=i})})}cancelRequest(e){let i=this.loans.findIndex(n=>n.id==e);this.loans.splice(i,1),this.circulationStatsService.updateStats(this.patron.pid)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-pickup"]],standalone:!1,decls:4,vars:1,consts:[["header",""],["translate","",1,"ui:mx-4","ui:my-6"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:py-4","ui:px-2","ui:my-1","ui:text-lg","ui:font-bold","ui:items-center"],["translate","",1,"ui:col-span-2"],["translate","",1,"ui:col-span-4"],["translate","",1,"ui:col-span-3"],[1,"ui:odd:bg-surface-50"],[3,"cancelRequestEvent","loan"],["translate","",1,"ui:mx-2","ui:my-6"]],template:function(i,n){i&1&&(_(0,yc,5,1)(1,Tc,2,0),be(2,0,vc,null,1)),i&2&&(r(2),Ee(n.loans))},dependencies:[P],encapsulation:2})}}return t})();function bc(t,s){if(t&1){let e=I();a(0,"form",1),g("ngSubmit",function(){S(e);let n=c();return y(n.submit(n.patron,n.model))}),v(1,"formly-form",2),a(2,"div",3)(3,"p-button",4),p(4,"translate"),g("onClick",function(){S(e);let n=c();return y(n.closeModal())}),o(),v(5,"p-button",5),p(6,"translate"),o()()}if(t&2){let e=c();u("formGroup",e.form),r(),u("form",e.form)("fields",e.formFields)("model",e.model),r(2),u("label",h(4,8,"Cancel"))("outlined",!0),r(2),u("label",h(6,10,"Submit"))("disabled",!e.form.valid)}}var oo=(()=>{class t{constructor(){this.messageService=f(pe),this.dynamicDialogRef=f(Ie),this.dynamicDialogConfig=f(Ye),this.translateService=f(V),this.userApiService=f(an),this.form=new vt({}),this.model={}}ngOnInit(){this.patron=this.dynamicDialogConfig.data.patron,this.patron||this.closeModal(),this.initForm()}submit(e,i){this.userApiService.changePassword(e.username,i.password).subscribe({next:()=>{this.messageService.add({severity:"success",summary:this.translateService.instant("Patron"),detail:this.translateService.instant("The patron password has been changed."),life:N.MESSAGE_LIFE}),this.closeModal()},error:n=>{let d=this.translateService.instant("An error has occurred.");n.error&&n.error.message&&(d=`${d}: (${n.error.message})`),this.messageService.add({severity:"error",summary:this.translateService.instant("Patron"),detail:`${this.translateService.instant("Update Patron Password")}.<br/>${d}`,sticky:!0,closable:!0}),this.closeModal()}})}initForm(){this.formFields=[{key:"password",type:"passwordGenerator",props:{api:"/api/user/password/generate",label:"New password",required:!0,keydown:(e,i)=>{i.key==="Enter"&&i.preventDefault()}}}]}closeModal(){this.dynamicDialogRef.close()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-change-password-form"]],standalone:!1,decls:1,vars:1,consts:[[3,"formGroup"],[3,"ngSubmit","formGroup"],[3,"form","fields","model"],[1,"ui:flex","ui:gap-1","ui:justify-end","ui:mt-3"],["type","cancel","severity","danger",3,"onClick","label","outlined"],["type","submit","id","change-password-submit-button",3,"label","disabled"]],template:function(i,n){i&1&&_(0,bc,7,12,"form",0),i&2&&m(n.form?0:-1)},dependencies:[q,We,Oe,Ae,qe,F],encapsulation:2})}}return t})();var Ec=()=>[q,U,te,fi,hi,P,H,z,F,B,rn],Ic=t=>["/circulation","patron",t],kc=t=>["/records","patrons","edit",t];function Pc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Country"),o(),a(2,"dd"),l(3),p(4,"translate"),o()),t&2){let e=c(2);r(3),C(" ",h(4,1,"country_"+e.patron.country)," ")}}function Dc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Home phone number"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.home_phone," ")}}function Fc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Business phone number"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.business_phone," ")}}function wc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Mobile phone"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.mobile_phone," ")}}function Rc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Other phone"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.other_phone," ")}}function Lc(t,s){if(t&1&&(a(0,"dt"),l(1,"Email"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.email," ")}}function Mc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Source"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.source," ")}}function Bc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Local code"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(2);r(3),C(" ",e.patron.local_code," ")}}function Ac(t,s){if(t&1&&(a(0,"dt",1),l(1,"Street"),o(),a(2,"dd"),l(3),o()),t&2){let e=c(3);r(3),C(" ",e.patron.second_address.street," ")}}function Oc(t,s){if(t&1&&l(0),t&2){let e=c(4);C(" ",e.patron.second_address.postal_code," ")}}function qc(t,s){if(t&1&&l(0),t&2){let e=c(4);C(" ",e.patron.second_address.city," ")}}function Vc(t,s){if(t&1&&(a(0,"dt",1),l(1,"City"),o(),a(2,"dd"),_(3,Oc,1,1)(4,qc,1,1),o()),t&2){let e=c(3);r(3),m(e.patron.second_address.postal_code?3:-1),r(),m(e.patron.second_address.city?4:-1)}}function Nc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Country"),o(),a(2,"dd"),l(3),p(4,"translate"),o()),t&2){let e=c(3);r(3),C(" ",h(4,1,"country_"+e.patron.second_address.country)," ")}}function $c(t,s){if(t&1&&(a(0,"h4",4),l(1,"Second address"),o(),a(2,"dl",0),_(3,Ac,4,1)(4,Vc,5,2)(5,Nc,5,3),o()),t&2){let e=c(2);r(3),m(e.patron.second_address.street?3:-1),r(),m(e.patron.second_address.postal_code||e.patron.second_address.city?4:-1),r(),m(e.patron.second_address.country?5:-1)}}function jc(t,s){if(t&1&&(a(0,"h4",4),l(1,"Librarian Information"),o(),a(2,"dl",0)(3,"dt",1),l(4,"Library"),o(),a(5,"dd"),l(6),p(7,"getRecord"),p(8,"async"),o()()),t&2){let e=c(2);r(6),C(" ",h(8,6,J(7,1,e.patron.library.pid,"libraries","field","name"))," ")}}function Hc(t,s){t&1&&l(0,"Role")}function Gc(t,s){t&1&&l(0,"Role")}function Uc(t,s){t&1&&l(0,"Roles")}function Kc(t,s){if(t&1&&(l(0),p(1,"translate")),t&2){let e=s.$implicit,i=s.$index,n=s.$count;ee(" ",h(1,2,e),"",i===n-1?"":", "," ")}}function zc(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"getRecord"),p(3,"async"),o()),t&2){let e=s.$implicit;r(),T(h(3,6,J(2,1,e.pid,"libraries","field","name")))}}function Wc(t,s){if(t&1&&(a(0,"dt",1),l(1,"Affiliation libraries"),o(),a(2,"dd")(3,"ul",10),R(4,zc,4,8,"li",null,j),o()()),t&2){let e=c(3);r(4),L(e.patron.libraries)}}function Jc(t,s){if(t&1&&(a(0,"h4",4),l(1,"Patron Information"),o(),a(2,"dl",0)(3,"dt")(4,"span",5),_(5,Hc,1,0,"ng-template",6)(6,Gc,1,0,"ng-template",7)(7,Uc,1,0,"ng-template",8),o()(),a(8,"dd"),R(9,Kc,2,4,null,null,j),o(),a(11,"dt",1),l(12,"Patron's barcodes or cards number"),o(),a(13,"dd")(14,"a",9),l(15),p(16,"join"),o()(),a(17,"dt",1),l(18,"Type"),o(),a(19,"dd"),l(20),p(21,"getRecord"),p(22,"async"),o(),a(23,"dt",1),l(24,"Account expiration"),o(),a(25,"dd"),l(26),p(27,"dateTranslate"),o(),_(28,Wc,6,0),o()),t&2){let e=c(2);r(4),u("ngPlural",e.patron.roles.length),r(5),L(e.patron.roles),r(5),u("routerLink",D(19,Ic,e.patron.patron.barcode[0])),r(),C(" ",b(16,6,e.patron.patron.barcode,", ")," "),r(5),C(" ",h(22,14,J(21,9,e.patron.patron.type.pid,"patron_types","field","name"))," "),r(6),C(" ",b(27,16,e.patron.patron.expiration_date,"mediumDate")," "),r(2),m(e.patron.libraries&&e.patron.libraries.length>0?28:-1)}}function Yc(t,s){if(t&1){let e=I();a(0,"div",3)(1,"p-button",11),p(2,"translate"),g("onClick",function(){S(e);let n=c(2);return y(n.updatePatronPassword(n.patron))}),o(),v(3,"p-button",12),p(4,"translate"),o()}if(t&2){let e=c(2);r(),u("label",h(2,3,"Change Password")),r(2),u("label",h(4,5,"Edit"))("routerLink",D(7,kc,e.patron.pid))}}function Xc(t,s){if(t&1&&(a(0,"dl",0)(1,"dt",1),l(2,"Username"),o(),a(3,"dd"),l(4),o(),a(5,"dt",1),l(6,"Street"),o(),a(7,"dd"),l(8),o(),a(9,"dt",1),l(10,"City"),o(),a(11,"dd"),l(12),o(),_(13,Pc,5,3)(14,Dc,4,1)(15,Fc,4,1)(16,wc,4,1)(17,Rc,4,1)(18,Lc,4,1)(19,Mc,4,1)(20,Bc,4,1),a(21,"dt",1),l(22,"Keep history"),o(),a(23,"dd"),v(24,"i",2),o()(),_(25,$c,6,3)(26,jc,9,8)(27,Jc,29,21)(28,Yc,5,9,"div",3)),t&2){let e=c();r(4),C(" ",e.patron.username," "),r(4),C(" ",e.patron.street," "),r(4),ee(" ",e.patron.postal_code," ",e.patron.city," "),r(),m(e.patron.country?13:-1),r(),m(e.patron.home_phone?14:-1),r(),m(e.patron.business_phone?15:-1),r(),m(e.patron.mobile_phone?16:-1),r(),m(e.patron.other_phone?17:-1),r(),m(e.patron.email?18:-1),r(),m(e.patron.source?19:-1),r(),m(e.patron.local_code?20:-1),r(4),u("ngClass",e.patron.keep_history?"fa-check text-success":"fa-times text-error"),r(),m(e.patron.second_address?25:-1),r(),m(e.patron.isLibrarian?26:-1),r(),m(e.patron.patron?27:-1),r(),m(e.canUpdate()?28:-1)}}function Zc(t,s){t&1&&(a(0,"div",13),l(1,"Loading in progress"),o())}var ao=(()=>{class t{constructor(){this.dialogService=f(ke),this.patronService=f(K),this.recordPermission=f(un),this.translateService=f(V),this.subscription=new me}ngOnInit(){this.subscription.add(this.patronService.currentPatron$.pipe(le(e=>this.patron=e),se(e=>this.recordPermission.getPermission("patrons",e.pid)),le(e=>this.permissions=e)).subscribe())}canUpdate(){return this.permissions&&this.permissions.update&&this.permissions.update.can===!0}ngOnDestroy(){this.subscription.unsubscribe()}updatePatronPassword(e){this.dialogService.open(oo,{header:this.translateService.instant("Update Patron Password"),modal:!0,focusOnShow:!1,width:"30vw",data:{patron:e}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-profile"]],standalone:!1,decls:4,vars:1,consts:[[1,"metadata"],["translate",""],["aria-hidden","true",1,"fa",3,"ngClass"],[1,"ui:flex","ui:gap-1","ui:mt-4"],["translate","",1,"ui:mt-4"],[3,"ngPlural"],["ngPluralCase","0","translate",""],["ngPluralCase","=1","translate",""],["ngPluralCase","other","translate",""],[3,"routerLink"],[1,"ui:list-none"],["id","profile-change-password-button",3,"onClick","label"],["id","profile-edit-button",3,"label","routerLink"],["translate","",1,"ui:font-bold","ui:mx-2","ui:my-6"]],template:function(i,n){i&1&&(_(0,Xc,29,17)(1,Zc,2,0),be(2,0,Ec,null,1)),i&2&&(r(2),Ee(n.patron))},dependencies:[P],encapsulation:2})}}return t})();var ro=(t,s)=>{let e=f(K),i=f(Je),n=s.url.split("/").splice(-2)[0];return e.getPatron(n).pipe($(d=>(d.keep_history||i.navigate(["/errors/403"],{skipLocationChange:!0}),d.keep_history)))};var Qc=[{path:"",component:Dn,children:[{path:"",redirectTo:"checkout",pathMatch:"full"},{path:"checkout",component:Pn,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"requests",component:Ln,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"patron/:barcode",component:Hn,children:[{path:"",redirectTo:"loan",pathMatch:"full"},{path:"loan",component:jn,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"pickup",component:no,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"pending",component:to,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"ill",component:qn,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"profile",component:ao,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"fees",component:Zn,canActivate:[Fe],data:{permissions:[Pe.CIRC_ADMIN]}},{path:"history",component:Bn,canActivate:[ro,Fe],data:{permissions:[Pe.CIRC_ADMIN]}}]}]}],so=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ct({type:t})}static{this.\u0275inj=st({imports:[jt.forChild(Qc),jt]})}}return t})();var If=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=ct({type:t})}static{this.\u0275inj=st({providers:[Y],imports:[Pi,Fi,so,Ci,Ki,Hi,Si,Ji,yi,nn,Ti,Ri,pn,Zi,Vi,Ni,Cn,ji,Gi.forChild()]})}}return t})();export{If as CirculationModule};