(function(){"use strict";function t(n,t){t.otherwise("/");n.state("home",{url:"/",controller:"homeController",templateUrl:"rootApp/home/home.html",controllerAs:"vm"});n.state("homeUnlisted",{url:"/unlisted",controller:"homeController",templateUrl:"rootApp/home/home.html",controllerAs:"vm"});n.state("login",{url:"/login",controller:"ssoController",templateUrl:"rootApp/sso/sso.html",controllerAs:"vm"});n.state("ssoCallback",{url:"/ssocallback",controller:"ssoCallbackController",templateUrl:"rootApp/sso/ssoCallback.html",controllerAs:"vm"})}function i(n,t,i,r){n.intervals=[];n.$on("$locationChangeStart",function(){n.killIntervals()});n.killIntervals=function(){angular.forEach(n.intervals,function(n){r.cancel(n)});n.intervals.length=0};n.$on("onBeforeUnload",function(){})}angular.module("main",["ui.router","ui.bootstrap","common"]).config(["$stateProvider","$urlRouterProvider","$locationProvider",t]).factory("beforeUnload",["$rootScope","$window",function(n,t){return t.onbeforeunload=function(){var t={},i=n.$broadcast("onBeforeUnload",t);if(i.defaultPrevented)return t.message},t.onunload=function(){n.$broadcast("onUnload")},{}}]).filter("slice",function(){return function(n,t,i){return n.slice(t,i)}}).run(["$rootScope","$location","$http","$interval","$window","beforeUnload",i]);var n=angular.module("main");n.config(["commonConfigProvider","events",function(n,t){n.config.controllerActivateSuccessEvent=t.controllerActivateSuccess;n.config.controllerActivateFailEvent=t.controllerActivateFail;n.config.spinnerToggleEvent=t.spinnerToggle}])})(),function(){"use strict";function t(){return{request:function(n){return n.url.indexOf("rootApp/")===0&&n.url.indexOf(".html",n.url.length-5)!==-1&&(n.url+="?_=20250120-0544",n.headers["Cache-Control"]="public, max-age=2592000"),n}}}var n=angular.module("main");n.factory("templateCacheHandler",[t]);n.config(["$httpProvider",function(n){n.interceptors.push("templateCacheHandler")}])}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c){function v(){}function y(n,t){u.cancel(a);t==0?l.showSpinner=n:a=u(function(){l.showSpinner=n},t)}var l=this,a;l.showSpinner="default";v();t.$on(c.spinnerToggle,function(n,t){y(t.show,100)})}angular.module("main").controller("rootController",["$scope","$rootScope","$uibModal","$window","$timeout","$location","$state","$stateParams","common","spinner","events",n])}(),function(){"use strict";angular.module("common",[])}(),function(){"use strict";function n(){function n(){this.StreetNumber="";this.AddressLine1="";this.AddressLine2="";this.City="";this.State="";this.Zipcode="";this.Country="";this.Lat=0;this.Lng=0;this.SpecialInstructions="";this.ExtraInstructions=""}return n.prototype.parseGooglePlace=function(t){var f="",h,i,u,e,r,o,s;if(t.address_components&&(f=[t.address_components[0]&&t.address_components[0].short_name||"",t.address_components[1]&&t.address_components[1].short_name||"",t.address_components[2]&&t.address_components[2].short_name||""].join(" ")),h={street_number:"short_name",route:"long_name",locality:"long_name",sublocality_level_1:"long_name",sublocality:"long_name",neighborhood:"long_name",administrative_area_level_1:"short_name",postal_code:"short_name",country:"long_name"},f){for(i={},u=0;u<t.address_components.length;u++)e=t.address_components[u].types[0],h[e]&&(i[e]=t.address_components[u][h[e]]);return i.street_number?(r=new n,r.displayString=f,r.AddressLine1=i.street_number+" "+i.route,r.City=i.locality||i.sublocality||i.sublocality_level_1||i.neighborhood,r.State=i.administrative_area_level_1,r.Zipcode=i.postal_code,r.Country=i.country,o=t.geometry.location.lat,r.Lat=_.isFunction(o)?o():o,s=t.geometry.location.lng,r.Lng=_.isFunction(s)?s():s,r):{displayString:f}}},n.prototype.getGoogleAddress=function(){return this.City?this.AddressLine1+", "+this.City+", "+this.State+", "+this.Country:""},n.prototype.parseMapBoxFeature=function(t){var f,e,r,u,o,i;return t.context&&$.each(t.context,function(n,t){t.id.indexOf("region")>=0&&(f=t.text);t.id.indexOf("country")>=0&&(e=t.text);t.id.indexOf("place")>=0&&(r=t.text);t.id.indexOf("postcode")>=0&&(o=t.text);t.id.indexOf("neighborhood")>=0&&(u=t.text)}),t.place_name?t.address?(i=new n,i.StreetNumber=t.address,i.displayString=t.address+" "+t.text+" "+(r||u),i.AddressLine1=t.address+" "+t.text,i.City=r||u,i.State=f,i.Zipcode=o,i.Country=e,i.Lng=t.geometry.coordinates[0],i.Lat=t.geometry.coordinates[1],i):{displayString:t.place_name}:void 0},n.prototype.getMapBoxAddress=function(){return this.City?this.AddressLine1+", "+this.City+", "+this.State+" "+this.Zipcode+", "+this.Country:""},n}angular.module("common").factory("Address",[n])}(),function(){"use strict";function n(n,t){var i=this;i.dialogTitle=t.dialogTitle||"";i.dialogMessage=t.dialogMessage||"";i.dismissButtonCss=t.dismissButtonCss||"";i.dismissButtonText=t.dismissButtonText;i.closeButtonText=t.closeButtonText||"OK";i.buttonActions=t.buttonActions||[];i.close=n.close;i.dismiss=n.dismiss}angular.module("common").controller("alert",["$uibModalInstance","alertOptions",n])}(),function(){"use strict";function n(){function n(n){return $("#is-"+n).is(":visible")}return{isSize:n}}angular.module("common").factory("browserInfo",["$log",n])}(),function(){"use strict";function t(n,t,i,r,u){function c(n,t,i,r){var s=3959,u=e(i-n),f=e(r-t),o=Math.sin(u/2)*Math.sin(u/2)+Math.cos(e(n))*Math.cos(e(i))*Math.sin(f/2)*Math.sin(f/2),h=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o));return s*h}function e(n){return n*Math.PI/180}function l(n){return n&&n.replace(/ /g,"-").replace(/[^a-zA-Z0-9_]+/g,"-").replace(/\-$/,"").replace(/^\-/,"")}function a(t){var i=n.defer(),r=0;return _.each(t,function(n){r++;n.then(function(n){i.resolve(n)})["finally"](function(n){r--;r===0&&i.reject(n)})}),i.promise}function h(n,t){return+(Math.round(+(n+"e"+t))+"e"+-t)||0}function v(n,t){return t===undefined&&(t=2),parseFloat(h(h(n,t+1),t))}function y(t,i){o++;return n.all(t).then(function(){var n={controllerId:i};return f.push(function(){s(r.config.controllerActivateSuccessEvent,n)}),n},function(n){n&&f.push(function(){s(r.config.controllerActivateFailEvent,n)});throw n;})["finally"](function(){o--;o===0&&(_.each(f,function(n){n()}),f=[])})}function s(){return t.$broadcast.apply(t,arguments)}function p(n,t){this.name="RedirectRequired";this.message=n;this.beKind=!0;this.nextState=t}function w(n){this.name="NormalException";this.message=n}var o=0,f=[];return{activateController:y,broadcast:s,exceptions:{RedirectRequiredException:p,NormalException:w},monetize:v,any:a,safeClassName:l,messages:u,getDistanceInMiles:c,log:i.log}}var n=angular.module("common");n.provider("commonConfig",function(){this.config={};this.$get=function(){return{config:this.config}}});n.factory("common",["$q","$rootScope","$log","commonConfig","messages",t])}(),function(){"use strict";var n=angular.module("common");n.config(["commonConfigProvider","events",function(n,t){n.config.controllerActivateSuccessEvent=t.controllerActivateSuccess;n.config.controllerActivateFailEvent=t.controllerActivateFail;n.config.spinnerToggleEvent=t.spinnerToggle;n.config.cartItemSelectedEvent=t.cartItemSelected;n.config.cartItemIsValidChangedEvent=t.cartItemIsValidChanged;n.config.securityAuthorizationRequiredEvent=t.securityAuthorizationRequired;n.config.signUpRequested=t.signUpRequested;n.config.includedItemsChanged=t.includedItemsChanged;n.config.presentCart=t.presentCart;n.config.changeDeliveryAddressRequest=t.changeDeliveryAddressRequest;n.config.changeTableNumberRequest=t.changeTableNumberRequest;n.config.orderHistoryRequested=t.orderHistoryRequested;n.config.navigateToMerchantHome=t.navigateToMerchantHome;n.config.navigateToMerchantWebsite=t.navigateToMerchantWebsite;n.config.navigateToMerchantWebsite=t.navigateToMerchantWebsite;n.config.addItemToNextCart=t.addItemToNextCart;n.config.newPaymentMethodAdded=t.newPaymentMethodAdded;n.config.promoCodeRemoved=t.promoCodeRemoved}])}(),function(){"use strict";var n=angular.module("common");n.constant("events",{controllerActivateSuccess:"controller.activateSuccess",controllerActivateFail:"controller.activateFail",spinnerToggle:"spinner.toggle",cartItemSelected:"cart.itemSelected",cartItemIsValidChanged:"cart.itemIsValidChanged",securityAuthorizationRequired:"security.authorizationRequired",signUpRequested:"security.signUpRequested",includedItemsChanged:"orderItem.includedItemsChanged",presentCart:"cart.presentCart",changeDeliveryAddressRequest:"order.changeDeliveryAddressRequest",changeTableNumberRequest:"order.changeTableNumberRequest",orderHistoryRequested:"user.orderHistoryRequested",addItemToNextCart:"cart.addItemToNext",navigateToMerchantHome:"navigation.merchantHome",navigateToMerchantWebsite:"navigation.merchantWebsite",newPaymentMethodAdded:"checkout.newPaymentMethodAdded",promoCodeRemoved:"checkout.promoCodeRemoved",itemQuantityChanged:"order.itemQuantityChanged",orderPlaced:"order.placed",orderHubProgress:"order.hubProgress",orderHubProgressDone:"order.hubProgressDone",readyForOrderProgress:"order.readyForOrderProgress",promotionIsSelected:"checkout.promoCodeAdded",beginCheckout:"checkout.begin",itemRemoved:"cart.itemRemoved",login:"login",signUp:"signUp",logout:"logout",itemIsViewed:"item.view",menuIsShown:"menu.view"});n.constant("messages",{totalEstimation:"The tax listed on this site is an estimate. Also, product prices are occasionally different on the site than in the restaurant. Once your order is submitted, the final product prices and tax will be calculated. If the total is different, the corrected amount will be charged to your card. Please check your email receipt for the final total."})}(),function(){"use strict";function n(n,t,i,r){function u(r,u){try{i.set("table-"+u,r)}catch(f){n.error("Error while saving data.")}return t.when(1)}function f(r){var u=angular.toJson(r);try{i.set("deliveryAddress",u)}catch(f){n.error("Error while saving data.")}return t.when(1)}function e(n){var r=i.get("table-"+n);return r?t.when(r):t.reject("We need your table number, please.")}function o(){var u=i.get("deliveryAddress"),f,n;return u?(f=angular.fromJson(u),n=angular.extend(new r,f),n.SpecialInstructions=(n.ExtraInstructions||"")+(n.SpecialInstructions||""),t.when(n)):t.reject("We need your delivery address, please.")}return{cacheTableNumber:u,getTableNumber:e,cacheDeliveryAddress:f,getDeliveryAddress:o}}angular.module("common").factory("deliveryCacheService",["$log","$q","storageService","Address",n])}(),function(){function n(n){return function(t,i){var f=[],u=null,r=!1,e="groupBy_CHANGED";return angular.forEach(t,function(t){if(r=!1,u!==null){i=angular.isArray(i)?i:[i];for(var o=0,s=i.length;o<s;o++)if(n(i[o])(u)!==n(i[o])(t)){r=!0;break}}else r=!0;t[e]=r?!0:!1;f.push(t);u=t}),f}}angular.module("common").filter("groupBy",["$parse",n])}(),function(){"use strict";function n(n,t){function r(t){n.info.apply(n,arguments);toastr.info(t)}function i(t){n.warn.apply(n,arguments);toastr.warning(t)}function u(t){n.info.apply(n,arguments);toastr.success(t)}function f(t){_.each(arguments,function(t){n.error.call(n,t)});toastr.error(t,"Hmm")}function e(t){n.error.apply(n,arguments);toastr.error(t,"Hmm",{timeOut:0,extendedTimeOut:0})}function o(n,i){var r=arguments[0],u;return _.isString(n)&&(r={dialogTitle:n,dialogMessage:i,dismissButtonText:"",closeButtonText:"",dismissButtonCss:"",cssClass:""}),u=t.get("$uibModal"),u.open({templateUrl:"shared/common/alert.html",controller:"alert as vm",size:"md",windowClass:r.cssClass||undefined,resolve:{alertOptions:function(){return r}}}).result}return{info:r,error:f,errorMessage:e,success:u,warning:i,warn:i,dialog:o}}angular.module("common").factory("notify",["$log","$injector",n])}(),function(){"use strict";function n(n,t){function r(n){i(!1,n)}function u(){i(!0)}function i(i,r){n.broadcast(t.config.spinnerToggleEvent,{show:i,s:r})}function f(t){n.broadcast("updateSpinnerMessage",t)}return{spinnerHide:r,spinnerShow:u,setMessage:f}}function t(){return{replace:!0,template:'<div role="status" aria-live="polite" class="lds-wrapper"><div class="lds-ellipsis"><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>',restrict:"A"}}function i(n){function t(t,i,r){var u=null;t.$watch(r.elSpinner,function(t){u&&u.stop();var r={lines:13,length:11,width:5,radius:15,corners:1,rotate:0,trail:60,speed:1,direction:1,position:"relative"};angular.extend(r,t);u=new n.Spinner(r);u.spin(i[0])},!0)}return{link:t,restrict:"A"}}function r(n){function t(t,i,r){t.spinner=null;t.spinnerMessage="";t.$watch(r.pageWaitSpinner,function(r){t.spinner&&t.spinner.stop();r={lines:13,length:11,width:5,radius:15,corners:1,rotate:0,trail:60,speed:1,direction:1,top:"40%",position:"fixed"};t.spinner=new n.Spinner(r);t.spinner.spin(i[0])},!0);t.$on("updateSpinnerMessage",function(n,i){t.$applyAsync(function(){t.spinnerMessage=i})})}return{link:t,template:`
            <div class="modal-backdrop fade in cover-all">
				<h4 class="spinner-message text-center" style="font-weight:bold;" ng-bind="spinnerMessage"></h4>
            </div>`,restrict:"A"}}angular.module("common").factory("spinner",["common","commonConfig",n]);angular.module("common").directive("elSpinnerSmall",["$window",t]);angular.module("common").directive("elSpinner",["$window",i]);angular.module("common").directive("pageWaitSpinner",["$window",r])}(),function(){"use strict";function n(n,t,i){function r(t,r){try{n.localStorage[t]=r}catch(u){i.error("Error writing to localStorage",u);throw new Error("Error saving cart. This application will likely not function properly.");}}function u(t){return n.localStorage[t]}function f(){n.localStorage.clear()}return{clear:f,get:u,set:r}}angular.module("common").factory("storageService",["$window","$q","$log",n])}(),function(){"use strict";function n(){function n(){this.weekdayParts=[];this.rangeParts=[]}function t(n,t){this.day=n;this.hours=t}function r(t){var i=new n;return i.parse(t),i}var i={getHoursOfOperationDisplay:r};return n.prototype.toString=function(){return this.weekdayParts&&this.weekdayParts.length?"Available "+this.weekdayParts.join(" and ")+"\n"+this.rangeParts.join(" "):"Not available"},n.prototype.addWeekday=function(n){this.weekdayParts.push(n)},n.prototype.addRange=function(n){this.rangeParts.push(n)},n.prototype.parse=function(n){var i=this;_.each(n.WeekdayHours,function(n){i.addWeekday(new t(n.WeekDay,n.Start+" - "+n.Stop))});var r=moment(n.StartDate),u=moment(n.EndDate),f=u.add(-1,"days");n.StartDate&&n.EndDate?r.isAfter(togoorder.utcNow)&&u.isAfter(togoorder.utcNow)?i.addRange("Available from "+r.format("dddd, MMMM D")+" through "+f.format("dddd, MMMM D")):u.isAfter(togoorder.utcNow)&&i.addRange("Available through "+f.format("dddd, MMMM D")):(n.StartDate&&r.isAfter(togoorder.utcNow)&&i.addRange("Available starting on "+r.format("dddd, MMMM D")),n.EndDate&&u.isAfter(togoorder.utcNow)&&i.addRange("Available through "+f.format("dddd, MMMM D")))},t.prototype.toString=function(){return this.day+": "+this.hours},i}angular.module("main").factory("hoursOfOperationService",["$http","$q","$log",n])}(),function(){"use strict";function n(n,t,i,r,u,f,e,o){function s(){function b(t,i){t.IsCurbsideOffered&&(t.IsVehicleInformationRequired?angular.extend(n,u):i?angular.extend(n,u):i===undefined&&angular.extend(n,v))}function k(n){n.IsVehicleInformationRequired&&angular.extend(r,l)}function d(n){let t=h(n.OrderType,n.FulfillmentType);t.extendForVehicleInformation&&t.extendForVehicleInformation(n)}function g(n,t){var r=sessionStorage.getItem("is_unlistedOnly"),i;return(window.location.href.includes("unlistedOnly")||$.cookie("is_unlistedOnly"))&&(sessionStorage.setItem("is_unlistedOnly","true"),$.cookie("is_unlistedOnly",!0,{expires:.01,secure:!0}),window.location.href.includes("unlistedOnly")&&$.cookie("unlisted_url",window.location.href,{expires:.01,secure:!0}),r="true"),i=_.filter(n.OrderTypeViewModels,function(n){return!!(n.MenuIds&&n.MenuIds.length)}),i=_.filter(i,function(n){return r==="true"?!0:n.IsUnlisted===!!t}),_.each(i,d),i=_.map(i,function(n){return{OrderType:n.OrderType,FulfillmentType:n.FulfillmentType,HoursOfOperationDisplay:o.getHoursOfOperationDisplay(n.HoursOfOperation)}}),i=_.map(i,function(n){var t=h(n.OrderType,n.FulfillmentType);return n.Description=t.orderTypeDescription,n.NormalizedDescription=e.safeClassName(n.Description),n}),_.sortBy(i,"OrderType")}function h(n,t){if(!n)throw new Error("orderType required");if(!t)throw new Error("fulfillmentType required");var i=s[t]||s.otherwise;return i.orderTypeDescription?i:i[n]||i.otherwise}var t="Take Out",c="Curbside Pickup",w="Curbside",i={orderTypeDescription:"Order From The Table"},r={orderTypeDescription:"Drive-Thru",extendForVehicleInformation:k},l={orderTypeDescription:"Drive-Thru"},u={orderTypeDescription:c},a={orderTypeDescription:w},v={orderTypeDescription:t+" / Curbside"},f={orderTypeDescription:"Delivery"},n={orderTypeDescription:t,extendForVehicleInformation:b},y={orderTypeDescription:"Catering for Pickup"},p={orderTypeDescription:"Catering for Delivery"},s={2:{1:i,10:p,otherwise:f},otherwise:{1:i,4:f,7:r,8:a,10:y,otherwise:n}};return{takeoutDescription:t,curbsideDescription:c,getOrderTypeViewModels:g,tableNumberData:i,deliveryAddressData:f,normalData:n,driveThruData:r,driveThruWithVehicleInfoData:l,takeoutCurbsideData:v,curbsideData:u,carsideData:a,cateringForPickupData:y,cateringForDeliveryData:p,fulfillmentTypeMap:s,getOrderTypeData:h}}return{getLocationInstance:s}}angular.module("main").factory("orderTypeViewModelServiceFactory",["$http","$q","$state","$timeout","$log","$location","common","hoursOfOperationService",n])}(),function(){function r(){var n=angular.element(document.querySelector("[data-ng-controller]"));return n.injector()}function u(){$.removeCookie("auth_data");$.removeCookie("auth_data",{path:t})}var n=window.togoorder=window.togoorder||{},t="/",i;n.userData={isAuthenticated:!1,username:"",bearerToken:"",expirationDate:null,merchantId:0};n.getSavedUserData=function(){var i=$.cookie("auth_data"),t;return i?(t=angular.fromJson(i),t.merchantId!==n.merchantId)?null:n.userData=t:null};n.clearUserData=function(){n.userData.isAuthenticated=!1;n.userData.username="";n.userData.bearerToken="";n.userData.expirationDate=null;n.userData.merchantId=0;u()};n.getInjector=function(){return r()};n.goToNextState=function(){var i=n.getInjector(),u=i.get("userService"),f=i.get("$state"),t;try{t=u.getNextState();f.go(t.name,t.params)}catch(r){if(r.name==="NextStateUndefined")window.location.reload();else throw r;}};i=$.Deferred();n.setAuthCookiePromise=i.promise();n.setAuthCookie=function(r,f,e,o,s){u();n.userData.isAuthenticated=!0;n.userData.username=r;n.userData.bearerToken=f;n.userData.expirationDate=e;n.userData.merchantId=n.merchantId;n.userData.isWebLogin=!!s;var h=angular.toJson(n.userData);o?$.cookie("auth_data",h,{expires:7,path:t,secure:!0}):$.cookie("auth_data",h,{path:t,secure:!0});i.resolve(h)};n.mobileStrategy=n.mobileStrategy||{};n.authStrategy=n.authStrategy||{};n.callInjectedStrategy=function(t){var i,r,u;return(n.setMobileStrategy&&n.setMobileStrategy(),i=n.authStrategy[t]||n.mobileStrategy[t],i)?(r=_.toArray(arguments),r.shift(),u=i.apply(n.mobileStrategy,r),{result:u}):undefined};n.newPaymentMethodAdded=function(n){var t=r(),i=t.get("common"),u=t.get("events");i.broadcast(u.newPaymentMethodAdded,{paymentMethodId:n})};n.squareSettings={squareLocationId:"",squareApplicationId:"",squarePaymentAdded:!1};n.squareCardData={billingPostalCode:"",cardBrand:"",digitalWalletType:"",expMonth:0,expYear:0,lastFour:"",Id:0,CardId:"",UserId:0}}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){function ft(n,t){return n.Id+"?IsUnlistedOrderType="+p.isUnlisted+"#/o/"+t.OrderType+"/f/"+t.FulfillmentType+"/menus"}function et(n){_.each(p.locationsLoaded,function(t){t.isExpanded=t!==n?!1:!t.isExpanded});_.each(p.mapMarkers,function(t){t.locationId!==n.Id?t.getPopup().isOpen()&&t.togglePopup():(n.isExpanded&&!t.getPopup().isOpen()||!n.isExpanded&&t.getPopup().isOpen())&&t.togglePopup()});w.flyTo({center:[n.Long,n.Lat]})}function it(){p.isShowDistance=!0;p.locationsLoaded=_.sortBy(p.locationsLoaded,function(n){return n.distance})}function ot(n){nt(it);var t=(new y).parseMapBoxFeature(n);t instanceof y&&c.cacheDeliveryAddress(t)}function st(n){var t=v.getLocationInstance();n.orderTypeViewModels=t.getOrderTypeViewModels(n,p.isUnlisted);n.canOrder=!!(n.orderTypeViewModels&&n.orderTypeViewModels.length)}function ht(n){var t={id:n.Id,coords:{latitude:n.Lat,longitude:n.Long},title:n.LocationName,distance:n.distance,location:n};return n.MerchantLogo&&(t.icon={scaledSize:{width:40,height:30},url:n.MerchantLogo}),t}function rt(n,t){return l.getMap(ut,n,p.isUnlisted).then(function(i){return(s.spinnerHide(),!i||!i.length)?!0:(_.each(i,function(n){n.distance=h.getDistanceInMiles(b[1],b[0],n.Lat,n.Long);st(n)}),_.each(i,function(n){n.Id=n.Id.toString();p.markers.push(ht(n));p.locationsLoaded.push(n)}),n=_.max(i,function(n){return+n.Id}).Id,t&&t(),rt(n,t))})}function ct(n){var t=n.location.Address2?`<span ${n.location.Address2}<br /></span>`:"",i=n.location.Phone?`<div class="location-phone"><a href="tel:${n.location.Phone}">${n.location.Phone}</a></div>`:"",r=n.location.canOrder&&!p.isUnlisted?`<div class="order-btn-container"><a href="/web/${n.location.Id}" class="btn btn-primary btn-togo order-btn"><span>Order Online</span></a></div>`:`<div class="ordering-unavailable"><span>We're sorry. Online ordering is currently not available.</span></div>`;return`
                <div>
                    <p class="location-name">${n.location.LocationName}</p>
                    <div class="label label-default pull-right location-distance popup-miles-label">
                        ${Math.round(n.location.distance*10)/10} miles
                    </div>
                    <div class="location-details">
                        <div class="location-address">
                            ${n.location.Address1}<br />
                            ${t}
                            ${n.location.City}, ${n.location.State} ${n.location.Zip}
                        </div>
                        ${i}
                    </div>
                    ${r}
                </div>
            `}function nt(n){return _.each(p.mapMarkers,function(n){n.remove()}),p.mapMarkers=[],p.markers=[],p.merchants=[],p.locationsLoaded=[],p.isLoading=!0,rt(0,n).then(function(){_.each(p.markers,function(n,t){var i=document.createElement("div"),u,r;i.id="marker_"+t;n.icon?(i.style.backgroundImage="url("+n.icon.url+")",i.style.width=n.icon.scaledSize.width,i.style.height=n.icon.scaledSize.height):i.className="marker";i.addEventListener("click",function(){at(n)});u={element:i,anchor:"bottom"};r=new mapboxgl.Marker(u).setLngLat([n.coords.longitude,n.coords.latitude]).setPopup(new mapboxgl.Popup({offset:25,maxWidth:"none"}).setHTML(ct(n))).addTo(w);r.locationId=n.id;p.mapMarkers.push(r)});p.isLoading=!1})}function lt(){var n={x:0,y:0};return _.each(p.markers,function(t){n.x+=t.coords.latitude;n.y+=t.coords.longitude}),n.x=n.x/p.markers.length,n.y=n.y/p.markers.length,{latitude:n.x,longitude:n.y}}function at(n){_.each(p.locationsLoaded,function(t){if(t!==n.location)t.isExpanded=!1;else{var i=_.find(p.mapMarkers,function(t){return t.getLngLat().lat===n.location.Lat});t.isExpanded=!i.getPopup().isOpen()}});i.$apply();u.hash("location-"+n.location.Id);o()}function vt(){mapboxgl.accessToken=togoorder.MapBoxApiKey;w=new mapboxgl.Map({container:"map-canvas",style:"mapbox://styles/mapbox/streets-v11",center:[d.longitude,d.latitude],zoom:g});w.addControl(new mapboxgl.NavigationControl);k=new MapboxGeocoder({accessToken:mapboxgl.accessToken,mapboxgl:mapboxgl,marker:!1,placeholder:"Enter your ZIP or address*",types:"address,postcode,place",zoom:g});tt=mapboxSdk({accessToken:mapboxgl.accessToken});w.on("load",function(){w.resize();k.on("result",function(n){n.result.geometry&&Array.isArray(n.result.geometry.coordinates)&&n.result.geometry.coordinates.length&&(b=n.result.center,ot(n.result))});return c.getDeliveryAddress().then(function(n){k.query(n.displayString)},function(){return pt().then(function(n){return w.jumpTo({center:{lon:n.longitude,lat:n.latitude},zoom:g}),nt(it)},yt)})});document.getElementById("pac-input").appendChild(k.onAdd(w))}function yt(){return nt().then(function(){e(function(){w.setZoom(g);var n=_.some(p.locationsLoaded,function(n){return n.isExpanded});n||(p.isShowDistance=!1,b=lt(),w.setCenter({lon:b.longitude,lat:b.latitude}))},100)})}function pt(){var n=t.defer();return"geolocation"in navigator?(setTimeout(function(){n.reject()},6e3),navigator.geolocation.getCurrentPosition(function(t){var i={latitude:t.coords.latitude,longitude:t.coords.longitude};b=[t.coords.longitude,t.coords.latitude];wt(i);n.resolve(i)},function(){n.reject()},{timeout:1e3})):n.reject(),n.promise}function wt(n){tt.geocoding.reverseGeocode({query:[n.longitude,n.latitude],limit:1}).send().then(n=>{var t=(new y).parseMapBoxFeature(n.body.features[0]);t instanceof y&&k.setInput(t.displayString)},n=>{console.error(n)})}var p=this,ut=togoorder.merchantId,d={latitude:40.1451,longitude:-99.668},g=12,w={},k={},tt={},b=[d.longitude,d.latitude];p.isUnlisted=f.current.name==="homeUnlisted";p.locationsLoaded=[];p.markers=[];p.mapMarkers=[];p.merchants=[];p.toggleLocation=et;p.isShowDistance=!1;p.isLoading=!0;p.getOrderingUrl=ft;vt()}angular.module("main").controller("homeController",["$window","$q","$rootScope","$http","$location","$state","$timeout","$anchorScroll","spinner","common","deliveryCacheService","mapService","hoursOfOperationService","orderTypeViewModelServiceFactory","Address",n])}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s){function h(){var n=document.location.origin+document.location.pathname+document.location.search+"#!/ssocallback";togoorder.callInjectedStrategy("authenticateUser",n)||r.go("home")}var c=this,l=togoorder.merchantId,a=s.search();h()}angular.module("main").controller("ssoController",["$rootScope","$scope","$log","$state","$stateParams","$uibModal","$filter","$window","$location","$timeout","notify","common","spinner",n])}(),function(){"use strict";function n(n,t,i,r,u,f,e,o,s,h){function c(){h(function(){togoorder.callInjectedStrategy("setAuthToken",togoorder.getSavedUserData())||r.go("home")},100)}var l=this,a=togoorder.merchantId,v=s.search();c()}angular.module("main").controller("ssoCallbackController",["$rootScope","$scope","$log","$state","$stateParams","$uibModal","$filter","$window","$location","$timeout","notify","common","spinner",n])}(),function(){"use strict";function n(n,t,i){function f(t,i,r){return n.get(u.baseApiUrl+"api/GetLocationMap/"+t+"?lastMaxId="+i+"&pageSize=5&isUnlisted="+r).then(e,o("Error getting map"))}function e(n){return n.data}function o(n){return function(){return{success:!1,message:n}}}var r={},u=i.togoorder||{};return r.getMap=f,r}angular.module("main").factory("mapService",["$http","$rootScope","$window",n])}()