HSearchV2Endpoint SearchMeta Templates TranslationsCustomFieldSchemaCorporateCodeToIds LocationMap ListingsMapTemplateVersionPlatform  TemplateName KnownFieldParamsCustomFieldParamsAttributeGroupsIncludePrimaryLocaleLocale  LocaleInfo SearchMeta  SearchFeatureSiteSavedSearchIdFeatureSavedSearchId BusinessId SiteDomain SiteInternalHostname  IsStagingVersionsIsHttps SearchFeatureSearchFeatureIdSiteIdLocationPageSetIdLocationPageSetName Name  Templates QueryParam MaxRadiusParam PageResultParam PageToShowParam TotalResultParam  MaxRadius PageResults TotalResultsUrls SecretKey CustomParamsJson  CustomParamsCustomSearchFieldsCustomAutocompleteUrl ForceCustomSearcherSavedSearchOverrideIdDisableReverseIpSearch ApiParams> TemplatesDesktopTemplate MobileTemplate *UrlsUrl  UrlTemplate "[]sites.CustomParam0 CustomParamCustomIdParam ([]sites.CustomSearchField<CustomSearchFieldParam Field Mode []config.ApiParamOApiParamName  DefaultValue  QueryParam  IgnoreQuery!map[string]string  $[]hosting.FileContentX FileContentFilename Content MetaLocale  CacheControl >CustomFieldSchema FieldById ChoiceById5$map[int64]*profilesearch.CustomFieldFIdTypeName ChoiceXXX_unrecognized 2#[]*profilesearch.CustomField_Choice1IdName XXX_unrecognized map[int64]string map[string]int64 6%map[int64]sites.partnerListingsByName   &[]sites.KnownFieldParamCKnownFieldParamAbstractFieldParam FieldName WAbstractFieldParamUrlParam Mode ValueRequireOtherParams'[]sites.CustomFieldParamHCustomFieldParamAbstractFieldParam CustomFieldId$SiteAttributeGroups  i SiteAttribute AttributeId DisplayName  Description Type Key Entries)[]sites.SiteAttributeEntry5SiteAttributeEntryValue Locale S LocaleInfoDisableAlternateProfile PrimaryLocale Locales[]string m LocationsSearchdesktop.search.defaultdesktop.search.defaultqrperpmax2  url.search 78c4fea4f523fefb64373d981d348e03tdealers.poolguardusa.comdealers.poolguardusa.comen search.html`templates/common/branding.soy${namespace branding} /** * brandName * @param siteAttributes */ {template .brandName} {$siteAttributes.brand.name} {/template} /** * footerName * @param siteAttributes */ {template .footerName} {call .brandName data="all" /} {/template} /** * svg_pin_color * @param siteAttributes */ {template .svg_pin_color} {let $color} {$siteAttributes.colors?.svgpin?:'black'} {/let} {call components.util.data_for_js} {param id: 'svg-color' /} {param content: ['color': $color] /} {/call} {/template} /** * mmp_template_name * @param siteAttributes */ {template .mmp_template_name} {$siteAttributes.brand.template | slugify} {/template} /** * corporateLink * @param? pretty * @param siteAttributes */ {template .corporateLink} {if $pretty} {$siteAttributes.corporate_link.pretty} {else} {$siteAttributes.corporate_link.ugly} {/if} {/template} /** * favicon * @param siteAttributes */ {template .favicon} {if $siteAttributes?.brand?.favicon} {/if} {/template} /** * locator_link_text * @param siteAttributes */ {template .locator_link_text} {$siteAttributes?.header?.locator_text?:''} {/template} /** * locator_link_url * @param siteAttributes */ {template .locator_link_url} {$siteAttributes?.header?.locator_url?:''} {/template} /** * logoUrl * @param siteAttributes */ {template .logoUrl} {imageDynamic($siteAttributes.brand.logo, '66x')} {/template} /** * header * @param baseUrl * @param locale * @param siteAttributes */ {template .header} {let $corporateLink} {call .corporateLink data="all" /} {/let} {let $locatorLinkText} {call .locator_link_text data="all" /} {/let} {let $locatorLink} {let $customLink} {call .locator_link_url data="all" /} {/let} {if strlen($customLink) > 0} {$customLink} {else} {$baseUrl}{call url.search data="all" /} {/if} {/let} {call common.modules.header data="all"} {param links: $siteAttributes.header ?: [:] /} {param logo} {call .logoUrl data="all" /} {/param} {param corporateLink: $corporateLink /} {param locatorLink: [ 'url': $locatorLink, 'text': $locatorLinkText ] /} {/call} {/template} /** * footer * @param baseUrl * @param locale * @param crumbNames * @param crumbUrls * @param? hideBreadcrumbs * @param siteAttributes */ {template .footer} {let $locatorLink} {call branding.locator_link_text data="all" /} {/let} {let $hasLocator: strlen($locatorLink) > 0 /} {call common.modules.footer data="all"} {param mmpTemplateName} {call .mmp_template_name data="all" /} {/param} {param socialLinks: [ 'Facebook': $siteAttributes.social.facebook ?: '', 'Pinterest': $siteAttributes.social.pinterest ?:'', 'Twitter': $siteAttributes.social.twitter ?:'', 'Google+': $siteAttributes.social.google ?:'', 'Instagram': $siteAttributes.social.instagram ?:'', 'YouTube': $siteAttributes.social.youtube ?:'', 'LinkedIn': $siteAttributes.social.linkedin ?:'', 'Yelp': $siteAttributes.social.yelp ?:'', 'FourSquare': $siteAttributes.social.foursquare ?:'' ] /} {param showSearch: $hasLocator /} {/call} {/template} /** * root_bread_crumb * @param siteAttributes */ {template .root_bread_crumb} {call .what_to_call_a_location data="all"}{param pluralize: true /}{/call} {/template} /** * keywords * @param siteAttributes */ {template .keywords} {$siteAttributes.brand.keywords} {/template} /** * locator_page_title * @param brand * @param siteAttributes */ {template .locator_page_title} {call .parseContent data="all"} {param content} {$siteAttributes['page_titles']['locator']} {/param} {/call} {/template} /** * locator_h1 * @param brand * @param siteAttributes */ {template .locator_h1} {call .parseContent data="all"} {param content} {$siteAttributes['page_h1']['locator']} {/param} {/call} {/template} /** * locator_meta_description * @param brand * @param siteAttributes */ {template .locator_meta_description} {call .parseContent data="all"} {param content} {$siteAttributes['page_metas']['locator']} {/param} {/call} {/template} /** * what_to_call_a_location * @param? pluralize * @param siteAttributes */ {template .what_to_call_a_location} {if $pluralize} {$siteAttributes['brand']['location_noun_plural']} {else} {$siteAttributes['brand']['location_noun']} {/if} {/template} /** * location_schema_type * @param siteAttributes */ {template .location_schema_type} {$siteAttributes['brand']['schema_type']} {/template} /** * state_list_page_title * @param count * @param brand * @param countryName * @param siteAttributes */ {template .state_list_page_title} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_titles']['state_list']} {/param} {/call} {/template} /** * state_list_meta_description * @param count * @param brand * @param countryName * @param siteAttributes */ {template .state_list_meta_description} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_metas']['state_list']} {/param} {/call} {/template} /** * country_list_page_title * @param brand * @param siteAttributes */ {template .country_list_page_title} {call .parseContent data="all"} {param content} {$siteAttributes['page_titles']['country_list']} {/param} {/call} {/template} /** * country_list_meta_description * @param brand * @param siteAttributes */ {template .country_list_meta_description} {call .parseContent data="all"} {param content} {$siteAttributes['page_metas']['country_list']} {/param} {/call} {/template} /** * is_international * @param siteAttributes */ {template .is_international} {$siteAttributes?.brand?.international?:''} {/template} /** * city_list_page_title * @param brand * @param count * @param stateName * @param siteAttributes */ {template .city_list_page_title} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_titles']['city_list']} {/param} {/call} {/template} /** * city_list_meta_description * @param brand * @param count * @param stateName * @param siteAttributes */ {template .city_list_meta_description} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_metas']['city_list']} {/param} {/call} {/template} /** * location_list_page_title * @param brand * @param count * @param stateName * @param city * @param siteAttributes */ {template .location_list_page_title} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_titles']['location_list']} {/param} {/call} {/template} /** * location_list_meta_description * @param brand * @param count * @param stateName * @param city * @param siteAttributes */ {template .location_list_meta_description} {call .parseContent data="all"} {param locationNoun} {call .what_to_call_a_location data="all"} {param pluralize: parseInt($count) > 1 /} {/call} {/param} {param content} {$siteAttributes['page_metas']['location_list']} {/param} {/call} {/template} /** * parseContent * @param content * @param brand * @param? count * @param? countryName * @param? stateName * @param? city * @param? locationNoun */ {template .parseContent} {let $parsedCountryName} {if $countryName and $countryName == 'US'} the United States {else} {$countryName ?: ''} {/if} {/let} {let $compatibleKeys: [ [ 'key': '[[brand]]', 'value': $brand ], [ 'key': '[[count]]', 'value': $count ?:'' ], [ 'key': '[[country]]', 'value': $parsedCountryName ?: '' ], [ 'key': '[[state]]', 'value': $stateName ?: '' ], [ 'key': '[[city]]', 'value': $city ?: '' ], [ 'key': '[[locationnoun]]', 'value': $locationNoun ?: '' ] ] /} {foreach $compatibleKey in $compatibleKeys} {let $replacedContent: $compatibleKey.value ? replace($replacedContent?:$content, $compatibleKey['key'], $compatibleKey['value']): $replacedContent ?: $content /} {if isLast($compatibleKey)} {$replacedContent|noAutoescape} {/if} {/foreach} {/template} /** * @param siteAttributes */ {template .priceRange} {if strlen($siteAttributes?.schema_price_range ?: '') > 0} {$siteAttributes.schema_price_range} {/if} {/template} "templates/common/head-includes.soy,{namespace common} /** * @param baseUrl * @param crumbNames * @param crumbUrls * @param logo * @param title * @param? description * @param? keywords * @param isStaging * @param siteDomain * @param siteAttributes * @param isHttps */ {template .head_tags} {call common.include.dns_prefetch /} {call branding.favicon data="all" /} {let $metaDescription} {if $description} {$description |noAutoescape} {else} {if length($crumbNames) > 1} in{sp} {foreach $crumb in $crumbNames} {$crumbNames[(length($crumbNames) - 1) - index($crumb)]} {if index($crumb) < length($crumbNames) - 2}, {/if} {/foreach}. {/if} {/if} {/let} {call common.helpers.canonical_link data="all" /} {$title |noAutoescape} {if $isStaging} {/if} {/template} templates/common/helpers.soy{namespace common.helpers} /** * * @param siteAttributes */ {template .googleTagManager} {if $siteAttributes?.gtm?.id?:''} {/if} {/template} /** * * @param siteAttributes */ {template .gtmBody} {if $siteAttributes?.gtm?.id?:''} {/if} {/template} /** * Get Directions component * @param address1 * @param? address2 * @param state * @param city * @param postalCode * @param country * @param? listings * @param? provider * @param? buttonText * @param? noTrack * @param? gaCategory * @param? yaTrack */ {template .get_directions_mobile}
{if $buttonText} {$buttonText |noAutoescape} {else} {msg desc=""} Get Directions {/msg} {/if}
{/template} /** * @param baseUrl * @param? placeHolder * @param? formLabel * @param? defaultValue * @param? optionalInputs * @param locale * @param? level // * @param? siteDomain * @param siteAttributes * @param? title */ {template .simple_search} {call components.search.search_form data="all"} {param searcherPath} {$baseUrl}{call url.search data="all" /} {/param} {param content} {if $title} {call components.util.h_level} {param level: $level ?: 2 /} {param contents} {call branding.locator_h1 data="all"} {param brand: $title /} {/call} {/param} {param class: 'search-title' /} {/call} {/if}

{call components.search.input data="all"} {param formLabel} {msg desc="Search help text"} City, State/Provice, Zip or City & Country {/msg} {/param} {param queryParameter: 'q' /} {param placeHolder} {if $placeHolder} {$placeHolder} {else} {msg desc=""} e.g. Chicago, IL {/msg} {/if} {/param} {/call} {call components.search.search_button data="all"} {param submitLabel} {msg desc="Search"} search {/msg} {/param} {/call}

