CINXE.COM

Shopping in Rochester, MN | Department Stores

<!doctype html> <html> <head> <!-- meta --> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta charset="utf-8" /> <title>Shopping in Rochester, MN | Department Stores</title> <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." /> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1" /> <meta name="sv-nav-properties" content="{&quot;title&quot;:&quot;Department Stores&quot;,&quot;id&quot;:&quot;5ab409e06fabc5420e517b30&quot;,&quot;parents_ids&quot;:[&quot;5ab409d26fabc5420e51608c&quot;,&quot;5ab409d56fabc5420e5165a1&quot;],&quot;site_name&quot;:&quot;primary&quot;,&quot;section&quot;:&quot;main&quot;,&quot;folderHref&quot;:&quot;/things-to-do/shopping/department-stores/&quot;}" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="referrer" content="always" /> <meta property="og:title" content="Shopping in Rochester, MN | Department Stores" /> <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." /> <meta property="og:type" content="website" /> <meta property="fb:app_id" content="1209066719230183" /> <!-- head css bundles --> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/weather/virtuals/css/shared.css"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/weather-icons/2.0.9/css/weather-icons.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/search/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/fontawesome-4.6.3/css/font-awesome.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/widget_social_share.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/dtn/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/widget_cookie_banner.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/nav/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_imagebox_subtitle.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_imagebox.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/listings/legacy/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/custom_layout.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/custom_map.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_features.css"/> <link rel="stylesheet" href="/includes/public/magnific/magnific-popup.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/collections/virtuals/css/widget_template_custom_header_slideshow_homepage.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/slick-carousel-1.5.8/slick/slick.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/slick-carousel-1.5.8/slick/slick-theme.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/css/normalize.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/css/foundation.min.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/shared.css"/> <link rel="stylesheet" href="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/css/shared_print.css" media="print"/> <!-- head js bundles --> <script src="/includes/public/managed/v_bc66977c_63692723/core/node_modules/foundation-5.5.0/js/vendor/modernizr.js"></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/libs/sv/requirejs/public/require.js" data-ot-ignore></script> <script src="/requirejs_config_bc66977c_63692723.js" data-ot-ignore></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/js/shared_header.js"></script> <!-- bottomHead --> <script data-id="site_gtm"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','gtmDataLayer','GTM-P3JNTVH'); </script> <script data-id="site_gtm"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','gtmDataLayer','GTM-NFBVG93'); </script> </head> <body> <!-- topBody --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-P3JNTVH" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NFBVG93" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- content --> <div data-civid="5d70237677e8d17cf5003110" class="contentRender contentRender_0 contentRender_type_panel contentRender_name_plugins_common_page" data-sv-time="0" data-sv-index="0" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="root_panel panel_page interior internal-view with-header"> <div class="overlay"></div> <div class="header_container"> <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" } }'><script> // CRM FORM STYLING HELPER JS. This should exist in header panel // Adds the body class as quickly as possible to hide all the items on the page so we don't // have the site flash before the calendar shows up if (location.search.indexOf('action=popupCal') > -1 && document.body.querySelectorAll('.lookup-calHolder')) { document.body.classList.add('crm-calendar-popup'); }; require(["plugins_common_custom_recently_viewed_pages"], function(recentlyViewedPages) { 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/"}); }); </script> <div class="headerSection"> <header class="panel_custom_header"> <div data-civid="5d9d22927e75c1f695752a43" class="contentRender contentRender_2 contentRender_type_widget contentRender_name_plugins_core_smartbanner" data-sv-time="13" data-sv-index="2" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div id="sv-smartbanner-7c76ae7c-f068-4c6c-8ca7-991aa74de9c0"></div> <script type="text/template" data-sv-smartbanner> {{~exec(function() { helpers.var.template = "core_widget_smartbanner"; })}} <div class="sb-wrapper" data-gtm-vars='{ "tCore" : { "category" : "{{bannerType}}", "label" : "{{%%title}}" } }'> <div class="sb-close" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_close" } }'> <button>&times;</button> </div> <div class="sb-icon" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_icon_click" } }'> <a href="{{url}}" {{target}}> <img src="{{~plugins.cloudinary.createResource(data.icon).getThumbnailUrl({ width : 64, height : 64, crop : "fill" })}}" /> </a> </div> <div class="sb-content"> <div class="sb-title" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_title_click" } }'> <a href="{{url}}" {{target}}>{{title}}</a> </div> <div class="sb-price-line"> <span class="sb-price">{{price}}</span> &ndash; <span class="sb-location">{{location}}</span> </div> </div> <div class="sb-view" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "{{~var.template}}_view_click" } }'> <a href="{{url}}" {{target}}>View</a> </div> </div> <style> #sv-smartbanner-{{guid}} { position: relative; top: 0px; width: 100%; height: 84px; padding: 10px 0; font-family: 'Helvetica Neue', sans-serif; font-size: 14px; line-height: 20px; color: #888; background: #f2f2f2; } #sv-smartbanner-{{guid}} .sb-wrapper { height: 100%; width: 100%; } #sv-smartbanner-{{guid}} a, #sv-smartbanner-{{guid}} a:focus, #sv-smartbanner-{{guid}} a:hover, #sv-smartbanner-{{guid}} a:active, #sv-smartbanner-{{guid}} a:visited { font-family: 'Helvetica Neue', sans-serif; font-size: 14px; line-height: 20px; color: #444; text-decoration: none; font-weight: normal; } #sv-smartbanner-{{guid}} .sb-close { float: left; width: 40px; height: 100%; margin: 0; padding: 0; vertical-align: top; background: transparent; text-align: center; } #sv-smartbanner-{{guid}} .sb-close button { background: none; color: #444; width: 100%; height: 100%; padding: 0px; margin: 0px; font-size: 24px; } #sv-smartbanner-{{guid}} .sb-icon { float: left; height: 100%; width: 64px; margin-right: 7px; vertical-align: top; } #sv-smartbanner-{{guid}} .sb-icon a { display: block; } #sv-smartbanner-{{guid}} .sb-icon img { width: 100%; height: 100%; border: 1px solid #888; border-radius: 10px; } #sv-smartbanner-{{guid}} .sb-content { float: left; width: calc(100% - 40px - 64px - 7px - 55px); /* set width based on how much is in use in the other columns */ } #sv-smartbanner-{{guid}} .sb-title a { font-weight: normal; } #sv-smartbanner-{{guid}} .sb-price-line { font-size: 12px; } #sv-smartbanner-{{guid}} .sb-view { float: right; text-align: center; height: 100%; width: 55px; font-size: 16px; padding-top: 20px; color: #2c90fd; } #sv-smartbanner-{{guid}} .sb-view a { color: #0093dd; } </style> </script> <script> require(["jquery", "sv_clientLib", "lodash", "sv_goatee!plugins=cloudinary"], function($, clientLib, lodash, goatee) { var node = $("#sv-smartbanner-7c76ae7c-f068-4c6c-8ca7-991aa74de9c0"); var contentRender = node.closest(".contentRender"); var template = $("[data-sv-smartbanner]").html(); var appleId = "id1466960291"; var googleId = "com.rochestermn.app"; var $window = $(window); var $body = $("body"); var inPreview = clientLib.inPreview(); var bannerType = clientLib.isIOS() && appleId !== "" ? "ios" : clientLib.isAndroid() && googleId !== "" ? "android" : inPreview && appleId !== "" ? "ios" : inPreview && googleId !== "" ? "android" : undefined ; var target = bannerType === "ios" ? "" : 'target="_blank"'; if (inPreview) { target = 'target="_blank"'; } // no valid banner types if (bannerType === undefined) { return; } var storage = new clientLib.StorageCache({ type : "sessionStorage", storageKey : "plugins_core_smartbanner" }); // check for values which do not change over the course of a pageview, and short-circuit out if (storage.get("banner-closed") === true) { return; } var _resizeHandler = function() { // check if we are in the right conditions to load the smartbanner, if not return if (inPreview && $window.width() > 1024) { return; } // valid conditions matched to show the banner, unbind the resize handler $window.off("resize", resizeHandler); var content = goatee.fill(template, { guid : "7c76ae7c-f068-4c6c-8ca7-991aa74de9c0", title : "When in Rochester MN", price : "FREE", icon : {"raw":{"resource_type":"image","format":"png","pages":1,"public_id":"clients/rochestermn/Artboard_1_300x_copy_31a1ec51-b277-4e07-9052-99d4396cc983"}}, id : bannerType === "ios" ? appleId : googleId, bannerType : bannerType, location : bannerType === "ios" ? "On the App Store" : "In Google Play", url : bannerType === "ios" ? "https://apps.apple.com/app/id1466960291" : "http://play.google.com/store/apps/details?id=com.rochestermn.app", target : target }); node.html(content); // append to the root level contentRender for the page itself, needed to get around some weird sizing sometimes applied to the first container on the page contentRender.prependTo($body.find("> .contentRender")); $body.addClass("smartbanner-active"); node.on("click", ".sb-close", function(e) { e.preventDefault(); storage.set("banner-closed", true); $body.removeClass("smartbanner-active smartbanner-inview"); node.remove(); }); var nodeHeight = node.height(); // add debounced scroll handler in order to handle switching on smartbanner-inview var _scrollHandler = function() { // if we are scrolled up high enough to see the smartbanner, apply the class for fixed position systems to loop into $body.toggleClass("smartbanner-inview", $window.scrollTop() < nodeHeight); } var scrollHandler = lodash.debounce(_scrollHandler, 250, { maxWait : 250 }); // bind the handler and call it to init the state $window.on("scroll", scrollHandler); scrollHandler(); } var resizeHandler = lodash.debounce(clientLib.ensureOnResize(_resizeHandler), 250); // bind the handler and call it to init the state $window.on("resize", resizeHandler); resizeHandler(); }); </script></div> <picture class="header-logo"> <div data-civid="641e0104010ee024eeb7ecbb" class="contentRender contentRender_7 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="27" data-sv-index="7" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section data-sv-core-textbox data-guid="6ab9a0f7-c831-42d7-891f-f453434f3912"> <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> </section></div> </picture> <section> <nav class="indy-nav show-for-large-up" data-secondary-nav> <div data-civid="641e0104010ee024eeb7ecb5" class="contentRender contentRender_4 contentRender_type_widget contentRender_name_plugins_nav_secondary" data-sv-time="27" data-sv-index="4" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="indy-nav-style"> <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> <li><a href="/sports/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sports", "navType" : "Secondary"} }'>Sports</a></li> <li><a href="/blog/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Blog", "navType" : "Secondary"} }'>Blog</a></li> <li><a href="/media/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Media", "navType" : "Secondary"} }'>Media</a></li> <li><a href="/podcast/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Podcast", "navType" : "Secondary"} }'>Podcast</a></li> <li><a href="/brewpass/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Sip%20n%27%20Savor%20Brew%20Pass", "navType" : "Secondary"} }'>Sip n' Savor Brew Pass</a></li> </ul> </div> </nav> <div class="show-for-medium-up weather-section"> <div data-civid="641e0104010ee024eeb7ecb7" class="contentRender contentRender_5 contentRender_type_widget contentRender_name_plugins_weather_weather" data-sv-time="14" data-sv-index="5" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="weather" data-sv-weatherWidget></div> <script type="text/template" data-weatherwidget-template> <span data-sv-weather-toggle>{{current.temp}}&deg;</span><i class="wi {{current.condition.icon}}" aria-hidden="true"></i> </script> <script> require(["jquery", "goatee", "sv_urlLib", "sv_site"], function($, goatee, urlLib, sv_site) { var root = $("[data-sv-weatherWidget]"); var template = $("[data-weatherwidget-template]").html(); var settings = {"unit_of_measure":"f"}; var url = urlLib.build({ path : "/plugins/core/svapi/", get : { service : "weatherv2", endpoint : "latlng", serviceArgs : JSON.stringify({ lat : sv_site.siteConfig.latitude, lng : sv_site.siteConfig.longitude, unit : settings.unit_of_measure }) } }); $.get(url, function(res) { if (res.success !== true) { return; } res.data.forecast.splice(5); // trim forecast to first 5 days var html = goatee.fill(template, res.data); root.html(html); root.find("[data-sv-weather-toggle]").on("click", function() { $("[data-sv-weather-dropdown]").toggleClass("open"); }); }); }); </script></div> </div> <div class="show-for-medium-up main-search"> </div> <div class="show-for-medium-up"> <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="13" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> <span>Partner</span><span>Extranet</span> </a> </div> </div> <nav class="main-nav show-for-large-up"> <div data-civid="641e0104010ee024eeb7ecbd" class="contentRender contentRender_8 contentRender_type_widget contentRender_name_plugins_nav_main" data-sv-time="17" data-sv-index="8" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="main-nav-style " data-guid="8f353222-20ac-4ff4-b5a7-51839db65440"> <li class="has-children" data-id="5ab409d16fabc5420e516052"> <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> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d46fabc5420e5163d1"> <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> </li> <li class="has-children" data-id="5ab409d46fabc5420e516445"> <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> </li> <li class="has-children" data-id="5ab409d46fabc5420e51647f"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e51608c"> <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> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d46fabc5420e51652d"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409df6fabc5420e51799a"> <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> </li> <li class="has-children" data-id="5ab409df6fabc5420e5179d4"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517a0e"> <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> </li> <li class="has-children" data-id="63f67257c31926015cbdb232"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517a48"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e5167e6"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e516737"> <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"} }'>Farmers Markets</a> </li> <li class="has-children" data-id="5ab409d56fabc5420e5166c3"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517c52"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517c8c"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517cc6"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e5165a1"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e06fabc5420e517bde"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517af6"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517b6a"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517abc"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517b30"> <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> </li> <li class="has-children" data-id="5ab409e06fabc5420e517ba4"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e516738"> <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> </li> <li class="has-children" data-id="5ab409d56fabc5420e5165db"> <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> </li> <li class="has-children" data-id="5ab409d56fabc5420e516615"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e5166fd"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517d00"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517d3a"> <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> </li> <li class="has-children" data-id="5c87cf7a18e1e6fa27c10c8d"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e51664f"> <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", "navType" : "Main"} }'>History & Heritage</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5c65d10f18e1e6fa27bef07a"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d56fabc5420e516567"> <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> </li> <li class="has-children" data-id="5cb0ef192473ea3636522ab2"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5cb4da11da6ad739bddb385d"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e516772"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e516820"> <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> </li> <li class="has-children" data-id="5ab409d56fabc5420e516689"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e5160c6"> <a href="/restaurants/" target="_self" data-gtm-click data-gtm-vars='{ "tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Restaurants", "navType" : "Main"} }'>Restaurants</a> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d76fabc5420e5169f0"> <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> </li> <li class="has-children" data-id="5ab409d76fabc5420e5169b6"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e51685a"> <a href="/restaurants/downtown/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Downtown", "navType" : "Main"} }'>Downtown</a> </li> <li class="has-children" data-id="5dc9e41556039ec7ebc3f14b"> <a href="/restaurants/bars/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bars", "navType" : "Main"} }'>Bars</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e5168ce"> <a href="/restaurants/fine-dining/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Fine%20Dining", "navType" : "Main"} }'>Fine Dining</a> </li> <li class="has-children" data-id="5ab409d66fabc5420e516942"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e516894"> <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> </li> <li class="has-children" data-id="5ab409d66fabc5420e516908"> <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> </li> <li class="has-children" data-id="5ab409d76fabc5420e516a64"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e16fabc5420e517d74"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517dae"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517de8"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517e22"> <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> </li> <li class="has-children" data-id="5ab409e16fabc5420e517e5c"> <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> </li> <li class="has-children" data-id="5ab409e26fabc5420e517e96"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d66fabc5420e51697c"> <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> </li> <li class="has-children" data-id="6671e6608b68e6d94a8206eb"> <a href="/restaurants/dog-friendly/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Dog%20Friendly", "navType" : "Main"} }'>Dog Friendly</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e516100"> <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> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d76fabc5420e516a9e"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e26fabc5420e517ed0"> <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> </li> <li class="has-children" data-id="5ab409e26fabc5420e517f0a"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d76fabc5420e516b12"> <a href="/planning-tools/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>Getting Around</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e26fabc5420e517f44"> <a href="/planning-tools/getting-around/bus-line/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Bus%20Line", "navType" : "Main"} }'>Bus Line</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517f7e"> <a href="/planning-tools/getting-around/car-rental/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Car%20Rental", "navType" : "Main"} }'>Car Rental</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517fb8"> <a href="/planning-tools/getting-around/limousine-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Limousine%20Service", "navType" : "Main"} }'>Limousine Service</a> </li> <li class="has-children" data-id="5ab409e26fabc5420e517ff2"> <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> </li> <li class="has-children" data-id="5ab409e26fabc5420e51802c"> <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> </li> <li class="has-children" data-id="5ab409e26fabc5420e518066"> <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> </li> <li class="has-children" data-id="5ab409e36fabc5420e5180a0"> <a href="/planning-tools/getting-around/specialized-transportation/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Specialized%20Transportation", "navType" : "Main"} }'>Specialized Transportation</a> </li> <li class="has-children" data-id="5ab409e36fabc5420e5180da"> <a href="/planning-tools/getting-around/taxi-service/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Taxi%20Service", "navType" : "Main"} }'>Taxi Service</a> </li> </ul> </li> <li class="has-children" data-id="5ab409d76fabc5420e516b4c"> <a href="/planning-tools/travel-guide/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Travel%20Planning%20Guide", "navType" : "Main"} }'>Travel Planning Guide</a> </li> <li class="has-children" data-id="5ab409d76fabc5420e516bc0"> <a href="/planning-tools/weather/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Weather", "navType" : "Main"} }'>Weather</a> </li> <li class="has-children" data-id="5c65ad3518e1e6fa27beeb3f"> <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> </li> <li class="has-children" data-id="5ab409d86fabc5420e516bfa"> <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> </li> <li class="has-children" data-id="5ab409d86fabc5420e516bfb"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d26fabc5420e51613a"> <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> <ul class="sub-nav"> <li class="has-children" data-id="5ab409d86fabc5420e516c35"> <a href="/mayo-clinic/hotels/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Hotels", "navType" : "Main"} }'>Hotels</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" data-id="5ab409e36fabc5420e518188"> <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> </li> </ul> </li> <li class="has-children" data-id="5ab409d86fabc5420e516c6f"> <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> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ca9"> <a href="/mayo-clinic/getting-around/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Getting%20Around", "navType" : "Main"} }'>Getting Around</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ce3"> <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> </li> <li class="has-children" data-id="5ab409d86fabc5420e516ce4"> <a href="/mayo-clinic/faq/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "FAQ", "navType" : "Main"} }'>FAQ</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d1e"> <a href="/mayo-clinic/history/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "History", "navType" : "Main"} }'>History</a> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d58"> <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> </li> <li class="has-children" data-id="5ab409d86fabc5420e516d92"> <a href="/mayo-clinic/parking/" target="_self" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "linkObject": "Parking", "navType" : "Main"} }'>Parking</a> </li> </ul> </li> </ul> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=8f353222-20ac-4ff4-b5a7-51839db65440]'); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); var expAccred = navItemProperties.folderHref.match(/^\/experience-accreditation\//); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro').not('.micro.current').remove(); }); </script></div> </nav> <div class="mobile-nav-container hide-for-large-up"> <div class="mobile-nav-action"></div> <div class="mobile-nav-dropdown"> <div class="mobile-nav-dropdown-top"> <div data-civid="5aff52d74c2e135b427732ac" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_common_extranet_login" data-sv-time="13" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <a href="https://rochestermn.extranet.simpleviewcrm.com/" target="_blank" class="header-booking extranet-booking"> <span>Partner</span><span>Extranet</span> </a> </div> <span> <div data-sv-weatherWidget class="med-header-weather-wrapper weather"></div> <div class="mobile-search"> <div data-civid="641e0104010ee024eeb7ecb9" class="contentRender contentRender_6 contentRender_type_widget contentRender_name_plugins_search_headerbox" data-sv-time="14" data-sv-index="6" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <script type="text/template" data-template> <div class="search" id="search_widget_headerbox_{{guid}}"> <span class="search-action"><i class="fa fa-search fa-flip-horizontal" aria-hidden="true"></i><img class="search-img"></span> <div class="bg-search-form"></div> <div class="search-form"> <form data-sv-searchForm action="{{customSettings.navSearch}}" method="GET"> <input data-sv-searchInput name="q" type="search" class="searchInput" autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="Search..." value="" /> <button data-sv-searchBtn type="submit" name="submit" class="searchBtn"><i class="fa fa-search" aria-hidden="true"></i></button> </form> <div class="toggle-search" data-toggle-mayocc-search> <i class="fa fa-search" aria-hidden="true"></i> </div> </div> </div> </script> <script> require(["jquery","goatee", "domReady!"], function($, goatee) { var sc = $('[data-sv-widgetSearchBoxContainer]').not('.insertedWidget').first(); var sb = $('#search_widget_headerbox_ea654930-bcc8-4ff1-8d28-fabf89f60f10'); var form = sb.find('[data-sv-searchForm]'); var inp = form.find('[data-sv-searchInput]'); var data = {"sections":{},"data":{},"guid":"ea654930-bcc8-4ff1-8d28-fabf89f60f10","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":6,"guid":"ea654930-bcc8-4ff1-8d28-fabf89f60f10","data":{},"civ":{"instance":{"type":"widget","name":"plugins_search_headerbox","site_name":"primary","saved":false,"created":"2023-03-24T20:00:14.342Z","updated":"2023-03-24T20:00:14.342Z","deleted":false,"id":"641e0104010ee024eeb7ecb9","version_id_string":"641e0104010ee024eeb7ecba"},"version":{"created":"2023-03-24T20:00:14.344Z","id":"641e0104010ee024eeb7ecba","instance_id_string":"641e0104010ee024eeb7ecb9","data":{}},"onTrunk":true,"civid":"641e0104010ee024eeb7ecb9"},"name":"plugins_search_headerbox"}}; var template = $("[data-template]").html(); var html = goatee.fill(template, data); var desktopSearchbox = $('.main-search'); var mobileSearchbox = $('.mobile-search'); desktopSearchbox.html(html); mobileSearchbox.html(html); sc.append(sb).addClass('insertedWidget'); form.find('[data-sv-searchBtn]').click(function(){ form.submit(); }) form.submit(function(e){ if (inp.val().length === 0) { e.preventDefault(); } }); $('.search-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var headerPanel = document.querySelector(".panel_custom_header"); var toggle = document.querySelector("[data-toggle-mayocc-search]"); toggle.addEventListener("click", function() { headerPanel.classList.toggle("search-active"); }); }); </script></div> </div> </span> </div> <nav class="main-nav"> <div data-civid="641e0104010ee024eeb7ecbf" class="contentRender contentRender_9 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="39" data-sv-index="9" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <nav class="main-nav" data-guid="1b8c86de-b79b-49ac-9369-0de03930e72f"> <ul class="main-nav-style-mobile"> <li class="has-children" > <a href="/places-to-stay/" target="_self" data-id="5ab409d16fabc5420e516052">Places to Stay</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/places-to-stay/hotels/" target="_self" data-id="5ab409d46fabc5420e5163d1">Hotels</a> </li> <li class="has-children" > <a href="/places-to-stay/extended-stay/" target="_self" data-id="5ab409d46fabc5420e516445">Extended Stay</a> </li> <li class="has-children" > <a href="/places-to-stay/campgrounds-and-rv-parks/" target="_self" data-id="5ab409d46fabc5420e51647f">Campgrounds & RV Parks</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/" target="_self" data-id="5ab409d26fabc5420e51608c">Things to Do</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/things-to-do/events-calendar/" target="_self" data-id="5ab409d46fabc5420e51652d">Events Calendar</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/events-calendar/fairs-festivals/" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/fall/" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/winter/" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/spring/" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> </li> <li class="has-children" > <a href="/things-to-do/events-calendar/summer/" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/downtown/" target="_self" data-id="5ab409d66fabc5420e5167e6">Downtown</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516737">Farmers Markets</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/" target="_self" data-id="5ab409d56fabc5420e5166c3">Outdoor Adventure</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> </li> <li class="has-children" > <a href="/things-to-do/outdoor-adventure/parks/" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/shopping/" target="_self" data-id="5ab409d56fabc5420e5165a1">Shopping</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/shopping/only-in-rochester/" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/apparel/" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/gifts/" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/antiques/" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/department-stores/" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> </li> <li class="has-children" > <a href="/things-to-do/shopping/shopping-centers-malls/" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/wineries-breweries/" target="_self" data-id="5ab409d66fabc5420e516738">Wineries & Breweries</a> </li> <li class="has-children" > <a href="/things-to-do/arts-culture/" target="_self" data-id="5ab409d56fabc5420e5165db">Arts & Culture</a> </li> <li class="has-children" > <a href="/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d56fabc5420e516615">Live Entertainment</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/" target="_self" data-id="5ab409d66fabc5420e5166fd">Attractions & Entertainment</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/movie-theaters/" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/sports/" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> </li> <li class="has-children" > <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/history-and-heritage/" target="_self" data-id="5ab409d56fabc5420e51664f">History & Heritage</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/tours/" target="_self" data-id="5ab409d56fabc5420e516567">Tours</a> </li> <li class="has-children" > <a href="/things-to-do/health-fitness-wellness/" target="_self" data-id="5cb0ef192473ea3636522ab2">Health, Fitness & Wellness</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <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> </li> </ul> </li> <li class="has-children" > <a href="/things-to-do/things-to-do-with-kids/" target="_self" data-id="5ab409d66fabc5420e516772">Kid Friendly</a> </li> <li class="has-children" > <a href="/things-to-do/hidden-gems-nearby/" target="_self" data-id="5ab409d66fabc5420e516820">Hidden Gems Nearby</a> </li> <li class="has-children" > <a href="/things-to-do/day-trips/" target="_self" data-id="5ab409d56fabc5420e516689">Day Trips</a> </li> </ul> </li> <li class="has-children" > <a href="/restaurants/" target="_self" data-id="5ab409d26fabc5420e5160c6">Restaurants</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/restaurants/only-in-rochester/" target="_self" data-id="5ab409d76fabc5420e5169f0">Only in Rochester</a> </li> <li class="has-children" > <a href="/restaurants/new-restaurants/" target="_self" data-id="5ab409d76fabc5420e5169b6">New Restaurants</a> </li> <li class="has-children" > <a href="/restaurants/downtown/" target="_self" data-id="5ab409d66fabc5420e51685a">Downtown</a> </li> <li class="has-children" > <a href="/restaurants/bars/" target="_self" data-id="5dc9e41556039ec7ebc3f14b">Bars</a> </li> <li class="has-children" > <a href="/restaurants/fine-dining/" target="_self" data-id="5ab409d66fabc5420e5168ce">Fine Dining</a> </li> <li class="has-children" > <a href="/restaurants/food-trucks/" target="_self" data-id="5ab409d66fabc5420e516942">Food Trucks</a> </li> <li class="has-children" > <a href="/restaurants/farmers-market/" target="_self" data-id="5ab409d66fabc5420e516894">Farmers Market</a> </li> <li class="has-children" > <a href="/restaurants/food-and-drink-events/" target="_self" data-id="5ab409d66fabc5420e516908">Food & Drink Events</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/" target="_self" data-id="5ab409d76fabc5420e516a64">Search by Cuisine Type</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/american/" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/international/" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/pizza/" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/seafood/" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> </li> <li class="has-children" > <a href="/restaurants/search-by-cuisine-type/sweet-treats/" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> </li> </ul> </li> <li class="has-children" > <a href="/restaurants/kid-friendly/" target="_self" data-id="5ab409d66fabc5420e51697c">Kid Friendly</a> </li> <li class="has-children" > <a href="/restaurants/dog-friendly/" target="_self" data-id="6671e6608b68e6d94a8206eb">Dog Friendly</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/" target="_self" data-id="5ab409d26fabc5420e516100">Planning Tools</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/planning-tools/getting-here/" target="_self" data-id="5ab409d76fabc5420e516a9e">Getting Here</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/planning-tools/getting-here/airports/" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> </li> <li class="has-children" > <a href="/planning-tools/getting-here/driving-directions/" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/getting-around/" target="_self" data-id="5ab409d76fabc5420e516b12">Getting Around</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/planning-tools/getting-around/bus-line/" target="_self" data-id="5ab409e26fabc5420e517f44">Bus Line</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/car-rental/" target="_self" data-id="5ab409e26fabc5420e517f7e">Car Rental</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/limousine-service/" target="_self" data-id="5ab409e26fabc5420e517fb8">Limousine Service</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/parking/" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/shuttle-service/" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/skyway-subway/" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/specialized-transportation/" target="_self" data-id="5ab409e36fabc5420e5180a0">Specialized Transportation</a> </li> <li class="has-children" > <a href="/planning-tools/getting-around/taxi-service/" target="_self" data-id="5ab409e36fabc5420e5180da">Taxi Service</a> </li> </ul> </li> <li class="has-children" > <a href="/planning-tools/travel-guide/" target="_self" data-id="5ab409d76fabc5420e516b4c">Travel Planning Guide</a> </li> <li class="has-children" > <a href="/planning-tools/weather/" target="_self" data-id="5ab409d76fabc5420e516bc0">Weather</a> </li> <li class="has-children" > <a href="/planning-tools/traveling-with-pets/" target="_self" data-id="5c65ad3518e1e6fa27beeb3f">Traveling With Pets</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d86fabc5420e516bfa">Weddings, Parties & Celebrations</a> </li> <li class="has-children" > <a href="/planning-tools/university-of-minnesota-rochester/" target="_self" data-id="5ab409d86fabc5420e516bfb">University of Minnesota Rochester</a> </li> </ul> </li> <li class="has-children" > <a href="/mayo-clinic/" target="_self" data-id="5ab409d26fabc5420e51613a">Visit Mayo Clinic</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/mayo-clinic/hotels/" target="_self" data-id="5ab409d86fabc5420e516c35">Hotels</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="/mayo-clinic/hotels/charitable-lodging/" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> </li> </ul> </li> <li class="has-children" > <a href="/mayo-clinic/getting-here/" target="_self" data-id="5ab409d86fabc5420e516c6f">Getting Here</a> </li> <li class="has-children" > <a href="/mayo-clinic/getting-around/" target="_self" data-id="5ab409d86fabc5420e516ca9">Getting Around</a> </li> <li class="has-children" > <a href="https://www.mayoclinic.org/patient-visitor-guide/minnesota/travel-lodging-maps/maps" target="_blank" data-id="5ab409d86fabc5420e516ce3">Mayo Clinic Maps</a> </li> <li class="has-children" > <a href="/mayo-clinic/faq/" target="_self" data-id="5ab409d86fabc5420e516ce4">FAQ</a> </li> <li class="has-children" > <a href="/mayo-clinic/history/" target="_self" data-id="5ab409d86fabc5420e516d1e">History</a> </li> <li class="has-children" > <a href="/mayo-clinic/restaurants-nearby/" target="_self" data-id="5ab409d86fabc5420e516d58">Restaurants Nearby</a> </li> <li class="has-children" > <a href="/mayo-clinic/parking/" target="_self" data-id="5ab409d86fabc5420e516d92">Parking</a> </li> </ul> </li> </ul> </nav> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=1b8c86de-b79b-49ac-9369-0de03930e72f]'); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); currentLink.addClass('active') var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro-mobile').not('.micro-mobile.current').remove(); }); </script></div><div data-civid="641e0104010ee024eeb7ecc1" class="contentRender contentRender_10 contentRender_type_widget contentRender_name_plugins_nav_mobile" data-sv-time="25" data-sv-index="10" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <nav class="indy-nav" data-guid="1a788d35-52ae-4dec-9622-d0a2460f485b"> <ul class="indy-nav-style-mobile"> <li class="has-children" > <a href="/meet/" target="_self" data-id="5ab409d26fabc5420e516174">Meet in Rochester</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/meet/mayo-civic-center/" target="_self" data-id="5ab409d96fabc5420e516dcc">Convention Center</a> </li> <li class="has-children" > <a href="/meet/facilities/" target="_self" data-id="5ab409d96fabc5420e516e34">Meeting Facilities</a> <i class="fa fa-angle-down menu-action"></i> <ul> <li class="has-children" > <a href="https://www.experiencerochestermn.com/meet/mayo-civic-center/" target="_self" data-id="5ab409e36fabc5420e5181f6">Convention Center</a> </li> <li class="has-children" > <a href="/meet/facilities/hotels/" target="_self" data-id="5ab409e36fabc5420e5181f7">Hotels</a> </li> <li class="has-children" > <a href="/meet/facilities/unique-off-site-venues/" target="_self" data-id="5ab409e36fabc5420e51822b">Unique Off-site Venues</a> </li> </ul> </li> <li class="has-children" > <a href="/meet/weddings-parties-celebrations/" target="_self" data-id="5ab409d96fabc5420e516e68">Weddings, Parties & Celebrations</a> </li> <li class="has-children" > <a href="/meet/green-initiatives/" target="_self" data-id="5ab409d96fabc5420e516ed0">Green Initiatives</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/things-to-do/nightlife-and-live-music/" target="_self" data-id="5ab409d96fabc5420e516f04">Nightlife</a> </li> <li class="has-children" > <a href="/meet/trolley/" target="_self" data-id="5ab409d96fabc5420e516f38">Trolley</a> </li> <li class="has-children" > <a href="https://www.experiencerochestermn.com/sports/" target="_self" data-id="5ab409d96fabc5420e516fa0">Sports</a> </li> <li class="has-children" > <a href="/meet/contact-us/" target="_self" data-id="5ab409d96fabc5420e516fa1">Contact Us</a> </li> <li class="has-children" > <a href="/meet/medical-meetings/" target="_self" data-id="6435ac6cccc386387b0c92c8">Medical Meetings and Conventions in Rochester, MN</a> </li> </ul> </li> <li class="has-children" > <a href="/sports/" target="_self" data-id="5ab409d26fabc5420e5161a8">Sports</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="http://www.rochsports.org/page/show/921763-rochester-sports-calendar" target="_self" data-id="5ab409da6fabc5420e51703d">Sports Events Calendar</a> </li> </ul> </li> <li class="has-children" > <a href="/blog/" target="_self" data-id="5aaafc888c50bb2d2882af24">Blog</a> </li> <li class="has-children" > <a href="/media/" target="_self" data-id="5ab409d26fabc5420e5161dc">Media</a> <i class="fa fa-angle-down menu-action"></i> <ul class="sub-nav-mobile"> <li class="has-children" > <a href="/media/rankings-and-recognitions/" target="_self" data-id="5ab409da6fabc5420e5170db">Rankings & Recognitions</a> </li> </ul> </li> <li class="has-children" > <a href="/podcast/" target="_self" data-id="62101e0d19ab721caededf52">Podcast</a> </li> <li class="has-children" > <a href="/brewpass/" target="_self" data-id="661d80675754e4512960a9c9">Sip n' Savor Brew Pass</a> </li> </ul> </nav> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=1a788d35-52ae-4dec-9622-d0a2460f485b]'); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); currentLink.addClass('active') var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); current.addClass('current'); root.find('.micro-mobile').not('.micro-mobile.current').remove(); }); </script></div> </nav> </div> </div> </section> </header> </div></div> </div> <div class="slideshow_container"> <div data-civid="5d70237677e8d17cf5003122" class="contentRender contentRender_11 contentRender_type_widget contentRender_name_plugins_collections_type_custom_header_slides contentRender_name_plugins_collections_template_custom_header_slideshow_interior" data-sv-time="39" data-sv-index="11" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="homepage-header-slideshow-holder" data-guid="06f223e2-1ca6-4711-9a76-0f5b28c72ed8"> <section class="homepage-header-slideshow interior"> <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" /> </section> <script type="text/template" data-sv-slides> {{#items.0}} {{:asset.resource}} <article class="homepage-header-slide slide" data-profile-sort="{{profileSort}}"> {{~setVar("resource", helpers.plugins.cloudinary.createResource(data.asset.resource))}} {{~setVar('mobileCrop', data.mobile_crop_image ? helpers.plugins.cloudinary.createResource(data.mobile_crop_image.resource) : helpers.var.resource)}} <picture class="imgcont"> <source media="(max-width: 640px)" srcset="{{~var.mobileCrop.getThumbnailUrl({ height : 652, width : 640, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> <source media="(max-width: 1024px)" srcset="{{~var.resource.getThumbnailUrl({ height : 341, width : 1024, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}"> <img src="{{~var.resource.getThumbnailUrl({ height : 500, width : 1500, crop : 'fill', sv : { gravity : 'focalPoint' }, quality: 50 })}}" alt="{{%asset.alt_text}}"> </picture> <div class="ol-header-slideshow"></div> {{:asset.credits}} <div class="credits">Credit: {{asset.credits}}</div> {{/}} {{:*templateData.title}} <div class="header-caption {{:link.url}}has-link{{/}}"> {{:link.url}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span>{{title}}</span>{{:link.url}}<i class="fa fa-angle-double-right" aria-hidden="true"></i>{{/}} {{:link.url}}</a>{{/}} </div> {{/}} </article> {{/asset}} {{/items}} </script> <div class="header-dots"></div> </div> <script> var modules = ["jquery", "lodash", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary,videoLib", "sv_asyncLib", "sv_arrayLib", "sv_load!plugins_dynamic_content"] var browserIsIE = document.body.style.msTouchAction !== undefined; if (browserIsIE) modules.push("plugins_common_custom_picturefill"); require(modules, function($, lodash, dtn, goatee, asyncLib, arrayLib, dynamic) { var root = $("[data-guid=06f223e2-1ca6-4711-9a76-0f5b28c72ed8]"); 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":"06f223e2-1ca6-4711-9a76-0f5b28c72ed8","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":11,"guid":"e86a170d-3e97-4929-baa3-22c37d0d3801","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"},"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"}}; var flow = new asyncLib.Flow(); flow.series({ // query DTN for collections items to fold into the set, if you are not using DTN, you should not remove this code! // This way your client can easily enable this feature in the future. // All downstream code should function if dtn is disabled, no zones chosen, or no valid ads. dtn : function(cb) { if (dtn === undefined) { return cb(null, []); } var ids = []; dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_header_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { var slides = goatee.fill(root.find("[data-sv-slides]").html(), data); var slider = root.find(".homepage-header-slideshow"); slider.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> <div class="content"> <div data-civid="5ab2847031637f06dbd15538" class="contentRender contentRender_12 contentRender_type_panel contentRender_name_plugins_common_visitor_guide" data-sv-time="0" data-sv-index="12" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="en-vg"> <div data-civid="5b314d3205d59a40533d350a" class="contentRender contentRender_13 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="11" data-sv-index="13" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <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%20Visitor%27s%20Guide" } }'><i class="fa fa-book" aria-hidden="true"></i>Free Visitor's Guide</a> </div> <div data-civid="5b314d3205d59a40533d350c" class="contentRender contentRender_14 contentRender_type_widget contentRender_name_plugins_common_visitor_guide" data-sv-time="11" data-sv-index="14" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <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> </div> </section></div><div data-civid="5ab2852431637f06dbd1553e" class="contentRender contentRender_15 contentRender_type_panel contentRender_name_plugins_common_container" data-sv-time="0" data-sv-index="15" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><div class="panel_custom_container"> </div></div><div data-civid="5ab2863231637f06dbd155a6" class="contentRender contentRender_16 contentRender_type_panel contentRender_name_plugins_common_nav_container" data-sv-time="1" data-sv-index="16" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section class="interior-nav" > <div class="row main"> <div class="columns"> <div data-civid="5ab2863231637f06dbd155a8" class="contentRender contentRender_17 contentRender_type_widget contentRender_name_plugins_nav_side" data-sv-time="17" data-sv-index="17" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <section class="interior-navs hide" data-guid="8a36861e-2e17-40f1-ad20-c259fbec310c"> <nav class="interior-nav" data-id="5ab409d16fabc5420e516052"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section:&nbsp;</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>&nbsp;&nbsp;</span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d16fabc5420e516052"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e51608c"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section:&nbsp;</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>&nbsp;&nbsp;</span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e51608c"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/events-calendar/fairs-festivals/" class="" target="_self" data-id="5ab409df6fabc5420e51799a">Fairs + Festivals</a> </li> <li> <a href="/things-to-do/events-calendar/fall/" class="" target="_self" data-id="5ab409df6fabc5420e5179d4">Fall</a> </li> <li> <a href="/things-to-do/events-calendar/winter/" class="" target="_self" data-id="5ab409e06fabc5420e517a0e">Winter</a> </li> <li> <a href="/things-to-do/events-calendar/spring/" class="" target="_self" data-id="63f67257c31926015cbdb232">Spring</a> </li> <li> <a href="/things-to-do/events-calendar/summer/" class="" target="_self" data-id="5ab409e06fabc5420e517a48">Summer</a> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/outdoor-adventure/bike-hike-walk/" class="" target="_self" data-id="5ab409e16fabc5420e517c52">Bike, Hike & Walk</a> </li> <li> <a href="/things-to-do/outdoor-adventure/ski-skate-sled/" class="" target="_self" data-id="5ab409e16fabc5420e517c8c">Ski, Skate & Sled</a> </li> <li> <a href="/things-to-do/outdoor-adventure/parks/" class="" target="_self" data-id="5ab409e16fabc5420e517cc6">Parks</a> </li> </ul> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/shopping/only-in-rochester/" class="" target="_self" data-id="5ab409e06fabc5420e517bde">Only in Rochester</a> </li> <li> <a href="/things-to-do/shopping/apparel/" class="" target="_self" data-id="5ab409e06fabc5420e517af6">Apparel</a> </li> <li> <a href="/things-to-do/shopping/gifts/" class="" target="_self" data-id="5ab409e06fabc5420e517b6a">Gifts & Specialty Items</a> </li> <li> <a href="/things-to-do/shopping/antiques/" class="" target="_self" data-id="5ab409e06fabc5420e517abc">Antiques</a> </li> <li> <a href="/things-to-do/shopping/department-stores/" class="" target="_self" data-id="5ab409e06fabc5420e517b30">Department Stores</a> </li> <li> <a href="/things-to-do/shopping/shopping-centers-malls/" class="" target="_self" data-id="5ab409e06fabc5420e517ba4">Shopping Centers & Malls</a> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/attractions-entertainment/movie-theaters/" class="" target="_self" data-id="5ab409e16fabc5420e517d00">Movie Theaters</a> </li> <li> <a href="/things-to-do/attractions-entertainment/sports/" class="" target="_self" data-id="5ab409e16fabc5420e517d3a">Sports</a> </li> <li> <a href="/things-to-do/attractions-entertainment/mayo-civic-center/" class="" target="_self" data-id="5c87cf7a18e1e6fa27c10c8d">Mayo Civic Center</a> </li> </ul> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/things-to-do/history-and-heritage/top-four-historical-sites/" class="" target="_self" data-id="5c65d10f18e1e6fa27bef07a">Top Four Historical Sites</a> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <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> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e5160c6"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section:&nbsp;</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>&nbsp;&nbsp;</span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e5160c6"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/restaurants/search-by-cuisine-type/american/" class="" target="_self" data-id="5ab409e16fabc5420e517d74">American</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/coffee-and-tea/" class="" target="_self" data-id="5ab409e16fabc5420e517dae">Coffee & Tea</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/international/" class="" target="_self" data-id="5ab409e16fabc5420e517de8">International</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/pizza/" class="" target="_self" data-id="5ab409e16fabc5420e517e22">Pizza</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/seafood/" class="" target="_self" data-id="5ab409e16fabc5420e517e5c">Seafood</a> </li> <li> <a href="/restaurants/search-by-cuisine-type/sweet-treats/" class="" target="_self" data-id="5ab409e26fabc5420e517e96">Sweet Treats</a> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <a href="/restaurants/dog-friendly/" target="_self" data-id="6671e6608b68e6d94a8206eb" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType": "Navigation Side", "linkObject": "Dog%20Friendly" } }'>Dog Friendly</a> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e516100"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section:&nbsp;</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>&nbsp;&nbsp;</span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e516100"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/planning-tools/getting-here/airports/" class="" target="_self" data-id="5ab409e26fabc5420e517ed0">Airports</a> </li> <li> <a href="/planning-tools/getting-here/driving-directions/" class="" target="_self" data-id="5ab409e26fabc5420e517f0a">Driving Directions</a> </li> </ul> </li> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/planning-tools/getting-around/bus-line/" class="" target="_self" data-id="5ab409e26fabc5420e517f44">Bus Line</a> </li> <li> <a href="/planning-tools/getting-around/car-rental/" class="" target="_self" data-id="5ab409e26fabc5420e517f7e">Car Rental</a> </li> <li> <a href="/planning-tools/getting-around/limousine-service/" class="" target="_self" data-id="5ab409e26fabc5420e517fb8">Limousine Service</a> </li> <li> <a href="/planning-tools/getting-around/parking/" class="" target="_self" data-id="5ab409e26fabc5420e517ff2">Parking</a> </li> <li> <a href="/planning-tools/getting-around/shuttle-service/" class="" target="_self" data-id="5ab409e26fabc5420e51802c">Shuttle Service</a> </li> <li> <a href="/planning-tools/getting-around/skyway-subway/" class="" target="_self" data-id="5ab409e26fabc5420e518066">Skyway/Subway</a> </li> <li> <a href="/planning-tools/getting-around/specialized-transportation/" class="" target="_self" data-id="5ab409e36fabc5420e5180a0">Specialized Transportation</a> </li> <li> <a href="/planning-tools/getting-around/taxi-service/" class="" target="_self" data-id="5ab409e36fabc5420e5180da">Taxi Service</a> </li> </ul> </li> <li class="has-children"> <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": "Travel%20Planning%20Guide" } }'>Travel Planning Guide</a> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> </ul> </div> </div> </div> <nav class="interior-nav" data-id="5ab409d26fabc5420e51613a"> <div class="interior-nav-action"> <span class="interior-nav-actions">In this section:&nbsp;</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>&nbsp;&nbsp;</span><i class="fa fa-caret-down interior-nav-actions" aria-hidden="true"></i> </div> </nav> <div class="child-container"> <div class="row child-items" data-id="5ab409d26fabc5420e51613a"> <div class="columns"> <ul class="small-block-grid-4 interior-nav-style"> <li class="has-children"> <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> <i class="fa fa-angle-down menu-action"></i> <ul> <li> <a href="/mayo-clinic/hotels/charitable-lodging/" class="" target="_self" data-id="5ab409e36fabc5420e518188">Charitable Lodging</a> </li> </ul> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> <li class="has-children"> <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> </li> </ul> </div> </div> </div> </section> <script type="text/javascript"> require(["jquery"], function($) { var root = $('[data-guid=8a36861e-2e17-40f1-ad20-c259fbec310c]'); var navItemProperties = JSON.parse($('meta[name=sv-nav-properties]').attr('content')); var parentIds = navItemProperties.parents_ids || []; var rootParent = parentIds.length > 0 ? parentIds[0] : navItemProperties.id; var current = root.find('[data-id="' + rootParent + '"]'); var currentLink = root.find('[data-id=' + navItemProperties.id + ']'); var isMicrosite = false; currentLink.addClass('active') currentLink.parent('li').find('ul').addClass('active'); window.onload = function() { $('.interior-navs').removeClass('hide') } root.find('.interior-nav-actions').on('click', function(e) { e.preventDefault(); root.find('.interior-nav-style').toggleClass('active'); root.find('.fa-caret-down').toggleClass('active'); }); parentIds.forEach(function(parentId){ var parentItems = root.find('[data-id="' + parentId + '"]'); parentItems.each(function(){ $(this).parent().addClass('current'); }); }); root.find('.menu-action').on('click', function() { $(this).toggleClass('active'); $(this).siblings().toggleClass('active'); }); current.addClass('current'); root.find('.interior-nav').not('.interior-nav.current').remove(); root.find('.child-items').not('.child-items.current').remove(); if (isMicrosite) { root.find('.interior-nav-style').addClass('active'); root.find('.fa-caret-down').addClass('active'); } }); </script></div> <div data-civid="5ab2863231637f06dbd155aa" class="contentRender contentRender_18 contentRender_type_widget contentRender_name_plugins_common_social_share" data-sv-time="11" data-sv-index="18" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="sv-share" data-guid="ea7d6219-c2d5-425c-917c-150f09386cc6" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "widget_interaction", "widgetName" : "Social Share", "interactionSource": "widget" } }'> <div class="sv-share-button-wrapper"> <button class="sv-share-trigger" type="button" aria-expanded="false" aria-label="show share links" aria-controls="share-popover"> <i class="sv-share-trigger-icon fas fa-share-square"></i> <span>Share</span> </button> <ul id="share-popover" class="sv-share-popover"> <div data-sv-social-share></div> </ul> </div> </div> <script type="text/template" data-social-share-template> {{#items}} <li class="sv-share-service-email"> <!-- Email --> <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" } }'> <i class="sv-share-service-icon fas fa-envelope" aria-hidden="true"></i> <span>Email</span> </a> </li> <li class="sv-share-service-twitter"> <!-- Twitter --> <a href="https://twitter.com/share?url={{url}}&text={{%%title}}" target="_blank" data-gtm-click data-gtm-vars='{ "tClient_ga4" : { "linkObject" : "Twitter", "interactionUrl": "https://twitter.com/share?url={{%%url}}&text={{%%title}}", "interactionText" : "Twitter" } }'> <i class="sv-share-service-icon fab fa-twitter" aria-hidden="true"></i> <span>Twitter</span> </a> </li> <li class="sv-share-service-facebook"> <!-- Facebook --> <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" } }'> <i class="sv-share-service-icon fab fa-facebook" aria-hidden="true"></i> <span>Facebook</span> </a> </li> <li class="sv-share-service-linkedin"> <!-- LinkedIn --> <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" } }'> <i class="sv-share-service-icon fab fa-linkedin" aria-hidden="true"></i> <span>LinkedIn</span> </a> </li> <li class="sv-share-service-reddit"> <!-- Reddit --> <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" } }'> <i class="sv-share-service-icon fab fa-reddit" aria-hidden="true"></i> <span>Reddit</span> </a> </li> {{/}} </script> <script> require(["plugins_common_custom_social_share"], function(socialShare) { const data = {"sections":{},"data":{},"guid":"ea7d6219-c2d5-425c-917c-150f09386cc6","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":18,"guid":"ea7d6219-c2d5-425c-917c-150f09386cc6","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"}}; socialShare.init("ea7d6219-c2d5-425c-917c-150f09386cc6", data) }); </script> </div> </div> </div> </section></div><div data-civid="5d70237677e8d17cf500312c" class="contentRender contentRender_19 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="0" data-sv-index="19" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="panel_custom_one_col controlled-width"> <div class="row"> <div class="columns"> <div data-civid="5d70237677e8d17cf500312e" class="contentRender contentRender_20 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="11" data-sv-index="20" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'><section data-sv-core-textbox data-guid="ab655a53-827b-4ddd-9201-4eb6fd4a9fee"> <h1 style="text-align: center;">Department Stores in Rochester MN</h1> <p style="text-align: center;">&nbsp;</p> </section></div> </div> </div> </div> </div><div data-civid="5d70237677e8d17cf5003130" class="contentRender contentRender_21 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="1" data-sv-index="21" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <div class="panel_custom_one_col full-width"> <div data-civid="5d70237677e8d17cf5003132" class="contentRender contentRender_22 contentRender_type_widget contentRender_name_plugins_listings_layout_list" data-sv-time="26" data-sv-index="22" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="shared-list shared-layout listings layout-grid listings-wrapper" id="listings_6ae5653f-601d-4c04-8742-5844b9bdce0c" data-gtm-vars='{ "tCore" : { "category" : "listing_layout_list" }, "tClient" : { "eventCategory" : "Listings" }, "tClient_ga4": {"itemType": "listings"} }' data-sv-layout> <script type="text/template" data-sv-listingListItem> {{~setVar("template", "listings_custom_listing_list_item")}} {{~setVar("bookableOffers", data.oncethere_orgid !== undefined && data.offers !== undefined ? data.offers.filter(function(val) { return val.source === "onceThere" }) : [])}} {{~setVar("oncetherelink", data.offers !== undefined && data.offers.length == 1 ? data.offers[0].onceThereUrl : "" )}} {{~setVar("mainColumnClass", helpers.var.bookableOffers.length > 0 ? "large-7 medium-7" : "large-9 medium-9")}} {{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} {{~setVar("addressLine", [data.address1, data.address2, data.address3].filter(function(val) { return val !== undefined }).join(", "))}} {{~setVar("placeholder", helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }) )}} {{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 75 })}} {{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 75 })}} <div class="shared-item item {{:isDTN}}dtn{{/isDTN}} catid_{{primary_category.catid}}" data-type="listing" data-recid="{{recid}}" data-qualityscore="{{qualityScore}}" data-rankid="{{rankid}}" data-dtn-rank="{{dtn.rank}}" data-rankname="{{%rankname}}" 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}}" } }' {{:isDTN}}data-sv-adunit="{{dtnauid}}" data-sv-adstyle="recid" data-sv-adrecid="{{recid}}"{{/isDTN}}> <div class="image-container"> {{:~equal(data.rankname === "Experience Accreditation" || data.rankname === "Sponsored/Experience Accreditation", true)}} <a href="/about-us/our-commitment-to-visitors/experience-accreditation/" target="_blank"> <img class="accredited" src="/includes/public/assets/images/accredited.png"> <img class="accredited-text" src="/includes/public/assets/images/experience.png"> </a> {{/}} {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} <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}}"} }'> {{:~var.noPlaceholder}} <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> {{?}} <img src="{{primary_image.resource.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> {{/}} </a> {{:isDTN}} <div class="featured"> <i class="fa fa-star" aria-hidden="true"></i> Featured </div> {{/}} </div> <div class="contents"> <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> {{:distance}} <p class="distance">{{distance.format({ unit : "miles" })}} Miles From You</p> {{/distance}} {{:loc}} <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> {{?}} <p class="address">{{~var.addressLine}}</p> {{/}} <div class="actions"> <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> </a> {{:weburl}}<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>{{/weburl}} </div> </div> </div> </script> <script type="text/template" data-sv-pagerTemplate>{{~setVar("template", "listings_custom_listing_list_pager")}} <div class="pagination" data-sv-pagination=""> <div class="pager"> <ul class="pagi-info"> <li>Results:</li> <li class="number-results">{{pager.startRow}}-{{pager.currentPageLastRow}} of {{pager.totalRows}}</li> </ul> </div> <div class="pager pager-cont"> <ul class="pager-items"> <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> <li>{{pager.currentPage}} of {{pager.totalPages}}</li> <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> </ul> </div> </div></script> <script type="text/template" data-sv-listingListMapItem>{{~setVar("template", "custom_list_map_item")}} {{~setVar("cityStateZip", helpers.plugins.stringLib.formatCityStateZip({ city : data.city, state : data.state, zip : data.zip }))}} {{~setVar("addressLine", [data.address1, data.address2, data.address3, helpers.var.cityStateZip].filter(function(val) { return val !== undefined }).join(", "))}} {{~setVar('image_settings', { height : 251, width : 380, crop : 'fill', sv : { gravity : 'focalPoint' }, quality : 50 })}} {{~setVar('image_settings_fit', { height : 251, width : 380, crop : 'pad', quality : 50 })}} {{~exec(function() { helpers.var.imageType; helpers.var.type; helpers.var.nextDate = data.date || data.nextDate; //set images if(data.isListings != undefined){ helpers.var.imageType = data.primary_image.resource helpers.var.type = "listing" } else if(data.isEvents != undefined && data.media != undefined){ helpers.var.imageType = data.media[0] helpers.var.type = "event" } else if(data.isOffers != undefined && data.image != undefined){ helpers.var.imageType = data.image.resource helpers.var.type = "offer" } else if(data.media == undefined || data.image == undefined){ helpers.var.imageType = helpers.plugins.cloudinary.createResource({ imageUrl : helpers.plugins.sv_site.siteConfig.custom.placeholderImageUrl }); } })}} {{:latitude}} {{:longitude}} <div class="shared-item item" data-recid="{{recid}}" data-type="{{~var.type}}" > <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> <div class="image-container"> {{~setvar("noPlaceholder", data.media && (data.media.length > 1 || data.media[0].mediatype !== "Logo"))}} {{:~var.noPlaceholder}} <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings)}}" class="thumb"> {{?}} <img src="{{~var.imageType.getThumbnailUrl(helpers.var.image_settings_fit)}}" class="thumb"> {{/}} {{:isEvents}} {{:nextDate}} <div class="image-date-block"> <span class="month">{{~var.nextDate.format('MMM')}}</span> <span class="day">{{~var.nextDate.format('DD')}}</span> </div> {{/}} {{/}} </div> <div class="contents"> <h2>{{title}}</h2> {{:isOffers}} {{~exec(function() { if (data.redeemstart) data.redeemstart = helpers.plugins.clientMoment(data.redeemstart); if (data.redeemend) data.redeemend = helpers.plugins.clientMoment(data.redeemend); })}} <div class="dates"> Valid:&nbsp; {{!redeemstart}}{{!redeemend}}Always{{/redeemend}}{{/redeemstart}} {{:redeemstart}}{{:redeemend}}{{redeemstart.format("LL")}} - {{redeemend.format("LL")}}{{/redeemend}}{{/redeemstart}} {{:redeemstart}}{{!redeemend}}Starting {{redeemstart.format("LL")}}{{/redeemend}}{{/redeemstart}} {{:redeemend}}{{!redeemstart}}Ending {{redeemend.format("LL")}}{{/redeemstart}}{{/redeemend}} </div> {{/}} {{:distance}} <p class="address">{{distance.format({ unit : "miles" })}} Miles From You</p> {{/distance}} {{:isOffers}} {{:listings}} {{#listings.0}} <p class="address"> {{company}}</p> {{/}} {{/}} {{?}} <p class="address"><i class="fa fa-map-marker"></i> {{~var.addressLine}}</p> {{/}} </div> </a> </div> {{/}} {{/}}</script> <script type="text/template" data-sv-pagerMapTemplate>{{~setVar("template", "custom_list_map_pager")}} <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> <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> <script type="text/template" data-sv-pagerMapCounterTemplate>{{~setVar("template", "custom_list_map_pager")}} Page: {{pager.currentPage}} of {{pager.totalPages}}</script> <script type="text/template" data-sv-infoWindowTemplate>{{!-- 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 The nearbyRecid should only be passed on offer/listing/event detail The location and locationUrl should be passed from event layout and offer layout --}} <div class="infoWindow core-styles"> <h5> {{: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}}" }}'>{{/}} {{title}} {{:url}}</a>{{/}} </h5> <ul class="contactInfo"> {{:location}} <li>Location: {{:locationUrl}}<a href="{{locationUrl}}">{{/}} {{%location}} {{:locationUrl}}</a>{{/}} </li> {{/location}} {{:address1}}<li>Address: {{address1}}</li>{{/}} <li> <div class="shared-action-items"> {{:url}} <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> {{/url}} </div> </li> </ul> </div></script> <script type="text/template" data-sv-liItems>{{~exec(function() { // svdm: capitalize the name for analytics purposes. data.seoAction = data.name.charAt(0).toUpperCase() + data.name.slice(1); })}} {{+field_link_or_label}} {{:extra.url}} <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}}" } }' > {{/}} {{value}} {{:extra.url}} </a> {{/}} {{/}} {{+field_list_of_link_or_label}} {{#value}} <span class="item"> {{~fill(helpers.partial("field_link_or_label"), { value : data.value, extra : { url : data.url } }, {}, global)}}{{!@last}}, {{/}} </span> {{/}} {{/}} {{+field_times}} {{:item.startTime}} {{~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')}}{{/}} {{?}} {{value}} {{/}} {{/}} {{+field_phone}} <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}}{{/}} {{/}} {{+field_distance}} {{value.format({ unit : "miles" })}} Miles From You {{/}} {{+field_rating}} {{~setVar("ratingPercent", (data.value / 5) * 100)}} <li class="ratings-back"> <span style="width:{{~var.ratingPercent}}%" class="ratings-front"></span> </li> {{/}} {{:value}} <li class="{{liClass}}" data-name="{{name}}" data-value-template="{{valueTemplate}}"> {{:label}}<span class="info-list-label {{labelClass}}">{{label}}:</span>{{/label}} <span class="info-list-value {{valueClass}}"> {{:valueTemplate}} {{~fill(helpers.plugins.stringLib.decodeScriptTags(helpers.partial("field_" + data.valueTemplate)), data, { field_link_or_label : helpers.partial("field_link_or_label") }, global)}} {{?}} {{value}} {{/}} </span> </li> {{/}}</script> <script type="text/template" data-sv-mainTemplate> {{:data}} {{#data}} {{>listingListItem}} {{/}} {{/data}} {{!data}} <h3 class="no-results">There are no listings that match your query.</h3> {{/data}} </script> <script type="text/template" data-sv-mapMainTemplate> {{:data}} {{#data}} {{~exec(function() { data.isListings = true;})}} {{>listMapItem}} {{/}} {{?}} <h4 class="no-results">There are no listings that match your query.</h4> {{/}} </script> <ul class="mobile-options" data-sv-mobile-options="" data-gtm-vars='{"tClient_ga4": {"eventName": "filter"}}'> <li> <a class="tab-title" href="#" data-sv-mobile-options-display="">Filters <i class="fa fa-angle-down" aria-hidden="true"></i></a> <div class="options-dropdown"> <div class="mobile-filters-wrapper"> <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> <div class="close" data-sv-close-filters=""></div> <form> <input type="hidden" name="catid" value="3"/> <input type="hidden" name="skip" value="0"/> <input type="hidden" name="alphaend" value=""/> <input type="hidden" name="alphastart" value=""/> <input type="hidden" name="sort" value=""/> <input type="hidden" name="subcatids" value="1896" /> <label class="keyword">KEYWORD SEARCH</label> <div class="form-group"> <input class="shared-input input-text" name="keyword" type="text"> <button class="shared-submit"><i class="fa fa-search"></i></button> </div> <div class="top-label"> <h3 class="filterby">Filter by: </h3><a href="#" class="clear-filters" data-sv-clear-filters="" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Clear Filters" }, "tClient_ga4": { "itemType": "listings", "eventName": "filter", "filterType": "Clear Filters" } }'>Clear Filters</a> </div> <h4>Region</h4> <ul class="filter-items"> <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> <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> <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> <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> <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> <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> <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> <li class="nofilters">No available filters</li> </ul> <h4>Category</h4> <ul class="filter-items"> <li><input type="checkbox" name="subcatids" id="subcat-1" class="shared-input input-checkbox" value="1896" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Department Stores" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Department Stores" }, "tClient_ga4" : { "filterType" : "Department%20Stores | Category" } }'> <label for="subcat-1">Department Stores<span class="filter-count"></span></label></li> </ul> </form> </div> </div> </div> </li> <li> <a href="#" data-sv-mobile-options-display="">View <i class="fa fa-angle-down"></i></a> <div class="options-dropdown centered"> <ul class="options"> <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> <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> <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> </ul> </div> </li> <li data-sv-distanceSort> <a href="#" data-sv-mobile-options-display="">Sort <i class="fa fa-angle-down"></i></a> <div class="options-dropdown centered"> <ul class="options"> <li class="title">Sort by:</li> <li><a data-gtm-click data-gtm-vars='{ "tCore" : { "label" : "qualityScore" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Sort | Recommended" }, "tClient_ga4" : { "filterType" : "Recommended | Sort by" } }' data-query-link='{ "delta" : { "sort" : "qualityScore", "skip" : "", "dtnids" :"" }, "selectedIgnore" : ["skip", "dtnids"] }'>Recommended</a></li> <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> </ul> </div> </li> </ul> <div class="desktop-filters"> <div class="filters-wrapper"> <div class="filters" data-sv-filters="" data-gtm-vars='{ "tClient_ga4" : { "eventName" : "filter" } }'> <div class="close" data-sv-close-filters=""></div> <form> <input type="hidden" name="catid" value="3"/> <input type="hidden" name="skip" value="0"/> <input type="hidden" name="alphaend" value=""/> <input type="hidden" name="alphastart" value=""/> <input type="hidden" name="sort" value=""/> <input type="hidden" name="subcatids" value="1896" /> <label class="keyword">KEYWORD SEARCH</label> <div class="form-group"> <input class="shared-input input-text" name="keyword" type="text"> <button class="shared-submit"><i class="fa fa-search"></i></button> </div> <div class="top-label"> <h3 class="filterby">Filter by: </h3><a href="#" class="clear-filters" data-sv-clear-filters="" data-gtm-click data-gtm-vars='{ "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Clear Filters" }, "tClient_ga4": { "itemType": "listings", "eventName": "filter", "filterType": "Clear Filters" } }'>Clear Filters</a> </div> <h4>Region</h4> <ul class="filter-items"> <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> <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> <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> <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> <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> <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> <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> <li class="nofilters">No available filters</li> </ul> <h4>Category</h4> <ul class="filter-items"> <li><input type="checkbox" name="subcatids" id="subcat-1" class="shared-input input-checkbox" value="1896" data-gtm-click data-gtm-vars='{ "tCore" : { "action" : "listings_custom_listings_list_filter_subcats_check", "label" : "Department Stores" }, "tClient" : { "eventAction" : "Filter Change", "eventLabel" : "Category | Department Stores" }, "tClient_ga4" : { "filterType" : "Department%20Stores | Category" } }'> <label for="subcat-1">Department Stores<span class="filter-count"></span></label></li> </ul> </form> </div> </div> </div> <div class="results-wrapper"> <ul class="options"> <li class="title">View by:</li> <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> <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> <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> <li class="sort-title line" data-sv-distanceSort>Sort by:</li> <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> <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> </ul> <div class="results" data-sv-content-height> <div class="shared-map-container" data-sv-map-container="" > <div class="nav-gear"></div> <div class="item-list shared-items"> <div class="item-list-header"> <h3>Results</h3> <div class="map-counter" data-sv-map-items-counter></div> </div> <div class="container" data-sv-map-items></div> <div class="clearfix buttons" data-sv-map-pager></div> </div> <div id="map" class="shared-map"> <div class="gMapContainer" data-gmapcontainer=""> <div class="gMapHolder" data-mapholder="" style="display: none;"></div> </div> </div> </div> <div class="shared-items-container"> <div class="shared-items" data-gtm-vars='{"tClient": {"eventCategory": "Listings", "eventAction": "Link to Detail", "ot": "Text", "vt": "Results", "ua": "Click", "lt": "Detail"}}'> <div class="container" data-sv-items-wrapper="" data-sv-items> </div> </div> </div> </div> <div class="clearfix"></div> <div class="listings-bottom"> <div class="row"> <div class="columns small-12 pagination-container bottom-container"> <div data-sv-pager></div> </div> </div> </div> </div> <div class="overlay" data-sv-listings-overlay=""></div> </div> <script> require([ "jquery", "plugins_core/main", "sv_goatee!plugins=stringLib,sv_site,crmLib,cloudinary", "geodist", "sv_crmLib", "plugins_listings_custom_map", "plugins_listings_custom_listings_lib", "sv_site", "sv_arrayLib", "sv_Pager", "sv_cloudinaryLib", "sv_asyncLib", "sv_urlLib", "sv_geolocationLib", "lodash", "sv_clientLib", "sv_load!plugins_dtn", "sv_clientMoment", "plugins_listings_custom_rates", "sv_load!site_tripbuilder", "site_gtm", "site_gamClient", "sv_siteFoundation" ], function( $, core, goatee, geodist, sv_crmLib, mapObj, lib, site, arrayLib, sv_Pager, sv_cloudinaryLib, asyncLib, urlLib, geolocationLib, lodash, clientLib, dtn, clientMoment, rates, tripbuilder, gtm, gamClient, foundation ) { var root = $("#listings_6ae5653f-601d-4c04-8742-5844b9bdce0c"); var filterContainer = root.find("[data-sv-filters]"); var infoWindowTmpl = root.find("[data-sv-infoWindowTemplate]").html(); var mainTemplate = root.find("[data-sv-mainTemplate]").html(); var mapMainTemplate = root.find("[data-sv-mapMainTemplate]").html(); var mapTemplate = root.find("[data-sv-mapTemplate]").html(); var pagerTemplate = root.find("[data-sv-pagerTemplate]").html(); var pagerMapTemplate = root.find("[data-sv-pagerMapTemplate]").html(); var pagerMapCounterTemplate = root.find("[data-sv-pagerMapCounterTemplate]").html(); var listMapItem = root.find("[data-sv-listingListMapItem]").html(); var listingListItem = root.find("[data-sv-listingListItem]").html(); var liItemsTemplate = root.find("[data-sv-liItems]").html(); var widget = {"template":"list","showSearchBox":"true","listingcats":"3","listingsubcats":["1896"],"amenityoptions":"none"}; var limit = 12; var maxRangeMiles = 100; var clientLat = 44.022233; var clientLong = -92.458054; var dtnargs = {"auid":"/21812118460/21812952115/21812733330","limit":10,"sort":"random"}; var validSubcats = [{"label":"Department Stores","value":1896,"sortorder":8,"catid":3}]; var hasDtn = (dtnargs.auid !== undefined && dtnargs.auid.length > 0 && dtnargs.limit > 0 && dtn !== undefined); var scrollSpeed = 175; var defaultSort = "qualityScore"; // the default sort var fallbackSort = "qualityScore"; // the fallback sort in case a requested sort is not available (IE distance and out of range) var validSorts = ["qualityScore","rankTitle", "distance"]; var defaultHooks = ["afterFind_offers"]; var filterHeight; if (tripbuilder !== undefined) { tripbuilder.initButtons({ root : root, 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>', 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>' }); tripbuilder.events.on("updateButton", function() { gtm.update(); }); } if (widget.detail_type !== undefined) { defaultHooks.push({ name : "afterFind_custom_detail_type", args : { detail_type : widget.detail_type } }); } if (validSorts.indexOf(defaultSort) === -1 || validSorts.indexOf(fallbackSort) === -1) { throw new Error("defaultSort or fallbackSort is not in the validSorts array"); } var validQueryVars = ["skip", "sort", "alphastart", "alphaend", "subcatids", "regionids", "keyword", "amenities", "mealtype"]; // query variables that we allow var queryFields = { address1 : 1, altphone : 1, city : 1, crmtracking : 1, detailURL : 1, dtn : 1, description: 1, isDTN : 1, loc : 1, latitude : 1, longitude : 1, media : 1, phone : 1, primary_category : 1, primary_site : 1, primary_image : 1, primary_image_url : 1, rankid : 1, rankorder : 1, recid : 1, regionid : 1, rankname: 1, state : 1, title : 1, tollfree: 1, zip : 1, typeid:1, detail_type : 1, oncethere_orgid : 1, offers_ids : 1, weburl:1, "offers.recid" : 1, "offers.title" : 1, "offers.price" : 1, "offers.source" : 1, "listingudfs_object.60.value_raw.listid" : 1, "accountudfs_object.1319.value_raw" : 1, "primary_category" : 1, "qualityScore" : 1 } // setup DTN if (hasDtn) { dtnargs.limit = Math.min(dtnargs.limit, limit); // ensures dtnargs.limit is not greater than limit validQueryVars.push("dtnids"); } var geoResult; var xhr; var findLogo = function(primary_image_url,media) { for (var i=0; i < media.length; i++) { if (media[i].mediatype === 'Logo' && media[i].mediaurl === primary_image_url) { return true; } } return false; }; var init = function() { if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ var pipeline = [ { "$match" : { "listingudfs_object.60" : { "$exists" : true } } }, { "$project" : { "listingudfs_object.60.values" : 1 } }, { "$group" : { "_id" : "$listingudfs_object.60.values" } }, { "$sort" : { "_id" : 1 } }, { "$project" : { "_id" : 0, "item": "$_id" } } ]; $.get("/includes/rest_v2/plugins_listings_listingmeta/aggregate/", { json : JSON.stringify({ pipeline : pipeline }), token : core.simpleToken }, function(data) { root.find("[data-sv-meal-type]").replaceWith(function() { return data.docs[0].item.map(function(type) { return '<li><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>'; }); }); root.find("[data-sv-mealType]").removeClass("hide"); }); } // begin: Google Maps logic mapObj.init({ node : root, scrollSpeed: scrollSpeed, listingsPro : true, hasQV : true, map : { markerIcon : '/includes/public/assets/images/pin.png', gestureHandling: 'cooperative', scrollwheel: false, mapOptions: { mapTypeControl: false } } }); mapObj.initListInterface(); mapObj.renderMap(); // end: Google Maps logic // begin: GTM tracking var gtmBase = gtm.getVars({ node : root }); var scrollFn = lodash.debounce(function() { // 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 var top = root.find("[data-sv-items]").offset().top; var inRange = $(window).scrollTop() + $(window).height() > top; if (inRange) { $(window).off("scroll", scrollFn); 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 } })); } }, 250); $(window).on("scroll", scrollFn); ["subcatids", "regionids", "keyword", "mealtype"].forEach(function(filter, i) { root.find("[name=" + filter + "]").change(function() { var input = $(this); var val = input.val(); if (!val) { return; } // catches undefined, null or "" since that applies to most field types (select, multieselect, text) var valArray = val instanceof Array ? val : [val]; var valString = valArray.join(","); // 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 var labelString = filter === "keyword" ? val : valArray.map(function(val) { return input.find('option[value="' + val + '"]').text().trim() }).join("|"); 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} })); }); }); // end: GTM tracking // this is the starting state on a blank url, these are your "defaults", IE values that occur if you start with a blank state // This is not used to enforce required values, that should occur at in the flow.state phase var query = { subcatids : undefined, // this value represents the subcatids that are chosen by default in the UI therefore it should be undefined always regionids : widget.region_array !== undefined ? widget.region_array.join(",") : undefined, sort : defaultSort } if(widget.custom_meal_type != undefined && widget.custom_meal_type === "true"){ query.mealtype = undefined; } if (window.location.search.length > 0 && clientLib.inPreview() === false) { // if we have a starting query string, we use it, extends the values in so we don't lose initial settings query = $.extend(query, urlLib.parse(window.location.toString()).get); } if (history.pushState) { history.replaceState(query, "", window.location.href); window.onpopstate = function(e) { // 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 if (e.state === null) { return; } runSearchQuery({ query : e.state, push : false }); } } // run the first query, don't push since this is a starting state runSearchQuery({ query : query, push : false }); // we need to check for geolocation always to find out if the user is in range geolocationLib.getGeolocationPosition({ checkRange : { latitude : clientLat, longitude : clientLong, maxRangeMiles : maxRangeMiles } }, function(err, result) { if (err) { throw err; } if (result.inRange === false) { return; } root.find(".distanceSort").css({"visibility" : "visible"}); root.find('[data-sv-distanceSort]').css({"opacity" : 1, "pointer-events": "all"}); // user is in range, set the geoResult and re-search. // 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 // that action should only take place if the defaultSort was distance geoResult = result; // if the original sort was meant to be distance, then lets re-run the search if (query.sort !== "distance") { return; } runSearchQuery({ query : query, push : false }); }); } // takes a query state, applies a delta, removes blacklisted keys, and removes any keys we've said aren't valid in the query var buildUrl = function(state, delta) { var queryVars = $.extend({}, state, delta); // var tempValidVars = lodash.without.apply(null, [validQueryVars].concat(blacklist)); queryVars = lodash.pick(queryVars, validQueryVars); $.each(queryVars, function(i, val) { if (val === "") { delete queryVars[i]; } }); return urlLib.build({ get : queryVars }); } // defines a getter to ease translating comma separated strings to integer arrays since they are used in multiple places var define_stringToNumberArray = function(state, prop) { Object.defineProperty(state, prop + "_array", { get : function() { return this[prop] !== undefined ? this[prop].split(",").map(function(val) { return parseInt(val) }) : [] } }); } // defines a getter to ease translating comma separated string to array of strings var define_stringToArray = function(state, prop) { Object.defineProperty(state, prop + "_array", { get : function() { return this[prop] !== undefined ? this[prop].split(",") : [] } }); } // Alters the current state and perform a series of steps // -> validate query variables, set defaults, and enforce restrictions // -> get data // -> render ui var runSearchQuery = function(args) { args.query = args.query || {}; args.push = args.push !== undefined ? args.push : true; $.each(args.query, function(i, val) { if (val !== undefined && typeof val !== "string") { // 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 // If you are hitting this thrown error it means you are likely calling this function improperly, or passing something bogus to it console.log("query", args.query); // intentional console.log, left to help debug when you hit this throw due to developer error throw new Error("Invalid data type, runSearchQuery only accepts an object of key value strings, or arrays of strings, as that's all URLs support") } // remove empty strings as it's easier to utilize undefined as a null state if (val === "") { delete args.query[i]; } }); var flow = new asyncLib.Flow(); flow.series({ state : function(cb) { // create a state based on whiteListings our query, validate that variables match expected values // cast items to integer or other values // after this function cb's, nothing should ever change a value in anyway on the state var state = $.extend(true, {}, args.query); // clone the query so that downstream changes don't alter the original state = lodash.pick(state, validQueryVars); // whitelist incoming arguments to only those that are approved if (history.pushState && args.push) { history.pushState(state, "", urlLib.build({ get : state })) } // set values for required state fields, that way even if not passed, or passed bogus, we can ensure theye exist state.limit = limit; state.catid = parseInt(widget.listingcats) || undefined; state.skip = parseInt(state.skip) || 0; // ensures we have a integer skip even if skip === "foo" || undefined state.sort = state.sort || defaultSort; if (state.sort === "distance" && geoResult === undefined) { state.sort = fallbackSort; } state.sort = validSorts.indexOf(state.sort) > -1 ? state.sort : defaultSort; define_stringToNumberArray(state, "regionids"); define_stringToNumberArray(state, "dtnids"); // for excluding dtn recids from our main queries and ensuring the same set as we paginate define_stringToNumberArray(state, "subcatids"); define_stringToNumberArray(state, "mealtype"); define_stringToArray(state, "amenities"); // state.subcatids is the subcats chosen in UI, if we have those, use the ones that also exist in our validSubcats // if we don't have those and we have listingsubcats chosen in the CMS, use those // else do not filter by subcatid var tempSubcats = state.subcatids !== undefined ? validSubcats.filter(function(val) { return state.subcatids_array.indexOf(val.value) !== -1 }) : widget.listingsubcats !== undefined ? validSubcats : undefined; // 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 state.filterTagItems = tempSubcats !== undefined ? tempSubcats.map(function(val) { return { site : site.site, subcatid : val.value } }) : [{ site : site.site, catid : state.catid }]; cb(null, state); }, filter : function(cb) { // prepare primary filter var filter = { solrOptions : {} }; filter.filter_tags = { $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems }) }; if (widget.custom_experience_accredited != undefined && widget.custom_experience_accredited.toString() === 'true') { filter['accountudfs_object.1319.value_raw'] = true } if (flow.data.state.mealtype !== undefined) { filter['listingudfs_object.60.value_raw.listid'] = { $in : flow.data.state.mealtype_array } } if (flow.data.state.regionids !== undefined) { filter.regionid = { $in : flow.data.state.regionids_array } } // add amenities to filter 1 to 1 if (flow.data.state.amenities !== undefined) { flow.data.state.amenities_array.forEach(function(val, i) { filter["amenities." + val + ".value_raw"] = true; }); } if (flow.data.state.alphastart !== undefined && flow.data.state.alphaend !== undefined) { filter.alpha = { $gte : flow.data.state.alphastart, $lte : flow.data.state.alphaend }; } if (flow.data.state.keyword !== undefined) { filter.solrOptions.keyword = flow.data.state.keyword; } if (flow.data.state.sort === "distance") { filter.solrOptions.sort = "distance"; filter.solrOptions.point = [geoResult.latitude, geoResult.longitude].join(","); filter.solrOptions.radius = site.siteConfig.maxRangeMiles.toString(); } // if we have no solrOptions, clean it if (Object.keys(filter.solrOptions).length === 0) { delete filter.solrOptions; } cb(null, filter); }, dtn : function(cb) { if ( hasDtn === false || // if dtn disabled flow.data.state.skip > 0 || // or not on the first page flow.data.state.sort === "distance" || // sorting by distance flow.data.state.catid === undefined // or we don't have cats ) { // no dtn results for this result set return cb(null, []); } // query dtn var dtnFilter = $.extend(true, {}, flow.data.filter); dtnFilter.filter_tags = { $in : sv_crmLib.getListingFilterTags({ items : flow.data.state.filterTagItems, dtn : true }) }; // using 0000 and 2359 for caching purposes, otherwise we could just use Date().toISOString() var today0000 = clientMoment().startOf("day"); // send date as 00:00:00 in the client timezone in UTC var today2359 = today0000.clone().add(1, "day").subtract(1, "second"); // send date as 23:59:59 in the client timezone in UTC dtnFilter.$and = [ { $or : [ { "dtn.sdate" : { $lte : { $date : today0000.toISOString() } } }, { "dtn.sdate" : { $exists : false } } ] }, { $or : [ { "dtn.edate" : { $gte : { $date : today2359.toISOString() } } }, { "dtn.edate" : { $exists : false } } ] } ]; var dtnOptions = { fields : queryFields, limit : dtnargs.limit, hooks : defaultHooks.concat("afterFind_dtn") }; if (dtnargs.sort === "random") { // on random we have to request a larger set so that we can choose a random set based on dtnargs.limit // dtn should not massively oversell this to prevent performance problems dtnOptions.limit = 99; } else if (dtnargs.sort === "alpha") { dtnOptions.sort = { rankorder : 1, sortcompany : 1 }; } else if (dtnargs.sort === "rank") { dtnOptions.sort = { "dtn.rank" : 1, sortcompany : 1 }; } else { throw new Error("Invalid dtn sort '" + dtnargs.sort + "'"); } if (xhr) { xhr.abort(); } xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : dtnFilter, options : dtnOptions }), token : core.simpleToken }); xhr.done(function(res) { if (dtnargs.sort === "random") { // randomize the result set, then trim it down to our desired limit var isDtnAndExperience = []; var isOnlyDtn = []; res.docs.forEach(function(doc){ if (doc.isDTN && (doc.accountudfs_object !== undefined) && (doc.accountudfs_object[1319] !== undefined)) { isDtnAndExperience.push(doc); } else { isOnlyDtn.push(doc); } }); isDtnAndExperience = arrayLib.randomize(isDtnAndExperience); isOnlyDtn = arrayLib.randomize(isOnlyDtn); res.docs = isDtnAndExperience.concat(isOnlyDtn); res.docs = res.docs.splice(0, dtnargs.limit); } flow.data.state.dtnids = res.docs.length > 0 ? res.docs.map(function(val) { return val.recid; }).join(",") : undefined; res.docs.forEach(function(val) { val.dtnauid = dtnargs.auid; }); cb(null, res.docs); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, data : function(cb) { // declare query options var options = { limit : flow.data.state.limit, skip : flow.data.state.skip, fields : queryFields, count : true, hooks : defaultHooks }; if (flow.data.state.sort === "qualityScore") { options.sort = { qualityScore : -1, sortcompany : 1 }; } if (flow.data.dtn.length > 0) { // has DTN listings, need to adjust page 1 limit and store state.dtnids for exclusion from main query on all pages options.limit -= flow.data.dtn.length; } else { // adjust our skip based on number of dtn listings output on page 1 options.skip = flow.data.state.skip - flow.data.state.dtnids_array.length; } if (flow.data.state.dtnids !== undefined) { // exclude dtn recids from main query on all pages flow.data.filter.recid = { "$nin" : flow.data.state.dtnids_array }; } // get listings data if (xhr) { xhr.abort(); } if (options.limit === 0) { // 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 xhr = $.get("/includes/rest_v2/plugins_listings_listings/count/", { json : JSON.stringify({ filter : flow.data.filter }), token : core.simpleToken }); } else { xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : flow.data.filter, options : options }), token : core.simpleToken }); } xhr.done(function(res) { var count; var data; if (options.limit === 0) { // process the count query count = res.count; data = flow.data.dtn; } else { // process the normal find query count = res.docs.count + flow.data.state.dtnids_array.length; // put dtn listings first data = flow.data.dtn.concat(res.docs.docs); } cb(null, { data : data, count : count }); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, keywordRecids : function(cb) { if (flow.data.state.keyword === undefined) { return cb(null); } var filter = { solrOptions : flow.data.filter.solrOptions }; var options = { fields : { recid : 1, _id : 0 }, count : false }; xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : filter, options : options }), token : core.simpleToken }); xhr.done(function(res) { var recids = res.docs.map(function(val) { return val.recid; }); cb(null, recids); }).fail(function(err, type, message) { if (type === "abort") { return flow.halt(cb); } // another request has aborted this one, so halt this flow return cb(new Error(message)); }); }, filterCount : function(cb) { var filter; var filterOriginal = $.extend({}, flow.data.filter); //removing dtn count if (flow.data.state.dtnids !== undefined && filterOriginal.recid && filterOriginal.recid["$nin"]) { delete filterOriginal.recid; } delete filterOriginal["solrOptions"]; // solrOptions doesn't work w/ aggregates // pull in location matches into faceted aggregates if (flow.data.state.sort === "distance") { filterOriginal["loc"] = { $exists : true }; } // Pull in keyword matches into faceted aggregates if (flow.data.keywordRecids !== undefined) { filterOriginal["recid"] = { $in : flow.data.keywordRecids }; } // MealType var facetMeal = [ { $project : { "listingudfs_object.60.value_raw" : 1 } }, { $unwind : "$listingudfs_object.60.value_raw" }, { $group : { _id : "$listingudfs_object.60.value_raw.listid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["listingudfs_object.60.value_raw.listid"]; facetMeal.unshift({ $match : filter }) // Amenities var facetAmenities = [ { $project : { "amenities_array.uniquename" : 1 } }, { $unwind : "$amenities_array" }, { $group : { _id : "$amenities_array.uniquename", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["$or"]; // only amenities in $or facetAmenities.unshift({ $match : filter }) // Regions var facetRegions = [ { $group : { _id : "$regionid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter["regionid"]; facetRegions.unshift({ $match : filter }) // Subcats var facetSubcats = [ { $project : { categories : 1 } }, { $unwind : "$categories" }, { $group : { _id : "$categories.subcatid", count : { $sum : 1 } } } ]; filter = $.extend({}, filterOriginal); delete filter['filter_tags']; facetSubcats.unshift({ $match : filter }) var filterFlow = new asyncLib.Flow(); filterFlow.series({ mealCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetMeal }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, amenCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetAmenities }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, regionCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetRegions }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); }, subcatsCount : function(cb) { xhr = $.get("/includes/rest_v2/plugins_listings_listings/aggregate/", { json : JSON.stringify({ pipeline : facetSubcats }), token : core.simpleToken }); xhr.done(function(res) { cb(null, arrayLib.index(res.docs, "_id")); }).fail(function(err, type, message) { return cb(new Error(message)); }); } }, cb); }, render : function(cb) { // using flow.data.data, render pager, items, update map var pager = new sv_Pager({ totalRows : flow.data.data.count, perPage : flow.data.state.limit, startIndex : flow.data.state.skip }); // perform any alterations needed to data before render flow.data.data.data.forEach(function(val, i) { val.globalRow = flow.data.state.skip + i + 1; // skip + current index + 1 because it's 1-based, like row if (val.primary_image_url !== undefined) { // if the primary image is a logo, replace it with the listing placeholder if (val.media !== undefined && val.media.length) { val.useslogo = findLogo(val.primary_image_url,val.media); if (val.useslogo) { val.primary_image_url = site.siteConfig.custom.listingPlaceholderUrl; } } val.primary_image = { resource : sv_cloudinaryLib.default.createResource({ imageUrl : val.primary_image_url }) }; } if (flow.data.state.sort === "distance" && val.loc !== undefined) { val.distance = new geodist({ start : { lat : val.latitude, lon : val.longitude }, end : { lat : geoResult.latitude, lon : geoResult.longitude } }); } // validate social links if (val.social !== undefined && val.social !== null) { $.each( val.social, function( key, social ) { if (social.smserviceid == 4) { social.value = lib.getValidSocialUrl({ url : social.value , urlType : "facebook" }); social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_facebook_click, social.value); } else if (social.smserviceid == 1) { social.value = lib.getValidSocialUrl({ url : social.value , urlType : "twitter" }); social.value = sv_crmLib.getTrackUrl(val.crmtracking.core_twitter_click, social.value); } }); } }); var filterCount = flow.data.filterCount; var filterSortCount = function(parent, args) { // parent [DOM Element] // args.countObj [Object] // args.count [bool] // args.sort [bool] var items = parent.find("li"); var hasCount = 0; if (args.count === true) { items.each(function(i, val) { var input = $(val).find("input"); var countIndex = args.countObj[input.val()]; if (countIndex !== undefined) { input.removeClass("disabled"); input.data("count", countIndex.count); input.next("label").find(".filter-count").text("("+countIndex.count+")"); hasCount++; } else{ input.addClass("disabled"); input.data("count", 0); input.next("label").find(".filter-count").text("("+0+")"); } }) } if (args.sort === true) { items.sort(function(a, b) { if ($(b).hasClass("showmore") || $(b).hasClass("nofilters")) { // ensures showmore and nofilters at end return -1; } var count_a = $(a).find("input").data("count"); var count_b = $(b).find("input").data("count"); if (count_a === count_b) { var alpha_a = $(a).find("label").text().toLowerCase(); var alpha_b = $(b).find("label").text().toLowerCase(); return alpha_a === alpha_b ? 0 : alpha_a < alpha_b ? -1 : 1; } else { return count_a > count_b ? -1 : 1 } }); } parent.html(items); if (hasCount > 5) { parent.find(".showmore").show(); parent.find(".nofilters").hide(); } else if (hasCount === 0) { parent.find(".showmore").hide(); parent.find(".nofilters").show(); } else { parent.find(".showmore").hide(); parent.find(".nofilters").hide(); } } // There are 2 filterContainers (1 for desktop + 1 for mobile) - loop over both and apply sort/count filterContainer.each(function(i, val) { // Meal filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=mealtype]").parent().parent(), { countObj : filterCount.mealCount, count : true, sort : true }); // Regions filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=regionids]").parent().parent(), { countObj : filterCount.regionCount, count : true, sort : false }); // Subcats filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=subcatids]").parent().parent(), { countObj : filterCount.subcatsCount, count : true, sort : false }); // Amenities filterSortCount($(filterContainer[i]).find("input[type=checkbox][name=amenities]").parent().parent(), { countObj : filterCount.amenCount, count : true, sort : true }); }); var html = goatee.fill(mainTemplate, { data : flow.data.data.data, pager : pager }, { listingListItem : listingListItem, custom_li_items : liItemsTemplate }); var mapListHTML = goatee.fill(mapMainTemplate, { data : flow.data.data.data }, { listMapItem : listMapItem, custom_li_items : liItemsTemplate }); var pagerHtml = goatee.fill(pagerTemplate, {pager : pager }); var pageMapHTML = goatee.fill(pagerMapTemplate, { pager : pager }); var pageMapCounterHtml = goatee.fill(pagerMapCounterTemplate, { pager : pager }); root.find("[data-sv-items]").html(html); root.find("[data-sv-pager]").html(pagerHtml); root.find("[data-sv-map-items]").html(mapListHTML); root.find("[data-sv-map-pager]").html(pageMapHTML); root.find("[data-sv-map-items-counter]").html(pageMapCounterHtml); rates.populateSummary({ node: root, cleanup: true }); // update form inputs for multi-select and select ["regionids", "subcatids", "mealtype"].forEach(function(val, i) { root.find("[name='" + val + "']").prop("checked", function() { return flow.data.state[val + "_array"].indexOf(parseInt($(this).attr("value"))) > -1; }); }); // update text inputs ["sort", "alphastart", "alphaend", "keyword"].forEach(function(val, i) { filterContainer.find("[name=" + val + "]").val(flow.data.state[val]); }); // update checkbox inputs ["amenities"].forEach(function(val, i) { root.find("[name='" + val + "']").prop("checked", function() { return flow.data.state[val + "_array"].indexOf($(this).attr("value")) > -1; }); }); // update the query-links with new hrefs and selected class root.find("[data-query-link]").each(function(i, val) { var settingString = $(this).attr("data-query-link"); try { // JSON.parse() can fail due to "" or other syntax lets catch that error to simplify development in the case of typos var args = JSON.parse(settingString); } catch (e) { console.log("Unable to parse", settingString); return; } args.delta = args.delta || {}; args.selectedIgnore = args.selectedIgnore || []; var deltaUrl = buildUrl(flow.data.state, args.delta); var skipUrl = urlLib.blacklistQuery(deltaUrl, args.selectedIgnore); var currentUrl = urlLib.blacklistQuery(buildUrl(flow.data.state, {}), args.selectedIgnore); $(this).attr("href", deltaUrl); $(this).toggleClass("selected", skipUrl === currentUrl); }); // begin: Google Maps logic var placemarks = []; $.each(flow.data.data.data, function(i,v) { if (v.latitude && v.longitude) { placemarks.push({ id : "listing_"+v.recid, recid : v.recid, type : 'listing', marker : { position : [v.latitude, v.longitude] }, infoWindow : { content : goatee.fill(infoWindowTmpl, { title : v.title, address1 : v.address1, url : v.url, nearbyRecid : v.recid, ga4_cats : v.primary_category.catname + " | " + v.primary_category.subcatname, crmCat : v.primary_category.catname, crmSubcat: v.primary_category.subcatname, itemType: "listings", listing: true }), maxWidth : 300 } }); } }); mapObj.setPlacemarks(placemarks); // end: Google Maps logic // tripbuilder if (tripbuilder !== undefined) { tripbuilder.updateButtons(root); } if (hasDtn) { gamClient.renderAds(); } // process gtmLib tagged items that may have been added to the DOM gtm.update(); cb(null); }, renderfilterHeight : function(cb) { filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); cb(null); } }, function(err) { if (err) { throw err; } }); } filterContainer.find("form").submit(function(e) { e.preventDefault(); var query = clientLib.formToObject($(this)); // certain form inputs like select and multi-select and checkbox pass as an array // so we want to convert those to comma separated lists for shorter query strings and easy of use downstream Object.keys(query).forEach(function(val, i) { if (query[val] instanceof Array) { query[val] = query[val].join(",") } }); runSearchQuery({ query : query }); $('html, body').animate({ scrollTop: $(root).offset().top }, 300); $('body').trigger('resetMap'); }); root.on("click", "[data-query-link]", function(e) { e.preventDefault(); if ($(this).hasClass("disabled")) { return; } var query = urlLib.parse($(this).attr("href")).get; runSearchQuery({ query : query }); }); root.find('a[data-sv-viewby]').click(function(e) { e.preventDefault(); var viewby = $(this).attr('data-sv-viewby'); var layout = $('[data-sv-layout]'); $('a[data-sv-viewby].active').removeClass('active'); $('a[data-sv-viewby="' + viewby + '"]').toggleClass('active'); layout.removeClass('layout-grid') .removeClass('layout-list') .removeClass('layout-map'); layout.addClass('layout-' + viewby); // specific display settings for list view if (viewby === "list") { root.find('[data-sv-items-wrapper]').removeClass('hide'); root.find('[data-sv-pager]').removeClass('hide'); root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); } // specific display settings for grid view if (viewby === "grid") { root.find('[data-sv-items-wrapper]').removeClass('hide'); root.find('[data-sv-pager]').removeClass('hide'); root.find('[data-sv-desktop-pager]').css({'width' : 'auto' }); filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); } // specific display settings for map view if (viewby === "map") { mapObj.setState({ open : true }); root.find('[data-sv-desktop-pager]').css({'width' : 280 + 'px' }); root.find('[data-sv-items-wrapper]').addClass('hide'); root.find('[data-sv-pager]').addClass('hide'); } filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); }); root.on('click', '[data-sv-open-map]', function(e) { e.preventDefault(); var layout = $('[data-sv-layout]'); $('a[data-sv-viewby].active').removeClass('active'); $('a[data-sv-viewby="map"]').toggleClass('active'); layout.removeClass('layout-grid') .removeClass('layout-list') .removeClass('layout-map'); layout.addClass('layout-map'); root.find('[data-sv-items-wrapper]').addClass('hide'); root.find('[data-sv-pager]').addClass('hide'); }); var setFilterHeight = function(filterHeight){ if(filterHeight < 980 && $(window).width() > 768){ filterContainer.css({"height" : 980 + 'px'}); } else { filterContainer.css({"height" : filterHeight}); } } var toggleOverlay = function() { var overylay = $('[data-sv-listings-overlay]'); if (overylay.hasClass('active')) { overylay.removeClass('active'); $('[data-sv-mobile-options]').find('li.active').removeClass('active'); } else { overylay.addClass('active'); } }; var closeMobileMenus = function() { var w_width = $(window).width(); $('[data-sv-mobile-options]').find('li.active').siblings().removeClass('active'); if (w_width < 1025){ toggleOverlay(); } }; ["subcatids", "regionids", "amenities", "mealtype"].forEach(function(filter, i) { filterContainer.on("change", "input[name=" + filter + "]", function() { $(this).closest('form').submit(); }); }); root.find('[data-sv-mobile-options] [data-sv-viewby]').click(function(e) { closeMobileMenus(); }); root.on("click", "[data-query-link]", function(e) { e.preventDefault(); if ($(this).hasClass("disabled") || $(this).hasClass('map-pager-button')) { return; } closeMobileMenus(); var query = urlLib.parse($(this).attr("href")).get; runSearchQuery({ query : query }); }); root.on("click", ".pagination [data-query-link]", function() { // enable scroll to top for the bottom pager only $("html, body").animate({ scrollTop: root.offset().top }, scrollSpeed); }); root.find('[data-sv-mobile-options-display]').click(function(e) { e.preventDefault(); $(this).parent().toggleClass('active'); closeMobileMenus(); }); root.find('[data-sv-listings-overlay]').click(function(e) { e.preventDefault(); closeMobileMenus(); }); root.find('[data-sv-close-filters]').click(function(e) { e.preventDefault(); closeMobileMenus(); }); root.find('[data-sv-clear-filters]').click(function(e) { e.preventDefault(); $(this).closest('form')[0].reset(); closeMobileMenus(); runSearchQuery({ query : {} }); var href = window.location.href.replace(window.location.search, ''); history.pushState(null, "", href); }); filterContainer.on("click", 'li[data-sv-filter-showmore]', function(e) { e.preventDefault(); var parent = $(this).closest('ul.filter-items'); if (parent.hasClass('showmore')) { parent.removeClass('showmore'); $(this).html("Show More <i class='fa fa-caret-down'></i>"); } else { parent.addClass('showmore'); $(this).html("Show Less <i class='fa fa-caret-up'></i>"); } }); root.on('click', '.nav-gear', function() { root.find('[data-sv-map-container]').toggleClass('dockit'); }); $(window).on('resize', lodash.debounce(setFilterHeight, 200)); $(window).on('load', function() { filterHeight = root.find('[data-sv-content-height]').innerHeight(); setFilterHeight(filterHeight); }); $(root).find('[data-sv-back-up]').on('click', function(e) { // enable scroll to top for the bottom $('html, body').animate({ scrollTop: $(root).offset().top }, 300); }); init(); }); </script></div> </div> </div><div data-civid="5ada2d324e2d0a5ed3192a87" class="contentRender contentRender_23 contentRender_type_panel contentRender_name_plugins_common_one_col" data-sv-time="0" data-sv-index="23" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> <div class="panel_custom_one_col controlled-width"> <div class="row"> <div class="columns"> <div data-civid="5ada4ba80138e27c1da8a668" class="contentRender contentRender_24 contentRender_type_panel contentRender_name_plugins_common_50_50" data-sv-time="0" data-sv-index="24" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="panel-two-col-even"> <div class="row"> <div class="columns large-6"> <div data-civid="5ada4ba80138e27c1da8a66a" class="contentRender contentRender_25 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox_subtitle" data-sv-time="23" data-sv-index="25" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div data-guid="c7298ca4-6c66-436c-b933-06ea3c98758b" class="imagebox-subtitle-holder"> <script type="text/template" data-slide-template> {{#items}} <section class="imagebox-fancy"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span class="imgcont"> <img src="{{asset.resource.getThumbnailUrl({ width : 636, height : 846, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> </span> {{:link}}</a>{{/}} <dl class="textcont"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <dt>{{title}}</dt> <dd>{{subtitle}}</dd> {{:link}}</a>{{/}} </dl> {{:link}} <a href="{{link.url}}" target="{{link.target}}" class="btn btn-2"> <div class="btn-text"> {{*templateData.more_caption}} <i class="fa fa-angle-double-right" aria-hidden="true"></i> </div> </a> {{/}} </section> {{/}} </script> </div> <script> require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { var root = $("[data-guid=c7298ca4-6c66-436c-b933-06ea3c98758b]"); var flow = new asyncLib.Flow(); 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":"c7298ca4-6c66-436c-b933-06ea3c98758b","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":"a588756a-ea52-4fbd-8cf2-18b01355fd77","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","updated":"2018-04-20T20:21:50.483Z","saved":false,"created":"2018-04-20T20:21:50.483Z","deleted":false,"id":"5ada4ba80138e27c1da8a66a","version_id_string":"5ada4ba80138e27c1da8a66b"},"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":"2018-04-20T20:21:50.485Z","id":"5ada4ba80138e27c1da8a66b","instance_id_string":"5ada4ba80138e27c1da8a66a"},"onTrunk":true,"civid":"5ada4ba80138e27c1da8a66a"},"name":"plugins_collections_type_custom_imagebox_subtitle"}}; var slideTemplate = root.find("[data-slide-template]").html(); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/21812823374"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); root.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> <div class="columns large-6"> <div data-civid="5ada4ba80138e27c1da8a66c" class="contentRender contentRender_26 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_imagebox" data-sv-time="24" data-sv-index="26" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'> <div data-guid="60fdebb2-56ab-45e6-bc3e-7c949950264d" class="imagebox-holder"> <script type="text/template" data-slide-template> {{~setVar('largeImage', data.templateData.tall_image)}} {{#items}} <section class="imagebox"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <span class="imgcont"> {{:~var.largeImage}} <img src="{{asset.resource.getThumbnailUrl({ width : 594, height : 791, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> {{?}} <img src="{{asset.resource.getThumbnailUrl({ width : 666, height : 498, crop : 'fill', sv : { gravity : 'focalPoint' } })}}"> {{/}} </span> {{:link}}</a>{{/}} <div class="fw-gradient ol-gray-gradient"></div> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <dl class="textcont"> <dt> {{title}} </dt> <dd> {{plainDescription(100)}} </dd> {{:link}} <span class="more-link">{{*templateData.more_caption}}</a> {{/}} <div class="bg-tiles"></div> </dl> {{:link}}</a>{{/}} </section> {{/}} </script> </div> <script> require(["jquery", "plugins_common_custom_collection_helper", "sv_asyncLib", "sv_load!plugins_dtn", "sv_goatee!plugins=cloudinary"], function($, collectionHelper, asyncLib, plugins_dtn, goatee) { var root = $("[data-guid=60fdebb2-56ab-45e6-bc3e-7c949950264d]"); var flow = new asyncLib.Flow(); var data = {"template":"custom_imagebox","source":"custom","templateData":{"tall_image":"true","more_caption":"Read More","adunits":["/21812118460/21812952115/21812944915"]},"modelName":"plugins_collections_type_custom_slides","typeName":"custom_slides","items":[],"guid":"60fdebb2-56ab-45e6-bc3e-7c949950264d","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":"ecf55994-788d-4ec9-a1e8-fdca6a3ad54a","data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"Read More","templateData_adunits":["/21812118460/21812952115/21812944915"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"Read More","data_adunits":["/21812118460/21812952115/21812944915"]},"civ":{"instance":{"type":"widget","name":"plugins_collections_type_custom_imagebox","site_name":"primary","updated":"2018-04-20T20:21:50.483Z","saved":false,"created":"2018-04-20T20:21:50.483Z","deleted":false,"id":"5ada4ba80138e27c1da8a66c","version_id_string":"5ada4ba80138e27c1da8a66d"},"version":{"data":{"template":"custom_imagebox","feedData_json":"{}","templateData_tall_image":"true","templateData_more_caption":"Read More","templateData_adunits":["/21812118460/21812952115/21812944915"],"source":"custom","items_json":"[]","data_tall_image":"true","data_more_caption":"Read More","data_adunits":["/21812118460/21812952115/21812944915"]},"created":"2018-04-20T20:21:50.485Z","id":"5ada4ba80138e27c1da8a66d","instance_id_string":"5ada4ba80138e27c1da8a66c"},"onTrunk":true,"civid":"5ada4ba80138e27c1da8a66c"},"name":"plugins_collections_type_custom_imagebox"}}; var slideTemplate = root.find("[data-slide-template]").html(); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/21812944915"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); root.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> </div> </div></div><div data-civid="5ada4ba80138e27c1da8a66e" class="contentRender contentRender_27 contentRender_type_widget contentRender_name_plugins_collections_type_custom_slides contentRender_name_plugins_collections_template_custom_features" data-sv-time="36" data-sv-index="27" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'> <section class="spotlight interior" data-guid="52ac1c40-bdd0-4c31-9228-c97fc5919d00"> <script type="text/template" data-slide-template> <dl class="bg-shatter"> <dt class="mixed"> <span class="first-text">Rochester</span> <span class="second-text">FEATURES</span> </dt> {{#items}} <dd class="columns{{:description}} has-desc{{/}}"> {{:link}}<a href="{{link.url}}" target="{{link.target}}">{{/}} <div class="title">{{title}}</div> <div class="description"> {{plainDescription(50)}} </div> {{:link}}</a>{{/}} </dd> {{/items}} </dl> </script> <div data-slide-replace class="row collapse"></div> </section> <script> 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) { var root = $("[data-guid=52ac1c40-bdd0-4c31-9228-c97fc5919d00]"); var flow = new asyncLib.Flow(); 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":"52ac1c40-bdd0-4c31-9228-c97fc5919d00","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":27,"guid":"ae40bd38-b3da-46a0-b115-f4ba43d531ea","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","updated":"2018-04-20T20:21:50.483Z","saved":false,"created":"2018-04-20T20:21:50.483Z","deleted":false,"id":"5ada4ba80138e27c1da8a66e","version_id_string":"5ada4ba80138e27c1da8a66f"},"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":"2018-04-20T20:21:50.485Z","id":"5ada4ba80138e27c1da8a66f","instance_id_string":"5ada4ba80138e27c1da8a66e"},"onTrunk":true,"civid":"5ada4ba80138e27c1da8a66e"},"name":"plugins_collections_type_custom_features"}}; var slideTemplate = root.find("[data-slide-template]").html(); var slideReplace = root.find("[data-slide-replace]"); flow.series({ dtn : function(cb) { if (plugins_dtn === undefined) { return cb(null, []); } var ids = ["/21812118460/21812952115/21812744532","/21812118460/21812952115/21812744535","/21812118460/21812952115/21812823638","/21812118460/21812952115/21812823644"]; plugins_dtn.getAdUnitsGam({ ids : ids, modelName : "plugins_collections_type_custom_slides", trackUrlFields : ["link.url"], mockFilter : { isdtn : true } }, function(err, temp) { if (err) { return cb(err); } // push dtn items to the front of the array data.items.unshift.apply(data.items, temp); cb(null); }); }, slides : function(cb) { data = collectionHelper.init(data); var slides = goatee.fill(slideTemplate, data); slideReplace.html(slides); cb(null); } }, function(err) { if (err) { throw err; } }); }); </script></div> </div> </div> </div> </div> </div> <div class="footer_container"> <div data-civid="5a9d89b7c9764a0e840beae1" class="contentRender contentRender_28 contentRender_type_panel contentRender_name_plugins_common_footer" data-sv-time="1" data-sv-index="28" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <footer class="panel_custom_footer"> <section class="social"> <div data-civid="6421dda0ccc386387b0b3c81" class="contentRender contentRender_29 contentRender_type_widget contentRender_name_plugins_collections_type_custom_social_slides contentRender_name_plugins_collections_template_custom_social_links" data-sv-time="36" data-sv-index="29" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="bg-gradient"> <li class="title"> <span>Let's</span><span>Connect</span><i class="fa fa-angle-double-right" aria-hidden="true"></i> </li> <li> <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> </li> <li> <a href="https://twitter.com/ExperienceRoch" target="_blank"><i class="fab fa-twitter" aria-hidden="true" data-gtm-click data-gtm-vars='{"tClient_ga4" : {"eventName" : "navigation_click", "navType" : "Footer", "linkObject" : "Twitter | Social"}}'></i></a> </li> <li> <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> </li> <li> <a href="https://www.linkedin.com/company/rochester-mn-convention-&-visitors-bureau/" 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> </li> <li> <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> </li> </ul></div> </section> <section class="main-footer row"> <div class="columns medium-6 large-4"> <div class="flex-control"> <picture class="imgcont footer-logo"> <div data-civid="6421dda0ccc386387b0b3c83" class="contentRender contentRender_30 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="36" data-sv-index="30" data-gtm-vars='{ "tCore" : { "contentNum" : "3" } }'><section data-sv-core-textbox data-guid="89570ff4-759d-44bb-a094-a91ffdf9e0ec"> <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> </section></div> </picture> <div data-civid="6421dda0ccc386387b0b3c85" class="contentRender contentRender_31 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="16" data-sv-index="31" data-gtm-vars='{ "tCore" : { "contentNum" : "4" } }'><section data-sv-core-textbox data-guid="ff2afead-4bc6-49f1-a6a8-aeaf19744ed0"> <ul class="address-container"> <li>30 CIVIC CENTER DRIVE SE</li> <li>ROCHESTER&#xA0;MN 55904</li> <li>PHONE&#xA0;<a href="tel:+15072884331">507 288 4331</a></li> </ul> </section></div> </div> <div class="hide-for-large-up" > <div data-civid="6421dda0ccc386387b0b3c87" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_googletranslate_googletranslate" data-sv-time="10" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><!-- widget removed --> </div> </div> </div> <div class="columns show-for-large-up large-4"> <div data-civid="6421dda0ccc386387b0b3c87" class="contentRender contentRender_32 contentRender_type_widget contentRender_name_plugins_googletranslate_googletranslate" data-sv-time="10" data-sv-index="32" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><!-- widget removed --> </div> <nav class="footer-nav"> <div data-civid="6421dda0ccc386387b0b3c89" class="contentRender contentRender_33 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="36" data-sv-index="33" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="navFooter"> <li class="item item-parent row-1 has-submenu"> <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> </li> <li class="item item-parent row-2"> <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> </li> <li class="item item-parent row-3"> <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> </li> <li class="item item-parent row-4 last"> <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> </li> </ul> </div> </nav> </div> <div class="columns medium-6 large-4"> <nav class="footer-nav hide-for-large-up"> <div data-civid="6421dda0ccc386387b0b3c89" class="contentRender contentRender_33 contentRender_type_widget contentRender_name_plugins_nav_footer" data-sv-time="36" data-sv-index="33" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <ul class="navFooter"> <li class="item item-parent row-1 has-submenu"> <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> </li> <li class="item item-parent row-2"> <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> </li> <li class="item item-parent row-3"> <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> </li> <li class="item item-parent row-4 last"> <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> </li> </ul> </div> </nav> <div class="partners"> <div class="textbox"> <div data-civid="6421dda0ccc386387b0b3c8b" class="contentRender contentRender_34 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="36" data-sv-index="34" data-gtm-vars='{ "tCore" : { "contentNum" : "5" } }'><section data-sv-core-textbox data-guid="c7b3df4b-0baf-40ff-be3c-3cd9e3ffda6f"> <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>&#xA0;&#xA0;<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> <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> </section></div> </div> </div> <div class="copyright"> &#169; 2024 All rights reserved. </div> <picture class="imgcont sv-logo"> <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> </picture> </div> </section> <div class="mobile-fixed"> <div class="mobileAd" data-sv-mobiledtn-mobilead> <div class="banner-close" data-sv-mobiledtn-close><span>close</span> <i class="fa fa-times-circle"></i></div> <div class="content"></div> <script data-sv-mobiledtn-adcode type="text/template"><div data-civid="6421dda0ccc386387b0b3c8d" class="contentRender contentRender_35 contentRender_type_widget contentRender_name_plugins_dtn_gam_ad" data-sv-time="9" data-sv-index="35" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <div class="dtnContainer"> <div class="dtnad" data-sv-adunit="/21812118460/21812952115/21812823359" data-sv-adsize="320x50"></div> <div class="clear"></div> </div> <sv_script> require(["site_gamClient", "domReady!"], function(gamClient) { gamClient.renderAds(); }); </sv_script></div></script> </div> <div data-civid="6421dda0ccc386387b0b3c8f" class="contentRender contentRender_36 contentRender_type_widget contentRender_name_plugins_common_cookie_banner" data-sv-time="9" data-sv-index="36" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> <dialog class="cookie-banner dismissed hide" data-guid="51cecb22-d36b-4f9f-9001-f06dbb9c0cba"> <div class="banner-inner"> <div class="banner-message"> <p>Cookies are used for measurement, ads and optimization. By continuing to use our site you agree to our&#xA0;<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> </div> <div class="banner-close"> <button class="button site-style" aria-label="Close cookie banner" data-sv-close-banner> Accept </button> </div> </div> </dialog> <script> require([ 'jquery', 'sv_clientLib' ], function ($, clientLib) { var root = $('[data-guid="51cecb22-d36b-4f9f-9001-f06dbb9c0cba"]'); var bannerSeen = clientLib.getCookie('cookie-banner-seen'); if (bannerSeen !== "true") { root.removeClass('hide'); root.attr('open', true); setTimeout(function() { root.removeClass('dismissed'); }, 500); } root.find('[data-sv-close-banner]').on('click', function() { root.addClass('dismissed'); root.removeAttr('open') setTimeout(function() { root.addClass('hide'); }, 500); clientLib.setCookie({ name : 'cookie-banner-seen', value : 'true', path : '/', 'max-age' : 1438560*60 // 999 days }); }); }); </script></div> </div> </footer> <script> require(["jquery", "sv_stringLib", "sv_clientLib", "lodash"], function($, stringLib, clientLib, lodash) { var root = $(".panel_custom_footer"); var mobileAd = root.find("[data-sv-mobiledtn-mobilead]"); var content = mobileAd.find(".content"); var closeButton = mobileAd.find("[data-sv-mobiledtn-close]"); var storageKey = "mobile_dtn_ad_hide"; var sessionAvailable = clientLib.sessionStorageAvailable(); // show ad if session not available or if it doesn't contain our hide session var var showAd = sessionAvailable === false || window.sessionStorage.getItem(storageKey) !== "true"; closeButton.on("click", function(e) { e.preventDefault(); // if we have session storage, prevent it from appearing on future page views this session if (sessionAvailable) { window.sessionStorage.setItem(storageKey, "true"); } showAd = false; mobileAd.remove(); render(); }); var render = function() { // 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) var isMobile = window.innerWidth < 1024; var displayAd = isMobile === true && showAd === true; root.toggleClass("hasMobileAd", displayAd); if (displayAd && content.children().length === 0) { // executes the dtn code if the ad should be displayed and the ad wasn't already rendered var html = stringLib.decodeScriptTags(root.find("[data-sv-mobiledtn-adcode]").html()); content.html(html); root.find(".dtnContainer").append(closeButton); } }; render(); // allows cms preview device switcher to work, without having to hit preview refresh button $(window).on("resize", lodash.debounce(render, 300)); }); </script> </div> </div> </div></div> <!-- footer css bundles --> <!-- footer js bundles --> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/core/public/js/loginCheck.js"></script> <script src="/includes/public/managed/v_bc66977c_63692723/core/plugins/common/virtuals/js/shared_footer.js"></script> <!-- bottomBody --> <script data-id="site_global_footer"> require(["sv_clientLib", "sv_load!plugins_dynamic_content"], function(clientLib) { clientLib._initLazy(); }); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10