PageSourceSearch

https://spoyla.com/6216.b67f8c5ed318de35.js

js spoyla.com collected 2026-09-24 14:54:02 UTC 165,626 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[6216],{2842(z,P,v){v.d(P,{w:()=>k});var k=function(w){return w[w.Private=1]="Private",w[w.Public=2]="Public",w[w.Friends=3]="Friends",w[w.AnyoneWithLink=4]="AnyoneWithLink",w}(k||{})},8945(z,P,v){v.d(P,{c:()=>k});var k=function(w){return w[w.Buying=1]="Buying",w[w.BuyingElsewhere=2]="BuyingElsewhere",w[w.Purchased=3]="Purchased",w[w.MakingIt=4]="MakingIt",w[w.GroupGift=5]="GroupGift",w}(k||{})},1942(z,P,v){v.d(P,{G:()=>k});class k{}},9(z,P,v){v.d(P,{n:()=>T});var k=v(467),w=v(2200),h=v(7798),W=v(2615),d=v(3664);function F(y,G){if(1&y&&(d.j41(0,"div",12),d.nrm(1,"ion-icon",13),d.j41(2,"span"),d.EFF(3),d.k0s()()),2&y){const f=d.XpG();d.AVh("status-warning-card-danger","danger"===(null==f.item||null==f.item.statusWarning?null:f.item.statusWarning.severity)),d.R7$(),d.Y8G("name","danger"===(null==f.item||null==f.item.statusWarning?null:f.item.statusWarning.severity)?"close-circle-outline":"warning-outline"),d.R7$(2),d.JRh(null==f.item||null==f.item.statusWarning?null:f.item.statusWarning.message)}}function u(y,G){if(1&y&&(d.j41(0,"div",14),d.nrm(1,"ion-img",15),d.k0s()),2&y){const f=d.XpG();d.R7$(),d.Y8G("src",(null==f.item?null:f.item.imageUrl)||"")}}function j(y,G){if(1&y&&(d.j41(0,"div",16)(1,"div",17),d.nrm(2,"ion-icon",18),d.j41(3,"span"),d.EFF(4,"Note"),d.k0s()(),d.j41(5,"p",19),d.EFF(6),d.k0s()()),2&y){const f=d.XpG();d.R7$(6),d.JRh(null==f.item?null:f.item.notes)}}function e(y,G){if(1&y&&(d.j41(0,"div",20),d.nrm(1,"ion-icon",21),d.j41(2,"span",22),d.EFF(3),d.k0s()()),2&y){const f=d.XpG();d.R7$(3),d.JRh(null==f.item?null:f.item.priceText)}}function c(y,G){if(1&y&&(d.j41(0,"div",16)(1,"div",17),d.nrm(2,"ion-icon",23),d.j41(3,"span"),d.EFF(4,"Shop"),d.k0s()(),d.j41(5,"p",19),d.EFF(6),d.k0s()()),2&y){const f=d.XpG();d.R7$(6),d.JRh(null!=f.item&&f.item.hasShopHost?null==f.item?null:f.item.shopHostText:null==f.item?null:f.item.shopUrl)}}function Y(y,G){if(1&y&&(d.j41(0,"div",16)(1,"div",17),d.nrm(2,"ion-icon",24),d.j41(3,"span"),d.EFF(4,"Description"),d.k0s()(),d.j41(5,"p",19),d.EFF(6),d.k0s()()),2&y){const f=d.XpG();d.R7$(6),d.JRh(null==f.item?null:f.item.description)}}function D(y,G){1&y&&(d.j41(0,"div",25)(1,"p"),d.EFF(2,"No additional details for this item."),d.k0s()())}function U(y,G){if(1&y){const f=d.RV6();d.j41(0,"ion-button",31),d.bIt("click",function(){W.eBV(f);const M=d.XpG(2);return W.Njj(M.onAction("iwantthis"))}),d.nrm(1,"ion-icon",32),d.EFF(2," I want this "),d.k0s()}}function $(y,G){if(1&y){const f=d.RV6();d.j41(0,"ion-button",33),d.bIt("click",function(){W.eBV(f);const M=d.XpG(2);return W.Njj(M.onAction("reserve"))}),d.nrm(1,"ion-icon",34),d.EFF(2),d.k0s()}if(2&y){const f=d.XpG(2);d.R7$(),d.Y8G("name",null!=f.item&&f.item.isReservedByCurrentUser?"bookmark":"bookmark-outline"),d.R7$(),d.SpI(" ",null!=f.item&&f.item.isReservedByCurrentUser?"Unreserve":"Reserve"," ")}}function B(y,G){if(1&y){const f=d.RV6();d.j41(0,"ion-button",35),d.bIt("click",function(){W.eBV(f);const M=d.XpG(2);return W.Njj(M.onAction("shop"))}),d.nrm(1,"ion-icon",36),d.EFF(2," Shop "),d.k0s()}}function N(y,G){if(1&y){const f=d.RV6();d.j41(0,"ion-button",33),d.bIt("click",function(){W.eBV(f);const M=d.XpG(2);return W.Njj(M.onAction("share"))}),d.nrm(1,"ion-icon",37),d.EFF(2," Share "),d.k0s()}}function S(y,G){if(1&y&&(d.j41(0,"div",26)(1,"div",27),d.DNE(2,U,3,0,"ion-button",28)(3,$,3,2,"ion-button",29)(4,B,3,0,"ion-button",30)(5,N,3,0,"ion-button",29),d.k0s()()),2&y){const f=d.XpG();d.R7$(2),d.Y8G("ngIf",null==f.item?null:f.item.canAddToWishlist),d.R7$(),d.Y8G("ngIf",null==f.item?null:f.item.canReserve),d.R7$(),d.Y8G("ngIf",null==f.item?null:f.item.hasShopUrl),d.R7$(),d.Y8G("ngIf",null==f.item?null:f.item.wishlistItemId)}}let T=(()=>{var y;class G{constructor(C){this.modalController=C,this.item=null}closeModal(){var C=this;return(0,k.A)(function*(){yield C.modalController.dismiss()})()}onAction(C){var M=this;return(0,k.A)(function*(){yield M.modalController.dismiss({action:C},"action")})()}static#e=y=()=>(this.\u0275fac=function(M){return new(M||G)(d.rXU(h.W3))},this.\u0275cmp=d.VBU({type:G,selectors:[["app-wishlist-item-info-modal"]],inputs:{item:"item"},decls:15,vars:9,consts:[[1,"item-info-shell"],[1,"item-info-header"],[1,"item-info-title"],["fill","clear","aria-label","Close item details",1,"item-info-close",3,"click"],["name","close","slot","icon-only"],[1,"item-info-scroll"],["class","status-warning-card",3,"status-warning-card-danger",4,"ngIf"],["class","item-info-image",4,"ngIf"],["class","notes-section",4,"ngIf"],["class","price-row",4,"ngIf"],["class","empty-state",4,"ngIf"],["class","actions-footer",4,"ngIf"],[1,"status-warning-card"],["aria-hidden","true",3,"name"],[1,"item-info-image"],[3,"src"],[1,"n
1otes-section"],[1,"notes-label"],["name","document-text-outline","aria-hidden","true"],[1,"notes-text"],[1,"price-row"],["name","pricetag-outline","aria-hidden","true"],[1,"price-value"],["name","cart-outline","aria-hidden","true"],["name","reader-outline","aria-hidden","true"],[1,"empty-state"],[1,"actions-footer"],[1,"actions-grid"],["fill","solid","class","action-button action-button-iwant",3,"click",4,"ngIf"],["fill","outline","class","action-button",3,"click",4,"ngIf"],["fill","solid","class","action-button action-button-shop",3,"click",4,"ngIf"],["fill","solid",1,"action-button","action-button-iwant",3,"click"],["name","heart-outline","slot","start"],["fill","outline",1,"action-button",3,"click"],["slot","start",3,"name"],["fill","solid",1,"action-button","action-button-shop",3,"click"],["name","cart-outline","slot","start"],["name","share-outline","slot","start"]],template:function(M,b){1&M&&(d.j41(0,"div",0)(1,"div",1)(2,"h2",2),d.EFF(3),d.k0s(),d.j41(4,"ion-button",3),d.bIt("click",function(){return b.closeModal()}),d.nrm(5,"ion-icon",4),d.k0s()(),d.j41(6,"div",5),d.DNE(7,F,4,4,"div",6)(8,u,2,1,"div",7)(9,j,7,1,"div",8)(10,e,4,1,"div",9)(11,c,7,1,"div",8)(12,Y,7,1,"div",8)(13,D,3,0,"div",10),d.k0s(),d.DNE(14,S,6,4,"div",11),d.k0s()),2&M&&(d.R7$(3),d.JRh((null==b.item?null:b.item.title)||"Untitled Item"),d.R7$(4),d.Y8G("ngIf",null==b.item?null:b.item.statusWarning),d.R7$(),d.Y8G("ngIf",null==b.item?null:b.item.hasImage),d.R7$(),d.Y8G("ngIf",null==b.item?null:b.item.hasNotes),d.R7$(),d.Y8G("ngIf",null==b.item?null:b.item.hasPrice),d.R7$(),d.Y8G("ngIf",null==b.item?null:b.item.hasShopUrl),d.R7$(),d.Y8G("ngIf",null==b.item?null:b.item.hasDescription),d.R7$(),d.Y8G("ngIf",!(null!=b.item&&b.item.hasImage||null!=b.item&&b.item.hasPrice||null!=b.item&&b.item.hasDescription||null!=b.item&&b.item.hasNotes||null!=b.item&&b.item.hasShopUrl)),d.R7$(),d.Y8G("ngIf",(null==b.item?null:b.item.canAddToWishlist)||(null==b.item?null:b.item.canReserve)||(null==b.item?null:b.item.hasShopUrl)||(null==b.item?null:b.item.wishlistItemId)))},dependencies:[w.MD,w.bT,h.bv,h.Jm,h.iq,h.KW],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--spoyla-bg-mist)}.item-info-shell[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;width:100%}.item-info-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(220,227,234,.7);background:#f8fafd}.item-info-title[_ngcontent-%COMP%]{margin:0;min-width:0;font-size:16px;font-weight:600;color:#2e3440;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-info-close[_ngcontent-%COMP%]{--color: #8e98a8;margin:0;flex-shrink:0}.item-info-scroll[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 16px calc(28px + env(safe-area-inset-bottom,0px))}.item-info-image[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:180px;overflow:hidden;border:1px solid rgba(46,52,64,.08);border-radius:16px;background:#fff}.item-info-image[_ngcontent-%COMP%]   ion-img[_ngcontent-%COMP%]{width:100%;height:220px;object-fit:contain}.price-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;background:rgba(var(--spoyla-accent-mauve-rgb),.07);border-radius:12px;padding:10px 14px}.price-row[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:20px;color:var(--ion-color-primary);flex-shrink:0}.price-value[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:var(--ion-color-primary)}.notes-section[_ngcontent-%COMP%]{border:1px solid rgba(46,52,64,.08);border-radius:12px;background:#f8fafdcc;padding:10px 14px}.notes-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--spoyla-text-strong);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.notes-label[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:16px;color:#61758f}.notes-text[_ngcontent-%COMP%]{margin:0;font-size:14px;line-height:1.5;color:var(--spoyla-text-subtle);
1white-space:pre-wrap;word-break:break-word}.empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;font-size:14px;color:var(--spoyla-text-subtle);text-align:center}.status-warning-card[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;background:#fff4cc;border:1px solid #F5C542}.status-warning-card[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:22px;flex-shrink:0;margin-top:1px;color:#8a6d1d}.status-warning-card[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:13px;line-height:1.45;color:#8a6d1d}.status-warning-card.status-warning-card-danger[_ngcontent-%COMP%]{background:#ffeaea;border-color:#e57373}.status-warning-card.status-warning-card-danger[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%], .status-warning-card.status-warning-card-danger[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:#c0392b}.actions-footer[_ngcontent-%COMP%]{flex-shrink:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(46,52,64,.06);background:#f8fafd}.actions-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.action-button[_ngcontent-%COMP%]{margin:0;--border-radius: 12px;height:44px;font-size:13px;font-weight:600}.action-button[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:18px}.action-button-iwant[_ngcontent-%COMP%]{--background: var(--ion-color-primary);--background-activated: var(--ion-color-primary-shade);--color: #ffffff}.action-button-shop[_ngcontent-%COMP%]{--background: linear-gradient(135deg, #e7c981 0%, #f0d898 50%, #e7c981 100%);--color: #2E3440;--border-color: #e7c981;--border-width: 1.5px;--border-style: solid;font-weight:700}"]}))}return y(),G})()},6216(z,P,v){v.d(P,{WishlistModule:()=>Ss});var k=v(2200),w=v(4341),h=v(7798),W=v(5553),d=v(4363),F=v(8132),u=v(467),j=v(9044),e=v(3664),c=v(2615),Y=v(1830),D=v(721),U=v(2047),$=v(744),B=v(8461),N=v(9601);function S(n,o){1&n&&(e.j41(0,"div",14)(1,"div",15),e.nrm(2,"ion-skeleton-text",16),e.k0s(),e.j41(3,"div",17),e.nrm(4,"ion-skeleton-text",18)(5,"ion-skeleton-text",19),e.k0s()()),2&n&&(e.R7$(2),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function T(n,o){if(1&n&&(e.j41(0,"div",12),e.DNE(1,S,6,3,"div",13),e.k0s()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngForOf",s.skeletonCards)}}function y(n,o){if(1&n){const s=e.RV6();e.j41(0,"div")(1,"app-page-load-error",20),e.bIt("retry",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.retryLoad())}),e.k0s()()}}function G(n,o){if(1&n&&e.nrm(0,"img",29),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.name+" artwork")}}function f(n,o){1&n&&e.nrm(0,"ion-icon",30)}function C(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",24),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(2);return c.Njj(r.openWishlist(t.wishlistId))}),e.j41(1,"div",15),e.DNE(2,G,1,2,"img",25)(3,f,1,0,"ion-icon",26),e.k0s(),e.j41(4,"div",17)(5,"div",27),e.EFF(6),e.k0s(),e.j41(7,"div",28),e.EFF(8),e.k0s()()()}if(2&n){const s=o.$implicit;e.R7$(2),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(3),e.JRh(s.name),e.R7$(2),e.JRh(s.itemCountText)}}function M(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",31)(1,"div",32)(2,"div",33),e.nrm(3,"ion-icon",34),e.k0s(),e.j41(4,"div",35),e.EFF(5,"No wishlists yet"),e.k0s(),e.j41(6,"div",36),e.EFF(7,"Create your first wishlist to start collecting wishes."),e.k0s(),e.j41(8,"ion-button",37),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openCreateWishlist())}),e.nrm(9,"ion-icon",38),e.EFF(10," Create Wishlist "),e.k0s()()()}}function b(n,o){1&n&&e.nrm(0,"ion-skeleton-text",42),2&n&&e.Y8G("animated",!0)}function ne(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",39)(1,"ion-button",40),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.loadMoreMyWishlists())}),e.DNE(2,b,1,1,"ion-skeleton-text",41),e.EFF(3," Load more "),e.k0s()()}if(2&n){const s=e.XpG(2);e.R7$(),e.Y8G("disabled",s.isLoadingMoreMyWishlists),e.R7$(),e.Y8G("ngIf",s.isLoadingMoreMyWishlists)}}function ue(n,o){if(1&n&&(e.qex(0),e.j41(1,"div",12),e.DNE(2,C,9,4,"div",21)(3,M,11,0,"div",22),e.k0s(),e.DNE(4,ne,4,2,"div",23),e.bVm()),2&n){const s=e.XpG();e.R7$(2),e.Y8G("ngForOf",s.myWishlists),e.R7$(),e.Y8G("ngIf",0===s.myWishlists.length),e.R7$(),e.Y8G("ngIf",s.hasMoreMyWishlists)}}let pe=(()=>{var n;class o{constructor(i,t,r,a,l){this.nav=i,this.wishlistService=t,this.mediaAssetService=r,this.common=a,this.reportedMediaService=l,this.isBusy=!0,this.hasError=!1,this.skeletonCards=[0,1],this.myWishlists=[],this.myWishlistsTotalCount=0,this.hasMoreMyWishlists=!1,this.isLoadingMoreMyWishlists=!1,this.myWishlistsPageNumber=1}ionViewWillEnter(){var i=this;return(0,u.A)(function*(){yield i.loadAll()})()}openWishlist(i){var t=this;return(0,u.A)(function*(){yield t.nav.navigateForward(`/app/wishlist/${i}`)})()}openCreateWishlist(){var i=this;return(0,u.A)(function*(){yield i.nav.navigateForward("/app/wishlist/new?returnTo=/app/wishlist")})()}retryLoad(){var i=this;return(0,u.A)(function*(){yield i.loadAll()})()}loadMoreMyWishlists(){var i=this;return(0,u.A)(function*(){if(!i.isLoadingMoreMyWishlists&&i.hasMoreMyWishlists)try{i.isLoadingMoreMyWishlists=!0;const t=i.myWishlistsPageNumber+1,r=yield i.wishlistService.GetUserWishlists(t,10),a=(r?.items||[]).filter(l=>2!==l?.wishlistTypeId).map(l=>i.mapMyWishlist(l));i.myWishlists=[...i.myWishlists,...a],i.myWishlistsPageNumber=t,i.myWishlistsTotalCount=r?.totalCount??i.myWishlistsTotalCount,i.hasMoreMyWishlists=i.myWishlists.length<i.myWishlistsTotalCount}catch(t){yield i.common.handleError(t,"We could not load more wishlists.")}finally{i.isLoadingMoreMyWishlists=!1}})()}loadAll(){var i=this;return(0,u.A)(function*(){try{i.isBusy=!0,i.hasError=!1,i.myWishlistsPageNumber=1;const t=yield i.wishlistService.GetUserWishlists(1,10);i.myWishlists=(t?.items||[]).filter(r=>2!==r?.wishlistTypeId).map(r=>i.mapMyWishlist(r)),i.myWishlistsTotalCount=t?.totalCount??i.myWishlists.length,i.hasMoreMyWishlists=i.myWishlists.length<i.myWishlistsTotalCount}catch{i.hasError=!0,i.myWishlists=[],i.myWishlistsTotalCount=0,i.hasMoreMyWishlists=!1}finally{i.isBusy=!1}})()}mapMyWishlist(i){const t=i.totalItems||0,r=this.getPrivacy(i.wishlistShareTypeId??0);
1return{wishlistId:i.wishlistId||"",name:i.name||"Wishlist",description:i.description||"",itemCountText:1===t?"1 item":`${t} items`,privacyLabel:r.label,privacyIcon:r.icon,imageUrl:this.reportedMediaService.isReported(i.media?.mediaId)?null:this.mediaAssetService.getMediaUrl(i.media)}}getPrivacy(i){switch(i){case j.G.Public:return{label:"Public",icon:"globe-outline"};case j.G.AnyoneWithLink:return{label:"Anyone with link",icon:"link-outline"};case j.G.Friends:return{label:"Friends",icon:"people-outline"};default:return{label:"Private",icon:"lock-closed-outline"}}}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(Y.q9),e.rXU(D.w),e.rXU(U.S),e.rXU($.o),e.rXU(B.p))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-dashboard"]],standalone:!1,decls:18,vars:4,consts:[[1,"page-toolbar"],["slot","start"],["menu","app-shell-menu"],[1,"page-toolbar-title-wrap"],[1,"page-toolbar-title"],["slot","end",1,"page-toolbar-actions"],["type","button","aria-label","New wishlist",1,"header-action","header-action--on-surface",3,"click"],["name","add-outline"],[3,"fullscreen"],[1,"page"],["class","grid-2 grid-2--flush",4,"ngIf"],[4,"ngIf"],[1,"grid-2","grid-2--flush"],["class","wlcard",4,"ngFor","ngForOf"],[1,"wlcard"],[1,"wlcard__media"],[1,"spoyla-skeleton-fill",3,"animated"],[1,"wlcard__body"],[2,"width","70%","height","14px",3,"animated"],[2,"width","40%","height","12px","margin-top","6px",3,"animated"],["title","Wishlists unavailable","message","We could not load your wishlists right now.",3,"retry"],["class","wlcard",3,"click",4,"ngFor","ngForOf"],["class","grid-span-all",4,"ngIf"],["class","load-more-wrap",4,"ngIf"],[1,"wlcard",3,"click"],[3,"src","alt",4,"ngIf"],["name","gift-outline",4,"ngIf"],[1,"wlcard__name"],[1,"wlcard__count"],[3,"src","alt"],["name","gift-outline"],[1,"grid-span-all"],[1,"empty"],[1,"empty__icon"],["name","heart-outline"],[1,"empty__title"],[1,"empty__body"],["fill","outline","size","small",3,"click"],["name","add-outline","slot","start"],[1,"load-more-wrap"],["fill","outline","size","small",3,"click","disabled"],["slot","start","class","spoyla-skeleton-button-label",3,"animated",4,"ngIf"],["slot","start",1,"spoyla-skeleton-button-label",3,"animated"]],template:function(t,r){1&t&&(e.j41(0,"ion-header",0)(1,"ion-toolbar")(2,"ion-buttons",1),e.nrm(3,"ion-menu-button",2),e.k0s(),e.j41(4,"ion-title")(5,"div",3)(6,"span",4),e.EFF(7,"Wishlists"),e.k0s()()(),e.j41(8,"div",5)(9,"button",6),e.bIt("click",function(){return r.openCreateWishlist()}),e.nrm(10,"ion-icon",7),e.j41(11,"span"),e.EFF(12,"New Wishlist"),e.k0s()()()()(),e.j41(13,"ion-content",8)(14,"div",9),e.DNE(15,T,2,1,"div",10)(16,y,2,0,"div",11)(17,ue,5,3,"ng-container",11),e.k0s()()),2&t&&(e.R7$(13),e.Y8G("fullscreen",!0),e.R7$(2),e.Y8G("ngIf",r.isBusy),e.R7$(),e.Y8G("ngIf",!r.isBusy&&r.hasError),e.R7$(),e.Y8G("ngIf",!r.isBusy&&!r.hasError))},dependencies:[k.Sq,k.bT,h.Jm,h.QW,h.W9,h.eU,h.iq,h.MC,h.ds,h.BC,h.ai,N.F],styles:["[_nghost-%COMP%]{display:block}"]}))}return n(),o})();var A=v(6756);class ve{constructor(o=()=>{},s=450,i=10){this.onChange=o,this.longPressMs=s,this.moveCancelThresholdPx=i,this.isSelectMode=!1,this.selectedCount=0,this.selectedItemIds=new Set,this.pressStartX=0,this.pressStartY=0,this.suppressClick=!1}isItemSelected(o){return this.selectedItemIds.has(o)}selectedIds(){return[...this.selectedItemIds]}startPress(o,s,i){this.suppressClick=!1,this.pressStartX=s,this.pressStartY=i,this.clearTimer(),this.longPressTimeoutId=window.setTimeout(()=>{this.suppressClick=!0,this.enterSelectMode(o)},this.longPressMs)}movePress(o,s){this.longPressTimeoutId&&Math.abs(o-this.pressStartX)+Math.abs(s-this.pressStartY)>this.moveCancelThresholdPx&&this.clearTimer()}endPress(){this.clearTimer()}consumeSuppressedClick(){return!!this.suppressClick&&(this.suppressClick=!1,!0)}enterSelectMode(o){this.isSelectMode=!0,this.selectedItemIds.clear(),o&&this.selectedItemIds.add(o),this.updateCount()}toggle(o){o&&(this.selectedItemIds.has(o)?this.selectedItemIds.delete(o):this.selectedItemIds.add(o),this.updateCount())}exit(){this.isSelectMode=!1,this.selectedItemIds.clear(),this.updateCount()}updateCount(){this.selectedCount=this.selectedItemIds.size,this.onChange()}clearTimer(){this.longPressTimeoutId&&(clearTimeout(this.longPressTimeoutId),this.longPressTimeoutId=void 0)}}var fe=v(5535),oe=v(4178),ae=v(5312),O=v(8945),R=v(3928),le=v(1942),J=v(4221),Ie=v(2643),K=v(5216),Q=v(3559);const we=["imageFileInput"];function ye(n,o){1&n&&(e.j41(0,"div"),e.nrm(1,"ion-skeleton-text",21)(2,"ion-skeleton-text",22),e.k0s()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function be(n,o){if(1&n&&(e.j41(0,"ion-card",18)(1,"ion-card-content")(2,"div",19),e.DNE(3,ye,3,2,"div",20),e.k0s()()()),2&n){const s=e.XpG();e.R7$(3),e.Y8G("ngForOf",s.loadingPlaceholders)}}function ke(n,o){if(1&n&&(e.j41(0,"div",23),e.nrm(1,"img",24),e.k0s()),2&n){const s=e.XpG();e.R7$(),e.Y8G("alt",e.mNQ(s.title||"Item image"))("src",s.selectedImageUrl,e.B4B)}}function Re(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",25)(1,"div",26),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.openUrl())}),e.j41(2,"span",27),e.EFF(3),e.k0s()(),e.j41(4,"ion-button",28),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.openUrl())}),e.nrm(5,"ion-icon",29),e.EFF(6," Preview "),e.k0s()()}if(2&n){const s=e.XpG();e.R7$(3),e.JRh(s.originalUrl)}}function Ee(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",37),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(2);return c.Njj(r.selectImageCandidate(t))}),e.nrm(1,"img",38),e.j41(2,"div",39),e.bIt("click",function(t){const r=c.eBV(s).$implicit,a=e.XpG(2);return c.Njj(a.removeImageCandidate(r,t))}),e.nrm(3,"ion-icon",40),e.k0s()()}if(2&n){const s=o.$implicit,i=e.XpG(2);e.AVh("image-picker-tile--selected",s.media.mediaId===i.selectedMediaId),e.R7$(),e.Y8G("alt",e.mNQ(i.title||"Item photo"))("src",s.url,e.B4B)}}
1function xe(n,o){1&n&&e.nrm(0,"ion-spinner",41)}function We(n,o){1&n&&e.nrm(0,"ion-icon",42)}function Se(n,o){if(1&n){const s=e.RV6();e.qex(0),e.j41(1,"p",30),e.EFF(2,"Photos"),e.k0s(),e.j41(3,"div",31),e.DNE(4,Ee,4,5,"div",32),e.j41(5,"div",33),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.openImageFilePicker())}),e.DNE(6,xe,1,0,"ion-spinner",34)(7,We,1,0,"ion-icon",35),e.k0s()(),e.j41(8,"input",36,0),e.bIt("change",function(t){c.eBV(s);const r=e.XpG();return c.Njj(r.onImageFilesSelected(t))}),e.k0s(),e.bVm()}if(2&n){const s=e.XpG();e.R7$(4),e.Y8G("ngForOf",s.imageCandidates),e.R7$(2),e.Y8G("ngIf",s.isUploadingImage),e.R7$(),e.Y8G("ngIf",!s.isUploadingImage)}}function Ge(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-card",43)(1,"ion-card-content")(2,"div",44)(3,"ion-label",45),e.EFF(4,"Item name"),e.k0s(),e.j41(5,"ion-item",46)(6,"ion-input",47),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG();return e.DH7(r.title,t)||(r.title=t),c.Njj(t)}),e.k0s()()(),e.j41(7,"ion-row")(8,"ion-col",48)(9,"div",44)(10,"ion-label",45),e.EFF(11,"Price"),e.k0s(),e.j41(12,"ion-item",46)(13,"ion-input",49),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG();return e.DH7(r.price,t)||(r.price=t),c.Njj(t)}),e.k0s()()()(),e.j41(14,"ion-col",48)(15,"div",44)(16,"ion-label",45),e.EFF(17,"Currency"),e.k0s(),e.j41(18,"ion-item",46)(19,"ion-input",50),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG();return e.DH7(r.priceCurrency,t)||(r.priceCurrency=t),c.Njj(t)}),e.k0s()()()()(),e.j41(20,"div",44)(21,"ion-label",45),e.EFF(22,"Notes"),e.k0s(),e.j41(23,"ion-item",46)(24,"ion-textarea",51),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG();return e.DH7(r.notes,t)||(r.notes=t),c.Njj(t)}),e.k0s()()(),e.j41(25,"div",44)(26,"ion-label",45),e.EFF(27,"Description"),e.k0s(),e.j41(28,"ion-item",46)(29,"ion-textarea",52),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG();return e.DH7(r.description,t)||(r.description=t),c.Njj(t)}),e.k0s()()()()()}if(2&n){const s=e.XpG();e.R7$(6),e.R50("ngModel",s.title),e.Y8G("disabled",s.isBusy),e.R7$(7),e.R50("ngModel",s.price),e.Y8G("disabled",s.isBusy),e.R7$(6),e.R50("ngModel",s.priceCurrency),e.Y8G("disabled",s.isBusy),e.R7$(5),e.R50("ngModel",s.notes),e.Y8G("disabled",s.isBusy),e.R7$(5),e.R50("ngModel",s.description),e.Y8G("disabled",s.isBusy)}}let Me=(()=>{var n;class o{get selectedImageUrl(){return this.imageCandidates.find(t=>t.media.mediaId===this.selectedMediaId)?.url??null}constructor(i,t,r,a,l){this.modalController=i,this.common=t,this.jwtService=r,this.wishlistItemService=a,this.mediaAssetService=l,this.loadingPlaceholders=[0,1,2,3],this.wishlistId="",this.itemId="",this.isEditMode=!1,this.isBusy=!1,this.isLoading=!1,this.hasError=!1,this.pageTitle="Add item",this.title="",this.originalUrl="",this.description="",this.notes="",this.price="",this.priceCurrency="",this.imageCandidates=[],this.selectedMediaId=null,this.isUploadingImage=!1,this.loadedItem=null}ngOnInit(){this.isEditMode=this.itemId.length>0,this.pageTitle=this.isEditMode?"Edit item":"Add item"}ionViewWillEnter(){var i=this;return(0,u.A)(function*(){i.isEditMode&&(yield i.loadItem())})()}saveItem(){var i=this;return(0,u.A)(function*(){if(i.isBusy)return;const t=i.title.trim(),r=i.originalUrl.trim(),a=i.description.trim(),l=i.notes.trim(),m=i.price.trim().replace(",","."),g=i.priceCurrency.trim();if(t||r)try{i.isBusy=!0;const _=new J.v;i.loadedItem&&Object.assign(_,i.loadedItem),_.wishlistItemId=i.isEditMode?i.itemId:_.wishlistItemId,_.wishlistId=i.wishlistId,_.userId=i.loadedItem?.userId||(yield i.jwtService.getUserId()),_.title=t,_.originalUrl=r,_.finalUrl=r,_.description=a,_.notes=l,_.price=m?Number(m):_.price,_.priceCurrency=g,!i.isEditMode&&!_.source&&(_.source="Web"),_.isActive=!0,_.wishlistItemStatusId=i.getStatusId(r,t,a,l,m);const p=i.imageCandidates.find(E=>E.media.mediaId===i.selectedMediaId);p?(_.mediaId=p.media.mediaId,_.media=p.media):i.isEditMode&&(_.mediaId=null,_.media=null),yield i.wishlistItemService.InsUpdWishlistItem(_),yield i.modalController.dismiss({saved:!0},"saved")}catch(_){yield i.common.handleError(_,i.isEditMode?"We could not update the item.":"We could not add the item.")}finally{i.isBusy=!1}else yield i.common.showAlertDialog("Item required","Enter an item name or a URL before saving.")})()}deleteItem(){var i=this;return(0,u.A)(function*(){if(i.isEditMode&&!i.isBusy&&i.loadedItem&&(yield i.common.showConfirmAlertDialog("Delete item",`Delete ${i.loadedItem.title||"this item"}?`)))try{i.isBusy=!0;const r=new J.v;Object.assign(r,i.loadedItem),r.wishlistItemId=i.itemId,r.isActive=!1,yield i.wishlistItemService.InsUpdWishlistItem(r),yield i.modalController.dismiss({deleted:!0}
1,"deleted")}catch(r){yield i.common.handleError(r,"We could not delete the item.")}finally{i.isBusy=!1}})()}dismiss(){var i=this;return(0,u.A)(function*(){yield i.modalController.dismiss(null,"cancel")})()}openUrl(){var i=this;return(0,u.A)(function*(){const t=i.originalUrl.trim();t&&(yield i.common.openExternalLink(t))})()}openImageFilePicker(){this.isUploadingImage||this.imageFileInput?.nativeElement.click()}selectImageCandidate(i){this.selectedMediaId=i.media.mediaId??null}removeImageCandidate(i,t){t.stopPropagation(),this.imageCandidates=this.imageCandidates.filter(r=>r.media.mediaId!==i.media.mediaId),this.selectedMediaId===i.media.mediaId&&(this.selectedMediaId=this.imageCandidates[0]?.media.mediaId??null)}onImageFilesSelected(i){var t=this;return(0,u.A)(function*(){const r=i.target,a=r.files?Array.from(r.files):[];if(r&&(r.value=""),0!==a.length)try{t.isUploadingImage=!0;for(const l of a){const m=yield t.mediaAssetService.uploadMediaBlob(l,l.name,Ie.k.General),g=t.mediaAssetService.getMediaUrl(m);g&&(t.imageCandidates=[...t.imageCandidates,{media:m,url:g}],t.selectedMediaId||(t.selectedMediaId=m.mediaId??null))}}catch(l){yield t.common.handleError(l,"We could not upload that photo.")}finally{t.isUploadingImage=!1}})()}loadItem(){var i=this;return(0,u.A)(function*(){if(!i.isLoading&&i.itemId)try{i.isLoading=!0,i.hasError=!1;const t=yield i.wishlistItemService.GetItemById(i.itemId);i.loadedItem=t,i.title=t.title||"",i.originalUrl=t.finalUrl||t.originalUrl||"",i.description=t.description||"",i.notes=t.notes||"",i.price=t.price?String(t.price):"",i.priceCurrency=t.priceCurrency||"";const r=t.media?i.mediaAssetService.getMediaUrl(t.media):null;t.media&&r&&(i.imageCandidates=[{media:t.media,url:r}],i.selectedMediaId=t.media.mediaId??null)}catch(t){i.hasError=!0,yield i.common.handleError(t,"We could not load this item.")}finally{i.isLoading=!1}})()}getStatusId(i,t,r,a,l){return!i||t||r||a||l?A.S.Manual:A.S.Unprocessed}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(h.W3),e.rXU($.o),e.rXU(K.B),e.rXU(Q.v),e.rXU(U.S))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-item-editor"]],viewQuery:function(t,r){if(1&t&&e.GBs(we,5),2&t){let a;e.mGM(a=e.lsd())&&(r.imageFileInput=a.first)}},inputs:{wishlistId:"wishlistId",itemId:"itemId"},standalone:!1,decls:23,vars:13,consts:[["imageFileInput",""],[1,"ion-page"],[1,"page-toolbar"],[1,"page-toolbar-title-wrap"],[1,"page-toolbar-title"],["slot","end",1,"page-toolbar-actions"],["fill","clear",3,"click","disabled"],["name","close-outline","slot","icon-only"],[3,"fullscreen"],["class","state-card",4,"ngIf"],["class","item-image-wrap",4,"ngIf"],["class","editor-url-banner",4,"ngIf"],[4,"ngIf"],["class","content-card",4,"ngIf"],[1,"ion-no-border"],[1,"modal-footer-actions"],["fill","outline",1,"footer-btn",3,"click","color","disabled"],["fill","solid",1,"footer-btn",3,"click","disabled"],[1,"state-card"],["aria-label","Loading item","aria-busy","true"],[4,"ngFor","ngForOf"],[1,"spoyla-skeleton-line","spoyla-skeleton-line--meta","spoyla-skeleton-line--w25",3,"animated"],[1,"spoyla-skeleton-control",3,"animated"],[1,"item-image-wrap"],[1,"item-image",3,"src","alt"],[1,"editor-url-banner"],[1,"editor-url-track","editor-url-banner--clickable",3,"click"],[1,"editor-url-text"],["fill","outline","size","small",1,"editor-preview-btn",3,"click"],["name","open-outline","slot","start"],[1,"image-picker-hint"],[1,"image-picker-grid"],["class","image-picker-tile",3,"image-picker-tile--selected","click",4,"ngFor","ngForOf"],["role","button","aria-label","Add photo",1,"image-picker-tile","image-picker-tile--add",3,"click"],["name","dots",4,"ngIf"],["name","camera-outline",4,"ngIf"],["hidden","","type","file","accept","image/*","multiple","",3,"change"],[1,"image-picker-tile",3,"click"],[3,"src","alt"],["role","button","aria-label","Remove photo",1,"image-picker-tile__remove",3,"click"],["name","close"],["name","dots"],["name","camera-outline"],[1,"content-card"],[1,"input-wrapper"],[1,"input-label"],["lines","none",1,"spoyla-input"],["placeholder","Noise-cancelling headphones",3,"ngModelChange","ngModel","disabled"],["size","12","size-md","6"],["inputmode","decimal","placeholder","99.99",3,"ngModelChange","ngModel","disabled"],["placeholder","$ / USD / ZAR",3,"ngModelChange","ngModel","disabled"],["placeholder","Size, colour, or any other note","autoGrow","true",3,"ngModelChange","ngModel","disabled"],["placeholder","Optional product summary","autoGrow","true",3,"ngModelChange","ngModel","disabled"]],template:function(t,r){1&t&&(e.j41(0,"div",1)(1,"ion-header",2)(2,"ion-toolbar")(3,"ion-title")(4,"div",3)(5,"span",4),e.EFF(6),e.k0s()()(),e.j41(7,"ion-buttons",5)(8,"ion-button",6),e.bIt("click",function(){return r.dismiss()}),e.nrm(9,"ion-icon",7),e.k0s()()()(),e.j41(10,"ion-content",8),e.DNE(11,be,4,1,"ion-card",9)(12,ke,2,3,"div",10)(13,Re,7,1,"div",11)(14,Se,10,3,"ng-container",12)(15,Ge,30,10,"ion-card",13),e.k0s(),e.j41(16,"ion-footer",14)(17,"ion-toolbar")(18,"div",15)(19,"ion-button",16),e.bIt("click",function(){return r.isEditMode?r.deleteItem():r.dismiss()}),e.EFF(20),e.k0s(),e.j41(21,"ion-button",17),e.bIt("click",function(){return r.s
1aveItem()}),e.EFF(22),e.k0s()()()()()),2&t&&(e.R7$(6),e.JRh(r.pageTitle),e.R7$(2),e.Y8G("disabled",r.isBusy),e.R7$(2),e.Y8G("fullscreen",!0),e.R7$(),e.Y8G("ngIf",r.isLoading),e.R7$(),e.Y8G("ngIf",!r.isLoading&&r.selectedImageUrl),e.R7$(),e.Y8G("ngIf",!r.isLoading&&r.originalUrl),e.R7$(),e.Y8G("ngIf",!r.isLoading),e.R7$(),e.Y8G("ngIf",!r.isLoading),e.R7$(4),e.Y8G("color",r.isEditMode?"danger":void 0)("disabled",r.isBusy),e.R7$(),e.SpI(" ",r.isEditMode?"Delete item":"Cancel"," "),e.R7$(),e.Y8G("disabled",r.isBusy),e.R7$(),e.SpI(" ",r.isBusy?"Saving...":r.isEditMode?"Save item":"Create item"," "))},dependencies:[k.Sq,k.bT,w.BC,w.vS,h.Jm,h.QW,h.b_,h.I9,h.hU,h.W9,h.M0,h.eU,h.iq,h.$w,h.uz,h.he,h.ln,h.ds,h.w2,h.nc,h.BC,h.ai,h.Gw],styles:["[_nghost-%COMP%]{display:block}"]}))}return n(),o})();var Ae=v(9),ce=v(8569),de=v(578),ie=v(2408),te=v(5420),he=v(2429),Pe=v(6592),Z=v(8375),Te=v(6431);const Ce=["wishlistItemCard"];function Fe(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",16),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openWishlistEditor())}),e.nrm(1,"ion-icon",17),e.j41(2,"span"),e.EFF(3,"Edit"),e.k0s()()}}function je(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",18),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openShareModal())}),e.nrm(1,"ion-icon",19),e.j41(2,"span"),e.EFF(3,"Share"),e.k0s()()}}function Ue(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",5),e.nrm(1,"div",6),e.j41(2,"div",7)(3,"div",8)(4,"button",9),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.goBack())}),e.nrm(5,"ion-icon",10),e.k0s()(),e.j41(6,"div",11)(7,"p",12),e.EFF(8),e.k0s()(),e.j41(9,"div",13),e.DNE(10,Fe,4,0,"button",14)(11,je,4,0,"button",15),e.k0s()()()}if(2&n){const s=e.XpG();e.AVh("fade-header--scrolled",s.isScrolled),e.R7$(),e.xc7("opacity",s.headerOpacity),e.R7$(5),e.xc7("opacity",s.titleOpacity),e.R7$(2),e.JRh(s.wishlistName),e.R7$(2),e.Y8G("ngIf",s.canUpdateWishlist),e.R7$(),e.Y8G("ngIf",s.isOwnedByCurrentUser||s.canManageAccess)}}function $e(n,o){1&n&&(e.j41(0,"div",31)(1,"div",32),e.nrm(2,"ion-skeleton-text",21),e.k0s(),e.nrm(3,"ion-skeleton-text",33)(4,"ion-skeleton-text",34),e.k0s()),2&n&&(e.R7$(2),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function Be(n,o){if(1&n&&(e.j41(0,"div")(1,"section",20),e.nrm(2,"ion-skeleton-text",21)(3,"div",22),e.j41(4,"div",23),e.nrm(5,"ion-skeleton-text",24),e.k0s()(),e.j41(6,"div",25)(7,"div",26),e.nrm(8,"ion-skeleton-text",27)(9,"ion-skeleton-text",28),e.k0s(),e.j41(10,"div",29),e.DNE(11,$e,5,3,"div",30),e.k0s()()()),2&n){const s=e.XpG();e.R7$(2),e.Y8G("animated",!0),e.R7$(3),e.Y8G("animated",!0),e.R7$(3),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("ngForOf",s.skeletonItems)}}function Ne(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",35)(1,"app-page-load-error",36),e.bIt("retry",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.retryLoad())}),e.k0s()()}}function Oe(n,o){if(1&n&&e.nrm(0,"span",54),2&n){const s=e.XpG(2);e.xc7("background-image",s.wishlistHeroFillBackgroundImage)}}function Ye(n,o){if(1&n&&e.nrm(0,"img",55),2&n){const s=e.XpG(2);e.Y8G("src",s.wishlistImageUrl,e.B4B)("alt",s.wishlistName+" artwork")}}function De(n,o){1&n&&(e.j41(0,"div",56),e.nrm(1,"ion-icon",57),e.k0s())}function Xe(n,o){if(1&n&&(e.j41(0,"span",47)(1,"span",58),e.nrm(2,"ion-icon",59),e.k0s(),e.EFF(3),e.k0s()),2&n){const s=e.XpG(2);e.R7$(3),e.SpI(" ",s.wishlistOwnerName," ")}}function Ve(n,o){1&n&&e.nrm(0,"span",49)}function Le(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",60)(1,"span",61),e.EFF(2),e.k0s(),e.j41(3,"span",62)(4,"ion-button",63),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.exitSelectMode())}),e.EFF(5," Cancel "),e.k0s(),e.j41(6,"ion-button",64),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.deleteSelectedItems())}),e.EFF(7," Delete "),e.k0s()()()}if(2&n){const s=e.XpG(2);e.R7$(2),e.SpI(" ",s.selectedCount," selected "),e.R7$(2),e.Y8G("disabled",s.isDeleting),e.R7$(2),e.Y8G("disabled",0===s.selectedCount||s.isDeleting)}}function ze(n,o){if(1&n&&(e.j41(0,"span",76),e.nrm(1,"ion-icon",50),e.k0s()),2&n){const s=e.XpG().$implicit,i=e.XpG(3);e.R7$(),e.Y8G("name",i.isItemSelected(s.wishlistItemId)?"checkmark-circle":"ellipse-outline")}}function He(n,o){if(1&n&&e.nrm(0,"img",77),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.title)}}function Je(n,o){1&n&&(e.j41(0,"div",78),c.qSk(),e.j41(1,"svg",79)(2,"defs")(3,"linearGradient",80),e.nrm(4,"stop",81)(5,"stop",82)(6,"stop",83),e.k0s()(),e.nrm(7,"path",84)(8,"rect",85)(9,"path",86),e.k0s()())}function Ke(n,o){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const s=o.$implicit;e.R7$(),e.JRh(s)}}function Qe(n,o){if(1&n&&(e.j41(0,"div",87),e.DNE(1,Ke,2,1,"span",88),e.k0s()),2&n){const s=e.XpG().$implicit;e.R7$(),e.Y8G("ngForOf",s.reservationSummaryLines)}}function Ze(n,o){if(1&n&&(e.j41(0,"div",89),e.nrm(1,"ion-icon",90),e.j41(2,"span"),e.EFF(3),e.k0s()()),2&n){const s=e.XpG().$implicit;e.AVh("status-overlay-warning","warning"===s.statusSeverity)("status-overlay-danger","danger"===s.statusSeverity),e.R7$(),e.Y8G("name",s.statusIcon),e.R7$(2),e.JRh(s.statusLabel)}}function qe(n,o){if(1&n&&(e.j41(0,"div",91),e.nrm(1,"ion-icon",92),e.k0s()),2&n){const s=e.XpG(4);e.AVh("item-note-badge-owner",s.isOwnedByCurrentUser)}}function ei(n,o){if(1&n&&(e.j41(0,"div",93)(1,"span",94),e.EFF(2),e.k0s()()),2&n){const s=e.XpG().$implicit;e.R7$(2),e.JRh(s.priceText)}}function ii(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",67,0),e.bIt("click",function(t){const r=c.eBV(s).$implicit,a=e.XpG(3);return c.Njj(a.onItemClick(r,t))})("pointerdown",function(t){const r=c.eBV(s).$implicit,a=e.XpG(3);return c.Njj(a.onItemPressStart(r,t))})("pointermove",function(t){c.eBV(s);const r=e.XpG(3);return c.Njj(r.onItemPressMove(t))})("pointerup",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.onItemPressEnd())})("pointercancel",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.onItemPressEnd())})("pointerleave",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.onItemPressEnd())}),e.j41(2,"div",32),e.DNE(3,ze,2,1,"span",68)(4,He,1,2,"img",69)(5,Je,10,0,"div",70)(6,Qe,2,1,"div",71)(7,Ze,4,6,"div",72)(8,qe,2,2,"div",73),e.k0s(),e.j41(9,"div",74),e.
1EFF(10),e.k0s(),e.DNE(11,ei,3,1,"div",75),e.k0s()}if(2&n){const s=o.$implicit,i=e.XpG(3);e.AVh("selected",i.isSelectMode&&i.isItemSelected(s.wishlistItemId)),e.R7$(3),e.Y8G("ngIf",i.isSelectMode),e.R7$(),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(),e.Y8G("ngIf",!i.isOwnedByCurrentUser&&s.reservationSummaryLines.length>0),e.R7$(),e.Y8G("ngIf",s.statusSeverity&&0===s.reservationSummaryLines.length),e.R7$(),e.Y8G("ngIf",s.hasNotes),e.R7$(2),e.JRh(s.title),e.R7$(),e.Y8G("ngIf",s.hasPrice)}}function ti(n,o){if(1&n&&(e.j41(0,"div",65),e.DNE(1,ii,12,10,"div",66),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.Y8G("ngForOf",s.itemCards)}}function si(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",95)(1,"div",96),e.nrm(2,"ion-icon",48),e.k0s(),e.j41(3,"div",97)(4,"h3"),e.EFF(5,"This list is empty"),e.k0s(),e.j41(6,"p"),e.EFF(7,"Add your first wish by pasting a link from any store, or add the details yourself."),e.k0s()(),e.j41(8,"div",98)(9,"ion-button",99),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openNewItemEditor())}),e.nrm(10,"ion-icon",100),e.EFF(11," Add a wish "),e.k0s()()()}}function ni(n,o){if(1&n&&(e.j41(0,"div",95)(1,"div",96),e.nrm(2,"ion-icon",48),e.k0s(),e.j41(3,"div",97)(4,"h3"),e.EFF(5,"This list is empty"),e.k0s(),e.j41(6,"p"),e.EFF(7),e.k0s()()()),2&n){const s=e.XpG(2);e.R7$(7),e.SpI("",s.wishlistOwnerName||"This user"," hasn't added any wishes yet.")}}function ri(n,o){if(1&n&&(e.qex(0),e.j41(1,"section",37),e.DNE(2,Oe,1,2,"span",38)(3,Ye,1,2,"img",39)(4,De,2,0,"div",40),e.nrm(5,"div",41)(6,"div",42),e.j41(7,"div",23)(8,"h1",43),e.EFF(9),e.k0s()()(),e.j41(10,"div",25)(11,"div",44),e.DNE(12,Xe,4,1,"span",45)(13,Ve,1,0,"span",46),e.j41(14,"span",47),e.nrm(15,"ion-icon",48),e.EFF(16),e.k0s(),e.nrm(17,"span",49),e.j41(18,"span",47),e.nrm(19,"ion-icon",50),e.EFF(20),e.k0s()(),e.DNE(21,Le,8,3,"div",51)(22,ti,2,1,"div",52)(23,si,12,0,"div",53)(24,ni,8,1,"div",53),e.k0s(),e.bVm()),2&n){const s=e.XpG();e.R7$(2),e.Y8G("ngIf",s.wishlistHeroFillBackgroundImage),e.R7$(),e.Y8G("ngIf",s.wishlistImageUrl),e.R7$(),e.Y8G("ngIf",!s.wishlistImageUrl),e.R7$(),e.AVh("hero-shell__scrim--detail",s.wishlistImageUrl)("hero-shell__scrim--detail-fallback",!s.wishlistImageUrl),e.R7$(4),e.JRh(s.wishlistName),e.R7$(3),e.Y8G("ngIf",!s.isOwnedByCurrentUser&&s.wishlistOwnerName),e.R7$(),e.Y8G("ngIf",!s.isOwnedByCurrentUser&&s.wishlistOwnerName),e.R7$(3),e.SpI(" ",s.itemCountText," "),e.R7$(3),e.Y8G("name",s.privacyIcon),e.R7$(),e.SpI(" ",s.shareTypeText," "),e.R7$(),e.Y8G("ngIf",s.isSelectMode),e.R7$(),e.Y8G("ngIf",s.itemCards.length>0),e.R7$(),e.Y8G("ngIf",0===s.itemCards.length&&s.canManageItems),e.R7$(),e.Y8G("ngIf",0===s.itemCards.length&&!s.canManageItems)}}let oi=(()=>{var n;class o{constructor(i,t,r,a,l,m,g,_,p,E,I,x,X,L){this.reportedMediaService=i,this.route=t,this.nav=r,this.modalController=a,this.common=l,this.jwtService=m,this.wishlistService=g,this.wishlistItemService=_,this.reservationService=p,this.mediaAssetService=E,this.posthogService=I,this.appConfig=x,this.logger=X,this.shareService=L,this.wishlistId="",this.isBusy=!0,this.hasError=!1,this.headerOpacity=0,this.isScrolled=!1,this.titleOpacity=0,this.surfaceFadeDistance=60,this.scrolledThreshold=16,this.titleFadeDistance=60,this.isOwnedByCurrentUser=!0,this.canManageItems=!1,this.canUpdateWishlist=!1,this.canManageAccess=!1,this.wishlistName="Wishlist",this.wishlistDescription="",this.wishlistImageUrl=null,this.wishlistHeroFillBackgroundImage=null,this.wishlistOwnerName="",this.itemCountText="0 items",this.shareTypeText="Private",this.privacyIcon="lock-closed-outline",this.permissionSummaryText="Owner access",this.publicPageUrl="",this.shareUrl="",this.itemCards=[],this.skeletonItems=[0,1],this.currentUserId="",this.wishlist=null,this.rawItems=[],this.selection=new ve(()=>{this.isSelectMode=this.selection.isSelectMode,this.selectedCount=this.selection.selectedCount}),this.isSelectMode=!1,this.selectedCount=0,this.isDeleting=!1,this.reservationsByItemId=new Map,this.noteStripLayoutTimerId=null,this.pendingItemId="",this.hasOpenedRequestedItem=!1}
1ngOnInit(){this.wishlistId=this.route.snapshot.paramMap.get("wishlistId")||"",this.pendingItemId=this.route.snapshot.queryParamMap.get("itemId")||"",this.publicPageUrl=`/wishlist/${this.wishlistId}`,this.shareUrl=`${this.appConfig.webUrl}/wishlist/${this.wishlistId}`}ngAfterViewInit(){this.itemCardElements?.changes.subscribe(()=>{this.queueNoteStripLayoutRefresh()}),this.queueNoteStripLayoutRefresh()}ngOnDestroy(){null!==this.noteStripLayoutTimerId&&(window.clearTimeout(this.noteStripLayoutTimerId),this.noteStripLayoutTimerId=null)}ionViewWillEnter(){var i=this;return(0,u.A)(function*(){yield i.loadWishlist()})()}retryLoad(){var i=this;return(0,u.A)(function*(){yield i.loadWishlist()})()}goBack(){this.nav.navigateBack("/app/wishlist")}onScroll(i){const t=i.detail.scrollTop;this.headerOpacity=this.ramp(t,0,this.surfaceFadeDistance),this.titleOpacity=this.ramp(t,0,this.titleFadeDistance),this.isScrolled=t>this.scrolledThreshold}ramp(i,t,r){return r<=0?i>t?1:0:Math.min(Math.max((i-t)/r,0),1)}openWishlistEditor(){var i=this;return(0,u.A)(function*(){yield i.nav.navigateForward(`/app/wishlist/${i.wishlistId}/edit?returnTo=/app/wishlist/${i.wishlistId}`)})()}openNewItemEditor(){var i=this;return(0,u.A)(function*(){const t=yield i.modalController.create({component:ce.n,cssClass:"add-wish-modal",componentProps:{returnToUrl:`/app/wishlist/${i.wishlistId}`}});i.posthogService.posthog.capture("modal_shown",{modal:"add_wish"}),yield t.present();const{data:r}=yield t.onDidDismiss();r?.success&&(yield i.loadWishlist())})()}openShareModal(){var i=this;return(0,u.A)(function*(){const t=yield i.modalController.create({component:de.I,componentProps:{wishlistId:i.wishlistId,shareUrl:i.shareUrl,wishlist:i.wishlist,canManageAccess:i.canManageAccess},cssClass:"share-options-modal"});i.posthogService.posthog.capture("modal_shown",{modal:"share_options"}),yield t.present(),yield t.onDidDismiss(),yield i.loadWishlist()})()}openItemEditor(i){var t=this;return(0,u.A)(function*(){const r=yield t.modalController.create({component:Me,componentProps:{wishlistId:t.wishlistId,itemId:i},cssClass:["editor-modal","item-editor-modal"]});t.posthogService.posthog.capture("modal_shown",{modal:"wishlist_item_editor"}),yield r.present();const{role:a}=yield r.onWillDismiss();("saved"===a||"deleted"===a)&&(yield t.loadWishlist())})()}openPublicPage(){var i=this;return(0,u.A)(function*(){yield i.nav.navigateForward(i.publicPageUrl)})()}toggleReservation(i){var t=this;return(0,u.A)(function*(){const r=t.getCurrentUserReservation(i),a=new le.G;a.wishlistItemId=i,a.wishlistId=t.wishlistId,a.userId=t.currentUserId,a.reservationTypeId=r?.reservationTypeId||O.c.Buying,a.isActive=!r,r?.wishlistItemUserReservationId&&(a.wishlistItemUserReservationId=r.wishlistItemUserReservationId);try{yield t.reservationService.ReserveItem(a),yield t.loadReservations(),t.syncItemCards(),t.posthogService.posthog.capture("wishlist_item_reserved",{wishlist_item_id:i,wishlist_id:t.wishlistId,is_reserving:!r})}catch(l){yield t.common.handleError(l,"We could not update the reservation.")}})()}markPurchased(i){var t=this;return(0,u.A)(function*(){const r=t.getCurrentUserReservation(i),a=new le.G;a.wishlistItemId=i,a.wishlistId=t.wishlistId,a.userId=t.currentUserId,a.reservationTypeId=O.c.Purchased,a.isActive=!0,r?.wishlistItemUserReservationId&&(a.wishlistItemUserReservationId=r.wishlistItemUserReservationId);try{yield t.reservationService.ReserveItem(a),yield t.loadReservations(),t.syncItemCards(),t.posthogService.posthog.capture("wishlist_item_purchased",{wishlist_item_id:i,wishlist_id:t.wishlistId})}catch(l){yield t.common.handleError(l,"We could not mark the item as purchased.")}})()}onItemPressStart(i,t){!this.canManageItems||this.isBusy||this.isDeleting||this.hasError||this.selection.startPress(i.wishlistItemId,t.clientX,t.clientY)}onItemPressMove(i){this.selection.movePress(i.clientX,i.clientY)}onItemPressEnd(){this.selection.endPress()}isItemSelected(i){return this.selection.isItemSelected(i)}exitSelectMode(){this.selection.exit()}deleteSelectedItems(){var i=this;return(0,u.A)(function*(){if(!i.canManageItems||!i.isSelectMode||i.isDeleting||0===i.selectedCount)return;const t=i.selectedCount;if(yield i.common.showConfirmAlertDialog("Delete items",`Delete ${t} selected item${1===t?"":"s"}? This cannot be undone.`))try{i.isDeleting=!0;const a=new Set(i.selection.selectedIds()),l=i.rawItems.filter(m=>a.has(m.wishlistItemId||""));yield Promise.all(l.map(m=>{const g=new J.v;return Object.assign(g,m),g.isActive=!1,i.wishlistItemService.InsUpdWishlistItem(g)})),i.logger.LogInfo("Selected wishlist items deleted",{wishlistId:i.wishlistId,count:l.length}),yield i.loadItems(),i.syncItemCards(),i.exitSelectMode()}catch(a){i.logger.LogError(a,"Failed to delete selected wishlist items"),yield i.common.handleError(a,"Failed to delete selected items")}finally{i.isDeleting=!1}})()}onItemClick(i,t){if(!this.selection.consumeSuppressedClick()){if
1(this.isSelectMode)return void this.selection.toggle(i.wishlistItemId);if(this.isOwnedByCurrentUser)return void this.openItemEditor(i.wishlistItemId);this.canManageItems||this.showNoteAlert(i)}}openItemActionsModal(i,t){var r=this;return(0,u.A)(function*(){t.preventDefault(),t.stopPropagation();const a=r.getCurrentUserReservation(i.wishlistItemId),l=!!a,m=a?.reservationTypeId===O.c.Purchased,g=[];switch((i.hasNotes||i.hasDescription||i.hasPrice)&&g.push({actionId:"view-note",label:i.hasNotes?"View note":"View details",icon:"document-text-outline",description:"See the details attached to this item."}),g.push({actionId:"toggle-reservation",label:l?"Unreserve":"Reserve",icon:l?"bookmark":"bookmark-outline",description:l?"Remove your reservation for this item.":"Reserve this item so others know it is taken."}),m||g.push({actionId:"mark-purchased",label:"Mark as purchased",icon:"bag-check-outline",description:"Mark this gift as bought."}),g.push({actionId:"i-want-this",label:"I want this!",icon:"heart-outline",description:"Copy this item into one of your own wishlists."}),g.push({actionId:"share-gift",label:"Share this gift",icon:"share-social-outline",description:"Send a link to just this gift."}),r.canManageItems&&g.push({actionId:"move-item",label:"Move to another list",icon:"swap-horizontal-outline",description:"Move this item to one of your other wishlists."}),i.shopUrl&&g.push({actionId:"shop",label:"Shop",icon:"cart-outline",description:"Open the product page to buy this item."}),yield r.common.showActionPopupDialog({header:"Item actions",subheader:i.title,options:g})){case"view-note":yield r.showNoteAlert(i);break;case"toggle-reservation":yield r.toggleReservation(i.wishlistItemId);break;case"mark-purchased":yield r.markPurchased(i.wishlistItemId);break;case"i-want-this":yield r.openIWantThisModal(i.wishlistItemId);break;case"move-item":yield r.moveItemToAnotherWishlist(i.wishlistItemId);break;case"share-gift":yield r.shareGift(i);break;case"shop":yield r.shopItem(i.shopUrl)}})()}shareGift(i){var t=this;return(0,u.A)(function*(){if(!i.wishlistItemId)return;const r=i.title?.trim()||"Gift";try{yield t.shareService.shareLink(`Have a look at "${r}" on Spoyla.`,(0,oe.Y)(ae.c.webUrl,i.wishlistItemId),"Share Gift","Share gift link"),t.logger.LogInfo("Gift link shared",{wishlistItemId:i.wishlistItemId})}catch(a){t.logger.LogError(a,"Failed to share gift link"),yield t.common.handleError(a,"Failed to share this gift")}})()}moveItemToAnotherWishlist(i){var t=this;return(0,u.A)(function*(){if(t.canManageItems&&i)try{const a=((yield t.wishlistService.GetUserWishlists(1,50))?.items||[]).filter(m=>!1!==m?.isActive&&!!m.wishlistId&&m.wishlistId!==t.wishlistId).slice(0,20);if(0===a.length)return void(yield t.common.showAlertDialog("No other lists","Create another wishlist before moving this gift."));const l=yield(0,fe.a)(t.modalController,{title:"Move to another list",subtitle:"Choose where this gift should go.",options:a.map(m=>({value:m.wishlistId||"",label:m.name||"Untitled wishlist",icon:"list-outline"}))});if(!l)return;yield t.wishlistItemService.MoveItem({targetWishlistId:l},i),t.logger.LogInfo("Wishlist item moved",{wishlistItemId:i,targetWishlistId:l}),yield t.loadItems(),t.syncItemCards()}catch(r){t.logger.LogError(r,"Failed to move wishlist item"),yield t.common.handleError(r,"Failed to move gift")}})()}showNoteAlert(i){var t=this;return(0,u.A)(function*(){i.shopUrl&&t.getHostText(i.shopUrl);const a=t.rawItems.find(E=>E.wishlistItemId===i.wishlistItemId),l=t.getCurrentUserReservation(i.wishlistItemId),m={title:i.title,imageUrl:i.imageUrl,hasImage:!!i.imageUrl,priceText:i.priceText,hasPrice:i.hasPrice,description:i.description,hasDescription:i.hasDescription,notes:i.notes,hasNotes:i.hasNotes,shopUrl:i.shopUrl,hasShopUrl:!1,shopHostText:"",hasShopHost:!1,statusWarning:a?t.getItemStatusWarning(a):null,canAddToWishlist:!t.isOwnedByCurrentUser,canReserve:!t.isOwnedByCurrentUser,isReservedByCurrentUser:!!l,wishlistItemId:i.wishlistItemId},g=yield t.modalController.create({component:Ae.n,componentProps:{item:m},cssClass:"item-info-modal"});t.posthogService.posthog.capture("modal_shown",{modal:"wishlist_item_info"}),yield g.present();const{data:_,role:p}=yield g.onDidDismiss();if("action"===p&&_?.action)switch(_.action){case"reserve":yield t.toggleReservation(i.wishlistItemId);break;case"iwantthis":yield t.openIWantThisModal(i.wishlistItemId);break;case"shop":yield t.shopItem(i.shopUrl);break;
1case"share":yield t.openGiftShareModal(m)}})()}openGiftShareModal(i){var t=this;return(0,u.A)(function*(){if(!i.wishlistItemId)return;const r={type:"gift",id:i.wishlistItemId,title:i.title?.trim()||"Gift",shareUrl:(0,oe.Y)(ae.c.webUrl,i.wishlistItemId),iconName:"gift-outline",noteText:"Anyone with the link can see this gift, even without a Spoyla account.",shareTitle:"Share Gift",copyToastMessage:"Gift link copied",qrTitle:i.title?.trim()||"Gift"};i.hasPrice&&i.priceText&&(r.meta=i.priceText);const a=yield t.modalController.create({component:de.I,componentProps:{shareContext:r},cssClass:"share-options-modal"});t.posthogService.posthog.capture("modal_shown",{modal:"share_options",type:"gift"}),yield a.present(),yield a.onDidDismiss()})()}deleteItem(i){var t=this;return(0,u.A)(function*(){const r=t.rawItems.find(l=>l.wishlistItemId===i);if(r&&(yield t.common.showConfirmAlertDialog("Delete item",`Delete ${r.title||"this item"}?`)))try{const l=new J.v;Object.assign(l,r),l.wishlistItemId=i,l.isActive=!1,yield t.wishlistItemService.InsUpdWishlistItem(l),yield t.loadItems(),t.syncItemCards()}catch(l){yield t.common.handleError(l,"We could not delete the item.")}})()}shopItem(i,t){var r=this;return(0,u.A)(function*(){t?.preventDefault(),t?.stopPropagation(),i&&(yield r.common.openExternalLink(i))})()}openIWantThisModal(i){var t=this;return(0,u.A)(function*(){const r=t.rawItems.find(m=>m.wishlistItemId===i),a=r?.finalUrl?.trim()||r?.originalUrl?.trim()||"";if(!r||!a)return void(yield t.common.showAlertDialog("No URL","This item does not have a shopping URL available."));const l=yield t.modalController.create({component:ce.n,cssClass:"add-wish-modal",componentProps:{sourceItem:r,returnToUrl:`/app/wishlist/${t.wishlistId}`}});t.posthogService.posthog.capture("modal_shown",{modal:"add_wish"}),yield l.present()})()}onWindowResize(){this.queueNoteStripLayoutRefresh()}loadWishlist(){var i=this;return(0,u.A)(function*(){if(!i.wishlistId)return i.hasError=!0,void(i.isBusy=!1);try{i.isBusy=!0,i.hasError=!1,i.currentUserId=yield i.jwtService.getUserId(),yield Promise.all([i.loadWishlistRecord(),i.loadItems(),i.loadReservations()]),i.syncItemCards(),yield i.openRequestedItemIfNeeded()}catch(t){i.hasError=!0,yield i.common.handleError(t,"We could not load this wishlist.")}finally{i.isBusy=!1}})()}loadWishlistRecord(){var i=this;return(0,u.A)(function*(){i.wishlist=yield i.wishlistService.GetWishlistById(i.wishlistId),i.wishlistName=i.wishlist.name||"Wishlist",i.wishlistDescription=i.wishlist.description||"",i.wishlistImageUrl=i.reportedMediaService.isReported(i.wishlist.media?.mediaId)?null:i.mediaAssetService.getMediaUrl(i.wishlist.media),i.wishlistHeroFillBackgroundImage=i.wishlistImageUrl?`url("${i.wishlistImageUrl}")`:null,i.wishlistOwnerName=i.wishlist.user?.nickName||"",i.itemCountText=1===i.wishlist.totalItems?"1 item":`${i.wishlist.totalItems||0} items`;const t=i.getPrivacy(i.wishlist.wishlistShareTypeId??0);i.shareTypeText=t.label,i.privacyIcon=t.icon;const r=new Set((i.wishlist.currentUserWishlistAccesses||[]).map(a=>a?.wishlistAccessId).filter(a=>"number"==typeof a));i.isOwnedByCurrentUser=i.currentUserId===i.wishlist.userId,i.canManageItems=i.isOwnedByCurrentUser||r.has(R.n.Item)||r.has(R.n.Update),i.canUpdateWishlist=i.isOwnedByCurrentUser||r.has(R.n.Update),i.canManageAccess=i.isOwnedByCurrentUser||r.has(R.n.Manager),i.permissionSummaryText=i.buildPermissionSummary(r)})()}loadItems(){var i=this;return(0,u.A)(function*(){const t=yield i.wishlistItemService.GetItemsByWishlist(i.wishlistId,1,100);i.rawItems=(t.items||[]).filter(r=>!1!==r.isActive).sort((r,a)=>{const l=(r.displayOrder??0)-(a.displayOrder??0);return 0!==l?l:(r.createDT?new Date(r.createDT).getTime():0)-(a.createDT?new Date(a.createDT).getTime():0)}),i.itemCountText=1===i.rawItems.length?"1 item":`${i.rawItems.length} items`})()}loadReservations(){var i=this;return(0,u.A)(function*(){const t=yield i.reservationService.GetReservationsByWishlistId(i.wishlistId);i.reservationsByItemId.clear();for(const r of t||[]){if(!r.isActive)continue;const a=i.reservationsByItemId.get(r.wishlistItemId)||[];a.push(r),i.reservationsByItemId.set(r.wishlistItemId,a)}})()}syncItemCards(){this.itemCards=this.rawItems.filter(i=>!!i.wishlistItemId).map(i=>this.mapItemCard(i)),this.queueNoteStripLayoutRefresh()}openRequestedItemIfNeeded(){var i=this;return(0,u.A)(function*(){if(i.hasOpenedRequestedItem||!i.pendingItemId)return;i.hasOpenedRequestedItem=!0;const t=i.itemCards.find(r=>r.wishlistItemId===i.pendingItemId);t&&(yield i.showNoteAlert(t))})()}getItemStatus(i){switch(i.wishlistItemStatusId){case A.S.Incomplete:return{severity:null,label:"",icon:""};case A.S.Failed:return{severity:"warning",label:"Failed",icon:"warning-outline"};case A.S.Expired:return{severity:"warning",label:"Expired",icon:"warning-outline"};case A.S.NonProduct:return{severity:"warning",label:"Not a product",icon:"warning-outline"};case A.S.Blocked:return{severity:"danger",label:"Blocked",icon:"close-circle-outline"};case A.S.Unavailable:return{severity:"danger",label:"Unavailable",icon:"close-circle-outline"};case A.S.ClientBlocked:return{severity:"danger",label:"Blocked",icon:"close-circle-outline"};default:return{severity:null,label:"",icon:""}}}getItemStatusWarning(i){const t={[A.S.Incomplete]:"Some details are still missing for this item. We're actively improving support for this store.",[A.S.Failed]:"We could not download this item's details. The team has been notified.",[A.S.Expired]:"This item's details may no longer be accurate and should be refreshed.",[A.S.NonProduct]:"This link points to a general webpage, not a specific product."},r={[A.S.Blocked]:"The website prevented us from fetching this item's details.",[A.S.Unavailable]:"This product is no longer available at the original URL.",[A.S.ClientBlocked]:"The website blocked fetching this item's details."},a=i.wishlistItemStatusId;return t[a]?{severity:"warning",message:t[a]}:r[a]?{severity:"danger",message:r[a]}:null}mapItemCard(i){const t=this.reservationsByItemId.get(i.wishlistItemId)||[],r=i.price?"":i.finalUrl||i.originalUrl||"",a=this.getItemStatus(i);return{wishlistItemId:i.wishlistItemId,title:i.title||"Untitled item",subt
1itle:r,hasSubtitle:!!r,description:i.description||"",hasDescription:!!i.description,notes:i.notes||"",hasNotes:!!i.notes,imageUrl:this.reportedMediaService.isReported(i.media?.mediaId)?null:this.mediaAssetService.getMediaUrl(i.media),priceText:i.price?`${i.priceCurrency||""}${i.price.toFixed(2)}`:"",hasPrice:!!i.price,shopUrl:i.finalUrl||i.originalUrl||null,reservationSummaryLines:this.getReservationSummaryLines(t),showNoteStrip:!!i.notes,statusSeverity:a.severity,statusLabel:a.label,statusIcon:a.icon}}queueNoteStripLayoutRefresh(){typeof window>"u"||(null!==this.noteStripLayoutTimerId&&window.clearTimeout(this.noteStripLayoutTimerId),this.noteStripLayoutTimerId=window.setTimeout(()=>{this.noteStripLayoutTimerId=null,this.updateNoteStripLayoutState()},0))}updateNoteStripLayoutState(){if(this.isOwnedByCurrentUser)return void(this.itemCards.some(g=>g.showNoteStrip)&&(this.itemCards=this.itemCards.map(g=>({...g,showNoteStrip:!1}))));const i=this.itemCardElements?.toArray()||[];if(0===i.length||i.length!==this.itemCards.length)return;const t=new Map,r=new Map,a=i.map(g=>g.nativeElement.offsetTop);for(let g=0;g<a.length;g++){const _=a[g];t.set(_,(t.get(_)||0)+1),this.itemCards[g]?.hasNotes?r.set(_,!0):r.has(_)||r.set(_,!1)}let l=!1;const m=this.itemCards.map((g,_)=>{const E=(t.get(a[_])||0)>1&&!!r.get(a[_]),I=g.hasNotes||E;return g.showNoteStrip===I?g:(l=!0,{...g,showNoteStrip:I})});l&&(this.itemCards=m)}getReservationSummaryLines(i){if(0===i.length)return[];const t=i.filter(m=>m.reservationTypeId!==O.c.Purchased),r=i.filter(m=>m.reservationTypeId===O.c.Purchased),a=t.length>0&&r.length>0||t.length>1||r.length>1,l=[];return t.length>0&&l.push(`Reserved: ${this.buildReservationSummaryValue(t,a)}`),r.length>0&&l.push(`Purchased: ${this.buildReservationSummaryValue(r,a)}`),l}getCurrentUserReservation(i){return(this.reservationsByItemId.get(i)||[]).find(r=>r.userId===this.currentUserId)}buildReservationSummaryValue(i,t){const r=i.some(l=>l.userId===this.currentUserId),a=i.filter(l=>l.userId!==this.currentUserId).length;return r?0===a?"You":`You + ${this.getOtherLabel(a)}`:t||1!==i.length?this.getOtherLabel(i.length):i[0]?.user?.nickName||"Someone"}getOtherLabel(i){return 1===i?"1 other":`${i} others`}getHostText(i){try{return new URL(i).hostname.replace(/^www\./i,"")}catch{return""}}getPrivacy(i){switch(i){case j.G.Public:return{label:"Public",icon:"globe-outline"};case j.G.Friends:return{label:"Friends",icon:"people-outline"};default:return{label:"Private",icon:"lock-closed-outline"}}}buildPermissionSummary(i){if(this.isOwnedByCurrentUser)return"Owner access";const t=[];
1return i.has(R.n.View)&&t.push("view"),i.has(R.n.Item)&&t.push("item"),i.has(R.n.Update)&&t.push("update"),i.has(R.n.Manager)&&t.push("manager"),t.length>0?`${t.join(", ")} access`:"Shared access"}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(B.p),e.rXU(ie.nX),e.rXU(Y.q9),e.rXU(h.W3),e.rXU($.o),e.rXU(K.B),e.rXU(D.w),e.rXU(Q.v),e.rXU(te.E),e.rXU(U.S),e.rXU(he.s),e.rXU(Pe.R),e.rXU(Z.g),e.rXU(Te.D))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-detail"]],viewQuery:function(t,r){if(1&t&&e.GBs(Ce,5),2&t){let a;e.mGM(a=e.lsd())&&(r.itemCardElements=a)}},hostBindings:function(t,r){1&t&&e.bIt("resize",function(){return r.onWindowResize()},e.tSv)},standalone:!1,decls:5,vars:6,consts:[["wishlistItemCard",""],["class","fade-header fade-header--onhero wishlist-detail-fade-header",3,"fade-header--scrolled",4,"ngIf"],[3,"ionScroll","fullscreen","scrollEvents"],[4,"ngIf"],["class","error-container half-height",4,"ngIf"],[1,"fade-header","fade-header--onhero","wishlist-detail-fade-header"],[1,"fade-header__surface"],[1,"fade-header__inner","wishlist-detail-fade-header__inner"],[1,"fade-header__lead"],["type","button","aria-label","Go back",1,"header-action","header-action--on-hero",3,"click"],["name","chevron-back"],[1,"fade-header__title"],[1,"fade-header__name"],[1,"fade-header__actions"],["type","button","class","header-action header-action--on-hero","aria-label","Edit wishlist",3,"click",4,"ngIf"],["type","button","class","header-action header-action--on-hero","aria-label","Share wishlist",3,"click",4,"ngIf"],["type","button","aria-label","Edit wishlist",1,"header-action","header-action--on-hero",3,"click"],["name","create-outline"],["type","button","aria-label","Share wishlist",1,"header-action","header-action--on-hero",3,"click"],["name","share-social-outline"],["aria-hidden","true",1,"hero-shell"],[1,"spoyla-skeleton-fill",3,"animated"],[1,"hero-shell__scrim","hero-shell__scrim--detail"],[1,"hero-shell__content--detail"],[2,"width","min(72%, 280px)","height","38px",3,"animated"],[1,"detail-surface","detail-surface--overlap","detail-surface--flat","wishlist-detail-surface"],["aria-hidden","true",1,"meta-strip","meta-strip--surface"],[2,"width","94px","height","16px","border-radius","999px",3,"animated"],[2,"width","74px","height","16px","border-radius","999px",3,"animated"],["aria-hidden","true",1,"ggrid"],["class","gcard gcard--skeleton",4,"ngFor","ngForOf"],[1,"gcard","gcard--skeleton"],[1,"gcard__well"],[2,"width","82%","height","16px","margin","11px 2px 7px",3,"animated"],[2,"width","48%","height","15px","margin","0 2px",3,"animated"],[1,"error-container","half-height"],["title","Wishlist unavailable","message","We could not load this wishlist right now.",3,"retry"],[1,"hero-shell"],["class","hero-blur-fill","aria-hidden","true",3,"background-image",4,"ngIf"],["class","hero-shell__media hero-shell__media--contain",3,"src","alt",4,"ngIf"],["class","hero-shell__fallback",4,"ngIf"],[1,"hero-shell__scrim"],[1,"hero-shell__status-scrim"],[1,"hero-shell__title"],[1,"meta-strip","meta-strip--surface"],["class","meta-strip__item",4,"ngIf"],["class","meta-strip__dot","aria-hidden","true",4,"ngIf"],[1,"meta-strip__item"],["name","gift-outline"],["aria-hidden","true",1,"meta-strip__dot"],[3,"name"],["class","wishlist-detail-selectbar",4,"ngIf"],["class","ggrid",4,"ngIf"],["class","feature-empty",4,"ngIf"],["aria-hidden","true",1,"hero-blur-fill"],[1,"hero-shell__media","hero-shell__media--contain",3,"src","alt"],[1,"hero-shell__fallback"],["name","gift-outline","aria-hidden","true",1,"hero-shell__fallback-motif"],[1,"meta-strip__avatar"],["name","person"],[1,"wishlist-detail-selectbar"],[1,"wishlist-detail-selectbar__count"],[1,"wishlist-detail-selectbar__actions"],["size","small","fill","clear",3,"click","disabled"],["size","small","fill","solid","color","danger",3,"click","disabled"],[1,"ggrid"],["class","gcard",3,"selected","click","pointerdown","pointermove","pointerup","pointercancel","pointerleave",4,"ngFor","ngForOf"],[1,"gcard",3,"click","pointerdown","pointermove","pointerup","pointercancel","pointerleave"],["class","selection-indicator","aria-hidden","true",4,"ngIf"],[3,"src","alt",4,"ngIf"],["class","item-image-placeholder",4,"ngIf"],["class","reservation-overlay",4,"ngIf"],["class","status-overlay",3,"status-overlay-warning","status-overlay-danger",4,"ngIf"],["class","item-note-badge","aria-label","Has note",3,"item-note-badge-owner",4,"ngIf"],[1,"gcard__t"],["class","gcard__prices",4,"ngIf"],["aria-hidden","true",1,"selection-indicator"],[3,"src","alt"],[1,"item-image-placeholder"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 512 512",1,"gift-icon-svg"],["id","giftGradient","x1","0%","y1","0%","x2","100%","y2","100%"],["offset","0%",2,"stop-color","var(--spoyla-slate-blue)","stop-opacity","1"],["offset","50%",2,"stop-color","var(--spoyla-slate-blue-tint)","stop-opacity","1"],["offset","100%",2,"stop-color","var(--spoyla-slate-blue)","stop-opacity","1"],["d","M256 104v56h56a56 56 0 10-56-56zM256 104v56h-56a56 56 0 1156-56z","fill","none","stroke","url(#giftGradient)","stroke-linecap","round","stroke-miterlimit","10","stroke-width","32"],["x","64","y","160","width","384","height","112","rx","32","ry","32","fill","none","stroke","url(#giftGradient)","stroke-linecap","round","stroke-linejoin","round","stroke-width","32"],["d","M416 272v144a48 48 0 01-48 48H144a48 48 0 01-48-48V272M256 160v304","fill","none","stroke","url(#giftGradient)","stroke-linecap","round","stroke-linejoin","round","stroke-width","32"],[1,"reservation-overlay"],[4,"ngFor","ngForOf"],[1,"status-overlay"],["aria-hidden","true",3,"name"],["aria-label","Has note",1,"item-note-badge"],["name","document-text-outline","aria-hidden","true"],[1,"gcard__prices"],[1,"gcard__p"],[1,"feature-empty"],[1,"feature-empty__icon"],[1,"feature-empty__copy"],[1,"feature-empty__action"],["expand","block","fill","solid","color","primary",3,"click"],["slot","start","name","add"]],template:function(t,r){1&t&&(e.DNE(0,Ue,12,9,"div",1),e.j41(1,"ion-content",2),e.bIt("ionScroll",function(l){return r.onScroll(l)}),e.DNE(2,Be,12,5,"div",3)(3,Ne,2,0,"div",4)(4,ri,25,17,"ng-container",3),e.k0s()),2&t&&(e.Y8G("ngIf",!r.isBusy&&!r.hasError),e.R7$(),e.Y8G("fullscreen",!0)("scrollEvents",!0),e.R7$(),e.Y8G("ngIf",r.isBusy),e.R7$(),e.Y8G("ngIf",!r.isBusy&&r.hasError),e.R7$(),e.Y8G("ngIf",!r.isBusy&&!r.hasError))},dependencies:[k.Sq,k.bT,h.Jm,h.W9,h.iq,h.ds,N.F],styles:["[_nghost-%COMP%]{display:block}.wishlist-detail-surface[_ngcontent-%COMP%]   .meta-strip[_ngcontent-%COMP%], .wishlist-detail-fade-header__inner[_ngcontent-%COMP%]{max-width:none;margin:0}.wishlist-detail-selectbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spoyla-space-2);padding:var(--spoyla-space-2) var(--spoyla-space-3);margin-bottom:var(--spoyla-space-3);border-radius:var(--radius-lg);background:rgba(var(--spoyla-action-slate-blue-rgb),.1)}.wishlist-detail-selectbar__count[_ngcontent-%COMP%]{font-size:.9rem;font-weight:600;color:var(--action-primary)}.wishlist-detail-selectbar__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spoyla-space-1)}"]}))}return n(),o})();var ai=v(2559),li=v(5199),se=v(5237),H=v(359);class _e{}var V=v(1140);class ci{constructor(o,s,i,t,r,a=()=>{}){this.wishlistItemService=o,this.wishlistItemUserReservationService=s,this.mediaAssetService=i,this.logger=t,this.commonPageService=r,this.onChange=a,this.reservedItems=[],this.selectedItemIds=new Set,this.isLoading=!1,this.isClearing=!1,this.isMovingToReceived=!1,this.hasError=!1,this.showGiftGivers=!1}get selectedCount(){return this.selectedItemIds.size}toggleSelection(o){this.selectedItemIds.has(o)?this.selectedItemIds.delete(o):this.selectedItemIds.add(o),this.onChange()}toggleSelectAll(){this.selectedItemIds.size===this.reservedItems.length?this.selectedItemIds.clear():this.selectedItemIds=new Set(this.reservedItems.map(o=>o.wishlistItemId)),this.onChange()}isSelected(o){return this.selectedItemIds.has(o)}onShowGiftGiversChange(o){this.showGiftGivers=o,this.onChange()}getReservationSummary(o){const s=o.reservations.filter(r=>r.reservationTypeId!==O.c.Purchased),i=o.reservations.filter(r=>r.reservationTypeId===O.c.Purchased),t=[];if(this.showGiftGivers){const r=s.map(l=>this.getGiftGiverName(l)).filter(l=>!!l),a=i.map(l=>this.getGiftGiverName(l)).filter(l=>!!l);return r.length>0&&t.push(`Reserved by: ${r.join(", ")}`),a.length>0&&t.push(`Purchased by: ${a.join(", ")}`),t.join(" \u2022 ")}return s.length>0&&t.push(`Reserved: ${s.length}`),i.length>0&&t.push(`Purchased: ${i.length}`),t.join(" \u2022 ")}getGiftGiverName(o){return o.user?.nickName?.trim()||o.user?.userName?.trim()||"Someone"}loadReservations(o){var s=this;return(0,u.A)(function*(){if(o&&!s.isLoading)try{s.isLoading=!0,s.hasError=!1,s.onChange();const[i,t]=yield Promise.all([s.wishlistItemService.GetItemsByWishlist(o,1,250),s.wishlistItemUserReservationService.GetReservationsByWishlistId(o)]),r=(t??[]).filter(l=>!1!==l?.isActive),a=new Map;for(const l of r){const m=a.get(l.wishlistItemId)??[];m.push(l),a.set(l.wishlistItemId,m)}s.reservedItems=(i?.items??[]).filter(l=>l?.wishlistItemId&&a.has(l.wishlistItemId)).map(l=>({item:l,wishlistItemId:l.wishlistItemId||"",imageUrl:s.mediaAssetService.getMediaUrl(l.media)??"",reservations:a.get(l.wishlistItemId||"")??[]})),s.selectedItemIds.forEach(l=>{s.reservedItems.some(m=>m.wishlistItemId===l)||s.selectedItemIds.delete(l)})}catch(i){s.logger.LogError(i,"Failed to load reservations tab"),s.hasError=!0,s.reservedItems=[],s.selectedItemIds.clear()}finally{s.isLoading=!1,s.onChange()}})()}clearSelectedReservations(o,s){var i=this;return(0,u.A)(function*(){if(s&&0!==i.selectedItemIds.size&&!i.isClearing&&!i.isMovingToReceived&&(yield i.commonPageService.showConfirmAlertDialog("Clear reservations",`Remove all reservations from ${i.selectedItemIds.size} selected item${1===i.selectedItemIds.size?"":"s"}?`)))try{i.isClearing=!0,i.onChange(),yield i.wishlistItemUserReservationService.ClearReservationsForItems(Array.from(i.selectedItemIds),o),i.selectedItemIds.clear(),yield i.loadReservations(o)}catch(r){yield i.commonPageService.handleError(r,"Failed to clear reservations")}finally{i.isClearing=!1,i.onChange()}})()}moveSelectedItemsToReceived(o,s){var i=this;return(0,u.A)(function*(){if(s&&0!==i.selectedItemIds.size&&!i.isMovingToReceived&&!i.isClearing&&(yield i.commonPageService.showConfirmAlertDialog("Move to received gifts",`Move ${i.selectedItemIds.size} selected item${1===i.selectedItemIds.size?"":"s"} to Received Gifts? They will be removed from this wishlist and any active reservation history will move with them.`)))try{i.isMovingToReceived=!0,i.onChange(),yield i.wishlistItemService.MoveItemsToReceived(Array.from(i.selectedItemIds),o),i.selectedItemIds.clear(),yield i.loadReservations(o)}catch(r){yield i.commonPageService.handleError(r,"Failed to move items to Received Gifts")}finally{i.isMovingToReceived=!1,i.onChange()}})()}}var di=v(7494),hi=v(6274),_i=v(7834);function mi(n,o){if(1&n&&(e.j41(0,"ion-title")(1,"div",15)(2,"span",16),e.EFF(3),e.k0s()()()),2&n){const s=e.XpG();e.R7$(3),e.JRh(s.pageTitle)}}function gi(n,o){if(1&n&&(e.j41(0,"div",17)(1,"div",18),e.EFF(2),e.k0s(),e.j41(3,"div",19),e.EFF(4),e.k0s()()),2&n){const s=e.XpG();e.R7$(2),e.JRh(s.pageTitle),e.R7$(2),e.JRh(s.wizardStepSubtitle)}}function ui(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-button",22),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.deleteWishlist())}),e.nrm(1,"ion-icon",23),e.EFF(2," Delete "),e.k0s()}if(2&n){const s=e.XpG(2);e.Y8G("disabled",s.isBusy)}}function pi(n,o){if(1&n&&(e.j41(0,"ion-buttons",20),e.DNE(1,ui,3,1,"ion-button",21),e.k0s()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngIf",s.isOwnedByCurrentUser)}}function vi(n,o){if(1&n&&e.nrm(0,"ion-progress-bar",26),2&n){const s=o.$implicit,i=o.index,t=e.XpG(2);e.Y8G("value",i<=t.wizardStepIndex?1:0),e.BMQ("aria-label",s.label+" progress segment")}}function fi(n,o){if(1&n&&(e.j41(0,"div",24),e.DNE(1,vi,1,2,"ion-progress-bar",25),e.k0s()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngForOf",s.wizardSteps)("ngForTrackBy",s.trackWizardStep)}}function Ii(n,o){if(1&n&&e.nrm(0,"img",37),2&n){const s=e.XpG(2);e.Y8G("src",s.selectedArtworkPreviewUrl,e.B4B)("alt",s.pageTitle)}}function wi(n,o){1&n&&(e.j41(0,"div",38),e.nrm(1,"ion-icon",39),e.k0s())}function yi(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-button",40),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openArtworkModal())}),e.nrm(1,"ion-icon",41),e.k0s()}}function bi(n,o){if(1&n&&(e.j41(0,"div",27),e.DNE(1,Ii,1,2,"img",28)(2,wi,2,0,"div",29),e.nrm(3,"div",30),e.DNE(4,yi,2,0,"ion-button",31),e.j41(5,"div",32)(6,"h1",33),e.EFF(7),e.k0s(),e.j41(8,"p",34),e.EFF(9),e.k0s(),e.j41(10,"div",35)(11,"span",36),e.EFF(12),e.k0s()()()()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngIf",s.selectedArtworkPreviewUrl),e.R7$(),e.Y8G("ngIf",!s.selectedArtworkPreviewUrl),e.R7$(2),e.Y8G("ngIf",s.canU
1pdateWishlist),e.R7$(3),e.JRh(s.pageTitle),e.R7$(2),e.JRh(s.pageSummary),e.R7$(3),e.JRh(s.shareTypeLabel)}}function ki(n,o){1&n&&(e.j41(0,"div"),e.nrm(1,"ion-skeleton-text",46)(2,"ion-skeleton-text",47),e.k0s()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function Ri(n,o){if(1&n&&(e.j41(0,"div",42)(1,"ion-card",43)(2,"ion-card-content")(3,"div",44),e.DNE(4,ki,3,2,"div",45),e.k0s()()()()),2&n){const s=e.XpG();e.R7$(4),e.Y8G("ngForOf",s.loadingPlaceholders)}}function Ei(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",42)(1,"app-page-load-error",48),e.bIt("retry",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.retryLoad())}),e.k0s()()}}function xi(n,o){if(1&n&&e.nrm(0,"img",66),2&n){const s=e.XpG(3);e.Y8G("src",s.selectedArtworkPreviewUrl,e.B4B)}}function Wi(n,o){1&n&&(e.j41(0,"div",67)(1,"span",68),e.nrm(2,"ion-icon",69),e.k0s(),e.j41(3,"p"),e.EFF(4,"Pick artwork"),e.k0s()())}function Si(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",51)(1,"div",52)(2,"div",53),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openArtworkModal())})("keydown.enter",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.openArtworkModal())}),e.DNE(3,xi,1,1,"img",54)(4,Wi,5,0,"div",55),e.j41(5,"ion-button",56),e.bIt("click",function(t){c.eBV(s);const r=e.XpG(2);return t.stopPropagation(),c.Njj(r.openArtworkModal())}),e.nrm(6,"ion-icon",57),e.k0s()()(),e.j41(7,"div",58)(8,"div",59)(9,"div",60)(10,"ion-label",61),e.EFF(11,"Wishlist name "),e.j41(12,"ion-text",62),e.EFF(13,"*"),e.k0s()(),e.j41(14,"ion-item",63)(15,"ion-input",64),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(2);return e.DH7(r.name,t)||(r.name=t),c.Njj(t)}),e.k0s()()(),e.j41(16,"div",60)(17,"ion-label",61),e.EFF(18,"Description"),e.k0s(),e.j41(19,"ion-item",63)(20,"ion-textarea",65),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(2);return e.DH7(r.description,t)||(r.description=t),c.Njj(t)}),e.k0s()()()()()()}if(2&n){const s=e.XpG(2);e.R7$(3),e.Y8G("ngIf",s.selectedArtworkPreviewUrl),e.R7$(),e.Y8G("ngIf",!s.selectedArtworkPreviewUrl),e.R7$(11),e.R50("ngModel",s.name),e.Y8G("disabled",s.isBusy),e.R7$(5),e.R50("ngModel",s.description),e.Y8G("disabled",s.isBusy)}}function Gi(n,o){if(1&n&&(e.j41(0,"ion-select-option",26),e.EFF(1),e.k0s()),2&n){const s=o.$implicit;e.Y8G("value",s.id),e.R7$(),e.SpI(" ",s.label," ")}}function Mi(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",60)(1,"ion-label",61),e.EFF(2,"Sharing"),e.k0s(),e.j41(3,"ion-select",73),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(3);return e.DH7(r.wishlistShareTypeId,t)||(r.wishlistShareTypeId=t),c.Njj(t)}),e.bIt("ionChange",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.onShareTypeChanged())}),e.DNE(4,Gi,2,2,"ion-select-option",74),e.k0s(),e.j41(5,"p",75),e.EFF(6),e.k0s()()}if(2&n){const s=e.XpG(3);e.R7$(3),e.R50("ngModel",s.wishlistShareTypeId),e.Y8G("disabled",s.isBusy),e.R7$(),e.Y8G("ngForOf",s.shareTypeOptions),e.R7$(2),e.JRh(s.shareTypeHelperText)}}function Ai(n,o){if(1&n&&(e.j41(0,"ion-select-option",26),e.EFF(1),e.k0s()),2&n){const s=o.$implicit;e.Y8G("value",s.userId),e.R7$(),e.SpI(" ",s.nickName||"Friend"," ")}}function Pi(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",84),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(5);return c.Njj(r.toggleTemplateAccess(t.id,!r.templateAccessSelection[t.id]))}),e.nrm(1,"ion-icon",85),e.j41(2,"span"),e.EFF(3),e.k0s()()}if(2&n){const s=o.$implicit,i=e.XpG(5);e.AVh("role-pill--active",i.templateAccessSelection[s.id]),e.Y8G("disabled",i.isBusy),e.R7$(),e.Y8G("name",s.iconName),e.R7$(2),e.JRh(s.label)}}function Ti(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",58)(1,"div",59)(2,"div",60)(3,"ion-label",61),e.EFF(4,"Friend"),e.k0s(),e.j41(5,"ion-select",80),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(4);return e.DH7(r.selectedFriendUserId,t)||(r.selectedFriendUserId=t),c.Njj(t)}),e.DNE(6,Ai,2,2,"ion-select-option",74),e.k0s()(),e.j41(7,"div",60)(8,"ion-label",61),e.EFF(9,"Access level"),e.k0s(),e.j41(10,"div",81),e.DNE(11,Pi,4,5,"button",82),e.k0s()(),e.j41(12,"ion-button",83),e.bIt("click",function(){c.eBV(s);const t=e.XpG(4);return c.Njj(t.addAccessAssignment())}),e.EFF(13," Assign access "),e.k0s()()()}if(2&n){const s=e.XpG(4);e.R7$(5),e.R50("ngModel",s.selectedFriendUserId),e.Y8G("disabled",0===s.availableFriends.length||s.isBusy)("placeholder",s.availableFriends.length>0?"Select a friend":"No friends available"),e.R7$(),e.Y8G("ngForOf",s.availableFriends),e.R7$(5),e.Y8G("ngForOf",s.accessOptions),e.R7$(),e.Y8G("disabled",!s.selectedFriendUserId||0===s.selectedWishlistAccessIds.length||s.isBusy)}}function Ci(n,o){1&n&&(e.j41(0,"div",88),e.nrm(1,"ion-skeleton-text",89),e.j41(2,"div",90),e.nrm(3,"ion-skeleton-text",91),e.k0s()()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0))}function Fi(n,o){if(1&n&&(e.j41(0,"div",86),e.DNE(1,Ci,4,2,"div",87),e.k0s()),2&n){const s=e.XpG(4);e.R7$(),e.Y8G("ngForOf",s.loadingPlaceholders)}}function ji(n,o){if(1&n&&e.nrm(0,"img",37),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.userName)}}function Ui(n,o){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const s=e.XpG().$implicit;e.R7$(),e.JRh(s.initials)}}function $i(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",94)(1,"div",95),e.DNE(2,ji,1,2,"img",28)(3,Ui,2,1,"span",5),e.k0s(),e.j41(4,"div",96)(5,"div",97),e.EFF(6),e.k0s(),e.j41(7,"div",98),e.EFF(8),e.k0s()(),e.j41(9,"ion-button",99),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(5);
1return c.Njj(r.removeAccessAssignment(t.userId))}),e.nrm(10,"ion-icon",100),e.k0s()()}if(2&n){const s=o.$implicit,i=e.XpG(5);e.R7$(2),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(3),e.JRh(s.userName),e.R7$(2),e.JRh(s.accessSummaryText),e.R7$(),e.Y8G("disabled",i.isBusy)}}function Bi(n,o){if(1&n&&(e.j41(0,"div",92),e.DNE(1,$i,11,5,"div",93),e.k0s()),2&n){const s=e.XpG(4);e.R7$(),e.Y8G("ngForOf",s.accessAssignments)}}function Ni(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1," Friend access applies as soon as the wishlist is created. "),e.k0s())}function Oi(n,o){if(1&n&&(e.qex(0),e.j41(1,"div",76),e.EFF(2,"Friend access"),e.k0s(),e.DNE(3,Ti,14,6,"div",77)(4,Fi,2,1,"ng-template",null,0,e.C5r)(6,Bi,2,1,"div",78)(7,Ni,2,0,"p",79),e.bVm()),2&n){const s=e.sdS(5),i=e.XpG(3);e.R7$(3),e.Y8G("ngIf",!i.isLoadingFriends)("ngIfElse",s),e.R7$(3),e.Y8G("ngIf",i.accessAssignments.length>0),e.R7$(),e.Y8G("ngIf",0===i.accessAssignments.length)}}function Yi(n,o){if(1&n&&(e.j41(0,"div",51)(1,"div",70),e.nrm(2,"ion-icon",71),e.j41(3,"h2"),e.EFF(4,"Who can see this wishlist"),e.k0s(),e.j41(5,"p"),e.EFF(6,"Choose the sharing level, then optionally give specific friends access."),e.k0s()(),e.j41(7,"div",58)(8,"div",59),e.DNE(9,Mi,7,4,"div",72),e.k0s()(),e.DNE(10,Oi,8,4,"ng-container",5),e.k0s()),2&n){const s=e.XpG(2);e.R7$(9),e.Y8G("ngIf",s.canManageAccess),e.R7$(),e.Y8G("ngIf",s.canManageAccess)}}function Di(n,o){if(1&n&&(e.j41(0,"div",105),e.nrm(1,"img",106),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.Y8G("src",s.selectedArtworkPreviewUrl,e.B4B)}}function Xi(n,o){if(1&n&&(e.j41(0,"div",51)(1,"div",70),e.nrm(2,"ion-icon",102),e.j41(3,"h2"),e.EFF(4,"Review your wishlist"),e.k0s(),e.j41(5,"p"),e.EFF(6,"Confirm the details below, then create your wishlist."),e.k0s()(),e.j41(7,"div",58)(8,"div",59),e.DNE(9,Di,2,1,"div",103),e.j41(10,"div",60)(11,"ion-label",61),e.EFF(12,"Name"),e.k0s(),e.j41(13,"p",104),e.EFF(14),e.k0s()(),e.j41(15,"div",60)(16,"ion-label",61),e.EFF(17,"Description"),e.k0s(),e.j41(18,"p",104),e.EFF(19),e.k0s()(),e.j41(20,"div",60)(21,"ion-label",61),e.EFF(22,"Sharing"),e.k0s(),e.j41(23,"p",104),e.EFF(24),e.k0s()(),e.j41(25,"div",60)(26,"ion-label",61),e.EFF(27,"Friends with access"),e.k0s(),e.j41(28,"p",104),e.EFF(29),e.k0s()()()()()),2&n){const s=e.XpG(2);e.R7$(9),e.Y8G("ngIf",s.selectedArtworkPreviewUrl),e.R7$(5),e.JRh(s.name.trim()||"\u2014"),e.R7$(5),e.JRh(s.description.trim()||"No description"),e.R7$(5),e.JRh(s.shareTypeLabel),e.R7$(5),e.SpI(" ",s.accessAssignments.length>0?s.accessAssignments.length+(1===s.accessAssignments.length?" friend":" friends"):"None yet"," ")}}function Vi(n,o){if(1&n&&(e.j41(0,"div",49),e.DNE(1,Si,21,6,"div",50)(2,Yi,11,2,"div",50)(3,Xi,30,5,"div",50),e.k0s()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngIf","details"===s.currentWizardStep.id),e.R7$(),e.Y8G("ngIf","access"===s.currentWizardStep.id),e.R7$(),e.Y8G("ngIf","review"===s.currentWizardStep.id)}}function Li(n,o){if(1&n&&(e.j41(0,"span",118),e.EFF(1),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.SpI("(",s.accessSummaryCount,")")}}function zi(n,o){if(1&n&&(e.j41(0,"span",118),e.EFF(1),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.SpI("(",s.wishlistItems.length,")")}}function Hi(n,o){if(1&n&&(e.j41(0,"span",118),e.EFF(1),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.SpI("(",s.reservedItems.length,")")}}function Ji(n,o){if(1&n&&(e.j41(0,"ion-select-option",26),e.EFF(1),e.k0s()),2&n){const s=o.$implicit;e.Y8G("value",s.id),e.R7$(),e.SpI(" ",s.label," ")}}function Ki(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",121)(1,"ion-label",122),e.EFF(2,"Sharing"),e.k0s(),e.j41(3,"ion-select",73),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(3);return e.DH7(r.wishlistShareTypeId,t)||(r.wishlistShareTypeId=t),c.Njj(t)}),e.bIt("ionChange",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.onShareTypeChanged())}),e.DNE(4,Ji,2,2,"ion-select-option",74),e.k0s(),e.j41(5,"p",75),e.EFF(6),e.k0s()()}if(2&n){const s=e.XpG(3);e.R7$(3),e.R50("ngModel",s.wishlistShareTypeId),e.Y8G("disabled",s.isBusy),e.R7$(),e.Y8G("ngForOf",s.shareTypeOptions),e.R7$(2),e.JRh(s.shareTypeHelperText)}}function Qi(n,o){if(1&n){const s=e.RV6();
1e.j41(0,"div",127)(1,"ion-button",128),e.bIt("click",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.deleteWishlist())}),e.nrm(2,"ion-icon",23),e.EFF(3," Delete wishlist "),e.k0s()()}if(2&n){const s=e.XpG(3);e.R7$(),e.Y8G("disabled",s.isBusy)}}function Zi(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",119)(1,"section",120)(2,"div",121)(3,"ion-label",122),e.EFF(4,"Wishlist name"),e.k0s(),e.j41(5,"ion-item",63)(6,"ion-input",123),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(2);return e.DH7(r.name,t)||(r.name=t),c.Njj(t)}),e.k0s()()(),e.j41(7,"div",121)(8,"ion-label",122),e.EFF(9,"Description"),e.k0s(),e.j41(10,"ion-item",63)(11,"ion-textarea",124),e.mxI("ngModelChange",function(t){c.eBV(s);const r=e.XpG(2);return e.DH7(r.description,t)||(r.description=t),c.Njj(t)}),e.k0s()()(),e.DNE(12,Ki,7,4,"div",125),e.k0s(),e.DNE(13,Qi,4,1,"div",126),e.k0s()}if(2&n){const s=e.XpG(2);e.R7$(6),e.R50("ngModel",s.name),e.Y8G("disabled",s.isBusy||!s.canUpdateWishlist),e.R7$(5),e.R50("ngModel",s.description),e.Y8G("disabled",s.isBusy||!s.canUpdateWishlist),e.R7$(),e.Y8G("ngIf",s.canManageAccess),e.R7$(),e.Y8G("ngIf",s.isOwnedByCurrentUser)}}function qi(n,o){if(1&n&&(e.j41(0,"span",134),e.EFF(1),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.SpI(" \xb7 ",s.accessSummaryCount)}}function et(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",135),e.bIt("click",function(){c.eBV(s);const t=e.XpG(3);return c.Njj(t.openInviteMembers())}),e.nrm(1,"ion-icon",136),e.EFF(2," Add members "),e.k0s()}if(2&n){const s=e.XpG(3);e.Y8G("disabled",s.isBusy||s.isMemberRosterLoading)}}function it(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1," Only the wishlist owner and managers can change access. "),e.k0s())}function tt(n,o){1&n&&(e.j41(0,"div",94),e.nrm(1,"ion-skeleton-text",137),e.j41(2,"div",96),e.nrm(3,"ion-skeleton-text",138),e.k0s()()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0))}function st(n,o){if(1&n&&(e.j41(0,"div",92),e.DNE(1,tt,4,2,"div",93),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.Y8G("ngForOf",s.loadingPlaceholders)}}function nt(n,o){if(1&n&&e.nrm(0,"img",37),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.displayName)}}function rt(n,o){if(1&n&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&n){const s=e.XpG().$implicit;e.R7$(),e.JRh(s.initials)}}function ot(n,o){if(1&n&&(e.j41(0,"span",142),e.EFF(1),e.k0s()),2&n){const s=e.XpG().$implicit,i=e.XpG(4);e.AVh("role-pill--owner",s.isOwner||s.wishlistAccessId===i.WishlistAccessId.Manager),e.R7$(),e.JRh(s.accessRoleLabel)}}function at(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",84),e.bIt("click",function(t){c.eBV(s);const r=e.XpG().$implicit,a=e.XpG(4);return c.Njj(a.onMemberRoleChipClick(r,t))}),e.EFF(1),e.nrm(2,"ion-icon",143),e.k0s()}if(2&n){const s=e.XpG().$implicit,i=e.XpG(4);e.AVh("role-pill--active",s.wishlistAccessId===i.WishlistAccessId.Manager),e.Y8G("disabled",i.busyMemberUserIds.has(s.userId)),e.R7$(),e.SpI(" ",s.accessRoleLabel," ")}}function lt(n,o){if(1&n&&(e.j41(0,"div",94)(1,"div",95),e.DNE(2,nt,1,2,"img",28)(3,rt,2,1,"span",5),e.k0s(),e.j41(4,"div",96)(5,"div",97),e.EFF(6),e.k0s()(),e.DNE(7,ot,2,3,"span",140)(8,at,3,4,"button",141),e.k0s()),2&n){const s=o.$implicit,i=e.XpG(4);e.AVh("is-busy",i.busyMemberUserIds.has(s.userId)),e.R7$(2),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(3),e.JRh(s.displayName),e.R7$(),e.Y8G("ngIf",!s.canEditRole),e.R7$(),e.Y8G("ngIf",s.canEditRole)}}function ct(n,o){if(1&n&&(e.j41(0,"div",92),e.DNE(1,lt,9,7,"div",139),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.Y8G("ngForOf",s.memberRows)("ngForTrackBy",s.trackMemberRow)}}function dt(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1," Only you have access. "),e.k0s())}function ht(n,o){if(1&n&&(e.j41(0,"div",129)(1,"div",130)(2,"span",131),e.EFF(3,"Members"),e.DNE(4,qi,2,1,"span",132),e.k0s(),e.DNE(5,et,3,1,"button",133),e.k0s(),e.DNE(6,it,2,0,"p",79)(7,st,2,1,"div",78)(8,ct,2,2,"div",78)(9,dt,2,0,"p",79),e.k0s()),2&n){const s=e.XpG(2);e.R7$(4),e.Y8G("ngIf",s.accessSummaryCount>0),e.R7$(),e.Y8G("ngIf",s.canManageAccess),e.R7$(),e.Y8G("ngIf",!s.canManageAccess),e.R7$(),e.Y8G("ngIf",s.isMemberRosterLoading),e.R7$(),e.Y8G("ngIf",!s.isMemberRosterLoading&&s.memberRows.length>0),e.R7$(),e.Y8G("ngIf",!s.isMemberRosterLoading&&0===s.memberRows.length)}}function _t(n,o){if(1&n&&(e.j41(0,"span",134),e.EFF(1),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.SpI(" \xb7 ",s.wishlistItems.length)}}function mt(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1," This wishlist has no items yet. "),e.k0s())}function gt(n,o){if(1&n&&e.nrm(0,"img",151),2&n){const s=e.XpG().$implicit,i=e.XpG(4);e.Y8G("src",i.getItemImageUrl(s),e.B4B)("alt",s.title)}}function ut(n,o){1&n&&e.nrm(0,"ion-icon",152)}function pt(n,o){if(1&n&&(e.j41(0,"div",94)(1,"ion-reorder",147),e.nrm(2,"ion-icon",148),e.k0s(),e.j41(3,"div",95),e.DNE(4,gt,1,2,"img",149)(5,ut,1,0,"ion-icon",150),e.k0s(),e.j41(6,"div",96)(7,"div",97),e.EFF(8),e.k0s()()()),2&n){const s=o.$implicit,i=e.XpG(4);e.R7$(4),e.Y8G("ngIf",i.getItemImageUrl(s)),e.R7$(),e.Y8G("ngIf",!i.getItemImageUrl(s)),e.R7$(3),e.JRh(s.title)}}function vt(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-reorder-group",145),e.bIt("ionItemReorder",function(t){c.eBV(s);const r=e.XpG(3);return c.Njj(r.onItemReorder(t))}),e.DNE(1,pt,9,3,"div",146),e.k0s()}if(2&n){const s=e.XpG(3);e.Y8G("disabled",s.isReorderingItems),e.R7$(),e.Y8G("ngForOf",s.wishlistItems)("ngForTrackBy",s.trackWishlistItem)}}function ft(n,o){if(1&n&&(e.j41(0,"div",129)(1,"div",130)(2,"span",131),e.EFF(3,"Item order"),e.DNE(4,_t,2,1,"span",132),e.k0s()(),e.DNE(5,mt,2,0,"p",79)(6,vt,2,3,"ion-reorder-group",144),e.k0s()),2&n){const s=e.XpG(2);e.R7$(4),e.Y8G("ngIf",s.wishlistItems.length>0),e.R7$(),e.Y8G("ngIf",!s.isLoadingItems&&0===s.wishlistItems.length),e.R7$(),e.Y8G("ngIf",!s.isLoadingItems&&s.wishlistItems.length>0)}}function It(n,o){1&n&&(e.j41(0,"div",94),e.nrm(1,"ion-skeleton-text",137),e.j41(2,"div",96),e.nrm(3,"ion-skeleton-text",138),e.k0s()()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0))}function wt(n,o){if(1&n&&(e.j41(0,"div",92),e.DNE(1,It,4,2,"div",93),e.k0s()),2&n){const s=e.XpG(4);e.R7$(),e.Y8G("ngForOf",s.loadingPlaceholders)}}function yt(n,o){if(1&n){const s=e.RV6();e.j41(0,"app-page-load-error",155),e.bIt("retry",function(){c.eBV(s);const t=e.XpG(4);return c.Njj(t.retryReservationTabLoad())}),e.k0s()}}function bt(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",130)(1,"span",131),e.EFF(2),e.k0s(),e.j41(3,"button",158),e.bIt("click",function(){c.eBV(s);const t=e.XpG(5);return c.Njj(t.toggleReservationSelectAll())}),e.EFF(4),e.k0s()()}if(2&n){const s=e.XpG(5);e.R7$(2),e.Lme("",s.reservedItems.length," item",1===s.reservedItems.length?"":"s"," with reservations"),e.R7$(2),e.SpI(" ",s.reservationSelectedCount===s.reservedItems.length?"Clear all":"Select all"," ")}}function kt(n,o){if(1&n&&(e.j41(0,"p",101),e.EFF(1),e.k0s()),2&n){const s=e.XpG(5);e.R7$(),e.SpI(" ",s.isOwnedByCurrentUser?"Select items to remove reservations or move them to Received Gifts.":"Select items to remove all reservations from them."," ")}}function Rt(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-item",159)(1,"div")(2,"h3"),e.EFF(3,"Show gift givers"),e.k0s(),e.j41(4,"p"),e.EFF(5,"Reveal the names of people who reserved each item instead of just a count."),e.k0s()(),e.j41(6,"ion-toggle",160),e.bIt("ionChange",function(t){c.eBV(s);const r=e.XpG(5);return c.Njj(r.onReservationGiftGiversChange(t.detail.checked))}),e.k0s()()}if(2&n){const s=e.XpG(5);e.R7$(6),e.Y8G("checked",s.showReservationGiftGivers)}}function Et(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1," There are no items with active reservations on this wishlist. "),e.k0s())}function xt(n,o){if(1&n&&e.nrm(0,"img",151),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.item.title)}}function Wt(n,o){1&n&&e.nrm(0,"ion-icon",152)}function St(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",162),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(6);return c.Njj(r.toggleReservationSelection(t.wishlistItemId))}),e.nrm(1,"ion-checkbox",163),e.j41(2,"div",95),e.DNE(3,xt,1,2,"img",149)(4,Wt,1,0,"ion-icon",150),e.k0s(),e.j41(5,"div",96)(6,"div",97),e.EFF(7),e.k0s(),e.j41(8,"div",98),e.EFF(9),e.k0s()()()}if(2&n){const s=o.$implicit,i=e.XpG(6);e.AVh("editrow--picked",i.isReservationSelected(s.wishlistItemId)),e.R7$(),e.Y8G("checked",i.isReservationSelected(s.wishlistItemId)),e.R7$(2),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(3),e.JRh(s.item.title),e.R7$(2),e.JRh(i.getReservationEntrySummary(s))}}function Gt(n,o){if(1&n&&(e.j41(0,"div",92),e.DNE(1,St,10,7,"div",161),e.k0s()),2&n){const s=e.XpG(5);e.R7$(),e.Y8G("ngForOf",s.reservedItems)("ngForTrackBy",s.trackReservationEntry)}}
1function Mt(n,o){1&n&&e.nrm(0,"ion-spinner",168)}function At(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-button",167),e.bIt("click",function(){c.eBV(s);const t=e.XpG(6);return c.Njj(t.moveSelectedReservationTabItemsToReceived())}),e.DNE(1,Mt,1,0,"ion-spinner",166),e.j41(2,"span"),e.EFF(3),e.k0s()()}if(2&n){const s=e.XpG(6);e.Y8G("disabled",0===s.reservationSelectedCount||s.isMovingReservationsToReceived||s.isClearingReservations),e.R7$(),e.Y8G("ngIf",s.isMovingReservationsToReceived),e.R7$(2),e.JRh(s.isMovingReservationsToReceived?"Moving...":"Move to Received Gifts")}}function Pt(n,o){1&n&&e.nrm(0,"ion-spinner",168)}function Tt(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",127),e.DNE(1,At,4,3,"ion-button",164),e.j41(2,"ion-button",165),e.bIt("click",function(){c.eBV(s);const t=e.XpG(5);return c.Njj(t.clearSelectedReservationTabItems())}),e.DNE(3,Pt,1,0,"ion-spinner",166),e.j41(4,"span"),e.EFF(5),e.k0s()()()}if(2&n){const s=e.XpG(5);e.R7$(),e.Y8G("ngIf",s.isOwnedByCurrentUser),e.R7$(),e.Y8G("disabled",0===s.reservationSelectedCount||s.isClearingReservations||s.isMovingReservationsToReceived),e.R7$(),e.Y8G("ngIf",s.isClearingReservations),e.R7$(2),e.JRh(s.isClearingReservations?"Clearing...":"Clear reservations")}}function Ct(n,o){if(1&n&&(e.qex(0),e.DNE(1,bt,5,3,"div",156)(2,kt,2,1,"p",79)(3,Rt,7,1,"ion-item",157)(4,Et,2,0,"p",79)(5,Gt,2,2,"div",78)(6,Tt,6,4,"div",126),e.bVm()),2&n){const s=e.XpG(4);e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0),e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0),e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0),e.R7$(),e.Y8G("ngIf",0===s.reservedItems.length),e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0),e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0)}}function Ft(n,o){if(1&n&&(e.qex(0),e.DNE(1,wt,2,1,"div",78)(2,yt,1,0,"app-page-load-error",154)(3,Ct,7,6,"ng-container",5),e.bVm()),2&n){const s=e.XpG(3);e.R7$(),e.Y8G("ngIf",s.isLoadingReservationTab&&0===s.reservedItems.length),e.R7$(),e.Y8G("ngIf",s.hasReservationTabError&&!s.isLoadingReservationTab),e.R7$(),e.Y8G("ngIf",!s.isLoadingReservationTab&&!s.hasReservationTabError)}}function jt(n,o){1&n&&(e.j41(0,"p",101),e.EFF(1,"You do not have permission to manage reservations for this wishlist."),e.k0s())}function Ut(n,o){if(1&n&&(e.j41(0,"div",129),e.DNE(1,Ft,4,3,"ng-container",153)(2,jt,2,0,"ng-template",null,1,e.C5r),e.k0s()),2&n){const s=e.sdS(3),i=e.XpG(2);e.R7$(),e.Y8G("ngIf",i.canManageAccess)("ngIfElse",s)}}function $t(n,o){if(1&n){const s=e.RV6();e.j41(0,"div",107)(1,"div",108)(2,"div",109)(3,"ion-segment",110),e.bIt("ionChange",function(t){c.eBV(s);const r=e.XpG();return c.Njj(r.onEditSegmentChanged(t))}),e.j41(4,"ion-segment-button",111)(5,"ion-label"),e.EFF(6,"Details"),e.k0s()(),e.j41(7,"ion-segment-button",112)(8,"ion-label"),e.EFF(9,"Members"),e.DNE(10,Li,2,1,"span",113),e.k0s()(),e.j41(11,"ion-segment-button",114)(12,"ion-label"),e.EFF(13,"Item Order"),e.DNE(14,zi,2,1,"span",113),e.k0s()(),e.j41(15,"ion-segment-button",115)(16,"ion-label"),e.EFF(17,"Reservations"),e.DNE(18,Hi,2,1,"span",113),e.k0s()()()(),e.DNE(19,Zi,14,6,"div",116)(20,ht,10,6,"div",117)(21,ft,7,3,"div",117)(22,Ut,4,2,"div",117),e.k0s()()}if(2&n){const s=e.XpG();e.R7$(3),e.Y8G("value",s.activeEditSegment),e.R7$(7),e.Y8G("ngIf",s.accessSummaryCount>0),e.R7$(4),e.Y8G("ngIf",s.wishlistItems.length>0),e.R7$(4),e.Y8G("ngIf",s.reservedItems.length>0),e.R7$(),e.Y8G("ngIf","details"===s.activeEditSegment),e.R7$(),e.Y8G("ngIf","members"===s.activeEditSegment),e.R7$(),e.Y8G("ngIf","itemOrder"===s.activeEditSegment),e.R7$(),e.Y8G("ngIf","reservations"===s.activeEditSegment)}}function Bt(n,o){1&n&&e.nrm(0,"ion-skeleton-text",173),2&n&&e.Y8G("animated",!0)}function Nt(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-footer")(1,"ion-toolbar")(2,"div",169)(3,"ion-button",170),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.dismiss())}),e.EFF(4," Cancel "),e.k0s(),e.j41(5,"ion-button",171),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.saveWishlist())}),e.DNE(6,Bt,1,1,"ion-skeleton-text",172),e.EFF(7),e.k0s()()()()}if(2&n){const s=e.XpG();e.R7$(3),e.Y8G("disabled",s.isBusy),e.R7$(2),e.Y8G("disabled",s.isBusy),e.R7$(),e.Y8G("ngIf",s.isBusy),e.R7$(),e.SpI(" ",s.isBusy?"S
1aving...":s.primaryActionLabel," ")}}function Ot(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-col")(1,"ion-button",177),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.previousWizardStep())}),e.EFF(2," Back "),e.k0s()()}if(2&n){const s=e.XpG(2);e.R7$(),e.Y8G("disabled",s.isBusy)}}function Yt(n,o){1&n&&e.nrm(0,"ion-skeleton-text",173),2&n&&e.Y8G("animated",!0)}function Dt(n,o){1&n&&e.nrm(0,"ion-icon",178)}function Xt(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-footer")(1,"ion-toolbar")(2,"ion-row",174),e.DNE(3,Ot,3,1,"ion-col",5),e.j41(4,"ion-col")(5,"ion-button",175),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.handleWizardPrimaryAction())}),e.DNE(6,Yt,1,1,"ion-skeleton-text",172),e.EFF(7),e.DNE(8,Dt,1,0,"ion-icon",176),e.k0s()()()()()}if(2&n){const s=e.XpG();e.R7$(3),e.Y8G("ngIf",!s.isFirstWizardStep),e.R7$(2),e.Y8G("disabled",s.isBusy||!s.isCurrentWizardStepValid),e.R7$(),e.Y8G("ngIf",s.isBusy),e.R7$(),e.SpI(" ",s.isBusy?"Creating...":s.wizardPrimaryLabel," "),e.R7$(),e.Y8G("ngIf",!s.isBusy&&!s.isLastWizardStep)}}function Vt(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",192),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(3);return c.Njj(r.onArtworkCategoryChanged(t.categoryId))}),e.EFF(1),e.k0s()}if(2&n){const s=o.$implicit,i=e.XpG(3);e.AVh("active",s.categoryId===i.modalActiveArtworkCategoryId),e.R7$(),e.SpI(" ",s.label," ")}}function Lt(n,o){if(1&n&&(e.j41(0,"div",190),e.DNE(1,Vt,2,3,"button",191),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.Y8G("ngForOf",s.modalArtworkCategories)("ngForTrackBy",s.trackByCategoryId)}}function zt(n,o){if(1&n&&e.nrm(0,"ion-img",197),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.previewUrl)}}function Ht(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-card",195),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(3);return c.Njj(r.selectArtwork(t.mediaId))}),e.DNE(1,zt,1,1,"ion-img",196),e.j41(2,"ion-card-content")(3,"p"),e.EFF(4),e.k0s()()()}if(2&n){const s=o.$implicit,i=e.XpG(3);e.AVh("artwork-card-selected",s.isSelected),e.Y8G("disabled",!i.canUpdateWishlist),e.R7$(),e.Y8G("ngIf",s.previewUrl),e.R7$(3),e.JRh(s.displayName)}}function Jt(n,o){if(1&n&&(e.j41(0,"div",193),e.DNE(1,Ht,5,5,"ion-card",194),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.Y8G("ngForOf",s.modalVisibleArtworkOptions)("ngForTrackBy",s.trackByMediaId)}}function Kt(n,o){1&n&&(e.j41(0,"p",198),e.EFF(1,"No artwork options were returned by the API."),e.k0s())}function Qt(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-header")(1,"ion-toolbar")(2,"ion-title"),e.EFF(3,"Select artwork"),e.k0s(),e.j41(4,"ion-buttons",179)(5,"ion-button",180),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.closeArtworkModal())}),e.nrm(6,"ion-icon",181),e.k0s()()()(),e.j41(7,"ion-content",182)(8,"div",183),e.DNE(9,Lt,2,2,"div",184)(10,Jt,2,2,"div",185)(11,Kt,2,0,"ng-template",null,2,e.C5r),e.k0s()(),e.j41(13,"ion-footer",186)(14,"ion-toolbar")(15,"div",187)(16,"ion-button",188),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.closeArtworkModal())}),e.EFF(17,"Cancel"),e.k0s(),e.j41(18,"ion-button",189),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.applyArtworkModalSelection())}),e.EFF(19,"Done"),e.k0s()()()()}if(2&n){const s=e.sdS(12),i=e.XpG();e.R7$(9),e.Y8G("ngIf",i.modalArtworkCategories.length>0),e.R7$(),e.Y8G("ngIf",i.modalVisibleArtworkOptions.length>0)("ngIfElse",s)}}let me=(()=>{var n;class o{constructor(i,t,r,a,l,m,g,_,p,E,I,x,X,L,q,Gs,Ms){this.reportedMediaService=i,this.route=t,this.nav=r,this.modalController=a,this.popoverController=l,this.alertController=m,this.common=g,this.logger=_,this.jwtService=p,this.wishlistService=E,this.wishlistItemService=I,this.mediaAssetService=x,this.knownMediaService=X,this.friendshipService=L,this.wishlistUserAccessService=q,this.wishlistItemUserReservationService=Gs,this.posthogService=Ms,this.loadingPlaceholders=[0,1,2,3],this.wizardStepIndex=0,this.wizardSteps=[{id:"details",label:"Details"},{id:"access",label:"Access"},{id:"review",label:"Review"}],this.shareTypeOptions=H.ZZ.map(ee=>({id:ee.id,label:ee.label,helperText:ee.description,iconName:ee.icon})),this.accessOptions=[{id:R.n.View,label:"View",iconName:"eye-outline"},{id:R.n.Item,label:"Item",iconName:"add-circle-outline"}
1,{id:R.n.Update,label:"Update",iconName:"create-outline"},{id:R.n.Manager,label:"Manager",iconName:"shield-checkmark-outline"}],this.WishlistAccessId=R.n,this.activeEditSegment="details",this.memberRows=[],this.busyMemberUserIds=new Set,this.isMemberRosterLoading=!1,this.wishlistId="",this.wishlistItems=[],this.isLoadingItems=!1,this.isReorderingItems=!1,this.isReorderSaving=!1,this.defaultBackHref="/app/wishlist",this.isEditMode=!1,this.isBusy=!1,this.isLoading=!1,this.hasError=!1,this.isOwnedByCurrentUser=!0,this.canUpdateWishlist=!0,this.canManageAccess=!0,this.isLoadingFriends=!1,this.pageTitle="Create wishlist",this.pageSummary="Add artwork, sharing, and access details.",this.primaryActionLabel="Create wishlist",this.expandedAccordionValues=[],this.name="",this.description="",this.wishlistShareTypeId=H.zI,this.shareTypeLabel="Anyone with link",this.shareTypeHelperText="",this.shareTypeIconName="link-outline",this.selectedMediaId=null,this.selectedArtworkName="No artwork selected",this.selectedArtworkPreviewUrl=null,this.activeArtworkCategoryId=null,this.artworkCategories=[],this.visibleArtworkOptions=[],this.modalSelectedMediaId=null,this.modalActiveArtworkCategoryId=null,this.modalArtworkCategories=[],this.modalVisibleArtworkOptions=[],this.isArtworkModalOpen=!1,this.accessAssignments=[],this.availableFriends=[],this.selectedFriendUserId=null,this.selectedWishlistAccessIds=[R.n.View],this.templateAccessSelection={},this.accessSummaryText="Only you have access.",this.accessSummaryCount=0,this.accessSummaryAriaLabel="No users have access",this.reservedItems=[],this.isLoadingReservationTab=!1,this.isClearingReservations=!1,this.isMovingReservationsToReceived=!1,this.hasReservationTabError=!1,this.showReservationGiftGivers=!1,this.reservationSelectedCount=0,this.hasLoadedReservationTab=!1,this.loadedWishlist=null,this.returnToUrl="",this.currentUserId="",this.friends=[],this.knownMedia=[],this.initialWishlistUserAccesses=[],this.reservationTabState=new ci(this.wishlistItemService,this.wishlistItemUserReservationService,this.mediaAssetService,this.logger,this.common,()=>{this.reservedItems=this.reservationTabState.reservedItems,this.isLoadingReservationTab=this.reservationTabState.isLoading,this.isClearingReservations=this.reservationTabState.isClearing,this.isMovingReservationsToReceived=this.reservationTabState.isMovingToReceived,this.hasReservationTabError=this.reservationTabState.hasError,this.showReservationGiftGivers=this.reservationTabState.showGiftGivers,this.reservationSelectedCount=this.reservationTabState.selectedCount})}ngOnInit(){this.wishlistId=this.route.snapshot.paramMap.get("wishlistId")||"",this.returnToUrl=this.route.snapshot.queryParamMap.get("returnTo")||"",this.defaultBackHref=this.returnToUrl||(this.wishlistId?`/app/wishlist/${this.wishlistId}`:"/app/wishlist"),this.isEditMode=this.wishlistId.length>0}ionViewWillEnter(){var i=this;return(0,u.A)(function*(){yield i.loadEditor()})()}retryLoad(){var i=this;return(0,u.A)(function*(){yield i.loadEditor()})()}get currentWizardStep(){return this.wizardSteps[this.wizardStepIndex]}get isFirstWizardStep(){return 0===this.wizardStepIndex}get isLastWizardStep(){return this.wizardStepIndex===this.wizardSteps.length-1}get wizardStepSubtitle(){return`Step ${this.wizardStepIndex+1} of ${this.wizardSteps.length}: ${this.currentWizardStep.label}`}get wizardPrimaryLabel(){return this.isLastWizardStep?this.primaryActionLabel:`Next: ${this.wizardSteps[this.wizardStepIndex+1].label}`}get isCurrentWizardStepValid(){return"details"!==this.currentWizardStep.id||this.name.trim().length>0}trackWizardStep(i,t){return t.id}handleWizardPrimaryAction(){var i=this;return(0,u.A)(function*(){i.isLastWizardStep?yield i.saveWishlist():i.isCurrentWizardStepValid&&(i.wizardStepIndex=Math.min(i.wizardStepIndex+1,i.wizardSteps.length-1))})()}previousWizardStep(){var i=this;return(0,u.A)(function*(){i.isFirstWizardStep?yield i.dismiss():i.wizardStepIndex=Math.max(i.wizardStepIndex-1,0)})()}dismiss(){var i=this;return(0,u.A)(function*(){yield i.nav.navigateBack(i.defaultBackHref)})()}onShareTypeChanged(){this.syncShareTypeState()}trackByCategoryId(i,t){return t.categoryId}trackByMediaId(i,t){return t.mediaId}openArtworkModal(){this.canUpdateWishlist&&(this.resetArtworkModalState(),this.isArtworkModalOpen=!0)}
1closeArtworkModal(){this.isArtworkModalOpen=!1,this.resetArtworkModalState()}applyArtworkModalSelection(){this.canUpdateWishlist?(this.selectedMediaId=this.modalSelectedMediaId,this.activeArtworkCategoryId=this.modalActiveArtworkCategoryId,this.syncArtworkCategories(),this.isArtworkModalOpen=!1):this.closeArtworkModal()}onArtworkCategoryChanged(i){this.modalActiveArtworkCategoryId=i,this.syncArtworkModalState()}selectArtwork(i){this.canUpdateWishlist&&(this.modalSelectedMediaId=i,this.syncArtworkModalState())}clearArtwork(){this.canUpdateWishlist&&(this.modalSelectedMediaId=null,this.syncArtworkModalState())}toggleTemplateAccess(i,t){if(!t)return this.selectedWishlistAccessIds=this.selectedWishlistAccessIds.filter(r=>r!==i),void this.syncTemplateAccessSelection();this.selectedWishlistAccessIds.includes(i)||(this.selectedWishlistAccessIds=[...this.selectedWishlistAccessIds,i],this.syncTemplateAccessSelection())}addAccessAssignment(){if(!this.canManageAccess||!this.selectedFriendUserId)return;const i=this.friends.find(a=>a.userId===this.selectedFriendUserId);if(!i?.userId)return;const t=this.accessAssignments.find(a=>a.userId===i.userId);if(t)return t.selectedAccesses=this.selectedWishlistAccessIds.map(a=>({wishlistUserAccessId:t.selectedAccesses.find(m=>m.wishlistAccessId===a)?.wishlistUserAccessId||null,wishlistAccessId:a})),this.accessAssignments=this.accessAssignments.map(a=>a.userId===t.userId?this.mapAccessAssignment(t):a),this.selectedFriendUserId=null,void this.syncAvailableFriends();const r=this.mapAccessAssignment({userId:i.userId,userName:i.nickName||"Friend",imageUrl:this.reportedMediaService.isReported(i.media?.mediaId)?null:this.mediaAssetService.getMediaUrl(i.media),initials:this.getInitials(i.nickName||"Friend"),selectedAccesses:this.selectedWishlistAccessIds.map(a=>({wishlistUserAccessId:null,wishlistAccessId:a})),accessSummaryText:"",accessIcons:[],isOwner:!1,isCurrentUser:!1});this.accessAssignments=[...this.accessAssignments,r],this.selectedFriendUserId=null,this.syncAvailableFriends()}removeAccessAssignment(i){this.canManageAccess&&(this.accessAssignments=this.accessAssignments.filter(t=>t.userId!==i),this.syncAvailableFriends())}saveWishlist(){var i=this;return(0,u.A)(function*(){if(i.isBusy)return;const t=i.name.trim();if(!i.canUpdateWishlist||t)if(!i.isEditMode||i.loadedWishlist)try{i.isBusy=!0;const r=!i.isEditMode;let a=i.wishlistId;if(!i.isEditMode&&!i.currentUserId&&(i.currentUserId=yield i.jwtService.getUserId()),!i.isEditMode||i.canUpdateWishlist){const l=new _e;i.loadedWishlist&&Object.assign(l,i.loadedWishlist),l.wishlistId=i.isEditMode?i.wishlistId:l.wishlistId,l.userId=i.loadedWishlist?.userId||i.currentUserId,l.name=t,l.description=i.description.trim(),l.wishlistShareTypeId=i.
1canManageAccess?i.wishlistShareTypeId:i.loadedWishlist?.wishlistShareTypeId||i.wishlistShareTypeId,l.mediaId=i.selectedMediaId??null,l.isActive=!0;const m=yield i.wishlistService.InsUpdWishlist(l);i.loadedWishlist=m,i.wishlistId=m.wishlistId||"",a=m.wishlistId||"",i.isEditMode=!0}else if(!i.canManageAccess)return void(yield i.common.showAlertDialog("Permission required","You do not have permission to update this wishlist."));r&&i.canManageAccess&&a&&(yield i.saveWishlistAccessAssignments(a)),i.posthogService.posthog.capture(i.isEditMode?"wishlist_updated":"wishlist_created",{wishlist_id:a,share_type:i.wishlistShareTypeId,has_artwork:!!i.selectedMediaId,access_count:i.accessAssignments.length}),i.defaultBackHref=i.returnToUrl||`/app/wishlist/${a}`,yield i.nav.navigateBack(i.defaultBackHref,{queryParams:r&&i.returnToUrl&&a?{createdWishlistId:a}:void 0})}catch(r){yield i.common.handleError(r,i.isEditMode?"We could not update the wishlist.":"We could not create the wishlist.")}finally{i.isBusy=!1}else yield i.common.showAlertDialog("Wishlist unavailable","Reload the wishlist before saving again.");else yield i.common.showAlertDialog("Name required","Enter a wishlist name before saving.")})()}deleteWishlist(){var i=this;return(0,u.A)(function*(){if(i.isEditMode&&!i.isBusy&&i.loadedWishlist&&i.isOwnedByCurrentUser&&(yield i.common.showConfirmAlertDialog("Delete wishlist",`Delete ${i.loadedWishlist.name||"this wishlist"}?`)))try{i.isBusy=!0;const r=new _e;Object.assign(r,i.loadedWishlist),r.wishlistId=i.wishlistId,r.isActive=!1,yield i.wishlistService.InsUpdWishlist(r),i.posthogService.posthog.capture("wishlist_deleted",{wishlist_id:i.wishlistId}),yield i.nav.navigateBack("/app/wishlist")}catch(r){yield i.common.handleError(r,"We could not delete the wishlist.")}finally{i.isBusy=!1}})()}getItemImageUrl(i){return this.reportedMediaService.isReported(i.media?.mediaId)?"":this.mediaAssetService.getMediaUrl(i.media)??""}trackWishlistItem(i,t){return t.wishlistItemId||""}onItemReorder(i){var t=this;return(0,u.A)(function*(){const r=i.detail.from,a=i.detail.to,l=i.detail.complete(t.wishlistItems);if(t.wishlistItems=l,t.wishlistItems.forEach((_,p)=>{_.displayOrder=p}),t.isReorderSaving)return;if("number"==typeof r&&"number"==typeof a&&r===a)return;let g;if("number"==typeof r&&"number"==typeof a&&r!==a){const _=Math.min(r,a),p=Math.max(r,a);g=t.wishlistItems.slice(_,p+1).map((E,I)=>({wishlistItemId:E.wishlistItemId||"",displayOrder:_+I}))}else g=t.wishlistItems.map((_,p)=>({wishlistItemId:_.wishlistItemId||"",displayOrder:p}));try{t.isReorderSaving=!0,t.isReorderingItems=!0,yield t.wishlistItemService.ReorderItems({wishlistId:t.wishlistId,itemOrders:g}),t.logger.LogDebug("Wishlist items reordered",{wishlistId:t.wishlistId})}catch(_){t.logger.LogError(_,"Failed to reorder wishlist items"),yield t.common.handleError(_,"Failed to reorder items"),yield t.loadWishlistItems()}finally{t.isReorderingItems=!1,t.isReorderSaving=!1}})()}loadWishlistItems(){var i=this;return(0,u.A)(function*(){if(i.wishlistId)try{i.isLoadingItems=!0;const t=yield i.wishlistItemService.GetItemsByWishlist(i.wishlistId,1,250);i.wishlistItems=(t?.items||[]).filter(r=>!1!==r?.isActive)}catch(t){i.logger.LogError(t,"Failed to load wishlist items for the editor"),i.wishlistItems=[]}finally{i.isLoadingItems=!1}})()}loadEditor(){var i=this;return(0,u.A)(function*(){try{i.isLoading=!0,i.hasError=!1,i.currentUserId=yield i.jwtService.getUserId();const[t,r]=yield Promise.all([i.knownMediaService.GetActiveKnownMedia(ai._.Wishlist),i.friendshipService.GetFriends()]);i.knownMedia=(t||[]).filter(a=>!!a?.mediaId),i.friends=(r||[]).filter(a=>!!a?.userId),i.isEditMode?(yield i.loadWishlistRecord(),yield i.loadWishlistItems()):(i.loadedWishlist=null,i.name="",i.description="",i.wishlistShareTypeId=H.zI,i.selectedMediaId=null,i.isOwnedByCurrentUser=!0,i.canUpdateWishlist=!0,i.canManageAccess=!0,i.accessAssignments=[],i.initialWishlistUserAccesses=[]),i.syncEditorState()}catch(t){i.hasError=!0,yield i.common.handleError(t,"We could not load the wishlist editor.")}finally{i.isLoading=!1}})()}loadWishlistRecord(){var i=this;return(0,u.A)(function*(){const t=yield i.wishlistService.GetWishlistById(i.wishlistId);i.loadedWishlist=t,i.name=t.name||"",i.description=t.description||"",i.wishlistShareTypeId=t.wishlistShareTypeId||H.zI,i.selectedMediaId=t.mediaId?.trim()||null;const r=new Set((t.currentUserWishlistAccesses||[]).filter(a=>null!=a?.wishlistAccessId).map(a=>a.wishlistAccessId));i.isOwnedByCurrentUser=t.userId===i.currentUserId,i.canUpdateWishlist=i.isOwnedByCurrentUser||r.has(R.n.Update),i.canManageAccess=i.isOwnedByCurrentUser||r.has(R.n.Manager),i.canManageAccess?yield i.loadWishlistAccessAssignments():(i.accessAssignments=[],i.initialWishlistUserAccesses=[])})()}loadWishlistAccessAssignments(){var i=this;return(0,u.A)(function*(){if(i.wishlistId&&i.canManageAccess)try{i.isLoadingFriends=!0;const t=yield i.wishlistUserAccessService.GetWishlistUserAccessByWishlistId(i.wishlistId);i.initialWishlistUserAccesses=(t||[]).filter(l=>!!l?.userId);const r=i.loadedWishlist?.userId?.trim()||null,a=new Map;for(const l of i.initialWishlistUserAccesses.filter(m=>!1!==m.isActive)){if(!l.userId||l.userId===i.currentUserId||r&&l.userId===r)continue;const m=a.get(l.userId);m?m.selectedAccesses.some(_=>_.wishlistAccessId===l.wishlistAccessId)||m.selectedAccesses.push({wishlistUserAccessId:l.wishlistUserAccessId||null,wishlistAccessId:l.wishlistAccessId}):a.set(l.userId,{userId:l.userId,userName:l.user?.nickName||i.getFriendDisplayName(l.userId)||"Friend",
1imageUrl:(i.reportedMediaService.isReported(l.user?.media?.mediaId)?null:i.mediaAssetService.getMediaUrl(l.user?.media))||i.getFriendImageUrl(l.userId),initials:i.getInitials(l.user?.nickName||i.getFriendDisplayName(l.userId)||"Friend"),selectedAccesses:[{wishlistUserAccessId:l.wishlistUserAccessId||null,wishlistAccessId:l.wishlistAccessId}],accessSummaryText:"",accessIcons:[],isOwner:!1,isCurrentUser:!1})}i.accessAssignments=Array.from(a.values()).map(l=>i.mapAccessAssignment(l))}finally{i.isLoadingFriends=!1}})()}saveWishlistAccessAssignments(i){var t=this;return(0,u.A)(function*(){const r=t.loadedWishlist?.userId?.trim()||null,a=p=>!!p&&(p===t.currentUserId||!!r&&p===r),l=[];for(const p of t.accessAssignments)if(!a(p.userId))for(const E of p.selectedAccesses)l.push({userId:p.userId,wishlistAccessId:E.wishlistAccessId});const m=new Set(l.map(p=>`${p.userId}::${p.wishlistAccessId}`)),g=new Map;for(const p of t.initialWishlistUserAccesses)!p?.userId||a(p.userId)||g.set(`${p.userId}::${p.wishlistAccessId}`,p);const _=[];for(const p of l){const I=g.get(`${p.userId}::${p.wishlistAccessId}`);if(!I){const x=new V.D;x.wishlistId=i,x.userId=p.userId,x.wishlistAccessId=p.wishlistAccessId,x.isActive=!0,_.push(x);continue}if(!1===I.isActive){const x=new V.D;Object.assign(x,I),x.wishlistId=i,x.userId=p.userId,x.wishlistAccessId=p.wishlistAccessId,x.isActive=!0,_.push(x)}}for(const p of t.initialWishlistUserAccesses.filter(E=>!1!==E?.isActive)){if(!p?.userId||a(p.userId))continue;if(m.has(`${p.userId}::${p.wishlistAccessId}`))continue;const I=new V.D;Object.assign(I,p),I.wishlistId=i,I.userId=p.userId,I.wishlistAccessId=p.wishlistAccessId,I.isActive=!1,_.push(I)}0!==_.length&&(yield t.wishlistUserAccessService.InsUpdWishlistUserAccessBatch(_),yield t.loadWishlistAccessAssignments())})()}syncEditorState(){this.pageTitle=this.isEditMode?this.canUpdateWishlist?"Edit wishlist":"Manage wishlist access":"Create wishlist",this.pageSummary=this.isEditMode?"Update artwork, sharing, and who can manage this wishlist.":"Create a wishlist with the same sharing and access controls as the mobile app.",this.primaryActionLabel=this.isEditMode?this.canUpdateWishlist?"Save changes":"Save access":"Create wishlist",this.syncShareTypeState(),this.syncArtworkCategories(),this.syncTemplateAccessSelection(),this.syncAvailableFriends(),this.syncMemberRows(),this.syncExpandedAccordionValues()}syncMemberRows(){const i=new Map,t=this.loadedWishlist?.userId?.trim()||null;for(const r of this.initialWishlistUserAccesses.filter(a=>!1!==a.isActive)){const a=r.userId?.trim();if(!a)continue;const l=r.wishlistAccessId===R.n.Manager,m=i.get(a);if(m){l&&(m.wishlistAccessId=R.n.Manager,m.accessRoleLabel=m.isOwner?"Owner":"Admin");continue}const g=!!t&&a===t,_=a===this.currentUserId,p=g||_,E=r.user?.nickName||this.getFriendDisplayName(a)||"Friend";i.set(a,{userId:a,displayName:E,imageUrl:this.mediaAssetService.getMediaUrl(r.user?.media)||this.getFriendImageUrl(a),initials:this.getInitials(E),wishlistAccessId:l?R.n.Manager:R.n.View,accessRoleLabel:g?"Owner":l?"Admin":"View",isCurrentUser:_,isOwner:g,isReadOnly:p,canEditRole:this.canManageAccess&&!p,canRemove:this.canManageAccess&&!p})}if(t&&!i.has(t)){const r=this.loadedWishlist?.user||null,a=r?.nickName||this.getFriendDisplayName(t)||"Owner";i.set(t,{userId:t,displayName:a,imageUrl:this.mediaAssetService.getMediaUrl(r?.media)||this.getFriendImageUrl(t),initials:this.getInitials(a),wishlistAccessId:R.n.Manager,accessRoleLabel:"Owner",isCurrentUser:t===this.currentUserId,isOwner:!0,isReadOnly:!0,canEditRole:!1,canRemove:!1})}this.memberRows=Array.from(i.values()).sort((r,a)=>r.isOwner!==a.isOwner?r.isOwner?-1:1:r.displayName.localeCompare(a.displayName)),this.accessSummaryCount=this.memberRows.length,this.accessSummaryAriaLabel=0===this.accessSummaryCount?"No users have access":`${this.accessSummaryCount} ${1===this.accessSummaryCount?"person has":"people have"} access`}trackMemberRow(i,t){return t.userId}onEditSegmentChanged(i){const t=i.detail?.value;"details"!==t&&"members"!==t&&"itemOrder"!==t&&"reservations"!==t||(this.activeEditSegment=t,"reservations"===t&&this.wishlistId&&!this.hasLoadedReservationTab&&(this.hasLoadedReservationTab=!0,this.reservationTabState.loadReservations(this.wishlistId)))}retryReservationTabLoad(){var i=this;return(0,u.A)(function*(){i.wishlistId&&(yield i.reservationTabState.loadReservations(i.wishlistId))})()}isReservationSelected(i){return this.reservationTabState.isSelected(i)}toggleReservationSelection(i){this.reservationTabState.toggleSelection(i)}toggleReservationSelectAll(){this.reservationTabState.toggleSelectAll()}onReservationGiftGiversChange(i){this.reservationTabState.onShowGiftGiversChange(i)}getReservationEntrySummary(i){return this.reservationTabState.getReservationSummary(i)}clearSelectedReservationTabItems(){var i=this;return(0,u.A)(function*(){yield i.reservationTabState.clearSelectedReservations(i.wishlistId,i.canManageAccess)})()}moveSelectedReservationTabItemsToReceived(){var i=this;return(0,u.A)(function*(){yield i.reservationTabState.moveSelectedItemsToReceived(i.wishlistId,i.isOwnedByCurrentUser)})()}trackReservationEntry(i,t){return t.wishlistItemId}openInviteMembers(){var i=this;return(0,u.A)(function*(){if(!i.wishlistId||i.isBusy||!i.canManageAccess)return;const t=i.memberRows.map(m=>m.userId).filter(m=>!!m);i.currentUserId&&t.push(i.currentUserId);const r=i.loadedWishlist?.userId?.trim();r&&t.push(r);const a=yield i.modalController.create({component:li.T,cssClass:"popup-modal-lg",componentProps:{excludeUserIds:t}});yield a.present();const{data:l}=yield a.onWillDismiss();if(l?.selectedUserIds?.length)try{i.isMemberRosterLoading=!0;for(const m of l.selectedUserIds){const g=new V.D;g.wishlistId=i.wishlistId,g.userId=m,g.wishlistAccessId=R.n.View,g.isActive=!0,yield i.wishlistUserAccessService.InsUpdWishlistUserAccess(g)}i.logger.LogInfo("Members invited to wishlist",{wishlistId:i.wishlistId,invitedCount:l.selectedUserIds.length}),yield i.reloadMemberRoster()}catch(m){yield i.common.handleError(m,"We could not invite those members.")}finally{i.isMemberRosterLoading=!1}})()}onMemberRoleChipClick(i,t){var r=this;return(0,u.A)(function*(){if(!i.canEditRole||r.busyMemberUserIds.has(i.userId))return;const a=yield r.popoverController.create({component:se.gK,componentProps:{currentEventAccessId:i.wishlistAccessId,adminAccessId:R.n.Manager,viewAccessId:R.n.View,keepLabel:"View",canRemove:r.canManageAccess},event:t,dismissOnSelect:!0});yield a.present();const{data:l}=yield a.onDidDismiss();l!==se.HE?null==l||l===se.K6||l===i.wishlistAccessId||(yield r.applyMemberAccessChange(i,l)):yield r.confirmRemoveMember(i)})()}applyMemberAccessChange(i,t){var r=this;return(0,u.A)(function*(){if(!r.wishlistId||i.isReadOnly)return;const a=i.wishlistAccessId,l=i.accessRoleLabel;i.wishlistAccessId=t,i.accessRoleLabel=t===R.n.Manager?"Admin":"View";try{r.busyMemberUserIds.add(i.userId);
1const m=r.initialWishlistUserAccesses.filter(_=>_.userId===i.userId&&!1!==_.isActive&&_.wishlistAccessId!==t);for(const _ of m){const p=new V.D;Object.assign(p,_),p.wishlistUserAccessId=_.wishlistUserAccessId,p.wishlistId=r.wishlistId,p.userId=i.userId,p.isActive=!1,yield r.wishlistUserAccessService.InsUpdWishlistUserAccess(p)}const g=new V.D;g.wishlistId=r.wishlistId,g.userId=i.userId,g.wishlistAccessId=t,g.isActive=!0,yield r.wishlistUserAccessService.InsUpdWishlistUserAccess(g),r.logger.LogInfo("Wishlist member access updated",{wishlistId:r.wishlistId,userId:i.userId,wishlistAccessId:t}),yield r.reloadMemberRoster()}catch(m){i.wishlistAccessId=a,i.accessRoleLabel=l,yield r.common.handleError(m,"We could not update that member.")}finally{r.busyMemberUserIds.delete(i.userId)}})()}confirmRemoveMember(i){var t=this;return(0,u.A)(function*(){yield(yield t.alertController.create({header:"Remove member?",message:`${i.displayName} will lose access to this wishlist.`,buttons:[{text:"Cancel",role:"cancel"},{text:"Remove",role:"destructive",handler:()=>{t.removeMember(i)}}]})).present()})()}removeMember(i){var t=this;return(0,u.A)(function*(){if(t.wishlistId&&!t.busyMemberUserIds.has(i.userId)&&!i.isReadOnly)try{t.busyMemberUserIds.add(i.userId);const r=t.initialWishlistUserAccesses.filter(a=>a.userId===i.userId&&!1!==a.isActive);for(const a of r){const l=new V.D;Object.assign(l,a),l.wishlistUserAccessId=a.wishlistUserAccessId,l.wishlistId=t.wishlistId,l.userId=i.userId,l.isActive=!1,yield t.wishlistUserAccessService.InsUpdWishlistUserAccess(l)}t.logger.LogInfo("Wishlist member removed",{wishlistId:t.wishlistId,userId:i.userId}),yield t.reloadMemberRoster()}catch(r){yield t.common.handleError(r,"We could not remove that member.")}finally{t.busyMemberUserIds.delete(i.userId)}})()}reloadMemberRoster(){var i=this;return(0,u.A)(function*(){if(i.wishlistId)try{i.isMemberRosterLoading=!0;const t=yield i.wishlistUserAccessService.GetWishlistUserAccessByWishlistId(i.wishlistId);i.initialWishlistUserAccesses=(t||[]).filter(r=>!!r?.userId),i.syncMemberRows()}finally{i.isMemberRosterLoading=!1}})()}syncShareTypeState(){const i=this.shareTypeOptions.find(t=>t.id===this.wishlistShareTypeId);this.shareTypeLabel=i?.label??"Friends",this.shareTypeHelperText=i?.helperText??(0,H.Nf)(this.wishlistShareTypeId),this.shareTypeIconName=i?.iconName??"people-outline"}syncArtworkCategories(){const i=this.buildArtworkState(this.selectedMediaId,this.activeArtworkCategoryId);if(this.activeArtworkCategoryId=i.activeCategoryId,this.artworkCategories=i.categories,this.visibleArtworkOptions=i.visibleOptions,i.selectedOption)return this.selectedArtworkName=i.selectedOption.displayName,void(this.selectedArtworkPreviewUrl=i.selectedOption.previewUrl);this.selectedArtworkName=this.selectedMediaId?"Current artwork":"No artwork selected",this.selectedArtworkPreviewUrl=this.loadedWishlist?.media?this.mediaAssetService.getMediaUrl(this.loadedWishlist.media):null}syncArtworkModalState(){const i=this.buildArtworkState(this.modalSelectedMediaId,this.modalActiveArtworkCategoryId);this.modalActiveArtworkCategoryId=i.activeCategoryId,this.modalArtworkCategories=i.categories,this.modalVisibleArtworkOptions=i.visibleOptions}resetArtworkModalState(){this.modalSelectedMediaId=this.selectedMediaId,this.modalActiveArtworkCategoryId=this.activeArtworkCategoryId,this.syncArtworkModalState()}buildArtworkState(i,t){const r=new Map;let a=null;for(const I of this.knownMedia){const x=I.mediaId?.trim();if(!x)continue;const X=I.knownMediaCategoryId||0,L={mediaId:x,displayName:I.displayName||"Artwork",previewUrl:this.mediaAssetService.getMediaUrl(I.media),isSelected:x===i};L.isSelected&&(a=X);const q=r.get(X);q?q.options.push(L):r.set(X,{categoryId:X,label:I.knownMediaCategory?.knownMediaCategoryName||"Artwork",description:I.knownMediaCategory?.knownMediaCategoryDescription||"",isSelected:!1,options:[L]})}const l=Array.from(r.values()).sort((I,x)=>I.label.localeCompare(x.label));null!==t||(null!==a?t=a:l.length>0&&(t=l[0].categoryId));const m=l.map(I=>({...I,isSelected:I.categoryId===t})),g=m.find(I=>I.isSelected)||m[0],_=g?[...g.options]:[],p=[];for(const I of m)p.push(...I.options);const E=_.find(I=>I.isSelected)||p.find(I=>I.isSelected)||null;return{activeCategoryId:t,categories:m,visibleOptions:_,selectedOption:E}}syncAvailableFriends(){const i=new Set(this.accessAssignments.map(t=>
1t.userId));this.availableFriends=this.friends.filter(t=>!!t.userId&&!i.has(t.userId)),this.accessAssignments=this.accessAssignments.map(t=>this.mapAccessAssignment(t)),this.accessSummaryCount=this.accessAssignments.length,this.accessSummaryAriaLabel=0===this.accessSummaryCount?"No users have access":`${this.accessSummaryCount} ${1===this.accessSummaryCount?"person has":"people have"} access`,this.accessSummaryText=0===this.accessAssignments.length?"Only you have access.":1===this.accessAssignments.length?"1 person has access.":`${this.accessAssignments.length} people have access.`}syncTemplateAccessSelection(){const i={};for(const t of this.accessOptions)i[t.id]=this.selectedWishlistAccessIds.includes(t.id);this.templateAccessSelection=i}syncExpandedAccordionValues(){this.expandedAccordionValues=!this.isEditMode&&this.canUpdateWishlist?["basic-details"]:[]}mapAccessAssignment(i){const t=i.selectedAccesses.map(r=>this.accessOptions.find(a=>a.id===r.wishlistAccessId)?.label||"Access");return{...i,imageUrl:i.imageUrl||this.getFriendImageUrl(i.userId),initials:i.initials||this.getInitials(i.userName),accessSummaryText:0===t.length?"No access assigned":t.join(" \xb7 "),accessIcons:i.selectedAccesses.map(r=>this.accessOptions.find(a=>a.id===r.wishlistAccessId)?.iconName||"").filter(r=>r.length>0)}}getFriendDisplayName(i){return this.friends.find(t=>t.userId===i)?.nickName||null}getFriendImageUrl(i){const t=this.friends.find(r=>r.userId===i);return t?this.mediaAssetService.getMediaUrl(t.media):null}getInitials(i){const t=i.split(" ").map(r=>r.trim()).filter(r=>r.length>0).slice(0,2);return 0===t.length?"WL":t.map(r=>r[0].toUpperCase()).join("")}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(B.p),e.rXU(ie.nX),e.rXU(Y.q9),e.rXU(h.W3),e.rXU(h.IE),e.rXU(h.hG),e.rXU($.o),e.rXU(Z.g),e.rXU(K.B),e.rXU(D.w),e.rXU(Q.v),e.rXU(U.S),e.rXU(di.U),e.rXU(hi.r),e.rXU(_i.L),e.rXU(te.E),e.rXU(he.s))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-editor"]],standalone:!1,decls:18,vars:20,consts:[["wishlistWizardFriendsLoadingState",""],["noReservationAccess",""],["emptyArtworkState",""],["slot","start"],[3,"defaultHref"],[4,"ngIf"],["class","page-title-stack",4,"ngIf"],["slot","end","class","page-toolbar-actions",4,"ngIf"],["class","header-wizard-progress",4,"ngIf"],[3,"fullscreen"],["class","cover-hero--edit",4,"ngIf"],["class","page-section",4,"ngIf"],["class","page-shell--form",4,"ngIf"],["class","creation-page-body",4,"ngIf"],["cssClass","editor-artwork-modal",3,"didDismiss","isOpen"],[1,"page-toolbar-title-wrap"],[1,"page-toolbar-title"],[1,"page-title-stack"],[1,"page-title"],[1,"page-subtitle"],["slot","end",1,"page-toolbar-actions"],["fill","clear","color","danger","class","toolbar-destructive-button",3,"disabled","click",4,"ngIf"],["fill","clear","color","danger",1,"toolbar-destructive-button",3,"click","disabled"],["name","trash-outline","slot","start"],[1,"header-wizard-progress"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],[3,"value"],[1,"cover-hero--edit"],[3,"src","alt",4,"ngIf"],["class","cover-hero--edit__fallback",4,"ngIf"],[1,"cover-hero--edit__overlay"],["fill","solid","class","cover-hero--edit__camera","aria-label","Select artwork",3,"click",4,"ngIf"],[1,"cover-hero--edit__content"],[1,"editor-hero-title"],[1,"editor-hero-subtitle"],[1,"editor-hero-meta"],[1,"editor-meta-chip"],[3,"src","alt"],[1,"cover-hero--edit__fallback"],["name","gift-outline","aria-hidden","true",1,"cover-hero--edit__fallback-motif"],["fill","solid","aria-label","Select artwork",1,"cover-hero--edit__camera",3,"click"],["name","camera","slot","icon-only"],[1,"page-section"],[1,"state-card"],["aria-label","Loading wishlist editor","aria-busy","true"],[4,"ngFor","ngForOf"],[1,"spoyla-skeleton-line","spoyla-skeleton-line--meta","spoyla-skeleton-line--w25",3,"animated"],[1,"spoyla-skeleton-control",3,"animated"],["title","Wishlist editor unavailable","message","The PWA could not load this wishlist right now.",3,"retry"],[1,"page-shell--form"],["class","wizard-step-content",4,"ngIf"],[1,"wizard-step-content"],[1,"wizard-step-cover"],["role","button","tabindex","0","aria-label","Select artwork",1,"cover-hero",3,"click","keydown.enter"],["alt","Wishlist cover","class","cover-hero__img",3,"src",4,"ngIf"],["class","cover-hero__placeholder",4,"ngIf"],["fill","solid","aria-label","Open artwork picker",1,"cover-hero__camera",3,"click"],["name","camera"],[1,"form-panel","form-panel--padded"],[1,"field-stack"],[1,"input-wrapper"],[1,"input-label"],["color","danger"],["lines","none",1,"spoyla-input"],["aria-label","Wishlist name","type","text","placeholder","Golden getaway",3,"ngModelChange","ngModel","disabled"],["aria-label","Description","placeholder","Birthday, honeymoon, celebration","autoGrow","true","rows","4",3,"ngModelChange","ngModel","disabled"],["alt","Wishlist cover",1,"cover-hero__img",3,"src"],[1,"cover-hero__placeholder"],[1,"cover-hero__placeholder-icon"],["name","image-outline"],[1,"step-header"],["name","lock-closed-outline","color","primary",1,"step-icon"],["class","input-wrapper",4,"ngIf"],[1,"spoyla-select",3,"ngModelChange","ionChange","ngModel","disabled"],[3,"value",4,"ngFor","ngForOf"],[1,"input-helper-text"],[1,"section-label"],["class","form-panel form-panel--padded",4,"ngIf","ngIfElse"],["class","editlist",4,"ngIf"],["class","assignment-empty-hint",4,"ngIf"],["interface","popover",1,"spoyla-select",3,"ngModelChange","ngModel","disabled","placeholder"],[1,"template-access-row"],["type","button","class","role-pill",3,"role-pill--active","disabled","click",4,"ngFor","ngForOf"],["expand","block","fill","outline",3,"click","disabled"],["type","button",1,"role-pill",3,"click","disabled"],[3,"name"],["aria-label","Loading your friends","aria-busy","true",1,"editlist"],["class","spoyla-skeleton-row",4,"ngFor","ngForOf"],[1,"spoyla-skeleton-row"],[1,"spoyla-skeleton-avatar-44",3,"animated"],[1,"spoyla-skeleton-row__body"],[1,"spoyla-skeleton-line","spoyla-skeleton-line--w55",3,"animated"],[1,"editlist"],["class","editrow",4,"ngFor","ngForOf"],[1,"editrow"],[1,"editrow__avatar"],[1,"editrow__body"],[1,"editrow__name"],[1,"editrow__sub"],["fill","clear","color","danger",3,"click","disabled"],["name","trash-outline","slot","icon-only"],[1,"assignment-empty-hint"],["name","checkmark-circle-outline","color","primary",1,"step-icon"],["class","wishlist-wizard-review-cover",4,"ngIf"],[1,"wishlist-wizard-review-value"],[1,"wishlist-wizard-review-cover"],["alt","Wishlist cover",3,"src"],[1,"creation-page-body"],[1,"edit-shell"],[1,"edit-shell__segment"],[1,"spoyla-pill-segment",3,"ionChange","value"],["value","details"],["value","members"],["class","tab-count",4,"ngIf"],["value","itemOrder"],["value","reservations"],["class","edit-shell__panel edit-shell__panel--details",4,"ngIf"],["class","edit-shell__panel",4,"ngIf"],[1,"tab-count"],[1,"edit-shell__panel","edit-shell__panel--details"],[1,"wizard-card","creation-page-card"],[1,"form-input-wrapper"],[1,"form-input-label"],["placeholder","Golden getaway",3,"ngModelChange","ngModel","disabled"],["placeholder","Birthday, honeymoon, celebration","autoGrow","true","rows","4",3,"ngModelChange","ngModel","disabled"],["class","form-input-wrapper",4,"ngIf"],["class","edit-actions",4,"ngIf"],[1,"edit-actions"],["expand","block","fill","outline","color","danger","type","button",1,"danger-outline-button",3,"click","disabled"],[1,"edit-shell__panel"],[1,"grp-section-head"],[1,"grp-section-head__t"],["class","grp-section-head__c",4,"ngIf"],["type","button","class","grp-section-head__a",3,"disabled","click",4,"ngIf"],[1,"grp-section-head__c"],["type","button",1,"grp-section-head__a",3,"click","disabled"],["name","person-add-outline"],[1,"editrow__avatar",3,"animated"],[2,"width","58%","height","14px","border-radius","6px",3,"animated"],["class","editrow",3,"is-busy",4,"ngFor","ngForOf","ngForTrackBy"],["class","role-pill",3,"role-pill--owner",4,"ngIf"],["type","button","class","role-pill",3,"role-pill--active","disabled","click",4,"ngIf"],[1,"role-pill"],["name","chevron-down-outline"],["class","editlist",3,"disabled","ionItemReorder",4,"ngIf"],[1,"editlist",3,"ionItemReorder","disabled"],["class","editrow",4,"ngFor","ngForOf","ngForTrackBy"],[1,"editrow__handle"],["name","reorder-two-outline"],["loading","lazy",3,"src","alt",4,"ngIf"],["name","gift-outline",4,"ngIf"],["loading","lazy",3,"src","alt"],["name","gift-outline"],[4,"ngIf","ngIfElse"],["title","We could not load reservations","message","Check your connection and try again.",3,"retry",4,"ngIf"],["title","We could not load reservations","message","Check your connection and try again.",3,"retry"],["class","grp-section-head",4,"ngIf"],["class","toggle-row","lines","none",4,"ngIf"],["type","button",1,"grp-section-head__a",3,"click"],["lines","none",1,"toggle-row"],["slot","end","aria-label","Show gift givers",3,"ionChange","checked"],["class","editrow editrow--selectable",3,"editrow--picked","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"editrow","editrow--selectable",3,"click"],["aria-hidden","true","tabindex","-1",3,"checked"],["expand","block","color","primary",3,"disabled","click",4,"ngIf"],["expand","block","fill","outline","color","medium",3,"click","disabled"],["name","crescent","slot","start",4,"ngIf"],["expand","block","color","primary",3,"click","disabled"],["name","crescent","slot","start"],[1,"creation-page-footer"],["fill","solid","color","secondary","type","button",3,"click","disabled"],["fill","solid","color","primary","type","button",3,"click","disabled"],["slot","start","class","wishlist-editor-button-skeleton",3,"animated",4,"ngIf"],["slot","start",1,"wishlist-editor-button-skeleton",3,"animated"],[1,"footer-row"],["expand","block","fill","solid","color","primary","type","button",1,"footer-button",3,"click","disabled"],["name","arrow-forward-outline","slot","end",4,"ngIf"],["expand","block","fill","solid","type","button",1,"footer-button","footer-button--secondary",3,"click","disabled"],["name","arrow-forward-outline","slot","end"],["slot","end"],[3,"click"],["name","close","slot","icon-only"],[1,"editor-artwork-modal-content"],[1,"editor-artwork-picker"],["class","artwork-category-selector",4,"ngIf"],["class","artwork-modal-card-grid",4,"ngIf","ngIfElse"],[1,"ion-no-border"],[1,"modal-footer-actions"],["fill","outline",1,"footer-btn",3,"click"],["fill","solid",1,"footer-btn",3,"click"],[1,"artwork-category-selector"],["type","button","class","artwork-category-button",3,"active","click",4,"ngFor","ngForOf","ngForTrackBy"],["type","button",1,"artwork-category-button",3,"click"],[1,"artwork-modal-card-grid"],["class","artwork-card","button","",3,"artwork-card-selected","disabled","click",4,"ngFor","ngForOf","ngForTrackBy"],["button","",1,"artwork-card",3,"click","disabled"],[3,"src",4,"ngIf"],[3,"src"],[1,"muted-text"]],template:function(t,r){1&t&&(e.j41(0,"ion-header")(1,"ion-toolbar")(2,"ion-buttons",3),e.nrm(3,"ion-back-button",4),e.k0s(),e.DNE(4,mi,4,1,"ion-title",5)(5,gi,5,2,"div",6)(6,pi,2,1,"ion-buttons",7),e.k0s(),e.DNE(7,fi,2,2,"div",8),e.k0s(),e.j41(8,"ion-content",9),e.DNE(9,bi,13,6,"div",10)(10,Ri,5,1,"div",11)(11,Ei,2,0,"div",11)(12,Vi,4,3,"div",12)(13,$t,23,8,"div",13),e.k0s(),e.DNE(14,Nt,8,4,"ion-footer",5)(15,Xt,9,5,"ion-footer",5),e.j41(16,"ion-modal",14),e.bIt("didDismiss",function(){return r.closeArtworkModal()}),e.DNE(17,Qt,20,3,"ng-template"),e.k0s()),2&t&&(e.AVh("page-toolbar",r.isEditMode),e.R7$(3),e.Y8G("defaultHref",r.defaultBackHref),e.R7$(),e.Y8G("ngIf",r.isEditMode),e.R7$(),e.Y8G("ngIf",!r.isEditMode),e.R7$(),e.Y8G("ngIf",r.isEditMode),e.R7$(),e.Y8G("ngIf",!r.isEditMode&&!r.isLoading&&!r.hasError),e.R7$(),e.AVh("form-content",!r.isEditMode)("creation-page-content",r.isEditMode),e.Y8G("fullscreen",!0),e.R7$(),e.Y8G("ngIf",r.isEditMode&&!r.hasError),e.R7$(),e.Y8G("ngIf",r.isLoading),e.R7$(),e.Y8G("ngIf",!r.isLoading&&r.hasError),e.R7$(),e.Y8G("ngIf",!r.isEditMode&&!r.isLoading&&!r.hasError),e.R7$(),e.Y8G("ngIf",r.isEditMode&&!r.isLoading&&!r.hasError),e.R7$(),e.Y8G("ngIf",r.isEditMode&&!r.isLoading&&!r.hasError),e.R7$(),e.Y8G("ngIf",!r.isEditMode&&!r.isLoading&&!r.hasError),e.R7$(),e.Y8G("isOpen",r.isArtworkModalOpen))},dependencies:[k.Sq,k.bT,w.BC,w.vS,h.Jm,h.QW,h.b_,h.I9,h.eY,h.hU,h.W9,h.M0,h.eU,h.iq,h.KW,h.$w,h.uz,h.he,h.FH,h.UB,h.p$,h.ln,h.Gp,h.eP,h.Nm,h.Ip,h.ds,h.w2,h.IO,h.nc,h.BC,h.BY,h.ai,h.Sb,h.hB,h.Je,h.Gw,h.el,N.F],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.toolbar-destructive-button[_ngcontent-%COMP%]{font-weight:600}.muted-text[_ngcontent-%COMP%]{margin:8px 0 0;font-size:var(--text-sm)}.media-loading-state[_ngcontent-%COMP%]{display:grid;gap:10px;justify-items:center;padding:12px 0 4px;color:var(--text-subtle)}.input-helper-text[_ngcontent-%COMP%]{margin:8px 0 0;color:var(--text-subtle);font-size:var(--text-sm);line-height:1.45}.group-arrow[_ngcontent-%COMP%]{font-size:1rem;color:var(--text-subtle)}.artwork-card[_ngcontent-%COMP%]{height:100%;margin:0;border-radius:var(--radius-md);border:1px solid var(--border-hairline);box-shadow:none;overflow:hidden}.artwork-card-selected[_ngcontent-%COMP%]{border:2px solid rgba(var(--spoyla-slate-blue-rgb),.5);box-shadow:0 0 0 3px rgba(var(--spoyla-slate-blue-rgb),.12)}.artwork-card[_ngcontent-%COMP%]   ion-img[_ngcontent-%COMP%]{width:100%;height:168px;object-fit:cover}.artwork-card[_ngcontent-%COMP%]   ion-card-content[_ngcontent-%COMP%]{padding:10px 12px}.artwork-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:var(--text-sm);color:var(--text-strong)}.artwork-modal-card-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:10px}.wishlist-wizard-review-value[_ngcontent-%COMP%]{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-strong);line-height:1.45}.wishlist-wizard-review-cover[_ngcontent-%COMP%]{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-hairline)}.wishlist-wizard-review-cover[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.wishlist-editor-button-skeleton[_ngcontent-%COMP%]{width:20px;height:16px;border-radius:var(--radius-sm)}"]}))}return n(),o})();var ge=function(n){return n[n.RecentlyViewed=2]="RecentlyViewed",n}(ge||{});const Zt=()=>[1,2,3,4];function qt(n,o){1&n&&(e.j41(0,"div",14),e.nrm(1,"ion-skeleton-text",15),e.j41(2,"div",16),e.nrm(3,"ion-skeleton-text",17)(4,"ion-skeleton-text",18),e.k0s()()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function es(n,o){1&n&&(e.j41(0,"div",12),e.DNE(1,qt,5,3,"div",13),e.k0s()),2&n&&(e.R7$(),e.Y8G("ngForOf",e.lJ4(1,Zt)))}function is(n,o){if(1&n){const s=e.RV6();e.j41(0,"app-page-load-error",19),e.bIt("retry",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.retryLoad())}),e.k0s()}}function ts(n,o){1&n&&(e.j41(0,"div",21),e.nrm(1,"ion-icon",22),e.j41(2,"p",23),e.EFF(3,"Nothing here yet"),e.k0s(),e.j41(4,"p",24),e.EFF(5,"Wishlists you open will show up here so you can get back to them quickly."),e.k0s()())}function ss(n,o){if(1&n&&e.nrm(0,"img",33),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.mediaUrl,e.B4B)("alt",s.name)}}function ns(n,o){1&n&&e.nrm(0,"ion-icon",34)}function rs(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",26),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(3);return c.Njj(r.openWishlist(t))}),e.j41(1,"span",27),e.DNE(2,ss,1,2,"img",28)(3,ns,1,0,"ion-icon",29),e.k0s(),e.j41(4,"span",30)(5,"strong"),e.EFF(6),e.k0s(),e.j41(7,"span",31),e.EFF(8),e.k0s()(),e.nrm(9,"ion-icon",32),e.k0s()}if(2&n){const s=o.$implicit;e.R7$(2),e.Y8G("ngIf",s.mediaUrl),e.R7$(),e.Y8G("ngIf",!s.mediaUrl),e.R7$(3),e.JRh(s.name),e.R7$(2),e.E5c(" ",s.owner," \xb7 ",s.items," ",1===s.items?"
1item":"items"," ")}}function os(n,o){if(1&n&&(e.j41(0,"div",12),e.DNE(1,rs,10,6,"button",25),e.k0s()),2&n){const s=e.XpG(2);e.R7$(),e.Y8G("ngForOf",s.recentWishlists)("ngForTrackBy",s.trackWishlist)}}function as(n,o){if(1&n&&(e.qex(0),e.DNE(1,ts,6,0,"div",20)(2,os,2,2,"div",9),e.bVm()),2&n){const s=e.XpG();e.R7$(),e.Y8G("ngIf",0===s.recentWishlists.length),e.R7$(),e.Y8G("ngIf",s.recentWishlists.length>0)}}const ds=()=>[1,2,3,4],hs=()=>({standalone:!0});function _s(n,o){1&n&&(e.j41(0,"div",14),e.nrm(1,"ion-skeleton-text",15),e.j41(2,"div",16),e.nrm(3,"ion-skeleton-text",17)(4,"ion-skeleton-text",18),e.k0s()()),2&n&&(e.R7$(),e.Y8G("animated",!0),e.R7$(2),e.Y8G("animated",!0),e.R7$(),e.Y8G("animated",!0))}function ms(n,o){1&n&&(e.j41(0,"div",12),e.DNE(1,_s,5,3,"div",13),e.k0s()),2&n&&(e.R7$(),e.Y8G("ngForOf",e.lJ4(1,ds)))}function gs(n,o){if(1&n){const s=e.RV6();e.j41(0,"app-page-load-error",19),e.bIt("retry",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.retryLoad())}),e.k0s()}}function us(n,o){if(1&n&&(e.j41(0,"p",23),e.EFF(1," Who has reserved or bought items on "),e.j41(2,"strong"),e.EFF(3),e.k0s(),e.EFF(4,". "),e.k0s()),2&n){const s=e.XpG(2);e.R7$(3),e.JRh(s.wishlist.name)}}function ps(n,o){1&n&&(e.j41(0,"div",24),e.nrm(1,"ion-icon",25),e.j41(2,"p",26),e.EFF(3,"Nothing reserved yet"),e.k0s(),e.j41(4,"p",27),e.EFF(5," When someone reserves or buys an item from this wishlist, it shows up here. "),e.k0s()())}function vs(n,o){if(1&n&&(e.j41(0,"span",36),e.EFF(1),e.k0s()),2&n){const s=e.XpG(3);e.R7$(),e.SpI(" ",s.selectedCount," selected ")}}function fs(n,o){if(1&n&&e.nrm(0,"img",44),2&n){const s=e.XpG().$implicit;e.Y8G("src",s.imageUrl,e.B4B)("alt",s.item.title)}}function Is(n,o){1&n&&e.nrm(0,"ion-icon",45)}function ws(n,o){if(1&n){const s=e.RV6();e.j41(0,"button",37),e.bIt("click",function(){const t=c.eBV(s).$implicit,r=e.XpG(3);return c.Njj(r.toggleSelection(t.wishlistItemId))}),e.nrm(1,"ion-checkbox",38),e.j41(2,"span",39),e.DNE(3,fs,1,2,"img",40)(4,Is,1,0,"ion-icon",41),e.k0s(),e.j41(5,"span",42)(6,"strong"),e.EFF(7),e.k0s(),e.j41(8,"span",43),e.EFF(9),e.k0s()()()}if(2&n){const s=o.$implicit,i=e.XpG(3);e.AVh("wishlist-reservations-row--selected",i.isSelected(s.wishlistItemId)),e.R7$(),e.Y8G("checked",i.isSelected(s.wishlistItemId)),e.R7$(2),e.Y8G("ngIf",s.imageUrl),e.R7$(),e.Y8G("ngIf",!s.imageUrl),e.R7$(3),e.JRh(s.item.title),e.R7$(2),e.JRh(i.getReservationSummary(s))}}function ys(n,o){if(1&n){const s=e.RV6();e.qex(0),e.j41(1,"div",28)(2,"ion-item",29)(3,"ion-toggle",30),e.bIt("ngModelChange",function(t){c.eBV(s);const r=e.XpG(2);return c.Njj(r.onShowGiftGiversChange(t))}),e.j41(4,"strong"),e.EFF(5,"Show who reserved"),e.k0s(),e.j41(6,"small",31),e.EFF(7," Turning this on spoils the surprise for you "),e.k0s()()()(),e.j41(8,"div",32)(9,"ion-button",33),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.toggleSelectAll())}),e.EFF(10),e.k0s(),e.DNE(11,vs,2,1,"span",34),e.k0s(),e.j41(12,"div",12),e.DNE(13,ws,10,7,"button",35),e.k0s(),e.bVm()}if(2&n){const s=e.XpG(2);e.R7$(3),e.Y8G("ngModel",s.showGiftGivers)("ngModelOptions",e.lJ4(6,hs)),e.R7$(7),e.SpI(" ",s.isAllSelected?"Clear selection":"Select all"," "),e.R7$(),e.Y8G("ngIf",s.selectedCount>0),e.R7$(2),e.Y8G("ngForOf",s.reservedItems)("ngForTrackBy",s.trackReservedItem)}}function bs(n,o){if(1&n&&(e.qex(0),e.j41(1,"div",20),e.DNE(2,us,5,1,"p",21)(3,ps,6,0,"div",22)(4,ys,14,7,"ng-container",11),e.k0s(),e.bVm()),2&n){const s=e.XpG();e.R7$(2),e.Y8G("ngIf",s.wishlist),e.R7$(),e.Y8G("ngIf",0===s.reservedItems.length),e.R7$(),e.Y8G("ngIf",s.reservedItems.length>0)}}function ks(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-button",47),e.bIt("click",function(){c.eBV(s);const t=e.XpG(2);return c.Njj(t.moveSelectedItemsToReceived())}),e.EFF(1," Move to received "),e.k0s()}if(2&n){const s=e.XpG(2);e.Y8G("disabled",0===s.selectedCount||s.isMutating)}}function Rs(n,o){if(1&n){const s=e.RV6();e.j41(0,"ion-footer")(1,"ion-toolbar")(2,"div",46)(3,"ion-button",47),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.clearSelectedReservations())}),e.EFF(4," Clear reservations "),e.k0s(),e.DNE(5,ks,2,1,"ion-button",48),e.j41(6,"ion-button",49),e.bIt("click",function(){c.eBV(s);const t=e.XpG();return c.Njj(t.resetAllReservations())}),e.EFF(7," Reset all "),e.k0s()()()()}if(2&n){const s=e.XpG();e.R7$(3),e.Y8G("disabled",0===s.selectedCount||s.isMutating),e.R7$(2),e.Y8G("ngIf",s.isOwner),e.R7$(),e.Y8G("disabled",s.isMutating)}}const xs=[{path:"",component:pe},{path:"new",component:me},{path:"bookmarks",component:(()=>{var n;class o{constructor(i,t,r,a,l){this.reportedMediaService=i,this.nav=t,this.wishlistService=r,this.mediaAssetService=a,this.logger=l,this.isBusy=!1,this.hasError=!1,this.recentWishlists=[]}ngOnInit(){var i=this;return(0,u.A)(function*(){yield i.loadWishlists()})()}goBack(){this.nav.navigateBack("/app/wishlist")}handleRefresh(i){var t=this;return(0,u.A)(function*(){try{yield t.loadWishlists()}finally{yield i.target.complete()}})()}retryLoad(){var i=this;return(0,u.A)(function*(){yield i.loadWishlists()})()}trackWishlist(i,t){return t.id}openWishlist(i){var t=this;return(0,u.A)(function*(){try{yield t.nav.navigateForward(["/app/wishlist",i.id])}catch(r){t.logger.LogError(r,"Failed to open wishlist from bookmarks")}})()}loadWishlists(){var i=this;return(0,u.A)(function*(){if(!i.isBusy)try{i.isBusy=!0,i.hasError=!1;
1const t=yield i.wishlistService.GetWishlistsByBookmarkTypePaging(ge.RecentlyViewed,1,10);i.recentWishlists=(t||[]).map(r=>{const a=r.user?.nickName||r.user?.userName||"Unknown";return{id:r.wishlistId||"",name:r.name||"Untitled wishlist",owner:a,ownerPhotoUrl:i.reportedMediaService.isReported(r.user?.media?.mediaId)?"":i.mediaAssetService.getMediaUrl(r.user?.media)??"",ownerInitials:a.charAt(0).toUpperCase(),mediaUrl:i.reportedMediaService.isReported(r.media?.mediaId)?"":i.mediaAssetService.getMediaUrl(r.media)??"",items:r.totalItems||0}}),i.logger.LogDebug("Recently viewed wishlists loaded",{count:i.recentWishlists.length})}catch(t){i.logger.LogError(t,"Failed to load recently viewed wishlists"),i.hasError=!0,i.recentWishlists=[]}finally{i.isBusy=!1}})()}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(B.p),e.rXU(Y.q9),e.rXU(D.w),e.rXU(U.S),e.rXU(Z.g))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-bookmarks"]],standalone:!1,decls:16,vars:4,consts:[[1,"page-toolbar"],["slot","start"],["aria-label","Back",3,"click"],["slot","icon-only","name","chevron-back"],[1,"page-toolbar-title-wrap"],[1,"page-toolbar-title"],[3,"fullscreen"],["slot","fixed",3,"ionRefresh"],[1,"page"],["class","wishlist-bookmarks-list",4,"ngIf"],["title","We could not load your recent wishlists","message","Check your connection and try again.",3,"retry",4,"ngIf"],[4,"ngIf"],[1,"wishlist-bookmarks-list"],["class","wishlist-bookmarks-skeleton-row",4,"ngFor","ngForOf"],[1,"wishlist-bookmarks-skeleton-row"],[1,"wishlist-bookmarks-skeleton-thumb",3,"animated"],[1,"wishlist-bookmarks-skeleton-body"],[1,"wishlist-bookmarks-skeleton-line",3,"animated"],[1,"wishlist-bookmarks-skeleton-line","wishlist-bookmarks-skeleton-line--short",3,"animated"],["title","We could not load your recent wishlists","message","Check your connection and try again.",3,"retry"],["class","wishlist-bookmarks-empty",4,"ngIf"],[1,"wishlist-bookmarks-empty"],["name","time-outline"],[1,"wishlist-bookmarks-empty__title"],[1,"wishlist-bookmarks-empty__text"],["type","button","class","wishlist-bookmarks-row",3,"click",4,"ngFor","ngForOf","ngForTrackBy"],["type","button",1,"wishlist-bookmarks-row",3,"click"],[1,"wishlist-bookmarks-thumb"],["loading","lazy",3,"src","alt",4,"ngIf"],["name","gift-outline",4,"ngIf"],[1,"wishlist-bookmarks-row__body"],[1,"wishlist-bookmarks-row__meta"],["name","chevron-forward",1,"wishlist-bookmarks-row__chevron"],["loading","lazy",3,"src","alt"],["name","gift-outline"]],template:function(t,r){1&t&&(e.j41(0,"ion-header",0)(1,"ion-toolbar")(2,"ion-buttons",1)(3,"ion-button",2),e.bIt("click",function(){return r.goBack()}),e.nrm(4,"ion-icon",3),e.k0s()(),e.j41(5,"ion-title")(6,"div",4)(7,"span",5),e.EFF(8,"Recently viewed"),e.k0s()()()()(),e.j41(9,"ion-content",6)(10,"ion-refresher",7),e.bIt("ionRefresh",function(l){return r.handleRefresh(l)}),e.nrm(11,"ion-refresher-content"),e.k0s(),e.j41(12,"div",8),e.DNE(13,es,2,2,"div",9)(14,is,1,0,"app-page-load-error",10)(15,as,3,2,"ng-container",11),e.k0s()()),2&t&&(e.R7$(9),e.Y8G("fullscreen",!0),e.R7$(4),e.Y8G("ngIf",r.isBusy),e.R7$(),e.Y8G("ngIf",r.hasError&&!r.isBusy),e.R7$(),e.Y8G("ngIf",!r.isBusy&&!r.hasError))},dependencies:[k.Sq,k.bT,h.Jm,h.QW,h.W9,h.eU,h.iq,h.To,h.Ki,h.ds,h.BC,h.ai,N.F],styles:["[_nghost-%COMP%]{display:block}.wishlist-bookmarks-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spoyla-space-2);max-width:720px;margin:0 auto}.wishlist-bookmarks-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spoyla-space-3);width:100%;padding:var(--spoyla-space-3);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--text-strong);text-align:left;font:inherit;cursor:pointer}.wishlist-bookmarks-row[_ngcontent-%COMP%]:hover{border-color:var(--action-primary)}.wishlist-bookmarks-thumb[_ngcontent-%COMP%]{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-sunken);color:var(--text-subtle);flex-shrink:0}.wishlist-bookmarks-thumb[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.wishlist-bookmarks-thumb[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:22px}.wishlist-bookmarks-row__body[_ngcontent-%COMP%]{min-width:0}.wishlist-bookmarks-row__body[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;font-size:.95rem;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wishlist-bookmarks-row__meta[_ngcontent-%COMP%]{display:block;font-size:.82rem;color:var(--text-body)}.wishlist-bookmarks-row__chevron[_ngcontent-%COMP%]{color:var(--text-subtle);font-size:18px}.wishlist-bookmarks-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spoyla-space-12) var(--spoyla-space-4);color:var(--text-body)}.wishlist-bookmarks-empty[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:40px;color:var(--text-subtle);margin-bottom:var(--spoyla-space-3)}.wishlist-bookmarks-empty__title[_ngcontent-%COMP%]{margin:0 0 6px;font-size:1.02rem;font-weight:600;color:var(--text-strong)}.wishlist-bookmarks-empty__text[_ngcontent-%COMP%]{margin:0;font-size:.9rem;line-height:1.5}.wishlist-bookmarks-skeleton-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:var(--spoyla-space-3);padding:var(--spoyla-space-3);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);background:var(--color-surface)}.wishlist-bookmarks-skeleton-thumb[_ngcontent-%COMP%]{width:52px;height:52px;border-radius:var(--radius-md);margin:0}.wishlist-bookmarks-skeleton-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding-top:6px}.wishlist-bookmarks-skeleton-line[_ngcontent-%COMP%]{height:13px;width:65%;border-radius:var(--radius-sm);margin:0}.wishlist-bookmarks-skeleton-line--short[_ngcontent-%COMP%]{width:38%}"]}))}return n(),o})()},{path:":wishlistId/edit",component:me},{path:":wishlistId/reservations",component:(()=>{var n;class o{constructor(i,t,r,a,l,m,g,_,p,E){this.reportedMediaService=i,this.route=t,this.nav=r,this.wishlistService=a,this.wishlistItemService=l,this.wishlistItemUserReservationService=m,this.mediaAssetService=g,this.tokenService=_,this.logger=p,this.commonPageService=E,this.wishlistId="",this.wishlist=null,this.reservedItems=[],this.selectedItemIds=new Set,this.isBusy=!1,this.isClearing=!1,this.isMovingToReceived=!1,this.isResetting=!1,this.hasError=!1,this.canManageReservations=!1,this.isOwner=!1,this.showGiftGivers=!1}get selectedCount(){return this.selectedItemIds.size}get isAllSelected(){return this.reservedItems.length>0&&this.selectedItemIds.size===this.reservedItems.length}get isMutating(){return this.isClearing||this.isMovingToReceived||this.isResetting}
1ngOnInit(){const i=this.route.snapshot.paramMap.get("wishlistId");i?this.wishlistId=i:this.nav.navigateBack("/app/wishlist")}ionViewWillEnter(){var i=this;return(0,u.A)(function*(){yield i.loadData()})()}goBack(){this.nav.navigateBack(`/app/wishlist/${this.wishlistId}`)}handleRefresh(i){var t=this;return(0,u.A)(function*(){try{yield t.loadData()}finally{yield i.target.complete()}})()}retryLoad(){var i=this;return(0,u.A)(function*(){yield i.loadData()})()}trackReservedItem(i,t){return t.wishlistItemId}isSelected(i){return this.selectedItemIds.has(i)}toggleSelection(i){this.selectedItemIds.has(i)?this.selectedItemIds.delete(i):this.selectedItemIds.add(i)}toggleSelectAll(){this.isAllSelected?this.selectedItemIds.clear():this.selectedItemIds=new Set(this.reservedItems.map(i=>i.wishlistItemId))}onShowGiftGiversChange(i){this.showGiftGivers=i}getReservationSummary(i){const t=i.reservations.filter(l=>l.reservationTypeId!==O.c.Purchased),r=i.reservations.filter(l=>l.reservationTypeId===O.c.Purchased),a=[];if(this.showGiftGivers){const l=t.map(g=>this.getGiftGiverName(g)).filter(g=>!!g),m=r.map(g=>this.getGiftGiverName(g)).filter(g=>!!g);return l.length>0&&a.push(`Reserved by: ${l.join(", ")}`),m.length>0&&a.push(`Purchased by: ${m.join(", ")}`),a.join(" \u2022 ")}return t.length>0&&a.push(`Reserved: ${t.length}`),r.length>0&&a.push(`Purchased: ${r.length}`),a.join(" \u2022 ")}clearSelectedReservations(){var i=this;return(0,u.A)(function*(){if(!i.canManageReservations||0===i.selectedItemIds.size||i.isMutating)return;const t=i.selectedItemIds.size;if(yield i.commonPageService.showConfirmAlertDialog("Clear reservations",`Remove all reservations from ${t} selected item${1===t?"":"s"}?`))try{i.isClearing=!0,yield i.wishlistItemUserReservationService.ClearReservationsForItems(Array.from(i.selectedItemIds),i.wishlistId),i.selectedItemIds.clear(),i.logger.LogInfo("Reservations cleared",{wishlistId:i.wishlistId,count:t}),yield i.loadData()}catch(a){i.logger.LogError(a,"Failed to clear reservations"),yield i.commonPageService.handleError(a,"Failed to clear reservations")}finally{i.isClearing=!1}})()}moveSelectedItemsToReceived(){var i=this;return(0,u.A)(function*(){if(!i.isOwner||0===i.selectedItemIds.size||i.isMutating)return;const t=i.selectedItemIds.size;if(yield i.commonPageService.showConfirmAlertDialog("Move to received gifts",`Move ${t} selected item${1===t?"":"s"} to Received Gifts? They will be removed from this wishlist and any active reservation history will move with them.`))try{i.isMovingToReceived=!0,yield i.wishlistItemService.MoveItemsToReceived(Array.from(i.selectedItemIds),i.wishlistId),i.selectedItemIds.clear(),i.logger.LogInfo("Items moved to received gifts",{wishlistId:i.wishlistId,count:t}),yield i.loadData()}catch(a){i.logger.LogError(a,"Failed to move items to received gifts"),yield i.commonPageService.handleError(a,"Failed to move items to Received Gifts")}finally{i.isMovingToReceived=!1}})()}resetAllReservations(){var i=this;return(0,u.A)(function*(){if(i.canManageReservations&&0!==i.reservedItems.length&&!i.isMutating&&(yield i.commonPageService.showConfirmAlertDialog("Reset all reservations","Remove every reservation on this wishlist? This cannot be undone.")))try{i.isResetting=!0,yield i.wishlistItemUserReservationService.ResetReservationsByWishlistId(i.wishlistId),i.selectedItemIds.clear(),i.logger.LogInfo("All reservations reset",{wishlistId:i.wishlistId}),yield i.loadData()}catch(r){i.logger.LogError(r,"Failed to reset reservations"),yield i.commonPageService.handleError(r,"Failed to reset reservations")}finally{i.isResetting=!1}})()}getGiftGiverName(i){return i.user?.nickName?.trim()||i.user?.userName?.trim()||"Someone"}loadData(){var i=this;return(0,u.A)(function*(){if(i.wishlistId&&!i.isBusy)try{i.isBusy=!0,i.hasError=!1;const[t,r,a]=yield Promise.all([i.wishlistService.GetWishlistById(i.wishlistId),i.wishlistItemService.GetItemsByWishlist(i.wishlistId,1,250),i.wishlistItemUserReservationService.GetReservationsByWishlistId(i.wishlistId)]),l=yield i.tokenService.getUserId();if(i.wishlist=t,i.isOwner=t.userId===l,i.canManageReservations=i.computeCanManageReservations(t,l),!i.canManageReservations)return yield i.commonPageService.showAlertDialog("Access denied","You do not have permission to manage reservations for this wishlist."),void i.goBack();const m=(a??[]).filter(_=>!1!==_?.isActive),g=new Map;for(const _ of m){const p=g.get(_.wishlistItemId)??[];p.push(_),g.set(_.wishlistItemId,p)}i.reservedItems=(r?.items??[]).filter(_=>_?.wishlistItemId&&g.has(_.wishlistItemId)).map(_=>({item:_,wishlistItemId:_.wishlistItemId||"",imageUrl:i.reportedMediaService.isReported(_.media?.mediaId)?"":i.mediaAssetService.getMediaUrl(_.media)??"",reservations:g.get(_.wishlistItemId||"")??[]})),i.selectedItemIds.forEach(_=>{i.reservedItems.some(p=>p.wishlistItemId===_)||i.selectedItemIds.delete(_)})}catch(t){i.logger.LogError(t,"Failed to load reservation management page"),i.hasError=!0,i.reservedItems=[],i.selectedItemIds.clear(),i.isOwner=!1}finally{i.isBusy=!1}})()}computeCanManageReservations(i,t){const r=new Set((i.currentUserWishlistAccesses||[]).filter(a=>null!=a?.wishlistAccessId).map(a=>a.wishlistAccessId));return i.userId===t||r.has(R.n.Manager)}static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)(e.rXU(B.p),e.rXU(ie.nX),e.rXU(Y.q9),e.rXU(D.w),e.rXU(Q.v),e.rXU(te.E),e.rXU(U.S),e.rXU(K.B),e.rXU(Z.g),e.rXU($.o))},this.\u0275cmp=e.VBU({type:o,selectors:[["app-wishlist-reservations"]],standalone:!1,decls:17,vars:5,consts:[[1,"page-toolbar"],["slot","start"],["aria-label","Back",3,"click"],["slot","icon-only","name","chevron-back"],[1,"page-toolbar-title-wrap"],[1,"page-toolbar-title"],[3,"fullscreen"],["slot","fixed",3,"ionRefresh"],[1,"page"],["class","wishlist-reservations-list",4,"ngIf"],["title","We could not load reservations","message","Check your connection and try again.",3,"retry",4,"ngIf"],[4,"ngIf"],[1,"wishlist-reservations-list"],["class","wishlist-reservations-skeleton-row",4,"ngFor","ngForOf"],[1,"wishlist-reservations-skeleton-row"],[1,"wishlist-reservations-skeleton-thumb",3,"animated"],[1,"wishlist-reservations-skeleton-body"],[1,"wishlist-reservations-skeleton-line",3,"animated"],[1,"wishlist-reservations-skeleton-line","wishlist-reservations-skeleton-line--short",3,"animated"],["title","We could not load reservations","message","Check your connection and try again.",3,"retry"],[1,"wishlist-reservations-body"],["class","muted-note",4,"ngIf"],["class","wishlist-reservations-empty",4,"ngIf"],[1,"muted-note"],[1,"wishlist-reservations-empty"],["name","bookmark-outline"],[1,"wishlist-reservations-empty__title"],[1,"wishlist-reservations-empty__text"],[1,"form-panel"],["lines","none"],[3,"ngModelChange","ngModel","ngModelOptions"],[1,"wishlist-reservations-hint"],[1,"wishlist-reservations-toolbar"],["size","small","fill","clear",3,"click"],["class","wishlist-reservations-count",4,"ngIf"],["type","button","class","wishlist-reservations-row",3,"wishlist-reservations-row--selected","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"wishlist-reservations-count"],["type","button",1,"wishlist-reservations-row",3,"click"],["aria-hidden","true","tabindex","-1",3,"checked"],[1,"wishlist-reservations-thumb"],["loading","lazy",3,"src","alt",4,"ngIf"],["name","gift-outline",4,"ngIf"],[1,"wishlist-reservations-row__body"],[1,"wishlist-reservations-row__meta"],["loading","lazy",3,"src","alt"],["name","gift-outline"],[1,"wishlist-reservations-actions"],["size","small","fill","outline",3,"click","disabled"],["size","small","fill","outline",3,"disabled","click",4,"ngIf"],["size","small","fill","clear","color","danger",3,"click","disabled"]],template:function(t,r){1&t&&(e.j41(0,"ion-header",0)(1,"ion-toolbar")(2,"ion-buttons",1)(3,"ion-button",2),e.bIt("click",function(){return r.goBack()}),e.nrm(4,"ion-icon",3),e.k0s()(),e.j41(5,"ion-title")(6,"div",4)(7,"span",5),e.EFF(8,"Reservations"),e.k0s()()()()(),e.j41(9,"ion-content",6)(10,"ion-refresher",7),e.bIt("ionRefresh",function(l){return r.handleRefresh(l)}),e.nrm(11,"ion-refresher-content"),e.k0s(),e.j41(12,"div",8),e.DNE(13,ms,2,2,"div",9)(14,gs,1,0,"app-page-load-error",10)(15,bs,5,3,"ng-container",11),e.k0s()(),e.DNE(16,Rs,8,3,"ion-footer",11)),2&t&&(e.R7$(9),e.Y8G("fullscreen",!0),e.R7$(4),e.Y8G("ngIf",r.isBusy),e.R7$(),e.Y8G("ngIf",r.hasError&&!r.isBusy),e.R7$(),e.Y8G("ngIf",!r.isBusy&&!r.hasError),e.R7$(),e.Y8G("ngIf",!r.isBusy&&!r.hasError&&r.reservedItems.length>0))},dependencies:[k.Sq,k.bT,w.BC,w.vS,h.Jm,h.QW,h.eY,h.W9,h.M0,h.eU,h.iq,h.uz,h.To,h.Ki,h.ds,h.BC,h.BY,h.ai,h.hB,N.F],styles:["[_nghost-%COMP%]{display:block}.wishlist-reservations-body[_ngcontent-%COMP%]{max-width:720px;margin:0 auto}.wishlist-reservations-hint[_ngcontent-%COMP%]{display:block;color:var(--text-body);font-size:.8rem;line-height:1.4}.wishlist-reservations-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spoyla-space-2);margin:var(--spoyla-space-3) 0 var(--spoyla-space-2)}.wishlist-reservations-count[_ngcontent-%COMP%]{font-size:.85rem;font-weight:600;color:var(--action-primary)}.wishlist-reservations-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spoyla-space-2);max-width:720px;margin:0 auto}.wishlist-reservations-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:var(--spoyla-space-3);width:100%;padding:var(--spoyla-space-3);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--text-strong);text-align:left;font:inherit;cursor:pointer}.wishlist-reservations-row--selected[_ngcontent-%COMP%]{border-color:var(--action-primary);background:rgba(var(--spoyla-action-slate-blue-rgb),.06)}.wishlist-reservations-thumb[_ngcontent-%COMP%]{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-sunken);color:var(--text-subtle);flex-shrink:0}.wishlist-reservations-thumb[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.wishlist-reservations-thumb[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:22px}.wishlist-reservations-row__body[_ngcontent-%COMP%]{min-width:0}.wishlist-reservations-row__body[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;font-size:.95rem;margin-bottom:2px}.wishlist-reservations-row__meta[_ngcontent-%COMP%]{display:block;font-size:.82rem;color:var(--text-body);line-height:1.4}.wishlist-reservations-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spoyla-space-12) var(--spoyla-space-4);color:var(--text-body)}.wishlist-reservations-empty[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:40px;color:var(--text-subtle);margin-bottom:var(--spoyla-space-3)}.wishlist-reservations-empty__title[_ngcontent-%COMP%]{margin:0 0 6px;font-size:1.02rem;font-weight:600;color:var(--text-strong)}.wishlist-reservations-empty__text[_ngcontent-%COMP%]{margin:0;font-size:.9rem;line-height:1.5}.wishlist-reservations-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--spoyla-space-2);padding:var(--spoyla-space-2) var(--spoyla-space-4)}.wishlist-reservations-skeleton-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;gap:var(--spoyla-space-3);padding:var(--spoyla-space-3);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);background:var(--color-surface)}.wishlist-reservations-skeleton-thumb[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:var(--radius-md);margin:0}.wishlist-reservations-skeleton-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding-top:4px}.wishlist-reservations-skeleton-line[_ngcontent-%COMP%]{height:13px;width:70%;border-radius:var(--radius-sm);margin:0}.wishlist-reservations-skeleton-line--short[_ngcontent-%COMP%]{width:40%}"]}))}return n(),o})()},{path:":wishlistId",component:oi}];let Ws=(()=>{var n;class o{static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)},this.\u0275mod=e.$C({type:o}),this.\u0275inj=c.G2t({imports:[F.iI.forChild(xs),F.iI]}))}return n(),o})(),Ss=(()=>{var n;class o{static#e=n=()=>(this.\u0275fac=function(t){return new(t||o)},this.\u0275mod=e.$C({type:o}),this.\u0275inj=c.G2t({imports:[k.MD,w.YN,h.bv,W.u,d.C,Ws]}))}return n(),o})()},4178(z,P,v){v.d(P,{Y:()=>w,e:()=>h});const k=/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;function w(W,d){return`${W}/item/${d?.trim()||""}`}function h(W){const d=k.exec((W||"").trim());return d?d[1]:""}},359(z,P,v){v.d(P,{$t:()=>u,H$:()=>B,Nf:()=>c,Uw:()=>$,ZZ:()=>F,ab:()=>N,j3:()=>d,vH:()=>e,zI:()=>j});var h=v(2842),W=v(9044);const d=[{id:h.w.Private,label:"Private",icon:"lock-closed-outline",description:"Only people you invite can see and respond to this event."},{id:h.w.AnyoneWithLink,label:"Anyone with link",icon:"link-outline",description:"Not listed anywhere \u2014 only people you send the link to can see and respond."},{id:h.w.Public,label:"Public",icon:"megaphone-outline",description:"Listed publicly \u2014 anyone can find this event, see it and respond."}],F=[{id:W.G.Private,label:"Private",icon:"lock-closed-outline",description:"Only you can see this wishlist \u2014 it stays hidden everywhere you share it."},{id:W.G.AnyoneWithLink,label:"Anyone with link",icon:"link-outline",description:"Not listed anywhere \u2014 only people you send the link to can view this wishlist."},{id:W.G.Public,label:"Public",icon:"globe-outline",description:"Listed publicly \u2014 anyone can find and view this wishlist."}],u=h.w.AnyoneWithLink,j=W.G.AnyoneWithLink;function e(S){return S===h.w.Friends?"Only your friends can see and respond to this event."
1:d.find(T=>T.id===S)?.description||""}function c(S){return S===W.G.Friends?"Only your friends can see this wishlist.":F.find(T=>T.id===S)?.description||""}const $="This wishlist is Private, so guests won\u2019t be able to see it or anything on it.",B="This wishlist is Private, so other members won\u2019t be able to see it or anything on it.",N="Change it to \u201cAnyone with link\u201d when I save"}}]);

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.