import { Component, OnDestroy } from '@angular/core'; import { getUserState, UserState, } from '@eui/core'; import { Observable, Subscription } from 'rxjs'; import { NavController } from "@ionic/angular"; @Component({ selector: 'app-root', templateUrl: './app.component.html', standalone: false, }) export class AppComponent implements OnDestroy { userInfos: UserState; // Observe state changes userState: Observable; // an array to keep all subscriptions and easily unsubscribe subs: Subscription[] = []; public items: MenuItem[] = [ { label: 'Home', url: 'screen/home', icon: 'home-outline', }, { isSection: true, label: 'DOCUMENTATION', }, { label: 'Design System', url: 'https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/showcase-design-system/home', icon: 'color-palette-outline', hasBadge: true, }, { label: 'Components', url: 'https://eui.ecdevops.eu/eui-showcase-mobile-20.x/home/components?segment=alphabetical', icon: 'cube-outline', }, { label: 'Patterns', url: 'https://eui.ecdevops.eu/eui-showcase-mobile-patterns-20.x/home', icon: 'library-outline', }, { label: 'Applications', url: 'https://eui.ecdevops.eu/eui-showcase-mobile-patterns-20.x/home/patterns?segment=apps', icon: 'apps-outline', }, { label: 'Plugins & Services', url: 'https://eui.ecdevops.eu/eui-showcase-mobile-20.x/home/plugins-services', icon: 'hardware-chip-outline', }, { isSection: true, label: 'SAMPLE CONTENT', }, { label: 'Module Page', url: 'screen/module1', icon: 'document-outline', }, { label: 'Page One', url: 'screen/module1/page1', icon: 'reader-outline', }, { label: 'Page Two', url: 'screen/module1/page2', icon: 'reader-outline', }, ]; constructor(private navCtrl:NavController,) {} ngOnDestroy() { this.subs.forEach((s: Subscription) => s.unsubscribe()); } onItemClick(menuItem: MenuItem): void { if (menuItem && menuItem.url) { if (menuItem.url.indexOf('http') > -1) { window.open(menuItem.url, '_blank'); } else { this.navCtrl.navigateRoot(menuItem.url).then(); } } } } export interface MenuItem { icon?: string; iconColor?: string; label: string; url?: string; isSection?: boolean; hasBadge?: boolean; }