pixel-react 1.2.1 → 1.2.2

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.
Files changed (157) hide show
  1. package/lib/components/AppHeader/types.d.ts +11 -2
  2. package/lib/components/Avatar/Avatar.d.ts +5 -0
  3. package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
  4. package/lib/components/Avatar/index.d.ts +1 -0
  5. package/lib/components/Avatar/types.d.ts +26 -0
  6. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +2 -2
  7. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +2 -2
  8. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +1 -1
  9. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +2 -2
  10. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +2 -2
  11. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +2 -2
  12. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +2 -2
  13. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +1 -1
  14. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +1 -1
  15. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +2 -2
  16. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +1 -1
  17. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +6 -7
  18. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +1 -1
  19. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +49 -5
  20. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +3 -3
  21. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +5 -5
  22. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +6 -6
  23. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -2
  24. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +2 -2
  25. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +1 -1
  26. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +1 -1
  27. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +11 -11
  28. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +1 -1
  29. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +1 -1
  30. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +5 -5
  31. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +3 -3
  32. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +11 -48
  33. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +1 -1
  34. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +1 -1
  35. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +11 -12
  36. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +16 -0
  37. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -3
  38. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +12 -0
  39. package/lib/components/ExcelFile/Types.d.ts +2 -49
  40. package/lib/components/Form/Form.d.ts +1 -15
  41. package/lib/components/Form/Form.stories.d.ts +6 -5
  42. package/lib/components/Form/Forms.d.ts +8 -0
  43. package/lib/components/Form/index.d.ts +1 -1
  44. package/lib/components/MenuOption/types.d.ts +7 -7
  45. package/lib/components/ModulesChip/ModuleChip.d.ts +4 -0
  46. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +6 -0
  47. package/lib/components/ModulesChip/index.d.ts +1 -0
  48. package/lib/components/ModulesChip/types.d.ts +14 -0
  49. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
  50. package/lib/components/Toastify/Toastify.d.ts +8 -0
  51. package/lib/components/Toastify/Toastify.stories.d.ts +6 -0
  52. package/lib/components/Toastify/index.d.ts +1 -0
  53. package/lib/components/Toastify/types.d.ts +7 -0
  54. package/lib/components/Tooltip/types.d.ts +6 -0
  55. package/lib/components/Typography/types.d.ts +1 -0
  56. package/lib/index.d.ts +75 -22
  57. package/lib/index.esm.js +26686 -870
  58. package/lib/index.esm.js.map +1 -1
  59. package/lib/index.js +26684 -864
  60. package/lib/index.js.map +1 -1
  61. package/lib/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +1 -1
  63. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +10 -0
  64. package/src/assets/Themes/BaseTheme.scss +2 -0
  65. package/src/assets/Themes/DarkTheme.scss +2 -0
  66. package/src/assets/icons/client_profile.svg +4 -0
  67. package/src/assets/icons/fireflink_finder_logo.svg +7 -0
  68. package/src/assets/icons/fireflink_platform.svg +4 -0
  69. package/src/assets/icons/license_expired.svg +20 -0
  70. package/src/components/AppHeader/AppHeader.stories.tsx +24 -3
  71. package/src/components/AppHeader/AppHeader.tsx +29 -11
  72. package/src/components/AppHeader/types.ts +11 -3
  73. package/src/components/Avatar/Avatar.scss +24 -0
  74. package/src/components/Avatar/Avatar.stories.tsx +56 -0
  75. package/src/components/Avatar/Avatar.tsx +25 -0
  76. package/src/components/Avatar/index.ts +1 -0
  77. package/src/components/Avatar/types.ts +27 -0
  78. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +0 -2
  79. package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +1 -4
  80. package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +0 -1
  81. package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +13 -13
  82. package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +13 -12
  83. package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +40 -32
  84. package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +4 -4
  85. package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +10 -10
  86. package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +5 -5
  87. package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +10 -10
  88. package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +6 -6
  89. package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +1 -1
  90. package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +1 -1
  91. package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +34 -27
  92. package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +5 -5
  93. package/src/components/ExcelFile/ExcelFile/Excel/{Spreadsheet.css → Spreadsheet.scss} +21 -37
  94. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +87 -78
  95. package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +2 -2
  96. package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +121 -31
  97. package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +1 -1
  98. package/src/components/ExcelFile/ExcelFile/Excel/context.ts +4 -4
  99. package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +7 -7
  100. package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +11 -11
  101. package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -2
  102. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +3 -3
  103. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +2 -2
  104. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +2 -2
  105. package/src/components/ExcelFile/ExcelFile/Excel/index.ts +12 -11
  106. package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +18 -24
  107. package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +1 -1
  108. package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +311 -41
  109. package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +5 -5
  110. package/src/components/ExcelFile/ExcelFile/Excel/types.ts +14 -66
  111. package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +8 -8
  112. package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +2 -2
  113. package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +3 -3
  114. package/src/components/ExcelFile/ExcelFile/Excel/util.ts +21 -22
  115. package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +0 -3
  116. package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +45 -403
  117. package/src/components/ExcelFile/ExcelFile.stories.tsx +10 -29
  118. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +1 -12
  119. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +0 -3
  120. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +147 -127
  121. package/src/components/ExcelFile/Types.ts +3 -70
  122. package/src/components/ExcelFile/index.ts +1 -1
  123. package/src/components/Form/Form.d.ts +3 -0
  124. package/src/components/Form/Form.scss +31 -4
  125. package/src/components/Form/Form.stories.tsx +172 -138
  126. package/src/components/Form/Form.ts +2 -0
  127. package/src/components/Form/Forms.tsx +25 -0
  128. package/src/components/Form/index.ts +1 -1
  129. package/src/components/Icon/iconList.ts +8 -0
  130. package/src/components/IconButton/IconButton.scss +1 -1
  131. package/src/components/MenuOption/types.ts +7 -6
  132. package/src/components/ModulesChip/ModuleChip.scss +20 -0
  133. package/src/components/ModulesChip/ModuleChip.stories.tsx +41 -0
  134. package/src/components/ModulesChip/ModuleChip.tsx +31 -0
  135. package/src/components/ModulesChip/index.ts +1 -0
  136. package/src/components/ModulesChip/types.ts +14 -0
  137. package/src/components/MultiSelect/Dropdown.tsx +6 -1
  138. package/src/components/MultiSelect/MultiSelect.scss +17 -10
  139. package/src/components/MultiSelect/MultiSelect.stories.tsx +16 -4
  140. package/src/components/MultiSelect/MultiSelect.tsx +11 -4
  141. package/src/components/MultiSelect/MultiSelectTypes.ts +4 -3
  142. package/src/components/Select/Select.scss +4 -0
  143. package/src/components/Select/Select.tsx +2 -2
  144. package/src/components/Toastify/Toastify.stories.tsx +52 -0
  145. package/src/components/Toastify/Toastify.tsx +66 -0
  146. package/src/components/Toastify/index.ts +1 -0
  147. package/src/components/Toastify/types.ts +8 -0
  148. package/src/components/Tooltip/Tooltip.tsx +2 -1
  149. package/src/components/Tooltip/types.ts +6 -0
  150. package/src/components/Typography/Typography.scss +12 -4
  151. package/src/components/Typography/Typography.stories.tsx +2 -0
  152. package/src/components/Typography/Typography.tsx +2 -0
  153. package/src/components/Typography/types.ts +1 -0
  154. package/src/index.ts +10 -2
  155. package/src/components/ExcelFile/ChangeExcelStyles.tsx +0 -78
  156. package/src/components/ExcelFile/ImportExcelStyles.tsx +0 -86
  157. package/src/components/Form/Form.tsx +0 -57
