@@ -8,7 +8,11 @@ import * as utils from "../../../common/utils.js";
88import "../../gauge/gauge.js" ;
99import "../../expandable/expandable.js" ;
1010import { EVENTS } from "../../../core/events.js" ;
11- import { fetchScorecardData , getScorecardLink } from "../../../common/scorecard.js" ;
11+ import { PackageInfo } from "../../package/package.js" ;
12+ import {
13+ fetchScorecardData ,
14+ getScorecardLink
15+ } from "../../../common/scorecard.js" ;
1216
1317// Import Components
1418import "./maintainers/maintainers.js" ;
@@ -22,11 +26,35 @@ const kFlagsToWatch = new Set([
2226 "hasScript"
2327] ) ;
2428
25- const kEmojiDescription = {
26- "📦" : "scripts" ,
27- "⚔️" : "sensitive files" ,
28- "🚨" : "vulnerabilities" ,
29- "⛔️" : "deprecated"
29+ const kEmojiMetadata = {
30+ "📦" : {
31+ description : "scripts" ,
32+ menu : {
33+ name : "dependencies" ,
34+ priority : 3
35+ }
36+ } ,
37+ "⚔️" : {
38+ description : "sensitive files" ,
39+ menu : {
40+ name : "files" ,
41+ priority : 1
42+ }
43+ } ,
44+ "🚨" : {
45+ description : "vulnerabilities" ,
46+ menu : {
47+ name : "vulnerabilities" ,
48+ priority : 2
49+ }
50+ } ,
51+ "⛔️" : {
52+ description : "deprecated" ,
53+ menu : {
54+ name : "info" ,
55+ priority : 0
56+ }
57+ }
3058} ;
3159
3260export class HomeView {
@@ -207,10 +235,16 @@ export class HomeView {
207235 for ( let id = 0 ; id < deps . length ; id ++ ) {
208236 const dependency = deps [ id ] ;
209237
210- const element = this . renderPackage ( dependency ) ;
238+ const [ element , menuToOpen ] = this . renderPackage ( dependency ) ;
211239 element . addEventListener ( "click" , ( ) => {
212240 window . navigation . setNavByName ( "network--view" ) ;
213- setTimeout ( ( ) => this . nsn . focusNodeByNameAndVersion ( dependency . name , dependency . version ) , 25 ) ;
241+ setTimeout ( ( ) => {
242+ PackageInfo . ForcedPackageMenu = menuToOpen ;
243+ this . nsn . focusNodeByNameAndVersion (
244+ dependency . name ,
245+ dependency . version
246+ ) ;
247+ } , 25 ) ;
214248 } ) ;
215249 if ( hideItems && id >= maxPackages ) {
216250 element . classList . add ( "hidden" ) ;
@@ -238,13 +272,30 @@ export class HomeView {
238272
239273 renderPackage ( dependencyVer ) {
240274 const { name, version, flags, deprecated } = dependencyVer ;
275+
276+ const menuToOpen = {
277+ name : "info" ,
278+ priority : 0
279+ } ;
241280 const inlinedEmojis = getFlagsEmojisInlined (
242281 flags . filter ( ( name ) => kFlagsToWatch . has ( name ) ) ,
243282 new Set ( window . settings . config . ignore . flags )
244283 ) ;
245284
246- const childs = utils . extractEmojis ( inlinedEmojis )
247- . map ( ( emoji ) => utils . createDOMElement ( "p" , { text : `${ emoji } ${ kEmojiDescription [ emoji ] } ` } ) ) ;
285+ const childs = [ ] ;
286+ for ( const emoji of utils . extractEmojis ( inlinedEmojis ) ) {
287+ const { menu, description } = kEmojiMetadata [ emoji ] ;
288+ if ( menu . priority > menuToOpen . priority ) {
289+ menuToOpen . name = menu . name ;
290+ menuToOpen . priority = menu . priority ;
291+ }
292+
293+ childs . push (
294+ utils . createDOMElement ( "p" , {
295+ text : `${ emoji } ${ description } `
296+ } )
297+ ) ;
298+ }
248299
249300 const packageContents = [
250301 utils . createDOMElement ( "div" , {
@@ -267,9 +318,12 @@ export class HomeView {
267318 packageContents . push ( utils . createDOMElement ( "p" , { text : deprecated } ) ) ;
268319 }
269320
270- return utils . createDOMElement ( "div" , {
271- childs : packageContents
272- } ) ;
321+ return [
322+ utils . createDOMElement ( "div" , {
323+ childs : packageContents
324+ } ) ,
325+ menuToOpen . name
326+ ] ;
273327 }
274328
275329 generateWarnings ( ) {
0 commit comments