@internetarchive/ia-topnav 2.0.0 → 2.0.1

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 (52) hide show
  1. package/dist/src/data/menus.js.map +1 -1
  2. package/dist/src/dropdown-menu.d.ts +3 -4
  3. package/dist/src/dropdown-menu.js +33 -40
  4. package/dist/src/dropdown-menu.js.map +1 -1
  5. package/dist/src/ia-topnav.d.ts +3 -0
  6. package/dist/src/ia-topnav.js +13 -3
  7. package/dist/src/ia-topnav.js.map +1 -1
  8. package/dist/src/login-button.d.ts +3 -0
  9. package/dist/src/login-button.js +11 -1
  10. package/dist/src/login-button.js.map +1 -1
  11. package/dist/src/models.js.map +1 -1
  12. package/dist/src/primary-nav.d.ts +4 -0
  13. package/dist/src/primary-nav.js +20 -1
  14. package/dist/src/primary-nav.js.map +1 -1
  15. package/dist/src/signed-out-dropdown.d.ts +2 -1
  16. package/dist/src/signed-out-dropdown.js +1 -2
  17. package/dist/src/signed-out-dropdown.js.map +1 -1
  18. package/dist/src/styles/dropdown-menu.js +169 -168
  19. package/dist/src/styles/dropdown-menu.js.map +1 -1
  20. package/dist/src/styles/ia-topnav.js +82 -82
  21. package/dist/src/styles/ia-topnav.js.map +1 -1
  22. package/dist/src/styles/primary-nav.js +353 -353
  23. package/dist/src/styles/primary-nav.js.map +1 -1
  24. package/dist/src/user-menu.d.ts +2 -2
  25. package/dist/src/user-menu.js +14 -15
  26. package/dist/src/user-menu.js.map +1 -1
  27. package/dist/test/ia-topnav.test.js +9 -9
  28. package/dist/test/ia-topnav.test.js.map +1 -1
  29. package/dist/test/primary-nav.test.js +7 -7
  30. package/dist/test/primary-nav.test.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/data/menus.ts +650 -650
  33. package/src/dropdown-menu.ts +132 -132
  34. package/src/ia-topnav.ts +17 -3
  35. package/src/login-button.ts +12 -1
  36. package/src/models.ts +58 -58
  37. package/src/primary-nav.ts +24 -1
  38. package/src/signed-out-dropdown.ts +11 -11
  39. package/src/styles/dropdown-menu.ts +172 -171
  40. package/src/styles/ia-topnav.ts +85 -85
  41. package/src/styles/primary-nav.ts +356 -356
  42. package/src/user-menu.ts +31 -32
  43. package/test/ia-topnav.test.ts +282 -282
  44. package/test/primary-nav.test.ts +135 -135
  45. package/dist/src/styles/signed-out-dropdown.d.ts +0 -2
  46. package/dist/src/styles/signed-out-dropdown.js +0 -31
  47. package/dist/src/styles/signed-out-dropdown.js.map +0 -1
  48. package/dist/src/styles/user-menu.d.ts +0 -2
  49. package/dist/src/styles/user-menu.js +0 -31
  50. package/dist/src/styles/user-menu.js.map +0 -1
  51. package/src/styles/signed-out-dropdown.ts +0 -31
  52. package/src/styles/user-menu.ts +0 -31
