pixel-react 1.1.8 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. package/lib/components/AddButton/AddButton.d.ts +5 -0
  2. package/lib/components/AddButton/AddButton.stories.d.ts +6 -0
  3. package/lib/components/AddButton/index.d.ts +1 -0
  4. package/lib/components/AddButton/types.d.ts +4 -0
  5. package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +14 -0
  6. package/lib/components/ExcelFile/ColorBarSelector/ColorBarSelector.d.ts +8 -0
  7. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +4 -0
  8. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +7 -0
  9. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +4 -0
  10. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +5 -0
  11. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +3 -0
  12. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +5 -0
  13. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +5 -0
  14. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +8 -0
  15. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +10 -0
  16. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +3 -0
  17. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +3 -0
  18. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +5 -0
  19. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +3 -0
  20. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +81 -0
  21. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +3 -0
  22. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +130 -0
  23. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +1 -0
  24. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +8 -0
  25. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +22 -0
  26. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +17 -0
  27. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -0
  28. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +21 -0
  29. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +3 -0
  30. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +24 -0
  31. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +13 -0
  32. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +67 -0
  33. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +22 -0
  34. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +11 -0
  35. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +27 -0
  36. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +95 -0
  37. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +215 -0
  38. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +3 -0
  39. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +3 -0
  40. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +45 -0
  41. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +3 -0
  42. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +6 -0
  43. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +15 -0
  44. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +3 -0
  45. package/lib/components/ExcelFile/ImportExcelStyles.d.ts +24 -0
  46. package/lib/components/ExcelFile/Types.d.ts +176 -0
  47. package/lib/components/ExcelFile/index.d.ts +1 -0
  48. package/lib/components/IconRadioGroup/IconRadioGroup.d.ts +5 -0
  49. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +7 -0
  50. package/lib/components/IconRadioGroup/index.d.ts +1 -0
  51. package/lib/components/IconRadioGroup/type.d.ts +41 -0
  52. package/lib/index.d.ts +45 -1
  53. package/lib/index.esm.js +682 -244
  54. package/lib/index.esm.js.map +1 -1
  55. package/lib/index.js +682 -243
  56. package/lib/index.js.map +1 -1
  57. package/lib/tsconfig.tsbuildinfo +1 -1
  58. package/lib/utils/find/findAndInsert.d.ts +7 -0
  59. package/lib/utils/find/findAndInsert.stories.d.ts +7 -0
  60. package/package.json +4 -2
  61. package/src/assets/Themes/BaseTheme.scss +1 -0
  62. package/src/assets/Themes/DarkTheme.scss +1 -0
  63. package/src/assets/icons/all_borders.svg +3 -0
  64. package/src/assets/icons/bold.svg +3 -0
  65. package/src/assets/icons/border_bottom.svg +3 -0
  66. package/src/assets/icons/border_left.svg +3 -0
  67. package/src/assets/icons/border_right.svg +3 -0
  68. package/src/assets/icons/border_top.svg +3 -0
  69. package/src/assets/icons/clone_icon.svg +3 -0
  70. package/src/assets/icons/double_underline.svg +5 -0
  71. package/src/assets/icons/fill_color.svg +7 -0
  72. package/src/assets/icons/formate_painter.svg +5 -0
  73. package/src/assets/icons/full_access_icon.svg +4 -0
  74. package/src/assets/icons/history_icon.svg +19 -0
  75. package/src/assets/icons/italic.svg +3 -0
  76. package/src/assets/icons/jira.svg +3 -0
  77. package/src/assets/icons/linked_defects.svg +11 -0
  78. package/src/assets/icons/move_icon.svg +5 -0
  79. package/src/assets/icons/no_access_icon.svg +4 -0
  80. package/src/assets/icons/no_border.svg +3 -0
  81. package/src/assets/icons/strike_through.svg +3 -0
  82. package/src/assets/icons/text_align_center.svg +3 -0
  83. package/src/assets/icons/text_align_left.svg +3 -0
  84. package/src/assets/icons/text_align_right.svg +3 -0
  85. package/src/assets/icons/text_color.svg +3 -0
  86. package/src/assets/icons/underline.svg +4 -0
  87. package/src/assets/icons/view_access_icon.svg +4 -0
  88. package/src/components/AppHeader/AppHeader.scss +14 -9
  89. package/src/components/AppHeader/AppHeader.stories.tsx +1 -0
  90. package/src/components/AppHeader/AppHeader.tsx +7 -5
  91. package/src/components/ExcelFile/ChangeExcelStyles.tsx +78 -0
  92. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.scss +13 -0
  93. package/src/components/ExcelFile/ColorBarselector/ColorBarSelector.tsx +43 -0
  94. package/src/components/ExcelFile/ContextMenu/ContextMenu.scss +102 -0
  95. package/src/components/ExcelFile/ContextMenu/ContextMenu.tsx +104 -0
  96. package/src/components/ExcelFile/ExcelFile/Excel/ActiveCell.tsx +131 -0
  97. package/src/components/ExcelFile/ExcelFile/Excel/Cell.tsx +201 -0
  98. package/src/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.tsx +123 -0
  99. package/src/components/ExcelFile/ExcelFile/Excel/Copied.tsx +25 -0
  100. package/src/components/ExcelFile/ExcelFile/Excel/CornerIndicator.tsx +49 -0
  101. package/src/components/ExcelFile/ExcelFile/Excel/DataEditor.tsx +37 -0
  102. package/src/components/ExcelFile/ExcelFile/Excel/DataViewer.tsx +46 -0
  103. package/src/components/ExcelFile/ExcelFile/Excel/FloatingRect.tsx +31 -0
  104. package/src/components/ExcelFile/ExcelFile/Excel/HeaderRow.tsx +5 -0
  105. package/src/components/ExcelFile/ExcelFile/Excel/Row.tsx +5 -0
  106. package/src/components/ExcelFile/ExcelFile/Excel/RowIndicator.tsx +102 -0
  107. package/src/components/ExcelFile/ExcelFile/Excel/Selected.tsx +32 -0
  108. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.css +144 -0
  109. package/src/components/ExcelFile/ExcelFile/Excel/Spreadsheet.tsx +494 -0
  110. package/src/components/ExcelFile/ExcelFile/Excel/Table.tsx +19 -0
  111. package/src/components/ExcelFile/ExcelFile/Excel/actions.ts +302 -0
  112. package/src/components/ExcelFile/ExcelFile/Excel/areModelsEqual.ts +18 -0
  113. package/src/components/ExcelFile/ExcelFile/Excel/context.ts +12 -0
  114. package/src/components/ExcelFile/ExcelFile/Excel/engine/engine.ts +200 -0
  115. package/src/components/ExcelFile/ExcelFile/Excel/engine/formula.ts +137 -0
  116. package/src/components/ExcelFile/ExcelFile/Excel/engine/index.ts +2 -0
  117. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-graph.ts +154 -0
  118. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-hash.ts +10 -0
  119. package/src/components/ExcelFile/ExcelFile/Excel/engine/point-set.ts +69 -0
  120. package/src/components/ExcelFile/ExcelFile/Excel/index.ts +48 -0
  121. package/src/components/ExcelFile/ExcelFile/Excel/matrix.ts +388 -0
  122. package/src/components/ExcelFile/ExcelFile/Excel/point-range.ts +82 -0
  123. package/src/components/ExcelFile/ExcelFile/Excel/point.ts +15 -0
  124. package/src/components/ExcelFile/ExcelFile/Excel/reducer.ts +682 -0
  125. package/src/components/ExcelFile/ExcelFile/Excel/selection.ts +257 -0
  126. package/src/components/ExcelFile/ExcelFile/Excel/types.ts +269 -0
  127. package/src/components/ExcelFile/ExcelFile/Excel/typings/fast-formula-parser.d.ts +58 -0
  128. package/src/components/ExcelFile/ExcelFile/Excel/use-dispatch.ts +8 -0
  129. package/src/components/ExcelFile/ExcelFile/Excel/use-selector.ts +9 -0
  130. package/src/components/ExcelFile/ExcelFile/Excel/util.ts +173 -0
  131. package/src/components/ExcelFile/ExcelFile/ExcelFile.scss +27 -0
  132. package/src/components/ExcelFile/ExcelFile/ExcelFile.tsx +520 -0
  133. package/src/components/ExcelFile/ExcelFile.stories.tsx +132 -0
  134. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.scss +16 -0
  135. package/src/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.tsx +79 -0
  136. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.scss +22 -0
  137. package/src/components/ExcelFile/ExcelToolBar/ExcelToolBar.tsx +271 -0
  138. package/src/components/ExcelFile/ImportExcelStyles.tsx +86 -0
  139. package/src/components/ExcelFile/Types.ts +241 -0
  140. package/src/components/ExcelFile/index.ts +1 -0
  141. package/src/components/Icon/Icons.scss +2 -3
  142. package/src/components/Icon/iconList.ts +50 -1
  143. package/src/components/IconRadioGroup/IconRadioGroup.scss +60 -0
  144. package/src/components/IconRadioGroup/IconRadioGroup.stories.tsx +108 -0
  145. package/src/components/IconRadioGroup/IconRadioGroup.tsx +72 -0
  146. package/src/components/IconRadioGroup/index.ts +1 -0
  147. package/src/components/IconRadioGroup/type.ts +50 -0
  148. package/src/index.ts +2 -0
