{"version":3,"sources":["./src/ui/ResponsiveComponents/ResponsiveComponentsUtils.ts","./src/ui/Tab/Tab.ts","./sass/_Tab.scss","./src/ui/ResponsiveComponents/ResponsiveTabs.ts","./sass/_ResponsiveTabs.scss"],"names":[],"mappings":"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","file":"Tab__d2b01b0f173a0c131e66.js","sourcesContent":["import { Dom } from '../../utils/Dom';\nimport { ResponsiveDropdownContent } from './ResponsiveDropdown/ResponsiveDropdownContent';\n\nexport class ResponsiveComponentsUtils {\n private static smallTabsClassName: string = 'coveo-small-tabs';\n private static smallFacetClassName: string = 'coveo-small-facets';\n private static smallRecommendationClassName: string = 'coveo-small-recommendation';\n\n static shouldDrawFacetSlider(root: Dom, facetSliderElement: Dom): boolean {\n return ResponsiveDropdownContent.isTargetInsideOpenedDropdown(facetSliderElement) || !this.isSmallFacetActivated(root);\n }\n\n static isSmallTabsActivated(root: Dom): boolean {\n return root.hasClass(this.smallTabsClassName);\n }\n\n static isSmallFacetActivated(root: Dom): boolean {\n return root.hasClass(this.smallFacetClassName);\n }\n\n static isSmallRecommendationActivated(root: Dom): boolean {\n return root.hasClass(this.smallRecommendationClassName);\n }\n\n static activateSmallTabs(root: Dom): void {\n root.addClass(this.smallTabsClassName);\n }\n\n static deactivateSmallTabs(root: Dom): void {\n root.removeClass(this.smallTabsClassName);\n }\n\n static activateSmallFacet(root: Dom): void {\n root.addClass(this.smallFacetClassName);\n }\n\n static deactivateSmallFacet(root: Dom): void {\n root.removeClass(this.smallFacetClassName);\n }\n\n static activateSmallRecommendation(root: Dom): void {\n root.addClass(this.smallRecommendationClassName);\n }\n\n static deactivateSmallRecommendation(root: Dom): void {\n root.removeClass(this.smallRecommendationClassName);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResponsiveComponents/ResponsiveComponentsUtils.ts","import 'styling/_Tab';\nimport { each, indexOf, map } from 'underscore';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { IBuildingQueryEventArgs, QueryEvents } from '../../events/QueryEvents';\nimport { exportGlobally } from '../../GlobalExports';\nimport { Assert } from '../../misc/Assert';\nimport { IAttributeChangedEventArg, MODEL_EVENTS } from '../../models/Model';\nimport { QueryStateModel, QUERY_STATE_ATTRIBUTES } from '../../models/QueryStateModel';\nimport { SearchEndpoint } from '../../rest/SearchEndpoint';\nimport { AccessibleButton } from '../../utils/AccessibleButton';\nimport { $$ } from '../../utils/Dom';\nimport { Utils } from '../../utils/Utils';\nimport { analyticsActionCauseList, IAnalyticsInterfaceChange } from '../Analytics/AnalyticsActionListMeta';\nimport { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { IQueryExpression } from '../Base/IComponentOptions';\nimport { Initialization } from '../Base/Initialization';\nimport { ResponsiveTabs } from '../ResponsiveComponents/ResponsiveTabs';\nimport { ValidLayout } from '../ResultLayoutSelector/ValidLayout';\n\nexport interface ITabOptions {\n expression?: IQueryExpression;\n constant?: boolean;\n id?: string;\n icon?: string;\n caption?: string;\n sort?: string;\n layout?: string;\n endpoint?: SearchEndpoint;\n enableDuplicateFiltering?: boolean;\n pipeline?: string;\n maximumAge?: number;\n enableResponsiveMode?: boolean;\n dropdownHeaderLabel?: string;\n}\n\n/**\n * The Tab component renders a widget that allows the end user to select a specific search interface.\n *\n * This component attaches itself to a `div` element. It is in charge of adding an advanced expression to the outgoing\n * query in order to refine the results.\n *\n * The Tab component can also hide and show different parts of the UI. For each individual component in the UI, you can\n * specify whether you wish to include or exclude that component when the user selects a certain Tab (see [Using Components\n * Only on Specific Tabs](https://docs.coveo.com/en/508/javascript-search-framework/using-components-only-on-specific-tabs)).\n *\n * **Setting a New Endpoint for a Tab:**\n *\n * A Tab can use a custom endpoint when performing a query. Of course, you need to make sure that the endpoint exists in\n * the array of Coveo.SearchEndpoint.endpoints (see {@link SearchEndpoint.endpoints}).\n *\n * ```\n * Coveo.SearchEndpoint.endpoints[\"specialEndpoint\"] = new Coveo.SearchEndpoint({\n * restUri : 'https://somewhere.com/rest/search'\n * })\n *\n * [ ... ]\n *\n * <div class='CoveoTab' data-endpoint='specialEndpoint'></div>\n *\n * ```\n */\nexport class Tab extends Component {\n static ID = 'Tab';\n\n static doExport = () => {\n exportGlobally({\n Tab: Tab\n });\n };\n\n /**\n * The options for a Tab\n * @componentOptions\n */\n static options: ITabOptions = {\n /**\n * Specifies a unique ID for the Tab.\n *\n * Specifying a value for this option is necessary for this component to work.\n */\n id: ComponentOptions.buildStringOption({ required: true, section: 'Common Options' }),\n\n /**\n * Specifies the caption of the Tab.\n *\n * Specifying a value for this option is necessary for this component to work.\n */\n caption: ComponentOptions.buildLocalizedStringOption({ required: true, section: 'Common Options' }),\n\n /**\n * Specifies an icon to use for the Tab.\n *\n * @deprecated This options is mostly kept for legacy reasons. If possible, you should avoid using it.\n */\n icon: ComponentOptions.buildStringOption(),\n\n /**\n * Specifies an advanced expression or filter that the Tab should add to any outgoing query.\n *\n * **Example:**\n *\n * `@objecttype==Message`\n *\n * Default value is `undefined` and the Tab applies no additional expression or filter to the query.\n */\n expression: ComponentOptions.buildQueryExpressionOption({ section: 'Common Options' }),\n\n /**\n * Specifies the {@link SearchEndpoint} to point to when performing queries from within the Tab.\n *\n * By default, the Tab uses the \"default\" endpoint.\n */\n endpoint: ComponentOptions.buildCustomOption(endpoint => (endpoint != null ? SearchEndpoint.endpoints[endpoint] : null)),\n\n /**\n * Specifies the default sort criteria to use when selecting the Tab. A {@link Sort} component with the same\n * parameter needs to be present in the search interface in order for this option to function properly.\n *\n * **Examples:**\n *\n * - `data-sort='relevancy'`\n * - `data-sort='date descending'`\n *\n * Default value is `undefined` and the normal {@link Sort} component behavior applies.\n */\n sort: ComponentOptions.buildStringOption(),\n\n /**\n * Specifies the default layout to display when the user selects the Tab (see {@link ResultList.options.layout} and\n * {@link ResultLayout}).\n *\n * See the {@link ValidLayout} type for the list of possible values.\n *\n * If not specified, it will default to 'list'.\n *\n * See also [Result Layouts](https://docs.coveo.com/en/360/).\n *\n * Default value is `undefined` and the component selects the first available layout.\n */\n layout: ComponentOptions.buildStringOption<ValidLayout>(),\n\n /**\n * Specifies whether to include the {@link Tab.options.expression} in the constant part of the query.\n *\n * The index specially optimizes the constant part of the query to execute faster. However, you must be careful not\n * to include dynamic query expressions, otherwise the cache will lose its efficiency.\n *\n * Default value is `true`.\n */\n constant: ComponentOptions.buildBooleanOption({ defaultValue: true, section: 'Filtering' }),\n\n /**\n * Whether to filter out duplicates, so that items resembling one another only appear once in the query results.\n *\n * **Notes:**\n * - Two items must be at least 85% similar to one another to be considered duplicates.\n * - When a pair of duplicates is found, only the higher-ranked item of the two is kept in the result set.\n * - Enabling this feature can make the total result count less precise, as only the requested page of query results is submitted to duplicate filtering.\n * - The default value for this option can be modified through the {@link SearchInterface} component.\n */\n enableDuplicateFiltering: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n\n /**\n * Specifies the name of the query pipeline to use for the queries when the Tab is selected.\n *\n * You can specify a value for this option if your index is in a Coveo Cloud organization in which pipelines have\n * been created (see [Adding and Managing Query Pipelines](https://docs.coveo.com/en/1791/)).\n *\n * Default value is `undefined`, which means that pipeline selection conditions defined in the Coveo Cloud\n * organization apply.\n */\n pipeline: ComponentOptions.buildStringOption(),\n\n /**\n * Specifies the maximum age (in milliseconds) that cached query results can have to still be usable as results\n * instead of performing a new query on the index from within the Tab. The cache is located in the Coveo Search API\n * (which resides between the index and the search interface).\n *\n * If cached results that are older than the age you specify in this option are available, a new query will be\n * performed on the index anyhow.\n *\n * On high-volume public web sites, specifying a higher value for this option can greatly improve query response\n * time at the cost of result freshness.\n *\n * **Note:**\n *\n * > It is also possible to set a maximum cache age for the entire {@link SearchInterface} rather than for a single\n * > Tab (see {@link SearchInterface.options.maximumAge}).\n *\n * Default value is `undefined` and the Coveo Search API determines the maximum cache age. This is typically\n * equivalent to 30 minutes (see [maximumAge](https://docs.coveo.com/en/1461/#RestQueryParameters-maximumAge)).\n */\n maximumAge: ComponentOptions.buildNumberOption(),\n\n /**\n * Specifies whether to enable responsive mode for tabs. Responsive mode makes overflowing tabs disappear, instead\n * making them available using a dropdown button. Responsive tabs are enabled either when tabs overflow or when the\n * width of the search interface becomes too small.\n *\n * Disabling responsive mode for one Tab also disables it for all tabs. Therefore, you only need to set this option\n * to `false` on one Tab to disable responsive mode.\n *\n * Default value is `true`.\n *\n * @availablesince [October 2016 Release (v1.1550.5)](https://docs.coveo.com/en/309/#october-2016-release-v115505)\n */\n enableResponsiveMode: ComponentOptions.buildBooleanOption({ defaultValue: true, section: 'ResponsiveOptions' }),\n\n /**\n * Specifies the label of the button that allows to show the hidden tabs when in responsive mode.\n *\n * If more than one Tab in the search interface specifies a value for this option, then the framework uses the first\n * occurrence of the option.\n *\n * The default value is `\"More\"`.\n */\n dropdownHeaderLabel: ComponentOptions.buildLocalizedStringOption({ section: 'ResponsiveOptions' })\n };\n\n /**\n * Creates a new Tab. Binds on buildingQuery event as well as an event on click of the element.\n * @param element The HTMLElement on which to instantiate the component. Normally a `div`.\n * @param options The options for the Tab component.\n * @param bindings The bindings that the component requires to function normally. If not set, these will be\n * automatically resolved (with a slower execution time).\n */\n constructor(public element: HTMLElement, public options?: ITabOptions, bindings?: IComponentBindings) {\n super(element, Tab.ID, bindings);\n\n this.options = ComponentOptions.initComponentOptions(element, Tab, options);\n\n this.bind.onRootElement(QueryEvents.buildingQuery, (args: IBuildingQueryEventArgs) => this.handleBuildingQuery(args));\n this.bind.onRootElement(InitializationEvents.afterInitialization, () => this.handleAfterInitialization());\n this.bind.onQueryState(MODEL_EVENTS.CHANGE_ONE, QUERY_STATE_ATTRIBUTES.T, (args: IAttributeChangedEventArg) =>\n this.handleQueryStateChanged(args)\n );\n\n new AccessibleButton()\n .withElement(element)\n .withSelectAction(() => this.select())\n .withTitle(this.options.caption)\n .withOwner(this.bind)\n .build();\n\n this.render();\n ResponsiveTabs.init(this.root, this, this.options);\n }\n\n /**\n * Selects the current Tab.\n *\n * Also logs the `interfaceChange` event in the usage analytics with the new current {@link Tab.options.id} as metada\n * and triggers a new query.\n */\n public select() {\n if (!this.disabled) {\n const state = {\n t: this.options.id,\n sort: this.options.sort || QueryStateModel.defaultAttributes.sort\n } as any;\n\n if (this.options.layout) {\n state.layout = this.options.layout;\n }\n\n this.queryStateModel.setMultiple(state);\n\n this.usageAnalytics.logSearchEvent<IAnalyticsInterfaceChange>(analyticsActionCauseList.interfaceChange, {\n interfaceChangeTo: this.options.id\n });\n this.queryController.executeQuery();\n }\n }\n\n /**\n * Indicates whether the HTMLElement argument is included in the Tab. *Included* elements are shown when the Tab is\n * selected, whereas *excluded* elements are not.\n * @param element The HTMLElement to verify.\n * @returns {boolean} `true` if the HTMLElement is included in the Tab; `false` if it is excluded.\n */\n public isElementIncludedInTab(element: HTMLElement): boolean {\n Assert.exists(element);\n\n const includedTabs = this.splitListOfTabs(element.getAttribute('data-tab'));\n const excludedTabs = this.splitListOfTabs(element.getAttribute('data-tab-not'));\n Assert.check(\n !(includedTabs.length != 0 && excludedTabs.length != 0),\n 'You cannot both explicitly include and exclude an element from tabs.'\n );\n\n return (\n (includedTabs.length != 0 && indexOf(includedTabs, this.options.id) != -1) ||\n (excludedTabs.length != 0 && indexOf(excludedTabs, this.options.id) == -1) ||\n (includedTabs.length == 0 && excludedTabs.length == 0)\n );\n }\n\n private render() {\n const icon = this.options.icon;\n if (Utils.isNonEmptyString(icon)) {\n const iconSpan = $$('span').el;\n $$(iconSpan).addClass(['coveo-icon', icon]);\n this.element.insertBefore(iconSpan, this.element.firstChild);\n }\n\n const caption = this.options.caption;\n if (Utils.isNonEmptyString(caption)) {\n const captionP = document.createElement('p');\n $$(captionP).text(caption);\n this.element.appendChild(captionP);\n }\n }\n\n protected handleBuildingQuery(data: IBuildingQueryEventArgs) {\n Assert.exists(data);\n if (!this.disabled && this.isSelected()) {\n data.queryBuilder.tab = this.options.id;\n\n if (Utils.isNonEmptyString(this.options.expression)) {\n if (this.options.constant) {\n data.queryBuilder.constantExpression.add(this.options.expression);\n } else {\n data.queryBuilder.advancedExpression.add(this.options.expression);\n }\n }\n\n if (this.options.enableDuplicateFiltering) {\n data.queryBuilder.enableDuplicateFiltering = true;\n }\n\n if (this.options.pipeline != null) {\n data.queryBuilder.pipeline = this.options.pipeline;\n }\n\n if (this.options.maximumAge != null) {\n data.queryBuilder.maximumAge = this.options.maximumAge;\n }\n }\n }\n\n private handleQueryStateChanged(data: IAttributeChangedEventArg) {\n Assert.exists(data);\n if (!this.disabled && this.isSelected()) {\n $$(this.element).addClass('coveo-selected');\n this.queryController.setEndpoint(this.options.endpoint);\n this.showAndHideAppropriateElements();\n } else {\n $$(this.element).removeClass('coveo-selected');\n }\n }\n\n private handleAfterInitialization() {\n if (this.isSelected() && this.options.layout) {\n this.queryStateModel.set(QUERY_STATE_ATTRIBUTES.LAYOUT, this.options.layout);\n }\n }\n\n protected isSelected(): boolean {\n const activeTab = this.queryStateModel.get(QueryStateModel.attributesEnum.t);\n return activeTab == this.options.id;\n }\n\n private showAndHideAppropriateElements() {\n const showElements = [];\n const hideElements = [];\n\n each($$(this.root).findAll('[data-tab],[data-tab-not]'), element => {\n if (this.isElementIncludedInTab(element)) {\n this.toggleAllComponentsUnder(element, true);\n showElements.push(element);\n } else {\n this.toggleAllComponentsUnder(element, false);\n hideElements.push(element);\n }\n });\n\n $$(this.root).one(QueryEvents.querySuccess, () => {\n each(showElements, elem => $$(elem).removeClass('coveo-tab-disabled'));\n each(hideElements, elem => $$(elem).addClass('coveo-tab-disabled'));\n });\n }\n\n private splitListOfTabs(value: string): string[] {\n if (Utils.exists(value)) {\n return map(value.split(','), tab => Utils.trim(tab));\n } else {\n return [];\n }\n }\n\n private toggleAllComponentsUnder(element: HTMLElement, enable: boolean) {\n Assert.exists(element);\n\n const togglePossibleComponent = (possibleComponent: HTMLElement) => {\n const possibleCmp = Component.get(possibleComponent, undefined, true);\n if (possibleCmp) {\n if (enable) {\n possibleCmp.enable();\n } else {\n possibleCmp.disable();\n }\n }\n };\n\n togglePossibleComponent(element);\n each($$(element).findAll('*'), el => {\n togglePossibleComponent(el);\n });\n }\n\n public enable() {\n super.enable();\n this.element.style.display = '';\n }\n\n public disable() {\n super.disable();\n this.element.style.display = 'none';\n }\n}\n\nInitialization.registerAutoCreateComponent(Tab);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Tab/Tab.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_Tab.scss\n// module id = 671\n// module chunks = 28 88","import 'styling/_ResponsiveTabs';\nimport { filter, each, last } from 'underscore';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { Logger } from '../../misc/Logger';\nimport { l } from '../../strings/Strings';\nimport { $$, Dom } from '../../utils/Dom';\nimport { EventsUtils } from '../../utils/EventsUtils';\nimport { SVGDom } from '../../utils/SVGDom';\nimport { SVGIcons } from '../../utils/SVGIcons';\nimport { Utils } from '../../utils/Utils';\nimport { Component } from '../Base/Component';\nimport { SearchInterface } from '../SearchInterface/SearchInterface';\nimport { Tab } from '../Tab/Tab';\nimport { ResponsiveComponents } from './ResponsiveComponents';\nimport { IResponsiveComponent, IResponsiveComponentOptions, ResponsiveComponentsManager } from './ResponsiveComponentsManager';\nimport { ResponsiveComponentsUtils } from './ResponsiveComponentsUtils';\nimport { AccessibleButton } from '../../utils/AccessibleButton';\nimport Popper from 'popper.js';\nimport { KeyboardUtils, KEYBOARD } from '../../utils/KeyboardUtils';\n\nexport class ResponsiveTabs implements IResponsiveComponent {\n private static DROPDOWN_HEADER_LABEL_DEFAULT_VALUE = 'More';\n private static TAB_IN_DROPDOWN_CSS_CLASS = 'coveo-tab-dropdown';\n private static TAB_IN_DROPDOWN_HEADER_CSS_CLASS = `${ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS}-header`;\n private static ACTIVE_DROPDOWN_CSS_CLASS = 'coveo-dropdown-header-active';\n private static logger: Logger;\n private dropdownHeader: Dom;\n private dropdownContent: Dom;\n private tabSection: Dom;\n private searchInterface: SearchInterface;\n private dropdownHeaderLabel: string;\n private initialTabOrder: HTMLElement[];\n\n private documentClickListener: EventListener;\n private dropdownClickListener: EventListener;\n private ignoreNextDocumentClick = false;\n\n constructor(private coveoRoot: Dom, public ID: string) {\n this.dropdownHeaderLabel = this.getDropdownHeaderLabel();\n this.searchInterface = <SearchInterface>Component.get(this.coveoRoot.el, SearchInterface, false);\n this.dropdownContent = this.buildDropdownContent();\n this.dropdownHeader = this.buildDropdownHeader();\n this.bindDropdownContentEvents();\n this.bindDropdownHeaderEvents();\n this.tabSection = $$(<HTMLElement>this.coveoRoot.find('.coveo-tab-section'));\n this.manageTabSwapping();\n this.bindNukeEvents();\n this.initialTabOrder = [...this.tabsInTabSection];\n }\n\n public static init(root: HTMLElement, component: Component, options: IResponsiveComponentOptions) {\n this.logger = new Logger('ResponsiveTabs');\n if (!$$(root).find('.coveo-tab-section')) {\n this.logger.info('No element with class coveo-tab-section. Responsive tabs cannot be enabled.');\n return;\n }\n ResponsiveComponentsManager.register(ResponsiveTabs, $$(root), Tab.ID, component, options);\n }\n\n public handleResizeEvent(): void {\n if (this.needSmallMode() && !ResponsiveComponentsUtils.isSmallTabsActivated(this.coveoRoot)) {\n this.changeToSmallMode();\n } else if (!this.needSmallMode() && ResponsiveComponentsUtils.isSmallTabsActivated(this.coveoRoot)) {\n this.changeToLargeMode();\n }\n\n if (this.shouldAddTabsToDropdown()) {\n this.addTabsToDropdown();\n } else if (this.shouldRemoveTabsFromDropdown()) {\n this.removeTabsFromDropdown();\n }\n\n if (this.isDropdownOpen()) {\n this.positionPopup();\n }\n }\n\n private needSmallMode(): boolean {\n // Ignore everything if the responsiveMode is not auto.\n if (!this.searchInterface) {\n return this.shouldAutoModeResolveToSmall();\n }\n switch (this.searchInterface.responsiveComponents.getResponsiveMode()) {\n case 'small':\n case 'medium':\n return true;\n case 'auto':\n default:\n return this.shouldAutoModeResolveToSmall();\n }\n }\n\n private shouldAutoModeResolveToSmall() {\n const mediumWidth = this.searchInterface\n ? this.searchInterface.responsiveComponents.getMediumScreenWidth()\n : new ResponsiveComponents().getMediumScreenWidth();\n if (this.coveoRoot.width() <= mediumWidth) {\n return true;\n } else if (!ResponsiveComponentsUtils.isSmallTabsActivated(this.coveoRoot)) {\n return this.isOverflowing(this.tabSection.el);\n } else {\n return this.isLargeFormatOverflowing();\n }\n }\n\n private changeToSmallMode(): void {\n ResponsiveComponentsUtils.activateSmallTabs(this.coveoRoot);\n }\n\n private changeToLargeMode(): void {\n this.emptyDropdown();\n this.cleanUpDropdown();\n ResponsiveComponentsUtils.deactivateSmallTabs(this.coveoRoot);\n }\n\n private shouldAddTabsToDropdown(): boolean {\n return (\n (this.isOverflowing(this.tabSection.el) || this.tabSection.el.clientWidth === 0) &&\n ResponsiveComponentsUtils.isSmallTabsActivated(this.coveoRoot)\n );\n }\n\n private addTabsToDropdown(): void {\n let currentTab;\n if (!this.tabSection.find(`.${ResponsiveTabs.TAB_IN_DROPDOWN_HEADER_CSS_CLASS}`)) {\n const facetDropdownHeader = this.tabSection.find('.coveo-facet-dropdown-header');\n if (facetDropdownHeader) {\n this.dropdownHeader.insertBefore(facetDropdownHeader);\n } else {\n this.tabSection.el.appendChild(this.dropdownHeader.el);\n }\n }\n for (let i = this.initialTabOrder.length - 1; i >= 0; i--) {\n currentTab = this.initialTabOrder[i];\n\n if (this.tabIsSelected(currentTab) && i > 0) {\n currentTab = this.initialTabOrder[--i];\n }\n\n this.addToDropdownIfNeeded(currentTab);\n\n if (!this.isOverflowing(this.tabSection.el)) {\n break;\n }\n }\n }\n\n private shouldRemoveTabsFromDropdown(): boolean {\n return (\n !this.isOverflowing(this.tabSection.el) &&\n this.tabSection.el.clientWidth !== 0 &&\n ResponsiveComponentsUtils.isSmallTabsActivated(this.coveoRoot) &&\n !this.isDropdownEmpty()\n );\n }\n\n private removeTabsFromDropdown() {\n const dropdownTabs = this.tabsInTabDropdown;\n\n let current: HTMLElement;\n while (!this.isOverflowing(this.tabSection.el) && !this.isDropdownEmpty()) {\n current = dropdownTabs.shift();\n this.removeFromDropdownIfNeeded(current);\n this.fromDropdownToTabSection($$(current));\n }\n\n if (this.isOverflowing(this.tabSection.el)) {\n const unselectedTabs = filter(this.tabsInTabSection, tab => !this.tabIsSelected(tab));\n this.addToDropdownIfNeeded(unselectedTabs.pop());\n }\n\n if (this.isDropdownEmpty()) {\n this.cleanUpDropdown();\n }\n }\n\n private emptyDropdown(): void {\n if (!this.isDropdownEmpty()) {\n const dropdownTabs = this.tabsInTabDropdown;\n while (!this.isDropdownEmpty()) {\n const current = dropdownTabs.shift();\n this.removeFromDropdownIfNeeded(current);\n }\n this.initialTabOrder.forEach(tab => this.tabSection.append(tab));\n }\n }\n\n private isLargeFormatOverflowing(): boolean {\n const virtualTabSection = $$(<HTMLElement>this.tabSection.el.cloneNode(true));\n\n const dropdownHeader = virtualTabSection.find(`.${ResponsiveTabs.TAB_IN_DROPDOWN_HEADER_CSS_CLASS}`);\n if (dropdownHeader) {\n virtualTabSection.el.removeChild(dropdownHeader);\n }\n\n virtualTabSection.el.style.position = 'absolute';\n virtualTabSection.el.style.visibility = 'hidden';\n\n if (!this.isDropdownEmpty()) {\n each(this.dropdownContent.findAll('.CoveoTab'), tab => {\n virtualTabSection.el.appendChild(tab.cloneNode(true));\n });\n }\n virtualTabSection.insertBefore(this.tabSection.el);\n\n ResponsiveComponentsUtils.deactivateSmallTabs(this.coveoRoot);\n const isOverflowing = this.isOverflowing(this.tabSection.el) || this.isOverflowing(virtualTabSection.el);\n ResponsiveComponentsUtils.activateSmallTabs(this.coveoRoot);\n\n virtualTabSection.detach();\n return isOverflowing;\n }\n\n private isOverflowing(el: HTMLElement) {\n return el.clientWidth < el.scrollWidth;\n }\n\n private buildDropdownHeader(): Dom {\n const dropdownHeader = $$('a', { className: `coveo-dropdown-header ${ResponsiveTabs.TAB_IN_DROPDOWN_HEADER_CSS_CLASS}` });\n const content = $$('p');\n content.text(this.dropdownHeaderLabel);\n const icon = $$('span', { className: 'coveo-more-tabs' }, SVGIcons.icons.arrowDown);\n SVGDom.addClassToSVGInContainer(icon.el, 'coveo-more-tabs-svg');\n content.el.appendChild(icon.el);\n dropdownHeader.el.appendChild(content.el);\n return dropdownHeader;\n }\n\n private bindDropdownHeaderEvents() {\n const toggle = (event: Event) => {\n if (this.isDropdownOpen()) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n\n if (event.type === 'click') {\n this.ignoreNextDocumentClick = true;\n }\n };\n new AccessibleButton()\n .withElement(this.dropdownHeader)\n .withSelectAction(toggle)\n .withLabel(this.getDropdownHeaderLabel())\n .build();\n }\n\n private buildDropdownContent() {\n const dropdownContent = $$('div', {\n className: 'coveo-tab-list-container ' + SearchInterface.SMALL_INTERFACE_CLASS_NAME\n });\n const contentList = $$('ol', { className: 'coveo-tab-list' });\n dropdownContent.el.appendChild(contentList.el);\n return dropdownContent;\n }\n\n private bindDropdownContentEvents() {\n this.dropdownClickListener = () => {\n if (this.isDropdownOpen()) {\n this.ignoreNextDocumentClick = true;\n }\n };\n\n this.documentClickListener = event => {\n if (!this.ignoreNextDocumentClick) {\n this.closeDropdown();\n }\n this.ignoreNextDocumentClick = false;\n };\n $$(this.dropdownHeader).on('click', this.dropdownClickListener);\n $$(this.dropdownContent).on('click', this.dropdownClickListener);\n }\n\n private isDropdownOpen(): boolean {\n return this.dropdownHeader.hasClass(ResponsiveTabs.ACTIVE_DROPDOWN_CSS_CLASS);\n }\n\n private closeDropdown(): void {\n $$(document.documentElement).off('click', this.documentClickListener);\n this.dropdownContent.detach();\n this.dropdownHeader.removeClass(ResponsiveTabs.ACTIVE_DROPDOWN_CSS_CLASS);\n }\n\n private openDropdown(): void {\n $$(document.documentElement).on('click', this.documentClickListener);\n this.positionPopup();\n this.dropdownHeader.addClass(ResponsiveTabs.ACTIVE_DROPDOWN_CSS_CLASS);\n }\n\n private addToDropdownIfNeeded(tab: HTMLElement) {\n if (!this.canAddTabToDropdown(tab)) {\n return;\n }\n\n $$(tab).addClass(ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS);\n const list = $$(this.dropdownContent.find('ol'));\n const listElement = $$('li', null, tab);\n list.prepend(listElement.el);\n }\n\n private removeFromDropdownIfNeeded(tab: HTMLElement) {\n if (!this.canRemoveTabFromDropdown(tab)) {\n return;\n }\n\n $$(tab as HTMLElement).removeClass(ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS);\n $$(tab.parentElement).detach();\n }\n\n private canAddTabToDropdown(tab: HTMLElement) {\n return tab && !this.tabIsInDropdown(tab) && this.dropdownHeader;\n }\n\n private canRemoveTabFromDropdown(tab: HTMLElement) {\n return tab && this.tabIsInDropdown(tab) && this.dropdownContent;\n }\n\n private cleanUpDropdown() {\n this.dropdownHeader.removeClass(ResponsiveTabs.ACTIVE_DROPDOWN_CSS_CLASS);\n this.dropdownHeader.detach();\n this.dropdownContent.detach();\n }\n\n private isDropdownEmpty(): boolean {\n if (this.dropdownContent) {\n const tabs = this.dropdownContent.findAll('.CoveoTab');\n return tabs.length == 0;\n }\n return false;\n }\n\n private manageTabSwapping() {\n each(this.coveoRoot.findAll('.' + Component.computeCssClassNameForType(this.ID)), tabElement => {\n const tab = $$(tabElement);\n const fadeOutFadeIn = event => {\n const lastTabInSection = this.tabsInTabSection.pop();\n\n if (event.propertyName == 'opacity') {\n if (tab.el.style.opacity == '0') {\n $$(lastTabInSection).addClass(ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS);\n tab.replaceWith(lastTabInSection);\n tab.removeClass(ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS);\n\n this.fromDropdownToTabSection(tab);\n\n // Because of the DOM manipulation, sometimes the animation will not trigger. Accessing the computed styles makes sure\n // the animation will happen.\n window.getComputedStyle(tab.el).opacity;\n window.getComputedStyle(lastTabInSection).opacity;\n\n tab.el.style.opacity = lastTabInSection.style.opacity = '1';\n } else if (tab.el.style.opacity == '1') {\n this.closeDropdown();\n EventsUtils.removePrefixedEvent(tab.el, 'TransitionEnd', fadeOutFadeIn);\n this.handleResizeEvent();\n }\n }\n };\n\n const swapOnSelect = () => {\n if (this.tabIsInDropdown(tab)) {\n let lastTabInSection = this.tabsInTabSection.pop();\n if (lastTabInSection) {\n EventsUtils.addPrefixedEvent(tab.el, 'TransitionEnd', fadeOutFadeIn);\n tab.el.style.opacity = lastTabInSection.style.opacity = '0';\n }\n }\n };\n\n tab.on('click', () => swapOnSelect());\n tab.on('keyup', KeyboardUtils.keypressAction(KEYBOARD.ENTER, swapOnSelect));\n tab.on('blur', (e: FocusEvent) => {\n if (e.relatedTarget && !this.tabIsInDropdown(e.relatedTarget as HTMLElement)) {\n this.closeDropdown();\n }\n });\n });\n }\n\n private bindNukeEvents() {\n $$(this.coveoRoot).on(InitializationEvents.nuke, () => {\n $$(document.documentElement).off('click', this.documentClickListener);\n });\n }\n\n private positionPopup() {\n this.dropdownContent.insertAfter(this.dropdownHeader.el);\n\n new Popper(this.dropdownHeader.el, this.dropdownContent.el, {\n modifiers: {\n preventOverflow: {\n boundariesElement: this.coveoRoot.el\n }\n }\n });\n }\n\n private fromDropdownToTabSection(tab: Dom) {\n const lastTabInTabSection = last(this.tabsInTabSection);\n if (!lastTabInTabSection) {\n this.tabSection.prepend(tab.el);\n return;\n }\n\n const comesAfterInitialTabOrder = this.initialTabOrder.indexOf(tab.el) > this.initialTabOrder.indexOf(lastTabInTabSection);\n if (comesAfterInitialTabOrder) {\n tab.insertAfter(lastTabInTabSection);\n } else {\n tab.insertBefore(lastTabInTabSection);\n }\n }\n\n private getDropdownHeaderLabel() {\n let dropdownHeaderLabel: string;\n each($$(this.coveoRoot.find('.coveo-tab-section')).findAll('.' + Component.computeCssClassName(Tab)), tabElement => {\n const tab = <Tab>Component.get(tabElement, Tab);\n if (!dropdownHeaderLabel && tab && tab.options.dropdownHeaderLabel) {\n dropdownHeaderLabel = tab.options.dropdownHeaderLabel;\n }\n });\n\n if (!dropdownHeaderLabel) {\n dropdownHeaderLabel = l(ResponsiveTabs.DROPDOWN_HEADER_LABEL_DEFAULT_VALUE);\n }\n\n return dropdownHeaderLabel;\n }\n\n private tabIsSelected(tab: Dom | HTMLElement) {\n return $$(tab as HTMLElement).hasClass('coveo-selected');\n }\n\n private tabIsInDropdown(tab: Dom | HTMLElement) {\n return $$(tab as HTMLElement).hasClass(ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS);\n }\n\n private get tabsInTabSection(): HTMLElement[] {\n const tabsInSection = [];\n each(this.tabSection.children(), childElement => {\n if (Utils.isHtmlElement(childElement)) {\n const child = $$(childElement);\n const childHasTabCssClassName = child.hasClass(Component.computeCssClassNameForType(this.ID));\n if (!this.tabIsInDropdown(child) && childHasTabCssClassName) {\n tabsInSection.push(child.el);\n }\n }\n });\n return tabsInSection;\n }\n\n private get tabsInTabDropdown(): HTMLElement[] {\n if (!this.dropdownContent) {\n return [];\n }\n return this.dropdownContent.findAll(`.${ResponsiveTabs.TAB_IN_DROPDOWN_CSS_CLASS}`);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResponsiveComponents/ResponsiveTabs.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_ResponsiveTabs.scss\n// module id = 673\n// module chunks = 28 88"],"sourceRoot":""}