0.1.3 • Published 6 years ago

slate-bad-table v0.1.3

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

slate-bad-table

A slate plugin to handle table nested with block; this plugin is expected to be used with GitbookIO/slate-edit-table

Install

npm i --save slate-bad-table

Features

  1. Provides customized getFragmentAtRange and deleteAtRange for copy/paste
  2. Provides rules for customizing your own getFragmentAtRange and deleteAtRange

Simple Usage

import createBadTablePlugin from 'slate-bad-table';
const plugins = [createBadTablePlugin()]

Arguments

  • [typeBadTable: 'bad-table'] string for the table type
  • [typeBadRow: 'bad-table-row'] string for the row type
  • [typeBadCell: 'bad-table-cell'] string for the cell type
  • [typeParagraph: 'paragraph'] string for paragraph type

Utils

utils.getFragmentAtRange(node: Node, range: Range): Document

Customized method for copying. The method memics the default node.getFragmentAtRange, but tries to avoid bad-table* in the returned fragment;

utils.isSelectionInCell(value: Value): boolean

Return true if selection is inside a bad-table-cell

utils.isSelectionOutOfCell

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

Changes

changes.deleteAtRange(change: Change, range: Range, {normalize: true}) : Change

Customized method for delete and paste at range. The method memics the default change.deleteAtRange, but tries to keep valid bad tables. Optional option normalize is for enable/disable normalization after deleteAtRange

changes.removeTable(value:Value, {snapshot: true}) => Change

remove bad-table if the focus is in the table

changes.removeRow(value:Value, {snapshot: true}) => Change

remove bad-table-row if the focus is in the row;

changes.removeRow(value:Value, {snapshot: true}) => Change

remove bad-table-row if the focus is in the row;

Rules

Rules for rules-combinator for customizing copy/paste logic with other plugins

rules.getFragmentAtRange: Array< ( getFragmentAtRange: (Node, Range) => Document, node: Node, range: Range, next: () => Document ): Document >
  • getFragmentAtRange for the root function entry, used for node or range change; You can see example of usage at lib/rules/getFragmentAtRange/ifStartInCell
  • node, range: node and range
  • next evaluate the following rules for binding rules, see example at lib/rules/getFragmentAtRange/index
rules.deleteAtRange: Array< ( deleteAtRange: (Change, Range) => Change, node: Node, range: Range, next: () => Change ): Change >
  • deleteAtRange for the root function entry, used for range change; You can see example of usage at lib/rules/deleteAtRange/ifStartInCell
  • change, range: change and range
  • next evaluate the following rules for binding rules, see example at lib/rules/deleteAtRange/index
0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.20

6 years ago

0.0.19

6 years ago

0.0.18

6 years ago

0.0.17

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago