1<!DOCTYPE html> 2 3<html class="no-js css-scroll eds-theme-light" lang="en"> 4 <head> 5 <meta charset="utf-8" /> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 9 <meta name="mobile-web-app-capable" content="yes"> 10 11 12 <title>Sushi Lover - Vineland in NJ | Location and Hours | Japanese</title> 13 <meta name="keywords" content="sushi lover, sushi lover vineland, sushi lover menu, vineland japanese takeout, vineland japanese food, vineland japanese restaurants, japanese takeout, best japanese food in vineland, japanese restaurants in vineland, japanese restaurants near me, japanese food near me, vineland sushi takeout, vineland sushi, best sushi in vineland, sushi restaurants in vineland, vineland sushi restaurants, sushi restaurants near me, sushi near me, hibachi restaurant in vineland, vineland hibachi restaurants" /> 14 <meta name="description" content="Learn what hours Sushi Lover - Vineland is open for takeout, and our Vineland, NJ address."> 15 16 <meta property="og:type" content="website"> 17 <meta property="og:title" content="Sushi Lover - Vineland in NJ | Location and Hours | Japanese"> 18 <meta property="og:description" content="Learn what hours Sushi Lover - Vineland is open for takeout, and our Vineland, NJ address."> 19 <meta property="og:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public" /> 20 21 <meta name="twitter:card" content="summary_large_image"> 22 <meta name="twitter:title" content="Sushi Lover - Vineland in NJ | Location and Hours | Japanese"> 23 <meta name="twitter:description" content="Learn what hours Sushi Lover - Vineland is open for takeout, and our Vineland, NJ address."> 24 <meta name="twitter:image" content="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public" /> 25 26 <link rel="shortcut icon" href="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/e9bddeab-ab58-4532-9c11-b8fe08bd9400/public" type="image/x-icon" /> 27 28 <link rel="canonical" href="https://www.sushilovervinelandnj.com/locationinfo"/> 29 30 <link type="text/css" rel="stylesheet" href="/min/g=eds_css&1788377785" /> 31 <link type="text/css" rel="stylesheet" href="/min/g=css4.0&1788377785" /> 32 <link href="https://fonts.googleapis.com/css?family=Nunito:400,700|Open+Sans:400,600,700" rel="stylesheet" /> 33 <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" /> 34
34<script src="https://kit.fontawesome.com/0208faa9a2.js" crossorigin="anonymous"></script>
34 35 36 <style> 37 .home_hero, .menu_hero{ background-image: url(https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/dfaad019-4fbf-4238-8122-a97e6de4f600/public); } 38 @media 39 (-webkit-min-device-pixel-ratio: 1.25), 40 (min-resolution: 120dpi){ 41 /* Retina header*/ 42 .home_hero, .menu_hero{ background-image: url(https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/6bc9202e-fcff-41c1-b26f-3273e72dc400/public); } 43 } 44 /*body{ } */ 45 46 47 </style> 48 49 50
50<script type="text/javascript"> 51 var UrlTag = "sushilovervineland"; 52 var template = 'defaultv4'; 53 var formname = 'locationinfo'; 54 var menulink = 'https://www.sushilovervinelandnj.com/order/main'; 55 var checkoutlink = 'https://www.sushilovervinelandnj.com/checkout'; 56 </script>
56 57
57<script> 58 /* http://writing.colin-gourlay.com/safely-using-ready-before-including-jquery/ */ 59 (function(w,d,u){w.readyQ=[];w.bindReadyQ=[];function p(x,y){if(x=="ready"){w.bindReadyQ.push(y);}else{w.readyQ.push(x);}};var a={ready:p,bind:p};w.$=w.jQuery=function(f){if(f===d||f===u){return a}else{p(f)}}})(window,document) 60 </script>
60 61 62
62<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Restaurant","@id":"https://www.sushilovervinelandnj.com/#restaurant","name":"Sushi Lover - Vineland","url":"https://www.sushilovervinelandnj.com/","telephone":"+18568250888","address":{"@type":"PostalAddress","streetAddress":"3849 S Delsea Dr #0012","addressLocality":"Vineland","addressRegion":"NJ","postalCode":"08360","addressCountry":"US"},"hasMap":"https://maps.google.com/?q=Sushi Lover - Vineland, 3849 S Delsea Dr #0012, Vineland, NJ, 08360","priceRange":"$$","potentialAction":{"@type":"OrderAction","target":"https://www.sushilovervinelandnj.com"},"servesCuisine":"Japanese","amenityFeature":[{"@type":"LocationFeatureSpecification","name":"Pick up","value":true}],"image":{"@type":"ImageObject","contentLocation":"Vineland, NJ","url":"https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public"},"geo":{"@type":"GeoCoordinates","name":"Sushi Lover - Vineland","latitude":39.4324115,"longitude":-75.0387771},"hasMenu":[{"@id":"https://www.sushilovervinelandnj.com/order/main#menu"}],"sameAs":["https://www.yelp.com/biz/sushi-lover-vineland","https://www.tripadvisor.com/Restaurant_Review-g46890-d7254231-Reviews-Sushi_Lover-Vineland_New_Jersey.html"],"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","opens":"11:00","closes":"20:30","dayOfWeek":["https://schema.org/Monday","https://schema.org/Tuesday","https://schema.org/Wednesday","https://schema.org/Thursday","https://schema.org/Saturday"]},{"@type":"OpeningHoursSpecification","opens":"11:00","closes":"21:45","dayOfWeek":["https://schema.org/Friday"]},{"@type":"OpeningHoursSpecification","opens":"12:00","closes":"20:30","dayOfWeek":["https://schema.org/Sunday"]}]},{"@type":"Menu","@id":"https://www.sushilovervinelandnj.com/order/main#menu","url":"https://www.sushilovervinelandnj.com/order/main","name":"Main","description":"Please note: requests for additional items or special preparation may incur an extra charge not calculated on your online order."}]}</script>
62 63<!-- Google Tag Manager -->
64<script> 65 window.dataLayer = window.dataLayer || []; 66 window.gtag = window.gtag || function gtag() { dataLayer.push(arguments); }; 67 gtag('js', new Date()); 68 69 let data = { 70 account: 'sushilovervineland', 71 context: 'direct', 72 templateVersion: 4, 73 rid: 66, 74 } 75 dataLayer.push({ ...data, event: 'app_data_ready' });
vendor: 337 bytes, lines 75-81
75 76 77 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 78 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 79 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 80 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 81 })(window,document,'script','dataLayer','
81GTM-K9P93M
vendor: 4 bytes, line 81
81');
82</script>
vendor: 67 bytes, lines 82-84
82 83 84 <script async src="https://www.googletagmanager.com/gtag/js?id=
84G-DDCMHSWWV0
vendor: 15 bytes, lines 84-86
84"></script> 85 86
86<script> 87 88 gtag('config', "G-DDCMHSWWV0"); 89 </script>
89 90 91 92 93 <meta name="smartbanner:title" content="Sushi Lover - Vineland"> 94 <meta name="smartbanner:author" content="Online Ordering"> 95 <meta name="smartbanner:price" content="FREE"> 96 <meta name="smartbanner:price-suffix-google" content=" "> 97 <meta name="smartbanner:button" content="VIEW"> 98 <meta name="smartbanner:button-url-google" content="https://play.google.com/store/apps/details?id=com.chinesemenuonline.sushilovervineland"> 99 <meta name="smartbanner:enabled-platforms" content="android"> 100 <meta name="smartbanner:icon-google" content="https://ehc-west-0-bucket.s3.us-west-2.amazonaws.com/web/documents/sushilovervineland/"> 101 </head> 102 103 <body 104 data-event-on:customer_registered="window.location.reload()" 105 data-event-on:customer_logged_in="window.location.reload()" 106 data-event-on:customer_logged_out="window.location.reload()" 107 > 108 <a class="skip-to-content-link" href="#main">Skip to content</a> 109 <!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 109-110
109 110 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
110GTM-K9P93M
vendor: 85 bytes, lines 110-111
110" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 111
111<!-- End Google Tag Manager (noscript) --> 112 <!-- wrapper starts --> 113 <div class="wrapper"> 114 <section style="grid-area: header-announcements" aria-label="Announcement"> 115 <div id="upgradeBrowserBanner" class="alert alert-warning mb-0 rounded-0 py-4" style="display:none;"> 116 <div class="alert-icon"><i class="fas fa-warning" aria-hidden="true"></i></div> 117 <div> 118 <strong>We're sorry, but the Web browser you are using is not supported.</strong> <br/> Please upgrade your browser or try a different one to use this Website. Supported browsers include:<br/> 119 <ul class="list-unstyled"> 120 <li class="mt-2"><a href="https://www.google.com/chrome" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-chrome"></i> Chrome</a></li> 121 <li class="mt-2"><a href="https://www.mozilla.com/firefox/upgrade.html" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-firefox"></i> Firefox</a></li> 122 <li class="mt-2"><a href="https://www.microsoft.com/en-us/windows/microsoft-edge" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-edge"></i> Edge</a></li> 123 <li class="mt-2"><a href="http://www.apple.com/safari/" target="_blank" rel="noopener noreferrer" class="simple-link"><i class="fab fa-safari"></i> Safari</a></li> 124 </ul> 125 </div> 126</div>
127<script> 128 var ua = navigator.userAgent; 129 var match = ua.match(/Firefox\/([0-9]+)\./); 130 var firefoxVersion = match ? parseInt(match[1]) : 1000; 131 var match = ua.match(/Chrome\/([0-9]+)\./); 132 var chromeVersion = match ? parseInt(match[1]) : 1000; 133 var isIE = ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1; 134 var upgradeBrowserBanner = document.getElementById('upgradeBrowserBanner'); 135 var isMatchesSupported = typeof(upgradeBrowserBanner.matches)!="undefined"; 136 var isEntriesSupported = typeof(Object.entries)!="undefined"; 137 //Safari version is verified with isEntriesSupported 138 if (isIE || !isMatchesSupported || !isEntriesSupported || firefoxVersion <= 46 || chromeVersion <= 53) { 139 upgradeBrowserBanner.style.display = 'flex'; 140 } 141</script>
141 142 <!-- get closed sign if applicable. --> 143 144 145 </section> 146 147 <!-- Header Starts --> 148 <div class="headerAndWtype" style="grid-area: header"> 149 <header class="header" > 150 <div class="d-flex flex-column align-items-start flex-md-row align-items-md-center"> 151 <div class="logo_name_alt flex-shrink-0 d-flex align-items-center align-self-stretch pe-6 pe-md-0"> 152 <button class="eds_button btn btn-outline eds_menu_button" style="color: inherit" aria-label="Main menu" aria-expanded="false" data-bs-toggle="offcanvas" data-bs-target="#side-menu" aria-controls="side-menu" type="button"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></button> 153 <div class="d-flex flex-column align-items-center mx-auto align-items-md-start mx-md-0"> 154 <a 155 class="eds-display-text-title-xs text-truncate title-container" 156 href="https://www.sushilovervinelandnj.com" 157 aria-current="false" 158 > 159 Sushi Lover - Vineland </a> 160 161 <span class="eds-copy-text-s-regular text-center text-md-start address-container" title="3849 S Delsea Dr #0012 Cumberland Mall Vineland, NJ 08360"> 162 3849 S Delsea Dr #0012 Cumberland Mall Vineland, NJ 08360 </span> 163 </div> 164 </div> 165 166 167 <div class="position-absolute top-0 end-0 p-2"> 168 169 <div id="login-status" > 170 <button class="eds_button btn btn-outline px-2 text-nowrap" aria-label="Log in" style="color: currentColor" data-bs-toggle="modal" data-bs-target="#login-modal" type="button"><i class="eds_icon fa fa-lg fa-user-circle d-block d-lg-none" style="" aria-hidden="true"></i> <div class="d-none d-lg-flex align-items-baseline gap-2"><i class="eds_icon fa fa-user-circle" style="" aria-hidden="true"></i><div class="profile-container text-truncate">Log in</div></div></button> </div> 171 172 </div> 173 </div> 174 175 176 <div data-eds-id="6ab5396d8b16b" 177 class="eds_side_menu offcanvas offcanvas-start " 178 tabindex="-1" 179 aria-label="Side navigation" 180 id="side-menu" data-event-on:menu_selected="this.dispatchEvent(new CustomEvent('eds.hide'))" data-event-on:category_selected="this.dispatchEvent(new CustomEvent('eds.hide'))" > 181 182 <div class="eds_side_menu-body offcanvas-body d-flex flex-column pt-0 px-0 css-scroll" style="padding-bottom: 115px; scroll-padding-bottom: 115px;"> 183 <div 184 class="eds_side_menu-close position-absolute top-0 end-0 pt-3 pe-3 " 185 style="z-index: 1" 186 > 187 <button data-bs-dismiss="offcanvas" data-bs-target="[data-eds-id="6ab5396d8b16b"]" aria-label="Close" class="eds_button btn btn-outline-secondary eds_button--shape-circle" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 188 189 <nav aria-labelledby="header-navigation-title"> 190 <h2 id="header-navigation-title" class="eds-display-text-title-m m-0 p-3">Pages</h2> 191<ul class="eds_list eds_list--border-none border-bottom"> 192 <li class="eds_list-item"> 193 <a class="d-block p-3 " href="https://www.sushilovervinelandnj.com" aria-current="false"> 194 Home </a> 195 </li> 196 197 <li class="eds_list-item"> 198 <a 199 class="d-block p-3 " 200 href="https://www.sushilovervinelandnj.com/order/main" 201 aria-current="false" 202 > 203 Menu </a> 204 </li> 205 206 207 208 <li class="eds_list-item"> 209 <a class="d-block p-3 active" href="https://www.sushilovervinelandnj.com/locationinfo" aria-current="page"> 210 Location & Hours </a> 211 </li> 212 213 <li class="eds_list-item"> 214 <a class="d-block p-3 " href="https://www.sushilovervinelandnj.com/contact" aria-current="false"> 215 Contact 216 </a> 217 </li> 218</ul> 219 </nav> 220 221 222 <div class="border-bottom border-light p-3"> 223 224 225 <details 226 class="eds_list eds_list--border-none" open data-menu-id="9719" 227 data-event-on:document_ready="this.open = localStorage.getItem('menu-open-9719') !== 'false'" 228 onclick="localStorage.setItem('menu-open-9719', !this.open)" 229 > 230 <summary class="eds-copy-text-l-regular list-unstyled rounded-3 mb-1 " tabindex="0"> 231 <h2 class="eds-display-text-title-m m-0 p-0"> 232 <i class="eds_icon fas fa-chevron-right" style="" aria-hidden="true"></i> Menu <span class="sr-only">25 categories</span> 233 </h2> 234 </summary> 235 <div class="mb-3"></div> 236 237 238 <a 239 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 240 data-event-on:category_pinned="(category) => { 241 const isCurrent = category.id === '118255'; 242 $(this).toggleClass('active', isCurrent); 243 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 244 }" 245 href="https://www.sushilovervinelandnj.com/order/main/appetizers-from-the-kitchen" 246 aria-current="false" 247 onclick="if (!event.ctrlKey) { 248 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 249 if (currentMenuIsActive) { 250 app.event.emit('category_selected', { id: '118255' }); 251 } else { 252 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118255' }); 253 } 254 }" 255 >
256 Appetizers from the Kitchen<span class="sr-only"> menu category</span> 257 <span class="ms-auto">16<span class="sr-only"> items available</span></span> 258 </a> 259 <a 260 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 261 data-event-on:category_pinned="(category) => { 262 const isCurrent = category.id === '118256'; 263 $(this).toggleClass('active', isCurrent); 264 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 265 }" 266 href="https://www.sushilovervinelandnj.com/order/main/appetizer-from-the-sushi-bar" 267 aria-current="false" 268 onclick="if (!event.ctrlKey) { 269 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 270 if (currentMenuIsActive) { 271 app.event.emit('category_selected', { id: '118256' }); 272 } else { 273 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118256' }); 274 } 275 }" 276 > 277 Appetizer From The Sushi Bar<span class="sr-only"> menu category</span> 278 <span class="ms-auto">13<span class="sr-only"> items available</span></span> 279 </a> 280 <a 281 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 282 data-event-on:category_pinned="(category) => { 283 const isCurrent = category.id === '118257'; 284 $(this).toggleClass('active', isCurrent); 285 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 286 }" 287 href="https://www.sushilovervinelandnj.com/order/main/soups" 288 aria-current="false" 289 onclick="if (!event.ctrlKey) { 290 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 291 if (currentMenuIsActive) { 292 app.event.emit('category_selected', { id: '118257' }); 293 } else { 294 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118257' }); 295 } 296 }" 297 > 298 Soups<span class="sr-only"> menu category</span> 299 <span class="ms-auto">5<span class="sr-only"> items available</span></span> 300 </a> 301 <a 302 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 303 data-event-on:category_pinned="(category) => { 304 const isCurrent = category.id === '118258'; 305 $(this).toggleClass('active', isCurrent); 306 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 307 }" 308 href="https://www.sushilovervinelandnj.com/order/main/salads" 309 aria-current="false" 310 onclick="if (!event.ctrlKey) { 311 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 312 if (currentMenuIsActive) { 313 app.event.emit('category_selected', { id: '118258' }); 314 } else { 315 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118258' }); 316 } 317 }" 318 > 319 Salads<span class="sr-only"> menu category</span> 320 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 321 </a> 322 <a 323 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 324 data-event-on:category_pinned="(category) => { 325 const isCurrent = category.id === '118264'; 326 $(this).toggleClass('active', isCurrent); 327 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 328 }" 329 href="https://www.sushilovervinelandnj.com/order/main/vegetable-rolls" 330 aria-current="false" 331 onclick="if (!event.ctrlKey) { 332 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 333 if (currentMenuIsActive) { 334 app.event.emit('category_selected', { id: '118264' }); 335 } else { 336 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118264' }); 337 } 338 }" 339 > 340 Vegetable Rolls<span class="sr-only"> menu category</span> 341 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 342 </a> 343 <a 344 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 345 data-event-on:category_pinned="(category) => { 346 const isCurrent = category.id === '118266'; 347 $(this).toggleClass('active', isCurrent); 348 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 349 }" 350 href="https://www.sushilovervinelandnj.com/order/main/sushi-bar-entres" 351 aria-current="false" 352 onclick="if (!event.ctrlKey) { 353 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 354 if (currentMenuIsActive) { 355 app.event.emit('category_selected', { id: '118266' }); 356 } else { 357 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118266' }); 358 } 359 }" 360 > 361 Sushi Bar Entrées<span class="sr-only"> menu category</span> 362 <span class="ms-auto">14<span class="sr-only"> items available</span></span> 363 </a> 364 <a 365 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 366 data-event-on:category_pinned="(category) => { 367 const isCurrent = category.id === '118262'; 368 $(this).toggleClass('active', isCurrent); 369 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 370 }" 371 href="https://www.sushilovervinelandnj.com/order/main/sushi-or-sashimi-a-la-carte" 372 aria-current="false" 373 onclick="if (!event.ctrlKey) { 374 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 375 if (currentMenuIsActive) { 376 app.event.emit('category_selected', { id: '118262' }); 377 } else { 378 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118262' }); 379 } 380 }" 381 > 382 Sushi or Sashimi A La Carte<span class="sr-only"> menu category</span> 383 <span class="ms-auto">19<span class="sr-only"> items available</span></span> 384 </a> 385 <a 386 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 387 data-event-on:category_pinned="(category) => { 388 const isCurrent = category.id === '118263'; 389 $(this).toggleClass('active', isCurrent); 390 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 391 }" 392 href="https://www.sushilovervinelandnj.com/order/main/regular-rolls" 393 aria-current="false" 394 onclick="if (!event.ctrlKey) { 395 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 396 if (currentMenuIsActive) { 397 app.event.emit('category_selected', { id: '118263' }); 398 } else { 399 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118263' }); 400 } 401 }" 402 > 403 Regular Rolls<span class="sr-only"> menu category</span> 404 <span class="ms-auto">26<span class="sr-only"> items available</span></span> 405 </a> 406 <a 407 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 408 data-event-on:category_pinned="(category) => { 409 const isCurrent = category.id === '118265'; 410 $(this).toggleClass('active', isCurrent); 411 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 412 }" 413 href="https://www.sushilovervinelandnj.com/order/main/sushi-lover-special-roll" 414 aria-current="false" 415 onclick="if (!event.ctrlKey) { 416 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 417 if (currentMenuIsActive) { 418 app.event.emit('category_selected', { id: '118265' }); 419 } else { 420 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118265' }); 421 } 422 }" 423 > 424 Sushi Lover Special Roll<span class="sr-only"> menu category</span> 425 <span class="ms-auto">25<span class="sr-only"> items available</span></span> 426 </a> 427 <a 428 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 429 data-event-on:category_pinned="(category) => { 430 const isCurrent = category.id === '118259'; 431 $(this).toggleClass('active', isCurrent); 432 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 433 }" 434 href="https://www.sushilovervinelandnj.com/order/main/teriyaki-entres" 435 aria-current="false" 436 onclick="if (!event.ctrlKey) { 437 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 438 if (currentMenuIsActive) { 439 app.event.emit('category_selected', { id: '118259' }); 440 } else { 441 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118259' }); 442 } 443 }" 444 > 445 Teriyaki Entrées<span class="sr-only"> menu category</span> 446 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 447 </a> 448 <a 449 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 450 data-event-on:category_pinned="(category) => { 451 const isCurrent = category.id === '222865'; 452 $(this).toggleClass('active', isCurrent); 453 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 454 }" 455 href="https://www.sushilovervinelandnj.com/order/main/tempura-katsu-entres" 456 aria-current="false" 457 onclick="if (!event.ctrlKey) { 458 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 459 if (currentMenuIsActive) { 460 app.event.emit('category_selected', { id: '222865' }); 461 } else { 462 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '222865' }); 463 } 464 }" 465 > 466 Tempura / Katsu Entrées<span class="sr-only"> menu category</span> 467 <span class="ms-auto">6<span class="sr-only"> items available</span></span> 468 </a> 469 <a 470 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 471 data-event-on:category_pinned="(category) => { 472 const isCurrent = category.id === '222866'; 473 $(this).toggleClass('active', isCurrent); 474 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 475 }" 476 href="https://www.sushilovervinelandnj.com/order/main/noodles" 477 aria-current="false" 478 onclick="if (!event.ctrlKey) { 479 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 480 if (currentMenuIsActive) { 481 app.event.emit('category_selected', { id: '222866' }); 482 } else { 483 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '222866' }); 484 } 485 }" 486 > 487 Noodles<span class="sr-only"> menu category</span> 488 <span class="ms-auto">12<span class="sr-only"> items available</span></span> 489 </a> 490 <a 491 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 492 data-event-on:category_pinned="(category) => { 493 const isCurrent = category.id === '158719'; 494 $(this).toggleClass('active', isCurrent); 495 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 496 }" 497 href="https://www.sushilovervinelandnj.com/order/main/ramen" 498 aria-current="false" 499 onclick="if (!event.ctrlKey) { 500 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 501 if (currentMenuIsActive) { 502 app.event.emit('category_selected', { id: '158719' }); 503 } else { 504 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '158719' }); 505 } 506 }" 507 > 508 Ramen<span class="sr-only"> menu category</span> 509 <span class="ms-auto">5<span class="sr-only"> items available</span></span> 510 </a> 511 <a 512 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 513 data-event-on:category_pinned="(category) => { 514 const isCurrent = category.id === '118270'; 515 $(this).toggleClass('active', isCurrent); 516 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 517 }" 518 href="https://www.sushilovervinelandnj.com/order/main/party" 519 aria-current="false" 520 onclick="if (!event.ctrlKey) { 521 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 522 if (currentMenuIsActive) { 523 app.event.emit('category_selected', { id: '118270' }); 524 } else { 525 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118270' }); 526 } 527 }" 528 > 529 Party<span class="sr-only"> menu category</span> 530 <span class="ms-auto">3<span class="sr-only"> items available</span></span> 531 </a> 532 <a 533 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 534 data-event-on:category_pinned="(category) => { 535 const isCurrent = category.id === '222859'; 536 $(this).toggleClass('active', isCurrent); 537 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 538 }" 539 href="https://www.sushilovervinelandnj.com/order/main/japanese-fried-rice" 540 aria-current="false" 541 onclick="if (!event.ctrlKey) { 542 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 543 if (currentMenuIsActive) { 544 app.event.emit('category_selected', { id: '222859' }); 545 } else { 546 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional
546items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '222859' }); 547 } 548 }" 549 > 550 Japanese Fried Rice<span class="sr-only"> menu category</span> 551 <span class="ms-auto">7<span class="sr-only"> items available</span></span> 552 </a> 553 <a 554 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 555 data-event-on:category_pinned="(category) => { 556 const isCurrent = category.id === '118261'; 557 $(this).toggleClass('active', isCurrent); 558 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 559 }" 560 href="https://www.sushilovervinelandnj.com/order/main/hibachi-dinners" 561 aria-current="false" 562 onclick="if (!event.ctrlKey) { 563 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 564 if (currentMenuIsActive) { 565 app.event.emit('category_selected', { id: '118261' }); 566 } else { 567 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118261' }); 568 } 569 }" 570 > 571 Hibachi Dinners<span class="sr-only"> menu category</span> 572 <span class="ms-auto">6<span class="sr-only"> items available</span></span> 573 </a> 574 <a 575 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 576 data-event-on:category_pinned="(category) => { 577 const isCurrent = category.id === '118260'; 578 $(this).toggleClass('active', isCurrent); 579 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 580 }" 581 href="https://www.sushilovervinelandnj.com/order/main/combination-dinners" 582 aria-current="false" 583 onclick="if (!event.ctrlKey) { 584 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 585 if (currentMenuIsActive) { 586 app.event.emit('category_selected', { id: '118260' }); 587 } else { 588 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118260' }); 589 } 590 }" 591 > 592 Combination Dinners<span class="sr-only"> menu category</span> 593 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 594 </a> 595 <a 596 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 597 data-event-on:category_pinned="(category) => { 598 const isCurrent = category.id === '118267'; 599 $(this).toggleClass('active', isCurrent); 600 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 601 }" 602 href="https://www.sushilovervinelandnj.com/order/main/sushi-lover-lunch-box" 603 aria-current="false" 604 onclick="if (!event.ctrlKey) { 605 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 606 if (currentMenuIsActive) { 607 app.event.emit('category_selected', { id: '118267' }); 608 } else { 609 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118267' }); 610 } 611 }" 612 > 613 Sushi Lover Lunch Box<span class="sr-only"> menu category</span> 614 <span class="ms-auto">9<span class="sr-only"> items available</span></span> 615 </a> 616 <a 617 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 618 data-event-on:category_pinned="(category) => { 619 const isCurrent = category.id === '118268'; 620 $(this).toggleClass('active', isCurrent); 621 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 622 }" 623 href="https://www.sushilovervinelandnj.com/order/main/hibachi-lunch" 624 aria-current="false" 625 onclick="if (!event.ctrlKey) { 626 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 627 if (currentMenuIsActive) { 628 app.event.emit('category_selected', { id: '118268' }); 629 } else { 630 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118268' }); 631 } 632 }" 633 > 634 Hibachi Lunch<span class="sr-only"> menu category</span> 635 <span class="ms-auto">6<span class="sr-only"> items available</span></span> 636 </a> 637 <a 638 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 639 data-event-on:category_pinned="(category) => { 640 const isCurrent = category.id === '118269'; 641 $(this).toggleClass('active', isCurrent); 642 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 643 }" 644 href="https://www.sushilovervinelandnj.com/order/main/lunch-from-the-sushi-bar" 645 aria-current="false" 646 onclick="if (!event.ctrlKey) { 647 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 648 if (currentMenuIsActive) { 649 app.event.emit('category_selected', { id: '118269' }); 650 } else { 651 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118269' }); 652 } 653 }" 654 > 655 Lunch From The Sushi Bar<span class="sr-only"> menu category</span> 656 <span class="ms-auto">3<span class="sr-only"> items available</span></span> 657 </a> 658 <a 659 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 660 data-event-on:category_pinned="(category) => { 661 const isCurrent = category.id === '222862'; 662 $(this).toggleClass('active', isCurrent); 663 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 664 }" 665 href="https://www.sushilovervinelandnj.com/order/main/sushi-rolls-lunch" 666 aria-current="false" 667 onclick="if (!event.ctrlKey) { 668 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 669 if (currentMenuIsActive) { 670 app.event.emit('category_selected', { id: '222862' }); 671 } else { 672 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '222862' }); 673 } 674 }" 675 > 676 Sushi Rolls Lunch<span class="sr-only"> menu category</span> 677 <span class="ms-auto">2<span class="sr-only"> items available</span></span> 678 </a> 679 <a 680 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 681 data-event-on:category_pinned="(category) => { 682 const isCurrent = category.id === '118271'; 683 $(this).toggleClass('active', isCurrent); 684 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 685 }" 686 href="https://www.sushilovervinelandnj.com/order/main/others" 687 aria-current="false" 688 onclick="if (!event.ctrlKey) { 689 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 690 if (currentMenuIsActive) { 691 app.event.emit('category_selected', { id: '118271' }); 692 } else { 693 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118271' }); 694 } 695 }" 696 > 697 Others<span class="sr-only"> menu category</span> 698 <span class="ms-auto">4<span class="sr-only"> items available</span></span> 699 </a> 700 <a 701 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 702 data-event-on:category_pinned="(category) => { 703 const isCurrent = category.id === '118273'; 704 $(this).toggleClass('active', isCurrent); 705 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 706 }" 707 href="https://www.sushilovervinelandnj.com/order/main/drinks" 708 aria-current="false" 709 onclick="if (!event.ctrlKey) { 710 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 711 if (currentMenuIsActive) { 712 app.event.emit('category_selected', { id: '118273' }); 713 } else { 714 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118273' }); 715 } 716 }" 717 > 718 Drinks<span class="sr-only"> menu category</span> 719 <span class="ms-auto">10<span class="sr-only"> items available</span></span> 720 </a> 721 <a 722 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 723 data-event-on:category_pinned="(category) => { 724 const isCurrent = category.id === '118272'; 725 $(this).toggleClass('active', isCurrent); 726 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 727 }" 728 href="https://www.sushilovervinelandnj.com/order/main/desserts" 729 aria-current="false" 730 onclick="if (!event.ctrlKey) { 731 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 732 if (currentMenuIsActive) { 733 app.event.emit('category_selected', { id: '118272' }); 734 } else { 735 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '118272' }); 736 } 737 }" 738 > 739 Desserts<span class="sr-only"> menu category</span> 740 <span class="ms-auto">3<span class="sr-only"> items available</span></span> 741 </a> 742 <a 743 class="eds_list-item eds-copy-text-l-regular list-unstyled rounded-3 mb-1 px-3 px-lg-4 py-2p5 d-flex " 744 data-event-on:category_pinned="(category) => { 745 const isCurrent = category.id === '256233'; 746 $(this).toggleClass('active', isCurrent); 747 this.setAttribute('aria-current', isCurrent ? 'page' : 'false'); 748 }" 749 href="https://www.sushilovervinelandnj.com/order/main/gift-card" 750 aria-current="false" 751 onclick="if (!event.ctrlKey) { 752 const currentMenuIsActive = true || $(this).closest('details').find('summary').hasClass('active'); 753 if (currentMenuIsActive) { 754 app.event.emit('category_selected', { id: '256233' }); 755 } else { 756 app.event.emit('menu_selected', { menu_id: '9719', menu_description: "Please note: requests for additional items or special preparation may incur an <b>extra charge<\/b> not calculated on your online order.", category_id: '256233' }); 757 } 758 }" 759 > 760 Gift Card<span class="sr-only"> menu category</span> 761 <span class="ms-auto">2<span class="sr-only"> items available</span></span> 762 </a> 763 </details> 764 765 </div> 766 767 768 <div class="restaurant-info border-top border-light p-3 position-absolute bottom-0 left-0 w-100"> 769 <h2 class="eds-display-text-title-xs mb-0 me-2 pe-4"><span class="sr-only">Location: You're currently ordering from </span>Sushi Lover - Vineland</h2> 770 771 <address class="eds-copy-text-s-regular mb-0"> 772 3849 S Delsea Dr #0012 Cumberland Mall Vineland, NJ 08360 </address> 773 </div> 774 775 <div class="eds-copy-text-s-regular p-3 d-lg-none"> 776 <h2 class="eds-display-text-title-m m-0 pb-3">Additional info</h2> 777 <ul class="list-unstyled" aria-label="App store links"> 778 <li><a href="https://play.google.com/store/apps/details?id=com.chinesemenuonline.sushilovervineland"><span class="sr-only">Download from the Google Play Store</span><img src="/web/default4.0/images/google-play-badge.svg" alt="" aria-hidden="true"></a></li> 779 </ul> 780 781 <ul class="list-unstyled d-flex gap-2" aria-label="Social network links"> 782 <li><a href="https://www.yelp.com/biz/sushi-lover-vineland" target="new" title="Opens in new tab" class="icon" title="Yelp"><i class="fab fa-yelp"></i><span class="sr-only">Yelp</span></a></li> 783 <li><a href="https://www.tripadvisor.com/Restaurant_Review-g46890-d7254231-Reviews-Sushi_Lover-Vineland_New_Jersey.html" target="new" title="Opens in new tab" class="icon" title="TripAdvisor"><i class="fak fa-tripadvisor"></i><span class="sr-only">TripAdvisor</span></a></li> 784 </ul> 785 786<div>© 2026 Online Ordering by <a href="http://chinesemenuonline.com">Chinese Menu Online</a></div> 787 <div>Discover the best Japanese restaurants with <a href="https://www.springroll.com" target="_blank" title="Opens in new tab" >Springroll</a></div> 788 789<ul class="list-unstyled mb-0 pt-3" aria-label="Legal and support"> 790 <li><a href="https://www.sushilovervinelandnj.com/reportbug">Technical Support</a></li> 791 <li><a href="https://www.sushilovervinelandnj.com/privacy">Privacy Policy</a></li> 792 <li><a href="https://www.sushilovervinelandnj.com/tos">Terms of Service</a></li> 793 <li><a href="https://www.sushilovervinelandnj.com/accessibility">Accessibility</a></li> 794</ul> 795
796This site is protected by reCAPTCHA and <a href="https://policies.google.com/privacy">Google's Privacy Policy</a> and <a href="https://policies.google.com/terms">Google's Terms of Service</a> apply. 797 </div> </div> 798 799
799<script> 800 { 801 const container = document.querySelector('[data-eds-id="6ab5396d8b16b"]'); 802 803 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 804 container.addEventListener(`eds.${eventName}`, (e) => { 805 bootstrap.Offcanvas.getOrCreateInstance(container)[eventName]( 806 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 807 ); 808 }); 809 }); 810 } 811 </script>
811 812 </div> 813 814 </header> 815 </div> 816 817 <aside class="container p-0" style="grid-area: hero" aria-labelledby="hero-section-title"> 818 <section class="hero"> 819 <div class="menu_hero backbgbox position-relative"> 820 <div class="logo"> 821 <a class="logo-image" href="https://www.sushilovervinelandnj.com" aria-current="false" > 822 <img 823 src="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public" 824 srcset="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public 1x, https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public 2x" alt="Go to Home" 825 onerror="this.closest('.logo').style.setProperty('display', 'none', 'important')" 826 /> 827 </a> 828 </div> 829 </div> 830 831 <div class="p-3"> 832 <div class="pb-1"> 833 <h1 id="hero-section-title" class="eds-display-text-title-s m-0 p-0">Sushi Lover - Vineland</h1> 834 </div> 835 836 <div class="d-sm-flex align-items-baseline"> 837 <div class="mt-2"> 838 839 <span 840 class="eds_label eds_label--variant-error eds-interface-text-m-bold me-1 text-nowrap" 841 > 842 Closed </span> 843 844 Opens at 11:00AM </div> 845 846 <div class="d-flex gap-2 ms-sm-auto mt-2"> 847 848 <a 849 class="eds_button btn btn-outline-secondary btn-sm col text-nowrap" 850 href="https://www.sushilovervinelandnj.com/locationinfo?lid=7616" 851 > 852 <i class="eds_icon fa fa-info-circle" style="" aria-hidden="true"></i> Store info </a> 853 854 855 856 <a 857 class="eds_button btn btn-outline-secondary btn-sm col d-lg-none text-nowrap" 858 href="tel:(856) 825-0888" 859 > 860 <i class="eds_icon fa fa-phone" style="" aria-hidden="true"></i> Call us </a> 861 862 863 </div> 864 </div> 865 </div> 866 </section> 867 </aside> 868 869 870 871 <div class="container" style="grid-area: messages"> 872 </div> 873 <!-- Header ends --> 874 875<main class="main_content" id="main"> 876 <div class="container menu_page locationinfo"> 877 <div class="row menu_wrapper"> 878 <div class="col-md-12"> 879 <h1 class="eds-display-text-title-m">Location and Hours</h1> 880 881 <style> 882 .location-info-box.image-failed .location-info-logo { display: none !important; } 883 .location-info-box.image-failed .location-info-map { display: block !important; } 884 .location-info-box.image-failed .location-info-map .account_logo, 885 .location-info-box.image-failed .location-info-map .restaurant_img, 886 .location-info-box.image-failed .location-info-map img { display: none !important; } 887 </style> 888 <div class="location-info-boxes"> 889 <div class="location-info-box"> 890 <div class="location-info-image location-info-logo hidden-sm-down"> 891 <div class="account_logo" role="presentation"><img src="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public" alt="Sushi Lover - Vineland Logo" onerror="this.closest('.location-info-box').classList.add('image-failed')" /></div> </div> 892 893 <a 894 class="location-info-image location-info-map hidden-md-up" 895 style="background-image: url('https://maps.googleapis.com/maps/api/staticmap?key=AIzaSyBmllVcXZm3D1OIEXKJ5RA39qYpXx_jWvw¢er=39.4324115%2C-75.0387771&zoom=15&size=740x178&scale=2&language=en&markers=anchor%3Acenter%7C39.4324115%2C-75.0387771&signature=UvedBkLp_VZBS3kSFv2X4Cm_Qek='); background-position: center; background-size: cover" 896 target="_blank" 897 title="Sushi Lover - Vineland" 898 href="https://www.google.com/maps/search/Sushi+Lover+-+Vineland/@39.432412,-75.038777,20z" 899 > 900 <div class="account_logo" role="presentation"><img src="https://imagedelivery.net/9lr8zq_Jvl7h6OFWqEi9IA/d8011838-d164-4458-abe7-18345c27be00/public" alt="Sushi Lover - Vineland Logo" onerror="this.closest('.location-info-box').classList.add('image-failed')" /></div> </a> 901 902 <div class="location-info-box-header"> 903 <h2>Sushi Lover - Vineland</h2> 904 905 <span> 906 3849 S Delsea Dr #0012<br/>Cumberland Mall<br/>Vineland, NJ 08360 <span class="hidden-sm-down">(<a href="?form=map&lid=7616">see on map</a>)</span> 907 <span class="hidden-md-up">(<a href="https://www.google.com/maps/search/Sushi+Lover+-+Vineland/@39.432412,-75.038777,20z">see on map</a>)</span> 908 </span> 909 910 <span>Phone: (856) 825-0888</span> 911 912 <div class="todays-hours"> 913 <h3>Today's Hours (Thursday, September 24th)</h3> 914 915 <span class="hours"> 916 <span> <strong>11:00 AM - 8:30 PM</strong> 917 </span> 918 </span> 919 920 921 <a href="#" role="button" class="btn btn-sm btn-outline-secondary" data-bs-toggle="modal" data-bs-target="#locationModal-7616">View All Hours</a> 922 923 <span class="current_time">Current local time: 10:53 AM Eastern Time</span> 924 </div> 925 926 <div class="card_com"> 927 <ul> 928 <li><img src="/web/default4.0/images/creditcards/visa.svg" alt="We accept VISA" title="We accept VISA" /></li> 929 <li><img src="/web/default4.0/images/creditcards/mc.svg" alt="We accept MasterCard" title="We accept MasterCard" /></li> 930 <li><img src="/web/default4.0/images/creditcards/amex.svg" alt="We accept American Express" title="We accept American Express" /></li> 931 <li><img src="/web/default4.0/images/creditcards/disc.svg" alt="We accept Discover/Novus" title="We accept Discover/Novus" /></li> 932 <li><img src="/web/default4.0/images/creditcards/cash.svg" alt="We accept Cash" title="We accept Cash" /></li> 933 </ul> 934 </div> 935 936 <div class="modal fade location_modal" id="locationModal-7616" tabindex="-1" role="dialog" aria-labelledby="locationModalTitle-7616" aria-hidden="true"> 937 <div class="modal-dialog modal-dialog-centered" role="document"> 938 <div class="modal-content"> 939 <button class="close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 940 <div class="modal-header"> 941 <h5 class="modal-title" id="locationModalTitle-7616">Hours</h5> 942 </div> 943 <div class="modal-body"> 944 <table class="section"> 945 <tr class="row-day "> 946 <td class="label-day">Monday</td> 947 <td class="day-hours"> 948 <strong>11:00 AM - 8:30 PM</strong> 949 </td> 950 </tr> 951 <tr class="row-day "> 952 <td class="label-day">Tuesday</td> 953 <td class="day-hours"> 954 <strong>11:00 AM - 8:30 PM</strong> 955 </td> 956 </tr> 957 <tr class="row-day "> 958 <td class="label-day">Wednesday</td> 959 <td class="day-hours"> 960 <strong>11:00 AM - 8:30 PM</strong> 961 </td> 962 </tr> 963 <tr class="row-day active"> 964 <td class="label-day">Thursday</td> 965 <td class="day-hours"> 966 <strong>11:00 AM - 8:30 PM</strong> 967 </td> 968 </tr> 969 <tr class="row-day "> 970 <td class="label-day">Friday</td> 971 <td class="day-hours"> 972 <strong>11:00 AM - 9:45 PM</strong> 973 </td> 974 </tr> 975 <tr class="row-day "> 976 <td class="label-day">Saturday</td> 977 <td class="day-hours"> 978 <strong>11:00 AM - 8:30 PM</strong> 979 </td> 980 </tr> 981 <tr class="row-day "> 982 <td class="label-day">Sunday</td> 983 <td class="day-hours"> 984 <strong>12:00 PM - 8:30 PM</strong> 985 </td> 986 </tr> 987 </table> 988 </div> 989 </div> 990 </div> 991 </div> 992 </div> 993 994 <div class="location-info-box-footer"> 995 <a href="?form=ordering&lid=7616" class="btn btn-primary w-100" role="button"> 996 Order from here </a> 997 </div> 998 </div> 999 </div> 1000 </div> 1001 </div> 1002 </div> 1003</main> 1004 1005<footer class="footer bg-white" style="grid-area: footer"> 1006 <div class="container"> 1007 <div class="social_wrapper"> 1008 <div class="social_links"> 1009 <ul class="d-flex align-items-start"> 1010 <li> 1011 <a class="icon" href="https://www.yelp.com/biz/sushi-lover-vineland" target="_blank" title="Yelp (opens in new tab)"> 1012 <span class="sr-only">Yelp</span> 1013 <i class="eds_icon fab fa-yelp" style="" aria-hidden="true"></i> </a> 1014 </li> 1015 <li> 1016 <a class="icon" href="https://www.tripadvisor.com/Restaurant_Review-g46890-d7254231-Reviews-Sushi_Lover-Vineland_New_Jersey.html" target="_blank" title="TripAdvisor (opens in new tab)"> 1017 <span class="sr-only">TripAdvisor</span> 1018 <img class="eds_icon fab fa-tripadvisor" style="" aria-hidden="true" src="/web/website/assets/svg/icons/social/tripadvisor.svg" alt="Tripadvisor" /> </a> 1019 </li> 1020 </ul> 1021 </div> 1022 <div class="d_app"> 1023 <ul> 1024 <li><a href="https://play.google.com/store/apps/details?id=com.chinesemenuonline.sushilovervineland"><span class="sr-only">Download from the Google Play Store</span><img src="/web/default4.0/images/google-play-badge.svg" alt="Get it on Google Play" aria-hidden="true"></a></li> 1025 </ul> 1026 </div> 1027 </div> 1028 1029 <div class="d-flex flex-wrap justify-content-between gap-2 mt-2" style="--bs-link-color: var(--bs-body-color); --bs-link-hover-color: var(--bs-gray-dark)"> 1030 <ul class="list-unstyled d-flex gap-3 mb-0 eds-interface-text-l-regular"> 1031 <li><a class="text-decoration-none" href="https://www.sushilovervinelandnj.com" aria-current="false">Home</a></li> 1032 <li><a class="text-decoration-none" href="https://www.sushilovervinelandnj.com/order/main" aria-current="false">Menu</a></li> 1033 <li><a class="text-decoration-none" href="https://www.sushilovervinelandnj.com/locationinfo" aria-current="page">Location & Hours</a></li> 1034 <li><a class="text-decoration-none" href="https://www.sushilovervinelandnj.com/contact" aria-current="false">Contact</a></li> 1035 </ul> 1036 1037 <ul class="list-unstyled d-flex mb-0 eds-interface-text-m-regular"> 1038 <li class="bullet-separated"><a href="https://www.sushilovervinelandnj.com/reportbug" class="errorLink">Technical Support</a></li> 1039 <li class="bullet-separated"><a href="https://www.sushilovervinelandnj.com/privacy">Privacy Policy</a></li> 1040 <li class="bullet-separated"><a href="https://www.sushilovervinelandnj.com/tos">Terms of Service</a></li> 1041 <li class="bullet-separated"><a href="https://www.sushilovervinelandnj.com/accessibility">Accessibility</a></li> 1042 </ul> 1043 </div> 1044 1045 <div class="d-flex justify-content-between gap-3 border-top mt-3 pt-3" style="--bs-link-color: var(--bs-body-color); --bs-link-hover-color: var(--bs-gray-dark)"> 1046 <p class="eds-copy-text-m-regular"> 1047 This site is protected by reCAPTCHA and <a href="https://policies.google.com/privacy">Google's Privacy Policy</a> and <a href="https://policies.google.com/terms">Google's Terms of Service</a> apply. 1048 </p> 1049 1050 <p class="eds-copy-text-m-regular text-end"> 1051 © 2026 Online Ordering by <a href="http://chinesemenuonline.com">Chinese Menu Online</a> <br>Discover the best Japanese restaurants with <a href="https://www.springroll.com" target="_blank" title="Opens in new tab" >Springroll</a> </p> 1052 </div> 1053 </div> 1054</footer> 1055<!-- footer ends --> 1056 1057 1058</div> 1059<!-- wrapper ends --> 1060 1061 1062 1063 <div 1064 data-eds-id="6ab5396d8d034" 1065 class="eds_dialog modal fade " 1066 tabindex="-1" 1067 aria-labelledby="eds-dialog-title-6ab5396d8d034" 1068 aria-hidden="true" 1069 id="forgot-password-modal" >
1070 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 1071 <div class="modal-content "> 1072 1073 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 1074 <h2 id="eds-dialog-title-6ab5396d8d034" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 1075 Forgot Password </h2> 1076 1077 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 1078 1079 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular "> 1080 <form 1081 id="forgot-password-form" 1082 name="forgot-password" 1083 data-async-on-submit 1084 method="post" 1085 action="https://www.sushilovervinelandnj.com/auth/forgotpassword" 1086 data-async-block="#forgot-password-modal .modal-content" 1087 data-async-target="#forgot-password-modal .eds_dialog-body" 1088 data-async-recaptcha 1089 novalidate 1090 > 1091 1092 1093 <label 1094 data-eds-id="6ab5396d8cff1" 1095 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 1096 > 1097 <div class="eds_formfield-label"> 1098 Your email <span aria-hidden="true">*</span> </div> 1099 1100 <div class="position-relative d-flex flex-column"> 1101 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1102 1103 <input 1104 type="email" 1105 class="eds-copy-text-l-regular " 1106 placeholder=" " name="email" autocomplete="email" required value="" /> 1107 1108 1109 1110 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1111 </div> 1112 1113 1114
1114<script> 1115 { 1116 const container = document.querySelector('[data-eds-id="6ab5396d8cff1"]'); 1117 const input = container.querySelector('input, textarea, select'); 1118 const error = container.querySelector('.eds_formfield-error'); 1119 1120 1121 input.addEventListener('eds.validation.reset', () => { 1122 input.removeAttribute('data-validation'); 1123 input.setCustomValidity(''); 1124 error.innerHTML = ''; 1125 }); 1126 1127 input.addEventListener('eds.validation.hide', () => { 1128 input.removeAttribute('data-validation'); 1129 }); 1130 1131 input.addEventListener('eds.validation.success', (e) => { 1132 input.setCustomValidity(''); 1133 input.setAttribute('data-validation', ''); 1134 error.innerHTML = ''; 1135 }); 1136 1137 input.addEventListener('eds.validation.warning', (e) => { 1138 input.setCustomValidity(''); 1139 input.setAttribute('data-validation', ''); 1140 error.innerHTML = e.detail; 1141 }); 1142 1143 input.addEventListener('eds.validation.error', (e) => { 1144 input.setCustomValidity(e.detail); 1145 input.checkValidity(); input.setAttribute('data-validation', ''); 1146 }); 1147 1148 input.addEventListener('invalid', (e) => { 1149 error.innerHTML = input.validationMessage; 1150 }); 1151 1152 } 1153 </script>
1153 1154 </label> 1155 1156 1157 <button class="eds_button btn btn-primary w-100 mb-3" type="submit" form="forgot-password-form">Reset password</button> 1158 <div class="text-center"> 1159 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#login-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">< Back</button> </div> 1160 </form> </div> 1161 1162 1163 </div> 1164 </div> 1165 1166
1166<script> 1167 { 1168 const container = document.querySelector('[data-eds-id="6ab5396d8d034"]'); 1169 let edsMethodsDisabled = false; 1170 1171 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 1172 container.addEventListener(`eds.${eventName}`, (e) => { 1173 if (edsMethodsDisabled) return; 1174 1175 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 1176 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 1177 ); 1178 }); 1179 }); 1180 1181 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 1182 container.addEventListener(`${eventName}.bs.modal`, (e) => { 1183 if (edsMethodsDisabled) return; 1184 1185 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 1186 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 1187 edsMethodsDisabled = false; 1188 }); 1189 }); 1190 1191 1192 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 1193 container.addEventListener(eventName, () => { 1194 const autofocusInput = container.querySelector('[autofocus]'); 1195 if (autofocusInput) { 1196 container.style.display = 'block'; 1197 autofocusInput.focus(); 1198 } 1199 }); 1200 }); 1201 1202 } 1203 </script>
1203 1204 </div> 1205 1206 1207 <div 1208 data-eds-id="6ab5396d8d268" 1209 class="eds_dialog modal fade " 1210 tabindex="-1" 1211 aria-labelledby="eds-dialog-title-6ab5396d8d268" 1212 aria-hidden="true" 1213 id="login-modal" > 1214 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 1215 <div class="modal-content "> 1216 1217 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 1218 <h2 id="eds-dialog-title-6ab5396d8d268" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 1219 Log in </h2> 1220 1221 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 1222 1223 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular "> 1224 <form 1225 id="login-form" 1226 name="login" 1227 data-async-on-submit 1228 method="post" 1229 action="https://www.sushilovervinelandnj.com/auth" 1230 data-async-block="#login-modal .modal-content" 1231 data-async-target="#login-modal .eds_dialog-body" 1232 data-async-then="document.querySelector('#login-modal').dispatchEvent(new CustomEvent('eds.hide'))" 1233 data-async-recaptcha 1234 novalidate 1235 > 1236 1237 1238 <label 1239 data-eds-id="6ab5396d8d16e" 1240 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 1241 > 1242 <div class="eds_formfield-label"> 1243 Your email <span aria-hidden="true">*</span> </div> 1244 1245 <div class="position-relative d-flex flex-column"> 1246 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1247 1248 <input 1249 type="email" 1250 class="eds-copy-text-l-regular " 1251 placeholder=" " name="email" autocomplete="username" required value="" /> 1252 1253 1254 1255 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1256 </div> 1257 1258 1259
1259<script> 1260 { 1261 const container = document.querySelector('[data-eds-id="6ab5396d8d16e"]'); 1262 const input = container.querySelector('input, textarea, select'); 1263 const error = container.querySelector('.eds_formfield-error'); 1264 1265 1266 input.addEventListener('eds.validation.reset', () => { 1267 input.removeAttribute('data-validation'); 1268 input.setCustomValidity(''); 1269 error.innerHTML = ''; 1270 }); 1271 1272 input.addEventListener('eds.validation.hide', () => { 1273 input.removeAttribute('data-validation'); 1274 }); 1275 1276 input.addEventListener('eds.validation.success', (e) => { 1277 input.setCustomValidity(''); 1278 input.setAttribute('data-validation', ''); 1279 error.innerHTML = ''; 1280 }); 1281 1282 input.addEventListener('eds.validation.warning', (e) => { 1283 input.setCustomValidity(''); 1284 input.setAttribute('data-validation', ''); 1285 error.innerHTML = e.detail; 1286 }); 1287 1288 input.addEventListener('eds.validation.error', (e) => { 1289 input.setCustomValidity(e.detail); 1290 input.checkValidity(); input.setAttribute('data-validation', ''); 1291 }); 1292 1293 input.addEventListener('invalid', (e) => { 1294 error.innerHTML = input.validationMessage; 1295 }); 1296 1297 } 1298 </script>
1298 1299 </label> 1300 1301 1302 1303 <label 1304 data-eds-id="6ab5396d8d189" 1305 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2" 1306 > 1307 <div class="eds_formfield-label"> 1308 Your password <span aria-hidden="true">*</span> </div> 1309 1310 <div class="position-relative d-flex flex-column"> 1311 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1312 1313 <input 1314 type="password" 1315 class="eds-copy-text-l-regular pe-6" 1316 data-event-on:toggle_password_6ab5396d8d189="(shown) => $(this).attr('type', shown ? 'text' : 'password')" placeholder=" " name="password" autocomplete="current-password" required value="" /> 1317 1318 1319 <button class="eds_button btn btn-outline eds_formfield-toggle_password position-absolute end-0 px-2" style="--bs-btn-bg: transparent" title="Show password" aria-label="Show password" onclick="app.event.emit('toggle_password_6ab5396d8d189', !$(this).data('password-shown'))" data-event-on:toggle_password_6ab5396d8d189="(shown) => $(this).data('password-shown', shown).attr('title', shown ? 'Hide password' : 'Show password').attr('aria-label', shown ? 'Hide password' : 'Show password')" type="button"><i class="eds_icon fas fa-sm fa-eye" style="" aria-hidden="true" data-event-on:toggle_password_6ab5396d8d189="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6ab5396d8d189="(shown) => this.hidden = !shown" hidden></i></button> 1320 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1321 </div> 1322 1323 1324
1324<script> 1325 { 1326 const container = document.querySelector('[data-eds-id="6ab5396d8d189"]'); 1327 const input = container.querySelector('input, textarea, select'); 1328 const error = container.querySelector('.eds_formfield-error'); 1329 1330 1331 input.addEventListener('eds.validation.reset', () => { 1332 input.removeAttribute('data-validation'); 1333 input.setCustomValidity(''); 1334 error.innerHTML = ''; 1335 }); 1336 1337 input.addEventListener('eds.validation.hide', () => { 1338 input.removeAttribute('data-validation'); 1339 }); 1340 1341 input.addEventListener('eds.validation.success', (e) => { 1342 input.setCustomValidity(''); 1343 input.setAttribute('data-validation', ''); 1344 error.innerHTML = ''; 1345 }); 1346 1347 input.addEventListener('eds.validation.warning', (e) => { 1348 input.setCustomValidity(''); 1349 input.setAttribute('data-validation', ''); 1350 error.innerHTML = e.detail; 1351 }); 1352 1353 input.addEventListener('eds.validation.error', (e) => { 1354 input.setCustomValidity(e.detail); 1355 input.checkValidity(); input.setAttribute('data-validation', ''); 1356 }); 1357 1358 input.addEventListener('invalid', (e) => { 1359 error.innerHTML = input.validationMessage; 1360 }); 1361 1362 } 1363 </script>
1363 1364 </label> 1365 1366 1367 <div class="text-end mb-3"> 1368 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#forgot-password-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Forgot your password?</button> </div> 1369 1370 1371 <button class="eds_button btn btn-primary w-100 mb-3" type="submit">Log in</button> 1372 <div class="d-flex align-items-center mb-3"><hr class="flex-grow-1"><span class="mx-3 text-muted eds-interface-text-s-regular">OR</span><hr class="flex-grow-1"></div> <div class="google-signin-container text-center mb-2"> 1373 <a href="https://sso.onlineorderingsecure.com/auth/google/redirect?return_to=https%3A%2F%2Fwww.sushilovervinelandnj.com%2Fauth%2Fgoogle&redirect=%2Flocationinfo" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1374 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" fill="#4285F4"/><path d="M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18Z" fill="#34A853"/><path d="M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.997 8.997 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332Z" fill="#FBBC05"/><path d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 6.29C4.672 4.163 6.656 2.58 9 2.58Z" fill="#EA4335"/></svg> 1375 Continue with Google 1376 </a> 1377 </div> 1378 <div class="apple-signin-container text-center mb-2"> 1379 <a href="https://sso.onlineorderingsecure.com/auth/apple/redirect?return_to=https%3A%2F%2Fwww.sushilovervinelandnj.com%2Fauth%2Fapple&redirect=%2Flocationinfo" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1380 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M15.1 6.2c-.1.1-2.1 1.2-2.1 3.7 0 2.9 2.5 3.9 2.6 3.9 0 0 0 .1-.4 1.3-.6 1.5-1.7 3-2.9 3-1.3 0-1.6-.7-3.1-.7s-2 .8-3.1.8c-1.2 0-2.2-1.3-3-2.8C2 13.3 1.4 10.9 1.4 8.6c0-3.7 2.4-5.6 4.7-5.6 1.2 0 2.3.8 3 .8.7 0 1.9-.9 3.3-.9.5 0 2.4.1 3.7 1.3zM11.7 1.5c.6-.7 1-1.7 1-2.7 0-.1 0-.3 0-.4-1 0-2.1.6-2.8 1.4-.6.6-1.1 1.6-1.1 2.6 0 .2 0 .3 0 .4.1 0 .2 0 .3 0 .9 0 1.9-.6 2.6-1.3z" fill="currentColor"/></svg> 1381 Continue with Apple 1382 </a> 1383 </div> 1384 <small class="d-block mt-2 eds-interface-text-s-regular"> 1385 By continuing, you agree to our <a href="https://www.sushilovervinelandnj.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.sushilovervinelandnj.com/privacy" target="_blank" rel="noopener" title="Opens in new tab">Privacy Policy</a> and consent to receive automated promotional emails. See our <a href="https://www.sushilovervinelandnj.com/privacy#section-7-7" target="_blank" rel="noopener" title="Opens in new tab">Notice of Financial Incentive</a> regarding how we use your data for rewards and offers. 1386 </small> 1387 1388 <div class="text-center mt-3"> 1389 Don't have an account? 1390 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#register-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Sign up</button> </div> 1391 </form> </div> 1392 1393 1394 </div> 1395 </div> 1396 1397
1397<script> 1398 { 1399 const container = document.querySelector('[data-eds-id="6ab5396d8d268"]'); 1400 let edsMethodsDisabled = false; 1401 1402 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 1403 container.addEventListener(`eds.${eventName}`, (e) => { 1404 if (edsMethodsDisabled) return; 1405 1406 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 1407 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 1408 ); 1409 }); 1410 }); 1411 1412 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 1413 container.addEventListener(`${eventName}.bs.modal`, (e) => { 1414 if (edsMethodsDisabled) return; 1415 1416 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 1417 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 1418 edsMethodsDisabled = false; 1419 }); 1420 }); 1421 1422 1423 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 1424 container.addEventListener(eventName, () => { 1425 const autofocusInput = container.querySelector('[autofocus]'); 1426 if (autofocusInput) { 1427 container.style.display = 'block'; 1428 autofocusInput.focus(); 1429 } 1430 }); 1431 }); 1432 1433 } 1434 </script>
1434 1435 </div> 1436 1437 1438 <div 1439 data-eds-id="6ab5396d8d51e" 1440 class="eds_dialog modal fade " 1441 tabindex="-1" 1442 aria-labelledby="eds-dialog-title-6ab5396d8d51e" 1443 aria-hidden="true" 1444 id="register-modal" > 1445 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down modal-md"> 1446 <div class="modal-content "> 1447 1448 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 1449 <h2 id="eds-dialog-title-6ab5396d8d51e" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 1450 Sign up </h2> 1451 1452 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border d-sm-none" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 1453 1454 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular p-0"> 1455 <form 1456 id="register-form" 1457 name="register" 1458 data-async-on-submit 1459 method="post" 1460 action="https://www.sushilovervinelandnj.com/auth/register" 1461 data-async-block="#register-modal .modal-content" 1462 data-async-target="#register-modal .eds_dialog-body" 1463 data-async-then="document.querySelector('#register-modal').dispatchEvent(new CustomEvent('eds.hide'))" 1464 data-async-recaptcha 1465 novalidate 1466 > 1467 1468 <div class="p-3 pt-0"> 1469 1470 <label 1471 data-eds-id="6ab5396d8d401" 1472 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1473 > 1474 <div class="eds_formfield-label"> 1475 First name <span aria-hidden="true">*</span> </div> 1476 1477 <div class="position-relative d-flex flex-column"> 1478 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1479 1480 <input 1481 type="text" 1482 class="eds-copy-text-l-regular " 1483 placeholder=" " name="firstname" autocomplete="given-name" required value="" /> 1484 1485 1486 1487 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1488 </div> 1489 1490 1491
1491<script> 1492 { 1493 const container = document.querySelector('[data-eds-id="6ab5396d8d401"]'); 1494 const input = container.querySelector('input, textarea, select'); 1495 const error = container.querySelector('.eds_formfield-error'); 1496 1497 1498 input.addEventListener('eds.validation.reset', () => { 1499 input.removeAttribute('data-validation'); 1500 input.setCustomValidity(''); 1501 error.innerHTML = ''; 1502 }); 1503 1504 input.addEventListener('eds.validation.hide', () => { 1505 input.removeAttribute('data-validation'); 1506 }); 1507 1508 input.addEventListener('eds.validation.success', (e) => { 1509 input.setCustomValidity(''); 1510 input.setAttribute('data-validation', ''); 1511 error.innerHTML = ''; 1512 }); 1513 1514 input.addEventListener('eds.validation.warning', (e) => { 1515 input.setCustomValidity(''); 1516 input.setAttribute('data-validation', ''); 1517 error.innerHTML = e.detail; 1518 }); 1519 1520 input.addEventListener('eds.validation.error', (e) => { 1521 input.setCustomValidity(e.detail); 1522 input.checkValidity(); input.setAttribute('data-validation', ''); 1523 }); 1524 1525 input.addEventListener('invalid', (e) => { 1526 error.innerHTML = input.validationMessage; 1527 }); 1528 1529 } 1530 </script>
1530 1531 </label> 1532 1533 1534 1535 <label 1536 data-eds-id="6ab5396d8d41c" 1537 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1538 > 1539 <div class="eds_formfield-label"> 1540 Last name <span aria-hidden="true">*</span> </div> 1541 1542 <div class="position-relative d-flex flex-column"> 1543 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1544 1545 <input 1546 type="text" 1547 class="eds-copy-text-l-regular " 1548 placeholder=" " name="lastname" autocomplete="family-name" required value="" /> 1549 1550 1551 1552 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1553 </div> 1554 1555 1556
1556<script> 1557 { 1558 const container = document.querySelector('[data-eds-id="6ab5396d8d41c"]'); 1559 const input = container.querySelector('input, textarea, select'); 1560 const error = container.querySelector('.eds_formfield-error'); 1561 1562 1563 input.addEventListener('eds.validation.reset', () => { 1564 input.removeAttribute('data-validation'); 1565 input.setCustomValidity(''); 1566 error.innerHTML = ''; 1567 }); 1568 1569 input.addEventListener('eds.validation.hide', () => { 1570 input.removeAttribute('data-validation'); 1571 }); 1572 1573 input.addEventListener('eds.validation.success', (e) => { 1574 input.setCustomValidity(''); 1575 input.setAttribute('data-validation', ''); 1576 error.innerHTML = ''; 1577 }); 1578 1579 input.addEventListener('eds.validation.warning', (e) => { 1580 input.setCustomValidity(''); 1581 input.setAttribute('data-validation', ''); 1582 error.innerHTML = e.detail; 1583 }); 1584 1585 input.addEventListener('eds.validation.error', (e) => { 1586 input.setCustomValidity(e.detail); 1587 input.checkValidity(); input.setAttribute('data-validation', ''); 1588 }); 1589 1590 input.addEventListener('invalid', (e) => { 1591 error.innerHTML = input.validationMessage; 1592 }); 1593 1594 } 1595 </script>
1595 1596 </label> 1597 1598 1599 1600 <label 1601 data-eds-id="6ab5396d8d432" 1602 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1603 > 1604 <div class="eds_formfield-label"> 1605 Email <span aria-hidden="true">*</span> </div> 1606 1607 <div class="position-relative d-flex flex-column"> 1608 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1609 1610 <input 1611 type="email" 1612 class="eds-copy-text-l-regular " 1613 placeholder=" " name="email" autocomplete="username" required value="" /> 1614 1615 1616 1617 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1618 </div> 1619 1620 1621
1621<script> 1622 { 1623 const container = document.querySelector('[data-eds-id="6ab5396d8d432"]'); 1624 const input = container.querySelector('input, textarea, select'); 1625 const error = container.querySelector('.eds_formfield-error'); 1626 1627 1628 input.addEventListener('eds.validation.reset', () => { 1629 input.removeAttribute('data-validation'); 1630 input.setCustomValidity(''); 1631 error.innerHTML = ''; 1632 }); 1633 1634 input.addEventListener('eds.validation.hide', () => { 1635 input.removeAttribute('data-validation'); 1636 }); 1637 1638 input.addEventListener('eds.validation.success', (e) => { 1639 input.setCustomValidity(''); 1640 input.setAttribute('data-validation', ''); 1641 error.innerHTML = ''; 1642 }); 1643 1644 input.addEventListener('eds.validation.warning', (e) => { 1645 input.setCustomValidity(''); 1646 input.setAttribute('data-validation', ''); 1647 error.innerHTML = e.detail; 1648 }); 1649 1650 input.addEventListener('eds.validation.error', (e) => { 1651 input.setCustomValidity(e.detail); 1652 input.checkValidity(); input.setAttribute('data-validation', ''); 1653 }); 1654 1655 input.addEventListener('invalid', (e) => { 1656 error.innerHTML = input.validationMessage; 1657 }); 1658 1659 } 1660 </script>
1660 1661 </label> 1662 1663 1664 1665 <label 1666 data-eds-id="6ab5396d8d441" 1667 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-2p5" 1668 > 1669 <div class="eds_formfield-label"> 1670 Password <span aria-hidden="true">*</span> </div> 1671 1672 <div class="position-relative d-flex flex-column"> 1673 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1674 1675 <input 1676 type="password" 1677 class="eds-copy-text-l-regular pe-6" 1678 data-event-on:toggle_password_6ab5396d8d441="(shown) => $(this).attr('type', shown ? 'text' : 'password')" placeholder=" " name="password" autocomplete="current-password" required value="" /> 1679 1680 1681 <button class="eds_button btn btn-outline eds_formfield-toggle_password position-absolute end-0 px-2" style="--bs-btn-bg: transparent" title="Show password" aria-label="Show password" onclick="app.event.emit('toggle_password_6ab5396d8d441', !$(this).data('password-shown'))" data-event-on:toggle_password_6ab5396d8d441="(shown) => $(this).data('password-shown', shown).attr('title', shown ? 'Hide password' : 'Show password').attr('aria-label', shown ? 'Hide password' : 'Show password')" type="button"><i class="eds_icon fas fa-sm fa-eye" style="" aria-hidden="true" data-event-on:toggle_password_6ab5396d8d441="(shown) => this.hidden = shown"></i> <i class="eds_icon fas fa-sm fa-eye-slash" style="" aria-hidden="true" data-event-on:toggle_password_6ab5396d8d441="(shown) => this.hidden = !shown" hidden></i></button> 1682 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1683 </div> 1684 1685 1686
1686<script> 1687 { 1688 const container = document.querySelector('[data-eds-id="6ab5396d8d441"]'); 1689 const input = container.querySelector('input, textarea, select'); 1690 const error = container.querySelector('.eds_formfield-error'); 1691 1692 1693 input.addEventListener('eds.validation.reset', () => { 1694 input.removeAttribute('data-validation'); 1695 input.setCustomValidity(''); 1696 error.innerHTML = ''; 1697 }); 1698 1699 input.addEventListener('eds.validation.hide', () => { 1700 input.removeAttribute('data-validation'); 1701 }); 1702 1703 input.addEventListener('eds.validation.success', (e) => { 1704 input.setCustomValidity(''); 1705 input.setAttribute('data-validation', ''); 1706 error.innerHTML = ''; 1707 }); 1708 1709 input.addEventListener('eds.validation.warning', (e) => { 1710 input.setCustomValidity(''); 1711 input.setAttribute('data-validation', ''); 1712 error.innerHTML = e.detail; 1713 }); 1714 1715 input.addEventListener('eds.validation.error', (e) => { 1716 input.setCustomValidity(e.detail); 1717 input.checkValidity(); input.setAttribute('data-validation', ''); 1718 }); 1719 1720 input.addEventListener('invalid', (e) => { 1721 error.innerHTML = input.validationMessage; 1722 }); 1723 1724 } 1725 </script>
1725 1726 </label> 1727 1728 1729 1730 <label 1731 data-eds-id="6ab5396d8d46f" 1732 class="eds_formfield eds_formfield--size-medium eds_formfield--variant-primary eds-copy-text-m-regular w-100 mb-3" 1733 > 1734 <div class="eds_formfield-label"> 1735 Phone number <span aria-hidden="true">*</span> </div> 1736 1737 <div class="position-relative d-flex flex-column"> 1738 <div class="eds_formfield-error eds-interface-text-m-bold" style="order: 1000"></div> 1739 1740 <input 1741 type="text" 1742 class="eds-copy-text-l-regular " 1743 placeholder=" " name="primary_phone" autocomplete="tel-national" required value="" /> 1744 1745 1746 1747 <i class="eds_icon fa eds_formfield-validation" style="" aria-hidden="true"></i> 1748 </div> 1749 1750 <div class="eds-interface-text-s-regular mt-2"> 1751 <i class="eds_icon fa fa-info-circle text-muted" style="" aria-hidden="true"></i> We require a phone number in case we need to contact you about your order. </div> 1752 1753
1753<script> 1754 { 1755 const container = document.querySelector('[data-eds-id="6ab5396d8d46f"]'); 1756 const input = container.querySelector('input, textarea, select'); 1757 const error = container.querySelector('.eds_formfield-error'); 1758 1759 1760 input.addEventListener('eds.validation.reset', () => { 1761 input.removeAttribute('data-validation'); 1762 input.setCustomValidity(''); 1763 error.innerHTML = ''; 1764 }); 1765 1766 input.addEventListener('eds.validation.hide', () => { 1767 input.removeAttribute('data-validation'); 1768 }); 1769 1770 input.addEventListener('eds.validation.success', (e) => { 1771 input.setCustomValidity(''); 1772 input.setAttribute('data-validation', ''); 1773 error.innerHTML = ''; 1774 }); 1775 1776 input.addEventListener('eds.validation.warning', (e) => { 1777 input.setCustomValidity(''); 1778 input.setAttribute('data-validation', ''); 1779 error.innerHTML = e.detail; 1780 }); 1781 1782 input.addEventListener('eds.validation.error', (e) => { 1783 input.setCustomValidity(e.detail); 1784 input.checkValidity(); input.setAttribute('data-validation', ''); 1785 }); 1786 1787 input.addEventListener('invalid', (e) => { 1788 error.innerHTML = input.validationMessage; 1789 }); 1790 1791 } 1792 </script>
1792 1793 </label> 1794 1795 1796 1797 <div class="eds_checkable d-inline-block mb-2" > 1798 <input id="eds-checkable-6ab5396d8d483" name="receive_promotions" value="1" checked type="checkbox" /> 1799 <label for="eds-checkable-6ab5396d8d483" class="eds_checkable-text eds-interface-text-l-regular "> 1800 Receive Promotional Offers & Updates </label> 1801 </div> 1802 1803 1804 <button class="eds_button btn btn-primary w-100 mt-1 mb-3" type="submit">Sign up</button> 1805 <div class="d-flex align-items-center mb-3"><hr class="flex-grow-1"><span class="mx-3 text-muted eds-interface-text-s-regular">OR</span><hr class="flex-grow-1"></div> <div class="google-signin-container text-center mb-2"> 1806 <a href="https://sso.onlineorderingsecure.com/auth/google/redirect?return_to=https%3A%2F%2Fwww.sushilovervinelandnj.com%2Fauth%2Fgoogle&redirect=%2Flocationinfo" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1807 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" fill="#4285F4"/><path d="M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18Z" fill="#34A853"/><path d="M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.997 8.997 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332Z" fill="#FBBC05"/><path d="M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 6.29C4.672 4.163 6.656 2.58 9 2.58Z" fill="#EA4335"/></svg> 1808 Continue with Google 1809 </a> 1810 </div> 1811 <div class="apple-signin-container text-center mb-2"> 1812 <a href="https://sso.onlineorderingsecure.com/auth/apple/redirect?return_to=https%3A%2F%2Fwww.sushilovervinelandnj.com%2Fauth%2Fapple&redirect=%2Flocationinfo" class="btn btn-outline-secondary w-100 eds_button eds_button--shape-default d-flex align-items-center justify-content-center gap-2" onclick="var url = new URL(this.href); url.searchParams.set('redirect', window.location.pathname + window.location.search); this.href = url.toString();"> 1813 <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M15.1 6.2c-.1.1-2.1 1.2-2.1 3.7 0 2.9 2.5 3.9 2.6 3.9 0 0 0 .1-.4 1.3-.6 1.5-1.7 3-2.9 3-1.3 0-1.6-.7-3.1-.7s-2 .8-3.1.8c-1.2 0-2.2-1.3-3-2.8C2 13.3 1.4 10.9 1.4 8.6c0-3.7 2.4-5.6 4.7-5.6 1.2 0 2.3.8 3 .8.7 0 1.9-.9 3.3-.9.5 0 2.4.1 3.7 1.3zM11.7 1.5c.6-.7 1-1.7 1-2.7 0-.1 0-.3 0-.4-1 0-2.1.6-2.8 1.4-.6.6-1.1 1.6-1.1 2.6 0 .2 0 .3 0 .4.1 0 .2 0 .3 0 .9 0 1.9-.6 2.6-1.3z" fill="currentColor"/></svg> 1814 Continue with Apple 1815 </a> 1816 </div> 1817 <small class="d-block mt-2 eds-interface-text-s-regular"> 1818 By continuing, you agree to our <a href="https://www.sushilovervinelandnj.com/tos" target="_blank" rel="noopener" title="Opens in new tab">Terms of Service</a> & <a href="https://www.sushilovervinelandnj.com/privacy" target="_blank" rel="noopener" title="Opens in new tab">Privacy Policy</a> and consent to receive automated promotional emails. See our <a href="https://www.sushilovervinelandnj.com/privacy#section-7-7" target="_blank" rel="noopener" title="Opens in new tab">Notice of Financial Incentive</a> regarding how we use your data for rewards and offers. 1819 </small> 1820 1821 <div class="text-center mt-3"> 1822 Already have an account? 1823 <button data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#login-modal" class="eds_button btn btn-link btn-text-link border-0 p-0 text-inherit text-decoration-none" type="button">Log in</button> </div> 1824 </div> 1825 </form> </div> 1826 1827 1828 </div> 1829 </div> 1830 1831
1831<script> 1832 { 1833 const container = document.querySelector('[data-eds-id="6ab5396d8d51e"]'); 1834 let edsMethodsDisabled = false; 1835 1836 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 1837 container.addEventListener(`eds.${eventName}`, (e) => { 1838 if (edsMethodsDisabled) return; 1839 1840 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 1841 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 1842 ); 1843 }); 1844 }); 1845 1846 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 1847 container.addEventListener(`${eventName}.bs.modal`, (e) => { 1848 if (edsMethodsDisabled) return; 1849 1850 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 1851 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 1852 edsMethodsDisabled = false; 1853 }); 1854 }); 1855 1856 1857 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 1858 container.addEventListener(eventName, () => { 1859 const autofocusInput = container.querySelector('[autofocus]'); 1860 if (autofocusInput) { 1861 container.style.display = 'block'; 1862 autofocusInput.focus(); 1863 } 1864 }); 1865 }); 1866 1867 } 1868 </script>
1868 1869 </div> 1870 1871 1872
1872<script> 1873 window.__ssoConfig = { 1874 google: { 1875 pendingUrl: "https:\/\/www.sushilovervinelandnj.com\/auth\/google\/pending", 1876 registerModalId: "register-modal", 1877 loginModalId: "login-modal" }, 1878 apple: { 1879 pendingUrl: "https:\/\/www.sushilovervinelandnj.com\/auth\/apple\/pending", 1880 registerModalId: "register-modal", 1881 loginModalId: "login-modal" } 1882 }; 1883 </script>
1883 1884 1885 1886<div class="modal fade" id="modal-order-time" tabindex="-1" role="dialog" 1887 aria-hidden="true"> 1888 <div class="modal-dialog modal-fullscreen-md-down mt-md-6" role="document"> 1889 <div class="modal-content"> 1890 <button class="d-md-none close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 1891 <div class="modal-header"> 1892 <h2 class="modal-title eds-display-text-title-m">Order time</h2> 1893 </div> 1894 <div class="modal-body"> 1895 <div class="btn-group w-100 btn-group-order-time-type mb-3" style="display: none;"> 1896 1897 <input type="radio" name="param_order~time~type_i_n_1" id="order_time_type_1-" value="1" class="btn-check timeswitch orderTimeTypeOption" 1898 checked /> 1899 <label for="order_time_type_1-" class="d-flex align-items-center justify-content-center btn btn-outline-secondary w-50"> 1900 <span> 1901 Later 1902 <span class="d-block small fw-normal">Later</span> 1903 </span> 1904 </label> 1905 </div> 1906 <div id="laterContent" class=""> 1907 <div class="select-time-container"> 1908 <div class="selecttime showcheck_parent "> 1909 <div class="select-time-header clearfix"> 1910 <h3 class="bold fl fs-5">Pick a day and time</h3> 1911 </div> 1912 <div class="select-time-content clearfix"> 1913 <div class="row select-time-row"> 1914 <div class="datepicker col-md-8" style="min-height: 248px;"> 1915 <div class="datepicker-days" style="display: block;"> 1916 <div data-datetimepicker data-datepicker-min-date="2026-09-24" class="errorable"></div> 1917 </div> 1918 </div> 1919 <div class="timepicker col-md-4"> 1920 <div class="timepicker-picker"> 1921 <ul class="ready-at-time css-scroll"> 1922 <li class="time-button "> 1923 <input id="timeValue0" type="radio" value="11:30 AM" name="param_ready~at~time_s_n_15" 1924 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1925 data-required-field data-ready-attime/> 1926 <label for="timeValue0" class="btn btn-outline-secondary btn-sm" for="">11:30 AM</label> 1927 </li> 1928 <li class="time-button "> 1929 <input id="timeValue1" type="radio" value="11:45 AM" name="param_ready~at~time_s_n_15" 1930 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1931 data-required-field data-ready-attime/> 1932 <label for="timeValue1" class="btn btn-outline-secondary btn-sm" for="">11:45 AM</label> 1933 </li> 1934 <li class="time-button "> 1935 <input id="timeValue2" type="radio" value="12:00 PM" name="param_ready~at~time_s_n_15" 1936 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1937 data-required-field data-ready-attime/> 1938 <label for="timeValue2" class="btn btn-outline-secondary btn-sm" for="">12:00 PM</label> 1939 </li> 1940 <li class="time-button "> 1941 <input id="timeValue3" type="radio" value="12:15 PM" name="param_ready~at~time_s_n_15" 1942 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1943 data-required-field data-ready-attime/> 1944 <label for="timeValue3" class="btn btn-outline-secondary btn-sm" for="">12:15 PM</label> 1945 </li> 1946 <li class="time-button "> 1947 <input id="timeValue4" type="radio" value="12:30 PM" name="param_ready~at~time_s_n_15" 1948 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1949 data-required-field data-ready-attime/> 1950 <label for="timeValue4" class="btn btn-outline-secondary btn-sm" for="">12:30 PM</label> 1951 </li> 1952 <li class="time-button "> 1953 <input id="timeValue5" type="radio" value="12:45 PM" name="param_ready~at~time_s_n_15" 1954 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1955 data-required-field data-ready-attime/> 1956 <label for="timeValue5" class="btn btn-outline-secondary btn-sm" for="">12:45 PM</label> 1957 </li> 1958 <li class="time-button "> 1959 <input id="timeValue6" type="radio" value="1:00 PM" name="param_ready~at~time_s_n_15" 1960 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1961 data-required-field data-ready-attime/> 1962 <label for="timeValue6" class="btn btn-outline-secondary btn-sm" for="">1:00 PM</label> 1963 </li> 1964 <li class="time-button "> 1965 <input id="timeValue7" type="radio" value="1:15 PM" name="param_ready~at~time_s_n_15" 1966 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1967 data-required-field data-ready-attime/> 1968 <label for="timeValue7" class="btn btn-outline-secondary btn-sm" for="">1:15 PM</label> 1969 </li> 1970 <li class="time-button "> 1971 <input id="timeValue8" type="radio" value="1:30 PM" name="param_ready~at~time_s_n_15" 1972 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1973 data-required-field data-ready-attime/> 1974 <label for="timeValue8" class="btn btn-outline-secondary btn-sm" for="">1:30 PM</label> 1975 </li> 1976 <li class="time-button "> 1977 <input id="timeValue9" type="radio" value="1:45 PM" name="param_ready~at~time_s_n_15" 1978 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1979 data-required-field data-ready-attime/> 1980 <label for="timeValue9" class="btn btn-outline-secondary btn-sm" for="">1:45 PM</label> 1981 </li> 1982 <li class="time-button "> 1983 <input id="timeValue10" type="radio" value="2:00 PM" name="param_ready~at~time_s_n_15" 1984 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1985 data-required-field data-ready-attime/> 1986 <label for="timeValue10" class="btn btn-outline-secondary btn-sm" for="">2:00 PM</label> 1987 </li> 1988 <li class="time-button "> 1989 <input id="timeValue11" type="radio" value="2:15 PM" name="param_ready~at~time_s_n_15" 1990 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1991 data-required-field data-ready-attime/> 1992 <label for="timeValue11" class="btn btn-outline-secondary btn-sm" for="">2:15 PM</label> 1993 </li> 1994 <li class="time-button "> 1995 <input id="timeValue12" type="radio" value="2:30 PM" name="param_ready~at~time_s_n_15" 1996 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 1997 data-required-field data-ready-attime/> 1998 <label for="timeValue12" class="btn btn-outline-secondary btn-sm" for="">2:30 PM</label> 1999 </li> 2000 <li class="time-button "> 2001 <input id="timeValue13" type="radio" value="2:45 PM" name="param_ready~at~time_s_n_15" 2002 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2003 data-required-field data-ready-attime/> 2004 <label for="timeValue13" class="btn btn-outline-secondary btn-sm" for="">2:45 PM</label> 2005 </li> 2006 <li class="time-button "> 2007 <input id="timeValue14" type="radio" value="3:00 PM" name="param_ready~at~time_s_n_15" 2008 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2009 data-required-field data-ready-attime/> 2010 <label for="timeValue14" class="btn btn-outline-secondary btn-sm" for="">3:00 PM</label> 2011 </li> 2012 <li class="time-button "> 2013 <input id="timeValue15" type="radio" value="3:15 PM" name="param_ready~at~time_s_n_15" 2014 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2015 data-required-field data-ready-attime/> 2016 <label for="timeValue15" class="btn btn-outline-secondary btn-sm" for="">3:15 PM</label> 2017 </li> 2018 <li class="time-button "> 2019 <input id="timeValue16" type="radio" value="3:30 PM" name="param_ready~at~time_s_n_15" 2020 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2021 data-required-field data-ready-attime/> 2022 <label for="timeValue16" class="btn btn-outline-secondary btn-sm" for="">3:30 PM</label> 2023 </li> 2024 <li class="time-button "> 2025 <input id="timeValue17" type="radio" value="3:45 PM" name="param_ready~at~time_s_n_15" 2026 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2027 data-required-field data-ready-attime/> 2028 <label for="timeValue17" class="btn btn-outline-secondary btn-sm" for="">3:45 PM</label> 2029 </li> 2030 <li class="time-button "> 2031 <input id="timeValue18" type="radio" value="4:00 PM" name="param_ready~at~time_s_n_15" 2032 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2033 data-required-field data-ready-attime/> 2034 <label for="timeValue18" class="btn btn-outline-secondary btn-sm" for="">4:00 PM</label> 2035 </li> 2036 <li class="time-button "> 2037 <input id="timeValue19" type="radio" value="4:15 PM" name="param_ready~at~time_s_n_15" 2038 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2039 data-required-field data-ready-attime/> 2040 <label for="timeValue19" class="btn btn-outline-secondary btn-sm" for="">4:15 PM</label> 2041 </li> 2042 <li class="time-button "> 2043 <input id="timeValue20" type="radio" value="4:30 PM" name="param_ready~at~time_s_n_15" 2044 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2045 data-required-field data-ready-attime/> 2046 <label for="timeValue20" class="btn btn-outline-secondary btn-sm" for="">4:30 PM</label> 2047 </li> 2048 <li class="time-button "> 2049 <input id="timeValue21" type="radio" value="4:45 PM" name="param_ready~at~time_s_n_15" 2050 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2051 data-required-field data-ready-attime/> 2052 <label for="timeValue21" class="btn btn-outline-secondary btn-sm" for="">4:45 PM</label> 2053 </li> 2054 <li class="time-button "> 2055 <input id="timeValue22" type="radio" value="5:00 PM" name="param_ready~at~time_s_n_15" 2056 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2057 data-required-field data-ready-attime/> 2058 <label for="timeValue22" class="btn btn-outline-secondary btn-sm" for="">5:00 PM</label> 2059 </li> 2060 <li class="time-button "> 2061 <input id="timeValue23" type="radio" value="5:15 PM" name="param_ready~at~time_s_n_15" 2062 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2063 data-required-field data-ready-attime/> 2064 <label for="timeValue23" class="btn btn-outline-secondary btn-sm" for="">5:15 PM</label> 2065 </li> 2066 <li class="time-button "> 2067 <input id="timeValue24" type="radio" value="5:30 PM" name="param_ready~at~time_s_n_15" 2068 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2069 data-required-field data-ready-attime/> 2070 <label for="timeValue24" class="btn btn-outline-secondary btn-sm" for="">5:30 PM</label> 2071 </li> 2072 <li class="time-button "> 2073 <input id="timeValue25" type="radio" value="5:45 PM" name="param_ready~at~time_s_n_15" 2074 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2075 data-required-field data-ready-attime/> 2076 <label for="timeValue25" class="btn btn-outline-secondary btn-sm" for="">5:45 PM</label> 2077 </li> 2078 <li class="time-button "> 2079 <input id="timeValue26" type="radio" value="6:00 PM" name="param_ready~at~time_s_n_15" 2080 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2081 data-required-field data-ready-attime/> 2082 <label for="timeValue26" class="btn btn-outline-secondary btn-sm" for="">6:00 PM</label> 2083 </li> 2084 <li class="time-button "> 2085 <input id="timeValue27" type="radio" value="6:15 PM" name="param_ready~at~time_s_n_15" 2086 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2087 data-required-field data-ready-attime/> 2088 <label for="timeValue27" class="btn btn-outline-secondary btn-sm" for="">6:15 PM</label> 2089 </li> 2090 <li class="time-button "> 2091 <input id="timeValue28" type="radio" value="6:30 PM" name="param_ready~at~time_s_n_15" 2092 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2093 data-required-field data-ready-attime/> 2094 <label for="timeValue28" class="btn btn-outline-secondary btn-sm" for="">6:30 PM</label> 2095 </li> 2096 <li class="time-button "> 2097 <input id="timeValue29" type="radio" value="6:45 PM" name="param_ready~at~time_s_n_15" 2098 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2099 data-required-field data-ready-attime/> 2100 <label for="timeValue29" class="btn btn-outline-secondary btn-sm" for="">6:45 PM</label> 2101 </li> 2102 <li class="time-button "> 2103 <input id="timeValue30" type="radio" value="7:00 PM" name="param_ready~at~time_s_n_15" 2104 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2105 data-required-field data-ready-attime/> 2106 <label for="timeValue30" class="btn btn-outline-secondary btn-sm" for="">7:00 PM</label> 2107 </li> 2108 <li class="time-button "> 2109 <input id="timeValue31" type="radio" value="7:15 PM" name="param_ready~at~time_s_n_15" 2110 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2111 data-required-field data-ready-attime/> 2112 <label for="timeValue31" class="btn btn-outline-secondary btn-sm" for="">7:15 PM</label> 2113 </li> 2114 <li class="time-button "> 2115 <input id="timeValue32" type="radio" value="7:30 PM" name="param_ready~at~time_s_n_15" 2116 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2117 data-required-field data-ready-attime/> 2118 <label for="timeValue32" class="btn btn-outline-secondary btn-sm" for="">7:30 PM</label> 2119 </li> 2120 <li class="time-button "> 2121 <input id="timeValue33" type="radio" value="7:45 PM" name="param_ready~at~time_s_n_15" 2122 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2123 data-required-field data-ready-attime/> 2124 <label for="timeValue33" class="btn btn-outline-secondary btn-sm" for="">7:45 PM</label> 2125 </li> 2126 <li class="time-button "> 2127 <input id="timeValue34" type="radio" value="8:00 PM" name="param_ready~at~time_s_n_15" 2128 class="btn-check rad-ready_at_time" onchange="saveFormStat
2128e('param_ready~at~time_s_n_15', this.value, true);" 2129 data-required-field data-ready-attime/> 2130 <label for="timeValue34" class="btn btn-outline-secondary btn-sm" for="">8:00 PM</label> 2131 </li> 2132 <li class="time-button "> 2133 <input id="timeValue35" type="radio" value="8:15 PM" name="param_ready~at~time_s_n_15" 2134 class="btn-check rad-ready_at_time" onchange="saveFormState('param_ready~at~time_s_n_15', this.value, true);" 2135 data-required-field data-ready-attime/> 2136 <label for="timeValue35" class="btn btn-outline-secondary btn-sm" for="">8:15 PM</label> 2137 </li> 2138 </ul> 2139 </div> 2140 </div> 2141 </div> 2142 </div> 2143</div> 2144</div> 2145<input type="hidden" name="param_ready~at_s_n_100" class="hid-ready-at" value="" /> 2146<input type="hidden" class="hid-ready-at-date" value="2026-09-24" /> 2147<input type="hidden" class="hid-eot" value="1969-12-31 16:00:00" /> </div> 2148 </div> 2149 <div class="modal-footer"> 2150 <input type="hidden" id="hid-order-time-type" value="1" /> 2151 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button> 2152 <button type="button" class="btn btn-primary" data-save-time-modal>Save</button> 2153 </div> 2154 </div> 2155 </div> 2156</div> 2157 2158<!-- www modal start --> 2159<div class="modal fade mob_full_modal www_modal order-options" id="modal-order-options" tabindex="-1" role="dialog" 2160 aria-hidden="true" data-update-otype-on-modal-close> 2161 <div class="modal-dialog modal-fullscreen-sm-down mt-sm-6" role="document"> 2162 <div class="modal-content"> 2163 <button class="d-md-none close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2164 <div class="modal-header"> 2165 <h2 class="modal-title eds-display-text-title-m">Order details</h2> 2166 </div> 2167 <div class="modal-body"> 2168 <div class="www_moda_content"> 2169 <div class="cs_box order_type" onchange="app.event.emit('order_type_changed', { order_type: event.target.value })"> 2170 <div class="h5">What:</div> 2171 <div class="position-relative"> 2172 <div class="mdropbtn" data-toggle-mdrop role="button"> 2173 <span class="visually-hidden">Order type:</span> 2174 <span data-order-type-label> 2175 Pick up </span> 2176 </div> 2177 <ul data-mdrop-ul> 2178 <li class="selected "> 2179 <input data-order-type-on-change type="radio" name="param_order~type_s_n_10" id="order-type-pickup-1" 2180 class="orderTypeOption css-checkbox " data-name="Pick up" checked value="PICKUP" 2181 data-constant="1" data-base="PICKUP" > 2182 <label for="order-type-pickup-1" class="css-label" data-update-mdrop-on-click> 2183 Pick up </label> 2184 </li> 2185 </ul> 2186</div> 2187 </div> 2188 <form class=""> 2189 <div class="cs_box guest_checkout_address checkout_address deliveryAddressContainer" style="display:none;"> 2190 <label for="street-address-bar" class="h5">Enter your address:</label> 2191 <div class="form-group street-address-container"> 2192 <input name="param_full~address_s_n_255" id="street-address-bar" placeholder="Enter your address" 2193 data-autocomplete-address data-autocomplete-success="autoCompleteSuccess" 2194 onkeyup="scheduleFormStateSave(this.name, this.value)" onchange="validateAddress($('#modal-order-options .deliveryAddressContainer'))" 2195 type="search" class="form-control input-search input-validate-address input-street-address user-address-field" 2196 value="" data-required-field /> 2197 </div> 2198 <input type="hidden" name="param_street~address_s_n_255" data-autocompleted-street-address /> 2199 <input type="hidden" name="param_city_s_n_90" data-autocompleted-city /> 2200 <input type="hidden" name="param_state_s_n_2" data-autocompleted-state /> 2201 <input type="hidden" name="param_zip~code_z_n_10" data-autocompleted-zip /> 2202 </div> 2203 </form> 2204 <!-- <div class="form-submit-wrapper"> 2205 <input type="submit" class="form-submit btn btn-primary" value="Save" data-close-modal data-select-later-date data-saveotype-modal> 2206 </div> --> 2207 </div> 2208 </div> 2209 <div 2210 data-async-on-event="order_type_changed" 2211 data-async-action="https://www.sushilovervinelandnj.com/ajax/?form=minimum_order_value_warning&component=order_type" 2212 data-async-method="get" 2213 > 2214 </div> 2215 <div class="modal-footer"> 2216 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2217 <button type="button" class="btn btn-primary" data-close-modal data-saveotype-modal>Save</button> 2218 </div> 2219 </div> 2220 </div> 2221</div> 2222<!-- www modal end --> 2223 2224<!-- menu item modal --> 2225<div class="modal fade add_menu" id="add_menu_item" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="item_name">
2226 <div class="modal-dialog modal-dialog-centered modal-fullscreen-md-down" role="document"> 2227 <div class="modal-content menu-item-container-wrapper"> 2228 <div class="modal-body menu-item-container "> 2229 <p id="item_name">Menu item dialog</p> 2230 </div> 2231 </div> 2232 </div> 2233</div> 2234<!-- menu item modal end --> 2235 2236 2237 <div 2238 data-eds-id="6ab5396d9133e" 2239 class="eds_dialog modal fade " 2240 tabindex="-1" 2241 aria-labelledby="eds-dialog-title-6ab5396d9133e" 2242 aria-hidden="true" 2243 data-event-on:coupon_modal_shown="(shown) => $(this).data(`coupon_modal_shown`, shown)" data-event-on:show_coupon_restrictions="({ coupon, errors }) => { 2244 if ($(this).data(`coupon_modal_shown`)) return; 2245 2246 $(this).find(`.eds_dialog-title`).html(`<div class="text-truncate">${coupon}</div>`); 2247 $(this).find(`.eds_dialog-body`).html(errors); 2248 this.dispatchEvent(new CustomEvent(`eds.show`)); 2249 }" data-event-on:restore_coupon_modal="this.dispatchEvent(new CustomEvent(`eds.hide`))" > 2250 <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-fullscreen-sm-down modal-md"> 2251 <div class="modal-content "> 2252 2253 <div class="modal-header d-flex justify-content-between gap-3 eds-display-text-title-m "> 2254 <h2 id="eds-dialog-title-6ab5396d9133e" class="eds_dialog-title modal-title eds-display-text-title-m pe-5" style="max-width: 100%"> 2255 Coupon restrictions </h2> 2256 2257 <button class="eds_button btn btn-outline-secondary btn-lg eds_button--shape-circle position-absolute top-0 end-0 border" style="width: 3rem; height: 3rem; margin-top: 6px; margin-right: 6px" data-bs-dismiss="modal" aria-label="Close" type="button"><i class="eds_icon fa fa-close" style="" aria-hidden="true"></i></button> </div> 2258 2259 <div class="eds_dialog-body modal-body css-scroll eds-copy-text-l-regular vh-100"> 2260 </div> 2261 2262 2263 </div> 2264 </div> 2265 2266
2266<script> 2267 { 2268 const container = document.querySelector('[data-eds-id="6ab5396d9133e"]'); 2269 let edsMethodsDisabled = false; 2270 2271 ['show', 'hide', 'toggle', 'dispose'].forEach((eventName) => { 2272 container.addEventListener(`eds.${eventName}`, (e) => { 2273 if (edsMethodsDisabled) return; 2274 2275 bootstrap.Modal.getOrCreateInstance(container)[eventName]( 2276 ...(Array.isArray(e.detail) ? e.detail : [e.detail]) 2277 ); 2278 }); 2279 }); 2280 2281 ['show', 'shown', 'hide', 'hidden'].forEach((eventName) => { 2282 container.addEventListener(`${eventName}.bs.modal`, (e) => { 2283 if (edsMethodsDisabled) return; 2284 2285 edsMethodsDisabled = true; // Prevent infinite loop of triggering events 2286 container.dispatchEvent(new CustomEvent(`eds.${eventName}`)); 2287 edsMethodsDisabled = false; 2288 }); 2289 }); 2290 2291 2292 ['show.bs.modal', 'shown.bs.modal'].forEach((eventName) => { 2293 container.addEventListener(eventName, () => { 2294 const autofocusInput = container.querySelector('[autofocus]'); 2295 if (autofocusInput) { 2296 container.style.display = 'block'; 2297 autofocusInput.focus(); 2298 } 2299 }); 2300 }); 2301 2302 } 2303 </script>
2303 2304 </div> 2305 2306 2307<!-- location modal mobile start--> 2308<div class="modal fade location-picker" id="locationModal" tabindex="-1" role="dialog" aria-hidden="true"> 2309 <div class="backdrop" data-bs-dismiss="modal"></div> 2310 <div class="modal-dialog modal-sm modal-dialog-centered" role="document"> 2311 <div class="modal-content"> 2312 <div class="modal-header"> 2313 <h2 class="modal-title eds-display-text-title-m">Change Location</h2> 2314 </div> 2315 2316 <div class="modal-body"> 2317 2318<div class="change_location-locations"> 2319 <input 2320 type="radio" 2321 class="css-checkbox" 2322 id="locations-1-location-7616" 2323 name="locations-1" 2324 value="https://www.sushilovervinelandnj.com/order" 2325 checked /> 2326 <label class="css-label" for="locations-1-location-7616"> 2327 <div style="line-height: normal"> 2328 <strong>Sushi Lover - Vineland</strong> 2329 <br /> 2330 3849 S Delsea Dr #0012 Cumberland Mall Vineland, NJ 08360 </div> 2331 </label> 2332 </div> 2333 2334 </div> 2335 2336 <div class="modal-footer"> 2337 <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Close</button> 2338 <button type="button" class="btn btn-warning" data-go-to-url-on-click="[name='locations-1']:checked"> 2339 Change location </button> 2340 </div> 2341 </div> 2342 </div> 2343</div> 2344<!-- location modal mobile end --> 2345 2346<div class="modal fade add_new_card_modal" id="modal-add-new-card" tabindex="-1" role="dialog" aria-modal="true"> 2347 <div class="modal-dialog modal-dialog-centered modal-fullscreen-sm-down" role="document"> 2348 <div class="modal-content"> 2349 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2350 <div class="modal-header"> 2351 <h2 class="modal-title eds-display-text-title-m">Add new card</h2> 2352 </div> 2353 <div class="modal-body pb-6"> 2354 <div class="ajax-creditcards"> 2355 <div class="fa fa-spinner fa-spin fa-4x"> 2356 </div> 2357 </div> 2358 </div> 2359 </div> 2360 </div> 2361</div> 2362 2363<div class="modal fade" id="modal-payment-change" tabindex="-1" role="dialog" aria-modal="true"> 2364 <div class="modal-dialog modal-dialog-centered" role="document"> 2365 <div class="modal-content"> 2366 <div class="modal-header"> 2367 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm <span data-confirm-payment-name>Pay with cash</span></h2> 2368 </div> 2369 <div class="modal-body"> 2370 <p>You've just changed your payment type to <strong data-confirm-payment-name>Pay with cash</strong>. Please confirm that to proceed.</p> 2371 <button class="btn btn-primary w-100" data-bs-dismiss="modal" data-confirm-payment-switch>Confirm and proceed</button> 2372 <button class="btn eh-btn-silent w-100 mt-2" data-bs-dismiss="modal" data-cancel-payment-switch>Cancel</button> 2373 </div> 2374 </div> 2375 </div> 2376</div> 2377 2378<div class="modal fade modal_over_modal" id="modal-confirm-no-number-address" tabindex="-1" role="dialog" aria-modal="true" style="z-index: 2000;"> 2379 <div class="modal-dialog modal-dialog-centered" role="document"> 2380 <div class="modal-content"> 2381 <div class="modal-header"> 2382 <h2 class="modal-title modal-title-accent eds-display-text-title-m">Confirm Address</h2> 2383 </div> 2384 <div class="modal-body"> 2385 <p>This address doesn't start with a street number. Please confirm the address is correct.</p> 2386 <button class="btn btn-warning w-100" data-bs-dismiss="modal" data-confirm-no-number-address>Yes, it's correct</button> 2387 <button class="btn btn-secondary w-100 mt-2" data-bs-dismiss="modal" data-cancel-no-number-address>No, let me edit it</button> 2388 </div> 2389 </div> 2390 </div> 2391</div> 2392 2393<div class="modal fade mob_full_modal" id="modal-invalid-address" tabindex="-1" role="dialog" aria-modal="true"> 2394 <div class="modal-dialog modal-dialog-centered" role="document"> 2395 <div class="modal-content"> 2396 <button class="close" type="button" data-bs-dismiss="modal" aria-label="Close"></button> 2397 <div class="modal-header"> 2398 <h2 class="modal-title eds-display-text-title-m">Sorry we do not deliver to your address!</h2> 2399 </div> 2400 <div class="modal-body"> 2401 <div class="www_moda_content"> 2402 <div class="cs_box pickup_when showcheck_parent"> 2403 <div>You can Pick up your order at this location</div> 2404 <div class="pickup_locbox"> 2405 <div class="rest_loc"> 2406 <p> 2407 Sushi Lover - Vineland<br/> 2408 3849 S Delsea Dr #0012<br/>Cumberland Mall<br/>Vineland, NJ 08360 </p> 2409 </div> 2410</div> </div> 2411 <div class="form-submit-wrapper"> 2412 <input type="submit" class="form-submit" value="Switch to pickup" data-bs-dismiss="modal" data-switch-to-pickup> 2413 </div> 2414 </div> 2415 </div> 2416 </div> 2417 </div> 2418</div> 2419 2420<div class="modal fade mob_full_modal" id="modal-view-delivery-zone" tabindex="-1" role="dialog" aria-modal="true"> 2421 <div class="modal-dialog modal-dialog-centered" role="document"> 2422 <div class="modal-content">
2423 <div class="modal-body modal-body-view-delivery-zone" style="min-height: 75px;"> 2424 <div id="loading-view-delivery-area" class="loading-ajax-spinner"><i class="fa fa-spin fa-spinner fa-3x "></i></div> 2425 <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"></button> 2426 <div id="modal-view-delivery-zone-content" style="display:none;"> 2427 <div class="h4 mt15">View our delivery area</div> 2428 <div class="mb15"></div> 2429 <style> 2430 #iframe-view-delivery-area { 2431 width:100%; 2432 height:100%; 2433 min-height:556px; 2434 } 2435 @media screen and (max-width: 768px) { 2436 #iframe-view-delivery-area { 2437 height: calc(100vh - 90px); 2438 } 2439 } 2440 </style> 2441 <iframe id="iframe-view-delivery-area" name="iframe-deliveryzone" frameborder="0" hspace="0" scrolling="auto" 2442 data-src="https://www.sushilovervinelandnj.com/viewdeliveryzone/altdoc/1/vdz/1" title="Map of delivery areas"></iframe> 2443 </div> 2444 </div> 2445 </div> 2446 </div> 2447</div> 2448 2449<!-- Alert modal --> 2450<div class="modal fade" id="modal-alert" tabindex="-1" aria-labelledby="modal-alert" aria-hidden="true"> 2451 <div class="modal-dialog"> 2452 <div class="modal-content"> 2453 <div class="modal-header"> 2454 <h2 class="modal-title fs-5 eds-display-text-title-m">Error</h2> 2455 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 2456 </div> 2457 <div class="modal-body"> 2458 Description 2459 </div> 2460 <div class="modal-footer"> 2461 <button type="button" class="btn btn-primary btn-close-modal" data-bs-dismiss="modal">Close</button> 2462 <button type="button" class="btn btn-primary hidden">Save changes</button> 2463 </div> 2464 </div> 2465 </div> 2466</div> 2467 2468 2469 2470 2471 2472 <div 2473 id="toasts" 2474 class="toast-container position-fixed start-50 translate-middle-x" 2475 style="bottom: calc(var(--eds-fixed-cta-height, 0) * 1px); max-width: calc(100% - 2rem)" 2476 > 2477 </div> 2478 2479
2479<script> 2480 $(() => { 2481 const ctas = document.querySelectorAll('[data-fixed-cta]'); 2482 if (!ctas.length) { 2483 return; 2484 } 2485 2486 function updateFixedCTAHeight() { 2487 document.documentElement.style.setProperty( 2488 '--eds-fixed-cta-height', 2489 Math.max(0, ...Array.from(ctas, (element) => { 2490 const rect = element.getBoundingClientRect(); 2491 return rect.height > 0 && getComputedStyle(element).position === 'fixed' 2492 ? Math.max(0, window.innerHeight - rect.top) 2493 : 0; 2494 })) 2495 ); 2496 } 2497 2498 if ('ResizeObserver' in window) { 2499 ctas.forEach((cta) => new ResizeObserver(updateFixedCTAHeight).observe(cta)); 2500 } else { 2501 updateFixedCTAHeight(); 2502 } 2503 2504 window.addEventListener('resize', app.throttle(updateFixedCTAHeight)); 2505 }); 2506 </script>
2506 2507 2508 <div class="visually-hidden"> 2509 <div id="announcements-polite" aria-live="polite" aria-atomic="true"> 2510 <div id="announcement-polite"></div> 2511 </div> 2512 2513 <div id="announcements-assertive" aria-live="assertive" aria-atomic="true"> 2514 <div id="announcement-assertive"></div> 2515 </div> 2516 </div> 2517 2518
2519<script type="text/javascript" src="/share42/share42.js"></script>
2519 2520 2521<!-- SET: SCRIPTS -->
2522<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2522
2522
2523<script>window.jQuery || document.write('
2523<script src="/web/default3.0/js/vendor/jquery-3.6.0.min.js"><\/script>')</script>
vendor: 1 bytes, line 2523
2523
2524<script src="https://code.jquery.com/jquery-migrate-3.3.2.js" integrity="sha384-KwAndHbPSueZ9+pG1mDjru/Q6KT6cliBs+/SCGpcOO6XvhrkbF0cBzkSs3+Pl2Zz" crossorigin="anonymous"></script>
2524 2525<!--
2525<script src="https://code.jquery.com/jquery-migrate-3.3.2.min.js" integrity="sha256-Ap4KLoCf1rXb52q+i3p0k2vjBsmownyBTE1EqlRiMwA=" crossorigin="anonymous"></script>
2525-->
2526<script> 2527 /* http://writing.colin-gourlay.com/safely-using-ready-before-including-jquery/ */ 2528 (function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document) 2529</script>
vendor: 1 bytes, line 2529
2529
2530<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js" integrity="sha256-lSjKY0/srUM9BE3dPm+c4fBo1dky2v27Gdjm2uoZaL0=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2530
2530
2531<script type="text/javascript" src="/min/g=js4.0&1788675044"></script>
2531 2532<!-- END: SCRIPTS --> 2533 2534
2535<script> 2536 function closeAnnouncementModal(){ 2537 $("#announcementBox").hide(); 2538 setAnnouncementSession("<p><strong><span style=\"font-size:14px;\"><span style=\"color:#0000FF;\">GIFT CARD<\/span> available,<\/span><\/strong><br><br><span style=\"color:#0000FF;\">$50 Gift Card worth $55<br>\n$100 Gift Card worth $110<\/span><\/p>\n\n<p>please check with restaurant directly for purchase.\u00a0<\/p>"); 2539 } 2540 2541 $('body').on('click', '#closeAnnouncement', function(e) { 2542 e.preventDefault(); 2543 setAnnouncementSession("<p><strong><span style=\"font-size:14px;\"><span style=\"color:#0000FF;\">GIFT CARD<\/span> available,<\/span><\/strong><br><br><span style=\"color:#0000FF;\">$50 Gift Card worth $55<br>\n$100 Gift Card worth $110<\/span><\/p>\n\n<p>please check with restaurant directly for purchase.\u00a0<\/p>"); 2544 }); 2545</script>
vendor: 1 bytes, line 2545
2545
2546<script> 2547$(() => { 2548 const stickyHeader = document.querySelector('.headerAndWtype'); 2549 if (!stickyHeader) { 2550 return; 2551 } 2552 2553 function updateHeaderHeight() { 2554 const gap = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16; 2555 const offset = stickyHeader.offsetHeight + gap; 2556 document.documentElement.style.scrollPaddingTop = offset + 'px'; 2557 2558 document.documentElement.style.setProperty('--sticky-header-offset', offset + 'px'); 2559 } 2560 2561 updateHeaderHeight(); 2562 if ('ResizeObserver' in window) { 2563 new ResizeObserver(updateHeaderHeight).observe(stickyHeader); 2564 } else { 2565 window.addEventListener('resize', app.throttle(updateHeaderHeight)); 2566 } 2567}); 2568</script>
2568 2569 2570 <div id="recaptcha" class="g-recaptcha" data-callback="submitAjaxForm" data-size="invisible"></div> 2571 <div id="async-recaptcha" class="g-recaptcha" data-callback="recaptchaAsyncCallback" data-size="invisible"></div> 2572 2573
2573<script> 2574 var ajaxRecaptcha; 2575 var asyncRecaptcha; 2576 var checkoutRecaptcha; 2577 2578 function initRecaptchas() { 2579 const options = { 2580 sitekey: "6LeS6lMUAAAAADOPnBKluMb49PS1NyzPT1kR87Re", 2581 size: 'invisible', 2582 }; 2583 2584 $('[data-recaptcha]').not('[data-ajax-form]').each(function (k, v) { 2585 const submit = $(v).find('[type="submit"]'); 2586 grecaptcha.render(submit[0], { 2587 ...options, 2588 callback(token) { 2589 $(v).submit(); 2590 }, 2591 }); 2592 }); 2593 2594 ajaxRecaptcha = grecaptcha.render('recaptcha', options); 2595 asyncRecaptcha = grecaptcha.render('async-recaptcha', options); 2596 } 2597 </script>
vendor: 119 bytes, lines 2597-2599
2597 2598 <script src="https://www.google.com/recaptcha/api.js?render=explicit&onload=initRecaptchas" async defer></script> 2599
2600</body> 2601</html>
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.