pixel-react 1.1.7 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/install-state.gz +0 -0
- package/lib/components/AttachmentButton/AttachmentButton.d.ts +5 -0
- package/lib/components/AttachmentButton/AttachmentButton.stories.d.ts +9 -0
- package/lib/components/AttachmentButton/index.d.ts +1 -0
- package/lib/components/AttachmentButton/types.d.ts +8 -0
- package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +14 -0
- package/lib/components/ExcelFile/ColorBarSelector/ColorBarSelector.d.ts +8 -0
- package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +4 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +7 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +4 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +5 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +5 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +5 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +8 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +10 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +5 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +81 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +130 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +1 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +8 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +22 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +17 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +21 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +24 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +13 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +67 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +22 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +11 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +27 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +95 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +215 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +45 -0
- package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +3 -0
- package/lib/components/ExcelFile/ExcelFile.stories.d.ts +6 -0
- package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +15 -0
- package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +3 -0
- package/lib/components/ExcelFile/ImportExcelStyles.d.ts +24 -0
- package/lib/components/ExcelFile/Types.d.ts +176 -0
- package/lib/components/ExcelFile/index.d.ts +1 -0
- package/lib/components/IconRadioGroup/IconRadioGroup.d.ts +5 -0
- package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +7 -0
- package/lib/components/IconRadioGroup/index.d.ts +1 -0
- package/lib/components/IconRadioGroup/type.d.ts +41 -0
- package/lib/components/RadioButton/radioButtonTypes.d.ts +15 -0
- package/lib/components/RadioGroup/RadioGroup.stories.d.ts +2 -1
- package/lib/components/RadioGroup/radioGroupTypes.d.ts +15 -0
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/Select/types.d.ts +4 -0
- package/lib/components/Table/Table.d.ts +1 -1
- package/lib/components/Table/Types.d.ts +8 -0
- package/lib/components/TableTree/TableTree.d.ts +1 -0
- package/lib/index.d.ts +71 -3
- package/lib/index.esm.js +408 -151
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +409 -150
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/src/assets/Themes/BaseTheme.scss +11 -0
- package/src/assets/Themes/DarkTheme.scss +10 -0
- package/src/assets/icons/add_file.svg +14 -0
- package/src/assets/icons/all_borders.svg +3 -0
- package/src/assets/icons/bold.svg +3 -0
- package/src/assets/icons/border_bottom.svg +3 -0
- package/src/assets/icons/border_left.svg +3 -0
- package/src/assets/icons/border_right.svg +3 -0
- package/src/assets/icons/border_top.svg +3 -0
- package/src/assets/icons/clone_icon.svg +3 -0
- package/src/assets/icons/double_underline.svg +5 -0
- package/src/assets/icons/fill_color.svg +7 -0
- package/src/assets/icons/formate_painter.svg +5 -0
- package/src/assets/icons/full_access_icon.svg +4 -0
- package/src/assets/icons/history_icon.svg +19 -0
- package/src/assets/icons/italic.svg +3 -0
- package/src/assets/icons/jira.svg +3 -0
- package/src/assets/icons/linked_defects.svg +11 -0
- package/src/assets/icons/move_icon.svg +5 -0
- package/src/assets/icons/nlp_help_icon.svg +3 -0
- package/src/assets/icons/no_access_icon.svg +4 -0
- package/src/assets/icons/no_border.svg +3 -0
- package/src/assets/icons/notification_icon.svg +3 -0
- package/src/assets/icons/strike_through.svg +3 -0
- package/src/assets/icons/text_align_center.svg +3 -0
- package/src/assets/icons/text_align_left.svg +3 -0
- package/src/assets/icons/text_align_right.svg +3 -0
- package/src/assets/icons/text_color.svg +3 -0
- package/src/assets/icons/underline.svg +4 -0
- package/src/assets/icons/update_icon.svg +3 -0
- package/src/assets/icons/view_access_icon.svg +4 -0
- package/src/components/AppHeader/AppHeader.scss +65 -4
- package/src/components/AppHeader/AppHeader.stories.tsx +1 -0
- package/src/components/AppHeader/AppHeader.tsx +7 -5
- package/src/components/AttachmentButton/AttachmentButton.scss +9 -0
- package/src/components/AttachmentButton/AttachmentButton.stories.tsx +76 -0
- package/src/components/AttachmentButton/AttachmentButton.tsx +113 -0
- package/src/components/AttachmentButton/index.ts +1 -0
- package/src/components/AttachmentButton/types.ts +8 -0
- package/src/components/Drawer/Drawer.scss +0 -1
- package/src/components/ExcelFile/ChangeExcelStyles.tsx +78 -0
- package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +13 -0
- package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.tsx +43 -0
- package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +102 -0
- package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +104 -0
- package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +131 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +201 -0
- package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +123 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +25 -0
- package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +49 -0
- package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +37 -0
- package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +46 -0
- package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +31 -0
- package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +5 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +5 -0
- package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +102 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +32 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.css +144 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +494 -0
- package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +19 -0
- package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +302 -0
- package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +18 -0
- package/src/components/ExcelFile/ExcelFile/Excel/context.ts +12 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +200 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +137 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +154 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +10 -0
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +69 -0
- package/src/components/ExcelFile/ExcelFile/Excel/index.ts +48 -0
- package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +388 -0
- package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +82 -0
- package/src/components/ExcelFile/ExcelFile/Excel/point.ts +15 -0
- package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +682 -0
- package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +257 -0
- package/src/components/ExcelFile/ExcelFile/Excel/types.ts +269 -0
- package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +58 -0
- package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +8 -0
- package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +9 -0
- package/src/components/ExcelFile/ExcelFile/Excel/util.ts +173 -0
- package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +27 -0
- package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +520 -0
- package/src/components/ExcelFile/ExcelFile.stories.tsx +132 -0
- package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.scss +16 -0
- package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +79 -0
- package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +22 -0
- package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +271 -0
- package/src/components/ExcelFile/ImportExcelStyles.tsx +86 -0
- package/src/components/ExcelFile/Types.ts +241 -0
- package/src/components/ExcelFile/index.ts +1 -0
- package/src/components/Icon/Icons.scss +2 -3
- package/src/components/Icon/iconList.ts +59 -1
- package/src/components/IconRadioGroup/IconRadioGroup.scss +60 -0
- package/src/components/IconRadioGroup/IconRadioGroup.stories.tsx +108 -0
- package/src/components/IconRadioGroup/IconRadioGroup.tsx +72 -0
- package/src/components/IconRadioGroup/index.ts +1 -0
- package/src/components/IconRadioGroup/type.ts +50 -0
- package/src/components/Modal/modal.scss +1 -1
- package/src/components/MultiSelect/MultiSelect.scss +2 -2
- package/src/components/RadioButton/RadioButton.scss +74 -68
- package/src/components/RadioButton/RadioButton.tsx +22 -15
- package/src/components/RadioButton/radioButtonTypes.tsx +18 -0
- package/src/components/RadioGroup/RadioGroup.stories.tsx +42 -1
- package/src/components/RadioGroup/RadioGroup.tsx +3 -0
- package/src/components/RadioGroup/radioGroupTypes.tsx +18 -0
- package/src/components/Select/Select.scss +1 -2
- package/src/components/Select/Select.tsx +3 -2
- package/src/components/Select/types.ts +5 -0
- package/src/components/SequentialConnectingBranch/components/Branches/Branches.scss +5 -5
- package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +1 -1
- package/src/components/Table/Table.scss +1 -0
- package/src/components/Table/Table.tsx +28 -13
- package/src/components/Table/Types.ts +8 -0
- package/src/components/TableTree/TableTree.scss +18 -2
- package/src/components/TableTree/TableTree.stories.tsx +9 -51
- package/src/components/TableTree/TableTree.tsx +15 -2
- package/src/index.ts +4 -0
package/.yarn/install-state.gz
CHANGED
Binary file
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
2
|
+
import AttachmentButton from './AttachmentButton';
|
3
|
+
declare const meta: Meta<typeof AttachmentButton>;
|
4
|
+
type Story = StoryObj<typeof AttachmentButton>;
|
5
|
+
export declare const Default: Story;
|
6
|
+
export declare const SmallFileLimit: Story;
|
7
|
+
export declare const LargeFileLimit: Story;
|
8
|
+
export declare const DisabledUploader: Story;
|
9
|
+
export default meta;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from './AttachmentButton';
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { CellBase } from "./ExcelFile/Excel";
|
2
|
+
interface ChangeExcelStylesOptions {
|
3
|
+
sheetName: string;
|
4
|
+
styleType: string;
|
5
|
+
value: string;
|
6
|
+
selectedCell: {
|
7
|
+
row: number;
|
8
|
+
column: number;
|
9
|
+
}[];
|
10
|
+
}
|
11
|
+
export default function ChangeExcelStyles(setWorksheetsData: React.Dispatch<React.SetStateAction<{
|
12
|
+
[key: string]: Matrix<CellBase>;
|
13
|
+
}>>, options: ChangeExcelStylesOptions): void;
|
14
|
+
export {};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import './ColorBarSelector.scss';
|
3
|
+
interface ColorBarSelectorProps {
|
4
|
+
getColorValue: (color: string) => void;
|
5
|
+
disabled: boolean;
|
6
|
+
}
|
7
|
+
declare const ColorBarSelector: React.FC<ColorBarSelectorProps>;
|
8
|
+
export default ColorBarSelector;
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import * as Types from './types';
|
3
|
+
export declare const Cell: React.FC<Types.CellComponentProps>;
|
4
|
+
export declare const enhance: (CellComponent: React.ComponentType<Types.CellComponentProps>) => React.FC<Omit<Types.CellComponentProps, "selected" | "active" | "copied" | "dragging" | "mode" | "data" | "select" | "activate" | "setCellDimensions">>;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
declare const ColumnIndicator: Types.ColumnIndicatorComponent;
|
4
|
+
export default ColumnIndicator;
|
5
|
+
export declare const enhance: (ColumnIndicatorComponent: Types.ColumnIndicatorComponent) => React.FC<Omit<Types.ColumnIndicatorProps, "selected" | "onSelect">>;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
declare const CornerIndicator: Types.CornerIndicatorComponent;
|
4
|
+
export default CornerIndicator;
|
5
|
+
export declare const enhance: (CornerIndicatorComponent: Types.CornerIndicatorComponent) => React.FC<Omit<Types.CornerIndicatorProps, "selected" | "onSelect">>;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
export declare const TRUE_TEXT = "TRUE";
|
4
|
+
export declare const FALSE_TEXT = "FALSE";
|
5
|
+
/** The default Spreadsheet DataViewer component */
|
6
|
+
declare const DataViewer: <Cell extends Types.CellBase<Value>, Value>({ cell, evaluatedCell, }: Types.DataViewerProps<Cell>) => React.ReactElement;
|
7
|
+
export default DataViewer;
|
8
|
+
export declare function convertBooleanToText(value: boolean): string;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
export type Props = {
|
4
|
+
variant?: string;
|
5
|
+
dimensions?: Types.Dimensions | null | undefined;
|
6
|
+
hidden?: boolean;
|
7
|
+
dragging?: boolean;
|
8
|
+
};
|
9
|
+
declare const FloatingRect: React.FC<Props>;
|
10
|
+
export default FloatingRect;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
declare const RowIndicator: Types.RowIndicatorComponent;
|
4
|
+
export default RowIndicator;
|
5
|
+
export declare const enhance: (RowIndicatorComponent: Types.RowIndicatorComponent) => React.FC<Omit<Types.RowIndicatorProps, "selected" | "onSelect">>;
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import * as Types from "./types";
|
3
|
+
import * as Matrix from "./matrix";
|
4
|
+
import * as Point from "./point";
|
5
|
+
import { Selection } from "./selection";
|
6
|
+
import "./Spreadsheet.css";
|
7
|
+
/** The Spreadsheet component props */
|
8
|
+
export type Props<CellType extends Types.CellBase> = {
|
9
|
+
/** The spreadsheet's data */
|
10
|
+
data: Matrix.Matrix<CellType>;
|
11
|
+
/** Class name to be added to the spreadsheet's root element */
|
12
|
+
className?: string;
|
13
|
+
/**
|
14
|
+
* Use dark colors that complement dark mode
|
15
|
+
* @defaultValue `false`
|
16
|
+
*/
|
17
|
+
darkMode?: boolean;
|
18
|
+
/**
|
19
|
+
* Function used to create the formula parser (instance of
|
20
|
+
* "fast-formula-parser") used by the Spreadsheet by getting the spreadsheet's
|
21
|
+
* data.
|
22
|
+
* @defaultValue function which creates a formula parser bound to the
|
23
|
+
* Spreadsheet's data.
|
24
|
+
* @see `createFormulaParser`
|
25
|
+
* @see https://www.npmjs.com/package/fast-formula-parser
|
26
|
+
*/
|
27
|
+
createFormulaParser?: Types.CreateFormulaParser;
|
28
|
+
/**
|
29
|
+
* Labels to use in column indicators.
|
30
|
+
* @defaultValue alphabetical labels.
|
31
|
+
*/
|
32
|
+
columnLabels?: string[];
|
33
|
+
/**
|
34
|
+
* Labels to use in row indicators.
|
35
|
+
* @defaultValue row index labels.
|
36
|
+
*/
|
37
|
+
rowLabels?: string[];
|
38
|
+
/**
|
39
|
+
* If set to true, hides the row indicators of the spreadsheet.
|
40
|
+
* @defaultValue `false`.
|
41
|
+
*/
|
42
|
+
hideRowIndicators?: boolean;
|
43
|
+
/**
|
44
|
+
* If set to true, hides the column indicators of the spreadsheet.
|
45
|
+
* @defaultValue `false`.
|
46
|
+
*/
|
47
|
+
hideColumnIndicators?: boolean;
|
48
|
+
/** The selected cells in the worksheet. */
|
49
|
+
selected?: Selection;
|
50
|
+
/** Component rendered above each column. */
|
51
|
+
ColumnIndicator?: Types.ColumnIndicatorComponent;
|
52
|
+
/** Component rendered in the corner of row and column indicators. */
|
53
|
+
CornerIndicator?: Types.CornerIndicatorComponent;
|
54
|
+
/** Component rendered next to each row. */
|
55
|
+
RowIndicator?: Types.RowIndicatorComponent;
|
56
|
+
/** The Spreadsheet's table component. */
|
57
|
+
Table?: Types.TableComponent;
|
58
|
+
/** The Spreadsheet's row component. */
|
59
|
+
Row?: Types.RowComponent;
|
60
|
+
/** The spreadsheet's header row component */
|
61
|
+
HeaderRow?: Types.HeaderRowComponent;
|
62
|
+
/** The Spreadsheet's cell component. */
|
63
|
+
Cell?: Types.CellComponent<CellType>;
|
64
|
+
/** Component rendered for cells in view mode. */
|
65
|
+
DataViewer?: Types.DataViewerComponent<CellType>;
|
66
|
+
/** Component rendered for cells in edit mode. */
|
67
|
+
DataEditor?: Types.DataEditorComponent<CellType>;
|
68
|
+
/** Callback called on key down inside the spreadsheet. */
|
69
|
+
onKeyDown?: (event: React.KeyboardEvent) => void;
|
70
|
+
/** Callback called when the Spreadsheet's selection changes. */
|
71
|
+
onSelect?: (selected: Selection) => void;
|
72
|
+
/** Callback called when Spreadsheet's active cell changes. */
|
73
|
+
onActivate?: (active: Point.Point) => void;
|
74
|
+
/** Callback called when the Spreadsheet's evaluated data changes. */
|
75
|
+
onEvaluatedDataChange?: (data: Matrix.Matrix<CellType>) => void;
|
76
|
+
};
|
77
|
+
/**
|
78
|
+
* The Spreadsheet component
|
79
|
+
*/
|
80
|
+
declare const Spreadsheet: <CellType extends Types.CellBase>(props: Props<CellType>) => React.ReactElement;
|
81
|
+
export default Spreadsheet;
|
@@ -0,0 +1,130 @@
|
|
1
|
+
import { Matrix } from "./matrix";
|
2
|
+
import { Point } from "./point";
|
3
|
+
import { CellBase, Dimensions, CommitChanges, CreateFormulaParser } from "./types";
|
4
|
+
import { Selection } from "./selection";
|
5
|
+
export declare const SET_DATA = "SET_DATA";
|
6
|
+
export declare const SET_CREATE_FORMULA_PARSER = "SET_CREATE_FORMULA_PARSER";
|
7
|
+
export declare const SELECT_ENTIRE_ROW = "SELECT_ENTIRE_ROW";
|
8
|
+
export declare const SELECT_ENTIRE_COLUMN = "SELECT_ENTIRE_COLUMN";
|
9
|
+
export declare const SELECT_ENTIRE_WORKSHEET = "SELECT_ENTIRE_WORKSHEET";
|
10
|
+
export declare const SET_SELECTION = "SET_SELECTION";
|
11
|
+
export declare const SELECT = "SELECT";
|
12
|
+
export declare const ACTIVATE = "ACTIVATE";
|
13
|
+
export declare const SET_CELL_DATA = "SET_CELL_DATA";
|
14
|
+
export declare const SET_CELL_DIMENSIONS = "SET_CELL_DIMENSIONS";
|
15
|
+
export declare const COPY = "COPY";
|
16
|
+
export declare const CUT = "CUT";
|
17
|
+
export declare const PASTE = "PASTE";
|
18
|
+
export declare const EDIT = "EDIT";
|
19
|
+
export declare const VIEW = "VIEW";
|
20
|
+
export declare const CLEAR = "CLEAR";
|
21
|
+
export declare const BLUR = "BLUR";
|
22
|
+
export declare const KEY_PRESS = "KEY_PRESS";
|
23
|
+
export declare const KEY_DOWN = "KEY_DOWN";
|
24
|
+
export declare const DRAG_START = "DRAG_START";
|
25
|
+
export declare const DRAG_END = "DRAG_END";
|
26
|
+
export declare const COMMIT = "COMMIT";
|
27
|
+
export type BaseAction<T extends string> = {
|
28
|
+
type: T;
|
29
|
+
};
|
30
|
+
export type SetDataAction = BaseAction<typeof SET_DATA> & {
|
31
|
+
payload: {
|
32
|
+
data: Matrix<CellBase>;
|
33
|
+
};
|
34
|
+
};
|
35
|
+
export declare function setData(data: Matrix<CellBase>): SetDataAction;
|
36
|
+
export type SetCreateFormulaParserAction = BaseAction<typeof SET_CREATE_FORMULA_PARSER> & {
|
37
|
+
payload: {
|
38
|
+
createFormulaParser: CreateFormulaParser;
|
39
|
+
};
|
40
|
+
};
|
41
|
+
export declare function setCreateFormulaParser(createFormulaParser: CreateFormulaParser): SetCreateFormulaParserAction;
|
42
|
+
export type SelectEntireRowAction = BaseAction<typeof SELECT_ENTIRE_ROW> & {
|
43
|
+
payload: {
|
44
|
+
row: number;
|
45
|
+
extend: boolean;
|
46
|
+
};
|
47
|
+
};
|
48
|
+
export declare function selectEntireRow(row: number, extend: boolean): SelectEntireRowAction;
|
49
|
+
export type SelectEntireColumnAction = BaseAction<typeof SELECT_ENTIRE_COLUMN> & {
|
50
|
+
payload: {
|
51
|
+
column: number;
|
52
|
+
extend: boolean;
|
53
|
+
};
|
54
|
+
};
|
55
|
+
export declare function selectEntireColumn(column: number, extend: boolean): SelectEntireColumnAction;
|
56
|
+
export type SelectEntireWorksheetAction = BaseAction<typeof SELECT_ENTIRE_WORKSHEET>;
|
57
|
+
export declare function selectEntireWorksheet(): SelectEntireWorksheetAction;
|
58
|
+
export type SetSelectionAction = BaseAction<typeof SET_SELECTION> & {
|
59
|
+
payload: {
|
60
|
+
selection: Selection;
|
61
|
+
};
|
62
|
+
};
|
63
|
+
export declare function setSelection(selection: Selection): SetSelectionAction;
|
64
|
+
export type SelectAction = BaseAction<typeof SELECT> & {
|
65
|
+
payload: {
|
66
|
+
point: Point;
|
67
|
+
};
|
68
|
+
};
|
69
|
+
export declare function select(point: Point): SelectAction;
|
70
|
+
export type ActivateAction = BaseAction<typeof ACTIVATE> & {
|
71
|
+
payload: {
|
72
|
+
point: Point;
|
73
|
+
};
|
74
|
+
};
|
75
|
+
export declare function activate(point: Point): ActivateAction;
|
76
|
+
export type SetCellDataAction = BaseAction<typeof SET_CELL_DATA> & {
|
77
|
+
payload: {
|
78
|
+
active: Point;
|
79
|
+
data: CellBase;
|
80
|
+
};
|
81
|
+
};
|
82
|
+
export declare function setCellData(active: Point, data: CellBase): SetCellDataAction;
|
83
|
+
export type SetCellDimensionsAction = BaseAction<typeof SET_CELL_DIMENSIONS> & {
|
84
|
+
payload: {
|
85
|
+
point: Point;
|
86
|
+
dimensions: Dimensions;
|
87
|
+
};
|
88
|
+
};
|
89
|
+
export declare function setCellDimensions(point: Point, dimensions: Dimensions): SetCellDimensionsAction;
|
90
|
+
export type PasteAction = BaseAction<typeof PASTE> & {
|
91
|
+
payload: {
|
92
|
+
data: string;
|
93
|
+
};
|
94
|
+
};
|
95
|
+
export declare function paste(data: string): PasteAction;
|
96
|
+
export type KeyPressAction = BaseAction<typeof KEY_PRESS> & {
|
97
|
+
payload: {
|
98
|
+
event: React.KeyboardEvent;
|
99
|
+
};
|
100
|
+
};
|
101
|
+
export declare function keyPress(event: React.KeyboardEvent): KeyPressAction;
|
102
|
+
export type KeyDownAction = BaseAction<typeof KEY_DOWN> & {
|
103
|
+
payload: {
|
104
|
+
event: React.KeyboardEvent;
|
105
|
+
};
|
106
|
+
};
|
107
|
+
export declare function keyDown(event: React.KeyboardEvent): KeyDownAction;
|
108
|
+
export type DragStartAction = BaseAction<typeof DRAG_START>;
|
109
|
+
export declare function dragStart(): DragStartAction;
|
110
|
+
export type DragEndAction = BaseAction<typeof DRAG_END>;
|
111
|
+
export declare function dragEnd(): DragEndAction;
|
112
|
+
export type CommitAction = BaseAction<typeof COMMIT> & {
|
113
|
+
payload: {
|
114
|
+
changes: CommitChanges;
|
115
|
+
};
|
116
|
+
};
|
117
|
+
export declare function commit(changes: CommitChanges): CommitAction;
|
118
|
+
export type CopyAction = BaseAction<typeof COPY>;
|
119
|
+
export declare function copy(): CopyAction;
|
120
|
+
export type CutAction = BaseAction<typeof CUT>;
|
121
|
+
export declare function cut(): CutAction;
|
122
|
+
export type EditAction = BaseAction<typeof EDIT>;
|
123
|
+
export declare function edit(): EditAction;
|
124
|
+
export type ViewAction = BaseAction<typeof VIEW>;
|
125
|
+
export declare function view(): ViewAction;
|
126
|
+
export type ClearAction = BaseAction<typeof CLEAR>;
|
127
|
+
export declare function clear(): ClearAction;
|
128
|
+
export type BlurAction = BaseAction<typeof BLUR>;
|
129
|
+
export declare function blur(): BlurAction;
|
130
|
+
export type Action = SetDataAction | SetCreateFormulaParserAction | SelectEntireRowAction | SelectEntireColumnAction | SelectEntireWorksheetAction | SetSelectionAction | SelectAction | ActivateAction | SetCellDataAction | SetCellDimensionsAction | PasteAction | KeyPressAction | KeyDownAction | DragStartAction | DragEndAction | CommitAction | CopyAction | CutAction | EditAction | ViewAction | ClearAction | BlurAction;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import reducer from "./reducer";
|
3
|
+
import { Action } from "./actions";
|
4
|
+
export type ReducerState = React.ReducerState<typeof reducer>;
|
5
|
+
export type Dispatch = React.Dispatch<Action>;
|
6
|
+
export type Value = [ReducerState, Dispatch];
|
7
|
+
declare const context: import("use-context-selector").Context<Value>;
|
8
|
+
export default context;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import FormulaParser, { Value } from "fast-formula-parser";
|
2
|
+
import * as Matrix from "../matrix";
|
3
|
+
import { Point } from "../point";
|
4
|
+
import { CellBase, CreateFormulaParser } from "../types";
|
5
|
+
import { PointGraph } from "./point-graph";
|
6
|
+
export declare class Model<Cell extends CellBase> {
|
7
|
+
readonly data: Matrix.Matrix<Cell>;
|
8
|
+
readonly evaluatedData: Matrix.Matrix<Cell>;
|
9
|
+
readonly referenceGraph: PointGraph;
|
10
|
+
readonly createFormulaParser: CreateFormulaParser;
|
11
|
+
constructor(createFormulaParser: CreateFormulaParser, data: Matrix.Matrix<Cell>, referenceGraph?: PointGraph, evaluatedData?: Matrix.Matrix<Cell>);
|
12
|
+
}
|
13
|
+
export declare function updateCellValue<Cell extends CellBase>(model: Model<Cell>, point: Point, cell: Cell): Model<Cell>;
|
14
|
+
/**
|
15
|
+
*
|
16
|
+
* @param data - the spreadsheet data
|
17
|
+
* @returns the spreadsheet reference graph
|
18
|
+
*/
|
19
|
+
export declare function createReferenceGraph(data: Matrix.Matrix<CellBase>): PointGraph;
|
20
|
+
export declare function createEvaluatedData<Cell extends CellBase>(data: Matrix.Matrix<Cell>, referenceGraph: PointGraph, createFormulaParser: CreateFormulaParser): Matrix.Matrix<Cell>;
|
21
|
+
/** Get the computed value of a formula cell */
|
22
|
+
export declare function getFormulaComputedValue(value: string, point: Point, formulaParser: FormulaParser): Value;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import FormulaParser, { FormulaParserConfig, Value } from "fast-formula-parser";
|
2
|
+
import { Point } from "../point";
|
3
|
+
import * as Matrix from "../matrix";
|
4
|
+
import { CellBase } from "../types";
|
5
|
+
import { PointSet } from "./point-set";
|
6
|
+
export declare const FORMULA_VALUE_PREFIX = "=";
|
7
|
+
/** Returns whether given value is a formula */
|
8
|
+
export declare function isFormulaValue(value: unknown): value is string;
|
9
|
+
/** Extracts formula from value */
|
10
|
+
export declare function extractFormula(value: string): string;
|
11
|
+
export declare function createFormulaParser(data: Matrix.Matrix<CellBase>, config?: Omit<FormulaParserConfig, "onCell" | "onRange">): FormulaParser;
|
12
|
+
/**
|
13
|
+
* For given formula returns the cell references
|
14
|
+
* @param formula - formula to get references for
|
15
|
+
*/
|
16
|
+
export declare function getReferences(formula: string, point: Point, data: Matrix.Matrix<CellBase>): PointSet;
|
17
|
+
export declare function evaluate(formula: string, point: Point, formulaParser: FormulaParser): Value;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Point } from "../point";
|
2
|
+
import { PointSet } from "./point-set";
|
3
|
+
/**
|
4
|
+
* Immutable directed graph of points, where each point can have multiple
|
5
|
+
* edges to other points.
|
6
|
+
*/
|
7
|
+
export declare class PointGraph {
|
8
|
+
private forwards;
|
9
|
+
private constructor();
|
10
|
+
/** Creates a new PointGraph instance from an array-like or iterable object */
|
11
|
+
static from(pairs: Iterable<[Point, PointSet]>): PointGraph;
|
12
|
+
set(node: Point, edges: PointSet): PointGraph;
|
13
|
+
get(node: Point): PointSet;
|
14
|
+
getBackwards(node: Point): PointSet;
|
15
|
+
getBackwardsRecursive(node: Point, visited?: PointSet): PointSet;
|
16
|
+
/** Determine whether the graph has a circular dependency, starting from given start point */
|
17
|
+
hasCircularDependency(startPoint: Point): boolean;
|
18
|
+
[Symbol.iterator](): Iterator<[Point, PointSet]>;
|
19
|
+
/** Get the points in the graph in a breadth-first order */
|
20
|
+
traverseBFSBackwards(): Generator<Point>;
|
21
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import * as Point from "../point";
|
2
|
+
/**
|
3
|
+
* Immutable Set like interface of points
|
4
|
+
*/
|
5
|
+
export declare class PointSet {
|
6
|
+
private set;
|
7
|
+
private constructor();
|
8
|
+
/** Creates a new PointSet instance from an array-like or iterable object */
|
9
|
+
static from(points: Iterable<Point.Point>): PointSet;
|
10
|
+
/** Returns a boolean asserting whether an point is present with the given value in the Set object or not */
|
11
|
+
has(point: Point.Point): boolean;
|
12
|
+
/** Returns the number of points in a PointSet object */
|
13
|
+
get size(): number;
|
14
|
+
/** Add the given point to given set */
|
15
|
+
add(point: Point.Point): PointSet;
|
16
|
+
/** Remove the given point from the given set */
|
17
|
+
delete(point: Point.Point): PointSet;
|
18
|
+
/** Returns a new PointSet with points common to the set and other */
|
19
|
+
difference(other: PointSet): PointSet;
|
20
|
+
/** Returns a new PointSet with all points in both sets */
|
21
|
+
union(other: PointSet): PointSet;
|
22
|
+
/** Creates an iterator of points in the set */
|
23
|
+
[Symbol.iterator](): Iterator<Point.Point>;
|
24
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import Spreadsheet from "./Spreadsheet";
|
2
|
+
import DataEditor from "./DataEditor";
|
3
|
+
import DataViewer from "./DataViewer";
|
4
|
+
export default Spreadsheet;
|
5
|
+
export { Spreadsheet, DataEditor, DataViewer };
|
6
|
+
export type { Props } from "./Spreadsheet";
|
7
|
+
export { createEmpty as createEmptyMatrix } from "./matrix";
|
8
|
+
export type { Matrix } from "./matrix";
|
9
|
+
export { Selection, EmptySelection, EntireAxisSelection, EntireColumnsSelection, EntireRowsSelection, EntireSelection, EntireWorksheetSelection, InvalidIndexError, RangeSelection, } from "./selection";
|
10
|
+
export { PointRange } from "./point-range";
|
11
|
+
export type { Point } from "./point";
|
12
|
+
export type { CellBase, CellDescriptor, Mode, Dimensions, CellChange, CellComponentProps, CellComponent, DataViewerProps, DataViewerComponent, DataEditorProps, DataEditorComponent, ColumnIndicatorComponent, ColumnIndicatorProps, RowIndicatorComponent, RowIndicatorProps, CornerIndicatorComponent, CornerIndicatorProps, RowComponent, RowProps, TableComponent, TableProps, HeaderRowProps, HeaderRowComponent, } from "./types";
|
13
|
+
export { createFormulaParser, Model } from "./engine";
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import * as Point from "./point";
|
2
|
+
/** A two-dimensional array of given type T in rows and columns */
|
3
|
+
export type Matrix<T> = Array<Array<T | undefined>>;
|
4
|
+
/**
|
5
|
+
* Creates an empty matrix with given rows and columns
|
6
|
+
* @param rows - integer, the amount of rows the matrix should have
|
7
|
+
* @param columns - integer, the amount of columns the matrix should have
|
8
|
+
* @returns an empty matrix with given rows and columns
|
9
|
+
*/
|
10
|
+
export declare function createEmpty<T>(rows: number, columns: number): Matrix<T>;
|
11
|
+
/** Gets the value at row and column of matrix. */
|
12
|
+
export declare function get<T>(point: Point.Point, matrix: Matrix<T>): T | undefined;
|
13
|
+
/** Creates a slice of matrix from startPoint up to, but not including, endPoint. */
|
14
|
+
export declare function slice<T>(startPoint: Point.Point, endPoint: Point.Point, matrix: Matrix<T>): Matrix<T>;
|
15
|
+
/** Sets the value at row and column of matrix. If a row doesn't exist, it's created. */
|
16
|
+
export declare function set<T>(point: Point.Point, value: T, matrix: Matrix<T>): Matrix<T>;
|
17
|
+
/** Like Matrix.set() but mutates the matrix */
|
18
|
+
export declare function mutableSet<T>(point: Point.Point, value: T, matrix: Matrix<T>): void;
|
19
|
+
/** Removes the coordinate of matrix */
|
20
|
+
export declare function unset<T>(point: Point.Point, matrix: Matrix<T>): Matrix<T>;
|
21
|
+
/** Creates an array of values by running each element in collection thru iteratee. */
|
22
|
+
export declare function map<T, T2>(func: (value: T | undefined, point: Point.Point) => T2, matrix: Matrix<T>): Matrix<T2>;
|
23
|
+
/** Create an iterator over the cells in the matrix */
|
24
|
+
export declare function entries<T>(matrix: Matrix<T>): IterableIterator<[Point.Point, T | undefined]>;
|
25
|
+
/**
|
26
|
+
* Converts all elements in row into a string separated by horizontalSeparator and each row string
|
27
|
+
* to string separated by verticalSeparator
|
28
|
+
*/
|
29
|
+
export declare function join(matrix: Matrix<unknown>, horizontalSeparator?: string, verticalSeparator?: string): string;
|
30
|
+
/**
|
31
|
+
* Parses a CSV separated by a horizontalSeparator and verticalSeparator into a
|
32
|
+
* Matrix using a transform function
|
33
|
+
*/
|
34
|
+
export declare function split<T>(csv: string, transform: (value: string) => T, horizontalSeparator?: string, verticalSeparator?: string | RegExp): Matrix<T>;
|
35
|
+
/** Returns whether the point exists in the matrix or not. */
|
36
|
+
export declare function has(point: Point.Point, matrix: Matrix<unknown>): boolean;
|
37
|
+
/** Counts of the rows and column in a matrix */
|
38
|
+
export type Size = {
|
39
|
+
/** Count of the rows in the matrix */
|
40
|
+
rows: number;
|
41
|
+
/** Count of the columns in the matrix */
|
42
|
+
columns: number;
|
43
|
+
};
|
44
|
+
/** Gets the count of rows and columns of given matrix */
|
45
|
+
export declare function getSize(matrix: Matrix<unknown>): Size;
|
46
|
+
/** Gets the count of rows of given matrix */
|
47
|
+
export declare function getRowsCount(matrix: Matrix<unknown>): number;
|
48
|
+
/** Gets the count of columns of given matrix */
|
49
|
+
export declare function getColumnsCount(matrix: Matrix<unknown>): number;
|
50
|
+
/**
|
51
|
+
* Pads matrix with empty rows to match given total rows
|
52
|
+
* @param matrix - matrix to pad
|
53
|
+
* @param totalRows - number of rows the matrix should have
|
54
|
+
* @returns the updated matrix
|
55
|
+
*/
|
56
|
+
export declare function padRows<T>(matrix: Matrix<T>, totalRows: number): Matrix<T>;
|
57
|
+
/**
|
58
|
+
* Pads matrix with empty columns to match given total columns
|
59
|
+
* @param matrix - matrix to pad
|
60
|
+
* @param size - minimum size of the matrix after padding.
|
61
|
+
* @returns the updated matrix
|
62
|
+
*/
|
63
|
+
export declare function pad<T>(matrix: Matrix<T>, size: Size): Matrix<T>;
|
64
|
+
export declare function toArray<T>(matrix: Matrix<T>): T[];
|
65
|
+
export declare function toArray<T1, T2>(matrix: Matrix<T1>, transform: (cell: T1 | undefined, coords: Point.Point) => T2): T2[];
|
66
|
+
/** Returns the maximum point in the matrix */
|
67
|
+
export declare function maxPoint(matrix: Matrix<unknown>): Point.Point;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* Interface for ranges between two points
|
3
|
+
*/
|
4
|
+
import * as Point from "./point";
|
5
|
+
/** Range between two points. Creates a normalized range between two given points */
|
6
|
+
export declare class PointRange {
|
7
|
+
/** The top-left point */
|
8
|
+
start: Point.Point;
|
9
|
+
/** The bottom-right point */
|
10
|
+
end: Point.Point;
|
11
|
+
constructor(source: Point.Point, target: Point.Point);
|
12
|
+
/** Iterates through all the existing points in given range */
|
13
|
+
[Symbol.iterator](): Iterator<Point.Point>;
|
14
|
+
/** Returns the size (rows x columns) of the given range */
|
15
|
+
size(): number;
|
16
|
+
/** Returns whether given point exists in given range */
|
17
|
+
has(point: Point.Point): boolean;
|
18
|
+
/** Limits given masked range with given mask */
|
19
|
+
mask(mask: PointRange): PointRange;
|
20
|
+
/** Returns whether given range is equal to this range */
|
21
|
+
equals(range: PointRange): boolean;
|
22
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/** A cell coordinates in the spreadsheet */
|
2
|
+
export type Point = {
|
3
|
+
/** The cell's column */
|
4
|
+
column: number;
|
5
|
+
/** The cell's row */
|
6
|
+
row: number;
|
7
|
+
};
|
8
|
+
/** Return whether two given points are the equal */
|
9
|
+
export declare function isEqual(source: Point, target: Point): boolean;
|
10
|
+
/** The origin point in matrices */
|
11
|
+
export declare const ORIGIN: Point;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import * as Matrix from "./matrix";
|
2
|
+
import * as Types from "./types";
|
3
|
+
import * as Point from "./point";
|
4
|
+
import { Selection, RangeSelection, EntireColumnsSelection, EntireRowsSelection } from "./selection";
|
5
|
+
import * as Actions from "./actions";
|
6
|
+
export declare const INITIAL_STATE: Types.StoreState;
|
7
|
+
export default function reducer(state: Types.StoreState, action: Actions.Action): Types.StoreState;
|
8
|
+
export declare const go: (rowDelta: number, columnDelta: number) => KeyDownHandler;
|
9
|
+
export type KeyDownHandler = (state: Types.StoreState, event: React.KeyboardEvent) => Types.StoreState | void;
|
10
|
+
export declare enum Direction {
|
11
|
+
Left = "Left",
|
12
|
+
Right = "Right",
|
13
|
+
Top = "Top",
|
14
|
+
Bottom = "Bottom"
|
15
|
+
}
|
16
|
+
export declare function getKeyDownHandler(state: Types.StoreState, event: React.KeyboardEvent): KeyDownHandler | undefined;
|
17
|
+
/** Returns whether the reducer has a handler for the given keydown event */
|
18
|
+
export declare function hasKeyDownHandler(state: Types.StoreState, event: React.KeyboardEvent): boolean;
|
19
|
+
/** Returns whether the active cell is read only */
|
20
|
+
export declare function isActiveReadOnly(state: Types.StoreState): boolean;
|
21
|
+
/** Gets active cell from given state */
|
22
|
+
export declare function getActive(state: Types.StoreState): Types.CellBase | null;
|
23
|
+
/** Modify given edge according to given active point and data */
|
24
|
+
export declare function modifyEdge<T extends Selection>(selection: T, active: Point.Point | null, data: Matrix.Matrix<unknown>, direction: Direction): T;
|
25
|
+
export declare function modifyRangeSelectionEdge(rangeSelection: RangeSelection, active: Point.Point, data: Matrix.Matrix<unknown>, edge: Direction): RangeSelection;
|
26
|
+
export declare function modifyEntireRowsSelection(selection: EntireRowsSelection, active: Point.Point, data: Matrix.Matrix<unknown>, edge: Direction): EntireRowsSelection;
|
27
|
+
export declare function modifyEntireColumnsSelection(selection: EntireColumnsSelection, active: Point.Point, data: Matrix.Matrix<unknown>, edge: Direction): EntireColumnsSelection;
|