PageSourceSearch

https://www.lenus.ie/3398.c4bfadcec0252c9c.js

js lenus.ie collected 2026-10-02 04:11:41 UTC 22,928 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdspace_angular=self.webpackChunkdspace_angular||[]).push([[3398],{13398:(Z,P,a)=>{a.r(P),a.d(P,{EditRelationshipListComponent:()=>le});var t=a(98678),B=a(30658),D=a(5453),I=a(35841),b=a(53426),U=a(14111),L=a(27164),G=a(84332),E=(a(13005),a(48358)),M=a(27193),C=a(21160),e=a(77176),$=a(91519),T=a(27303),S=a(69637),A=a(71891),j=a(9302),u=a(45608),_=(a(83297),a(10572)),W=(a(37164),a(30139)),F=a(17568),w=a(91416),z=a(45180),X=a(62745),d=a(69805),g=a(16441),i=a(87899),o=a(44410),m=a(5803),y=a(65706),x=a(35103),N=a(87657),H=a(78530),J=a(41966),Y=a(64743),k=a(68203),q=a(96342);const ee=function(){return{}},te=function(c,v,n){return{"alert-success":c,"alert-warning":v,"alert-danger":n}};function ie(c,v){if(1&c&&t.\u0275\u0275element(0,"ds-edit-relationship",8),2&c){const n=v.$implicit,s=t.\u0275\u0275nextContext(4);t.\u0275\u0275property("fieldUpdate",n||t.\u0275\u0275pureFunction0(4,ee))("url",s.url)("editItem",s.item)("ngClass",t.\u0275\u0275pureFunction3(5,te,1===n.changeType,0===n.changeType,2===n.changeType))}}function ne(c,v){1&c&&(t.\u0275\u0275elementStart(0,"div"),t.\u0275\u0275text(1),t.\u0275\u0275pipe(2,"translate"),t.\u0275\u0275elementEnd()),2&c&&(t.\u0275\u0275advance(1),t.\u0275\u0275textInterpolate(t.\u0275\u0275pipeBind1(2,1,"item.edit.relationships.no-relationships")))}function ae(c,v){if(1&c&&(t.\u0275\u0275elementContainerStart(0),t.\u0275\u0275elementStart(1,"ds-pagination",5),t.\u0275\u0275pipe(2,"async"),t.\u0275\u0275pipe(3,"async"),t.\u0275\u0275pipe(4,"async"),t.\u0275\u0275elementStart(5,"div",6),t.\u0275\u0275template(6,ie,1,9,"ds-edit-relationship",7),t.\u0275\u0275elementEnd()(),t.\u0275\u0275template(7,ne,3,3,"div",4),t.\u0275\u0275elementContainerEnd()),2&c){const n=v.ngVar,s=t.\u0275\u0275nextContext(3);let r,l;t.\u0275\u0275advance(1),t.\u0275\u0275property("paginationOptions",s.paginationConfig)("pageInfoState",null==(r=t.\u0275\u0275pipeBind1(2,8,s.relationshipsRd$))||null==r.payload?null:r.payload.pageInfo)("collectionSize",(null==(l=t.\u0275\u0275pipeBind1(3,10,s.relationshipsRd$))||null==l.payload?null:l.payload.totalElements)+t.\u0275\u0275pipeBind1(4,12,s.nbAddedFields$))("hideGear",!0)("hidePagerWhenSinglePage",!0),t.\u0275\u0275advance(5),t.\u0275\u0275property("ngForOf",n)("ngForTrackBy",s.trackUpdate),t.\u0275\u0275advance(1),t.\u0275\u0275property("ngIf",0===n.length)}}function se(c,v){if(1&c&&(t.\u0275\u0275elementContainerStart(0),t.\u0275\u0275template(1,ae,8,14,"ng-container",3),t.\u0275\u0275pipe(2,"dsObjectValues"),t.\u0275\u0275elementContainerEnd()),2&c){const n=t.\u0275\u0275nextContext().ngVar;t.\u0275\u0275advance(1),t.\u0275\u0275property("ngVar",t.\u0275\u0275pipeBind1(2,1,n))}}function re(c,v){1&c&&t.\u0275\u0275element(0,"ds-themed-loading")}function oe(c,v){if(1&c&&(t.\u0275\u0275elementContainerStart(0),t.\u0275\u0275template(1,se,3,3,"ng-container",4),t.\u0275\u0275pipe(2,"async"),t.\u0275\u0275template(3,re,1,0,"ds-themed-loading",4),t.\u0275\u0275pipe(4,"async"),t.\u0275\u0275elementContainerEnd()),2&c){const n=v.ngVar,s=t.\u0275\u0275nextContext();t.\u0275\u0275advance(1),t.\u0275\u0275property("ngIf",n&&!t.\u0275\u0275pipeBind1(2,2,s.loading$)),t.\u0275\u0275advance(2),t.\u0275\u0275property("ngIf",t.\u0275\u0275pipeBind1(4,4,s.loading$))}}let le=(()=>{class c{constructor(n,s,r,l,p,h,f,O){this.objectUpdatesService=n,this.linkService=s,this.relationshipService=r,this.modalService=l,this.paginationService=p,this.selectableListService=h,this.editItemRelationshipsService=f,this.appConfig=O,this.submitModal=new t.EventEmitter,this.currentItemIsLeftItem$=new I.X(void 0),this.updates$=new I.X(void 0),this.relationshipsRd$=new I.X(void 0),this.isLastPage$=new I.X(!0),this.loading$=new I.X(!0),this.nbAddedFields$=new I.X(0),this.subs=[],this.fetchThumbnail=this.appConfig.browseBy.showThumbnails}getRelationshipMessageKey(){return(0,b.a)([this.currentEntityType$,this.getLabel(),this.relatedEntityType$]).pipe((0,E.U)(([n,s,r])=>`relationships.${n.label}.${s}.${r.label}`))}getLabel(){return this.currentItemIsLeftItem$.pipe((0,E.U)(n=>n?this.relationshipType.leftwardType:this.relationshipType.rightwardType))}trackUpdate(n,s){return s&&s.field?s.field.uuid:void 0}isRepeatable(){if(this.currentItemIsLeftItem$.getValue()){const s=this.relationshipType.leftMaxCardinality;return(0,u.xI)(s)||s>1}{const s=this.relationshipType.rightMaxCardinality;return(0,u.xI)(s)||s>1}}openLookup(){this.modalRef=this.modalService.open(W.i,{size:"lg"});const n=this.modalRef.componentInstance;n.repeatable=!0,n.isEditRelationship=!0,n.listId=this.listId,n.item=this.item,n.relationshipType=this.relationshipType,n.currentItemIsLeftItem$=this.currentItemIsLeftItem$,n.toAdd=[],n.toRemove=[],n.isPending=!1,n.repeatable=this.isRepeatable(),n.hiddenQuery="-search.resourceid:"+this.item.uuid,this.item.owningCollection.pipe((0,_.Gp)()).subscribe(s=>{n.collection=s}),n.select=(...s)=>
1{s.forEach(r=>{const l=r.indexableObject,p=n.toRemove.findIndex(h=>h.indexableObject.uuid===l.uuid);-1!==p?n.toRemove.splice(p,1):this.getRelationFromId(l).subscribe(h=>{if(h){const f=n.toRemove.findIndex(O=>O.indexableObject.uuid===l.uuid);-1!==f&&n.toRemove.splice(f,1)}else n.toAdd.push(r);this.loading$.next((0,u.UE)(n.toAdd)||(0,u.UE)(n.toRemove)),this.relationshipsRd$.next(this.relationshipsRd$.getValue())})})},n.deselect=(...s)=>{s.forEach(r=>{const l=r.indexableObject,p=n.toAdd.findIndex(h=>h.indexableObject.uuid===l.uuid);-1!==p?n.toAdd.splice(p,1):n.toRemove.push(r),this.loading$.next((0,u.UE)(n.toAdd)||(0,u.UE)(n.toRemove))})},n.submitEv=()=>{n.isPending=!0;const s=this.currentItemIsLeftItem$.getValue(),r=n.toAdd.map(p=>({type:"add",searchResult:p})),l=n.toRemove.map(p=>({type:"remove",searchResult:p}));(0,U.D)([...r,...l]).pipe((0,M.b)(({type:p,searchResult:h})=>{const f=h.indexableObject;return"add"===p?this.relationshipService.getNameVariant(this.listId,f.uuid).pipe((0,C.w)(O=>this.objectUpdatesService.saveAddFieldUpdate(this.url,{uuid:`${this.relationshipType.id}-${f.uuid}`,nameVariant:O,type:this.relationshipType,originalIsLeft:s,originalItem:this.item,relatedItem:f})),(0,e.q)(1)):"remove"===p?this.relationshipService.getNameVariant(this.listId,f.uuid).pipe((0,C.w)(O=>this.getRelationFromId(h.indexableObject).pipe((0,E.U)(V=>this.objectUpdatesService.saveRemoveFieldUpdate(this.url,{uuid:V.id,nameVariant:O,type:this.relationshipType,originalIsLeft:s,originalItem:this.item,relatedItem:f,relationship:V})))),(0,e.q)(1)):L.E}),(0,$.q)()).subscribe({complete:()=>{this.editItemRelationshipsService.submit(this.item,this.url),this.submitModal.emit()}})},n.discardEv=()=>{n.toAdd.forEach(s=>{this.selectableListService.deselectSingle(this.listId,s)}),n.toRemove.forEach(s=>{this.selectableListService.selectSingle(this.listId,s)}),n.toAdd=[],n.toRemove=[],this.loading$.next(!1)},n.closeEv=()=>{this.loading$.next(!1)},this.relatedEntityType$.pipe((0,e.q)(1)).subscribe(s=>{n.relationshipOptions=Object.assign(new F.u,{relationshipType:s.label,searchConfiguration:s.label.toLowerCase(),nameVariants:"true"})}),this.selectableListService.deselectAll(this.listId)}getRelationFromId(n){const s=this.currentItemIsLeftItem$.getValue()?this.relationshipType.leftwardType:this.relationshipType.rightwardType;return this.relationshipService.searchByItemsAndType(this.relationshipType.id,this.item.uuid,s,[n.id]).pipe((0,_.xw)(),(0,_.xe)(),(0,E.U)(r=>r.page[0]))}ngOnInit(){this.relationshipLeftAndRightType$=(0,b.a)([this.relationshipType.leftType,this.relationshipType.rightType].map(r=>r.pipe((0,_.xw)(),(0,_.xe)()))),this.relatedEntityType$=this.relationshipLeftAndRightType$.pipe((0,E.U)(([r,l])=>r.uuid!==this.itemType.uuid?r:l),(0,u.tz)()),this.currentEntityType$=this.relationshipLeftAndRightType$.pipe((0,E.U)(([r,l])=>r.uuid===this.itemType.uuid?r:l),(0,u.tz)()),this.relatedEntityType$.pipe((0,e.q)(1)).subscribe(r=>this.listId=`edit-relationship-${this.itemType.id}-${r.id}`),this.relationshipMessageKey$=this.getRelationshipMessageKey(),this.paginationConfig=new z.r,this.paginationConfig.id=`er${this.relationshipType.id}`,this.paginationConfig.pageSize=5,this.paginationConfig.currentPage=1;const n=this.paginationService.getCurrentPagination(this.paginationConfig.id,this.paginationConfig).pipe((0,T.b)(()=>this.loading$.next(!0)));let s=(0,i.IX)(this.fetchThumbnail,this.appConfig.item.showAccessStatuses);this.subs.push((0,b.a)([n,this.currentItemIsLeftItem$,this.relatedEntityType$]).pipe((0,C.w)(([r,l,p])=>this.relationshipService.getItemRelationshipsByLabel(this.item,l?this.relationshipType.leftwardType:this.relationshipType.rightwardType,{elementsPerPage:r.pageSize,currentPage:r.currentPage,searchParams:[new m.g("relatedEntityType",p.label)]},!0,!0,...s)),(0,T.b)(r=>{this.relationshipsRd$.next(r)}),(0,_.g1)(),(0,_.xe)()).subscribe(r=>{this.objectUpdatesService.initialize(this.url,r.page,new Date)})),this.subs.push(this.relationshipsRd$.pipe((0,u.tz)(),(0,_.g1)()).subscribe(r=>{this.isLastPage$.next((0,u.xI)(r.payload._links.next))})),this.subs.push(this.relationshipsRd$.pipe((0,u.tz)(),(0,_.g1)(),(0,C.w)(r=>(0,U.D)(r.payload.page).pipe((0,S.z)(l=>this.relationshipService.isLeftItem(l,this.item).pipe((0,C.w)(p=>p?l.rightItem.pipe((0,_.hC)(),(0,_.xe)(),(0,E.U)(h=>[l,p,h])):l.leftItem.pipe((0,_.hC)(),(0,_.xe)(),(0,E.U)(h=>[l,p,h]))))),(0,E.U)(([l,p,h])=>({uuid:l.id,type:this.relationshipType,relationship:l,originalIsLeft:p,originalItem:this.item,relatedItem:h,nameVariant:p?l.rightwardValue:l.leftwardValue})),(0,$.q)(),(0,A.d)([]))),(0,C.w)(r=>this.objectUpdatesService.getFieldUpdates(this.url,r).pipe((0,E.U)(l=>{const p={};
1return this.nbAddedFields$.next(0),Object.keys(l).forEach(h=>{(0,u.Uh)(l[h])&&l[h].field.type.id===this.relationshipType.id&&(l[h].changeType===d.m.ADD?(this.nbAddedFields$.next(this.nbAddedFields$.getValue()+1),!0===this.isLastPage$.getValue()&&(p[h]=l[h])):p[h]=l[h])}),p}))),(0,j.O)({})).subscribe(r=>{this.loading$.next(!1),this.updates$.next(r)}))}ngOnDestroy(){this.subs.filter(n=>(0,u.Uh)(n)).forEach(n=>n.unsubscribe())}}return c.\u0275fac=function(n){return new(n||c)(t.\u0275\u0275directiveInject(D.d),t.\u0275\u0275directiveInject(B.M),t.\u0275\u0275directiveInject(G.U),t.\u0275\u0275directiveInject(y.FF),t.\u0275\u0275directiveInject(X.N),t.\u0275\u0275directiveInject(w.w),t.\u0275\u0275directiveInject(o.f),t.\u0275\u0275directiveInject(g.q))},c.\u0275cmp=t.\u0275\u0275defineComponent({type:c,selectors:[["ds-edit-relationship-list"]],inputs:{item:"item",itemType:"itemType",url:"url",relationshipType:"relationshipType",hasChanges:"hasChanges",currentItemIsLeftItem$:"currentItemIsLeftItem$"},outputs:{submitModal:"submitModal"},decls:12,vars:14,consts:[[1,"ml-2","btn","btn-success",3,"disabled","click"],[1,"fas","fa-plus"],[1,"d-none","d-sm-inline"],[4,"ngVar"],[4,"ngIf"],[3,"paginationOptions","pageInfoState","collectionSize","hideGear","hidePagerWhenSinglePage"],[1,"my-2"],["class","relationship-row d-block alert",3,"fieldUpdate","url","editItem","ngClass",4,"ngFor","ngForOf","ngForTrackBy"],[1,"relationship-row","d-block","alert",3,"fieldUpdate","url","editItem","ngClass"]],template:function(n,s){1&n&&(t.\u0275\u0275elementStart(0,"h5"),t.\u0275\u0275text(1),t.\u0275\u0275pipe(2,"translate"),t.\u0275\u0275pipe(3,"async"),t.\u0275\u0275elementStart(4,"button",0),t.\u0275\u0275listener("click",function(){return s.openLookup()}),t.\u0275\u0275pipe(5,"async"),t.\u0275\u0275element(6,"i",1),t.\u0275\u0275elementStart(7,"span",2),t.\u0275\u0275text(8),t.\u0275\u0275pipe(9,"translate"),t.\u0275\u0275elementEnd()()(),t.\u0275\u0275template(10,oe,5,6,"ng-container",3),t.\u0275\u0275pipe(11,"async")),2&n&&(t.\u0275\u0275advance(1),t.\u0275\u0275textInterpolate1(" ",t.\u0275\u0275pipeBind1(2,4,t.\u0275\u0275pipeBind1(3,6,s.relationshipMessageKey$))," "),t.\u0275\u0275advance(3),t.\u0275\u0275property("disabled",t.\u0275\u0275pipeBind1(5,8,s.hasChanges)),t.\u0275\u0275advance(4),t.\u0275\u0275textInterpolate1("\xa0",t.\u0275\u0275pipeBind1(9,10,"item.edit.relationships.edit.buttons.add"),""),t.\u0275\u0275advance(2),t.\u0275\u0275property("ngVar",t.\u0275\u0275pipeBind1(11,12,s.updates$)))},dependencies:[x.mk,x.sg,x.O5,N.Z,H.Q,J.g,Y.V,x.Ov,k.g,q.X$],styles:[".relationship-row[_ngcontent-%COMP%]:not(.alert){padding:var(--bs-alert-padding-y) 0}.relationship-row.alert[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--bs-alert-padding-x));margin-right:calc(-1 * var(--bs-alert-padding-x));margin-top:-1px;margin-bottom:-1px}"]}),c})()},64743:(Z,P,a)=>{a.d(P,{V:()=>X});var t=a(53426),B=a(9237),D=a(77007),I=a(48358),b=a(21160),U=a(77176),L=a(5453),R=(a(13005),a(10572)),E=a(41529),M=a(45608),C=a(69805),e=a(98678),$=a(65706),T=a(35103),S=a(35534),A=a(35841),j=a(16441),u=a(41966),K=a(96342);function _(d,g){if(1&d&&(e.\u0275\u0275elementStart(0,"div")(1,"div",16),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div"),e.\u0275\u0275text(4),e.\u0275\u0275elementEnd()()),2&d){const i=g.$implicit;e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",i.metadataField," "),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",i.metadataValue.value," ")}}function Q(d,g){if(1&d){const i=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",10),e.\u0275\u0275listener("click",function(){const y=e.\u0275\u0275restoreView(i).ngVar,x=e.\u0275\u0275nextContext().$implicit,N=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(N.setSelectedVirtualMetadataItem(x.item,!y))}),e.\u0275\u0275elementStart(1,"div",11)(2,"label"),e.\u0275\u0275element(3,"input",12),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(4,"div",13),e.\u0275\u0275element(5,"ds-listable-object-component-loader",14),e.\u0275\u0275template(6,_,5,2,"div",15),e.\u0275\u0275elementEnd()()}if(2&d){const i=g.ngVar,o=e.\u0275\u0275nextContext().$implicit,m=e.\u0275\u0275nextContext();e.\u0275\u0275advance(3),e.\u0275\u0275property("checked",i),e.\u0275\u0275advance(2),e.\u0275\u0275property("object",o.item),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngForOf",m.virtualMetadata.get(o.item.uuid))}}function W(d,g){if(1&d&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275template(1,Q,7,3,"div",9),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementContainerEnd()),2&d){const i=g.$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("ngVar",e.\u0275\u0275pipeBind1(2,1,i.isSelectedVirtualMetadataItem$))}}let F=(()=>{class d{constructor(i,o){this.objectUpdatesService=i,this.appConfig=o,this.close=new e.EventEmitter,this.save=new e.EventEmitter,this.itemDTOs$=new A.X([]),this.subs=[],this.virtualMetadata=new Map,this.showThumbnails=this.appConfig.browseBy.showThumbnails}getVirtualMetadata(i){return Object.entries(i.metadata).map(([o,m])=>m.filter(y=>!o.startsWith("relation")&&y.authority&&y.authority.endsWith(this.relationshipId)).map(y=>({metadataField:o,metadataValue:y}
1))).reduce((o,m)=>o.concat(m),[])}setSelectedVirtualMetadataItem(i,o){this.objectUpdatesService.setSelectedVirtualMetadata(this.url,this.relationshipId,i.uuid,o)}isSelectedVirtualMetadataItem(i){return this.objectUpdatesService.isSelectedVirtualMetadata(this.url,this.relationshipId,i.uuid)}trackItemDTO(i,o){return o?.item?.uuid}ngOnInit(){this.subs.push(this.itemDTOs$.subscribe(i=>{i.forEach(o=>this.virtualMetadata.set(o.item.uuid,this.getVirtualMetadata(o.item)))}))}ngOnChanges(){(0,M.Uh)(this.leftItem)&&(0,M.Uh)(this.rightItem)&&this.itemDTOs$.next([{item:this.leftItem,isSelectedVirtualMetadataItem$:this.isSelectedVirtualMetadataItem(this.leftItem)},{item:this.rightItem,isSelectedVirtualMetadataItem$:this.isSelectedVirtualMetadataItem(this.rightItem)}])}ngOnDestroy(){this.subs.forEach(i=>i.unsubscribe())}}return d.\u0275fac=function(i){return new(i||d)(e.\u0275\u0275directiveInject(L.d),e.\u0275\u0275directiveInject(j.q))},d.\u0275cmp=e.\u0275\u0275defineComponent({type:d,selectors:[["ds-virtual-metadata"]],inputs:{url:"url",relationshipId:"relationshipId",leftItem:"leftItem",rightItem:"rightItem"},outputs:{close:"close",save:"save"},features:[e.\u0275\u0275NgOnChangesFeature],decls:15,vars:11,consts:[[3,"ngClass"],[1,"modal-header"],["type","button","aria-label","Close",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"d-flex","flex-row-reverse","m-2"],[1,"btn","btn-primary","save",3,"click"],["aria-hidden","true",1,"fas","fa-save"],["class","item d-flex flex-row",3,"click",4,"ngVar"],[1,"item","d-flex","flex-row",3,"click"],[1,"m-2"],["type","checkbox",1,"select",3,"checked"],[1,"flex-column"],[3,"object"],[4,"ngFor","ngForOf"],[1,"font-weight-bold"]],template:function(i,o){1&i&&(e.\u0275\u0275elementStart(0,"div",0)(1,"div",1),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementStart(4,"button",2),e.\u0275\u0275listener("click",function(){return o.close.emit()}),e.\u0275\u0275elementStart(5,"span",3),e.\u0275\u0275text(6,"\xd7"),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(7,"div",4),e.\u0275\u0275template(8,W,3,3,"ng-container",5),e.\u0275\u0275pipe(9,"async"),e.\u0275\u0275elementStart(10,"div",6)(11,"button",7),e.\u0275\u0275listener("click",function(){return o.save.emit()}),e.\u0275\u0275element(12,"i",8),e.\u0275\u0275text(13),e.\u0275\u0275pipe(14,"translate"),e.\u0275\u0275elementEnd()()()()),2&i&&(e.\u0275\u0275property("ngClass",o.showThumbnails?"hide-modal-thumbnail-column":""),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1("",e.\u0275\u0275pipeBind1(3,5,"virtual-metadata.delete-relationship.modal-head")," "),e.\u0275\u0275advance(6),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(9,7,o.itemDTOs$))("ngForTrackBy",o.trackItemDTO),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(14,9,"item.edit.metadata.save-button")," "))},dependencies:[T.mk,T.sg,S.p,u.g,T.Ov,K.X$],encapsulation:2}),d})();function w(d,g){if(1&d){const i=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",2)(1,"div",3),e.\u0275\u0275element(2,"ds-listable-object-component-loader",4),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"div",5)(5,"div",6)(6,"button",7),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(i);const m=e.\u0275\u0275nextContext(),y=e.\u0275\u0275reference(3);return e.\u0275\u0275resetView(m.openVirtualMetadataModal(y))}),e.\u0275\u0275pipe(7,"translate"),e.\u0275\u0275element(8,"i",8),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"button",9),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(i);const m=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(m.undo())}),e.\u0275\u0275pipe(10,"translate"),e.\u0275\u0275element(11,"i",10),e.\u0275\u0275elementEnd()()()()}if(2&d){const i=e.\u0275\u0275nextContext();e.\u0275\u0275advance(2),e.\u0275\u0275property("object",e.\u0275\u0275pipeBind1(3,7,i.relatedItem$))("viewMode",i.viewMode)("value",i.nameVariant),e.\u0275\u0275advance(4),e.\u0275\u0275propertyInterpolate("title",e.\u0275\u0275pipeBind1(7,9,"item.edit.metadata.edit.buttons.remove")),e.\u0275\u0275property("disabled",!i.canRemove()),e.\u0275\u0275advance(3),e.\u0275\u0275propertyInterpolate("title",e.\u0275\u0275pipeBind1(10,11,"item.edit.metadata.edit.buttons.undo")),e.\u0275\u0275property("disabled",!i.canUndo())}}function z(d,g){if(1&d){const i=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"ds-virtual-metadata",11),e.\u0275\u0275listener("close",function(){e.\u0275\u0275restoreView(i);const m=e.\u0275\u0275nextContext();
1return e.\u0275\u0275resetView(m.closeVirtualMetadataModal())})("save",function(){e.\u0275\u0275restoreView(i);const m=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(m.remove())}),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementEnd()}if(2&d){const i=e.\u0275\u0275nextContext();e.\u0275\u0275property("relationshipId",i.relationship.id)("leftItem",e.\u0275\u0275pipeBind1(1,4,i.leftItem$))("rightItem",e.\u0275\u0275pipeBind1(2,6,i.rightItem$))("url",i.url)}}let X=(()=>{class d{constructor(i,o){this.objectUpdatesService=i,this.modalService=o,this.viewMode=E.w.ListElement}get relationship(){return this.update.relationship}get update(){return this.fieldUpdate.field}get nameVariant(){return this.update.nameVariant}ngOnChanges(){this.relationship&&(this.relationship.leftItem||this.relationship.rightItem)?(this.leftItem$=this.relationship.leftItem.pipe((0,R.xw)(),(0,R.xe)(),(0,D.h)(i=>(0,M.Uh)(i)&&(0,M.UE)(i.uuid))),this.rightItem$=this.relationship.rightItem.pipe((0,R.xw)(),(0,R.xe)(),(0,D.h)(i=>(0,M.Uh)(i)&&(0,M.UE)(i.uuid))),this.relatedItem$=(0,t.a)([this.leftItem$,this.rightItem$]).pipe((0,I.U)(([i,o])=>i.uuid===this.editItem.uuid?o:i))):this.relatedItem$=(0,B.of)(this.update.relatedItem)}remove(){this.closeVirtualMetadataModal(),(0,t.a)([this.leftItem$,this.rightItem$]).pipe((0,I.U)(i=>i.map(o=>this.objectUpdatesService.isSelectedVirtualMetadata(this.url,this.relationship.id,o.uuid))),(0,b.w)(i=>(0,t.a)(i)),(0,I.U)(i=>Object.assign({},this.fieldUpdate.field,{keepLeftVirtualMetadata:!0===i[0],keepRightVirtualMetadata:!0===i[1]})),(0,U.q)(1)).subscribe(i=>{this.objectUpdatesService.saveRemoveFieldUpdate(this.url,i)})}openVirtualMetadataModal(i){this.modalRef=this.modalService.open(i)}closeVirtualMetadataModal(){this.modalRef.close()}undo(){this.objectUpdatesService.removeSingleFieldUpdate(this.url,this.fieldUpdate.field.uuid)}canRemove(){return this.fieldUpdate.changeType!==C.m.REMOVE&&this.fieldUpdate.changeType!==C.m.ADD}canUndo(){return this.fieldUpdate.changeType>=0}}return d.\u0275fac=function(i){return new(i||d)(e.\u0275\u0275directiveInject(L.d),e.\u0275\u0275directiveInject($.FF))},d.\u0275cmp=e.\u0275\u0275defineComponent({type:d,selectors:[["ds-edit-relationship"]],inputs:{fieldUpdate:"fieldUpdate",url:"url",editItem:"editItem"},features:[e.\u0275\u0275NgOnChangesFeature],decls:4,vars:3,consts:[["class","row",4,"ngIf"],["virtualMetadataModal",""],[1,"row"],[1,"col-10","relationship"],[3,"object","viewMode","value"],[1,"col-2"],[1,"btn-group","relationship-action-buttons"],[1,"btn","btn-outline-danger","btn-sm",3,"disabled","title","click"],[1,"fas","fa-trash-alt","fa-fw"],[1,"btn","btn-outline-warning","btn-sm",3,"disabled","title","click"],[1,"fas","fa-undo-alt","fa-fw"],[3,"relationshipId","leftItem","rightItem","url","close","save"]],template:function(i,o){1&i&&(e.\u0275\u0275template(0,w,12,13,"div",0),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275template(2,z,3,8,"ng-template",null,1,e.\u0275\u0275templateRefExtractor)),2&i&&e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(1,1,o.relatedItem$))},dependencies:[T.O5,S.p,F,T.Ov,K.X$],styles:[".btn[disabled][_ngcontent-%COMP%]{color:var(--bs-gray-600);border-color:var(--bs-gray-600);z-index:0}.relationship-action-buttons[_ngcontent-%COMP%]{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}"]}),d})()}}]);

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.