@carbon/ibmdotcom-web-components 1.32.0-rc.1 → 1.32.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/custom-elements.json +18 -18
  2. package/dist/{20-2c34f739.js → 20-4d0d088b.js} +2 -2
  3. package/dist/{20-002a62f9.js → 20-c7872d45.js} +2 -2
  4. package/dist/{20-e53335d3.js → 20-d0071628.js} +2 -2
  5. package/dist/{20-4f726b86.js → 20-f07ed7a1.js} +2 -2
  6. package/dist/cloud-masthead.js +3 -3
  7. package/dist/cloud-masthead.min.js +2 -2
  8. package/dist/cloud-masthead.rtl.js +3 -3
  9. package/dist/cloud-masthead.rtl.min.js +2 -2
  10. package/dist/dotcom-shell.js +3 -3
  11. package/dist/dotcom-shell.min.js +2 -2
  12. package/dist/dotcom-shell.rtl.js +3 -3
  13. package/dist/dotcom-shell.rtl.min.js +2 -2
  14. package/dist/ibmdotcom-web-components-dotcom-shell.js +10 -8
  15. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +3 -3
  16. package/dist/ibmdotcom-web-components-dotcom-shell.rtl.js +10 -8
  17. package/dist/ibmdotcom-web-components-dotcom-shell.rtl.min.js +3 -3
  18. package/dist/{left-nav-menu-72142ae5.js → left-nav-menu-0454e7fe.js} +2 -2
  19. package/dist/{left-nav-menu-136466dc.js → left-nav-menu-4bb5d738.js} +2 -2
  20. package/dist/{left-nav-menu-d0e0c8a1.js → left-nav-menu-a9193172.js} +2 -2
  21. package/dist/{left-nav-menu-3436909a.js → left-nav-menu-aa14d1fd.js} +2 -2
  22. package/dist/{left-nav-menu-category-heading-71bd687e.js → left-nav-menu-category-heading-308b7583.js} +2 -2
  23. package/dist/{left-nav-menu-category-heading-b2b5a65f.js → left-nav-menu-category-heading-c9962ac5.js} +2 -2
  24. package/dist/{left-nav-menu-category-heading-2a3e1e8f.js → left-nav-menu-category-heading-daf5ebfa.js} +2 -2
  25. package/dist/{left-nav-menu-category-heading-17849a08.js → left-nav-menu-category-heading-fc02a361.js} +2 -2
  26. package/dist/{left-nav-menu-item-19e02851.js → left-nav-menu-item-0275a3b9.js} +2 -2
  27. package/dist/{left-nav-menu-item-8caa4256.js → left-nav-menu-item-354f4261.js} +2 -2
  28. package/dist/{left-nav-menu-item-ee78e342.js → left-nav-menu-item-7814505a.js} +2 -2
  29. package/dist/{left-nav-menu-item-327fee2b.js → left-nav-menu-item-fa33cbd9.js} +2 -2
  30. package/dist/{left-nav-menu-section-5f999435.js → left-nav-menu-section-5c2e24f8.js} +3 -3
  31. package/dist/{left-nav-menu-section-518e5d37.js → left-nav-menu-section-94e4e49c.js} +2 -2
  32. package/dist/{left-nav-menu-section-e0a8964a.js → left-nav-menu-section-b5303d97.js} +3 -3
  33. package/dist/{left-nav-menu-section-6150369f.js → left-nav-menu-section-fcd88473.js} +2 -2
  34. package/dist/{left-nav-overlay-5731f7e5.js → left-nav-overlay-1e1910e9.js} +2 -2
  35. package/dist/{left-nav-overlay-6882d48d.js → left-nav-overlay-320c1270.js} +2 -2
  36. package/dist/{left-nav-overlay-a4cc3b3e.js → left-nav-overlay-81eb5e93.js} +2 -2
  37. package/dist/{left-nav-overlay-de7eb950.js → left-nav-overlay-ce49183f.js} +2 -2
  38. package/dist/{masthead-composite-c8dbcd61.js → masthead-composite-10b5102f.js} +4 -4
  39. package/dist/{masthead-composite-306adeb9.js → masthead-composite-1ed7f190.js} +4 -4
  40. package/dist/{masthead-composite-fb2bb203.js → masthead-composite-4096f117.js} +19 -15
  41. package/dist/{masthead-composite-73d938e4.js → masthead-composite-e578b925.js} +19 -15
  42. package/dist/{megamenu-category-group-43899a46.js → megamenu-category-group-0042c754.js} +2 -2
  43. package/dist/{megamenu-category-group-3bf5d73c.js → megamenu-category-group-b777facf.js} +2 -2
  44. package/dist/{megamenu-category-group-copy-2b87813d.js → megamenu-category-group-copy-69e90843.js} +2 -2
  45. package/dist/{megamenu-category-group-copy-283a25a3.js → megamenu-category-group-copy-6cc797f8.js} +2 -2
  46. package/dist/{megamenu-category-group-copy-93aa0a96.js → megamenu-category-group-copy-83e643e1.js} +2 -2
  47. package/dist/{megamenu-category-group-copy-775aaa80.js → megamenu-category-group-copy-e60dfb61.js} +2 -2
  48. package/dist/{megamenu-category-group-79513624.js → megamenu-category-group-d474b15d.js} +2 -2
  49. package/dist/{megamenu-category-group-999cba46.js → megamenu-category-group-f7dba932.js} +2 -2
  50. package/dist/{megamenu-category-link-71bd2020.js → megamenu-category-link-0df4440e.js} +2 -2
  51. package/dist/{megamenu-category-link-dbc8b4a4.js → megamenu-category-link-54e1011f.js} +2 -2
  52. package/dist/{megamenu-category-link-fb99f944.js → megamenu-category-link-68b5ea65.js} +2 -2
  53. package/dist/{megamenu-category-link-e3280b1e.js → megamenu-category-link-84732d66.js} +2 -2
  54. package/dist/{megamenu-left-navigation-3b9086ee.js → megamenu-left-navigation-7c8616c7.js} +2 -2
  55. package/dist/{megamenu-left-navigation-1f60ff1b.js → megamenu-left-navigation-862becf2.js} +2 -2
  56. package/dist/{megamenu-left-navigation-dd0372b5.js → megamenu-left-navigation-98f428cf.js} +2 -2
  57. package/dist/{megamenu-left-navigation-35bcade1.js → megamenu-left-navigation-c5ed7f0e.js} +2 -2
  58. package/dist/{megamenu-overlay-50af9c22.js → megamenu-overlay-213de889.js} +2 -2
  59. package/dist/{megamenu-overlay-2b2fe43c.js → megamenu-overlay-3ad6b0b2.js} +2 -2
  60. package/dist/{megamenu-overlay-5ff8fbf2.js → megamenu-overlay-ab9a9cff.js} +2 -2
  61. package/dist/{megamenu-overlay-ddd5122f.js → megamenu-overlay-d948063a.js} +2 -2
  62. package/es/components/image/image.d.ts +0 -3
  63. package/es/components/image/image.d.ts.map +1 -1
  64. package/es/components/image/image.js +1 -1
  65. package/es/components/image/image.js.map +1 -1
  66. package/es/components/locale-modal/locale-modal.d.ts.map +1 -1
  67. package/es/components/locale-modal/locale-modal.js +7 -5
  68. package/es/components/locale-modal/locale-modal.js.map +1 -1
  69. package/es/components/masthead/masthead-composite.d.ts +1 -1
  70. package/es/components/masthead/masthead-composite.d.ts.map +1 -1
  71. package/es/components/masthead/masthead-composite.js +4 -3
  72. package/es/components/masthead/masthead-composite.js.map +1 -1
  73. package/es/components/search-with-typeahead/search-with-typeahead.d.ts.map +1 -1
  74. package/es/components/search-with-typeahead/search-with-typeahead.js +4 -1
  75. package/es/components/search-with-typeahead/search-with-typeahead.js.map +1 -1
  76. package/es/components/table-of-contents/table-of-contents.d.ts +12 -7
  77. package/es/components/table-of-contents/table-of-contents.d.ts.map +1 -1
  78. package/es/components/table-of-contents/table-of-contents.js +13 -2
  79. package/es/components/table-of-contents/table-of-contents.js.map +1 -1
  80. package/es/components/video-player/video-player.d.ts +1 -9
  81. package/es/components/video-player/video-player.d.ts.map +1 -1
  82. package/es/components/video-player/video-player.js +7 -2
  83. package/es/components/video-player/video-player.js.map +1 -1
  84. package/es/components-react/masthead/masthead-composite.d.ts +1 -1
  85. package/es/components-react/masthead/masthead-composite.js +1 -2
  86. package/es/components-react/search-with-typeahead/search-with-typeahead.js +3 -1
  87. package/lib/components-react-node/masthead/masthead-composite.js +1 -2
  88. package/lib/components-react-node/search-with-typeahead/search-with-typeahead.js +3 -1
  89. package/package.json +7 -7
  90. package/scss/components/image/image.scss +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"masthead-composite.js","names":["_litElement","require","_litHtml","_hostListener","_interopRequireDefault","_hostListener2","_","_ifNonNull","_unsafeSvg","_windowOrGlobal","_settings","_global","_MastheadLogo","_profileAPI","_megamenuRightNavigation","_featureFlags","_mastheadLogo","_mastheadCss","_carbonElement","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ddsPrefix","ddsSettings","stablePrefix","NAV_ITEMS_RENDER_TARGET","exports","DDSMastheadComposite","_decorate2","customElement","concat","_initialize","_HostListenerMixin","_HostListenerMixin2","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","_assertThisInitialized2","_createClass2","F","d","kind","value","_renderL1","_ref","undefined","selectedMenuItem","l1Data","_this$l1Data","url","title","isSelected","_hasAutoSelectedItems","html","_taggedTemplateLiteral2","_renderNavItems","TOP_NAV","hasL1","_renderLogo","logoData","activateSearch","useAlternateLogo","MastheadLogoAPI","setMastheadLogo","_this$logoData","tooltip","svg","href","ifNonNull","DDSMastheadLogo","hrefDefault","unsafeSVG","nothing","_getHighlightedMenuItems","sections","_sections$","_sections$$menuItems","highlightedItems","viewAllLink","menu","menuItems","item","highlighted","megaPanelViewAll","_renderMegaMenu","_parentKey","_sections$2","_sections$3","_this$_getHighlighted","hasHighlights","heading","map","_item$megapanelConten","_item$megapanelConten2","_item$megapanelConten3","autoid","megapanelContent","description","quickLinks","links","_ref2","highlightedLink","ArrowRight16","slot","MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME","LEFT_SECTION","REGULAR","j","_item$megapanelConten4","_item$megapanelConten5","_ref3","_renderLeftNavMenuSections","_ref4","_ref4$heading","_ref4$isSubmenu","isSubmenu","_ref4$showBackButton","showBackButton","_ref4$sectionTitle","sectionTitle","_ref4$sectionUrl","sectionUrl","_ref4$sectionId","sectionId","items","elem","lastHighlightedItem","panelId","selected","unshift","_selectedLeftNavItems","_this2","matchFound","selectedItems","level0","level1","level2","_ref5","_ref5$menu","_ref5$key","_ref5$parentItemUrl","parentItemUrl","_ref5$currentUrlPath","currentUrlPath","_menu$i","_menu$i2","_menu$i2$megapanelCon","_menu$i2$megapanelCon2","k","_links$k","_renderLeftNav","_this3","selectedItemUrl","level0Items","menuSections","_elem$menuSections$","_menuElems","level1Items","menuElems","hasMegapanel","_this3$_getHighlighte","hightlighted","nonHighlightedMenuItems","_item$megapanelConten6","_item$megapanelConten7","_item$megapanelConten8","_item$megapanelConten9","_item$megapanelConten10","_item$megapanelConten11","level2Items","lastHighlighted","submenu","titleEnglish","_elem$menuSections$2","_childLinkChecker","_menuItems$i","_menuItems$i2","_menuItems$i2$megapan","_menuItems$i2$megapan2","_menuItems$i2$megapan3","link","_ref6","_root$location","_this4","root","location","hasChildLink","navLinks","_link$menuSections","megamenuSet","reduce","acc","_ref7","_ref8","menuItemTitle","menuItemUrl","decorators","HostListener","_this5","event","_event$detail","detail","active","resolveFn","dataset","index","slice","currentMenu","render","property","type","String","reflect","attribute","Number","UNAUTHENTICATED_STATUS","createRenderRoot","firstUpdated","_this$_loadTranslatio","_this$_loadUserStatus","language","dataEndpoint","globalInit","_this$_setLanguage","_setLanguage","_loadTranslation","_loadUserStatus","style","zIndex","updated","changedProperties","has","_this$_setLanguage2","_this$_loadTranslatio2","platform","brandName","console","warn","_profileItems","authenticatedProfileItems","currentSearchResults","customTypeaheadAPI","customProfileLogin","platformUrl","hasProfile","inputTimeout","mastheadAssistiveText","menuBarAssistiveText","menuButtonAssistiveTextActive","menuButtonAssistiveTextInactive","openSearchDropdown","hasSearch","scopeParameters","searchPlaceholder","skipToContentText","skipToContentHref","unauthenticatedProfileItems","userStatus","authenticated","profileItems","DDS_CUSTOM_PROFILE_LOGIN","id","formattedLang","toLowerCase","replace","m","toUpperCase","platformAltUrl","_typeof2","hasOwnProperty","LEFT_NAV","_ref9","eventMegamenuActive","styles","HostListenerMixin","LitElement","_default"],"sources":["components/masthead/masthead-composite.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement, TemplateResult } from 'lit-element';\nimport { nothing, render } from 'lit-html';\nimport HostListener from '../../internal/vendor/@carbon/web-components/globals/decorators/host-listener.js';\nimport HostListenerMixin from '../../internal/vendor/@carbon/web-components/globals/mixins/host-listener.js';\nimport ArrowRight16 from '../../internal/vendor/@carbon/web-components/icons/arrow--right/16.js';\nimport ifNonNull from '../../internal/vendor/@carbon/web-components/globals/directives/if-non-null.js';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport root from 'window-or-global';\nimport ddsSettings from '../../internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings';\nimport { globalInit } from '../../internal/vendor/@carbon/ibmdotcom-services/services/global/global';\nimport MastheadLogoAPI from '../../internal/vendor/@carbon/ibmdotcom-services/services/MastheadLogo/MastheadLogo';\nimport {\n MastheadL1,\n MastheadLink,\n MastheadLogoData,\n MastheadMenuItem,\n MastheadProfileItem,\n Translation,\n} from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/translateAPI.d';\nimport { UNAUTHENTICATED_STATUS } from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/profileAPI';\nimport { MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME } from './megamenu-right-navigation';\nimport { DDS_CUSTOM_PROFILE_LOGIN } from '../../globals/internal/feature-flags';\nimport DDSMastheadLogo from './masthead-logo';\nimport './masthead';\nimport './masthead-l1';\nimport './masthead-l1-name';\nimport './masthead-menu-button';\nimport './masthead-global-bar';\nimport './masthead-profile';\nimport './masthead-profile-item';\nimport './megamenu';\nimport './megamenu-top-nav-menu';\nimport './skip-to-content';\nimport './top-nav';\nimport './top-nav-l1';\nimport './top-nav-name';\nimport './top-nav-item';\nimport './top-nav-menu';\nimport './top-nav-menu-item';\nimport './left-nav';\nimport '../search-with-typeahead/search-with-typeahead';\nimport '../search-with-typeahead/search-with-typeahead-item';\nimport styles from './masthead.scss';\nimport { carbonElement as customElement } from '../../internal/vendor/@carbon/web-components/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: ddsPrefix } = ddsSettings;\n\n/**\n * Rendering target for masthead navigation items.\n */\nexport enum NAV_ITEMS_RENDER_TARGET {\n /**\n * For top navigation.\n */\n TOP_NAV = 'top-nav',\n\n /**\n * For left navigation.\n */\n LEFT_NAV = 'left-nav',\n}\n\n/**\n * Component that renders masthead from links, etc. data.\n *\n * @element dds-masthead-composite\n */\n@customElement(`${ddsPrefix}-masthead-composite`)\nclass DDSMastheadComposite extends HostListenerMixin(LitElement) {\n /**\n * Renders L1 menu based on l1Data\n *\n * @param [options] The options.\n * @param [options.selectedMenuItem] The selected nav item.\n * @returns The L1 nav.\n */\n protected _renderL1({\n selectedMenuItem,\n }: { selectedMenuItem?: string } = {}) {\n if (!this.l1Data) return undefined;\n const { url, title } = this.l1Data;\n const isSelected = !this._hasAutoSelectedItems && !selectedMenuItem;\n return html`\n <dds-masthead-l1 slot=\"masthead-l1\">\n ${!title\n ? undefined\n : html`\n <dds-masthead-l1-name\n title=\"${title}\"\n aria-selected=\"${isSelected}\"\n url=\"${url}\"></dds-masthead-l1-name>\n `}\n <dds-top-nav-l1 selected-menu-item=${selectedMenuItem}\n >${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.TOP_NAV,\n hasL1: true,\n })}</dds-top-nav-l1\n >\n </dds-masthead-l1>\n `;\n }\n\n /**\n * Renders masthead logo\n *\n */\n protected _renderLogo() {\n if (!this.logoData) {\n return html`\n <dds-masthead-logo\n ?hide-logo=\"${this.activateSearch}\"></dds-masthead-logo>\n `;\n }\n const useAlternateLogo = MastheadLogoAPI.setMastheadLogo(this.logoData);\n const { tooltip, svg, href } = this.logoData;\n return html`\n <dds-masthead-logo\n ?hide-logo=\"${this.activateSearch}\"\n ?hasTooltip=\"${tooltip}\"\n aria-label=\"${ifNonNull(tooltip)}\"\n href=\"${href || DDSMastheadLogo.hrefDefault}\"\n >${useAlternateLogo ? unsafeSVG(svg) : nothing}</dds-masthead-logo\n >\n `;\n }\n\n /**\n * Sorts highlighted and regular menu items in separate arrays\n * and returns view all link\n *\n * @param sections menu section data object\n */\n // eslint-disable-next-line class-methods-use-this\n protected _getHighlightedMenuItems(sections) {\n const highlightedItems: MastheadMenuItem[] = [];\n let viewAllLink;\n const menu: MastheadMenuItem[] = [];\n\n sections[0]?.menuItems?.forEach((item: MastheadMenuItem) => {\n if (item.highlighted) return highlightedItems.push(item);\n if (item.megaPanelViewAll) {\n viewAllLink = item;\n return viewAllLink;\n }\n return menu.push(item);\n });\n\n return { viewAllLink, highlightedItems, menu };\n }\n\n /**\n * Render MegaMenu content\n *\n * @param sections menu section data object\n * @param _parentKey parent menu key (used for the cloud-masthead-composite component)\n */\n // eslint-disable-next-line\n protected _renderMegaMenu(sections, _parentKey) {\n const { viewAllLink, highlightedItems, menu } =\n this._getHighlightedMenuItems(sections);\n const hasHighlights = highlightedItems.length !== 0;\n return html`\n <dds-megamenu>\n ${hasHighlights\n ? html`\n <dds-megamenu-left-navigation>\n ${sections[0]?.heading &&\n html`\n <dds-megamenu-category-group-copy\n >${sections[0]?.heading}</dds-megamenu-category-group-copy\n >\n `}\n ${highlightedItems.map((item, i) => {\n const autoid = `${ddsPrefix}--masthead__l0-nav-list${i}`;\n return html`\n <dds-megamenu-category-group\n data-autoid=\"${autoid}\"\n href=\"${item.url}\"\n title=\"${item.title}\">\n <dds-megamenu-category-group-copy\n >${item.megapanelContent\n ?.description}</dds-megamenu-category-group-copy\n >\n ${item.megapanelContent?.quickLinks?.links.map(\n ({ title, url, highlightedLink }, key) => {\n return html`\n ${highlightedLink\n ? html`\n <dds-megamenu-link-with-icon\n data-autoid=\"${autoid}-item${key}\"\n href=\"${url}\"\n style-scheme=\"category-sublink\"\n title=\"${title}\">\n <span>${title}</span>${ArrowRight16({\n slot: 'icon',\n })}\n </dds-megamenu-link-with-icon>\n `\n : html`\n <dds-megamenu-category-link\n data-autoid=\"${autoid}-item${key}\"\n title=\"${title}\"\n href=\"${url}\">\n </dds-megamenu-category-link>\n `}\n `;\n }\n )}\n </dds-megamenu-category-group>\n `;\n })}\n </dds-megamenu-left-navigation>\n `\n : null}\n <dds-megamenu-right-navigation\n style-scheme=\"${hasHighlights\n ? MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME.LEFT_SECTION\n : MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME.REGULAR}\"\n view-all-href=\"${ifNonNull(viewAllLink?.url)}\"\n view-all-title=\"${ifNonNull(viewAllLink?.title)}\">\n ${menu.map((item, j) => {\n const autoid = `${ddsPrefix}--masthead__l0-nav-list${\n j + highlightedItems.length\n }`;\n return html`\n <dds-megamenu-category-group\n data-autoid=\"${autoid}\"\n href=\"${item.url}\"\n title=\"${item.title}\">\n ${item.megapanelContent?.quickLinks?.links.map(\n ({ title, url }, key) => {\n return html`\n <dds-megamenu-category-link\n data-autoid=\"${autoid}-item${key}\"\n title=\"${title}\"\n href=\"${url}\">\n </dds-megamenu-category-link>\n `;\n }\n )}\n </dds-megamenu-category-group>\n `;\n })}\n </dds-megamenu-right-navigation>\n </dds-megamenu>\n `;\n }\n\n /**\n * Renders the left nav menus sections\n *\n * @param object heading heading of menu section\n * @param object.menuItems menu items\n * @param object.heading heading heading of menu section\n * @param object.isSubmenu determines whether menu section is a submenu section\n * @param object.showBackButton Determines whether to show back button\n * @param object.sectionTitle title of menu section\n * @param object.sectionUrl section title url of menu section\n * @param object.sectionId id of menu section\n */\n // eslint-disable-next-line class-methods-use-this\n protected _renderLeftNavMenuSections({\n menuItems,\n heading = '',\n isSubmenu = false,\n showBackButton = false,\n sectionTitle = '',\n sectionUrl = '',\n sectionId = '',\n }) {\n const items = menuItems.map((elem) => {\n if (elem.menu) {\n return html`\n <dds-left-nav-menu\n ?last-highlighted=${elem.lastHighlightedItem}\n panel-id=${elem.panelId}\n ?active=\"${elem.selected}\"\n title=\"${elem.title}\"\n data-autoid=\"${elem.autoid}\">\n </dds-left-nav-menu>\n `;\n }\n\n return html`\n <dds-left-nav-menu-item\n ?last-highlighted=${elem.lastHighlightedItem}\n ?active=\"${elem.selected}\"\n href=\"${elem.url}\"\n title=\"${elem.title}\"\n data-autoid=\"${elem.autoid}\"></dds-left-nav-menu-item>\n `;\n });\n\n if (heading) {\n items.unshift(\n html`\n <dds-left-nav-menu-category-heading\n >${heading}</dds-left-nav-menu-category-heading\n >\n `\n );\n }\n\n return html`\n <dds-left-nav-menu-section\n section-id=\"${sectionId}\"\n ?is-submenu=${ifNonNull(isSubmenu)}\n title=${ifNonNull(sectionTitle)}\n titleUrl=${ifNonNull(sectionUrl)}\n ?show-back-button=${ifNonNull(showBackButton)}>\n ${items}\n </dds-left-nav-menu-section>\n `;\n }\n\n /**\n * checks if menu item's children url match the current url path, if so return the menu item and its children\n *\n * @returns {object} selectedItems\n */\n // eslint-disable-next-line class-methods-use-this\n protected _selectedLeftNavItems() {\n let matchFound = false;\n const selectedItems = { level0: '', level1: '', level2: '' };\n\n return ({\n menu = [\n { url: '', megapanelContent: { quickLinks: { links: [{ url: '' }] } } },\n ],\n key = '',\n parentItemUrl = '',\n currentUrlPath = '',\n }) => {\n if (!matchFound) {\n if (parentItemUrl === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n matchFound = true;\n }\n // check if child url matches current url path\n else {\n for (let i = 0; i < menu?.length; i++) {\n if (menu[i]?.url === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n selectedItems.level1 = `${key}-${i}`;\n matchFound = true;\n break;\n } else {\n const links = menu[i]?.megapanelContent?.quickLinks?.links;\n for (let k = 0; k < links?.length; k++) {\n if (links[k]?.url === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n selectedItems.level1 = `${key}-${i}`;\n selectedItems.level2 = `${key}-${i}-${k}`;\n matchFound = true;\n break;\n }\n }\n }\n }\n }\n this._hasAutoSelectedItems = matchFound;\n return selectedItems;\n }\n return selectedItems;\n };\n }\n\n /**\n * Renders the left nav menus\n *\n * @param menuItems The options.\n * @param selectedMenuItem The selected menu item\n * @param autoid Base autoid to be applied to the menu items\n * @param currentUrlPath current url path\n */\n // eslint-disable-next-line class-methods-use-this\n protected _renderLeftNav(\n menuItems,\n selectedMenuItem,\n autoid,\n currentUrlPath\n ) {\n const menu: any[] = [];\n const selectedItemUrl = this._selectedLeftNavItems();\n const level0Items = menuItems.map((elem, i) => {\n if (elem.menuSections) {\n const level1Items: {\n title: string;\n panelId: string;\n autoid: string;\n lastHighlightedItem: boolean;\n url?: string;\n menu: boolean;\n selected: boolean;\n }[] = [];\n\n let menuElems = elem.menuSections[0]?.menuItems;\n let highlightedItems: MastheadMenuItem[] = [];\n\n if (elem.hasMegapanel) {\n const {\n viewAllLink,\n highlightedItems: hightlighted,\n menu: nonHighlightedMenuItems,\n } = this._getHighlightedMenuItems(elem.menuSections);\n highlightedItems = hightlighted;\n menuElems = hightlighted.concat(nonHighlightedMenuItems);\n if (viewAllLink) {\n menuElems.push(viewAllLink);\n }\n }\n\n const selectedItems = selectedItemUrl({\n menu: menuElems,\n key: i,\n parentItemUrl: elem.url,\n currentUrlPath,\n });\n\n // render level 1 menu sections\n menuElems?.map((item, k) => {\n const level2Items: {\n title: string;\n url?: string;\n autoid: string;\n selected: boolean;\n }[] = [];\n\n const lastHighlighted = k + 1 === highlightedItems.length;\n\n // render level 2 menu sections\n item.megapanelContent?.quickLinks?.links.map((submenu, j) => {\n return level2Items.push({\n title: submenu.title,\n url: submenu.url,\n autoid: `${autoid}--sidenav--nav${i}-list${k}-item${j}`,\n selected: !selectedMenuItem\n ? selectedItems?.level2 === `${i}-${k}-${j}`\n : selectedMenuItem === submenu.titleEnglish,\n });\n });\n\n if (level2Items.length !== 0) {\n menu.push(\n this._renderLeftNavMenuSections({\n menuItems: level2Items,\n isSubmenu: true,\n showBackButton: true,\n sectionTitle: item.title,\n sectionUrl: item.url,\n sectionId: `${i}, ${k}`,\n })\n );\n }\n\n return level1Items.push({\n title: item.title,\n autoid: `${autoid}--sidenav--nav${i}-list${k}`,\n lastHighlightedItem: lastHighlighted,\n url: item.url,\n panelId: `${i}, ${k}`,\n selected: !selectedMenuItem\n ? selectedItems?.level1 === `${i}-${k}`\n : selectedMenuItem === item.titleEnglish,\n menu:\n item.megapanelContent?.quickLinks?.links &&\n item.megapanelContent?.quickLinks?.links.length !== 0,\n });\n });\n\n if (level1Items.length !== 0) {\n menu.push(\n this._renderLeftNavMenuSections({\n menuItems: level1Items,\n heading: elem.menuSections[0]?.heading,\n isSubmenu: true,\n showBackButton: true,\n sectionTitle: elem.title,\n sectionUrl: elem.url,\n sectionId: `${i}, -1`,\n })\n );\n }\n }\n\n const selectedItems = selectedItemUrl({\n key: i,\n parentItemUrl: elem.url,\n currentUrlPath,\n });\n\n return {\n title: elem.title,\n titleEnglish: elem.titleEnglish,\n menu: elem.menuSections && elem.menuSections.length !== 0,\n url: elem.url,\n panelId: `${i}, -1`,\n autoid: `${autoid}--sidenav--nav${i}`,\n selected: !selectedMenuItem\n ? selectedItems?.level0 === `${i}`\n : selectedMenuItem === elem.titleEnglish,\n };\n });\n\n return html`\n ${this._renderLeftNavMenuSections({\n menuItems: level0Items,\n sectionId: '-1, -1',\n })}\n ${menu}\n `;\n }\n\n /**\n * checks if there is a child item in the menu section that matches current url and returns true for first valid result\n *\n * @returns function that returns true or false\n */\n // eslint-disable-next-line class-methods-use-this\n protected _childLinkChecker() {\n let matchFound = false;\n\n return (sections, currentUrlPath) => {\n if (!matchFound) {\n if (sections.length) {\n const { menuItems } = sections[0];\n\n for (let i = 0; i < menuItems.length; i++) {\n if (\n menuItems[i]?.url === currentUrlPath ||\n menuItems[i]?.megapanelContent?.quickLinks?.links?.filter(\n (link) => link.url === currentUrlPath\n ).length\n ) {\n matchFound = true;\n }\n }\n }\n\n return matchFound;\n }\n\n return false;\n };\n }\n\n /**\n * @param options The options.\n * @param [options.selectedMenuItem] The selected nav item.\n * @param options.target The target of rendering navigation items.\n * @returns The nav items.\n */\n protected _renderNavItems({\n selectedMenuItem,\n target,\n hasL1,\n }: {\n selectedMenuItem?: string;\n target: NAV_ITEMS_RENDER_TARGET;\n hasL1: boolean;\n }) {\n const currentUrlPath = root.location?.href;\n const hasChildLink = this._childLinkChecker();\n const { navLinks, l1Data } = this;\n let menu: MastheadLink[] | undefined = navLinks;\n const autoid = `${ddsPrefix}--masthead__${l1Data?.menuItems ? 'l1' : 'l0'}`;\n if (hasL1) {\n menu = l1Data?.menuItems;\n }\n\n if (target === NAV_ITEMS_RENDER_TARGET.TOP_NAV) {\n return !menu\n ? undefined\n : menu.map((link, i) => {\n const { menuSections = [], title, titleEnglish, url } = link;\n let selected;\n\n if (selectedMenuItem) {\n selected = selectedMenuItem && titleEnglish === selectedMenuItem;\n } else {\n selected = hasChildLink(menuSections, currentUrlPath);\n }\n\n let sections;\n if (link.hasMegapanel) {\n sections = this.megamenuSet[i] = this._renderMegaMenu(\n menuSections,\n i\n );\n } else {\n sections = menuSections\n // eslint-disable-next-line no-use-before-define\n .reduce(\n (acc: typeof menuItems, { menuItems }) =>\n acc.concat(menuItems),\n []\n )\n .map(\n ({ title: menuItemTitle, url: menuItemUrl }, j) =>\n html`\n <dds-top-nav-menu-item\n ?active=\"${selectedMenuItem\n ? selected\n : menuItemUrl === currentUrlPath}\"\n href=\"${menuItemUrl}\"\n title=\"${menuItemTitle}\"\n data-autoid=\"${autoid}-nav--subnav-col${i}-item${j}\"></dds-top-nav-menu-item>\n `\n );\n }\n if (sections.length === 0) {\n return html`\n <dds-top-nav-item\n ?active=\"${selectedMenuItem\n ? selected\n : url === currentUrlPath}\"\n href=\"${url}\"\n title=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\"></dds-top-nav-item>\n `;\n }\n if (link.hasMegapanel) {\n return html`\n <dds-megamenu-top-nav-menu\n ?active=\"${selected}\"\n menu-label=\"${title}\"\n trigger-content=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\">\n </dds-megamenu-top-nav-menu>\n `;\n }\n return html`\n <dds-top-nav-menu\n ?active=\"${selected}\"\n menu-label=\"${title}\"\n trigger-content=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\">\n ${sections}\n </dds-top-nav-menu>\n `;\n });\n }\n\n return !menu\n ? undefined\n : this._renderLeftNav(menu, selectedMenuItem, autoid, currentUrlPath);\n }\n\n /**\n * Handles the rendering of the megamenu once it is active\n *\n * @param event The event.\n */\n @HostListener('eventMegamenuActive')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _loadMegamenu = (event: CustomEvent) => {\n const {\n target,\n detail: { active, resolveFn },\n } = event;\n const { autoid } = (target as HTMLElement).dataset;\n const index = autoid?.slice(-1);\n const currentMenu = this.megamenuSet[index!];\n render(active ? currentMenu : nothing, target as HTMLElement);\n resolveFn();\n };\n\n /**\n * Whether or not a nav item has automatically been designated as \"selected\".\n *\n * @internal\n */\n _hasAutoSelectedItems = false;\n\n /**\n * The placeholder for `loadTranslation()` Redux action that will be mixed in.\n *\n * @internal\n */\n _loadTranslation?: (\n language?: string,\n dataEndpoint?: string\n ) => Promise<Translation>;\n\n /**\n * The placeholder for `loadUserStatus()` Redux action that will be mixed in.\n *\n * @internal\n */\n _loadUserStatus?: () => void;\n\n /**\n * The placeholder for `setLanguage()` Redux action that will be mixed in.\n *\n * @internal\n */\n _setLanguage?: (language: string) => void;\n\n /**\n * `true` if there is a profile.\n */\n @property({ type: String, reflect: true, attribute: 'has-profile' })\n hasProfile = 'true';\n\n /**\n * `true` if there is a search.\n */\n @property({ type: Boolean, attribute: 'has-search' })\n hasSearch = true;\n\n /**\n * `true` to activate the search box.\n */\n @property({ type: Boolean, attribute: 'activate-search' })\n activateSearch = false;\n\n /**\n * `true` sets search to active when page loads.\n */\n @property({ attribute: 'search-open-on-load' })\n searchOpenOnload = this.activateSearch;\n\n /**\n * The profile items for authenticated state.\n */\n @property({ attribute: false })\n authenticatedProfileItems?: MastheadProfileItem[];\n\n /**\n * The platform name.\n */\n @property()\n platform!: string;\n\n /**\n * The platform url. Accepts both a string or an object with a specific URL for each locale.\n */\n @property({ attribute: false })\n platformUrl?;\n\n /**\n * The brand name.\n *\n * @deprecated brandName use platform instead\n */\n @property({ attribute: 'brand-name' })\n brandName!: string;\n\n /**\n * The search results to show in the UI.\n */\n @property({ attribute: false })\n currentSearchResults: string[] = [];\n\n /**\n * The custom profile login link.\n */\n @property({ attribute: 'custom-profile-login' })\n customProfileLogin?: string;\n\n /**\n * The boolean to use a custom search API.\n */\n @property({ attribute: 'custom-typeahead-api', type: Boolean })\n customTypeaheadAPI = false;\n\n /**\n * The `aria-label` attribute for the top-level container.\n */\n @property({ attribute: 'masthead-assistive-text' })\n mastheadAssistiveText!: string;\n\n /**\n * The array containing all the megamenus to be loaded in.\n */\n @property()\n megamenuSet: TemplateResult[] = [];\n\n /**\n * The `aria-label` attribute for the menu bar UI.\n */\n @property({ attribute: 'menu-bar-assistive-text' })\n menuBarAssistiveText!: string;\n\n /**\n * The skip-to-content link text.\n */\n @property({ attribute: 'skip-to-content-text' })\n skipToContentText = 'Skip to content';\n\n /**\n * The skip-to-content href.\n */\n @property({ attribute: 'skip-to-content-href' })\n skipToContentHref = '#main-content';\n\n /**\n * The `aria-label` attribute for the header menu button in its active state.\n */\n @property({ attribute: 'menu-button-assistive-text-active' })\n menuButtonAssistiveTextActive!: string;\n\n /**\n * The `aria-label` attribute for the header menu button in its active state.\n */\n @property({ attribute: 'menu-button-assistive-text-inactive' })\n menuButtonAssistiveTextInactive!: string;\n\n /**\n * The parameters passed to the search-with-typeahead for search scope\n */\n @property()\n scopeParameters;\n\n /**\n * The English title of the selected nav item.\n */\n @property({ attribute: 'selected-menu-item' })\n selectedMenuItem!: string;\n\n /**\n * The profile items for unauthenticated state.\n */\n @property({ attribute: false })\n unauthenticatedProfileItems?: MastheadProfileItem[];\n\n /**\n * Specify translation endpoint if not using default dds endpoint.\n */\n @property({ attribute: 'data-endpoint' })\n dataEndpoint?: string;\n\n /**\n * The throttle timeout to run query upon user input.\n */\n @property({ type: Number, attribute: 'input-timeout' })\n inputTimeout = 200;\n\n /**\n * The language used for query.\n */\n @property()\n language?: string;\n\n /**\n * The navigation links.\n */\n @property({ attribute: false })\n navLinks?: MastheadLink[];\n\n /**\n * Logo data\n */\n @property({ attribute: false })\n logoData?: MastheadLogoData;\n\n /**\n * Data for l1.\n */\n @property({ attribute: false })\n l1Data?: MastheadL1;\n\n /**\n * `true` to open the search dropdown.\n */\n @property({ type: Boolean, reflect: true, attribute: 'open-search-dropdown' })\n openSearchDropdown = false;\n\n /**\n * Value to display when the input has an empty `value`.\n */\n @property()\n searchPlaceholder?: string;\n\n /**\n * The user authentication status.\n */\n @property({ attribute: 'user-status' })\n userStatus = UNAUTHENTICATED_STATUS;\n\n createRenderRoot() {\n // We render child elements of `<dds-masthead-container>` by ourselves\n return this;\n }\n\n firstUpdated() {\n const { language, dataEndpoint } = this;\n globalInit();\n if (language) {\n this._setLanguage?.(language);\n }\n this._loadTranslation?.(language, dataEndpoint).catch(() => {}); // The error is logged in the Redux store\n this._loadUserStatus?.();\n\n this.style.zIndex = '900';\n }\n\n updated(changedProperties) {\n if (changedProperties.has('language')) {\n const { language, dataEndpoint } = this;\n if (language) {\n this._setLanguage?.(language);\n this._loadTranslation?.(language, dataEndpoint).catch(() => {}); // The error is logged in the Redux store\n }\n }\n if (changedProperties.has('brandName')) {\n this.platform = this.brandName;\n // eslint-disable-next-line no-console\n console.warn(\n '`brand-name` will be deprecated in the future use `platform` instead.'\n );\n }\n }\n\n render() {\n const {\n activateSearch,\n authenticatedProfileItems,\n currentSearchResults,\n customTypeaheadAPI,\n customProfileLogin,\n platform,\n platformUrl,\n hasProfile,\n inputTimeout,\n mastheadAssistiveText,\n menuBarAssistiveText,\n menuButtonAssistiveTextActive,\n menuButtonAssistiveTextInactive,\n navLinks,\n language,\n openSearchDropdown,\n hasSearch,\n scopeParameters,\n searchPlaceholder,\n selectedMenuItem,\n skipToContentText,\n skipToContentHref,\n unauthenticatedProfileItems,\n userStatus,\n l1Data,\n } = this;\n const authenticated = userStatus !== UNAUTHENTICATED_STATUS;\n\n let profileItems;\n if (DDS_CUSTOM_PROFILE_LOGIN && customProfileLogin && !authenticated) {\n profileItems = unauthenticatedProfileItems?.map((item) => {\n if (item?.id === 'signin') {\n return { ...item, url: customProfileLogin };\n }\n return item;\n });\n } else {\n profileItems = authenticated\n ? authenticatedProfileItems\n : unauthenticatedProfileItems;\n }\n const formattedLang = language\n ?.toLowerCase()\n .replace(/-(.*)/, (m) => m.toUpperCase());\n let platformAltUrl = platformUrl;\n if (platformUrl && formattedLang) {\n if (\n typeof platformUrl === 'object' &&\n Object.prototype.hasOwnProperty.call(platformUrl, formattedLang)\n ) {\n platformAltUrl = platformUrl[formattedLang].url || platformUrl;\n }\n }\n\n return html`\n <dds-left-nav-overlay></dds-left-nav-overlay>\n <dds-left-nav>\n ${!platform\n ? undefined\n : html`\n <dds-left-nav-name href=\"${ifNonNull(platformAltUrl)}\"\n >${platform}</dds-left-nav-name\n >\n `}\n ${!l1Data?.title\n ? undefined\n : html`\n <dds-left-nav-name href=\"${ifNonNull(l1Data.url)}\"\n >${l1Data.title}</dds-left-nav-name\n >\n `}\n ${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.LEFT_NAV,\n hasL1: !!l1Data,\n })}\n </dds-left-nav>\n <dds-masthead aria-label=\"${ifNonNull(mastheadAssistiveText)}\">\n <dds-skip-to-content\n href=\"${skipToContentHref}\"\n link-assistive-text=\"${skipToContentText}\"></dds-skip-to-content>\n <dds-masthead-menu-button\n button-label-active=\"${ifNonNull(menuButtonAssistiveTextActive)}\"\n button-label-inactive=\"${ifNonNull(menuButtonAssistiveTextInactive)}\"\n ?hide-menu-button=\"${activateSearch}\">\n </dds-masthead-menu-button>\n\n ${this._renderLogo()}\n ${!platform || l1Data\n ? undefined\n : html`\n <dds-top-nav-name href=\"${ifNonNull(platformAltUrl)}\"\n >${platform}</dds-top-nav-name\n >\n `}\n ${(!l1Data &&\n navLinks &&\n html`\n <dds-top-nav\n selected-menu-item=${selectedMenuItem}\n menu-bar-label=\"${ifNonNull(menuBarAssistiveText)}\"\n ?hideNav=\"${activateSearch}\">\n ${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.TOP_NAV,\n hasL1: false,\n })}\n </dds-top-nav>\n `) ||\n undefined}\n ${!hasSearch\n ? undefined\n : html`\n <dds-search-with-typeahead\n ?active=\"${activateSearch}\"\n input-timeout=\"${inputTimeout}\"\n language=\"${ifNonNull(language)}\"\n ?open=\"${openSearchDropdown}\"\n ?searchOpenOnload=\"${activateSearch}\"\n placeholder=\"${ifNonNull(searchPlaceholder)}\"\n .currentSearchResults=\"${ifNonNull(currentSearchResults)}\"\n ?custom-typeahead-api=\"${ifNonNull(customTypeaheadAPI)}\"\n .scopeParameters=\"${ifNonNull(\n scopeParameters\n )}\"></dds-search-with-typeahead>\n `}\n <dds-masthead-global-bar ?has-search-active=${activateSearch}>\n ${hasProfile === 'false'\n ? ''\n : html`\n <dds-masthead-profile ?authenticated=\"${authenticated}\">\n ${profileItems?.map(\n ({ title, url }) =>\n html`\n <dds-masthead-profile-item href=\"${ifNonNull(url)}\"\n >${title}</dds-masthead-profile-item\n >\n `\n )}\n </dds-masthead-profile>\n `}\n </dds-masthead-global-bar>\n ${!l1Data ? undefined : this._renderL1({ selectedMenuItem })}\n <dds-megamenu-overlay></dds-megamenu-overlay>\n </dds-masthead>\n `;\n }\n\n /**\n * The name of the custom event fired when a top nav menu is clicked\n */\n static get eventMegamenuActive() {\n return `${ddsPrefix}-megamenu-top-nav-menu-toggle`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default DDSMastheadComposite;\n"],"mappings":"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"}
