import {Component, Input, OnInit} from '@angular/core'; import {PopoverController} from '@ionic/angular'; import {EditorPage} from '../../../pages/editor/editor.page'; import HostRecord from '../../../structures/HostRecord'; @Component({ selector: 'editor-host-options', templateUrl: './host-options.component.html', styleUrls: ['./host-options.component.scss'], }) export class HostOptionsComponent implements OnInit { @Input() editor: EditorPage; @Input() index: number; @Input() event: Event; @Input() hostRecord: HostRecord; public menuItems: Array<{name: string, icon?: string, icons?: string[], value: string, type?: string}> = []; protected possibleMenuItems: Array<{name: string, icon?: string, icons?: string[], value: string, type?: string}> = [ { name: 'Move Up', icons: ['fa-chevron-up'], value: 'move_up', }, { name: 'Add Node Before', icons: ['fa-plus'], value: 'add_before', }, { name: 'Delete Node', icon: 'fa-trash', value: 'delete_node', }, { name: 'Add Node After', icons: ['fa-plus'], value: 'add_after', }, { name: 'Move Down', icons: ['fa-chevron-down'], value: 'move_down', }, ]; constructor( protected popover: PopoverController, ) { } ngOnInit() { for ( const item of this.possibleMenuItems ) { if ( !item.type ) { this.menuItems.push(item); } else if ( item.type === this.hostRecord.type ) { this.menuItems.push(item); } } } async onSelect(event: MouseEvent, value) { await this.popover.dismiss({event, value}); } }