@@ -1,13 +1,13 @@
1
- import * as React from "react";
2
- import classNames from "classnames";
3
- import * as Types from "./types";
4
- import * as Actions from "./actions";
5
- import * as Matrix from "./matrix";
6
- import * as Point from "./point";
7
- import { Selection } from "./selection";
8
- import reducer, { INITIAL_STATE, hasKeyDownHandler } from "./reducer";
9
- import context from "./context";
10
- import { Model, createFormulaParser } from "./engine";
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+ import * as Types from './types';
4
+ import * as Actions from './actions';
5
+ import * as Matrix from './matrix';
6
+ import * as Point from './point';
7
+ import { Selection } from './selection';
8
+ import reducer, { INITIAL_STATE, hasKeyDownHandler } from './reducer';
9
+ import context from './context';
10
+ import { Model, createFormulaParser } from './engine';
11
11
  import {
12
12
  range,
13
13
  readTextFromClipboard,
@@ -16,27 +16,28 @@ import {
16
16
  getCSV,
17
17
  shouldHandleClipboardEvent,
18
18
  isFocusedWithin,
19
- } from "./util";
19
+ } from './util';
20
20
 
21
- import DefaultTable from "./Table";
22
- import DefaultRow from "./Row";
23
- import DefaultHeaderRow from "./HeaderRow";
21
+ import DefaultTable from './Table';
22
+ import DefaultRow from './Row';
23
+ import DefaultHeaderRow from './HeaderRow';
24
24
  import DefaultCornerIndicator, {
25
25
  enhance as enhanceCornerIndicator,
26
- } from "./CornerIndicator";
26
+ } from './CornerIndicator';
27
27
  import DefaultColumnIndicator, {
28
28
  enhance as enhanceColumnIndicator,
29
- } from "./ColumnIndicator";
29
+ } from './ColumnIndicator';
30
30
  import DefaultRowIndicator, {
31
31
  enhance as enhanceRowIndicator,
32
- } from "./RowIndicator";
33
- import { Cell as DefaultCell, enhance as enhanceCell } from "./Cell";
34
- import DefaultDataViewer from "./DataViewer";
35
- import DefaultDataEditor from "./DataEditor";
36
- import ActiveCell from "./ActiveCell";
37
- import Selected from "./Selected";
38
- import Copied from "./Copied";
39
- import "./Spreadsheet.css";
32
+ } from './RowIndicator';
33
+ import { Cell as DefaultCell, enhance as enhanceCell } from './Cell';
34
+ import DefaultDataViewer from './DataViewer';
35
+ import DefaultDataEditor from './DataEditor';
36
+ import ActiveCell from './ActiveCell';
37
+ import Selected from './Selected';
38
+ import Copied from './Copied';
39
+ import './Spreadsheet.scss';
40
+ import ExcelToolBar from '../../ExcelToolBar/ExcelToolBar';
40
41
 
