pixel-react 1.4.3 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/lib/components/AddResourceButton/type.d.ts +1 -1
  3. package/lib/components/Drawer/Types.d.ts +4 -0
  4. package/lib/components/Excel/ExcelContextMenu/ExcelContextMenu.d.ts +13 -0
  5. package/lib/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.d.ts +0 -13
  6. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.d.ts +29 -1
  7. package/lib/components/Excel/ExcelFile/ExcelFileComponents/engine/engine.d.ts +3 -9
  8. package/lib/components/Excel/ExcelFile/ExcelFileComponents/engine/formula.d.ts +2 -10
  9. package/lib/components/Excel/ExcelFile/ExcelFileComponents/engine/point-graph.d.ts +0 -1
  10. package/lib/components/Excel/ExcelFile/ExcelFileComponents/types.d.ts +27 -2
  11. package/lib/components/Form/Forms.d.ts +4 -2
  12. package/lib/components/InputWithDropdown/InputWithDropdown.d.ts +1 -1
  13. package/lib/components/MenuOption/MenuOption.d.ts +1 -1
  14. package/lib/components/MenuOption/types.d.ts +49 -15
  15. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  16. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +4 -5
  17. package/lib/components/MultiSelect/dropdownTypes.d.ts +2 -0
  18. package/lib/components/RadioButton/RadioButton.d.ts +1 -0
  19. package/lib/components/RadioButton/radioButtonTypes.d.ts +3 -1
  20. package/lib/components/Select/components/types.d.ts +4 -2
  21. package/lib/components/Table/Table.d.ts +1 -1
  22. package/lib/components/ToggleSwitch/ToggleSwitch.d.ts +10 -0
  23. package/lib/components/ToggleSwitch/index.d.ts +1 -0
  24. package/lib/index.d.ts +109 -23
  25. package/lib/index.esm.js +5711 -635
  26. package/lib/index.esm.js.map +1 -1
  27. package/lib/index.js +5707 -629
  28. package/lib/index.js.map +1 -1
  29. package/lib/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +11 -11
  31. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +10 -0
  32. package/src/assets/Themes/BaseTheme.scss +17 -23
  33. package/src/assets/Themes/DarkTheme.scss +25 -38
  34. package/src/assets/icons/apk_file_type.svg +4 -0
  35. package/src/assets/icons/compressed_file_type.svg +4 -0
  36. package/src/assets/icons/csv_file_type.svg +4 -0
  37. package/src/assets/icons/excel_corner_menu.svg +3 -0
  38. package/src/assets/icons/formula_icon.svg +3 -0
  39. package/src/assets/icons/gif_file_type.svg +4 -0
  40. package/src/assets/icons/html_file_type.svg +4 -0
  41. package/src/assets/icons/ipk_file_type.svg +4 -0
  42. package/src/assets/icons/jpg_file_type.svg +4 -0
  43. package/src/assets/icons/json_file_type.svg +4 -0
  44. package/src/assets/icons/pdf_file_type.svg +4 -0
  45. package/src/assets/icons/png_file_type.svg +4 -0
  46. package/src/assets/icons/quick_run_setting_icon.svg +5 -0
  47. package/src/assets/icons/run_automation_scripts_icon.svg +33 -0
  48. package/src/assets/icons/run_manual_testcase_icon.svg +4 -0
  49. package/src/assets/icons/search.svg +2 -2
  50. package/src/assets/icons/txt_file_type.svg +4 -0
  51. package/src/assets/icons/xls_file_type.svg +4 -0
  52. package/src/assets/icons/xlsx_file_type.svg +4 -0
  53. package/src/assets/icons/xml_file_type.svg +4 -0
  54. package/src/components/AddResourceButton/AddButton.tsx +7 -7
  55. package/src/components/AddResourceButton/type.ts +1 -1
  56. package/src/components/AttachmentButton/AttachmentButton.scss +1 -1
  57. package/src/components/AttachmentButton/AttachmentButton.stories.tsx +1 -0
  58. package/src/components/Button/Button.scss +22 -20
  59. package/src/components/Button/Button.tsx +8 -1
  60. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.tsx +2 -2
  61. package/src/components/Drawer/Drawer.scss +4 -3
  62. package/src/components/Drawer/Drawer.tsx +14 -18
  63. package/src/components/Drawer/Types.ts +4 -0
  64. package/src/components/Editor/Editor.tsx +9 -11
  65. package/src/components/Excel/ExcelContextMenu/ExcelContextMenu.scss +39 -0
  66. package/src/components/Excel/ExcelContextMenu/ExcelContextMenu.tsx +51 -0
  67. package/src/components/Excel/ExcelFile/ExcelFile.tsx +7 -8
  68. package/src/components/Excel/ExcelFile/ExcelFileComponents/Cell.tsx +35 -0
  69. package/src/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.tsx +44 -7
  70. package/src/components/Excel/ExcelFile/ExcelFileComponents/CornerIndicator.tsx +8 -1
  71. package/src/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.tsx +45 -6
  72. package/src/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.scss +37 -2
  73. package/src/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.tsx +69 -24
  74. package/src/components/Excel/ExcelFile/ExcelFileComponents/actions.ts +59 -0
  75. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/engine.ts +18 -65
  76. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/formula.ts +5 -110
  77. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/point-graph.ts +0 -2
  78. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducer.ts +105 -1
  79. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.ts +670 -673
  80. package/src/components/Excel/ExcelFile/ExcelFileComponents/types.ts +38 -2
  81. package/src/components/Excel/ExcelToolBar/ExcelToolBar.tsx +0 -4
  82. package/src/components/FileDropzone/FileDropzone.scss +4 -2
  83. package/src/components/FileDropzone/FileDropzone.tsx +1 -1
  84. package/src/components/FileDropzone/FilePreview.tsx +3 -1
  85. package/src/components/Form/Form.scss +2 -0
  86. package/src/components/Form/Form.stories.tsx +195 -6
  87. package/src/components/Form/Forms.tsx +15 -8
  88. package/src/components/Icon/iconList.ts +46 -0
  89. package/src/components/IconRadioGroup/IconRadioGroup.scss +3 -0
  90. package/src/components/IconRadioGroup/IconRadioGroup.tsx +20 -17
  91. package/src/components/Input/Input.scss +14 -15
  92. package/src/components/Input/Input.stories.tsx +2 -1
  93. package/src/components/InputWithDropdown/InputWithDropdown.scss +12 -13
  94. package/src/components/InputWithDropdown/InputWithDropdown.stories.tsx +3 -2
  95. package/src/components/InputWithDropdown/InputWithDropdown.tsx +22 -19
  96. package/src/components/MenuOption/MenuOption.scss +11 -10
  97. package/src/components/MenuOption/MenuOption.stories.tsx +51 -232
  98. package/src/components/MenuOption/MenuOption.tsx +131 -52
  99. package/src/components/MenuOption/types.ts +55 -14
  100. package/src/components/MiniModal/MiniModal.stories.tsx +2 -3
  101. package/src/components/MultiSelect/Dropdown.tsx +11 -12
  102. package/src/components/MultiSelect/MultiSelect.scss +1 -0
  103. package/src/components/MultiSelect/MultiSelect.stories.tsx +45 -10
  104. package/src/components/MultiSelect/MultiSelect.tsx +29 -13
  105. package/src/components/MultiSelect/MultiSelectTypes.ts +7 -5
  106. package/src/components/MultiSelect/dropdownTypes.ts +2 -0
  107. package/src/components/RadioButton/RadioButton.scss +3 -1
  108. package/src/components/RadioButton/RadioButton.tsx +3 -1
  109. package/src/components/RadioButton/radioButtonTypes.tsx +5 -1
  110. package/src/components/Search/Search.scss +25 -6
  111. package/src/components/Search/Search.tsx +45 -24
  112. package/src/components/Select/Select.scss +12 -12
  113. package/src/components/Select/Select.stories.tsx +2 -0
  114. package/src/components/Select/Select.tsx +11 -5
  115. package/src/components/Select/components/Dropdown.scss +2 -0
  116. package/src/components/Select/components/Dropdown.tsx +19 -4
  117. package/src/components/Select/components/types.ts +4 -2
  118. package/src/components/StatusButton/StatusButton.tsx +26 -20
  119. package/src/components/Table/Table.scss +1 -3
  120. package/src/components/Table/Table.stories.tsx +1 -0
  121. package/src/components/Table/Table.tsx +7 -3
  122. package/src/components/ToggleSwitch/ToggleSwitch.scss +59 -0
  123. package/src/components/ToggleSwitch/ToggleSwitch.stories.tsx +52 -0
  124. package/src/components/ToggleSwitch/ToggleSwitch.tsx +30 -0
  125. package/src/components/ToggleSwitch/index.ts +1 -0
  126. package/src/hooks/useFileDropzone.tsx +1 -0
  127. package/src/index.ts +4 -2
  128. package/src/components/Excel/ContextMenu/ContextMenu.scss +0 -99
  129. package/src/components/Excel/ContextMenu/ContextMenu.tsx +0 -103