1
+ {"version":3,"file":"masthead-composite.js","names":["_litElement","require","_litHtml","_hostListener","_interopRequireDefault","_hostListener2","_","_ifNonNull","_unsafeSvg","_windowOrGlobal","_settings","_global","_MastheadLogo","_profileAPI","_megamenuRightNavigation","_featureFlags","_mastheadLogo","_mastheadCss","_carbonElement","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ddsPrefix","ddsSettings","stablePrefix","NAV_ITEMS_RENDER_TARGET","exports","DDSMastheadComposite","_decorate2","customElement","concat","_initialize","_HostListenerMixin","_HostListenerMixin2","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","_assertThisInitialized2","_createClass2","F","d","kind","value","_renderL1","_ref","undefined","selectedMenuItem","l1Data","_this$l1Data","url","title","isSelected","_hasAutoSelectedItems","html","_taggedTemplateLiteral2","_renderNavItems","TOP_NAV","hasL1","_renderLogo","logoData","activateSearch","useAlternateLogo","MastheadLogoAPI","setMastheadLogo","_this$logoData","tooltip","svg","href","ifNonNull","DDSMastheadLogo","hrefDefault","unsafeSVG","nothing","_getHighlightedMenuItems","sections","_sections$","_sections$$menuItems","highlightedItems","viewAllLink","menu","menuItems","item","highlighted","megaPanelViewAll","_renderMegaMenu","_parentKey","_sections$2","_sections$3","_this$_getHighlighted","hasHighlights","heading","map","_item$megapanelConten","_item$megapanelConten2","_item$megapanelConten3","autoid","megapanelContent","description","quickLinks","links","_ref2","highlightedLink","ArrowRight16","slot","MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME","LEFT_SECTION","REGULAR","j","_item$megapanelConten4","_item$megapanelConten5","_ref3","_renderLeftNavMenuSections","_ref4","_ref4$heading","_ref4$isSubmenu","isSubmenu","_ref4$showBackButton","showBackButton","_ref4$sectionTitle","sectionTitle","_ref4$sectionUrl","sectionUrl","_ref4$sectionId","sectionId","items","elem","lastHighlightedItem","panelId","selected","unshift","_selectedLeftNavItems","_this2","matchFound","selectedItems","level0","level1","level2","_ref5","_ref5$menu","_ref5$key","_ref5$parentItemUrl","parentItemUrl","_ref5$currentUrlPath","currentUrlPath","_menu$i","_menu$i2","_menu$i2$megapanelCon","_menu$i2$megapanelCon2","k","_links$k","_renderLeftNav","_this3","selectedItemUrl","level0Items","menuSections","_elem$menuSections$","_menuElems","level1Items","menuElems","hasMegapanel","_this3$_getHighlighte","hightlighted","nonHighlightedMenuItems","_item$megapanelConten6","_item$megapanelConten7","_item$megapanelConten8","_item$megapanelConten9","_item$megapanelConten10","_item$megapanelConten11","level2Items","lastHighlighted","submenu","titleEnglish","_elem$menuSections$2","_childLinkChecker","_menuItems$i","_menuItems$i2","_menuItems$i2$megapan","_menuItems$i2$megapan2","_menuItems$i2$megapan3","link","_ref6","_root$location","_this4","root","location","hasChildLink","navLinks","_link$menuSections","megamenuSet","reduce","acc","_ref7","_ref8","menuItemTitle","menuItemUrl","decorators","HostListener","_this5","event","_event$detail","detail","active","resolveFn","dataset","index","slice","currentMenu","render","property","type","String","reflect","attribute","Number","UNAUTHENTICATED_STATUS","createRenderRoot","firstUpdated","_this$_loadTranslatio","_this$_loadUserStatus","language","dataEndpoint","globalInit","_this$_setLanguage","_setLanguage","_loadTranslation","_loadUserStatus","style","zIndex","updated","changedProperties","has","_this$_setLanguage2","_this$_loadTranslatio2","platform","brandName","console","warn","_profileItems","authenticatedProfileItems","currentSearchResults","customTypeaheadAPI","customProfileLogin","platformUrl","hasProfile","inputTimeout","mastheadAssistiveText","menuBarAssistiveText","menuButtonAssistiveTextActive","menuButtonAssistiveTextInactive","openSearchDropdown","hasSearch","scopeParameters","searchPlaceholder","skipToContentText","skipToContentHref","unauthenticatedProfileItems","userStatus","authenticated","profileItems","DDS_CUSTOM_PROFILE_LOGIN","id","formattedLang","toLowerCase","replace","m","toUpperCase","platformAltUrl","_typeof2","hasOwnProperty","LEFT_NAV","_ref9","eventMegamenuActive","styles","HostListenerMixin","LitElement","_default"],"sources":["components/masthead/masthead-composite.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement, TemplateResult } from 'lit-element';\nimport { nothing, render } from 'lit-html';\nimport HostListener from '../../internal/vendor/@carbon/web-components/globals/decorators/host-listener.js';\nimport HostListenerMixin from '../../internal/vendor/@carbon/web-components/globals/mixins/host-listener.js';\nimport ArrowRight16 from '../../internal/vendor/@carbon/web-components/icons/arrow--right/16.js';\nimport ifNonNull from '../../internal/vendor/@carbon/web-components/globals/directives/if-non-null.js';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport root from 'window-or-global';\nimport ddsSettings from '../../internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings';\nimport { globalInit } from '../../internal/vendor/@carbon/ibmdotcom-services/services/global/global';\nimport MastheadLogoAPI from '../../internal/vendor/@carbon/ibmdotcom-services/services/MastheadLogo/MastheadLogo';\nimport {\n MastheadL1,\n MastheadLink,\n MastheadLogoData,\n MastheadMenuItem,\n MastheadProfileItem,\n Translation,\n} from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/translateAPI.d';\nimport { UNAUTHENTICATED_STATUS } from '../../internal/vendor/@carbon/ibmdotcom-services-store/types/profileAPI';\nimport { MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME } from './megamenu-right-navigation';\nimport { DDS_CUSTOM_PROFILE_LOGIN } from '../../globals/internal/feature-flags';\nimport DDSMastheadLogo from './masthead-logo';\nimport './masthead';\nimport './masthead-l1';\nimport './masthead-l1-name';\nimport './masthead-menu-button';\nimport './masthead-global-bar';\nimport './masthead-profile';\nimport './masthead-profile-item';\nimport './megamenu';\nimport './megamenu-top-nav-menu';\nimport './skip-to-content';\nimport './top-nav';\nimport './top-nav-l1';\nimport './top-nav-name';\nimport './top-nav-item';\nimport './top-nav-menu';\nimport './top-nav-menu-item';\nimport './left-nav';\nimport '../search-with-typeahead/search-with-typeahead';\nimport '../search-with-typeahead/search-with-typeahead-item';\nimport styles from './masthead.scss';\nimport { carbonElement as customElement } from '../../internal/vendor/@carbon/web-components/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: ddsPrefix } = ddsSettings;\n\n/**\n * Rendering target for masthead navigation items.\n */\nexport enum NAV_ITEMS_RENDER_TARGET {\n /**\n * For top navigation.\n */\n TOP_NAV = 'top-nav',\n\n /**\n * For left navigation.\n */\n LEFT_NAV = 'left-nav',\n}\n\n/**\n * Component that renders masthead from links, etc. data.\n *\n * @element dds-masthead-composite\n */\n@customElement(`${ddsPrefix}-masthead-composite`)\nclass DDSMastheadComposite extends HostListenerMixin(LitElement) {\n /**\n * Renders L1 menu based on l1Data\n *\n * @param [options] The options.\n * @param [options.selectedMenuItem] The selected nav item.\n * @returns The L1 nav.\n */\n protected _renderL1({\n selectedMenuItem,\n }: { selectedMenuItem?: string } = {}) {\n if (!this.l1Data) return undefined;\n const { url, title } = this.l1Data;\n const isSelected = !this._hasAutoSelectedItems && !selectedMenuItem;\n return html`\n <dds-masthead-l1 slot=\"masthead-l1\">\n ${!title\n ? undefined\n : html`\n <dds-masthead-l1-name\n title=\"${title}\"\n aria-selected=\"${isSelected}\"\n url=\"${url}\"></dds-masthead-l1-name>\n `}\n <dds-top-nav-l1 selected-menu-item=${selectedMenuItem}\n >${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.TOP_NAV,\n hasL1: true,\n })}</dds-top-nav-l1\n >\n </dds-masthead-l1>\n `;\n }\n\n /**\n * Renders masthead logo\n *\n */\n protected _renderLogo() {\n if (!this.logoData) {\n return html`\n <dds-masthead-logo\n ?hide-logo=\"${this.activateSearch}\"></dds-masthead-logo>\n `;\n }\n const useAlternateLogo = MastheadLogoAPI.setMastheadLogo(this.logoData);\n const { tooltip, svg, href } = this.logoData;\n return html`\n <dds-masthead-logo\n ?hide-logo=\"${this.activateSearch}\"\n ?hasTooltip=\"${tooltip}\"\n aria-label=\"${ifNonNull(tooltip)}\"\n href=\"${href || DDSMastheadLogo.hrefDefault}\"\n >${useAlternateLogo ? unsafeSVG(svg) : nothing}</dds-masthead-logo\n >\n `;\n }\n\n /**\n * Sorts highlighted and regular menu items in separate arrays\n * and returns view all link\n *\n * @param sections menu section data object\n */\n // eslint-disable-next-line class-methods-use-this\n protected _getHighlightedMenuItems(sections) {\n const highlightedItems: MastheadMenuItem[] = [];\n let viewAllLink;\n const menu: MastheadMenuItem[] = [];\n\n sections[0]?.menuItems?.forEach((item: MastheadMenuItem) => {\n if (item.highlighted) return highlightedItems.push(item);\n if (item.megaPanelViewAll) {\n viewAllLink = item;\n return viewAllLink;\n }\n return menu.push(item);\n });\n\n return { viewAllLink, highlightedItems, menu };\n }\n\n /**\n * Render MegaMenu content\n *\n * @param sections menu section data object\n * @param _parentKey parent menu key (used for the cloud-masthead-composite component)\n */\n // eslint-disable-next-line\n protected _renderMegaMenu(sections, _parentKey) {\n const { viewAllLink, highlightedItems, menu } =\n this._getHighlightedMenuItems(sections);\n const hasHighlights = highlightedItems.length !== 0;\n return html`\n <dds-megamenu>\n ${hasHighlights\n ? html`\n <dds-megamenu-left-navigation>\n ${sections[0]?.heading &&\n html`\n <dds-megamenu-category-group-copy\n >${sections[0]?.heading}</dds-megamenu-category-group-copy\n >\n `}\n ${highlightedItems.map((item, i) => {\n const autoid = `${ddsPrefix}--masthead__l0-nav-list${i}`;\n return html`\n <dds-megamenu-category-group\n data-autoid=\"${autoid}\"\n href=\"${item.url}\"\n title=\"${item.title}\">\n <dds-megamenu-category-group-copy\n >${item.megapanelContent\n ?.description}</dds-megamenu-category-group-copy\n >\n ${item.megapanelContent?.quickLinks?.links.map(\n ({ title, url, highlightedLink }, key) => {\n return html`\n ${highlightedLink\n ? html`\n <dds-megamenu-link-with-icon\n data-autoid=\"${autoid}-item${key}\"\n href=\"${url}\"\n style-scheme=\"category-sublink\"\n title=\"${title}\">\n <span>${title}</span>${ArrowRight16({\n slot: 'icon',\n })}\n </dds-megamenu-link-with-icon>\n `\n : html`\n <dds-megamenu-category-link\n data-autoid=\"${autoid}-item${key}\"\n title=\"${title}\"\n href=\"${url}\">\n </dds-megamenu-category-link>\n `}\n `;\n }\n )}\n </dds-megamenu-category-group>\n `;\n })}\n </dds-megamenu-left-navigation>\n `\n : null}\n <dds-megamenu-right-navigation\n style-scheme=\"${hasHighlights\n ? MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME.LEFT_SECTION\n : MEGAMENU_RIGHT_NAVIGATION_STYLE_SCHEME.REGULAR}\"\n view-all-href=\"${ifNonNull(viewAllLink?.url)}\"\n view-all-title=\"${ifNonNull(viewAllLink?.title)}\">\n ${menu.map((item, j) => {\n const autoid = `${ddsPrefix}--masthead__l0-nav-list${\n j + highlightedItems.length\n }`;\n return html`\n <dds-megamenu-category-group\n data-autoid=\"${autoid}\"\n href=\"${item.url}\"\n title=\"${item.title}\">\n ${item.megapanelContent?.quickLinks?.links.map(\n ({ title, url }, key) => {\n return html`\n <dds-megamenu-category-link\n data-autoid=\"${autoid}-item${key}\"\n title=\"${title}\"\n href=\"${url}\">\n </dds-megamenu-category-link>\n `;\n }\n )}\n </dds-megamenu-category-group>\n `;\n })}\n </dds-megamenu-right-navigation>\n </dds-megamenu>\n `;\n }\n\n /**\n * Renders the left nav menus sections\n *\n * @param object heading heading of menu section\n * @param object.menuItems menu items\n * @param object.heading heading heading of menu section\n * @param object.isSubmenu determines whether menu section is a submenu section\n * @param object.showBackButton Determines whether to show back button\n * @param object.sectionTitle title of menu section\n * @param object.sectionUrl section title url of menu section\n * @param object.sectionId id of menu section\n */\n // eslint-disable-next-line class-methods-use-this\n protected _renderLeftNavMenuSections({\n menuItems,\n heading = '',\n isSubmenu = false,\n showBackButton = false,\n sectionTitle = '',\n sectionUrl = '',\n sectionId = '',\n }) {\n const items = menuItems.map((elem) => {\n if (elem.menu) {\n return html`\n <dds-left-nav-menu\n ?last-highlighted=${elem.lastHighlightedItem}\n panel-id=${elem.panelId}\n ?active=\"${elem.selected}\"\n title=\"${elem.title}\"\n data-autoid=\"${elem.autoid}\">\n </dds-left-nav-menu>\n `;\n }\n\n return html`\n <dds-left-nav-menu-item\n ?last-highlighted=${elem.lastHighlightedItem}\n ?active=\"${elem.selected}\"\n href=\"${elem.url}\"\n title=\"${elem.title}\"\n data-autoid=\"${elem.autoid}\"></dds-left-nav-menu-item>\n `;\n });\n\n if (heading) {\n items.unshift(\n html`\n <dds-left-nav-menu-category-heading\n >${heading}</dds-left-nav-menu-category-heading\n >\n `\n );\n }\n\n return html`\n <dds-left-nav-menu-section\n section-id=\"${sectionId}\"\n ?is-submenu=${ifNonNull(isSubmenu)}\n title=${ifNonNull(sectionTitle)}\n titleUrl=${ifNonNull(sectionUrl)}\n ?show-back-button=${ifNonNull(showBackButton)}>\n ${items}\n </dds-left-nav-menu-section>\n `;\n }\n\n /**\n * checks if menu item's children url match the current url path, if so return the menu item and its children\n *\n * @returns {object} selectedItems\n */\n // eslint-disable-next-line class-methods-use-this\n protected _selectedLeftNavItems() {\n let matchFound = false;\n const selectedItems = { level0: '', level1: '', level2: '' };\n\n return ({\n menu = [\n { url: '', megapanelContent: { quickLinks: { links: [{ url: '' }] } } },\n ],\n key = '',\n parentItemUrl = '',\n currentUrlPath = '',\n }) => {\n if (!matchFound) {\n if (parentItemUrl === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n matchFound = true;\n }\n // check if child url matches current url path\n else {\n for (let i = 0; i < menu?.length; i++) {\n if (menu[i]?.url === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n selectedItems.level1 = `${key}-${i}`;\n matchFound = true;\n break;\n } else {\n const links = menu[i]?.megapanelContent?.quickLinks?.links;\n for (let k = 0; k < links?.length; k++) {\n if (links[k]?.url === currentUrlPath) {\n selectedItems.level0 = `${key}`;\n selectedItems.level1 = `${key}-${i}`;\n selectedItems.level2 = `${key}-${i}-${k}`;\n matchFound = true;\n break;\n }\n }\n }\n }\n }\n this._hasAutoSelectedItems = matchFound;\n return selectedItems;\n }\n return selectedItems;\n };\n }\n\n /**\n * Renders the left nav menus\n *\n * @param menuItems The options.\n * @param selectedMenuItem The selected menu item\n * @param autoid Base autoid to be applied to the menu items\n * @param currentUrlPath current url path\n */\n // eslint-disable-next-line class-methods-use-this\n protected _renderLeftNav(\n menuItems,\n selectedMenuItem,\n autoid,\n currentUrlPath\n ) {\n const menu: any[] = [];\n const selectedItemUrl = this._selectedLeftNavItems();\n const level0Items = menuItems.map((elem, i) => {\n if (elem.menuSections) {\n const level1Items: {\n title: string;\n panelId: string;\n autoid: string;\n lastHighlightedItem: boolean;\n url?: string;\n menu: boolean;\n selected: boolean;\n }[] = [];\n\n let menuElems = elem.menuSections[0]?.menuItems;\n let highlightedItems: MastheadMenuItem[] = [];\n\n if (elem.hasMegapanel) {\n const {\n viewAllLink,\n highlightedItems: hightlighted,\n menu: nonHighlightedMenuItems,\n } = this._getHighlightedMenuItems(elem.menuSections);\n highlightedItems = hightlighted;\n menuElems = hightlighted.concat(nonHighlightedMenuItems);\n if (viewAllLink) {\n menuElems.push(viewAllLink);\n }\n }\n\n const selectedItems = selectedItemUrl({\n menu: menuElems,\n key: i,\n parentItemUrl: elem.url,\n currentUrlPath,\n });\n\n // render level 1 menu sections\n menuElems?.map((item, k) => {\n const level2Items: {\n title: string;\n url?: string;\n autoid: string;\n selected: boolean;\n }[] = [];\n\n const lastHighlighted = k + 1 === highlightedItems.length;\n\n // render level 2 menu sections\n item.megapanelContent?.quickLinks?.links.map((submenu, j) => {\n return level2Items.push({\n title: submenu.title,\n url: submenu.url,\n autoid: `${autoid}--sidenav--nav${i}-list${k}-item${j}`,\n selected: !selectedMenuItem\n ? selectedItems?.level2 === `${i}-${k}-${j}`\n : selectedMenuItem === submenu.titleEnglish,\n });\n });\n\n if (level2Items.length !== 0) {\n menu.push(\n this._renderLeftNavMenuSections({\n menuItems: level2Items,\n isSubmenu: true,\n showBackButton: true,\n sectionTitle: item.title,\n sectionUrl: item.url,\n sectionId: `${i}, ${k}`,\n })\n );\n }\n\n return level1Items.push({\n title: item.title,\n autoid: `${autoid}--sidenav--nav${i}-list${k}`,\n lastHighlightedItem: lastHighlighted,\n url: item.url,\n panelId: `${i}, ${k}`,\n selected: !selectedMenuItem\n ? selectedItems?.level1 === `${i}-${k}`\n : selectedMenuItem === item.titleEnglish,\n menu:\n item.megapanelContent?.quickLinks?.links &&\n item.megapanelContent?.quickLinks?.links.length !== 0,\n });\n });\n\n if (level1Items.length !== 0) {\n menu.push(\n this._renderLeftNavMenuSections({\n menuItems: level1Items,\n heading: elem.menuSections[0]?.heading,\n isSubmenu: true,\n showBackButton: true,\n sectionTitle: elem.title,\n sectionUrl: elem.url,\n sectionId: `${i}, -1`,\n })\n );\n }\n }\n\n const selectedItems = selectedItemUrl({\n key: i,\n parentItemUrl: elem.url,\n currentUrlPath,\n });\n\n return {\n title: elem.title,\n titleEnglish: elem.titleEnglish,\n menu: elem.menuSections && elem.menuSections.length !== 0,\n url: elem.url,\n panelId: `${i}, -1`,\n autoid: `${autoid}--sidenav--nav${i}`,\n selected: !selectedMenuItem\n ? selectedItems?.level0 === `${i}`\n : selectedMenuItem === elem.titleEnglish,\n };\n });\n\n return html`\n ${this._renderLeftNavMenuSections({\n menuItems: level0Items,\n sectionId: '-1, -1',\n })}\n ${menu}\n `;\n }\n\n /**\n * checks if there is a child item in the menu section that matches current url and returns true for first valid result\n *\n * @returns function that returns true or false\n */\n // eslint-disable-next-line class-methods-use-this\n protected _childLinkChecker() {\n let matchFound = false;\n\n return (sections, currentUrlPath) => {\n if (!matchFound) {\n if (sections.length) {\n const { menuItems } = sections[0];\n\n for (let i = 0; i < menuItems.length; i++) {\n if (\n menuItems[i]?.url === currentUrlPath ||\n menuItems[i]?.megapanelContent?.quickLinks?.links?.filter(\n (link) => link.url === currentUrlPath\n ).length\n ) {\n matchFound = true;\n }\n }\n }\n\n return matchFound;\n }\n\n return false;\n };\n }\n\n /**\n * @param options The options.\n * @param [options.selectedMenuItem] The selected nav item.\n * @param options.target The target of rendering navigation items.\n * @returns The nav items.\n */\n protected _renderNavItems({\n selectedMenuItem,\n target,\n hasL1,\n }: {\n selectedMenuItem?: string;\n target: NAV_ITEMS_RENDER_TARGET;\n hasL1: boolean;\n }) {\n const currentUrlPath = root.location?.href;\n const hasChildLink = this._childLinkChecker();\n const { navLinks, l1Data } = this;\n let menu: MastheadLink[] | undefined = navLinks;\n const autoid = `${ddsPrefix}--masthead__${l1Data?.menuItems ? 'l1' : 'l0'}`;\n if (hasL1) {\n menu = l1Data?.menuItems;\n }\n\n if (target === NAV_ITEMS_RENDER_TARGET.TOP_NAV) {\n return !menu\n ? undefined\n : menu.map((link, i) => {\n const { menuSections = [], title, titleEnglish, url } = link;\n let selected;\n\n if (selectedMenuItem) {\n selected = selectedMenuItem && titleEnglish === selectedMenuItem;\n } else {\n selected = hasChildLink(menuSections, currentUrlPath);\n }\n\n let sections;\n if (link.hasMegapanel) {\n sections = this.megamenuSet[i] = this._renderMegaMenu(\n menuSections,\n i\n );\n } else {\n sections = menuSections\n // eslint-disable-next-line no-use-before-define\n .reduce(\n (acc: typeof menuItems, { menuItems }) =>\n acc.concat(menuItems),\n []\n )\n .map(\n ({ title: menuItemTitle, url: menuItemUrl }, j) =>\n html`\n <dds-top-nav-menu-item\n ?active=\"${selectedMenuItem\n ? selected\n : menuItemUrl === currentUrlPath}\"\n href=\"${menuItemUrl}\"\n title=\"${menuItemTitle}\"\n data-autoid=\"${autoid}-nav--subnav-col${i}-item${j}\"></dds-top-nav-menu-item>\n `\n );\n }\n if (sections.length === 0) {\n return html`\n <dds-top-nav-item\n ?active=\"${selectedMenuItem\n ? selected\n : url === currentUrlPath}\"\n href=\"${url}\"\n title=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\"></dds-top-nav-item>\n `;\n }\n if (link.hasMegapanel) {\n return html`\n <dds-megamenu-top-nav-menu\n ?active=\"${selected}\"\n menu-label=\"${title}\"\n trigger-content=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\">\n </dds-megamenu-top-nav-menu>\n `;\n }\n return html`\n <dds-top-nav-menu\n ?active=\"${selected}\"\n menu-label=\"${title}\"\n trigger-content=\"${title}\"\n data-autoid=\"${autoid}-nav--nav${i}\">\n ${sections}\n </dds-top-nav-menu>\n `;\n });\n }\n\n return !menu\n ? undefined\n : this._renderLeftNav(menu, selectedMenuItem, autoid, currentUrlPath);\n }\n\n /**\n * Handles the rendering of the megamenu once it is active\n *\n * @param event The event.\n */\n @HostListener('eventMegamenuActive')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _loadMegamenu = (event: CustomEvent) => {\n const {\n target,\n detail: { active, resolveFn },\n } = event;\n const { autoid } = (target as HTMLElement).dataset;\n const index = autoid?.slice(-1);\n const currentMenu = this.megamenuSet[index!];\n render(active ? currentMenu : nothing, target as HTMLElement);\n resolveFn();\n };\n\n /**\n * Whether or not a nav item has automatically been designated as \"selected\".\n *\n * @internal\n */\n _hasAutoSelectedItems = false;\n\n /**\n * The placeholder for `loadTranslation()` Redux action that will be mixed in.\n *\n * @internal\n */\n _loadTranslation?: (\n language?: string,\n dataEndpoint?: string\n ) => Promise<Translation>;\n\n /**\n * The placeholder for `loadUserStatus()` Redux action that will be mixed in.\n *\n * @internal\n */\n _loadUserStatus?: () => void;\n\n /**\n * The placeholder for `setLanguage()` Redux action that will be mixed in.\n *\n * @internal\n */\n _setLanguage?: (language: string) => void;\n\n /**\n * `true` if there is a profile.\n */\n @property({ type: String, reflect: true, attribute: 'has-profile' })\n hasProfile = 'true';\n\n /**\n * `true` if there is a search.\n */\n @property({ type: String, reflect: true, attribute: 'has-search' })\n hasSearch = 'true';\n\n /**\n * `true` to activate the search box.\n */\n @property({ type: Boolean, attribute: 'activate-search' })\n activateSearch = false;\n\n /**\n * `true` sets search to active when page loads.\n */\n @property({ attribute: 'search-open-on-load' })\n searchOpenOnload = this.activateSearch;\n\n /**\n * The profile items for authenticated state.\n */\n @property({ attribute: false })\n authenticatedProfileItems?: MastheadProfileItem[];\n\n /**\n * The platform name.\n */\n @property()\n platform!: string;\n\n /**\n * The platform url. Accepts both a string or an object with a specific URL for each locale.\n */\n @property({ attribute: false })\n platformUrl?;\n\n /**\n * The brand name.\n *\n * @deprecated brandName use platform instead\n */\n @property({ attribute: 'brand-name' })\n brandName!: string;\n\n /**\n * The search results to show in the UI.\n */\n @property({ attribute: false })\n currentSearchResults: string[] = [];\n\n /**\n * The custom profile login link.\n */\n @property({ attribute: 'custom-profile-login' })\n customProfileLogin?: string;\n\n /**\n * The boolean to use a custom search API.\n */\n @property({ attribute: 'custom-typeahead-api', type: Boolean })\n customTypeaheadAPI = false;\n\n /**\n * The `aria-label` attribute for the top-level container.\n */\n @property({ attribute: 'masthead-assistive-text' })\n mastheadAssistiveText!: string;\n\n /**\n * The array containing all the megamenus to be loaded in.\n */\n @property()\n megamenuSet: TemplateResult[] = [];\n\n /**\n * The `aria-label` attribute for the menu bar UI.\n */\n @property({ attribute: 'menu-bar-assistive-text' })\n menuBarAssistiveText!: string;\n\n /**\n * The skip-to-content link text.\n */\n @property({ attribute: 'skip-to-content-text' })\n skipToContentText = 'Skip to content';\n\n /**\n * The skip-to-content href.\n */\n @property({ attribute: 'skip-to-content-href' })\n skipToContentHref = '#main-content';\n\n /**\n * The `aria-label` attribute for the header menu button in its active state.\n */\n @property({ attribute: 'menu-button-assistive-text-active' })\n menuButtonAssistiveTextActive!: string;\n\n /**\n * The `aria-label` attribute for the header menu button in its active state.\n */\n @property({ attribute: 'menu-button-assistive-text-inactive' })\n menuButtonAssistiveTextInactive!: string;\n\n /**\n * The parameters passed to the search-with-typeahead for search scope\n */\n @property()\n scopeParameters;\n\n /**\n * The English title of the selected nav item.\n */\n @property({ attribute: 'selected-menu-item' })\n selectedMenuItem!: string;\n\n /**\n * The profile items for unauthenticated state.\n */\n @property({ attribute: false })\n unauthenticatedProfileItems?: MastheadProfileItem[];\n\n /**\n * Specify translation endpoint if not using default dds endpoint.\n */\n @property({ attribute: 'data-endpoint' })\n dataEndpoint?: string;\n\n /**\n * The throttle timeout to run query upon user input.\n */\n @property({ type: Number, attribute: 'input-timeout' })\n inputTimeout = 200;\n\n /**\n * The language used for query.\n */\n @property()\n language?: string;\n\n /**\n * The navigation links.\n */\n @property({ attribute: false })\n navLinks?: MastheadLink[];\n\n /**\n * Logo data\n */\n @property({ attribute: false })\n logoData?: MastheadLogoData;\n\n /**\n * Data for l1.\n */\n @property({ attribute: false })\n l1Data?: MastheadL1;\n\n /**\n * `true` to open the search dropdown.\n */\n @property({ type: Boolean, reflect: true, attribute: 'open-search-dropdown' })\n openSearchDropdown = false;\n\n /**\n * Value to display when the input has an empty `value`.\n */\n @property()\n searchPlaceholder?: string;\n\n /**\n * The user authentication status.\n */\n @property({ attribute: 'user-status' })\n userStatus = UNAUTHENTICATED_STATUS;\n\n createRenderRoot() {\n // We render child elements of `<dds-masthead-container>` by ourselves\n return this;\n }\n\n firstUpdated() {\n const { language, dataEndpoint } = this;\n globalInit();\n if (language) {\n this._setLanguage?.(language);\n }\n this._loadTranslation?.(language, dataEndpoint).catch(() => {}); // The error is logged in the Redux store\n this._loadUserStatus?.();\n\n this.style.zIndex = '900';\n }\n\n updated(changedProperties) {\n if (changedProperties.has('language')) {\n const { language, dataEndpoint } = this;\n if (language) {\n this._setLanguage?.(language);\n this._loadTranslation?.(language, dataEndpoint).catch(() => {}); // The error is logged in the Redux store\n }\n }\n if (changedProperties.has('brandName')) {\n this.platform = this.brandName;\n // eslint-disable-next-line no-console\n console.warn(\n '`brand-name` will be deprecated in the future use `platform` instead.'\n );\n }\n }\n\n render() {\n const {\n activateSearch,\n authenticatedProfileItems,\n currentSearchResults,\n customTypeaheadAPI,\n customProfileLogin,\n platform,\n platformUrl,\n hasProfile,\n inputTimeout,\n mastheadAssistiveText,\n menuBarAssistiveText,\n menuButtonAssistiveTextActive,\n menuButtonAssistiveTextInactive,\n navLinks,\n language,\n openSearchDropdown,\n hasSearch,\n scopeParameters,\n searchPlaceholder,\n selectedMenuItem,\n skipToContentText,\n skipToContentHref,\n unauthenticatedProfileItems,\n userStatus,\n l1Data,\n } = this;\n const authenticated = userStatus !== UNAUTHENTICATED_STATUS;\n\n let profileItems;\n if (DDS_CUSTOM_PROFILE_LOGIN && customProfileLogin && !authenticated) {\n profileItems = unauthenticatedProfileItems?.map((item) => {\n if (item?.id === 'signin') {\n return { ...item, url: customProfileLogin };\n }\n return item;\n });\n } else {\n profileItems = authenticated\n ? authenticatedProfileItems\n : unauthenticatedProfileItems;\n }\n const formattedLang = language\n ?.toLowerCase()\n .replace(/-(.*)/, (m) => m.toUpperCase());\n let platformAltUrl = platformUrl;\n if (platformUrl && formattedLang) {\n if (\n typeof platformUrl === 'object' &&\n Object.prototype.hasOwnProperty.call(platformUrl, formattedLang)\n ) {\n platformAltUrl = platformUrl[formattedLang].url || platformUrl;\n }\n }\n\n return html`\n <dds-left-nav-overlay></dds-left-nav-overlay>\n <dds-left-nav>\n ${!platform\n ? undefined\n : html`\n <dds-left-nav-name href=\"${ifNonNull(platformAltUrl)}\"\n >${platform}</dds-left-nav-name\n >\n `}\n ${!l1Data?.title\n ? undefined\n : html`\n <dds-left-nav-name href=\"${ifNonNull(l1Data.url)}\"\n >${l1Data.title}</dds-left-nav-name\n >\n `}\n ${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.LEFT_NAV,\n hasL1: !!l1Data,\n })}\n </dds-left-nav>\n <dds-masthead aria-label=\"${ifNonNull(mastheadAssistiveText)}\">\n <dds-skip-to-content\n href=\"${skipToContentHref}\"\n link-assistive-text=\"${skipToContentText}\"></dds-skip-to-content>\n <dds-masthead-menu-button\n button-label-active=\"${ifNonNull(menuButtonAssistiveTextActive)}\"\n button-label-inactive=\"${ifNonNull(menuButtonAssistiveTextInactive)}\"\n ?hide-menu-button=\"${activateSearch}\">\n </dds-masthead-menu-button>\n\n ${this._renderLogo()}\n ${!platform || l1Data\n ? undefined\n : html`\n <dds-top-nav-name href=\"${ifNonNull(platformAltUrl)}\"\n >${platform}</dds-top-nav-name\n >\n `}\n ${(!l1Data &&\n navLinks &&\n html`\n <dds-top-nav\n selected-menu-item=${selectedMenuItem}\n menu-bar-label=\"${ifNonNull(menuBarAssistiveText)}\"\n ?hideNav=\"${activateSearch}\">\n ${this._renderNavItems({\n selectedMenuItem,\n target: NAV_ITEMS_RENDER_TARGET.TOP_NAV,\n hasL1: false,\n })}\n </dds-top-nav>\n `) ||\n undefined}\n ${hasSearch === 'false'\n ? ''\n : html`\n <dds-search-with-typeahead\n ?active=\"${activateSearch}\"\n input-timeout=\"${inputTimeout}\"\n language=\"${ifNonNull(language)}\"\n ?open=\"${openSearchDropdown}\"\n ?searchOpenOnload=\"${activateSearch}\"\n placeholder=\"${ifNonNull(searchPlaceholder)}\"\n .currentSearchResults=\"${ifNonNull(currentSearchResults)}\"\n ?custom-typeahead-api=\"${ifNonNull(customTypeaheadAPI)}\"\n .scopeParameters=\"${ifNonNull(\n scopeParameters\n )}\"></dds-search-with-typeahead>\n `}\n <dds-masthead-global-bar ?has-search-active=${activateSearch}>\n ${hasProfile === 'false'\n ? ''\n : html`\n <dds-masthead-profile ?authenticated=\"${authenticated}\">\n ${profileItems?.map(\n ({ title, url }) =>\n html`\n <dds-masthead-profile-item href=\"${ifNonNull(url)}\"\n >${title}</dds-masthead-profile-item\n >\n `\n )}\n </dds-masthead-profile>\n `}\n </dds-masthead-global-bar>\n ${!l1Data ? undefined : this._renderL1({ selectedMenuItem })}\n <dds-megamenu-overlay></dds-megamenu-overlay>\n </dds-masthead>\n `;\n }\n\n /**\n * The name of the custom event fired when a top nav menu is clicked\n */\n static get eventMegamenuActive() {\n return `${ddsPrefix}-megamenu-top-nav-menu-toggle`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default DDSMastheadComposite;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["components/search-with-typeahead/search-with-typeahead.ts"],"names":[],"mappings":"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","file":"search-with-typeahead.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport ifNonNull from '../../internal/vendor/@carbon/web-components/globals/directives/if-non-null.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { html, property, query } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings.js';\nimport Close20 from '../../internal/vendor/@carbon/web-components/icons/close/20.js';\nimport Search20 from '../../internal/vendor/@carbon/web-components/icons/search/20.js';\nimport BXDropdown, {\n DROPDOWN_KEYBOARD_ACTION,\n} from '../../internal/vendor/@carbon/web-components/components/dropdown/dropdown.js';\nimport BXDropdownItem from '../../internal/vendor/@carbon/web-components/components/dropdown/dropdown-item.js';\nimport HostListener from '../../internal/vendor/@carbon/web-components/globals/decorators/host-listener.js';\nimport HostListenerMixin from '../../internal/vendor/@carbon/web-components/globals/mixins/host-listener.js';\nimport { baseFontSize, breakpoints } from '@carbon/layout';\nimport ddsSettings from '../../internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings';\nimport SearchTypeaheadAPI from '../../internal/vendor/@carbon/ibmdotcom-services/services/SearchTypeahead/SearchTypeahead';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport styles from './search-with-typeahead.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport './search-with-typeahead-item';\nimport { carbonElement as customElement } from '../../internal/vendor/@carbon/web-components/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: ddsPrefix } = ddsSettings;\nconst { prefix } = settings;\nconst gridBreakpoint = parseFloat(breakpoints.lg.width) * baseFontSize;\n\n/**\n * Search with Typeahead\n *\n * @element dds-search-with-typeahead\n * @csspart open-button The button to show the search box.\n * @csspart close-button The button to hide the search box.\n * @csspart search-input The input box for search.\n * @fires dds-search-with-typeahead-beingredirected\n * The custom event fired before the page is being redirected to the search result page.\n * Cancellation of this event stops the user-initiated action of redirection.\n * @fires dds-search-with-typeahead-input\n * The name of the custom event fired after the search content is changed upon a user gesture.\n * @fires dds-search-with-typeahead-toggled\n * The name of the custom event fired after this search box is toggled upon a user gesture.\n */\n@customElement(`${ddsPrefix}-search-with-typeahead`)\nclass DDSSearchWithTypeahead extends HostListenerMixin(\n StableSelectorMixin(BXDropdown)\n) {\n // eslint-disable-next-line class-methods-use-this\n async getResults(searchQuery) {\n const response = await SearchTypeaheadAPI.getResults(\n searchQuery,\n this.appId\n );\n return response.map((res) => res[0]);\n }\n\n /**\n * The formatter for the placeholder text on the search box.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n placeholderFormatter = ({ appId }) => `Search in ${appId}`;\n\n @property({ attribute: 'leadspace-search', type: Boolean })\n leadspaceSearch = false;\n\n @property({ attribute: 'custom-typeahead-api', type: Boolean })\n customTypeaheadAPI = false;\n\n @property()\n currentSearchResults;\n\n @property()\n searchResults;\n\n @property()\n groupedResults;\n\n @property({ attribute: 'scope-parameters' })\n scopeParameters;\n\n @property({ attribute: 'should-remain-open', type: Boolean })\n shouldRemainOpen = false;\n\n @property({ attribute: 'appid', reflect: true })\n appId;\n\n @property({ attribute: 'scope-label', reflect: true })\n scopeLabel;\n\n @property({ attribute: 'scope-value', reflect: true })\n scopeValue;\n\n /**\n * The `<button>` to open the search box.\n */\n @query(`.${prefix}--header__search--search`)\n private _searchButtonNode!: HTMLButtonElement;\n\n /**\n * The `<button>` to open the search box.\n */\n @query(`.${prefix}--header__search--close`)\n private _closeButtonNode!: HTMLButtonElement;\n\n /**\n * The `<input>` of the search box.\n */\n @query(`.${prefix}--header__search--input`)\n private _searchInputNode!: HTMLInputElement;\n\n /**\n * The `<ul>` containing the search suggestions.\n */\n @query(`.react-autosuggest__suggestions-list`)\n private _searchSuggestions!: HTMLElement;\n\n /**\n * Handles hiding search suggestions if focusing on other buttons.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:focusin')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleFocus = async ({ target }: FocusEvent) => {\n if (!this._searchSuggestions) return;\n\n if (target === this._searchInputNode) {\n this._searchSuggestions.removeAttribute('hidden');\n } else if (target === (this._searchButtonNode || this._closeButtonNode)) {\n this._searchSuggestions.setAttribute('hidden', '');\n }\n\n if (target === this._closeButtonNode) {\n this.setAttribute('unfocused', '');\n } else {\n this.removeAttribute('unfocused');\n }\n };\n\n /**\n * Handles `click` event on the close button.\n */\n private async _handleClickCloseButton() {\n if (this.leadspaceSearch) {\n this._closeButtonNode?.classList.add(`${prefix}--header__search--hide`);\n }\n this._handleUserInitiatedToggleActiveState(false);\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClickInner(event: MouseEvent) {\n if (\n (event.target as HTMLElement).closest('.bx--header__search--input') ===\n event.target\n ) {\n this._handleUserInitiatedToggle();\n if (this._searchInputNode.value && this.leadspaceSearch) {\n this._closeButtonNode?.classList.remove(\n `${prefix}--header__search--hide`\n );\n }\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\n if (this.shadowRoot!.contains(item) && !item.hasAttribute('groupTitle')) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handles `click` event on the search button.\n */\n private async _handleClickSearchButton() {\n const { active } = this;\n\n if (active) {\n if (this._searchInputNode.value) {\n this._handleUserInitiatedRedirect();\n }\n } else {\n this._handleUserInitiatedToggleActiveState(true);\n }\n }\n\n /**\n * Handles user-initiated toggling of activated state of the search box.\n *\n * @param active `true` to activate the search box.\n * @param moveFocus\n * `true` to move focus upon toggling, to the input box when activated, to the trigger button when deactivated.\n */\n private async _handleUserInitiatedToggleActiveState(\n active,\n moveFocus = true\n ) {\n if (active === this.active) {\n return;\n }\n const { _searchInputNode: searchInputNode } = this;\n const { eventInput, eventToggle } = this\n .constructor as typeof DDSSearchWithTypeahead;\n if (!active && searchInputNode.value) {\n searchInputNode.value = '';\n this.dispatchEvent(\n new CustomEvent(eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value: '',\n },\n })\n );\n }\n this.active = this.shouldRemainOpen ? true : !this.active;\n this.searchResults = [];\n this.groupedResults = [];\n\n this.dispatchEvent(\n new CustomEvent(eventToggle, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n active,\n },\n })\n );\n await this.updateComplete;\n if (moveFocus) {\n // Does not reuse destructed `searchInputNode` given it's `null` before expanded\n (this.active ? this._searchInputNode : this._searchButtonNode).focus();\n }\n }\n\n /**\n * Prevents key types in the `<input>` causing other keyboard shortcuts in application UI.\n *\n * @param event The event.\n */\n private _handleKeyInput(event: KeyboardEvent) {\n if (\n (this.constructor as typeof DDSSearchWithTypeahead).getAction(\n event.key\n ) === DROPDOWN_KEYBOARD_ACTION.NONE\n ) {\n event.stopPropagation();\n }\n }\n\n /**\n * Handles user-initiated redirect to the search query page.\n *\n * @param [options] The options.\n * @param [options.targetQuery] The query string the search query page should be of.\n * @param [options.targetHref] The href string to be redirected to.\n */\n private _handleUserInitiatedRedirect({\n targetQuery,\n targetHref,\n }: { targetQuery?: string; targetHref?: string } = {}) {\n const { eventBeforeRedirect, eventInput } = this\n .constructor as typeof DDSSearchWithTypeahead;\n const { language, redirectUrl } = this;\n const [primary, country] = language.split('-');\n const tokens = redirectUrl.split('?');\n const base = tokens.shift();\n const searchParams = new URLSearchParams(tokens.join('?'));\n // Setting `this._searchInputNode?.value` as the default value of `targetQuery` seems to cause a Babel bug\n searchParams.append('q', targetQuery ?? this._searchInputNode?.value);\n searchParams.append('lang', primary);\n searchParams.append('cc', country);\n\n this.dispatchEvent(\n new CustomEvent(eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value: targetQuery,\n },\n })\n );\n\n if (this.appId) {\n searchParams.append('scope-domain', 'scope');\n searchParams.append('scope-value', this.scopeValue);\n searchParams.append('scope-type', this.appId);\n\n if (this.scopeLabel) {\n searchParams.append('scope-label', this.scopeLabel ?? '');\n }\n }\n\n const redirectUrlWithSearch = targetHref\n ? `${targetHref}`\n : `${base}?${searchParams.toString()}`;\n if (\n this.dispatchEvent(\n new CustomEvent(eventBeforeRedirect, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n redirectUrl: redirectUrlWithSearch,\n },\n })\n )\n ) {\n this._redirect(redirectUrlWithSearch);\n }\n }\n\n /**\n * Handles component reset if focusing outside.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n super._handleFocusOut(event);\n }\n\n /**\n * Handles search results when using a custom API.\n *\n * @param event The event.\n */\n @HostListener('document:eventCustomResults')\n protected _handleCustomResults = (event: CustomEvent) => {\n if (this.customTypeaheadAPI) {\n [this.searchResults] = event.detail;\n this.groupedResults = event.detail.slice(1);\n }\n };\n\n /**\n * Queries scoped search suggestions.\n *\n * @param event The event.\n */\n @HostListener('document:eventSelectScope')\n protected _handleScopeSelect = (event: CustomEvent) => {\n this.appId = event.detail.appId;\n let targetScope;\n this.scopeParameters.forEach((scope) => {\n if (scope.appId === this.appId) {\n targetScope = scope;\n }\n });\n\n this.scopeValue = Array.isArray(targetScope?.value)\n ? `[${targetScope.value\n .toString()\n .split(',')\n .map((word) => `\"${word.trim()}\"`)\n .join(',')}]`\n : targetScope.value;\n this.scopeLabel = targetScope.label ?? '';\n };\n\n /**\n * Handles `input` event in the search input.\n */\n private _handleInput(event: InputEvent) {\n const { target } = event;\n const { value } = target as HTMLInputElement;\n this.removeAttribute('unfocused');\n\n const items = this.shadowRoot!.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItem\n );\n items.forEach((e) => {\n if (e.hasAttribute('highlighted')) {\n this.setAttribute('unfocused', '');\n }\n });\n\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof DDSSearchWithTypeahead).eventInput,\n {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value,\n },\n }\n )\n );\n this.value = value;\n\n if (!this.customTypeaheadAPI) {\n this.getResults(value).then((res) => {\n this.searchResults = res;\n });\n }\n\n if (value) {\n this.open = true;\n if (this.leadspaceSearch)\n this._closeButtonNode?.classList.remove(\n `${prefix}--header__search--hide`\n );\n }\n\n // accomodate search results box's width with the scope dropdown\n if (\n gridBreakpoint < document.body.clientWidth &&\n this._searchSuggestions &&\n this.scopeParameters\n ) {\n const scopeBarWidth = (\n this.shadowRoot?.querySelector(\n 'dds-scoped-search-dropdown'\n ) as HTMLElement\n ).offsetWidth;\n (this._searchSuggestions?.parentElement as HTMLElement)?.setAttribute(\n 'style',\n `left: ${scopeBarWidth}px; width: calc(100% - ${scopeBarWidth}px);`\n );\n } else {\n (this._searchSuggestions?.parentElement as HTMLElement)?.removeAttribute(\n 'style'\n );\n }\n }\n\n /**\n * Prevents form submission if there is a highlighted item.\n * In such case, `._handleUserInitiatedRedirect()` should have navigated the user to the search result page.\n *\n * @param event The event.\n */\n private _handleSubmit(event: Event) {\n const { eventBeforeRedirect } = this\n .constructor as typeof DDSSearchWithTypeahead;\n const { selectorItemHighlighted } = this.constructor as typeof BXDropdown;\n const highlightedItem = this.shadowRoot!.querySelector(\n selectorItemHighlighted\n ) as BXDropdownItem;\n if (highlightedItem || !this._searchInputNode.value) {\n event.preventDefault();\n }\n if (\n !this.dispatchEvent(\n new CustomEvent(eventBeforeRedirect, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n redirectUrl: this.redirectUrl,\n },\n })\n )\n ) {\n event.preventDefault();\n }\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXDropdownItem) {\n if (item) {\n this._searchInputNode.value = (item as unknown as any).text;\n this._handleUserInitiatedRedirect({\n targetQuery: (item as unknown as any).text,\n targetHref: (item as unknown as any).href,\n });\n }\n }\n\n /**\n * Handler for the `keypress` event on the top-level element in the shadow DOM.\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n {\n const constructor = this.constructor as typeof BXDropdown;\n const highlightedItem = this.shadowRoot!.querySelector(\n constructor.selectorItemHighlighted\n ) as BXDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Redirects the page to the given target.\n *\n * @param target The target URL.\n */\n private _redirect(target) {\n this.ownerDocument!.defaultView!.location.assign(target);\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof DDSSearchWithTypeahead;\n const items = this.shadowRoot!.querySelectorAll(constructor.selectorItem);\n const highlightedItem = this.shadowRoot!.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex = highlightedIndex + direction;\n\n if (items[nextIndex] && items[nextIndex].hasAttribute('groupTitle')) {\n nextIndex += direction;\n }\n\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as BXDropdownItem).highlighted = i === nextIndex;\n });\n\n this.setAttribute('unfocused', '');\n\n const nextItem = items[nextIndex];\n // Using `{ block: 'nearest' }` to prevent scrolling unless scrolling is absolutely necessary.\n // `scrollIntoViewOptions` seems to work in latest Safari despite of MDN/caniuse table.\n // IE falls back to the old behavior.\n nextItem.scrollIntoView({ block: 'nearest' });\n\n // @ts-ignore: TS does not believe nextItem has a text object\n const nextItemText = nextItem.text;\n if (nextItemText) {\n this._assistiveStatusText = nextItemText;\n }\n this.requestUpdate();\n }\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderTriggerContent() {\n const {\n searchPlaceholder,\n searchLabel,\n _handleInput: handleInput,\n _handleKeyInput: handleKeyInput,\n } = this;\n return html`\n <input\n type=\"text\"\n part=\"search-input\"\n class=\"${prefix}--header__search--input\"\n name=\"q\"\n placeholder=\"${searchPlaceholder}\"\n autocomplete=\"off\"\n aria-controls=\"result-list\"\n aria-autocomplete=\"list\"\n aria-label=\"${ifNonNull(searchLabel)}\"\n @input=\"${handleInput}\"\n @keydown=\"${handleKeyInput}\"\n @keypress=\"${handleKeyInput}\" />\n `;\n }\n\n /**\n * Handles `click` event to redirect based on selected item.\n *\n * @param event The event.\n */\n protected _handleClickItem(event: MouseEvent) {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\n if (this.shadowRoot!.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n\n /**\n * @returns The content of the search box.\n */\n private _renderForm() {\n const {\n active,\n language,\n open,\n redirectUrl,\n searchLabel,\n _assistiveStatusText: assistiveStatusText,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSubmit: handleSubmit,\n } = this;\n if (!active) {\n return undefined;\n }\n const [primary, country] = language.split('-');\n const classes = classMap({\n 'react-autosuggest__container': true,\n 'react-autosuggest__suggestions-container--open': open,\n });\n return html`\n <form\n role=\"search\"\n method=\"get\"\n action=\"${redirectUrl}\"\n @submit=\"${handleSubmit}\">\n <input type=\"hidden\" name=\"lang\" value=\"${primary}\" />\n <input type=\"hidden\" name=\"cc\" value=\"${country}\" />\n <input type=\"hidden\" name=\"lnk\" value=\"mhsrch\" />\n ${this.scopeParameters\n ? html`\n <input type=\"hidden\" name=\"scope-domain\" value=\"scope\" />\n <input type=\"hidden\" name=\"scope-type\" value=\"${this.appId}\" />\n <input\n type=\"hidden\"\n name=\"scope-value\"\n value=\"${this.scopeValue}\" />\n <input\n type=\"hidden\"\n name=\"scope-label\"\n value=\"${this.scopeLabel}\" />\n `\n : ''}\n\n <div\n role=\"combobox\"\n class=\"${classes}\"\n aria-haspopup=\"listbox\"\n aria-owns=\"result-list\"\n aria-expanded=\"${Boolean(this.active)}\"\n aria-label=\"${ifNonNull(searchLabel)}\"\n @click=${handleClickInner}\n @keydown=\"${handleKeydownInner}\"\n @keypress=\"${handleKeypressInner}\">\n ${this.scopeParameters\n ? html`\n <dds-scoped-search-dropdown value=\"${this.appId}\">\n ${this.scopeParameters.map(\n (scope) => html`\n <bx-dropdown-item value=\"${scope.appId}\"\n >${scope.name}</bx-dropdown-item\n >\n `\n )}\n </dds-scoped-search-dropdown>\n\n <dds-scoped-search-dropdown-mobile value=\"${this.appId}\">\n ${this.scopeParameters.map(\n (scope) => html`\n <bx-select-item\n label=\"${scope.name}\"\n value=\"${scope.appId}\"\n >${scope.name}</bx-select-item\n >\n `\n )}\n </dds-scoped-search-dropdown-mobile>\n `\n : ``}\n ${this._renderTriggerContent()}\n ${!this.leadspaceSearch\n ? html`\n <div\n id=\"result-list\"\n class=\"react-autosuggest__suggestions-container\">\n <ul\n role=\"listbox\"\n class=\"${ddsPrefix}-ce__search__list react-autosuggest__suggestions-list\">\n ${this.searchResults &&\n this.searchResults.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item}\"></dds-search-with-typeahead-item>\n `\n )}\n ${this.groupedResults &&\n this.groupedResults.map(\n (group) =>\n html`\n <dds-search-with-typeahead-item\n groupTitle\n text=\"${group.title}\"></dds-search-with-typeahead-item>\n ${group.items.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item.name}\"\n href=\"${item.href}\"></dds-search-with-typeahead-item>\n `\n )}\n `\n )}\n </ul>\n </div>\n `\n : ``}\n </div>\n </form>\n <div\n class=\"${prefix}--assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\">\n ${assistiveStatusText}\n </div>\n `;\n }\n\n /**\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n // eslint-disable-next-line class-methods-use-this\n protected _selectionShouldChange() {\n return true;\n }\n\n /**\n * `true` if this the search box should represent its active state.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The assistive text for the button to close the search box.\n */\n @property({ attribute: 'close-search-button-assistive-text' })\n closeSearchButtonAssistiveText = 'Clear input';\n\n /**\n * The language embedded in the inner form.\n */\n @property()\n language = 'en-US';\n\n /**\n * The assistive text for the button to open the search box.\n */\n @property({ attribute: 'open-search-button-assistive-text' })\n openSearchButtonAssistiveText = 'Open IBM search field';\n\n /**\n * The assistive text for the button to perform search.\n */\n @property({ attribute: 'perform-search-button-assistive-text' })\n performSearchButtonAssistiveText = 'Search all of IBM';\n\n /**\n * Value to display when the input has an empty `value`.\n */\n @property()\n searchPlaceholder = 'Search all of IBM';\n\n /**\n * The redirect URL when a user selects a search suggestion.\n */\n @property({ attribute: 'redirect-url' })\n redirectUrl = 'https://www.ibm.com/search?lnk=mhsrch';\n\n /**\n * The `aria-label` attribute for the search input.\n */\n @property({ attribute: 'search-label' })\n searchLabel = 'IBM search field';\n\n /**\n * The shadow slot this search UI should be in.\n */\n @property({ reflect: true })\n slot = 'search';\n\n /**\n * `true` to activate the search box on page load.\n */\n @property({ type: Boolean, attribute: 'search-open-on-load' })\n searchOpenOnload = false;\n\n /**\n * The input value.\n */\n get searchQueryString() {\n return this._searchInputNode?.value ?? '';\n }\n\n /**\n * Returns query param `q` for search input if exists. Only available when searchOpenOnload is `true`\n */\n private _setSearchParam() {\n const { _searchInputNode: searchInputNode } = this;\n const URLParams = new URLSearchParams(\n this.ownerDocument!.defaultView!.location.search\n );\n const searchParam: any = this.searchOpenOnload ? URLParams.get('q') : '';\n if (searchParam) {\n searchInputNode.value = searchParam;\n }\n }\n\n firstUpdated() {\n this._setSearchParam();\n if (this.leadspaceSearch) {\n this.setAttribute('should-remain-open', '');\n this.setAttribute('active', '');\n }\n\n if (!this.appId && this.scopeParameters) {\n this.appId = 'all';\n this.redirectUrl = 'https://www.ibm.com/search/scoped';\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('searchResults')) {\n const titleElements = this.shadowRoot?.querySelectorAll(\n 'dds-search-with-typeahead-item[groupTitle]'\n );\n titleElements?.forEach((e) => {\n e.previousElementSibling?.setAttribute('lastBeforeGroup', '');\n });\n }\n\n if (changedProperties.has('appId')) {\n if (\n gridBreakpoint < document.body.clientWidth &&\n this._searchSuggestions &&\n this.scopeParameters\n ) {\n const scopeBarWidth = (\n this.shadowRoot?.querySelector(\n 'dds-scoped-search-dropdown'\n ) as HTMLElement\n ).offsetWidth;\n (this._searchSuggestions?.parentElement as HTMLElement)?.setAttribute(\n 'style',\n `left: ${scopeBarWidth}px; width: calc(100% - ${scopeBarWidth}px);`\n );\n } else {\n (\n this._searchSuggestions?.parentElement as HTMLElement\n )?.removeAttribute('style');\n }\n\n if (!this.customTypeaheadAPI) {\n this.getResults(this.value).then((res) => {\n this.searchResults = res;\n });\n }\n\n const newPlaceholder = this.placeholderFormatter({\n appId: this.scopeParameters.filter(\n (e) => e.value === `${this.appId}`\n )[0]?.name,\n });\n this.setAttribute('placeholder', newPlaceholder);\n this.performSearchButtonAssistiveText = newPlaceholder;\n }\n }\n\n render() {\n const {\n active,\n closeSearchButtonAssistiveText,\n openSearchButtonAssistiveText,\n performSearchButtonAssistiveText,\n _handleClickCloseButton: handleClickCloseButton,\n _handleClickSearchButton: handleClickSearchButton,\n _handleClickItem: handleClickItem,\n } = this;\n const searchButtonAssistiveText = !active\n ? openSearchButtonAssistiveText\n : performSearchButtonAssistiveText;\n return html`\n ${!this.leadspaceSearch\n ? html`\n ${this._renderForm()}\n <div class=\"${prefix}--header__search--actions\">\n <button\n type=\"button\"\n part=\"open-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--search\"\n aria-label=\"${searchButtonAssistiveText}\"\n @click=\"${handleClickSearchButton}\">\n ${Search20()}\n </button>\n <button\n type=\"button\"\n part=\"close-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--close\"\n aria-label=\"${closeSearchButtonAssistiveText}\"\n @click=\"${handleClickCloseButton}\">\n ${Close20()}\n </button>\n </div>\n `\n : html`\n <div class=\"${prefix}--header__search--actions\">\n ${Search20({\n part: 'search-icon',\n class: `${prefix}--search-magnifier-icon`,\n role: 'img',\n })}\n ${this._renderForm()}\n <button\n type=\"button\"\n part=\"close-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--close ${this\n .value.length === 0\n ? `${prefix}--header__search--hide`\n : ''}\"\n aria-label=\"${closeSearchButtonAssistiveText}\"\n @click=\"${handleClickCloseButton}\">\n ${Close20()}\n </button>\n </div>\n <div\n id=\"result-list\"\n class=\"react-autosuggest__suggestions-container\">\n <ul\n role=\"listbox\"\n class=\"${ddsPrefix}-ce__search__list react-autosuggest__suggestions-list\">\n ${this.searchResults &&\n this.searchResults.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item}\"\n @click=${handleClickItem}></dds-search-with-typeahead-item>\n `\n )}\n </ul>\n </div>\n `}\n `;\n }\n\n /**\n * A selector that will return highlighted search result items.\n */\n static get selectorItemHighlighted() {\n return `${ddsPrefix}-search-with-typeahead-item[highlighted]`;\n }\n\n /**\n * A selector that will return search result items.\n */\n static get selectorItem() {\n return `${ddsPrefix}-search-with-typeahead-item`;\n }\n\n /**\n * The name of the custom event fired before the page is being redirected to the search result page.\n * Cancellation of this event stops the user-initiated action of redirection.\n */\n static get eventBeforeRedirect() {\n return `${ddsPrefix}-search-with-typeahead-beingredirected`;\n }\n\n /**\n * The name of the custom event fired after the search content is changed upon a user gesture.\n */\n static get eventInput() {\n return `${ddsPrefix}-search-with-typeahead-input`;\n }\n\n /**\n * The name of the custom event captured to retrieve the new search scope.\n */\n static get eventSelectScope() {\n return `${prefix}-select-selected`;\n }\n\n /**\n * The name of the custom event captured to retrieve the custom typeahead API results.\n */\n static get eventCustomResults() {\n return `${ddsPrefix}-custom-typeahead-api-results`;\n }\n\n /**\n * The name of the custom event fired after this search box is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${ddsPrefix}-search-with-typeahead-toggled`;\n }\n\n static get stableSelector() {\n return `${ddsPrefix}--search-with-typeahead`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default DDSSearchWithTypeahead;\n"]}
1
+ {"version":3,"sources":["components/search-with-typeahead/search-with-typeahead.ts"],"names":[],"mappings":"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","file":"search-with-typeahead.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport ifNonNull from '../../internal/vendor/@carbon/web-components/globals/directives/if-non-null.js';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { html, property, query } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings.js';\nimport Close20 from '../../internal/vendor/@carbon/web-components/icons/close/20.js';\nimport Search20 from '../../internal/vendor/@carbon/web-components/icons/search/20.js';\nimport BXDropdown, {\n DROPDOWN_KEYBOARD_ACTION,\n} from '../../internal/vendor/@carbon/web-components/components/dropdown/dropdown.js';\nimport BXDropdownItem from '../../internal/vendor/@carbon/web-components/components/dropdown/dropdown-item.js';\nimport HostListener from '../../internal/vendor/@carbon/web-components/globals/decorators/host-listener.js';\nimport HostListenerMixin from '../../internal/vendor/@carbon/web-components/globals/mixins/host-listener.js';\nimport { baseFontSize, breakpoints } from '@carbon/layout';\nimport ddsSettings from '../../internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings';\nimport SearchTypeaheadAPI from '../../internal/vendor/@carbon/ibmdotcom-services/services/SearchTypeahead/SearchTypeahead';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport styles from './search-with-typeahead.scss';\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport './search-with-typeahead-item';\nimport { carbonElement as customElement } from '../../internal/vendor/@carbon/web-components/globals/decorators/carbon-element.js';\n\nconst { stablePrefix: ddsPrefix } = ddsSettings;\nconst { prefix } = settings;\nconst gridBreakpoint = parseFloat(breakpoints.lg.width) * baseFontSize;\n\n/**\n * Search with Typeahead\n *\n * @element dds-search-with-typeahead\n * @csspart open-button The button to show the search box.\n * @csspart close-button The button to hide the search box.\n * @csspart search-input The input box for search.\n * @fires dds-search-with-typeahead-beingredirected\n * The custom event fired before the page is being redirected to the search result page.\n * Cancellation of this event stops the user-initiated action of redirection.\n * @fires dds-search-with-typeahead-input\n * The name of the custom event fired after the search content is changed upon a user gesture.\n * @fires dds-search-with-typeahead-toggled\n * The name of the custom event fired after this search box is toggled upon a user gesture.\n */\n@customElement(`${ddsPrefix}-search-with-typeahead`)\nclass DDSSearchWithTypeahead extends HostListenerMixin(\n StableSelectorMixin(BXDropdown)\n) {\n // eslint-disable-next-line class-methods-use-this\n async getResults(searchQuery) {\n const response = await SearchTypeaheadAPI.getResults(\n searchQuery,\n this.appId\n );\n return response.map((res) => res[0]);\n }\n\n /**\n * The formatter for the placeholder text on the search box.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n placeholderFormatter = ({ appId }) => `Search in ${appId}`;\n\n @property({ attribute: 'leadspace-search', type: Boolean })\n leadspaceSearch = false;\n\n @property({ attribute: 'custom-typeahead-api', type: Boolean })\n customTypeaheadAPI = false;\n\n @property()\n currentSearchResults;\n\n @property()\n searchResults;\n\n @property()\n groupedResults;\n\n @property({ attribute: 'scope-parameters' })\n scopeParameters;\n\n @property({ attribute: 'should-remain-open', type: Boolean })\n shouldRemainOpen = false;\n\n @property({ attribute: 'appid', reflect: true })\n appId;\n\n @property({ attribute: 'scope-label', reflect: true })\n scopeLabel;\n\n @property({ attribute: 'scope-value', reflect: true })\n scopeValue;\n\n /**\n * The `<button>` to open the search box.\n */\n @query(`.${prefix}--header__search--search`)\n private _searchButtonNode!: HTMLButtonElement;\n\n /**\n * The `<button>` to open the search box.\n */\n @query(`.${prefix}--header__search--close`)\n private _closeButtonNode!: HTMLButtonElement;\n\n /**\n * The `<input>` of the search box.\n */\n @query(`.${prefix}--header__search--input`)\n private _searchInputNode!: HTMLInputElement;\n\n /**\n * The `<ul>` containing the search suggestions.\n */\n @query(`.react-autosuggest__suggestions-list`)\n private _searchSuggestions!: HTMLElement;\n\n /**\n * Handles hiding search suggestions if focusing on other buttons.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:focusin')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleFocus = async ({ target }: FocusEvent) => {\n if (!this._searchSuggestions) return;\n\n if (target === this._searchInputNode) {\n this._searchSuggestions.removeAttribute('hidden');\n } else if (target === (this._searchButtonNode || this._closeButtonNode)) {\n this._searchSuggestions.setAttribute('hidden', '');\n }\n\n if (target === this._closeButtonNode) {\n this.setAttribute('unfocused', '');\n } else {\n this.removeAttribute('unfocused');\n }\n };\n\n /**\n * Handles `click` event on the close button.\n */\n private async _handleClickCloseButton() {\n if (this.leadspaceSearch) {\n this._closeButtonNode?.classList.add(`${prefix}--header__search--hide`);\n }\n this._handleUserInitiatedToggleActiveState(false);\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClickInner(event: MouseEvent) {\n if (\n (event.target as HTMLElement).closest('.bx--header__search--input') ===\n event.target\n ) {\n this._handleUserInitiatedToggle();\n if (this._searchInputNode.value && this.leadspaceSearch) {\n this._closeButtonNode?.classList.remove(\n `${prefix}--header__search--hide`\n );\n }\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\n if (this.shadowRoot!.contains(item) && !item.hasAttribute('groupTitle')) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handles `click` event on the search button.\n */\n private async _handleClickSearchButton() {\n const { active } = this;\n\n if (active) {\n if (this._searchInputNode.value) {\n this._handleUserInitiatedRedirect();\n }\n } else {\n this._handleUserInitiatedToggleActiveState(true);\n }\n }\n\n /**\n * Handles user-initiated toggling of activated state of the search box.\n *\n * @param active `true` to activate the search box.\n * @param moveFocus\n * `true` to move focus upon toggling, to the input box when activated, to the trigger button when deactivated.\n */\n private async _handleUserInitiatedToggleActiveState(\n active,\n moveFocus = true\n ) {\n if (active === this.active) {\n return;\n }\n const { _searchInputNode: searchInputNode } = this;\n const { eventInput, eventToggle } = this\n .constructor as typeof DDSSearchWithTypeahead;\n if (!active && searchInputNode.value) {\n searchInputNode.value = '';\n this.dispatchEvent(\n new CustomEvent(eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value: '',\n },\n })\n );\n }\n this.active = this.shouldRemainOpen ? true : !this.active;\n this.searchResults = [];\n this.groupedResults = [];\n\n this.dispatchEvent(\n new CustomEvent(eventToggle, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n active,\n },\n })\n );\n await this.updateComplete;\n if (moveFocus) {\n // Does not reuse destructed `searchInputNode` given it's `null` before expanded\n (this.active ? this._searchInputNode : this._searchButtonNode).focus();\n }\n }\n\n /**\n * Prevents key types in the `<input>` causing other keyboard shortcuts in application UI.\n *\n * @param event The event.\n */\n private _handleKeyInput(event: KeyboardEvent) {\n if (\n (this.constructor as typeof DDSSearchWithTypeahead).getAction(\n event.key\n ) === DROPDOWN_KEYBOARD_ACTION.NONE\n ) {\n event.stopPropagation();\n }\n }\n\n /**\n * Handles user-initiated redirect to the search query page.\n *\n * @param [options] The options.\n * @param [options.targetQuery] The query string the search query page should be of.\n * @param [options.targetHref] The href string to be redirected to.\n */\n private _handleUserInitiatedRedirect({\n targetQuery,\n targetHref,\n }: { targetQuery?: string; targetHref?: string } = {}) {\n const { eventBeforeRedirect, eventInput } = this\n .constructor as typeof DDSSearchWithTypeahead;\n const { language, redirectUrl } = this;\n const [primary, country] = language.split('-');\n const tokens = redirectUrl.split('?');\n const base = tokens.shift();\n const searchParams = new URLSearchParams(tokens.join('?'));\n // Setting `this._searchInputNode?.value` as the default value of `targetQuery` seems to cause a Babel bug\n searchParams.append('q', targetQuery ?? this._searchInputNode?.value);\n searchParams.append('lang', primary);\n searchParams.append('cc', country);\n\n this.dispatchEvent(\n new CustomEvent(eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value: targetQuery,\n },\n })\n );\n\n if (this.appId) {\n searchParams.append('scope-domain', 'scope');\n searchParams.append('scope-value', this.scopeValue);\n searchParams.append('scope-type', this.appId);\n\n if (this.scopeLabel) {\n searchParams.append('scope-label', this.scopeLabel ?? '');\n }\n }\n\n const redirectUrlWithSearch = targetHref\n ? `${targetHref}`\n : `${base}?${searchParams.toString()}`;\n if (\n this.dispatchEvent(\n new CustomEvent(eventBeforeRedirect, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n redirectUrl: redirectUrlWithSearch,\n },\n })\n )\n ) {\n this._redirect(redirectUrlWithSearch);\n }\n }\n\n /**\n * Handles component reset if focusing outside.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n super._handleFocusOut(event);\n }\n\n /**\n * Handles search results when using a custom API.\n *\n * @param event The event.\n */\n @HostListener('document:eventCustomResults')\n protected _handleCustomResults = (event: CustomEvent) => {\n if (this.customTypeaheadAPI) {\n [this.searchResults] = event.detail;\n this.groupedResults = event.detail.slice(1);\n }\n };\n\n /**\n * Queries scoped search suggestions.\n *\n * @param event The event.\n */\n @HostListener('document:eventSelectScope')\n protected _handleScopeSelect = (event: CustomEvent) => {\n this.appId = event.detail.appId;\n let targetScope;\n this.scopeParameters.forEach((scope) => {\n if (scope.appId === this.appId) {\n targetScope = scope;\n }\n });\n\n this.scopeValue = Array.isArray(targetScope?.value)\n ? `[${targetScope.value\n .toString()\n .split(',')\n .map((word) => `\"${word.trim()}\"`)\n .join(',')}]`\n : targetScope.value;\n this.scopeLabel = targetScope.label ?? '';\n };\n\n /**\n * Handles `input` event in the search input.\n */\n private _handleInput(event: InputEvent) {\n const { target } = event;\n const { value } = target as HTMLInputElement;\n this.removeAttribute('unfocused');\n\n const items = this.shadowRoot!.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItem\n );\n items.forEach((e) => {\n if (e.hasAttribute('highlighted')) {\n this.setAttribute('unfocused', '');\n }\n });\n\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof DDSSearchWithTypeahead).eventInput,\n {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value,\n },\n }\n )\n );\n this.value = value;\n\n if (!this.customTypeaheadAPI) {\n this.getResults(value).then((res) => {\n this.searchResults = res;\n });\n }\n\n if (value) {\n this.open = true;\n if (this.leadspaceSearch)\n this._closeButtonNode?.classList.remove(\n `${prefix}--header__search--hide`\n );\n }\n\n // accomodate search results box's width with the scope dropdown\n if (\n gridBreakpoint < document.body.clientWidth &&\n this._searchSuggestions &&\n this.scopeParameters\n ) {\n const scopeBarWidth = (\n this.shadowRoot?.querySelector(\n 'dds-scoped-search-dropdown'\n ) as HTMLElement\n ).offsetWidth;\n (this._searchSuggestions?.parentElement as HTMLElement)?.setAttribute(\n 'style',\n `left: ${scopeBarWidth}px; width: calc(100% - ${scopeBarWidth}px);`\n );\n } else {\n (this._searchSuggestions?.parentElement as HTMLElement)?.removeAttribute(\n 'style'\n );\n }\n }\n\n /**\n * Prevents form submission if there is a highlighted item.\n * In such case, `._handleUserInitiatedRedirect()` should have navigated the user to the search result page.\n *\n * @param event The event.\n */\n private _handleSubmit(event: Event) {\n const { eventBeforeRedirect } = this\n .constructor as typeof DDSSearchWithTypeahead;\n const { selectorItemHighlighted } = this.constructor as typeof BXDropdown;\n const highlightedItem = this.shadowRoot!.querySelector(\n selectorItemHighlighted\n ) as BXDropdownItem;\n if (highlightedItem || !this._searchInputNode.value) {\n event.preventDefault();\n }\n if (\n !this.dispatchEvent(\n new CustomEvent(eventBeforeRedirect, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n redirectUrl: this.redirectUrl,\n },\n })\n )\n ) {\n event.preventDefault();\n }\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXDropdownItem) {\n if (item) {\n this._searchInputNode.value = (item as unknown as any).text;\n this._handleUserInitiatedRedirect({\n targetQuery: (item as unknown as any).text,\n targetHref: (item as unknown as any).href,\n });\n }\n }\n\n /**\n * Handler for the `keypress` event on the top-level element in the shadow DOM.\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n {\n const constructor = this.constructor as typeof BXDropdown;\n const highlightedItem = this.shadowRoot!.querySelector(\n constructor.selectorItemHighlighted\n ) as BXDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Redirects the page to the given target.\n *\n * @param target The target URL.\n */\n private _redirect(target) {\n this.ownerDocument!.defaultView!.location.assign(target);\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof DDSSearchWithTypeahead;\n const items = this.shadowRoot!.querySelectorAll(constructor.selectorItem);\n const highlightedItem = this.shadowRoot!.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex = highlightedIndex + direction;\n\n if (items[nextIndex] && items[nextIndex].hasAttribute('groupTitle')) {\n nextIndex += direction;\n }\n\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as BXDropdownItem).highlighted = i === nextIndex;\n });\n\n this.setAttribute('unfocused', '');\n\n const nextItem = items[nextIndex];\n // Using `{ block: 'nearest' }` to prevent scrolling unless scrolling is absolutely necessary.\n // `scrollIntoViewOptions` seems to work in latest Safari despite of MDN/caniuse table.\n // IE falls back to the old behavior.\n nextItem.scrollIntoView({ block: 'nearest' });\n\n // @ts-ignore: TS does not believe nextItem has a text object\n const nextItemText = nextItem.text;\n if (nextItemText) {\n this._assistiveStatusText = nextItemText;\n }\n this.requestUpdate();\n }\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderTriggerContent() {\n const {\n searchPlaceholder,\n searchLabel,\n _handleInput: handleInput,\n _handleKeyInput: handleKeyInput,\n } = this;\n return html`\n <input\n type=\"text\"\n part=\"search-input\"\n class=\"${prefix}--header__search--input\"\n name=\"q\"\n placeholder=\"${searchPlaceholder}\"\n autocomplete=\"off\"\n aria-controls=\"result-list\"\n aria-autocomplete=\"list\"\n aria-label=\"${ifNonNull(searchLabel)}\"\n @input=\"${handleInput}\"\n @keydown=\"${handleKeyInput}\"\n @keypress=\"${handleKeyInput}\" />\n `;\n }\n\n /**\n * Handles `click` event to redirect based on selected item.\n *\n * @param event The event.\n */\n protected _handleClickItem(event: MouseEvent) {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\n if (this.shadowRoot!.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n\n /**\n * @returns The content of the search box.\n */\n private _renderForm() {\n const {\n active,\n language,\n open,\n redirectUrl,\n searchLabel,\n _assistiveStatusText: assistiveStatusText,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSubmit: handleSubmit,\n } = this;\n if (!active) {\n return undefined;\n }\n const [primary, country] = language.split('-');\n const classes = classMap({\n 'react-autosuggest__container': true,\n 'react-autosuggest__suggestions-container--open': open,\n });\n return html`\n <form\n role=\"search\"\n method=\"get\"\n action=\"${redirectUrl}\"\n @submit=\"${handleSubmit}\">\n <input type=\"hidden\" name=\"lang\" value=\"${primary}\" />\n <input type=\"hidden\" name=\"cc\" value=\"${country}\" />\n <input type=\"hidden\" name=\"lnk\" value=\"mhsrch\" />\n ${this.scopeParameters\n ? html`\n <input type=\"hidden\" name=\"scope-domain\" value=\"scope\" />\n <input type=\"hidden\" name=\"scope-type\" value=\"${this.appId}\" />\n <input\n type=\"hidden\"\n name=\"scope-value\"\n value=\"${this.scopeValue}\" />\n <input\n type=\"hidden\"\n name=\"scope-label\"\n value=\"${this.scopeLabel}\" />\n `\n : ''}\n\n <div\n role=\"combobox\"\n class=\"${classes}\"\n aria-haspopup=\"listbox\"\n aria-owns=\"result-list\"\n aria-expanded=\"${Boolean(this.active)}\"\n aria-label=\"${ifNonNull(searchLabel)}\"\n @click=${handleClickInner}\n @keydown=\"${handleKeydownInner}\"\n @keypress=\"${handleKeypressInner}\">\n ${this.scopeParameters\n ? html`\n <dds-scoped-search-dropdown value=\"${this.appId}\">\n ${this.scopeParameters.map(\n (scope) => html`\n <bx-dropdown-item value=\"${scope.appId}\"\n >${scope.name}</bx-dropdown-item\n >\n `\n )}\n </dds-scoped-search-dropdown>\n\n <dds-scoped-search-dropdown-mobile value=\"${this.appId}\">\n ${this.scopeParameters.map(\n (scope) => html`\n <bx-select-item\n label=\"${scope.name}\"\n value=\"${scope.appId}\"\n >${scope.name}</bx-select-item\n >\n `\n )}\n </dds-scoped-search-dropdown-mobile>\n `\n : ``}\n ${this._renderTriggerContent()}\n ${!this.leadspaceSearch\n ? html`\n <div\n id=\"result-list\"\n class=\"react-autosuggest__suggestions-container\">\n <ul\n role=\"listbox\"\n class=\"${ddsPrefix}-ce__search__list react-autosuggest__suggestions-list\">\n ${this.searchResults &&\n this.searchResults.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item}\"></dds-search-with-typeahead-item>\n `\n )}\n ${this.groupedResults &&\n this.groupedResults.map(\n (group) =>\n html`\n <dds-search-with-typeahead-item\n groupTitle\n text=\"${group.title}\"></dds-search-with-typeahead-item>\n ${group.items.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item.name}\"\n href=\"${item.href}\"></dds-search-with-typeahead-item>\n `\n )}\n `\n )}\n </ul>\n </div>\n `\n : ``}\n </div>\n </form>\n <div\n class=\"${prefix}--assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\">\n ${assistiveStatusText}\n </div>\n `;\n }\n\n /**\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n // eslint-disable-next-line class-methods-use-this\n protected _selectionShouldChange() {\n return true;\n }\n\n /**\n * `true` if this the search box should represent its active state.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The assistive text for the button to close the search box.\n */\n @property({ attribute: 'close-search-button-assistive-text' })\n closeSearchButtonAssistiveText = 'Clear input';\n\n /**\n * The language embedded in the inner form.\n */\n @property()\n language = 'en-US';\n\n /**\n * The assistive text for the button to open the search box.\n */\n @property({ attribute: 'open-search-button-assistive-text' })\n openSearchButtonAssistiveText = 'Open IBM search field';\n\n /**\n * The assistive text for the button to perform search.\n */\n @property({ attribute: 'perform-search-button-assistive-text' })\n performSearchButtonAssistiveText = 'Search all of IBM';\n\n /**\n * Value to display when the input has an empty `value`.\n */\n @property({ attribute: 'placeholder', reflect: true })\n searchPlaceholder = 'Search all of IBM';\n\n /**\n * The redirect URL when a user selects a search suggestion.\n */\n @property({ attribute: 'redirect-url' })\n redirectUrl = 'https://www.ibm.com/search?lnk=mhsrch';\n\n /**\n * The `aria-label` attribute for the search input.\n */\n @property({ attribute: 'search-label' })\n searchLabel = 'IBM search field';\n\n /**\n * The shadow slot this search UI should be in.\n */\n @property({ reflect: true })\n slot = 'search';\n\n /**\n * `true` to activate the search box on page load.\n */\n @property({ type: Boolean, attribute: 'search-open-on-load' })\n searchOpenOnload = false;\n\n /**\n * The input value.\n */\n get searchQueryString() {\n return this._searchInputNode?.value ?? '';\n }\n\n /**\n * Returns query param `q` for search input if exists. Only available when searchOpenOnload is `true`\n */\n private _setSearchParam() {\n const { _searchInputNode: searchInputNode } = this;\n const URLParams = new URLSearchParams(\n this.ownerDocument!.defaultView!.location.search\n );\n const searchParam: any = this.searchOpenOnload ? URLParams.get('q') : '';\n if (searchParam) {\n searchInputNode.value = searchParam;\n }\n }\n\n firstUpdated() {\n this._setSearchParam();\n if (this.leadspaceSearch) {\n this.setAttribute('should-remain-open', '');\n this.setAttribute('active', '');\n }\n\n if (!this.appId && this.scopeParameters) {\n this.appId = 'all';\n this.redirectUrl = 'https://www.ibm.com/search/scoped';\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('searchResults')) {\n const titleElements = this.shadowRoot?.querySelectorAll(\n 'dds-search-with-typeahead-item[groupTitle]'\n );\n titleElements?.forEach((e) => {\n e.previousElementSibling?.setAttribute('lastBeforeGroup', '');\n });\n }\n\n if (changedProperties.has('appId')) {\n if (\n gridBreakpoint < document.body.clientWidth &&\n this._searchSuggestions &&\n this.scopeParameters\n ) {\n const scopeBarWidth = (\n this.shadowRoot?.querySelector(\n 'dds-scoped-search-dropdown'\n ) as HTMLElement\n ).offsetWidth;\n (this._searchSuggestions?.parentElement as HTMLElement)?.setAttribute(\n 'style',\n `left: ${scopeBarWidth}px; width: calc(100% - ${scopeBarWidth}px);`\n );\n } else {\n (\n this._searchSuggestions?.parentElement as HTMLElement\n )?.removeAttribute('style');\n }\n\n if (!this.customTypeaheadAPI) {\n this.getResults(this.value).then((res) => {\n this.searchResults = res;\n });\n }\n\n const newPlaceholder = this.placeholderFormatter({\n appId: this.scopeParameters.filter(\n (e) => e.value === `${this.appId}`\n )[0]?.name,\n });\n this.setAttribute('placeholder', newPlaceholder);\n this.performSearchButtonAssistiveText = newPlaceholder;\n }\n }\n\n render() {\n const {\n active,\n closeSearchButtonAssistiveText,\n openSearchButtonAssistiveText,\n performSearchButtonAssistiveText,\n _handleClickCloseButton: handleClickCloseButton,\n _handleClickSearchButton: handleClickSearchButton,\n _handleClickItem: handleClickItem,\n } = this;\n const searchButtonAssistiveText = !active\n ? openSearchButtonAssistiveText\n : performSearchButtonAssistiveText;\n return html`\n ${!this.leadspaceSearch\n ? html`\n ${this._renderForm()}\n <div class=\"${prefix}--header__search--actions\">\n <button\n type=\"button\"\n part=\"open-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--search\"\n aria-label=\"${searchButtonAssistiveText}\"\n @click=\"${handleClickSearchButton}\">\n ${Search20()}\n </button>\n <button\n type=\"button\"\n part=\"close-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--close\"\n aria-label=\"${closeSearchButtonAssistiveText}\"\n @click=\"${handleClickCloseButton}\">\n ${Close20()}\n </button>\n </div>\n `\n : html`\n <div class=\"${prefix}--header__search--actions\">\n ${Search20({\n part: 'search-icon',\n class: `${prefix}--search-magnifier-icon`,\n role: 'img',\n })}\n ${this._renderForm()}\n <button\n type=\"button\"\n part=\"close-button\"\n class=\"${prefix}--header__action ${prefix}--header__search--close ${this\n .value.length === 0\n ? `${prefix}--header__search--hide`\n : ''}\"\n aria-label=\"${closeSearchButtonAssistiveText}\"\n @click=\"${handleClickCloseButton}\">\n ${Close20()}\n </button>\n </div>\n <div\n id=\"result-list\"\n class=\"react-autosuggest__suggestions-container\">\n <ul\n role=\"listbox\"\n class=\"${ddsPrefix}-ce__search__list react-autosuggest__suggestions-list\">\n ${this.searchResults &&\n this.searchResults.map(\n (item) =>\n html`\n <dds-search-with-typeahead-item\n text=\"${item}\"\n @click=${handleClickItem}></dds-search-with-typeahead-item>\n `\n )}\n </ul>\n </div>\n `}\n `;\n }\n\n /**\n * A selector that will return highlighted search result items.\n */\n static get selectorItemHighlighted() {\n return `${ddsPrefix}-search-with-typeahead-item[highlighted]`;\n }\n\n /**\n * A selector that will return search result items.\n */\n static get selectorItem() {\n return `${ddsPrefix}-search-with-typeahead-item`;\n }\n\n /**\n * The name of the custom event fired before the page is being redirected to the search result page.\n * Cancellation of this event stops the user-initiated action of redirection.\n */\n static get eventBeforeRedirect() {\n return `${ddsPrefix}-search-with-typeahead-beingredirected`;\n }\n\n /**\n * The name of the custom event fired after the search content is changed upon a user gesture.\n */\n static get eventInput() {\n return `${ddsPrefix}-search-with-typeahead-input`;\n }\n\n /**\n * The name of the custom event captured to retrieve the new search scope.\n */\n static get eventSelectScope() {\n return `${prefix}-select-selected`;\n }\n\n /**\n * The name of the custom event captured to retrieve the custom typeahead API results.\n */\n static get eventCustomResults() {\n return `${ddsPrefix}-custom-typeahead-api-results`;\n }\n\n /**\n * The name of the custom event fired after this search box is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${ddsPrefix}-search-with-typeahead-toggled`;\n }\n\n static get stableSelector() {\n return `${ddsPrefix}--search-with-typeahead`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\n/* @__GENERATE_REACT_CUSTOM_ELEMENT_TYPE__ */\nexport default DDSSearchWithTypeahead;\n"]}
@@ -879,7 +879,10 @@ var DDSSearchWithTypeahead = (0, _decorate2["default"])([(0, _carbonElement.carb
879
879
  }
880
880
  }, {
881
881
  kind: "field",
882
- decorators: [(0, _litElement.property)()],
882
+ decorators: [(0, _litElement.property)({
883
+ attribute: 'placeholder',
884
+ reflect: true
885
+ })],
883
886
  key: "searchPlaceholder",
884
887
  value: function value() {
885
888
  return 'Search all of IBM';