{call components.search.optional_inputs data="all" /} {/param} {/call} {/template} /** * @param city * @param customByName * @param? hideSpans * @param name */ {template .location_name} {if not $hideSpans} {$name} {sp} {if $customByName['Geomodifier'] and strlen($customByName['Geomodifier'] ?: '') > 0} {$customByName['Geomodifier']} {else} {$city} {/if} {else} {$name} {sp} {if $customByName['Geomodifier'] and strlen($customByName['Geomodifier'] ?: '') > 0} {$customByName['Geomodifier']} {else} {$city} {/if} {/if} {/template} /** */ {template .keywords} // TODO: Put some keywords here! {/template} /** * @param siteDomain * @param crumbUrls * @param isHttps */ {template .canonical_link} {/template} /** * @param siteDomain * @param crumbUrls * @param isHttps */ {template .canonical_link_url} {let $lastCrumb} {if $crumbUrls[length($crumbUrls)-1] != 'index.html'} {$crumbUrls[length($crumbUrls)-1]} {/if} {/let} http{if $isHttps}s{/if}://{$siteDomain}/{$lastCrumb} {/template} /** * @param baseUrl */ {template .set_baseUrl} {/template} /** * @param id */ {template .set_locationId} {/template} /** * @param crumbUrls * @param https * @param siteDomain */ {template .app_search_metadata} {call components.associatedapps.app_search_metadata data="all"} {param apple_app_id: 'my_apple_app_id' /} {/call} {/template} /** * noopener and noreferrer are used for extra security * https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/ */ {template .link_new_tab} target="_blank" rel="nofollow noopener noreferrer" {/template} &templates/common/includes/cityList.soy {namespace common.include} /** * cityList Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .cityList_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} $templates/common/includes/colors.soy'{namespace common.include} /** * colors * @param siteAttributes * @param mmpTemplateName */ {template .colors} {call .generateStyleBlocks data="all" /} {/template} /** * generateSelectors * @param mmpTemplateName * @param siteAttributes */ {template .generateStyleBlocks} {/template} /** * GenerateStyleBlock * @param selectors * @param propertyValuePairs * @param mmpTemplateName */ {template .generateStyleBlock} {call .generateSelectors data="all" /} {call .generateDeclarationBlock data="all" /} {/template} /** * generateSelectors * @param mmpTemplateName * @param selectors */ {template .generateSelectors} {foreach $selector in $selectors} .{$mmpTemplateName}{sp}{$selector}{if not isLast($selector)},{sp}{/if} {/foreach} {/template} /** * declarationBlock * @param propertyValuePairs */ {template .generateDeclarationBlock} {lb} {foreach $key in keys($propertyValuePairs)} {$key}: {$propertyValuePairs[$key] |noAutoescape}; {/foreach} {rb} {/template} )templates/common/includes/countryList.soy {namespace common.include} /** * countryList Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .countryList_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} &templates/common/includes/location.soy {namespace common.include} /** * location Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .location_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} *templates/common/includes/locationList.soy {namespace common.include} /** * locationList Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .locationList_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} $templates/common/includes/search.soy {namespace common.include} /** * search Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .search_assets} {call .modernizr data="all" /} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} %templates/common/includes/sitemap.soy {namespace common.include} /** * sitemap Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .sitemap_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} 'templates/common/includes/stateList.soy {namespace common.include} /** * stateList Assets * @param siteAttributes * @param mmpTemplateName * @param baseUrl */ {template .stateList_assets} {call mmp.specific data="all"} {param templates: ['victoria'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['highland'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['pike'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['terrace'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['cove'] /} {param content} {/param} {/call} {call mmp.specific data="all"} {param templates: ['boulevard'] /} {param content} {/param} {/call} {call .colors data="all" /} {/template} #templates/common/includes/utils.soy{namespace common.include} /** * modernizr * @param baseUrl */ {template .modernizr} {/template} {template .dns_prefetch} {/template} templates/common/layout.soyu{namespace common} /** * This template is intended to be heavily modified as needed on each implementation. * It is intended to keep elements that are common to every page on the site in this template. * The templating structure is heavily inspired by the hierarchy of templates in Rails. * See http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield for more information. * @param baseUrl * @param crumbNames * @param crumbUrls * @param? isStaging * @param? isHttps * @param locale * @param siteDomain * @param siteId * @param soyTemplateName * @param logo // content params: * @param pageTitle * @param metaDescription * @param metaKeywords * @param isHttps * @param pageContent * @param pageLevel * @param analytics * @param? headInclude * @param? bodyInclude * @param? schemaScope * @param? showBackToTop * @param? hideBreadcrumbs * @param? noFooter * @param? mmpTemplateName * @param? stickyFooter * @param siteAttributes * @param? address1 * @param? city * @param? state * @param? country * @param? postalCode * @param siteAttributes * @param mmpTemplateName */ {template .layout} {$headInclude ?: '' |noAutoescape} {call common.head_tags data="all"} {param logo} {call branding.logoUrl data="all" /} {/param} {param title: $pageTitle /} {param keywords: $metaKeywords /} {param description: $metaDescription /} {/call} {call common.helpers.set_baseUrl data="all" /} // doing this so that all sentry errors can go into the same project {call components.monitoring.init data="all"} {param siteDomain: 'Templated Pages' /} {param siteId: 9999999 /} // Pick an arbitrary, large number that won't intersect with another siteId {/call} {if $schemaScope} {/if} {call components.google_analytics.main data="all"} {param analyticsMap: $siteAttributes?.google_analytics ?: [:] /} {param pageLevel: $pageLevel /} {/call} {$analytics |noAutoescape} {call common.helpers.googleTagManager data="all" /} {call common.helpers.gtmBody data="all" /} // See here: http://webaim.org/techniques/skipnav/ Skip to content {if not $noFooter} {/if} {if not $noFooter} {call branding.footer data="all" /} {/if} {$bodyInclude ?: '' |noAutoescape} {call branding.svg_pin_color data="all" /} {/template} templates/common/mmp.soy{namespace mmp} /** * @param mmpTemplateName * @param templates * @param content */ {template .specific} {foreach $t in $templates} {call .belongs data="all"} {param t: $t /} {/call} {/foreach} {/template} /** * @param mmpTemplateName * @param t * @param content */ {template .belongs} {if $t == $mmpTemplateName} {$content| noAutoescape} {/if} {/template} )templates/common/modules/LocationCard.soy{namespace common.modules} /** * location_card * @param baseUrl * @param showMap * @param? hLevel * @param address1 * @param address2 * @param city * @param state * @param stateName * @param postalCode * @param sublocality * @param country * @param countryName * @param hours * @param latitude * @param longitude * @param locale * @param phones * @param name * @param id * @param siteDomain * @param? listings * @param url * @param? milesToQueryLocation * @param? showStorePhoto * @param? storePhoto * @param? dontHideSpans * @param customByName * @param? yaVisit * @param? yaCall * @param? yaDirections * @param? yaTitle */ {template .location_card}
{if $showStorePhoto} {if $storePhoto}
Store Photo
{else} {call components.maps.locationMap data="all"} {param name} {call common.helpers.location_name data="all" } {param hideSpans: true /} {/call} {/param} {param zoom: 15 /} {param provider: 'MapboxGL' /} {param disableMapControl: true /} {param itemRefs: '' /} {param hideSchema: true /} {param mapID: 'location-card-' + $id /} {/call} {/if} {elseif $showMap} {call components.maps.locationMap data="all"} {param name} {call common.helpers.location_name data="all" } {param hideSpans: true /} {/call} {/param} {param zoom: 15 /} {param provider: 'MapboxGL' /} {param disableMapControl: true /} {param itemRefs: '' /} {param hideSchema: true /} {param mapID: 'location-card-' + $id /} {/call} {/if} {call components.util.h_level} {param level: $hLevel ?: 3 /} {param contents} {call common.helpers.location_name data="all" } {param hideSpans} {if not $dontHideSpans} {true} {/if} {/param} {/call} {/param} {param class: 'LocationCard-title LocationCard-top' /} {/call}
{if length($hours?.days ?: []) > 0} {call components.hours.location_hours_today data="all"} {param hideSchema: true /} {/call} {/if} {if $milesToQueryLocation}
{call .pin_distance data="all" /}
{/if}
{call components.address data="all"} {param stateAbbr: true /} {param hideSchema: true /} {/call}
{/template} /** * @param milesToQueryLocation */ {template .pin_distance} {floor($milesToQueryLocation)} {if $milesToQueryLocation < 10} .{floor(100*($milesToQueryLocation-floor($milesToQueryLocation)))} {/if} miles {/template} )templates/common/modules/LocationName.soy{namespace common.modules} /** * @param city * @param displayAddress * @param? hideSpans * @param name * @param? hideSchema */ {template .LocationName} {if not $hideSpans} {$name} {sp} {if strlen($displayAddress ?: '') > 0} {$displayAddress} {else} {$city} {/if} {else} {$name} {sp} {if strlen($displayAddress ?: '') > 0} {$displayAddress} {else} {$city} {/if} {/if} {/template} "templates/common/modules/Promo.soy{namespace common.modules} /** * Promo Alpha * @param description * @param details * @param? clickthrough_url * @param? sizes * @param? alternateText * @param? buttonText * @param? yaTrackName */ {template .Promo} {let $hasPromoUrl: strlen($clickthrough_url ?: '') > 0 and strlen($buttonText ?: '') > 0 /} {let $hasPromoImage: length($sizes ?: []) > 0 /} {let $altText: strlen($alternateText ?: '') > 0 ? $alternateText : '' /}
{if $hasPromoImage}
{$altText}
{/if}

{$description}

