pixel-react 1.2.6 → 1.2.8

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 (182) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/Drawer/Types.d.ts +29 -17
  3. package/lib/components/{ExcelFile → Excel}/ExcelFile/ExcelFile.d.ts +1 -0
  4. package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/actions.d.ts +39 -10
  5. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.d.ts +4 -0
  6. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.d.ts +40 -0
  7. package/lib/components/{ExcelFile → Excel}/ExcelToolBar/ExcelToolBar.d.ts +7 -3
  8. package/lib/components/MenuOption/MenuOption.d.ts +1 -1
  9. package/lib/components/MenuOption/types.d.ts +4 -0
  10. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  11. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
  12. package/lib/components/Select/Select.stories.d.ts +1 -0
  13. package/lib/components/Toastify/Toastify.d.ts +5 -4
  14. package/lib/components/Toastify/types.d.ts +1 -0
  15. package/lib/index.d.ts +76 -24
  16. package/lib/index.esm.js +1467 -1038
  17. package/lib/index.esm.js.map +1 -1
  18. package/lib/index.js +1468 -1038
  19. package/lib/index.js.map +1 -1
  20. package/lib/tsconfig.tsbuildinfo +1 -1
  21. package/lib/utils/getSequentialPayload/getSequentialPayload.d.ts +2 -0
  22. package/lib/utils/getSequentialPayload/getSequentialPayload.stories.d.ts +10 -0
  23. package/lib/utils/getSequentialPayload/types.d.ts +30 -0
  24. package/package.json +3 -3
  25. package/src/assets/Themes/BaseTheme.scss +4 -0
  26. package/src/assets/icons/maximize_icon.svg +5 -0
  27. package/src/assets/styles/_fonts.scss +1 -1
  28. package/src/components/AllProjectsDropdown/AllProjectsDropdown.scss +15 -6
  29. package/src/components/AllProjectsDropdown/AllProjectsDropdown.stories.tsx +0 -5
  30. package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +20 -10
  31. package/src/components/Drawer/Drawer.scss +1 -0
  32. package/src/components/Drawer/Drawer.stories.tsx +8 -9
  33. package/src/components/Drawer/Drawer.tsx +8 -5
  34. package/src/components/Drawer/Types.ts +27 -14
  35. package/src/components/Excel/ExcelFile/ExcelFile.scss +62 -0
  36. package/src/components/Excel/ExcelFile/ExcelFile.tsx +312 -0
  37. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/ActiveCell.tsx +2 -2
  38. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Cell.tsx +3 -3
  39. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/ColumnIndicator.tsx +4 -4
  40. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/CornerIndicator.tsx +2 -2
  41. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/DataEditor.tsx +1 -1
  42. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/DataViewer.tsx +3 -3
  43. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/FloatingRect.tsx +4 -4
  44. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/RowIndicator.tsx +4 -4
  45. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Spreadsheet.scss +26 -24
  46. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Spreadsheet.tsx +13 -45
  47. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Table.tsx +1 -1
  48. package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/actions.ts +88 -20
  49. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducer.ts +495 -0
  50. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.ts +758 -0
  51. package/src/components/{ExcelFile → Excel}/ExcelFile.stories.tsx +45 -0
  52. package/src/components/Excel/ExcelToolBar/ExcelToolBar.scss +36 -0
  53. package/src/components/Excel/ExcelToolBar/ExcelToolBar.tsx +346 -0
  54. package/src/components/Form/Form.scss +54 -35
  55. package/src/components/Form/Form.stories.tsx +264 -225
  56. package/src/components/Form/Forms.tsx +5 -1
  57. package/src/components/Icon/iconList.ts +2 -1
  58. package/src/components/Input/Input.tsx +0 -1
  59. package/src/components/MenuOption/MenuOption.scss +0 -1
  60. package/src/components/MenuOption/MenuOption.stories.tsx +3 -0
  61. package/src/components/MenuOption/MenuOption.tsx +5 -4
  62. package/src/components/MenuOption/types.ts +4 -0
  63. package/src/components/ModulesChip/ModuleChip.scss +2 -2
  64. package/src/components/ModulesChip/ModuleChip.tsx +4 -4
  65. package/src/components/MultiSelect/Dropdown.tsx +5 -2
  66. package/src/components/MultiSelect/MultiSelect.scss +16 -11
  67. package/src/components/MultiSelect/MultiSelect.stories.tsx +17 -13
  68. package/src/components/MultiSelect/MultiSelect.tsx +49 -26
  69. package/src/components/MultiSelect/MultiSelectTypes.ts +2 -1
  70. package/src/components/Select/Select.stories.tsx +161 -18
  71. package/src/components/Select/Select.tsx +41 -33
  72. package/src/components/Table/Table.scss +6 -5
  73. package/src/components/Table/Table.stories.tsx +0 -9
  74. package/src/components/Table/Table.tsx +2 -2
  75. package/src/components/TableTree/TableTree.scss +1 -1
  76. package/src/components/TableTree/TableTree.tsx +3 -1
  77. package/src/components/Toastify/Toastify.stories.tsx +29 -10
  78. package/src/components/Toastify/Toastify.tsx +42 -16
  79. package/src/components/Toastify/types.ts +2 -0
  80. package/src/components/Tooltip/Tooltip.scss +1 -1
  81. package/src/index.ts +4 -2
  82. package/src/utils/getSequentialPayload/getSequentialPayload.stories.tsx +75 -0
  83. package/src/utils/getSequentialPayload/getSequentialPayload.ts +29 -0
  84. package/src/utils/getSequentialPayload/types.ts +35 -0
  85. package/lib/components/AddButton/AddButton.d.ts +0 -5
  86. package/lib/components/AddButton/AddButton.stories.d.ts +0 -6
  87. package/lib/components/AddButton/index.d.ts +0 -1
  88. package/lib/components/AddButton/types.d.ts +0 -4
  89. package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +0 -14
  90. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +0 -27
  91. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +0 -12
  92. package/lib/components/ExcelFile/ImportExcelStyles.d.ts +0 -24
  93. package/lib/utils/find/findAndInsert.d.ts +0 -7
  94. package/lib/utils/find/findAndInsert.stories.d.ts +0 -7
  95. package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +0 -952
  96. package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +0 -24
  97. package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +0 -162
  98. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.scss +0 -16
  99. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +0 -68
  100. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +0 -19
  101. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +0 -291
  102. package/src/fonts/Montserrat/Montserrat-Medium.ttf +0 -0
  103. package/src/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  104. package/src/fonts/Montserrat/Montserrat-SemiBold.ttf +0 -0
  105. package/src/fonts/Poppins/Poppins-Black.ttf +0 -0
  106. package/src/fonts/Poppins/Poppins-BlackItalic.ttf +0 -0
  107. package/src/fonts/Poppins/Poppins-BoldItalic.ttf +0 -0
  108. package/src/fonts/Poppins/Poppins-ExtraBold.ttf +0 -0
  109. package/src/fonts/Poppins/Poppins-ExtraBoldItalic.ttf +0 -0
  110. package/src/fonts/Poppins/Poppins-ExtraLight.ttf +0 -0
  111. package/src/fonts/Poppins/Poppins-ExtraLightItalic.ttf +0 -0
  112. package/src/fonts/Poppins/Poppins-Italic.ttf +0 -0
  113. package/src/fonts/Poppins/Poppins-Light.ttf +0 -0
  114. package/src/fonts/Poppins/Poppins-LightItalic.ttf +0 -0
  115. package/src/fonts/Poppins/Poppins-MediumItalic.ttf +0 -0
  116. package/src/fonts/Poppins/Poppins-SemiBoldItalic.ttf +0 -0
  117. package/src/fonts/Poppins/Poppins-Thin.ttf +0 -0
  118. package/src/fonts/Poppins/Poppins-ThinItalic.ttf +0 -0
  119. /package/lib/components/{ExcelFile → Excel}/ColorBarSelector/ColorBarSelector.d.ts +0 -0
  120. /package/lib/components/{ExcelFile → Excel}/ContextMenu/ContextMenu.d.ts +0 -0
  121. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/ActiveCell.d.ts +0 -0
  122. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Cell.d.ts +0 -0
  123. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/ColumnIndicator.d.ts +0 -0
  124. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Copied.d.ts +0 -0
  125. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/CornerIndicator.d.ts +0 -0
  126. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/DataEditor.d.ts +0 -0
  127. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/DataViewer.d.ts +0 -0
  128. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/FloatingRect.d.ts +0 -0
  129. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/HeaderRow.d.ts +0 -0
  130. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Row.d.ts +0 -0
  131. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/RowIndicator.d.ts +0 -0
  132. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Selected.d.ts +0 -0
  133. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Spreadsheet.d.ts +0 -0
  134. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Table.d.ts +0 -0
  135. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/areModelsEqual.d.ts +0 -0
  136. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/context.d.ts +0 -0
  137. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/engine.d.ts +0 -0
  138. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/formula.d.ts +0 -0
  139. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/index.d.ts +0 -0
  140. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-graph.d.ts +0 -0
  141. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-hash.d.ts +0 -0
  142. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-set.d.ts +0 -0
  143. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/index.d.ts +0 -0
  144. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/matrix.d.ts +0 -0
  145. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/point-range.d.ts +0 -0
  146. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/point.d.ts +0 -0
  147. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/selection.d.ts +0 -0
  148. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/types.d.ts +0 -0
  149. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/use-dispatch.d.ts +0 -0
  150. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/use-selector.d.ts +0 -0
  151. /package/lib/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/util.d.ts +0 -0
  152. /package/lib/components/{ExcelFile → Excel}/ExcelFile.stories.d.ts +0 -0
  153. /package/lib/components/{ExcelFile → Excel}/Types.d.ts +0 -0
  154. /package/lib/components/{ExcelFile → Excel}/index.d.ts +0 -0
  155. /package/src/components/{ExcelFile/ColorBarselector → Excel/ColorBarSelector}/ColorBarSelector.scss +0 -0
  156. /package/src/components/{ExcelFile/ColorBarselector → Excel/ColorBarSelector}/ColorBarSelector.tsx +0 -0
  157. /package/src/components/{ExcelFile → Excel}/ContextMenu/ContextMenu.scss +0 -0
  158. /package/src/components/{ExcelFile → Excel}/ContextMenu/ContextMenu.tsx +0 -0
  159. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Copied.tsx +0 -0
  160. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/HeaderRow.tsx +0 -0
  161. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Row.tsx +0 -0
  162. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/Selected.tsx +0 -0
  163. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/areModelsEqual.ts +0 -0
  164. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/context.ts +0 -0
  165. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/engine.ts +0 -0
  166. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/formula.ts +0 -0
  167. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/index.ts +0 -0
  168. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-graph.ts +0 -0
  169. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-hash.ts +0 -0
  170. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/engine/point-set.ts +0 -0
  171. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/index.ts +0 -0
  172. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/matrix.ts +0 -0
  173. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/point-range.ts +0 -0
  174. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/point.ts +0 -0
  175. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/selection.ts +0 -0
  176. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/types.ts +0 -0
  177. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/typings/fast-formula-parser.d.ts +0 -0
  178. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/use-dispatch.ts +0 -0
  179. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/use-selector.ts +0 -0
  180. /package/src/components/{ExcelFile/ExcelFile/Excel → Excel/ExcelFile/ExcelFileComponents}/util.ts +0 -0
  181. /package/src/components/{ExcelFile → Excel}/Types.ts +0 -0
  182. /package/src/components/{ExcelFile → Excel}/index.ts +0 -0
