PageSourceSearch

https://spawish-search.web.app/js/spa-services.1c365d41.js

js spawish-search.web.app collected 2026-10-03 12:39:01 UTC 10,704 bytes, 1 lines download raw bytes

1(self["webpackChunkfind_v2_spafinder"]=self["webpackChunkfind_v2_spafinder"]||[]).push([[5352],{84393:function(e,t,i){"use strict";i.d(t,{A:function(){return A}});var s=i(96016),a=i(62023),r=i(48265),n=i(41034),o=i(48817),c=i(92367),l=function(){var e=this,t=e._self._c;e._self._setupProxy;return t(a.A,{attrs:{eager:"","max-width":e.maxWidth,fullscreen:e.fullscreen,"content-class":e.fullscreen?"dialog":"dialog dialog-border-round"},model:{value:e.syncDialog,callback:function(t){e.syncDialog=t},expression:"syncDialog"}},[t(o.A,{attrs:{dark:"",color:"primary"}},[e._t("favorite-icon"),t(n.A),t(c.sw,{staticClass:"d-flex align-center",class:e.vBreakpoint.mdAndUp?"headline":"title"},[e._v(" "+e._s(e.title)+" ")]),t(n.A),t(s.A,{attrs:{icon:"",dark:""},on:{click:function(t){t.stopPropagation(),e.syncDialog=!1}}},[t(r.A,[e._v("mdi-close")])],1)],2),e._t("default")],2)},g=[],p=i(42473),u=i(31635),h=i(11406);let d=class extends h.lD{constructor(...e){super(...e),(0,p.A)(this,"title",void 0),(0,p.A)(this,"maxWidth",void 0),(0,p.A)(this,"fullscreen",void 0),(0,p.A)(this,"syncDialog",void 0)}get vBreakpoint(){return this.$vuetify.breakpoint}};(0,u.Cg)([(0,h.kv)({type:String,default:"",required:!0})],d.prototype,"title",void 0),(0,u.Cg)([(0,h.kv)({type:String,default:"600",required:!1})],d.prototype,"maxWidth",void 0),(0,u.Cg)([(0,h.kv)({type:Boolean,default:!1,required:!1})],d.prototype,"fullscreen",void 0),(0,u.Cg)([(0,h.pF)("dialog",{type:Boolean,default:!1,required:!0})],d.prototype,"syncDialog",void 0),d=(0,u.Cg)([(0,h.uA)({})],d);var v=d,f=v,y=i(81656),m=(0,y.A)(f,l,g,!1,null,null,null),A=m.exports},37042:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return $}});var s=i(3698),a=i(54414),r=i(8779),n=i(16292),o=i(2756),c=function(){var e=this,t=e._self._c;e._self._setupProxy;return t("section",[e._t("header"),t("Dialog",{attrs:{title:e.serviceTypeName,"max-width":"800",fullscreen:e.vBreakpoint.xsOnly,dialog:e.serviceDialog},on:{"update:dialog":function(t){e.serviceDialog=t}},scopedSlots:e._u([{key:"favorite-icon",fn:function(){return[t("div",{staticClass:"d-flex align-center justify-center flex-column text-center"},[e.getTenant.options.global.userProfile&&e.serviceDialog?t("UserProfileFavoriteIcon",{attrs:{id:e.serviceTypeName.split("/").join(" "),url:`${e.getTenant.endpoints.canonical}${e.serviceUrl}`,size:"33",title:e.serviceTypeName,source:e.sourcesEnum.services,category:e.favoritesCategoriesEnum.service,"inactive-color":"#A8A8A8","tooltip-attach":!1}}):e._e(),t("span",{staticClass:"caption text-center font-weight-bold",staticStyle:{position:"relative",bottom:"5px"}},[e._v(" Favorite ")])],1)]},proxy:!0}])},[t("ServiceDialog",{attrs:{dialog:e.serviceDialog,"service-description":e.serviceDescription},on:{"update:dialog":function(t){e.serviceDialog=t},checkBalanceClick:function(t){e.trackEventSpaOfferPage(`${e.dataLayerActionTypesEnum.balanceInquiry} : no card`,"balance"),e.checkBalanceDialog=t},checkBuyCardClick:function(t){return e.trackEventSpaOfferPage(`${e.dataLayerActionTypesEnum.purchaseCard} : no card`,"buy")}}})],1),t("Dialog",{attrs:{dialog:e.checkBalanceDialog,fullscreen:e.vBreakpoint.xsOnly,title:"Check card balance","max-width":"600"},on:{"update:dialog":function(t){e.checkBalanceDialog=t}}},[t(s.A,{staticClass:"card-balance-wrap"},[t("BalanceInquiryWidget",{attrs:{dialog:e.checkBalanceDialog,"card-width":"200px","justify-cards":"justify-space-around"}})],1)],1),t(r.A,{staticClass:"spa-services px-0"},[e.getListing.servicesDescription?t("div",{staticClass:"spa-services-description mb-0",domProps:{innerHTML:e._s(e.getListing.servicesDescription)}}):e._e(),e._l(e.getListing.services,(function(i,s){return t(r.A,{key:s,staticClass:"spa-services-container"},[t("section",{class:{"mb-12":e.vBreakpoint.mdAndUp,"mb-6":e.vBreakpoint.smAndDown}},[t("header",[t(n.A),t("h3",[e._v(" "+e._s(e._f("uppercase")(i.category))+" ")])],1)]),t(o.A,{attrs:{"no-gutters":""}}
1,e._l(i.options,(function(s,r){return t(a.A,{key:r,staticClass:"spa-services-type-container"},[t("button",{staticClass:"spa-services-type",attrs:{"aria-label":`${i.category}: service ${s}`},on:{click:function(t){return t.stopPropagation(),e.openServiceDialog(s)}}},[e._v(" "+e._s(s)+" ")])])})),1)],1)}))],2)],2)},l=[],g=i(42473),p=i(31635),u=i(95353),h=i(25721),d=i.n(h),v=i(11406),f=i(84393),y=i(96016),m=i(52938),A=i(48265),x=function(){var e=this,t=e._self._c;e._self._setupProxy;return t(s.A,{staticClass:"service-description-wrap"},[e.serviceDescription?t(m.ri,{staticClass:"pa-6"},[t("div",{staticClass:"mt-4 mb-1 p-relative"},[t("p",{ref:"text",staticClass:"ma-0 overflow-hidden body-1 service-text",domProps:{innerHTML:e._s(e.serviceDescription)}}),t("button",{directives:[{name:"show",rawName:"v-show",value:e.clampText,expression:"clampText"}],staticClass:"manage-text-btn body-1",class:{"read-more":!e.showAllText},attrs:{"aria-label":(e.showAllText?"Show less":"Read more")+" service description button"},on:{click:function(t){return e.changeClampText(!e.showAllText,e.text.scrollHeight>e.text.clientHeight?e.text.scrollHeight:e.minTextHeight)}}},[e._v(" "+e._s(e.showAllText?"Show less":"Read more")+" "),t(A.A,{attrs:{size:"24"}},[e._v(e._s(e.showAllText?"mdi-chevron-up":"mdi-chevron-down"))])],1)])]):e._e(),t(m.SL,{staticClass:"service-dialog-buttons px-6 d-flex justify-space-around flex-wrap",class:e.serviceDescription?"pt-2 pb-6":"py-12"},[t(y.A,{staticClass:"check-balance body-1 ml-0 my-2",attrs:{rounded:"",color:"primary","aria-label":"Check Balance button"},on:{click:function(t){return e.checkBalanceClick()}}},[t(A.A,{staticClass:"mr-4",attrs:{size:"40"}},[e._v("mdi-cash")]),t("span",{staticClass:"font-weight-bold"},[e._v("Check Balance")])],1),t(y.A,{staticClass:"buy-card body-1 ml-0 my-2",attrs:{color:"primary",target:"_blank",href:"https://myspafinder.spagiftcards.com/category/eGift-Cards",rounded:"","aria-label":"Buy a Card button"},on:{click:function(t){return e.buyCardClick()}}},[t(A.A,{staticClass:"mr-4",attrs:{size:"32"}},[e._v("mdi-cart-outline")]),t("span",{staticClass:"font-weight-bold"},[e._v("Buy a Card")])],1)],1)],1)},C=[];let k=class extends v.lD{constructor(...e){super(...e),(0,g.A)(this,"serviceDescription",void 0),(0,g.A)(this,"syncDialog",void 0),(0,g.A)(this,"clampText",!1),(0,g.A)(this,"lineHeight",24),(0,g.A)(this,"showAllText",!1),(0,g.A)(this,"minTextHeight",0),(0,g.A)(this,"clampLinesNumber",4),(0,g.A)(this,"text",void 0)}checkBalanceClick(){return!0}buyCardClick(){return!0}watchServiceDialog(e){if(e){const e=getComputedStyle(this.text).lineHeight;this.lineHeight=e&&parseFloat(e)||this.lineHeight,this.clampText=this.text.scrollHeight/this.lineHeight>this.clampLinesNumber,this.clampText&&(this.minTextHeight=this.lineHeight*this.clampLinesNumber,this.changeClampText(!1,this.minTextHeight))}else this.clampText&&(this.text.style.height="auto")}watchBreakpoint(){this.clampText&&this.syncDialog&&this.showAllText&&this.changeClampText(!1,this.minTextHeight)}get vBreakpoint(){return this.$vuetify.breakpoint}changeClampText(e,t){this.showAllText=e,this.text.style.height=`${t}px`}};(0,p.Cg)([(0,v.kv)({type:String,default:"",required:!0})],k.prototype,"serviceDescription",void 0),(0,p.Cg)([(0,v.pF)("dialog",{type:Boolean,default:!1,required:!0})],k.prototype,"syncDialog",void 0),(0,p.Cg)([(0,v.oS)("text")],k.prototype,"text",void 0),(0,p.Cg)([(0,v.O5)("checkBalanceClick")],k.prototype,"checkBalanceClick",null),(0,p.Cg)([(0,v.O5)("checkBuyCardClick")],k.prototype,"buyCardClick",null),(0,p.Cg)([(0,v.ox)("syncDialog")],k.prototype,"watchServiceDialog",null),(0,p.Cg)([(0,v.ox)("vBreakpoint.name")],k.prototype,"watchBreakpoint",null),k=(0,p.Cg)([(0,v.uA)({name:"ServiceDialog"})],k);var b=k,T=b,D=i(81656),_=(0,D.A)(T,x,C,!1,null,"17cbb274",null),w=_.exports,S=i(9975),B=i(69907),L=i(77561),E=i(67159),H=i(49131);let P=class extends v.lD{constructor(...e){super(...e),(0,g.A)(this,"getTenant",void 0),(0,g.A)(this,"getListing",void 0),(0,g.A)(this,"getServiceTags",void 0),(0,g.A)(this,"pushTrackEvent",void 0),(0,g.A)(this,"pushTrackEventSpaOfferPage",void 0),(0,g.A)(this,"getServiceUrl",void 0),(0,g.A)(this,"logListingAction",void 0),(0,g.A)(this,"offerInfo",new H.mj),(0,g.A)(this,"serviceDialog",!1),(0,g.A)(this,"serviceTypeName",""),(0,g.A)(this,"checkBalanceDialog",!1),(0,g.A)(this,"serviceDescription",""),(0,g.A)(this,"sourcesEnum",S.c
1),(0,g.A)(this,"favoritesCategoriesEnum",B.F),(0,g.A)(this,"dataLayerActionTypesEnum",L.g),(0,g.A)(this,"dataLayerCategoryTypesEnum",E.k)}get vBreakpoint(){return this.$vuetify.breakpoint}get servicesTagsNames(){return this.getServiceTags.map((e=>e.name.toLocaleLowerCase()))}trackEventSpaOfferPage(e,t){this.pushTrackEventSpaOfferPage({action:e,listing:this.getListing}),this.logListingAction({element_id:this.getListing.listingId,label:e,value:t})}get serviceUrl(){return this.getServiceUrl(this.serviceTypeName)}openServiceDialog(e){const t=this.getListing,i=e,s=.55,a=this.dataLayerCategoryTypesEnum.listingServices,r=d().findBestMatch(e.toLocaleLowerCase(),this.servicesTagsNames);r.bestMatch.rating>s&&(this.serviceTypeName=e,this.serviceDescription=this.getServiceTags[r.bestMatchIndex].description,setTimeout((()=>this.serviceDialog=!this.serviceDialog))),this.pushTrackEvent({listing:t,eventCategory:a,eventAction:i,label:e}),this.logListingAction({label:e,element_id:t.listingId,value:"services"})}};P=(0,p.Cg)([(0,v.uA)({name:"SpaServices",components:{Dialog:f.A,ServiceDialog:w},computed:{...(0,u.L8)("SpaModule",["getListing"]),...(0,u.L8)("WidgetsModule",["getTenant"]),...(0,u.L8)("ServicesModule",["getServiceTags","getServiceUrl"])},methods:{...(0,u.i0)("DataLayerModule",["pushTrackEventSpaOfferPage","pushTrackEvent"]),...(0,u.i0)("AnalyticsModule",["logListingAction"])}})],P);var M=P,N=M,O=(0,D.A)(N,c,l,!1,null,"1e3881f3",null),$=O.exports},25721:function(e){function t(e,t){if(e=e.replace(/\s+/g,""),t=t.replace(/\s+/g,""),e===t)return 1;if(e.length<2||t.length<2)return 0;let i=new Map;for(let a=0;a<e.length-1;a++){const t=e.substring(a,a+2),s=i.has(t)?i.get(t)+1:1;i.set(t,s)}let s=0;for(let a=0;a<t.length-1;a++){const e=t.substring(a,a+2),r=i.has(e)?i.get(e):0;r>0&&(i.set(e,r-1),s++)}return 2*s/(e.length+t.length-2)}function i(e,i){if(!s(e,i))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");const a=[];let r=0;for(let s=0;s<i.length;s++){const n=i[s],o=t(e,n);a.push({target:n,rating:o}),o>a[r].rating&&(r=s)}const n=a[r];return{ratings:a,bestMatch:n,bestMatchIndex:r}}function s(e,t){return"string"===typeof e&&(!!Array.isArray(t)&&(!!t.length&&!t.find((function(e){return"string"!==typeof e}))))}
1e.exports={compareTwoStrings:t,findBestMatch:i}}}]);

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.