UNPKG

graphdb-workbench

Version:
1 lines 1.05 kB
import{NavbarItemModel,NavbarModel}from"./navbar-model";export class NavbarService{static map(e){const t=new NavbarModel;return NavbarService.setTopLevelMenuItems(e,t),NavbarService.setSubmenuItems(e,t),t.sorted()}static setTopLevelMenuItems(e,t){e.forEach(e=>{e.items.filter(e=>!e.parent&&e.shouldShow).forEach(e=>{t.hasParent(e.label)?console.warn("Doubled parent definition: ",e):t.addItem(this.toMenuItemModel(e,void 0,e.children))})})}static setSubmenuItems(e,t){e.forEach(e=>{e.items.filter(e=>e.parent&&e.shouldShow).forEach(e=>{const r=t.getTopLevelItem(e.parent);null==r||r.addChildren(this.toMenuItemModel(e,r,e.children))})})}static toMenuItemModel(e,t,r=[]){const o=new NavbarItemModel({label:e.label,labelKey:e.labelKey,href:e.href,documentationHref:e.documentationHref,hrefFun:e.hrefFun,order:e.order,role:e.role,editions:e.editions,icon:e.icon,guideSelector:e.guideSelector,hasParent:!!t,parentModel:t,parent:e.parent,selected:!1,testSelector:e.testSelector}),a=r.map(e=>this.toMenuItemModel(e,o,e.children));return o.addChildren(...a),o}}