pixel-react 1.2.1 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/AppHeader/types.d.ts +11 -2
- package/lib/components/Avatar/Avatar.d.ts +5 -0
- package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
- package/lib/components/Avatar/index.d.ts +1 -0
- package/lib/components/Avatar/types.d.ts +26 -0
- package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +6 -7
- package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +49 -5
- package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +3 -3
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +5 -5
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +6 -6
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +2 -2
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +11 -11
- package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +5 -5
- package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +3 -3
- package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +11 -48
- package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +1 -1
- package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +11 -12
- package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +16 -0
- package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -3
- package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +12 -0
- package/lib/components/ExcelFile/Types.d.ts +2 -49
- package/lib/components/Form/Form.d.ts +1 -15
- package/lib/components/Form/Form.stories.d.ts +6 -5
- package/lib/components/Form/Forms.d.ts +8 -0
- package/lib/components/Form/index.d.ts +1 -1
- package/lib/components/Icon/types.d.ts +1 -1
- package/lib/components/MenuOption/types.d.ts +7 -7
- package/lib/components/MiniModal/MiniModal.stories.d.ts +1 -0
- package/lib/components/MiniModal/types.d.ts +6 -6
- package/lib/components/ModulesChip/ModuleChip.d.ts +4 -0
- package/lib/components/ModulesChip/ModuleChip.stories.d.ts +6 -0
- package/lib/components/ModulesChip/index.d.ts +1 -0
- package/lib/components/ModulesChip/types.d.ts +14 -0
- package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
- package/lib/components/Toastify/Toastify.d.ts +8 -0
- package/lib/components/Toastify/Toastify.stories.d.ts +6 -0
- package/lib/components/Toastify/index.d.ts +1 -0
- package/lib/components/Toastify/types.d.ts +7 -0
- package/lib/components/Tooltip/types.d.ts +6 -0
- package/lib/components/Typography/types.d.ts +1 -0
- package/lib/index.d.ts +84 -31
- package/lib/index.esm.js +26720 -881
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +26718 -875
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/StyleGuide/ColorPalette/colorPaletteList.ts +10 -0
- package/src/assets/Themes/BaseTheme.scss +2 -0
- package/src/assets/Themes/DarkTheme.scss +2 -0
- package/src/assets/icons/add_testcase.svg +3 -0
- package/src/assets/icons/add_variable_icon.svg +3 -4
- package/src/assets/icons/attachment_icon.svg +3 -0
- package/src/assets/icons/authorization_icon.svg +3 -0
- package/src/assets/icons/automation_testcase.svg +4 -0
- package/src/assets/icons/back_icon.svg +3 -0
- package/src/assets/icons/client_profile.svg +4 -0
- package/src/assets/icons/fireflink_finder_logo.svg +7 -0
- package/src/assets/icons/fireflink_platform.svg +4 -0
- package/src/assets/icons/license_expired.svg +20 -0
- package/src/assets/icons/manual_testcase.svg +3 -0
- package/src/assets/icons/variable_icon.svg +4 -0
- package/src/components/AllProjectsDropdown/AllProjectsDropdown.scss +2 -2
- package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +1 -1
- package/src/components/AppHeader/AppHeader.stories.tsx +24 -3
- package/src/components/AppHeader/AppHeader.tsx +29 -11
- package/src/components/AppHeader/types.ts +11 -3
- package/src/components/Avatar/Avatar.scss +24 -0
- package/src/components/Avatar/Avatar.stories.tsx +56 -0
- package/src/components/Avatar/Avatar.tsx +25 -0
- package/src/components/Avatar/index.ts +1 -0
- package/src/components/Avatar/types.ts +27 -0
- package/src/components/Button/types.ts +1 -1
- package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +0 -2
- package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +1 -4
- package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +0 -1
- package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +13 -13
- package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +13 -12
- package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +40 -32
- package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +4 -4
- package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +10 -10
- package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +5 -5
- package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +10 -10
- package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +6 -6
- package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +1 -1
- package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +1 -1
- package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +34 -27
- package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +5 -5
- package/src/components/ExcelFile/ExcelFile/Excel/{Spreadsheet.css → Spreadsheet.scss} +21 -37
- package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +87 -78
- package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +2 -2
- package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +121 -31
- package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +1 -1
- package/src/components/ExcelFile/ExcelFile/Excel/context.ts +4 -4
- package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +7 -7
- package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +11 -11
- package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -2
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +3 -3
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +2 -2
- package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +2 -2
- package/src/components/ExcelFile/ExcelFile/Excel/index.ts +12 -11
- package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +18 -24
- package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +1 -1
- package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +311 -41
- package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +5 -5
- package/src/components/ExcelFile/ExcelFile/Excel/types.ts +14 -66
- package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +8 -8
- package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +2 -2
- package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +3 -3
- package/src/components/ExcelFile/ExcelFile/Excel/util.ts +21 -22
- package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +0 -3
- package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +45 -403
- package/src/components/ExcelFile/ExcelFile.stories.tsx +10 -29
- package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +1 -12
- package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +0 -3
- package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +147 -127
- package/src/components/ExcelFile/Types.ts +3 -70
- package/src/components/ExcelFile/index.ts +1 -1
- package/src/components/Form/Form.d.ts +3 -0
- package/src/components/Form/Form.scss +48 -4
- package/src/components/Form/Form.stories.tsx +244 -137
- package/src/components/Form/Form.ts +2 -0
- package/src/components/Form/Forms.tsx +25 -0
- package/src/components/Form/index.ts +1 -1
- package/src/components/Icon/iconList.ts +23 -0
- package/src/components/Icon/types.ts +1 -1
- package/src/components/IconButton/IconButton.scss +1 -1
- package/src/components/MenuOption/types.ts +7 -6
- package/src/components/MiniModal/MiniModal.scss +5 -0
- package/src/components/MiniModal/MiniModal.stories.tsx +95 -0
- package/src/components/MiniModal/MiniModal.tsx +11 -6
- package/src/components/MiniModal/types.ts +6 -6
- package/src/components/ModulesChip/ModuleChip.scss +20 -0
- package/src/components/ModulesChip/ModuleChip.stories.tsx +41 -0
- package/src/components/ModulesChip/ModuleChip.tsx +31 -0
- package/src/components/ModulesChip/index.ts +1 -0
- package/src/components/ModulesChip/types.ts +14 -0
- package/src/components/MultiSelect/Dropdown.tsx +6 -1
- package/src/components/MultiSelect/MultiSelect.scss +17 -10
- package/src/components/MultiSelect/MultiSelect.stories.tsx +16 -4
- package/src/components/MultiSelect/MultiSelect.tsx +11 -4
- package/src/components/MultiSelect/MultiSelectTypes.ts +4 -3
- package/src/components/Select/Select.scss +4 -0
- package/src/components/Select/Select.tsx +2 -2
- package/src/components/Toastify/Toastify.stories.tsx +52 -0
- package/src/components/Toastify/Toastify.tsx +66 -0
- package/src/components/Toastify/index.ts +1 -0
- package/src/components/Toastify/types.ts +8 -0
- package/src/components/Tooltip/Tooltip.tsx +2 -1
- package/src/components/Tooltip/types.ts +6 -0
- package/src/components/Typography/Typography.scss +12 -4
- package/src/components/Typography/Typography.stories.tsx +2 -0
- package/src/components/Typography/Typography.tsx +2 -0
- package/src/components/Typography/types.ts +1 -0
- package/src/index.ts +9 -1
- package/src/components/ExcelFile/ChangeExcelStyles.tsx +0 -78
- package/src/components/ExcelFile/ImportExcelStyles.tsx +0 -86
- package/src/components/Form/Form.tsx +0 -57
@@ -1,40 +1,125 @@
|
|
1
|
-
import { Matrix } from
|
2
|
-
import { Point } from
|
1
|
+
import { Matrix } from './matrix';
|
2
|
+
import { Point } from './point';
|
3
3
|
import {
|
4
4
|
CellBase,
|
5
5
|
Dimensions,
|
6
6
|
CommitChanges,
|
7
7
|
CreateFormulaParser,
|
8
|
-
} from
|
9
|
-
import { Selection } from
|
10
|
-
|
11
|
-
export const SET_DATA =
|
12
|
-
export const SET_CREATE_FORMULA_PARSER =
|
13
|
-
export const SELECT_ENTIRE_ROW =
|
14
|
-
export const SELECT_ENTIRE_COLUMN =
|
15
|
-
export const SELECT_ENTIRE_WORKSHEET =
|
16
|
-
export const SET_SELECTION =
|
17
|
-
export const SELECT =
|
18
|
-
export const ACTIVATE =
|
19
|
-
export const SET_CELL_DATA =
|
20
|
-
export const SET_CELL_DIMENSIONS =
|
21
|
-
export const COPY =
|
22
|
-
export const CUT =
|
23
|
-
export const PASTE =
|
24
|
-
export const EDIT =
|
25
|
-
export const VIEW =
|
26
|
-
export const CLEAR =
|
27
|
-
export const BLUR =
|
28
|
-
export const KEY_PRESS =
|
29
|
-
export const KEY_DOWN =
|
30
|
-
export const DRAG_START =
|
31
|
-
export const DRAG_END =
|
32
|
-
export const COMMIT =
|
8
|
+
} from './types';
|
9
|
+
import { Selection } from './selection';
|
10
|
+
|
11
|
+
export const SET_DATA = 'SET_DATA';
|
12
|
+
export const SET_CREATE_FORMULA_PARSER = 'SET_CREATE_FORMULA_PARSER';
|
13
|
+
export const SELECT_ENTIRE_ROW = 'SELECT_ENTIRE_ROW';
|
14
|
+
export const SELECT_ENTIRE_COLUMN = 'SELECT_ENTIRE_COLUMN';
|
15
|
+
export const SELECT_ENTIRE_WORKSHEET = 'SELECT_ENTIRE_WORKSHEET';
|
16
|
+
export const SET_SELECTION = 'SET_SELECTION';
|
17
|
+
export const SELECT = 'SELECT';
|
18
|
+
export const ACTIVATE = 'ACTIVATE';
|
19
|
+
export const SET_CELL_DATA = 'SET_CELL_DATA';
|
20
|
+
export const SET_CELL_DIMENSIONS = 'SET_CELL_DIMENSIONS';
|
21
|
+
export const COPY = 'COPY';
|
22
|
+
export const CUT = 'CUT';
|
23
|
+
export const PASTE = 'PASTE';
|
24
|
+
export const EDIT = 'EDIT';
|
25
|
+
export const VIEW = 'VIEW';
|
26
|
+
export const CLEAR = 'CLEAR';
|
27
|
+
export const BLUR = 'BLUR';
|
28
|
+
export const KEY_PRESS = 'KEY_PRESS';
|
29
|
+
export const KEY_DOWN = 'KEY_DOWN';
|
30
|
+
export const DRAG_START = 'DRAG_START';
|
31
|
+
export const DRAG_END = 'DRAG_END';
|
32
|
+
export const COMMIT = 'COMMIT';
|
33
|
+
export const BOLD = 'BOLD';
|
34
|
+
export const ITALIC = 'ITALIC';
|
35
|
+
export const UNDERLINE = 'UNDERLINE';
|
36
|
+
export const COLOR = 'COLOR';
|
37
|
+
export const BACKGROUND_COLOR = 'BACKGROUND_COLOR';
|
38
|
+
export const FORMATE_PAINTER = 'FORMATE_PAINTER';
|
33
39
|
|
34
40
|
export type BaseAction<T extends string> = {
|
35
41
|
type: T;
|
36
42
|
};
|
37
43
|
|
44
|
+
export type BoldStyle = BaseAction<typeof BOLD> & {
|
45
|
+
payload: {
|
46
|
+
data: Matrix<CellBase>;
|
47
|
+
};
|
48
|
+
};
|
49
|
+
|
50
|
+
export function bold(data: Matrix<CellBase>): BoldStyle {
|
51
|
+
return {
|
52
|
+
type: BOLD,
|
53
|
+
payload: { data },
|
54
|
+
};
|
55
|
+
}
|
56
|
+
export type ItalicStyle = BaseAction<typeof ITALIC> & {
|
57
|
+
payload: {
|
58
|
+
data: Matrix<CellBase>;
|
59
|
+
};
|
60
|
+
};
|
61
|
+
|
62
|
+
export function italic(data: Matrix<CellBase>): ItalicStyle {
|
63
|
+
return {
|
64
|
+
type: ITALIC,
|
65
|
+
payload: { data },
|
66
|
+
};
|
67
|
+
}
|
68
|
+
export type UnderlineStyle = BaseAction<typeof UNDERLINE> & {
|
69
|
+
payload: {
|
70
|
+
data: Matrix<CellBase>;
|
71
|
+
};
|
72
|
+
};
|
73
|
+
|
74
|
+
export function underline(data: Matrix<CellBase>): UnderlineStyle {
|
75
|
+
return {
|
76
|
+
type: UNDERLINE,
|
77
|
+
payload: { data },
|
78
|
+
};
|
79
|
+
}
|
80
|
+
export type ColorStyle = BaseAction<typeof COLOR> & {
|
81
|
+
payload: {
|
82
|
+
data: Matrix<CellBase>;
|
83
|
+
value: string;
|
84
|
+
};
|
85
|
+
};
|
86
|
+
|
87
|
+
export function color(data: Matrix<CellBase>, value: string): ColorStyle {
|
88
|
+
return {
|
89
|
+
type: COLOR,
|
90
|
+
payload: { data, value },
|
91
|
+
};
|
92
|
+
}
|
93
|
+
export type BackgroundStyle = BaseAction<typeof BACKGROUND_COLOR> & {
|
94
|
+
payload: {
|
95
|
+
data: Matrix<CellBase>;
|
96
|
+
value: string;
|
97
|
+
};
|
98
|
+
};
|
99
|
+
|
100
|
+
export function backgroundStyle(
|
101
|
+
data: Matrix<CellBase>,
|
102
|
+
value: string
|
103
|
+
): BackgroundStyle {
|
104
|
+
return {
|
105
|
+
type: BACKGROUND_COLOR,
|
106
|
+
payload: { data, value },
|
107
|
+
};
|
108
|
+
}
|
109
|
+
|
110
|
+
export type FormatePainterStyle = BaseAction<typeof FORMATE_PAINTER> & {
|
111
|
+
payload: {
|
112
|
+
data: Matrix<CellBase>;
|
113
|
+
};
|
114
|
+
};
|
115
|
+
|
116
|
+
export function formatePainter(data: Matrix<CellBase>): FormatePainterStyle {
|
117
|
+
return {
|
118
|
+
type: FORMATE_PAINTER,
|
119
|
+
payload: { data },
|
120
|
+
};
|
121
|
+
}
|
122
|
+
|
38
123
|
export type SetDataAction = BaseAction<typeof SET_DATA> & {
|
39
124
|
payload: {
|
40
125
|
data: Matrix<CellBase>;
|
@@ -109,13 +194,13 @@ export function selectEntireWorksheet(): SelectEntireWorksheetAction {
|
|
109
194
|
return { type: SELECT_ENTIRE_WORKSHEET };
|
110
195
|
}
|
111
196
|
|
112
|
-
export type SetSelectionAction = BaseAction<typeof SET_SELECTION> & {
|
197
|
+
export type SetSelectionAction = BaseAction<typeof SET_SELECTION> & {
|
113
198
|
payload: {
|
114
199
|
selection: Selection;
|
115
200
|
};
|
116
201
|
};
|
117
202
|
|
118
|
-
export function setSelection(selection: Selection): SetSelectionAction {
|
203
|
+
export function setSelection(selection: Selection): SetSelectionAction {
|
119
204
|
return { type: SET_SELECTION, payload: { selection } };
|
120
205
|
}
|
121
206
|
|
@@ -133,7 +218,6 @@ export function select(point: Point): SelectAction {
|
|
133
218
|
}
|
134
219
|
|
135
220
|
export type ActivateAction = BaseAction<typeof ACTIVATE> & {
|
136
|
-
|
137
221
|
payload: {
|
138
222
|
point: Point;
|
139
223
|
};
|
@@ -177,7 +261,7 @@ export function setCellDimensions(
|
|
177
261
|
};
|
178
262
|
}
|
179
263
|
|
180
|
-
export type PasteAction = BaseAction<typeof PASTE> & {
|
264
|
+
export type PasteAction = BaseAction<typeof PASTE> & {
|
181
265
|
payload: {
|
182
266
|
data: string;
|
183
267
|
};
|
@@ -299,4 +383,10 @@ export type Action =
|
|
299
383
|
| EditAction
|
300
384
|
| ViewAction
|
301
385
|
| ClearAction
|
386
|
+
| UnderlineStyle
|
387
|
+
| ItalicStyle
|
388
|
+
| BoldStyle
|
389
|
+
| ColorStyle
|
390
|
+
| BackgroundStyle
|
391
|
+
| FormatePainterStyle
|
302
392
|
| BlurAction;
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import * as React from
|
2
|
-
import { createContext } from
|
3
|
-
import reducer, { INITIAL_STATE } from
|
4
|
-
import { Action } from
|
1
|
+
import * as React from 'react';
|
2
|
+
import { createContext } from 'use-context-selector';
|
3
|
+
import reducer, { INITIAL_STATE } from './reducer';
|
4
|
+
import { Action } from './actions';
|
5
5
|
|
6
6
|
export type ReducerState = React.ReducerState<typeof reducer>;
|
7
7
|
export type Dispatch = React.Dispatch<Action>;
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import FormulaParser, { FormulaError, Value } from
|
2
|
-
import * as Matrix from
|
3
|
-
import { Point } from
|
4
|
-
import { CellBase, CreateFormulaParser } from
|
5
|
-
import * as Formula from
|
6
|
-
import { PointGraph } from
|
7
|
-
import { PointSet } from
|
1
|
+
import FormulaParser, { FormulaError, Value } from 'fast-formula-parser';
|
2
|
+
import * as Matrix from '../matrix';
|
3
|
+
import { Point } from '../point';
|
4
|
+
import { CellBase, CreateFormulaParser } from '../types';
|
5
|
+
import * as Formula from './formula';
|
6
|
+
import { PointGraph } from './point-graph';
|
7
|
+
import { PointSet } from './point-set';
|
8
8
|
|
9
9
|
export class Model<Cell extends CellBase> {
|
10
10
|
readonly data!: Matrix.Matrix<Cell>;
|
@@ -4,19 +4,19 @@ import FormulaParser, {
|
|
4
4
|
FormulaError,
|
5
5
|
FormulaParserConfig,
|
6
6
|
Value,
|
7
|
-
} from
|
8
|
-
import { PointRange } from
|
9
|
-
import { Point } from
|
10
|
-
import * as Matrix from
|
11
|
-
import { CellBase } from
|
12
|
-
import { PointSet } from
|
7
|
+
} from 'fast-formula-parser';
|
8
|
+
import { PointRange } from '../point-range';
|
9
|
+
import { Point } from '../point';
|
10
|
+
import * as Matrix from '../matrix';
|
11
|
+
import { CellBase } from '../types';
|
12
|
+
import { PointSet } from './point-set';
|
13
13
|
|
14
|
-
export const FORMULA_VALUE_PREFIX =
|
14
|
+
export const FORMULA_VALUE_PREFIX = '=';
|
15
15
|
|
16
16
|
/** Returns whether given value is a formula */
|
17
17
|
export function isFormulaValue(value: unknown): value is string {
|
18
18
|
return (
|
19
|
-
typeof value ===
|
19
|
+
typeof value === 'string' &&
|
20
20
|
value.startsWith(FORMULA_VALUE_PREFIX) &&
|
21
21
|
value.length > 1
|
22
22
|
);
|
@@ -29,7 +29,7 @@ export function extractFormula(value: string): string {
|
|
29
29
|
|
30
30
|
export function createFormulaParser(
|
31
31
|
data: Matrix.Matrix<CellBase>,
|
32
|
-
config?: Omit<FormulaParserConfig,
|
32
|
+
config?: Omit<FormulaParserConfig, 'onCell' | 'onRange'>
|
33
33
|
): FormulaParser {
|
34
34
|
return new FormulaParser({
|
35
35
|
...config,
|
@@ -78,7 +78,7 @@ export function getReferences(
|
|
78
78
|
|
79
79
|
const references = PointSet.from(
|
80
80
|
dependencies.flatMap((reference) => {
|
81
|
-
const isRange =
|
81
|
+
const isRange = 'from' in reference;
|
82
82
|
if (isRange) {
|
83
83
|
const { from, to } = reference;
|
84
84
|
|
@@ -132,6 +132,6 @@ function convertPointToCellRef(point: Point): CellRef {
|
|
132
132
|
row: point.row + 1,
|
133
133
|
col: point.column + 1,
|
134
134
|
// TODO: fill once we support multiple sheets
|
135
|
-
sheet:
|
135
|
+
sheet: 'Sheet1',
|
136
136
|
};
|
137
137
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export { Model, updateCellValue } from
|
2
|
-
export { createFormulaParser } from
|
1
|
+
export { Model, updateCellValue } from './engine';
|
2
|
+
export { createFormulaParser } from './formula';
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Point } from
|
2
|
-
import * as pointHash from
|
3
|
-
import { PointSet } from
|
1
|
+
import { Point } from '../point';
|
2
|
+
import * as pointHash from './point-hash';
|
3
|
+
import { PointSet } from './point-set';
|
4
4
|
|
5
5
|
/**
|
6
6
|
* Immutable directed graph of points, where each point can have multiple
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { Point } from
|
1
|
+
import { Point } from '../point';
|
2
2
|
|
3
3
|
export function toString(point: Point): string {
|
4
4
|
return `${point.row},${point.column}`;
|
5
5
|
}
|
6
6
|
|
7
7
|
export function fromString(point: string): Point {
|
8
|
-
const [row, column] = point.split(
|
8
|
+
const [row, column] = point.split(',');
|
9
9
|
return { row: Number(row), column: Number(column) };
|
10
10
|
}
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import Spreadsheet from
|
2
|
-
import DataEditor from
|
3
|
-
import DataViewer from
|
1
|
+
import Spreadsheet from './Spreadsheet';
|
2
|
+
import DataEditor from './DataEditor';
|
3
|
+
import DataViewer from './DataViewer';
|
4
4
|
|
5
5
|
export default Spreadsheet;
|
6
6
|
export { Spreadsheet, DataEditor, DataViewer };
|
7
|
-
export type { Props } from
|
8
|
-
export { createEmpty as createEmptyMatrix } from
|
9
|
-
export type { Matrix } from
|
7
|
+
export type { Props } from './Spreadsheet';
|
8
|
+
export { createEmpty as createEmptyMatrix } from './matrix';
|
9
|
+
export type { Matrix } from './matrix';
|
10
10
|
export {
|
11
11
|
Selection,
|
12
12
|
EmptySelection,
|
@@ -17,9 +17,9 @@ export {
|
|
17
17
|
EntireWorksheetSelection,
|
18
18
|
InvalidIndexError,
|
19
19
|
RangeSelection,
|
20
|
-
} from
|
21
|
-
export { PointRange } from
|
22
|
-
export type { Point } from
|
20
|
+
} from './selection';
|
21
|
+
export { PointRange } from './point-range';
|
22
|
+
export type { Point } from './point';
|
23
23
|
export type {
|
24
24
|
CellBase,
|
25
25
|
CellDescriptor,
|
@@ -44,5 +44,6 @@ export type {
|
|
44
44
|
TableProps,
|
45
45
|
HeaderRowProps,
|
46
46
|
HeaderRowComponent,
|
47
|
-
} from
|
48
|
-
|
47
|
+
} from './types';
|
48
|
+
|
49
|
+
export { createFormulaParser, Model } from './engine';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as Point from
|
1
|
+
import * as Point from './point';
|
2
2
|
|
3
3
|
/** A two-dimensional array of given type T in rows and columns */
|
4
4
|
export type Matrix<T> = Array<Array<T | undefined>>;
|
@@ -65,7 +65,7 @@ export function set<T>(
|
|
65
65
|
if (nextFirstRow.length <= point.column) {
|
66
66
|
nextFirstRow.length = point.column + 1; // Extend the first row if needed
|
67
67
|
}
|
68
|
-
|
68
|
+
|
69
69
|
// Set the modified first row back into the matrix
|
70
70
|
nextMatrix[0] = nextFirstRow;
|
71
71
|
|
@@ -82,10 +82,8 @@ export function set<T>(
|
|
82
82
|
return nextMatrix;
|
83
83
|
}
|
84
84
|
|
85
|
-
|
86
85
|
/** Like Matrix.set() but mutates the matrix */
|
87
86
|
|
88
|
-
|
89
87
|
export function mutableSet<T>(
|
90
88
|
point: Point.Point,
|
91
89
|
value: T,
|
@@ -114,8 +112,6 @@ export function mutableSet<T>(
|
|
114
112
|
row[point.column] = value;
|
115
113
|
}
|
116
114
|
|
117
|
-
|
118
|
-
|
119
115
|
/** Removes the coordinate of matrix */
|
120
116
|
// export function unset<T>(point: Point.Point, matrix: Matrix<T>): Matrix<T> {
|
121
117
|
// if (!has(point, matrix)) {
|
@@ -155,7 +151,6 @@ export function unset<T>(point: Point.Point, matrix: Matrix<T>): Matrix<T> {
|
|
155
151
|
return nextMatrix;
|
156
152
|
}
|
157
153
|
|
158
|
-
|
159
154
|
/** Creates an array of values by running each element in collection thru iteratee. */
|
160
155
|
export function map<T, T2>(
|
161
156
|
func: (value: T | undefined, point: Point.Point) => T2,
|
@@ -187,34 +182,33 @@ export function* entries<T>(
|
|
187
182
|
|
188
183
|
export function join(
|
189
184
|
matrix: Matrix<unknown>,
|
190
|
-
horizontalSeparator =
|
191
|
-
verticalSeparator =
|
185
|
+
horizontalSeparator = '\t',
|
186
|
+
verticalSeparator = '\n'
|
192
187
|
): string {
|
193
|
-
let joined =
|
188
|
+
let joined = '';
|
194
189
|
const { rows, columns } = getSize(matrix);
|
195
|
-
|
190
|
+
|
196
191
|
for (let row = 0; row < rows; row++) {
|
197
192
|
if (row) {
|
198
193
|
joined += verticalSeparator;
|
199
194
|
}
|
200
|
-
|
195
|
+
|
201
196
|
for (let column = 0; column < columns; column++) {
|
202
197
|
if (column) {
|
203
198
|
joined += horizontalSeparator;
|
204
199
|
}
|
205
|
-
|
200
|
+
|
206
201
|
// Ensure matrix[row] exists and matrix[row][column] is not undefined
|
207
202
|
const cellValue = matrix[row]?.[column];
|
208
|
-
|
203
|
+
|
209
204
|
// If cellValue is undefined, you can use a fallback value like an empty string
|
210
|
-
joined += cellValue !== undefined ? String(cellValue) :
|
205
|
+
joined += cellValue !== undefined ? String(cellValue) : '';
|
211
206
|
}
|
212
207
|
}
|
213
|
-
|
208
|
+
|
214
209
|
return joined;
|
215
210
|
}
|
216
211
|
|
217
|
-
|
218
212
|
/**
|
219
213
|
* Parses a CSV separated by a horizontalSeparator and verticalSeparator into a
|
220
214
|
* Matrix using a transform function
|
@@ -222,19 +216,19 @@ export function join(
|
|
222
216
|
export function split<T>(
|
223
217
|
csv: string,
|
224
218
|
transform: (value: string) => T,
|
225
|
-
horizontalSeparator =
|
219
|
+
horizontalSeparator = '\t',
|
226
220
|
verticalSeparator: string | RegExp = /\r\n|\n|\r/
|
227
221
|
): Matrix<T> {
|
228
222
|
// Temporarily replace line breaks inside quotes
|
229
223
|
const replaced = csv.replace(/"([^"]*?)"/g, (_, p1) => {
|
230
|
-
return p1.replace(/\n/g,
|
224
|
+
return p1.replace(/\n/g, '\\n');
|
231
225
|
});
|
232
226
|
return replaced.split(verticalSeparator).map((row) =>
|
233
227
|
row
|
234
228
|
.split(horizontalSeparator)
|
235
229
|
.map((line) => {
|
236
230
|
// Restore original line breaks in each line
|
237
|
-
return line.replace(/\\n/g,
|
231
|
+
return line.replace(/\\n/g, '\n');
|
238
232
|
})
|
239
233
|
.map(transform)
|
240
234
|
);
|
@@ -246,7 +240,7 @@ export function has(point: Point.Point, matrix: Matrix<unknown>): boolean {
|
|
246
240
|
if (!firstRow) {
|
247
241
|
return false; // If first row is undefined, return false
|
248
242
|
}
|
249
|
-
|
243
|
+
|
250
244
|
// Perform validation checks
|
251
245
|
return (
|
252
246
|
point.row >= 0 &&
|
@@ -258,7 +252,6 @@ export function has(point: Point.Point, matrix: Matrix<unknown>): boolean {
|
|
258
252
|
);
|
259
253
|
}
|
260
254
|
|
261
|
-
|
262
255
|
/** Counts of the rows and column in a matrix */
|
263
256
|
export type Size = {
|
264
257
|
/** Count of the rows in the matrix */
|
@@ -372,7 +365,9 @@ export function toArray<T1, T2>(
|
|
372
365
|
for (let column = 0; column < currentRow.length; column++) {
|
373
366
|
const value = currentRow[column];
|
374
367
|
// If transform is provided, apply it; otherwise, use the value as is
|
375
|
-
array.push(
|
368
|
+
array.push(
|
369
|
+
transform ? transform(value, { row, column }) : (value as T2)
|
370
|
+
);
|
376
371
|
}
|
377
372
|
}
|
378
373
|
}
|
@@ -380,7 +375,6 @@ export function toArray<T1, T2>(
|
|
380
375
|
return array;
|
381
376
|
}
|
382
377
|
|
383
|
-
|
384
378
|
/** Returns the maximum point in the matrix */
|
385
379
|
export function maxPoint(matrix: Matrix<unknown>): Point.Point {
|
386
380
|
const size = getSize(matrix);
|