{"id":4384,"date":"2017-12-13T11:21:56","date_gmt":"2017-12-13T11:21:56","guid":{"rendered":"https:\/\/blog.headout.com\/?p=4384"},"modified":"2022-12-13T14:49:59","modified_gmt":"2022-12-13T10:49:59","slug":"upcoming-broadway-shows","status":"publish","type":"post","link":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/","title":{"rendered":"Cult classics to Disney favorites | Catch these upcoming Broadway shows!"},"content":{"rendered":"<p>Broadway is the gift that keeps on giving. With each season comes a new lineup of shows, ready to take the stage. Theatre enthusiasts eagerly anticipate their arrival and critics get ready to pen opinions that will make or break a production\u2019s life-line. There\u2019s certainly no dearth of talent and creativity in the New York City theater circuit, with stellar standout productions taking the spotlight each and every year. Before you take a look at the upcoming broadway shows, here&#8217;s a quick recap of the last few years on Broadway.<\/p>\n<p> In 2016, <a href=\"https:\/\/www.headout.com\/broadway-tickets\/hamilton-e-1293\/\" target=\"_blank\" rel=\"noopener\">Hamilton<\/a> stunned the nation, grossing over $100 million in its first year alone, making writer-actor Lin Manuel Miranda a household name. In 2017, Dear Evan Hansen raked in over $77 million in ticket sales as of December 31, a number that has crossed $100 million as of today. In 2018, <a href=\"https:\/\/www.headout.com\/broadway-tickets\/the-lion-king-e-507\/\" target=\"_blank\" rel=\"noopener\">The Lion King<\/a>, <a href=\"https:\/\/www.headout.com\/broadway-tickets\/wicked-e-512\/\" target=\"_blank\" rel=\"noopener\">Wicked<\/a>, <a href=\"https:\/\/www.headout.com\/broadway-tickets\/phantom-of-the-opera-tickets-e-517\/\" target=\"_blank\" rel=\"noopener\">Phantom of the Opera<\/a>, and <a href=\"https:\/\/www.headout.com\/broadway-tickets\/chicago-e-519\/\" target=\"_blank\" rel=\"noopener\">Chicago<\/a> continued to perform exceptionally well. With a never ending lineup of exciting upcoming broadway shows, there\u2019s always something enticing behind the curtain.<\/p>\n<p>Here\u2019s a look at some of the <b>most promising upcoming Broadway shows in 2020<\/b>.<\/p>\n<h2>Upcoming Broadway Shows<\/h2>\n<p>[tcb-script src=&#8221;https:\/\/cdn.jsdelivr.net\/npm\/dayjs@1.10.7\/dayjs.min.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrAfter.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/unpkg.com\/dayjs@1.8.21\/plugin\/isSameOrBefore.js&#8221;][\/tcb-script]            [tcb-script]      dayjs.extend(window.dayjs_plugin_isSameOrAfter);      dayjs.extend(window.dayjs_plugin_isSameOrBefore);      const compareDates = (        startMonthDate,        endMonthDate,        startTourDate,        endTourDate      ) =&gt; {        return (          startTourDate.isSameOrBefore(startMonthDate, &#8220;month&#8221;) &amp;&amp;          endTourDate.isSameOrAfter(endMonthDate, &#8220;month&#8221;)        );      };      const getTGIDListForMonth = (allTours, displayMonth) =&gt; {        const allToursArray = Object.values(allTours);        const startMonthDate = dayjs(          `${displayMonth}\/01\/${dayjs().year()}`,          &#8220;MMMM\/DD\/YYYY&#8221;        );        const endMonthDate = startMonthDate.add(          startMonthDate.daysInMonth() &#8211; 1,          &#8220;days&#8221;        );        const startMonthNextYearDate = startMonthDate.add(1, &#8220;years&#8221;);        const endMonthNextYearDate = endMonthDate.add(1, &#8220;years&#8221;);        return allToursArray.reduce((accumulator, element) =&gt; {          const endTourDate = dayjs(element[&#8220;Closing Date&#8221;], &#8220;YYYY-MM-DD&#8221;);          const startTourDate = dayjs(element[&#8220;Opening Date&#8221;], &#8220;YYYY-MM-DD&#8221;);          if (            compareDates(              startMonthDate,              endMonthDate,              startTourDate,              endTourDate            ) ||            compareDates(              startMonthNextYearDate,              endMonthNextYearDate,              startTourDate,              endTourDate            )          ) {            return [&#8230;accumulator, element[&#8220;id&#8221;]];          }          return accumulator;        }, []);      };    [\/tcb-script]    [tcb-script]      document.addEventListener(&#8220;DOMContentLoaded&#8221;, function (event) {        \/\/ Listicle Entry Animation        let slideInShows = function (animEleClass, animationClass) {          jQuery(&#8220;.show-wrapper .accBody:visible&#8221;).slideToggle(&#8220;slow&#8221;);          jQuery(&#8220;.show-wrapper .invert&#8221;).removeClass(&#8220;invert&#8221;);          jQuery(&#8220;.show-wrapper&#8221;)            .removeClass(animationClass)            .fadeOut()            .finish()            .promise()            .done(function () {              jQuery(&#8220;.&#8221; + animEleClass).each(function (i) {                jQuery(this)                  .addClass(animationClass)                  .removeClass(animEleClass)                  .delay((i + 1) * 100)                  .fadeIn();              });            });        };        \/\/ Loads All Listed Products as in Months Tab        let showTab = function (tabId) {          showTgids = [];          jQuery(&#8220;.show-wrapper&#8221;).removeClass(&#8220;tabbed&#8221;);          jQuery(&#8220;[data-infotab]&#8221;).removeClass(&#8220;active&#8221;);          jQuery(&#8216;[data-infotab=&#8221;broadway musicals&#8221;]&#8217;).addClass(&#8220;active&#8221;);          if (tabId == 0) {            jQuery(&#8220;.show-wrapper&#8221;).addClass(&#8220;prepare tabbed&#8221;);          } else if (typeof tabId === &#8220;string&#8221;) showTgids = tabId.split(&#8220;,&#8221;);          else showTgids.push(tabId);          for (let i = 0; i &lt; showTgids.length; i++)            jQuery(              &#8220;.show-wrapper[data-tgid=&#8221; + parseInt(showTgids[i]) + &#8220;]&#8221;            ).addClass(&#8220;tabbed prepare&#8221;);          slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);        };        const msToTime  = (duration) =&gt; {          let milliseconds = parseInt((duration % 1000) \/ 100),            seconds = Math.floor((duration \/ 1000) % 60),            minutes = Math.floor((duration \/ (1000 * 60)) % 60),            hours = Math.floor((duration \/ (1000 * 60 * 60)) % 24);          return hours + &#8221; hrs &#8221; + minutes + &#8221; mins&#8221;;        }        \/\/ HTML Stars Generation        let getStars = function (rating) {          rating = rating &lt; 0 ? 0 : rating;          if (rating &lt; 0.25) return;          let round = Math.floor(rating);          let full = rating &gt; round + 0.5 ? true : false;          let half = rating &gt; round + 0.25 ? true : false;          let template = &#8220;&#8221;;          let i;          \/\/ Populate Complete Stars          for (i = 0; i &lt; round &amp;&amp; i &lt; 5; i++) {            template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;          }          \/\/ Add Partial Star (for floating ratings)          if (full &amp;&amp; i &lt; 5 &amp;&amp; ++i)            template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;          else if (half &amp;&amp; i &lt; 5 &amp;&amp; ++i)            template += &#8220;&lt;span class=&#8217;fas fa-star-half-alt&#8217;&gt;&lt;\/span&gt;&#8221;;          \/\/ Populate Remaining With Empty Stars          while (i++ &lt; 5) template += &#8220;&lt;span class=&#8217;far fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;          return template;        };        const getMicroBrandsHighlightsData = (microBrandsHighlight) =&gt; {          const result = { &#8220;Opening Date&#8221;: &#8220;&#8221;, &#8220;Closing Date&#8221;: &#8220;&#8221;, &#8220;Blog Summary&#8221;:&#8221;&#8221;, &#8220;Seating Plan&#8221;: null, &#8220;Read More&#8221;: &#8220;&#8221;, &#8220;Theatre Name&#8221;: null, &#8220;Getting There&#8221;: null};          let currentObject = &#8220;&#8221;;          microBrandsHighlight.forEach((element) =&gt; {            if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Opening Date&#8221;            ) {              currentObject = &#8220;Opening Date&#8221;;            } else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Closing Date&#8221;            ) {              currentObject = &#8220;Closing Date&#8221;;            }else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Blog Summary&#8221;            ) {              currentObject = &#8220;Blog Summary&#8221;;            }else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Blog Theatre Seating Plan&#8221;            ) {              currentObject = &#8220;Seating Plan&#8221;;            } else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Blog Show Page&#8221;            ) {              currentObject = &#8220;Read More&#8221;;            } else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Theatre Name&#8221;            ) {              currentObject = &#8220;Theatre Name&#8221;;            }else if (              element.type == &#8220;heading6&#8221; &amp;&amp;              element.content.text == &#8220;Google Map&#8221;            ) {              currentObject = &#8220;Getting There&#8221;;            } else {              if (currentObject == &#8220;Opening Date&#8221;) {                result[&#8220;Opening Date&#8221;] = element.content.text;              } else if (currentObject == &#8220;Closing Date&#8221;) {                result[&#8220;Closing Date&#8221;] = element.content.text;              }else if (currentObject == &#8220;Blog Summary&#8221;) {                result[&#8220;Blog Summary&#8221;] = element.content.text;              }else if (currentObject == &#8220;Seating Plan&#8221;) {                result[&#8220;Seating Plan&#8221;] = element.content.text;              }else if (currentObject == &#8220;Read More&#8221;) {                result[&#8220;Read More&#8221;] = element.content.spans?.[0]?.data.url;              }else if (currentObject == &#8220;Theatre Name&#8221;) {                result[&#8220;Theatre Name&#8221;] = element.content.text;              }else if (currentObject == &#8220;Getting There&#8221;) {                result[&#8220;Getting There&#8221;] = element.content.text;              }              currentObject = &#8220;&#8221;;            }          });          return result;        };        const monthSubCategoryFilter = jQuery(&#8220;.month-sub-category-filter&#8221;);        const filterEnabled = monthSubCategoryFilter.data(&#8220;filter-enabled&#8221;) == &#8220;1&#8221;;        const categoryNameMap = {}        const filterHeading = monthSubCategoryFilter?.[0].getAttribute(          &#8220;data-filter-heading&#8221;        );        const subCategoryIds = monthSubCategoryFilter?.[0]          ?.getAttribute(&#8220;data-sub-category-ids&#8221;)          ?.split(&#8220;,&#8221;);        const monthCSV = monthSubCategoryFilter?.[0]          ?.getAttribute(&#8220;data-months&#8221;)          ?.split(&#8220;,&#8221;);        const firstMonth = monthCSV?.[0];        let allTours = [];        const functionsAfterDataUpdate = () =&gt; {          allTours.forEach((tour, index) =&gt; {            const showBody = tour[&#8220;Blog Summary&#8221;] || tour.shortSummary;            const mainCard = `&lt;div                                  data-rating=&#8221;${tour.averageRating}&#8221;                                  data-tgid=&#8221;${tour.id}&#8221;&gt;                                  &lt;div data-id=&#8221;${index}&#8221;&gt;                                    &lt;div&gt;                                        &lt;div&gt;                                        &lt;div&gt;                                            &lt;img                                            data-cover-image=&#8221;&#8221;                                            src=&#8221;${tour.imageUrl}?auto=compress&amp;amp;fm=webp&amp;amp;w=1200&amp;amp;h=750&amp;amp;crop=faces&amp;amp;fit=min&#8221;                                            alt=&#8221;${tour.name}&#8221;                                            data-pagespeed-url-hash=&#8221;173998699&#8243;                                            onload=&#8221;pagespeed.CriticalImages.checkImageForCriticality(this);&#8221;                                            title=&#8221;${tour.name}&#8221;                                            \/&gt;                                            &lt;div&gt;${tour.name}&lt;\/div&gt;                                            &lt;div&gt;                                              ${                                                tour.tags.map((item) =&gt;                                                  `&lt;div                                                  data-cat=&#8221;${item}&#8221;                                              &gt;                                                  ${categoryNameMap[item]}                                              &lt;\/div&gt;                                                `).join(&#8221; &#8220;)                                              }                                            &lt;\/div&gt;                                            &lt;div data-show-ratings=&#8221;${tour.averageRating}&#8221;&gt;                                            &lt;\/div&gt;                                            &lt;div&gt;                                              ${showBody ? `&lt;span&gt;&lt;\/span&gt;` : &#8221;}                                            &lt;\/div&gt;                                            &lt;div&gt;                                            &lt;span&gt;                                                &lt;span&gt;from&lt;\/span&gt;                                                &lt;span&gt;\u00a3${tour.listingPrice.finalPrice}&lt;\/span&gt;                                            &lt;\/span&gt;                                            &lt;\/div&gt;                                            &lt;div&gt;&lt;\/div&gt;                                            &lt;div&gt;&lt;\/div&gt;                                        &lt;\/div&gt;                                        &lt;\/div&gt;                                    &lt;\/div&gt;                                  &lt;\/div&gt;`;            const htmlObject = `                                ${                                  showBody ? mainCard : `&lt;a href=&#8221;https:\/\/www.headout.com\/tour\/${tour.id}&#8221; target=&#8221;_blank&#8221; style=&#8221;text-decoration: none;&#8221;&gt;${mainCard}&lt;\/a&gt;`                                }                                  ${showBody ? `&lt;div                                    data-id=&#8221;${index}&#8221;                                    &gt;                                    &lt;div&gt;                                        &lt;div&gt;                                        &lt;div&gt;                                          &lt;div&gt;                                            ${tour.microBrandsDescriptor.split(&#8220;rn&#8221;).map((item)=&gt;{                                              item=item.trim();                                              return `&lt;div&gt;${item}&lt;\/div&gt;`;                                            }).join(&#8221; &#8220;)}                                          &lt;\/div&gt;                                            &lt;div&gt;                                            &lt;div&gt;&lt;span&gt;Duration:&lt;\/span&gt; ${msToTime(tour.maxDuration)}&lt;\/div&gt;                                            &lt;\/div&gt;                                        &lt;\/div&gt;                                        &lt;div&gt;                                            ${tour[&#8220;Blog Summary&#8221;] || tour.shortSummary}                                        &lt;\/div&gt;                                        &lt;div&gt;                                            &lt;div&gt;                                            &lt;div&gt;                                              ${                                                tour[&#8220;Seating Plan&#8221;] || tour[&#8220;Getting There&#8221;] ? `&lt;a                                                href=&#8221;${tour[&#8220;Seating Plan&#8221;] || tour[&#8220;Getting There&#8221;]}&#8221;                                                target=&#8221;_blank&#8221;                                                &gt;                                                &lt;div&gt;                                                    &lt;div&gt;                                                    &lt;i&gt;&lt;\/i&gt;                                                    &lt;span&gt;${tour[&#8220;Theatre Name&#8221;]}&lt;\/span&gt;                                                    &lt;span&gt;${tour[&#8220;Seating Plan&#8221;] ? &#8220;Seating Plan&#8221; : &#8220;Getting There&#8221;}&lt;\/span&gt;                                                    &lt;\/div&gt;                                                &lt;\/div&gt;                                                &lt;\/a&gt;` : &#8221;                                              }                                                &lt;a                                                href=&#8221;${tour[&#8220;Read More&#8221;] || `https:\/\/www.headout.com\/tour\/${tour.id}`}&#8221;                                                target=&#8221;_blank&#8221;                                                &gt;                                                &lt;div&gt;READ MORE&lt;\/div&gt;                                                &lt;\/a&gt;                                                &lt;a                                                href=&#8221;https:\/\/www.headout.com\/book\/${tour.id}\/seatmap-select\/&#8221;                                                target=&#8221;_blank&#8221;                                                &gt;                                                &lt;div&gt;BOOK NOW&lt;\/div&gt;                                                &lt;\/a&gt;                                            &lt;\/div&gt;                                            &lt;\/div&gt;                                        &lt;\/div&gt;                                        &lt;\/div&gt;                                    &lt;\/div&gt;                                    &lt;\/div&gt;` : &#8221;}                                  &lt;\/div&gt;`;                        jQuery(&#8220;.product-wrapper&#8221;).append(htmlObject);            jQuery(`.show-wrapper[data-tgid=${tour.id}]`).find(&#8220;[data-show-ratings]&#8221;).html(getStars(tour.averageRating));          });          jQuery(&#8220;.accCtrl&#8221;).on(&#8220;click&#8221;, function (e) {            selEle = jQuery(e.target).closest(&#8220;.show-wrapper&#8221;);            jQuery(selEle).find(&#8220;.listicle-item-arrow&#8221;).toggleClass(&#8220;invert&#8221;);            target = jQuery(selEle).find(&#8220;.accBody&#8221;);            jQuery(target).slideToggle(&#8220;slow&#8221;);          });          filterEnabled &amp;&amp; monthCSV.forEach((month, index) =&gt; {            const monthName = month.trim();            let htmlObject;            let ids = &#8220;0&#8221;;            if (monthName != &#8220;ALL SHOWS&#8221;) {              ids = getTGIDListForMonth(allTours, monthName).join();            }            if (index == 0) {              htmlObject = `&lt;div data-tab=&#8221;${                index + 1              }&#8221; data-ids=&#8221;${ids}&#8221; data-active=&#8221;1&#8243;&gt;${monthName}&lt;\/div&gt;`;            } else {              htmlObject = `&lt;div data-tab=&#8221;${                index + 1              }&#8221; data-ids=&#8221;${ids}&#8221; data-active=&#8221;0&#8243;&gt;${monthName}&lt;\/div&gt;`;            }            jQuery(&#8220;.shows-filters .tab-wrapper .mobi-text .mobi-wrap&#8221;).append(              htmlObject            );          });          \/\/ Page Init Products List Generation          showTab(            jQuery(&#8220;.tab-item[data-active=&#8217;1&#8242;]&#8221;).addClass(&#8220;active&#8221;).data(&#8220;ids&#8221;)          );          \/\/ Months Tab Change Handler          jQuery(&#8220;.tab-item&#8221;).click(function () {            jQuery(&#8220;.tab-item&#8221;).data(&#8220;active&#8221;, 0).removeClass(&#8220;active&#8221;);            jQuery(this).data(&#8220;active&#8221;, 1).addClass(&#8220;active&#8221;);            jQuery(this)              .closest(&#8220;.mobi-text&#8221;)              .find(&#8220;.text&#8221;)              .text(jQuery(this).text());            showTab(jQuery(this).data(&#8220;ids&#8221;));            jQuery(              jQuery(&#8220;input.filter-chckbox:checked&#8221;).prop(&#8220;checked&#8221;, false)            );            jQuery(&#8220;.cat-filter label:first-child&#8221;).delay(500).trigger(&#8220;click&#8221;);          });        \/\/ On Window Resize Hide Mobile Months Tab.        jQuery(window).resize(function (e) {          if (jQuery(window).width() &gt; 630)            jQuery(&#8220;.mobi-wrap&#8221;).attr(&#8220;style&#8221;, &#8220;&#8221;);        });        \/\/ Mobile Months Tabs Change Handler        jQuery(&#8220;.mobi-text&#8221;).click(function (e) {          if (            jQuery(&#8220;.mobi-wrap&#8221;).is(&#8220;:hidden&#8221;) ||            jQuery(this).hasClass(&#8220;active&#8221;)          )            jQuery(this)              .closest(&#8220;.mobi-text&#8221;)              .toggleClass(&#8220;active&#8221;)              .find(&#8220;.mobi-wrap&#8221;)              .slideToggle(&#8220;slow&#8221;);        });                \/\/ Category Change Handler        jQuery(&#8220;[data-filter-cat]&#8221;).change(function (e) {          jQuery(&#8220;[data-cat]&#8221;).removeClass(&#8220;mobi-active-filter&#8221;);          jQuery(&#8220;[data-infotab].active&#8221;).removeClass(&#8220;active&#8221;);          let catName = jQuery(this).data(&#8220;filter-cat&#8221;);          jQuery(`[data-infotab=&#8217;${catName.toLowerCase()}&#8217;]`).addClass(            &#8220;active&#8221;          );          jQuery(&#8220;[data-filter-cat]&#8221;).each(function (ele) {            if (jQuery(this).find(&#8220;input&#8221;).is(&#8220;:checked&#8221;)) {              cat = jQuery(this).data(&#8220;filter-cat&#8221;).toLowerCase();              jQuery(&#8220;.show-wrapper.tabbed&#8221;)                .has(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;prepare&#8221;)                .find(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;mobi-active-filter&#8221;);            }          });          slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);        });                \/\/ Page init default Category Handler &amp; Default Open Listicle        filterEnabled &amp;&amp; setTimeout(function () {          jQuery(&#8220;[data-filter-cat]&#8221;).each(function (ele) {            if (jQuery(this).find(&#8220;input&#8221;).is(&#8220;:checked&#8221;)) {              cat = jQuery(this).data(&#8220;filter-cat&#8221;).toLowerCase();              jQuery(&#8220;.show-wrapper.tabbed&#8221;)                .has(`[data-cat=&#8221;${cat}&#8221;]`)                .addClass(&#8220;prepare&#8221;);            }          });          slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);          jQuery(&#8220;.cat-filter label:first-child&#8221;).delay(500).trigger(&#8220;click&#8221;);          jQuery(&#8220;.show-wrapper:first-child .accCtrl&#8221;)            .eq(0)            .delay(1000)            .trigger(&#8220;click&#8221;);        }, 300);                \/\/ Lower Case All Data Attributes.        let lowerCaseAll = function (ele) {          jQuery(ele).each(function () {            var $this = jQuery(this),              data = $this.data();            for (var k in data)              $this.attr(&#8220;data-&#8221; + k, data[k].toLowerCase().trim());          });        };        lowerCaseAll(jQuery(&#8220;[data-filter-cat], [data-cat], [data-infotab]&#8221;));        if(!filterEnabled){          jQuery(&#8220;.show-wrapper&#8221;).each(function (i) {            jQuery(this)              .addClass(&#8220;active&#8221;).css(&#8220;display&#8221;, &#8220;block&#8221;);          });        }        };        filterEnabled &amp;&amp; monthSubCategoryFilter.append(`&lt;div&gt;          &lt;div&gt;            &lt;h3&gt;${filterHeading}&lt;\/h3&gt;            &lt;div&gt;             &lt;\/div&gt;          &lt;\/div&gt;        &lt;\/div&gt;`);        filterEnabled &amp;&amp; monthSubCategoryFilter.prepend(`&lt;div&gt;          &lt;div&gt;            &lt;div&gt;              &lt;div&gt; &lt;span&gt;${firstMonth}&lt;\/span&gt;&lt;span&gt;&lt;\/span&gt;&lt;\/div&gt;              &lt;div&gt;              &lt;\/div&gt;            &lt;\/div&gt;          &lt;\/div&gt;        &lt;\/div&gt;`);        async function getData () {          for (const [index, subCategory] of subCategoryIds.entries()) {            subCategoryId = subCategory.trim();            if (subCategoryId != &#8220;&#8221;) {              await jQuery.get(                {                  url: `https:\/\/vivillion.netlify.app\/api\/parsed-tours\/?primarySubCategory=${subCategoryId}&amp;limit=100&amp;city=new_york`,                }, function (res) {                const displayName = res.subCategory.displayName;                const subCategoryId = res.subCategory.id;                const subCategoryDiscription = monthSubCategoryFilter.data(`${subCategoryId.toString()}-des`);                const subCategoryName = monthSubCategoryFilter.data(`${subCategoryId.toString()}-name`);                categoryNameMap[displayName] = subCategoryName ? subCategoryName : displayName;                                res.pageData.items.forEach((item) =&gt; {                  item.tags = [displayName];                  if(allTours.filter(x =&gt; x.id === item.id).length === 0) {                    allTours.push(item);                  }else{                    allTours.filter(x =&gt; x.id === item.id)[0].tags.push(displayName);                  }                });                jQuery(&#8220;.filter-combo .new-filters .cat-filter&#8221;)                  .append(`&lt;label data-filter-cat=&#8221;${displayName.toLowerCase()}&#8221; data-filtercat=&#8221;${displayName.toLowerCase()}&#8221;&gt; &lt;input type=&#8221;radio&#8221; name=&#8221;cat&#8221;&gt;                  &lt;div&gt;&lt;span&gt;&lt;\/span&gt;${categoryNameMap[displayName]}&lt;\/div&gt;                &lt;\/label&gt; `);                jQuery(&#8220;.info-tab&#8221;).append(                  `&lt;div data-infotab=&#8221;${displayName}&#8221;&gt;                    &lt;h2&gt;${displayName}&lt;\/h2&gt;                    &lt;p&gt;${subCategoryDiscription}&lt;\/p&gt;                  &lt;\/div&gt;`                )                if (index == subCategoryIds.length &#8211; 1) {                  allTours = allTours.map((tour) =&gt; {                    const result = getMicroBrandsHighlightsData(                      tour.microBrandsHighlight                    );                    return {                      &#8230;result,                      &#8230;tour,                    };                  });                  functionsAfterDataUpdate();                }              });            }          }        }        getData();      });    [\/tcb-script][tcb-script]    document.addEventListener(&#8220;DOMContentLoaded&#8221;, function(event) {        let getStars = function(rating) {            \/\/console.log(rating)            rating = rating &lt; 0 ? 0 : rating;            if (rating &lt; .25)                return;            let round = Math.floor(rating);            let full = (rating &gt; (round + .5)) ? true : false;            let half = (rating &gt; (round + .25)) ? true : false;            let template = &#8221;;            let i;            \/\/ Populate Complete Stars            for (i = 0; i &lt; round &amp;&amp; i &lt; 5; i++) {                template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;;            }            \/\/ Add Partial Star (for floating ratings)            if (full &amp;&amp; i &lt; 5 &amp;&amp; ++i)                template += &#8220;&lt;span class=&#8217;fas fa-star&#8217;&gt;&lt;\/span&gt;&#8221;            else if (half &amp;&amp; i &lt; 5 &amp;&amp; ++i)                template += &#8220;&lt;span class=&#8217;fas fa-star-half-alt&#8217;&gt;&lt;\/span&gt;&#8221;            \/\/ Populate Remaining With Empty Stars            while (i++ &lt; 5)                template += &#8220;&lt;span class=&#8217;far fa-star&#8217;&gt;&lt;\/span&gt;&#8221;            return template;        }        \/\/ On Window Resize Hide Mobile Months Tab.        jQuery(window).resize(function(e) {            \/\/console.log(e);            if (jQuery(window).width() &gt; 630)                jQuery(&#8216;.mobi-wrap&#8217;).attr(&#8220;style&#8221;, &#8221;)        });        let thisEle = [];        let i = 0;        \/\/ Populating API Data        jQuery(&#8220;.show-wrapper[data-tgid]&#8221;).each(function() {            let pgid = jQuery(this).data(&#8220;tgid&#8221;);            thisEle.push(this);            if (parseInt(pgid) &amp;&amp; pgid != &#8221;) {                jQuery.get(&#8220;https:\/\/api.headout.com\/api\/v5\/tour-group\/get\/&#8221; + pgid, function(res) {                    \/\/ console.log(res);                    if (res.currency)                        symb = res.currency.localSymbol;                    uEle = `.show-wrapper[data-tgid=${res.id}]`;                    jQuery(uEle).find(&#8220;[data-show-ratings]&#8221;).html(getStars(jQuery(uEle).data(&#8216;rating&#8217;)));                    jQuery(uEle).find(&#8220;.review-count&#8221;).text(res.reviewCount);                    \/\/jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;src&#8217;, &#8220;https:&#8221; + res.imageUploads[0].url + &#8220;?auto=compress&amp;crop=faces&amp;fm=pjpg&amp;w=720&amp;h=500&amp;q=30&#8221;);                    jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;alt&#8217;, res.imageUploads[0].alt);                    jQuery(uEle).find(&#8220;.himage&#8221;).attr(&#8216;title&#8217;, res.imageUploads[0].title);                    \/\/jQuery(uEle).find(&#8220;.listicle-item-name&#8221;).text(res.name);                    if (res.listingPrice) {                        console.log(&#8220;here&#8221;)                        jQuery(uEle).find(&#8220;.price sup&#8221;).text(symb + res.listingPrice.originalPrice);                        jQuery(uEle).find(&#8220;.price .current&#8221;).text(symb + res.listingPrice.finalPrice);                    }                    jQuery(uEle).find(&#8220;.listicle-item-product-image img&#8221;).attr(&#8216;src&#8217;, res.imageUploads[Math.ceil(Math.random() * res.imageUploads.length &#8211; 1)].url);                })            }        });        \/\/ Generating Stars        jQuery(&#8220;[data-show-ratings]&#8221;).each(function(n, ele) {            jQuery(this).append(getStars(jQuery(jQuery(ele).closest(&#8220;.show-wrapper&#8221;)).data(&#8220;rating&#8221;)))        })        \/\/ Loads All Listed Products as in Months Tab        let showTab = function(tabId) {            \/\/ console.log(tabId)            showTgids = [];            jQuery(&#8220;.show-wrapper&#8221;).removeClass(&#8220;tabbed&#8221;)            jQuery(&#8216;[data-infotab]&#8217;).removeClass(&#8220;active&#8221;);            jQuery(&#8216;[data-infotab=&#8221;broadway musicals&#8221;]&#8217;).addClass(&#8220;active&#8221;);            if (tabId == 0) {                jQuery(&#8220;.show-wrapper&#8221;).addClass(&#8220;prepare tabbed&#8221;)            } else if (typeof tabId === &#8220;string&#8221;)                showTgids = tabId.split(&#8220;,&#8221;);            else                showTgids.push(tabId)            for (let i = 0; i &lt; showTgids.length; i++)                jQuery(&#8220;.show-wrapper[data-tgid=&#8221; + parseInt(showTgids[i]) + &#8220;]&#8221;).addClass(&#8220;tabbed prepare&#8221;)            slideInShows(&#8220;prepare&#8221;, &#8220;active&#8221;);        }        \/\/ Open Tab On Click Handler.        jQuery(&#8220;.accCtrl&#8221;).on(&#8220;click&#8221;, function(e) {            selEle = jQuery(e.target).closest(&#8220;.show-wrapper&#8221;);            jQuery(selEle).find(&#8220;.listicle-item-arrow&#8221;).toggleClass(&#8220;invert&#8221;)            target = jQuery(selEle).find(&#8220;.accBody&#8221;)            jQuery(target).slideToggle(&#8220;slow&#8221;);        })        \/\/ Listicle Entry Animation        let slideInShows = function(animEleClass, animationClass) {            jQuery(&#8220;.show-wrapper .accBody:visible&#8221;).slideToggle(&#8220;slow&#8221;)            jQuery(&#8220;.show-wrapper .invert&#8221;).removeClass(&#8220;invert&#8221;)            jQuery(&#8220;.show-wrapper&#8221;).removeClass(animationClass).fadeOut().finish().promise().done(function() {                jQuery(&#8220;.&#8221; + animEleClass).each(function(i) {                    jQuery(this).addClass(animationClass).removeClass(animEleClass).delay((i + 1) * 100).fadeIn();                })            });        }        \/\/ Lower Case All Data Attributes.        let lowerCaseAll = function(ele) {            jQuery(ele).each(function() {                var $this = jQuery(this)                  , data = $this.data();                for (var k in data)                    $this.attr(&#8220;data-&#8221; + k, data[k].toLowerCase().trim());            });        }        lowerCaseAll(jQuery(&#8220;[data-filter-cat], [data-cat], [data-infotab]&#8221;));    });[\/tcb-script]<\/p>\n<h2 id=\"5\">More Broadway Guides<\/h2>\n<p>For more Broadway information, here are some helpful quick links!<\/p>\n<p> <a href=\"https:\/\/www.headout.com\/blog\/best-way-buy-broadway-tickets\/\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" src=\"https:\/\/cdn-imgix-open.headout.com\/blog\/media\/images\/New+York\/BroadwayTheatre+District+NYC.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Broadway Discount Tickets\" data-pagespeed-url-hash=\"283594668\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\"><b>How To Buy Broadway Discount Tickets<\/b> <\/a> <a href=\"https:\/\/www.headout.com\/blog\/\/\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" src=\"https:\/\/cdn-imgix-open.headout.com\/blog\/Broadway\/Bands+visit.jpeg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Best Broadway Shows\" data-pagespeed-url-hash=\"861174493\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\"><b>Best Broadway Shows<\/b> <\/a> <a href=\"https:\/\/www.headout.com\/blog\/broadway-theater-seating-charts\/\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" src=\"https:\/\/cdn-imgix-open.headout.com\/blog\/Broadway\/Hudson+Theater.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Broadway Seating Chart\" data-pagespeed-url-hash=\"189535549\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\"><b>A-Z Broadway Theater Seating Charts<\/b> <\/a> <a href=\"https:\/\/www.headout.com\/blog\/broadway-new-york-theatre-guide\/\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" src=\"https:\/\/cdn-imgix-open.headout.com\/blog\/media\/images\/New+York\/BroadwayTheatre+District+2+NYC.jpg?auto=compress&amp;fm=pjpg&amp;w=500&amp;h=1000&amp;q=30\" alt=\"Broadway Guide\" data-pagespeed-url-hash=\"1066735850\" onload=\"pagespeed.CriticalImages.checkImageForCriticality(this);\"><b>NYC Broadway Theater Guide<\/b> <\/a><\/p>\n<p>See more NYC. Save more money.<\/p>\n<p> Save <strong>$8<\/strong> on your first booking with Headout when you use promo code <strong>&#8216;GONYC&#8217;<\/strong>!<\/p>\n<p> <a href=\"https:\/\/www.headout.com\/broadway-tickets-c-24\/\" target=\"_blank\" style=\"text-decoration: none !important;\" rel=\"noopener\"><\/p>\n<p style=\"padding-top: 10px;\">EXPLORE NOW<\/p>\n<p> <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Broadway is the gift that keeps on giving. With each season comes a new lineup of shows, ready to take the stage. Theatre enthusiasts eagerly anticipate their arrival and critics get ready to pen opinions that will make or break a production\u2019s life-line. There\u2019s certainly no dearth of talent and creativity in the New York [&hellip;]<\/p>\n","protected":false},"author":53,"featured_media":78048,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[501,19],"tags":[6800,6994,6990,6291,6282],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Upcoming Broadway Shows \u2013 What Not to Miss<\/title>\n<meta name=\"description\" content=\"From one of Disney&#039;s favorite films to beloved cult classics, this year is set to kick off with an exciting line up. Don&#039;t miss these upcoming Broadway shows!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upcoming Broadway Shows \u2013 What Not to Miss\" \/>\n<meta property=\"og:description\" content=\"From one of Disney&#039;s favorite films to beloved cult classics, this year is set to kick off with an exciting line up. Don&#039;t miss these upcoming Broadway shows!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/\" \/>\n<meta property=\"og:site_name\" content=\"Headout Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-13T11:21:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T10:49:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp\" \/>\n<meta name=\"author\" content=\"Kubra Fatima\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kubra Fatima\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Upcoming Broadway Shows \u2013 What Not to Miss","description":"From one of Disney's favorite films to beloved cult classics, this year is set to kick off with an exciting line up. Don't miss these upcoming Broadway shows!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/","og_locale":"en_US","og_type":"article","og_title":"Upcoming Broadway Shows \u2013 What Not to Miss","og_description":"From one of Disney's favorite films to beloved cult classics, this year is set to kick off with an exciting line up. Don't miss these upcoming Broadway shows!","og_url":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/","og_site_name":"Headout Blog","article_published_time":"2017-12-13T11:21:56+00:00","article_modified_time":"2022-12-13T10:49:59+00:00","og_image":[{"url":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp"}],"author":"Kubra Fatima","twitter_card":"summary_large_image","twitter_image":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp","twitter_misc":{"Written by":"Kubra Fatima","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#article","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/"},"author":{"name":"Kubra Fatima","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/e6e421762c234aaa09ac3fc4ccafefe3"},"headline":"Cult classics to Disney favorites | Catch these upcoming Broadway shows!","datePublished":"2017-12-13T11:21:56+00:00","dateModified":"2022-12-13T10:49:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/"},"wordCount":2501,"commentCount":0,"publisher":{"@id":"https:\/\/www.headout.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp","keywords":["c-24","Entertainment","Listicle","New York","United States"],"articleSection":["Broadway","Things to do in New York"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/","url":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/","name":"Upcoming Broadway Shows \u2013 What Not to Miss","isPartOf":{"@id":"https:\/\/www.headout.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#primaryimage"},"image":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp","datePublished":"2017-12-13T11:21:56+00:00","dateModified":"2022-12-13T10:49:59+00:00","description":"From one of Disney's favorite films to beloved cult classics, this year is set to kick off with an exciting line up. Don't miss these upcoming Broadway shows!","breadcrumb":{"@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#primaryimage","url":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp","contentUrl":"https:\/\/cdn-imgix.headout.com\/tour\/1982\/TOUR-IMAGE\/1420-new-york-on-your-feet-05.jpg?auto=compress&fm=webp","width":"3502","height":"2626","caption":"Upcoming Broadway Shows 2022 \u2013 What Not to Miss"},{"@type":"BreadcrumbList","@id":"https:\/\/www.headout.com\/blog\/upcoming-broadway-shows\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Things to do in New York","item":"https:\/\/www.headout.com\/things-to-do-city-new-york\/"},{"@type":"ListItem","position":2,"name":"Upcoming Broadway Shows"}]},{"@type":"WebSite","@id":"https:\/\/www.headout.com\/blog\/#website","url":"https:\/\/www.headout.com\/blog\/","name":"Headout Blog","description":"Where will you go next?","publisher":{"@id":"https:\/\/www.headout.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.headout.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.headout.com\/blog\/#organization","name":"Headout","url":"https:\/\/www.headout.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.headout.com\/blog\/wp-content\/uploads\/2016\/07\/headout-logo.png","contentUrl":"https:\/\/www.headout.com\/blog\/wp-content\/uploads\/2016\/07\/headout-logo.png","width":550,"height":84,"caption":"Headout"},"image":{"@id":"https:\/\/www.headout.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/e6e421762c234aaa09ac3fc4ccafefe3","name":"Kubra Fatima","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.headout.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1faf921cd1d5c61a6df33d0a10b2d0b8?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1faf921cd1d5c61a6df33d0a10b2d0b8?s=96&r=g","caption":"Kubra Fatima"},"description":"Kubra Fatima does not like referring to herself in the third person, but has to do it anyway. She loves writing, but never publishes \u2014 mostly because readers might have an ulcer if privy to her private thoughts. Her dream is to retire in Bora Bora, surrounded by just water, a library and music. Until then, she will fantasise about the many holidays she has been on in her mind and hope that one day some come true.","url":"https:\/\/www.headout.com\/blog\/author\/kubra\/"}]}},"_links":{"self":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/4384"}],"collection":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/comments?post=4384"}],"version-history":[{"count":20,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/4384\/revisions"}],"predecessor-version":[{"id":116592,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/posts\/4384\/revisions\/116592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media\/78048"}],"wp:attachment":[{"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/media?parent=4384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/categories?post=4384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.headout.com\/blog\/wp-json\/wp\/v2\/tags?post=4384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}