@@ -1,15 +1,5 @@
1
- import FormulaParser, {
2
- CellRef,
3
- DepParser,
4
- FormulaError,
5
- FormulaParserConfig,
6
- Value,
7
- } from 'fast-formula-parser';
8
- import { PointRange } from '../point-range';
9
- import { Point } from '../point';
10
1
  import * as Matrix from '../matrix';
11
2
  import { CellBase } from '../types';
12
- import { PointSet } from './point-set';
13
3
 
14
4
  export const FORMULA_VALUE_PREFIX = '=';
15
5
 
@@ -29,109 +19,14 @@ export function extractFormula(value: string): string {
29
19
 
30
20
  export function createFormulaParser(
31
21
  data: Matrix.Matrix<CellBase>,
32
- config?: Omit<FormulaParserConfig, 'onCell' | 'onRange'>
33
- ): FormulaParser {
34
- return new FormulaParser({
35
- ...config,
36
- onCell: (ref) => {
37
- const point: Point = {
38
- row: ref.row - 1,
39
- column: ref.col - 1,
40
- };
41
- const cell = Matrix.get(point, data);
42
- if (!isNaN(cell?.value as number)) return Number(cell?.value);
43
- return cell?.value;
44
- },
45
- onRange: (ref) => {
46
- const size = Matrix.getSize(data);
47
- const start: Point = {
48
- row: ref.from.row - 1,
49
- column: ref.from.col - 1,
50
- };
51
- const end: Point = {
52
- row: Math.min(ref.to.row - 1, size.rows - 1),
53
- column: Math.min(ref.to.col - 1, size.columns - 1),
54
- };
55
- const dataSlice = Matrix.slice(start, end, data);
56
- return Matrix.toArray(dataSlice, (cell) => {
57
- if (!isNaN(cell?.value as number)) return Number(cell?.value);
58
- return cell?.value;
59
- });
60
- },
61
- });
22
+ ) {
23
+ return data
62
24
  }
63
25
 
64
- const depParser = new DepParser();
65
-
66
- /**
67
- * For given formula returns the cell references
68
- * @param formula - formula to get references for
69
- */
70
- export function getReferences(
71
- formula: string,
72
- point: Point,
73
- data: Matrix.Matrix<CellBase>
74
- ): PointSet {
75
- const { rows, columns } = Matrix.getSize(data);
26
+ export function evaluate() {
76
27
  try {
77
- const dependencies = depParser.parse(formula, convertPointToCellRef(point));
78
-
79
- const references = PointSet.from(
80
- dependencies.flatMap((reference) => {
81
- const isRange = 'from' in reference;
82
- if (isRange) {
83
- const { from, to } = reference;
84
-
85
- const normalizedFrom: Point = {
86
- row: from.row - 1,
87
- column: from.col - 1,
88
- };
89
-
90
- const normalizedTo: Point = {
91
- row: Math.min(to.row - 1, rows - 1),
92
- column: Math.min(to.col - 1, columns - 1),
93
- };
94
-
95
- const range = new PointRange(normalizedFrom, normalizedTo);
96
-
97
- return Array.from(range);
98
- }
99
- return { row: reference.row - 1, column: reference.col - 1 };
100
- })
101
- );
102
-
103
- return references;
28
+ return "";
104
29
  } catch (error) {
105
- if (error instanceof FormulaError) {
106
- return PointSet.from([]);
107
- } else {
108
- throw error;
109
- }
110
- }
111
- }
112
-
113
- export function evaluate(
114
- formula: string,
115
- point: Point,
116
- formulaParser: FormulaParser
117
- ): Value {
118
- try {
119
- const position = convertPointToCellRef(point);
120
- const returned = formulaParser.parse(formula, position);
121
- return returned instanceof FormulaError ? returned.toString() : returned;
122
- } catch (error) {
123
- if (error instanceof FormulaError) {
124
- return error.toString();
125
- }
126
30
  throw error;
127
31
  }
128
- }
129
-
130
- function convertPointToCellRef(point: Point): CellRef {
131
- return {
132
- row: point.row + 1,
133
- col: point.column + 1,
134
- // TODO: fill once we support multiple sheets
135
- sheet: 'Sheet1',
136
- };
137
- }
32
+ }
@@ -58,7 +58,6 @@ export class PointGraph {
58
58
  return result;
59
59
  }
60
60
 
61
- /** Determine whether the graph has a circular dependency, starting from given start point */
62
61
  hasCircularDependency(startPoint: Point): boolean {
63
62
  let visited = PointSet.from([]);
64
63
  const stack: Point[] = [startPoint];
@@ -96,7 +95,6 @@ export class PointGraph {
96
95
  visitedHashes.add(key);
97
96
  yield [point, values];
98
97
 
99
- // Make sure to include values that are not included in the forwards map keys
100
98
  for (const value of values) {
101
99
  const hash = pointHash.toString(value);
102
100
  if (!visitedHashes.has(hash) && !this.forwards.has(hash)) {
@@ -30,6 +30,7 @@ import {
30
30
  isActiveReadOnly,
31
31
  view,
32
32
  } from './reducerFunctions';
33
+ import { checkEmpty } from '../../../../utils/checkEmpty/checkEmpty';
33
34
 
34
35
  export const INITIAL_STATE: Types.StoreState = {
35
36
  active: null,
@@ -44,6 +45,8 @@ export const INITIAL_STATE: Types.StoreState = {
44
45
  selected: new EmptySelection(),
45
46
  copied: null,
46
47
  lastCommit: null,
48
+ selectedColumn: null,
49
+ selectedRow: null,
47
50
  };
48
51
 
49
52
  export default function reducer(
@@ -51,6 +54,104 @@ export default function reducer(
51
54
  action: Actions.Action
52
55
  ): Types.StoreState {
53
56
  switch (action.type) {
57
+ case Actions.ADD_ROW_TOP: {
58
+ let { selectedRow, selectedColumn, model } = state;
59
+ if (checkEmpty(selectedRow)) {
60
+ return state;
61
+ }
62
+ selectedRow = selectedRow as number;
63
+ let updatedData = [...model.data];
64
+ const newRow = Array(updatedData[0]?.length || 0).fill({
65
+ value: undefined,
66
+ });
67
+ updatedData.splice(selectedRow, 0, newRow);
68
+ const updatedModel = new Model(model.createFormulaParser, updatedData);
69
+
70
+ return {
71
+ ...state,
72
+ model: updatedModel,
73
+ selectedRow: selectedRow,
74
+ selectedColumn: selectedColumn,
75
+ };
76
+ }
77
+
78
+ case Actions.ADD_COLUMN_LEFT: {
79
+ let { selectedRow, selectedColumn, model } = state;
80
+ if (checkEmpty(selectedColumn)) {
81
+ return state;
82
+ }
83
+ selectedColumn = selectedColumn as number;
84
+ let updatedData = [...model.data];
85
+ updatedData = updatedData.map((row) => {
86
+ const newCell = { value: undefined };
87
+ return [
88
+ ...row.slice(0, selectedColumn),
89
+ newCell,
90
+ ...row.slice(selectedColumn),
91
+ ];
92
+ });
93
+
94
+ const updatedModel = new Model(model.createFormulaParser, updatedData);
95
+
96
+ return {
97
+ ...state,
98
+ model: updatedModel,
99
+ selectedRow: selectedRow,
100
+ selectedColumn: selectedColumn - 1,
101
+ };
102
+ }
103
+
104
+ case Actions.DELETE_ROW: {
105
+ let { selectedRow, selectedColumn, model } = state;
106
+ if (checkEmpty(selectedRow)) {
107
+ return state;
108
+ }
109
+ selectedRow = selectedRow as number;
110
+ let updatedData = [...model.data];
111
+
112
+ updatedData.splice(selectedRow, 1);
113
+
114
+ const updatedModel = new Model(model.createFormulaParser, updatedData);
115
+
116
+ let newSelectedRow = selectedRow > 0 ? selectedRow - 1 : 0;
117
+ let newSelectedColumn = !checkEmpty(selectedColumn) ? selectedColumn : 0;
118
+
119
+ return {
120
+ ...state,
121
+ model: updatedModel,
122
+ selectedRow: newSelectedRow,
123
+ selectedColumn: newSelectedColumn,
124
+ };
125
+ }
126
+
127
+ case Actions.DELETE_COLUMN: {
128
+ let { selectedRow, selectedColumn, model } = state;
129
+
130
+ if (checkEmpty(selectedColumn)) {
131
+ return state;
132
+ }
133
+ selectedColumn = selectedColumn as number;
134
+
135
+ let updatedData = [...model.data];
136
+
137
+ updatedData = updatedData.map((row) => {
138
+ row.splice(selectedColumn, 1);
139
+ return row;
140
+ });
141
+
142
+ const updatedModel = new Model(model.createFormulaParser, updatedData);
143
+
144
+ let newSelectedRow = !checkEmpty(selectedRow) ? selectedRow : 0;
145
+ let newSelectedColumn = selectedColumn > 0 ? selectedColumn - 1 : 0;
146
+
147
+ return {
148
+ ...state,
149
+ model: updatedModel,
150
+ selectedRow: newSelectedRow,
151
+ selectedColumn: newSelectedColumn,
152
+ };
153
+ }
154
+
54
155
  case Actions.BOLD: {
55
156
  const selectedRange = state.selected.toRange(state.model.data);
56
157
  const updatedData = applyBoldToCells(
@@ -215,13 +316,14 @@ export default function reducer(
215
316
  : new EntireRowsSelection(row, row),
216
317
  active: extend && active ? active : { ...Point.ORIGIN, row },
217
318
  mode: 'view',
319
+ selectedColumn: null,
320
+ selectedRow: row,
218
321
  };
219
322
  }
220
323
 
221
324
  case Actions.SELECT_ENTIRE_COLUMN: {
222
325
  const { column, extend } = action.payload;
223
326
  const { active } = state;
224
-
225
327
  return {
226
328
  ...state,
227
329
  selected:
@@ -230,6 +332,8 @@ export default function reducer(
230
332
  : new EntireColumnsSelection(column, column),
231
333
  active: extend && active ? active : { ...Point.ORIGIN, column },
232
334
  mode: 'view',
335
+ selectedColumn: column,
336
+ selectedRow: null,
233
337
  };
234
338
  }
235
339