@@ -1 +1 @@
1
- {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../../src/data/menus.ts"],"names":[],"mappings":"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","sourcesContent":["// @see https://git.archive.org/www/offshoot/-/blob/main/guides/update-top-nav.md\r\n\r\nimport { IATopNavConfig, IATopNavMenuConfig } from '../models';\r\n\r\nexport const defaultTopNavConfig: IATopNavConfig = {\r\n // Google Analytics event category\r\n eventCategory: 'TopNav',\r\n // Default value, if more accurate value is not passed in to `buildTopNavMenus()`\r\n waybackPagesArchived: '1 trillion',\r\n};\r\n\r\n/**\r\n * Creates archive.org top navigation configuration\r\n * @param { string } userid archive.org account (immutable) userid\r\n * @param { boolean } localLinks passing in false will ensure all links begin: https://archive.org\r\n * @param { string } waybackPagesArchived label readable 'how many pages in WayBack machine?'\r\n * If you don't pass in something, you'll get the potentially\r\n * older/less accurate version.\r\n * @param { string } itemIdentifier The current item being viewed, to populate admin menu items\r\n * @returns { object }\r\n */\r\nexport function buildTopNavMenus(\r\n userid: string = '___USERID___',\r\n baseHost: string = 'https://archive.org',\r\n waybackPagesArchived: string = '',\r\n itemIdentifier: string = '',\r\n): IATopNavMenuConfig {\r\n if (waybackPagesArchived)\r\n defaultTopNavConfig.waybackPagesArchived = waybackPagesArchived; // update to more accurate val\r\n\r\n return {\r\n audio: {\r\n heading: 'Internet Archive Audio',\r\n iconLinks: [\r\n {\r\n icon: `${baseHost}/services/img/etree`,\r\n title: 'Live Music Archive',\r\n url: `${baseHost}/details/etree`,\r\n },\r\n {\r\n icon: `${baseHost}/services/img/librivoxaudio`,\r\n title: 'Librivox Free Audio',\r\n url: `${baseHost}/details/librivoxaudio`,\r\n },\r\n ],\r\n featuredLinks: [\r\n {\r\n title: 'All Audio',\r\n url: `${baseHost}/details/audio`,\r\n },\r\n {\r\n title: 'Grateful Dead',\r\n url: `${baseHost}/details/GratefulDead`,\r\n },\r\n {\r\n title: 'Netlabels',\r\n url: `${baseHost}/details/netlabels`,\r\n },\r\n {\r\n title: 'Old Time Radio',\r\n url: `${baseHost}/details/oldtimeradio`,\r\n },\r\n {\r\n title: '78 RPMs and Cylinder Recordings',\r\n url: `${baseHost}/details/78rpm`,\r\n },\r\n ],\r\n links: [\r\n {\r\n title: 'Audio Books & Poetry',\r\n url: `${baseHost}/details/audio_bookspoetry`,\r\n },\r\n {\r\n title: 'Computers, Technology and Science',\r\n url: `${baseHost}/details/audio_tech`,\r\n },\r\n {\r\n title: 'Music, Arts & Culture',\r\n url: `${baseHost}/details/audio_music`,\r\n },\r\n {\r\n title: 'News & Public Affairs',\r\n url: `${baseHost}/details/audio_news`,\r\n },\r\n {\r\n title: 'Spirituality & Religion',\r\n url: `${baseHost}/details/audio_religion`,\r\n },\r\n {\r\n title: 'Podcasts',\r\n url: `${baseHost}/details/podcasts`,\r\n },\r\n {\r\n title: 'Radio News Archive',\r\n url: `${baseHost}/details/radio`,\r\n },\r\n ],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n images: {\r\n heading: 'Images',\r\n iconLinks: [\r\n {\r\n icon: `${baseHost}/services/img/metropolitanmuseumofart-gallery`,\r\n title: 'Metropolitan Museum',\r\n url: `${baseHost}/details/metropolitanmuseumofart-gallery`,\r\n },\r\n {\r\n icon: `${baseHost}/services/img/clevelandart`,\r\n title: 'Cleveland Museum of Art',\r\n url: `${baseHost}/details/clevelandart`,\r\n },\r\n ],\r\n featuredLinks: [\r\n {\r\n title: 'All Images',\r\n url: `${baseHost}/details/image`,\r\n },\r\n {\r\n title: 'Flickr Commons',\r\n url: `${baseHost}/details/flickrcommons`,\r\n },\r\n {\r\n title: 'Occupy Wall Street Flickr',\r\n url: `${baseHost}/details/flickr-ows`,\r\n },\r\n {\r\n title: 'Cover Art',\r\n url: `${baseHost}/details/coverartarchive`,\r\n },\r\n {\r\n title: 'USGS Maps',\r\n url: `${baseHost}/details/maps_usgs`,\r\n },\r\n ],\r\n links: [\r\n {\r\n title: 'NASA Images',\r\n url: `${baseHost}/details/nasa`,\r\n },\r\n {\r\n title: 'Solar System Collection',\r\n url: `${baseHost}/details/solarsystemcollection`,\r\n },\r\n {\r\n title: 'Ames Research Center',\r\n url: `${baseHost}/details/amesresearchcenterimagelibrary`,\r\n },\r\n ],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n more: {\r\n links: [\r\n {\r\n title: 'About',\r\n url: `${baseHost}/about/`,\r\n },\r\n {\r\n title: 'Blog',\r\n url: 'https://blog.archive.org',\r\n },\r\n {\r\n title: 'Events',\r\n url: `${baseHost}/events`,\r\n },\r\n {\r\n title: 'Projects',\r\n url: `${baseHost}/projects/`,\r\n },\r\n {\r\n title: 'Help',\r\n url: `${baseHost}/about/faqs.php`,\r\n },\r\n {\r\n title: 'Donate',\r\n url: `${baseHost}/donate?origin=iawww-TopNavDonateButton`,\r\n },\r\n {\r\n title: 'Contact',\r\n url: `${baseHost}/about/contact`,\r\n },\r\n {\r\n title: 'Jobs',\r\n url: `${baseHost}/about/jobs`,\r\n },\r\n {\r\n title: 'Volunteer',\r\n url: `${baseHost}/about/volunteer-positions`,\r\n },\r\n ],\r\n heading: '',\r\n iconLinks: [],\r\n featuredLinks: [],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n software: {\r\n heading: 'Software',\r\n iconLinks: [\r\n {\r\n icon: `${baseHost}/services/img/internetarcade`,\r\n title: 'Internet Arcade',\r\n url: `${baseHost}/details/internetarcade`,\r\n },\r\n {\r\n icon: `${baseHost}/services/img/consolelivingroom`,\r\n title: 'Console Living Room',\r\n url: `${baseHost}/details/consolelivingroom`,\r\n },\r\n ],\r\n featuredLinks: [\r\n {\r\n title: 'All Software',\r\n url: `${baseHost}/details/software`,\r\n },\r\n {\r\n title: 'Old School Emulation',\r\n url: `${baseHost}/details/tosec`,\r\n },\r\n {\r\n title: 'MS-DOS Games',\r\n url: `${baseHost}/details/softwarelibrary_msdos_games`,\r\n },\r\n {\r\n title: 'Historical Software',\r\n url: `${baseHost}/details/historicalsoftware`,\r\n },\r\n {\r\n title: 'Classic PC Games',\r\n url: `${baseHost}/details/classicpcgames`,\r\n },\r\n {\r\n title: 'Software Library',\r\n url: `${baseHost}/details/softwarelibrary`,\r\n },\r\n ],\r\n links: [\r\n {\r\n title: 'Kodi Archive and Support File',\r\n url: `${baseHost}/details/kodi_archive`,\r\n },\r\n {\r\n title: 'Vintage Software',\r\n url: `${baseHost}/details/vintagesoftware`,\r\n },\r\n {\r\n title: 'APK',\r\n url: `${baseHost}/details/apkarchive`,\r\n },\r\n {\r\n title: 'MS-DOS',\r\n url: `${baseHost}/details/softwarelibrary_msdos`,\r\n },\r\n {\r\n title: 'CD-ROM Software',\r\n url: `${baseHost}/details/cd-roms`,\r\n },\r\n {\r\n title: 'CD-ROM Software Library',\r\n url: `${baseHost}/details/cdromsoftware`,\r\n },\r\n {\r\n title: 'Software Sites',\r\n url: `${baseHost}/details/softwaresites`,\r\n },\r\n {\r\n title: 'Tucows Software Library',\r\n url: `${baseHost}/details/tucows`,\r\n },\r\n {\r\n title: 'Shareware CD-ROMs',\r\n url: `${baseHost}/details/cdbbsarchive`,\r\n },\r\n {\r\n title: 'Software Capsules Compilation',\r\n url: `${baseHost}/details/softwarecapsules`,\r\n },\r\n {\r\n title: 'CD-ROM Images',\r\n url: `${baseHost}/details/cdromimages`,\r\n },\r\n {\r\n title: 'ZX Spectrum',\r\n url: `${baseHost}/details/softwarelibrary_zx_spectrum`,\r\n },\r\n {\r\n title: 'DOOM Level CD',\r\n url: `${baseHost}/details/doom-cds`,\r\n },\r\n ],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n texts: {\r\n heading: 'Texts',\r\n iconLinks: [\r\n {\r\n title: 'Open Library',\r\n icon: `${baseHost}/images/widgetOL.png`,\r\n url: 'https://openlibrary.org/',\r\n },\r\n {\r\n title: 'American Libraries',\r\n icon: `${baseHost}/services/img/americana`,\r\n url: `${baseHost}/details/americana`,\r\n },\r\n ],\r\n featuredLinks: [\r\n {\r\n title: 'All Texts',\r\n url: `${baseHost}/details/texts`,\r\n },\r\n {\r\n title: 'Smithsonian Libraries',\r\n url: `${baseHost}/details/smithsonian`,\r\n },\r\n {\r\n title: 'FEDLINK (US)',\r\n url: `${baseHost}/details/fedlink`,\r\n },\r\n {\r\n title: 'Genealogy',\r\n url: `${baseHost}/details/genealogy`,\r\n },\r\n {\r\n title: 'Lincoln Collection',\r\n url: `${baseHost}/details/lincolncollection`,\r\n },\r\n ],\r\n links: [\r\n {\r\n title: 'American Libraries',\r\n url: `${baseHost}/details/americana`,\r\n },\r\n {\r\n title: 'Canadian Libraries',\r\n url: `${baseHost}/details/toronto`,\r\n },\r\n {\r\n title: 'Universal Library',\r\n url: `${baseHost}/details/universallibrary`,\r\n },\r\n {\r\n title: 'Project Gutenberg',\r\n url: `${baseHost}/details/gutenberg`,\r\n },\r\n {\r\n title: \"Children's Library\",\r\n url: `${baseHost}/details/iacl`,\r\n },\r\n {\r\n title: 'Biodiversity Heritage Library',\r\n url: `${baseHost}/details/biodiversity`,\r\n },\r\n {\r\n title: 'Books by Language',\r\n url: `${baseHost}/details/booksbylanguage`,\r\n },\r\n {\r\n title: 'Folkscanomy',\r\n url: `${baseHost}/details/folkscanomy`,\r\n },\r\n {\r\n title: 'Government Documents',\r\n url: `${baseHost}/details/government-documents`,\r\n },\r\n ],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n web: {\r\n mobileAppsLinks: [\r\n {\r\n url: 'https://apps.apple.com/us/app/wayback-machine/id1201888313',\r\n title: 'Wayback Machine (iOS)',\r\n external: true,\r\n },\r\n {\r\n url: 'https://play.google.com/store/apps/details?id=com.internetarchive.waybackmachine',\r\n title: 'Wayback Machine (Android)',\r\n external: true,\r\n },\r\n ],\r\n browserExtensionsLinks: [\r\n {\r\n url: 'https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak',\r\n title: 'Chrome',\r\n external: true,\r\n },\r\n {\r\n url: 'https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/',\r\n title: 'Firefox',\r\n external: true,\r\n },\r\n {\r\n url: 'https://apps.apple.com/us/app/wayback-machine/id1472432422?mt=12',\r\n title: 'Safari',\r\n external: true,\r\n },\r\n {\r\n url: 'https://microsoftedge.microsoft.com/addons/detail/wayback-machine/kjmickeoogghaimmomagaghnogelpcpn?hl=en-US',\r\n title: 'Edge',\r\n external: true,\r\n },\r\n ],\r\n archiveItLinks: [\r\n {\r\n url: 'https://www.archive-it.org/explore',\r\n title: 'Explore the Collections',\r\n external: true,\r\n },\r\n {\r\n url: 'https://www.archive-it.org/blog/learn-more/',\r\n title: 'Learn More',\r\n external: true,\r\n },\r\n {\r\n url: 'https://www.archive-it.org/contact-us',\r\n title: 'Build Collections',\r\n external: true,\r\n },\r\n ],\r\n heading: '',\r\n iconLinks: [],\r\n featuredLinks: [],\r\n links: [],\r\n },\r\n video: {\r\n heading: 'Video',\r\n iconLinks: [\r\n {\r\n icon: `${baseHost}/services/img/tv`,\r\n title: 'TV News',\r\n url: `${baseHost}/details/tv`,\r\n },\r\n {\r\n icon: `${baseHost}/services/img/911`,\r\n title: 'Understanding 9/11',\r\n url: `${baseHost}/details/911`,\r\n },\r\n ],\r\n featuredLinks: [\r\n {\r\n title: 'All Video',\r\n url: `${baseHost}/details/movies`,\r\n },\r\n {\r\n title: 'Prelinger Archives',\r\n url: `${baseHost}/details/prelinger`,\r\n },\r\n {\r\n title: 'Democracy Now!',\r\n url: `${baseHost}/details/democracy_now_vid`,\r\n },\r\n {\r\n title: 'Occupy Wall Street',\r\n url: `${baseHost}/details/occupywallstreet`,\r\n },\r\n {\r\n title: 'TV NSA Clip Library',\r\n url: `${baseHost}/details/nsa`,\r\n },\r\n ],\r\n links: [\r\n {\r\n title: 'Animation & Cartoons',\r\n url: `${baseHost}/details/animationandcartoons`,\r\n },\r\n {\r\n title: 'Arts & Music',\r\n url: `${baseHost}/details/artsandmusicvideos`,\r\n },\r\n {\r\n title: 'Computers & Technology',\r\n url: `${baseHost}/details/computersandtechvideos`,\r\n },\r\n {\r\n title: 'Cultural & Academic Films',\r\n url: `${baseHost}/details/culturalandacademicfilms`,\r\n },\r\n {\r\n title: 'Ephemeral Films',\r\n url: `${baseHost}/details/ephemera`,\r\n },\r\n {\r\n title: 'Movies',\r\n url: `${baseHost}/details/moviesandfilms`,\r\n },\r\n {\r\n title: 'News & Public Affairs',\r\n url: `${baseHost}/details/newsandpublicaffairs`,\r\n },\r\n {\r\n title: 'Spirituality & Religion',\r\n url: `${baseHost}/details/spiritualityandreligion`,\r\n },\r\n {\r\n title: 'Sports Videos',\r\n url: `${baseHost}/details/sports`,\r\n },\r\n {\r\n title: 'Television',\r\n url: `${baseHost}/details/television`,\r\n },\r\n {\r\n title: 'Videogame Videos',\r\n url: `${baseHost}/details/gamevideos`,\r\n },\r\n {\r\n title: 'Vlogs',\r\n url: `${baseHost}/details/vlogs`,\r\n },\r\n {\r\n title: 'Youth Media',\r\n url: `${baseHost}/details/youth_media`,\r\n },\r\n ],\r\n mobileAppsLinks: [],\r\n browserExtensionsLinks: [],\r\n archiveItLinks: [],\r\n },\r\n user: [\r\n {\r\n url: `${baseHost}/upload`,\r\n title: 'Upload files',\r\n analyticsEvent: 'UserUpload',\r\n class: 'mobile-upload',\r\n },\r\n {\r\n url: `${baseHost}/details/@${userid}`,\r\n title: 'My uploads',\r\n analyticsEvent: 'UserLibrary',\r\n },\r\n {\r\n url: `${baseHost}/details/@${userid}/loans`,\r\n title: 'My loans',\r\n analyticsEvent: 'UserLoans',\r\n },\r\n {\r\n url: `${baseHost}/details/fav-${userid}`,\r\n title: 'My favorites',\r\n analyticsEvent: 'UserFavorites',\r\n },\r\n {\r\n url: `${baseHost}/details/@${userid}/lists`,\r\n title: 'My lists',\r\n analyticsEvent: 'UserLists',\r\n },\r\n {\r\n url: `${baseHost}/details/@${userid}/collections`,\r\n title: 'My collections',\r\n analyticsEvent: 'UserCollections',\r\n },\r\n {\r\n url: `${baseHost}/details/@${userid}/web-archive`,\r\n title: 'My web archives',\r\n analyticsEvent: 'UserWebArchive',\r\n },\r\n {\r\n url: `${baseHost}/account/settings`,\r\n title: 'Account settings',\r\n analyticsEvent: 'UserSettings',\r\n },\r\n {\r\n url: 'https://help.archive.org',\r\n title: 'Get help',\r\n analyticsEvent: 'UserHelp',\r\n },\r\n {\r\n url: `${baseHost}/account/logout`,\r\n title: 'Log out',\r\n analyticsEvent: 'UserLogOut',\r\n },\r\n ],\r\n userAdmin: [\r\n {\r\n title: 'ADMINS:',\r\n },\r\n {\r\n title: 'item:',\r\n },\r\n {\r\n url: `${baseHost}/editxml/${itemIdentifier}`,\r\n title: 'edit xml',\r\n analyticsEvent: 'AdminUserEditXML',\r\n },\r\n {\r\n url: `${baseHost}/edit.php?redir=1&identifier=${itemIdentifier}`,\r\n title: 'edit files',\r\n analyticsEvent: 'AdminUserEditFiles',\r\n },\r\n {\r\n url: `${baseHost}/download/${itemIdentifier}/`,\r\n title: 'download',\r\n analyticsEvent: 'AdminUserDownload',\r\n },\r\n {\r\n url: `${baseHost}/metadata/${itemIdentifier}/`,\r\n title: 'metadata',\r\n analyticsEvent: 'AdminUserMetadata',\r\n },\r\n {\r\n url: `https://catalogd.archive.org/history/${itemIdentifier}`,\r\n title: 'history',\r\n analyticsEvent: 'AdminUserHistory',\r\n },\r\n {\r\n url: `${baseHost}/manage/${itemIdentifier}`,\r\n title: 'manage',\r\n analyticsEvent: 'AdminUserManager',\r\n },\r\n {\r\n url: `${baseHost}/manage/${itemIdentifier}#make_dark`,\r\n title: 'curate',\r\n analyticsEvent: 'AdminUserCurate',\r\n },\r\n {\r\n url: `${baseHost}/manage/${itemIdentifier}#modify_xml`,\r\n title: 'modify xml',\r\n analyticsEvent: 'AdminUserModifyXML',\r\n },\r\n ],\r\n userAdminFlags: [\r\n {\r\n url: `${baseHost}/services/flags/admin.php?identifier=${itemIdentifier}`,\r\n title: 'manage flags',\r\n analyticsEvent: 'AdminUserManageFlags',\r\n },\r\n ],\r\n signedOut: [\r\n {\r\n url: `${baseHost}/signup`,\r\n title: 'Sign up for free',\r\n analyticsEvent: 'AvatarMenu-Signup',\r\n },\r\n {\r\n url: `${baseHost}/login`,\r\n title: 'Log in',\r\n analyticsEvent: 'AvatarMenu-Login',\r\n },\r\n ],\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../../src/data/menus.ts"],"names":[],"mappings":"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","sourcesContent":["// @see https://git.archive.org/www/offshoot/-/blob/main/guides/update-top-nav.md\n\nimport { IATopNavConfig, IATopNavMenuConfig } from '../models';\n\nexport const defaultTopNavConfig: IATopNavConfig = {\n // Google Analytics event category\n eventCategory: 'TopNav',\n // Default value, if more accurate value is not passed in to `buildTopNavMenus()`\n waybackPagesArchived: '1 trillion',\n};\n\n/**\n * Creates archive.org top navigation configuration\n * @param { string } userid archive.org account (immutable) userid\n * @param { boolean } localLinks passing in false will ensure all links begin: https://archive.org\n * @param { string } waybackPagesArchived label readable 'how many pages in WayBack machine?'\n * If you don't pass in something, you'll get the potentially\n * older/less accurate version.\n * @param { string } itemIdentifier The current item being viewed, to populate admin menu items\n * @returns { object }\n */\nexport function buildTopNavMenus(\n userid: string = '___USERID___',\n baseHost: string = 'https://archive.org',\n waybackPagesArchived: string = '',\n itemIdentifier: string = '',\n): IATopNavMenuConfig {\n if (waybackPagesArchived)\n defaultTopNavConfig.waybackPagesArchived = waybackPagesArchived; // update to more accurate val\n\n return {\n audio: {\n heading: 'Internet Archive Audio',\n iconLinks: [\n {\n icon: `${baseHost}/services/img/etree`,\n title: 'Live Music Archive',\n url: `${baseHost}/details/etree`,\n },\n {\n icon: `${baseHost}/services/img/librivoxaudio`,\n title: 'Librivox Free Audio',\n url: `${baseHost}/details/librivoxaudio`,\n },\n ],\n featuredLinks: [\n {\n title: 'All Audio',\n url: `${baseHost}/details/audio`,\n },\n {\n title: 'Grateful Dead',\n url: `${baseHost}/details/GratefulDead`,\n },\n {\n title: 'Netlabels',\n url: `${baseHost}/details/netlabels`,\n },\n {\n title: 'Old Time Radio',\n url: `${baseHost}/details/oldtimeradio`,\n },\n {\n title: '78 RPMs and Cylinder Recordings',\n url: `${baseHost}/details/78rpm`,\n },\n ],\n links: [\n {\n title: 'Audio Books & Poetry',\n url: `${baseHost}/details/audio_bookspoetry`,\n },\n {\n title: 'Computers, Technology and Science',\n url: `${baseHost}/details/audio_tech`,\n },\n {\n title: 'Music, Arts & Culture',\n url: `${baseHost}/details/audio_music`,\n },\n {\n title: 'News & Public Affairs',\n url: `${baseHost}/details/audio_news`,\n },\n {\n title: 'Spirituality & Religion',\n url: `${baseHost}/details/audio_religion`,\n },\n {\n title: 'Podcasts',\n url: `${baseHost}/details/podcasts`,\n },\n {\n title: 'Radio News Archive',\n url: `${baseHost}/details/radio`,\n },\n ],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n images: {\n heading: 'Images',\n iconLinks: [\n {\n icon: `${baseHost}/services/img/metropolitanmuseumofart-gallery`,\n title: 'Metropolitan Museum',\n url: `${baseHost}/details/metropolitanmuseumofart-gallery`,\n },\n {\n icon: `${baseHost}/services/img/clevelandart`,\n title: 'Cleveland Museum of Art',\n url: `${baseHost}/details/clevelandart`,\n },\n ],\n featuredLinks: [\n {\n title: 'All Images',\n url: `${baseHost}/details/image`,\n },\n {\n title: 'Flickr Commons',\n url: `${baseHost}/details/flickrcommons`,\n },\n {\n title: 'Occupy Wall Street Flickr',\n url: `${baseHost}/details/flickr-ows`,\n },\n {\n title: 'Cover Art',\n url: `${baseHost}/details/coverartarchive`,\n },\n {\n title: 'USGS Maps',\n url: `${baseHost}/details/maps_usgs`,\n },\n ],\n links: [\n {\n title: 'NASA Images',\n url: `${baseHost}/details/nasa`,\n },\n {\n title: 'Solar System Collection',\n url: `${baseHost}/details/solarsystemcollection`,\n },\n {\n title: 'Ames Research Center',\n url: `${baseHost}/details/amesresearchcenterimagelibrary`,\n },\n ],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n more: {\n links: [\n {\n title: 'About',\n url: `${baseHost}/about/`,\n },\n {\n title: 'Blog',\n url: 'https://blog.archive.org',\n },\n {\n title: 'Events',\n url: `${baseHost}/events`,\n },\n {\n title: 'Projects',\n url: `${baseHost}/projects/`,\n },\n {\n title: 'Help',\n url: `${baseHost}/about/faqs.php`,\n },\n {\n title: 'Donate',\n url: `${baseHost}/donate?origin=iawww-TopNavDonateButton`,\n },\n {\n title: 'Contact',\n url: `${baseHost}/about/contact`,\n },\n {\n title: 'Jobs',\n url: `${baseHost}/about/jobs`,\n },\n {\n title: 'Volunteer',\n url: `${baseHost}/about/volunteer-positions`,\n },\n ],\n heading: '',\n iconLinks: [],\n featuredLinks: [],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n software: {\n heading: 'Software',\n iconLinks: [\n {\n icon: `${baseHost}/services/img/internetarcade`,\n title: 'Internet Arcade',\n url: `${baseHost}/details/internetarcade`,\n },\n {\n icon: `${baseHost}/services/img/consolelivingroom`,\n title: 'Console Living Room',\n url: `${baseHost}/details/consolelivingroom`,\n },\n ],\n featuredLinks: [\n {\n title: 'All Software',\n url: `${baseHost}/details/software`,\n },\n {\n title: 'Old School Emulation',\n url: `${baseHost}/details/tosec`,\n },\n {\n title: 'MS-DOS Games',\n url: `${baseHost}/details/softwarelibrary_msdos_games`,\n },\n {\n title: 'Historical Software',\n url: `${baseHost}/details/historicalsoftware`,\n },\n {\n title: 'Classic PC Games',\n url: `${baseHost}/details/classicpcgames`,\n },\n {\n title: 'Software Library',\n url: `${baseHost}/details/softwarelibrary`,\n },\n ],\n links: [\n {\n title: 'Kodi Archive and Support File',\n url: `${baseHost}/details/kodi_archive`,\n },\n {\n title: 'Vintage Software',\n url: `${baseHost}/details/vintagesoftware`,\n },\n {\n title: 'APK',\n url: `${baseHost}/details/apkarchive`,\n },\n {\n title: 'MS-DOS',\n url: `${baseHost}/details/softwarelibrary_msdos`,\n },\n {\n title: 'CD-ROM Software',\n url: `${baseHost}/details/cd-roms`,\n },\n {\n title: 'CD-ROM Software Library',\n url: `${baseHost}/details/cdromsoftware`,\n },\n {\n title: 'Software Sites',\n url: `${baseHost}/details/softwaresites`,\n },\n {\n title: 'Tucows Software Library',\n url: `${baseHost}/details/tucows`,\n },\n {\n title: 'Shareware CD-ROMs',\n url: `${baseHost}/details/cdbbsarchive`,\n },\n {\n title: 'Software Capsules Compilation',\n url: `${baseHost}/details/softwarecapsules`,\n },\n {\n title: 'CD-ROM Images',\n url: `${baseHost}/details/cdromimages`,\n },\n {\n title: 'ZX Spectrum',\n url: `${baseHost}/details/softwarelibrary_zx_spectrum`,\n },\n {\n title: 'DOOM Level CD',\n url: `${baseHost}/details/doom-cds`,\n },\n ],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n texts: {\n heading: 'Texts',\n iconLinks: [\n {\n title: 'Open Library',\n icon: `${baseHost}/images/widgetOL.png`,\n url: 'https://openlibrary.org/',\n },\n {\n title: 'American Libraries',\n icon: `${baseHost}/services/img/americana`,\n url: `${baseHost}/details/americana`,\n },\n ],\n featuredLinks: [\n {\n title: 'All Texts',\n url: `${baseHost}/details/texts`,\n },\n {\n title: 'Smithsonian Libraries',\n url: `${baseHost}/details/smithsonian`,\n },\n {\n title: 'FEDLINK (US)',\n url: `${baseHost}/details/fedlink`,\n },\n {\n title: 'Genealogy',\n url: `${baseHost}/details/genealogy`,\n },\n {\n title: 'Lincoln Collection',\n url: `${baseHost}/details/lincolncollection`,\n },\n ],\n links: [\n {\n title: 'American Libraries',\n url: `${baseHost}/details/americana`,\n },\n {\n title: 'Canadian Libraries',\n url: `${baseHost}/details/toronto`,\n },\n {\n title: 'Universal Library',\n url: `${baseHost}/details/universallibrary`,\n },\n {\n title: 'Project Gutenberg',\n url: `${baseHost}/details/gutenberg`,\n },\n {\n title: \"Children's Library\",\n url: `${baseHost}/details/iacl`,\n },\n {\n title: 'Biodiversity Heritage Library',\n url: `${baseHost}/details/biodiversity`,\n },\n {\n title: 'Books by Language',\n url: `${baseHost}/details/booksbylanguage`,\n },\n {\n title: 'Folkscanomy',\n url: `${baseHost}/details/folkscanomy`,\n },\n {\n title: 'Government Documents',\n url: `${baseHost}/details/government-documents`,\n },\n ],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n web: {\n mobileAppsLinks: [\n {\n url: 'https://apps.apple.com/us/app/wayback-machine/id1201888313',\n title: 'Wayback Machine (iOS)',\n external: true,\n },\n {\n url: 'https://play.google.com/store/apps/details?id=com.internetarchive.waybackmachine',\n title: 'Wayback Machine (Android)',\n external: true,\n },\n ],\n browserExtensionsLinks: [\n {\n url: 'https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak',\n title: 'Chrome',\n external: true,\n },\n {\n url: 'https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/',\n title: 'Firefox',\n external: true,\n },\n {\n url: 'https://apps.apple.com/us/app/wayback-machine/id1472432422?mt=12',\n title: 'Safari',\n external: true,\n },\n {\n url: 'https://microsoftedge.microsoft.com/addons/detail/wayback-machine/kjmickeoogghaimmomagaghnogelpcpn?hl=en-US',\n title: 'Edge',\n external: true,\n },\n ],\n archiveItLinks: [\n {\n url: 'https://www.archive-it.org/explore',\n title: 'Explore the Collections',\n external: true,\n },\n {\n url: 'https://www.archive-it.org/blog/learn-more/',\n title: 'Learn More',\n external: true,\n },\n {\n url: 'https://www.archive-it.org/contact-us',\n title: 'Build Collections',\n external: true,\n },\n ],\n heading: '',\n iconLinks: [],\n featuredLinks: [],\n links: [],\n },\n video: {\n heading: 'Video',\n iconLinks: [\n {\n icon: `${baseHost}/services/img/tv`,\n title: 'TV News',\n url: `${baseHost}/details/tv`,\n },\n {\n icon: `${baseHost}/services/img/911`,\n title: 'Understanding 9/11',\n url: `${baseHost}/details/911`,\n },\n ],\n featuredLinks: [\n {\n title: 'All Video',\n url: `${baseHost}/details/movies`,\n },\n {\n title: 'Prelinger Archives',\n url: `${baseHost}/details/prelinger`,\n },\n {\n title: 'Democracy Now!',\n url: `${baseHost}/details/democracy_now_vid`,\n },\n {\n title: 'Occupy Wall Street',\n url: `${baseHost}/details/occupywallstreet`,\n },\n {\n title: 'TV NSA Clip Library',\n url: `${baseHost}/details/nsa`,\n },\n ],\n links: [\n {\n title: 'Animation & Cartoons',\n url: `${baseHost}/details/animationandcartoons`,\n },\n {\n title: 'Arts & Music',\n url: `${baseHost}/details/artsandmusicvideos`,\n },\n {\n title: 'Computers & Technology',\n url: `${baseHost}/details/computersandtechvideos`,\n },\n {\n title: 'Cultural & Academic Films',\n url: `${baseHost}/details/culturalandacademicfilms`,\n },\n {\n title: 'Ephemeral Films',\n url: `${baseHost}/details/ephemera`,\n },\n {\n title: 'Movies',\n url: `${baseHost}/details/moviesandfilms`,\n },\n {\n title: 'News & Public Affairs',\n url: `${baseHost}/details/newsandpublicaffairs`,\n },\n {\n title: 'Spirituality & Religion',\n url: `${baseHost}/details/spiritualityandreligion`,\n },\n {\n title: 'Sports Videos',\n url: `${baseHost}/details/sports`,\n },\n {\n title: 'Television',\n url: `${baseHost}/details/television`,\n },\n {\n title: 'Videogame Videos',\n url: `${baseHost}/details/gamevideos`,\n },\n {\n title: 'Vlogs',\n url: `${baseHost}/details/vlogs`,\n },\n {\n title: 'Youth Media',\n url: `${baseHost}/details/youth_media`,\n },\n ],\n mobileAppsLinks: [],\n browserExtensionsLinks: [],\n archiveItLinks: [],\n },\n user: [\n {\n url: `${baseHost}/upload`,\n title: 'Upload files',\n analyticsEvent: 'UserUpload',\n class: 'mobile-upload',\n },\n {\n url: `${baseHost}/details/@${userid}`,\n title: 'My uploads',\n analyticsEvent: 'UserLibrary',\n },\n {\n url: `${baseHost}/details/@${userid}/loans`,\n title: 'My loans',\n analyticsEvent: 'UserLoans',\n },\n {\n url: `${baseHost}/details/fav-${userid}`,\n title: 'My favorites',\n analyticsEvent: 'UserFavorites',\n },\n {\n url: `${baseHost}/details/@${userid}/lists`,\n title: 'My lists',\n analyticsEvent: 'UserLists',\n },\n {\n url: `${baseHost}/details/@${userid}/collections`,\n title: 'My collections',\n analyticsEvent: 'UserCollections',\n },\n {\n url: `${baseHost}/details/@${userid}/web-archive`,\n title: 'My web archives',\n analyticsEvent: 'UserWebArchive',\n },\n {\n url: `${baseHost}/account/settings`,\n title: 'Account settings',\n analyticsEvent: 'UserSettings',\n },\n {\n url: 'https://help.archive.org',\n title: 'Get help',\n analyticsEvent: 'UserHelp',\n },\n {\n url: `${baseHost}/account/logout`,\n title: 'Log out',\n analyticsEvent: 'UserLogOut',\n },\n ],\n userAdmin: [\n {\n title: 'ADMINS:',\n },\n {\n title: 'item:',\n },\n {\n url: `${baseHost}/editxml/${itemIdentifier}`,\n title: 'edit xml',\n analyticsEvent: 'AdminUserEditXML',\n },\n {\n url: `${baseHost}/edit.php?redir=1&identifier=${itemIdentifier}`,\n title: 'edit files',\n analyticsEvent: 'AdminUserEditFiles',\n },\n {\n url: `${baseHost}/download/${itemIdentifier}/`,\n title: 'download',\n analyticsEvent: 'AdminUserDownload',\n },\n {\n url: `${baseHost}/metadata/${itemIdentifier}/`,\n title: 'metadata',\n analyticsEvent: 'AdminUserMetadata',\n },\n {\n url: `https://catalogd.archive.org/history/${itemIdentifier}`,\n title: 'history',\n analyticsEvent: 'AdminUserHistory',\n },\n {\n url: `${baseHost}/manage/${itemIdentifier}`,\n title: 'manage',\n analyticsEvent: 'AdminUserManager',\n },\n {\n url: `${baseHost}/manage/${itemIdentifier}#make_dark`,\n title: 'curate',\n analyticsEvent: 'AdminUserCurate',\n },\n {\n url: `${baseHost}/manage/${itemIdentifier}#modify_xml`,\n title: 'modify xml',\n analyticsEvent: 'AdminUserModifyXML',\n },\n ],\n userAdminFlags: [\n {\n url: `${baseHost}/services/flags/admin.php?identifier=${itemIdentifier}`,\n title: 'manage flags',\n analyticsEvent: 'AdminUserManageFlags',\n },\n ],\n signedOut: [\n {\n url: `${baseHost}/signup`,\n title: 'Sign up for free',\n analyticsEvent: 'AvatarMenu-Signup',\n },\n {\n url: `${baseHost}/login`,\n title: 'Log in',\n analyticsEvent: 'AvatarMenu-Login',\n },\n ],\n };\n}\n"]}
@@ -1,21 +1,20 @@
1
- import { CSSResult, nothing, PropertyValues, TemplateResult } from 'lit';
1
+ import { CSSResultGroup, nothing, PropertyValues, TemplateResult } from 'lit';
2
2
  import { IATopNavConfig, IATopNavLink } from './models';
3
3
  import TrackedElement from './tracked-element';
4
4
  export default class DropdownMenu extends TrackedElement {
5
5
  baseHost: string;
6
6
  config: IATopNavConfig;
7
- hideSearch: boolean;
8
7
  menuItems: IATopNavLink[] | IATopNavLink[][];
9
8
  animated: boolean;
10
9
  open: boolean;
11
10
  private previousKeydownListener?;
12
- static get styles(): CSSResult[];
11
+ static get styles(): CSSResultGroup;
13
12
  updated(props: PropertyValues): void;
14
13
  get dropdownItems(): typeof nothing | TemplateResult[] | (TemplateResult[] | undefined)[];
15
14
  static get dropdownDivider(): TemplateResult<1>;
16
15
  private dropdownSection;
17
16
  dropdownLink(link: IATopNavLink): TemplateResult;
18
17
  static dropdownText(item: IATopNavLink): TemplateResult<1>;
19
- get menuClass(): string;
18
+ get menuClass(): "closed" | "open" | "initial";
20
19
  render(): TemplateResult<1>;
21
20
  }
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { html, nothing } from 'lit';
2
+ import { html, nothing, } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import icons from './assets/img/icons';
5
5
  import { defaultTopNavConfig } from './data/menus';
@@ -14,13 +14,12 @@ export default class DropdownMenu extends TrackedElement {
14
14
  super(...arguments);
15
15
  this.baseHost = '';
16
16
  this.config = defaultTopNavConfig;
17
- this.hideSearch = false;
18
17
  this.menuItems = [];
19
18
  this.animated = false;
20
19
  this.open = false;
21
20
  }
22
21
  static get styles() {
23
- return [dropdownMenuCSS];
22
+ return dropdownMenuCSS;
24
23
  }
25
24
  updated(props) {
26
25
  var _a;
@@ -55,12 +54,12 @@ export default class DropdownMenu extends TrackedElement {
55
54
  return html `<li class="divider"></li>`;
56
55
  }
57
56
  dropdownSection(submenu) {
58
- return submenu.map((item) => html `
59
- <li>
57
+ return submenu.map((item) => html `
58
+ <li>
60
59
  ${item.url
61
60
  ? this.dropdownLink(item)
62
- : DropdownMenu.dropdownText(item)}
63
- </li>
61
+ : DropdownMenu.dropdownText(item)}
62
+ </li>
64
63
  `);
65
64
  }
66
65
  dropdownLink(link) {
@@ -68,46 +67,43 @@ export default class DropdownMenu extends TrackedElement {
68
67
  const calloutText = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.callouts) === null || _b === void 0 ? void 0 : _b[link.title];
69
68
  const isMobileUpload = link.class === 'mobile-upload';
70
69
  const isTabbable = this.open && !isMobileUpload;
71
- return html `<a
72
- href="${formatUrl(link.url, this.baseHost)}"
73
- class=${ifDefined(link.class)}
74
- tabindex="${isTabbable ? '' : '-1'}"
75
- @click=${this.trackClick}
76
- data-event-click-tracking="${(_c = this.config) === null || _c === void 0 ? void 0 : _c.eventCategory}|Nav${link.analyticsEvent}"
77
- aria-label=${calloutText ? `New feature: ${link.title}` : nothing}
78
- >
79
- ${isMobileUpload ? icons.uploadUnpadded : nothing} ${link.title}
70
+ return html `<a
71
+ href="${formatUrl(link.url, this.baseHost)}"
72
+ class=${ifDefined(link.class)}
73
+ tabindex="${isTabbable ? '' : '-1'}"
74
+ @click=${this.trackClick}
75
+ data-event-click-tracking="${(_c = this.config) === null || _c === void 0 ? void 0 : _c.eventCategory}|Nav${link.analyticsEvent}"
76
+ aria-label=${calloutText ? `New feature: ${link.title}` : nothing}
77
+ >
78
+ ${isMobileUpload ? icons.uploadUnpadded : nothing} ${link.title}
80
79
  ${calloutText
81
80
  ? html `<span class="callout" aria-hidden="true">${calloutText}</span>`
82
- : nothing}
81
+ : nothing}
83
82
  </a>`;
84
83
  }
85
84
  static dropdownText(item) {
86
85
  return html `<span class="info-item">${item.title}</span>`;
87
86
  }
88
87
  get menuClass() {
89
- const hiddenClass = this.hideSearch ? ' search-hidden' : '';
90
- if (this.open) {
91
- return `open${hiddenClass}`;
92
- }
93
- if (this.animated) {
94
- return `closed${hiddenClass}`;
95
- }
96
- return `initial${hiddenClass}`;
88
+ if (this.open)
89
+ return 'open';
90
+ if (this.animated)
91
+ return 'closed';
92
+ return 'initial';
97
93
  }
98
94
  render() {
99
- return html `
100
- <div class="nav-container">
101
- <nav
102
- class="${this.menuClass}"
103
- aria-hidden="${makeBooleanString(!this.open)}"
104
- aria-expanded="${makeBooleanString(this.open)}"
105
- >
106
- <ul>
107
- ${this.dropdownItems}
108
- </ul>
109
- </nav>
110
- </div>
95
+ return html `
96
+ <div class="nav-container">
97
+ <nav
98
+ class="${this.menuClass}"
99
+ aria-hidden="${makeBooleanString(!this.open)}"
100
+ aria-expanded="${makeBooleanString(this.open)}"
101
+ >
102
+ <ul>
103
+ ${this.dropdownItems}
104
+ </ul>
105
+ </nav>
106
+ </div>
111
107
  `;
112
108
  }
113
109
  }
@@ -117,9 +113,6 @@ __decorate([
117
113
  __decorate([
118
114
  property({ type: Object })
119
115
  ], DropdownMenu.prototype, "config", void 0);
120
- __decorate([
121
- property({ type: Boolean })
122
- ], DropdownMenu.prototype, "hideSearch", void 0);
123
116
  __decorate([
124
117
  property({ type: Array })
125
118
  ], DropdownMenu.prototype, "menuItems", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../src/dropdown-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, nothing, PropertyValues, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport icons from './assets/img/icons';\nimport { defaultTopNavConfig } from './data/menus';\nimport formatUrl from './lib/format-url';\nimport { makeBooleanString } from './lib/make-boolean-string';\nimport { IATopNavConfig, IATopNavLink } from './models';\nimport dropdownMenuCSS from './styles/dropdown-menu';\nimport TrackedElement from './tracked-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport KeyboardNavigation from './lib/keyboard-navigation';\n\nexport default class DropdownMenu extends TrackedElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n @property({ type: Boolean }) hideSearch = false;\n @property({ type: Array }) menuItems: IATopNavLink[] | IATopNavLink[][] = [];\n @property({ type: Boolean }) animated = false;\n @property({ type: Boolean }) open = false;\n\n private previousKeydownListener?: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this: HTMLElement, ev: KeyboardEvent) => any;\n\n static get styles(): CSSResult[] {\n return [dropdownMenuCSS];\n }\n\n updated(props: PropertyValues) {\n if (props.has('open') && this.open) {\n const container = this.shadowRoot?.querySelector(\n '.nav-container',\n ) as HTMLElement;\n\n if (container) {\n const keyboardNavigation = new KeyboardNavigation(\n container,\n 'usermenu',\n );\n this.addEventListener('keydown', keyboardNavigation.handleKeyDown);\n if (this.previousKeydownListener) {\n this.removeEventListener('keydown', this.previousKeydownListener);\n }\n this.previousKeydownListener = keyboardNavigation.handleKeyDown;\n }\n }\n }\n\n get dropdownItems() {\n if (!this.menuItems) return nothing;\n\n if (!Array.isArray(this.menuItems[0])) {\n const submenu = this.menuItems as IATopNavLink[];\n return this.dropdownSection(submenu);\n }\n return this.menuItems.map((submenu, i) => {\n const joiner = i ? DropdownMenu.dropdownDivider : html``;\n if (!Array.isArray(submenu)) {\n return;\n }\n return [joiner, ...this.dropdownSection(submenu)];\n });\n }\n\n static get dropdownDivider() {\n return html`<li class=\"divider\"></li>`;\n }\n\n private dropdownSection(submenu: IATopNavLink[]): TemplateResult[] {\n return submenu.map(\n (item) => html`\n <li>\n ${item.url\n ? this.dropdownLink(item)\n : DropdownMenu.dropdownText(item)}\n </li>\n `,\n );\n }\n\n dropdownLink(link: IATopNavLink): TemplateResult {\n const calloutText = this.config?.callouts?.[link.title];\n const isMobileUpload = link.class === 'mobile-upload';\n const isTabbable = this.open && !isMobileUpload;\n\n return html`<a\n href=\"${formatUrl(link.url, this.baseHost)}\"\n class=${ifDefined(link.class)}\n tabindex=\"${isTabbable ? '' : '-1'}\"\n @click=${this.trackClick}\n data-event-click-tracking=\"${this.config\n ?.eventCategory}|Nav${link.analyticsEvent}\"\n aria-label=${calloutText ? `New feature: ${link.title}` : nothing}\n >\n ${isMobileUpload ? icons.uploadUnpadded : nothing} ${link.title}\n ${calloutText\n ? html`<span class=\"callout\" aria-hidden=\"true\">${calloutText}</span>`\n : nothing}\n </a>`;\n }\n\n static dropdownText(item: IATopNavLink) {\n return html`<span class=\"info-item\">${item.title}</span>`;\n }\n\n get menuClass() {\n const hiddenClass = this.hideSearch ? ' search-hidden' : '';\n if (this.open) {\n return `open${hiddenClass}`;\n }\n if (this.animated) {\n return `closed${hiddenClass}`;\n }\n return `initial${hiddenClass}`;\n }\n\n render() {\n return html`\n <div class=\"nav-container\">\n <nav\n class=\"${this.menuClass}\"\n aria-hidden=\"${makeBooleanString(!this.open)}\"\n aria-expanded=\"${makeBooleanString(this.open)}\"\n >\n <ul>\n ${this.dropdownItems}\n </ul>\n </nav>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../src/dropdown-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n CSSResultGroup,\r\n html,\r\n nothing,\r\n PropertyValues,\r\n TemplateResult,\r\n} from 'lit';\r\nimport { property } from 'lit/decorators.js';\r\n\r\nimport icons from './assets/img/icons';\r\nimport { defaultTopNavConfig } from './data/menus';\r\nimport formatUrl from './lib/format-url';\r\nimport { makeBooleanString } from './lib/make-boolean-string';\r\nimport { IATopNavConfig, IATopNavLink } from './models';\r\nimport dropdownMenuCSS from './styles/dropdown-menu';\r\nimport TrackedElement from './tracked-element';\r\nimport { ifDefined } from 'lit/directives/if-defined.js';\r\nimport KeyboardNavigation from './lib/keyboard-navigation';\r\n\r\nexport default class DropdownMenu extends TrackedElement {\r\n @property({ type: String }) baseHost = '';\r\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\r\n @property({ type: Array }) menuItems: IATopNavLink[] | IATopNavLink[][] = [];\r\n @property({ type: Boolean }) animated = false;\r\n @property({ type: Boolean }) open = false;\r\n\r\n private previousKeydownListener?: // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (this: HTMLElement, ev: KeyboardEvent) => any;\r\n\r\n static get styles(): CSSResultGroup {\r\n return dropdownMenuCSS;\r\n }\r\n\r\n updated(props: PropertyValues) {\r\n if (props.has('open') && this.open) {\r\n const container = this.shadowRoot?.querySelector(\r\n '.nav-container',\r\n ) as HTMLElement;\r\n\r\n if (container) {\r\n const keyboardNavigation = new KeyboardNavigation(\r\n container,\r\n 'usermenu',\r\n );\r\n this.addEventListener('keydown', keyboardNavigation.handleKeyDown);\r\n if (this.previousKeydownListener) {\r\n this.removeEventListener('keydown', this.previousKeydownListener);\r\n }\r\n this.previousKeydownListener = keyboardNavigation.handleKeyDown;\r\n }\r\n }\r\n }\r\n\r\n get dropdownItems() {\r\n if (!this.menuItems) return nothing;\r\n\r\n if (!Array.isArray(this.menuItems[0])) {\r\n const submenu = this.menuItems as IATopNavLink[];\r\n return this.dropdownSection(submenu);\r\n }\r\n return this.menuItems.map((submenu, i) => {\r\n const joiner = i ? DropdownMenu.dropdownDivider : html``;\r\n if (!Array.isArray(submenu)) {\r\n return;\r\n }\r\n return [joiner, ...this.dropdownSection(submenu)];\r\n });\r\n }\r\n\r\n static get dropdownDivider() {\r\n return html`<li class=\"divider\"></li>`;\r\n }\r\n\r\n private dropdownSection(submenu: IATopNavLink[]): TemplateResult[] {\r\n return submenu.map(\r\n (item) => html`\r\n <li>\r\n ${item.url\r\n ? this.dropdownLink(item)\r\n : DropdownMenu.dropdownText(item)}\r\n </li>\r\n `,\r\n );\r\n }\r\n\r\n dropdownLink(link: IATopNavLink): TemplateResult {\r\n const calloutText = this.config?.callouts?.[link.title];\r\n const isMobileUpload = link.class === 'mobile-upload';\r\n const isTabbable = this.open && !isMobileUpload;\r\n\r\n return html`<a\r\n href=\"${formatUrl(link.url, this.baseHost)}\"\r\n class=${ifDefined(link.class)}\r\n tabindex=\"${isTabbable ? '' : '-1'}\"\r\n @click=${this.trackClick}\r\n data-event-click-tracking=\"${this.config\r\n ?.eventCategory}|Nav${link.analyticsEvent}\"\r\n aria-label=${calloutText ? `New feature: ${link.title}` : nothing}\r\n >\r\n ${isMobileUpload ? icons.uploadUnpadded : nothing} ${link.title}\r\n ${calloutText\r\n ? html`<span class=\"callout\" aria-hidden=\"true\">${calloutText}</span>`\r\n : nothing}\r\n </a>`;\r\n }\r\n\r\n static dropdownText(item: IATopNavLink) {\r\n return html`<span class=\"info-item\">${item.title}</span>`;\r\n }\r\n\r\n get menuClass() {\r\n if (this.open) return 'open';\r\n if (this.animated) return 'closed';\r\n return 'initial';\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"nav-container\">\r\n <nav\r\n class=\"${this.menuClass}\"\r\n aria-hidden=\"${makeBooleanString(!this.open)}\"\r\n aria-expanded=\"${makeBooleanString(this.open)}\"\r\n >\r\n <ul>\r\n ${this.dropdownItems}\r\n </ul>\r\n </nav>\r\n </div>\r\n `;\r\n }\r\n}\r\n"]}
@@ -27,6 +27,9 @@ export declare class IATopNav extends LitElement {
27
27
  mediatype: string;
28
28
  moveTo: string;
29
29
  };
30
+ private primaryNav?;
31
+ /** Only one of user-menu or signed-out-dropdown is rendered at a time. */
32
+ private accountDropdown?;
30
33
  private menus;
31
34
  private boundHandleKeydown;
32
35
  private boundHandleClick;
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { LitElement, html, nothing } from 'lit';
3
- import { customElement, property, state } from 'lit/decorators.js';
3
+ import { customElement, property, query, state } from 'lit/decorators.js';
4
4
  import { buildTopNavMenus, defaultTopNavConfig } from './data/menus';
5
5
  import './desktop-subnav';
6
6
  import './dropdown-menu';
@@ -83,6 +83,12 @@ let IATopNav = class IATopNav extends LitElement {
83
83
  return;
84
84
  }
85
85
  this.closeMediaSlider();
86
+ if (this.openMenu === 'user' || this.openMenu === 'login') {
87
+ if (this.primaryNav && this.accountDropdown) {
88
+ const right = this.primaryNav.getAccountDropdownOffset();
89
+ this.accountDropdown.style.setProperty('--dropdownMenuRight', `${right}px`);
90
+ }
91
+ }
86
92
  }
