<html><head></head><body>{"version":3,"sources":["src/components/search/atomic-search-interface/analytics-config.ts","src/components/search/atomic-search-interface/store.ts","src/components/search/atomic-search-interface/atomic-search-interface.pcss?tag=atomic-search-interface&amp;encapsulation=shadow","src/components/search/atomic-search-interface/atomic-search-interface.tsx"],"names":["getAnalyticsConfig","searchEngineConfig","enabled","store","analyticsClientMiddleware","event","payload","augmentAnalytics","defaultConfiguration","augmentAnalyticsConfigWithDocument","analytics","config","result","augmentWithExternalMiddleware","augmentAnalyticsWithAtomicVersion","augmentAnalyticsWithFacetTitles","allFacets","getAllFacets","getAtomicFacetLabelOrOriginalTitle","facetId","originalTitle","label","facetState","map","analyticsFacetState","id","title","customData","facetTitle","createAtomicStore","commonStore","createAtomicCommonStore","loadingFlags","facets","numericFacets","dateFacets","categoryFacets","facetElements","sortOptions","iconAssetsPath","mobileBreakpoint","DEFAULT_MOBILE_BREAKPOINT","fieldsToInclude","currentQuickviewPosition","[object Object]","state","window","matchMedia","makeDesktopQuery","matches","engine","search","response","searchUid","atomicSearchInterfaceCss","FirstSearchExecutedFlag","AtomicSearchInterface","hostRef","this","unsubscribeUrlManager","unsubscribeSearchStatus","initialized","relevanceInspectorIsOpen","i18n","i18next","createInstance","language","reflectStateInUrl","scrollContainer","languageAssetsPath","enableRelevanceInspector","onHashChange","urlManager","synchronize","fragment","initRelevanceInspector","commonInterfaceHelper","CommonAtomicInterfaceHelper","setLoadingFlag","updateMobileBreakpoint","initAriaLive","initFieldsToInclude","updatedProp","newValue","engineIsCreated","updateSearchConfiguration","loadSearchConfigurationActions","dispatch","_a","searchHub","pipeline","onAnalyticsChange","locale","onLanguageChange","set","removeEventListener","onComponentInitializing","scrollContainerElement","document","querySelector","bindings","logger","warn","scrollIntoView","behavior","options","internalInitialization","initEngine","console","mismatchedInterfaceAndEnginePropError","error","host","safeStorage","SafeStorage","standaloneSearchBoxData","getParsedJSON","StorageItems","STANDALONE_SEARCH_BOX_DATA","executeFirstSearch","removeItem","updateQuery","loadQueryActions","value","enableQuerySyntax","q","executeFirstSearchAfterStandaloneSearchBoxRedirect","organizationId","env","getOrganizationEndpointsHeadless","interfaceElement","fields","EcommerceDefaultFieldsToInclude","concat","addFieldsToInclude","loadFieldActions","registerFieldsToInclude","breakpoint","searchConfig","getSearchConfiguration","analyticsConfig","buildSearchEngine","configuration","loggerOptions","level","logLevel","searchConfigFromProps","timezone","location","hash","slice","buildUrlManager","initialState","subscribe","updateHash","addEventListener","Array","from","children","some","element","tagName","prepend","createElement","e","altKey","searchStatus","buildSearchStatus","hasNoResultsAfterInitialSearch","hasResults","firstSearchExecuted","hasError","classList","toggle","hasLoadingFlag","unsetLoadingFlag","newFragment","history","replaceState","info","pushState","onInitialization","initSearchStatus","initUrlManager","h","open","ArrayProp"],"mappings":"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","sourcesContent":["import {\n  AnalyticsConfiguration,\n  SearchEngineConfiguration,\n} from '@coveo/headless';\nimport {\n  AnalyticsPayload,\n  augmentAnalyticsWithAtomicVersion,\n  augmentWithExternalMiddleware,\n  augmentAnalyticsConfigWithDocument,\n} from '../../common/interface/analytics-config';\nimport {createAtomicStore} from './store';\n\nexport function getAnalyticsConfig(\n  searchEngineConfig: SearchEngineConfiguration,\n  enabled: boolean,\n  store: ReturnType<typeof createatomicstore="">\n): AnalyticsConfiguration {\n  const analyticsClientMiddleware = (\n    event: string,\n    payload: AnalyticsPayload\n  ) =&gt; augmentAnalytics(event, payload, store, searchEngineConfig);\n\n  const defaultConfiguration: AnalyticsConfiguration = {\n    analyticsClientMiddleware,\n    enabled,\n    ...augmentAnalyticsConfigWithDocument(),\n  };\n\n  if (searchEngineConfig.analytics) {\n    return {\n      ...defaultConfiguration,\n      ...searchEngineConfig.analytics,\n      analyticsClientMiddleware,\n    };\n  }\n  return defaultConfiguration;\n}\n\nfunction augmentAnalytics(\n  event: string,\n  payload: AnalyticsPayload,\n  store: ReturnType<typeof createatomicstore="">,\n  config: SearchEngineConfiguration\n) {\n  let result = augmentWithExternalMiddleware(event, payload, config);\n  result = augmentAnalyticsWithAtomicVersion(result);\n  result = augmentAnalyticsWithFacetTitles(result, store);\n  return result;\n}\n\nfunction augmentAnalyticsWithFacetTitles(\n  payload: AnalyticsPayload,\n  store: ReturnType<typeof createatomicstore="">\n) {\n  const allFacets = store.getAllFacets();\n  const getAtomicFacetLabelOrOriginalTitle = (\n    facetId: string,\n    originalTitle: string\n  ) =&gt; (allFacets[facetId] ? allFacets[facetId].label() : originalTitle);\n\n  if (payload.facetState) {\n    payload.facetState = payload.facetState.map(\n      (analyticsFacetState: {id: string; title: string}) =&gt; {\n        const {id, title: originalTitle} = analyticsFacetState;\n        return {\n          ...analyticsFacetState,\n          title: getAtomicFacetLabelOrOriginalTitle(id, originalTitle),\n        };\n      }\n    );\n  }\n\n  if (\n    payload.customData &amp;&amp;\n    payload.customData.facetTitle &amp;&amp;\n    payload.customData.facetId &amp;&amp;\n    payload.customData.facetTitle\n  ) {\n    payload.customData.facetTitle = getAtomicFacetLabelOrOriginalTitle(\n      payload.customData.facetId,\n      payload.customData.facetTitle\n    );\n  }\n  return payload;\n}\n","import {\n  NumericFacetValue,\n  DateFacetValue,\n  SortCriterion,\n  SearchEngine,\n} from '@coveo/headless';\nimport {DEFAULT_MOBILE_BREAKPOINT} from '../../../utils/replace-breakpoint';\nimport {\n  FacetInfo,\n  FacetStore,\n  FacetValueFormat,\n} from '../../common/facets/facet-common-store';\nimport {\n  createAtomicCommonStore,\n  AtomicCommonStoreData,\n  AtomicCommonStore,\n} from '../../common/interface/store';\nimport {makeDesktopQuery} from '../atomic-layout/search-layout';\n\nexport interface SortDropdownOption {\n  expression: string;\n  criteria: SortCriterion[];\n  label: string;\n}\n\nexport interface AtomicStoreData extends AtomicCommonStoreData {\n  facets: FacetStore<facetinfo>;\n  numericFacets: FacetStore<facetinfo &="" facetvalueformat<numericfacetvalue="">&gt;;\n  dateFacets: FacetStore<facetinfo &="" facetvalueformat<datefacetvalue="">&gt;;\n  categoryFacets: FacetStore<facetinfo>;\n  sortOptions: SortDropdownOption[];\n  mobileBreakpoint: string;\n  currentQuickviewPosition: number;\n}\n\nexport interface AtomicStore extends AtomicCommonStore<atomicstoredata> {\n  getAllFacets(): {\n    [facetId: string]:\n      | FacetInfo\n      | (FacetInfo &amp; FacetValueFormat<numericfacetvalue>)\n      | (FacetInfo &amp; FacetValueFormat<datefacetvalue>);\n  };\n\n  isMobile(): boolean;\n}\n\nexport function createAtomicStore(): AtomicStore {\n  const commonStore = createAtomicCommonStore<atomicstoredata>({\n    loadingFlags: [],\n    facets: {},\n    numericFacets: {},\n    dateFacets: {},\n    categoryFacets: {},\n    facetElements: [],\n    sortOptions: [],\n    iconAssetsPath: '',\n    mobileBreakpoint: DEFAULT_MOBILE_BREAKPOINT,\n    fieldsToInclude: [],\n    currentQuickviewPosition: -1,\n  });\n\n  return {\n    ...commonStore,\n\n    getAllFacets() {\n      return {\n        ...commonStore.state.facets,\n        ...commonStore.state.dateFacets,\n        ...commonStore.state.categoryFacets,\n        ...commonStore.state.numericFacets,\n      };\n    },\n\n    isMobile() {\n      return !window.matchMedia(\n        makeDesktopQuery(commonStore.state.mobileBreakpoint)\n      ).matches;\n    },\n\n    getUniqueIDFromEngine(engine: SearchEngine): string {\n      return engine.state.search.response.searchUid;\n    },\n  };\n}\n","@import '../../../global/global.pcss';\n\n:host {\n  height: inherit;\n  width: inherit;\n  &amp; &gt; slot {\n    height: inherit;\n  }\n}\n","import {\n  LogLevel,\n  Unsubscribe,\n  buildUrlManager,\n  UrlManager,\n  buildSearchEngine,\n  SearchEngine,\n  SearchEngineConfiguration,\n  SearchStatus,\n  buildSearchStatus,\n  loadSearchConfigurationActions,\n  loadQueryActions,\n  EcommerceDefaultFieldsToInclude,\n  loadFieldActions,\n  getOrganizationEndpoints as getOrganizationEndpointsHeadless,\n  PlatformEnvironment,\n} from '@coveo/headless';\nimport {\n  Component,\n  Prop,\n  h,\n  Listen,\n  Method,\n  Watch,\n  Element,\n  State,\n} from '@stencil/core';\nimport i18next, {i18n} from 'i18next';\nimport {InitializeEvent} from '../../../utils/initialization-utils';\nimport {\n  SafeStorage,\n  StandaloneSearchBoxData,\n  StorageItems,\n} from '../../../utils/local-storage-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {CommonBindings} from '../../common/interface/bindings';\nimport {\n  BaseAtomicInterface,\n  CommonAtomicInterfaceHelper,\n  mismatchedInterfaceAndEnginePropError,\n} from '../../common/interface/interface-common';\nimport {getAnalyticsConfig} from './analytics-config';\nimport {AtomicStore, createAtomicStore} from './store';\n\nconst FirstSearchExecutedFlag = 'firstSearchExecuted';\nexport type InitializationOptions = SearchEngineConfiguration;\nexport type Bindings = CommonBindings&lt;\n  SearchEngine,\n  AtomicStore,\n  HTMLAtomicSearchInterfaceElement\n&gt;;\n\n/**\n * The `atomic-search-interface` component is the parent to all other atomic components in a search page. It handles the headless search engine and localization configurations.\n */\n@Component({\n  tag: 'atomic-search-interface',\n  styleUrl: 'atomic-search-interface.pcss',\n  shadow: true,\n  assetsDirs: ['lang'],\n})\nexport class AtomicSearchInterface\n  implements BaseAtomicInterface<searchengine>\n{\n  private urlManager!: UrlManager;\n  private searchStatus!: SearchStatus;\n  private unsubscribeUrlManager: Unsubscribe = () =&gt; {};\n  private unsubscribeSearchStatus: Unsubscribe = () =&gt; {};\n  private initialized = false;\n  private store = createAtomicStore();\n  private commonInterfaceHelper: CommonAtomicInterfaceHelper<searchengine>;\n\n  @Element() public host!: HTMLAtomicSearchInterfaceElement;\n\n  @State() public error?: Error;\n  @State() relevanceInspectorIsOpen = false;\n\n  /**\n   * A list of non-default fields to include in the query results.\n   *\n   * Specify the property as an array using a JSON string representation:\n   * ```html\n   * <atomic-search-interface fields-to-include='[\"fieldA\", \"fieldB\"]'></atomic-search-interface>\n   * ```\n   */\n  @ArrayProp()\n  @Prop({mutable: true})\n  public fieldsToInclude: string[] | string = '[]';\n\n  /**\n   * The search interface [query pipeline](https://docs.coveo.com/en/180/).\n   *\n   * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine), the query pipeline should instead be configured in the target engine.\n   */\n  @Prop({reflect: true, mutable: true}) public pipeline?: string;\n\n  /**\n   * The search interface [search hub](https://docs.coveo.com/en/1342/).\n   *\n   * If the search interface is initialized using [`initializeWithSearchEngine`](https://docs.coveo.com/en/atomic/latest/reference/components/atomic-search-interface/#initializewithsearchengine, the search hub should instead be configured in the target engine.\n   */\n  @Prop({reflect: true, mutable: true}) public searchHub?: string;\n\n  /**\n   * Whether analytics should be enabled.\n   */\n  @Prop({reflect: true}) public analytics = true;\n\n  /**\n   * The [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) identifier of the time zone to use to correctly interpret dates in the query expression, facets, and result items.\n   * By default, the timezone will be [guessed](https://day.js.org/docs/en/timezone/guessing-user-timezone).\n   *\n   * Example: \"America/Montreal\"\n   */\n  @Prop({reflect: true}) public timezone?: string;\n\n  /**\n   * The severity level of the messages to log in the console.\n   */\n  @Prop({reflect: true}) public logLevel?: LogLevel;\n\n  /**\n   * The search interface i18next instance.\n   */\n  @Prop() public i18n: i18n = i18next.createInstance();\n\n  /**\n   * The search interface language.\n   */\n  @Prop({reflect: true}) public language = 'en';\n\n  /**\n   * The search interface headless engine.\n   */\n  @Prop({mutable: true}) public engine?: SearchEngine;\n\n  /**\n   * Whether the state should be reflected in the URL parameters.\n   */\n  @Prop({reflect: true}) public reflectStateInUrl = true;\n\n  /**\n   * The CSS selector for the container where the interface will scroll back to.\n   */\n  @Prop({reflect: true}) public scrollContainer = 'atomic-search-interface';\n\n  /**\n   * The language assets path. By default, this will be a relative URL pointing to `./lang`.\n   *\n   * Example: \"/mypublicpath/languages\"\n   *\n   */\n  @Prop({reflect: true}) public languageAssetsPath = './lang';\n\n  /**\n   * The icon assets path. By default, this will be a relative URL pointing to `./assets`.\n   *\n   * Example: \"/mypublicpath/icons\"\n   *\n   */\n  @Prop({reflect: true}) public iconAssetsPath = './assets';\n\n  /**\n   * Whether the relevance inspector shortcut should be enabled for this interface.\n   *\n   * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double click.\n   *\n   * The relevance inspector allows to troubleshoot and debug queries.\n   */\n  @Prop({reflect: true}) public enableRelevanceInspector = true;\n\n  public constructor() {\n    this.initRelevanceInspector();\n    this.commonInterfaceHelper = new CommonAtomicInterfaceHelper(\n      this,\n      'CoveoAtomic'\n    );\n  }\n\n  public connectedCallback() {\n    this.store.setLoadingFlag(FirstSearchExecutedFlag);\n    this.updateMobileBreakpoint();\n  }\n\n  componentWillLoad() {\n    this.initAriaLive();\n    this.initFieldsToInclude();\n  }\n\n  public updateSearchConfiguration(\n    updatedProp: 'searchHub' | 'pipeline',\n    newValue: string | undefined\n  ) {\n    if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n      return;\n    }\n\n    if (this.engine.state[updatedProp] === newValue) {\n      return;\n    }\n\n    const {updateSearchConfiguration} = loadSearchConfigurationActions(\n      this.engine\n    );\n    this.engine.dispatch(\n      updateSearchConfiguration({\n        [updatedProp]: newValue,\n      })\n    );\n  }\n\n  @Watch('searchHub')\n  public updateSearchHub() {\n    this.updateSearchConfiguration('searchHub', this.searchHub ?? 'default');\n  }\n\n  @Watch('pipeline')\n  public updatePipeline() {\n    this.updateSearchConfiguration('pipeline', this.pipeline);\n  }\n\n  @Watch('analytics')\n  public toggleAnalytics() {\n    if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n      return;\n    }\n\n    this.commonInterfaceHelper.onAnalyticsChange();\n  }\n\n  @Watch('language')\n  public updateLanguage() {\n    if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n      return;\n    }\n\n    const {updateSearchConfiguration} = loadSearchConfigurationActions(\n      this.engine\n    );\n    this.engine.dispatch(\n      updateSearchConfiguration({\n        locale: this.language,\n      })\n    );\n    this.commonInterfaceHelper.onLanguageChange();\n  }\n\n  @Watch('iconAssetsPath')\n  public updateIconAssetsPath() {\n    this.store.set('iconAssetsPath', this.iconAssetsPath);\n  }\n\n  public disconnectedCallback() {\n    this.unsubscribeUrlManager();\n    this.unsubscribeSearchStatus();\n    window.removeEventListener('hashchange', this.onHashChange);\n  }\n\n  @Listen('atomic/initializeComponent')\n  public handleInitialization(event: InitializeEvent) {\n    this.commonInterfaceHelper.onComponentInitializing(event);\n  }\n\n  @Listen('atomic/scrollToTop')\n  public scrollToTop() {\n    const scrollContainerElement = document.querySelector(this.scrollContainer);\n    if (!scrollContainerElement) {\n      this.bindings.engine.logger.warn(\n        `Could not find the scroll container with the selector \"${this.scrollContainer}\". This will prevent UX interactions that require a scroll from working correctly. Please check the CSS selector in the scrollContainer option`\n      );\n      return;\n    }\n\n    scrollContainerElement.scrollIntoView({behavior: 'smooth'});\n  }\n\n  @Listen('atomic/relevanceInspector/close')\n  public closeRelevanceInspector() {\n    this.relevanceInspectorIsOpen = false;\n  }\n\n  /**\n   * Initializes the connection with the headless search engine using options for accessToken (required), organizationId (required), renewAccessToken, organizationEndpoints (recommended), and platformUrl (deprecated).\n   */\n  @Method() public initialize(options: InitializationOptions) {\n    return this.internalInitialization(() =&gt; this.initEngine(options));\n  }\n\n  /**\n   * Initializes the connection with an already preconfigured headless search engine, as opposed to the `initialize` method which will internally create a new search engine instance.\n   * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone &amp; logLevel.\n   */\n  @Method() public initializeWithSearchEngine(engine: SearchEngine) {\n    if (this.pipeline &amp;&amp; this.pipeline !== engine.state.pipeline) {\n      console.warn(\n        mismatchedInterfaceAndEnginePropError('search', 'query pipeline')\n      );\n    }\n    if (this.searchHub &amp;&amp; this.searchHub !== engine.state.searchHub) {\n      console.warn(\n        mismatchedInterfaceAndEnginePropError('search', 'search hub')\n      );\n    }\n    return this.internalInitialization(() =&gt; (this.engine = engine));\n  }\n\n  /**\n   *\n   * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.\n   */\n  @Method() public async executeFirstSearch() {\n    if (!this.commonInterfaceHelper.engineIsCreated(this.engine)) {\n      return;\n    }\n\n    if (!this.initialized) {\n      console.error(\n        'You have to wait until the \"initialize\" promise is fulfilled before executing a search.',\n        this.host\n      );\n      return;\n    }\n\n    const safeStorage = new SafeStorage();\n    const standaloneSearchBoxData =\n      safeStorage.getParsedJSON<standalonesearchboxdata null="" |="">(\n        StorageItems.STANDALONE_SEARCH_BOX_DATA,\n        null\n      );\n\n    if (!standaloneSearchBoxData) {\n      this.engine.executeFirstSearch();\n      return;\n    }\n\n    safeStorage.removeItem(StorageItems.STANDALONE_SEARCH_BOX_DATA);\n    const {updateQuery} = loadQueryActions(this.engine!);\n    const {value, enableQuerySyntax, analytics} = standaloneSearchBoxData;\n    this.engine!.dispatch(updateQuery({q: value, enableQuerySyntax}));\n    this.engine.executeFirstSearchAfterStandaloneSearchBoxRedirect(analytics);\n  }\n\n  /**\n   * Returns the unique, organization-specific endpoint(s)\n   * @param {string} organizationId\n   * @param {'prod'|'hipaa'|'staging'|'dev'} [env=Prod]\n   */\n  @Method() public async getOrganizationEndpoints(\n    organizationId: string,\n    env: PlatformEnvironment = 'prod'\n  ) {\n    return getOrganizationEndpointsHeadless(organizationId, env);\n  }\n\n  public get bindings(): Bindings {\n    return {\n      engine: this.engine!,\n      i18n: this.i18n,\n      store: this.store,\n      interfaceElement: this.host,\n    };\n  }\n\n  private initFieldsToInclude() {\n    const fields = EcommerceDefaultFieldsToInclude.concat(this.fieldsToInclude);\n    this.store.addFieldsToInclude(fields);\n  }\n\n  public registerFieldsToInclude() {\n    this.engine?.dispatch(\n      loadFieldActions(this.engine!).registerFieldsToInclude(\n        this.store.state.fieldsToInclude\n      )\n    );\n  }\n\n  private updateMobileBreakpoint() {\n    const breakpoint = this.host.querySelector(\n      'atomic-search-layout'\n    )?.mobileBreakpoint;\n    if (breakpoint) {\n      this.store.set('mobileBreakpoint', breakpoint);\n    }\n  }\n\n  private initEngine(options: InitializationOptions) {\n    const searchConfig = this.getSearchConfiguration(options);\n    const analyticsConfig = getAnalyticsConfig(\n      options,\n      this.analytics,\n      this.store\n    );\n    try {\n      this.engine = buildSearchEngine({\n        configuration: {\n          ...options,\n          search: searchConfig,\n          analytics: analyticsConfig,\n        },\n        loggerOptions: {\n          level: this.logLevel,\n        },\n      });\n    } catch (error) {\n      this.error = error as Error;\n      throw error;\n    }\n  }\n\n  private getSearchConfiguration(options: InitializationOptions) {\n    const searchConfigFromProps = {\n      searchHub: this.searchHub ?? 'default',\n      pipeline: this.pipeline,\n      locale: this.language,\n      timezone: this.timezone,\n    };\n\n    if (options.search) {\n      return {\n        ...searchConfigFromProps,\n        ...options.search,\n      };\n    }\n\n    return searchConfigFromProps;\n  }\n\n  private get fragment() {\n    return window.location.hash.slice(1);\n  }\n\n  private initUrlManager() {\n    if (!this.reflectStateInUrl) {\n      return;\n    }\n\n    this.urlManager = buildUrlManager(this.engine!, {\n      initialState: {fragment: this.fragment},\n    });\n\n    this.unsubscribeUrlManager = this.urlManager.subscribe(() =&gt;\n      this.updateHash()\n    );\n\n    window.addEventListener('hashchange', this.onHashChange);\n  }\n\n  private initAriaLive() {\n    if (\n      Array.from(this.host.children).some(\n        (element) =&gt; element.tagName === 'ATOMIC-ARIA-LIVE'\n      )\n    ) {\n      return;\n    }\n    this.host.prepend(document.createElement('atomic-aria-live'));\n  }\n\n  private initRelevanceInspector() {\n    if (this.enableRelevanceInspector) {\n      this.host.addEventListener('dblclick', (e) =&gt; {\n        if (e.altKey) {\n          this.relevanceInspectorIsOpen = !this.relevanceInspectorIsOpen;\n        }\n      });\n    }\n  }\n\n  private initSearchStatus() {\n    this.searchStatus = buildSearchStatus(this.engine!);\n    this.unsubscribeSearchStatus = this.searchStatus.subscribe(() =&gt; {\n      const hasNoResultsAfterInitialSearch =\n        !this.searchStatus.state.hasResults &amp;&amp;\n        this.searchStatus.state.firstSearchExecuted &amp;&amp;\n        !this.searchStatus.state.hasError;\n\n      this.host.classList.toggle(\n        'atomic-search-interface-no-results',\n        hasNoResultsAfterInitialSearch\n      );\n\n      this.host.classList.toggle(\n        'atomic-search-interface-error',\n        this.searchStatus.state.hasError\n      );\n\n      this.host.classList.toggle(\n        'atomic-search-interface-search-executed',\n        this.searchStatus.state.firstSearchExecuted\n      );\n\n      if (\n        this.searchStatus.state.firstSearchExecuted &amp;&amp;\n        this.store.hasLoadingFlag(FirstSearchExecutedFlag)\n      ) {\n        this.store.unsetLoadingFlag(FirstSearchExecutedFlag);\n      }\n    });\n  }\n\n  private updateHash() {\n    const newFragment = this.urlManager.state.fragment;\n\n    if (!this.searchStatus.state.firstSearchExecuted) {\n      history.replaceState(null, document.title, `#${newFragment}`);\n      this.bindings.engine.logger.info(`History replaceState #${newFragment}`);\n\n      return;\n    }\n\n    history.pushState(null, document.title, `#${newFragment}`);\n    this.bindings.engine.logger.info(`History pushState #${newFragment}`);\n  }\n\n  private onHashChange = () =&gt; {\n    this.urlManager.synchronize(this.fragment);\n  };\n\n  private async internalInitialization(initEngine: () =&gt; void) {\n    await this.commonInterfaceHelper.onInitialization(initEngine);\n    this.pipeline = this.engine!.state.pipeline;\n    this.searchHub = this.engine!.state.searchHub;\n    this.initSearchStatus();\n    this.initUrlManager();\n    this.initialized = true;\n  }\n\n  public render() {\n    return [\n      this.engine &amp;&amp; this.enableRelevanceInspector &amp;&amp; (\n        <atomic-relevance-inspector\n bindings="{this.bindings}\n" open="{this.relevanceInspectorIsOpen}\n">\n      ),\n      <slot></slot>,\n    ];\n  }\n}\n"]}</atomic-relevance-inspector\n></standalonesearchboxdata></searchengine></searchengine></atomicstoredata></datefacetvalue></numericfacetvalue></atomicstoredata></facetinfo></facetinfo></facetinfo></facetinfo></typeof></typeof></typeof><style>
.hidden {
display: none;
}
</style>

