PageSourceSearch

https://bookings.sajresort.com/component/adc/a3611984e4385c2d5555.js?tmp=1790054138698

js sajresort.com collected 2026-10-05 01:54:43 UTC 7,599 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkaddon_mf=self.webpackChunkaddon_mf||[]).push([[637],{2637(n,d,o){o.r(d),o.d(d,{default:()=>j}),o(4914);var e=o(8123),a=o.n(e),r=o(7837),t=o.n(r),i=o(5072),s=o.n(i),l=o(7825),c=o.n(l),p=o(7659),h=o.n(p),m=o(5056),f=o.n(m),u=o(540),b=o.n(u),x=o(1113),g=o.n(x),v=o(8662),w={};w.styleTagTransform=g(),w.setAttributes=f(),w.insert=h().bind(null,"head"),w.domAPI=c(),w.insertStyleElement=b(),s()(v.A,w),v.A&&v.A.locals&&v.A.locals;var y=o(4848);const j=function(n){var d=n.t,o=n.newAddonArray,e=n.filterMapData,r=n.mainJson,i=n.handleAdd,s=n.AddonPrice,l=n.multiCurrencyFromURL,c=n.showDecimalRate,p=n.addonTaxTitle,h=n.p_currency,m=n.showAddon,f=n.AddonAddModal,u=n.setShowAddon,b=n.selectedAddon,x=n.addonRates,g=n.multiplierData;return a()().noTranslateClass,(0,y.jsxs)(y.Fragment,{children:[(null==o?void 0:o.length)>0?(0,y.jsx)(y.Fragment,{children:(0,y.jsx)("div",{className:"position-relative",children:(0,y.jsxs)("div",{className:"row g-4 justify-content-center",children:[(null==o?void 0:o.length)&&o.map(function(n,o){var a,m,f=!1,u=[];null==r||null===(a=r.bookingJson)||void 0===a||a.forEach(function(d){var o;null===(o=d.rooms)||void 0===o||o.forEach(function(d){null!=d&&d.hasOwnProperty("addons")&&d.addons.forEach(function(d){d.addonId===n.AddonId&&(f=!0,u.push(d))})})});var b=(null==r?void 0:r.bookingJson)&&(null==r||null===(m=r.bookingJson)||void 0===m?void 0:m.some(function(n){return!n.roomInfo[0].DisableChildren}))&&e&&e.some(function(n){return!(null!=n&&n.hasOwnProperty("DisableChildren")||null!=n&&n.hasOwnProperty("DisableChildren")&&!n.DisableChildren)});return(0,y.jsx)(y.Fragment,{children:(0,y.jsx)("div",{className:"col-12 col-md-6 col-xl-4",children:(0,y.jsxs)("div",{className:"card addon-card h-100 shadow-sm",children:[(0,y.jsx)("img",{src:null!=n&&n.Image?null==n?void 0:n.Image:"".concat("https://static.staah.net/images/InstantSiteImages/No-images-25.png"),className:"card-img-top addon-img"}),(0,y.jsxs)("div",{className:"card-body  addon-card-body",children:[(0,y.jsx)("h6",{className:"card-title mb-2",children:null==n?void 0:n.AddonName}),(0,y.jsx)(t(),{descriptionClassName:"fs12 fw400",viewLessBtnClassName:"view-more-less-btn align-self-end sh-mr-ameneties fs12 fw400 hyperLinkColor",initialDescription:n.AddonDescription,isViewMoreBtn:!0,descriptionLimit:120,handleAdd:i,addonId:n.AddonId}),f&&(0,y.jsxs)("div",{className:"addedContainer justify-content-end",children:[(0,y.jsx)("i",{className:"fas fa-check","aria-hidden":"true"}),(0,y.jsx)("h1",{className:"fs12 added-text mb-0 ps-2",children:d("lbl_added")})]})]}),(0,y.jsx)("div",{className:"card-footer addon-card-footer border-0",children:(0,y.jsxs)("div",{className:"d-flex align-items-center justify-content-end gap-2",children:[(0,y.jsx)("div",{className:"",children:(0,y.jsx)("p",{className:"addons-price-wrp",children:(0,y.jsx)(s,{addon:n,propCurrency:l?null==g?void 0:g.mCurrency:h,ShowDecimalRate:c,showChildRate:b,taxTitle:p,addonRates:x,cartAddonData:u})})}),(0,y.jsx)("div",{className:" d-grid justify-content-end",children:(0,y.jsx)("button",{type:"button",className:"btn btn-teal",onClick:function(){return i(n.AddonId)},children:"Add"})})]})})]})},o)})}),(0,y.jsx)("div",{className:"p-4 position-sticky bottom-0 end-0 bg-white m-0 d-lg-none",children:(0,y.jsxs)("button",{className:"btn-v2 w-100",children:[d("lbl_continue")," ",d("lbl_booking")]})})]})})}):"",m&&(0,y.jsx)(f,{show:m,setShow:u,Addon:b,taxTitle:p,propCurrency:l?null==g?void 0:g.mCurrency:h})]})}},8662(n,d,o){o.d(d,{A:()=>i});var e=o(1601),a=o.n(e),r=o(6314),t=o.n(r)()(a());t.push([n.id,"/* Colors and tokens */\n:root {\n    --addon-card-radius: 10px;\n    --addon-border: #e9ecef;\n    --addon-heading: #1a1a1a;\n    --addon-muted: #6c757d;\n    --addon-teal: #19a7a0;\n    --addon-teal-hover: #15918b;\n}\n\n/* Card */\n.addon-card {\n\tborder: 1px solid var(--addon-border);\n\t/* border-radius: var(--addon-card-radius); */\n\tborder-radius: 0px !important;\n\toverflow: hidden;\n}\n\n.addon-img {\n    height: 300px;\n    object-fit: cover;\n    border-top-left-radius: 0 !important;\n    border-top-right-radius: 0 !important;\n}\n\n/* Typography */\n.card-title {\n    color: var(--addon-heading);\n    font-weight: 600;\n}\n\n.addon-price {\n    font-weight: 700;\n    font-size: 1.125rem;\n}\n\n/* Footer total */\n.addon-total {\n    background: #f8f9fa;\n    border: 1px solid var(--addon-border);\n    border-radius: 8px;\n}\n\n/* Button */\n.card-footer .btn-teal {\n    background: var(--addon-teal);\n    color: #fff;\n    border-radius: 5px;\n    border: none;\n    padding: 0.6rem 2rem;\n    line-height: normal !important;\n    min-width: fit-content !important;\n    height: fit-content;\n}\n\n.btn-teal:hover {\n    background: var(--addon-teal-hover);\n    color: #fff;\n}\n\n.addon-card-footer {\n\tborder-top: 2px solid rgb(236, 239, 243) !important;\n}\n\n.addon-card-footer .addons-price-wrp .a-price {\n    font-size: 14px !important;\n    font-weight: 700;\n}\n\n.addon-card-footer .addons-price-wrp {\n\ttext-align: end;\n\tmargin-bottom: 0 !important;\n}\n\n.addon-card:hover {\n    transform: translateY(-4px);\n}\n\n.addon-card-footer .addedContainer h1 {\n    font-size: 12px;\n}\n\n.addon-card-body .addedContainer {\n    justify-content: center;\n}\n\n.addon-card-body {\n    position: relative;\n}\n\n.addon-badge {\n    position: absolute;\n    top: 5px;\n    /* position: top-right */\n    right: 5px;\n    background: #16a34a;\n    /* green */\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    padding: 6px 10px;\n    border-radius: 9px;\n    /* pill */\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);\n    letter-spacing: 0.3px;\n}\n\n.addon-card-footer {\n    border-radius: 0 !important;\n}\n\n/* Responsive tweaks */\n@media (max-width: 575.98px) {\n    .addon-img {\n        height: 200px;\n    }\n\n    .addon-total {\n        font-size: 0.95rem;\n    }\n}\n\n:root {\n    --border: #e6e6e6;\n    --text: #1f2937;\n    --muted: #6b7280;\n    --ok: #15803d;\n}\n\n* {\n    box-sizing: border-box;\n}\n\n.cards {\n    display: grid;\n    gap: 16px;\n    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n}\n\n.card {\n    display: flex;\n    flex-direction: column;\n    background: #fff;\n    border: 1px solid var(--border);\n    border-radius: 6px;\n    overflow: hidden;\n}\n\n.card img {\n    width: 100%;\n    height: 220px;\n    object-fit: cover;\n    display: block;\n}\n\n.card-body {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    padding: 6px 16px;\n    color: var(--text);\n    flex: 1;\n    /* let body grow to take remaining height */\n}\n\n.title {\n    margin: 0;\n    font-size: 18px;\n    font-weight: 700;\n    line-height: 1.25;\n}\n\n.desc {\n    margin: 0;\n    color: var(--muted);\n    font-size: 14px;\n    line-height: 1.4;\n}\n\n/* pin ADDED to the bottom of the body */\n.added {\n    margin-top: auto;\n    /* pushes it to the bottom */\n    display: flex;\n    gap: 8px;
1\n    align-items: center;\n    justify-content: flex-end;\n    color: var(--ok);\n    font-weight: 600;\n    font-size: 13px;\n}\n\n.card-cta {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 12px 16px;\n    border-top: 1px solid var(--border);\n    background: #f8fafc;\n}\n\n.btn {\n    background: #2f6b2f;\n    color: #fff;\n    border: 0;\n    padding: 8px 16px;\n    border-radius: 4px;\n    cursor: pointer;\n}\n\n.btn:hover {\n    filter: brightness(0.95);\n}\n\n.addon-card-body p {\n    margin: 0 !important;\n}\n",""]);const i=t}}]);

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.