1<!doctype html> 2<html lang='en-us'> 3 <head> 4 <!-- meta --> 5 <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 6 <meta charset="utf-8" /> 7 <title>Shopping in Rochester, MN | Department Stores</title> 8 <link rel="canonical" href="https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/" /> 9 <meta name="description" content="View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more." /> 10 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1" /> 11 <meta name="sv-nav-properties" content="{"title":"Department Stores","id":"5ab409e06fabc5420e517b30","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"site_name":"primary","section":"main","folderHref":"/things-to-do/shopping/department-stores/"}" /> 12 <meta name="twitter:card" content="summary_large_image" /> 13 <meta name="referrer" content="always" /> 14 <meta name="robots" content="index, follow" /> 15 <meta property="og:title" content="Shopping in Rochester, MN | Department Stores" /> 16 <meta property="og:url" content="https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/" /> 17 <meta property="og:description" content="View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more." /> 18 <meta property="og:locale" content="en_us" /> 19 <meta property="og:type" content="website" /> 20 <meta property="fb:app_id" content="1209066719230183" /> 21 22 <!-- head css bundles --> 23 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/weather/virtuals/css/shared.css"/> 24 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.9/css/weather-icons.min.css"/> 25 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/search/virtuals/css/shared.css"/> 26 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/fontawesome-4.6.3/css/font-awesome.min.css"/> 27 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/widget_social_share.css"/> 28 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/dtn/virtuals/css/shared.css"/> 29 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/widget_cookie_banner.css"/> 30 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/nav/virtuals/css/shared.css"/> 31 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/collections/virtuals/css/widget_template_custom_features.css"/> 32 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/collections/virtuals/css/widget_template_custom_imagebox.css"/> 33 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/collections/virtuals/css/widget_template_custom_imagebox_subtitle.css"/> 34 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/listings/legacy/virtuals/css/shared.css"/> 35 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/custom_layout.css"/> 36 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/custom_map.css"/> 37 <link rel="stylesheet" href="/includes/public/magnific/magnific-popup.css"/> 38 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/collections/virtuals/css/widget_template_custom_header_slideshow_homepage.css"/> 39 <link rel="stylesheet" href="https://unpkg.com/@glidejs/[email protected]/dist/css/glide.core.min.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 40 <link rel="stylesheet" href="https://unpkg.com/plyr@^3/dist/plyr.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 41 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/slick-carousel-1.5.8/slick/slick.css"/> 42 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/slick-carousel-1.5.8/slick/slick-theme.css"/> 43 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/foundation-5.5.0/css/normalize.css"/> 44 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/foundation-5.5.0/css/foundation.min.css"/> 45 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/shared.css"/> 46 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/shared_print.css" media="print"/> 47 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/variables.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 48 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/swatches.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 49 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/shared_system.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 50 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/fontawesome/css/fontawesome.min.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 51 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/fontawesome/css/brands.min.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 52 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/fontawesome/css/regular.min.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 53 <link rel="stylesheet" href="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/css/fontawesome/css/solid.min.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 54 55 <!-- head js bundles --> 56
56<script src="https://unpkg.com/plyr@^3/dist/plyr.polyfilled.min.js"></script>
56 57
57<script src="https://player.vimeo.com/api/player.js"></script>
57 58
58<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/node_modules/foundation-5.5.0/js/vendor/modernizr.js"></script>
58 59
59<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/libs/sv/requirejs/public/require.js" data-ot-ignore></script>
59 60
60<script src="/requirejs_config_eb27db53_3751cdfd.js" data-ot-ignore></script>
60 61
61<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/libs/sv/siteLib/public/js/globalHeader.js"></script>
61 62
62<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/js/shared_header.js"></script>
62 63 64 <!-- bottomHead --> 65 66
66<script data-id="site_gtm">
vendor: 365 bytes, lines 66-71
66 67 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 68 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 69 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 70 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 71 })(window,document,'script','gtmDataLayer','
71GTM-P3JNTVH
vendor: 11 bytes, lines 71-72
71'); 72
72</script>
72 73 74
74<script data-id="site_gtm">
vendor: 365 bytes, lines 74-79
74 75 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 76 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 77 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 78 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 79 })(window,document,'script','gtmDataLayer','
79GTM-NFBVG93
vendor: 11 bytes, lines 79-80
79'); 80
80</script>
80 81 82 83 84 </head> 85 <body> 86 <!-- topBody --> 87 88 <noscript> 89 <iframe src="//www.googletagmanager.com/ns.html?id=GTM-P3JNTVH" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> 90 </noscript> 91 92 <noscript> 93 <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NFBVG93" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> 94 </noscript> 95 96 97 <!-- content --> 98 <div data-civid="5d70237677e8d17cf5003110" class="contentRender contentRender_0 contentRender_type_panel contentRender_name_plugins_common_page" data-sv-time="1" data-sv-index="0" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 99 100<div class="root_panel panel_page interior internal-view with-header"> 101 <div class="overlay"></div> 102 <div class="header_container"> 103 <div data-civid="5a9d89b7c9764a0e840bead9" class="contentRender contentRender_1 contentRender_type_panel contentRender_name_plugins_common_header" data-sv-time="1" data-sv-index="1" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'>
103<script> 104 // CRM FORM STYLING HELPER JS. This should exist in header panel 105 // Adds the body class as quickly as possible to hide all the items on the page so we don't 106 // have the site flash before the calendar shows up 107 if (location.search.indexOf('action=popupCal') > -1 && document.body.querySelectorAll('.lookup-calHolder')) { 108 document.body.classList.add('crm-calendar-popup'); 109 }; 110 require(["plugins_common_custom_recently_viewed_pages"], function(recentlyViewedPages) { 111 recentlyViewedPages.init({"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"}); 112 }); 113</script>
113 114 115<div class="headerSection"> 116<header class="panel_custom_header"> 117 118 <picture class="header-logo"> 119 <div data-civid="67dc3996748b90425831a2e6" class="contentRender contentRender_6 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="30" data-sv-index="6" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section data-sv-core-textbox data-guid="972d33b3-350f-4705-8a14-2031e25389b0"> 120 <p><a data-sv-linklookup-id="https://www.experiencerochestermn.com/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://www.experiencerochestermn.com/" target="_self"><img alt="Experience Rochester Logo 2023" data-height="194" data-processed="true" data-width="200" height="194" id="plugins_assets_images_641dd924010ee024eeb7e5b2" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_194,q_75,w_200/v1/clients/rochestermn/ExperienceRochester_Tricolor_Stacked_be56910c-e3c0-41ac-869b-294032222f7e.png" style="margin: 10px;" width="200"></a></p> 121 122</section></div> 123 </picture> 124 <section> 125 <nav class="indy-nav show-for-large-up" data-secondary-nav> 126 <div data-civid="67dc3996748b90425831a2e0" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_nav_secondary" data-sv-time="31" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 127 <ul class="indy-nav-style"> 128 129 <li><a href="/meet/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Meet%20in%20Rochester", "navType" : "Secondary"} }'>Meet in Rochester</a></li> 130 131 <li><a href="/sports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sports", "navType" : "Secondary"} }'>Sports</a></li> 132 133 <li><a href="/blog/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Blog", "navType" : "Secondary"} }'>Blog</a></li> 134 135 <li><a href="/media/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Media", "navType" : "Secondary"} }'>Media</a></li> 136 137 <li><a href="/podcast/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Podcast", "navType" : "Secondary"} }'>Podcast</a></li> 138 139 </ul> 140</div> 141 </nav> 142 143 144 <div class="show-for-medium-up weather-section"> 145 <div data-civid="67dc3996748b90425831a2e2" class="contentRender contentRender_4 contentRender_type_widget contentRender_name_plugins_weather_weather" data-sv-time="20" data-sv-index="4" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 146 147<div class="weather" data-sv-weatherWidget></div> 148
149<script type="text/template" data-weatherwidget-template> 150 151 <span data-sv-weather-toggle>{{current.temp}}°</span><i class="wi {{current.condition.icon}}" aria-hidden="true"></i> 152 153</script>
153 154
155<script> 156 require(["jquery", "goatee", "sv_urlLib", "sv_site"], function($, goatee, urlLib, sv_site) { 157 var root = $("[data-sv-weatherWidget]"); 158 var template = $("[data-weatherwidget-template]").html(); 159 var settings = {"unit_of_measure":"f"}; 160 var url = urlLib.build({ 161 path : "/plugins/core/svapi/", 162 get : { 163 service : "weatherv2", 164 endpoint : "latlng", 165 serviceArgs : JSON.stringify({ 166 lat : sv_site.siteConfig.latitude, 167 lng : sv_site.siteConfig.longitude, 168 unit : settings.unit_of_measure 169 }) 170 } 171 }); 172 173 $.get(url, function(res) { 174 if (res.success !== true) { return; } 175 176 res.data.forecast.splice(5); // trim forecast to first 5 days 177 var html = goatee.fill(template, res.data); 178 root.html(html); 179 180 root.find("[data-sv-weather-toggle]").on("click", function() { 181 $("[data-sv-weather-dropdown]").toggleClass("open"); 182 }); 183 }); 184 }); 185</script>
185</div> 186 </div> 187 188 <div class="show-for-medium-up main-search"> 189 </div> 190 <div class="show-for-medium-up"> 191 <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_2 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="21" data-sv-index="2" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 192 <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> 193 <span>Partner</span><span>Extranet</span> 194 </a> 195</div> 196 </div> 197 <nav class="main-nav show-for-large-up"> 198 <div data-civid="67dc3996748b90425831a2e8" class="contentRender contentRender_7 contentRender_type_widget contentRender_name_plugins_nav_main" data-sv-time="24" data-sv-index="7" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 199 200 201 202 <ul class="main-nav-style " data-guid="28e62df6-0c2e-4504-834d-e0609d63839e"> 203 204 205 <li class="has-children" data-id="5ab409d16fabc5420e516052"> 206 <a href="/places-to-stay/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Places%20to%20Stay", "navType" : "Main"} }'>Places to Stay</a> 207 208 <ul class="sub-nav"> 209 210 211 <li class="has-children" data-id="5ab409d46fabc5420e5163d1"> 212 <a href="/places-to-stay/hotels/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hotels", "navType" : "Main"} }'>Hotels</a> 213 214 </li> 215 216 <li class="has-children" data-id="5ab409d46fabc5420e516445"> 217 <a href="/places-to-stay/extended-stay/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Extended%20Stay", "navType" : "Main"} }'>Extended Stay</a> 218 219 </li> 220 221 <li class="has-children" data-id="5ab409d46fabc5420e51647f"> 222 <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Campgrounds%20%26%20RV%20Parks", "navType" : "Main"} }'>Campgrounds & RV Parks</a> 223 224 </li> 225 226 227 </ul> 228 229 </li> 230 231 <li class="has-children" data-id="5ab409d26fabc5420e51608c"> 232 <a href="/things-to-do/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Things%20to%20Do", "navType" : "Main"} }'>Things to Do</a> 233 234 <ul class="sub-nav"> 235 236 237 <li class="has-children" data-id="5ab409d46fabc5420e51652d"> 238 <a href="/things-to-do/events-calendar/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Events%20Calendar", "navType" : "Main"} }'>Events Calendar</a> 239 240 <i class="fa fa-angle-down menu-action"></i> 241 <ul> 242 243 244 <li class="has-children" data-id="5ab409df6fabc5420e51799a"> 245 <a href="/things-to-do/events-calendar/fairs-festivals/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fairs%20%2B%20Festivals", "navType" : "Main"} }'>Fairs + Festivals</a> 246 247 </li> 248 249 <li class="has-children" data-id="5ab409df6fabc5420e5179d4"> 250 <a href="/things-to-do/events-calendar/fall/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fall", "navType" : "Main"} }'>Fall</a> 251 252 </li> 253 254 <li class="has-children" data-id="5ab409e06fabc5420e517a0e"> 255 <a href="/things-to-do/events-calendar/winter/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Winter", "navType" : "Main"} }'>Winter</a> 256 257 </li> 258 259 <li class="has-children" data-id="63f67257c31926015cbdb232"> 260 <a href="/things-to-do/events-calendar/spring/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Spring", "navType" : "Main"} }'>Spring</a> 261 262 </li> 263 264 <li class="has-children" data-id="5ab409e06fabc5420e517a48"> 265 <a href="/things-to-do/events-calendar/summer/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Summer", "navType" : "Main"} }'>Summer</a> 266 267 </li> 268 269 270 </ul> 271 272 </li> 273 274 <li class="has-children" data-id="5ab409d66fabc5420e5167e6"> 275 <a href="/things-to-do/downtown/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Downtown", "navType" : "Main"} }'>Downtown</a> 276 277 </li> 278 279 <li class="has-children" data-id="5ab409d66fabc5420e516737"> 280 <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Farmers%20Markets", "navType" : "Main"} }'>
280Farmers Markets</a> 281 282 </li> 283 284 <li class="has-children" data-id="5ab409d56fabc5420e5166c3"> 285 <a href="/things-to-do/outdoor-adventure/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Outdoor%20Adventure", "navType" : "Main"} }'>Outdoor Adventure</a> 286 287 <i class="fa fa-angle-down menu-action"></i> 288 <ul> 289 290 291 <li class="has-children" data-id="5ab409e16fabc5420e517c52"> 292 <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bike%2C%20Hike%20%26%20Walk", "navType" : "Main"} }'>Bike, Hike & Walk</a> 293 294 </li> 295 296 <li class="has-children" data-id="5ab409e16fabc5420e517c8c"> 297 <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Ski%2C%20Skate%20%26%20Sled", "navType" : "Main"} }'>Ski, Skate & Sled</a> 298 299 </li> 300 301 <li class="has-children" data-id="5ab409e16fabc5420e517cc6"> 302 <a href="/things-to-do/outdoor-adventure/parks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parks", "navType" : "Main"} }'>Parks</a> 303 304 </li> 305 306 307 </ul> 308 309 </li> 310 311 <li class="has-children" data-id="5ab409d56fabc5420e5165a1"> 312 <a href="/things-to-do/shopping/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shopping", "navType" : "Main"} }'>Shopping</a> 313 314 <i class="fa fa-angle-down menu-action"></i> 315 <ul> 316 317 318 <li class="has-children" data-id="5ab409e06fabc5420e517bde"> 319 <a href="/things-to-do/shopping/only-in-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Only%20in%20Rochester", "navType" : "Main"} }'>Only in Rochester</a> 320 321 </li> 322 323 <li class="has-children" data-id="5ab409e06fabc5420e517af6"> 324 <a href="/things-to-do/shopping/apparel/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Apparel", "navType" : "Main"} }'>Apparel</a> 325 326 </li> 327 328 <li class="has-children" data-id="5ab409e06fabc5420e517b6a"> 329 <a href="/things-to-do/shopping/gifts/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Gifts%20%26%20Specialty%20Items", "navType" : "Main"} }'>Gifts & Specialty Items</a> 330 331 </li> 332 333 <li class="has-children" data-id="5ab409e06fabc5420e517abc"> 334 <a href="/things-to-do/shopping/antiques/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Antiques", "navType" : "Main"} }'>Antiques</a> 335 336 </li> 337 338 <li class="has-children" data-id="5ab409e06fabc5420e517b30"> 339 <a href="/things-to-do/shopping/department-stores/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Department%20Stores", "navType" : "Main"} }'>Department Stores</a> 340 341 </li> 342 343 <li class="has-children" data-id="5ab409e06fabc5420e517ba4"> 344 <a href="/things-to-do/shopping/shopping-centers-malls/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shopping%20Centers%20%26%20Malls", "navType" : "Main"} }'>Shopping Centers & Malls</a> 345 346 </li> 347 348 349 </ul> 350 351 </li> 352 353 <li class="has-children" data-id="5ab409d66fabc5420e516738"> 354 <a href="/things-to-do/wineries-breweries/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Wineries%20%26%20Breweries", "navType" : "Main"} }'>Wineries & Breweries</a> 355 356 </li> 357 358 <li class="has-children" data-id="5ab409d56fabc5420e5165db"> 359 <a href="/things-to-do/arts-culture/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Arts%20%26%20Culture", "navType" : "Main"} }'>Arts & Culture</a> 360 361 </li> 362 363 <li class="has-children" data-id="5ab409d56fabc5420e516615"> 364 <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Live%20Entertainment", "navType" : "Main"} }'>Live Entertainment</a> 365 366 </li> 367 368 <li class="has-children" data-id="5ab409d66fabc5420e5166fd"> 369 <a href="/things-to-do/attractions-entertainment/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Attractions%20%26%20Entertainment", "navType" : "Main"} }'>Attractions & Entertainment</a> 370 371 <i class="fa fa-angle-down menu-action"></i> 372 <ul> 373 374 375 <li class="has-children" data-id="5ab409e16fabc5420e517d00"> 376 <a href="/things-to-do/attractions-entertainment/movie-theaters/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Movie%20Theaters", "navType" : "Main"} }'>Movie Theaters</a> 377 378 </li> 379 380 <li class="has-children" data-id="5ab409e16fabc5420e517d3a"> 381 <a href="/things-to-do/attractions-entertainment/sports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sports", "navType" : "Main"} }'>Sports</a> 382 383 </li> 384 385 <li class="has-children" data-id="5c87cf7a18e1e6fa27c10c8d"> 386 <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Mayo%20Civic%20Center", "navType" : "Main"} }'>Mayo Civic Center</a> 387 388 </li> 389 390 391 </ul> 392 393 </li> 394 395 <li class="has-children" data-id="5ab409d56fabc5420e51664f"> 396 <a href="/things-to-do/history-and-heritage/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "History%20%26%20Heritage", "n
396avType" : "Main"} }'>History & Heritage</a> 397 398 <i class="fa fa-angle-down menu-action"></i> 399 <ul> 400 401 402 <li class="has-children" data-id="5c65d10f18e1e6fa27bef07a"> 403 <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Top%20Four%20Historical%20Sites", "navType" : "Main"} }'>Top Four Historical Sites</a> 404 405 </li> 406 407 408 </ul> 409 410 </li> 411 412 <li class="has-children" data-id="5ab409d56fabc5420e516567"> 413 <a href="/things-to-do/tours/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Tours", "navType" : "Main"} }'>Tours</a> 414 415 </li> 416 417 <li class="has-children" data-id="5cb0ef192473ea3636522ab2"> 418 <a href="/things-to-do/health-fitness-wellness/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Health%2C%20Fitness%20%26%20Wellness", "navType" : "Main"} }'>Health, Fitness & Wellness</a> 419 420 <i class="fa fa-angle-down menu-action"></i> 421 <ul> 422 423 424 <li class="has-children" data-id="5cb4da11da6ad739bddb385d"> 425 <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Rest%20and%20Relaxation%20in%20Rochester%2C%20MN", "navType" : "Main"} }'>Rest and Relaxation in Rochester, MN</a> 426 427 </li> 428 429 430 </ul> 431 432 </li> 433 434 <li class="has-children" data-id="5ab409d66fabc5420e516772"> 435 <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Kid%20Friendly", "navType" : "Main"} }'>Kid Friendly</a> 436 437 </li> 438 439 <li class="has-children" data-id="5ab409d66fabc5420e516820"> 440 <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hidden%20Gems%20Nearby", "navType" : "Main"} }'>Hidden Gems Nearby</a> 441 442 </li> 443 444 <li class="has-children" data-id="5ab409d56fabc5420e516689"> 445 <a href="/things-to-do/day-trips/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Day%20Trips", "navType" : "Main"} }'>Day Trips</a> 446 447 </li> 448 449 450 </ul> 451 452 </li> 453 454 <li class="has-children" data-id="5ab409d26fabc5420e5160c6"> 455 <a href="/restaurants/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Restaurants", "navType" : "Main"} }'>Restaurants</a> 456 457 <ul class="sub-nav"> 458 459 460 <li class="has-children" data-id="5ab409d76fabc5420e5169f0"> 461 <a href="/restaurants/only-in-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Only%20in%20Rochester", "navType" : "Main"} }'>Only in Rochester</a> 462 463 </li> 464 465 <li class="has-children" data-id="5ab409d76fabc5420e5169b6"> 466 <a href="/restaurants/new-restaurants/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "New%20Restaurants", "navType" : "Main"} }'>New Restaurants</a> 467 468 </li> 469 470 <li class="has-children" data-id="5ab409d66fabc5420e51685a"> 471 <a href="/restaurants/downtown/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Downtown", "navType" : "Main"} }'>Downtown</a> 472 473 </li> 474 475 <li class="has-children" data-id="5dc9e41556039ec7ebc3f14b"> 476 <a href="/restaurants/bars/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bars", "navType" : "Main"} }'>Bars</a> 477 478 </li> 479 480 <li class="has-children" data-id="5ab409d66fabc5420e5168ce"> 481 <a href="/restaurants/fine-dining/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fine%20Dining", "n
481avType" : "Main"} }'>Fine Dining</a> 482 483 </li> 484 485 <li class="has-children" data-id="5ab409d66fabc5420e516942"> 486 <a href="/restaurants/food-trucks/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Food%20Trucks", "navType" : "Main"} }'>Food Trucks</a> 487 488 </li> 489 490 <li class="has-children" data-id="5ab409d66fabc5420e516894"> 491 <a href="/restaurants/farmers-market/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Farmers%20Market", "navType" : "Main"} }'>Farmers Market</a> 492 493 </li> 494 495 <li class="has-children" data-id="5ab409d66fabc5420e516908"> 496 <a href="/restaurants/food-and-drink-events/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Food%20%26%20Drink%20Events", "navType" : "Main"} }'>Food & Drink Events</a> 497 498 </li> 499 500 <li class="has-children" data-id="5ab409d76fabc5420e516a64"> 501 <a href="/restaurants/search-by-cuisine-type/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Search%20by%20Cuisine%20Type", "navType" : "Main"} }'>Search by Cuisine Type</a> 502 503 <i class="fa fa-angle-down menu-action"></i> 504 <ul> 505 506 507 <li class="has-children" data-id="5ab409e16fabc5420e517d74"> 508 <a href="/restaurants/search-by-cuisine-type/american/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "American", "navType" : "Main"} }'>American</a> 509 510 </li> 511 512 <li class="has-children" data-id="5ab409e16fabc5420e517dae"> 513 <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Coffee%20%26%20Tea", "navType" : "Main"} }'>Coffee & Tea</a> 514 515 </li> 516 517 <li class="has-children" data-id="5ab409e16fabc5420e517de8"> 518 <a href="/restaurants/search-by-cuisine-type/international/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "International", "navType" : "Main"} }'>International</a> 519 520 </li> 521 522 <li class="has-children" data-id="5ab409e16fabc5420e517e22"> 523 <a href="/restaurants/search-by-cuisine-type/pizza/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Pizza", "navType" : "Main"} }'>Pizza</a> 524 525 </li> 526 527 <li class="has-children" data-id="5ab409e16fabc5420e517e5c"> 528 <a href="/restaurants/search-by-cuisine-type/seafood/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Seafood", "navType" : "Main"} }'>Seafood</a> 529 530 </li> 531 532 <li class="has-children" data-id="5ab409e26fabc5420e517e96"> 533 <a href="/restaurants/search-by-cuisine-type/sweet-treats/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sweet%20Treats", "navType" : "Main"} }'>Sweet Treats</a> 534 535 </li> 536 537 538 </ul> 539 540 </li> 541 542 <li class="has-children" data-id="5ab409d66fabc5420e51697c"> 543 <a href="/restaurants/kid-friendly/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Kid%20Friendly", "navType" : "Main"} }'>Kid Friendly</a> 544 545 </li> 546 547 <li class="has-children" data-id="6859adf51ade6da28e8983fb"> 548 <a href="/restaurants/eat-confidently/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Eat.%20Confidently.", "navType" : "Main"} }'>Eat. Confidently.</a> 549 550 </li> 551 552 553 </ul> 554 555 </li> 556 557 <li class="has-children" data-id="5ab409d26fabc5420e516100"> 558 <a href="/planning-tools/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Planning%20Tools", "navType" : "Main"} }'>Planning Tools</a> 559 560 <ul class="sub-nav"> 561 562 563 <li class="has-children" data-id="5ab409d76fabc5420e516a9e"> 564 <a href="/planning-tools/getting-here/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Here", "navType" : "Main"} }'>Getting Here</a> 565 566 <i class="fa fa-angle-down menu-action"></i> 567 <ul> 568 569 570 <li class="has-children" data-id="5ab409e26fabc5420e517ed0"> 571 <a href="/planning-tools/getting-here/airports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Airports", "navType" : "Main"} }'>Airports</a> 572 573 </li> 574 575 <li class="has-children" data-id="5ab409e26fabc5420e517f0a"> 576 <a href="/planning-tools/getting-here/driving-directions/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Driving%20Directions", "navType" : "Main"} }'>Driving Directions</a> 577 578 </li> 579 580 581 </ul> 582 583 </li> 584 585 <li class="has-children" data-id="5ab409d76fabc5420e516b12"> 586 <a href="/planning-tools/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>
586Getting Around</a> 587 588 <i class="fa fa-angle-down menu-action"></i> 589 <ul> 590 591 592 <li class="has-children" data-id="5ab409e26fabc5420e51802c"> 593 <a href="/planning-tools/getting-around/shuttle-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Shuttle%20Service", "navType" : "Main"} }'>Shuttle Service</a> 594 595 </li> 596 597 <li class="has-children" data-id="5ab409e26fabc5420e517ff2"> 598 <a href="/planning-tools/getting-around/parking/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parking", "navType" : "Main"} }'>Parking</a> 599 600 </li> 601 602 <li class="has-children" data-id="5ab409e26fabc5420e518066"> 603 <a href="/planning-tools/getting-around/skyway-subway/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Skyway%2FSubway", "navType" : "Main"} }'>Skyway/Subway</a> 604 605 </li> 606 607 608 </ul> 609 610 </li> 611 612 <li class="has-children" data-id="5ab409d76fabc5420e516b4c"> 613 <a href="/planning-tools/travel-guide/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Insider%27s%20Guide", "navType" : "Main"} }'>Insider's Guide</a> 614 615 </li> 616 617 <li class="has-children" data-id="5ab409d76fabc5420e516bc0"> 618 <a href="/planning-tools/weather/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Weather", "navType" : "Main"} }'>Weather</a> 619 620 </li> 621 622 <li class="has-children" data-id="5c65ad3518e1e6fa27beeb3f"> 623 <a href="/planning-tools/traveling-with-pets/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Traveling%20With%20Pets", "navType" : "Main"} }'>Traveling With Pets</a> 624 625 </li> 626 627 <li class="has-children" data-id="5ab409d86fabc5420e516bfa"> 628 <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Weddings%2C%20Parties%20%26%20Celebrations", "navType" : "Main"} }'>Weddings, Parties & Celebrations</a> 629 630 </li> 631 632 <li class="has-children" data-id="5ab409d86fabc5420e516bfb"> 633 <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "University%20of%20Minnesota%20Rochester", "navType" : "Main"} }'>University of Minnesota Rochester</a> 634 635 </li> 636 637 638 </ul> 639 640 </li> 641 642 <li class="has-children" data-id="5ab409d26fabc5420e51613a"> 643 <a href="/mayo-clinic/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Visit%20Mayo%20Clinic", "navType" : "Main"} }'>Visit Mayo Clinic</a> 644 645 <ul class="sub-nav"> 646 647 648 <li class="has-children" data-id="5ab409d86fabc5420e516c35"> 649 <a href="/mayo-clinic/hotels/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hotels", "navType" : "Main"} }'>Hotels</a> 650 651 <i class="fa fa-angle-down menu-action"></i> 652 <ul> 653 654 655 <li class="has-children" data-id="5ab409e36fabc5420e518188"> 656 <a href="/mayo-clinic/hotels/charitable-lodging/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Charitable%20Lodging", "navType" : "Main"} }'>Charitable Lodging</a> 657 658 </li> 659 660 661 </ul> 662 663 </li> 664 665 <li class="has-children" data-id="5ab409d86fabc5420e516c6f"> 666 <a href="/mayo-clinic/getting-here/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Here", "navType" : "Main"} }'>Getting Here</a> 667 668 </li> 669 670 <li class="has-children" data-id="5ab409d86fabc5420e516ca9"> 671 <a href="/mayo-clinic/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>
671Getting Around</a> 672 673 </li> 674 675 <li class="has-children" data-id="5ab409d86fabc5420e516ce3"> 676 <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Mayo%20Clinic%20Maps", "navType" : "Main"} }'>Mayo Clinic Maps</a> 677 678 </li> 679 680 <li class="has-children" data-id="5ab409d86fabc5420e516ce4"> 681 <a href="/mayo-clinic/faq/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "FAQ", "navType" : "Main"} }'>FAQ</a> 682 683 </li> 684 685 <li class="has-children" data-id="5ab409d86fabc5420e516d1e"> 686 <a href="/mayo-clinic/history/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "History", "navType" : "Main"} }'>History</a> 687 688 </li> 689 690 <li class="has-children" data-id="5ab409d86fabc5420e516d58"> 691 <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Restaurants%20Nearby", "navType" : "Main"} }'>Restaurants Nearby</a> 692 693 </li> 694 695 <li class="has-children" data-id="5ab409d86fabc5420e516d92"> 696 <a href="/mayo-clinic/parking/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parking", "navType" : "Main"} }'>Parking</a> 697 698 </li> 699 700 701 </ul> 702 703 </li> 704 705 706 </ul> 707
708<script type="text/javascript"> 709 require(["jquery"], function($) { 710 var root = $('[data-guid=28e62df6-0c2e-4504-834d-e0609d63839e]'); 711 var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); 712 var parentIds = navItemProperties.parents_ids || []; 713 var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; 714 var current = root.find('[data-id="' + rootParent + '"]'); 715 var expAccred = navItemProperties.folderHref.match(/^\/experience-accreditation\//); 716 717 root.find('.menu-action').on('click', function() { 718 $(this).toggleClass('active'); 719 $(this).siblings().toggleClass('active'); 720 }); 721 parentIds.forEach(function(parentId){ 722 var parentItems = root.find('[data-id="' + parentId + '"]'); 723 parentItems.each(function(){ 724 $(this).parent().addClass('current'); 725 }); 726 }); 727 current.addClass('current'); 728 root.find('.micro').not('.micro.current').remove(); 729 730 731 }); 732</script>
732</div> 733 </nav> 734 735 736 <div class="mobile-nav-container hide-for-large-up"> 737 <div class="mobile-nav-action"></div> 738 <div class="mobile-nav-dropdown"> 739 <div class="mobile-nav-dropdown-top"> 740 741 <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_2 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="21" data-sv-index="2" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 742 <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> 743 <span>Partner</span><span>Extranet</span> 744 </a> 745</div> 746 <span> 747 748 <div data-sv-weatherWidget class="med-header-weather-wrapper weather"></div> 749 750 <div class="mobile-search"> 751 <div data-civid="67dc3996748b90425831a2e4" class="contentRender contentRender_5 contentRender_type_widget contentRender_name_plugins_search_headerbox" data-sv-time="21" data-sv-index="5" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 752
753<script type="text/template" data-template> 754 755 <div class="search" id="search_widget_headerbox_{{guid}}"> 756 <span class="search-action"><i class="fa fa-search fa-flip-horizontal" aria-hidden="true"></i><img class="search-img"></span> 757 <div class="bg-search-form"></div> 758 <div class="search-form"> 759 <form data-sv-searchForm action="{{customSettings.navSearch}}" method="GET"> 760 <input data-sv-searchInput name="q" type="search" class="searchInput" autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="Search..." value="" /> 761 <button data-sv-searchBtn type="submit" name="submit" class="searchBtn"><i class="fa fa-search" aria-hidden="true"></i></button> 762 </form> 763 <div class="toggle-search" data-toggle-mayocc-search> 764 <i class="fa fa-search" aria-hidden="true"></i> 765 </div> 766 </div> 767 </div> 768 769</script>
769 770
771<script> 772require(["jquery","goatee", "domReady!"], function($, goatee) { 773 var sc = $('[data-sv-widgetSearchBoxContainer]').not('.insertedWidget').first(); 774 var sb = $('#search_widget_headerbox_851d61a2-80da-4b55-8780-b28abca61d0e'); 775 var form = sb.find('[data-sv-searchForm]'); 776 var inp = form.find('[data-sv-searchInput]'); 777 var data = {"sections":{},"data":{},"guid":"851d61a2-80da-4b55-8780-b28abca61d0e","customSettings":{"navSearch":"/search/"},"widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":5,"guid":"851d61a2-80da-4b55-8780-b28abca61d0e","data":{},"civ":{"instance":{"type":"widget","name":"plugins_search_headerbox","site_name":"primary","saved":false,"created":"2025-03-20T15:59:42.570Z","updated":"2025-03-20T15:59:42.570Z","deleted":false,"id":"67dc3996748b90425831a2e4","version_id_string":"67dc3996748b90425831a2e5"},"version":{"created":"2025-03-20T15:59:42.574Z","id":"67dc3996748b90425831a2e5","instance_id_string":"67dc3996748b90425831a2e4","data":{}},"onTrunk":true,"civid":"67dc3996748b90425831a2e4"},"name":"plugins_search_headerbox","component":"WidgetSearchHeaderbox"}}; 778 var template = $("[data-template]").html(); 779 var html = goatee.fill(template, data); 780 var desktopSearchbox = $('.main-search'); 781 var mobileSearchbox = $('.mobile-search'); 782 783 desktopSearchbox.html(html); 784 mobileSearchbox.html(html); 785 786 sc.append(sb).addClass('insertedWidget'); 787 form.find('[data-sv-searchBtn]').click(function(){ form.submit(); }) 788 form.submit(function(e){ if (inp.val().length === 0) { e.preventDefault(); } }); 789 $('.search-action').on('click', function() { 790 $(this).toggleClass('active'); 791 $(this).siblings().toggleClass('active'); 792 }); 793 794 var headerPanel = document.querySelector(".panel_custom_header"); 795 var toggle = document.querySelector("[data-toggle-mayocc-search]"); 796 797 toggle.addEventListener("click", function() { 798 headerPanel.classList.toggle("search-active"); 799 }); 800}); 801</script>
801</div> 802 </div> 803 </span> 804 </div> 805 <nav class="main-nav"> 806 <div data-civid="67dc3996748b90425831a2ea" class="contentRender contentRender_8 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="45" data-sv-index="8" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 807 808 809 810 811 <nav class="main-nav" data-guid="0748a1cb-de4a-4def-b048-1d9132577ffd"> 812 <ul class="main-nav-style-mobile"> 813 814 815 <li class="has-children" > 816 <a href="/places-to-stay/" target="_self" data-id="5ab409d16fabc5420e516052">Places to Stay</a> 817 818 <i class="fa fa-angle-down menu-action"></i> 819 <ul class="sub-nav-mobile"> 820 821 822 <li class="has-children" > 823 <a href="/places-to-stay/hotels/" target="_self" data-id="5ab409d46fabc5420e5163d1">Hotels</a> 824 825 </li> 826 827 <li class="has-children" > 828 <a href="/places-to-stay/extended-stay/" target="_self" data-id="5ab409d46fabc5420e516445">Extended Stay</a> 829 830 </li> 831 832 <li class="has-children" > 833 <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-id="5ab409d46fabc5420e51647f">Campgrounds & RV Parks</a> 834 835 </li> 836 837 838 </ul> 839 840 </li> 841 842 <li class="has-children" > 843 <a href="/things-to-do/" target="_self" data-id="5ab409d26fabc5420e51608c">Things to Do</a> 844 845 <i class="fa fa-angle-down menu-action"></i> 846 <ul class="sub-nav-mobile"> 847 848 849 <li class="has-children" > 850 <a href="/things-to-do/events-calendar/" target="_self" data-id="5ab409d46fabc5420e51652d">Events Calendar</a> 851 852 <i class="fa fa-angle-down menu-action"></i> 853 <ul> 854 855 856 <li class="has-children" > 857 <a href="/things-to-do/events-calendar/fairs-festivals/" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> 858 859 </li> 860 861 <li class="has-children" > 862 <a href="/things-to-do/events-calendar/fall/" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> 863 864 </li> 865 866 <li class="has-children" > 867 <a href="/things-to-do/events-calendar/winter/" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> 868 869 </li> 870 871 <li class="has-children" > 872 <a href="/things-to-do/events-calendar/spring/" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> 873 874 </li> 875 876 <li class="has-children" > 877 <a href="/things-to-do/events-calendar/summer/" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> 878 879 </li> 880 881 882 </ul> 883 884 </li> 885 886 <li class="has-children" > 887 <a href="/things-to-do/downtown/" target="_self" data-id="5ab409d66fabc5420e5167e6">Downtown</a> 888 889 </li> 890 891 <li class="has-children" > 892 <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516737">Farmers Markets</a> 893 894 </li> 895 896 <li class="has-children" > 897 <a href="/things-to-do/outdoor-adventure/" target="_self" data-id="5ab409d56fabc5420e5166c3">Outdoor Adventure</a> 898 899 <i class="fa fa-angle-down menu-action"></i> 900 <ul> 901 902 903 <li class="has-children" > 904 <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> 905 906 </li> 907 908 <li class="has-children" > 909 <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> 910 911 </li> 912 913 <li class="has-children" > 914 <a href="/things-to-do/outdoor-adventure/parks/" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> 915 916 </li> 917 918 919 </ul> 920 921 </li> 922 923 <li class="has-children" > 924 <a href="/things-to-do/shopping/" target="_self" data-id="5ab409d56fabc5420e5165a1">Shopping</a> 925 926 <i class="fa fa-angle-down menu-action"></i> 927 <ul> 928 929 930 <li class="has-children" > 931 <a href="/things-to-do/shopping/only-in-rochester/" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> 932 933 </li> 934 935 <li class="has-children" > 936 <a href="/things-to-do/shopping/apparel/" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> 937 938 </li> 939 940 <li class="has-children" > 941 <a href="/things-to-do/shopping/gifts/" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> 942 943 </li> 944 945 <li class="has-children" > 946 <a href="/things-to-do/shopping/antiques/" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> 947 948 </li> 949 950 <li class="has-children" > 951 <a href="/things-to-do/shopping/department-stores/" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> 952 953 </li> 954 955 <li class="has-children" > 956 <a href="/things-to-do/shopping/shopping-centers-malls/" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> 957 958 </li> 959 960 961 </ul> 962 963 </li> 964 965 <li class="has-children" > 966 <a href="/things-to-do/wineries-breweries/" target="_self" data-id="5ab409d66fabc5420e516738">Wineries & Breweries</a> 967 968 </li> 969 970 <li class="has-children" > 971 <a href="/things-to-do/arts-culture/" target="_self" data-id="5ab409d56fabc5420e5165db">Arts & Culture</a> 972 973 </li> 974 975 <li class="has-children" > 976 <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d56fabc5420e516615">Live Entertainment</a> 977 978 </li> 979 980 <li class="has-children" > 981 <a href="/things-to-do/attractions-entertainment/" target="_self" data-id="5ab409d66fabc5420e5166fd">Attractions & Entertainment</a> 982 983 <i class="fa fa-angle-down menu-action"></i> 984 <ul> 985 986 987 <li class="has-children" > 988 <a href="/things-to-do/attractions-entertainment/movie-theaters/" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> 989 990 </li> 991 992 <li class="has-children" > 993 <a href="/things-to-do/attractions-entertainment/sports/" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> 994 995 </li> 996 997 <li class="has-children" > 998 <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> 999 1000 </li> 1001 1002 1003 </ul> 1004 1005 </li> 1006 1007 <li class="has-children" > 1008 <a href="/things-to-do/history-and-heritage/" target="_self" data-id="5ab409d56fabc5420e51664f">History & Heritage</a> 1009 1010 <i class="fa fa-angle-down menu-action"></i> 1011 <ul> 1012 1013 1014 <li class="has-children" > 1015 <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> 1016 1017 </li> 1018 1019 1020 </ul> 1021 1022 </li> 1023 1024 <li class="has-children" > 1025 <a href="/things-to-do/tours/" target="_self" data-id="5ab409d56fabc5420e516567">Tours</a> 1026 1027 </li> 1028 1029 <li class="has-children" > 1030 <a href="/things-to-do/health-fitness-wellness/" target="_self" data-id="5cb0ef192473ea3636522ab2">Health, Fitness & Wellness</a> 1031 1032 <i class="fa fa-angle-down menu-action"></i> 1033 <ul> 1034 1035 1036 <li class="has-children" > 1037 <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" target="_self" data-id="5cb4da11da6ad739bddb385d">Rest and Relaxation in Rochester, MN</a> 1038 1039 </li> 1040 1041 1042 </ul> 1043 1044 </li> 1045 1046 <li class="has-children" > 1047 <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-id="5ab409d66fabc5420e516772">Kid Friendly</a> 1048 1049 </li> 1050 1051 <li class="has-children" > 1052 <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-id="5ab409d66fabc5420e516820">Hidden Gems Nearby</a> 1053 1054 </li> 1055 1056 <li class="has-children" > 1057 <a href="/things-to-do/day-trips/" target="_self" data-id="5ab409d56fabc5420e516689">Day Trips</a> 1058 1059 </li> 1060 1061 1062 </ul> 1063 1064 </li> 1065 1066 <li class="has-children" > 1067 <a href="/restaurants/" target="_self" data-id="5ab409d26fabc5420e5160c6">Restaurants</a> 1068 1069 <i class="fa fa-angle-down menu-action"></i> 1070 <ul class="sub-nav-mobile"> 1071 1072 1073 <li class="has-children" > 1074 <a href="/restaurants/only-in-rochester/" target="_self" data-id="5ab409d76fabc5420e5169f0">Only in Rochester</a> 1075 1076 </li> 1077 1078 <li class="has-children" > 1079 <a href="/restaurants/new-restaurants/" target="_self" data-id="5ab409d76fabc5420e5169b6">New Restaurants</a> 1080 1081 </li> 1082 1083 <li class="has-children" > 1084 <a href="/restaurants/downtown/" target="_self" data-id="5ab409d66fabc5420e51685a">Downtown</a> 1085 1086 </li> 1087 1088 <li class="has-children" > 1089 <a href="/restaurants/bars/" target="_self" data-id="5dc9e41556039ec7ebc3f14b">Bars</a> 1090 1091 </li> 1092 1093 <li class="has-children" > 1094 <a href="/restaurants/fine-dining/" target="_self" data-id="5ab409d66fabc5420e5168ce">Fine Dining</a> 1095 1096 </li> 1097 1098 <li class="has-children" > 1099 <a href="/restaurants/food-trucks/" target="_self" data-id="5ab409d66fabc5420e516942">Food Trucks</a> 1100 1101 </li> 1102 1103 <li class="has-children" > 1104 <a href="/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516894">
1104Farmers Market</a> 1105 1106 </li> 1107 1108 <li class="has-children" > 1109 <a href="/restaurants/food-and-drink-events/" target="_self" data-id="5ab409d66fabc5420e516908">Food & Drink Events</a> 1110 1111 </li> 1112 1113 <li class="has-children" > 1114 <a href="/restaurants/search-by-cuisine-type/" target="_self" data-id="5ab409d76fabc5420e516a64">Search by Cuisine Type</a> 1115 1116 <i class="fa fa-angle-down menu-action"></i> 1117 <ul> 1118 1119 1120 <li class="has-children" > 1121 <a href="/restaurants/search-by-cuisine-type/american/" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> 1122 1123 </li> 1124 1125 <li class="has-children" > 1126 <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> 1127 1128 </li> 1129 1130 <li class="has-children" > 1131 <a href="/restaurants/search-by-cuisine-type/international/" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> 1132 1133 </li> 1134 1135 <li class="has-children" > 1136 <a href="/restaurants/search-by-cuisine-type/pizza/" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> 1137 1138 </li> 1139 1140 <li class="has-children" > 1141 <a href="/restaurants/search-by-cuisine-type/seafood/" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> 1142 1143 </li> 1144 1145 <li class="has-children" > 1146 <a href="/restaurants/search-by-cuisine-type/sweet-treats/" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> 1147 1148 </li> 1149 1150 1151 </ul> 1152 1153 </li> 1154 1155 <li class="has-children" > 1156 <a href="/restaurants/kid-friendly/" target="_self" data-id="5ab409d66fabc5420e51697c">Kid Friendly</a> 1157 1158 </li> 1159 1160 <li class="has-children" > 1161 <a href="/restaurants/eat-confidently/" target="_self" data-id="6859adf51ade6da28e8983fb">Eat. Confidently.</a> 1162 1163 </li> 1164 1165 1166 </ul> 1167 1168 </li> 1169 1170 <li class="has-children" > 1171 <a href="/planning-tools/" target="_self" data-id="5ab409d26fabc5420e516100">Planning Tools</a> 1172 1173 <i class="fa fa-angle-down menu-action"></i> 1174 <ul class="sub-nav-mobile"> 1175 1176 1177 <li class="has-children" > 1178 <a href="/planning-tools/getting-here/" target="_self" data-id="5ab409d76fabc5420e516a9e">Getting Here</a> 1179 1180 <i class="fa fa-angle-down menu-action"></i> 1181 <ul> 1182 1183 1184 <li class="has-children" > 1185 <a href="/planning-tools/getting-here/airports/" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> 1186 1187 </li> 1188 1189 <li class="has-children" > 1190 <a href="/planning-tools/getting-here/driving-directions/" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> 1191 1192 </li> 1193 1194 1195 </ul> 1196 1197 </li> 1198 1199 <li class="has-children" > 1200 <a href="/planning-tools/getting-around/" target="_self" data-id="5ab409d76fabc5420e516b12">Getting Around</a> 1201 1202 <i class="fa fa-angle-down menu-action"></i> 1203 <ul> 1204 1205 1206 <li class="has-children" > 1207 <a href="/planning-tools/getting-around/shuttle-service/" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> 1208 1209 </li> 1210 1211 <li class="has-children" > 1212 <a href="/planning-tools/getting-around/parking/" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> 1213 1214 </li> 1215 1216 <li class="has-children" > 1217 <a href="/planning-tools/getting-around/skyway-subway/" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> 1218 1219 </li> 1220 1221 1222 </ul> 1223 1224 </li> 1225 1226 <li class="has-children" > 1227 <a href="/planning-tools/travel-guide/" target="_self" data-id="5ab409d76fabc5420e516b4c">Insider's Guide</a> 1228 1229 </li> 1230 1231 <li class="has-children" > 1232 <a href="/planning-tools/weather/" target="_self" data-id="5ab409d76fabc5420e516bc0">Weather</a> 1233 1234 </li> 1235 1236 <li class="has-children" > 1237 <a href="/planning-tools/traveling-with-pets/" target="_self" data-id="5c65ad3518e1e6fa27beeb3f">Traveling With Pets</a> 1238 1239 </li> 1240 1241 <li class="has-children" > 1242 <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d86fabc5420e516bfa">Weddings, Parties & Celebrations</a> 1243 1244 </li> 1245 1246 <li class="has-children" > 1247 <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-id="5ab409d86fabc5420e516bfb">University of Minnesota Rochester</a> 1248 1249 </li> 1250 1251 1252 </ul> 1253 1254 </li> 1255 1256 <li class="has-children" > 1257 <a href="/mayo-clinic/" target="_self" data-id="5ab409d26fabc5420e51613a">Visit Mayo Clinic</a> 1258 1259 <i class="fa fa-angle-down menu-action"></i> 1260 <ul class="sub-nav-mobile"> 1261 1262 1263 <li class="has-children" > 1264 <a href="/mayo-clinic/hotels/" target="_self" data-id="5ab409d86fabc5420e516c35">Hotels</a> 1265 1266 <i class="fa fa-angle-down menu-action"></i> 1267 <ul> 1268 1269 1270 <li class="has-children" > 1271 <a href="/mayo-clinic/hotels/charitable-lodging/" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> 1272 1273 </li> 1274 1275 1276 </ul> 1277 1278 </li> 1279 1280 <li class="has-children" > 1281 <a href="/mayo-clinic/getting-here/" target="_self" data-id="5ab409d86fabc5420e516c6f">Getting Here</a> 1282 1283 </li> 1284 1285 <li class="has-children" > 1286 <a href="/mayo-clinic/getting-around/" target="_self" data-id="5ab409d86fabc5420e516ca9">
1286Getting Around</a> 1287 1288 </li> 1289 1290 <li class="has-children" > 1291 <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-id="5ab409d86fabc5420e516ce3">Mayo Clinic Maps</a> 1292 1293 </li> 1294 1295 <li class="has-children" > 1296 <a href="/mayo-clinic/faq/" target="_self" data-id="5ab409d86fabc5420e516ce4">FAQ</a> 1297 1298 </li> 1299 1300 <li class="has-children" > 1301 <a href="/mayo-clinic/history/" target="_self" data-id="5ab409d86fabc5420e516d1e">History</a> 1302 1303 </li> 1304 1305 <li class="has-children" > 1306 <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-id="5ab409d86fabc5420e516d58">Restaurants Nearby</a> 1307 1308 </li> 1309 1310 <li class="has-children" > 1311 <a href="/mayo-clinic/parking/" target="_self" data-id="5ab409d86fabc5420e516d92">Parking</a> 1312 1313 </li> 1314 1315 1316 </ul> 1317 1318 </li> 1319 1320 1321 </ul> 1322 </nav> 1323
1324<script type="text/javascript"> 1325 require(["jquery"], function($) { 1326 var root = $('[data-guid=0748a1cb-de4a-4def-b048-1d9132577ffd]'); 1327 1328 root.find('.menu-action').on('click', function() { 1329 $(this).toggleClass('active'); 1330 $(this).siblings().toggleClass('active'); 1331 }); 1332 1333 var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); 1334 var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); 1335 currentLink.addClass('active') 1336 var parentIds = navItemProperties.parents_ids || []; 1337 var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; 1338 var current = root.find('[data-id="' + rootParent + '"]'); 1339 parentIds.forEach(function(parentId){ 1340 var parentItems = root.find('[data-id="' + parentId + '"]'); 1341 parentItems.each(function(){ 1342 $(this).parent().addClass('current'); 1343 }); 1344 }); 1345 current.addClass('current'); 1346 root.find('.micro-mobile').not('.micro-mobile.current').remove(); 1347 }); 1348</script>
1348</div><div data-civid="67dc3996748b90425831a2ec" class="contentRender contentRender_9 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="42" data-sv-index="9" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> 1349 1350 1351 1352 1353 <nav class="indy-nav" data-guid="95c67ab9-df3a-4ac0-86a4-8025b2c9bc09"> 1354 <ul class="indy-nav-style-mobile"> 1355 1356 1357 <li class="has-children" > 1358 <a href="/meet/" target="_self" data-id="5ab409d26fabc5420e516174">Meet in Rochester</a> 1359 1360 <i class="fa fa-angle-down menu-action"></i> 1361 <ul class="sub-nav-mobile"> 1362 1363 1364 <li class="has-children" > 1365 <a href="/meet/mayo-civic-center/" target="_self" data-id="5ab409d96fabc5420e516dcc">Convention Center</a> 1366 1367 </li> 1368 1369 <li class="has-children" > 1370 <a href="/meet/facilities/" target="_self" data-id="5ab409d96fabc5420e516e34">Meeting Facilities</a> 1371 1372 <i class="fa fa-angle-down menu-action"></i> 1373 <ul> 1374 1375 1376 <li class="has-children" > 1377 <a href="https://www.experiencerochestermn.com/meet/mayo-civic-center/" target="_self" data-id="5ab409e36fabc5420e5181f6">Convention Center</a> 1378 1379 </li> 1380 1381 <li class="has-children" > 1382 <a href="/meet/facilities/hotels/" target="_self" data-id="5ab409e36fabc5420e5181f7">Hotels</a> 1383 1384 </li> 1385 1386 <li class="has-children" > 1387 <a href="/meet/facilities/unique-off-site-venues/" target="_self" data-id="5ab409e36fabc5420e51822b">Unique Off-site Venues</a> 1388 1389 </li> 1390 1391 1392 </ul> 1393 1394 </li> 1395 1396 <li class="has-children" > 1397 <a href="/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d96fabc5420e516e68">Weddings, Parties & Celebrations</a> 1398 1399 </li> 1400 1401 <li class="has-children" > 1402 <a href="/meet/green-initiatives/" target="_self" data-id="5ab409d96fabc5420e516ed0">Green Initiatives</a> 1403 1404 </li> 1405 1406 <li class="has-children" > 1407 <a href="https://www.experiencerochestermn.com/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d96fabc5420e516f04">Nightlife</a> 1408 1409 </li> 1410 1411 <li class="has-children" > 1412 <a href="/meet/trolley/" target="_self" data-id="5ab409d96fabc5420e516f38">Trolley</a> 1413 1414 </li> 1415 1416 <li class="has-children" > 1417 <a href="https://www.experiencerochestermn.com/sports/" target="_self" data-id="5ab409d96fabc5420e516fa0">Sports</a> 1418 1419 </li> 1420 1421 <li class="has-children" > 1422 <a href="/meet/contact-us/" target="_self" data-id="5ab409d96fabc5420e516fa1">Contact Us</a> 1423 1424 </li> 1425 1426 <li class="has-children" > 1427 <a href="/meet/medical-meetings/" target="_self" data-id="6435ac6cccc386387b0c92c8">Medical Meetings and Conventions in Rochester, MN</a> 1428 1429 </li> 1430 1431 1432 </ul> 1433 1434 </li> 1435 1436 <li class="has-children" > 1437 <a href="/sports/" target="_self" data-id="5ab409d26fabc5420e5161a8">Sports</a> 1438 1439 <i class="fa fa-angle-down menu-action"></i> 1440 <ul class="sub-nav-mobile"> 1441 1442 1443 <li class="has-children" > 1444 <a href="http://www.rochsports.org/page/show/921763-rochester-sports-calendar" target="_self" data-id="5ab409da6fabc5420e51703d">Sports Events Calendar</a> 1445 1446 </li> 1447 1448 1449 </ul> 1450 1451 </li> 1452 1453 <li class="has-children" > 1454 <a href="/blog/" target="_self" data-id="5aaafc888c50bb2d2882af24">Blog</a> 1455 1456 </li> 1457 1458 <li class="has-children" > 1459 <a href="/media/" target="_self" data-id="5ab409d26fabc5420e5161dc">Media</a> 1460 1461 <i class="fa fa-angle-down menu-action"></i> 1462 <ul class="sub-nav-mobile"> 1463 1464 1465 <li class="has-children" > 1466 <a href="/media/rankings-and-recognitions/" target="_self" data-id="5ab409da6fabc5420e5170db">Rankings & Recognitions</a> 1467 1468 </li> 1469 1470 <li class="has-children" > 1471 <a href="/media/experience-rochester-talent-sign-up/" target="_self" data-id="6a95d5c609f727dc0a7f9401">Experience Rochester Talent Sign-Up</a> 1472 1473 </li> 1474 1475 1476 </ul> 1477 1478 </li> 1479 1480 <li class="has-children" > 1481 <a href="/podcast/" target="_self" data-id="62101e0d19ab721caededf52">Podcast</a> 1482 1483 </li> 1484 1485 1486 </ul> 1487 </nav> 1488
1489<script type="text/javascript"> 1490 require(["jquery"], function($) { 1491 var root = $('[data-guid=95c67ab9-df3a-4ac0-86a4-8025b2c9bc09]'); 1492 1493 root.find('.menu-action').on('click', function() { 1494 $(this).toggleClass('active'); 1495 $(this).siblings().toggleClass('active'); 1496 }); 1497 1498 var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); 1499 var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); 1500 currentLink.addClass('active') 1501 var parentIds = navItemProperties.parents_ids || []; 1502 var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; 1503 var current = root.find('[data-id="' + rootParent + '"]'); 1504 parentIds.forEach(function(parentId){ 1505 var parentItems = root.find('[data-id="' + parentId + '"]'); 1506 parentItems.each(function(){ 1507 $(this).parent().addClass('current'); 1508 }); 1509 }); 1510 current.addClass('current'); 1511 root.find('.micro-mobile').not('.micro-mobile.current').remove(); 1512 }); 1513</script>
1513</div> 1514 </nav> 1515 </div> 1516 </div> 1517 1518 1519 </section> 1520</header> 1521</div></div> 1522 </div> 1523 <div class="slideshow_container"> 1524 <div data-civid="5d70237677e8d17cf5003122" class="contentRender contentRender_10 contentRender_type_widget contentRender_name_plugins_collections_type_custom_header_slides contentRender_name_plugins_collections_template_custom_header_slideshow_interior" data-sv-time="46" data-sv-index="10" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 1525<div class="homepage-header-slideshow-holder" data-guid="77983058-8ba7-4473-8deb-1d6bd766e010"> 1526 <section class="homepage-header-slideshow interior"> 1527 1528 <img class="placeholder" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,e_blur:300,h_107,o_60,q_50,w_320/v1/clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5.jpg" /> 1529 1530 </section> 1531
1531<script type="text/template" data-sv-slides> 1532 1533 {{#items.0}} 1534 {{:asset.resource}} 1535 <article class="homepage-header-slide slide" data-profile-sort="{{profileSort}}"> 1536 {{~setVar("resource", helpers.plugins.cloudinary.createResource(data.asset.resource))}} 1537 {{~setVar('mobileCrop', data.mobile_crop_image ? helpers.plugins.cloudinary.createResource(data.mobile_crop_image.resource) : helpers.var.resource)}} 1538 <picture class="imgcont"> 1539 <source media="(max-width: 640px)" srcset="{{~var.mobileCrop.getThumbnailUrl({ height : 652, width : 640, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> 1540 <source media="(max-width: 1024px)" srcset="{{~var.resource.getThumbnailUrl({ height : 341, width : 1024, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> 1541 <img src="{{~var.resource.getThumbnailUrl({ height : 500, width : 1500, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}" alt="{{%asset.alt_text}}"> 1542 </picture> 1543 <div class="ol-header-slideshow"></div> 1544 {{:asset.credits}} 1545 <div class="credits">Credit: {{asset.credits}}</div> 1546 {{/}} 1547 {{:*templateData.title}} 1548 <div class="header-caption {{:link.url}}has-link{{/}}"> 1549 {{:link.url}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 1550 <span>{{title}}</span>{{:link.url}}<i class="fa fa-angle-double-right" aria-hidden="true"></i>{{/}} 1551 {{:link.url}}</a>{{/}} 1552 </div> 1553 {{/}} 1554 </article> 1555 {{/asset}} 1556 {{/items}} 1557 1558 </script>
1558 1559 <div class="header-dots"></div> 1560</div> 1561
1562<script> 1563 var modules = ["jquery", "lodash", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary,videoLib", "sv_asyncLib", "sv_arrayLib", "sv_load!plugins_dynamic_content"] 1564 var browserIsIE = document.body.style.msTouchAction !== undefined; 1565 if (browserIsIE) modules.push("plugins_common_custom_picturefill"); 1566 1567 require(modules, function($, lodash, dtn, goatee, asyncLib, arrayLib, dynamic) { 1568 var root = $("[data-guid=77983058-8ba7-4473-8deb-1d6bd766e010]"); 1569 var data = {"template":"custom_header_slideshow_interior","source":"custom","templateData":{"title":"false"},"modelName":"plugins_collections_type_custom_header_slides","typeName":"custom_header_slides","items":[{"_id":"5d70234577e8d17cf5003109","asset_id":{"id":"5d70232a77e8d17cf5003107","modelName":"plugins_assets_images"},"title":"Shopping Rochester MN","created":"2019-09-04T20:46:20.447Z","isdtn":false,"content_owner":"default","_updated":"2020-10-14T20:02:44.338Z","asset":{"_id":"5d70232a77e8d17cf5003107","original_public_id":"clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5","title":"Shopping in Rochester","created":"2019-09-04T20:48:42.768Z","resource_raw":{"public_id":"clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5","version":1567630312,"signature":"2369b0a9d9071ac3fd5ce662bea1d5919e8e31c9","width":6701,"height":4177,"format":"jpg","resource_type":"image","created_at":"2019-09-04T20:51:52.000Z","pages":1,"bytes":3985961,"type":"upload","etag":"2eecac450e604f39fa672fd9b4f0fc74","placeholder":false,"url":"http://res.cloudinary.com/simpleview/image/upload/v1567630312/clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5.jpg","secure_url":"https://res.cloudinary.com/simpleview/image/upload/v1567630312/clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5.jpg","access_mode":"public","exif":{"ApertureValue":"3356144/1000000","Artist":"Tj Turner","BodySerialNumber":"022021007545","ColorSpace":"1","Copyright":"..Tj Turner Pictures 2018","CustomRendered":"0","DateTime":"2019:09:04 15:51:24","DateTimeDigitized":"2018:08:22 14:30:01","DateTimeOriginal":"2018:08:22 14:30:01","ExifOffset":"2406","ExifVersion":"48, 50, 51, 48","ExposureBiasValue":"0/1","ExposureMode":"1","ExposureProgram":"1","ExposureTime":"1/200","Flash":"16","FNumber":"32/10","FocalLength":"85/1","FocalPlaneResolutionUnit":"3","FocalPlaneXResolution":"61166933/32768","FocalPlaneYResolution":"61166933/32768","LensModel":"EF70-200mm f/2.8L IS II USM","LensSerialNumber":"000040651a","LensSpecification":"70/1, 200/1, 0/0, 0/0","Make":"Canon","MaxApertureValue":"3/1","MeteringMode":"5","Model":"Canon EOS 5D Mark IV","Orientation":"1","PhotographicSensitivity":"100","RecommendedExposureIndex":"100","ResolutionUnit":"2","SceneCaptureType":"0","SensitivityType":"2","ShutterSpeedValue":"7643856/1000000","Software":"Windows Photo Editor 10.0.10011.16384","SubSecTimeDigitized":"01","SubSecTimeOriginal":"01","Compression":"6","JPEGInterchangeFormat":"5136","JPEGInterchangeFormatLength":"12006","XResolution":"360/1","YResolution":"360/1","WhiteBalance":"1"},"original_filename":"file"},"credits":"TJ Turner","content_owner":"default","title_sort":"shopping in rochester","updated":"2019-09-04T20:52:16.990Z","deleted":false,"resource":{"raw":{"resource_type":"image","format":"jpg","pages":1,"public_id":"clients/rochestermn/Model_Shopping41_credit_TJ_Turner_3__cfeca231-05c0-44ab-9775-2117641425c5"}},"id":"5d70232a77e8d17cf5003107","type":"image","inAssetRequest":false,"alt_text":"Shopping in Rochester","expired":false},"id":"5d70234577e8d17cf5003109"}],"guid":"77983058-8ba7-4473-8deb-1d6bd766e010","widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":10,"guid":"144717e0-85a9-4b73-abb9-2081f3410ed2","data":{"template":"custom_header_slideshow_interior","feedData_json":"{}","templateData_title":"false","source":"custom","items_json":"[\"5d70234577e8d17cf5003109\"]","data_title":"false"},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_header_slideshow_interior","site_name":"primary","updated":"2019-09-04T20:52:34.925Z","saved":false,"created":"2019-09-04T20:52:34.925Z","deleted":false,"id":"5d70237677e8d17cf5003122","version_id_string":"5d70237677e8d17cf5003123"},"version":{"data":{"template":"custom_header_slideshow_interior","feedData_json":"{}","templateData_title":"false","source":"custom","items_json":"[\"5d70234577e8d17cf5003109\"]","data_title":"false"}
1569,"created":"2019-09-04T20:52:34.928Z","id":"5d70237677e8d17cf5003123","instance_id_string":"5d70237677e8d17cf5003122"},"onTrunk":true,"civid":"5d70237677e8d17cf5003122"},"name":"plugins_collections_type_custom_header_slideshow_interior","component":"WidgetCollectionsTypeCustomHeaderSlides"}}; 1570 1571 var flow = new asyncLib.Flow(); 1572 flow.series({ 1573 // query DTN for collections items to fold into the set, if you are not using DTN, you should not remove this code! 1574 // This way your client can easily enable this feature in the future. 1575 // All downstream code should function if dtn is disabled, no zones chosen, or no valid ads. 1576 dtn : function(cb) { 1577 if (dtn === undefined) { return cb(null, []); } 1578 1579 var ids = []; 1580 1581 dtn.getAdUnitsGam({ 1582 ids : ids, 1583 modelName : "plugins_collections_type_custom_header_slides", 1584 trackUrlFields : ["link.url"], 1585 mockFilter : { isdtn : true } 1586 }, function(err, temp) { 1587 if (err) { return cb(err); } 1588 1589 // push dtn items to the front of the array 1590 data.items.unshift.apply(data.items, temp); 1591 1592 cb(null); 1593 }); 1594 }, 1595 slides : function(cb) { 1596 var slides = goatee.fill(root.find("[data-sv-slides]").html(), data); 1597 var slider = root.find(".homepage-header-slideshow"); 1598 1599 slider.html(slides); 1600 1601 1602 cb(null); 1603 } 1604 }, function(err) { 1605 if (err) { throw err; } 1606 }); 1607 }); 1608</script>
1608</div> 1609 </div> 1610 <div class="content"> 1611 <div data-civid="5ab2847031637f06dbd15538" class="contentRender contentRender_11 contentRender_type_panel contentRender_name_plugins_common_visitor_guide" data-sv-time="0" data-sv-index="11" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="en-vg"> 1612 <div data-civid="685304481ade6da28e8899e1" class="contentRender contentRender_12 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="20" data-sv-index="12" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 1613<a class="vg" href="https://www.experiencerochestermn.com/planning-tools/travel-guide/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Callout", "linkObject": "Free%20Insider%27s%20Guide" } }'><i class="fa fa-book" aria-hidden="true"></i>Free Insider's Guide</a> 1614</div> 1615 <div data-civid="685304481ade6da28e8899e3" class="contentRender contentRender_13 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="20" data-sv-index="13" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> 1616<a class="en" href="https://www.experiencerochestermn.com/e-newsletter-subscribe/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Callout", "linkObject": "E-Newsletter%20Sign%20Up" } }'><i class="fa fa-newspaper-o" aria-hidden="true"></i>E-Newsletter Sign Up</a> 1617</div> 1618</section></div><div data-civid="5ab2852431637f06dbd1553e" class="contentRender contentRender_14 contentRender_type_panel contentRender_name_plugins_common_container" data-sv-time="1" data-sv-index="14" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><div class="panel_custom_container"> 1619 1620</div></div><div data-civid="5ab2863231637f06dbd155a6" class="contentRender contentRender_15 contentRender_type_panel contentRender_name_plugins_common_nav_container" data-sv-time="0" data-sv-index="15" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="interior-nav" > 1621 <div class="row main"> 1622 <div class="columns"> 1623 <div data-civid="5ab2863231637f06dbd155a8" class="contentRender contentRender_16 contentRender_type_widget contentRender_name_plugins_nav_side" data-sv-time="28" data-sv-index="16" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 1624 1625 1626<section class="interior-navs hide" data-guid="a38220e7-6956-456c-b293-9d605d3e4458"> 1627 1628 <nav class="interior-nav" data-id="5ab409d16fabc5420e516052"> 1629 <div class="interior-nav-action"> 1630 <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/places-to-stay/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Places%20to%20Stay" } }'>Places to Stay</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> 1631 </div> 1632 </nav> 1633 <div class="child-container"> 1634 <div class="row child-items" data-id="5ab409d16fabc5420e516052"> 1635 <div class="columns"> 1636 1637 <ul class="small-block-grid-4 interior-nav-style"> 1638 1639 <li class="has-children"> 1640 <a href="/places-to-stay/hotels/" target="_self" data-id="5ab409d46fabc5420e5163d1" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hotels" } }'>Hotels</a> 1641 1642 </li> 1643 1644 <li class="has-children"> 1645 <a href="/places-to-stay/extended-stay/" target="_self" data-id="5ab409d46fabc5420e516445" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Extended%20Stay" } }'>Extended Stay</a> 1646 1647 </li> 1648 1649 <li class="has-children"> 1650 <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-id="5ab409d46fabc5420e51647f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Campgrounds%20%26%20RV%20Parks" } }'>Campgrounds & RV Parks</a> 1651 1652 </li> 1653 1654 </ul> 1655 1656 </div> 1657 </div> 1658 </div> 1659 1660 <nav class="interior-nav" data-id="5ab409d26fabc5420e51608c"> 1661 <div class="interior-nav-action">
1662 <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/things-to-do/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Things%20to%20Do" } }'>Things to Do</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> 1663 </div> 1664 </nav> 1665 <div class="child-container"> 1666 <div class="row child-items" data-id="5ab409d26fabc5420e51608c"> 1667 <div class="columns"> 1668 1669 <ul class="small-block-grid-4 interior-nav-style"> 1670 1671 <li class="has-children"> 1672 <a href="/things-to-do/events-calendar/" target="_self" data-id="5ab409d46fabc5420e51652d" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Events%20Calendar" } }'>Events Calendar</a> 1673 1674 <i class="fa fa-angle-down menu-action"></i> 1675 <ul> 1676 1677 1678 <li> 1679 <a href="/things-to-do/events-calendar/fairs-festivals/" class="" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> 1680 1681 </li> 1682 1683 <li> 1684 <a href="/things-to-do/events-calendar/fall/" class="" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> 1685 1686 </li> 1687 1688 <li> 1689 <a href="/things-to-do/events-calendar/winter/" class="" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> 1690 1691 </li> 1692 1693 <li> 1694 <a href="/things-to-do/events-calendar/spring/" class="" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> 1695 1696 </li> 1697 1698 <li> 1699 <a href="/things-to-do/events-calendar/summer/" class="" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> 1700 1701 </li> 1702 1703 1704 </ul> 1705 1706 </li> 1707 1708 <li class="has-children"> 1709 <a href="/things-to-do/downtown/" target="_self" data-id="5ab409d66fabc5420e5167e6" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Downtown" } }'>Downtown</a> 1710 1711 </li> 1712 1713 <li class="has-children"> 1714 <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516737" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Farmers%20Markets" } }'>Farmers Markets</a> 1715 1716 </li> 1717 1718 <li class="has-children"> 1719 <a href="/things-to-do/outdoor-adventure/" target="_self" data-id="5ab409d56fabc5420e5166c3" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Outdoor%20Adventure" } }'>Outdoor Adventure</a> 1720 1721 <i class="fa fa-angle-down menu-action"></i> 1722 <ul> 1723 1724 1725 <li> 1726 <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" class="" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> 1727 1728 </li> 1729 1730 <li> 1731 <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" class="" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> 1732 1733 </li> 1734 1735 <li> 1736 <a href="/things-to-do/outdoor-adventure/parks/" class="" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> 1737 1738 </li> 1739 1740 1741 </ul> 1742 1743 </li> 1744 1745 <li class="has-children"> 1746 <a href="/things-to-do/shopping/" target="_self" data-id="5ab409d56fabc5420e5165a1" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Shopping" } }'>Shopping</a> 1747 1748 <i class="fa fa-angle-down menu-action"></i> 1749 <ul> 1750 1751 1752 <li> 1753 <a href="/things-to-do/shopping/only-in-rochester/" class="" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> 1754 1755 </li> 1756 1757 <li> 1758 <a href="/things-to-do/shopping/apparel/" class="" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> 1759 1760 </li> 1761 1762 <li> 1763 <a href="/things-to-do/shopping/gifts/" class="" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> 1764 1765 </li> 1766 1767 <li> 1768 <a href="/things-to-do/shopping/antiques/" class="" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> 1769 1770 </li> 1771 1772 <li> 1773 <a href="/things-to-do/shopping/department-stores/" class="" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> 1774 1775 </li> 1776 1777 <li> 1778 <a href="/things-to-do/shopping/shopping-centers-malls/" class="" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> 1779 1780 </li> 1781 1782 1783 </ul> 1784 1785 </li> 1786 1787 <li class="has-children"> 1788 <a href="/things-to-do/wineries-breweries/" target="_self" data-id="5ab409d66fabc5420e516738" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Wineries%20%26%20Breweries" } }'>Wineries & Breweries</a> 1789 1790 </li> 1791 1792 <li class="has-children"> 1793 <a href="/things-to-do/arts-culture/" target="_self" data-id="5ab409d56fabc5420e5165db" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Arts%20%26%20Culture" } }'>Arts & Culture</a> 1794 1795 </li> 1796 1797 <li class="has-children"> 1798 <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d56fabc5420e516615" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Live%20Entertainment" } }'>Live Entertainment</a> 1799 1800 </li> 1801 1802 <li class="has-children"> 1803 <a href="/things-to-do/attractions-entertainment/" target="_self" data-id="5ab409d66fabc5420e5166fd" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Attractions%20%26%20Entertainment" } }'>Attractions & Entertainment</a> 1804 1805 <i class="fa fa-angle-down menu-action"></i> 1806 <ul> 1807 1808 1809 <li> 1810 <a href="/things-to-do/attractions-entertainment/movie-theaters/" class="" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> 1811 1812 </li> 1813 1814 <li> 1815 <a href="/things-to-do/attractions-entertainment/sports/" class="" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> 1816 1817 </li> 1818 1819 <li> 1820 <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" class="" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> 1821 1822 </li> 1823 1824 1825 </ul> 1826 1827 </li> 1828 1829 <li class="has-children"> 1830 <a href="/things-to-do/history-and-heritage/" target="_self" data-id="5ab409d56fabc5420e51664f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "History%20%26%20Heritage" } }'>History & Heritage</a> 1831 1832 <i class="fa fa-angle-down menu-action"></i> 1833 <ul> 1834 1835 1836 <li> 1837 <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" class="" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> 1838 1839 </li> 1840 1841 1842 </ul> 1843 1844 </li> 1845 1846 <li class="has-children"> 1847 <a href="/things-to-do/tours/" target="_self" data-id="5ab409d56fabc5420e516567" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Tours" } }'>Tours</a> 1848 1849 </li> 1850 1851 <li class="has-children"> 1852 <a href="/things-to-do/health-fitness-wellness/" target="_self" data-id="5cb0ef192473ea3636522ab2" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Health%2C%20Fitness%20%26%20Wellness" } }'>Health, Fitness & Wellness</a> 1853 1854 <i class="fa fa-angle-down menu-action"></i> 1855 <ul> 1856 1857 1858 <li> 1859 <a href="/things-to-do/health-fitness-wellness/rest-and-relaxation-in-rochester-mn/" class="" target="_self" data-id="5cb4da11da6ad739bddb385d">Rest and Relaxation in Rochester, MN</a> 1860 1861 </li> 1862 1863 1864 </ul> 1865 1866 </li> 1867 1868 <li class="has-children"> 1869 <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-id="5ab409d66fabc5420e516772" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Kid%20Friendly" } }'>Kid Friendly</a> 1870 1871 </li> 1872 1873 <li class="has-children"> 1874 <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-id="5ab409d66fabc5420e516820" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hidden%20Gems%20Nearby" } }'>Hidden Gems Nearby</a> 1875 1876 </li> 1877 1878 <li class="has-children"> 1879 <a href="/things-to-do/day-trips/" target="_self" data-id="5ab409d56fabc5420e516689" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Day%20Trips" } }'>Day Trips</a> 1880 1881 </li> 1882 1883 </ul> 1884 1885 </div> 1886 </div> 1887 </div> 1888 1889 <nav class="interior-nav" data-id="5ab409d26fabc5420e5160c6"> 1890 <div class="interior-nav-action">
1891 <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/restaurants/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Restaurants" } }'>Restaurants</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> 1892 </div> 1893 </nav> 1894 <div class="child-container"> 1895 <div class="row child-items" data-id="5ab409d26fabc5420e5160c6"> 1896 <div class="columns"> 1897 1898 <ul class="small-block-grid-4 interior-nav-style"> 1899 1900 <li class="has-children"> 1901 <a href="/restaurants/only-in-rochester/" target="_self" data-id="5ab409d76fabc5420e5169f0" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Only%20in%20Rochester" } }'>Only in Rochester</a> 1902 1903 </li> 1904 1905 <li class="has-children"> 1906 <a href="/restaurants/new-restaurants/" target="_self" data-id="5ab409d76fabc5420e5169b6" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "New%20Restaurants" } }'>New Restaurants</a> 1907 1908 </li> 1909 1910 <li class="has-children"> 1911 <a href="/restaurants/downtown/" target="_self" data-id="5ab409d66fabc5420e51685a" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Downtown" } }'>Downtown</a> 1912 1913 </li> 1914 1915 <li class="has-children"> 1916 <a href="/restaurants/bars/" target="_self" data-id="5dc9e41556039ec7ebc3f14b" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Bars" } }'>Bars</a> 1917 1918 </li> 1919 1920 <li class="has-children"> 1921 <a href="/restaurants/fine-dining/" target="_self" data-id="5ab409d66fabc5420e5168ce" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Fine%20Dining" } }'>Fine Dining</a> 1922 1923 </li> 1924 1925 <li class="has-children"> 1926 <a href="/restaurants/food-trucks/" target="_self" data-id="5ab409d66fabc5420e516942" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Food%20Trucks" } }'>Food Trucks</a> 1927 1928 </li> 1929 1930 <li class="has-children"> 1931 <a href="/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516894" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Farmers%20Market" } }'>Farmers Market</a> 1932 1933 </li> 1934 1935 <li class="has-children"> 1936 <a href="/restaurants/food-and-drink-events/" target="_self" data-id="5ab409d66fabc5420e516908" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Food%20%26%20Drink%20Events" } }'>Food & Drink Events</a> 1937 1938 </li> 1939 1940 <li class="has-children"> 1941 <a href="/restaurants/search-by-cuisine-type/" target="_self" data-id="5ab409d76fabc5420e516a64" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Search%20by%20Cuisine%20Type" } }'>Search by Cuisine Type</a> 1942 1943 <i class="fa fa-angle-down menu-action"></i> 1944 <ul> 1945 1946 1947 <li> 1948 <a href="/restaurants/search-by-cuisine-type/american/" class="" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> 1949 1950 </li> 1951 1952 <li> 1953 <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" class="" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> 1954 1955 </li> 1956 1957 <li> 1958 <a href="/restaurants/search-by-cuisine-type/international/" class="" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> 1959 1960 </li> 1961 1962 <li> 1963 <a href="/restaurants/search-by-cuisine-type/pizza/" class="" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> 1964 1965 </li> 1966 1967 <li> 1968 <a href="/restaurants/search-by-cuisine-type/seafood/" class="" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> 1969 1970 </li> 1971 1972 <li> 1973 <a href="/restaurants/search-by-cuisine-type/sweet-treats/" class="" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> 1974 1975 </li> 1976 1977 1978 </ul> 1979 1980 </li> 1981 1982 <li class="has-children"> 1983 <a href="/restaurants/kid-friendly/" target="_self" data-id="5ab409d66fabc5420e51697c" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Kid%20Friendly" } }'>Kid Friendly</a> 1984 1985 </li> 1986 1987 <li class="has-children"> 1988 <a href="/restaurants/eat-confidently/" target="_self" data-id="6859adf51ade6da28e8983fb" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Eat.%20Confidently." } }'>Eat. Confidently.</a> 1989 1990 </li> 1991 1992 </ul> 1993 1994 </div> 1995 </div> 1996 </div> 1997 1998 <nav class="interior-nav" data-id="5ab409d26fabc5420e516100"> 1999 <div class="interior-nav-action">
2000 <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/planning-tools/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Planning%20Tools" } }'>Planning Tools</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> 2001 </div> 2002 </nav> 2003 <div class="child-container"> 2004 <div class="row child-items" data-id="5ab409d26fabc5420e516100"> 2005 <div class="columns"> 2006 2007 <ul class="small-block-grid-4 interior-nav-style"> 2008 2009 <li class="has-children"> 2010 <a href="/planning-tools/getting-here/" target="_self" data-id="5ab409d76fabc5420e516a9e" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Here" } }'>Getting Here</a> 2011 2012 <i class="fa fa-angle-down menu-action"></i> 2013 <ul> 2014 2015 2016 <li> 2017 <a href="/planning-tools/getting-here/airports/" class="" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> 2018 2019 </li> 2020 2021 <li> 2022 <a href="/planning-tools/getting-here/driving-directions/" class="" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> 2023 2024 </li> 2025 2026 2027 </ul> 2028 2029 </li> 2030 2031 <li class="has-children"> 2032 <a href="/planning-tools/getting-around/" target="_self" data-id="5ab409d76fabc5420e516b12" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Around" } }'>Getting Around</a> 2033 2034 <i class="fa fa-angle-down menu-action"></i> 2035 <ul> 2036 2037 2038 <li> 2039 <a href="/planning-tools/getting-around/shuttle-service/" class="" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> 2040 2041 </li> 2042 2043 <li> 2044 <a href="/planning-tools/getting-around/parking/" class="" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> 2045 2046 </li> 2047 2048 <li> 2049 <a href="/planning-tools/getting-around/skyway-subway/" class="" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> 2050 2051 </li> 2052 2053 2054 </ul> 2055 2056 </li> 2057 2058 <li class="has-children"> 2059 <a href="/planning-tools/travel-guide/" target="_self" data-id="5ab409d76fabc5420e516b4c" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Insider%27s%20Guide" } }'>Insider's Guide</a> 2060 2061 </li> 2062 2063 <li class="has-children"> 2064 <a href="/planning-tools/weather/" target="_self" data-id="5ab409d76fabc5420e516bc0" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Weather" } }'>Weather</a> 2065 2066 </li> 2067 2068 <li class="has-children"> 2069 <a href="/planning-tools/traveling-with-pets/" target="_self" data-id="5c65ad3518e1e6fa27beeb3f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Traveling%20With%20Pets" } }'>Traveling With Pets</a> 2070 2071 </li> 2072 2073 <li class="has-children"> 2074 <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d86fabc5420e516bfa" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Weddings%2C%20Parties%20%26%20Celebrations" } }'>Weddings, Parties & Celebrations</a> 2075 2076 </li> 2077 2078 <li class="has-children"> 2079 <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-id="5ab409d86fabc5420e516bfb" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "University%20of%20Minnesota%20Rochester" } }'>University of Minnesota Rochester</a> 2080 2081 </li> 2082 2083 </ul> 2084 2085 </div> 2086 </div> 2087 </div> 2088 2089 <nav class="interior-nav" data-id="5ab409d26fabc5420e51613a"> 2090 <div class="interior-nav-action">
2091 <span class="interior-nav-actions">In this section: </span><span class="this-section"><a id="link" href="/mayo-clinic/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Visit%20Mayo%20Clinic" } }'>Visit Mayo Clinic</a> </span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> 2092 </div> 2093 </nav> 2094 <div class="child-container"> 2095 <div class="row child-items" data-id="5ab409d26fabc5420e51613a"> 2096 <div class="columns"> 2097 2098 <ul class="small-block-grid-4 interior-nav-style"> 2099 2100 <li class="has-children"> 2101 <a href="/mayo-clinic/hotels/" target="_self" data-id="5ab409d86fabc5420e516c35" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Hotels" } }'>Hotels</a> 2102 2103 <i class="fa fa-angle-down menu-action"></i> 2104 <ul> 2105 2106 2107 <li> 2108 <a href="/mayo-clinic/hotels/charitable-lodging/" class="" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> 2109 2110 </li> 2111 2112 2113 </ul> 2114 2115 </li> 2116 2117 <li class="has-children"> 2118 <a href="/mayo-clinic/getting-here/" target="_self" data-id="5ab409d86fabc5420e516c6f" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Here" } }'>Getting Here</a> 2119 2120 </li> 2121 2122 <li class="has-children"> 2123 <a href="/mayo-clinic/getting-around/" target="_self" data-id="5ab409d86fabc5420e516ca9" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Getting%20Around" } }'>Getting Around</a> 2124 2125 </li> 2126 2127 <li class="has-children"> 2128 <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-id="5ab409d86fabc5420e516ce3" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Mayo%20Clinic%20Maps" } }'>Mayo Clinic Maps</a> 2129 2130 </li> 2131 2132 <li class="has-children"> 2133 <a href="/mayo-clinic/faq/" target="_self" data-id="5ab409d86fabc5420e516ce4" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "FAQ" } }'>FAQ</a> 2134 2135 </li> 2136 2137 <li class="has-children"> 2138 <a href="/mayo-clinic/history/" target="_self" data-id="5ab409d86fabc5420e516d1e" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "History" } }'>History</a> 2139 2140 </li> 2141 2142 <li class="has-children"> 2143 <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-id="5ab409d86fabc5420e516d58" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Restaurants%20Nearby" } }'>Restaurants Nearby</a> 2144 2145 </li> 2146 2147 <li class="has-children"> 2148 <a href="/mayo-clinic/parking/" target="_self" data-id="5ab409d86fabc5420e516d92" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Parking" } }'>Parking</a> 2149 2150 </li> 2151 2152 </ul> 2153 2154 </div> 2155 </div> 2156 </div> 2157 2158</section> 2159
2160<script type="text/javascript"> 2161 require(["jquery"], function($) { 2162 var root = $('[data-guid=a38220e7-6956-456c-b293-9d605d3e4458]'); 2163 var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); 2164 var parentIds = navItemProperties.parents_ids || []; 2165 var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; 2166 var current = root.find('[data-id="' + rootParent + '"]'); 2167 var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); 2168 var isMicrosite = false; 2169 currentLink.addClass('active') 2170 currentLink.parent('li').find('ul').addClass('active'); 2171 window.onload = function() { 2172 $('.interior-navs').removeClass('hide') 2173 } 2174 root.find('.interior-nav-actions').on('click', function(e) { 2175 e.preventDefault(); 2176 root.find('.interior-nav-style').toggleClass('active'); 2177 root.find('.fa-caret-down').toggleClass('active'); 2178 2179 }); 2180 parentIds.forEach(function(parentId){ 2181 var parentItems = root.find('[data-id="' + parentId + '"]'); 2182 parentItems.each(function(){ 2183 $(this).parent().addClass('current'); 2184 }); 2185 }); 2186 root.find('.menu-action').on('click', function() { 2187 $(this).toggleClass('active'); 2188 $(this).siblings().toggleClass('active'); 2189 }); 2190 current.addClass('current'); 2191 root.find('.interior-nav').not('.interior-nav.current').remove(); 2192 root.find('.child-items').not('.child-items.current').remove(); 2193 if (isMicrosite) { 2194 root.find('.interior-nav-style').addClass('active'); 2195 root.find('.fa-caret-down').addClass('active'); 2196 } 2197 }); 2198</script>
2198</div> 2199 <div data-civid="5ab2863231637f06dbd155aa" class="contentRender contentRender_17 contentRender_type_widget contentRender_name_plugins_common_social_share" data-sv-time="20" data-sv-index="17" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 2200 2201<div class="sv-share" data-guid="1afc935d-0de5-4de3-81ae-1f4848e63ff1" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "widget_interaction", "widgetName" : "Social Share", "interactionSource": "widget" } }'> 2202 <div class="sv-share-button-wrapper"> 2203 <button class="sv-share-trigger" type="button" aria-expanded="false" aria-label="show share links" aria-controls="share-popover"> 2204 <i class="sv-share-trigger-icon fas fa-share-square"></i> 2205 <span>Share</span> 2206 </button> 2207 <ul id="share-popover" class="sv-share-popover" data-sv-social-share></ul> 2208 </div> 2209 </div> 2210 2211
2211<script type="text/template" data-social-share-template> 2212 2213 {{#items}} 2214 <li class="sv-share-service-email"> 2215 <!-- Email --> 2216 <a href="mailto:?subject={{%%title}}&body={{%%url}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Email", "interactionUrl": "mailto:?subject={{%%title}}&body={{%%url}}", "interactionText" : "Email" } }'> 2217 <i class="sv-share-service-icon fas fa-envelope" aria-hidden="true"></i> 2218 <span>Email</span> 2219 </a> 2220 </li> 2221 2222 <li class="sv-share-service-twitter"> 2223 <!-- X --> 2224 <a href="https://x.com/share?url={{url}}&text={{%%title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Twitter/X", "interactionUrl": "https://x.com/share?url={{%%url}}&text={{%%title}}", "interactionText" : "X" } }'> 2225 <i class="sv-share-service-icon fab fa-square-x-twitter" aria-hidden="true"></i> 2226 <span>X</span> 2227 </a> 2228 </li> 2229 2230 <li class="sv-share-service-facebook"> 2231 <!-- Facebook --> 2232 <a href="https://www.facebook.com/sharer/sharer.php?u={{url}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Facebook", "interactionUrl": "https://www.facebook.com/sharer/sharer.php?u={{%%url}}", "interactionText" : "Facebook" } }'> 2233 <i class="sv-share-service-icon fab fa-facebook" aria-hidden="true"></i> 2234 <span>Facebook</span> 2235 </a> 2236 </li> 2237 2238 <li class="sv-share-service-linkedin"> 2239 <!-- LinkedIn --> 2240 <a href="https://www.linkedin.com/shareArticle?url={{url}}&title={{title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Linkedin", "interactionUrl": "https://www.linkedin.com/shareArticle?url={{%%url}}&title={{%%title}}", "interactionText" : "LinkedIn" } }'> 2241 <i class="sv-share-service-icon fab fa-linkedin" aria-hidden="true"></i> 2242 <span>LinkedIn</span> 2243 </a> 2244 </li> 2245 2246 <li class="sv-share-service-reddit"> 2247 <!-- Reddit --> 2248 <a href="https://reddit.com/submit?url={{url}}&title={{title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Reddit", "interactionUrl": "https://reddit.com/submit?url={{%%url}}&title={{%%title}}", "interactionText" : "Reddit" } }'> 2249 <i class="sv-share-service-icon fab fa-reddit" aria-hidden="true"></i> 2250 <span>Reddit</span> 2251 </a> 2252 </li> 2253 {{/}} 2254 2255 </script>
2255 2256 2257
2257<script> 2258 require(["plugins_common_custom_social_share"], function(socialShare) { 2259 const data = {"sections":{},"data":{},"guid":"1afc935d-0de5-4de3-81ae-1f4848e63ff1","customSettings":{},"widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":17,"guid":"1afc935d-0de5-4de3-81ae-1f4848e63ff1","data":{},"civ":{"instance":{"type":"widget","name":"plugins_common_social_share","site_name":"primary","updated":"2018-03-21T16:21:21.143Z","saved":false,"created":"2018-03-21T16:21:21.143Z","deleted":false,"id":"5ab2863231637f06dbd155aa","version_id_string":"5ab2863231637f06dbd155ab"},"version":{"created":"2018-03-21T16:21:21.145Z","id":"5ab2863231637f06dbd155ab","instance_id_string":"5ab2863231637f06dbd155aa","data":{}},"onTrunk":true,"civid":"5ab2863231637f06dbd155aa"},"name":"plugins_common_social_share","component":"WidgetCommonSocialShare"}}; 2260 socialShare.init("1afc935d-0de5-4de3-81ae-1f4848e63ff1", data) 2261 }); 2262 </script>
2262 2263 </div> 2264 </div> 2265 </div> 2266</section></div><div data-civid="5d70237677e8d17cf500312c" class="contentRender contentRender_18 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="0" data-sv-index="18" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 2267 2268 <div class="panel_custom_one_col controlled-width"> 2269 <div class="row"> 2270 <div class="columns"> 2271 <div data-civid="5d70237677e8d17cf500312e" class="contentRender contentRender_19 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="20" data-sv-index="19" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'><section data-sv-core-textbox data-guid="4382fadb-48cf-47cb-adbd-5e66ee173db6"> 2272 <h1 style="text-align: center;">Department Stores in Rochester MN</h1> 2273 2274<p style="text-align: center;"> </p> 2275 2276</section></div> 2277 </div> 2278 </div> 2279 </div> 2280</div><div data-civid="5d70237677e8d17cf5003130" class="contentRender contentRender_20 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="1" data-sv-index="20" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> 2281 2282 2283 <div class="panel_custom_one_col full-width"> 2284 <div data-civid="5d70237677e8d17cf5003132" class="contentRender contentRender_21 contentRender_type_widget contentRender_name_plugins_listings_layout_list" data-sv-time="43" data-sv-index="21" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 2285 2286 2287<div class="shared-list shared-layout listings layout-grid listings-wrapper" id="listings_fc63d6e5-78f5-4cab-8a1f-d214f95c1ff3" data-gtm-vars='{ "tCore" : { "category" : "listing_layout_list" }, "tClient" : { "eventCategory" : "Listings" }, "tClient_ga4": {"itemType": "listings"} }' data-sv-layout> 2288
2288<script type="text/template" data-sv-listingListItem> 2289{{~setVar("template", "listings_custom_listing_list_item")}} 2290{{~setVar("bookableOffers", data.oncethere_orgid !== undefined && data.offers !== undefined ? data.offers.filter(function(val) { return val.source === "onceThere" }) : [])}} 2291{{~setVar("oncetherelink", data.offers !== undefined && data.offers.length == 1 ? data.offers[0].onceThereUrl : "" )}} 2292 2293{{~setVar("mainColumnClass", helpers.var.bookableOffers.length > 0 ? "large-7 medium-7" : "large-9 medium-9")}} 2294{{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} 2295{{~setVar("addressLine", [data.address1, data.address2, data.address3].filter(function(val) { return val !== undefined }).join(", "))}} 2296{{~setVar("placeholder", helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }) )}} 2297{{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 75 })}} 2298{{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 75 })}} 2299 2300<div class="shared-item item {{:isDTN}}dtn{{/isDTN}} catid_{{primary_category.catid}}" data-type="listing" data-recid="{{recid}}" 2301 data-qualityscore="{{qualityScore}}" data-rankid="{{rankid}}" data-dtn-rank="{{dtn.rank}}" data-rankname="{{%rankname}}" 2302 data-gtm-vars='{ "tCore" : { "label" : "{{:isDTN}}dtn - {{/}}{{%%title}}", "recid" : "{{recid}}", "row" : "{{@row}}", "globalRow" : "{{globalRow}}" }, "tClient": {"eventLabel": "{{%%title}}", "recId": "{{recid}}", "et": "{{%%title}}", "dtn": "{{:isDTN}}DTN{{/isDTN}}", "crmc": "{{%%primary_category.catname}}", "crmsc": "{{%%primary_category.subcatname}}", "row" : "{{@row}}", "globalRow" : "{{globalRow}}", "vt" : "Results" }, "tClient_ga4": {"itemType": "listings", "itemName": "{{%%title}}" } }' 2303 {{:isDTN}}data-sv-adunit="{{dtnauid}}" data-sv-adstyle="recid" data-sv-adrecid="{{recid}}"{{/isDTN}}> 2304 <div class="image-container"> 2305 {{:~equal(data.rankname === "Experience Accreditation" || data.rankname === "Sponsored/Experience Accreditation", true)}} 2306 <a href="/about-us/our-commitment-to-visitors/experience-accreditation/" target="_blank"> 2307 <img class="accredited" src="/includes/public/assets/images/accredited.png"> 2308 <img class="accredited-text" src="/includes/public/assets/images/experience.png"> 2309 </a> 2310 {{/}} 2311 2312 {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} 2313 <a href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_image" }, "tClient" : { "ot" : "Image" }, "tClient_ga4": {"eventName": "link_to_detail", "linkObject": "Image", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }'> 2314 {{:~var.noPlaceholder}} 2315 <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> 2316 {{?}} 2317 <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> 2318 {{/}} 2319 </a> 2320 2321 {{:isDTN}} 2322 <div class="featured"> 2323 <i class="fa fa-star" aria-hidden="true"></i> Featured 2324 </div> 2325 {{/}} 2326 </div> 2327 <div class="contents"> 2328 <h2><a href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_title" }, "tClient" : { "ot" : "Text" }, "tClient_ga4": {"eventName": "link_to_detail", "linkObject": "Title", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >{{title}}</a></h2> 2329 2330 {{:distance}} 2331 <p class="distance">{{distance.format({ unit : "miles" })}} Miles From You</p> 2332 {{/distance}} 2333 {{:loc}} 2334 <p class="address"><a data-click-placemark href="#" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_map_it" }, "tClient" : { "eventAction" : "Map", "lt" : "Map"}, "tClient_ga4" : {"eventName" : "filter", "filterType" : "Map | View by"} }' data-sv-open-map><i class="fa fa-map-marker"></i> {{~var.addressLine}}</a></p> 2335 {{?}} 2336 <p class="address">{{~var.addressLine}}</p> 2337 {{/}} 2338 2339 {{:listingudfs_object.1762.value_raw}}{{:listingudfs_object.1763.value_raw}} 2340 <p class="unique-hotel-listing">Group rate starting at ${{listingudfs_object.1763.value_raw}}</p> 2341 {{/}}{{/}} 2342 2343 2344 <div class="actions"> 2345 <a class="detail-button" href="{{detailURL}}" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_detail_title" }, "tClient" : { "ot" : "Text" },"tClient_ga4": {"linkObject": "Details", "eventName": "link_to_detail", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' > Details <i class="fa fa-angle-right" aria-hidden="true"></i> 2346 </a> 2347 {{:listingudfs_object.1762.value_raw}} 2348 {{:listingudfs_object.1764}} 2349 <a class="detail-button web-button" href="{{~plugins.crmLib.getTrackUrl(data.crmtracking.core_listing_click, data.listingudfs_object[1764].value_raw)}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Visit Website", "lt" : "Website", "ot" : "Text", "href" : "{{%listingudfs_object.1764.value_raw}}" },"tClient_ga4": {"linkObject": "Visit Website", "eventName": "partner_referral", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >Booking <i class="fa fa-angle-right" aria-hidden="true"></i></a> 2350 {{?}} 2351 {{:weburl}} 2352 <a class="detail-button web-button" {{:isDTN}}data-sv-adclick{{/isDTN}} href="{{~plugins.crmLib.getTrackUrl(data.crmtracking.core_listing_click, data.weburl)}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Visit Website", "lt" : "Website", "ot" : "Text", "href" : "{{%weburl}}" },"tClient_ga4": {"linkObject": "Visit Website", "eventName": "partner_referral", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >website <i class="fa fa-angle-right" aria-hidden="true"></i></a> 2353 {{/weburl}} 2354 {{/}} 2355 {{?}} 2356 {{:weburl}} 2357 <a class="detail-button web-button" {{:isDTN}}data-sv-adclick{{/isDTN}} href="{{~plugins.crmLib.getTrackUrl(data.crmtracking.core_listing_click, data.weburl)}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Visit Website", "lt" : "Website", "ot" : "Text", "href" : "{{%weburl}}" },"tClient_ga4": {"linkObject": "Visit Website", "eventName": "partner_referral", "crmCatSubcat": "{{%%primary_category.catname}} | {{%%primary_category.subcatname}}"} }' >website <i class="fa fa-angle-right" aria-hidden="true"></i></a> 2358 {{/weburl}} 2359 {{/}} 2360 </div> 2361 2362 </div> 2363</div> 2364</script>
2364 2365
2365<script type="text/template" data-sv-pagerTemplate>{{~setVar("template", "listings_custom_listing_list_pager")}} 2366 2367<div class="pagination" data-sv-pagination=""> 2368 <div class="pager"> 2369 <ul class="pagi-info"> 2370 <li>Results:</li> 2371 <li class="number-results">{{pager.startRow}}-{{pager.currentPageLastRow}} of {{pager.totalRows}}</li> 2372 </ul> 2373 </div> 2374 <div class="pager pager-cont"> 2375 <ul class="pager-items"> 2376 <li><a {{!pager.hasPreviousPage}}class="disabled"{{/pager.hasPreviousPage}} data-row="{{pager.previousPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.previousPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_prv" }, "tClient_ga4": {"eventName": "filter", "filterType": "Previous Page | {{pager.previousPageStartRow}} - {{~exec(() => { return data.pager.perPage + data.pager.previousPageStartIndex })}}", "itemType": "listings"} }'><i class="fa fa-angle-double-left" aria-hidden="true"></i> Prev</a></li> 2377 <li>{{pager.currentPage}} of {{pager.totalPages}}</li> 2378 <li><a {{!pager.hasNextPage}}class="disabled"{{/pager.hasNextPage}} data-row="{{pager.nextPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.nextPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_nxt" }, "tClient_ga4": {"eventName": "filter", "filterType": "Next Page | {{pager.nextPageStartRow}} - {{~exec(() => { return data.pager.perPage + data.pager.nextPageStartIndex })}}", "itemType": "listings"} }'>Next <i class="fa fa-angle-double-right" aria-hidden="true"></i></a></li> 2379 </ul> 2380 </div> 2381</div></script>
2381 2382
2382<script type="text/template" data-sv-listingListMapItem>{{~setVar("template", "custom_list_map_item")}} 2383{{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} 2384{{~setVar("addressLine", [data.address1, data.address2, data.address3, helpers.var.cityStateZip].filter(function(val) { return val !== undefined }).join(", "))}} 2385{{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 50 })}} 2386{{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 50 })}} 2387 2388{{~exec(function() { 2389 helpers.var.imageType; 2390 helpers.var.type; 2391 helpers.var.nextDate = data.date || data.nextDate; 2392 2393 //set images 2394 if(data.isListings != undefined){ 2395 helpers.var.imageType = data.primary_image.resource 2396 helpers.var.type = "listing" 2397 } else if(data.isEvents != undefined && data.media != undefined){ 2398 helpers.var.imageType = data.media[0] 2399 helpers.var.type = "event" 2400 } else if(data.isOffers != undefined && data.image != undefined){ 2401 helpers.var.imageType = data.image.resource 2402 helpers.var.type = "offer" 2403 } else if(data.media == undefined || data.image == undefined){ 2404 helpers.var.imageType = helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }); 2405 } 2406})}} 2407 2408{{:latitude}} 2409{{:longitude}} 2410 <div class="shared-item item" data-recid="{{recid}}" data-type="{{~var.type}}" > 2411 <a {{:isOffers}}data-locationid="offer_{{recid}}_listing_{{listings.0.recid}}"{{/isOffers}} data-click-placemark href="#" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_map_it" }, "tClient" : { "eventAction" : "Map", "lt" : "Map", "ot" : "Button" } }' data-sv-open-map> 2412 <div class="image-container"> 2413 {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} 2414 {{:~var.noPlaceholder}} 2415 <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> 2416 {{?}} 2417 <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> 2418 {{/}} 2419 {{:isEvents}} 2420 {{:nextDate}} 2421 <div class="image-date-block"> 2422 <span class="month">{{~var.nextDate.format('MMM')}}</span> 2423 <span class="day">{{~var.nextDate.format('DD')}}</span> 2424 </div> 2425 {{/}} 2426 {{/}} 2427 </div> 2428 <div class="contents"> 2429 <h2>{{title}}</h2> 2430 {{:isOffers}} 2431 {{~exec(function() { 2432 if (data.redeemstart) data.redeemstart = helpers.plugins.clientMoment(data.redeemstart); 2433 if (data.redeemend) data.redeemend = helpers.plugins.clientMoment(data.redeemend); 2434 })}} 2435 <div class="dates"> 2436 Valid: 2437 {{!redeemstart}}{{!redeemend}}Always{{/redeemend}}{{/redeemstart}} 2438 {{:redeemstart}}{{:redeemend}}{{redeemstart.format("LL")}} - {{redeemend.format("LL")}}{{/redeemend}}{{/redeemstart}} 2439 {{:redeemstart}}{{!redeemend}}Starting {{redeemstart.format("LL")}}{{/redeemend}}{{/redeemstart}} 2440 {{:redeemend}}{{!redeemstart}}Ending {{redeemend.format("LL")}}{{/redeemstart}}{{/redeemend}} 2441 </div> 2442 {{/}} 2443 {{:distance}} 2444 <p class="address">{{distance.format({ unit : "miles" })}} Miles From You</p> 2445 {{/distance}} 2446 {{:isOffers}} 2447 {{:listings}} 2448 {{#listings.0}} 2449 <p class="address"> {{company}}</p> 2450 {{/}} 2451 {{/}} 2452 {{?}} 2453 <p class="address"><i class="fa fa-map-marker"></i> {{~var.addressLine}}</p> 2454 {{/}} 2455 </div> 2456 </a> 2457 </div> 2458{{/}} 2459{{/}}</script>
2459 2460
2460<script type="text/template" data-sv-pagerMapTemplate>{{~setVar("template", "custom_list_map_pager")}} 2461 2462<button class="{{!pager.hasPreviousPage}}disabled{{/pager.hasPreviousPage}} map-pager-button" data-row="{{pager.previousPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.previousPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_prv" }, "tClient_ga4": {"eventName": "filter", "filterType": "Previous Map Page | Page Changed"} }' data-sv-map-pager-button>Prev</button> 2463 <button class="{{!pager.hasNextPage}}disabled{{/pager.hasNextPage}} map-pager-button" data-row="{{pager.nextPageStartRow}}" data-query-link='{ "delta" : { "skip" : "{{pager.nextPageStartIndex}}" } }' data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_nxt" }, "tClient_ga4": {"eventName": "filter", "filterType": "Next Map Page | Page Changed"} }' data-sv-map-pager-button>Next</button></script>
2463 2464
2464<script type="text/template" data-sv-pagerMapCounterTemplate>{{~setVar("template", "custom_list_map_pager")}} 2465 2466Page: {{pager.currentPage}} of {{pager.totalPages}}</script>
2466 2467
2467<script type="text/template" data-sv-infoWindowTemplate>{{!-- 2468 The url and the title should always be the same content, so never pass a title to a listing but a url to an offer, or vice-versa 2469 The nearbyRecid should only be passed on offer/listing/event detail 2470 The location and locationUrl should be passed from event layout and offer layout 2471--}} 2472<div class="infoWindow core-styles"> 2473 <h5> 2474 {{:url}}<a href="{{url}}" data-gtm-click data-gtm-vars='{"tClient_ga4": { "eventName": "link_to_detail", "linkObject": "Info Window | Title", "itemType": "{{%%itemType}}", "crmCatSubcat": "{{%%ga4_cats}}", "itemName": "{{%%title}}" }}'>{{/}} 2475 {{title}} 2476 {{:url}}</a>{{/}} 2477 </h5> 2478 <ul class="contactInfo"> 2479 {{:location}} 2480 <li>Location: 2481 {{:locationUrl}}<a href="{{locationUrl}}">{{/}} 2482 {{%location}} 2483 {{:locationUrl}}</a>{{/}} 2484 </li> 2485 {{/location}} 2486 {{:address1}}<li>Address: {{address1}}</li>{{/}} 2487 <li> 2488 <div class="shared-action-items"> 2489 {{:url}} 2490 <span><a href="{{%url}}" data-gtm-click data-gtm-vars='{"tClient_ga4": { "eventName": "link_to_detail", "linkObject": "Info Window | Details", "itemType": "{{%%itemType}}", "crmCatSubcat": "{{%%ga4_cats}}", "itemName": "{{%%title}}" }}'>Details</a></span> 2491 {{/url}} 2492 </div> 2493 </li> 2494 </ul> 2495</div></script>
2495 2496
2496<script type="text/template" data-sv-liItems>{{~exec(function() { 2497 // svdm: capitalize the name for analytics purposes. 2498 data.seoAction = data.name.charAt(0).toUpperCase() + data.name.slice(1); 2499})}} 2500 2501{{+field_link_or_label}} 2502 {{:extra.url}} 2503 <a href="{{extra.url}}" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "{{seoAction}}", "ot" : "Text", "lt" : "{{seoAction}}" }, "tClient_ga4" : { "eventName" : "link_to_detail", "linkObject" : "Link to Venue", "itemType" : "listings", "itemName" : "{{%%value}}", "crmCatSubcat" : "{{%%extra.catname}} | {{%%extra.subcatname}}" } }' > 2504 {{/}} 2505 {{value}} 2506 {{:extra.url}} 2507 </a> 2508 {{/}} 2509{{/}} 2510 2511{{+field_list_of_link_or_label}} 2512 {{#value}} 2513 <span class="item"> 2514 {{~fill(helpers.partial("field_link_or_label"), { value : data.value, extra : { url : data.url } }, {}, global)}}{{!@last}}, {{/}} 2515 </span> 2516 {{/}} 2517{{/}} 2518 2519{{+field_times}} 2520 {{:item.startTime}} 2521 {{~plugins.moment(data.item.startTime, "hh:mm:ss").format('h:mm A')}} {{:item.endTime}}to {{~plugins.moment(data.item.endTime, "hh:mm:ss").format('h:mm A')}}{{/}} 2522 {{?}} 2523 {{value}} 2524 {{/}} 2525{{/}} 2526 2527{{+field_phone}} 2528 <a data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "common_custom_li_items_text_phone" }, "tClient" : { "eventAction" : "Phone", "lt" : "Phone", "ot" : "Text" }, "tClient_ga4": {"eventName": "partner_referral", "linkObject": "Phone"} }' href="tel:{{~exec(data.value.replace(/\D/g, ""))}}" title="Click to Call">{{value}}</a>{{:extra.ext}} ext. {{extra.ext}}{{/}} 2529{{/}} 2530 2531{{+field_distance}} 2532 {{value.format({ unit : "miles" })}} Miles From You 2533{{/}} 2534 2535{{+field_rating}} 2536 {{~setVar("ratingPercent", (data.value / 5) * 100)}} 2537 <li class="ratings-back"> 2538 <span style="width:{{~var.ratingPercent}}%" class="ratings-front"></span> 2539 </li> 2540{{/}} 2541 2542{{:value}} 2543 <li class="{{liClass}}" data-name="{{name}}" data-value-template="{{valueTemplate}}"> 2544 {{:label}}<span class="info-list-label {{labelClass}}">{{label}}:</span>{{/label}} 2545 <span class="info-list-value {{valueClass}}"> 2546 {{:valueTemplate}} 2547 {{~fill(helpers.plugins.stringLib.decodeScriptTags(helpers.partial("field_" + data.valueTemplate)), data, { 2548 field_link_or_label : helpers.partial("field_link_or_label") 2549 }, global)}} 2550 {{?}} 2551 {{value}} 2552 {{/}} 2553 </span> 2554 </li> 2555{{/}}</script>
2555 2556
2556<script type="text/template" data-sv-mainTemplate> 2557 2558 {{:data}} 2559 {{#data}} 2560 {{>listingListItem}} 2561 {{/}} 2562 {{/data}} 2563 2564 {{!data}} 2565 <h3 class="no-results">There are no listings that match your query.</h3> 2566 {{/data}} 2567 2568 </script>
2568 2569
2569<script type="text/template" data-sv-mapMainTemplate> 2570 2571 {{:data}} 2572 {{#data}} 2573 {{~exec(function() { data.isListings = true;})}} 2574 {{>listMapItem}} 2575 {{/}} 2576 {{?}} 2577 <h4 class="no-results">There are no listings that match your query.</h4> 2578 {{/}} 2579 2580 </script>
2580 2581 2582 2583 2584 <ul class="mobile-options" data-sv-mobile-options="" data-gtm-vars='{"tClient_ga4": {"eventName": "filter"}}'> 2585 <li> 2586 <a class="tab-title" href="#" data-sv-mobile-options-display="">Filters <i class="fa fa-angle-down" aria-hidden="true"></i></a> 2587 <div class="options-dropdown"> 2588 <div class="mobile-filters-wrapper"> 2589 2590 2591 2592 2593 <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> 2594 <div class="close" data-sv-close-filters=""></div> 2595 <form> 2596 <input type="hidden" name="catid" value="3"/> 2597 <input type="hidden" name="skip" value="0"/> 2598 <input type="hidden" name="alphaend" value=""/> 2599 <input type="hidden" name="alphastart" value=""/> 2600 <input type="hidden" name="sort" value=""/> 2601 2602 2603 <input type="hidden" name="subcatids" value="1896" /> 2604 2605 2606 <label class="keyword">KEYWORD SEARCH</label> 2607 <div class="form-group"> 2608 <input class="shared-input input-text" name="keyword" type="text"> 2609 <button class="shared-submit"><i class="fa fa-search"></i></button> 2610 </div> 2611 2612 2613 2614 2615 2616 2617 <h4>Region</h4> 2618 <ul class="filter-items"> 2619 2620 <li><input type="checkbox" name="regionids" id="reg-1" class="shared-input input-checkbox" value="43" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Downtown (Mayo Clinic)" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Downtown (Mayo Clinic)" }, "tClient_ga4" : { "filterType" : "Downtown%20(Mayo%20Clinic) | Region" } }'> <label for="reg-1">Downtown (Mayo Clinic)<span class="filter-count"></span></label></li> 2621 2622 <li><input type="checkbox" name="regionids" id="reg-2" class="shared-input input-checkbox" value="56" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Northeast Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Northeast Rochester" }, "tClient_ga4" : { "filterType" : "Northeast%20Rochester | Region" } }'> <label for="reg-2">Northeast Rochester<span class="filter-count"></span></label></li> 2623 2624 <li><input type="checkbox" name="regionids" id="reg-3" class="shared-input input-checkbox" value="46" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Northwest Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Northwest Rochester" }, "tClient_ga4" : { "filterType" : "Northwest%20Rochester | Region" } }'> <label for="reg-3">Northwest Rochester<span class="filter-count"></span></label></li> 2625 2626 <li><input type="checkbox" name="regionids" id="reg-4" class="shared-input input-checkbox" value="47" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)" }, "tClient_ga4" : { "filterType" : "Mayo%20Clinic%20Hospital%20-%20Saint%20Marys%20Campus%20(2nd%20Street%20SW) | Region" } }'> <label for="reg-4">Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)<span class="filter-count"></span></label></li> 2627 2628 <li><input type="checkbox" name="regionids" id="reg-5" class="shared-input input-checkbox" value="57" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Southeast Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Southeast Rochester" }, "tClient_ga4" : { "filterType" : "Southeast%20Rochester | Region" } }'> <label for="reg-5">Southeast Rochester<span class="filter-count"></span></label></li> 2629 2630 <li><input type="checkbox" name="regionids" id="reg-6" class="shared-input input-checkbox" value="58" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Southwest Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Southwest Rochester" }, "tClient_ga4" : { "filterType" : "Southwest%20Rochester | Region" } }'> <label for="reg-6">Southwest Rochester<span class="filter-count"></span></label></li> 2631 2632 2633 <li class="showmore" data-sv-filter-showmore data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_showmore" }, "tClient_ga4" : { "filterType" : "Toggle Show More | Region" } }'>Show More <i class="fa fa-caret-down"></i></li> 2634 <li class="nofilters">No available filters</li> 2635 2636 </ul> 2637 2638 2639 2640 2641 2642 2643 2644 </form> 2645 </div> 2646 2647 2648 </div> 2649 </div> 2650 </li> 2651 <li> 2652 <a href="#" data-sv-mobile-options-display="">View <i class="fa fa-angle-down"></i></a> 2653 <div class="options-dropdown centered"> 2654 <ul class="options"> 2655 <li><a href="#" class="active" data-sv-viewby="grid" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "Grid | View by" }}'><i class="fa fa-th"></i> Grid</a></li> 2656 <li><a href="#" data-sv-viewby="list" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "List | View by" }}'><i class="fa fa-list"></i> List</a></li> 2657 <li><a href="#" data-sv-viewby="map" data-gtm-click data-gtm-vars='{"tClient_ga4" : { "filterType" : "Map | View by" }}'><i class="fa fa-map-marker"></i> Map</a></li> 2658 </ul> 2659 </div> 2660 </li> 2661 <li data-sv-distanceSort> 2662 <a href="#" data-sv-mobile-options-display="">Sort <i class="fa fa-angle-down"></i></a> 2663 <div class="options-dropdown centered"> 2664 <ul class="options"> 2665 <li class="title">Sort by:</li> 2666 <li><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "qualityScore" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Recommended" }, "tClient_ga4" : { "filterType" : "Recommended | Sort by" } }
2666' data-query-link='{ "delta" : { "sort" : "qualityScore", "skip" : "", "dtnids" :"" }, "selectedIgnore" : ["skip", "dtnids"] }'>Recommended</a></li> 2667 <li class="alphabeticalSort"><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "alphabetical" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Alphabetical" }, "tClient_ga4" : { "filterType" : "Alphabetical | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "alphabetical", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>A to Z</a></li> 2668 <li class="distanceSort"><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "distance" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Distance" }, "tClient_ga4" : { "filterType" : "Distance | Sort by" } }' data-query-link='{ "delta" : { "sort" : "distance", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>Distance</a></li> 2669 2670 </ul> 2671 </div> 2672 </li> 2673 </ul> 2674 2675 <div class="desktop-filters"> 2676 <div class="filters-wrapper"> 2677 2678 2679 2680 2681 <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> 2682 <div class="close" data-sv-close-filters=""></div> 2683 <form> 2684 <input type="hidden" name="catid" value="3"/> 2685 <input type="hidden" name="skip" value="0"/> 2686 <input type="hidden" name="alphaend" value=""/> 2687 <input type="hidden" name="alphastart" value=""/> 2688 <input type="hidden" name="sort" value=""/> 2689 2690 2691 <input type="hidden" name="subcatids" value="1896" /> 2692 2693 2694 <label class="keyword">KEYWORD SEARCH</label> 2695 <div class="form-group"> 2696 <input class="shared-input input-text" name="keyword" type="text"> 2697 <button class="shared-submit"><i class="fa fa-search"></i></button> 2698 </div> 2699 2700 2701 2702 2703 2704 2705 <h4>Region</h4> 2706 <ul class="filter-items"> 2707 2708 <li><input type="checkbox" name="regionids" id="reg-1" class="shared-input input-checkbox" value="43" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Downtown (Mayo Clinic)" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Downtown (Mayo Clinic)" }, "tClient_ga4" : { "filterType" : "Downtown%20(Mayo%20Clinic) | Region" } }'> <label for="reg-1">Downtown (Mayo Clinic)<span class="filter-count"></span></label></li> 2709 2710 <li><input type="checkbox" name="regionids" id="reg-2" class="shared-input input-checkbox" value="56" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Northeast Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Northeast Rochester" }, "tClient_ga4" : { "filterType" : "Northeast%20Rochester | Region" } }'> <label for="reg-2">Northeast Rochester<span class="filter-count"></span></label></li> 2711 2712 <li><input type="checkbox" name="regionids" id="reg-3" class="shared-input input-checkbox" value="46" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Northwest Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Northwest Rochester" }, "tClient_ga4" : { "filterType" : "Northwest%20Rochester | Region" } }'> <label for="reg-3">Northwest Rochester<span class="filter-count"></span></label></li> 2713 2714 <li><input type="checkbox" name="regionids" id="reg-4" class="shared-input input-checkbox" value="47" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)" }, "tClient_ga4" : { "filterType" : "Mayo%20Clinic%20Hospital%20-%20Saint%20Marys%20Campus%20(2nd%20Street%20SW) | Region" } }'> <label for="reg-4">Mayo Clinic Hospital - Saint Marys Campus (2nd Street SW)<span class="filter-count"></span></label></li> 2715 2716 <li><input type="checkbox" name="regionids" id="reg-5" class="shared-input input-checkbox" value="5
27167" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Southeast Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Southeast Rochester" }, "tClient_ga4" : { "filterType" : "Southeast%20Rochester | Region" } }'> <label for="reg-5">Southeast Rochester<span class="filter-count"></span></label></li> 2717 2718 <li><input type="checkbox" name="regionids" id="reg-6" class="shared-input input-checkbox" value="58" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_check", "label" : "Southwest Rochester" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Region | Southwest Rochester" }, "tClient_ga4" : { "filterType" : "Southwest%20Rochester | Region" } }'> <label for="reg-6">Southwest Rochester<span class="filter-count"></span></label></li> 2719 2720 2721 <li class="showmore" data-sv-filter-showmore data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_regions_showmore" }, "tClient_ga4" : { "filterType" : "Toggle Show More | Region" } }'>Show More <i class="fa fa-caret-down"></i></li> 2722 <li class="nofilters">No available filters</li> 2723 2724 </ul> 2725 2726 2727 2728 2729 2730 2731 2732 </form> 2733 </div> 2734 2735 2736 </div> 2737 </div> 2738 2739 <div class="results-wrapper"> 2740 <ul class="options"> 2741 <li class="title">View by:</li> 2742 <li><a class="view-option active" href="#" data-sv-viewby="grid" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | Grid" }, "tClient_ga4" : { "filterType" : "Grid | View by", "eventName": "filter" } }'><i class="fa fa-th"></i> Grid</a></li> 2743 <li><a class="view-option" href="#" data-sv-viewby="list" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | List" }, "tClient_ga4" : { "filterType" : "List | View by", "eventName": "filter" } }'><i class="fa fa-list"></i> List</a></li> 2744 <li><a class="view-option" href="#" data-sv-viewby="map" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "View By | Map" }, "tClient_ga4" : { "filterType" : "Map | View by", "eventName": "filter" } }'><i class="fa fa-map-marker"></i> Map</a></li> 2745 <li class="sort-title line" data-sv-distanceSort>Sort by:</li> 2746 <li data-sv-distanceSort><a class="view-option" data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "qualityScore" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Recommended" }, "tClient_ga4" : { "filterType" : "Recommended | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "qualityScore", "skip" : "", "dtnids" :"" }, "selectedIgnore" : ["skip", "dtnids"] }'>Recommended</a></li> 2747 <li class="alphabeticalSort"><a class="view-option" data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "alphabetical" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Alphabetical" }, "tClient_ga4" : { "filterType" : "Alphabetical | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "alphabetical", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>A to Z</a></li> 2748 <li class="distanceSort"><a class="view-option" data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "distance" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Distance" }, "tClient_ga4" : { "filterType" : "Distance | Sort by", "eventName": "filter" } }' data-query-link='{ "delta" : { "sort" : "distance", "skip" : "", "dtnids" : "" }, "selectedIgnore" : ["skip", "dtnids"] }'>Distance</a></li> 2749 </ul> 2750 <div class="results" data-sv-content-height> 2751 2752 2753<div class="shared-map-container" data-sv-map-container="" > 2754 <div class="nav-gear"></div> 2755 <div class="item-list shared-items"> 2756 <div class="item-list-header"> 2757 <h3>Results</h3> 2758 <div class="map-counter" data-sv-map-items-counter></div> 2759 </div> 2760 <div class="container" data-sv-map-items></div> 2761 <div class="clearfix buttons" data-sv-map-pager></div> 2762 </div> 2763 2764 <div id="map" class="shared-map"> 2765 <div class="gMapContainer" data-gmapcontainer=""> 2766 <div class="gMapHolder" data-mapholder="" style="display: none;"></div> 2767 </div> 2768 </div> 2769</div> 2770 <div class="shared-items-container"> 2771 <div class="shared-items" data-gtm-vars='{"tClient": {"eventCategory": "Listings", "eventAction": "Link to Detail", "ot": "Text", "vt": "Results", "ua": "Click", "lt": "Detail"}}'> 2772 <div class="container" data-sv-items-wrapper="" data-sv-items> 2773 </div> 2774 </div> 2775 </div> 2776 </div> 2777 <div class="clearfix"></div> 2778 <div class="listings-bottom"> 2779 <div class="row"> 2780 <div class="columns small-12 pagination-container bottom-container"> 2781 <div data-sv-pager></div> 2782 </div> 2783 </div> 2784 </div> 2785 </div> 2786 2787 2788 <div class="overlay" data-sv-listings-overlay=""></div> 2789</div> 2790
2791<script> 2792 require([ 2793 "jquery", 2794 "plugins_core/main", 2795 "sv_goatee!plugins=stringLib,sv_site,crmLib,cloudinary", 2796 "geodist", 2797 "sv_crmLib", 2798 "plugins_listings_custom_map", 2799 "plugins_listings_custom_listings_lib", 2800 "sv_site", 2801 "sv_arrayLib", 2802 "sv_Pager", 2803 "sv_cloudinaryLib", 2804 "sv_asyncLib", 2805 "sv_urlLib", 2806 "sv_geolocationLib", 2807 "lodash", 2808 "sv_clientLib", 2809 "sv_load!plugins_dtn", 2810 "sv_clientMoment", 2811 "plugins_listings_custom_rates", 2812 "sv_load!site_tripbuilder", 2813 "site_gtm", 2814 "site_gamClient", 2815 "sv_siteFoundation" 2816 ], function( 2817 $, 2818 core, 2819 goatee, 2820 geodist, 2821 sv_crmLib, 2822 mapObj, 2823 lib, 2824 site, 2825 arrayLib, 2826 sv_Pager, 2827 sv_cloudinaryLib, 2828 asyncLib, 2829 urlLib, 2830 geolocationLib, 2831 lodash, 2832 clientLib, 2833 dtn, 2834 clientMoment, 2835 rates, 2836 tripbuilder, 2837 gtm, 2838 gamClient, 2839 foundation 2840 ) { 2841 var root = $("#listings_fc63d6e5-78f5-4cab-8a1f-d214f95c1ff3"); 2842 var filterContainer = root.find("[data-sv-filters]"); 2843 var infoWindowTmpl = root.find("[data-sv-infoWindowTemplate]").html(); 2844 var mainTemplate = root.find("[data-sv-mainTemplate]").html(); 2845 var mapMainTemplate = root.find("[data-sv-mapMainTemplate]").html(); 2846 var mapTemplate = root.find("[data-sv-mapTemplate]").html(); 2847 var pagerTemplate = root.find("[data-sv-pagerTemplate]").html(); 2848 var pagerMapTemplate = root.find("[data-sv-pagerMapTemplate]").html(); 2849 var pagerMapCounterTemplate = root.find("[data-sv-pagerMapCounterTemplate]").html(); 2850 var listMapItem = root.find("[data-sv-listingListMapItem]").html(); 2851 var listingListItem = root.find("[data-sv-listingListItem]").html(); 2852 var liItemsTemplate = root.find("[data-sv-liItems]").html(); 2853 var widget = {"template":"list","showSearchBox":"true","listingcats":"3","listingsubcats":["1896"],"amenityoptions":"none"}; 2854 var limit = 12; 2855 var maxRangeMiles = 100; 2856 var clientLat = 44.022233; 2857 var clientLong = -92.458054; 2858 var dtnargs = {"auid":"/21812118460/21812952115/21812733330","limit":10,"sort":"random"}; 2859 var validSubcats = [{"label":"Department Stores","value":1896,"sortorder":8,"catid":3}]; 2860 var hasDtn = (dtnargs.auid !== undefined && dtnargs.auid.length > 0 && dtnargs.limit > 0 && dtn !== undefined); 2861 var scrollSpeed = 175; 2862 var defaultSort = "qualityScore"; // the default sort 2863 var fallbackSort = "qualityScore"; // the fallback sort in case a requested sort is not available (IE distance and out of range) 2864 var validSorts = ["qualityScore","rankTitle", "distance", "alphabetical"]; 2865 var defaultHooks = ["afterFind_offers"]; 2866 var filterHeight; 2867 var uniqueHotelListings = false; 2868 2869 if (tripbuilder !== undefined) { 2870 tripbuilder.initButtons({ 2871 root : root, 2872 addButtonTemplate : '<a class="listing-block-button trip" data-tb-add data-gtm-click=\'{ "collect" : true }\' data-gtm-vars=\'{ "tCore" : { "action" : "common_custom_map_handle_trip_builder_add" } }\' >Add to Trip</a>', 2873 removeButtonTemplate : '<span><a class="listing-block-button trip" data-gtm-click data-gtm-vars=\'{ "tCore" : { "action" : "common_custom_map_handle_trip_builder_view" } }\' href="' + tripbuilder.path + '" target="_blank" data-tb-view>View Trip</a></span>' 2874 }); 2875 2876 tripbuilder.events.on("updateButton", function() { 2877 gtm.update(); 2878 }); 2879 } 2880 2881 if (widget.detail_type !== undefined) { 2882 defaultHooks.push({ name : "afterFind_custom_detail_type", args : { detail_type : widget.detail_type } }); 2883 } 2884 2885 if (validSorts.indexOf(defaultSort) === -1 || validSorts.indexOf(fallbackSort) === -1) { 2886 throw new Error("defaultSort or fallbackSort is not in the validSorts array"); 2887 } 2888 2889 var validQueryVars = ["skip", "sort", "alphastart", "alphaend", "subcatids", "regionids", "keyword", "amenities", "mealtype"]; // query variables that we allow 2890 2891 var queryFields = { 2892 address1 : 1, 2893 altphone : 1, 2894 city : 1, 2895 crmtracking : 1, 2896 detailURL : 1, 2897 dtn : 1, 2898 description: 1, 2899 isDTN : 1, 2900 loc : 1, 2901 latitude : 1, 2902 longitude : 1, 2903 media : 1, 2904 phone : 1, 2905 primary_category : 1, 2906 primary_site : 1, 2907 primary_image : 1, 2908 primary_image_url : 1, 2909 rankid : 1, 2910 rankorder : 1, 2911 recid : 1, 2912 regionid : 1, 2913 rankname: 1, 2914 state : 1, 2915 title : 1, 2916 tollfree: 1, 2917 zip : 1, 2918 typeid:1, 2919 detail_type : 1, 2920 oncethere_orgid : 1, 2921 offers_ids : 1, 2922 weburl:1, 2923 "listingudfs_object.1762.value_raw" : 1, 2924 "listingudfs_object.1763.value_raw" : 1, 2925 "listingudfs_object.1764.value_raw" : 1, 2926 "offers.recid" : 1, 2927 "offers.title" : 1, 2928 "offers.price" : 1, 2929 "offers.source" : 1, 2930 "listingudfs_object.60.value_raw.listid" : 1, 2931 "accountudfs_object.1319.value_raw" : 1, 2932 "primary_category" : 1, 2933 "qualityScore" : 1 2934 } 2935 2936 // setup DTN 2937 if (hasDtn) { 2938 dtnargs.limit = Math.min(dtnargs.limit, limit); // ensures dtnargs.limit is not greater than limit 2939 validQueryVars.push("dtnids"); 2940 } 2941 2942 var geoResult; 2943 var xhr; 2944 2945 var findLogo = function(primary_image_url,media) { 2946 for (var i=0; i < media.length; i++) { 2947 if (media[i].mediatype === 'Logo' && media[i].mediaurl === primary_image_url) { 2948 return true; 2949 } 2950 } 2951 2952 return false; 2953 }; 2954 2955 var init = function() { 2956 if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ 2957 var pipeline = [ 2958 { "$match" : { "listingudfs_object.60" : { "$exists" : true } } }, 2959 { "$project" : { "listingudfs_object.60.values" : 1 } }, 2960 { "$group" : { "_id" : "$listingudfs_object.60.values" } }, 2961 { "$sort" : { "_id" : 1 } }, 2962 { "$project" : { "_id" : 0, "item": "$_id" } } 2963 ]; 2964 $.get("/includes/rest_v2/plugins_listings_listingmeta/aggregate/", { 2965 json : JSON.stringify({ pipeline : pipeline }), 2966 token : core.simpleToken 2967 }, function(data) { 2968 root.find("[data-sv-meal-type]").replaceWith(function() { 2969 return data.docs[0].item.map(function(type) { 2970 return '<li>
2970<input type="checkbox" name="mealtype" id="mealtype-'+data.docs[0].item.indexOf(type)+'" class="shared-input input-checkbox" value="'+type.listid+'"> <label for="mealtype-'+data.docs[0].item.indexOf(type)+'">'+type.listvalue+'<span class="filter-count"></span></label></li>'; 2971 }); 2972 }); 2973 root.find("[data-sv-mealType]").removeClass("hide"); 2974 }); 2975 } 2976 2977 // begin: Google Maps logic 2978 mapObj.init({ 2979 node : root, 2980 scrollSpeed: scrollSpeed, 2981 listingsPro : true, 2982 hasQV : true, 2983 map : { 2984 markerIcon : '/includes/public/assets/images/pin.png', 2985 gestureHandling: 'cooperative', 2986 scrollwheel: false, 2987 mapOptions: { 2988 mapTypeControl: false 2989 } 2990 } 2991 }); 2992 2993 mapObj.initListInterface(); 2994 mapObj.renderMap(); 2995 // end: Google Maps logic 2996 2997 // begin: GTM tracking 2998 var gtmBase = gtm.getVars({ node : root }); 2999 3000 var scrollFn = lodash.debounce(function() { 3001 // If the items result is view then we can say the listing layout has scrolled into view and thus is a meaningful check on how the user uses it 3002 var top = root.find("[data-sv-items]").offset().top; 3003 var inRange = $(window).scrollTop() + $(window).height() > top; 3004 if (inRange) { 3005 $(window).off("scroll", scrollFn); 3006 gtm.sendEvents($.extend(true, {}, gtmBase, { tCore : { action : "common_custom_map_handle_scroll_into_view", value : top, nonInteractiveHit : true }, tClient: {eventCategory: "Listings", eventAction: "Scroll Into View", eventLabel: "common_custom_map_handle", nonInteraction: true, eventValue: top } })); 3007 } 3008 }, 250); 3009 3010 $(window).on("scroll", scrollFn); 3011 3012 ["subcatids", "regionids", "keyword", "mealtype"].forEach(function(filter, i) { 3013 root.find("[name=" + filter + "]").change(function() { 3014 var input = $(this); 3015 var val = input.val(); 3016 if (!val) { return; } // catches undefined, null or "" since that applies to most field types (select, multieselect, text) 3017 3018 var valArray = val instanceof Array ? val : [val]; 3019 var valString = valArray.join(","); 3020 3021 // extract the labels from the options, if we're using keyword just use the original value, separates with | because "," can occur in subcat/region names 3022 var labelString = filter === "keyword" ? val : valArray.map(function(val) { return input.find('option[value="' + val + '"]').text().trim() }).join("|"); 3023 gtm.sendEvents($.extend(true, {}, gtmBase, { tCore : { action : "common_custom_map_handle_filter_change_" + filter, label : labelString, filter : valString }, tClient: {eventCategory: "Listings", eventAction: "Filter Change", eventLabel: labelString+" | "+filter}, tClient_ga4: {itemType: "listings", eventName: "filter", filterType: labelString+" | "+filter} })); 3024 }); 3025 }); 3026 // end: GTM tracking 3027 3028 // this is the starting state on a blank url, these are your "defaults", IE values that occur if you start with a blank state 3029 // This is not used to enforce required values, that should occur at in the flow.state phase 3030 var query = { 3031 subcatids : undefined, // this value represents the subcatids that are chosen by default in the UI therefore it should be undefined always 3032 regionids : widget.region_array !== undefined ? widget.region_array.join(",") : undefined, 3033 sort : defaultSort 3034 } 3035 3036 if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ 3037 query.mealtype = undefined; 3038 } 3039 3040 if (window.location.search.length > 0 && clientLib.inPreview() === false) { 3041 // if we have a starting query string, we use it, extends the values in so we don't lose initial settings 3042 query = $.extend(query, urlLib.parse(window.location.toString()).get); 3043 } 3044 3045 if (history.pushState) { 3046 history.replaceState(query, "", window.location.href); 3047 window.onpopstate = function(e) { 3048 // older safari and iOS browsers call window.onpopstate on page load without a state, even though it's declared the line above due to bugs so we bail if that happens 3049 if (e.state === null) { return; } 3050 runSearchQuery({ query : e.state, push : false }); 3051 } 3052 } 3053 3054 // run the first query, don't push since this is a starting state 3055 runSearchQuery({ query : query, push : false }); 3056 3057 // we need to check for geolocation always to find out if the user is in range 3058 geolocationLib.getGeolocationPosition({ 3059 checkRange : { 3060 latitude : clientLat, 3061 longitude : clientLong, 3062 maxRangeMiles : maxRangeMiles 3063 } 3064 }, function(err, result) { 3065 if (err) { throw err; } 3066 3067 if (result.inRange === false) { 3068 3069 return; 3070 } 3071 3072 root.find(".distanceSort").css({"visibility" : "visible"}); 3073 root.find('[data-sv-distanceSort]').css({"opacity" : 1, "pointer-events": "all"}); 3074 3075 // user is in range, set the geoResult and re-search. 3076 // TODO: move the sort template out of the result set template this way we don't have to re-perform the search to re-render the sorting template 3077 // that action should only take place if the defaultSort was distance 3078 geoResult = result; 3079 3080 // if the original sort was meant to be distance, then lets re-run the search 3081 if (query.sort !== "distance") { return; } 3082 3083 runSearchQuery({ query : query, push : false }); 3084 }); 3085 3086 } 3087 3088 // takes a query state, applies a delta, removes blacklisted keys, and removes any keys we've said aren't valid in the query 3089 var buildUrl = function(state, delta) { 3090 var queryVars = $.extend({}, state, delta); 3091 // var tempValidVars = lodash.without.apply(null, [validQueryVars].concat(blacklist)); 3092 queryVars = lodash.pick(queryVars, validQueryVars); 3093 3094 $.each(queryVars, function(i, val) { 3095 if (val === "") { delete queryVars[i]; } 3096 }); 3097 3098 return urlLib.build({ get : queryVars }); 3099 } 3100 3101 // defines a getter to ease translating comma separated strings to integer arrays since they are used in multiple places 3102 var define_stringToNumberArray = function(state, prop) { 3103 Object.defineProperty(state, prop + "_array", { 3104 get : function() { return this[prop] !== undefined ? this[prop].split(",").map(function(val) { return parseInt(val) }) : [] } 3105 }); 3106 } 3107 3108 // defines a getter to ease translating comma separated string to array of str
3108ings 3109 var define_stringToArray = function(state, prop) { 3110 Object.defineProperty(state, prop + "_array", { 3111 get : function() { return this[prop] !== undefined ? this[prop].split(",") : [] } 3112 }); 3113 } 3114 3115 // Alters the current state and perform a series of steps 3116 // -> validate query variables, set defaults, and enforce restrictions 3117 // -> get data 3118 // -> render ui 3119 var runSearchQuery = function(args) { 3120 args.query = args.query || {}; 3121 args.push = args.push !== undefined ? args.push : true; 3122 $.each(args.query, function(i, val) { 3123 if (val !== undefined && typeof val !== "string") { 3124 // URL variables inherently only support strings, so we enforce that args.query is the same structure is only strings using comma separated instead of array 3125 // If you are hitting this thrown error it means you are likely calling this function improperly, or passing something bogus to it 3126 console.log("query", args.query); // intentional console.log, left to help debug when you hit this throw due to developer error 3127 throw new Error("Invalid data type, runSearchQuery only accepts an object of key value strings, or arrays of str
3127ings, as that's all URLs support") 3128 } 3129 3130 // remove empty strings as it's easier to utilize undefined as a null state 3131 if (val === "") { 3132 delete args.query[i]; 3133 } 3134 }); 3135 3136 var flow = new asyncLib.Flow(); 3137 flow.series({ 3138 state : function(cb) { 3139 // create a state based on whiteListings our query, validate that variables match expected values 3140 // cast items to integer or other values 3141 // after this function cb's, nothing should ever change a value in anyway on the state 3142 var state = $.extend(true, {}, args.query); // clone the query so that downstream changes don't alter the original 3143 state = lodash.pick(state, validQueryVars); // whitelist incoming arguments to only those that are approved 3144 if (history.pushState && args.push) { 3145 history.pushState(state, "", urlLib.build({ get : state })) 3146 } 3147 3148 // set values for required state fields, that way even if not passed, or passed bogus, we can ensure theye exist 3149 state.limit = limit; 3150 state.catid = parseInt(widget.listingcats) || undefined; 3151 state.skip = parseInt(state.skip) || 0; // ensures we have a integer skip even if skip === "foo" || undefined 3152 state.sort = state.sort || defaultSort; 3153 3154 if (state.sort === "distance" && geoResult === undefined) { 3155 state.sort = fallbackSort; 3156 } 3157 3158 state.sort = validSorts.indexOf(state.sort) > -1 ? state.sort : defaultSort; 3159 3160 define_stringToNumberArray(state, "regionids"); 3161 define_stringToNumberArray(state, "dtnids"); // for excluding dtn recids from our main queries and ensuring the same set as we paginate 3162 define_stringToNumberArray(state, "subcatids"); 3163 define_stringToNumberArray(state, "mealtype"); 3164 define_stringToArray(state, "amenities"); 3165 3166 // state.subcatids is the subcats chosen in UI, if we have those, use the ones that also exist in our validSubcats 3167 // if we don't have those and we have listingsubcats chosen in the CMS, use those 3168 // else do not filter by subcatid 3169 var tempSubcats = state.subcatids !== undefined ? validSubcats.filter(function(val) { return state.subcatids_array.indexOf(val.value) !== -1 }) 3170 : widget.listingsubcats !== undefined ? validSubcats 3171 : undefined; 3172 3173 // if we have subcats to filter on, use them, otherwise filter on the site and catid, catid may be undefined and in that case it will filter on site only 3174 state.filterTagItems = tempSubcats !== undefined ? tempSubcats.map(function(val) { return { site : site.site, subcatid : val.value } }) 3175 : [{ site : site.site, catid : state.catid }]; 3176 cb(null, state); 3177 }, 3178 filter : function(cb) { 3179 // prepare primary filter 3180 var filter = { 3181 solrOptions : {} 3182 }; 3183 3184 filter.filter_tags = { 3185 $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems }) 3186 }; 3187 if (widget.custom_experience_accredited != undefined && widget.custom_experience_accredited.toString() === 'true') { 3188 filter['accountudfs_object.1319.value_raw'] = true 3189 } 3190 if (uniqueHotelListings) { 3191 filter['listingudfs_object.1762.value_raw'] = true; 3192 } 3193 if (flow.data.state.mealtype !== undefined) { 3194 filter['listingudfs_object.60.value_raw.listid'] = { 3195 $in : flow.data.state.mealtype_array 3196 } 3197 } 3198 3199 if (flow.data.state.regionids !== undefined) { 3200 filter.regionid = { 3201 $in : flow.data.state.regionids_array 3202 } 3203 } 3204 3205 // add amenities to filter 1 to 1 3206 if (flow.data.state.amenities !== undefined) { 3207 flow.data.state.amenities_array.forEach(function(val, i) { 3208 filter["amenities." + val + ".value_raw"] = true; 3209 }); 3210 } 3211 3212 if (flow.data.state.alphastart !== undefined && flow.data.state.alphaend !== undefined) { 3213 filter.alpha = { 3214 $gte : flow.data.state.alphastart, 3215 $lte : flow.data.state.alphaend 3216 }; 3217 } 3218 3219 if (flow.data.state.keyword !== undefined) { 3220 filter.solrOptions.keyword = flow.data.state.keyword; 3221 } 3222 3223 if (flow.data.state.sort === "distance") { 3224 filter.solrOptions.sort = "distance"; 3225 filter.solrOptions.point = [geoResult.latitude, geoResult.longitude].join(","); 3226 filter.solrOptions.radius = site.siteConfig.maxRangeMiles.toString(); 3227 } 3228 3229 // if we have no solrOptions, clean it 3230 if (Object.keys(filter.solrOptions).length === 0) { 3231 delete filter.solrOptions; 3232 } 3233 3234 3235 cb(null, filter); 3236 }, 3237 dtn : function(cb) { 3238 if ( 3239 hasDtn === false || // if dtn disabled 3240 flow.data.state.skip > 0 || // or not on the first page 3241 flow.data.state.sort === "distance" || // sorting by distance 3242 flow.data.state.catid === undefined // or we don't have cats 3243 ) { 3244 // no dtn results for this result set 3245 return cb(null, []); 3246 } 3247 3248 // query dtn 3249 var dtnFilter = $.extend(true, {}, flow.data.filter); 3250 3251 dtnFilter.filter_tags = { 3252 $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems, dtn : true }) 3253 }; 3254 3255 // using 0000 and 2359 for caching purposes, otherwise we could just use Date().toISOString() 3256 var today0000 = clientMoment().startOf("day"); // send date as 00:00:00 in the client timezone in UTC 3257 var today2359 = today0000.clone().add(1, "day").subtract(1, "second"); // send date as 23:59:59 in the client timezone in UTC 3258 3259 dtnFilter.$and = [ 3260 { 3261 $or : [ 3262 { "dtn.sdate" : { $lte : { $date : today0000.toISOString() } } }, 3263 { "dtn.sdate" : { $exists : false } } 3264 ] 3265 }, 3266 { 3267 $or : [ 3268 { "dtn.edate" : { $gte : { $date : today2359.toISOString() } } }, 3269 { "dtn.edate" : { $exists : false } } 3270 ] 3271 } 3272 ]; 3273 3274 var dtnOptions = { 3275 fields : queryFields, 3276 limit : dtnargs.limit, 3277 hooks : defaultHooks.concat("afterFind_dtn") 3278 }; 3279 3280 3281 // Set the UI sort order to DTN
3282 let dtnSort = flow.data.state.sort==="alphabetical" ? flow.data.state.sort : dtnargs.sort; 3283 3284 if (dtnSort === "random") { 3285 // on random we have to request a larger set so that we can choose a random set based on dtnargs.limit 3286 // dtn should not massively oversell this to prevent performance problems 3287 dtnOptions.limit = 99; 3288 } else if (dtnSort === "alpha") { 3289 dtnOptions.sort = { rankorder : 1, sortcompany : 1 }; 3290 } else if (dtnSort === "rank") { 3291 dtnOptions.sort = { "dtn.rank" : 1, sortcompany : 1 }; 3292 } else if(dtnSort === "alphabetical") { 3293 dtnOptions.sort = { sortcompany : 1, rankorder : 1}; 3294 }else { 3295 throw new Error("Invalid dtn sort '" + dtnargs.sort + "'"); 3296 } 3297 3298 if (xhr) { xhr.abort(); } 3299 3300 xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : dtnFilter, options : dtnOptions }), token : core.simpleToken }); 3301 xhr.done(function(res) { 3302 if (dtnSort === "random") { 3303 // randomize the result set, then trim it down to our desired limit 3304 var isDtnAndExperience = []; 3305 var isOnlyDtn = []; 3306 3307 res.docs.forEach(function(doc){ 3308 if (doc.isDTN && (doc.accountudfs_object !== undefined) && (doc.accountudfs_object[1319] !== undefined)) { 3309 isDtnAndExperience.push(doc); 3310 } else { 3311 isOnlyDtn.push(doc); 3312 } 3313 if(!uniqueHotelListings) { 3314 if(doc.listingudfs_object !== undefined && doc.listingudfs_object[1762] !== undefined) { 3315 delete doc.listingudfs_object[1762]; 3316 } 3317 } 3318 }); 3319 3320 isDtnAndExperience = arrayLib.randomize(isDtnAndExperience); 3321 isOnlyDtn = arrayLib.randomize(isOnlyDtn); 3322 3323 res.docs = isDtnAndExperience.concat(isOnlyDtn); 3324 res.docs = res.docs.splice(0, dtnargs.limit); 3325 } 3326 3327 flow.data.state.dtnids = res.docs.length > 0 ? res.docs.map(function(val) { return val.recid; }).join(",") : undefined; 3328 3329 res.docs.forEach(function(val) { 3330 val.dtnauid = dtnargs.auid; 3331 }); 3332 3333 cb(null, res.docs); 3334 }).fail(function(err, type, message) { 3335 if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow 3336 return cb(new Error(message)); 3337 }); 3338 }, 3339 data : function(cb) { 3340 // declare query options 3341 var options = { 3342 limit : flow.data.state.limit, 3343 skip : flow.data.state.skip, 3344 fields : queryFields, 3345 count : true, 3346 hooks : defaultHooks 3347 }; 3348 3349 if (flow.data.state.sort === "qualityScore") { 3350 options.sort = { qualityScore : -1, sortcompany : 1 }; 3351 } 3352 3353 if (flow.data.state.sort === "alphabetical") { 3354 options.sort = {sortcompany : 1, qualityScore : -1 }; 3355 } 3356 3357 if (flow.data.dtn.length > 0) { 3358 // has DTN listings, need to adjust page 1 limit and store state.dtnids for exclusion from main query on all pages 3359 options.limit -= flow.data.dtn.length; 3360 } else { 3361 // adjust our skip based on number of dtn listings output on page 1 3362 options.skip = flow.data.state.skip - flow.data.state.dtnids_array.length; 3363 } 3364 if (flow.data.state.dtnids !== undefined) { 3365 // exclude dtn recids from main query on all pages 3366 flow.data.filter.recid = { "$nin" : flow.data.state.dtnids_array }; 3367 } 3368 3369 // get listings data 3370 if (xhr) { xhr.abort(); } 3371 3372 if (options.limit === 0) { 3373 // if this happens, it means the entirety of page 1 came from dtn, so need to query for the total count for non-dtn listings 3374 xhr = $.get("/includes/rest_v2/plugins_listings_listings/count/", { json : JSON.stringify({ filter : flow.data.filter }), token : core.simpleToken }); 3375 } else { 3376 xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : flow.data.filter, options : options }), token : core.simpleToken }); 3377 } 3378 3379 xhr.done(function(res) { 3380 var count; 3381 var data; 3382 3383 if (options.limit === 0) { 3384 // process the count query 3385 count = res.count; 3386 data = flow.data.dtn;
3387 } else { 3388 // process the normal find query 3389 count = res.docs.count + flow.data.state.dtnids_array.length; 3390 // put dtn listings first 3391 data = flow.data.dtn.concat(res.docs.docs); 3392 } 3393 3394 cb(null, { data : data, count : count }); 3395 }).fail(function(err, type, message) { 3396 if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow 3397 return cb(new Error(message)); 3398 }); 3399 }, 3400 keywordRecids : function(cb) { 3401 if (flow.data.state.keyword === undefined) { return cb(null); } 3402 3403 var filter = { solrOptions : flow.data.filter.solrOptions }; 3404 var options = { 3405 fields : { 3406 recid : 1, 3407 _id : 0 3408 }, 3409 count : false 3410 }; 3411 3412 xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : filter, options : options }), token : core.simpleToken }); 3413 xhr.done(function(res) { 3414 var recids = res.docs.map(function(val) { return val.recid; }); 3415 3416 cb(null, recids); 3417 }).fail(function(err, type, message) { 3418 if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow 3419 return cb(new Error(message)); 3420 }); 3421 }, 3422 filterCount : function(cb) { 3423 var filter; 3424 var filterOriginal = $.extend({}, flow.data.filter); 3425 3426 //removing dtn count 3427 if (flow.data.state.dtnids !== undefined && filterOriginal.recid && filterOriginal.recid["$nin"]) { 3428 delete filterOriginal.recid; 3429 } 3430 3431 delete filterOriginal["solrOptions"]; // solrOptions doesn't work w/ aggregates 3432 // pull in location matches into faceted aggregates 3433 if (flow.data.state.sort === "distance") { 3434 filterOriginal["loc"] = { $exists : true }; 3435 } 3436 3437 // Pull in keyword matches into faceted aggregates 3438 if (flow.data.keywordRecids !== undefined) { 3439 filterOriginal["recid"] = { $in : flow.data.keywordRecids }; 3440 } 3441 3442 // MealType 3443 var facetMeal = [ 3444 { $project : { "listingudfs_object.60.value_raw" : 1 } }, 3445 { $unwind : "$listingudfs_object.60.value_raw" }, 3446 { $group : { _id : "$listingudfs_object.60.value_raw.listid", count : { $sum : 1 } } } 3447 ]; 3448 filter = $.extend({}, filterOriginal); 3449 delete filter["listingudfs_object.60.value_raw.listid"]; 3450 facetMeal.unshift({ $match : filter }) 3451 3452 // Amenities 3453 var facetAmenities = [ 3454 { $project : { "amenities_array.uniquename" : 1 } }, 3455 { $unwind : "$amenities_array" }, 3456 { $group : { _id : "$amenities_array.uniquename", count : { $sum : 1 } } } 3457 ]; 3458 filter = $.extend({}, filterOriginal); 3459 delete filter["$or"]; // only amenities in $or 3460 facetAmenities.unshift({ $match : filter }) 3461 3462 // Regions 3463 var facetRegions = [ 3464 { $group : { _id : "$regionid", count : { $sum : 1 } } } 3465 ]; 3466 filter = $.extend({}, filterOriginal); 3467 delete filter["regionid"]; 3468 facetRegions.unshift({ $match : filter }) 3469 3470 // Subcats 3471 var facetSubcats = [ 3472 { $project : { categories : 1 } }, 3473 { $unwind : "$categories" }, 3474 { $group : { _id : "$categories.subcatid", count : { $sum : 1 } } } 3475 ]; 3476 filter = $.extend({}, filterOriginal); 3477 delete filter['filter_tags']; 3478 facetSubcats.unshift({ $match : filter }) 3479 3480 var filterFlow = new asyncLib.Flow(); 3481 filterFlow.series({ 3482 mealCount : function(cb) { 3483 xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetMeal }), token : core.simpleToken }); 3484 xhr.done(function(res) { 3485 cb(null, arrayLib.index(res.docs, "_id")); 3486 }).fail(function(err, type, message) { 3487 return cb(new Error(message)); 3488 }); 3489 }, 3490 amenCount : function(cb) { 3491 xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetAmenities }), token : core.simpleToken }); 3492 xhr.done(function(res) { 3493 cb(null, arrayLib.index(res.docs, "_id")); 3494 }).fail(function(err, type, message) { 3495 return cb(new Error(message)); 3496 });
3497 }, 3498 regionCount : function(cb) { 3499 xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetRegions }), token : core.simpleToken }); 3500 xhr.done(function(res) { 3501 cb(null, arrayLib.index(res.docs, "_id")); 3502 }).fail(function(err, type, message) { 3503 return cb(new Error(message)); 3504 }); 3505 }, 3506 subcatsCount : function(cb) { 3507 xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetSubcats }), token : core.simpleToken }); 3508 xhr.done(function(res) { 3509 cb(null, arrayLib.index(res.docs, "_id")); 3510 }).fail(function(err, type, message) { 3511 return cb(new Error(message)); 3512 }); 3513 } 3514 }, cb); 3515 }, 3516 render : function(cb) { 3517 // using flow.data.data, render pager, items, update map 3518 var pager = new sv_Pager({ totalRows : flow.data.data.count, perPage : flow.data.state.limit, startIndex : flow.data.state.skip }); 3519 3520 // perform any alterations needed to data before render 3521 flow.data.data.data.forEach(function(val, i) { 3522 val.globalRow = flow.data.state.skip + i + 1; // skip + current index + 1 because it's 1-based, like row 3523 3524 if (val.primary_image_url !== undefined) { 3525 // if the primary image is a logo, replace it with the listing placeholder 3526 if (val.media !== undefined && val.media.length) { 3527 val.useslogo = findLogo(val.primary_image_url,val.media); 3528 if (val.useslogo) { 3529 val.primary_image_url = site.siteConfig.custom.listingPlaceholderUrl; 3530 } 3531 } 3532 val.primary_image = { resource : sv_cloudinaryLib.default.createResource({ imageUrl : val.primary_image_url }) }; 3533 } 3534 3535 if (flow.data.state.sort === "distance" && val.loc !== undefined) { 3536 val.distance = new geodist({ 3537 start : { lat : val.latitude, lon : val.longitude }, 3538 end : { lat : geoResult.latitude, lon : geoResult.longitude } 3539 }); 3540 } 3541 3542 // validate social links 3543 if (val.social !== undefined && val.social !== null) { 3544 $.each( val.social, function( key, social ) { 3545 if (social.smserviceid == 4) { 3546 social.value = lib.getValidSocialUrl({ url : social.value , urlType : "facebook" }); 3547 social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_facebook_click, social.value); 3548 } else if (social.smserviceid == 1) { 3549 social.value = lib.getValidSocialUrl({ url : social.value , urlType : "twitter" }); 3550 social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_twitter_click, social.value); 3551 } 3552 }); 3553 } 3554 }); 3555 3556 var filterCount = flow.data.filterCount; 3557 var filterSortCount = function(parent, args) { 3558 // parent [DOM Element] 3559 // args.countObj [Object] 3560 // args.count [bool] 3561 // args.sort [bool] 3562 3563 var items = parent.find("li"); 3564 var hasCount = 0; 3565 3566 if (args.count === true) { 3567 items.each(function(i, val) { 3568 var input = $(val).find("input"); 3569 var countIndex = args.countObj[input.val()]; 3570 if (countIndex !== undefined) { 3571 input.removeClass("disabled"); 3572 input.data("count", countIndex.count); 3573 input.next("label").find(".filter-count").text("("+countIndex.count+")"); 3574 hasCount++; 3575 } else{ 3576 input.addClass("disabled"); 3577 input.data("count", 0); 3578 input.next("label").find(".filter-count").text("("+0+")"); 3579 } 3580 }) 3581 } 3582 3583 if (args.sort === true) { 3584 items.sort(function(a, b) { 3585 if ($(b).hasClass("showmore") || $(b).hasClass("nofilters")) { // ensures showmore and nofilters at end 3586 return -1; 3587 } 3588 var count_a = $(a).find("input").data("count"); 3589 var count_b = $(b).find("input").data("count"); 3590 if (count_a === count_b) { 3591 var alpha_a = $(a).find("label").text().toLowerCase(); 3592 var alpha_b = $(b).find("label").text().toLowerCase(); 3593 return alpha_a === alpha_b ? 0 : alpha_a < alpha_b ? -1 : 1; 3594 } else { 3595 return count_a > count_b ? -1 : 1 3596 } 3597 3598 });
3599 } 3600 parent.html(items); 3601 if (hasCount > 5) { 3602 parent.find(".showmore").show(); 3603 parent.find(".nofilters").hide(); 3604 } else if (hasCount === 0) { 3605 parent.find(".showmore").hide(); 3606 parent.find(".nofilters").show(); 3607 } else { 3608 parent.find(".showmore").hide(); 3609 parent.find(".nofilters").hide(); 3610 } 3611 } 3612 3613 // There are 2 filterContainers (1 for desktop + 1 for mobile) - loop over both and apply sort/count 3614 filterContainer.each(function(i, val) { 3615 // Meal 3616 filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=mealtype]").parent().parent(), { countObj : filterCount.mealCount, count : true, sort : true }); 3617 3618 // Regions 3619 filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=regionids]").parent().parent(), { countObj : filterCount.regionCount, count : true, sort : false }); 3620 3621 // Subcats 3622 filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=subcatids]").parent().parent(), { countObj : filterCount.subcatsCount, count : true, sort : false }); 3623 3624 // Amenities 3625 filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=amenities]").parent().parent(), { countObj : filterCount.amenCount, count : true, sort : true }); 3626 }); 3627 3628 var html = goatee.fill(mainTemplate, { 3629 data : flow.data.data.data, 3630 pager : pager 3631 }, { 3632 listingListItem : listingListItem, 3633 custom_li_items : liItemsTemplate 3634 }); 3635 3636 3637 var mapListHTML = goatee.fill(mapMainTemplate, { 3638 data : flow.data.data.data 3639 }, { 3640 listMapItem : listMapItem, 3641 custom_li_items : liItemsTemplate 3642 }); 3643 3644 var pagerHtml = goatee.fill(pagerTemplate, {pager : pager }); 3645 var pageMapHTML = goatee.fill(pagerMapTemplate, { pager : pager }); 3646 var pageMapCounterHtml = goatee.fill(pagerMapCounterTemplate, { pager : pager }); 3647 3648 root.find("[data-sv-items]").html(html); 3649 root.find("[data-sv-pager]").html(pagerHtml); 3650 root.find("[data-sv-map-items]").html(mapListHTML); 3651 root.find("[data-sv-map-pager]").html(pageMapHTML); 3652 root.find("[data-sv-map-items-counter]").html(pageMapCounterHtml); 3653 3654 rates.populateSummary({ node: root, cleanup: true }); 3655 3656 // update form inputs for multi-select and select 3657 ["regionids", "subcatids", "mealtype"].forEach(function(val, i) { 3658 root.find("[name='" + val + "']").prop("checked", function() { 3659 return flow.data.state[val + "_array"].indexOf(parseInt($(this).attr("value"))) > -1; 3660 }); 3661 }); 3662 3663 // update text inputs 3664 ["sort", "alphastart", "alphaend", "keyword"].forEach(function(val, i) { 3665 filterContainer.find("[name=" + val + "]").val(flow.data.state[val]); 3666 }); 3667 3668 // update checkbox inputs 3669 ["amenities"].forEach(function(val, i) { 3670 root.find("[name='" + val + "']").prop("checked", function() { 3671 return flow.data.state[val + "_array"].indexOf($(this).attr("value")) > -1; 3672 }); 3673 }); 3674 3675 // update the query-links with new hrefs and selected class 3676 root.find("[data-query-link]").each(function(i, val) { 3677 var settingString = $(this).attr("data-query-link"); 3678 3679 try { 3680 // JSON.parse() can fail due to "" or other syntax lets catch that error to simplify development in the case of typos 3681 var args = JSON.parse(settingString); 3682 } catch (e) { 3683 console.log("Unable to parse", settingString); 3684 return; 3685 } 3686 3687 args.delta = args.delta || {}; 3688 args.selectedIgnore = args.selectedIgnore || []; 3689 3690 var deltaUrl = buildUrl(flow.data.state, args.delta); 3691 var skipUrl = urlLib.blacklistQuery(deltaUrl, args.selectedIgnore); 3692 var currentUrl = urlLib.blacklistQuery(buildUrl(flow.data.state, {}), args.selectedIgnore); 3693 3694 $(this).attr("href", deltaUrl); 3695 $(this).toggleClass("selected", skipUrl === currentUrl); 3696 }); 3697 3698 // begin: Google Maps logic 3699 var placemarks = []; 3700 $.each(flow.data.data.data, function(i,v) { 3701 if (v.latitude && v.longitude) { 3702 placemarks.push({ 3703 id : "listing_"+v.recid, 3704 recid : v.recid, 3705 type : 'listing', 3706 marker : { 3707 position : [v.latitude, v.longitude] 3708 }, 3709 infoWindow : { 3710 content : goatee.fill(infoWindowTmpl, { 3711 title : v.title, 3712 address1 : v.address1, 3713 url : v.url, 3714 nearbyRecid : v.recid, 3715 ga4_cats : v.primary_category.catname + " | " + v.primary_category.subcatname, 3716 crmCat : v.primary_category.catname, 3717 crmSubcat: v.primary_category.subcatname, 3718 itemType: "listings", 3719 listing: true 3720 }), 3721 maxWidth : 300 3722 } 3723 });
3724 } 3725 }); 3726 3727 mapObj.setPlacemarks(placemarks); 3728 // end: Google Maps logic 3729 3730 // tripbuilder 3731 if (tripbuilder !== undefined) { 3732 tripbuilder.updateButtons(root); 3733 } 3734 3735 if (hasDtn) { 3736 gamClient.renderAds(); 3737 } 3738 3739 // process gtmLib tagged items that may have been added to the DOM 3740 gtm.update(); 3741 3742 cb(null); 3743 }, 3744 renderfilterHeight : function(cb) { 3745 filterHeight = root.find('[data-sv-content-height]').innerHeight(); 3746 setFilterHeight(filterHeight); 3747 3748 cb(null); 3749 } 3750 }, function(err) { 3751 if (err) { throw err; } 3752 }); 3753 } 3754 3755 filterContainer.find("form").submit(function(e) { 3756 e.preventDefault(); 3757 var query = clientLib.formToObject($(this)); 3758 3759 // certain form inputs like select and multi-select and checkbox pass as an array 3760 // so we want to convert those to comma separated lists for shorter query strings and easy of use downstream 3761 Object.keys(query).forEach(function(val, i) { 3762 if (query[val] instanceof Array) { query[val] = query[val].join(",") } 3763 }); 3764 3765 runSearchQuery({ query : query }); 3766 $('html, body').animate({ scrollTop: $(root).offset().top }, 300); 3767 $('body').trigger('resetMap'); 3768 }); 3769 3770 root.on("click", "[data-query-link]", function(e) { 3771 e.preventDefault(); 3772 if ($(this).hasClass("disabled")) { return; } 3773 3774 var query = urlLib.parse($(this).attr("href")).get; 3775 runSearchQuery({ query : query }); 3776 }); 3777 3778 3779 root.find('a[data-sv-viewby]').click(function(e) { 3780 e.preventDefault(); 3781 var viewby = $(this).attr('data-sv-viewby'); 3782 var layout = $('[data-sv-layout]'); 3783 3784 $('a[data-sv-viewby].active').removeClass('active'); 3785 $('a[data-sv-viewby="' + viewby + '"]').toggleClass('active'); 3786 3787 layout.removeClass('layout-grid') 3788 .removeClass('layout-list') 3789 .removeClass('layout-map'); 3790 3791 layout.addClass('layout-' + viewby); 3792 3793 // specific display settings for list view 3794 if (viewby === "list") { 3795 root.find('[data-sv-items-wrapper]').removeClass('hide'); 3796 root.find('[data-sv-pager]').removeClass('hide'); 3797 root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); 3798 3799 3800 filterHeight = root.find('[data-sv-content-height]').innerHeight(); 3801 setFilterHeight(filterHeight); 3802 } 3803 3804 // specific display settings for grid view 3805 if (viewby === "grid") { 3806 root.find('[data-sv-items-wrapper]').removeClass('hide'); 3807 root.find('[data-sv-pager]').removeClass('hide'); 3808 root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); 3809 3810 filterHeight = root.find('[data-sv-content-height]').innerHeight(); 3811 setFilterHeight(filterHeight); 3812 } 3813 3814 // specific display settings for map view 3815 if (viewby === "map") { 3816 mapObj.setState({ open : true }); 3817 root.find('[data-sv-desktop-pager]').css({'width' : 280 + 'px' }); 3818 root.find('[data-sv-items-wrapper]').addClass('hide'); 3819 root.find('[data-sv-pager]').addClass('hide'); 3820 } 3821 3822 3823 filterHeight = root.find('[data-sv-content-height]').innerHeight(); 3824 setFilterHeight(filterHeight); 3825 }); 3826 3827 root.on('click', '[data-sv-open-map]', function(e) { 3828 e.preventDefault(); 3829 var layout = $('[data-sv-layout]'); 3830 $('a[data-sv-viewby].active').removeClass('active'); 3831 $('a[data-sv-viewby="map"]').toggleClass('active'); 3832 layout.removeClass('layout-grid') 3833 .removeClass('layout-list') 3834 .removeClass('layout-map'); 3835 layout.addClass('layout-map'); 3836 root.find('[data-sv-items-wrapper]').addClass('hide'); 3837 root.find('[data-sv-pager]').addClass('hide'); 3838 }); 3839 3840 var setFilterHeight = function(filterHeight){ 3841 if(filterHeight < 980 && $(window).width() > 768){ 3842 filterContainer.css({"height" : 980 + 'px'}); 3843 } else { 3844 filterContainer.css({"height" : filterHeight}); 3845 } 3846 } 3847 3848 var toggleOverlay = function() { 3849 var overylay = $('[data-sv-listings-overlay]'); 3850 if (overylay.hasClass('active')) { 3851 overylay.removeClass('active'); 3852 $('[data-sv-mobile-options]').find('li.active').removeClass('active'); 3853 } else { 3854 overylay.addClass('active'); 3855 } 3856 }; 3857 3858 var closeMobileMenus = function() { 3859 var w_width = $(window).width(); 3860 $('[data-sv-mobile-options]').find('li.active').siblings().removeClass('active'); 3861 if (w_width < 1025){ 3862 toggleOverlay(); 3863 } 3864 3865 }; 3866 3867 ["subcatids", "regionids", "amenities", "mealtype"].forEach(function(filter, i) { 3868 filterContainer.on("change", "input[name=" + filter + "]", function() { 3869 $(this).closest('form').submit(); 3870 }); 3871 }); 3872 3873 root.find('[data-sv-mobile-options] [data-sv-viewby]').click(function(e) { 3874 closeMobileMenus(); 3875 }); 3876 3877 root.on("click", "[data-query-link]", function(e) { 3878 e.preventDefault(); 3879 if ($(this).hasClass("disabled") || $(this).hasClass('map-pager-button')) { return; } 3880 closeMobileMenus(); 3881 3882 var query = urlLib.parse($(this).attr("href")).get; 3883 runSearchQuery({ query : query }); 3884 }); 3885 3886 root.on("click", ".pagination [data-query-link]", function() { 3887 // enable scroll to top for the bottom pager only 3888 $("html, body").animate({ scrollTop: root.offset().top }, scrollSpeed); 3889 }); 3890 3891 root.find('[data-sv-mobile-options-display]').click(function(e) { 3892 e.preventDefault(); 3893 $(this).parent().toggleClass('active'); 3894 closeMobileMenus(); 3895 }); 3896 3897 root.find('[data-sv-listings-overlay]').click(function(e) { 3898 e.preventDefault(); 3899 closeMobileMenus(); 3900 }); 3901 3902 root.find('[data-sv-close-filters]').click(function(e) { 3903 e.preventDefault(); 3904 closeMobileMenus(); 3905 }); 3906 3907 root.find('[data-sv-clear-filters]').click(function(e) { 3908 e.preventDefault(); 3909 $(this).closest('form')[0].reset(); 3910 closeMobileMenus(); 3911 3912 runSearchQuery({ query : {} }); 3913 var href = window.location.href.replace(window.location.search, ''); 3914 history.pushState(null, "", href); 3915 }); 3916 3917 filterContainer.on("click", 'li[data-sv-filter-showmore]', function(e) { 3918 e.preventDefault(); 3919 var parent = $(this).closest('ul.filter-items'); 3920 if (parent.hasClass('showmore')) { 3921 parent.removeClass('showmore'); 3922 $(this).html("Show More <i class='fa fa-caret-down'></i>"); 3923 } else { 3924 parent.addClass('showmore'); 3925 $(this).html("Show Less <i class='fa fa-caret-up'></i>"); 3926 } 3927 }); 3928 3929 3930 root.on('click', '.nav-gear', function() { 3931 root.find('[data-sv-map-container]').toggleClass('dockit'); 3932 }); 3933 3934 3935 $(window).on('resize', lodash.debounce(setFilterHeight, 200)); 3936 3937 $(window).on('load', function() { 3938 filterHeight = root.find('[data-sv-content-height]').innerHeight(); 3939 setFilterHeight(filterHeight); 3940 }); 3941 3942 $(root).find('[data-sv-back-up]').on('click', function(e) { 3943 // enable scroll to top for the bottom 3944 $('html, body').animate({ scrollTop: $(root).offset().top }, 300); 3945 }); 3946 3947 init(); 3948 }); 3949</script>
3949</div> 3950 </div> 3951</div><div data-civid="5ada2d324e2d0a5ed3192a87" class="contentRender contentRender_22 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="1" data-sv-index="22" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> 3952 3953 <div class="panel_custom_one_col controlled-width"> 3954 <div class="row"> 3955 <div class="columns"> 3956 <div data-civid="68dc00ef59a8d960b7a2d6e7" class="contentRender contentRender_23 contentRender_type_panel contentRender_name_plugins_common_50_50" data-sv-time="0" data-sv-index="23" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 3957<div class="panel-two-col-even"> 3958 <div class="row"> 3959 <div class="columns large-6"> 3960 <div data-civid="68dc00ef59a8d960b7a2d6e9" class="contentRender contentRender_24 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox_subtitle" data-sv-time="42" data-sv-index="24" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 3961 3962 3963<div data-guid="4601921a-b0e8-4272-850d-f6ea8e1ea853" class="imagebox-subtitle-holder"> 3964
3964<script type="text/template" data-slide-template> 3965 3966 {{#items}} 3967 <section class="imagebox-fancy"> 3968 {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 3969 <span class="imgcont"> 3970 <img src="{{asset.resource.getThumbnailUrl({ width : 636, height : 846, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> 3971 </span> 3972 {{:link}}</a>{{/}} 3973 <dl class="textcont"> 3974 {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 3975 <dt>{{title}}</dt> 3976 <dd>{{subtitle}}</dd> 3977 {{:link}}</a>{{/}} 3978 </dl> 3979 {{:link}} 3980 <a href="{{link.url}}" target="{{link.target}}" class="btn btn-2"> 3981 <div class="btn-text"> 3982 {{*templateData.more_caption}} 3983 <i class="fa fa-angle-double-right" aria-hidden="true"></i> 3984 </div> 3985 </a> 3986 {{/}} 3987 </section> 3988 {{/}} 3989 3990 </script>
3990 3991</div> 3992
3993<script> 3994 require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { 3995 var root = $("[data-guid=4601921a-b0e8-4272-850d-f6ea8e1ea853]"); 3996 var flow = new asyncLib.Flow(); 3997 var data = {"template":"custom_imagebox_subtitle","source":"custom","templateData":{"more_caption":"LEARN MORE","adunits":["/21812118460/21812952115/21812823374"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"4601921a-b0e8-4272-850d-f6ea8e1ea853","widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":24,"guid":"77afaec8-9e34-4fdc-aa15-4cb69b7507bf","data":{"template":"custom_imagebox_subtitle","feedData_json":"{}","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812823374"],"source":"custom","items_json":"[]","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812823374"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_imagebox_subtitle","site_name":"primary","custom_label":null,"saved":false,"created":"2025-09-30T16:10:59.989Z","updated":"2025-09-30T16:10:59.989Z","deleted":false,"id":"68dc00ef59a8d960b7a2d6e9","version_id_string":"68dc00ef59a8d960b7a2d6ea"},"version":{"data":{"template":"custom_imagebox_subtitle","feedData_json":"{}","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812823374"],"source":"custom","items_json":"[]","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812823374"]},"created":"2025-09-30T16:10:59.994Z","id":"68dc00ef59a8d960b7a2d6ea","instance_id_string":"68dc00ef59a8d960b7a2d6e9"},"onTrunk":true,"civid":"68dc00ef59a8d960b7a2d6e9"},"name":"plugins_collections_type_custom_imagebox_subtitle","component":"WidgetCollectionsTypeCustomSlides"}}; 3998 var slideTemplate = root.find("[data-slide-template]").html(); 3999 4000 flow.series({ 4001 dtn : function(cb) { 4002 if (plugins_dtn === undefined) { return cb(null, []); } 4003 4004 var ids = ["/21812118460/21812952115/21812823374"]; 4005 plugins_dtn.getAdUnitsGam({ 4006 ids : ids, 4007 modelName : "plugins_collections_type_custom_slides", 4008 trackUrlFields : ["link.url"], 4009 mockFilter : { isdtn : true } 4010 }, function(err, temp) { 4011 if (err) { return cb(err); } 4012 // push dtn items to the front of the array 4013 data.items.unshift.apply(data.items, temp); 4014 cb(null); 4015 }); 4016 }, 4017 slides : function(cb) { 4018 data = collectionHelper.init(data); 4019 var slides = goatee.fill(slideTemplate, data); 4020 4021 root.html(slides); 4022 4023 cb(null); 4024 } 4025 }, function(err) { 4026 if (err) { throw err; } 4027 }); 4028 }); 4029</script>
4029</div> 4030 </div> 4031 <div class="columns large-6"> 4032 <div data-civid="68dc00ef59a8d960b7a2d6eb" class="contentRender contentRender_25 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox" data-sv-time="41" data-sv-index="25" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> 4033 4034 4035<div data-guid="3c54fce5-2195-451a-ac6d-3b897fa946e8" class="imagebox-holder"> 4036
4036<script type="text/template" data-slide-template> 4037 4038 {{~setVar('largeImage', data.templateData.tall_image)}} 4039 {{#items}} 4040 <section class="imagebox"> 4041 {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 4042 <span class="imgcont"> 4043 {{:~var.largeImage}} 4044 <img src="{{asset.resource.getThumbnailUrl({ width : 594, height : 791, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> 4045 {{?}} 4046 <img src="{{asset.resource.getThumbnailUrl({ width : 666, height : 498, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> 4047 {{/}} 4048 </span> 4049 {{:link}}</a>{{/}} 4050 4051 <div class="fw-gradient ol-gray-gradient"></div> 4052 4053 {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 4054 <dl class="textcont"> 4055 <dt> 4056 {{title}} 4057 </dt> 4058 <dd> 4059 {{plainDescription(100)}} 4060 </dd> 4061 {{:link}} 4062 <span class="more-link">{{*templateData.more_caption}}</a> 4063 {{/}} 4064 <div class="bg-tiles"></div> 4065 </dl> 4066 {{:link}}</a>{{/}} 4067 </section> 4068 {{/}} 4069 4070 </script>
4070 4071</div> 4072
4073<script> 4074 require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { 4075 var root = $("[data-guid=3c54fce5-2195-451a-ac6d-3b897fa946e8]"); 4076 var flow = new asyncLib.Flow(); 4077 var data = {"template":"custom_imagebox","source":"custom","templateData":{"tall_image":"true","more_caption":"LEARN MORE","adunits":["/21812118460/21812952115/21812944915"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"3c54fce5-2195-451a-ac6d-3b897fa946e8","widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":25,"guid":"a897c6af-3331-4b81-89a5-db86f3dd31a9","data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812944915"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812944915"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_imagebox","site_name":"primary","custom_label":null,"saved":false,"created":"2025-09-30T16:10:59.998Z","updated":"2025-09-30T16:10:59.998Z","deleted":false,"id":"68dc00ef59a8d960b7a2d6eb","version_id_string":"68dc00ef59a8d960b7a2d6ec"},"version":{"data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"LEARN MORE","templateData_adunits":["/21812118460/21812952115/21812944915"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"LEARN MORE","data_adunits":["/21812118460/21812952115/21812944915"]},"created":"2025-09-30T16:11:00.176Z","id":"68dc00ef59a8d960b7a2d6ec","instance_id_string":"68dc00ef59a8d960b7a2d6eb"},"onTrunk":true,"civid":"68dc00ef59a8d960b7a2d6eb"},"name":"plugins_collections_type_custom_imagebox","component":"WidgetCollectionsTypeCustomSlides"}}; 4078 var slideTemplate = root.find("[data-slide-template]").html(); 4079 4080 flow.series({ 4081 dtn : function(cb) { 4082 if (plugins_dtn === undefined) { return cb(null, []); } 4083 4084 var ids = ["/21812118460/21812952115/21812944915"]; 4085 plugins_dtn.getAdUnitsGam({ 4086 ids : ids, 4087 modelName : "plugins_collections_type_custom_slides", 4088 trackUrlFields : ["link.url"], 4089 mockFilter : { isdtn : true } 4090 }, function(err, temp) { 4091 if (err) { return cb(err); } 4092 // push dtn items to the front of the array 4093 data.items.unshift.apply(data.items, temp); 4094 cb(null); 4095 }); 4096 }, 4097 slides : function(cb) { 4098 data = collectionHelper.init(data); 4099 var slides = goatee.fill(slideTemplate, data); 4100 4101 root.html(slides); 4102 4103 cb(null); 4104 } 4105 }, function(err) { 4106 if (err) { throw err; } 4107 }); 4108 }); 4109</script>
4109</div> 4110 </div> 4111 </div> 4112</div></div><div data-civid="68dc00ef59a8d960b7a2d6ed" class="contentRender contentRender_26 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_features" data-sv-time="41" data-sv-index="26" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> 4113 4114 4115 4116<section class="spotlight interior" data-guid="683e0785-ce03-408d-a415-9b44c4c5f150"> 4117
4117<script type="text/template" data-slide-template> 4118 <dl class="bg-shatter"> 4119 <dt class="mixed"> 4120 <span class="first-text">Rochester</span> 4121 <span class="second-text">FEATURES</span> 4122 </dt> 4123 4124 {{#items}} 4125 <dd class="columns{{:description}} has-desc{{/}}"> 4126 {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} 4127 <div class="title">{{title}}</div> 4128 <div class="description"> 4129 {{plainDescription(50)}} 4130 </div> 4131 {{:link}}</a>{{/}} 4132 </dd> 4133 {{/items}} 4134 4135 </dl> 4136 </script>
4136 4137 4138 <div data-slide-replace class="row collapse"></div> 4139</section> 4140
4141<script> 4142 require(["jquery","sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary", "sv_asyncLib", "plugins_common_custom_collection_helper", "sv_clientLib"], function($, plugins_dtn, goatee, asyncLib, collectionHelper, sv_clientLib) { 4143 var root = $("[data-guid=683e0785-ce03-408d-a415-9b44c4c5f150]"); 4144 var flow = new asyncLib.Flow(); 4145 var data = {"template":"custom_features","source":"custom","templateData":{"title":"Rochester","title2":"FEATURES","interior_style":"true","adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"683e0785-ce03-408d-a415-9b44c4c5f150","widgetArgs":{"nav":{"_id":"5ab409e06fabc5420e517b30","site_name":"primary","section":"main","folder":"department-stores","folderHref":"/things-to-do/shopping/department-stores/","sortorder":4,"active":true,"title":"Department Stores","cms_title":"Department Stores - /things-to-do/shopping/department-stores/","cms_title_sort":"department stores - /things-to-do/shopping/department-stores/","type":"page","show_on_nav":true,"searchable":"yes","meta_title":"Shopping in Rochester, MN | Department Stores","meta_description":"View details, amenities, and maps for malls and department stores in Rochester, Minnesota to find apparel, electronics, home goods, toys, and more.","content_owner":"default","publish_start":"2018-03-22T19:54:08.567Z","parents_ids":["5ab409d26fabc5420e51608c","5ab409d56fabc5420e5165a1"],"parent_id":"5ab409d56fabc5420e5165a1","updated":"2019-09-04T20:52:34.939Z","title_sort":"department stores","published":true,"created":"2018-03-22T19:54:08.568Z","new_window":false,"version_id":"5d70241277e8d17cf500315c","site_section":"primary.main","locale_count":0,"id":"5ab409e06fabc5420e517b30","parent_id_string":"5ab409d56fabc5420e5165a1","version_id_string":"5d70241277e8d17cf500315c","href":"/things-to-do/shopping/department-stores/","absoluteHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","absoluteFolderHref":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","metaTitle":"Shopping in Rochester, MN | Department Stores","rootCmsUrl":"/nav/sitemap/site_primary/section_main/"},"num":26,"guid":"1f676ebd-fdda-4a3b-b154-ef205f7e8376","data":{"template":"custom_features","feedData_json":"{}","templateData_title":"Rochester","templateData_title2":"FEATURES","templateData_interior_style":"true","templateData_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"],"source":"custom","items_json":"[]","data_title":"Rochester","data_title2":"FEATURES","data_interior_style":"true","data_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_features","site_name":"primary","custom_label":null,"saved":false,"created":"2025-09-30T16:11:00.211Z","updated":"2025-09-30T16:11:00.211Z","deleted":false,"id":"68dc00ef59a8d960b7a2d6ed","version_id_string":"68dc00ef59a8d960b7a2d6ee"},"version":{"data":{"template":"custom_features","feedData_json":"{}","templateData_title":"Rochester","templateData_title2":"FEATURES","templateData_interior_style":"true","templateData_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"],"source":"custom","items_json":"[]","data_title":"Rochester","data_title2":"FEATURES","data_interior_style":"true","data_adunits":["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]},"created":"2025-09-30T16:11:00.258Z","id":"68dc00ef59a8d960b7a2d6ee","instance_id_string":"68dc00ef59a8d960b7a2d6ed"},"onTrunk":true,"civid":"68dc00ef59a8d960b7a2d6ed"},"name":"plugins_collections_type_custom_features","component":"WidgetCollectionsTypeCustomSlides"}};
4146 var slideTemplate = root.find("[data-slide-template]").html(); 4147 var slideReplace = root.find("[data-slide-replace]"); 4148 4149 flow.series({ 4150 dtn : function(cb) { 4151 if (plugins_dtn === undefined) { return cb(null, []); } 4152 4153 var ids = ["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]; 4154 plugins_dtn.getAdUnitsGam({ 4155 ids : ids, 4156 modelName : "plugins_collections_type_custom_slides", 4157 trackUrlFields : ["link.url"], 4158 mockFilter : { isdtn : true } 4159 }, function(err, temp) { 4160 if (err) { return cb(err); } 4161 // push dtn items to the front of the array 4162 data.items.unshift.apply(data.items, temp); 4163 cb(null); 4164 }); 4165 }, 4166 slides : function(cb) { 4167 data = collectionHelper.init(data); 4168 var slides = goatee.fill(slideTemplate, data); 4169 4170 slideReplace.html(slides); 4171 cb(null); 4172 } 4173 }, function(err) { 4174 if (err) { throw err; } 4175 }); 4176 }); 4177</script>
4177</div> 4178 </div> 4179 </div> 4180 </div> 4181</div> 4182 </div> 4183 <div class="footer_container"> 4184 <div data-civid="5a9d89b7c9764a0e840beae1" class="contentRender contentRender_27 contentRender_type_panel contentRender_name_plugins_common_footer" data-sv-time="0" data-sv-index="27" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <footer class="panel_custom_footer"> 4185 <section class="social"> 4186 <div data-civid="688bcc69f1fd07e163e3ca5a" class="contentRender contentRender_28 contentRender_type_widget contentRender_name_plugins_collections_type_custom_social_slides contentRender_name_plugins_collections_template_custom_social_links" data-sv-time="41" data-sv-index="28" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4187<ul class="bg-gradient"> 4188 <li class="title"> 4189 4190 <span>Let's</span><span>Connect</span><i class="fa fa-angle-double-right" aria-hidden="true"></i> 4191 4192 </li> 4193 4194 4195 <li> 4196 <a href="https://www.facebook.com/ExperienceRochesterMN" target="_blank"><i class="fab fa-facebook" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Facebook | Social"}}'></i></a> 4197 </li> 4198 4199 4200 <li> 4201 <a href="https://twitter.com/ExperienceRoch" target="_blank"><i class="fab fa-x-twitter" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "X | Social"}}'></i></a> 4202 </li> 4203 4204 4205 <li> 4206 <a href="https://www.instagram.com/experiencerochmn/" target="_blank"><i class="fab fa-instagram" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Instagram | Social"}}'></i></a> 4207 </li> 4208 4209 4210 <li> 4211 <a href="https://www.linkedin.com/company/experiencerochestermn/" target="_blank"><i class="fab fa-linkedin" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Linkedin | Social"}}'></i></a> 4212 </li> 4213 4214 4215 <li> 4216 <a href="https://www.youtube.com/@ExperienceRochesterMN" target="_blank"><i class="fab fa-youtube" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Youtube | Social"}}'></i></a> 4217 </li> 4218 4219</ul></div> 4220 </section> 4221 4222 <section class="main-footer row"> 4223 <div class="columns medium-6 large-4"> 4224 <div class="flex-control"> 4225 <picture class="imgcont footer-logo"> 4226 <div data-civid="688bcc69f1fd07e163e3ca5c" class="contentRender contentRender_29 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="43" data-sv-index="29" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'><section data-sv-core-textbox data-guid="d08249aa-0973-4baa-8dd3-33c17f639ac0"> 4227 <p><img alt="Experience Rochester Logo 2023" id="plugins_assets_images_641dd924010ee024eeb7e5b2" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_1166,q_75,w_1200/v1/clients/rochestermn/ExperienceRochester_Tricolor_Stacked_be56910c-e3c0-41ac-869b-294032222f7e.png" style width="1200" height="1166" data-width="1200" data-height="1166" data-processed="true"></p> 4228 4229</section></div> 4230 </picture> 4231 <div data-civid="688bcc69f1fd07e163e3ca5e" class="contentRender contentRender_30 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="27" data-sv-index="30" data-gtm-vars='{ "tCore" : { "contentNum" : "4" } }'><section data-sv-core-textbox data-guid="c6906c2d-6d33-48c9-85a4-5a7d40af7a3b"> 4232 <ul class="address-container"> 4233 <li>30 CIVIC CENTER DRIVE SE</li> 4234 <li>ROCHESTER MN 55904</li> 4235 <li>PHONE <a href="tel:+15072884331">507 288 4331</a></li> 4236</ul> 4237 4238</section></div> 4239 </div> 4240 <div class="hide-for-large-up" > 4241 4242 <div class="gtranslate_wrapper"></div> 4243 4244 </div> 4245 </div> 4246 <div class="columns show-for-large-up large-4"> 4247 <div data-civid="688bcc69f1fd07e163e3ca60" class="contentRender contentRender_31 contentRender_type_widget contentRender_name_plugins_googletranslate_gtranslate" data-sv-time="20" data-sv-index="31" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4248 4249<div class="gtranslate_wrapper"></div>
4250<script> 4251 window.gtranslateSettings = { 4252 'default_language':'en' 4253 4254 ,"wrapper_selector":".gtranslate_wrapper" 4255 4256 ,'switcher_horizontal_position':'inline' 4257 ,'flag_size':16 4258 ,'globe_size':20 4259 ,'float_switcher_open_direction':'left' 4260 ,'switcher_open_direction':'top' 4261 4262 4263 4264 4265 4266 ,"select_language_label":"Select Language" 4267 } 4268</script>
vendor: 2 bytes, line 4268
4268
4269<script src="https://cdn.gtranslate.net/widgets/latest/dropdown.js" defer></script>
4269</div> 4270 <nav class="footer-nav"> 4271 <div data-civid="688bcc69f1fd07e163e3ca62" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="41" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4272 <ul class="navFooter"> 4273 4274 <li class="item item-parent row-1 has-submenu"> 4275 <a href="/about-us/" target="_self" class=" has-children" title="About Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "About%20Us" } }'>About Us</a> 4276 </li> 4277 4278 <li class="item item-parent row-2"> 4279 <a href="/contact-us/" target="_self" class="" title="Contact Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Contact%20Us" } }'>Contact Us</a> 4280 </li> 4281 4282 <li class="item item-parent row-3"> 4283 <a href="/sitemap/" target="_self" class="" title="Sitemap" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Sitemap" } }'>Sitemap</a> 4284 </li> 4285 4286 <li class="item item-parent row-4 last"> 4287 <a href="/privacy-policy/" target="_self" class="" title="Privacy Policy" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Privacy%20Policy" } }'>Privacy Policy</a> 4288 </li> 4289 4290 </ul> 4291</div> 4292 </nav> 4293 </div> 4294 4295 <div class="columns medium-6 large-4"> 4296 <nav class="footer-nav hide-for-large-up"> 4297 <div data-civid="688bcc69f1fd07e163e3ca62" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="41" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4298 <ul class="navFooter"> 4299 4300 <li class="item item-parent row-1 has-submenu"> 4301 <a href="/about-us/" target="_self" class=" has-children" title="About Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "About%20Us" } }'>About Us</a> 4302 </li> 4303 4304 <li class="item item-parent row-2"> 4305 <a href="/contact-us/" target="_self" class="" title="Contact Us" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Contact%20Us" } }'>Contact Us</a> 4306 </li> 4307 4308 <li class="item item-parent row-3"> 4309 <a href="/sitemap/" target="_self" class="" title="Sitemap" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Sitemap" } }'>Sitemap</a> 4310 </li> 4311 4312 <li class="item item-parent row-4 last"> 4313 <a href="/privacy-policy/" target="_self" class="" title="Privacy Policy" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Privacy%20Policy" } }'>Privacy Policy</a> 4314 </li> 4315 4316 </ul> 4317</div> 4318 </nav> 4319 <div class="partners"> 4320 <div class="textbox"> 4321 <div data-civid="688bcc69f1fd07e163e3ca64" class="contentRender contentRender_33 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="42" data-sv-index="33" data-gtm-vars='{ "tCore" : { "contentNum" : "5" } }'><section data-sv-core-textbox data-guid="fd640e3b-23fa-42d0-8425-2bd703f62dd2"> 4322 <p><a data-sv-linklookup-id="http://www.exploreminnesota.com/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="false" href="http://www.exploreminnesota.com/" target="_blank"><img alt="placeholder" data-processed="true" src="/includes/public/assets/images/placeholders/partners1.png" style></a>  <a data-sv-linklookup-id="https://dmc.mn/" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="true" href="https://dmc.mn/" target="_blank"><img alt="Destination Medical Center White Logo" data-height="60" data-processed="true" data-width="130" height="60" id="plugins_assets_images_63dc1433f91da35800f17b75" src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,h_60,q_75,w_130/v1/clients/rochestermn/DMC_1color_RGB_Wht_v_op_7c94f0b1-693f-4f66-aeb9-ccc779fd95a0.png" style width="130"></a></p> 4323 4324<p><a class="visitusa-logo" data-sv-linklookup-id="https://www.visittheusa.com/node/34261" data-sv-linklookup-type="plugins_nav_external_link" data-sv-targetauto="false" href="https://www.visittheusa.com/node/34261" target="_blank"><img alt="brandusa" data-height="36" data-processed="true" data-width="140" height="36" src="https://assets.simpleviewinc.com/simpleview/image/fetch/c_fill,h_36,q_75,w_140/http://res.cloudinary.com/simpleview/image/upload/v1523979164/clients/rochestermn-redesign/cf1113cd_d0ac_40e8_b6cf_365dadd07f52_210602d3-638a-4d87-a4ff-a460dce69da6.png" style width="140"></a><picture class="imgcont ta-logo"><img alt="Trip Advisor Logo" data-processed="true" src="/includes/public/managed/core/plugins/listings/public/images/ta_logos_custom/logo-ta-horizontal-white.svg" style></picture></p> 4325 4326</section></div> 4327 </div> 4328 </div> 4329 <div class="copyright"> 4330 © 2026 All rights reserved. 4331 </div> 4332 <picture class="imgcont sv-logo"> 4333 <a href="https://www.simpleviewinc.com/our-services/creative-design/" target="_blank" class="sv-logo"><img src="/includes/public/assets/images/sv-logo.png"/></a> 4334 </picture> 4335 </div> 4336 </section> 4337 4338 <div class="mobile-fixed"> 4339 4340 <div class="mobileAd" data-sv-mobiledtn-mobilead> 4341 <div class="banner-close" data-sv-mobiledtn-close><span>close</span> <i class="fa fa-times-circle"></i></div> 4342 <div class="content"></div> 4343
4343<script data-sv-mobiledtn-adcode type="text/template"><div data-civid="688bcc69f1fd07e163e3ca66" class="contentRender contentRender_34 contentRender_type_widget contentRender_name_plugins_dtn_gam_ad" data-sv-time="18" data-sv-index="34" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4344 4345<div class="dtnContainer"> 4346 <div class="dtnad" data-sv-adunit="/21812118460/21812952115/21812823359" data-sv-adsize="320x50"></div> 4347 <div class="clear"></div> 4348</div> 4349 4350<sv_script> 4351 require(["site_gamClient", "domReady!"], function(gamClient) { 4352 gamClient.renderAds(); 4353 }); 4354</sv_script></div></script>
4354 4355 </div> 4356 4357 4358 <div data-civid="688bcc69f1fd07e163e3ca68" class="contentRender contentRender_35 contentRender_type_widget contentRender_name_plugins_common_cookie_banner" data-sv-time="18" data-sv-index="35" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 4359 4360<dialog class="cookie-banner dismissed hide" data-guid="50a00d51-cc0d-4d32-bdb2-93bec43cdb23"> 4361 <div class="banner-inner"> 4362 <div class="banner-message"> 4363 <p>Cookies are used for measurement, ads and optimization. By continuing to use our site you agree to our <a data-sv-linklookup-id="5ab409d36fabc5420e516271" data-sv-linklookup-type="plugins_nav_navitem_primary_footer" href="https://www.experiencerochestermn.com/privacy-policy/" target="_self">privacy notice</a>.</p> 4364 4365 </div> 4366 <div class="banner-close"> 4367 <button class="button site-style" aria-label="Close cookie banner" data-sv-close-banner> 4368 Accept 4369 </button> 4370 </div> 4371 </div> 4372</dialog> 4373
4374<script> 4375 require([ 4376 'jquery', 4377 'sv_clientLib' 4378 ], function ($, clientLib) { 4379 var root = $('[data-guid="50a00d51-cc0d-4d32-bdb2-93bec43cdb23"]'); 4380 var bannerSeen = clientLib.getCookie('cookie-banner-seen'); 4381 4382 if (bannerSeen !== "true") { 4383 root.removeClass('hide'); 4384 root.attr('open', true); 4385 4386 setTimeout(function() { 4387 root.removeClass('dismissed'); 4388 }, 500); 4389 } 4390 4391 root.find('[data-sv-close-banner]').on('click', function() { 4392 root.addClass('dismissed'); 4393 root.removeAttr('open') 4394 4395 setTimeout(function() { 4396 root.addClass('hide'); 4397 }, 500); 4398 4399 clientLib.setCookie({ 4400 name : 'cookie-banner-seen', 4401 value : 'true', 4402 path : '/', 4403 'max-age' : 1438560*60 // 999 days 4404 }); 4405 }); 4406 }); 4407</script>
4407</div> 4408 </div> 4409 </footer> 4410 4411
4411<script> 4412 require(["jquery", "sv_stringLib", "sv_clientLib", "lodash"], function($, stringLib, clientLib, lodash) { 4413 var root = $(".panel_custom_footer"); 4414 4415 var mobileAd = root.find("[data-sv-mobiledtn-mobilead]"); 4416 var content = mobileAd.find(".content"); 4417 var closeButton = mobileAd.find("[data-sv-mobiledtn-close]"); 4418 var storageKey = "mobile_dtn_ad_hide"; 4419 var sessionAvailable = clientLib.sessionStorageAvailable(); 4420 4421 // show ad if session not available or if it doesn't contain our hide session var 4422 var showAd = sessionAvailable === false || window.sessionStorage.getItem(storageKey) !== "true"; 4423 4424 closeButton.on("click", function(e) { 4425 e.preventDefault(); 4426 4427 // if we have session storage, prevent it from appearing on future page views this session 4428 if (sessionAvailable) { window.sessionStorage.setItem(storageKey, "true"); } 4429 4430 showAd = false; 4431 mobileAd.remove(); 4432 render(); 4433 }); 4434 4435 var render = function() { 4436 // according to DTN the philosophy should be show this banner if the site in general is in mobile or tablet view regardless of device (determined by width only) 4437 var isMobile = window.innerWidth < 1024; 4438 4439 var displayAd = isMobile === true && showAd === true; 4440 root.toggleClass("hasMobileAd", displayAd); 4441 4442 if (displayAd && content.children().length === 0) { 4443 // executes the dtn code if the ad should be displayed and the ad wasn't already rendered 4444 var html = stringLib.decodeScriptTags(root.find("[data-sv-mobiledtn-adcode]").html()); 4445 content.html(html); 4446 root.find(".dtnContainer").append(closeButton); 4447 } 4448 }; 4449 4450 render(); 4451 4452 // allows cms preview device switcher to work, without having to hit preview refresh button 4453 $(window).on("resize", lodash.debounce(render, 300)); 4454 }); 4455 </script>
4455 4456</div> 4457 </div> 4458</div> 4459 4460<div id="gallery-portal" data-gallery-portal></div> 4461<div id="quickview-detail" data-quickview-detail></div></div> 4462 <!-- footer css bundles --> 4463 4464 <!-- footer js bundles --> 4465
4465<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/core/public/js/loginCheck.js"></script>
4465 4466
4466<script src="/includes/public/managed/v_eb27db53_3751cdfd/core/plugins/common/virtuals/js/shared_footer.js"></script>
4466 4467 4468
4468<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.experiencerochestermn.com/#organization","name":"Experience Rochester MN","url":"https://www.experiencerochestermn.com/","telephone":"507-288-4331","address":{"@type":"PostalAddress","streetAddress":"30 Civic Center Drive SE Suite 200","addressLocality":"Rochester","addressRegion":"Minnesota","postalCode":"55904"}},{"@type":"WebSite","@id":"https://www.experiencerochestermn.com/#website","url":"https://www.experiencerochestermn.com/","name":"Experience Rochester MN","publisher":{"@id":"https://www.experiencerochestermn.com/#organization"},"potentialAction":{"@type":"SearchAction","target":"https://www.experiencerochestermn.com/search/?q={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ItemList","@id":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/5d70237677e8d17cf5003132/#localbusinessList","description":"Browse local business listings.","itemListElement":[]},{"@type":"CollectionPage","@id":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/#collectionpage","url":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/","isPartOf":{"@id":"https://www.experiencerochestermn.com/#website"},"breadcrumb":{"@type":"BreadcrumbList","name":"Breadcrumbs","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.experiencerochestermn.com/"},{"@type":"ListItem","position":2,"name":"Things To Do","item":"https://www.experiencerochestermn.com/things-to-do"},{"@type":"ListItem","position":3,"name":"Shopping","item":"https://www.experiencerochestermn.com/things-to-do/shopping"},{"@type":"ListItem","position":4,"name":"Department Stores","item":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/"}]},"mainEntity":[{"@id":"https://www.experiencerochestermn.com/things-to-do/shopping/department-stores/5d70237677e8d17cf5003132/#localbusinessList"}]}]}</script>
4468 4469 <!-- bottomBody --> 4470 4471
4471<script data-id="site_global_footer"> 4472 require(["sv_clientLib", "sv_load!plugins_dynamic_content"], function(clientLib) { 4473 clientLib._initLazy(); 4474 }); 4475 </script>
4475 4476 4477 �� </body> 4478</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.