87
93
  openMediaSlider() {
88
94
  this.mediaSliderOpen = true;
@@ -140,7 +146,6 @@ let IATopNav = class IATopNav extends LitElement {
140
146
  .menuItems=${this.userMenuItems}
141
147
  ?open=${this.openMenu === 'user'}
142
148
  .username=${this.username}
143
- ?hideSearch=${this.hideSearch}
144
149
  tabindex="${this.userMenuTabIndex}"
145
150
  @menuToggled=${this.menuToggled}
146
151
  @trackClick=${this.trackClick}
@@ -154,7 +159,6 @@ let IATopNav = class IATopNav extends LitElement {
154
159
  .baseHost=${this.normalizedBaseHost}
155
160
  .config=${this.config}
156
161
  .open=${this.signedOutOpened}
157
- ?hideSearch=${this.hideSearch}
158
162
  tabindex="${this.signedOutTabIndex}"
159
163
  .menuItems=${this.signedOutMenuItems}
160
164
  @focusToOtherMenuItem=${(e) => {
@@ -295,6 +299,12 @@ __decorate([
295
299
  __decorate([
296
300
  property({ type: Object })
297
301
  ], IATopNav.prototype, "currentTab", void 0);
302
+ __decorate([
303
+ query('primary-nav')
304
+ ], IATopNav.prototype, "primaryNav", void 0);
305
+ __decorate([
306
+ query('user-menu, signed-out-dropdown')
307
+ ], IATopNav.prototype, "accountDropdown", void 0);
298
308
  __decorate([
299
309
  state()
300
310
  ], IATopNav.prototype, "menus", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ia-topnav.js","sourceRoot":"","sources":["../../src/ia-topnav.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyValues, html, nothing } from 'lit';\r\nimport { customElement, property, state } from 'lit/decorators.js';\r\n\r\nimport { buildTopNavMenus, defaultTopNavConfig } from './data/menus';\r\nimport './desktop-subnav';\r\nimport './dropdown-menu';\r\nimport './media-slider';\r\nimport {\r\n IATopNavConfig,\r\n IATopNavMenuConfig,\r\n IATopNavSecondIdentitySlotMode,\r\n} from './models';\r\nimport './primary-nav';\r\nimport './signed-out-dropdown';\r\nimport iaTopNavCSS from './styles/ia-topnav';\r\nimport './user-menu';\r\n\r\n@customElement('ia-topnav')\r\nexport class IATopNav extends LitElement {\r\n @property({ type: Boolean }) localLinks = false;\r\n\r\n @property({ type: String }) waybackPagesArchived = '';\r\n\r\n @property({ type: String }) baseHost = 'https://archive.org';\r\n\r\n @property({ type: String }) mediaBaseHost = 'https://archive.org';\r\n\r\n @property({ type: Boolean }) admin = false;\r\n\r\n @property({ type: Boolean }) canManageFlags = false;\r\n\r\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\r\n\r\n @property({ type: Boolean }) hideSearch = false;\r\n\r\n @property({ type: String }) itemIdentifier = '';\r\n\r\n @property({ type: Boolean }) mediaSliderOpen = false;\r\n\r\n @property({ type: String }) openMenu = '';\r\n\r\n @property({ type: String }) screenName: string = '';\r\n\r\n @property({ type: String }) selectedMenuOption = '';\r\n\r\n @property({ type: String }) username: string = '';\r\n\r\n @property({ type: String }) userProfileImagePath =\r\n '/services/img/user/profile';\r\n\r\n @property({ type: String })\r\n secondIdentitySlotMode: IATopNavSecondIdentitySlotMode = '';\r\n\r\n @property({ type: Object }) currentTab?: {\r\n mediatype: string;\r\n moveTo: string;\r\n };\r\n\r\n @state() private menus: IATopNavMenuConfig = buildTopNavMenus();\r\n\r\n private boundHandleKeydown = this.handleDocumentKeydown.bind(this);\r\n\r\n private boundHandleClick = this.handleDocumentClick.bind(this);\r\n\r\n private get normalizedBaseHost() {\r\n return !this.localLinks ? this.baseHost : '';\r\n }\r\n\r\n static get styles() {\r\n return iaTopNavCSS;\r\n }\r\n\r\n updated(props: PropertyValues) {\r\n if (\r\n props.has('username') ||\r\n props.has('waybackPagesArchived') ||\r\n props.has('itemIdentifier') ||\r\n props.has('localLinks') ||\r\n props.has('baseHost')\r\n ) {\r\n this.menuSetup();\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n document.addEventListener('keydown', this.boundHandleKeydown);\r\n document.addEventListener('click', this.boundHandleClick);\r\n }\r\n\r\n disconnectedCallback() {\r\n super.disconnectedCallback();\r\n document.removeEventListener('keydown', this.boundHandleKeydown);\r\n document.removeEventListener('click', this.boundHandleClick);\r\n }\r\n\r\n private handleDocumentKeydown(e: KeyboardEvent) {\r\n if (e.key === 'Escape') {\r\n this.openMenu = '';\r\n this.mediaSliderOpen = false;\r\n }\r\n }\r\n\r\n private handleDocumentClick(e: MouseEvent) {\r\n if (!this.openMenu) return;\r\n const path = e.composedPath();\r\n if (!path.includes(this)) {\r\n this.closeMenus();\r\n }\r\n }\r\n\r\n menuSetup() {\r\n // re/build the nav\r\n this.menus = buildTopNavMenus(\r\n this.username,\r\n this.normalizedBaseHost,\r\n this.waybackPagesArchived,\r\n this.itemIdentifier,\r\n );\r\n }\r\n\r\n menuToggled(e: CustomEvent) {\r\n const currentMenu = this.openMenu;\r\n this.openMenu = currentMenu === e.detail.menuName ? '' : e.detail.menuName;\r\n // Keeps media slider open if media menu is open\r\n if (this.openMenu === 'media') {\r\n return;\r\n }\r\n this.closeMediaSlider();\r\n }\r\n\r\n openMediaSlider() {\r\n this.mediaSliderOpen = true;\r\n }\r\n\r\n closeMediaSlider() {\r\n this.mediaSliderOpen = false;\r\n this.selectedMenuOption = '';\r\n }\r\n\r\n closeMenus() {\r\n this.openMenu = '';\r\n this.closeMediaSlider();\r\n }\r\n\r\n trackClick(e: CustomEvent) {\r\n this.dispatchEvent(\r\n new CustomEvent('analyticsClick', {\r\n bubbles: true,\r\n composed: true,\r\n detail: e.detail,\r\n }),\r\n );\r\n }\r\n\r\n trackSubmit(e: CustomEvent) {\r\n this.dispatchEvent(\r\n new CustomEvent('analyticsSubmit', {\r\n bubbles: true,\r\n composed: true,\r\n detail: e.detail,\r\n }),\r\n );\r\n }\r\n\r\n mediaTypeSelected(e: CustomEvent) {\r\n if (this.selectedMenuOption === e.detail.mediatype) {\r\n this.closeMediaSlider();\r\n return;\r\n }\r\n this.selectedMenuOption = e.detail.mediatype;\r\n this.openMediaSlider();\r\n }\r\n\r\n get signedOutOpened() {\r\n return this.openMenu === 'login';\r\n }\r\n\r\n get userMenuOpened() {\r\n return this.openMenu === 'user';\r\n }\r\n\r\n get userMenuTabIndex() {\r\n return this.userMenuOpened ? '' : '-1';\r\n }\r\n\r\n get signedOutTabIndex() {\r\n return this.signedOutOpened ? '' : '-1';\r\n }\r\n\r\n get closeLayerClass() {\r\n return !!this.openMenu || this.mediaSliderOpen ? 'visible' : '';\r\n }\r\n\r\n get userMenu() {\r\n return html`\r\n <user-menu\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .menuItems=${this.userMenuItems}\r\n ?open=${this.openMenu === 'user'}\r\n .username=${this.username}\r\n ?hideSearch=${this.hideSearch}\r\n tabindex=\"${this.userMenuTabIndex}\"\r\n @menuToggled=${this.menuToggled}\r\n @trackClick=${this.trackClick}\r\n @focusToOtherMenuItem=${(e: CustomEvent) =>\r\n (this.currentTab = e.detail)}\r\n ></user-menu>\r\n `;\r\n }\r\n\r\n get signedOutDropdown() {\r\n return html`\r\n <signed-out-dropdown\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .open=${this.signedOutOpened}\r\n ?hideSearch=${this.hideSearch}\r\n tabindex=\"${this.signedOutTabIndex}\"\r\n .menuItems=${this.signedOutMenuItems}\r\n @focusToOtherMenuItem=${(e: CustomEvent) => {\r\n this.currentTab = e.detail;\r\n }}\r\n ></signed-out-dropdown>\r\n `;\r\n }\r\n\r\n get signedOutMenuItems() {\r\n return this.menus.signedOut;\r\n }\r\n\r\n /**\r\n * Most users just get the basic menu items.\r\n * For users with `/items` priv, additional admin menu items are included too.\r\n * Having the `/flags` priv adds a further admin item for managing flags.\r\n */\r\n get userMenuItems() {\r\n const basicItems = this.menus.user;\r\n\r\n let adminItems = this.menus.userAdmin;\r\n if (this.canManageFlags) {\r\n adminItems = adminItems.concat(this.menus.userAdminFlags);\r\n }\r\n\r\n return this.itemIdentifier && this.admin\r\n ? [basicItems, adminItems]\r\n : [basicItems];\r\n }\r\n\r\n get allowSecondaryIcon() {\r\n return this.secondIdentitySlotMode === 'allow';\r\n }\r\n\r\n get searchSlot() {\r\n return html`<slot name=\"search\" slot=\"search\"></slot>`;\r\n }\r\n\r\n get secondLogoSlot() {\r\n return this.allowSecondaryIcon\r\n ? html`\r\n <slot name=\"opt-sec-logo\" slot=\"opt-sec-logo\"></slot>\r\n <slot name=\"opt-sec-logo-mobile\" slot=\"opt-sec-logo-mobile\"></slot>\r\n `\r\n : nothing;\r\n }\r\n\r\n get separatorTemplate() {\r\n return html`<li class=\"divider\" role=\"presentation\"></li>`;\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"topnav\">\r\n <primary-nav\r\n .baseHost=${this.normalizedBaseHost}\r\n .mediaBaseHost=${this.mediaBaseHost}\r\n .config=${this.config}\r\n .openMenu=${this.openMenu}\r\n .screenName=${this.screenName}\r\n .secondIdentitySlotMode=${this.secondIdentitySlotMode}\r\n .selectedMenuOption=${this.selectedMenuOption}\r\n .username=${this.username}\r\n .userProfileImagePath=${this.userProfileImagePath}\r\n .currentTab=${this.currentTab}\r\n ?hideSearch=${this.hideSearch}\r\n @mediaTypeSelected=${this.mediaTypeSelected}\r\n @trackClick=${this.trackClick}\r\n @trackSubmit=${this.trackSubmit}\r\n @menuToggled=${this.menuToggled}\r\n >\r\n ${this.secondLogoSlot} ${this.searchSlot}\r\n </primary-nav>\r\n <media-slider\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .selectedMenuOption=${this.selectedMenuOption}\r\n .mediaSliderOpen=${this.mediaSliderOpen}\r\n .menus=${this.menus}\r\n tabindex=\"${this.mediaSliderOpen ? '1' : '-1'}\"\r\n @focusToOtherMenuItem=${(e: CustomEvent) =>\r\n (this.currentTab = e.detail)}\r\n ></media-slider>\r\n </div>\r\n ${this.username ? this.userMenu : this.signedOutDropdown}\r\n <desktop-subnav\r\n .baseHost=${this.normalizedBaseHost}\r\n .menuItems=${this.menus.more.links}\r\n @focus=${this.closeMenus}\r\n ></desktop-subnav>\r\n <div\r\n id=\"close-layer\"\r\n class=\"${this.closeLayerClass}\"\r\n @click=${this.closeMenus}\r\n ></div>\r\n `;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ia-topnav.js","sourceRoot":"","sources":["../../src/ia-topnav.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyValues, html, nothing } from 'lit';\r\nimport { customElement, property, query, state } from 'lit/decorators.js';\r\n\r\nimport { buildTopNavMenus, defaultTopNavConfig } from './data/menus';\r\nimport './desktop-subnav';\r\nimport './dropdown-menu';\r\nimport './media-slider';\r\nimport {\r\n IATopNavConfig,\r\n IATopNavMenuConfig,\r\n IATopNavSecondIdentitySlotMode,\r\n} from './models';\r\nimport './primary-nav';\r\nimport type { PrimaryNav } from './primary-nav';\r\nimport './signed-out-dropdown';\r\nimport iaTopNavCSS from './styles/ia-topnav';\r\nimport './user-menu';\r\n\r\n@customElement('ia-topnav')\r\nexport class IATopNav extends LitElement {\r\n @property({ type: Boolean }) localLinks = false;\r\n\r\n @property({ type: String }) waybackPagesArchived = '';\r\n\r\n @property({ type: String }) baseHost = 'https://archive.org';\r\n\r\n @property({ type: String }) mediaBaseHost = 'https://archive.org';\r\n\r\n @property({ type: Boolean }) admin = false;\r\n\r\n @property({ type: Boolean }) canManageFlags = false;\r\n\r\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\r\n\r\n @property({ type: Boolean }) hideSearch = false;\r\n\r\n @property({ type: String }) itemIdentifier = '';\r\n\r\n @property({ type: Boolean }) mediaSliderOpen = false;\r\n\r\n @property({ type: String }) openMenu = '';\r\n\r\n @property({ type: String }) screenName: string = '';\r\n\r\n @property({ type: String }) selectedMenuOption = '';\r\n\r\n @property({ type: String }) username: string = '';\r\n\r\n @property({ type: String }) userProfileImagePath =\r\n '/services/img/user/profile';\r\n\r\n @property({ type: String })\r\n secondIdentitySlotMode: IATopNavSecondIdentitySlotMode = '';\r\n\r\n @property({ type: Object }) currentTab?: {\r\n mediatype: string;\r\n moveTo: string;\r\n };\r\n\r\n @query('primary-nav') private primaryNav?: PrimaryNav;\r\n /** Only one of user-menu or signed-out-dropdown is rendered at a time. */\r\n @query('user-menu, signed-out-dropdown')\r\n private accountDropdown?: HTMLElement;\r\n\r\n @state() private menus: IATopNavMenuConfig = buildTopNavMenus();\r\n\r\n private boundHandleKeydown = this.handleDocumentKeydown.bind(this);\r\n\r\n private boundHandleClick = this.handleDocumentClick.bind(this);\r\n\r\n private get normalizedBaseHost() {\r\n return !this.localLinks ? this.baseHost : '';\r\n }\r\n\r\n static get styles() {\r\n return iaTopNavCSS;\r\n }\r\n\r\n updated(props: PropertyValues) {\r\n if (\r\n props.has('username') ||\r\n props.has('waybackPagesArchived') ||\r\n props.has('itemIdentifier') ||\r\n props.has('localLinks') ||\r\n props.has('baseHost')\r\n ) {\r\n this.menuSetup();\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n document.addEventListener('keydown', this.boundHandleKeydown);\r\n document.addEventListener('click', this.boundHandleClick);\r\n }\r\n\r\n disconnectedCallback() {\r\n super.disconnectedCallback();\r\n document.removeEventListener('keydown', this.boundHandleKeydown);\r\n document.removeEventListener('click', this.boundHandleClick);\r\n }\r\n\r\n private handleDocumentKeydown(e: KeyboardEvent) {\r\n if (e.key === 'Escape') {\r\n this.openMenu = '';\r\n this.mediaSliderOpen = false;\r\n }\r\n }\r\n\r\n private handleDocumentClick(e: MouseEvent) {\r\n if (!this.openMenu) return;\r\n const path = e.composedPath();\r\n if (!path.includes(this)) {\r\n this.closeMenus();\r\n }\r\n }\r\n\r\n menuSetup() {\r\n // re/build the nav\r\n this.menus = buildTopNavMenus(\r\n this.username,\r\n this.normalizedBaseHost,\r\n this.waybackPagesArchived,\r\n this.itemIdentifier,\r\n );\r\n }\r\n\r\n menuToggled(e: CustomEvent) {\r\n const currentMenu = this.openMenu;\r\n this.openMenu = currentMenu === e.detail.menuName ? '' : e.detail.menuName;\r\n // Keeps media slider open if media menu is open\r\n if (this.openMenu === 'media') {\r\n return;\r\n }\r\n this.closeMediaSlider();\r\n\r\n if (this.openMenu === 'user' || this.openMenu === 'login') {\r\n if (this.primaryNav && this.accountDropdown) {\r\n const right = this.primaryNav.getAccountDropdownOffset();\r\n this.accountDropdown.style.setProperty(\r\n '--dropdownMenuRight',\r\n `${right}px`,\r\n );\r\n }\r\n }\r\n }\r\n\r\n openMediaSlider() {\r\n this.mediaSliderOpen = true;\r\n }\r\n\r\n closeMediaSlider() {\r\n this.mediaSliderOpen = false;\r\n this.selectedMenuOption = '';\r\n }\r\n\r\n closeMenus() {\r\n this.openMenu = '';\r\n this.closeMediaSlider();\r\n }\r\n\r\n trackClick(e: CustomEvent) {\r\n this.dispatchEvent(\r\n new CustomEvent('analyticsClick', {\r\n bubbles: true,\r\n composed: true,\r\n detail: e.detail,\r\n }),\r\n );\r\n }\r\n\r\n trackSubmit(e: CustomEvent) {\r\n this.dispatchEvent(\r\n new CustomEvent('analyticsSubmit', {\r\n bubbles: true,\r\n composed: true,\r\n detail: e.detail,\r\n }),\r\n );\r\n }\r\n\r\n mediaTypeSelected(e: CustomEvent) {\r\n if (this.selectedMenuOption === e.detail.mediatype) {\r\n this.closeMediaSlider();\r\n return;\r\n }\r\n this.selectedMenuOption = e.detail.mediatype;\r\n this.openMediaSlider();\r\n }\r\n\r\n get signedOutOpened() {\r\n return this.openMenu === 'login';\r\n }\r\n\r\n get userMenuOpened() {\r\n return this.openMenu === 'user';\r\n }\r\n\r\n get userMenuTabIndex() {\r\n return this.userMenuOpened ? '' : '-1';\r\n }\r\n\r\n get signedOutTabIndex() {\r\n return this.signedOutOpened ? '' : '-1';\r\n }\r\n\r\n get closeLayerClass() {\r\n return !!this.openMenu || this.mediaSliderOpen ? 'visible' : '';\r\n }\r\n\r\n get userMenu() {\r\n return html`\r\n <user-menu\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .menuItems=${this.userMenuItems}\r\n ?open=${this.openMenu === 'user'}\r\n .username=${this.username}\r\n tabindex=\"${this.userMenuTabIndex}\"\r\n @menuToggled=${this.menuToggled}\r\n @trackClick=${this.trackClick}\r\n @focusToOtherMenuItem=${(e: CustomEvent) =>\r\n (this.currentTab = e.detail)}\r\n ></user-menu>\r\n `;\r\n }\r\n\r\n get signedOutDropdown() {\r\n return html`\r\n <signed-out-dropdown\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .open=${this.signedOutOpened}\r\n tabindex=\"${this.signedOutTabIndex}\"\r\n .menuItems=${this.signedOutMenuItems}\r\n @focusToOtherMenuItem=${(e: CustomEvent) => {\r\n this.currentTab = e.detail;\r\n }}\r\n ></signed-out-dropdown>\r\n `;\r\n }\r\n\r\n get signedOutMenuItems() {\r\n return this.menus.signedOut;\r\n }\r\n\r\n /**\r\n * Most users just get the basic menu items.\r\n * For users with `/items` priv, additional admin menu items are included too.\r\n * Having the `/flags` priv adds a further admin item for managing flags.\r\n */\r\n get userMenuItems() {\r\n const basicItems = this.menus.user;\r\n\r\n let adminItems = this.menus.userAdmin;\r\n if (this.canManageFlags) {\r\n adminItems = adminItems.concat(this.menus.userAdminFlags);\r\n }\r\n\r\n return this.itemIdentifier && this.admin\r\n ? [basicItems, adminItems]\r\n : [basicItems];\r\n }\r\n\r\n get allowSecondaryIcon() {\r\n return this.secondIdentitySlotMode === 'allow';\r\n }\r\n\r\n get searchSlot() {\r\n return html`<slot name=\"search\" slot=\"search\"></slot>`;\r\n }\r\n\r\n get secondLogoSlot() {\r\n return this.allowSecondaryIcon\r\n ? html`\r\n <slot name=\"opt-sec-logo\" slot=\"opt-sec-logo\"></slot>\r\n <slot name=\"opt-sec-logo-mobile\" slot=\"opt-sec-logo-mobile\"></slot>\r\n `\r\n : nothing;\r\n }\r\n\r\n get separatorTemplate() {\r\n return html`<li class=\"divider\" role=\"presentation\"></li>`;\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"topnav\">\r\n <primary-nav\r\n .baseHost=${this.normalizedBaseHost}\r\n .mediaBaseHost=${this.mediaBaseHost}\r\n .config=${this.config}\r\n .openMenu=${this.openMenu}\r\n .screenName=${this.screenName}\r\n .secondIdentitySlotMode=${this.secondIdentitySlotMode}\r\n .selectedMenuOption=${this.selectedMenuOption}\r\n .username=${this.username}\r\n .userProfileImagePath=${this.userProfileImagePath}\r\n .currentTab=${this.currentTab}\r\n ?hideSearch=${this.hideSearch}\r\n @mediaTypeSelected=${this.mediaTypeSelected}\r\n @trackClick=${this.trackClick}\r\n @trackSubmit=${this.trackSubmit}\r\n @menuToggled=${this.menuToggled}\r\n >\r\n ${this.secondLogoSlot} ${this.searchSlot}\r\n </primary-nav>\r\n <media-slider\r\n .baseHost=${this.normalizedBaseHost}\r\n .config=${this.config}\r\n .selectedMenuOption=${this.selectedMenuOption}\r\n .mediaSliderOpen=${this.mediaSliderOpen}\r\n .menus=${this.menus}\r\n tabindex=\"${this.mediaSliderOpen ? '1' : '-1'}\"\r\n @focusToOtherMenuItem=${(e: CustomEvent) =>\r\n (this.currentTab = e.detail)}\r\n ></media-slider>\r\n </div>\r\n ${this.username ? this.userMenu : this.signedOutDropdown}\r\n <desktop-subnav\r\n .baseHost=${this.normalizedBaseHost}\r\n .menuItems=${this.menus.more.links}\r\n @focus=${this.closeMenus}\r\n ></desktop-subnav>\r\n <div\r\n id=\"close-layer\"\r\n class=\"${this.closeLayerClass}\"\r\n @click=${this.closeMenus}\r\n ></div>\r\n `;\r\n }\r\n}\r\n"]}
@@ -4,8 +4,11 @@ export declare class LoginButton extends TrackedElement {
4
4
  baseHost: string;
5
5
  config: IATopNavConfig;
6
6
  openMenu: string;
7
+ private toggleButton?;
7
8
  private dropdownTabIndex;
8
9
  static get styles(): import("lit").CSSResult;
10
+ /** Distance (px) from this element's right edge to the right edge of the dropdown toggle icon. */
11
+ getDropdownToggleOffset(): number;
9
12
  get signupPath(): string;
10
13
  get loginPath(): string;
11
14
  get analyticsEvent(): string;
@@ -5,7 +5,7 @@ import icons from './assets/img/icons';
5
5
  import loginButtonCSS from './styles/login-button';
6
6
  import formatUrl from './lib/format-url';
7
7
  import { makeBooleanString } from './lib/make-boolean-string';
8
- import { customElement, property, state } from 'lit/decorators.js';
8
+ import { customElement, property, query, state } from 'lit/decorators.js';
9
9
  import { defaultTopNavConfig } from './data/menus';
10
10
  let LoginButton = class LoginButton extends TrackedElement {
11
11
  constructor() {
@@ -18,6 +18,13 @@ let LoginButton = class LoginButton extends TrackedElement {
18
18
  static get styles() {
19
19
  return loginButtonCSS;
20
20
  }
21
+ /** Distance (px) from this element's right edge to the right edge of the dropdown toggle icon. */
22
+ getDropdownToggleOffset() {
23
+ if (!this.toggleButton)
24
+ return 0;
25
+ return (this.getBoundingClientRect().right -
26
+ this.toggleButton.getBoundingClientRect().right);
27
+ }
21
28
  get signupPath() {
22
29
  return formatUrl('/signup', this.baseHost);
23
30
  }
@@ -76,6 +83,9 @@ __decorate([
76
83
  __decorate([
77
84
  property({ type: String })
78
85
  ], LoginButton.prototype, "openMenu", void 0);
86
+ __decorate([
87
+ query('button.logged-out-menu')
88
+ ], LoginButton.prototype, "toggleButton", void 0);
79
89
  __decorate([
80
90
  state()
81
91
  ], LoginButton.prototype, "dropdownTabIndex", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"login-button.js","sourceRoot":"","sources":["../../src/login-button.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG5C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,cAAc;IAAxC;;QACuB,aAAQ,GAAG,EAAE,CAAC;QACd,WAAM,GAAmB,mBAAmB,CAAC;QAC7C,aAAQ,GAAG,EAAE,CAAC;QAEzB,qBAAgB,GAAG,EAAE,CAAC;IA6DzC,CAAC;IA3DC,MAAM,KAAK,MAAM;QACf,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,cAAc;;QAChB,OAAO,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,aAAa,eAAe,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,kBAAkB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,cAAc,CAAC,CAAQ;QACrB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,aAAa,EAAE;YAC7B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,QAAQ,EAAE,OAAO;aAClB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;mCAGoB,IAAI,CAAC,WAAW;mBAChC,IAAI,CAAC,cAAc;uCACC,IAAI,CAAC,cAAc;;2BAE/B,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;;YAEjD,KAAK,CAAC,IAAI;;;qBAGD,IAAI,CAAC,UAAU;;qBAEf,IAAI,CAAC,SAAS;;;KAG9B,CAAC;IACJ,CAAC;CACF,CAAA;AAjE6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAe;AACd;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAA8C;AAC7C;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAe;AAEzB;IAAhB,KAAK,EAAE;qDAA+B;AAL5B,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAkEvB","sourcesContent":["import { html } from 'lit';\r\nimport TrackedElement from './tracked-element';\r\nimport icons from './assets/img/icons';\r\nimport loginButtonCSS from './styles/login-button';\r\nimport formatUrl from './lib/format-url';\r\nimport { makeBooleanString } from './lib/make-boolean-string';\r\nimport { customElement, property, state } from 'lit/decorators.js';\r\nimport { IATopNavConfig } from './models';\r\nimport { defaultTopNavConfig } from './data/menus';\r\n\r\n@customElement('login-button')\r\nexport class LoginButton extends TrackedElement {\r\n @property({ type: String }) baseHost = '';\r\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\r\n @property({ type: String }) openMenu = '';\r\n\r\n @state() private dropdownTabIndex = '';\r\n\r\n static get styles() {\r\n return loginButtonCSS;\r\n }\r\n\r\n get signupPath() {\r\n return formatUrl('/signup', this.baseHost);\r\n }\r\n\r\n get loginPath() {\r\n return formatUrl('/login', this.baseHost);\r\n }\r\n\r\n get analyticsEvent() {\r\n return `${this.config?.eventCategory}|NavLoginIcon`;\r\n }\r\n\r\n get menuOpened(): boolean {\r\n return this.openMenu === 'login';\r\n }\r\n\r\n get avatarClass() {\r\n return `dropdown-toggle${this.menuOpened ? ' active' : ''}`;\r\n }\r\n\r\n toggleDropdown(e: Event) {\r\n e.preventDefault();\r\n this.trackClick(e);\r\n this.dropdownTabIndex = this.menuOpened ? '' : '-1';\r\n this.dispatchEvent(\r\n new CustomEvent('menuToggled', {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n menuName: 'login',\r\n },\r\n }),\r\n );\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"logged-out-toolbar\">\r\n <button\r\n class=\"logged-out-menu ${this.avatarClass}\"\r\n @click=${this.toggleDropdown}\r\n data-event-click-tracking=\"${this.analyticsEvent}\"\r\n aria-label=\"Toggle login menu\"\r\n aria-expanded=\"${makeBooleanString(this.menuOpened)}\"\r\n >\r\n ${icons.user}\r\n </button>\r\n <span>\r\n <a href=\"${this.signupPath}\">Sign up</a>\r\n |\r\n <a href=\"${this.loginPath}\">Log in</a>\r\n </span>\r\n </div>\r\n `;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"login-button.js","sourceRoot":"","sources":["../../src/login-button.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\r\nimport TrackedElement from './tracked-element';\r\nimport icons from './assets/img/icons';\r\nimport loginButtonCSS from './styles/login-button';\r\nimport formatUrl from './lib/format-url';\r\nimport { makeBooleanString } from './lib/make-boolean-string';\r\nimport { customElement, property, query, state } from 'lit/decorators.js';\r\nimport { IATopNavConfig } from './models';\r\nimport { defaultTopNavConfig } from './data/menus';\r\n\r\n@customElement('login-button')\r\nexport class LoginButton extends TrackedElement {\r\n @property({ type: String }) baseHost = '';\r\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\r\n @property({ type: String }) openMenu = '';\r\n\r\n @query('button.logged-out-menu') private toggleButton?: HTMLButtonElement;\r\n\r\n @state() private dropdownTabIndex = '';\r\n\r\n static get styles() {\r\n return loginButtonCSS;\r\n }\r\n\r\n /** Distance (px) from this element's right edge to the right edge of the dropdown toggle icon. */\r\n getDropdownToggleOffset(): number {\r\n if (!this.toggleButton) return 0;\r\n return (\r\n this.getBoundingClientRect().right -\r\n this.toggleButton.getBoundingClientRect().right\r\n );\r\n }\r\n\r\n get signupPath() {\r\n return formatUrl('/signup', this.baseHost);\r\n }\r\n\r\n get loginPath() {\r\n return formatUrl('/login', this.baseHost);\r\n }\r\n\r\n get analyticsEvent() {\r\n return `${this.config?.eventCategory}|NavLoginIcon`;\r\n }\r\n\r\n get menuOpened(): boolean {\r\n return this.openMenu === 'login';\r\n }\r\n\r\n get avatarClass() {\r\n return `dropdown-toggle${this.menuOpened ? ' active' : ''}`;\r\n }\r\n\r\n toggleDropdown(e: Event) {\r\n e.preventDefault();\r\n this.trackClick(e);\r\n this.dropdownTabIndex = this.menuOpened ? '' : '-1';\r\n this.dispatchEvent(\r\n new CustomEvent('menuToggled', {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n menuName: 'login',\r\n },\r\n }),\r\n );\r\n }\r\n\r\n render() {\r\n return html`\r\n <div class=\"logged-out-toolbar\">\r\n <button\r\n class=\"logged-out-menu ${this.avatarClass}\"\r\n @click=${this.toggleDropdown}\r\n data-event-click-tracking=\"${this.analyticsEvent}\"\r\n aria-label=\"Toggle login menu\"\r\n aria-expanded=\"${makeBooleanString(this.menuOpened)}\"\r\n >\r\n ${icons.user}\r\n </button>\r\n <span>\r\n <a href=\"${this.signupPath}\">Sign up</a>\r\n |\r\n <a href=\"${this.loginPath}\">Log in</a>\r\n </span>\r\n </div>\r\n `;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"","sourcesContent":["export interface IATopNavConfig {\r\n /**\r\n * Google Analytics event category\r\n */\r\n eventCategory?: string;\r\n\r\n /**\r\n * Copy to display for number of pages archived at the top of the Wayback search form\r\n *\r\n * ie. \"425 billion\"\r\n */\r\n waybackPagesArchived?: string;\r\n\r\n /**\r\n * Map from dropdown item ids to any callout text that should be applied beside them\r\n */\r\n callouts?: Record<string, string>;\r\n}\r\n\r\nexport interface IATopNavLink {\r\n title: string;\r\n\r\n url?: string;\r\n\r\n class?: string;\r\n\r\n icon?: string;\r\n\r\n analyticsEvent?: string;\r\n\r\n external?: boolean;\r\n}\r\n\r\nexport interface IATopNavMediaMenu {\r\n heading: string;\r\n iconLinks: IATopNavLink[];\r\n featuredLinks: IATopNavLink[];\r\n links: IATopNavLink[];\r\n mobileAppsLinks: IATopNavLink[];\r\n browserExtensionsLinks: IATopNavLink[];\r\n archiveItLinks: IATopNavLink[];\r\n}\r\n\r\nexport interface IATopNavMenuConfig {\r\n audio: IATopNavMediaMenu;\r\n images: IATopNavMediaMenu;\r\n more: IATopNavMediaMenu;\r\n signedOut: IATopNavLink[];\r\n software: IATopNavMediaMenu;\r\n texts: IATopNavMediaMenu;\r\n user: IATopNavLink[];\r\n userAdmin: IATopNavLink[];\r\n userAdminFlags: IATopNavLink[];\r\n video: IATopNavMediaMenu;\r\n web: IATopNavMediaMenu;\r\n}\r\n\r\nexport type IATopNavSecondIdentitySlotMode = 'allow' | '';\r\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"","sourcesContent":["export interface IATopNavConfig {\n /**\n * Google Analytics event category\n */\n eventCategory?: string;\n\n /**\n * Copy to display for number of pages archived at the top of the Wayback search form\n *\n * ie. \"425 billion\"\n */\n waybackPagesArchived?: string;\n\n /**\n * Map from dropdown item ids to any callout text that should be applied beside them\n */\n callouts?: Record<string, string>;\n}\n\nexport interface IATopNavLink {\n title: string;\n\n url?: string;\n\n class?: string;\n\n icon?: string;\n\n analyticsEvent?: string;\n\n external?: boolean;\n}\n\nexport interface IATopNavMediaMenu {\n heading: string;\n iconLinks: IATopNavLink[];\n featuredLinks: IATopNavLink[];\n links: IATopNavLink[];\n mobileAppsLinks: IATopNavLink[];\n browserExtensionsLinks: IATopNavLink[];\n archiveItLinks: IATopNavLink[];\n}\n\nexport interface IATopNavMenuConfig {\n audio: IATopNavMediaMenu;\n images: IATopNavMediaMenu;\n more: IATopNavMediaMenu;\n signedOut: IATopNavLink[];\n software: IATopNavMediaMenu;\n texts: IATopNavMediaMenu;\n user: IATopNavLink[];\n userAdmin: IATopNavLink[];\n userAdminFlags: IATopNavLink[];\n video: IATopNavMediaMenu;\n web: IATopNavMediaMenu;\n}\n\nexport type IATopNavSecondIdentitySlotMode = 'allow' | '';\n"]}
@@ -23,7 +23,11 @@ export declare class PrimaryNav extends TrackedElement {
23
23
  moveTo: string;
24
24
  } | undefined;
25
25
  signedOutMenuToggled: unknown;
26
+ private userMenuButton?;
27
+ private loginButton?;
26
28
  static get styles(): import("lit").CSSResult;
29
+ /** Distance (px) from this element's right edge to the right edge of the account dropdown toggle. */
30
+ getAccountDropdownOffset(): number;
27
31
  toggleMediaMenu(e: Event): void;
28
32
  toggleSearchMenu(e: Event): void;
29
33
  toggleUserMenu(e: Event): void;