Code Monkey home page Code Monkey logo

popup-menu's Introduction

popup-menu

master build vulnerabilities maintainability master coverage dev build dev coverage

A Vue.js multi-level popup menu, using a page like navigation inside the menu container.

Demo

Props

Prop name Description Type Default
idKey Field name in the menu item data set that holds item identifier. string 'id'
labelKey Field name in the menu item data set that holds item label. string 'label'
subtitleKey Field name in the menu item data set that holds item subtitle. string 'subtitle'
hintKey Field name in the menu item data set that holds item tool tip. string 'hint'
checkerKey Field name in the menu item data set that tells whether the item has a
checkbox attached.
string 'checker'
checkedKey Field name in the menu item data set that holds item's checkbox is checked. string 'checked'
shortcutKey Field name in the menu item data set that holds item keyboard shortcut. string 'shortcut'
childrenKey Field name in the menu item data set that holds sub-menu item. string 'children'
addElementId Whether to add element id attribute, using the idKey field. boolean false

Slots

Name Description Bindings
default Item label item: G8MenuItem
subtitle Item subtitle item: G8MenuItem

Events

Event name Type Description
open MouseEvent The popup menu has been opened.
close G8MenuItem The popup menu has been closed.
click G8MenuItemClicked A menu item has been clicked.
state-changed G8MenuItem A checkbox in the menu item has been checked or unchecked.
select G8MenuItem A menu item has been selected.

Types

/**
 * Menu item. Fields listed here serve default data structure. There can be
 * arbitrary fields in the data set. Actual fields used in rendering can be
 * customized using component properties such as `idKey`.
 */
export interface G8MenuItem {
  /**
   * Arbitrary field declaration, also enables accessing via index.
   */
  [key: string]: unknown | undefined;

  /**
   * Arbitrary field declaration, also enables accessing via index.
   */
  [key: number]: unknown | undefined;

  /**
   * Default menu item identifier.
   */
  id?: string;

  /**
   * Default menu item label. `'---'` here denotes a separator item. Separator
   * item will not close menu or trigger any event.
   */
  label?: string;

  /**
   * Default menu item subtitle.
   */
  subtitle?: string;

  /**
   * Default menu item tool tip (mouse hover).
   */
  hint?: string;

  /**
   * Whether the item has a checkbox attached. Items with checkbox will not
   * close the menu while clicked. However, the `click` event will be fired,
   * followed by `state-changed` event.
   */
  checker?: boolean;

  /**
   * Whether checkbox of the item has been checked.
   */
  checked?: boolean;

  /**
   * Keyboard shortcut, must be on single character.
   */
  shortcut?: string;

  /**
   * Sub-menu items
   */
  children?: G8MenuItem[];
}

/**
 * A menu item has been clicked.
 */
export class G8MenuItemClicked extends Event {
  /**
   * The item that was clicked.
   */
  data?: G8MenuItem;
}

popup-menu's People

Contributors

eidng8 avatar

Watchers

 avatar  avatar

popup-menu's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.