@@ -0,0 +1,173 @@
1
+ import * as Types from "./types";
2
+ import * as Matrix from "./matrix";
3
+ import * as Point from "./point";
4
+ import { PointRange } from "./point-range";
5
+ import { Selection } from "./selection";
6
+
7
+ export { createEmpty as createEmptyMatrix } from "./matrix";
8
+
9
+ export const PLAIN_TEXT_MIME = "text/plain";
10
+ export const FOCUS_WITHIN_SELECTOR = ":focus-within";
11
+
12
+ /** Move the cursor of given input element to the input's end */
13
+ export function moveCursorToEnd(el: HTMLInputElement): void {
14
+ el.selectionStart = el.selectionEnd = el.value.length;
15
+ }
16
+
17
+ /**
18
+ * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end. A step of -1 is used if a negative start is specified without an end or step. If end is not specified, it's set to start with start then set to 0.
19
+ * @param end - an integer number specifying at which position to stop (not included).
20
+ * @param start - An integer number specifying at which position to start.
21
+ * @param step - An integer number specifying the incrementation
22
+ */
23
+ export function range(end: number, start = 0, step = 1): number[] {
24
+ const array = [];
25
+ if (Math.sign(end - start) === -1) {
26
+ for (let element = start; element > end; element -= step) {
27
+ array.push(element);
28
+ }
29
+ return array;
30
+ }
31
+ for (let element = start; element < end; element += step) {
32
+ array.push(element);
33
+ }
34
+ return array;
35
+ }
36
+
37
+ /** Return whether given point is active */
38
+ export function isActive(
39
+ active: Types.StoreState["active"],
40
+ point: Point.Point
41
+ ): boolean {
42
+ return Boolean(active && Point.isEqual(point, active));
43
+ }
44
+
45
+ /** Get the offset values of given element */
46
+ export function getOffsetRect(element: HTMLElement): Types.Dimensions {
47
+ return {
48
+ width: element.offsetWidth,
49
+ height: element.offsetHeight,
50
+ left: element.offsetLeft,
51
+ top: element.offsetTop,
52
+ };
53
+ }
54
+
55
+ /** Write given data to clipboard with given event */
56
+ export function writeTextToClipboard(
57
+ event: ClipboardEvent,
58
+ data: string
59
+ ): void {
60
+ event.clipboardData?.setData(PLAIN_TEXT_MIME, data);
61
+ }
62
+
63
+ /** Read text from given clipboard event */
64
+ export function readTextFromClipboard(event: ClipboardEvent): string {
65
+ // @ts-ignore
66
+ if (window.clipboardData && window.clipboardData.getData) {
67
+ // @ts-ignore
68
+ return window.clipboardData.getData("Text");
69
+ }
70
+ if (event.clipboardData && event.clipboardData.getData) {
71
+ return event.clipboardData.getData(PLAIN_TEXT_MIME);
72
+ }
73
+ return "";
74
+ }
75
+
76
+ /** Get the dimensions of cell at point from state */
77
+ export function getCellDimensions(
78
+ point: Point.Point,
79
+ rowDimensions: Types.StoreState["rowDimensions"] | undefined,
80
+ columnDimensions: Types.StoreState["columnDimensions"] | undefined
81
+ ): Types.Dimensions | undefined {
82
+ const cellRowDimensions = rowDimensions && rowDimensions[point.row];
83
+ const cellColumnDimensions =
84
+ columnDimensions && columnDimensions[point.column];
85
+ return (
86
+ cellRowDimensions &&
87
+ cellColumnDimensions && {
88
+ ...cellRowDimensions,
89
+ ...cellColumnDimensions,
90
+ }
91
+ );
92
+ }
93
+
94
+ /** Get the dimensions of a range of cells */
95
+ export function getRangeDimensions(
96
+ rowDimensions: Types.StoreState["rowDimensions"],
97
+ columnDimensions: Types.StoreState["columnDimensions"],
98
+ range: PointRange
99
+ ): Types.Dimensions | undefined {
100
+ const startDimensions = getCellDimensions(
101
+ range.start,
102
+ rowDimensions,
103
+ columnDimensions
104
+ );
105
+ const endDimensions = getCellDimensions(
106
+ range.end,
107
+ rowDimensions,
108
+ columnDimensions
109
+ );
110
+ return (
111
+ startDimensions &&
112
+ endDimensions && {
113
+ width: endDimensions.left + endDimensions.width - startDimensions.left,
114
+ height: endDimensions.top + endDimensions.height - startDimensions.top,
115
+ top: startDimensions.top,
116
+ left: startDimensions.left,
117
+ }
118
+ );
119
+ }
120
+
121
+ /** Get the dimensions of selected */
122
+ export function getSelectedDimensions(
123
+ rowDimensions: Types.StoreState["rowDimensions"],
124
+ columnDimensions: Types.StoreState["columnDimensions"],
125
+ data: Matrix.Matrix<unknown>,
126
+ selected: Selection
127
+ ): Types.Dimensions | undefined {
128
+ const range = selected.toRange(data);
129
+ return range
130
+ ? getRangeDimensions(rowDimensions, columnDimensions, range)
131
+ : undefined;
132
+ }
133
+
134
+ /** Get given data as CSV */
135
+ export function getCSV(data: Matrix.Matrix<Types.CellBase>): string {
136
+ const valueMatrix = Matrix.map((cell) => cell?.value || "", data);
137
+ return Matrix.join(valueMatrix);
138
+ }
139
+
140
+ /**
141
+ * Calculate the rows and columns counts of a spreadsheet
142
+ * @param data - the spreadsheet's data
143
+ * @param rowLabels - the spreadsheet's row labels (if defined)
144
+ * @param columnLabels - the spreadsheet's column labels (if defined)
145
+ * @returns the rows and columns counts of a spreadsheet
146
+ */
147
+ export function calculateSpreadsheetSize(
148
+ data: Matrix.Matrix<unknown>,
149
+ rowLabels?: string[],
150
+ columnLabels?: string[]
151
+ ): Matrix.Size {
152
+ const { columns, rows } = Matrix.getSize(data);
153
+ return {
154
+ rows: rowLabels ? Math.max(rows, rowLabels.length) : rows,
155
+ columns: columnLabels ? Math.max(columns, columnLabels.length) : columns,
156
+ };
157
+ }
158
+
159
+ /** Should spreadsheet handle clipboard event */
160
+ export function shouldHandleClipboardEvent(
161
+ root: Element | null,
162
+ mode: Types.Mode
163
+ ): boolean {
164
+ return root !== null && mode === "view" && isFocusedWithin(root);
165
+ }
166
+
167
+ export function isFocusedWithin(element: Element): boolean {
168
+ return element.matches(FOCUS_WITHIN_SELECTOR);
169
+ }
170
+
171
+ export function hasLineBreaker(value: unknown) {
172
+ return typeof value === "string" && value.includes("\n");
173
+ }
@@ -0,0 +1,27 @@
1
+ @import '../../../assets/styles/colors';
2
+ @import '../../../assets/styles/rsfonts';
3
+
4
+ .excel-page {
5
+ width: 100%;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+
10
+ .excel-book {
11
+ position: relative;
12
+ width: 100%;
13
+ .excel-sheet {
14
+ overflow: scroll;
15
+ &::-webkit-scrollbar {
16
+ height: 8px;
17
+ }
18
+ }
19
+ }
20
+ }
21
+ .menu-list {
22
+ display: flex;
23
+ align-items: center;
24
+ .menu-title {
25
+ padding-left: 5px;
26
+ }
27
+ }