{$details}
{if $hasPromoUrl} {/if}
{/template} #templates/common/modules/Teaser.soy U{namespace common.modules} /** * Teaser * @param baseUrl * @param name * @param address1 Contains the street address * @param address2 Contains the second line of the street address * @param displayAddress // * @param customByName * @param city * @param state The abbreviated format of a state * @param stateName * @param sublocality * @param postalCode * @param country Abbreviated format of a country * @param countryName * @param latitude * @param longitude * @param listings * @param phones * @param hours * @param url * @param locale * @param? modifier Use to vary the Teaser based on where it's called * @param? hLevel * @param? milesToQueryLocation * @param? prettyQuery */ {template .Teaser} {let $hasMiles: isNonnull($milesToQueryLocation) /}
{if $hasMiles}
{/if} {call components.util.h_level} {param contents} {call common.modules.LocationName data="all"} {param hideSchema: true /} {/call} {/param} {param class} Teaser-title Heading Heading--sub{if not $hasMiles} Teaser-title--full{/if} {/param} {param level: $hLevel ?: 3 /} {/call} {if $hasMiles} {let $distance} {call .formatDistance data="all" /} {/let} {msg desc="Shows the distance from the location to the user's query location"} {$distance |noAutoescape} {sp} to {$prettyQuery ?: 'your search'} {/msg}
{/if}
{call components.hours.location_hours_today data="all"} {param hours: $hours /} {param hideSchema: true /} {/call}
{call components.address data="all"} {param stateAbbr: true /} {param hideSchema: true /} {/call}
{call components.phones_with_include data="all"} {param includeKeys: ['MAIN'] /} {param hideSchema: true /} {/call}
{/template} /** * @param milesToQueryLocation */ {template .formatDistance} {floor($milesToQueryLocation)} {if $milesToQueryLocation < 10} .{floor(100*($milesToQueryLocation-floor($milesToQueryLocation)))} {/if} mi. {/template} #templates/common/modules/banner.soy{namespace common.modules} /** * banner * @param bannerContent * @param? image * @param mmpTemplateName */ {template .banner} {call .bannerImage data="all" /} {/template} /** * @param? image * @param mmpTemplateName */ {template .bannerImage} {if $image} {/if} {/template} #templates/common/modules/footer.soy {namespace common.modules} /** * @param? socialLinks * @param baseUrl * @param siteAttributes * @param locale * @param crumbNames * @param crumbUrls * @param? hideBreadcrumbs * @param showSearch * @param mmpTemplateName */ {template .footer} {/template} #templates/common/modules/header.soy{namespace common.modules} /** * @param logo * @param corporateLink * @param links // coming from siteAttributes / text1 with href1 * @param? locatorLink // link object same as above * @param baseUrl */ {template .header} {let $hasLocator: strlen($locatorLink.text) > 0 /} {let $totalLinks: floor(length(keys($links)) / 2 + ($hasLocator ? 1: 0)) /} {let $preYaTrack} nav_link_ {/let}
{call .nav_toggle data="all" /} {call .logo data="all"} {param yaTrack: 'logo_header' /} {/call} {if $hasLocator} {call .locator_link data="all" /} {/if}
{/template} /** * logo * @param corporateLink * @param logo * @param? yaTrack */ {template .logo} Visit {$corporateLink} {/template} /** * header_link * @param url * @param text * @param index * @param totalLinks * @param? isLocator * @param baseUrl * @param yaTrack */ {template .header_link} {let $type} {if $isLocator} Header-locator--link {else} header-link {/if} {/let}
{if $isLocator} {call .locatorLinkContents data="all" /} {else} {$text |noAutoescape} {/if}
{/template} /** * locatorLinkContents * @param text * @param baseUrl */ {template .locatorLinkContents} {$text} {call .locator_icon data="all" /} {/template} /** * locator_icon * @param baseUrl */ {template .locator_icon} {/template} /** * locator_link * @param? locatorLink * @param baseUrl */ {template .locator_link} {if $locatorLink} {$locatorLink.text} {call .locator_icon data="all" /} {/if} {/template} /** * nav_toggle * @param baseUrl */ {template .nav_toggle} {/template} (templates/components/Corsair/Corsair.soy{namespace components.corsair} 4templates/components/GoogleAdwords/GoogleAdwords.soy{namespace components.google_adwords} /** * Used only for page load * @param conversionId * @param conversionLabel // deprecated according to Google, but some clients using * @param? remarketingOnly // should always be true, but some clients set to false */ {template .script_tag} {/template} // Used when tags need to be fired dynamically // Add in // Used in conjuction with window.google_trackConversion() // https://developers.google.com/adwords-remarketing-tag/asynchronous/#placement-amp-behaviour {template .script_tag_async} {/template}8templates/components/GoogleAnalytics/GoogleAnalytics.soy{namespace components.google_analytics} /* In Common Layout with Yext and Client ID's {call components.google_analytics.main data="all"} {param analyticsMap: [ 'Yext': 'UA-23667760-1', 'Taco Bell': 'UA-90193539-3' ]/} {param pageLevel: $pageLevel /} {/call} */ /* In Common Layout with Yext only ID's {call components.google_analytics.main data="all"} {param analyticsMap: [ 'Yext': 'UA-23667760-1' ]/} {param pageLevel: $pageLevel /} {/call} */ /** * @param analyticsMap * @param pageLevel * @param? address1 * @param? city * @param? state * @param? country * @param? postalCode * @param? preventAutoSend */ {template .main} {/template} /** * @param analyticsMap * @param category * @param levels */ {template .record_geo_event_labels} {let $label} {foreach $level in $levels} {if $level} {$level}{if not isLast($level)}, {/if} {/if} {/foreach} {/let} {if $label} {call .record_geo_event data="all"} {param label: $label /} {/call} {/if} {/template} /** * @param analyticsMap * @param category * @param label */ {template .record_geo_event} {/template} /** * @param analyticsMap * @param queryLocation * @param resultCount */ {template .geo_locator} {let $resultsNumThreshold: 5 /} // Number of max results we send a 'Few Results' label {let $city: $queryLocation.city /} {let $state: $queryLocation.state /} {let $geoCategory} {if $resultCount == 0} Search - Zero Results {elseif $resultCount > $resultsNumThreshold} Search - Many Results (> {$resultsNumThreshold}) {else} Search - Few Results (0 <= {$resultsNumThreshold}) {/if} {/let} {call .record_geo_event_labels data="all"} {param category: $geoCategory /} {param levels: [$city, $state] /} {/call} {/template} /** * @param analyticsMap * @param state * @param? city * @param resultCount */ {template .geo_main} {let $geoCategory} {if $city and $state} CityList Directory (count = {$resultCount}) {else} StateList Directory (count = {$resultCount}) {/if} {/let} {call .record_geo_event_labels data="all"} {param category: $geoCategory /} {param levels: [$city, $state] /} {/call} {/template} $templates/components/Image/Image.soyo{namespace components.Image} /* {call components.Image.ObjectFit data="all"} {param baseClass: 'EventDirectory' /} {param url: $eventDirectoryImage /} {param altText: 'Event Directory Photo' /} {/call} Make sure to still target your image in css, and set a height/width .EventDirectory-image { height: 10rem; width: 100%; } */ /** * @param baseClass * @param url * @param altText */ {template .ObjectFit}
{$altText |noAutoescape}
{/template} 2templates/components/LocationGrid/LocationGrid.soy{namespace components} /* {call components.location_grid} {param baseUrl: /} {param keys: /} {param modifier: /} {param linkAddressToGetDirections: /} {/call} */ /** * Location grid component * @param baseUrl * @param keys * @param? modifier * @param? linkAddressToGetDirections * @param? hLevel */ {template .LocationGrid}
{if $linkAddressToGetDirections} {call components.yext_analytics.drivingdirection /} {/if} {/template} 4templates/components/LocationHours/LocationHours.soy@{namespace components.hours} /* {call components.hours.location_hours} {param hours: /} {param title: /} {param highlightToday: /} {param highlightTodayDotAfterRow: /} {param showOpenToday: /} {param open24HoursMessage: /} {param openTodayMessage: /} {param hideSchema: /} {param dayOfWeekMapper: /} {param twentyFourHourClock: /} {param collapseDays: /} {param disableOpenUntil: /} {/call} */ /** * Location hours component * @param hours * @param? title * @param? highlightToday boolean * @param? highlightTodayBackground boolean * @param? showOpenToday * @param? open24HoursMessage * @param? openTodayMessage * @param? hideSchema * @param? dayOfWeekMapper * @param? twentyFourHourClock * @param? collapseDays * @param? wholeWeekMessage * @param? disableOpenUntil * @param? hLevel */ {template .location_hours}
{call components.util.h_level data="all"} {param class: 'c-location-hours-title' /} {param contents} {if isNonnull($title)} {$title |noAutoescape} {else} {msg desc=""} Store Hours: {/msg} {/if} {/param} {param level: $hLevel ?: 4 /} {/call} {if $hours.additionalText}
{$hours.additionalText}
{/if} {if $hours.days} {call .hours_table data="all" /} {if $showOpenToday} {call .open_today data="all" /} {/if} {/if}
{/template} /** * @param hours * @param? highlightToday boolean * @param? highlightTodayBackground boolean * @param? open24HoursMessage * @param? hideSchema * @param? dayOfWeekMapper * @param? twentyFourHourClock * @param? collapseDays * @param? wholeWeekMessage * @param? showOpenToday * @param? disableOpenUntil */ {template .hours_table} {let $days: $collapseDays ? collapseDays($hours.days) : $hours.days /} {let $dayIndexes: [ 'MONDAY': 0, 'TUESDAY': 1, 'WEDNESDAY': 2, 'THURSDAY': 3, 'FRIDAY': 4, 'SATURDAY': 5, 'SUNDAY': 6 ] /} {let $allDayMessage} {if $open24HoursMessage} {$open24HoursMessage} {else} {msg desc=""} Open 24 hours {/msg} {/if} {/let}
{if $collapseDays and length($days) == 1 and $days[0].day == 'MONDAY' and $days[0].through == 'SUNDAY'} {let $allWeekMessage: $wholeWeekMessage ?: 'All Week' /}
{if length($days[0].intervals) > 0} {foreach $interval in $days[0].intervals} {call .interval data="$interval"} {param allDayMessage} {$allDayMessage}, {$allWeekMessage} {/param} {param twentyFourHourClock: $twentyFourHourClock /} {param parentClass: 'c-location-hours-details' /} {/call} {/foreach} {else} Closed {$allWeekMessage} {/if}
{else} {foreach $d in $days} {let $dayHours: $d.holidayHoursIsRegular ? $d.intervals : ($d.holidayHours ?: $d.intervals) /} {/foreach}
{msg desc=""}Day of the Week{/msg} {msg desc=""}Hours{/msg}
{call .localize_day_of_week data="all"} {param dayOfWeek: $d.day /} {/call} {if $collapseDays and strlen($d.through ?:'') > 0} {sp}-{sp} {call .localize_day_of_week data="all"} {param dayOfWeek: $d.through /} {/call} {/if} {if length($dayHours) == 0} {msg desc=""} Closed {/msg} {else} {foreach $interval in $dayHours} {let $disable: length($dayHours) > 1 ? true : $disableOpenUntil /} {call .interval data="$interval"} {param allDayMessage: $allDayMessage /} {param twentyFourHourClock: $twentyFourHourClock /} {param parentClass: 'c-location-hours-details-row' /} {param disableOpenUntil: $disable /} {/call} {/foreach} {/if}
{/if}
{/template} /** * @param start * @param end * @param allDayMessage * @param? twentyFourHourClock * @param parentClass * @param? openUntilMidnightMessage * @param? openUntilMessage * @param? closedAtMessage * @param? disableOpenUntil */ {template .interval} {let $openUntilMidnightText} {if strlen($openUntilMidnightMessage ?: '') > 0} {$openUntilMidnightMessage |noAutoescape} {else} {msg desc=""} Open until midnight {/msg} {/if} {/let} {let $openUntilText} {if strlen($openUntilMessage ?: '') > 0} {$openUntilMessage |noAutoescape} {else} {msg desc=""} Open until {/msg} {/if} {/let} {let $closedAtText} {if strlen($closedAtMessage ?: '') > 0} {$closedAtMessage |noAutoescape} {else} {msg desc=""} Closed at {/msg} {/if} {/let} {if $start == 0 and $end == 0} {$allDayMessage ?: 'Open 24 Hours'} {else} {if $twentyFourHourClock} {timef('15:04', floor($start))} {sp}-{sp} {timef('15:04', floor($end))} {else} {timef('3:04 PM', floor($start))} {sp}-{sp} {timef('3:04 PM', floor($end))} {/if} {/if} {/template} /** * @param hours * @param? showOpenToday * @param? highlightToday */ {template .hours_data} {sp} data-days='{$hours.days |json}' data-showOpenToday='{$showOpenToday ?: false |json}' data-highlightToday='{$highlightToday ?: false |json}' {/template} /** * @param? openTodayMessage */ {template .open_today}
{if $openTodayMessage} {$openTodayMessage |noAutoescape} {else} {msg desc=""} Open Today {/msg} {/if}
{/template} /** * @param dayOfWeek * @param? dayOfWeekMapper */ {template .localize_day_of_week} {let $mon} {msg desc=""} Monday {/msg} {/let} {let $tue} {msg desc=""} Tuesday {/msg} {/let} {let $wed} {msg desc=""} Wednesday {/msg} {/let} {let $thu} {msg desc=""} Thursday {/msg} {/let} {let $fri} {msg desc=""} Friday {/msg} {/let} {let $sat} {msg desc=""} Saturday {/msg} {/let} {let $sun} {msg desc=""} Sunday {/msg} {/let} {let $formattableDays: $dayOfWeekMapper ?: [ 'MONDAY': $mon, 'TUESDAY': $tue, 'WEDNESDAY': $wed, 'THURSDAY': $thu, 'FRIDAY': $fri, 'SATURDAY': $sat, 'SUNDAY': $sun ] /} {$formattableDays[$dayOfWeek] ?: $dayOfWeek |noAutoescape} {/template} /* {call components.hours.schemaHours} {param day: /} {param intervals: /} {param through: /} {/call} */ /** * @param day * @param? through * @param? collapseDays * @param intervals */ {template .schemaHours} {let $weekschema: [ 'MONDAY': 'Mo', 'TUESDAY': 'Tu', 'WEDNESDAY': 'We', 'THURSDAY': 'Th', 'FRIDAY': 'Fr', 'SATURDAY': 'Sa', 'SUNDAY': 'Su' ]/} {if $intervals} {if length($intervals) > 0} {let $interval: $intervals[0]/} {if $interval and ($interval.start or $interval.end)} itemprop="openingHours" content=" {$weekschema[$day]}{if $through and $collapseDays}-{$weekschema[$through]}{/if}{sp} {foreach $interval in $intervals} {timef('15:04', $interval.start)}-{timef('15:04', $interval.end)} {if not isLast($interval)} {sp} {/if} {/foreach} " {elseif isNonnull($interval.start) and isNonnull($interval.end)} // start & end are 0 so open 24 hours itemprop="openingHours" content="{$weekschema[$day]}{if $through}-{$weekschema[$through]}{/if}{sp}All Day" {/if} {else} itemprop="openingHours" content="{$weekschema[$day]}{if $through}-{$weekschema[$through]}{/if}{sp}Closed" {/if} {/if} {/template} /* {call components.hours.location_hours_today} {param hours: /} {param open24HoursMessage: /} {param hourIntervalSeparator: /} {param hideSchema: /} {/call} */ /** * Location hours today component * @param hours * @param? open24HoursMessage * @param? hourIntervalSeparator * @param? hideSchema * @param? openTodayMessage * @param? closedTodayMessage * @param? collapseDays * @param? allWeekMessage * @param? disableOpenUntil passthrough to intervals * @param? openUntilMidnightMessage passthrough to intervals * @param? openUntilMessage passthrough to intervals * @param? closedAtMessage passthrough to intervals * @param? twentyFourHourClock passthrough to intervals */ {template .location_hours_today} {if $hours} {let $dayIndexes: [ 'MONDAY': 0, 'TUESDAY': 1, 'WEDNESDAY': 2, 'THURSDAY': 3, 'FRIDAY': 4, 'SATURDAY': 5, 'SUNDAY': 6 ] /} {let $days: $collapseDays ? collapseDays($hours.days) : $hours.days /} {foreach $d in $days } {let $dayHours: $d.holidayHoursIsRegular ? $d.intervals : ($d.holidayHours ?: $d.intervals) /} {let $disable: length($dayHours) > 1 ? true : $disableOpenUntil /} {let $otMessage} {if $disable} {if $openTodayMessage} {$openTodayMessage |noAutoescape} {else} {msg desc=""} Open Today {/msg} : {sp}{sp} {/if} {/if} {/let} {let $ctMessage} {if $closedTodayMessage} {$closedTodayMessage |noAutoescape} {else} {msg desc=""} Closed Today {/msg} {sp}{sp} {/if} {/let} {if length($dayHours) == 0} {$ctMessage |noAutoescape} {else} {$otMessage |noAutoescape} {/if} {sp} {call .location_hours_today_intervals data="all"} {param dayHours: $dayHours /} {param disableOpenUntil: $disable /} {/call} {if length($days) == 1 and $days[0].day == 'MONDAY' and $days[0].through == 'SUNDAY'} , {$allWeekMessage ?: 'All Week'} {/if} {/foreach} {/if} {/template} /** * @param open24HoursMessage * @param? hourIntervalSeparator * @param dayHours * @param? disableOpenUntil passthrough to intervals * @param? openUntilMidnightMessage passthrough to intervals * @param? openUntilMessage passthrough to intervals * @param? closedAtMessage passthrough to intervals * @param? twentyFourHourClock passthrough to intervals */ {template .location_hours_today_intervals} {foreach $interval in $dayHours} {if index($interval) != 0} {$hourIntervalSeparator ?: ', ' |noAutoescape} {/if} {call .interval data="$interval all"} {param allDayMessage: $open24HoursMessage /} {param parentClass: 'c-location-hours-today-day-hours' /} {param openUntilMidnightMessage: $openUntilMidnightMessage /} {param openUntilMessage: $openUntilMessage /} {param closedAtMessage: $closedAtMessage /} {param disableOpenUntil: $disableOpenUntil /} {param twentyFourHourClock: $twentyFourHourClock /} {/call} {/foreach} {/template} /** * Location hours component * @param hours * @param? highlightToday boolean * @param? highlightTodayBackground boolean * @param? showOpenToday * @param? open24HoursMessage * @param? openTodayMessage * @param? hideSchema * @param? dayOfWeekMapper * @param? collapseDays * @param? wholeWeekMessage * @param? hourIntervalSeparator * @param? closedTodayMessage * @param? allWeekMessage * @param? disableOpenUntil passthrough to intervals * @param? openUntilMidnightMessage passthrough to intervals * @param? openUntilMessage passthrough to intervals * @param? closedAtMessage passthrough to intervals * @param? twentyFourHourClock passthrough to intervals * @param? bootstrapClasses * @param? addCollapsed */ {template .location_hours_collapse}
{call components.hours.hours_table data="all"} {param hideSchema: true /} {/call}
{/template} 8templates/components/NearbyLocations/NearbyLocations.soy@{namespace components} /* {call components.nearby_locations} {param baseUrl: /} {param nearbyLocations: /} {param title: /} {param maxNumberOfLocationsToDisplay: /} {param campaign: /} {param pagesUrlCustomFieldName: /} {param hLevel: /} {param modifier: /} {/call} */ /** * Nearby locations component * @param baseUrl Passthrough * @param nearbyLocations Passthrough * @param? maxNumberOfLocationsToDisplay The number of nearby locations to display. If it is not specified, display 2 * @param? campaign * @param? pagesUrlCustomFieldName * @param? hLevel * @param? modifier * @param? title * @param? noTitle remove the title element * @param? wrapperElement override the semantics */ {template .NearbyLocations} {let $locNum: isNonnull($maxNumberOfLocationsToDisplay) ? $maxNumberOfLocationsToDisplay : 2 /} {let $wrapper: $wrapperElement ?: 'section' /} {if $locNum > 0 and length($nearbyLocations) > 0} <{$wrapper} class="c-NearbyLocations"> {if not $noTitle} {call components.util.h_level data="all"} {param class: 'c-NearbyLocations-header' /} {param contents} {if isNonnull($title)} {$title |noAutoescape} {else} {msg desc=""} Nearby Locations {/msg} {/if} {/param} {param level: $hLevel ?: 2 /} {/call} {/if}
    {for $i in range($locNum)} {let $l : $nearbyLocations[$i] /} {if $l} {let $pagesUrl: $pagesUrlCustomFieldName ?: 'Pages Url' /} {let $url : $campaign ? $l.customByName[$pagesUrl] : $baseUrl + $l.url /}
  1. {call common.modules.Teaser data="$l"} {param baseUrl: $baseUrl /} {param url: $url /} {param modifier: $modifier /} {param hLevel: $hLevel ?: 3 /} {/call}
  2. {/if} {/for}
{/if} {/template} ,templates/components/Polyfills/polyfills.soy!{namespace components.polyfills} +templates/components/Reviews/ReviewForm.soy {namespace components.reviews} /** */ {template .form_target}
{/template} /** * @param title * @param subtext * @param? hiddenInputs * @param? rating * @param? customStarSvg Passthrough to .form_star_rating * @param? reviewText * @param? messageInputLabel * @param? privacyCheckboxLabel * @param? submitButtonText * @param? editMode */ {template .form}
{call .form_title data="all" /} {if $hiddenInputs} {$hiddenInputs |noAutoescape} {/if} {call .form_star_rating data="all" /} {call .form_message_input data="all" /} {call .form_privacy_check data="all" /} {call .form_submit_button data="all" /}
{/template} /** * @param invitationId * @param locationId * @param? title * @param? subtext * @param? customStarSvg Passthrough to .form_star_rating * @param? privacyCheckboxLabel * @param? submitButtonText */ {template .new_review_form} {let $defaultTitle} {msg desc="Write a review for a location and rate it from 1 to 5 stars"} Rate Your Experience {/msg} {/let} {let $defaultSubtext} {msg desc="All fields of the form need to be completed before submitting"} All fields required {/msg} {/let} {call .form data="all"} {param title: $title ?: $defaultTitle /} {param subtext: $subtext ?: $defaultSubtext /} {param hiddenInputs} {/param} {/call} {/template} /** * @param reviewText * @param rating * @param surveyId * @param? title * @param? subtext * @param? customStarSvg Passthrough to .form_star_rating * @param? privacyCheckboxLabel * @param? submitButtonText */ {template .edit_review} {let $defaultTitle} {msg desc="Edit a review and rating from 1 to 5 stars for a location"} Edit Your Review {/msg} {/let} {let $defaultSubtext} {msg desc="All fields of the form need to be completed before submitting"} All fields required {/msg} {/let} {call .form data="all"} {param title: $title ?: $defaultTitle /} {param subtext: $subtext ?: $defaultSubtext /} {param editMode: true /} {param hiddenInputs} {/param} {/call} {/template} /** * @param title * @param subtext * @param? result */ {template .form_title}

{$title |noAutoescape}

{$subtext |noAutoescape}
{/template} /** * @param? rating * @param? customStarSvg * @param? editMode */ {template .form_star_rating} {let $inputName: $editMode ? 'surveyFormView.score' : 'score' /}
{msg desc="Rating for a location as part of a location review"} Rating {/msg}
{for $index in range(5)} {let $i: 5 - $index /} // Reversed for styling reasons {/for}
{/template} {template .star} // Avoid specifying stroke and fill colors here so they can be styled with CSS {/template} /** * @param? messageInputLabel * @param? reviewText * @param? editMode */ {template .form_message_input} {let $inputName: $editMode ? 'surveyFormView.message' : 'feedback' /} {/template} /** * @param? privacyCheckboxLabel */ {template .form_privacy_check} {if $privacyCheckboxLabel} {else}

{msg desc=""} There will be a delay between your submission and the public display of your review online. {/msg} {/if}
{/template} /** * @param? submitButtonText * @param? editMode * @param? yaEventName */ {template .form_submit_button} {let $newText}{msg desc=""}Submit a Review{/msg}{/let} {let $editText}{msg desc=""}Update Review{/msg}{/let} {let $defaultText: $editMode ? $editText : $newText /} {/template} /** */ {template .privacy_policy}
{msg desc=""} We will not sell your information without your consent. You can review our privacy policy {/msg} {sp} {msg desc="[You can review our privacy policy] here"} here {/msg} .
{/template} /* {call components.reviews.build_location_json data="all"} {param newReviewFormParams: [ 'title': 'New Form Title', 'subtext': 'Override form subtext', 'submitButtonText': 'Press me!' ] /} {param errorParams: [ 'title': 'You totally goofed up' ] /} {/call} */ /** * @param id * @param businessId * @param corporateCode * @param? newReviewFormParams Map of params and values to override template defaults * @param? editReviewFormParams * @param? successParams * @param? errorParams */ {template .build_location_json} {let $loc: [ 'id': $id, 'businessId': $businessId, 'corporateCode': $corporateCode, 'newReviewFormParams': $newReviewFormParams ?: [:], 'editReviewFormParams': $editReviewFormParams ?: [:], 'successParams': $successParams ?: [:], 'errorParams': $errorParams ?: [:] ] /} {call components.util.data_for_js} {param id: 'js-reviews-loc-data' /} {param class: 'js-reviews-loc-data' /} {param content: $loc /} {/call} {/template}(templates/components/Reviews/reviews.soy#5{namespace components} /** TO USE COMPONENT: yarn add slick-carousel Uncomment Slick Carousel css in vendor.scss **/ /** * @param reviews * @param brandName * @param? dateFormatString * @param? hLevel * @param? title * @param? reviewsPerSlideDesktop * @param? reviewsPerSlideMobile * @param? maxReviewsToShow * @param? mobileBreakpoint **/ {template .reviews} {if length($reviews.recent ?: []) > 0} {let $perSlideDesktopDefault: 4 /} {let $perSlideMobileDefault: 2 /} {let $mobileBreakpointDefault: 768 /}
{call components.util.h_level data="all"} {param class: 'c-Reviews-title' /} {param contents} {if isNonnull($title)} {$title |noAutoescape} {else} {msg desc="Recent Reviews"} Recent Reviews {/msg} {/if} {/param} {param level: $hLevel ?: 2 /} {/call}
{call .reviews_summary data="all"} {param totalMessage} {msg desc="Recent Reviews for"}(Based on {$reviews.total} Reviews){/msg} {/param} {/call}
{call .reviews_list data="all"} {param dateFormatString: 'DateFormatShort'/} {param reviewsPerSlideDesktop: $reviewsPerSlideDesktop ?: $perSlideDesktopDefault /} {param reviewsPerSlideMobile: $reviewsPerSlideMobile ?: $perSlideMobileDefault /} {param mobileBreakpoint: $mobileBreakpoint ?: $mobileBreakpointDefault /} {/call}
{call .reviews_paging data="all"} {param reviewsPerSlideDesktop: $reviewsPerSlideDesktop ?: $perSlideDesktopDefault /} {/call}
{/if} {/template} /** * @param reviews * @param reviewsPerSlideDesktop * @param? maxReviewsToShow */ {template .reviews_paging}
{call .reviews_page data="all" /}
{call .reviews_controls data="all" /}
{/template} /** * @param reviews * @param reviewsPerSlideDesktop * @param? maxReviewsToShow */ {template .reviews_page}
{if $reviews.total > 2} Displaying{sp} 1 - {$reviewsPerSlideDesktop} reviews of{sp} {if $reviews.total < 20} {$reviews.total} {else} {$maxReviewsToShow ?: 20} {/if} {/if}
{/template} {template .reviews_controls}
{/template} /** * @param? linkText */ {template .reviews_controls_link_previous} {/template} /** * @param? linkText */ {template .reviews_controls_link_next} {/template} /** * @param? separator */ {template .reviews_controls_link_separator} {$separator ?: '|'} {/template} /** * @param rating * @param? fullStarIcon * @param? halfStarIcon * @param? emptyStarIcon */ {template .review_stars}
Rating {floor($rating)}.{floor(10*($rating-floor($rating)))} {foreach $i in range(floor($rating))} {$fullStarIcon ?: '' |noAutoescape} {/foreach} {let $remainder: $rating - floor($rating) /} {if $remainder > 0.75} {$fullStarIcon ?: '' |noAutoescape} {elseif $remainder >= 0.25 and $remainder <= 0.75} {$halfStarIcon ?: '' |noAutoescape} {elseif $remainder < 0.25 and $remainder != 0} {$emptyStarIcon ?: '' |noAutoescape} {/if} {foreach $i in range(ceiling($rating),5)} {$emptyStarIcon ?: '' |noAutoescape} {/foreach}
{/template} /** * @param reviews * @param? dateFormatString * @param? fullStarIcon * @param? halfStarIcon * @param? emptyStarIcon * @param reviewsPerSlideDesktop * @param reviewsPerSlideMobile * @param mobileBreakpoint * @param brandName **/ {template .reviews_list} {/template} /** * @param authorName * @param rating * @param content * @param comments * @param reviewDate * @param brandName * @param? dateFormatString * @param? fullStarIcon * @param? halfStarIcon * @param? emptyStarIcon */ {template .review}
{call .review_stars data="all"} {param rating: $rating /} {/call}
{$content |changeNewlineToBr}
{if length($comments) > 0}
{foreach $comment in $comments} // There can be at most one response, by owner only, for first party reviews {if $comment.isOwnerResponse } {call .review_comment data="all" } {param comment: $comment /} {/call} {/if} {/foreach}
{/if}
{/template} /** * @param comment * @param? dateFormatString * @param brandName **/ {template .review_comment}
Response from {$brandName}
{$comment.content |changeNewlineToBr}
{/template} /** * @param reviews * @param? fullStarIcon * @param? halfStarIcon * @param? emptyStarIcon * @param? totalMessage * @param? hideSchema **/ {template .reviews_summary} {if $reviews.total ?: 0 > 0}
{floor($reviews.averageRating)}.{floor(10*($reviews.averageRating-floor($reviews.averageRating)))} {call .review_stars data="all"} {param rating: $reviews.averageRating /} {/call} {if not $hideSchema}{/if} {if $totalMessage} {$totalMessage} {else} {$reviews.total} {msg desc=""}Total Reviews{/msg} {/if}
{/if} {/template} 2templates/components/SpinnerModal/SpinnerModal.soyY{namespace components} /** * @param baseUrl * @param? image */ {template .fullPageSpinner}
{let $spinnerImage: $image ?: $baseUrl + 'assets/images/ajax-loader-transparent.gif' /} Page loading image
{/template} ,templates/components/VectorMap/VectorMap.soyd{namespace components.VectorMap} /** * J vector map component * @param id * @param keys * @param baseUrl * @param jVectorMapKeyName * @param? keyPrefix * @param? autoRender */ {template .map} {call .markup data="all" /} {call components.util.data_for_js} {param id} {$id}-data {/param} {param content} {call .keys_to_json data="all" /} {/param} {param prerenderedJson: true /} {/call} {/template} /** * markup * @param id * @param jVectorMapKeyName * @param? mapDescription * @param? mapTitle * @param? keyPrefix * @param? autoRender */ {template .markup}
{/template} /** * keys_to_json * @param keys * @param baseUrl */ {template .keys_to_json} [ {foreach $key in $keys} {lb} "key" : "{$key.key}", "fullUrl" : "{$baseUrl}{$key.url}", "name": "{$key.loc.stateName}" {rb}{if not isLast($key)},{/if} {/foreach} ] {/template} 4templates/components/YextAnalytics/YextAnalytics.soy{namespace components.yext_analytics} /** * launch * @param businessId * @param siteId * @param isStaging */ {template .launch} {/template} /** * invoke * @param data * @param? invokePageView * @param? clickTrackings */ {template .invoke} {foreach $tracker in $clickTrackings ?: []} {call .click data="$tracker" /} {/foreach} {/template} /* {call components.yext_analytics.location} {param id: /} {param businessId: /} {param siteId: /} {param locationPageSetId: /} {param invokePageView: /} {/call} */ /** * Yext Analytics Location component * @param id Passthrough * @param locationPageSetId Passthrough * @param businessId * @param siteId * @param isStaging * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param? clickTrackings */ {template .location} {call .launch data="all" /} {call .invoke data="all"} {param data: [ 'ids': $id, 'pageSetId': $locationPageSetId ] /} {/call} {/template} /* {call components.yext_analytics.entity} {param id: /} {param businessId: /} {param siteId: /} {param entityPageSetId: /} {param invokePageView: /} {/call} */ /** * Yext Analytics Location component * @param id Passthrough * @param entityPageSetId Passthrough * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param businessId * @param siteId * @param isStaging * @param? clickTrackings */ {template .entity} {call .launch data="all" /} {call .invoke data="all"} {param data: [ 'ids': $id, 'pageSetId': $entityPageSetId ] /} {/call} {/template} /* {call components.yext_analytics.directory_default} {param businessId: /} {param siteId: /} {param directoryId: /} {param crumbNames: /} {param invokePageView: /} {/call} */ /** * Yext Analytics Default Directory component * @param directoryId Passthrough * @param crumbNames Passthrough * @param businessId * @param siteId * @param isStaging * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param? clickTrackings */ {template .directory_default} {call .directory data="all"} {param path}{call .directory_path data="all"/}{/param} {/call} {/template} /* {call components.yext_analytics.directory} {param businessId: /} {param siteId: /} {param directoryId: /} {param path: /} {param invokePageView: /} {/call} */ /** * Yext Analytics Directory component * @param directoryId Passthrough * @param path The path to the current directory page (use yext_analytics.directory_default template unless you want to override the path variable) * @param businessId * @param siteId * @param isStaging * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param? clickTrackings */ {template .directory} {call .launch data="all" /} {call .invoke data="all"} {param data: [ 'directoryId': $directoryId, 'directoryPath': $path ] /} {/call} {/template} /* {call components.yext_analytics.directory_path} {param crumbNames: /} {/call} */ /** * Yext Analytics Directory Path * @param crumbNames Passthrough */ {template .directory_path} {foreach $crumbName in $crumbNames} {$crumbName} {if not isFirst($crumbName) and not isLast($crumbName)} / {/if} {/foreach} {/template} /* {call components.yext_analytics.search} {param businessId: /} {param siteId: /} {param searchId: /} {param invokePageView: /} {/call} */ /** * Yext Analytics Search component * @param searchId Passthrough * @param businessId * @param siteId * @param isStaging * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param? clickTrackings */ {template .search} {call .launch data="all" /} {call .invoke data="all"} {param data: [ 'searchId': $searchId ] /} {/call} {/template} /** * Yext Analytics Static component * @param staticPageId Passthrough * @param businessId * @param siteId * @param isStaging * @param? invokePageView Default: true. Put the code in to automatically trigger a page view * @param? clickTrackings */ {template .static} {call .launch data="all" /} {call .invoke data="all"} {param data: [ 'staticPageId': $staticPageId ] /} {/call} {/template} /** * Yext Analytics Click Binder * @param selector The selector on which to watch for events. Use double quotes or escape single quotes. * @param analyticsEventName The name of the event to trigger in Yext Analytics */ {template .click} {let $data: [ 'selector': $selector, 'name': $analyticsEventName ] /} {/template} /** * Helper template to ensure that analytics get added with this designated event name by default */ {template .calltoactionclick} {call .click} {param selector: '[data-ya-track="cta_main"]' /} {param analyticsEventName: 'cta_main' /} {/call} {/template} /** * Helper template to ensure that analytics get added with this designated event name by default */ {template .phonecall} {call .click} {param selector: '[data-ya-track="phone"]' /} {param analyticsEventName: 'phone' /} {/call} {/template} /** * Helper template to ensure that analytics get added with this designated event name by default */ {template .drivingdirection} {call .click} {param selector: '[data-ya-track="directions"]' /} {param analyticsEventName: 'directions' /} {/call} {/template} /** * Helper template to ensure that analytics get added with this designated event name by default */ {template .clicktowebsite} {call .click} {param selector: '[data-ya-track="website"]' /} {param analyticsEventName: 'website' /} {/call} {/template} 2templates/components/YoutubeEmbed/YoutubeEmbed.soy{namespace components} /* {call components.youtube_embed} {param video: /} {param embedYouTube: /} {param showYouTubeThumbnail: /} {param hideVideoControls: /} {param showVideoTitle: /} {param thumbnailIndex: /} {/call} */ /** * @param video * @param? embedYouTube * @param? hideVideoControls * @param? showVideoTitle * @param? thumbnailIndex * @param? hideSchema * @param? hideRelated * @param? id required if you use embedded iframe */ {template .youtube_embed} {if strlen($video) > 0}
{if not $hideSchema}
{/if} {if $embedYouTube ?: true} {else}
{/if} {if not $hideSchema}
{/if}
{/if} {/template} (templates/components/address/address.soy W{namespace components} /* {call components.address} {param stateAbbr: /} {param hideSchema: /} {param itemRefId: /} {param linkToGetDirections: /} {param address1: /} {param address2: /} {param city: /} {param state: /} {param postalCode: /} {param country: /} {/call} */ /** * Format a location address. * Generates a formatted address based on the options * specified as paramaters in the soy template call. * * Tag configuration: * @param stateAbbr Abbreviate the state (region)? (true, false) * @param? hideSchema Hide schema.org tags? (true, false) * @param? itemRefId an ID to use when referencing an address from an itemref attribute * @param? linkToGetDirections * @param? provider * * Location fields: * @param address1 Contains the street address * @param address2 Contains the second line of the street address * @param city * @param state The abbreviated format of a state * @param stateName * @param sublocality * @param postalCode * @param country Abbreviated format of a country * @param countryName * @param latitude * @param longitude * @param locale * @param? listings */ {template .address} {if not $hideSchema} {call .geo_coordinates data="all" /} {/if} {let $itemScope} {if not $hideSchema} {if strlen($itemRefId ?: '')>0} {sp}id="{$itemRefId}" {/if} {sp}itemscope itemtype="http://schema.org/PostalAddress" itemprop="address" {/if} {/let}
{if $linkToGetDirections} {/if} {call components.address.fields.streetSchema data="all" /} {call components.address.i18n.addressForCountry data="all" /} {if $linkToGetDirections} {/if}
{/template} /** * Pulls geo schema tag info * * @param latitude * @param longitude */ {template .geo_coordinates} {/template} %templates/components/address/demo.soybg{namespace components.address.i18n} /** * * * * IMPORTANT * * * * * This file is autogenerated by $ALPHA/gocode/src/yext/pages/sites/scripts/i18nyaml2soy/main.go * And should not be edited by hand. */ {template .demo} // TODO: Would be nice to replace countryName with the full country name - does YAML have it? {let $data: [ 'address1': '100 Test Dr', 'address2': 'Apt #1007', 'city': 'McLean', 'state': 'VA', 'stateName': 'Virginia', 'stateAbbr': true, 'sublocality': 'NoVa', 'postalCode': '22102', 'country': 'XXX', 'countryName': 'United States', 'latitude': 12.345, 'longitude': 54.321 ]/}

AD

{call components.address data="$data"}{param country: 'AD' /}{param locale: 'xxx' /}{/call}

AE

{call components.address data="$data"}{param country: 'AE' /}{param locale: 'xxx' /}{/call}

AF

{call components.address data="$data"}{param country: 'AF' /}{param locale: 'xxx' /}{/call}

AG

{call components.address data="$data"}{param country: 'AG' /}{param locale: 'xxx' /}{/call}

AL

{call components.address data="$data"}{param country: 'AL' /}{param locale: 'xxx' /}{/call}

AM

{call components.address data="$data"}{param country: 'AM' /}{param locale: 'xxx' /}{/call}

AO

{call components.address data="$data"}{param country: 'AO' /}{param locale: 'xxx' /}{/call}

AR

{call components.address data="$data"}{param country: 'AR' /}{param locale: 'xxx' /}{/call}

AS

{call components.address data="$data"}{param country: 'AS' /}{param locale: 'xxx' /}{/call}

AT

{call components.address data="$data"}{param country: 'AT' /}{param locale: 'xxx' /}{/call}

AU

{call components.address data="$data"}{param country: 'AU' /}{param locale: 'xxx' /}{/call}

AW

{call components.address data="$data"}{param country: 'AW' /}{param locale: 'xxx' /}{/call}

AX

{call components.address data="$data"}{param country: 'AX' /}{param locale: 'xxx' /}{/call}

AZ

{call components.address data="$data"}{param country: 'AZ' /}{param locale: 'xxx' /}{/call}

BA

{call components.address data="$data"}{param country: 'BA' /}{param locale: 'xxx' /}{/call}

BB

{call components.address data="$data"}{param country: 'BB' /}{param locale: 'xxx' /}{/call}

BD

{call components.address data="$data"}{param country: 'BD' /}{param locale: 'xxx' /}{/call}

BE

{call components.address data="$data"}{param country: 'BE' /}{param locale: 'xxx' /}{/call}

BG

{call components.address data="$data"}{param country: 'BG' /}{param locale: 'xxx' /}{/call}

BH

{call components.address data="$data"}{param country: 'BH' /}{param locale: 'xxx' /}{/call}

BJ

{call components.address data="$data"}{param country: 'BJ' /}{param locale: 'xxx' /}{/call}

BM

{call components.address data="$data"}{param country: 'BM' /}{param locale: 'xxx' /}{/call}

BN

{call components.address data="$data"}{param country: 'BN' /}{param locale: 'xxx' /}{/call}

BO

{call components.address data="$data"}{param country: 'BO' /}{param locale: 'xxx' /}{/call}

BQ

{call components.address data="$data"}{param country: 'BQ' /}{param locale: 'xxx' /}{/call}

BR

{call components.address data="$data"}{param country: 'BR' /}{param locale: 'xxx' /}{/call}

BS

{call components.address data="$data"}{param country: 'BS' /}{param locale: 'xxx' /}{/call}

BT

{call components.address data="$data"}{param country: 'BT' /}{param locale: 'xxx' /}{/call}

BY

{call components.address data="$data"}{param country: 'BY' /}{param locale: 'xxx' /}{/call}

BZ

{call components.address data="$data"}{param country: 'BZ' /}{param locale: 'xxx' /}{/call}

CA

{call components.address data="$data"}{param country: 'CA' /}{param locale: 'xxx' /}{/call}

CH

{call components.address data="$data"}{param country: 'CH' /}{param locale: 'xxx' /}{/call}

CL

{call components.address data="$data"}{param country: 'CL' /}{param locale: 'xxx' /}{/call}

CN

{call components.address data="$data"}{param country: 'CN' /}{param locale: 'xxx' /}{/call}

CO

{call components.address data="$data"}{param country: 'CO' /}{param locale: 'xxx' /}{/call}

CR

{call components.address data="$data"}{param country: 'CR' /}{param locale: 'xxx' /}{/call}

CW

{call components.address data="$data"}{param country: 'CW' /}{param locale: 'xxx' /}{/call}

CY

{call components.address data="$data"}{param country: 'CY' /}{param locale: 'xxx' /}{/call}

CZ

{call components.address data="$data"}{param country: 'CZ' /}{param locale: 'xxx' /}{/call}

DE

{call components.address data="$data"}{param country: 'DE' /}{param locale: 'xxx' /}{/call}

DJ

{call components.address data="$data"}{param country: 'DJ' /}{param locale: 'xxx' /}{/call}

DK

{call components.address data="$data"}{param country: 'DK' /}{param locale: 'xxx' /}{/call}

DO

{call components.address data="$data"}{param country: 'DO' /}{param locale: 'xxx' /}{/call}

DZ

{call components.address data="$data"}{param country: 'DZ' /}{param locale: 'xxx' /}{/call}

EC

{call components.address data="$data"}{param country: 'EC' /}{param locale: 'xxx' /}{/call}

EE

{call components.address data="$data"}{param country: 'EE' /}{param locale: 'xxx' /}{/call}

EG

{call components.address data="$data"}{param country: 'EG' /}{param locale: 'xxx' /}{/call}

ES

{call components.address data="$data"}{param country: 'ES' /}{param locale: 'xxx' /}{/call}

ET

{call components.address data="$data"}{param country: 'ET' /}{param locale: 'xxx' /}{/call}

FI

{call components.address data="$data"}{param country: 'FI' /}{param locale: 'xxx' /}{/call}

FJ

{call components.address data="$data"}{param country: 'FJ' /}{param locale: 'xxx' /}{/call}

FK

{call components.address data="$data"}{param country: 'FK' /}{param locale: 'xxx' /}{/call}

FM

{call components.address data="$data"}{param country: 'FM' /}{param locale: 'xxx' /}{/call}

FR

{call components.address data="$data"}{param country: 'FR' /}{param locale: 'xxx' /}{/call}

GA

{call components.address data="$data"}{param country: 'GA' /}{param locale: 'xxx' /}{/call}

GB

{call components.address data="$data"}{param country: 'GB' /}{param locale: 'xxx' /}{/call}

GD

{call components.address data="$data"}{param country: 'GD' /}{param locale: 'xxx' /}{/call}

GE

{call components.address data="$data"}{param country: 'GE' /}{param locale: 'xxx' /}{/call}

GF

{call components.address data="$data"}{param country: 'GF' /}{param locale: 'xxx' /}{/call}

GG

{call components.address data="$data"}{param country: 'GG' /}{param locale: 'xxx' /}{/call}

GH

{call components.address data="$data"}{param country: 'GH' /}{param locale: 'xxx' /}{/call}

GI

{call components.address data="$data"}{param country: 'GI' /}{param locale: 'xxx' /}{/call}

GN

{call components.address data="$data"}{param country: 'GN' /}{param locale: 'xxx' /}{/call}

GR

{call components.address data="$data"}{param country: 'GR' /}{param locale: 'xxx' /}{/call}

GT

{call components.address data="$data"}{param country: 'GT' /}{param locale: 'xxx' /}{/call}

GU

{call components.address data="$data"}{param country: 'GU' /}{param locale: 'xxx' /}{/call}

GY

{call components.address data="$data"}{param country: 'GY' /}{param locale: 'xxx' /}{/call}

HK

{call components.address data="$data"}{param country: 'HK' /}{param locale: 'xxx' /}{/call}

HN

{call components.address data="$data"}{param country: 'HN' /}{param locale: 'xxx' /}{/call}

HR

{call components.address data="$data"}{param country: 'HR' /}{param locale: 'xxx' /}{/call}

HT

{call components.address data="$data"}{param country: 'HT' /}{param locale: 'xxx' /}{/call}

HU

{call components.address data="$data"}{param country: 'HU' /}{param locale: 'xxx' /}{/call}

ID

{call components.address data="$data"}{param country: 'ID' /}{param locale: 'xxx' /}{/call}

IE

{call components.address data="$data"}{param country: 'IE' /}{param locale: 'xxx' /}{/call}

IL

{call components.address data="$data"}{param country: 'IL' /}{param locale: 'xxx' /}{/call}

IM

{call components.address data="$data"}{param country: 'IM' /}{param locale: 'xxx' /}{/call}

IN

{call components.address data="$data"}{param country: 'IN' /}{param locale: 'xxx' /}{/call}

IQ

{call components.address data="$data"}{param country: 'IQ' /}{param locale: 'xxx' /}{/call}

IS

{call components.address data="$data"}{param country: 'IS' /}{param locale: 'xxx' /}{/call}

IT

{call components.address data="$data"}{param country: 'IT' /}{param locale: 'xxx' /}{/call}

JE

{call components.address data="$data"}{param country: 'JE' /}{param locale: 'xxx' /}{/call}

JM

{call components.address data="$data"}{param country: 'JM' /}{param locale: 'xxx' /}{/call}

JO

{call components.address data="$data"}{param country: 'JO' /}{param locale: 'xxx' /}{/call}

JP

{call components.address data="$data"}{param country: 'JP' /}{param locale: 'xxx' /}{/call}

JP (en)

{call components.address data="$data"}{param country: 'JP' /}{param locale: 'en' /}{/call}

KE

{call components.address data="$data"}{param country: 'KE' /}{param locale: 'xxx' /}{/call}

KH

{call components.address data="$data"}{param country: 'KH' /}{param locale: 'xxx' /}{/call}

KN

{call components.address data="$data"}{param country: 'KN' /}{param locale: 'xxx' /}{/call}

KR

{call components.address data="$data"}{param country: 'KR' /}{param locale: 'xxx' /}{/call}

KV

{call components.address data="$data"}{param country: 'KV' /}{param locale: 'xxx' /}{/call}

KW

{call components.address data="$data"}{param country: 'KW' /}{param locale: 'xxx' /}{/call}

KY

{call components.address data="$data"}{param country: 'KY' /}{param locale: 'xxx' /}{/call}

KZ

{call components.address data="$data"}{param country: 'KZ' /}{param locale: 'xxx' /}{/call}

LA

{call components.address data="$data"}{param country: 'LA' /}{param locale: 'xxx' /}{/call}

LB

{call components.address data="$data"}{param country: 'LB' /}{param locale: 'xxx' /}{/call}

LC

{call components.address data="$data"}{param country: 'LC' /}{param locale: 'xxx' /}{/call}

LK

{call components.address data="$data"}{param country: 'LK' /}{param locale: 'xxx' /}{/call}

LT

{call components.address data="$data"}{param country: 'LT' /}{param locale: 'xxx' /}{/call}

LU

{call components.address data="$data"}{param country: 'LU' /}{param locale: 'xxx' /}{/call}

LV

{call components.address data="$data"}{param country: 'LV' /}{param locale: 'xxx' /}{/call}

LY

{call components.address data="$data"}{param country: 'LY' /}{param locale: 'xxx' /}{/call}

MA

{call components.address data="$data"}{param country: 'MA' /}{param locale: 'xxx' /}{/call}

MC

{call components.address data="$data"}{param country: 'MC' /}{param locale: 'xxx' /}{/call}

MD

{call components.address data="$data"}{param country: 'MD' /}{param locale: 'xxx' /}{/call}

ME

{call components.address data="$data"}{param country: 'ME' /}{param locale: 'xxx' /}{/call}

MH

{call components.address data="$data"}{param country: 'MH' /}{param locale: 'xxx' /}{/call}

MK

{call components.address data="$data"}{param country: 'MK' /}{param locale: 'xxx' /}{/call}

ML

{call components.address data="$data"}{param country: 'ML' /}{param locale: 'xxx' /}{/call}

MM

{call components.address data="$data"}{param country: 'MM' /}{param locale: 'xxx' /}{/call}

MN

{call components.address data="$data"}{param country: 'MN' /}{param locale: 'xxx' /}{/call}

MO

{call components.address data="$data"}{param country: 'MO' /}{param locale: 'xxx' /}{/call}

MP

{call components.address data="$data"}{param country: 'MP' /}{param locale: 'xxx' /}{/call}

MT

{call components.address data="$data"}{param country: 'MT' /}{param locale: 'xxx' /}{/call}

MU

{call components.address data="$data"}{param country: 'MU' /}{param locale: 'xxx' /}{/call}

MV

{call components.address data="$data"}{param country: 'MV' /}{param locale: 'xxx' /}{/call}

MW

{call components.address data="$data"}{param country: 'MW' /}{param locale: 'xxx' /}{/call}

MX

{call components.address data="$data"}{param country: 'MX' /}{param locale: 'xxx' /}{/call}

MY

{call components.address data="$data"}{param country: 'MY' /}{param locale: 'xxx' /}{/call}

MZ

{call components.address data="$data"}{param country: 'MZ' /}{param locale: 'xxx' /}{/call}

NA

{call components.address data="$data"}{param country: 'NA' /}{param locale: 'xxx' /}{/call}

NC

{call components.address data="$data"}{param country: 'NC' /}{param locale: 'xxx' /}{/call}

NE

{call components.address data="$data"}{param country: 'NE' /}{param locale: 'xxx' /}{/call}

NG

{call components.address data="$data"}{param country: 'NG' /}{param locale: 'xxx' /}{/call}

NI

{call components.address data="$data"}{param country: 'NI' /}{param locale: 'xxx' /}{/call}

NL

{call components.address data="$data"}{param country: 'NL' /}{param locale: 'xxx' /}{/call}

NO

{call components.address data="$data"}{param country: 'NO' /}{param locale: 'xxx' /}{/call}

NP

{call components.address data="$data"}{param country: 'NP' /}{param locale: 'xxx' /}{/call}

NZ

{call components.address data="$data"}{param country: 'NZ' /}{param locale: 'xxx' /}{/call}

OM

{call components.address data="$data"}{param country: 'OM' /}{param locale: 'xxx' /}{/call}

PA

{call components.address data="$data"}{param country: 'PA' /}{param locale: 'xxx' /}{/call}

PE

{call components.address data="$data"}{param country: 'PE' /}{param locale: 'xxx' /}{/call}

PF

{call components.address data="$data"}{param country: 'PF' /}{param locale: 'xxx' /}{/call}

PG

{call components.address data="$data"}{param country: 'PG' /}{param locale: 'xxx' /}{/call}

PH

{call components.address data="$data"}{param country: 'PH' /}{param locale: 'xxx' /}{/call}

PK

{call components.address data="$data"}{param country: 'PK' /}{param locale: 'xxx' /}{/call}

PL

{call components.address data="$data"}{param country: 'PL' /}{param locale: 'xxx' /}{/call}

PR

{call components.address data="$data"}{param country: 'PR' /}{param locale: 'xxx' /}{/call}

PS

{call components.address data="$data"}{param country: 'PS' /}{param locale: 'xxx' /}{/call}

PT

{call components.address data="$data"}{param country: 'PT' /}{param locale: 'xxx' /}{/call}

PW

{call components.address data="$data"}{param country: 'PW' /}{param locale: 'xxx' /}{/call}

PY

{call components.address data="$data"}{param country: 'PY' /}{param locale: 'xxx' /}{/call}

QA

{call components.address data="$data"}{param country: 'QA' /}{param locale: 'xxx' /}{/call}

RE

{call components.address data="$data"}{param country: 'RE' /}{param locale: 'xxx' /}{/call}

RO

{call components.address data="$data"}{param country: 'RO' /}{param locale: 'xxx' /}{/call}

RS

{call components.address data="$data"}{param country: 'RS' /}{param locale: 'xxx' /}{/call}

RU

{call components.address data="$data"}{param country: 'RU' /}{param locale: 'xxx' /}{/call}

RW

{call components.address data="$data"}{param country: 'RW' /}{param locale: 'xxx' /}{/call}

SA

{call components.address data="$data"}{param country: 'SA' /}{param locale: 'xxx' /}{/call}

SC

{call components.address data="$data"}{param country: 'SC' /}{param locale: 'xxx' /}{/call}

SE

{call components.address data="$data"}{param country: 'SE' /}{param locale: 'xxx' /}{/call}

SG

{call components.address data="$data"}{param country: 'SG' /}{param locale: 'xxx' /}{/call}

SI

{call components.address data="$data"}{param country: 'SI' /}{param locale: 'xxx' /}{/call}

SK

{call components.address data="$data"}{param country: 'SK' /}{param locale: 'xxx' /}{/call}

SM

{call components.address data="$data"}{param country: 'SM' /}{param locale: 'xxx' /}{/call}

SN

{call components.address data="$data"}{param country: 'SN' /}{param locale: 'xxx' /}{/call}

SR

{call components.address data="$data"}{param country: 'SR' /}{param locale: 'xxx' /}{/call}

SV

{call components.address data="$data"}{param country: 'SV' /}{param locale: 'xxx' /}{/call}

SX

{call components.address data="$data"}{param country: 'SX' /}{param locale: 'xxx' /}{/call}

TC

{call components.address data="$data"}{param country: 'TC' /}{param locale: 'xxx' /}{/call}

TG

{call components.address data="$data"}{param country: 'TG' /}{param locale: 'xxx' /}{/call}

TH

{call components.address data="$data"}{param country: 'TH' /}{param locale: 'xxx' /}{/call}

TJ

{call components.address data="$data"}{param country: 'TJ' /}{param locale: 'xxx' /}{/call}

TM

{call components.address data="$data"}{param country: 'TM' /}{param locale: 'xxx' /}{/call}

TN

{call components.address data="$data"}{param country: 'TN' /}{param locale: 'xxx' /}{/call}

TR

{call components.address data="$data"}{param country: 'TR' /}{param locale: 'xxx' /}{/call}

TT

{call components.address data="$data"}{param country: 'TT' /}{param locale: 'xxx' /}{/call}

TW

{call components.address data="$data"}{param country: 'TW' /}{param locale: 'xxx' /}{/call}

TZ

{call components.address data="$data"}{param country: 'TZ' /}{param locale: 'xxx' /}{/call}

UA

{call components.address data="$data"}{param country: 'UA' /}{param locale: 'xxx' /}{/call}

UG

{call components.address data="$data"}{param country: 'UG' /}{param locale: 'xxx' /}{/call}

US

{call components.address data="$data"}{param country: 'US' /}{param locale: 'xxx' /}{/call}

UY

{call components.address data="$data"}{param country: 'UY' /}{param locale: 'xxx' /}{/call}

UZ

{call components.address data="$data"}{param country: 'UZ' /}{param locale: 'xxx' /}{/call}

VE

{call components.address data="$data"}{param country: 'VE' /}{param locale: 'xxx' /}{/call}

VG

{call components.address data="$data"}{param country: 'VG' /}{param locale: 'xxx' /}{/call}

VI

{call components.address data="$data"}{param country: 'VI' /}{param locale: 'xxx' /}{/call}

VN

{call components.address data="$data"}{param country: 'VN' /}{param locale: 'xxx' /}{/call}

VU

{call components.address data="$data"}{param country: 'VU' /}{param locale: 'xxx' /}{/call}

WS

{call components.address data="$data"}{param country: 'WS' /}{param locale: 'xxx' /}{/call}

ZA

{call components.address data="$data"}{param country: 'ZA' /}{param locale: 'xxx' /}{/call}

ZM

{call components.address data="$data"}{param country: 'ZM' /}{param locale: 'xxx' /}{/call}
{/template} 'templates/components/address/fields.soy {namespace components.address.fields} /** * @param address1 */ {template .address1} {$address1} {/template} /** * @param address2 */ {template .address2} {$address2} {/template} /** * @param sublocality */ {template .sublocality} {$sublocality} {/template} /** * @param city * @param? hideSchema */ {template .city} {$city} {/template} /** * @param address1 * @param address2 * @param? hideSchema */ {template .streetSchema} {if not $hideSchema} {/if} {/template} /** * @param state * @param stateAbbr * @param stateName * @param? hideSchema */ {template .state} {let $abbreviated: $stateAbbr and $state != $stateName /} <{if $abbreviated}abbr title="{$stateName}" aria-label="{$stateName}"{else}span{/if} {sp}class="c-address-state" {if not $hideSchema}itemprop="addressRegion"{/if}> {$state |stateAbbr:$stateAbbr} {/template} /** * @param postalCode * @param? hideSchema */ {template .postalCode} {$postalCode} {/template} /** * @param country * @param countryName * @param? hideSchema */ {template .country} <{if $country != $countryName}abbr title="{$countryName}" aria-label="{$countryName}"{else}span{/if} {sp}class="c-address-country-name c-address-country-{$country |slugify}" {if not $hideSchema}{sp}itemprop="addressCountry"{/if} > {$country} {/template} %templates/components/address/i18n.soyM{namespace components.address.i18n} /** * * * * IMPORTANT * * * * * This file is autogenerated by $ALPHA/gocode/src/yext/pages/sites/scripts/i18nyaml2soy/main.go * And should not be edited by hand. */ /** * Displays address in the country format, dictated by YAMLs. Default * is the US format (Could be a template with a diff. code for name) * * @param address1 Contains the street address * @param address2 Contains the second line of the street address * @param city * @param state The abbreviated format of a state * @param stateName * @param stateAbbr * @param sublocality * @param postalCode * @param country Abbreviated format of a country * @param countryName * @param locale * @param? hideSchema */ {template .addressForCountry} {switch $country} {case 'AD','AM','AT','AX','AZ','BA','BY','CY','CZ','DK','DZ','EC','ET','FI','FR','GE','GF','GI','HT','KE','KV','KW','LA','LU','MC','MD','ME','MK','MZ','NC','NL','NO','PL','PT','PY','RE','RS','SA','SE','SM','SN','TC','TJ','TM','TN','TZ','UY','VG','ZM' } {call .ad data="all" /} {case 'AE','GD','HN','KN','LC','PA','SV' } {call .ae data="all" /} {case 'AF','AS','BB','BD','BM','BN','BT','CR','DO','FK','FM','GR','GU','JO','KZ','LB','LK','MA','MH','MM','MT','MV','NG','PG','PK','PR','RO','SG','WS' } {call .af data="all" /} {case 'AG','AO','AW','BJ','BO','BS','BZ','CW','DJ','FJ','GA','GH','GY','JM','LY','MO','MU','MW','NA','PS','QA','RW','SC','SR','SX','TG','TT','UG','VU' } {call .ag data="all" /} {case 'AL','BE','EE','IS' } {call .al data="all" /} {case 'AR' } {call .ar data="all" /} {case 'AU','CA','US','VI' } {call .au data="all" /} {case 'BG' } {call .bg data="all" /} {case 'BH' } {call .bh data="all" /} {case 'BQ','ML' } {call .bq data="all" /} {case 'BR' } {call .br data="all" /} {case 'CH','DE','GT','IT','MY','NI','OM','SK' } {call .ch data="all" /} {case 'CL','PF' } {call .cl data="all" /} {case 'CN' } {call .cn data="all" /} {case 'CO','EG','ID','IQ','KH','MP','NP','PW','UA' } {call .co data="all" /} {case 'ES','IL' } {call .es data="all" /} {case 'GB','MN','ZA' } {call .gb data="all" /} {case 'GG','IM','JE' } {call .gg data="all" /} {case 'GN' } {call .gn data="all" /} {case 'HK' } {call .hk data="all" /} {case 'HR' } {call .hr data="all" /} {case 'HU','SI' } {call .hu data="all" /} {case 'IE' } {call .ie data="all" /} {case 'IN','VE' } {call .in data="all" /} {case 'JP' } {call .jp data="all" /} {case 'KR','PH','TW','VN' } {call .kr data="all" /} {case 'KY' } {call .ky data="all" /} {case 'LT' } {call .lt data="all" /} {case 'LV' } {call .lv data="all" /} {case 'MX' } {call .mx data="all" /} {case 'NE' } {call .ne data="all" /} {case 'NZ' } {call .nz data="all" /} {case 'PE' } {call .pe data="all" /} {case 'RU' } {call .ru data="all" /} {case 'TH','TR' } {call .th data="all" /} {case 'UZ' } {call .uz data="all" /} {default} {call .au data="all" /} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ad} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ae} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $state}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .af} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ag} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param postalCode * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .al} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ar} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city or $state} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $state} ,{sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .au} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $state or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state or $postalCode} ,{sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param postalCode * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .bg} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $postalCode or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .bh} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality or $city}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .bq} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $state}
{if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .br} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city or $state}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ch} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city or $state} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param postalCode * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .cl} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $postalCode or $state}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode or $state} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param country * @param countryName * @param state * @param stateName * @param stateAbbr * @param city * @param sublocality * @param address1 * @param address2 * @param postalCode * @param locale * @param? hideSchema */ {template .cn} {switch $locale} {default} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if} {sp}
{/if} {if $state or $city or $sublocality}
{if $state} {call components.address.fields.state data="all"/} {/if} {if $city or $sublocality} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $sublocality} {sp} {/if} {if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .co} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $state or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state or $postalCode} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .es} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $state}
{if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .gb} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality or $city or $postalCode}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $city or $postalCode} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .gg} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .gn} {switch $locale} {default} {if $address1 or $address2 or $city}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {if $address2 or $city} {sp} {/if} {if $address2} {call components.address.fields.address2 data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .hk} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $state}
{if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .hr} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city or $state} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param postalCode * @param city * @param address1 * @param address2 * @param country * @param countryName * @param locale * @param? hideSchema */ {template .hu} {switch $locale} {default} {if $postalCode or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ie} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city or $state or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state or $postalCode} ,{sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param postalCode * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .in} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $state}
{if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param postalCode * @param state * @param stateName * @param stateAbbr * @param city * @param sublocality * @param address1 * @param address2 * @param address2 * @param address1 * @param sublocality * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .jp} {switch $locale} {case 'en'} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $address1 or $sublocality}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {if $sublocality} {sp} {/if} {if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city or $state}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {default} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $state or $city or $sublocality or $address1}
{if $state} {call components.address.fields.state data="all"/} {/if} {if $city or $sublocality or $address1} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $sublocality or $address1} {sp} {/if} {if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $address1} {sp} {/if} {if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .kr} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality or $city}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $state or $postalCode}
{if $state} {call components.address.fields.state data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ky} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param postalCode * @param city * @param sublocality * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .lt} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $postalCode or $city or $sublocality or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city or $sublocality or $state} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $sublocality or $state} {sp} {/if} {if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $state} {sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .lv} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $city or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode} ,{sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .mx} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $postalCode or $city or $state}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city or $state} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {if $state} ,{sp} {/if} {if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param city * @param state * @param stateName * @param stateAbbr * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ne} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $state}
{if $state} {call components.address.fields.state data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .nz} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $city or $postalCode}
{if $city} {call components.address.fields.city data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param postalCode * @param sublocality * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .pe} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $postalCode or $sublocality or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $sublocality or $city} {sp} {/if} {if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param city * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .ru} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $city}
{if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $postalCode}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param sublocality * @param postalCode * @param city * @param country * @param countryName * @param locale * @param? hideSchema */ {template .th} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $sublocality}
{if $sublocality} {call components.address.fields.sublocality data="all"/} {/if} {sp}
{/if} {if $postalCode or $city}
{if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {if $city} {sp} {/if} {if $city} {call components.address.fields.city data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template} /** * @param address1 * @param address2 * @param state * @param stateName * @param stateAbbr * @param postalCode * @param country * @param countryName * @param locale * @param? hideSchema */ {template .uz} {switch $locale} {default} {if $address1}
{if $address1} {call components.address.fields.address1 data="all"/} {/if} {sp}
{/if} {if $address2}
{if $address2} {call components.address.fields.address2 data="all"/} {/if} {sp}
{/if} {if $state or $postalCode}
{if $state} {call components.address.fields.state data="all"/} {/if} {if $postalCode} {sp} {/if} {if $postalCode} {call components.address.fields.postalCode data="all"/} {/if} {sp}
{/if} {if $country}
{if $country} {call components.address.fields.country data="all"/} {/if}
{/if} {/switch} {/template}6templates/components/associatedapps/associatedapps.soy {namespace components.associatedapps} /** * This will automatically work for Apple in iOS 6+. Android still does not * have support. To get iOS 4 & 5 and Android support, you need to install * the jquery.smartbanner bower component * @param apple_app_id (required for Apple app) The Apple app's unique identifier * @param crumbUrls * @param https * @param siteDomain * @param? apple_affiliate_data (optional) Your iTunes affiliate string * @param? android_app_id (required for Android app) The Android app's unique identifier */ {template .app_search_metadata} {call .app_metadata data="all"} {param apple_app_argument} http{if $https}s{/if}://{$siteDomain}/{$crumbUrls[length($crumbUrls)-1]} {/param} {/call} {/template} /** * This will automatically work for Apple in iOS 6+. Android still does not * have support. To get iOS 4 & 5 and Android support, you need to install * the jquery.smartbanner bower component * @param? apple_app_id (required for Apple app) The Apple app's unique identifier * @param? apple_affiliate_data (optional) Your iTunes affiliate string * @param? apple_app_argument (optional) A URL that provides context to your native app. If you include this, and the user has your app installed, she can jump from your website to the corresponding position in your iOS app * @param? android_app_id (required for Android app) The Android app's unique identifier */ {template .app_metadata} {if isNonnull($apple_app_id)} {call .apple_app_metadata data="all" /} {/if} {if isNonnull($android_app_id)} {call .android_app_metadata data="all" /} {/if} {/template} /** * This will automatically work for Apple in iOS 6+. To get iOS 4 & 5 support, * you need to install the jquery.smartbanner bower component * @param apple_app_id (required for Apple app) The Apple app's unique identifier * @param? apple_affiliate_data (optional) Your iTunes affiliate string * @param? apple_app_argument (optional) A URL that provides context to your native app. If you include this, and the user has your app installed, she can jump from your website to the corresponding position in your iOS app */ {template .apple_app_metadata} {/template} /** * To get Android support, you need to install the jquery.smartbanner bower component * @param android_app_id (required for Android app) The Android app's unique identifier */ {template .android_app_metadata} {/template}"templates/components/bios/bios.soy{namespace components.bios} /* {call components.bios} {param bios: /} {param listName: /} {param title: /} {param numberOfBiosToDisplay: /} {param sectionName: /} {param linkText: /} {param itemprop: /} {/call} */ /** * Bios component * @param bios Passthrough * @param listName Bios List Name * @param? title * @param? numberOfBiosToDisplay Number of Bios to display * @param? sectionName Section Name * @param? linkText * @param? emailText * @param? hideSchema Optional Passthrough * @param? itemprop * @param? showReadMore Enable text truncation * @param? readMoreText Text for read more button * @param? readLessText Text for read less button * @param? readMoreTextLength Number of characters to truncate to */ {template .wrapper} {let $numbBios : $numberOfBiosToDisplay ?: 4 /} {if $title and isNonnull($bios) and length($bios ?: []) > 0}

{$title}

{/if} {if isNonnull($bios) and length($bios ?: []) > 0} {foreach $list in $bios} {if ($list.title == $listName) and length($list.sections) > 0} {if strlen($sectionName ?: '') >0} {foreach $section in $list.sections} {if (not isNonnull($sectionName) and $section.name == '') or $section.name == $sectionName} {call .bios data="all"} {param bios: $section.items /} {param numberOfBiosToDisplay: $numbBios /} {/call} {/if} {/foreach} {else} {call .bios data="all"} {param bios: listItems($list.sections) /} {param numberOfBiosToDisplay: $numbBios /} {/call} {/if} {/if} {/foreach} {/if} {/template} /** * @param bios * @param numberOfBiosToDisplay * @param? linkText * @param? emailText * @param? hideSchema * @param? itemprop * @param? showReadMore Enable text truncation * @param? readMoreText Text for read more button * @param? readLessText Text for read less button * @param? readMoreTextLength Number of characters to truncate to */ {template .bios}
{foreach $bio in $bios} {if index($bio) < $numberOfBiosToDisplay}
{call .bio data="all"} {param bio: $bio /} {/call}
{/if} {/foreach}
{/template} /** * @param bio * @param? linkText * @param? emailText * @param? hideSchema Optional Passthrough * @param? itemprop * @param? showReadMore Enable text truncation * @param? readMoreText Text for read more button * @param? readLessText Text for read less button * @param? readMoreTextLength Number of characters to truncate to */ {template .bio}
{call .image data="all" /} {call .name data="all" /} {call .title data="all" /} {call .phone data="all" /} {call .description data="all" /} {call .education data="all" /} {call .certifications data="all" /} {call .services data="all" /} {call .email data="all" /} {call .url data="all" /}
{/template} /** * @param bio * @param? hideSchema */ {template .image}
Photo of {$bio.name}
{/template} /** * @param bio * @param? hideSchema */ {template .name}
{$bio.name}
{/template} /** * @param bio * @param? hideSchema */ {template .title} {if strlen($bio.title ?: '') > 0}
{$bio.title}
{/if} {/template} /** * @param bio * @param? hideSchema */ {template .phone} {if strlen($bio.phone ?: '') > 0}
{prettyPrintPhone($bio.phone)}
{/if} {/template} /** * @param bio * @param? showReadMore Passthrough * @param? readMoreText Passthrough * @param? readLessText Passthrough * @param? readMoreTextLength Passthrough * @param? hideSchema Passthrough */ {template .description} {if strlen($bio.description ?: '') > 0}
{call components.description data="all"} {param description: $bio.description /} {/call}
{/if} {/template} /** * @param bio * @param? hideSchema */ {template .education} {if length($bio.education ?: []) > 0}
{/if} {/template} /** * @param bio * @param? hideSchema */ {template .certifications} {if length($bio.affiliationAndCertification ?: []) > 0}
{/if} {/template} /** * @param bio */ {template .services} {if length($bio.services ?: []) > 0}
{/if} {/template} /** * @param bio * @param? emailLabel * @param? hideSchema * @param? emailText */ {template .email} {if strlen($bio.email ?: '') > 0}
{if $emailLabel and strlen($emailLabel) > 0}
{$emailLabel}
{/if} {if not $hideSchema} {/if} {if $emailText} {$emailText} {else} {$bio.email} {/if}
{/if} {/template} /** * @param bio * @param? linkText */ {template .url} {if strlen($bio.url ?: '') > 0}
{$linkText ?: ($bio.url ?: '')}
{/if} {/template}&templates/components/brands/brands.soyN{namespace components} /* {call components.brands} {param brands: /} {param columns: /} {param rows: /} {/call} */ /** * Brands component * @param? columns Maximum number of columns * @param? rows Maximum number of rows per column * @param brands Passthrough */ {template .brands} {let $r: $rows ?: 10 /} {let $c: $columns ?: 2 /}
Select Brands:
{for $col in range(0, $c)} {/for}
{for $row in range($col * $r, ($col+1) * $r)} {if $row < length($brands)}
{$brands[$row]}
{/if} {/for}
{/template} 2templates/components/bread-crumbs/bread-crumbs.soy {namespace components} /* {call components.bread_crumbs} {param base: /} {param crumbNames: /} {param crumbUrls: /} {param crumbBaseName: /} {param crumbSeparator: /} {param hideSchema: /} {/call} */ /** * Bread crumbs component * @param baseUrl Passthrough * @param crumbNames Passthrough * @param crumbUrls Passthrough * @param? crumbBaseName The first entry in the crumb list * @param? hideSchema * @param? abbrState * @param? separator * @param? suppressIndexHtml Setting to true means that the first crumb goes to domain without /index.html */ {template .bread_crumbs} {let $abbr: $abbrState ?: true /} {/template} /** * Bread crumbs component * @param baseUrl Passthrough * @param crumbNames Passthrough * @param crumbUrls Passthrough * @param? crumbBaseName The first entry in the crumb list */ {template .bread_crumbs_no_schema} {call .bread_crumbs data="all"} {param hideSchema: true /} {/call} {/template} (templates/components/cookies/cookies.soy{namespace components.cookies}0templates/components/description/description.soy9{namespace components} /* {call components.description} {param description: /} {param showReadMore: /} {param readMoreText: /} {param readLessText: /} {param readMoreTextLength: /} {param hideSchema: /} {/call} */ /** * Description component * @param description * @param? showReadMore Enable text truncation * @param? readMoreText Text for read more button * @param? readLessText Text for read less button * @param? readMoreTextLength Number of characters to truncate to * @param? hideSchema */ {template .description}
{if $showReadMore and strlen($description) > $readMoreTextLength ?: 150}
{$description |truncate:$readMoreTextLength ?: 150,true}
{$description | changeNewlineToBr}
{else} {$description |changeNewlineToBr} {/if}
{/template} 6templates/components/directory-list/directory-list.soyt{namespace components} /* {call components.directory_list} {param keys: /} {param baseUrl: /} {param columns: /} {param bootstrapColumnClass: /} {param showNumLocs: /} {/call} */ /** * @param keys * @param baseUrl * @param? showNumLocs show number of locations in the current directory if true * @param directoryHierarchy * @param locale * @param? pageLevel */ {template .directory_list}
{/template} /** * @param node object from directoryHierarchy */ {template .next_child_url} {if isNonnull($node.children) and length(keys($node.children)) == 1} {let $children: keys($node.children) /} {let $url: $children[0] /} {call .next_child_url} {param node: $node.children[$url] /} {/call} {else} {$node.url} {/if} {/template} /** * @param directoryHierarchy * @param key */ {template .url_for_key} {if $directoryHierarchy[$key.url]} {call .next_child_url} {param node: $directoryHierarchy[$key.url] /} {/call} {else} {$key.url} {/if} {/template} Mtemplates/components/enhanced-gallery-list/enhanced-gallery-list-override.soy7{namespace components.enhanced_gallery_list} /* {call components.enhanced_gallery_list.wrapper} {param productLists: /} {param listName: /} {param numberOfImagesToDisplay: /} {param sectionName: /} {param title: /} {param showName: /} {param showDescription: /} {param showPrice: /} {param showPriceCents: /} {param gallerySizeIndex: /} {param embedYouTube: /} {param showVideoTitle: /} {param hideVideoControls: /} {param showYouTubeThumbnail: /} {param thumbnailIndex: /} {param linkItemName: /} {param notLinkItemImage: /} {param showExternalLink: /} {param externalLinkText: /} {param showOptions: /} {param showOptionsCalories: /} {param showOptionsCents: /} {param showOptionsText: /} {param hideSchema: /} {param locale: /} {/call} */ /** * Gallery list component * @param productLists Must be in the form of productLists[x].sections[x].items[] * @param listName Product List Name * @param? numberOfImagesToDisplay Number of gallery images to display * @param? sectionName Section Name * @param? title * @param? showName * @param? showDescription * @param? showPrice * @param? showPriceCents * @param? gallerySizeIndex * @param? embedYouTube To use this, you MUST add the YouTube component * @param? showVideoTitle * @param? hideVideoControls * @param? showYouTubeThumbnail * @param? thumbnailIndex * @param? linkItemName * @param? notLinkItemImage True or false * @param? showExternalLink * @param? externalLinkText Actual text displayed * @param? showOptions Optional text fields/pricing/etc * @param? showOptionsCalories Optional text fields/pricing/etc * @param? showOptionsCents Optional text fields/pricing/etc * @param? showOptionsText Optional text fields/pricing/etc * @param? hideSchema Optional Passthrough * @param? locale */ {template .wrapper} {if $title and isNonnull($productLists) and length($productLists) > 0} {/if} {if isNonnull($productLists) and length($productLists) > 0} {foreach $list in $productLists} {if ($list.title == $listName or $list.name == $listName) and length($list.sections) > 0} {if strlen($sectionName ?: '') >0} {foreach $section in $list.sections} {if (not isNonnull($sectionName) and $section.name == '') or $section.name == $sectionName} {call .items data="all"} {param items: $section.items /} {param currency: $list.currency /} {param numberOfImagesToDisplay: $numberOfImagesToDisplay ?: 10000 /} {/call} {/if} {/foreach} {else} {call .items data="all"} {param items: listItems($list.sections) /} {param currency: $list.currency /} {param numberOfImagesToDisplay: $numberOfImagesToDisplay ?: 10000 /} {/call} {/if} {/if} {/foreach} {/if} {/template} /* {call components.enhanced_gallery_list.items} {param items: /} {param showName: /} {param showDescription: /} {param showPrice: /} {param showPriceCents: /} {param gallerySizeIndex: /} {param embedYouTube: /} {param showVideoTitle: /} {param hideVideoControls: /} {param showYouTubeThumbnail: /} {param thumbnailIndex: /} {param linkItemName: /} {param notLinkItemImage: /} {param showExternalLink: /} {param externalLinkText: /} {param externalLinkText: /} {param showOptions: /} {param showOptionsCalories: /} {param showOptionsCents: /} {param showOptionsText: /} {param locale: /} {/call} */ /** * @param items * @param numberOfImagesToDisplay * @param currency Property on the list, passthrough * @param? showName * @param? showDescription * @param? showPrice * @param? showPriceCents * @param? gallerySizeIndex * @param? embedYouTube To use this, you MUST add the YouTube component * @param? showVideoTitle * @param? hideVideoControls * @param? showYouTubeThumbnail * @param? thumbnailIndex * @param? linkItemName * @param? notLinkItemImage True or false * @param? showExternalLink * @param? externalLinkText Actual text displayed * @param? showOptions Optional text fields/pricing/etc * @param? showOptionsCalories Optional text fields/pricing/etc * @param? showOptionsCents Optional text fields/pricing/etc * @param? showOptionsText Optional text fields/pricing/etc * @param? hideSchema Optional Passthrough * @param? locale */ {template .items} {/template} /* {call components.enhanced_gallery_list.item} {param item: /} {param currency: /} {param showName: /} {param showDescription: /} {param showPrice: /} {param showPriceCents: /} {param gallerySizeIndex: /} {param embedYouTube: /} {param showVideoTitle: /} {param hideVideoControls: /} {param showYouTubeThumbnail: /} {param thumbnailIndex: /} {param linkItemName: /} {param notLinkItemImage: /} {param showExternalLink: /} {param externalLinkText: /} {param showOptions: /} {param showOptionsCalories: /} {param showOptionsCents: /} {param showOptionsText: /} {param locale: /} {/call} */ /** * @param item * @param currency Property on the list * @param? showName * @param? showDescription * @param? showPrice * @param? showPriceCents * @param? gallerySizeIndex * @param? embedYouTube To use this, you MUST add the YouTube component * @param? showVideoTitle * @param? hideVideoControls * @param? showYouTubeThumbnail * @param? thumbnailIndex * @param? linkItemName * @param? notLinkItemImage True or false * @param? showExternalLink * @param? externalLinkText Actual text displayed * @param? showOptions Optional text fields/pricing/etc * @param? showOptionsCalories Optional text fields/pricing/etc * @param? showOptionsCents Optional text fields/pricing/etc * @param? showOptionsText Optional text fields/pricing/etc * @param? hideSchema * @param? locale * @param? yaTrack * @param? yaIndex */ {template .item} {let $youtubeOnly: not $showName and not $showDescription and not $showPrice and not $showPriceCents and not $gallerySizeIndex /} {let $itemScope} {if not $hideSchema and not $youtubeOnly} itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer" {if $item.price.cents} {let $strPrice}{$item.price.cents}{/let} itemref="price-{$item.name |slugify}-{$strPrice |slugify}" {/if} {/if} {/let} {/template} /** * @param item * @param? embedYouTube To use this, you MUST add the YouTube component * @param? showVideoTitle * @param? hideVideoControls * @param? showYouTubeThumbnail * @param? thumbnailIndex * @param? notLinkItemImage True or false * @param? gallerySizeIndex * @param? hideSchema Passthrough * @param? yaTrack Passthrough */ {template .image_or_video} {if $embedYouTube and strlen($item.videoUrl) > 0} {call components.youtube_embed data="all"} {param video} {replace($item.videoUrl, 'http://www.youtube.com/watch?v=', '')} {/param} {param hideSchema: true /} {/call} {elseif $showYouTubeThumbnail and strlen($item.videoUrl) > 0} {call .youtube_thumbnail data="all" /} {else} {call .image data="all" /} {/if} {/template} /** * @param item * @param? thumbnailIndex */ {template .youtube_thumbnail} {/template} /** * @param item * @param? notLinkItemImage * @param? gallerySizeIndex * @param? hideSchema * @param? yaTrack */ {template .image} {if not $notLinkItemImage and isNonnull($item.url) and strlen($item.url) > 0} {/if} {if length($item.gallery)>0} {let $index: $gallerySizeIndex ?: 0 /} {let $imageSrc} {if length($item.gallery[0].sizes) > $index} {imageBySize($item.gallery[0].sizes, '500x')} {elseif length($item.gallery[0].sizes) > 0} {imageBySize($item.gallery[0].sizes, '500x')} {/if} {/let} {let $imageItemProp} {if not $hideSchema} itemprop="image" {/if} {/let} {/if} {if not $notLinkItemImage and isNonnull($item.url) and strlen($item.url) > 0} {/if} {/template} /** * @param item * @param? linkItemName * @param? hideSchema * @param? hLevel * @param? yaTrack */ {template .item_name} {if not $hideSchema} {/if} {call components.util.h_level} {param contents} {if $linkItemName and isNonnull($item.url) and strlen($item.url) > 0} {/if} {if not $hideSchema} {/if} {$item.name} {if not $hideSchema} {/if} {if $linkItemName and isNonnull($item.url) and strlen($item.url) > 0} {/if} {/param} {param level: $hLevel ?: 3 /} {param class: 'c-enhanced-gallery-list-item-name' /} {/call} {/template} /** * @param item * @param? hideSchema */ {template .item_description} {let $itemprop} {if not $hideSchema} itemprop="description" {/if} {/let} {/template} /** * @param item * @param showPriceCents * @param currency * @param? hideSchema * @param? locale */ {template .item_price} // As of 9/30/2015 ECLs only support EUR, USD, and GBP so this will work // until they start supporting JPY (yen) but at that point ECLs will need // to change their price logic. {let $strPrice}{$item.price.cents}{/let} {/template} /** * @param item * @param? showOptionsCalories Optional text fields/pricing/etc * @param? showOptionsCents Optional text fields/pricing/etc * @param? showOptionsText Optional text fields/pricing/etc */ {template .item_options} {foreach $option in $item.options ?: []} {/foreach} {/template} /** * @param item * @param externalLinkText */ {template .item_link} {$externalLinkText |noAutoescape} {/template} &templates/components/events/events.soy#{namespace components.events} /* {call components.events} {param calendars: /} {param calendarName: /} {param baseUrl: /} {param crumbUrls: /} {param maxEntries: /} {param showReadMore: /} {param readMoreText: /} {param readLessText: /} {param readMoreTextLength: /} {param title: /} {param dateFormatString: /} {param hourFormatString: /} {param customSeparator: /} {param doNotLinkEventTitle: /} {param externalLinkText} {/call} */ /** * Events component * @param calendars * @param calendarName * @param baseUrl * @param crumbUrls * @param? maxEntries Maximum events to show * @param? showReadMore Enable text truncation * @param? readMoreText Text for read more button * @param? readLessText Text for read less button * @param? readMoreTextLength Number of characters to truncate to * @param? title * @param? dateFormatString * @param? hourFormatString * @param? customSeparator * @param? doNotLinkEventTitle * @param? externalLinkText * @param? hideSchema * @param? hLevel */ {template .list} {let $calendarTitle: $title?: 'Upcoming Events' /} {if $calendars and length($calendars) > 0} {foreach $calendar in $calendars} {if $calendar.title == $calendarName} {if length(listItems($calendar.sections))}
{call components.util.h_level} {param contents} {$calendarTitle | noAutoescape} {/param} {param level: $hLevel ?: 2 /} {param class: 'c-events-title' /} {/call}
{foreach $event in listItems($calendar.sections)} {if not isNonnull($maxEntries) or index($event) < $maxEntries} {call .event data="all"} {param event: $event /} {/call} {/if} {/foreach}
{/if} {/if} {/foreach} {/if} {/template} /** * @param event * @param baseUrl * @param crumbUrls * @param? externalLinkText * @param? doNotLinkEventTitle * @param? dateFormatString * @param? hourFormatString * @param? showReadMore * @param? readMoreTextLength * @param? readMoreText * @param? customSeparator * @param? readLessText * @param? hideSchema */ {template .event}
{if not $hideSchema} {call .event_schema_date data="$event" /} {/if}
{let $separator: $customSeparator ?: ' - ' /} {call .event_date data="$event"} {param dateFormatString: $dateFormatString /} {param separator: $separator /} {/call} {call .event_time data="$event"} {param separator: $separator /} {param hourFormatString: $hourFormatString /} {/call} {call .event_title data="$event"} {param hideSchema: $hideSchema /} {param doNotLinkEventTitle: $doNotLinkEventTitle /} {/call} {call .event_type data="$event" /} {call .event_image data="$event"} {param hideSchema: $hideSchema /} {/call} {call .event_description data="all"} {param description: $event.description /} {/call} {call .event_link data="$event"} {param hideSchema: not $doNotLinkEventTitle or $hideSchema /} {param externalLinkText: $externalLinkText /} {/call} {if not $hideSchema} {call .event_offer_schema data="all" } {param url: $event.url /} {/call} {/if}
{/template} /** * event_wrapper_data * @param start * @param end */ {template .event_wrapper_data} data-event-start="{$start}" data-event-end="{$end}" {/template} /** */ {template .wrapper_schema} itemprop="event" itemscope itemtype="http://schema.org/Event" itemref="schema-location" {/template} /** * @param start * @param end */ {template .event_schema_date} {let $format8601: '2006-01-02T15:04:05Z07:00' /} {if ($start ?: 0) > 0} {/if} {if ($end ?: 0) > 0} {/if} {/template} /** * @param start * @param end * @param? dateFormatString * @param? dateFormatStringNoYear * @param separator */ {template .event_date} {if ($start ?: 0) > 0}
{let $dateF: $dateFormatString ?: 'January 2, 2006' /} {let $dateFNoYear: $dateFormatStringNoYear ?: 'January 2' /} {if not $end or sameDay($start, $end)} {timestampf($dateFNoYear, floor($start))} {elseif sameYear($start, floor($end))} // must ignore format string for this to make sense {timestampf($dateFNoYear, floor($start))} {$separator|noAutoescape} {if timestampf('Jan', floor($start)) == timestampf('Jan', floor($end))} {timestampf('2, 2006', floor($end))} {else} {timestampf($dateF, floor($end))} {/if} {else} // must ignore format string for this to make sense {timestampf($dateF, floor($start))} {$separator|noAutoescape} {timestampf($dateF, floor($end))} {/if}
{/if} {/template} /** * @param start * @param end * @param separator * @param? hourFormatString * @param? showStartTime */ {template .event_time} {if ($start ?: 0) > 0}
{let $timeF: $hourFormatString ?: '3:04 PM' /} {if (not $end or sameDay($start, $end)) or $showStartTime} {timestampf($timeF, floor($start))} {/if} {if ($end ?: 0) > 0 and sameDay($start, $end)} {$separator|noAutoescape} {timestampf($timeF, floor($end))} {/if}
{/if} {/template} /** * @param name * @param url * @param? doNotLinkEventTitle * @param? hideSchema * @param? hLevel * @param? yaTrack */ {template .event_title} {call components.util.h_level} {param contents}
{if strlen($url ?: '') > 0 and not $doNotLinkEventTitle} {call .event_link data="all"} {param externalLinkText: $name /} {param url: $url /} {param class: 'c-events-event-details-title-link' /} {/call} {else} {$name} {call .event_link data="all"} {param externalLinkText: '' /} {param url: '' /} {/call} {/if}
{/param} {param class: 'c-events-event-details-title' /} {param level: $hLevel ?: 3 /} {/call} {/template} /** * event_type * @param type */ {template .event_type} {if strlen($type ?: '') > 0}
{$type}
{/if} {/template} /** * event_image * @param gallery * @param? hideSchema * @param? size */ {template .event_image} {if length($gallery[0]?.sizes ?: []) > 0}
{/if} {/template} /** * event_description * @param description * @param? showReadMore * @param? readMoreTextLength * @param? readMoreText * @param? readLessText */ {template .event_description}
{call components.description data="all" /}
{/template} /** * @param externalLinkText * @param url * @param hideSchema * @param? class * @param? yaTrack */ {template .event_link} {if strlen($externalLinkText ?: '') >0 and strlen($url ?: '') > 0} {elseif not $hideSchema} // This is to fix an issue with Google Schema Tool requiring a URL for events. // This is essentially the same as linking back to the page, without needing to print a canonical. {/if} {/template} /** * @param url * @param baseUrl * @param crumbUrls */ {template .event_offer_schema} {let $u} {if strlen($url) > 0} {$url} {else} {$baseUrl}{$crumbUrls[length($crumbUrls)-1]} {/if} {/let} {/template} 8templates/components/facebook-plugin/facebook-plugin.soyG{namespace components} /* {call components.facebook_plugin} {param url: $url /} {param title: $title /} {param height: /} {param width: /} {param smallHeader: /} {param adaptContainerWidth: /} {param hideCover: /} {param showFacepile: /} {param showPosts: /} {/call} */ /** * @param url URL of the Facebook page * @param title The title link that is displayed before the plugin loads * @param? height * @param? width * @param? smallHeader Boolean : Use a small header * @param? adaptContainerWidth Boolean : Make the plugin adapt to container width. Only works on page load. * @param? hideCover Boolean : Hide the cover photo * @param? showFacepile Boolean : Show friends' faces * @param? showPosts Boolean : Hide the feed and only show the header */ {template .facebook_plugin}
{/template} /* {call components.facebook_plugin_js /} */ {template .facebook_plugin_js} // Call this for any pages that have the plugin
{literal} {/literal} {/template} ,templates/components/instagram/instagram.soy{namespace components} /* {call components.instagram data="all"} {param showFollowUsMessage: /} {param followUsMessage: /} {param limit: /} {param resolution: /} {param divId: /} {/call} */ /** * Instagram component * https://sites.google.com/a/yext.com/professionalservices/consulting-personnel/pages/site-attributes * Site Attributes for Handle, token, and userID, * @param siteAttributes * @param? showFollowUsMessage * @param? followUsMessage * @param? linkFollowUs * @param? limit * @param? resolution * @param? divId needed when you want multiple instances of the component on a page */ {template .instagram} {call .instagram_root data="all"} {param instagramHandle: $siteAttributes.instagram.handle /} {param accessToken: $siteAttributes.instagram.token /} {param userId: $siteAttributes.instagram.user_id /} {/call} {/template} /** * Instagram component * old individual params left in place for compatibility reasons * @param instagramHandle * @param accessToken how to generate: http://jelled.com/instagram/access-token * @param userId instagram user id that you get from entering the Instagram handle at this site: http://www.otzberg.net/iguserid/ * @param? showFollowUsMessage * @param? followUsMessage * @param? linkFollowUs * @param? limit * @param? resolution * @param? divId needed when you want multiple instances of the component on a page */ {template .instagram_root} {let $ih: strContains($instagramHandle, '@') ? $instagramHandle : '@' + $instagramHandle /} {let $nakedHandle: substring($ih, 1) /} {let $followMessage: $followUsMessage ?: 'Follow us on Instagram:' /}
{if $showFollowUsMessage}
{if $linkFollowUs} {call components.instagram_follow_us_link} {param instagramHandle: $nakedHandle /} {param linkText} {$followMessage}{sp}{$ih} {/param} {/call} {else} {call components.instagram_follow_us_link} {param instagramHandle: $nakedHandle /} {param linkText: $ih /} {/call} {/if}
{/if} {call components.instafeed_root data="all" /}
{/template} /* {call components.instagram_follow_us_link} {param instagramHandle: /} {param linkText: /} {/call} */ /** * @param instagramHandle * @param linkText */ {template .instagram_follow_us_link} {$linkText} {/template} /* {call components.instafeed} {param accessToken: /} {param userId: /} {param divId: /} {param limit: /} {param resolution: /} {/call} */ /** * @param siteAttributes * @param? divId needed when you want multiple instances of the component on a page * @param? limit * @param? resolution */ {template .instafeed} {call .instafeed_root data="all"} {param accessToken: $siteAttributes.instagram.token /} {param userId: $siteAttributes.instagram.user_id /} {/call} {/template} /* {call components.instafeed} {param accessToken: /} {param userId: /} {param divId: /} {param limit: /} {param resolution: /} {/call} */ /** * @param? divId needed when you want multiple instances of the component on a page * @param? accessToken * @param? userId * @param? limit * @param? resolution */ {template .instafeed_root}
{/template} 6templates/components/location-title/location-title.soy{namespace components} /* {call components.location_title} {param name: /} {param hideSchema: /} {/call} */ /** * Location Title component * @param name * @param? hideSchema */ {template .location_title} {let $hideSchemas: $hideSchema ?: false /}

{$name | noAutoescape}

{/template} +templates/components/maps/GetDirections.soy {namespace components.maps} /* {call components.maps.get_directions} {param address1: /} {param address2: /} {param state: /} {param city: /} {param postalCode: /} {param country: /} {/call} */ /** * Get Directions component * @param address1 * @param? address2 * @param state * @param city * @param postalCode * @param country * @param? listings * @param? provider * @param? buttonText * @param? noTrack * @param? gaCategory * @param? yaTrack */ {template .get_directions} {let $trackingTag: $yaTrack ? $yaTrack : 'drivingdirection' /}
{/template} /* {call components.maps.get_directions_url} {param address1: /} {param state: /} {param city: /} {param postalCode: /} {param country: /} {param address2: /} {param provider: /} {/call} */ /** * Get Directions component * @param address1 * @param? address2 * @param state * @param city * @param postalCode * @param country * @param? provider * @param? useCurrentLocation * @param? listings */ {template .get_directions_url} {let $url} {if $provider == 'Bing'} {let $query} {$address1 |noAutoescape}, {$city}, {$state} {$postalCode} {/let} http://bing.com/maps/default.aspx?where1={$query |escapeUri} {elseif strContains($provider ?: '', 'MapQuest')} {let $query} {$address1 |noAutoescape}{if $address2} {$address2 |noAutoescape}{/if} {$city} {$state} {$postalCode}{if $country} {$country}{/if} {/let} http://mapq.st/directions?q={$query |escapeUri}&maptype=map {else} {if $listings?.googleMyBusiness?.url and indexOf($listings.googleMyBusiness.url, 'maps.google.com') != -1} {$listings.googleMyBusiness.url} {elseif $listings?.googleReviews?.url} {$listings.googleReviews.url} {else} {let $query} {$address1 |noAutoescape}, {if $address2}{$address2 |noAutoescape}, {/if}{$city}, {$state} {$postalCode} {$country} {/let} {if $useCurrentLocation} https://www.google.com/maps/dir/Current+Location/{$query |noAutoescape |escapeUri} {else} http://maps.google.com/?q={$query |noAutoescape |escapeUri}&output=classic {/if} {/if} {/if} {/let} {$url | noAutoescape} {/template} "templates/components/maps/maps.soy"{namespace components.maps} /* {call components.maps.mapSetup} {param keys: /} {param baseUrl: /} {param zoom: /} {param siteDomain: /} {param source: /} {param disableMapControl: /} {param mapID: /} {param linkToGetDirections: /} {param nearbyLocations: /} {param maxNumberOfLocationsToDisplay: /} {param provider: /} {param providerApiKey: /} {param mapboxMapIdentifier: /} {param campaign: /} {param pagesUrlCustomFieldName: /} {/call} */ /** * @param keys * @param baseUrl * @param zoom * @param siteDomain // formally channelId, replaced to enable simple passthrough * @param? source * @param? disableMapControl * @param? mapID * @param? linkToGetDirections * @param? nearbyLocations * @param? maxNumberOfLocationsToDisplay * @param? provider * @param? providerApiKey * @param? mapboxMapIdentifier * @param? campaign * @param? pagesUrlCustomFieldName * @param? extraData * @param? name */ {template .mapSetup} {call .map_markup data="all" /} {call .map_setup_js data="all" /} {/template} /** * @param? mapID */ {template .map_markup}
{/template} /** * map_id_slug * @param mapID */ {template .map_id_slug} {if isNonnull($mapID)}-{$mapID}{/if} {/template} /** * @param keys * @param baseUrl * @param zoom * @param siteDomain // formally channelId, replaced to enable simple passthrough * @param? source * @param? disableMapControl * @param? mapID * @param? linkToGetDirections * @param? nearbyLocations * @param? maxNumberOfLocationsToDisplay * @param? provider * @param? providerApiKey * @param? mapboxMapIdentifier * @param? campaign * @param? pagesUrlCustomFieldName * @param? extraData * @param? name */ {template .map_setup_js} {let $apiID} {if $provider == 'Bing'} {$providerApiKey ?: 'AmDo0rpmCQPle6u8ExBc_GoPR39_mEuPMXnzyHs9z89SXcfBvKojMFlKF2eDH5dY'} {elseif $provider == 'MapQuest' or $provider == 'MapQuest Leaflet'} {$providerApiKey ?: 'Fmjtd%7Cluu829urnh%2Cbn%3Do5-9w1ghy'} {elseif $provider == 'Mapbox'} {$providerApiKey ?: 'pk.eyJ1IjoieWV4dCIsImEiOiJqNzVybUhnIn0.hTOO5A1yqfpN42-_z_GuLw'} {elseif $provider == 'MapboxGL'} {$providerApiKey ?: 'pk.eyJ1IjoieWV4dCIsImEiOiJqNzVybUhnIn0.hTOO5A1yqfpN42-_z_GuLw'} {elseif $provider == 'Google-Free'} {$providerApiKey} {else} {$providerApiKey ?: 'gme-yextinc'} {/if} {/let} {let $targetId} dir-map{call .map_id_slug data="all" /} {/let} {let $mapConfig: [ 'channelId': $siteDomain, 'baseUrl': $baseUrl, 'source': $source, 'zoom': $zoom, 'disableMapControl': $disableMapControl ?: false, 'mapId': $targetId, 'provider': $provider ?: 'Google', 'apiID': $apiID, 'maxNumberOfLocationsToDisplay': $maxNumberOfLocationsToDisplay, 'mapboxMapIdentifier': $provider == 'Mapbox' ? ($mapboxMapIdentifier ?: 'yext.af25bd17') : null, 'linkToGetDirections': $linkToGetDirections ?: false, 'extraData': $extraData ] /} {call components.util.data_for_js} {param id: 'js-map-config-' + $targetId /} {param class: 'js-map-config' /} {param prerenderedJson: true /} {param content} {lb} "config": {$mapConfig |json}, "locs": [ {foreach $key in $keys} {let $loc: $campaign ? $key : $key.loc /} {call .build_location_json data="$loc"} {param provider: $provider /} {param campaign: $campaign /} {param pagesUrlCustomFieldName: $pagesUrlCustomFieldName /} {param url: $key.url /} {param type: 'main' /} {param name: $name /} {/call}{if not isLast($key)},{/if} {/foreach} ], "nearbyLocs": [ {foreach $loc in $nearbyLocations ?: []} {call .build_location_json data="$loc"} {param provider: $provider /} {param type: 'nearby' /} {/call} {if not isLast($loc)},{/if} {/foreach} ] {rb} {/param} {/call} {/template} /** * @param url * @param provider * @param? campaign * @param? pagesUrlCustomFieldName * @param id * @param latitude * @param longitude * @param address1 * @param? address2 * @param city * @param state * @param postalCode * @param country * @param? listings * @param customByName * @param type * @param? name */ {template .build_location_json} {let $realUrl} {if $campaign} {$customByName[$pagesUrlCustomFieldName ?: 'Pages URL']} {else} {$url} {/if} {/let} {let $get_directions_url} {call .get_directions_url data="all"} {param provider: $provider /} {/call} {/let} {let $altTagText} {$name ?: 'Location'} at {$address1} {$city}, {$state} {/let} {let $loc: [ 'id': $id, 'latitude':$latitude, 'longitude':$longitude, 'url':$realUrl, 'get_directions_url': $get_directions_url, 'type': $type, 'altTagText': $altTagText ] /} {$loc |json} {/template} /* {call components.maps.locationMap} {param longitude: /} {param latitude: /} {param address1: /} {param state: /} {param city: /} {param postalCode: /} {param country: /} {param name: /} {param baseUrl: /} {param zoom: /} {param source: /} {param disableMapControl: /} {param provider: /} {param mapID: /} {param hideSchema: /} {param provider: /} {param providerApiKey: /} {param itemRefs: /} {param mapboxMapIdentifier: /} {param width: /} {param height: /} {/call} */ /** * @param id * @param longitude * @param latitude * @param address1 * @param state * @param city * @param postalCode * @param country * @param name * @param baseUrl * @param zoom Passthrough * @param siteDomain Passthrough * @param? listings * @param? source Passthrough * @param? disableMapControl Passthrough * @param? mapID Passthrough * @param? nearbyLocations Passthrough * @param? maxNumberOfLocationsToDisplay Passthrough * @param? linkToGetDirections Passthrough * @param? hideSchema * @param? providerApiKey * @param? provider * @param? itemRefs space separated strings that reference IDs of schema elements, e.g. 'telephone address location-name storephoto' * @param? mapboxMapIdentifier * @param? width for Static Maps * @param? height for Static Maps */ {template .locationMap} {let $keys: [ [ 'loc' : [ 'id' : $id, 'longitude' : $longitude, 'latitude': $latitude, 'address1' : $address1, 'city' : $city, 'state' : $state, 'postalCode' : $postalCode, 'country' : $country, 'name' : $name, 'listings' : $listings ], 'url' : '' ] ] /} {let $refs: $itemRefs ?: 'telephone address location-name storephoto' /}
{let $staticMapUrl} {if strlen($listings?.googleMyBusiness?.url ?: '') > 0} {$listings?.googleMyBusiness?.url} {else} {call .static_map_url data="all" /} {/if} {/let} {if not $hideSchema} {/if} {call .mapSetup data="all"} {param keys: $keys /} {param zoom: $zoom /} {param linkToGetDirections: $linkToGetDirections ?: true /} {param maxNumberOfLocationsToDisplay: $maxNumberOfLocationsToDisplay ?: 1 /} {/call} {let $showStaticMaps: (($providerApiKey ?: 'gme-yextinc') == 'gme-yextinc' and ($provider ?: 'Google') == 'Google') or ($provider ?: 'Google') != 'Google' /} {if $showStaticMaps} {/if} {if $showStaticMaps} {/if}
{/template} $templates/components/maps/static.soy{namespace components.maps} /* {call components.maps.map} {param address1: /} {param city: /} {param state: /} {param postalCode: /} {param width: /} {param height: /} {param mapType: /} {param hideSchema: /} {param latitude: /} {param longitude: /} {/call} */ /** * Create a static map from our map API * * Location fields: * @param address1 * @param city * @param state * @param postalCode * @param latitude The geo latitude to use for the map * @param longitude The geo longitude to use for the map * @param country * @param? listings * * @param? provider * @param? providerApiKey * @param? width * @param? height * @param? siteDomain * * Tag configuration: * @param? mapType One of ('road', 'satellite') * @param? hideSchema (true/false) * * @param? noTrack * @param? gaCategory * @param? markerUrl */ {template .static_map}
// Since this is just meta data but needs to be structured // We use hidden meta tags in a hidden span element {if not $hideSchema} {/if}
{/template} /** * @param? mapType One of ('road', 'satellite') * @param? siteDomain * @param? provider * @param? providerApiKey * @param? markerUrl * Location fields: * @param latitude The geo latitude to use for the map * @param longitude The geo longitude to use for the map * * @param? width * @param? height */ {template .static_map_url} {if $provider == 'Bing'} {call .bing_static_map_url data="all"} {param apiKey: $providerApiKey /} {param width: $width ?: 350 /} {param height: $height ?: 350 /} {/call} {elseif $provider == 'MapQuest'} {call .mapquest_static_map_url data="all"} {param apiKey: $providerApiKey /} {param width: $width ?: 350 /} {param height: $height ?: 350 /} {/call} {elseif $provider == 'Mapbox'} {call .mapbox_static_map_url data="all"} {param apiKey: $providerApiKey /} {param width: $width ?: 350 /} {param height: $height ?: 350 /} {/call} {else} {call .google_static_map_url data="all"} {param siteDomain: $siteDomain /} {param mapType: $mapType ?: 'road' /} {param width: $width ?: 350 /} {param height: $height ?: 350 /} {/call} {/if} {/template} /** * @param width * @param height * @param mapType One of ('road', 'satellite') * @param siteDomain * Location fields: * @param latitude The geo latitude to use for the map * @param longitude The geo longitude to use for the map * @param? markerUrl */ {template .google_static_map_url} {let $latlng : $latitude + ',' + $longitude /} // note: markerUrl must be absolute, also it will trigger a warning until icon is publicly visible {let $params: [ 'center': $latlng, 'zoom': '13', 'size': $width + 'x' + $height, 'maptype': $mapType == 'road' ? 'roadmap' : 'satellite', 'markers': ($markerUrl ? 'icon:' + $markerUrl : 'color:red') + '|' + $latlng, 'sensor': 'false', 'channel' : $siteDomain ]/} // TODO: This needs to accept a client API key {gmap('/maps/api/staticmap', $params) |noAutoescape} {/template} /* {call components.maps.bing_static_map_url} {param apiKey: /} {param latitude: /} {param longitude: /} {param width: /} {param height: /} {/call} */ /** * @param apiKey * @param latitude * @param longitude * @param width * @param height */ {template .bing_static_map_url} {let $key: $apiKey ?: 'AmDo0rpmCQPle6u8ExBc_GoPR39_mEuPMXnzyHs9z89SXcfBvKojMFlKF2eDH5dY' /} http://dev.virtualearth.net/REST/v1/Imagery/Map/road?{$width},{$height}&pushpin={$latitude},{$longitude}&key={$key} {/template} /* {call components.maps.mapquest_static_map_url} {param apiKey: /} {param latitude: /} {param longitude: /} {param width: /} {param height: /} {/call} */ /** * @param apiKey * @param latitude * @param longitude * @param width * @param height */ {template .mapquest_static_map_url} {let $key: $apiKey ?: 'Fmjtd%7Cluu829urnh%2Cbn%3Do5-9w1ghy' /} http://www.mapquestapi.com/staticmap/v4/getmap?key={$key}&size={$width},{$height}&zoom=10¢er={$latitude},{$longitude} {/template} /* {call components.maps.mapbox_static_map_url data="all"} {param width: '360' /} {param height: '100' /} {param latitude: $location.latitude /} {param longitude: $location.longitude /} {param options: [ 'imageFormat': '@2x.png', 'zoom':10, 'pinSize':'pin-l', 'marker':'slaughterhouse', 'color':'FED565' ] /} {/call} */ /** * @param? apiKey * @param latitude * @param longitude * @param width * @param height * @param? options //This is a map */ {template .mapbox_static_map_url} {let $key: $apiKey ?: 'pk.eyJ1IjoieWV4dCIsImEiOiJqNzVybUhnIn0.hTOO5A1yqfpN42-_z_GuLw' /} {let $format: $options?.imageFormat ?: '.png' /} {let $zoomLevel: $options?.zoom ?: 15 /} {let $mapIdentifier: $options?.mapboxMapIdentifier ?: 'yext.af25bd17' /} {let $pinSize: $options?.pinSize ?: 'pin-m' /} {let $marker} {if isNonnull($options?.marker)} -{$options?.marker} {/if} {/let} {let $color} {if isNonnull($options?.color)} +{$options?.color} {/if} {/let} {let $overlay} {$pinSize}{$marker}{$color}({$longitude},{$latitude}) {/let} http://api.tiles.mapbox.com/v4/{$mapIdentifier}/{$overlay}/{$longitude},{$latitude},{$zoomLevel}/{$width}x{$height}{$format}?access_token={$key} {/template} .templates/components/monitoring/monitoring.soy{namespace components.monitoring} /** * Boostrap data needed to provide context for error monitoring. * * @param siteId * @param siteDomain * @param isStaging * @param soyTemplateName */ {template .init} // TODO(mhupman): Would prefer to use components.util.data_for_js, but we broke // the principle of "no-regression" upgrades when adding the prerenderedJson // parameter. {call .data_for_js} {param id: 'monitoring-data' /} {param content: [ 'isStaging': $isStaging, 'siteId': $siteId, 'siteDomain': $siteDomain, 'soyTemplateName': $soyTemplateName] /} {/call} {/template} /** * data_for_js * @param id * @param content * @param? class * @param? prerenderedJson */ {template .data_for_js} {/template} 1templates/components/performance/load-content.soyC{namespace components.performance} /* {call components.performance.load_image} {param content} {$customByName['Location Photo'].description} {/param} {param mediaQuery: '(min-width: 768px)' /} {param identifier: 'js-load-call-us' /} // optional {param removeNoScriptFallback: false /} // optional, set to true if you want the