<a href="http://www.uc1112.com"  class="hidden">Venetian-gambling-info@uc1112.com</a>
<a href="http://www.katarre.com"  class="hidden">European-Cup-buying-careers@katarre.com</a>
<a href="http://miizls.qida-sh.com" class="hidden">济南二手车网</a>
<a href="http://www.lyhymh.net"  class="hidden">博彩平台</a>
<a href="http://www.muurausahvenlampi.com"  class="hidden">皇冠体育</a>
<a href="http://www.kongtiao11.com"  class="hidden">Gaming-platform-sales@kongtiao11.com</a>
<a href="http://web-sitemap.shoppersdeli.com" class="hidden">侯卫东官场笔记</a>
<a href="http://web-sitemap.resmedium.com" class="hidden">陆良论坛</a>
<a href="http://www.letaoyizs.com"  class="hidden">Crown-app-Download-customerservice@letaoyizs.com</a>
<a href="http://psqjpr.zjjxhcj.com" class="hidden">成都兼职网</a>
<a href="http://www.media2v-api.net"  class="hidden">365-Sports-sales@media2v-api.net</a>
<a href="http://www.anetalaya.com"  class="hidden">Gaming-app-Download-service@anetalaya.com</a>
<a href="http://www.sqwyhws.com"  class="hidden">ag8亚游</a>
<a href="http://www.kongtiao11.com"  class="hidden">Sports-betting-contact@kongtiao11.com</a>
<a href="http://www.yuke100.net"  class="hidden">365体育</a>
<a href="http://www.kongtiao11.com"  class="hidden">体育博彩平台</a>
<a href="http://www.rdsy.net"  class="hidden">Crown-Sports-Betting-sales@rdsy.net</a>
<a href="http://www.gsy1258.com"  class="hidden">Crown-Sports-website-help@gsy1258.com</a>
<a href="http://www.seezl.com"  class="hidden">皇冠博彩官网</a>
<a href="http://oozolq.810zc.com" class="hidden">腾讯媒体开放平台</a>

