1"use strict";(self.webpackChunktonomo=self.webpackChunktonomo||[]).push([[4425],{4425:(ce,x,s)=>{s.r(x),s.d(x,{PropertyFeatureVirtualTourModule:()=>ue});var m=s(69808),D=s(74202),f=s(51062),v=s(49343),h=s(96410),C=s(70655),b=s(44224),w=s(36053),I=s(24850),g=s(72986),k=s(87545),M=s(2994),B=s(31307),A=s(5154),F=s(44409),$=s(50026),L=s(76230),d=(()=>{return(n=d||(d={})).Hidden="hidden",n.FileNameAscending="filename-ascending",n.FileNameDescending="filename-descending",d;var n})(),e=s(5e3);const u=(0,L.H)({selectId:n=>n.storeKey}),{selectAll:y,selectIds:z}=u.getSelectors(),E=u.getInitialState({isEnabled:!1,imagesInRow:4,propertyPhotoCollection:[]});let P=(()=>{class n extends $.m1{constructor(){super(E),this.photos$=this.select(t=>y(t)),this.isEnabled$=this.select(t=>t.isEnabled),this.imagesInRow$=this.select(t=>t.imagesInRow),this.hasVisiblePhotos$=this.select(t=>y(t).some(o=>!o.hidden)),this.photoCollectionDictionary$=this.select(t=>t.propertyPhotoCollection.reduce((o,r)=>(o[r.id]=r,o),{})),this.previewImageUrls$=this.select(this.photos$,this.photoCollectionDictionary$,(t,o)=>t.filter(r=>!r.hidden).map(r=>{var a,l;const p=r.storeKey.split("/").pop(),_=o[p];return(null===(a=null==_?void 0:_.webRes)||void 0===a?void 0:a.url)||(null===(l=null==_?void 0:_.thumbnail)||void 0===l?void 0:l.url)||""}).filter(Boolean)),this.resetState=this.updater(()=>E),this.setAllPhotos=this.updater((t,o)=>u.setAll(o,t)),this.addManyPhotos=this.updater((t,o)=>u.addMany(o,t)),this.upsertManyPhotos=this.updater((t,o)=>u.upsertMany(o,t)),this.removeAllPhotos=this.updater(t=>u.removeAll(t)),this.updateManyPhotos=this.updater((t,o)=>{const r=o.map(a=>({id:a.storeKey,changes:a}));return u.updateMany(r,t)}),this.toggleAllPhotos=this.updater((t,o)=>{const r=y(t).map(a=>({id:a.storeKey,changes:{hidden:!o}}));return u.updateMany(r,t)}),this.setIsEnabled=this.updater((t,o)=>Object.assign(Object.assign({},t),{isEnabled:o})),this.refreshIsEnabled=this.updater(t=>{const r=y(t).some(l=>!l.hidden),a=!!t.isEnabled&&r;return Object.assign(Object.assign({},t),{isEnabled:a})}),this.setImagesInRow=this.updater((t,o)=>Object.assign(Object.assign({},t),{imagesInRow:o})),this.sortPhotos=this.updater((t,o)=>{let r=y(t).slice();switch(o){case d.Hidden:r=r.sort((l,p)=>l.hidden===p.hidden?0:l.hidden?1:-1);break;case d.FileNameAscending:r=r.sort((l,p)=>l.name.localeCompare(p.name,void 0,{numeric:!0,sensitivity:"base"}));break;case d.FileNameDescending:r=r.sort((l,p)=>l.name.localeCompare(p.name,void 0,{numeric:!0,sensitivity:"base"})).reverse()}const a=r.map(l=>l.storeKey);return Object.assign(Object.assign({},t),{ids:a})}),this.changePhotoOrder=this.updater((t,o)=>{const r=z(t).slice();return(0,F.bA)(r,o.fromIndex,o.toIndex),Object.assign(Object.assign({},t),{ids:r})}),this.setPhotoCollection=this.updater((t,o)=>Object.assign(Object.assign({},t),{propertyPhotoCollection:o}))}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=e.\u0275\u0275defineInjectable({token:n,factory:n.\u0275fac}),n})();var S=s(66809),V=s(72751),T=s(92181),O=s(255),H=s(78029);function j(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",15),e.\u0275\u0275listener("click",function(){const a=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().onSort(a.type)}),e.\u0275\u0275element(1,"i",16),e.\u0275\u0275elementStart(2,"span"),e.\u0275\u0275text(3),e.\u0275\u0275pipe(4,"translate"),e.\u0275\u0275elementEnd()()}if(2&n){const t=i.$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("uiIcon",t.icon),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(4,2,t.titleKey))}}const N=function(n){return{count:n}};let U=(()=>{class n{constructor(){this.photos=[],this.imagesInRow=4,this.changeImagesInRow=new e.EventEmitter,this.sort=new e.EventEmitter,this.hideAll=new e.EventEmitter,this.removeAll=new e.EventEmitter,this.sortOptions=[{titleKey:"PROPERTY_PHOTOS_SORT_HIDDEN",icon:"visibility_off",type:d.Hidden},{titleKey:"PROPERTY_PHOTOS_SORT_FILENAME_ASC",icon:"arrow_downward",type:d.FileNameAscending},{titleKey:"PROPERTY_PHOTOS_SORT_FILENAME_DESC",icon:"arrow_upward",type:d.FileNameDescending}]}getVisibleCount(){var t;return(null===(t=this.photos)||void 0===t?void 0:t.filter(o=>!o.hidden).length)||0}isHideAllDisabled(){var t;return!(null===(t=this.photos)||void 0===t?void 0:t.length)||this.photos.every(o=>o.hidden)}isRemoveAllDisabled(){var t;return!(null===(t=this.photos)||void 0===t?void 0:t.length)}onSort(t){this.sort.emit(t)}onSetImagesInRow(t){this.changeImagesInRow.emit(t)}onHideAll(){this.hideAll.emit()}onRemoveAll(){this.removeAll.emit()}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-included-photos-toolbar"]],inputs:{photos:"photos",imagesInRow:"imagesInRow"},outputs:{changeImagesInRow:"changeImagesInRow",sort:"sort",hideAll:"hideAll",removeAll:"removeAll"},decls:24,vars:28,consts:[["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary","trailingIcon","",1,"mr-8","mb-8",3,"matMenuTriggerFor"],["sorting","btnSize"],["uiIcon","filter_list",3,"size"],["uiIcon","unfold_more",3,"size"],[1,"app-v2"],["sortingMenu","matMenu"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["color","primary",1,"ml-min","mr-auto","mb-8",3,"min","max","step","thumbL
1abel","value","change"],[1,"flex","items-center","gap-8","mb-8"],[1,"text-10","text-gray-50"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary",3,"disabled","click"],["hideAll","btnSize"],["uiIcon","visibility_off",3,"size"],["removeAll","btnSize"],["uiIcon","delete",3,"size"],["mat-menu-item","",3,"click"],[1,"mr-min",3,"uiIcon"]],template:function(t,o){if(1&t&&(e.\u0275\u0275elementStart(0,"button",0,1),e.\u0275\u0275element(2,"i",2),e.\u0275\u0275text(3),e.\u0275\u0275pipe(4,"translate"),e.\u0275\u0275element(5,"i",3),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"mat-menu",4,5),e.\u0275\u0275template(8,j,5,4,"button",6),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"mat-slider",7),e.\u0275\u0275listener("change",function(a){let l;return o.onSetImagesInRow(null!==(l=a.value)&&void 0!==l?l:4)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"div",8)(11,"div",9),e.\u0275\u0275text(12),e.\u0275\u0275pipe(13,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(14,"button",10,11),e.\u0275\u0275listener("click",function(){return o.onHideAll()}),e.\u0275\u0275element(16,"i",12),e.\u0275\u0275text(17),e.\u0275\u0275pipe(18,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(19,"button",10,13),e.\u0275\u0275listener("click",function(){return o.onRemoveAll()}),e.\u0275\u0275element(21,"i",14),e.\u0275\u0275text(22),e.\u0275\u0275pipe(23,"translate"),e.\u0275\u0275elementEnd()()),2&t){const r=e.\u0275\u0275reference(1),a=e.\u0275\u0275reference(7),l=e.\u0275\u0275reference(15),p=e.\u0275\u0275reference(20);e.\u0275\u0275property("matMenuTriggerFor",a),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",r.iconSize),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(4,17,"PROPERTY_PHOTOS_SORTING")," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",r.iconSize),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngForOf",o.sortOptions),e.\u0275\u0275advance(1),e.\u0275\u0275property("min",1)("max",12)("step",1)("thumbLabel",!0)("value",o.imagesInRow),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind2(13,19,"PROPERTY_SLIDESHOW_VISIBLE_COUNT",e.\u0275\u0275pureFunction1(26,N,o.getVisibleCount()))),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",o.isHideAllDisabled()),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",l.iconSize),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(18,22,"PROPERTY_SLIDESHOW_HIDE_ALL")," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",o.isRemoveAllDisabled()),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",p.iconSize),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(23,24,"PROPERTY_SLIDESHOW_REMOVE_ALL")," ")}},directives:[S.s,V.V,T.p6,O.a,T.VK,m.NgForOf,T.OP,H.pH],pipes:[f.X$],styles:["[_nghost-%COMP%]{display:flex;flex-wrap:wrap;align-items:center}.mat-slider[_ngcontent-%COMP%]{width:128px}"],changeDetection:0}),n})();var Y=s(25190),K=s(81782);function W(n,i){1&n&&e.\u0275\u0275element(0,"i",7)}function G(n,i){1&n&&e.\u0275\u0275element(0,"i",8)}function X(n,i){1&n&&(e.\u0275\u0275elementStart(0,"span",13),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd()),2&n&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(2,1,"PROPERTY_PHOTOS_IMAGE_OPTIMISATION")," "))}function Z(n,i){if(1&n&&(e.\u0275\u0275elementStart(0,"div",9)(1,"div",10),e.\u0275\u0275element(2,"ui-spinner",11),e.\u0275\u0275template(3,X,3,3,"span",12),e.\u0275\u0275elementEnd()()),2&n){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(3),e.\u0275\u0275property("ngIf",t.optimisation)}}let J=(()=>{class n{constructor(){this.photoItem={},this.index=0,this.urls={},this.update=new e.EventEmitter,this.imgLoaded=!1}get isHidden(){return this.photoItem.hidden}get isDummy(){return!this.photoItem.storeKey||!this.urls.thumbnail}get optimisation(){return!!this.photoItem.storeKey&&!this.urls.thumbnail}onHiddenToggle(){this.emitUpdate({hidden:!this.photoItem.hidden,favorite:!1})}emitUpdate(t){this.update.emit(Object.assign(Object.assign({},t),{storeKey:this.photoItem.storeKey}))}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-virtual-tour
1-item"]],hostVars:4,hostBindings:function(t,o){2&t&&e.\u0275\u0275classProp("is-hidden",o.isHidden)("dummy",o.isDummy)},inputs:{photoItem:"photoItem",index:"index",urls:"urls"},outputs:{update:"update"},decls:8,vars:7,consts:[[1,"image-preview","relative"],[1,"photo","rounded-0","w-full","h-full","object-cover",3,"src","error","load","contextmenu"],[1,"state-icon","top-8","right-8","cursor-pointer",3,"click"],["uiIcon","visibility_off",4,"ngIf"],["uiIcon","visibility",4,"ngIf"],[1,"order-icon","bottom-8","left-8"],["class","dummy-placeholder relative",4,"ngIf"],["uiIcon","visibility_off"],["uiIcon","visibility"],[1,"dummy-placeholder","relative"],[1,"absolute","inset-0","flex","flex-col","items-center","justify-center"],[1,"w-32","text-gray-30"],["class","mt-12 text-gray-50",4,"ngIf"],[1,"mt-12","text-gray-50"]],template:function(t,o){1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"img",1),e.\u0275\u0275listener("error",function(){return o.imgLoaded=!0})("load",function(){return o.imgLoaded=!0})("contextmenu",function(a){return a.preventDefault()}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"div",2),e.\u0275\u0275listener("click",function(){return o.onHiddenToggle()}),e.\u0275\u0275template(3,W,1,0,"i",3),e.\u0275\u0275template(4,G,1,0,"i",4),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"div",5),e.\u0275\u0275text(6),e.\u0275\u0275elementEnd()(),e.\u0275\u0275template(7,Z,4,1,"div",6)),2&t&&(e.\u0275\u0275classProp("hidden",o.isDummy||!o.imgLoaded),e.\u0275\u0275advance(1),e.\u0275\u0275property("src",o.urls.thumbnail,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",o.photoItem.hidden),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!o.photoItem.hidden),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1("#",o.index+1,""),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",o.isDummy||!o.imgLoaded))},directives:[m.NgIf,O.a,K.O],pipes:[f.X$],styles:["[_nghost-%COMP%]{display:flex;cursor:move;flex-direction:column;border-radius:.5rem;border-width:2px;border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));overflow:hidden;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)}.is-hidden[_nghost-%COMP%] .photo[_ngcontent-%COMP%]{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-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)}.state-icon[_ngcontent-%COMP%]{position:absolute;display:flex;height:1.5rem;width:1.5rem;align-content:center;justify-content:center;border-radius:.25rem;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);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));background:rgba(0,0,0,.7);box-shadow:0 8px 32px #00000026}.order-icon[_ngcontent-%COMP%]{position:absolute;border-radius:9999px;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;font-weight:600;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));background:rgba(0,0,0,.7)}.image-preview[_ngcontent-%COMP%]{height:100%}.dummy-placeholder[_ngcontent-%COMP%]{height:100%;--tw-bg-opacity: 1;background-color:rgb(246 246 246 / var(--tw-bg-opacity, 1))}"],changeDetection:0}),n})();var Q=s(11066);const q=function(){return{x:0,y:0}};function ee(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();
1e.\u0275\u0275elementStart(0,"tn-virtual-tour-item",2),e.\u0275\u0275listener("cdkDragStarted",function(){const a=e.\u0275\u0275restoreView(t).index;return e.\u0275\u0275nextContext().onDragStart(a)})("cdkDragMoved",function(r){const l=e.\u0275\u0275restoreView(t).index;return e.\u0275\u0275nextContext().onMove(r,l)})("cdkDragEnded",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onDrop()})("update",function(r){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().updatePhotoItem.emit(r)}),e.\u0275\u0275elementEnd()}if(2&n){const t=i.$implicit,o=i.index,r=e.\u0275\u0275nextContext();let a;e.\u0275\u0275styleProp("width",r.colWidth,"px")("height",r.rowHeight,"px"),e.\u0275\u0275property("photoItem",t)("index",o)("urls",r.getPhotoUrls(t))("cdkDragBoundary",r.containerRef)("cdkDragFreeDragPosition",null!==(a=r.getItemPosition(o))&&void 0!==a?a:e.\u0275\u0275pureFunction0(9,q))}}let te=(()=>{class n extends h.F8b{constructor(t,o){super(t,o),this.cdr=t,this.containerRef=o,this.photosCollection={},this.updatePhotoItem=new e.EventEmitter,this.photoItemsList=[]}set photoItems(t){this.photoItemsList=t||[],this.photoItemsLength=this.photoItemsList.length}getPhotoUrls(t){var o,r;const a=t.storeKey.split("/").pop(),l=this.photosCollection[a];return{thumbnail:(null===(o=null==l?void 0:l.thumbnail)||void 0===o?void 0:o.url)||"",webRes:(null===(r=null==l?void 0:l.webRes)||void 0===r?void 0:r.url)||""}}trackBy(t,o){return o.storeKey||t}}return n.\u0275fac=function(t){return new(t||n)(e.\u0275\u0275directiveInject(e.ChangeDetectorRef),e.\u0275\u0275directiveInject(e.ElementRef))},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-virtual-tour-list"]],inputs:{photoItems:"photoItems",photosCollection:"photosCollection"},outputs:{updatePhotoItem:"updatePhotoItem"},features:[e.\u0275\u0275InheritDefinitionFeature],decls:2,vars:2,consts:[["cdkDrag","","class","absolute top-0 left-0",3,"photoItem","index","urls","width","height","cdkDragBoundary","cdkDragFreeDragPosition","cdkDragStarted","cdkDragMoved","cdkDragEnded","update",4,"ngFor","ngForOf","ngForTrackBy"],[1,"absolute","inset-0","bg-red-50","invisible",3,"resized"],["cdkDrag","",1,"absolute","top-0","left-0",3,"photoItem","index","urls","cdkDragBoundary","cdkDragFreeDragPosition","cdkDragStarted","cdkDragMoved","cdkDragEnded","update"]],template:function(t,o){1&t&&(e.\u0275\u0275template(0,ee,1,10,"tn-virtual-tour-item",0),e.\u0275\u0275elementStart(1,"div",1),e.\u0275\u0275listener("resized",function(){return o.initGridConfig()}),e.\u0275\u0275elementEnd()),2&t&&e.\u0275\u0275property("ngForOf",o.photoItemsList)("ngForTrackBy",o.trackBy)},directives:[m.NgForOf,J,F.Zt,Q.a5],styles:["[_nghost-%COMP%]{position:relative;width:100%;flex-shrink:0;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}tn-virtual-tour-item[_ngcontent-%COMP%]:not(.cdk-drag-dragging){will-change:transform;transition:transform .3s cubic-bezier(0,0,.2,1)}.cdk-drag-dragging[_ngcontent-%COMP%]{z-index:10;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}"],changeDetection:0}),n})(),oe=(()=>{class n{constructor(t,o){this.renderer=t,this.el=o}set imageUrls(t){const o=this.el.nativeElement.querySelector(".preview-container");if(this.renderer.setProperty(o,"innerHTML",""),null==t?void 0:t.length){const r=this.renderer.createElement("ken-burns-carousel");
1this.renderer.setAttribute(r,"fade-duration","1500"),this.renderer.setAttribute(r,"slide-duration","5500"),this.renderer.setAttribute(r,"images",t.join(" ")),this.renderer.appendChild(o,r)}}}return n.\u0275fac=function(t){return new(t||n)(e.\u0275\u0275directiveInject(e.Renderer2),e.\u0275\u0275directiveInject(e.ElementRef))},n.\u0275cmp=e.\u0275\u0275defineComponent({type:n,selectors:[["tn-virtual-tour-preview"]],inputs:{imageUrls:"imageUrls"},decls:4,vars:3,consts:[[1,"preview-container"],[1,"preview-badge"]],template:function(t,o){1&t&&(e.\u0275\u0275element(0,"div",0),e.\u0275\u0275elementStart(1,"div",1),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementEnd()),2&t&&(e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,"PROPERTY_SLIDESHOW_PREVIEW")))},pipes:[f.X$],styles:["[_nghost-%COMP%]{position:relative;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding-top:56.26%}.preview-container[_ngcontent-%COMP%]{position:absolute;inset:0}.preview-badge[_ngcontent-%COMP%]{position:absolute;top:.75rem;left:.75rem;border-radius:9999px;padding-left:.75rem;padding-right:.75rem;font-size:.75rem;font-weight:600;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));background:rgba(0,0,0,.5);z-index:9999}ken-burns-carousel[_ngcontent-%COMP%]{display:block;height:100%;width:100%}"],changeDetection:0}),n})();var re=s(9149);function ne(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",19),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).pullPhotoGalleryImages()}),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd()}2&n&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(2,1,"PROPERTY_SLIDESHOW_PULL_FROM_PHOTO_GALLERY")," "))}const R=function(){return{}};function ie(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"ui-file-upload-form",17),e.\u0275\u0275listener("uploadedFiles",function(r){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAddNewPhotos(r)}),e.\u0275\u0275pipe(1,"translate"),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275template(4,ne,3,3,"button",18),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275elementEnd()}if(2&n){const t=i.ngIf,o=e.\u0275\u0275nextContext();let r;e.\u0275\u0275propertyInterpolate1("collectionPath","library/properties/",t,"")("storagePath","properties/",t,""),e.\u0275\u0275property("buttonText",e.\u0275\u0275pipeBind1(1,7,"PROPERTY_PHOTOS_BROWSE"))("headerText",e.\u0275\u0275pipeBind1(2,9,"PROPERTY_PHOTOS_UPLOAD_HEADER"))("allowedFileTypes",o.allowedFileTypes)("metadata",null!==(r=e.\u0275\u0275pipeBind1(3,11,o.imageDocumentsMetadata$))&&void 0!==r?r:e.\u0275\u0275pureFunction0(15,R)),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(5,13,o.hasPhotoGalleryImages$))}}function ae(n,i){1&n&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275element(1,"div",20),e.\u0275\u0275elementStart(2,"div",21),e.\u0275\u0275text(3),e.\u0275\u0275pipe(4,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()),2&n&&(e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(4,1,"PROPERTY_SLIDESHOW_ENABLED")))}function le(n,i){1&n&&(e.\u0275\u0275element(0,"div",22),e.\u0275\u0275elementStart(1,"div",21),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementEnd()),2&n&&(e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,1,"PROPERTY_SLIDESHOW_DISABLED")))}function se(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",23),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().disableVirtualTour()}),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd()}2&n&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(2,1,"PROPERTY_SLIDESHOW_DISABLE")," "))}function pe(n,i){if(1&n){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",24),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().enableVirtualTour()}),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementEnd()}if(2&n){const t=e.\u0275\u0275nextContext();e.\u0275\u0275property("disabled",!1===e.\u0275\u0275pipeBind1(1,2,t.hasVisiblePhotos$)),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(3,4,"PROPERTY_SLIDESHOW_ENABLE")," ")}}let c=class{constructor(i,t,o,r,a){this.singlePropertyFacade=i,this.propertyFeatureVirtualTourFacade=t,this.confirmDialogService=o,this.fileUploadComponentStore=r,this.propertyFilesRepository=a,this.propertyId$=this.singlePropertyFacade.propertyId$,this.allPropertyPhoto$=this.singlePropertyFacade.allPropertyPhoto$,this.photos$=this.propertyFeatureVirtualTourFacade.photos$,this.photoCollectionDictionary$=this.propertyFeatureVirtualTourFacade.photoCollectionDictionary$,this.previewImageUrls$=this.propertyFeatureVirtualTourFacade.previewImageUrls$,this.isEnabled$=this.propertyFeatureVirtualTourFacade.isEnabled$,this.hasVisiblePhotos$=this.propertyFeatureVirtualTourFacade.hasVisiblePhotos$,this.imagesInRow$=this.propertyFeatureVirtualTourFacade.imagesInRow$,this.filesUploadInProgress$=this.fileUploadComponentStore.inProgress$,this.hasPhotoGalleryImages$=this.allPropertyPhoto$.pipe((0,I.U)(l=>l.length>0)),this.imageDocumentsMetadata$=this.propertyId$.pipe((0,I.U)(l=>({resizable:!0,tonomoExternalId:l}))),this.allowedFileTypes=["jpeg","png","jpg"]}ngOnInit(){this.singlePropertyFacade.property$.pipe((0,g.q)(1)).subscribe(i=>{var t,o;const r=(null===(t=i.virtualTourGallery)||void 0===t?void 0:t.isEnabled)||!1,a=(null===(o=i.virtualTourGallery)||void 0===o?void 0:o.photos)||[];this.propertyFeatureVirtualTourFacade.setIsEnabled(r),this.propertyFeatureVirtualTourFacade.setAllPhotos(a),this.initPhotoCollectionSubscription(i).pipe((0,g.q)(1)).subscribe(()=>this.initStateChangesSubscription())})}canDeactivate(){return this.filesUploadInProgress$.pipe((0,g.q)(1),(0,k.w)(i=>i?this.confirmDialogService.confirm({message:["Media files are being downloaded.","Do you want to continue downloading?"],okButtonText:"Continue",cancelButtonText:"Undo"}).pipe((0,I.U)(a=>!a),(0,M.b)(a=>{a&&(this.fileUploadComponentStore.cancelUploading(),this.singlePropertyFacade.setPristineStatus(!0))})):this.singlePropertyFacade.canDeactivate()))}initStateChangesSubscription(){(0,w.aj)([this.photos$,this.isEnabled$]).pipe((0,b.t)(this),(0,B.T)(1)).subscribe(()=>{this.singlePropertyFacade.setPristineStatus(!1)})}initPhotoCollectionSubscription(i){const t=this.propertyFilesRepository.getPropertyPhotos(i.tonomoExternalId).pipe((0,A.d)({bufferSize:1,refCount:!0}),(0,b.t)(this));return t.subscribe(o=>{this.propertyFeatureVirtualTourFacade.setPhotoCollection(o)}),t}onSortImages(i){this.propertyFeatureVirtualTourFacade.sortPhotos(i)}onChangeImagesInRow(i){this.propertyFeatureVirtualTourFacade.setImagesInRow(i)}onHideAll(){this.propertyFeatureVirtualTourFacade.toggleAllPhotos(!1),this.propertyFeatureVirtualTourFacade.setIsEnabled(!1)}onRemoveAll(){this.propertyFeatureVirtualTourFacade.removeAllPhotos(),this.propertyFeatureVirtualTourFacade.setIsEnabled(!1)}onAddNewPhotos(i){const t=i.filter(o=>"success"===o.state).map(o=>{const r=o.metadata.customMetadata;return{name:r.fileName,storeKey:r.storeKey}});this.propertyFeatureVirtualTourFacade.addManyPhotos(t),this.propertyFeatureVirtualTourFacade.refreshIsEnabled(),this.propertyId$.pipe((0,g.q)(1)).subscribe(o=>this.propertyFilesRepository.refreshPhotos(o))}pullPhotoGalleryImages(){this.allPropertyPhoto$.pipe((0,g.q)(1)).subscribe(i=>{this.propertyFeatureVirtualTourFacade.upsertManyPhotos(i),this.propertyFeatureVirtualTourFacade.refreshIsEnabled()})}updatePhotoItem(i){this.propertyFeatureVirtualTourFacade.updateManyPhotos([i]),this.propertyFeatureVirtualTourFacade.refreshIsEnabled()}onPhotoMove(i){this.propertyFeatureVirtualTourFacade.changePhotoOrder(i)}enableVirtualTour(){this.propertyFeatureVirtualTourFacade.setIsEnabled(!0)}disableVirtualTour(){this.propertyFeatureVirtualTourFacade.setIsEnabled(!1)}onSaveChanges(){(0,w.aj)([this.isEnabled$,this.photos$,this.singlePropertyFacade.property$]).pipe((0,g.q)(1)).subscribe(([i,t,o])=>{this.singlePropertyFacade.updateProperty({virtualTourGallery:{isEnabled:i,photos:t},tonomoExternalId:o.tonomoExternalId})})}};c.\u0275fac=function(i){return new(i||c)(e.\u0275\u0275directiveInject(v.RV),e.\u0275\u0275directiveInject(P),e.\u0275\u0275directiveInject(h.DNF),e.\u0275\u0275directiveInject(h.$X_),e.\u0275\u0275directiveInject(v.Dw))},c.\u0275cmp=e.\u0275\u0275defineComponent({type:c,selectors:[["tn-property-feature-virtual-tour"]],features:[e.\u0275\u0275ProvidersFeature([P])],decls:33,vars:36,consts:[[1,"mb-16"],[1,"virtual-tour
1-grid"],[1,"included-photos-col"],[1,"leading-6","mb-8"],[3,"photos","imagesInRow","changeImagesInRow","sort","hideAll","removeAll"],[1,"border-1","border-gray-15","rounded","bg-gray-5","p-8"],[3,"buttonText","collectionPath","headerText","storagePath","allowedFileTypes","metadata","uploadedFiles",4,"ngIf"],[1,"flex","flex-col","h-full","overflow-auto"],[3,"colsNumber","photoItems","photosCollection","move","updatePhotoItem"],[1,"preview-col"],[3,"imageUrls"],[1,"flex","justify-between","items-center","gap-16","bg-gray-10","p-16","mt-16"],[1,"flex","items-center"],[4,"ngIf","ngIfElse"],["disabledIndicator",""],["uiBtnSize","medium","uiBtnTheme","main","class","flex-shrink-0",3,"click",4,"ngIf","ngIfElse"],["enableButton",""],[3,"buttonText","collectionPath","headerText","storagePath","allowedFileTypes","metadata","uploadedFiles"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary","class","mr-8",3,"click",4,"ngIf"],["uiBtnSize","small","uiBtnTheme","main","themeMode","tertiary",1,"mr-8",3,"click"],[1,"enabled-indicator"],[1,"indicator-label"],[1,"disabled-indicator"],["uiBtnSize","medium","uiBtnTheme","main",1,"flex-shrink-0",3,"click"],["uiBtnSize","medium","uiBtnTheme","main",1,"flex-shrink-0",3,"disabled","click"]],template:function(i,t){if(1&i&&(e.\u0275\u0275elementStart(0,"h2",0),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div",1)(4,"div",2)(5,"h3",3),e.\u0275\u0275text(6),e.\u0275\u0275pipe(7,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"tn-included-photos-toolbar",4),e.\u0275\u0275listener("changeImagesInRow",function(r){return t.onChangeImagesInRow(r)})("sort",function(r){return t.onSortImages(r)})("hideAll",function(){return t.onHideAll()})("removeAll",function(){return t.onRemoveAll()}),e.\u0275\u0275pipe(9,"async"),e.\u0275\u0275pipe(10,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(11,"div",5),e.\u0275\u0275template(12,ie,6,16,"ui-file-upload-form",6),e.\u0275\u0275pipe(13,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(14,"div",7)(15,"tn-virtual-tour-list",8),e.\u0275\u0275listener("move",function(r){return t.onPhotoMove(r)})("updatePhotoItem",function(r){return t.updatePhotoItem(r)}),e.\u0275\u0275pipe(16,"async"),e.\u0275\u0275pipe(17,"async"),e.\u0275\u0275pipe(18,"async"),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(19,"div",9),e.\u0275\u0275element(20,"tn-virtual-tour-preview",10),e.\u0275\u0275pipe(21,"async"),e.\u0275\u0275elementStart(22,"div",11)(23,"div",12),e.\u0275\u0275template(24,ae,5,3,"ng-container",13),e.\u0275\u0275pipe(25,"async"),e.\u0275\u0275template(26,le,4,3,"ng-template",null,14,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(28,se,3,3,"button",15),e.\u0275\u0275pipe(29,"async"),e.\u0275\u0275template(30,pe,4,6,"ng-template",null,16,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275element(32,"ui-file-upload-status-bar")),2&i){const o=e.\u0275\u0275reference(27),r=e.\u0275\u0275reference(31);let a,l,p;e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(2,13,"PROPERTY_SLIDESHOW_TITLE")),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(7,15,"PROPERTY_SLIDESHOW_INCLUDED_PHOTOS")),e.\u0275\u0275advance(2),e.\u0275\u0275property("photos",e.\u0275\u0275pipeBind1(9,17,t.photos$))("imagesInRow",null!==(a=e.\u0275\u0275pipeBind1(10,19,t.imagesInRow$))&&void 0!==a?a:4),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(13,21,t.propertyId$)),e.\u0275\u0275advance(3),e.\u0275\u0275property("colsNumber",null!==(l=e.\u0275\u0275pipeBind1(16,23,t.imagesInRow$))&&void 0!==l?l:4)("photoItems",e.\u0275\u0275pipeBind1(17,25,t.photos$))("photosCollection",null!==(p=e.\u0275\u0275pipeBind1(18,27,t.photoCollectionDictionary$))&&void 0!==p?p:e.\u0275\u0275pureFunction0(35,R)),e.\u0275\u0275advance(5),e.\u0275\u0275property("imageUrls",e.\u0275\u0275pipeBind1(21,29,t.previewImageUrls$)),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(25,31,t.isEnabled$))("ngIfElse",o),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(29,33,t.isEnabled$))("ngIfElse",r)}},directives:[U,m.NgIf,Y.j,S.s,V.V,te,oe,re.B],pipes:[f.X$,m.AsyncPipe],styles:["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column;padding:1.5rem}
1.virtual-tour-grid[_ngcontent-%COMP%]{display:grid;height:100%;min-height:0;grid-template-columns:repeat(1,minmax(0,1fr));grid-gap:1.5rem;gap:1.5rem}@media (min-width: 1280px){.virtual-tour-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(12,minmax(0,1fr))}}.included-photos-col[_ngcontent-%COMP%]{grid-column:span 1 / span 1;display:flex;height:auto;flex-direction:column}@media (min-width: 1280px){.included-photos-col[_ngcontent-%COMP%]{grid-column:span 7 / span 7;height:100%;overflow:hidden}}.preview-col[_ngcontent-%COMP%]{grid-column:span 1 / span 1;display:flex;flex-direction:column}@media (min-width: 1280px){.preview-col[_ngcontent-%COMP%]{grid-column:span 5 / span 5}}.enabled-indicator[_ngcontent-%COMP%]{height:.75rem;width:.75rem;flex-shrink:0;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(12 166 120 / var(--tw-bg-opacity, 1));box-shadow:0 0 8px #0ca678e5}.disabled-indicator[_ngcontent-%COMP%]{height:.75rem;width:.75rem;flex-shrink:0;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(250 82 82 / var(--tw-bg-opacity, 1))}.indicator-label[_ngcontent-%COMP%]{padding-left:.75rem;font-size:1rem;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1))}"]}),c=(0,C.gn)([(0,b.c)(),(0,C.w6)("design:paramtypes",[v.RV,P,h.DNF,h.$X_,v.Dw])],c);const de=[{path:"",pathMatch:"full",component:c,canDeactivate:[v.$v]}];let ue=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.\u0275\u0275defineNgModule({type:n}),n.\u0275inj=e.\u0275\u0275defineInjector({imports:[[m.CommonModule,D.Bz.forChild(de),h.eYi,f.aw]]}),n})()}}]);
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.