@@ -5,7 +5,7 @@ import * as Actions from './actions';
5
5
  import * as Matrix from './matrix';
6
6
  import * as Point from './point';
7
7
  import { Selection } from './selection';
8
- import reducer, { INITIAL_STATE, hasKeyDownHandler } from './reducer';
8
+ import reducer, { INITIAL_STATE } from './reducer';
9
9
  import context from './context';
10
10
  import { Model, createFormulaParser } from './engine';
11
11
  import {
@@ -15,7 +15,6 @@ import {
15
15
  calculateSpreadsheetSize,
16
16
  getCSV,
17
17
  shouldHandleClipboardEvent,
18
- isFocusedWithin,
19
18
  } from './util';
20
19
 
21
20
  import DefaultTable from './Table';
@@ -38,6 +37,7 @@ import Selected from './Selected';
38
37
  import Copied from './Copied';
39
38
  import './Spreadsheet.scss';
40
39
  import ExcelToolBar from '../../ExcelToolBar/ExcelToolBar';
40
+ import { hasKeyDownHandler } from './reducerFunctions';
41
41
 
42
42
  /** The Spreadsheet component props */
43
43
  export type Props<CellType extends Types.CellBase> = {
@@ -121,20 +121,12 @@ const Spreadsheet = <CellType extends Types.CellBase>(
121
121
  className,
122
122
  columnLabels,
123
123
  rowLabels,
124
- // hideColumnIndicators,
125
- // hideRowIndicators,
126
124
  onKeyDown,
127
125
  Table = DefaultTable,
128
126
  Row = DefaultRow,
129
127
  HeaderRow = DefaultHeaderRow,
130
128
  DataEditor = DefaultDataEditor,
131
129
  DataViewer = DefaultDataViewer,
132
- // onChange = () => {},
133
- // onModeChange = () => {},
134
- onSelect = () => {},
135
- onActivate = () => {},
136
- // onBlur = () => {},
137
- // onCellCommit = () => {},
138
130
  onEvaluatedDataChange = () => {},
139
131
  } = props;
140
132
  type State = Types.StoreState<CellType>;
@@ -178,7 +170,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
178
170
  const copy = useAction(Actions.copy);
179
171
  const paste = useAction(Actions.paste);
180
172
  const onKeyDownAction = useAction(Actions.keyDown);
181
- const onKeyPress = useAction(Actions.keyPress);
182
173
  const onDragStart = useAction(Actions.dragStart);
183
174
  const onDragEnd = useAction(Actions.dragEnd);
184
175
  const setData = useAction(Actions.setData);
@@ -186,27 +177,15 @@ const Spreadsheet = <CellType extends Types.CellBase>(
186
177
  const setSelection = useAction(Actions.setSelection);
187
178
  const onBold = useAction(Actions.bold);
188
179
  const onItalic = useAction(Actions.italic);
189
- const onUnderline = useAction(Actions.underline);
180
+ const setUnderlineType = useAction(Actions.underlineType);
181
+ const setTextAlign = useAction(Actions.textAlign);
182
+ const setFontSize = useAction(Actions.fontSize);
183
+ const setFontFamily = useAction(Actions.fontFamily);
184
+ const setBorderType = useAction(Actions.borderType);
190
185
  const setColor = useAction(Actions.color);
191
186
  const setBackgroundColor = useAction(Actions.backgroundStyle);
192
187
  const setFormatePainter = useAction(Actions.formatePainter);
193
188
 
194
- const prevActiveRef = React.useRef<Point.Point | null>(state.active);
195
- React.useEffect(() => {
196
- if (state.active !== prevActiveRef.current) {
197
- if (state.active) {
198
- onActivate(state.active);
199
- } else {
200
- const root = rootRef.current;
201
- if (root && isFocusedWithin(root) && document.activeElement) {
202
- (document.activeElement as HTMLElement).blur();
203
- }
204
- }
205
- }
206
-
207
- prevActiveRef.current = state.active;
208
- }, [onActivate, state.active]);
209
-
210
189
  const prevEvaluatedDataRef = React.useRef<Matrix.Matrix<CellType>>(
211
190
  state.model.evaluatedData
212
191
  );
@@ -218,18 +197,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
218
197
  prevEvaluatedDataRef.current = state.model.evaluatedData;
219
198
  }, [state?.model?.evaluatedData, onEvaluatedDataChange]);
220
199
 
221
- const prevSelectedRef = React.useRef<Selection>(state.selected);
222
- React.useEffect(() => {
223
- if (!state.selected.equals(prevSelectedRef.current)) {
224
- // Call on select only if the selection change internal
225
- if (!props.selected || !state.selected.equals(props.selected)) {
226
- onSelect(state.selected);
227
- }
228
- }
229
-
230
- prevSelectedRef.current = state.selected;
231
- }, [state.selected, onSelect, props.selected]);
232
-
233
200
  // Update selection when props.selected changes
234
201
  const prevSelectedPropRef = React.useRef<Selection | undefined>(
235
202
  props.selected
@@ -256,7 +223,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
256
223
  prevDataPropRef.current = props.data;
257
224
  }, [props.data, setData]);