<a href="https://www.deep6gear.com/catalogsearch/result/?q=可靠的体育博彩最正规网赌网站-维基百科✔️网址:ad11.net✔️" class="hidden">教育技术通讯</a>
<a href="https://es-la.facebook.com/public/✔️网址:ad11.net✔️威尼斯集团网站官网.sdk" class="hidden">汉川新闻网</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=十大正规赌平台投注平台介绍✔️官方网址:la777.net✔️" class="hidden">阜阳天气预报</a>
<a href="https://m.facebook.com/public/✔️网址:ad11.net✔️科普一下4008云顶集团的百科✔️网址:ad11.net✔️科普一下4008云顶集团的百科" class="hidden">比一比购物搜索</a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=足球欧洲盘app(中国)有限公司✔️网址:la666.net✔️.dow" class="hidden">妆点网生活频道</a>
<a href="https://es-la.facebook.com/public/✔️官方网址:la777.net✔️abg欧博网址✔️官方网址:la777.net✔️abg欧博网址" class="hidden">华章教育</a>
<a href="https://stock.adobe.com/search/images?k=科普一下永利贵宾会场注册送58的百科✔️网址:ad11.net✔️" class="hidden">石岛信息港</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=>>✔️网址:la66.net✔️手输<<澳门十大娱乐网站平台.nzn" class="hidden">北京手机靓号</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la66.net✔️最好的网上赌博最全博彩网站-维基百科" class="hidden">劲舞团官方合作网站</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=网上赌博排名亚洲体育赌博软件平台介绍✔️网址:ad11.net✔️" class="hidden">88106小说阅读网</a>

<a href="/sitemap.xml" class="hidden">站点地图</a>
<a href="/sttcs/hot-news/hidradenitis.html" class="hidden">我的地宝</a>
<a href="/CN/ispikm-670337.html" class="hidden">正大集团</a>
<a href="/news/ezixcp-265049" class="hidden">广州医科大学附属第三医院</a>


</body></html>