npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@jspreadsheet/topmenu

v2.1.0

Published

Jspreadsheet plugins: add topmenu bar on sheet of jSpreadsheet

Downloads

38

Readme

jSpreadsheet Plugin : Top menu

The topmenu plugin add a top menu bar on jSpreadsheet.

preview

This plugin is Free

Features

  • Add top menu bar
  • Add function on instance for add top menu bar
  • Load item top menu in other plugins
  • Menu can use sub menu

What is jSpreadsheet ?

jSpreadsheet, a lightweight Vanilla JavaScript plugin, can help you create exceptional web-based interactive tables and spreadsheets. Compatible with most widely-used spreadsheet software, such as Excel or Google Spreadsheet, it offers users an unrivalled Excel-like user experience. It also works well with prominent modern frameworks and flexibly utilizes a large collection of events, extensions and configurations to meet different application requirements. Impress your clients with a better user experience and a great dynamic interactive data management tool.

Documentation

Dependencies

Options of plugin

For translation

you can use jSuites dictionary for translate this plugin

Methods of plugin

Menus with function

You can use function for have dynamics items.

use this template :

function (element, instance, menuButton) {
   var items = [];

   /* you code for add dynamics items with condition */

   return items;
}

Example :

function (element, instance, menuButton) {
   var items = [];

   if(instance.options.about == true) { // show about item
       items.push({
            title:'About',
            onclick:function() {
                alert('My about text')
            }
        });
   }

   if(instance.selectedCell[0] == 0 && instance.selectedCell[1] == 0) {
       items.push({
            title:'You have selected A1',
            disable: true
            onclick:function() {  }
        });
   }

   return items;
}

Menu items properties

Item is based on contextmenu item. Use same items of contextmenu for build topmenu

Documentation available on Quick Reference Contextmenu jSuites.net

Menu on plugin

On your plugin, add function on your object like contextMenu :

example :

function example_plugin_jss(instance, options) {
   var plugin = {};
   
   /* ... your code of your plugin ...*/
   
   plugin.topMenu = function(name, items, menuButton, shortcut_base) { 
       /*... your code for new items ...*/
       return items;
   }
   
   /* ... your code of your plugin ...*/
   
   return plugin;
}

this function is call when top menu is open

Arguments of topMenu:

  • name : Name of top menu
  • items : Array
  • menuButton : Button in top menu
  • shortcut_base = "CTRL +" or "⌘ +"

this function must return Array of items

Get started

Header on page

<script src="https://cdn.jsdelivr.net/npm/jspreadsheet/dist/index.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jspreadsheet/dist/jspreadsheet.min.css" type="text/css" />
<script src="https://cdn.jsdelivr.net/npm/jsuites/dist/jsuites.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jsuites/dist/jsuites.min.css" type="text/css" />

<script src="/path/to/topmenu.min.js"></script>
<link rel="stylesheet" href="/path/to/topmenu.min.css" type="text/css" />

Initialize plugin on jSpreadsheet

jspreadsheet(document.getElementById('spreadsheet'), {
	...
	plugins: [
      ...
      { name:'topmenu', plugin:jss_topmenu},
      ...  
    ],
    ...
});

CDN

You can use this CDN link

<script src="https://cdn.jsdelivr.net/gh/GBonnaire/jspreadsheet-plugins-and-editors@latest/plugins/JSSV8/dist/topmenu.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/GBonnaire/jspreadsheet-plugins-and-editors@latest/plugins/JSSV8/dist/topmenu.min.css" type="text/css" />

NPM

npm install @jspreadsheet/topmenu

import jss_topmenu from  '@jspreadsheet/topmenu';
import '@jspreadsheet/topmenu/style.css';

Copyright and license

Copyright GBonnaire.fr and Code released under the MIT License