258
225
 
259
- // Update createFormulaParser when props.createFormulaParser changes
260
226
  const prevCreateFormulaParserPropRef = React.useRef<
261
227
  Types.CreateFormulaParser | undefined
262
228
  >(props.createFormulaParser);
@@ -466,15 +432,18 @@ const Spreadsheet = <CellType extends Types.CellBase>(
466
432
  data={props.data}
467
433
  onBold={onBold}
468
434
  onItalic={onItalic}
469
- onUnderline={onUnderline}
435
+ setUnderlineType={setUnderlineType}
470
436
  setColor={setColor}
437
+ setBorderType={setBorderType}
438
+ setFontSize={setFontSize}
439
+ setFontFamily={setFontFamily}
440
+ setTextAlign={setTextAlign}
471
441
  setBackgroundColor={setBackgroundColor}
472
442
  setFormatePainter={setFormatePainter}
473
443
  />
474
444
  <div
475
445
  ref={rootRef}
476
- className={classNames('Spreadsheet', className)}
477
- onKeyPress={onKeyPress}
446
+ className={classNames('ff-spreadsheet', className)}
478
447
  onKeyDown={handleKeyDown}
479
448
  onMouseMove={handleMouseMove}
480
449
  >
@@ -487,7 +456,6 @@ const Spreadsheet = <CellType extends Types.CellBase>(
487
456
  ),
488
457
  [
489
458
  className,
490
- onKeyPress,
491
459
  handleKeyDown,
492
460
  handleMouseMove,
493
461
  tableNode,
@@ -9,7 +9,7 @@ const Table: Types.TableComponent = ({
9
9
  const columnCount = columns + (hideColumnIndicators ? 0 : 1);
10
10
  const columnNodes = range(columnCount).map((i) => <col key={i} />);
11
11
  return (
12
- <table className="Spreadsheet__table">
12
+ <table className="ff-spreadsheet-table">
13
13
  <colgroup>{columnNodes}</colgroup>
14
14
  <tbody>{children}</tbody>
15
15
  </table>
@@ -32,7 +32,11 @@ export const DRAG_END = 'DRAG_END';
32
32
  export const COMMIT = 'COMMIT';
33
33
  export const BOLD = 'BOLD';
34
34
  export const ITALIC = 'ITALIC';
35
- export const UNDERLINE = 'UNDERLINE';
35
+ export const UNDERLINE_TYPE = 'UNDERLINE_TYPE';
36
+ export const FONT_FAMILY = 'FONT_FAMILY';
37
+ export const FONT_SIZE = 'FONT_SIZE';
38
+ export const TEXT_ALIGN = 'TEXT_ALIGN';
39
+ export const BORDER_TYPE = 'BORDER_TYPE';
36
40
  export const COLOR = 'COLOR';
37
41
  export const BACKGROUND_COLOR = 'BACKGROUND_COLOR';
38
42
  export const FORMATE_PAINTER = 'FORMATE_PAINTER';
@@ -53,6 +57,7 @@ export function bold(data: Matrix<CellBase>): BoldStyle {
53
57
  payload: { data },
54
58
  };
55
59
  }
60
+
56
61
  export type ItalicStyle = BaseAction<typeof ITALIC> & {
57
62
  payload: {
58
63
  data: Matrix<CellBase>;
@@ -65,18 +70,90 @@ export function italic(data: Matrix<CellBase>): ItalicStyle {
65
70
  payload: { data },
66
71
  };
67
72
  }
68
- export type UnderlineStyle = BaseAction<typeof UNDERLINE> & {
73
+
74
+ export type BorderType = BaseAction<typeof BORDER_TYPE> & {
69
75
  payload: {
70
76
  data: Matrix<CellBase>;
77
+ value: string;
78
+ color: string;
71
79
  };
72
80
  };
73
81
 
74
- export function underline(data: Matrix<CellBase>): UnderlineStyle {
82
+ export function borderType(
83
+ data: Matrix<CellBase>,
84
+ value: string,
85
+ color: string
86
+ ): BorderType {
75
87
  return {
76
- type: UNDERLINE,
77
- payload: { data },
88
+ type: BORDER_TYPE,
89
+ payload: { data, value, color },
90
+ };
91
+ }
92
+
93
+ export type UnderlineTypeStyle = BaseAction<typeof UNDERLINE_TYPE> & {
94
+ payload: {
95
+ data: Matrix<CellBase>;
96
+ value: string;
97
+ active: boolean;
98
+ };
99
+ };
100
+
101
+ export function underlineType(
102
+ data: Matrix<CellBase>,
103
+ value: string,
104
+ active: boolean
105
+ ): UnderlineTypeStyle {
106
+ return {
107
+ type: UNDERLINE_TYPE,
108
+ payload: { data, value, active },
78
109
  };
79
110
  }
111
+
112
+ export type FontSize = BaseAction<typeof FONT_SIZE> & {
113
+ payload: {
114
+ data: Matrix<CellBase>;
115
+ value: string;
116
+ };
117
+ };
118
+
119
+ export function fontSize(data: Matrix<CellBase>, value: string): FontSize {
120
+ return {
121
+ type: FONT_SIZE,
122
+ payload: { data, value },
123
+ };
124
+ }
125
+
126
+ export type FontFamily = BaseAction<typeof FONT_FAMILY> & {
127
+ payload: {
128
+ data: Matrix<CellBase>;
129
+ value: string;
130
+ };
131
+ };
132
+
133
+ export function fontFamily(data: Matrix<CellBase>, value: string): FontFamily {
134
+ return {
135
+ type: FONT_FAMILY,
136
+ payload: { data, value },
137
+ };
138
+ }
139
+
140
+ export type TextAlignType = BaseAction<typeof TEXT_ALIGN> & {
141
+ payload: {
142
+ data: Matrix<CellBase>;
143
+ value: string;
144
+ };
145
+ };
146
+
147
+ export function textAlign(
148
+ data: Matrix<CellBase>,
149
+ value: string
150
+ ): TextAlignType {
151
+ return {
152
+ type: TEXT_ALIGN,
153
+ payload: { data, value },
154
+ };
155
+ }
156
+
80
157
  export type ColorStyle = BaseAction<typeof COLOR> & {
81
158
  payload: {
82
159
  data: Matrix<CellBase>;
@@ -90,6 +167,7 @@ export function color(data: Matrix<CellBase>, value: string): ColorStyle {
90
167
  payload: { data, value },
91
168
  };
92
169
  }
170
+
93
171
  export type BackgroundStyle = BaseAction<typeof BACKGROUND_COLOR> & {
94
172
  payload: {
95
173
  data: Matrix<CellBase>;
@@ -274,19 +352,6 @@ export function paste(data: string): PasteAction {
274
352
  };
275
353
  }
276
354
 
277
- export type KeyPressAction = BaseAction<typeof KEY_PRESS> & {
278
- payload: {
279
- event: React.KeyboardEvent;
280
- };
281
- };
282
-
283
- export function keyPress(event: React.KeyboardEvent): KeyPressAction {
284
- return {
285
- type: KEY_PRESS,
286
- payload: { event },
287
- };
288
- }
289
-
290
355
  export type KeyDownAction = BaseAction<typeof KEY_DOWN> & {
291
356
  payload: {
292
357
  event: React.KeyboardEvent;
@@ -373,7 +438,6 @@ export type Action =
373
438
  | SetCellDataAction
374
439
  | SetCellDimensionsAction
375
440
  | PasteAction
376
- | KeyPressAction
377
441
  | KeyDownAction
378
442
  | DragStartAction
379
443
  | DragEndAction
@@ -383,7 +447,11 @@ export type Action =
383
447
  | EditAction
384
448
  | ViewAction
385
449
  | ClearAction
386
- | UnderlineStyle
450
+ | UnderlineTypeStyle
451
+ | FontSize
452
+ | FontFamily
453
+ | TextAlignType
454
+ | BorderType
387
455
  | ItalicStyle
388
456
  | BoldStyle
389
457
  | ColorStyle