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

slate-text-table

v0.0.3

Published

A Slate plugin to handle keyboard events in tables. (based on slate-edit-table)

Downloads

8

Readme

slate-edit-table

NPM version

A Slate plugin to handle table edition.

Demo: gitbookio.github.io/slate-edit-table/

Install

npm install slate-edit-table

Features

  • Pressing Up and Down, move the cursor to next/previous row
  • Pressing Enter, insert a new row
  • Pressing Cmd+Enter (Ctrl+Enter on Windows/Linux) exits the table, into a new default block.
  • Pressing Tab, move the select to next cell
  • Pressing Shift+Tab, move the select to previous cell

Simple Usage

import EditTable from "slate-edit-table";

const plugins = [EditTable()];

Arguments

  • [typeTable: String] — type for table
  • [typeRow: String] — type for the rows.
  • [typeCell: String] — type for the cells.
  • [exitBlockType: String] — Mod+Enter will exit the table, into the given block type. Pass null to disable this behavior.

Utilities and Change

slate-edit-table exports utilities and changes:

utils.isSelectionInTable

plugin.utils.isSelectionInTable(value: Slate.Value) => boolean

Return true if selection is inside a table cell.

utils.isSelectionOutOfTable

plugin.utils.isSelectionOutOfTable(value: Slate.Value) => boolean

Return true if selection starts and ends both outside any table. (Notice: it is NOT the opposite value of isSelectionInTable)

utils.getPosition

plugin.utils.getPosition(value: Slate.Value) => TablePosition

Returns the detailed position in the current table. Throws if not in a table.

changes.insertTable

plugin.changes.insertTable(change: Change, columns: ?number, rows: ?number) => Change

Insert a new empty table.

changes.insertRow

plugin.changes.insertRow(change: Change, at: ?number) => Change

Insert a new row after the current one or at the specific index (at).

changes.insertColumn

plugin.changes.insertColumn(change: Change, at: ?number) => Change

Insert a new column after the current one or at the specific index (at).

changes.removeTable

plugin.changes.removeTable(change: Change) => Change

Remove current table.

changes.removeRow

plugin.changes.removeRow(change: Change, at: ?number) => Change

Remove current row or the one at a specific index (at).

changes.removeColumn

plugin.changes.removeColumn(change: Change, at: ?number) => Change

Remove current column or the one at a specific index (at).

changes.moveSelection

plugin.changes.moveSelection(change: Change, column: number, row: number) => Change

Move the selection to a specific position in the table.

changes.moveSelectionBy

plugin.changes.moveSelectionBy(change: Change, column: number, row: number) => Change

Move the selection by the given amount of columns and rows.

changes.setColumnAlign

plugin.changes.setColumnAlign(change: Change, align: string, at: number) => Change

Sets column alignment for a given column (at), in the current table. align defaults to center, at is optional and defaults to current cursor position.

The align values are stored in the table node's data. table.node.data.get('align') should be an array of aligns string, corresponding to each column.

TablePosition

An instance of TablePosition represents a position within a table (row and column). You can get your current position in a table by using plugin.utils.getPosition(value).

position.getWidth() => number

Returns the number of columns in the current table.

position.getHeight() => number

Returns the number of rows in the current table.

position.getRowIndex() => number

Returns the index of the current row in the table.

position.getColumnIndex() => number

Return the index of the current column in the table.

position.isFirstCell() => boolean

True if on first row and first column of the table

position.isLastCell() => boolean

True if on last row and last column of the table

position.isFirstRow() => boolean

True if on first row

position.isLastRow() => boolean

True if on last row

position.isFirstColumn() => boolean

True if on first column

position.isLastColumn() => boolean

True if on last column