41
42
  /** The Spreadsheet component props */
42
43
  export type Props<CellType extends Types.CellBase> = {
@@ -48,7 +49,6 @@ export type Props<CellType extends Types.CellBase> = {
48
49
  * Use dark colors that complement dark mode
49
50
  * @defaultValue `false`
50
51
  */
51
- darkMode?: boolean;
52
52
  /**
53
53
  * Function used to create the formula parser (instance of
54
54
  * "fast-formula-parser") used by the Spreadsheet by getting the spreadsheet's
@@ -119,7 +119,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
119
119
  ): React.ReactElement => {
120
120
  const {
121
121
  className,
122
- darkMode,
123
122
  columnLabels,
124
123
  rowLabels,
125
124
  // hideColumnIndicators,
@@ -185,8 +184,13 @@ const Spreadsheet = <CellType extends Types.CellBase>(
185
184
  const setData = useAction(Actions.setData);
186
185
  const setCreateFormulaParser = useAction(Actions.setCreateFormulaParser);
187
186
  const setSelection = useAction(Actions.setSelection);
187
+ const onBold = useAction(Actions.bold);
188
+ const onItalic = useAction(Actions.italic);
189
+ const onUnderline = useAction(Actions.underline);
190
+ const setColor = useAction(Actions.color);
191
+ const setBackgroundColor = useAction(Actions.backgroundStyle);
192
+ const setFormatePainter = useAction(Actions.formatePainter);
188
193
 
189
- // Track active
190
194
  const prevActiveRef = React.useRef<Point.Point | null>(state.active);
191
195
  React.useEffect(() => {
192
196
  if (state.active !== prevActiveRef.current) {
@@ -214,7 +218,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
214
218
  prevEvaluatedDataRef.current = state.model.evaluatedData;
215
219
  }, [state?.model?.evaluatedData, onEvaluatedDataChange]);
216
220
 
217
- // Listen to selection changes
218
221
  const prevSelectedRef = React.useRef<Selection>(state.selected);
219
222
  React.useEffect(() => {
220
223
  if (!state.selected.equals(prevSelectedRef.current)) {
@@ -243,7 +246,7 @@ const Spreadsheet = <CellType extends Types.CellBase>(
243
246
  }, [props.selected, setSelection]);
244
247
 
245
248
  // Update data when props.data changes
246
- const prevDataPropRef = React.useRef<Matrix.Matrix<CellType> | undefined>(
249
+ let prevDataPropRef = React.useRef<Matrix.Matrix<CellType> | undefined>(
247
250
  props.data
248
251
  );
249
252
  React.useEffect(() => {
@@ -338,14 +341,14 @@ const Spreadsheet = <CellType extends Types.CellBase>(
338
341
 
339
342
  const handleMouseUp = React.useCallback(() => {
340
343
  onDragEnd();
341
- document.removeEventListener("mouseup", handleMouseUp);
344
+ document.removeEventListener('mouseup', handleMouseUp);
342
345
  }, [onDragEnd]);
343
346
 
344
347
  const handleMouseMove = React.useCallback(
345
348
  (event: React.MouseEvent) => {
346
349
  if (!state.dragging && event.buttons === 1) {
347
350
  onDragStart();
348
- document.addEventListener("mouseup", handleMouseUp);
351
+ document.addEventListener('mouseup', handleMouseUp);
349
352
  }
350
353
  },
351
354
  [state, onDragStart, handleMouseUp]
@@ -374,14 +377,14 @@ const Spreadsheet = <CellType extends Types.CellBase>(
374
377
  );
375
378
 
376
379
  React.useEffect(() => {
377
- document.addEventListener("cut", handleCut);
378
- document.addEventListener("copy", handleCopy);
379
- document.addEventListener("paste", handlePaste);
380
+ document.addEventListener('cut', handleCut);
381
+ document.addEventListener('copy', handleCopy);
382
+ document.addEventListener('paste', handlePaste);
380
383
 
381
384
  return () => {
382
- document.removeEventListener("cut", handleCut);
383
- document.removeEventListener("copy", handleCopy);
384
- document.removeEventListener("paste", handlePaste);
385
+ document.removeEventListener('cut', handleCut);
386
+ document.removeEventListener('copy', handleCopy);
387
+ document.removeEventListener('paste', handlePaste);
385
388
  };
386
389
  }, [handleCut, handleCopy, handlePaste]);
387
390
 
@@ -390,35 +393,33 @@ const Spreadsheet = <CellType extends Types.CellBase>(
390
393
  <Table columns={size.columns}>
391
394
  <HeaderRow>
392
395
  {<CornerIndicator />}
393
- {
394
- range(size.columns).map((columnNumber) =>
395
- columnLabels ? (
396
- <ColumnIndicator
397
- key={columnNumber}
398
- column={columnNumber}
399
- label={
400
- columnNumber in columnLabels
401
- ? columnLabels[columnNumber]
402
- : null
403
- }
404
- />
405
- ) : (
406
- <ColumnIndicator key={columnNumber} column={columnNumber} />
407
- )
408
- )}
396
+ {range(size.columns).map((columnNumber) =>
397
+ columnLabels ? (
398
+ <ColumnIndicator
399
+ key={columnNumber}
400
+ column={columnNumber}
401
+ label={
402
+ columnNumber in columnLabels
403
+ ? columnLabels[columnNumber]
404
+ : null
405
+ }
406
+ />
407
+ ) : (
408
+ <ColumnIndicator key={columnNumber} column={columnNumber} />
409
+ )
410
+ )}
409
411
  </HeaderRow>
410
412
  {range(size.rows).map((rowNumber) => (
411
413
  <Row key={rowNumber} row={rowNumber}>
412
- {
413
- (rowLabels ? (
414
- <RowIndicator
415
- key={rowNumber}
416
- row={rowNumber}
417
- label={rowNumber in rowLabels ? rowLabels[rowNumber] : null}
418
- />
419
- ) : (
420
- <RowIndicator key={rowNumber} row={rowNumber} />
421
- ))}
414
+ {rowLabels ? (
415
+ <RowIndicator
416
+ key={rowNumber}
417
+ row={rowNumber}
418
+ label={rowNumber in rowLabels ? rowLabels[rowNumber] : null}
419
+ />
420
+ ) : (
421
+ <RowIndicator key={rowNumber} row={rowNumber} />
422
+ )}
422
423
  {range(size.columns).map((columnNumber) => (
423
424
  <Cell
424
425
  key={columnNumber}
@@ -460,24 +461,32 @@ const Spreadsheet = <CellType extends Types.CellBase>(
460
461
 
461
462
  const rootNode = React.useMemo(
462
463
  () => (
463
- <div
464
- ref={rootRef}
465
- className={classNames("Spreadsheet", className, {
466
- "Spreadsheet--dark-mode": darkMode,
467
- })}
468
- onKeyPress={onKeyPress}
469
- onKeyDown={handleKeyDown}
470
- onMouseMove={handleMouseMove}
471
- >
472
- {tableNode}
473
- {activeCellNode}
474
- <Selected />
475
- <Copied />
476
- </div>
464
+ <>
465
+ <ExcelToolBar
466
+ data={props.data}
467
+ onBold={onBold}
468
+ onItalic={onItalic}
469
+ onUnderline={onUnderline}
470
+ setColor={setColor}
471
+ setBackgroundColor={setBackgroundColor}
472
+ setFormatePainter={setFormatePainter}
473
+ />
474
+ <div
475
+ ref={rootRef}
476
+ className={classNames('Spreadsheet', className)}
477
+ onKeyPress={onKeyPress}
478
+ onKeyDown={handleKeyDown}
479
+ onMouseMove={handleMouseMove}
480
+ >
481
+ {tableNode}
482
+ {activeCellNode}
483
+ <Selected />
484
+ <Copied />
485
+ </div>
486
+ </>
477
487
  ),
478
488
  [
479
489
  className,
480
- darkMode,
481
490
  onKeyPress,
482
491
  handleKeyDown,
483
492
  handleMouseMove,
@@ -1,5 +1,5 @@
1
- import * as Types from "./types";
2
- import { range } from "./util";
1
+ import * as Types from './types';
2
+ import { range } from './util';
3
3
 
4
4
  const Table: Types.TableComponent = ({
5
5
  children,
@@ -1,40 +1,125 @@
1
- import { Matrix } from "./matrix";
2
- import { Point } from "./point";
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 "./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";
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,4 +1,4 @@
1
- import { Model } from "./engine";
1
+ import { Model } from './engine';
2
2
 
3
3
  function areModelsEqual(a: unknown, b: unknown): boolean | undefined {
4
4
  const isAModule = a instanceof Model;
@@ -1,7 +1,7 @@
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";
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 "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";
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 "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";
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 === "string" &&
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, "onCell" | "onRange">
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 = "from" in reference;
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: "Sheet1",
135
+ sheet: 'Sheet1',
136
136
  };
137
137
  }
@@ -1,2 +1,2 @@
1
- export { Model, updateCellValue } from "./engine";
2
- export { createFormulaParser } from "./formula";
1
+ export { Model, updateCellValue } from './engine';
2
+ export { createFormulaParser } from './formula';
@@ -1,6 +1,6 @@
1
- import { Point } from "../point";
2
- import * as pointHash from "./point-hash";
3
- import { PointSet } from "./point-set";
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 "../point";
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,5 +1,5 @@
1
- import * as Point from "../point";
2
- import * as pointHash from "./point-hash";
1
+ import * as Point from '../point';
2
+ import * as pointHash from './point-hash';
3
3
 
4
4
  /**
5
5
  * Immutable Set like interface of points
@@ -1,12 +1,12 @@
1
- import Spreadsheet from "./Spreadsheet";
2
- import DataEditor from "./DataEditor";
3
- import DataViewer from "./DataViewer";
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 "./Spreadsheet";
8
- export { createEmpty as createEmptyMatrix } from "./matrix";
9
- export type { Matrix } from "./matrix";
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 "./selection";
21
- export { PointRange } from "./point-range";
22
- export type { Point } from "./point";
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 "./types";
48
- export { createFormulaParser, Model } from "./engine";
47
+ } from './types';
48
+
49
+ export { createFormulaParser, Model } from './engine';