PageSourceSearch

https://www.thewhittakerinn.com/integration/tc-theme/public/js/chunk/chunk-tc-tabs-3228818f9097d384061c.js

js thewhittakerinn.com collected 2026-09-29 15:12:11 UTC 7,765 bytes, 1 lines download raw bytes

1"use strict";(self.tcthemejsonpFunction=self.tcthemejsonpFunction||[]).push([[4189],{4907(t,e,a){var i=a(1919),n=a.n(i),s=a(8972),r=a(6911),l=a(4692);const{QJ:o,_k:c,Ky:h}=s.iW;n().templateSettings=c;class d{constructor(t){this.$container=t,this.havePanels=!!this.$container.find(".tab__panel").length,this.id=(0,s.bD)(),this.maxTabTitleLength={mobile:26,tablet:12,desktop:16},this.pixelsToScroll=200,this.direction=l("html").attr("dir"),this.templates={nav:'<ul class="tabs__nav" role="tablist">\n                [%~ it.tabNav :tabNavItem %]\n                <li>\n                    <a class="tabs__nav__link" \n                        href="#panel-[%=tabNavItem.id%]" \n                        id="tab-[%=tabNavItem.id%]" \n                        aria-selected="false" \n                        aria-controls="panel-[%=tabNavItem.id%]" \n                        data-title="[%= tabNavItem.title%]"\n                        data-truncated-title="[%= tabNavItem.truncatedTitle%]"\n                        role="tab">\n                        [%= tabNavItem.truncatedTitle%]\n                    </a>\n                </li>\n                [%~%]\n            </ul>',toggleButton:'<button class="btn-link nav-arrow js-nav-toggle" aria-expanded="false">\n                <svg class="icon icon-arrow-bottom" aria-hidden="true">\n                <use href="#icon-arrow-bottom"></use></svg>\n            </button>\n            ',sliderLeft:'<button class="btn-link scroll-arrow js-scroll left">\n                <svg class="icon icon-arrow-left" aria-hidden="true">\n                <use href="#icon-arrow-left"></use></svg>\n            </button>',sliderRight:'<button class="btn-link scroll-arrow js-scroll right">\n                <svg class="icon icon-arrow-right" aria-hidden="true">\n                <use href="#icon-arrow-right"></use></svg>\n            </button>'},this.initialize(),this.bindWindowResize(),this.bindTabsScroll()}initialize(){this.havePanels?this.repaintTabs():this.removeAll()}repaintTabs(){const t=this.getCurrentTabIndex();this.currentScroll=this.$container.find(".tabs__nav")[0]?this.$container.find(".tabs__nav")[0].scrollLeft:0,this.device=h.actual,this.removeTabsNav(),this.addTabsNav(),this.showTab(t)}getCurrentTabIndex(){const t=l(".tabs__nav li",this.$container).index(l(".tabs__nav li.active",this.$container));return-1===t?1:t+1}truncate(t){return t.length>this.maxTabTitleLength[this.device]?t.substring(0,this.maxTabTitleLength[this.device])+"&hellip;":t}removeAll(){this.$container.remove()}removeTabsNav(){this.$container.find(".tabs__nav").remove(),this.$container.find(".nav-arrow").remove(),this.$container.find(".scroll-arrow").remove()}addTabsNav(){"mobile"!==this.device?this.addTabsNavForTabletOrDesktop():this.addTabsNavForMobile(),this.bindClickonMobileNavItem()}addTabsNavForMobile(){let t=n().template(this.templates.nav),e=n().template(this.templates.toggleButton),a=this.getTabsNavItems();this.$container.find(".tabs__body").prepend(t({tabNav:a})).prepend(e()),a.length<=1&&l(".tabs__nav",this.$container).hide()}addTabsNavForTabletOrDesktop(){let t=n().template(this.templates.nav),e=this.$container.find(".tabs__head");e.append(t({tabNav:this.getTabsNavItems()})),e.find(".tabs__nav__link").equalizeWidth()}getTabsNavItems(){let t=[];return this.$container.find(".tab__panel").each((e,a)=>{let i=this.id+"-"+e,n=l(a).find(".tab__title").html();l(a).attr("id","panel-"+i).attr("aria-labelledby","tab-"+i),t.push({title:n,truncatedTitle:this.truncate(n),id:i})}),t}addTabsNavHorizontalScroll(){if(!l(".scroll-arrow",this.$container).length&&"mobile"!==this.device&&this.checkOverflow(l(".tabs__nav",this.$container))){let t=n().template(this.templates.sliderLeft),e=n().template(this.templates.sliderRight);this.$container.find(".tabs__head").prepend(t()).append(e()),this.bindClickOnHorizontalScroll()}}removeTabsNavHOrizontalScroll(){l(".scroll-arrow",this.$container).length&&!this.checkOverflow(l(".tabs__nav",this.$container))&&this.$container.find(".scroll-arrow").remove()}moveHorizontalScrollToActiveTab(t){let e=l(".scroll-arrow",this.$container).length;if("mobile"!==this.device&&e){let e=Math.floor(t.offset().left-t.parent().offset().left);this.$container.find(".tabs__nav")[0].scrollLeft=this.currentScroll,"rtl"===this.direction&&e<0&&(e=`-=${Math.abs(e)}`),l(".tabs__nav",this.$container).animate({scrollLeft:e},500,"linear",this.checkHideNavigation.bind(this))}}showTab(t){this.activateTab(l(`.tabs__nav li:nth-child(${t})`,this.$container))}activateTab(t){t.hasClass("active")||(this.deactivate(),this.activate(t),this.addTabsNavHorizontalScroll(),"mobile"!==this.device&&this.$container.find(".tabs__nav__link:not(.active)").equalizeWidth(),this.moveHorizontalScrollToActiveTab(t),this.removeTabsNavHOrizontalScroll())}deactivate(){this.$container.find("li").each(function(){l(this).removeClass("active");let t=l(this).find("a");t.attr("aria-selected","false").removeClass("active").text(t.data("truncated-title"))}),this.$container.find(".tab__panel").each(function(){l(this).attr("aria-hidden","true").removeClass("active"),l(this).find("[tabindex], a, button, input, select, textarea").each(function(){l(this).attr("tabindex","-1")})})}activate(t){let e=t.children("a"),a=this.$container.find(e.attr("href"));t.addClass("active").find("a").attr("aria-selected","true").addClass("active").text(e.data("title")).css("width","auto"),a.attr("aria-hidden","false").addClass("active"),a.find("a, button, input, select, textarea").each(function(){l(this).removeAttr("tabindex")}),a.find("[tabindex]").each(function(){l(this).attr("tabindex","0")})}bindTabsScroll(){l(".tabs__nav",this.$container).on("scroll",this.checkHideNavigation.bind(this))}bindWindowResize(){l(document).on("tc-theme-window-resize",()=>{this.repaintTabs()})}
1bindClickonMobileNavItem(){l(".tabs__nav li, .js-nav-toggle",this.$container).on("click keydown",t=>{o.checkClick(t)&&(t.preventDefault(),"mobile"==this.device?this.onClickOnMobileNavItem(l(t.currentTarget)):(this.currentScroll=this.$container.find(".tabs__nav")[0]?this.$container.find(".tabs__nav")[0].scrollLeft:0,this.activateTab(l(t.currentTarget))))})}bindClickOnHorizontalScroll(){l(".js-scroll",this.$container).on("click keydown",t=>{if(o.checkClick(t)){t.preventDefault();let e=l(t.currentTarget).hasClass("right")?"+=":"-=";"rtl"===this.direction&&(e="+="===e?"-=":"+="),l(".tabs__nav",this.$container).animate({scrollLeft:e+this.pixelsToScroll},500,"linear",this.checkHideNavigation.bind(this))}})}checkHideNavigation(){const t=l(".tabs__nav",this.$container)[0],e="ltr"===this.direction?t.scrollLeft:-t.scrollLeft,a=t.scrollWidth,i=t.getBoundingClientRect().width,n=l(".scroll-arrow.left",this.$container),s=l(".scroll-arrow.right",this.$container),r={opacity:0,visibility:"hidden"},o={opacity:1,visibility:"visible"},c=e+i>=a-1;e<=1?n.css(r):n.css(o),c?s.css(r):s.css(o)}onClickOnMobileNavItem(t){let e=l(".tabs__nav",this.$container);e.hasClass("open")?(e.removeClass("open"),this.activateTab(t)):e.addClass("open"),this.toogleNavArrow()}toogleNavArrow(){let t=l(".nav-arrow",this.$container).children("svg");t.hasClass("icon-arrow-bottom")?t.removeClass("icon-arrow-bottom").addClass("icon-arrow-top").children("use").attr("href","#icon-arrow-top").closest("button").attr("aria-expanded","true"):t.removeClass("icon-arrow-top").addClass("icon-arrow-bottom").children("use").attr("href","#icon-arrow-bottom").closest("button").attr("aria-expanded","false")}checkOverflow(t){let e=t.get().pop(),a=e.style.overflow;a&&"visible"!==a||(e.style.overflow="hidden");let i=e.clientWidth<e.scrollWidth||e.clientHeight<e.scrollHeight;return e.style.overflow=a,i}}const b={init:function(){l(r.N.tabs).each(function(){new d(l(this))})}};a.d(e,["default",0,b])}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.