1import{a as ie}from"./chunk-ZQ7DYZD3.js";import"./chunk-544PK6PO.js";import"./chunk-C4S5OUP4.js";import{a as te}from"./chunk-VDVELCPL.js";import"./chunk-3VWO6GSO.js";import{d as ee}from"./chunk-NM2YCYMW.js";import{B as Q,Qc as Z,Ra as W,b as R,c as v,cc as Y,d as G,e as H,j as P,kb as X,oc as T,q as z,r as J,x as K}from"./chunk-OTSSTHG4.js";import{$ as h,B as F,C as g,Ca as a,E as L,Ea as M,G as b,H as k,N,Qa as $,R as A,W as w,X as d,aa as y,ba as S,ja as _,ka as C,la as O,ma as j,na as U,oa as u,ob as q,pa as n,qa as i,ra as s,sa as x,ta as p,ua as c,yb as V}from"./chunk-LSXE27IB.js";var f=class o{constructor(t){this.http=t}list(t){let e=`/n/data/speaker/${t}/book`;return this.http.get(e)}delete(t,e){let r=`/n/data/speaker/${t}/book/${e}`;return this.http.delete(r)}add(t,e){let r=`/n/data/speaker/${t}/book`;return this.http.post(r,e)}update(t,e,r){let l=`/n/data/speaker/${t}/book/${e}`;return this.http.put(l,r)}notifyImageUploaded(t,e,r){let l=`/t/data/speaker/${t}/book/${e}/image`;return this.http.put(l,r)}static{this.\u0275fac=function(e){return new(e||o)(L(q))}}static{this.\u0275prov=F({token:o,factory:o.\u0275fac})}};var E=class o{constructor(t,e){this.bookService=t;this.updated=new N;this.form=e.group({id:[],title:["",v.required],url:["",v.required],authors:["",v.required],description:["",v.required],publicationDate:["",v.required]})}ngOnChanges(t){if(this.book){let e=X(this.book,["publicationDate"]);this.form.patchValue(e);let r=W(this.book.publicationDate,Y);this.form.patchValue({publicationDate:r})}else this.form.reset();this.book==null&&this.speaker!=null&&this.form.patchValue({authors:this.speaker.name})}ngOnInit(){}save(){let t=this.form.value;t.publicationDate=new Date(t.publicationDate+"T05:00:00");let e;t.id?e=this.bookService.update(this.speaker.id,t.id,t):e=this.bookService.add(this.speaker.id,t),e.subscribe(()=>{this.form.reset(),this.book=null,this.updated.emit("Update complete")})}static{this.\u0275fac=function(e){return new(e||o)(h(f),h(Q))}}static{this.\u0275cmp=y({type:o,selectors:[["app-book-add"]],inputs:{speaker:"speaker",book:"book"},outputs:{updated:"updated"},standalone:!1,features:[A],decls:36,vars:1,consts:[["id","addBook","tabindex","-1","role","dialog","aria-labelledby","addBook","aria-hidden","true",1,"modal","fade"],["role","document",1,"modal-dialog","modal
1-lg"],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal","aria-label","Close",1,"close"],["aria-hidden","true"],[3,"ngSubmit","formGroup"],[1,"modal-body"],[1,"form-group"],["for","title"],["type","text","formControlName","title","id","title","placeholder","Title","required","",1,"form-control"],["for","authors"],["type","text","formControlName","authors","id","authors","placeholder","Authors","required","",1,"form-control"],["for","url"],["type","text","formControlName","url","id","url","placeholder","URL","required","",1,"form-control"],["for","description"],["formControlName","description","id","description","rows","5","required","",1,"form-control"],["for","publicationDate"],["type","date","formControlName","publicationDate","id","publicationDate","required","",1,"form-control"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-secondary"],["type","submit",1,"btn","btn-primary"]],template:function(e,r){e&1&&(n(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"h5",4),a(5,"Add / Update Book"),i(),n(6,"button",5)(7,"span",6),a(8,"\xD7"),i()()(),n(9,"form",7),p("ngSubmit",function(){return r.s
1ave()}),n(10,"div",8)(11,"div",9)(12,"label",10),a(13,"Title"),i(),s(14,"input",11),i(),n(15,"div",9)(16,"label",12),a(17,"Authors"),i(),s(18,"input",13),i(),n(19,"div",9)(20,"label",14),a(21,"URL"),i(),s(22,"input",15),i(),n(23,"div",9)(24,"label",16),a(25,"Description"),i(),s(26,"textarea",17),i(),n(27,"div",9)(28,"label",18),a(29,"Publication Date"),i(),s(30,"input",19),i()(),n(31,"div",20)(32,"button",21),a(33,"Close"),i(),n(34,"button",22),a(35,"Save"),i()()()()()()),e&2&&(d(9),u("formGroup",r.form))},dependencies:[P,R,G,H,K,J,z],encapsulation:2})}};var le=()=>["jpg","png"];function se(o,t){o&1&&s(0,"div",0)}function de(o,t){if(o&1&&s(0,"img",14),o&2){let e=c().$implicit;u("src",e.imageURL,w)("alt",e.title)}}function me(o,t){if(o&1){let e=x();n(0,"tr")(1,"td",12)(2,"a",13),_(3,de,1,2,"img",14),i()(),n(4,"td"),a(5),i(),n(6,"td")(7,"button",6),p("click",function(){let l=b(e).$implicit,m=c(2);return k(m.edit(l))}),s(8,"i",15),i(),n(9,"button",16),p("click",function(){let l=b(e).$implicit,m=c(2);return k(m.edit(l))}),s(10,"i",17),i(),n(11,"button",18),p("click",function(){let l=b(e).$implicit,m=c(2);return k(m.remove(l))}),s(12,"i",19),i()()()}if(o&2){let e=t.$implicit;d(2),u("href",e.url,w),d(),C(e.imageURL!=null?3:-1),d(2),M(" ",e.title," ")}}function pe(o,t){o&1&&(n(0,"tr")(1,"td",20)(2,"em"),a(3,"No records found"),i()()())}function ce(o,t){if(o&1){let e=x();n(0,"div")(1,"div",4)(2,"div",5)(3,"button",6),p("click",function(){b(e);let l=c();return k(l.addClicked())}),s(4,"i",7),i()()(),s(5,"app-info-message",8),n(6,"table",9)(7,"thead")(8,"tr")(9,"th",10),a(10,"Image"),i(),n(11,"th"),a(12,"Title"),i(),s(13,"th"),i()(),n(14,"tbody"),j(15,me,13,3,"tr",null,O),_(17,pe,4,0,"tr"),i()(),n(18,"app-book-add",11),p("updated",function(l){b(e);let m=c();return k(m.handleUpdate(l))}),i()()}if(o&2){let e=c();d(5),u("error",e.error)("message",e.message),d(10),U(e.items),d(2),C(e.items.length==0?17:-1),d(),u("speaker",e.speaker)("book",e.book)}}function ue(o,t){if(o&1){let e=x();n(0,"div",3)(1,"div",21)(2,"h5",22),a(3,"Upload Image"),i(),n(4,"button",23)(5,"span",24),a(6,"\xD7"),i()()(),n(7,"div",25)(8,"app-file-upload",26),p("uploadComplete",function(l){b(e);let m=c();return k(m.handleImageUpload(l))}),i()(),n(9,"div",27)(10,"button",28),a(11,"Close"),i()()()}o&2&&(d(8),u("fileTypes",$(1,le)))}var I=class o{constructor(t,e){this.bookService=t;this.appState=e}ngOnInit(){this.appState.speakerSub.subscribe(t=>{this.speaker=t,this.fetchData(t.id)})}fetchData(t){this.bookService.list(t).subscribe(e=>this.items=e)}addClicked(){this.book=null}handleUpdate(t){this.message=t,this.fetchData(this.speaker.id),T()}edit(t){this.book=t}remove(t){confirm("Are you sure you want to remove this book?")&&this.bookService.delete(this.speaker.id,t.id).subscribe(e=>{this.message="Book deleted",this.fetchData(this.speaker.id)})}handleImageUpload(t){this.bookService.notifyImageUploaded(this.speaker.id,this.book.id,t).subscribe(e=>{this.message="Image uploaded",this.fetchData(this.speaker.id),T()})}static{this.\u0275fac=function(e){return new(e||o)(h(f),h(te))}}static{this.\u0275cmp=y({type:o,selectors:[["app-book-list"]],standalone:!1,decls:7,vars:3,consts:[[1,"spinner"],["id","uploadImage","tabindex","-1","role","dialog","aria-hidden","true",1,"modal","fade"],["role","document",1,"modal-dialog","modal
1-lg"],[1,"modal-content"],[1,"clearfix","mb-3"],[1,"float-right"],["data-toggle","modal","data-target","#addBook",1,"btn","btn-primary",3,"click"],[1,"fas","fa-plus"],[3,"error","message"],[1,"table","table-striped"],[1,"w150"],[3,"updated","speaker","book"],["scope","row"],["target","_blank",3,"href"],[3,"src","alt"],[1,"fas","fa-edit"],["data-toggle","modal","data-target","#uploadImage",1,"btn","btn-secondary",3,"click"],[1,"far","fa-image"],[1,"btn","btn-danger",3,"click"],[1,"fas","fa-trash"],["colspan","3"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal","aria-label","Close",1,"close"],["aria-hidden","true"],[1,"modal-body"],[3,"uploadComplete","fileTypes"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-secondary"]],template:function(e,r){e&1&&(n(0,"h2"),a(1,"Books"),i(),_(2,se,1,0,"div",0),_(3,ce,19,5,"div"),n(4,"div",1)(5,"div",2),_(6,ue,12,2,"div",3),i()()),e&2&&(d(2),C(r.items==null?2:-1),d(),C(r.items?3:-1),d(3),C(r.book?6:-1))},dependencies:[Z,ie,E],encapsulation:2})}};var fe=[{path:"",redirectTo:"list",pathMatch:"full"},{path:"list",component:I}],D=class o{static{this.\u0275fac=function(e){return new(e||o)}}static{this.\u0275mod=S({type:o})}static{this.\u0275inj=g({imports:[V.forChild(fe),V]})}};var ne=class o{static{this.\u0275fac=function(e){return new(e||o)}}static{this.\u0275mod=S({type:o})}static{this.\u0275inj=g({providers:[f],imports:[ee,D]})}};export{ne as BookModule};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.