@rero/rero-ils-ui
Version:
User interface for RERO integrated library system (RERO ILS).
2 lines • 147 kB
JavaScript
import{c as dn,d as mn,e as tt,f as Pe,g as dt,h as G,j as De,k as vt,l as Fe,m as we,n as fn,o as hn,q as Cn,r as Nt,s as xt,t as Ue,u as Re,v as K,w as xn}from"./chunk-SRM7FRU6.js";import{a as Le,b as vn}from"./chunk-GHXVB46D.js";import{a as bi,b as Ei,c as Ii,d as ki,e as Pi,f as Ft,g as ot,h as un,i as _n}from"./chunk-BNO2ALQS.js";import{$ as qt,$b as Vi,A as vi,Ac as U,Cc as He,De as ln,Fc as Jt,Gb as wi,Gc as It,Ha as pt,Hc as Ki,He as cn,Ic as kt,Jc as zi,Kb as ye,Kc as Wi,Ke as Zt,Lb as Ri,Lc as Ji,Mb as Li,Mc as Yi,Me as pn,Ne as ke,Ob as Kt,Oc as Xi,Pc as Zi,Qb as Mi,Qc as Qi,Qd as nn,Rb as Bi,Rd as on,S as xi,Sc as ut,T as Ut,U as At,Ud as Ge,V as ve,Vd as Ie,W as xe,Wb as Ai,Wd as Pt,X as je,Xb as Oi,Y as ge,Yd as an,Z as Ot,_b as qi,_c as tn,ac as nt,ad as Ee,bc as Ni,be as Rt,ca as gi,cc as $i,dc as ji,eb as Ti,fe as rn,g as it,ga as Si,ge as Dt,ha as yi,hd as Vt,he as Ct,ic as zt,j as mi,k as ui,kd as en,l as _i,ld as Yt,le as Xt,m as fi,mc as Hi,n as hi,nd as B,p as Ce,pb as ht,pc as V,q as H,qc as P,rc as F,sc as Gi,tb as Se,te as Z,ud as A,v as Ci,vb as Di,vc as Ui,vd as z,ve as sn,wb as q,wc as Te,xb as Fi,xc as be,y as X,yd as N,ye as Q,zc as Wt}from"./chunk-DMPOHDCX.js";import{$ as st,$b as R,Ab as oi,Bc as jt,C as gt,Ca as W,Cc as l,Db as _,Dc as T,Ec as v,F as Qe,Fc as et,Gc as si,Ha as ii,Hc as me,Ic as ue,Ja as $t,Jc as _e,Kc as fe,Lc as he,Mc as ie,Nc as li,Ob as bt,Oc as ft,Pb as Et,Pc as D,Qc as Bt,R as ti,Rb as Ne,Sb as u,Sc as ci,Ub as ai,Uc as pi,Vb as pe,Wb as Mt,Yb as m,Yc as p,Zb as j,Zc as h,_c as b,a as te,ac as L,ad as J,b as Ve,ba as lt,bc as a,bd as di,cb as Gt,cc as o,cd as M,db as ni,dc as C,fa as Tt,ga as se,gc as ee,h as mt,hb as r,hc as k,la as f,m as Je,n as Ye,nc as g,oc as c,qd as $e,s as Xe,sa as Lt,sb as le,sc as de,ta as S,tc as ri,ua as y,w as $,wa as ei,xb as E,y as Ze,yb as ce}from"./chunk-GDWQHTGO.js";var gn=(()=>{class e{constructor(){this.dynamicDialogRef=f(It)}setAction(t){this.action=t,this.dynamicDialogRef.close(t)}checkinItemOnEnterKey(t){t.key==="Enter"&&this.setAction("item")}closeModal(){this.dynamicDialogRef.close()}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,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 e})();var wt=(()=>{class e{constructor(){this.recordService=f(A),this.userService=f(Q),this.routeToolService=f(_n),this.translateService=f(V),this.messageService=f(pt),this.patronTransactionsSubject$=new Ye([]),this.patronFeesOperationSubject$=new Je}_buildQuery(t,i,n,d){let x=[];return t!==void 0&&x.push(`patron.pid:${t}`),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(t,i="-creation_date"){return this.recordService.getRecords("patron_transactions",t,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 Ue(d.metadata))))}patronTransactionsByLoan$(t,i,n){let d=this._buildQuery(void 0,t,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(I=>new Ue(I.metadata))))}patronTransactionsByPatron$(t,i,n){let d=this._buildQuery(t,void 0,i,n);return this._loadPatronTransactions(d)}emitPatronTransactionByPatron(t,i,n){this.patronTransactionsByPatron$(t,i,n).subscribe(d=>this.patronTransactionsSubject$.next(d))}loadTransactionHistory(t){let i=`parent.pid:${t.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 Re(d.metadata))))}computeTotalTransactionsAmount(t){return t.reduce((i,n)=>n.status===Nt.OPEN?parseFloat((i+n.total_amount).toFixed(2)):i,0)}_buildTransactionEventsSkeleton(t){let i=this.userService.user;return{parent:{$ref:this.routeToolService.apiService.getRefEndpoint("patron_transactions",t.pid)},operator:{$ref:this.routeToolService.apiService.getRefEndpoint("patrons",i.patronLibrarian.pid)},library:{$ref:this.routeToolService.apiService.getRefEndpoint("libraries",i.currentLibrary)}}}payPatronTransaction(t,i,n){let d=this._buildTransactionEventsSkeleton(t);d.type=xt.PAYMENT,d.subtype=n,d.amount=i,this.patronFeesOperationSubject$.next(0-i),this._createTransactionEvent(d,t.patron.pid)}disputePatronTransaction(t,i){let n=this._buildTransactionEventsSkeleton(t);n.type=xt.DISPUTE,n.note=i,this._createTransactionEvent(n,t.patron.pid)}cancelPatronTransaction(t,i,n){let d=this._buildTransactionEventsSkeleton(t);d.type=xt.CANCEL,d.amount=i,d.note=n,this.patronFeesOperationSubject$.next(0-i),this._createTransactionEvent(d,t.patron.pid)}_createTransactionEvent(t,i){this.recordService.create("patron_transaction_events",t).subscribe({next:()=>{this.emitPatronTransactionByPatron(i,void 0,"open");let n=this.translateService.instant(t.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=Object.hasOwn(n,"message")&&Object.hasOwn(n.message(),"message")?n.message.message:"Server error :: "+(n.title||n.toString()),x="["+n.status+" - "+n.statusText+"] "+d,I=this.translateService.instant(t.type);this.messageService.add({severity:"error",summary:this.translateService.instant("{{ type }} creation failed!",{type:I}),detail:x,sticky:!0,closable:!0})}})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=Tt({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var at=(()=>{class e{constructor(){this.patronService=f(K),this.patronTransactionService=f(wt),this.defaultStats={feesEngaged:0,fees:0,overdueFees:0,pending:0,pickup:0,loan:0,ill:0},this.statistics=$t(this.defaultStats),this.messages=$t([]),this.overdueTransactions=$t([]),this.engagedTransactions=$t([])}updateStats(t){this.getStats(t).subscribe()}clearStats(){this.statistics.set(this.defaultStats),this.messages.set([]),this.overdueTransactions.set([]),this.engagedTransactions.set([])}updateFees(t){return this.patronService.getOverduePreview(t).pipe(lt(i=>{let n=0;i.map(d=>{n+=d.fees.total}),this.setOverdueFees(n,i)}),lt(()=>this.patronTransactionService.emitPatronTransactionByPatron(t,void 0,"open")),st(()=>this.patronTransactionService.patronTransactionsSubject$),lt(i=>this.setFeesEngaged(this.patronTransactionService.computeTotalTransactionsAmount(i),i)))}setOverdueFees(t,i){this.overdueTransactions.set(i);let n=this.statistics();this.statistics.set(Ve(te({},n),{overdueFees:t,fees:t+n.feesEngaged}))}setFeesEngaged(t,i){this.engagedTransactions.set(i);let n=this.statistics();this.statistics.set(Ve(te({},n),{feesEngaged:t,fees:n.overdueFees+t}))}getStats(t){return this.patronService.getCirculationInformations(t).pipe($(i=>this.processStats(i)))}clearMessages(){this.messages.set([])}processStats(t){let i=t.statistics,n={pending:0,pickup:0,loan:0,ill:0};Object.keys(i).forEach(d=>{switch(d){case tt[tt.PENDING]:case tt[tt.ITEM_IN_TRANSIT_FOR_PICKUP]:n.pending+=Number(i[d]);break;case tt[tt.ITEM_AT_DESK]:n.pickup=Number(i[d]);break;case tt[tt.ITEM_ON_LOAN]:n.loan=Number(i[d]);break;case"ill_requests":n.ill=Number(i[d]);break}}),this.statistics.set(te(te({},this.statistics()),n)),this.clearMessages(),t.messages.map(d=>{this.messages.set([...this.messages(),{severity:we(d.type),detail:d.content}])})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275prov=Tt({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})();var lo=e=>({"ui:text-muted-color":e});function co(e,s){if(e&1&&(a(0,"span",9),l(1),o()),e&2){let t=c(2);r(),v(", ",t.patron.first_name,"")}}function po(e,s){e&1&&(l(0," \xA0 "),C(1,"i",17))}function mo(e,s){if(e&1&&(l(0),p(1,"dateTranslate"),p(2,"translate"),_(3,po,2,0)),e&2){let t=c(2);si(" ",b(1,4,t.patron.birth_date,"mediumDate")," (",t.patronAge," ",h(2,7,"years old"),") "),r(3),m(t.isBirthday?3:-1)}}function uo(e,s){e&1&&(a(0,"div",13),l(1),o()),e&2&&(r(),T(s))}function _o(e,s){if(e&1){let t=k();a(0,"div",15)(1,"p-button",18),g("onClick",function(){S(t);let n=c(2);return y(n.clear())}),o()()}}function fo(e,s){if(e&1&&(a(0,"li",21)(1,"span",22),l(2),p(3,"translate"),p(4,"ucfirst"),o(),C(5,"p",23),p(6,"nl2br"),o()),e&2){let t=s.$implicit;r(2),T(h(4,4,h(3,2,t.type))),r(3),u("innerHTML",h(6,6,t.content),Gt)}}function ho(e,s){if(e&1&&(a(0,"div",16)(1,"p-message",19)(2,"ul",20),R(3,fo,7,8,"li",21,j),o()()()),e&2){let t=c(2);r(3),L(t.patron.notes)}}function Co(e,s){if(e&1&&C(0,"p-message",25),e&2){let t=s.$implicit;u("text",t.content)}}function vo(e,s){if(e&1&&R(0,Co,1,1,"p-message",25,j),e&2){let t=c(3);L(t.patron.circulation_informations.messages)}}function xo(e,s){if(e&1&&C(0,"p-message",24),e&2){let t=s.$implicit;u("severity",t.severity)("text",t.detail)}}function go(e,s){if(e&1&&(_(0,vo,2,0),R(1,xo,1,2,"p-message",24,j)),e&2){let t=c(2);m(t.patron.circulation_information?0:-1),r(),L(t.circulationMessages())}}function So(e,s){if(e&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),C(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()()()),e&2){let t,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((t=h(22,16,J(21,11,i.patron.patron.type.pid,"patron_types","string","name")))?20:-1,t),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 Me=(()=>{class e{constructor(){this.circulationStatsService=f(at),this.displayCirculationMessages=!1,this.clearPatronButton=!0,this.linkMode="detail",this.clearPatron=new W,this.isBirthday=!1,this.circulationMessages=$t([])}ngOnChanges(t){if(t.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=ut.now().toFormat("M-dd"),n=ut.fromISO(this.patron.birth_date).toFormat("M-dd");i===n&&(this.isBirthday=!0)}if(this.patron&&this.patron.birth_date){let i=ut.fromISO(this.patron.birth_date);this.patronAge=Math.floor(ut.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(t){return we(t)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,selectors:[["admin-circulation-patron-detailed"]],inputs:{patron:"patron",barcode:"barcode",displayCirculationMessages:"displayCirculationMessages",clearPatronButton:"clearPatronButton",linkMode:"linkMode"},outputs:{clearPatron:"clearPatron"},standalone:!1,features:[Lt],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,it,Yi,H,z,F,Ee,en,B],encapsulation:2})}}return e})();var yn=(()=>{class e{constructor(){this.loanService=f(Fe)}transform(t){return this.loanService.getCirculationPolicy(t.pid)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275pipe=oi({name:"getLoanCipo",type:e,pure:!0,standalone:!1})}}return e})();var bo=(e,s)=>({"callout callout-warning":e," ui:text-muted-color":s}),Eo=e=>["/records","items","detail",e],Io=e=>["/records","documents","detail",e],Tn=e=>["/circulation","patron",e,"loan"],ko=()=>({prefix:"item",suffix:"renew-button"}),Ke=()=>({height:"500px"}),Po=e=>["/records","circ_policies","detail",e],Do=(e,s)=>s.pid;function Fo(e,s){if(e&1){let t=k();a(0,"shared-open-close-button",21),g("status",function(n){S(t);let d=c(2);return y(d.isCollapsed=n)}),o()}if(e&2){let t=c(2);u("collapsed",t.isCollapsed)}}function wo(e,s){e&1&&(C(0,"i",7),p(1,"translate")),e&2&&u("title",h(1,1,"Note"))}function Ro(e,s){if(e&1&&C(0,"shared-inherited-call-number",8),e&2){let t=c(2);u("item",t.item)}}function Lo(e,s){e&1&&C(0,"i",22)}function Mo(e,s){if(e&1&&_(0,Lo,1,0,"i",22),e&2){let t=c(2);m(t.item.actionDone===t.itemAction.checkin&&t.item.getNote("checkin_note")||t.item.actionDone===t.itemAction.checkout&&t.item.getNote("checkout_note")?0:-1)}}function Bo(e,s){e&1&&C(0,"i",22)}function Ao(e,s){if(e&1&&_(0,Bo,1,0,"i",22),e&2){let t=c(2);m(t.item.actions?-1:0)}}function Oo(e,s){if(e&1&&(l(0),p(1,"mainTitle"),p(2,"truncateText"),p(3,"mainTitle")),e&2){let t=c(2);v(" ",t.isCollapsed?b(2,3,h(1,1,t.item.document.title),12):h(3,6,t.item.document.title)," ")}}function qo(e,s){if(e&1&&l(0),e&2){let t=c(3);v(" ",t.document.title[0]._text," ")}}function Vo(e,s){if(e&1&&_(0,qo,1,1),e&2){let t=c(2);m(t.document?0:-1)}}function No(e,s){if(e&1&&C(0,"p-tag",10),e&2){let t=c(2);u("value",t.item.enumerationAndChronology)}}function $o(e,s){if(e&1&&C(0,"shared-contribution",11),e&2){let t=c(2);u("contributions",t.document==null?null:t.document.contribution)}}function jo(e,s){if(e&1&&(a(0,"li"),l(1),p(2,"translate"),C(3,"i",26),a(4,"span"),l(5),p(6,"dateTranslate"),o()()),e&2){let t=c(3);r(),v(" ",h(2,4,t.item.status)," "),r(3),ai("text-warning",t.loan&&t.loan.expired),r(),v(" ",b(6,6,t.item.loan.dueDate,"shortDate")," ")}}function Ho(e,s){if(e&1&&l(0),e&2){let t=c();v(" ",t.metadata.pickup_name," ")}}function Go(e,s){if(e&1&&(l(0),p(1,"getRecord"),p(2,"async")),e&2){let t=c();v(" ",h(2,6,J(1,1,t.metadata.library.pid,"libraries","field","name"))," ")}}function Uo(e,s){if(e&1&&(l(0),p(1,"translate"),_(2,Ho,1,1)(3,Go,3,8),l(4,") ")),e&2){let t=c(4);v(" (",h(1,2,"to")," "),r(2),m(t.item.loan&&t.item.loan.state==="ITEM_IN_TRANSIT_FOR_PICKUP"?2:3)}}function Ko(e,s){if(e&1&&(a(0,"li"),l(1),p(2,"translate"),_(3,Uo,5,4),p(4,"getRecord"),p(5,"async"),o()),e&2){let t,i=c(3);r(),v(" ",h(2,2,i.item.status)," "),r(2),m((t=h(5,7,b(4,4,i.getTransitLocationPid(),"locations")))?3:-1,t)}}function zo(e,s){if(e&1&&(a(0,"li"),l(1),p(2,"translate"),o()),e&2){let t=c(3);r(),T(h(2,1,t.item.status))}}function Wo(e,s){if(e&1&&l(0),e&2){let t=c(4);v(" (",t.item.loan.pickup_location.pickup_name,") ")}}function Jo(e,s){if(e&1&&l(0),e&2){let t=c(4);v(" (",t.item.pending_loans[0].pickup_location.pickup_name,") ")}}function Yo(e,s){if(e&1&&(a(0,"li"),l(1),p(2,"translate"),_(3,Wo,1,1)(4,Jo,1,1),o()),e&2){let t=c(3);r(),v(" ",h(2,3,t.item.status)," "),r(2),m(t.item.loan&&t.item.loan.pickup_location?3:-1),r(),m(!t.item.loan&&t.item.pending_loans&&t.item.pending_loans.length>0&&t.item.pending_loans[0].pickup_location?4:-1)}}function Xo(e,s){if(e&1&&(a(0,"li"),l(1),p(2,"translate"),o()),e&2){let t=c(3);r(),T(h(2,1,t.item.status))}}function Zo(e,s){if(e&1&&(a(0,"p-tag",24),p(1,"translate"),l(2),C(3,"i",27),o()),e&2){let t=c(3);u("title",h(1,2,"Renewals")),r(2),v(" ",t.item.loan.extension_count," ")}}function Qo(e,s){if(e&1&&(a(0,"p-tag",25),p(1,"translate"),l(2),p(3,"currency"),o()),e&2){let t=c(3);u("title",h(1,2,"Fees")),r(2),v(" ",b(3,4,t.totalAmountOfFee,t.organisation.default_currency)," ")}}function ta(e,s){if(e&1&&(a(0,"p-tag",24),p(1,"translate"),a(2,"div",28),C(3,"i",29),l(4,"\xA0 "),a(5,"a",30),l(6),o()()()),e&2){let t=c(3);u("title",h(1,4,"Requests")),r(5),u("title",t.item.pending_loans[0].patron.name)("routerLink",D(6,Tn,t.item.pending_loans[0].patron.barcode)),r(),v(" ",t.item.pending_loans[0].patron.name," ")}}function ea(e,s){if(e&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,ta,7,8,"p-tag",24),o()()),e&2){let t,i=c(2);r(),m((t=i.item.status)==="on_loan"?1:t==="in_transit"?2:t==="on_shelf"?3:t==="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(e,s){if(e&1&&(l(0),p(1,"translate")),e&2){let t=c(2);v(" ",h(1,1,t.item.status)," ")}}function na(e,s){e&1&&(C(0,"i",31),a(1,"span",32),l(2,"checked in"),o())}function oa(e,s){e&1&&(C(0,"i",33),a(1,"span",32),l(2,"checked out"),o())}function aa(e,s){e&1&&(C(0,"i",34),a(1,"span",32),l(2,"renewed"),o())}function ra(e,s){if(e&1&&(a(0,"span"),l(1),p(2,"translate"),o()),e&2){let t=c(3);r(),T(h(2,1,t.item.actionDone))}}function sa(e,s){if(e&1&&(a(0,"div",16),_(1,na,3,0)(2,oa,3,0)(3,aa,3,0)(4,ra,3,3,"span"),o()),e&2){let t,i=c(2);r(),m((t=i.item.actionDone)===i.itemAction.checkin?1:t===i.itemAction.checkout?2:t===i.itemAction.extend_loan?3:4)}}function la(e,s){if(e&1){let t=k();a(0,"p-button",35),p(1,"translate"),p(2,"idAttribute"),g("onClick",function(n){S(t);let d=c(2);return y(d.extendLoanClick(n))}),o()}if(e&2){let t=c(2);u("label",h(1,4,"Renew"))("outlined",!0)("disabled",!t.item.actions.includes(t.itemAction.extend_loan))("id",b(2,6,t.item.barcode,ft(9,ko)))}}function ca(e,s){if(e&1&&(a(0,"dt",32),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),e&2){let t=c(3);r(3),v(" ",t.item.enumerationAndChronology," ")}}function pa(e,s){if(e&1&&(a(0,"dt",32),l(1,"Location"),o(),a(2,"dd"),l(3),p(4,"getRecord"),p(5,"async"),o()),e&2){let t=s;r(3),et(" ",h(5,7,J(4,2,t.metadata.library.pid,"libraries","field","name")),": ",t.metadata.name," ")}}function da(e,s){if(e&1&&(a(0,"dt",32),l(1,"Temporary location"),o(),a(2,"dd"),l(3),o()),e&2){let t=c(3);r(3),v(" ",t.item.temporary_location.name," ")}}function ma(e,s){if(e&1&&(a(0,"dt",32),l(1,"Exhibition/course"),o(),a(2,"dd"),l(3),o()),e&2){let t=c(3);r(3),v(" ",t.item.collections.join(", ")," ")}}function ua(e,s){if(e&1&&(a(0,"dt",32),l(1,"Renewals"),o(),a(2,"dd")(3,"p-tag",38),l(4),C(5,"i",27),o()()),e&2){let t=c(3);r(4),v(" ",t.item.loan.extension_count," ")}}function _a(e,s){if(e&1&&(a(0,"dt",32),l(1,"Due date"),o(),a(2,"dd"),l(3),p(4,"dateTranslate"),o()),e&2){let t=c(3);r(3),v(" ",b(4,1,t.item.loan.last_end_date,"shortDate")," ")}}function fa(e,s){if(e&1&&(a(0,"dt",32),l(1,"Fees"),o(),a(2,"dd")(3,"p-tag",39),l(4),p(5,"currency"),o()()),e&2){let t=c(3);r(4),v(" ",b(5,1,t.totalAmountOfFee,t.organisation.default_currency)," ")}}function ha(e,s){if(e&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()),e&2){let t=s.$implicit;r(2),v(" ",t.metadata.process_date?b(3,2,t.metadata.process_date,"short"):b(4,5,t.metadata.creation_date,"shortDate")+"\xA0("+h(5,8,"Not yet sent")+")"," "),r(4),v(" \u2014 ",h(7,10,t.metadata.notification_type)," ")}}function Ca(e,s){if(e&1&&(a(0,"dt",32),l(1,"Notifications"),o(),a(2,"dd")(3,"ul",13),R(4,ha,8,12,"li",null,j),o()()),e&2){let t=c();r(4),L(t)}}function va(e,s){e&1&&_(0,Ca,6,0),e&2&&m(s.length>0?0:-1)}function xa(e,s){if(e&1&&(a(0,"p-tag",38),l(1),o(),C(2,"i",41)),e&2){let t=c(4);r(),v(" ",t.item.pending_loans.length," ")}}function ga(e,s){if(e&1&&(a(0,"p-tag",38),C(1,"i",42),l(2,"\xA0 "),a(3,"a",43),l(4),o()()),e&2){let t=s.$implicit;r(3),u("title",t.patron.name)("routerLink",D(3,Tn,t.patron.barcode)),r(),T(t.patron.name)}}function Sa(e,s){if(e&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()),e&2){let t=c(3);r(3),m(t.item.pending_loans.length>1?3:-1),r(),L(t.item.pending_loans)}}function ya(e,s){if(e&1&&(l(0),p(1,"translate")),e&2){let t=c().$implicit;v(" ",h(1,1,t.type)," ")}}function Ta(e,s){e&1&&(l(0),p(1,"translate")),e&2&&v(" ",h(1,1,"Note")," ")}function ba(e,s){if(e&1&&(a(0,"dt"),C(1,"i",44),_(2,ya,2,3)(3,Ta,2,3),o(),a(4,"dd"),l(5),o()),e&2){let t=s.$implicit,i=c(3);r(2),m(t.type!==i.NOTEAPI?2:3),r(3),T(t.content)}}function Ea(e,s){if(e&1&&(a(0,"div",18)(1,"dl",36)(2,"dt",32),l(3,"Call number"),o(),a(4,"dd"),C(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,va,1,1),p(16,"async"),_(17,Sa,6,1),R(18,ba,6,2,null,null,j),o()()),e&2){let t,i,n=c(2);r(5),u("item",n.item),r(),m(n.item.enumerationAndChronology?6:-1),r(),m((t=h(9,13,b(8,10,n.item.location.pid,"locations")))?7:-1,t),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(e,s){if(e&1){let t=k();a(0,"div",19)(1,"p-button",45),g("onClick",function(){S(t);let n=c(2);return y(n.debugMode=!n.debugMode)}),C(2,"i",46),o()()}if(e&2){let t=c(2);r(),u("icon",t.debugMode?"fa fa-toggle-on":"fa fa-toggle-off")("outlined",!0)}}function ka(e,s){if(e&1&&(a(0,"div",50)(1,"h5"),l(2),p(3,"translate"),a(4,"a",53),C(5,"i",54),o()(),a(6,"p-scrollPanel",51)(7,"pre",52),l(8),p(9,"json"),o()()()),e&2){let t=s;r(2),v(" ",h(3,5,"Circulation policy"),"\xA0 "),r(2),u("routerLink",D(9,Po,t.pid)),r(2),pe(ft(11,Ke)),r(2),T(h(9,7,t))}}function Pa(e,s){if(e&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()),e&2){let t,i=c(3);r(4),pe(ft(10,Ke)),r(2),T(h(7,4,i.loan)),r(3),m((t=h(11,8,h(10,6,i.loan)))?9:-1,t)}}function Da(e,s){if(e&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()()()()),e&2){let t=c(3);r(4),pe(ft(5,Ke)),r(2),T(h(7,3,t.item))}}function Fa(e,s){if(e&1&&(a(0,"div",20)(1,"h5",47),C(2,"i",46),l(3),p(4,"translate"),o(),a(5,"div",48),_(6,Pa,12,11)(7,Da,8,6,"div",20),o()()),e&2){let t=c(2);r(3),v("\xA0",h(4,2,"Debug"),""),r(3),m(t.loan?6:7)}}function wa(e,s){if(e&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,ea,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()),e&2){let t=c();u("ngClass",Bt(17,bo,t.needCallout(t.item,"warning")||t.item.actionDone===t.itemAction.checkin&&t.totalAmountOfFee>0||!t.item.loan,t.item.status!==t.ItemStatus.ON_LOAN)),r(2),m(!t.item.actions||t.item.loan||t.totalAmountOfFee||t.item.pending_loans||t.notifications$?2:-1),r(4),u("routerLink",D(20,Eo,t.item.pid)),r(),T(t.item.barcode),r(),m(t.getCirculationNoteForAction().length>0?8:-1),r(),m(t.isCollapsed?9:-1),r(),m(t.item.actionDone?10:11),r(3),u("routerLink",D(22,Io,t.item.document.pid)),r(),m(t.item.document!=null&&t.item.document.title?14:15),r(2),m(t.item.enumerationAndChronology&&t.isCollapsed?16:-1),r(),m(t.document?17:-1),r(2),m(t.item.loan?19:20),r(4),m(t.item.actionDone?23:-1),r(),m(t.patron&&!t.item.actionDone?24:-1),r(),m(t.isCollapsed?-1:25),r(),m(t.canUseDebugMode&&!t.isCollapsed?26:-1),r(),m(t.debugMode&&!t.isCollapsed?27:-1)}}var bn=(()=>{class e{constructor(){this.recordService=f(A),this.organisationService=f(ot),this.patronTransactionService=f(wt),this.itemService=f(vt),this.permissionsService=f(sn),this.userService=f(Q),this.circulationStatsService=f(at),this.NOTEAPI=dt.API,this.isCollapsed=!0,this.hasFeesEmitter=new W,this.extendLoanClicked=new W,this.totalAmountOfFee=0,this.itemAction=G,this.document=void 0,this.ItemStatus=Rt,this.debugMode=!1}get organisation(){return this.organisationService.organisation}get canUseDebugMode(){return this.permissionsService.canAccessDebugMode()}ngOnChanges(t){if(t?.item?.currentValue){if(this.loan=this.item&&this.item.loan?new Pe(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===tt.ITEM_IN_TRANSIT_FOR_PICKUP)return this.item.loan.pickup_location_pid;if(this.item.loan&&this.item.loan.state===tt.ITEM_IN_TRANSIT_TO_HOUSE)return this.item.location.pid}else{let t=new Pe(this.item.action_applied[G.validate]),i=new Pe(this.item.action_applied[G.checkin]);if(t&&t.state===tt.ITEM_IN_TRANSIT_FOR_PICKUP)return t.pickup_location_pid;if(i&&i.state===tt.ITEM_IN_TRANSIT_TO_HOUSE)return this.item.location.pid}return null}getCirculationNoteForAction(){if(this.item.actionDone){let t=this.item.getNote(dt.CHECKIN);if(t&&(this.item.actionDone===this.itemAction.checkin||this.item.actionDone===this.itemAction.receive&&this.item.library.pid===this.userService.user.currentLibrary))return[t];let i=this.item.getNote(dt.CHECKOUT);if(i&&this.item.actionDone===this.itemAction.checkout)return[i]}else if(this.item.notes)return this.item?.notes.filter(t=>[dt.CHECKIN,dt.API].includes(t.type));return[]}extendLoanClick(t){this.extendLoanClicked.emit(this.item)}needCallout(t,i){return this.itemService.needCallout(t,i)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,selectors:[["admin-item"]],inputs:{item:"item",patron:"patron",isCollapsed:"isCollapsed"},outputs:{hasFeesEmitter:"hasFeesEmitter",extendLoanClicked:"extendLoanClicked"},standalone:!1,features:[Lt],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,it,ye,P,Dt,Zt,Z,nt,H,Ci,X,z,F,Vt,B,Xt,Ct,yn],encapsulation:2})}}return e})();var In=()=>({prefix:"item"}),En=(e,s)=>s.pid;function La(e,s){e&1&&(a(0,"div",1)(1,"span",2),l(2,"No loan for the current patron."),o()())}function Ma(e,s){if(e&1){let t=k();a(0,"p-button",11),p(1,"translate"),g("onClick",function(){S(t);let n=c(3);return y(n.extendAllLoansClick())}),o()}if(e&2){let t=c(3);u("label",h(1,2,"Renew all"))("disabled",t.loansToExtend.length<1)}}function Ba(e,s){if(e&1){let t=k();a(0,"div",4)(1,"div",5)(2,"div")(3,"shared-open-close-button",6),g("status",function(n){S(t);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(e&2){let t=c(2);r(11),m(t.patron?11:-1)}}function Aa(e,s){if(e&1){let t=k();a(0,"div",3)(1,"admin-item",12),p(2,"idAttribute"),g("extendLoanClicked",function(n){let d=S(t).$implicit,x=c(2);return y(x.extendLoanClick(n,d))}),o()()}if(e&2){let t=s.$implicit,i=c(2);r(),u("patron",i.patron)("item",t)("isCollapsed",i.allCollapsed),Ne("id",b(2,4,t.barcode,ft(7,In)))}}function Oa(e,s){if(e&1){let t=k();a(0,"div",3)(1,"admin-item",13),p(2,"idAttribute"),g("hasFeesEmitter",function(n){S(t);let d=c(2);return y(d.hasFees(n))}),o()()}if(e&2){let t=s.$implicit,i=c(2);r(),u("patron",i.patron)("item",t)("isCollapsed",i.allCollapsed),Ne("id",b(2,4,t.barcode,ft(7,In)))}}function qa(e,s){if(e&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()()),e&2){let t=c();r(4),L(t.checkedOutItems),r(2),L(t.checkedInItems)}}var Be=(()=>{class e{constructor(){this.extendAllLoansClicked=new W,this.extendLoanClicked=new W,this.hasFeesEmitter=new W,this.allCollapsed=!0}ngOnInit(){this.checkedOutItems=null}extendLoanClick(t,i){i.currentAction=G.extend_loan,this.extendLoanClicked.emit(i)}extendAllLoansClick(){this.extendAllLoansClicked.emit(this.loansToExtend.map(t=>(t.currentAction=G.extend_loan,t)))}get loansToExtend(){return this.checkedOutItems.filter(t=>t.actions.includes(G.extend_loan))}hasFees(t){return this.hasFeesEmitter.emit(t),t}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,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,ht,P,Z,bn,F,Xt],encapsulation:2})}}return e})();function Va(e,s){if(e&1&&C(0,"admin-circulation-patron-detailed",3),e&2){let t=c();u("patron",t.patronInfo)("barcode",t.barcode)("linkMode","circulation")("clearPatronButton",!1)}}var Pn=(()=>{class e{constructor(){this.messageService=f(pt),this.dialogService=f(kt),this.userService=f(Q),this.recordService=f(A),this.itemsService=f(vt),this.router=f(Wt),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(t=>this.patronInfo=t),this.currentLibraryPid=this.loggedUser.currentLibrary,this.patronInfo=null,this.barcode=null}searchValueUpdated(t){if(!t)return null;this.searchText=t,this.getPatronOrItem(this.searchText)}checkin(t){this.searchInputFocus=!1,this.searchInputDisabled=!0,this.itemsService.checkin(t,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,dt.CHECKIN),i.action_applied&&i.action_applied.checkin&&this.getPatronInfo(i.action_applied.checkin.patron.barcode),i.status===Rt.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,dt.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:dt.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(t){t?(this.barcode=t,this.patronService.getPatron(t).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(t){this.item=void 0;let i=this.loggedUser.currentOrganisation,n=`patron.barcode:${t} AND organisation.pid:${i}`,d=this.recordService.getRecords("patrons",n,1,1,[]).pipe($(I=>I.hits)),x=this.recordService.getRecords("items",`barcode:${t}`,1,1,[]).pipe($(I=>I.hits));gt([d,x]).subscribe({next:([I,Y])=>{I.total.value===0&&Y.total.value===0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Patron not found!"),life:N.MESSAGE_LIFE}),I.total.value>1&&Y.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}),I.total.value===1&&Y.total.value===1?this.dialogService.open(gn,{header:this.translate.instant("Circulation action"),modal:!0,focusOnShow:!1,closable:!0,width:"25vw"}).onClose.subscribe(We=>{if(We)switch(We){case"patron":this.router.navigate(["/circulation","patron",t,"loan"]);break;case"item":this.checkin(t);break;default:this._resetSearchInput();break}}):Y.total.value===1?(this.item=Y.hits[0].metadata,this.items.find(re=>re.barcode===t)?(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(t)):I.total.value===1&&this.router.navigate(["/circulation","patron",t,"loan"])},error:I=>this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:I.message,sticky:!0,closable:!0})})}displayCirculationInformation(t,i){let n=[],d=t.getNote(i);if(d!=null&&n.push(d.content),t.library.pid===this.userService.user.currentLibrary){let x=this.displayCollectionsAndTemporaryLocation(t);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(t,i){let n=Object.hasOwn(t,"error")&&Object.hasOwn(t.error,"status")?this.processErrorMessage(t.error.status):t.message;if(n=this.translate.instant(n),n+=`<br/>${this.translate.instant("Status")}: ${this.translate.instant(i.status.toString())}`,i.status===Rt.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(dt.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(t){let i=[];return t.collections&&t.collections.length>0&&(i.push(`${this.translate.instant("This item is in exhibition/course")} "${t.collections[0]}"`),t.collections.length>1&&i.push(` ${this.translate.instant("and {{ count }} other(s)",{count:t.collections.length-1})}`),i.push(".")),t.temporary_location&&i.push(`<br/>${this.translate.instant("This item is in temporary location")} "${t.temporary_location.name}".`),i.join("")}hasFees(t){t&&this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item has fees"),sticky:!0,closable:!0})}processErrorMessage(t){return t.replace(/^error:/,"").trim()}_resetSearchInput(){this.searchInputDisabled=!1,this.searchText="",setTimeout(()=>{this.searchInputFocus=!0})}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,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,Yt,Me,Be,F],encapsulation:2})}}return e})();function Na(e,s){if(e&1&&(a(0,"div",1)(1,"div",2),l(2),o(),C(3,"p",3),o()),e&2){let t=s.$implicit;r(2),v(" ",t.summary," "),r(),u("innerHtml",t.detail,Gt)}}var Dn=(()=>{class e{static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,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&&(C(0,"router-outlet"),a(1,"p-toast"),_(2,Na,4,2,"ng-template",null,0,M),o(),C(4,"p-confirmDialog"))},dependencies:[be,zi,Qi],encapsulation:2})}}return e})();var Fn=(e,s)=>{let t=f(K),i=f(Wt),n=s.url.split("/").splice(-2)[0];return t.getPatron(n).pipe($(d=>(d.keep_history||i.navigate(["/errors/403"],{skipLocationChange:!0}),d.keep_history)))};var $a=e=>["/records","items","detail",e],ja=e=>["/records","documents","detail",e],Ha=()=>({prefix:"item",suffix:"validate-button"}),Ga=e=>["/circulation","patron",e];function Ua(e,s){if(e&1&&(a(0,"a",4),l(1),o(),C(2,"br")),e&2){let t=c(2);u("routerLink",D(2,ja,t.document.pid)),r(),v(" ",s," ")}}function Ka(e,s){if(e&1){let t=k();a(0,"p-button",12),p(1,"translate"),p(2,"idAttribute"),g("onClick",function(){S(t);let n=c(2);return y(n.validateRequest())}),o()}if(e&2){let t=c(2);u("label",h(1,2,"Validate"))("id",b(2,4,t.item.barcode,ft(7,Ha)))}}function za(e,s){if(e&1&&(a(0,"dt",14),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),e&2){let t=c(3);r(3),T(t.item.enumerationAndChronology)}}function Wa(e,s){if(e&1&&l(0),e&2){let t=c(3);v(" ",t.item.temporary_location.name," ")}}function Ja(e,s){if(e&1&&l(0),e&2){let t=c(3);v(" ",t.item.location.name," ")}}function Ya(e,s){if(e&1&&l(0),e&2){let t=c(3);v(" ",t.item.loan.pickup_location.pickup_name," ")}}function Xa(e,s){if(e&1&&l(0),e&2){let t=c(3);et(" ",t.item.loan.pickup_location.library_name,": ",t.item.loan.pickup_location.name," ")}}function Za(e,s){if(e&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),C(17,"i",17)(18,"i",18),_(19,Ya,1,1)(20,Xa,1,2),o()()()),e&2){let t=c(2);r(2),m(t.item.enumerationAndChronology?2:-1),r(4),u("routerLink",D(6,Ga,t.item.loan.patron.barcode)),r(),v(" ",t.item.loan.patron.name," "),r(4),v(" ",t.item.library.name," - "),r(),m(t.item.temporary_location!=null&&t.item.temporary_location.name?12:13),r(7),m(t.item.loan.pickup_location.pickup_name?19:20)}}function Qa(e,s){if(e&1){let t=k();a(0,"div",0)(1,"div",1)(2,"div",2)(3,"shared-open-close-button",3),g("status",function(n){S(t);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"),C(9,"shared-contribution",6),o(),a(10,"div",7),C(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(e&2){let t,i=c();de("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((t=h(8,12,i.document.title))?7:-1,t),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 wn=(()=>{class e{constructor(){this.recordService=f(A),this.callout=null,this.requestValidated=new W,this.LoanState=tt}ngOnInit(){this.item&&this.recordService.getRecord("documents",this.item.loan.document_pid,1,{Accept:"application/rero+json, application/json"}).subscribe(t=>this.document=t.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||e)}}static{this.\u0275cmp=E({type:e,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,it,P,Dt,Zt,Z,F,B,Xt,Ct],encapsulation:2})}}return e})();var er=()=>[ht,P,Z,wn,F],ir=(e,s)=>s.pid;function nr(e,s){if(e&1){let t=k();a(0,"div",2)(1,"div",3)(2,"div",4)(3,"shared-open-close-button",5),g("status",function(n){S(t);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(e&2){let t=c(2);r(3),u("collapsed",t.isCollapsed)}}function or(e,s){if(e&1){let t=k();a(0,"div",9)(1,"admin-requested-item",10),g("requestValidated",function(n){S(t);let d=c(3);return y(d.validateRequest(n))}),o()()}if(e&2){let t=s.$implicit,i=c(3);r(),u("item",t)("isCollapsed",i.isCollapsed)("callout",i.getItemCallout(t))}}function ar(e,s){if(e&1&&R(0,or,2,3,"div",9,ir),e&2){let t=c(2);L(t.items)}}function rr(e,s){e&1&&(a(0,"div",1),l(1),p(2,"translate"),o()),e&2&&(r(),v(" ",h(2,1,"no request to validate")," "))}function sr(e,s){if(e&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()),e&2){let t=c();r(3),m(t.items.length>0?3:4)}}function lr(e,s){e&1&&(a(0,"div",11),l(1,"Loading in progress"),o())}var Rn=(()=>{class e{constructor(){this.requestValidated=new W,this.isCollapsed=!1,this.knownItemBarcodes=null}ngOnChanges(t){Object.hasOwn(t,"items")&&!t.items.firstChange&&t.items.previousValue&&(this.knownItemBarcodes=t.items.previousValue.map(i=>i.barcode))}getItemCallout(t){return t.loan.state!==tt.PENDING?"callout-success callout-bg-success":this.knownItemBarcodes&&!this.knownItemBarcodes.includes(t.barcode)?"callout-warning callout-bg-warning":null}validateRequest(t){this.requestValidated.emit(t)}static{this.\u0275fac=function(i){return new(i||e)}}static{this.\u0275cmp=E({type:e,selectors:[["admin-circulation-requested-items-list"]],inputs:{items:"items"},outputs:{requestValidated:"requestValidated"},standalone:!1,features:[Lt],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),bt(2,0,er,null,1)),i&2&&(r(2),Et(n.items))},dependencies:[P],encapsulation:2})}}return e})();function pr(e,s){if(e&1&&(a(0,"div",15),C(1,"i"),a(2,"div"),l(3),o()()),e&2){let t=s.$implicit;r(),Mt(t.icon),r(2),T(t.label)}}function dr(e,s){if(e&1&&(a(0,"div",15),C(1,"i"),a(2,"div"),l(3),o()()),e&2){let t=s.$implicit;r(),Mt(t.icon),r(2),T(t.label)}}function mr(e,s){if(e&1){let t=k();a(0,"p-select",11),g("onChange",function(n){S(t);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(e&2){let t=c();u("options",t.refreshOptions)}}function ur(e,s){if(e&1&&(a(0,"div",15),C(1,"i"),a(2,"div"),l(3),o()()),e&2){let t=s.$implicit;r(),Mt(t.icon),r(2),T(t.label)}}function _r(e,s){if(e&1&&(a(0,"div",15),C(1,"i"),a(2,"div"),l(3),o()()),e&2){let t=s.$implicit;r(),Mt(t.icon),r(2),T(t.label)}}var Mn=(()=>{class e{constructor(){this.userService=f(Q),this.itemsService=f(vt),this.translateService=f(V),