{"version":3,"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","state","isMobile","window","matchMedia","makeDesktopQuery","matches","getUniqueIDFromEngine","engine","search","response","searchUid","atomicSearchInterfaceCss","FirstSearchExecutedFlag","AtomicSearchInterface","constructor","hostRef","this","unsubscribeUrlManager","unsubscribeSearchStatus","initialized","relevanceInspectorIsOpen","i18n","i18next","createInstance","language","reflectStateInUrl","scrollContainer","languageAssetsPath","enableRelevanceInspector","onHashChange","urlManager","synchronize","fragment","initRelevanceInspector","commonInterfaceHelper","CommonAtomicInterfaceHelper","connectedCallback","setLoadingFlag","updateMobileBreakpoint","componentWillLoad","initAriaLive","initFieldsToInclude","updateSearchConfiguration","updatedProp","newValue","engineIsCreated","loadSearchConfigurationActions","dispatch","updateSearchHub","_a","searchHub","updatePipeline","pipeline","toggleAnalytics","onAnalyticsChange","updateLanguage","locale","onLanguageChange","updateIconAssetsPath","set","disconnectedCallback","removeEventListener","handleInitialization","onComponentInitializing","scrollToTop","scrollContainerElement","document","querySelector","bindings","logger","warn","scrollIntoView","behavior","closeRelevanceInspector","initialize","options","internalInitialization","initEngine","initializeWithSearchEngine","console","mismatchedInterfaceAndEnginePropError","executeFirstSearch","error","host","safeStorage","SafeStorage","standaloneSearchBoxData","getParsedJSON","StorageItems","STANDALONE_SEARCH_BOX_DATA","removeItem","updateQuery","loadQueryActions","value","enableQuerySyntax","q","executeFirstSearchAfterStandaloneSearchBoxRedirect","getOrganizationEndpoints","organizationId","env","getOrganizationEndpointsHeadless","interfaceElement","fields","EcommerceDefaultFieldsToInclude","concat","addFieldsToInclude","registerFieldsToInclude","loadFieldActions","breakpoint","searchConfig","getSearchConfiguration","analyticsConfig","buildSearchEngine","configuration","loggerOptions","level","logLevel","searchConfigFromProps","timezone","location","hash","slice","initUrlManager","buildUrlManager","initialState","subscribe","updateHash","addEventListener","Array","from","children","some","element","tagName","prepend","createElement","e","altKey","initSearchStatus","searchStatus","buildSearchStatus","hasNoResultsAfterInitialSearch","hasResults","firstSearchExecuted","hasError","classList","toggle","hasLoadingFlag","unsetLoadingFlag","newFragment","history","replaceState","info","pushState","onInitialization","render","h","open","__decorate","ArrayProp"],"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&encapsulation=shadow","src/components/search/atomic-search-interface/atomic-search-interface.tsx"],"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 ) => 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 ) => (allFacets[facetId] ? allFacets[facetId].label() : originalTitle);\n\n if (payload.facetState) {\n payload.facetState = payload.facetState.map(\n (analyticsFacetState: {id: string; title: string}) => {\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 &&\n payload.customData.facetTitle &&\n payload.customData.facetId &&\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>>;\n dateFacets: FacetStore<FacetInfo & FacetValueFormat<DateFacetValue>>;\n categoryFacets: FacetStore<FacetInfo>;\n sortOptions: SortDropdownOption[];\n mobileBreakpoint: string;\n currentQuickviewPosition: number;\n}\n\nexport interface AtomicStore extends AtomicCommonStore<AtomicStoreData> {\n getAllFacets(): FacetInfoMap;\n\n isMobile(): boolean;\n}\n\nexport interface FacetInfoMap {\n [facetId: string]:\n | FacetInfo\n | (FacetInfo & FacetValueFormat<NumericFacetValue>)\n | (FacetInfo & FacetValueFormat<DateFacetValue>);\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 & > 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<\n SearchEngine,\n AtomicStore,\n HTMLAtomicSearchInterfaceElement\n>;\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 = () => {};\n private unsubscribeSearchStatus: Unsubscribe = () => {};\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(() => 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 & logLevel.\n */\n @Method() public initializeWithSearchEngine(engine: SearchEngine) {\n if (this.pipeline && this.pipeline !== engine.state.pipeline) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'query pipeline')\n );\n }\n if (this.searchHub && this.searchHub !== engine.state.searchHub) {\n console.warn(\n mismatchedInterfaceAndEnginePropError('search', 'search hub')\n );\n }\n return this.internalInitialization(() => (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('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(() =>\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) => 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) => {\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(() => {\n const hasNoResultsAfterInitialSearch =\n !this.searchStatus.state.hasResults &&\n this.searchStatus.state.firstSearchExecuted &&\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 &&\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 = () => {\n this.urlManager.synchronize(this.fragment);\n };\n\n private async internalInitialization(initEngine: () => 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 && this.enableRelevanceInspector && (\n <atomic-relevance-inspector\n open={this.relevanceInspectorIsOpen}\n bindings={this.bindings}\n ></atomic-relevance-inspector>\n ),\n <slot></slot>,\n ];\n }\n}\n"],"mappings":"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"}