UNPKG

@rero/rero-ils-ui

Version:

User interface for RERO integrated library system (RERO ILS).

2 lines 142 kB
import{a as $t}from"./chunk-LPZHV6WA.js";import{a as hi,e as Qi,g as Ji}from"./chunk-43LBVQEJ.js";import{a as Qe,b as ge,c as pt,d as Vt,e as xe}from"./chunk-3BCXOE3D.js";import{a as rn}from"./chunk-K76ENZEY.js";import{b as Wi}from"./chunk-BBJOC3LQ.js";import{b as sn}from"./chunk-MAD6C6E7.js";import{a as Ot,b as an}from"./chunk-NPMAYWTL.js";import{a as qt}from"./chunk-O7GOMNZH.js";import{c as Ue,d as Ke}from"./chunk-ZMX663LL.js";import{a as Ge,b as on}from"./chunk-3Q7BCCHE.js";import{a as Z,b as G,d as Nt}from"./chunk-5357H5SV.js";import{a as Zi,b as en,c as tn,d as nn}from"./chunk-7GSCO6KD.js";import{a as te,b as Bt}from"./chunk-PDQWUDUO.js";import{a as De}from"./chunk-BR2J44KJ.js";import{a as Yi}from"./chunk-32FZIPT5.js";import{a as Xi}from"./chunk-PKCRAMTV.js";import{a as zi}from"./chunk-YPYXWXW4.js";import{B as lt,D as je,J as ct,R as j,V as ae,fa as Ui,h as Jt,i as Rt,j as Ie,ja as Ki,m as Gi,ra as At,s as Me,ua as dt}from"./chunk-4GRLSOJZ.js";import{c as ve}from"./chunk-WOV5KKTV.js";import{B as ot,Da as $i,Db as ji,F as bi,Fb as st,G as Ei,J as at,Ja as q,Jb as Y,K as wt,L as Ii,M as Di,N as Ee,Na as rt,Nb as me,O as W,P as oe,T as ki,Ua as Hi,Wa as Q,Z as Fe,_ as Pi,a as fe,ba as Fi,ca as Mi,da as wi,ea as Li,fa as xt,m as et,n as Te,na as Bi,o as be,oa as Ni,pa as Oi,qa as qi,va as Vi,wa as Lt,x as nt,ya as He}from"./chunk-MTJX6JRK.js";import{a as H,b as P,c as F}from"./chunk-GQ5FIRIY.js";import{c as vi,d as gi,j as xi,k as z}from"./chunk-4A4J5SA3.js";import{c as yi,e as Ne,f as Oe,h as kt,i as Pt,j as Qt,l as tt,m as qe,s as Si,t as Ve,x as pe,y as $e}from"./chunk-L5BLWZD6.js";import"./chunk-VB4AMLEP.js";import{B as Ti,W as Ft,_ as Mt,la as it,ma as ne}from"./chunk-4MYHQLZQ.js";import"./chunk-AK7G7SIT.js";import"./chunk-MR6TFYJD.js";import{g as Ri,h as Ai}from"./chunk-DUSRDOA3.js";import"./chunk-DPNURG4O.js";import{ta as he}from"./chunk-FRI676LD.js";import{W as ce,ga as Dt,ha as de,qa as Ci,ua as ie}from"./chunk-WKOKZ3JO.js";import{$b as L,Aa as b,B as Se,Bb as ri,Ca as se,Cc as We,E as ti,Eb as $,Ec as si,Fa as oi,Fb as we,Fc as Tt,Gc as Ae,H as X,Hc as l,Ic as y,J as Je,Jc as g,Kc as le,Lc as li,Mc as ci,Nc as di,Ob as Le,Oc as pi,P as ii,Pb as Re,Pc as bt,Qc as Et,Rc as gt,Sb as Kt,Tc as It,Vb as m,Vc as Xe,W as ht,Wc as Ce,X as K,Xb as u,Xc as M,Yb as J,Yc as Be,Z as ue,_b as w,_c as mi,a as Pe,ac as f,ad as ui,b as _t,bb as St,bc as a,cb as ai,cc as o,da as Ye,dc as v,dd as p,e as Zt,ed as h,fd as S,gb as r,hd as re,ia as C,id as _i,j as ft,jc as vt,jd as N,kc as k,oa as I,p as Ct,pa as D,pd as ee,qd as fi,r as ye,ra as ni,rc as x,sc as d,ta as ze,ud as _e,v as R,vd as A,x as ei,yb as E,yd as Ze}from"./chunk-3WD6XLXL.js";var ln=(()=>{class t{constructor(){this.dynamicDialogRef=C(Te)}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"]],decls:7,vars:6,consts:[["translate","",1,"ui:font-bold","ui:mb-4"],["tabindex","0",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),x("keyup.enter",function(_){return n.checkinItemOnEnterKey(_)}),a(3,"p-button",2),p(4,"translate"),x("onClick",function(){return n.setAction("patron")}),o(),a(5,"p-button",3),p(6,"translate"),x("onClick",function(){return n.setAction("item")}),o()()),i&2&&(r(3),f("label",h(4,2,"Patron account")),r(2),f("label",h(6,4,"Checkin the item")))},dependencies:[P,z,F],encapsulation:2,changeDetection:0})}}return t})();var Ht=(()=>{class t{constructor(){this.localeStorageService=C(ji),this.menuStore=C(Qi),this._dueDateKey="due_date_remember",this._keyExpiration=43200,this._dueDate=b(this._readFromStorage()),this.dueDate=this._dueDate.asReadonly(),this.hasValue=ee(()=>this._dueDate()!==void 0),se(()=>{this.menuStore.selectedLibrary()&&this.remove()}),se(()=>{this.menuStore.logoutCounter()>0&&this.remove()})}set(e){this.localeStorageService.set(this._dueDateKey,e),this._dueDate.set(e)}get(){let e=this._dueDate();if(!e)return;let i=new Date(new Date(e).toDateString()).getTime(),n=new Date(new Date().toDateString()).getTime();return i>=n?e:void 0}remove(){this.localeStorageService.remove(this._dueDateKey),this._dueDate.set(void 0)}_readFromStorage(){if(!this.localeStorageService.has(this._dueDateKey))return;if(this.localeStorageService.isExpired(this._dueDateKey,this._keyExpiration)){this.localeStorageService.remove(this._dueDateKey);return}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.localeStorageService.remove(this._dueDateKey)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Ye({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var ke=(()=>{class t{constructor(){this.recordService=C(Q),this.appStore=C(j),this.routeToolService=C(Xi),this.translateService=C(H),this.messageService=C(he)}_buildQuery(e,i,n,c){let _=[];return e!==void 0&&_.push(`patron.pid:${e}`),i!==void 0&&_.push(`loan.pid:${i}`),n!==void 0&&_.push(`type:${n}`),c!==void 0&&_.push(`status:${c}`),_.join(" AND ")}_loadPatronTransactions(e,i="-creation_date"){return this.recordService.getRecords("patron_transactions",{query:e,page:1,itemsPerPage:Q.MAX_REST_RESULTS_SIZE,sort:i}).pipe(R(n=>n.hits),R(n=>+this.recordService.totalHits(n.total)==0?[]:n.hits),R(n=>n.map(c=>new pt(c.metadata))))}patronTransactionsByLoan(e,i,n){let c=this._buildQuery(void 0,e,i,n);return this.recordService.getRecords("patron_transactions",{query:c,page:1,itemsPerPage:Q.MAX_REST_RESULTS_SIZE}).pipe(R(_=>_.hits),R(_=>+this.recordService.totalHits(_.total)==0?[]:_.hits),R(_=>_.map(T=>new pt(T.metadata))))}patronTransactionsByPatron(e,i,n){let c=this._buildQuery(e,void 0,i,n);return this._loadPatronTransactions(c)}loadTransaction(e){return this.recordService.getRecord("patron_transactions",e).pipe(R(i=>new pt(i.metadata)))}loadTransactionHistory(e){let i=`parent.pid:${e.pid}`;return this.recordService.getRecords("patron_transaction_events",{query:i,page:1,itemsPerPage:Q.MAX_REST_RESULTS_SIZE}).pipe(R(n=>n.hits),R(n=>+this.recordService.totalHits(n.total)==0?[]:n.hits),R(n=>n.map(c=>new Vt(c.metadata))))}_buildTransactionEventsSkeleton(e){return{parent:{$ref:this.routeToolService.apiService.getRefEndpoint("patron_transactions",e.pid)},operator:{$ref:this.routeToolService.apiService.getRefEndpoint("patrons",this.appStore.user().patronLibrarian.pid)},library:{$ref:this.routeToolService.apiService.getRefEndpoint("libraries",this.appStore.currentLibraryPid())}}}payPatronTransaction(e,i,n){let c=this._buildTransactionEventsSkeleton(e);return c.type=ge.PAYMENT,c.subtype=n,c.amount=i,this._createTransactionEvent(c)}disputePatronTransaction(e,i){let n=this._buildTransactionEventsSkeleton(e);return n.type=ge.DISPUTE,n.note=i,this._createTransactionEvent(n)}cancelPatronTransaction(e,i,n){let c=this._buildTransactionEventsSkeleton(e);return c.type=ge.CANCEL,c.amount=i,c.note=n,this._createTransactionEvent(c)}_createTransactionEvent(e){return this.recordService.create("patron_transaction_events",e).pipe(ue(()=>{let i=this.translateService.instant(e.type);this.messageService.add({severity:"success",summary:this.translateService.instant("Patron"),detail:this.translateService.instant("{{ type }} registered",{type:i}),life:q.MESSAGE_LIFE})}),R(()=>{}),Je(i=>{let n=Object.hasOwn(i,"message")&&Object.hasOwn(i.message(),"message")?i.message.message:"Server error :: "+(i.title||i.toString()),c="["+i.status+" - "+i.statusText+"] "+n,_=this.translateService.instant(e.type);return this.messageService.add({severity:"error",summary:this.translateService.instant("{{ type }} creation failed!",{type:_}),detail:c,sticky:!0,closable:!0}),ye(void 0)}))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Ye({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function mt(t){return t.reduce((s,e)=>e.status===Qe.OPEN?parseFloat((s+e.total_amount).toFixed(2)):s,0)}var cn={feesEngaged:0,fees:0,overdueFees:0,pending:0,pickup:0,loan:0,ill:0},U=Pi(Li({patron:void 0,statistics:Pe({},cn),messages:[],overdueTransactions:[],openTransactions:[],settings:[]}),Fi(t=>({totalFeesEngaged:()=>mt(t.openTransactions()),patronPid:()=>t.patron()?.pid})),wi((t,s=C(xe),e=C(ke),i=C(Ht))=>({addSetting(n){Fe(t,c=>({settings:[...c.settings.filter(_=>_.key!==n.key),n]})),n.key==="endDate"&&n.extra?.remember&&typeof n.value=="string"&&i.set(n.value)},removeSetting(n){let c=t.settings().find(_=>_.key===n);c?.key==="endDate"&&c.extra?.remember&&i.remove(),Fe(t,_=>({settings:_.settings.filter(T=>T.key!==n)}))},loadPatron:xt(ft(X(Boolean),K(n=>s.getPatron(n).pipe(ue(c=>Fe(t,{patron:c??void 0})),Je(()=>Ct))))),loadStats:xt(ft(X(Boolean),K(n=>s.getCirculationInformations(n).pipe(ue(c=>{let _=c.statistics,T={pending:0,pickup:0,loan:0,ill:0};Object.keys(_).forEach(O=>{switch(O){case te[te.PENDING]:case te[te.ITEM_IN_TRANSIT_FOR_PICKUP]:T.pending+=Number(_[O]);break;case te[te.ITEM_AT_DESK]:T.pickup=Number(_[O]);break;case te[te.ITEM_ON_LOAN]:T.loan=Number(_[O]);break;case"ill_requests":T.ill=Number(_[O]);break}});let V=c.messages.map(O=>({severity:Ot(O.type),detail:O.content}));Fe(t,O=>({statistics:Pe(Pe({},O.statistics),T),messages:V}))}),Je(()=>Ct))))),loadFees:xt(ft(X(Boolean),K(n=>Se([s.getOverduePreview(n),e.patronTransactionsByPatron(n,void 0,"open")]).pipe(ue(([c,_])=>{let T=0;c.forEach(O=>{T+=O.fees.total});let V=mt(_);Fe(t,O=>({overdueTransactions:c,openTransactions:_,statistics:_t(Pe({},O.statistics),{overdueFees:T,feesEngaged:V,fees:T+V})}))}),Je(()=>Ct))))),reloadOpenTransactions:xt(ft(X(Boolean),K(n=>e.patronTransactionsByPatron(n,void 0,"open").pipe(ue(c=>{let _=mt(c);Fe(t,T=>({openTransactions:c,statistics:_t(Pe({},T.statistics),{feesEngaged:_,fees:T.statistics.overdueFees+_})}))}),Je(()=>Ct))))),clear(){Fe(t,{patron:void 0,statistics:Pe({},cn),messages:[],overdueTransactions:[],openTransactions:[],settings:[]})},clearMessages(){Fe(t,{messages:[]})}})),Mi(t=>({onInit:()=>{t.loadFees(t.patronPid),t.loadStats(t.patronPid)}})));var jn=t=>({"ui:text-muted-color":t});function Gn(t,s){if(t&1&&(a(0,"span",9),l(1),o()),t&2){let e=d(2);r(),g(", ",e.patron().first_name)}}function Un(t,s){t&1&&(l(0," \xA0 "),v(1,"i",17))}function Kn(t,s){if(t&1&&(l(0),p(1,"dateTranslate"),p(2,"translate"),m(3,Un,2,0)),t&2){let e=d(2);li(" ",S(1,4,e.patron().birth_date,"mediumDate")," (",e.patronAge()," ",h(2,7,"years old"),") "),r(3),u(e.isBirthday()?3:-1)}}function Qn(t,s){t&1&&(a(0,"div",13),l(1),o()),t&2&&(r(),y(s))}function Jn(t,s){if(t&1){let e=k();a(0,"div",15)(1,"p-button",18),x("onClick",function(){I(e);let n=d(2);return D(n.clear())}),o()()}}function Wn(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),y(h(4,4,h(3,2,e.type))),r(3),f("innerHTML",h(6,6,e.content),St)}}function Yn(t,s){if(t&1&&(a(0,"div",16)(1,"p-message",19)(2,"ul",20),w(3,Wn,7,8,"li",21,J),o()()()),t&2){let e=d(2);r(3),L(e.patron().notes)}}function zn(t,s){if(t&1&&(a(0,"p-message",24),l(1),o()),t&2){let e=s.$implicit,i=d(4);f("severity",i.getMessageSeverity(e.type)),r(),g(" ",e.content," ")}}function Xn(t,s){if(t&1&&w(0,zn,2,2,"p-message",24,J),t&2){let e=d(3);L(e.patron().circulation_informations.messages)}}function Zn(t,s){if(t&1&&(a(0,"p-message",24),l(1),o()),t&2){let e=s.$implicit;f("severity",e.severity),r(),g(" ",e.detail," ")}}function eo(t,s){if(t&1&&(m(0,Xn,2,0),w(1,Zn,2,2,"p-message",24,J)),t&2){let e=d(2);u(e.patron().circulation_information?0:-1),r(),L(e.circulationMessages())}}function to(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(),m(12,Gn,2,1,"span",9),o()(),a(13,"div",10)(14,"div",2)(15,"div",11),m(16,Kn,4,9),o(),a(17,"div",12),l(18),o()(),a(19,"div",2),m(20,Qn,2,1,"div",13),p(21,"getRecord"),p(22,"async"),a(23,"div",14),l(24),o()()()()(),m(25,Jn,2,0,"div",15),o(),m(26,Yn,5,0,"div",16),o(),a(27,"div",2),m(28,eo,3,1),o()()()),t&2){let e,i=d();f("ngClass",M(18,jn,!i.clearPatronButton())),r(9),f("routerLink",i.patronLink()),r(2),y(i.patron().last_name),r(),u(i.patron().first_name?12:-1),r(4),u(i.patron().birth_date?16:-1),r(2),y(i.patron().city),r(2),u((e=h(22,16,re(21,11,i.patron().patron.type.pid,"patron_types","string","name")))?20:-1,e),r(4),y(i.barcode()),r(),u(i.clearPatronButton()?25:-1),r(),u(i.patron().notes?26:-1),r(2),u(i.displayCirculationMessages()?28:-1)}}var jt=(()=>{class t{constructor(){this.store=C(U),this.patron=A(),this.barcode=A(),this.displayCirculationMessages=A(!1),this.clearPatronButton=A(!0),this.linkMode=A("detail"),this.clearPatron=_e(),this.patronLink=b(""),this.isBirthday=b(!1),this.patronAge=b(0),this.circulationMessages=this.store.messages,C(ze).onDestroy(()=>this.store.clearMessages()),se(()=>{let e=this.patron();if(e&&(this.patronLink.set(this.linkMode()==="detail"?"/records/patrons/detail/"+e.pid:"/circulation/patron/"+this.barcode()+"/loan"),e.birth_date)){let i=fe.now().toFormat("M-dd"),n=fe.fromISO(e.birth_date).toFormat("M-dd");this.isBirthday.set(i===n),this.patronAge.set(Math.floor(fe.now().diff(fe.fromISO(e.birth_date),"years").years))}})}clear(){this.patron()&&this.clearPatron.emit(this.patron()),this.store.clearMessages()}getMessageSeverity(e){return Ot(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-patron-detailed"]],inputs:{patron:[1,"patron"],barcode:[1,"barcode"],displayCirculationMessages:[1,"displayCirculationMessages"],clearPatronButton:[1,"clearPatronButton"],linkMode:[1,"linkMode"]},outputs:{clearPatron:"clearPatron"},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"],["showTransitionOptions","0ms",1,"ui:w-full",3,"severity"]],template:function(i,n){if(i&1&&m(0,to,29,20,"div",0),i&2){let c;u((c=n.patron())!=null&&c.patron?0:-1)}},dependencies:[ce,ne,z,Ai,Ri,de,Y,me,Lt,$i,F],encapsulation:2,changeDetection:0})}}return t})();var dn=(()=>{class t{constructor(){this.loanService=C(on)}transform(e){return this.loanService.getCirculationPolicy(e.pid)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ri({name:"getLoanCipo",type:t,pure:!0})}}return t})();var io=(t,s)=>({"callout callout-warning":t," ui:text-muted-color":s}),no=t=>["/records","items","detail",t],oo=t=>["/records","documents","detail",t],pn=t=>["/circulation","patron",t,"loan"],ao=()=>({prefix:"item",suffix:"renew-button"}),Wt=()=>({height:"500px"}),ro=t=>["/records","circ_policies","detail",t],so=(t,s)=>s.pid;function lo(t,s){if(t&1){let e=k();a(0,"shared-open-close-button",21),x("status",function(n){I(e);let c=d(2);return D(c.isCollapsed.set(n))}),o()}if(t&2){let e=d(2);f("collapsed",e.isCollapsed())}}function co(t,s){t&1&&(v(0,"i",7),p(1,"translate")),t&2&&f("title",h(1,1,"Note"))}function po(t,s){if(t&1&&v(0,"shared-inherited-call-number",8),t&2){let e=d(2);f("item",e.item())}}function mo(t,s){t&1&&v(0,"i",22)}function uo(t,s){if(t&1&&m(0,mo,1,0,"i",22),t&2){let e=d(2);u(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 _o(t,s){t&1&&v(0,"i",22)}function fo(t,s){if(t&1&&m(0,_o,1,0,"i",22),t&2){let e=d(2);u(e.item().actions?-1:0)}}function Co(t,s){if(t&1&&(l(0),p(1,"mainTitle"),p(2,"truncateText"),p(3,"mainTitle")),t&2){let e=d(2);g(" ",e.isCollapsed()?S(2,3,h(1,1,e.item().document.title),12):h(3,6,e.item().document.title)," ")}}function ho(t,s){if(t&1&&l(0),t&2){let e=d(3);g(" ",e.document().title[0]._text," ")}}function vo(t,s){if(t&1&&m(0,ho,1,1),t&2){let e=d(2);u(e.document()?0:-1)}}function go(t,s){if(t&1&&v(0,"p-tag",10),t&2){let e=d(2);f("value",e.item().enumerationAndChronology)}}function xo(t,s){if(t&1&&v(0,"shared-contribution",11),t&2){let e,i=d(2);f("contributions",(e=i.document())==null?null:e.contribution)}}function yo(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=d(3);r(),g(" ",h(2,4,e.item().status)," "),r(3),si("text-warning",e.loan()&&e.loan().expired),r(),g(" ",S(6,6,e.item().loan.dueDate,"shortDate")," ")}}function So(t,s){if(t&1&&l(0),t&2){let e=d();g(" ",e.metadata.pickup_name," ")}}function To(t,s){if(t&1&&(l(0),p(1,"getRecord"),p(2,"async")),t&2){let e=d();g(" ",h(2,6,re(1,1,e.metadata.library.pid,"libraries","field","name"))," ")}}function bo(t,s){if(t&1&&(l(0),p(1,"translate"),m(2,So,1,1)(3,To,3,8),l(4,") ")),t&2){let e=d(4);g(" (",h(1,2,"to")," "),r(2),u(e.item().loan&&e.item().loan.state==="ITEM_IN_TRANSIT_FOR_PICKUP"?2:3)}}function Eo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),m(3,bo,5,4),p(4,"getRecord"),p(5,"async"),o()),t&2){let e,i=d(3);r(),g(" ",h(2,2,i.item().status)," "),r(2),u((e=h(5,7,S(4,4,i.getTransitLocationPid(),"locations")))?3:-1,e)}}function Io(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),o()),t&2){let e=d(3);r(),y(h(2,1,e.item().status))}}function Do(t,s){if(t&1&&l(0),t&2){let e=d(4);g(" (",e.item().loan.pickup_location.pickup_name,") ")}}function ko(t,s){if(t&1&&l(0),t&2){let e=d(4);g(" (",e.item().pending_loans[0].pickup_location.pickup_name,") ")}}function Po(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),m(3,Do,1,1),m(4,ko,1,1),o()),t&2){let e=d(3);r(),g(" ",h(2,3,e.item().status)," "),r(2),u(e.item().loan&&e.item().loan.pickup_location?3:-1),r(),u(!e.item().loan&&e.item().pending_loans&&e.item().pending_loans.length>0&&e.item().pending_loans[0].pickup_location?4:-1)}}function Fo(t,s){if(t&1&&(a(0,"li"),l(1),p(2,"translate"),o()),t&2){let e=d(3);r(),y(h(2,1,e.item().status))}}function Mo(t,s){if(t&1&&(a(0,"p-tag",24),p(1,"translate"),l(2),v(3,"i",27),o()),t&2){let e=d(3);f("title",h(1,2,"Renewals")),r(2),g(" ",e.item().loan.extension_count," ")}}function wo(t,s){if(t&1&&(a(0,"p-tag",25),p(1,"translate"),l(2),p(3,"currency"),o()),t&2){let e=d(3);f("title",h(1,2,"Fees")),r(2),g(" ",S(3,4,e.totalAmountOfFee(),e.organisation.default_currency)," ")}}function Lo(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=d(3);f("title",h(1,4,"Requests")),r(5),f("title",e.item().pending_loans[0].patron.name)("routerLink",M(6,pn,e.item().pending_loans[0].patron.barcode)),r(),g(" ",e.item().pending_loans[0].patron.name," ")}}function Ro(t,s){if(t&1&&(a(0,"ul",13),m(1,yo,7,9,"li")(2,Eo,6,9,"li")(3,Io,3,3,"li")(4,Po,5,5,"li")(5,Fo,3,3,"li"),a(6,"li",23),m(7,Mo,4,4,"p-tag",24),m(8,wo,4,7,"p-tag",25),m(9,Lo,7,8,"p-tag",24),o()()),t&2){let e,i=d(2);r(),u((e=i.item().status)==="on_loan"?1:e==="in_transit"?2:e==="on_shelf"?3:e==="at_desk"?4:5),r(6),u(i.isCollapsed()&&i.item().loan&&i.item().loan.extension_count&&(!i.item().actionDone||i.item().actionDone!==i.itemAction.checkin)?7:-1),r(),u(i.isCollapsed()&&i.totalAmountOfFee()>0?8:-1),r(),u(i.isCollapsed()&&i.item().pending_loans&&i.item().pending_loans.length?9:-1)}}function Ao(t,s){if(t&1&&(l(0),p(1,"translate")),t&2){let e=d(2);g(" ",h(1,1,e.item().status)," ")}}function Bo(t,s){t&1&&(v(0,"i",31),a(1,"span",32),l(2,"checked in"),o())}function No(t,s){t&1&&(v(0,"i",33),a(1,"span",32),l(2,"checked out"),o())}function Oo(t,s){t&1&&(v(0,"i",34),a(1,"span",32),l(2,"renewed"),o())}function qo(t,s){if(t&1&&(a(0,"span"),l(1),p(2,"translate"),o()),t&2){let e=d(3);r(),y(h(2,1,e.item().actionDone))}}function Vo(t,s){if(t&1&&(a(0,"div",16),m(1,Bo,3,0)(2,No,3,0)(3,Oo,3,0)(4,qo,3,3,"span"),o()),t&2){let e,i=d(2);r(),u((e=i.item().actionDone)===i.itemAction.checkin?1:e===i.itemAction.checkout?2:e===i.itemAction.extend_loan?3:4)}}function $o(t,s){if(t&1){let e=k();a(0,"p-button",35),p(1,"translate"),p(2,"idAttribute"),x("onClick",function(n){I(e);let c=d(2);return D(c.extendLoanClick(n))}),o()}if(t&2){let e=d(2);f("label",h(1,4,"Renew"))("outlined",!0)("disabled",!e.item().actions.includes(e.itemAction.extend_loan))("id",S(2,6,e.item().barcode,Ce(9,ao)))}}function Ho(t,s){if(t&1&&(a(0,"dt",32),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),t&2){let e=d(3);r(3),g(" ",e.item().enumerationAndChronology," ")}}function jo(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),le(" ",h(5,7,re(4,2,e.metadata.library.pid,"libraries","field","name")),": ",e.metadata.name," ")}}function Go(t,s){if(t&1&&(a(0,"dt",32),l(1,"Temporary location"),o(),a(2,"dd"),l(3),o()),t&2){let e=d(3);r(3),g(" ",e.item().temporary_location.name," ")}}function Uo(t,s){if(t&1&&(a(0,"dt",32),l(1,"Exhibition/course"),o(),a(2,"dd"),l(3),o()),t&2){let e=d(3);r(3),g(" ",e.item().collections.join(", ")," ")}}function Ko(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=d(3);r(4),g(" ",e.item().loan.extension_count," ")}}function Qo(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=d(3);r(3),g(" ",S(4,1,e.item().loan.last_end_date,"shortDate")," ")}}function Jo(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=d(3);r(4),g(" ",S(5,1,e.totalAmountOfFee(),e.organisation.default_currency)," ")}}function Wo(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),g(" ",e.metadata.process_date?S(3,2,e.metadata.process_date,"short"):S(4,5,e.metadata.creation_date,"shortDate")+"\xA0("+h(5,8,"Not yet sent")+")"," "),r(4),g(" \u2014 ",h(7,10,e.metadata.notification_type)," ")}}function Yo(t,s){if(t&1&&(a(0,"dt",32),l(1,"Notifications"),o(),a(2,"dd")(3,"ul",13),w(4,Wo,8,12,"li",null,J),o()()),t&2){let e=d();r(4),L(e)}}function zo(t,s){t&1&&m(0,Yo,6,0),t&2&&u(s.length>0?0:-1)}function Xo(t,s){if(t&1&&(a(0,"p-tag",38),l(1),o(),v(2,"i",41)),t&2){let e=d(4);r(),g(" ",e.item().pending_loans.length," ")}}function Zo(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),f("title",e.patron.name)("routerLink",M(3,pn,e.patron.barcode)),r(),y(e.patron.name)}}function ea(t,s){if(t&1&&(a(0,"dt",32),l(1,"Requests"),o(),a(2,"dd"),m(3,Xo,3,1),w(4,Zo,5,5,"p-tag",38,so),o()),t&2){let e=d(3);r(3),u(e.item().pending_loans.length>1?3:-1),r(),L(e.item().pending_loans)}}function ta(t,s){if(t&1&&(l(0),p(1,"translate")),t&2){let e=d().$implicit;g(" ",h(1,1,e.type)," ")}}function ia(t,s){t&1&&(l(0),p(1,"translate")),t&2&&g(" ",h(1,1,"Note")," ")}function na(t,s){if(t&1&&(a(0,"dt"),v(1,"i",44),m(2,ta,2,3)(3,ia,2,3),o(),a(4,"dd"),l(5),o()),t&2){let e=s.$implicit,i=d(3);r(2),u(e.type!==i.NOTEAPI?2:3),r(3),y(e.content)}}function oa(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(),m(6,Ho,4,1),m(7,jo,6,9),p(8,"getRecord"),p(9,"async"),m(10,Go,4,1),m(11,Uo,4,1),m(12,Ko,6,1),m(13,Qo,5,4),m(14,Jo,6,4),m(15,zo,1,1),m(16,ea,6,1),w(17,na,6,2,null,null,J),o()()),t&2){let e,i,n,c=d(2);r(5),f("item",c.item()),r(),u(c.item().enumerationAndChronology?6:-1),r(),u((e=h(9,13,S(8,10,c.item().location.pid,"locations")))?7:-1,e),r(3),u(c.item().temporary_location?10:-1),r(),u(c.item().collections&&c.item().collections.length>0?11:-1),r(),u(c.item().loan&&c.item().loan.extension_count?12:-1),r(),u(c.item().loan&&c.item().actionDone==="checkin"&&(!((i=c.item())==null||i.loan==null)&&i.loan.last_end_date)?13:-1),r(),u(c.item().loan&&c.totalAmountOfFee()>0?14:-1),r(),u((n=c.notifications())?15:-1,n),r(),u(c.item().pending_loans?16:-1),r(),L(c.getCirculationNoteForAction())}}function aa(t,s){if(t&1){let e=k();a(0,"div",19)(1,"p-button",45),x("onClick",function(){I(e);let n=d(2);return D(n.debugMode.set(!n.debugMode()))}),v(2,"i",46),o()()}if(t&2){let e=d(2);r(),f("icon",e.debugMode()?"fa fa-toggle-on":"fa fa-toggle-off")("outlined",!0)}}function ra(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),g(" ",h(3,5,"Circulation policy"),"\xA0 "),r(2),f("routerLink",M(9,ro,e.pid)),r(2),Tt(Ce(11,Wt)),r(2),y(h(9,7,e))}}function sa(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),m(9,ra,10,12,"div",50),p(10,"getLoanCipo"),p(11,"async"),o()),t&2){let e,i=d(3);r(4),Tt(Ce(10,Wt)),r(2),y(h(7,4,i.loan())),r(3),u((e=h(11,8,h(10,6,i.loan())))?9:-1,e)}}function la(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=d(3);r(4),Tt(Ce(5,Wt)),r(2),y(h(7,3,e.item()))}}function ca(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),m(6,sa,12,11)(7,la,8,6,"div",20),o()()),t&2){let e=d(2);r(3),g("\xA0",h(4,2,"Debug")),r(3),u(e.loan()?6:7)}}function da(t,s){if(t&1&&(a(0,"div",0)(1,"div",1),m(2,lo,1,1,"shared-open-close-button",2),a(3,"div",3)(4,"div",4)(5,"div",5)(6,"a",6),l(7),o()(),m(8,co,2,3,"i",7),o(),m(9,po,1,1,"shared-inherited-call-number",8),o(),m(10,uo,1,1)(11,fo,1,1),o(),a(12,"div",9)(13,"a",6),m(14,Co,4,8)(15,vo,1,1),o(),m(16,go,1,1,"p-tag",10),m(17,xo,1,1,"shared-contribution",11),o(),a(18,"div",12),m(19,Ro,10,4,"ul",13)(20,Ao,2,3),o(),a(21,"div",14)(22,"div",15),m(23,Vo,5,1,"div",16),m(24,$o,3,10,"p-button",17),o()(),m(25,oa,19,15,"div",18),m(26,aa,3,2,"div",19),m(27,ca,8,4,"div",20),o()),t&2){let e,i=d();f("ngClass",Be(17,io,i.needCallout(i.item(),"warning")||i.item().actionDone===i.itemAction.checkin&&i.totalAmountOfFee()>0||!i.item().loan,i.item().status!==i.ItemStatus.ON_LOAN)),r(2),u(!i.item().actions||i.item().loan||i.totalAmountOfFee()||i.item().pending_loans||i.notifications()?2:-1),r(4),f("routerLink",M(20,no,i.item().pid)),r(),y(i.item().barcode),r(),u(i.getCirculationNoteForAction().length>0?8:-1),r(),u(i.isCollapsed()?9:-1),r(),u(i.item().actionDone?10:11),r(3),f("routerLink",M(22,oo,i.item().document.pid)),r(),u((e=i.item().document)!=null&&e.title?14:15),r(2),u(i.item().enumerationAndChronology&&i.isCollapsed()?16:-1),r(),u(i.document()?17:-1),r(2),u(i.item().loan?19:20),r(4),u(i.item().actionDone?23:-1),r(),u(i.patron()&&!i.item().actionDone?24:-1),r(),u(i.isCollapsed()?-1:25),r(),u(i.canUseDebugMode&&!i.isCollapsed()?26:-1),r(),u(i.debugMode()&&!i.isCollapsed()?27:-1)}}var mn=(()=>{class t{get organisation(){return this.appStore.organisation()}get canUseDebugMode(){return this.appStore.canAccessDebugMode()}constructor(){this.recordService=C(Q),this.patronTransactionService=C(ke),this.itemService=C(Ge),this.appStore=C(j),this.store=C(U),this.NOTEAPI=Z.API,this.item=A(),this.patron=A(),this.isCollapsed=Ze(!0),this.hasFeesEmitter=_e(),this.extendLoanClicked=_e(),this.loan=b(null),this.totalAmountOfFee=b(0),this.notifications=b(null),this.itemAction=G,this.document=b(void 0),this.ItemStatus=Me,this.debugMode=b(!1),se(()=>{let e=this.item();if(e){if(this.loan.set(e.loan?new Bt(e.loan):null),this.notifications.set(null),this.loan()){let i=e.loan.pid;this.patronTransactionService.patronTransactionsByLoan(i,"overdue","open").subscribe(n=>{let c=mt(n);this.totalAmountOfFee.set(c),c>0&&(this.hasFeesEmitter.emit(!0),this.patron().pid&&this.store.loadFees(this.patron().pid))}),this.recordService.getRecords("notifications",{query:`context.loan.pid:${i}`,page:1,itemsPerPage:Q.MAX_REST_RESULTS_SIZE,sort:"mostrecent"}).pipe(R(n=>n.hits.hits)).subscribe(n=>this.notifications.set(n))}e?.document?.pid&&this.recordService.getRecord("documents",e.document.pid,{resolve:1,headers:{Accept:"application/rero+json, application/json"}}).subscribe(i=>this.document.set(i.metadata))}})}getTransitLocationPid(){if(this.patron()||this.item().action_applied===void 0){if(this.item().loan&&this.item().loan.state===te.ITEM_IN_TRANSIT_FOR_PICKUP)return this.item().loan.pickup_location_pid;if(this.item().loan&&this.item().loan.state===te.ITEM_IN_TRANSIT_TO_HOUSE)return this.item().location.pid}else{let e=new Bt(this.item().action_applied[G.validate]),i=new Bt(this.item().action_applied[G.checkin]);if(e&&e.state===te.ITEM_IN_TRANSIT_FOR_PICKUP)return e.pickup_location_pid;if(i&&i.state===te.ITEM_IN_TRANSIT_TO_HOUSE)return this.item().location.pid}return null}getCirculationNoteForAction(){if(this.item().actionDone){let e=[],i=this.item().getNote(Z.CHECKIN);i&&(this.item().actionDone===this.itemAction.checkin||this.item().actionDone===this.itemAction.receive&&this.item().library.pid===this.appStore.currentLibraryPid())&&e.push(i);let n=this.item().getNote(Z.CHECKOUT);n&&this.item().actionDone===this.itemAction.checkout&&e.push(n);let c=this.item()?.notes?.filter(_=>_.type===Z.API)||[];return e.push(...c),e}else if(this.item().notes)return this.item()?.notes.filter(e=>[Z.CHECKIN,Z.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:[1,"item"],patron:[1,"patron"],isCollapsed:[1,"isCollapsed"]},outputs:{isCollapsed:"isCollapsedChange",hasFeesEmitter:"hasFeesEmitter",extendLoanClicked:"extendLoanClicked"},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",1,"ui:mr-1",3,"title"],["severity","warn",1,"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",1,"ui:mr-1"],["severity","warn",1,"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"],[1,"ui:w-full"],[1,"ui:text-sm"],["target","_circulation",3,"routerLink"],[1,"fa","fa-external-link"]],template:function(i,n){i&1&&m(0,da,28,24,"div",0),i&2&&u(n.item()&&!n.item().loading?0:-1)},dependencies:[ce,ae,ne,dt,ve,lt,xi,P,z,qt,de,Ci,ie,Y,me,ct,je,He,F,dn],encapsulation:2,changeDetection:0})}}return t})();var _n=()=>({prefix:"item"}),un=(t,s)=>s.pid;function pa(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=k();a(0,"p-button",11),p(1,"translate"),x("onClick",function(){I(e);let n=d(3);return D(n.extendAllLoansClick())}),o()}if(t&2){let e=d(3);f("label",h(1,2,"Renew all"))("disabled",e.loansToExtend.length<1)}}function ua(t,s){if(t&1){let e=k();a(0,"div",4)(1,"div",5)(2,"div")(3,"shared-open-close-button",6),x("status",function(n){I(e);let c=d(2);return D(c.allCollapsed.set(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),m(11,ma,2,4,"p-button",10),o()()}if(t&2){let e=d(2);r(11),u(e.patron()?11:-1)}}function _a(t,s){if(t&1){let e=k();a(0,"div",3)(1,"admin-item",12),p(2,"idAttribute"),x("extendLoanClicked",function(n){let c=I(e).$implicit,_=d(2);return D(_.extendLoanClick(n,c))}),o()()}if(t&2){let e=s.$implicit,i=d(2);r(),f("patron",i.patron())("item",e)("isCollapsed",i.allCollapsed()),Kt("id",S(2,4,e.barcode,Ce(7,_n)))}}function fa(t,s){if(t&1){let e=k();a(0,"div",3)(1,"admin-item",13),p(2,"idAttribute"),x("hasFeesEmitter",function(n){I(e);let c=d(2);return D(c.hasFees(n))}),o()()}if(t&2){let e=s.$implicit,i=d(2);r(),f("patron",i.patron())("item",e)("isCollapsed",i.allCollapsed()),Kt("id",S(2,4,e.barcode,Ce(7,_n)))}}function Ca(t,s){if(t&1&&(a(0,"p-card"),$(1,ua,12,1,"ng-template",null,0,N),a(3,"div"),w(4,_a,3,8,"div",3,un),w(6,fa,3,8,"div",3,un),o()()),t&2){let e=d();r(4),L(e.checkedOutItems()),r(2),L(e.checkedInItems())}}var Gt=(()=>{class t{constructor(){this.checkedOutItems=A(),this.checkedInItems=A(),this.patron=A(),this.extendAllLoansClicked=_e(),this.extendLoanClicked=_e(),this.hasFeesEmitter=_e(),this.allCollapsed=b(!0)}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:[1,"checkedOutItems"],checkedInItems:[1,"checkedInItems"],patron:[1,"patron"]},outputs:{extendAllLoansClicked:"extendAllLoansClicked",extendLoanClicked:"extendLoanClicked",hasFeesEmitter:"hasFeesEmitter"},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&&(m(0,pa,3,0,"div",1),m(1,Ca,8,0,"p-card")),i&2&&(u(n.checkedOutItems()&&n.checkedOutItems().length===0&&n.patron()?0:-1),r(),u(n.checkedOutItems()&&n.checkedOutItems().length>0||n.checkedInItems()&&n.checkedInItems().length>0?1:-1))},dependencies:[P,ae,z,mn,Ke,Ue,ct,F],encapsulation:2,changeDetection:0})}}return t})();function va(t,s){if(t&1&&v(0,"admin-circulation-patron-detailed",3),t&2){let e=d();f("patron",e.patronInfo())("barcode",e.barcode())("linkMode","circulation")("clearPatronButton",!1)}}var fn=(()=>{class t{constructor(){this.messageService=C(he),this.dialogService=C(be),this.appStore=C(j),this.recordService=C(Q),this.itemsService=C(Ge),this.router=C(it),this.translate=C(H),this.patronService=C(xe),this.placeholder="Please enter a patron card number or an item barcode.",this.searchText=b(""),this.patronInfo=b(void 0),this.barcode=b(null),this.items=b([]),this.searchInputFocus=b(!0),this.searchInputDisabled=b(!1),C(ze).onDestroy(()=>this.patronInfo.set(void 0))}searchValueUpdated(e){if(!e)return null;this.searchText.set(e),this.getPatronOrItem(this.searchText())}checkin(e){this.searchInputFocus.set(!1),this.searchInputDisabled.set(!0),this.itemsService.checkin(e,this.appStore.currentLibraryPid()).subscribe({next:i=>{if(i===null||i.location.organisation.pid!==this.appStore.currentOrganisationPid()){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.removed_temporary_item_type&&(i.notes||(i.notes=[]),i.notes.push({content:this.translate.instant("Temporary item type removed: {{ name }}",{name:i.removed_temporary_item_type.name}),type:Z.API})),i.hasRequests&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item contains requests"),life:q.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:q.MESSAGE_LIFE});break;case G.checkin:if(this.displayCirculationInformation(i,Z.CHECKIN),i.action_applied&&i.action_applied.checkin&&this.getPatronInfo(i.action_applied.checkin.patron.barcode),i.status===Me.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:q.MESSAGE_LIFE})}break;case G.validate:this.displayCirculationInformation(i,Z.CHECKIN),i.action_applied&&i.action_applied.validate&&this.getPatronInfo(i.action_applied.validate.patron.barcode);break;case G.receive:i.library.pid===this.appStore.currentLibraryPid()&&this.displayCirculationInformation(i,Z.CHECKIN);break}this.items.update(n=>[i,...n]),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:i.error.message,type:Z.API}),i.error?.removed_temporary_item_type&&n.notes.push({content:this.translate.instant("Temporary item type removed: {{ name }}",{name:i.error.removed_temporary_item_type.name}),type:Z.API}),this.items.update(c=>[n,...c]),this._checkinErrorManagement(i,n)}):i.error&&(this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:i.error.message,life:q.MESSAGE_LIFE}),this._resetSearchInput())}})}getPatronInfo(e){e?(this.barcode.set(e),this.patronService.getPatron(e).subscribe({next:i=>this.patronInfo.set(i),error:i=>this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:i.message,sticky:!0,closable:!0})})):(this.patronInfo.set(void 0),this.barcode.set(null))}getPatronOrItem(e){this.item=void 0;let i=`patron.barcode:${e} AND organisation.pid:${this.appStore.currentOrganisationPid()}`,n=this.recordService.getRecords("patrons",{query:i,page:1,itemsPerPage:1}).pipe(R(_=>_.hits)),c=this.recordService.getRecords("items",{query:`barcode:${e}`,page:1,itemsPerPage:1}).pipe(R(_=>_.hits));Se([n,c]).subscribe({next:([_,T])=>{_.total.value===0&&T.total.value===0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Patron not found!"),life:q.MESSAGE_LIFE}),_.total.value>1&&T.total.value===0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("Found more than one patron."),life:q.MESSAGE_LIFE}),_.total.value===1&&T.total.value===1?this.dialogService.open(ln,{header:this.translate.instant("Circulation action"),modal:!0,focusOnShow:!1,closable:!0,width:"25vw"}).onClose.subscribe(O=>{if(O)switch(O){case"patron":this.router.navigate(["/circulation","patron",e,"loan"]);break;case"item":this.checkin(e);break;default:this._resetSearchInput();break}}):T.total.value===1?(this.item=T.hits[0].metadata,this.items().find(V=>V.barcode===e)?(this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item is already in the list."),life:q.MESSAGE_LIFE}),this._resetSearchInput()):this.checkin(e)):_.total.value===1&&this.router.navigate(["/circulation","patron",e,"loan"])},error:_=>this.messageService.add({severity:"error",summary:this.translate.instant("Checkin"),detail:_.message,sticky:!0,closable:!0})})}displayCirculationInformation(e,i){let n=[],c=e.getNote(i);if(c!=null&&n.push(c.content),e.removed_temporary_item_type&&(n.length>0&&n.push("<br/>"),n.push(this.translate.instant("Temporary item type removed: {{ name }}",{name:e.removed_temporary_item_type.name}))),e.library.pid===this.appStore.currentLibraryPid()){let _=this.displayCollectionsAndTemporaryLocation(e);_.length>0&&(n.length>0&&n.push("<br/>"),n.push(_))}n.length>0&&this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:n.join(""),life:q.MESSAGE_LIFE})}_checkinErrorManagement(e,i){let n=Object.hasOwn(e,"error")&&Object.hasOwn(e.error,"message")?e.error.message:e.message;if(n=this.translate.instant(n),n+=`<br/>${this.translate.instant("Status")}: ${this.translate.instant(i.status.toString())}`,i.status===Me.IN_TRANSIT&&i.loan&&i.loan.item_destination){let{library_name:_}=i.loan.item_destination;n+=` (${this.translate.instant("to")} ${_})`}let c=i.getNote(Z.CHECKIN);if(c&&(n+=`<br/>${this.translate.instant("Note")}: ${c.content}`),e.error?.removed_temporary_item_type&&(n+=`<br/>${this.translate.instant("Temporary item type removed: {{ name }}",{name:e.error.removed_temporary_item_type.name})}`),i.library.pid===this.appStore.currentLibraryPid()){let _=this.displayCollectionsAndTemporaryLocation(i);_.length>0&&(n+=`<br/>${_}`)}this.messageService.add({severity:"warn",summary:this.translate.instant("Checkin"),detail:n,life:q.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:"warn",summary:this.translate.instant("Checkin"),detail:this.translate.instant("The item has fees"),life:q.MESSAGE_LIFE})}_resetSearchInput(){this.searchInputDisabled.set(!1),this.searchText.set(""),setTimeout(()=>{this.searchInputFocus.set(!0)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-checkout"]],decls:8,vars:8,consts:[["translate",""],[1,"ui:flex","ui:flex-col","ui:gap-4"],[3,"searchQuery","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"),x("searchQuery",function(_){return n.searchValueUpdated(_)}),o(),m(6,va,1,4,"admin-circulation-patron-detailed",3),a(7,"admin-circulation-items-list",4),x("hasFeesEmitter",function(_){return n.hasFees(_)}),o()()()),i&2&&(r(4),f("placeholder",h(5,6,n.placeholder))("searchText",n.searchText())("focus",n.searchInputFocus())("disabled",n.searchInputDisabled()),r(2),u(n.patronInfo()?6:-1),r(),f("checkedInItems",n.items()))},dependencies:[P,rt,jt,Gt,F],encapsulation:2,changeDetection:0})}}return t})();var Cn=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-circulation-main"]],features:[Xe([U])],decls:1,vars:0,template:function(i,n){i&1&&v(0,"router-outlet")},dependencies:[Mt,Ji,Wi],encapsulation:2,changeDetection:0})}}return t})();var hn=(t,s)=>{let e=C(xe),i=C(it),n=s.url.split("/").splice(-2)[0];return e.getPatron(n).pipe(R(c=>(c.keep_history||i.navigate(["/errors/403"],{skipLocationChange:!0}),c.keep_history)))};var ga=t=>["/records","items","detail",t],xa=t=>["/records","documents","detail",t],ya=()=>({prefix:"item",suffix:"validate-button"}),Sa=t=>["/circulation","patron",t];function Ta(t,s){if(t&1&&(a(0,"a",4),l(1),o(),v(2,"br")),t&2){let e=d(2);f("routerLink",M(2,xa,e.document().pid)),r(),g(" ",s," ")}}function ba(t,s){if(t&1){let e=k();a(0,"p-button",12),p(1,"translate"),p(2,"idAttribute"),x("onClick",function(){I(e);let n=d(2);return D(n.validateRequest())}),o()}if(t&2){let e=d(2);f("label",h(1,2,"Validate"))("id",S(2,4,e.item().barcode,Ce(7,ya)))}}function Ea(t,s){if(t&1&&(a(0,"dt",14),l(1,"Unit"),o(),a(2,"dd"),l(3),o()),t&2){let e=d(3);r(3),y(e.item().enumerationAndChronology)}}function Ia(t,s){if(t&1&&l(0),t&2){let e=d(3);g(" ",e.item().temporary_location.name," ")}}function Da(t,s){if(t&1&&l(0),t&2){let e=d(3);g(" ",e.item().location.name," ")}}function ka(t,s){if(t&1&&l(0),t&2){let e=d(3);g(" ",e.item().loan.pickup_location.pickup_name," ")}}function Pa(t,s){if(t&1&&l(0),t&2){let e=d(3);le(" ",e.item().loan.pickup_location.library_name,": ",e.item().loan.pickup_location.name," ")}}function Fa(t,s){if(t&1&&(a(0,"div",11)(1,"dl",13),m(2,Ea,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),m(12,Ia,1,1)(13,Da,1,1),o(),a(14,"dt",14),l(15,"Pick-up location"),o(),a(16,"dd",16),v(17,"i",17)(18,"i",18),m(19,ka,1,1)(20,Pa,1,2),o()()()),t&2){let e,i=d(2);r(2),u(i.item().enumerationAndChronology?2:-1),r(4),f("routerLink",M(6,Sa,i.item().loan.patron.barcode)),r(),g(" ",i.item().loan.patron.name," "),r(4),g(" ",i.item().library.name," - "),r(),u((e=i.item().temporary_location)!=null&&e.name?12:13),r(7),u(i.item().loan.pickup_location.pickup_name?19:20)}}function Ma(t,s){if(t&1){let e=k();a(0,"div",0)(1,"div",1)(2,"div",2)(3,"shared-open-close-button",3),x("status",function(n){I(e);let c=d();return D(c.isCollapsed.set(n))}),o(),a(4,"a",4),l(5),o()()(),a(6,"div",5),m(7,Ta,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),m(16,ba,3,8,"p-button",10),o(),m(17,Fa,21,8,"div",11),o()}if(t&2){let e,i,n=d();f("id",It("request-",n.item().barcode))("ngClass",n.getCallout()),r(3),f("collapsed",n.isCollapsed()),r(),f("routerLink",M(17,ga,n.item().pid)),r(),y(n.item().barcode),r(2),u((e=h(8,12,n.document().title))?7:-1,e),r(2),f("contributions",(i=n.document())==null?null:i.contribution),r(2),f("item",n.item()),r(2),y(S(14,14,n.item().loan.creation_date,"medium")),r(3),u(n.item().loan.state===n.LoanState.PENDING?16:-1),r(),u(n.isCollapsed()?-1:17)}}var vn=(()=>{class t{constructor(){this.recordService=C(Q),this.item=A(),this.isCollapsed=Ze(),this.callout=A(void 0),this.requestValidated=_e(),this.LoanState=te,this.document=oe(W(this.item).pipe(K(e=>e?.loan?.document_pid?this.recordService.getRecord("documents",e.loan.document_pid,{resolve:1,headers:{Accept:"application/rero+json, application/json"}}):ye(null)),R(e=>e?.metadata??null)),{initialValue:null})}validateRequest(){this.requestValidated.emit(this.item().barcode)}getCallout(){return this.callout()!==void 0?`callout ${this.callout()}`:void 0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=E({type:t,selectors:[["admin-requested-item"]],inputs:{item:[1,"item"],isCollapsed:[1,"isCollapsed"],callout:[1,"callout"]},outputs:{isCollapsed:"isCollapsedChange",requestValidated:"requestValidated"},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&&m(0,Ma,18,19,"div",0),i&2&&u(n.document()?0:-1)},dependencies:[ce,ae,ne,lt,dt,z,P,Y,ct,je,F],encapsulation:2,changeDetection:0})}}return t})();var wa=(t,s)=>s.pid;function La(t,s){if(t&1){let e=k();a(0,"div",3)(1,"div",4)(2,"div",5)(3,"shared-open-close-button",6),x("status",function(n){I(e);let c=d(2);return D(c.isCollapsed=n)}),o(),a(4,"span",7),l(5,"Item"),o()()(),a(6,"div",8),l(7,"Document"),o(),a(8,"div",9),l(9,"Call number"),o(),a(10,"div",9),l(11,"Request date"),o()()}if(t&2){let e=d(2);r(3),f("collapsed",e.isCollapsed)}}function Ra(t,s){if(t&1){let e=k();a(0,"div