PageSourceSearch

https://brafford-photography.web.app/2843.37c2f68f45af0335.js

js brafford-photography.web.app collected 2026-10-03 12:19:22 UTC 41,776 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunktonomo=self.webpackChunktonomo||[]).push([[2843],{92843:(G,O,s)=>{s.r(O),s.d(O,{PropertyFeatureFloorplansModule:()=>ye});var g=s(69808),H=s(93075),E=s(74202),_=s(51062),P=s(49343),o=s(87366),B=s(96410),h=s(36053),C=s(72986),w=s(87545),I=s(24850),D=s(92198),f=s(48966),j=s(1059),e=s(5e3),k=s(67656),x=s(66809),F=s(72751);let L=(()=>{class r{constructor(t,n){this.dialogRef=t,this.data=n}ngOnInit(){this.photoUrl=this.data.selectedHotspot.thumbnailUrl}deleteHotspot(){this.dialogRef.close(this.data.selectedHotspot.imageId)}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(f.WI))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-hotspot-details-dialog"]],decls:12,vars:10,consts:[["alt","Property photo","draggable","false",3,"src"],[1,"justify-between"],["uiBtnSize","medium","uiBtnTheme","error","themeMode","secondary","matDialogClose",""],["uiBtnSize","medium","uiBtnTheme","error",3,"click"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"mat-dialog-content"),e.\u0275\u0275element(4,"img",0),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"mat-dialog-actions",1)(6,"button",2),e.\u0275\u0275text(7),e.\u0275\u0275pipe(8,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"button",3),e.\u0275\u0275listener("click",function(){return n.deleteHotspot()}),e.\u0275\u0275text(10),e.\u0275\u0275pipe(11,"translate"),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(2,4,"PROPERTY_FLOORPLANS_HOTSPOT_TITLE"),"\n"),e.\u0275\u0275advance(3),e.\u0275\u0275property("src",n.photoUrl,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(8,6,"CLOSE")," "),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(11,8,"DELETE")," "))},directives:[k.A,f.xY,f.H8,x.s,F.V,f.ZT],pipes:[_.X$],styles:["img[_ngcontent-%COMP%]{max-height:30vh;width:100%;margin:0 auto}"],changeDetection:0}),r})(),M=(()=>{class r{constructor(t){this.dialog=t}openHotspotDialog(t){return this.dialog.open(L,{panelClass:"app-v2",width:"400px",maxWidth:"400px",data:t}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac,providedIn:"root"}),r})();var T=s(255),R=s(44409);let $=(()=>{class r{constructor(t,n){this.renderer=t,this.element=n}ngOnInit(){const t=this.element.nativeElement;this.renderer.setStyle(t,"left",`${this.hotspot.left}%`),this.renderer.setStyle(t,"top",`${this.hotspot.top}%`)}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(e.Renderer2),e.\u0275\u0275directiveInject(e.ElementRef))},r.\u0275dir=e.\u0275\u0275defineDirective({type:r,selectors:[["","tnInitialHotspotPosition",""]],inputs:{hotspot:["tnInitialHotspotPosition","hotspot"]}}),r})();var z=s(20773);const K=["floorplanImage"],A=function(r,c){return{"o-40 pointer-events-none":r,"bg-brand-10":c}};function N(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"img",16),e.\u0275\u0275listener("click",function(){const d=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(2).toggleImageSelection(d)}),e.\u0275\u0275elementEnd()}if(2&r){const t=c.$implicit,n=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("ngClass",e.\u0275\u0275pureFunction2(2,A,n.isImagePlaced(t.id),(null==n.selectedImage?null:n.selectedImage.id)===t.id))("src",(null==t.thumbnail?null:t.thumbnail.url)||(null==t.webRes?null:t.webRes.url),e.\u0275\u0275sanitizeUrl)}}function U(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",18),e.\u0275\u0275listener("cdkDragStarted",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(3).dragStarted(i)})("cdkDragEnded",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(3).dropHotspot(i)})("click",function(i){const u=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(3).callHotspotDialog(i,u)}),e.\u0275\u0275elementEnd()}if(2&r){const t=c.$implicit;e.\u0275\u0275property("tnInitialHotspotPosition",t)("cdkDragData",t)}}function Y(r,c){if(1&r&&(e.\u0275\u0275elementStart(0,"div"),e.\u0275\u0275template(1,U,1,2,"div",17),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(1),e.\u0275\u0275property("ngForOf",t.hotspots)("ngForTrackBy",t.trackByHotspotId)}}function l(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",6)(1,"div",7),e.\u0275\u0275template(2,N,1,5,"img",8),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"div",9)(5,"div",10),e.\u0275\u0275element(6,"i",11),e.\u0275\u0275text(7),e.\u0275\u0275pipe(8,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"div",12),e.\u0275\u0275listener("click",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().createHotspot(i)}),e.\u0275\u0275elementStart(10,"img",13,14),e.\u0275\u0275listener("error",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().floorPlanImgLoaded=!0})("load",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().floorPlanImgLoaded=!0}),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(12,Y,2,2,"div",15),e.\u0275\u0275elementEnd()()()}if(2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(3,5,t.selectableImages$))("ngForTrackBy",t.trackByItemId),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(8,7,t.selectedImage?"PROPERTY_FLOORPLANS_STEP_2":"PROPERTY_FLOORPLANS_STEP_1")," "),e.\u0275\u0275advance(3),e.\u0275\u0275property("src",t.floorPlan.url,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",t.floorPlanImgLoaded)}}function m(r,c){1&r&&(e.\u0275\u0275elementStart(0,"div",19),e.\u0275\u0275element(1,"mat-spinner",20),e.\u0275\u0275elementEnd())}let a=(()=>
1{class r{constructor(t,n,i,d){var u,S;this.dialogRef=t,this.data=n,this.hotspotDetailsDialogService=i,this.cdr=d,this.selectedImage=null,this.isDragging=!1,this.floorPlanImgLoaded=!1,this.hotspots=[],this.floorPlan=this.data.floorPlan,this.hotspots=null!==(S=null===(u=this.data.floorPlan)||void 0===u?void 0:u.hotspots)&&void 0!==S?S:[],this.isLoading$=this.data.propertyImages$.pipe((0,I.U)(()=>!1),(0,j.O)(!0)),this.selectableImages$=this.data.propertyImages$.pipe((0,C.q)(1),(0,I.U)(X=>X.filter(_e=>{var Q;return!!(null===(Q=_e.webRes)||void 0===Q?void 0:Q.url)})))}isImagePlaced(t){return this.hotspots.some(n=>n.imageId===t)}trackByItemId(t,n){return n.id}trackByHotspotId(t,n){return n.imageId}onSave(){this.dialogRef.close({floorPlan:Object.assign(Object.assign({},this.floorPlan),{hotspots:this.hotspots})})}dragStarted(t){this.isDragging=!0}dropHotspot(t){const n=this.getAbsolutePositions(this.floorplanImage.nativeElement.getBoundingClientRect(),t.dropPoint.x,t.dropPoint.y);this.updateHotspot(t.source.data.imageId,n.left,n.top)}createHotspot(t){var n,i;if(this.selectedImage&&this.floorPlanImgLoaded){const d=this.floorplanImage.nativeElement.getBoundingClientRect(),u=this.getAbsolutePositions(d,t.clientX,t.clientY);this.hotspots=[...this.hotspots,{left:u.left,top:u.top,imageId:this.selectedImage.id,thumbnailUrl:null===(n=this.selectedImage.thumbnail)||void 0===n?void 0:n.url,webResUrl:null===(i=this.selectedImage.webRes)||void 0===i?void 0:i.url}],this.selectedImage=null}}toggleImageSelection(t){var n;this.selectedImage=(null===(n=this.selectedImage)||void 0===n?void 0:n.id)===t.id?null:Object.assign({},t)}callHotspotDialog(t,n){this.isDragging?this.isDragging=!1:this.hotspotDetailsDialogService.openHotspotDialog({selectedHotspot:n}).pipe((0,D.h)(Boolean)).subscribe(()=>{this.deleteHotspot(n.imageId),this.cdr.detectChanges()})}updateHotspot(t,n,i){this.hotspots=this.hotspots.map(d=>d.imageId===t?Object.assign(Object.assign({},d),{left:n,top:i}):d)}deleteHotspot(t){this.hotspots=this.hotspots.filter(n=>n.imageId!==t)}getAbsolutePositions(t,n,i){const d=Math.trunc((n-t.left)/t.width*100),u=Math.trunc((i-t.top)/t.height*100);return{left:Math.max(0,Math.min(d,99)),top:Math.max(0,Math.min(u,99))}}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(f.WI),e.\u0275\u0275directiveInject(M),e.\u0275\u0275directiveInject(e.ChangeDetectorRef))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-interactive-floorplan-dialog"]],viewQuery:function(t,n){if(1&t&&e.\u0275\u0275viewQuery(K,5),2&t){let i;e.\u0275\u0275queryRefresh(i=e.\u0275\u0275loadQuery())&&(n.floorplanImage=i.first)}},features:[e.\u0275\u0275ProvidersFeature([M])],decls:16,vars:16,consts:[[1,"dialog-content-fill"],["floorPlanDialog",""],["class","h-full d-flex justify-center items-center",4,"ngIf","ngIfElse"],[1,"justify-end"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary","matDialogClose",""],["uiBtnSize","medium","uiBtnTheme","main",3,"disabled","click"],[1,"flex-auto","flex-row","flex","interactive-floor-plan-container","gap-4"],[1,"flex","flex-wrap","w-50","overflow-y-auto","bg-gray-5"],["class","selectable-image w-50 p-2","draggable","false","alt","Property photo",3,"ngClass","src","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"w-50"],[1,"mb-2","ml-2","flex","items-center","gap-4"],["uiIcon","info",1,"cursor-pointer"],[1,"interactive-floor-plan","position-relative",3,"click"],["alt","Floor plan image","draggable","false",1,"rounded-0","border-4","border-gray-15","w-full","h-full",3,"src","error","load"],["floorplanImage",""],[4,"ngIf"],["draggable","false","alt","Property photo",1,"selectable-image","w-50","p-2",3,"ngClass","src","click"],["class","hotspot-icon position-absolute w-32 h-32 cursor-move border-1 border-gray-300 border-solid rounded-full bg-brand-10","cdkDrag","","cdkDragHandle","","cdkDragBoundary",".interactive-floor-plan",3,"tnInitialHotspotPosition","cdkDragData","cdkDragStarted","cdkDragEnded","click",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","","cdkDragHandle","","cdkDragBoundary",".interactive-floor-plan",1,"hotspot-icon","position-absolute","w-32","h-32","cursor-move","border-1","border-gray-300","border-solid","rounded-full","bg-brand-10",3,"tnInitialHotspotPosition","cdkDragData","cdkDragStarted","cdkDragEnded","click"],[1,"h-full","d-flex","justify-center","items-center"],[1,"center"]],template:function(t,n){if(1&t&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"mat-dialog-content",0),e.\u0275\u0275template(4,l,13,9,"ng-template",null,1,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275template(6,m,2,0,"div",2),e.\u0275\u0275pipe(7,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"mat-dialog-actions",3)(9,"button",4),e.\u0275\u0275text(10),e.\u0275\u0275pipe(11,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(12,"button",5),e.\u0275\u0275listener("click",function(){return n.onSave()}),e.\u0275\u0275pipe(13,"async"),e.\u0275\u0275text(14),e.\u0275\u0275pipe(15,"translate"),e.\u0275\u0275elementEnd()()),2&t){const i=e.\u0275\u0275reference(5);e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(2,6,"PROPERTY_FLOORPLANS_INTERACTIVE_TITLE"),"\n"),e.\u0275\u0275advance(5),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(7,8,n.isLoading$))("ngIfElse",i),e.\u0275\u0275advance(4),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(11,10,"CANCEL")," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",e.\u0275\u0275pipeBind1(13,12,n.isLoading$)),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(15,14,"APPLY")," ")}},directives:[k.A,f.xY,g.NgForOf,g.NgClass,T.a,g.NgIf,R.Zt,R.Bh,$,z.Ou,f.H8,x.s,F.V,f.ZT],pipes:[_.X$,g.AsyncPipe],styles:["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}mat-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column}.interactive-floor-plan-container[_ngcontent-%COMP%]{min-height:0}.interactive-floor-plan-container[_ngcontent-%COMP%]   .selectable-image[_ngcontent-%COMP%]{max-height:30vh}.interactive-floor-plan-container[_ngcontent-%COMP%]   .interactive-floor-plan[_ngcontent-%COMP%]   .hotspot-icon[_ngcontent-%COMP%]{transition:box-sha
1dow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.interactive-floor-plan-container[_ngcontent-%COMP%]   .interactive-floor-plan[_ngcontent-%COMP%]   .hotspot-icon[_ngcontent-%COMP%]:active{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}"],changeDetection:0}),r})(),p=(()=>{class r{constructor(t){this.dialog=t}openDialog(t){return this.dialog.open(a,{panelClass:"app-v2",width:"100%",maxWidth:"100%",height:"100%",data:t}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac,providedIn:"root"}),r})();var v=s(50026),y=s(76230),V=s(61709),J=s(87168),q=s(2994);const b=(0,y.H)({selectId:r=>r.storeKey}),ee=b.getSelectors().selectAll,te=b.getInitialState({});let Z=(()=>{class r extends v.m1{constructor(t){super(te),this.propertyFilesRepository=t,this.plans$=this.select(n=>ee(n)),this.setAllPlans=this.updater((n,i)=>b.setAll(i,n)),this.addManyPlans=this.updater((n,i)=>b.addMany(i,n)),this.removeOnePlan=this.updater((n,i)=>b.removeOne(i,n)),this.updateOnePlan=this.updater((n,i)=>b.updateOne({id:i.storeKey,changes:i},n)),this.deletePlan=this.effect(n=>n.pipe((0,V.zg)(i=>this.propertyFilesRepository.deleteOne(i.storeKey).then(()=>i.storeKey)),(0,v._b)(i=>this.removeOnePlan(i),i=>console.log(i)))),this.deleteAllPlans=this.effect(n=>n.pipe((0,J.M)(this.plans$),(0,q.b)(([,i])=>{i.forEach(d=>this.deletePlan(d))})))}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(P.Dw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var oe=s(97366),ne=s(25190),re=s(90508),W=s(92181),ie=s(81782);const ae=["descriptionInput"];function le(r,c){1&r&&(e.\u0275\u0275elementStart(0,"div",13)(1,"div",14),e.\u0275\u0275element(2,"ui-spinner",15),e.\u0275\u0275elementEnd()())}function se(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",16),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onEdit()}),e.\u0275\u0275pipe(1,"translate"),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementStart(4,"button",17,18),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAddHotspots()}),e.\u0275\u0275element(6,"i",19),e.\u0275\u0275elementStart(7,"span"),e.\u0275\u0275text(8),e.\u0275\u0275pipe(9,"translate"),e.\u0275\u0275elementEnd()()()}if(2&r){const t=e.\u0275\u0275reference(5),n=e.\u0275\u0275nextContext();let i;e.\u0275\u0275property("title",(null==n.floorPlan?null:n.floorPlan.title)||e.\u0275\u0275pipeBind1(1,6,"PROPERTY_OVERVIEW_NOT_SET")),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",(null==n.floorPlan?null:n.floorPlan.title)||e.\u0275\u0275pipeBind1(3,8,"PROPERTY_OVERVIEW_NOT_SET")," "),e.\u0275\u0275advance(2),e.\u0275\u0275classProp("hidden",n.isDummy||!n.imgLoaded),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(9,10,(null!==(i=null==n.floorPlan||null==n.floorPlan.hotspots?null:n.floorPlan.hotspots.length)&&void 0!==i?i:0)>0?"PROPERTY_FLOORPLANS_EDIT_HOTSPOTS":"PROPERTY_FLOORPLANS_ADD_HOTSPOTS"))}}function ce(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"textarea",20,21),e.\u0275\u0275listener("blur",function(){e.\u0275\u0275restoreView(t);const i=e.\u0275\u0275reference(1);return e.\u0275\u0275nextContext().onTitleChange(i.value)}),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275nextContext();let n;e.\u0275\u0275property("value",null!==(n=null==t.floorPlan?null:t.floorPlan.title)&&void 0!==n?n:"")("placeholder",e.\u0275\u0275pipeBind1(2,2,"PROPERTY_OVERVIEW_NOT_SET"))}}let pe=(()=>{class r{constructor(t){this.ngZone=t,this.update=new e.EventEmitter,this.delete=new e.EventEmitter,this.addHotspots=new e.EventEmitter,this.editMode=!1,this.menuOpen=!1,this.imgLoaded=!1}get floorPlan(){return"storeKey"in this.plan?this.plan:null}get isDummy(){var t;return!(null===(t=this.floorPlan)||void 0===t?void 0:t.storeKey)}onEdit(){this.isDummy||(this.editMode=!0,this.ngZone.runOutsideAngular(()=>{setTimeout(()=>{this.description.nativeElement.focus()})}))}onTitleChange(t){this.editMode=!1,t=t.trim(),this.floorPlan&&this.floorPlan.title!==t&&this.update.emit({title:t,storeKey:this.floorPlan.storeKey})}onDelete(){this.floorPlan&&this.delete.emit(this.floorPlan)}onAddHotspots(){this.addHotspots.emit()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(e.NgZone))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-floorplan-card"]],viewQuery:function(t,n){if(1&t&&e.\u0275\u0275viewQuery(ae,5),2&t){let i;e.\u0275\u0275queryRefresh(i=e.\u0275\u0275loadQuery())&&(n.description=i.first)}},hostVars:6,hostBindings:function(t,n){2&t&&e.\u0275\u0275classProp("edit-mode",n.editMode)("menu-open",n.menuOpen)("dummy",n.isDummy)},inputs:{plan:"plan"},outputs:{update:"update",delete:"delete",addHotspots:"addHotspots"},decls:19,vars:14,consts:[[1,"image-preview","relative"],[1,"plan-image","w-full","rounded-0",3,"src","error","load"],["matRipple","",1,"menu-icon",3,"matMenuTriggerFor","menuClosed","menuOpened"],["uiIcon","more_vert"],["xPosition","before",1,"app-v2"],["menu","matMenu"],["mat-menu-item","","target","_blank",3,"href"],["uiIcon","download",1,"mr-min"],["mat-menu-item","",3,"click"],["uiIcon","delete",1,"mr-min"],["class","dummy-placeholder relative",4,"ngIf"],["class","description body line-clamp-3 px-12 pt-8 mt-auto",3,"title","click",4,"ngIf"],["class","description body overflow-hidden py-8 px-12 mt-auto",3,"value","placeholder","blur",4,"ngIf"],[1,"dummy-placeholder","relative"],[1,"absolute","
1inset-0","flex","items-center","justify-center"],[1,"w-32","text-gray-30"],[1,"description","body","line-clamp-3","px-12","pt-8","mt-auto",3,"title","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary",1,"w-full","mt-1",3,"click"],["addHotspotsButton","btnSize"],["uiIcon","add",3,"size"],[1,"description","body","overflow-hidden","py-8","px-12","mt-auto",3,"value","placeholder","blur"],["descriptionInput",""]],template:function(t,n){if(1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"img",1),e.\u0275\u0275listener("error",function(){return n.imgLoaded=!0})("load",function(){return n.imgLoaded=!0}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"div",2),e.\u0275\u0275listener("menuClosed",function(){return n.menuOpen=!1})("menuOpened",function(){return n.menuOpen=!0}),e.\u0275\u0275element(3,"i",3),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"mat-menu",4,5)(6,"a",6),e.\u0275\u0275element(7,"i",7),e.\u0275\u0275elementStart(8,"span"),e.\u0275\u0275text(9),e.\u0275\u0275pipe(10,"translate"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(11,"button",8),e.\u0275\u0275listener("click",function(){return n.onDelete()}),e.\u0275\u0275element(12,"i",9),e.\u0275\u0275elementStart(13,"span"),e.\u0275\u0275text(14),e.\u0275\u0275pipe(15,"translate"),e.\u0275\u0275elementEnd()()()(),e.\u0275\u0275template(16,le,3,0,"div",10),e.\u0275\u0275template(17,se,10,12,"div",11),e.\u0275\u0275template(18,ce,3,4,"textarea",12)),2&t){const i=e.\u0275\u0275reference(5);e.\u0275\u0275classProp("hidden",n.isDummy||!n.imgLoaded),e.\u0275\u0275advance(1),e.\u0275\u0275property("src",null==n.floorPlan?null:n.floorPlan.url,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(1),e.\u0275\u0275property("matMenuTriggerFor",i),e.\u0275\u0275advance(4),e.\u0275\u0275property("href",null==n.floorPlan?null:n.floorPlan.url,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(10,10,"DOWNLOAD")),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(15,12,"DELETE")),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",n.isDummy||!n.imgLoaded),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!n.editMode),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.editMode)}},directives:[re.wG,W.p6,T.a,W.VK,W.OP,g.NgIf,ie.O,x.s,F.V],pipes:[_.X$],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.edit-mode[_nghost-%COMP%]{border-color:var(--brand-50, #228BE6)}.plan-image[_ngcontent-%COMP%]{min-height:80px}.description[_ngcontent-%COMP%]{flex:1 1 auto;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;height:65px;max-height:65px}.dummy-placeholder[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(246 246 246 / var(--tw-bg-opacity, 1));min-height:156px}.menu-icon[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;display:flex;height:2rem;width:2rem;align-content:center;justify-content:center;border-radius:9999px;cursor:pointer;--tw-text-opacity: 1;color:rgb(226 226 226 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.menu-icon[_ngcontent-%COMP%]:hover{--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity, 1))}.menu-icon[_ngcontent-%COMP%]{background:rgba(0,0,0,.35);box-shadow:0 8px 32px #00000026}"],changeDetection:0}),r})();var de=s(9149);function me(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"ui-file-upload-form",6),e.\u0275\u0275listener("uploadedFiles",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().addNewPlans(i)}),e.\u0275\u0275pipe(1,"translate"),e.\u0275\u0275elementEnd()}if(2&r){const t=c.ngIf,n=e.\u0275\u0275nextContext();e.\u0275\u0275propertyInterpolate1("collectionPath","library/properties/",t,"")("storagePath","properties/",t,""),e.\u0275\u0275property("allowedFileTypes",n.allowedFileTypes)("headerText",e.\u0275\u0275pipeBind1(1,4,"PROPERTY_FLOORPLANS_UPLOAD_HEADER"))}}function ue(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",7)(1,"button",8,9),e.\u0275\u0275element(3,"i",10),e.\u0275\u0275text(4),e.\u0275\u0275pipe(5,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"button",11,12),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().bulkDelete()}),e.\u0275\u0275element(8,"i",13),e.\u0275\u0275text(9),e.\u0275\u0275pipe(10,"translate"),e.\u0275\u0275elementEnd()()}if(2&r){const t=e.\u0275\u0275reference(2),n=e.\u0275\u0275reference(7);e.\u0275\u0275advance(3),e.\u0275\u0275property("size",t.iconSize),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(5,4,"DOWNLOAD")," "),e.\u0275\u0275advance(4),e.\u0275\u0275property("size",n.iconSize),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(10,6,"BULK_DELETE")," ")}}function ge(r,c){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"tn-floorplan-card",17),e.\u0275\u0275listener("delete",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).deletePlan(i)})("update",function(i){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).updatePlan(i)})("addHotspots",function(){const d=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(2).addFloorPlanHotspots(d)}),e.\u0275\u0275elementEnd()}2&r&&e.\u0275\u0275property("plan",c.$implicit)}function he(r,c){1&r&&e.\u0275\u0275element(0,"tn-floorplan-card",18),2&r&&e.\u0275\u0275property("plan",c.$implicit)}function fe(r,c){if(1&r&&(e.\u0275\u0275elementStart(0,"div",14),e.\u0275\u0275template(1,ge,1,1,"tn-floorplan-card",15),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275template(3,he,1,1,"tn-floorplan-card",16),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(2,4,t.plans$))("ngForTrackBy",t.trackBy),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(4,6,t.uploadSnapsh
1ots$))("ngForTrackBy",t.trackBy)}}const ve=[{path:"",pathMatch:"full",component:(()=>{class r{constructor(t,n,i,d,u){this.singlePropertyFacade=t,this.propertyFeatureFloorplansFacade=n,this.fileUploadComponentStore=i,this.interactiveFloorplanDialogService=d,this.propertyFilesRepository=u,this.propertyId$=this.singlePropertyFacade.propertyId$,this.plans$=this.propertyFeatureFloorplansFacade.plans$,this.uploadSnapshots$=this.fileUploadComponentStore.uploadSnapshots$,this.allowedFileTypes=["jpg","jpeg","png"]}ngOnInit(){this.singlePropertyFacade.property$.pipe((0,C.q)(1)).subscribe(t=>{this.propertyFeatureFloorplansFacade.setAllPlans(t.floorPlans)})}addNewPlans(t){const n=t.filter(i=>"success"===i.state).map(i=>{var d;const u=i.metadata.customMetadata;return{title:(null===(d=u.fileNameFull)||void 0===d?void 0:d.replace(/\.(jpg|jpeg|png)$/,""))||"",description:"",url:u.downloadUrl,storeKey:u.storeKey}});n.length&&(this.propertyFeatureFloorplansFacade.addManyPlans(n),this.singlePropertyFacade.setPristineStatus(!1))}bulkDelete(){this.propertyFeatureFloorplansFacade.deleteAllPlans(),this.singlePropertyFacade.setPristineStatus(!1)}updatePlan(t){this.propertyFeatureFloorplansFacade.updateOnePlan(t),this.singlePropertyFacade.setPristineStatus(!1)}deletePlan(t){this.propertyFeatureFloorplansFacade.deletePlan(t),this.singlePropertyFacade.setPristineStatus(!1)}addFloorPlanHotspots(t){const n=this.propertyId$.pipe((0,C.q)(1),(0,w.w)(i=>this.propertyFilesRepository.getPropertyPhotos(i)),(0,I.U)(i=>[...i].sort((d,u)=>d.name.localeCompare(u.name,void 0,{numeric:!0,sensitivity:"base"}))));this.interactiveFloorplanDialogService.openDialog({floorPlan:t,propertyImages$:n}).pipe((0,D.h)(i=>null!=i&&"floorPlan"in i)).subscribe(i=>{this.propertyFeatureFloorplansFacade.updateOnePlan(i.floorPlan),this.singlePropertyFacade.setPristineStatus(!1)})}onSaveChanges(){(0,h.aj)([this.plans$,this.singlePropertyFacade.property$]).pipe((0,C.q)(1)).subscribe(([t,n])=>{this.singlePropertyFacade.updateProperty({floorPlans:t,tonomoExternalId:n.tonomoExternalId})})}canDeactivate(){return this.singlePropertyFacade.canDeactivate()}trackBy(t,n){return n.storeKey||t}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(P.RV),e.\u0275\u0275directiveInject(Z),e.\u0275\u0275directiveInject(B.$X_),e.\u0275\u0275directiveInject(p),e.\u0275\u0275directiveInject(P.Dw))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-property-feature-floorplans"]],features:[e.\u0275\u0275ProvidersFeature([Z])],decls:18,vars:17,consts:[[1,"p-24","pb-32"],[1,"my-16"],[3,"allowedFileTypes","collectionPath","headerText","storagePath","uploadedFiles",4,"ngIf"],["class","mb-16 flex gap-8",4,"ngIf"],["class","bg-gray-5 p-min rounded-lg grid gap-4 grid-cols-2",4,"ngIf"],[1,"flex-auto"],[3,"allowedFileTypes","collectionPath","headerText","storagePath","uploadedFiles"],[1,"mb-16","flex","gap-8"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary","disabled",""],["downloadPlans","btnSize"],["uiIcon","download",3,"size"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary",3,"click"],["bulkDeletePlans","btnSize"],["uiIcon","delete",3,"size"],[1,"bg-gray-5","p-min","rounded-lg","grid","gap-4","grid-cols-2"],[3,"plan","delete","update","addHotspots",4,"ngFor","ngForOf","ngForTrackBy"],[3,"plan",4,"ngFor","ngForOf","ngForTrackBy"],[3,"plan","delete","update","addHotspots"],[3,"plan"]],template:function(t,n){if(1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"tn-property-section-header")(2,"h2"),e.\u0275\u0275text(3),e.\u0275\u0275pipe(4,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"p"),e.\u0275\u0275text(6),e.\u0275\u0275pipe(7,"translate"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(8,"div",1),e.\u0275\u0275template(9,me,2,6,"ui-file-upload-form",2),e.\u0275\u0275pipe(10,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(11,ue,11,8,"div",3),e.\u0275\u0275pipe(12,"async"),e.\u0275\u0275template(13,fe,5,8,"div",4),e.\u0275\u0275pipe(14,"async"),e.\u0275\u0275pipe(15,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(16,"div",5)(17,"ui-file-upload-status-bar")),2&t){let i,d;e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(4,5,"PROPERTY_FLOORPLANS_TITLE")),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(7,7,"PROPERTY_FLOORPLANS_DESC")),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(10,9,n.propertyId$)),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",null==(i=e.\u0275\u0275pipeBind1(12,11,n.plans$))?null:i.length),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",(null==(d=e.\u0275\u0275pipeBind1(14,13,n.plans$))?null:d.length)||(null==(d=e.\u0275\u0275pipeBind1(15,15,n.uploadSnapsh
1ots$))?null:d.length))}},directives:[oe.A,g.NgIf,ne.j,x.s,F.V,T.a,g.NgForOf,pe,de.B],pipes:[_.X$,g.AsyncPipe],styles:["[_nghost-%COMP%]{min-height:100%;flex-direction:column;display:flex!important}.no-plans-placeholder[_ngcontent-%COMP%]{display:flex;height:2.5rem;align-items:center;justify-content:center;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(175 175 175 / var(--tw-text-opacity, 1))}"],changeDetection:0}),r})(),canDeactivate:[P.$v]}];let ye=(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=e.\u0275\u0275defineNgModule({type:r}),r.\u0275inj=e.\u0275\u0275defineInjector({imports:[[g.CommonModule,E.Bz.forChild(ve),H.UX,B.eYi,o.gq,_.aw]]}),r})()},87366:(G,O,s)=>{s.d(O,{qk:()=>Y,bN:()=>k,gq:()=>B});var g=s(69808),H=s(93075),E=s(74202),_=s(51062),P=s(96410),o=s(5e3);let B=(()=>{class l{}return l.\u0275fac=function(a){return new(a||l)},l.\u0275mod=o.\u0275\u0275defineNgModule({type:l}),l.\u0275inj=o.\u0275\u0275defineInjector({imports:[[g.CommonModule,P.eYi,E.Bz,H.UX,_.aw]]}),l})();var h=s(48966),C=s(67656),w=s(255),I=s(66809),D=s(72751);function f(l,m){1&l&&o.\u0275\u0275element(0,"i",9)}function j(l,m){if(1&l){const a=o.\u0275\u0275getCurrentView();o.\u0275\u0275elementStart(0,"div",6),o.\u0275\u0275listener("click",function(){const y=o.\u0275\u0275restoreView(a).$implicit;return o.\u0275\u0275nextContext().toggleSelection(y.storeKey)}),o.\u0275\u0275template(1,f,1,0,"i",7),o.\u0275\u0275element(2,"img",8),o.\u0275\u0275elementEnd()}if(2&l){const a=m.$implicit,p=o.\u0275\u0275nextContext();o.\u0275\u0275advance(1),o.\u0275\u0275property("ngIf",p.selectedPhotoKeys.has(a.storeKey)),o.\u0275\u0275advance(1),o.\u0275\u0275property("src",a.thumbnail,o.\u0275\u0275sanitizeUrl)}}let e=(()=>{class l{constructor(a,p){this.dialogRef=a,this.data=p,this.selectedPhotoKeys=new Set}toggleSelection(a){this.data.singleSelection?this.selectedPhotoKeys=new Set([a]):(this.selectedPhotoKeys=new Set(this.selectedPhotoKeys),this.selectedPhotoKeys.has(a)?this.selectedPhotoKeys.delete(a):this.selectedPhotoKeys.add(a))}trackBy(a){return a}onSubmit(){const a=[...this.selectedPhotoKeys].map(p=>this.data.photos.find(v=>v.storeKey===p));this.dialogRef.close(a)}onCancel(){this.dialogRef.close()}}return l.\u0275fac=function(a){return new(a||l)(o.\u0275\u0275directiveInject(h.so),o.\u0275\u0275directiveInject(h.WI))},l.\u0275cmp=o.\u0275\u0275defineComponent({type:l,selectors:[["tn-choose-photo-dialog"]],decls:15,vars:7,consts:[[1,"p-min","pr-16","grid","grid-cols-6","gap-4"],["class","relative cursor-pointer",3,"click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"body","text-gray-50"],[1,"body-semibold"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary","matDialogClose","",1,"ml-auto"],["uiBtnSize","medium","uiBtnTheme","main",3,"disabled","click"],[1,"relative","cursor-pointer",3,"click"],["class","selection-icon","size","22","uiIcon","check_circle","uiIconVariant","filled",4,"ngIf"],[1,"w-full","h-full","object-cover","rounded",3,"src"],["size","22","uiIcon","check_circle","uiIconVariant","filled",1,"selection-icon"]],template:function(a,p){1&a&&(o.\u0275\u0275elementStart(0,"ui-dialog-header"),o.\u0275\u0275text(1),o.\u0275\u0275elementEnd(),o.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"div",0),o.\u0275\u0275template(4,j,3,2,"div",1),o.\u0275\u0275elementEnd()(),o.\u0275\u0275elementStart(5,"mat-dialog-actions")(6,"div")(7,"span",2),o.\u0275\u0275text(8,"Selected "),o.\u0275\u0275elementEnd(),o.\u0275\u0275elementStart(9,"span",3),o.\u0275\u0275text(10),o.\u0275\u0275elementEnd()(),o.\u0275\u0275elementStart(11,"button",4),o.\u0275\u0275text(12," Cancel "),o.\u0275\u0275elementEnd(),o.\u0275\u0275elementStart(13,"button",5),o.\u
10275\u0275listener("click",function(){return p.onSubmit()}),o.\u0275\u0275text(14),o.\u0275\u0275elementEnd()()),2&a&&(o.\u0275\u0275advance(1),o.\u0275\u0275textInterpolate(p.data.dialogTitle||"Choose Photos"),o.\u0275\u0275advance(3),o.\u0275\u0275property("ngForOf",p.data.photos)("ngForTrackBy",p.trackBy),o.\u0275\u0275advance(6),o.\u0275\u0275textInterpolate2(" ",p.selectedPhotoKeys.size," of ",p.data.singleSelection?1:p.data.photos.length," "),o.\u0275\u0275advance(3),o.\u0275\u0275property("disabled",0===p.selectedPhotoKeys.size),o.\u0275\u0275advance(1),o.\u0275\u0275textInterpolate1(" ",p.data.submitBtnName||"Add Images"," "))},directives:[C.A,h.xY,g.NgForOf,g.NgIf,w.a,h.H8,I.s,D.V,h.ZT],styles:[".selection-icon[_ngcontent-%COMP%]{position:absolute;top:.75rem;left:.75rem;height:1.25rem;width:1.25rem;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));color:var(--brand-50, #228BE6)}"],changeDetection:0}),l})(),k=(()=>{class l{constructor(a){this.matDialog=a}openDialog(a){return this.matDialog.open(e,{panelClass:"app-v2",width:"calc(100vw - 240px)",data:a}).afterClosed()}}return l.\u0275fac=function(a){return new(a||l)(o.\u0275\u0275inject(h.uw))},l.\u0275prov=o.\u0275\u0275defineInjectable({token:l,factory:l.\u0275fac,providedIn:"root"}),l})();var x=s(53251),F=s(87238),L=s(92338);function M(l,m){1&l&&o.\u0275\u0275element(0,"i",14)}function T(l,m){if(1&l){const a=o.\u0275\u0275getCurrentView();o.\u0275\u0275elementStart(0,"div",11),o.\u0275\u0275listener("click",function(){const y=o.\u0275\u0275restoreView(a).$implicit;return o.\u0275\u0275nextContext().togglePhotoSelection(y.storeKey)}),o.\u0275\u0275element(1,"img",12),o.\u0275\u0275template(2,M,1,0,"i",13),o.\u0275\u0275elementEnd()}if(2&l){const a=m.$implicit,p=o.\u0275\u0275nextContext();o.\u0275\u0275advance(1),o.\u0275\u0275property("src",a.thumbnail,o.\u0275\u0275sanitizeUrl),o.\u0275\u0275advance(1),o.\u0275\u0275property("ngIf",p.selectedPhotoKey===a.storeKey)}}function R(l,m){1&l&&o.\u0275\u0275element(0,"i",14)}function $(l,m){if(1&l){const a=o.\u0275\u0275getCurrentView();o.\u0275\u0275elementStart(0,"div",15),o.\u0275\u0275listener("click",function(){const y=o.\u0275\u0275restoreView(a).$implicit;return o.\u0275\u0275nextContext().toggleVideoSelection(y.id)}),o.\u0275\u0275element(1,"ui-video-player",16),o.\u0275\u0275template(2,R,1,0,"i",13),o.\u0275\u0275elementEnd()}if(2&l){const a=m.$implicit,p=o.\u0275\u0275nextContext();o.\u0275\u0275property("matTooltip",a.title),o.\u0275\u0275advance(1),o.\u0275\u0275property("url",a.url),o.\u0275\u0275advance(1),o.\u0275\u0275property("ngIf",p.selectedVideoId===a.id)}}const z=function(l){return["/admin/property-dashboard",l,"photo-gallery"]};function K(l,m){if(1&l&&(o.\u0275\u0275elementStart(0,"div",17),o.\u0275\u0275text(1," Upload more photos in "),o.\u0275\u0275elementStart(2,"a",18),o.\u0275\u0275text(3," Photo Gallery "),o.\u0275\u0275elementEnd()()),2&l){const a=o.\u0275\u0275nextContext();o.\u0275\u0275advance(2),o.\u0275\u0275property("routerLink",o.\u0275\u0275pureFunction1(1,z,a.data.orderId))}}const A=function(l){return["/admin/property-dashboard",l,"videos"]};function N(l,m){if(1&l&&(o.\u0275\u0275elementStart(0,"div",17),o.\u0275\u0275text(1," Upload more videos in "),o.\u0275\u0275elementStart(2,"a",18),o.\u0275\u0275text(3," Videos "),o.\u0275\u0275elementEnd()()),2&l){const a=o.\u0275\u0275nextContext();o.\u0275\u0275advance(2),o.\u0275\u0275property("routerLink",o.\u0275\u0275pureFunction1(1,A,a.data.orderId))}}let U=(()=>{class l{constructor(a,p){this.dialogRef=a,this.data=p,this.selectedPhotoKey=null,this.selectedVideoId=null,this.selectedTabIndex=0}togglePhotoSelection(a){this.selectedPhotoKey=this.selectedPhotoKey===a?null:a,this.selectedVideoId=null}toggleVideoSelection(a){this.selectedVideoId=this.selectedVideoId===a?null:a,this.selectedPhotoKey=null}trackBy(a){return a}onSubmit(){this.dialogRef.close({selectedPhoto:this.selectedPhotoKey&&this.data.photos.find(a=>a.storeKey===this.selectedPhotoKey),selectedVideo:this.selectedVideoId&&this.data.videos.find(a=>a.id===this.selectedVideoId)})}onCancel(){this.dialogRef.close()}}return l.\u0275fac=function(a){return new(a||l)(o.\u0275\u0275directiveInject(h.so),o.\u0275\u0275directiveInject(h.WI))},l.\u0275cmp=o.\u0275\u0275defineComponent({type:l,selectors:[["tn-choose-cover-dialog"]],decls:19,vars:10,consts:[["animationDuration","0ms",1,"pt-16",3,"selectedIndex","selectedIndexChange"],["label","Photos"],[1,"p-min","pt-16","pr-16","grid","grid-cols-6","gap-4"],["class","relative cursor-pointer",3,"click",4,"ngFor","ngForOf","ngForTrackBy"],["label","Videos"],["class","relative cursor-pointer",3,"matTooltip","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"justify-between"],["class","text-12 text-gray-50",4,"ngIf"],[1,"flex","justify-between","items-center","gap-8"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary","matDialogClose",""],["uiBtnSize","medium","uiBtnTheme","main",3,"disabled","click"],[1,"relative","cursor-pointer",3,"click"],[1,"w-full","h-full","object-cover","rounded",3,"src"],["class","selection-icon","size","22","uiIcon","check_circle","uiIconVariant","filled",4,"ngIf"],["size","22","uiIcon","check_circle","uiIconVariant","filled",1,"selection-icon"],[1,"relative","cursor-pointer",3,"matTooltip","click"],[1,"pointer-events-none",3,"url"],[1,"text-12","text-gray-50"],["matDialogClose","",1,"text-12",3,"routerLink"]],template:function(a,p){1&a&&(o.\u0275\u0275elementStart(0,"ui-dialog-header"),o.\u0275\u0275text(1),o.\u0275\u0275elementEnd(),o.\u0275\u0275elementStart(2,"mat-tab-group",0),o.\u0275\u0275listener("selectedIndexChange",function(y){return p.selectedTabIndex=y}),o.\u0275\u0275elementStart(3,"mat-tab",1)(4,"mat-dialog-content")(5,"div",2),o.\u0275\u0275template(6,T,3,2,"div",3),o.\u0275\u0275elementEnd()()(),o.\u0275\u0275elementStart(7,"mat-tab",4)(8,"mat-dialog-content")(9,"div",2),o.\u0275\u0275template(10,$,3,3,"div",5),o.\u
10275\u0275elementEnd()()()(),o.\u0275\u0275elementStart(11,"mat-dialog-actions",6),o.\u0275\u0275template(12,K,4,3,"div",7),o.\u0275\u0275template(13,N,4,3,"div",7),o.\u0275\u0275elementStart(14,"div",8)(15,"button",9),o.\u0275\u0275text(16," Cancel "),o.\u0275\u0275elementEnd(),o.\u0275\u0275elementStart(17,"button",10),o.\u0275\u0275listener("click",function(){return p.onSubmit()}),o.\u0275\u0275text(18),o.\u0275\u0275elementEnd()()()),2&a&&(o.\u0275\u0275advance(1),o.\u0275\u0275textInterpolate(p.data.dialogTitle||"Choose Cover"),o.\u0275\u0275advance(1),o.\u0275\u0275property("selectedIndex",p.selectedTabIndex),o.\u0275\u0275advance(4),o.\u0275\u0275property("ngForOf",p.data.photos)("ngForTrackBy",p.trackBy),o.\u0275\u0275advance(4),o.\u0275\u0275property("ngForOf",p.data.videos)("ngForTrackBy",p.trackBy),o.\u0275\u0275advance(2),o.\u0275\u0275property("ngIf",0===p.selectedTabIndex),o.\u0275\u0275advance(1),o.\u0275\u0275property("ngIf",1===p.selectedTabIndex),o.\u0275\u0275advance(4),o.\u0275\u0275property("disabled",null===p.selectedPhotoKey&&null===p.selectedVideoId),o.\u0275\u0275advance(1),o.\u0275\u0275textInterpolate1(" ",p.data.submitBtnName||"Save"," "))},directives:[C.A,x.SP,x.uX,h.xY,g.NgForOf,g.NgIf,w.a,F.gM,L.p,h.H8,E.yS,h.ZT,I.s,D.V],styles:["mat-tab-group[_ngcontent-%COMP%]     .mat-tab-body-wrapper{--dialog-inset: 0}.selection-icon[_ngcontent-%COMP%]{position:absolute;top:.75rem;left:.75rem;height:1.25rem;width:1.25rem;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));color:var(--brand-50, #228BE6)}"],changeDetection:0}),l})(),Y=(()=>{class l{constructor(a){this.matDialog=a}openDialog(a){return this.matDialog.open(U,{panelClass:"app-v2",width:"calc(100vw - 240px)",data:a}).afterClosed()}}return l.\u0275fac=function(a){return new(a||l)(o.\u0275\u0275inject(h.uw))},l.\u0275prov=o.\u0275\u0275defineInjectable({token:l,factory:l.\u0275fac,providedIn:"root"}),l})()}}]);

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.