pixel-react 1.6.9 → 1.7.0

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 (928) hide show
  1. package/.prettierrc.js +13 -13
  2. package/.storybook/main.ts +26 -26
  3. package/.storybook/preview-head.html +2 -2
  4. package/.storybook/preview.ts +26 -26
  5. package/.yarnrc.yml +1 -1
  6. package/README.md +75 -75
  7. package/index.scss +4 -4
  8. package/lib/StyleGuide/ColorPalette/ColorPalette.stories.d.ts +6 -0
  9. package/lib/StyleGuide/Typography/Typography.stories.d.ts +6 -0
  10. package/lib/assets/fonts/Poppins-Bold.ttf +0 -0
  11. package/lib/assets/fonts/Poppins-Medium.ttf +0 -0
  12. package/lib/assets/fonts/Poppins-Regular.ttf +0 -0
  13. package/lib/assets/fonts/Poppins-SemiBold.ttf +0 -0
  14. package/lib/components/Accordion/Accordion.stories.d.ts +6 -0
  15. package/lib/components/AddButton/AddButton.d.ts +5 -0
  16. package/lib/components/AddButton/AddButton.stories.d.ts +6 -0
  17. package/lib/components/AddButton/index.d.ts +1 -0
  18. package/lib/components/AddButton/types.d.ts +4 -0
  19. package/lib/components/AddResourceButton/AddButton.stories.d.ts +8 -0
  20. package/lib/components/AddVariables/types.d.ts +3 -67
  21. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.stories.d.ts +7 -0
  22. package/lib/components/AppHeader/AppHeader.stories.d.ts +7 -0
  23. package/lib/components/AttachImage/AttachImage.stories.d.ts +7 -0
  24. package/lib/components/AttachmentButton/AttachmentButton.stories.d.ts +9 -0
  25. package/lib/components/Avatar/Avatar.stories.d.ts +10 -0
  26. package/lib/components/Button/Button.stories.d.ts +13 -0
  27. package/lib/components/Charts/BarChart/BarChart.stories.d.ts +6 -0
  28. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.d.ts +7 -0
  29. package/lib/components/Charts/DonutChart/DonutChart.stories.d.ts +6 -0
  30. package/lib/components/Charts/IconRadialChart/IconRadialChart.stories.d.ts +8 -0
  31. package/lib/components/Charts/LineChart/LineChart.stories.d.ts +7 -0
  32. package/lib/components/Charts/LineChart/types.d.ts +1 -0
  33. package/lib/components/Charts/MultiRadialChart/MultiRadialChart.stories.d.ts +8 -0
  34. package/lib/components/Charts/PieChart/PieChart.stories.d.ts +7 -0
  35. package/lib/components/Charts/RadialChart/RadialChart.stories.d.ts +6 -0
  36. package/lib/components/Checkbox/Checkbox.stories.d.ts +8 -0
  37. package/lib/components/Chip/Chip.stories.d.ts +14 -0
  38. package/lib/components/Chip/types.d.ts +1 -1
  39. package/lib/components/ConditionalDropdown/ConditionalDropdown.d.ts +5 -0
  40. package/lib/components/ConditionalDropdown/OptionsDropdown.d.ts +5 -0
  41. package/lib/components/ConditionalDropdown/index.d.ts +1 -0
  42. package/lib/components/ConditionalDropdown/types.d.ts +145 -0
  43. package/lib/components/ConnectingBranch/ConnectingBranch.stories.d.ts +6 -0
  44. package/lib/components/DatePicker/DatePicker.stories.d.ts +9 -0
  45. package/lib/components/DownloadClient/type.d.ts +19 -27
  46. package/lib/components/DragAndDrop/DragAndDrop.stories.d.ts +6 -0
  47. package/lib/components/Drawer/Drawer.stories.d.ts +12 -0
  48. package/lib/components/EditTextField/EditTextField.stories.d.ts +10 -0
  49. package/lib/components/Editor/Editor.stories.d.ts +6 -0
  50. package/lib/components/Excel/ContextMenu/ContextMenu.d.ts +4 -0
  51. package/lib/components/Excel/ExcelFile/ExcelFileComponents/actions.d.ts +8 -1
  52. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.d.ts +2 -0
  53. package/lib/components/Excel/ExcelFile/ExcelFileComponents/types.d.ts +13 -6
  54. package/lib/components/Excel/ExcelFile.stories.d.ts +6 -0
  55. package/lib/components/ExcelFile/ChangeExcelStyles.d.ts +14 -0
  56. package/lib/components/ExcelFile/ColorBarSelector/ColorBarSelector.d.ts +8 -0
  57. package/lib/components/ExcelFile/ContextMenu/ContextMenu.d.ts +4 -0
  58. package/lib/components/ExcelFile/ExcelFile/Excel/ActiveCell.d.ts +7 -0
  59. package/lib/components/ExcelFile/ExcelFile/Excel/Cell.d.ts +4 -0
  60. package/lib/components/ExcelFile/ExcelFile/Excel/ColumnIndicator.d.ts +5 -0
  61. package/lib/components/ExcelFile/ExcelFile/Excel/Copied.d.ts +3 -0
  62. package/lib/components/ExcelFile/ExcelFile/Excel/CornerIndicator.d.ts +5 -0
  63. package/lib/components/ExcelFile/ExcelFile/Excel/DataEditor.d.ts +5 -0
  64. package/lib/components/ExcelFile/ExcelFile/Excel/DataViewer.d.ts +8 -0
  65. package/lib/components/ExcelFile/ExcelFile/Excel/FloatingRect.d.ts +10 -0
  66. package/lib/components/ExcelFile/ExcelFile/Excel/HeaderRow.d.ts +3 -0
  67. package/lib/components/ExcelFile/ExcelFile/Excel/Row.d.ts +3 -0
  68. package/lib/components/ExcelFile/ExcelFile/Excel/RowIndicator.d.ts +5 -0
  69. package/lib/components/ExcelFile/ExcelFile/Excel/Selected.d.ts +3 -0
  70. package/lib/components/ExcelFile/ExcelFile/Excel/Spreadsheet.d.ts +80 -0
  71. package/lib/components/ExcelFile/ExcelFile/Excel/Table.d.ts +3 -0
  72. package/lib/components/ExcelFile/ExcelFile/Excel/actions.d.ts +174 -0
  73. package/lib/components/ExcelFile/ExcelFile/Excel/areModelsEqual.d.ts +1 -0
  74. package/lib/components/ExcelFile/ExcelFile/Excel/context.d.ts +8 -0
  75. package/lib/components/ExcelFile/ExcelFile/Excel/engine/engine.d.ts +22 -0
  76. package/lib/components/ExcelFile/ExcelFile/Excel/engine/formula.d.ts +17 -0
  77. package/lib/components/ExcelFile/ExcelFile/Excel/engine/index.d.ts +2 -0
  78. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-graph.d.ts +21 -0
  79. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-hash.d.ts +3 -0
  80. package/lib/components/ExcelFile/ExcelFile/Excel/engine/point-set.d.ts +24 -0
  81. package/lib/components/ExcelFile/ExcelFile/Excel/index.d.ts +13 -0
  82. package/lib/components/ExcelFile/ExcelFile/Excel/matrix.d.ts +67 -0
  83. package/lib/components/ExcelFile/ExcelFile/Excel/point-range.d.ts +22 -0
  84. package/lib/components/ExcelFile/ExcelFile/Excel/point.d.ts +11 -0
  85. package/lib/components/ExcelFile/ExcelFile/Excel/reducer.d.ts +27 -0
  86. package/lib/components/ExcelFile/ExcelFile/Excel/selection.d.ts +95 -0
  87. package/lib/components/ExcelFile/ExcelFile/Excel/types.d.ts +178 -0
  88. package/lib/components/ExcelFile/ExcelFile/Excel/use-dispatch.d.ts +3 -0
  89. package/lib/components/ExcelFile/ExcelFile/Excel/use-selector.d.ts +3 -0
  90. package/lib/components/ExcelFile/ExcelFile/Excel/util.d.ts +44 -0
  91. package/lib/components/ExcelFile/ExcelFile/ExcelFile.d.ts +19 -0
  92. package/lib/components/ExcelFile/ExcelFile.stories.d.ts +6 -0
  93. package/lib/components/ExcelFile/ExcelSheetBar/ExcelSheetBar.d.ts +12 -0
  94. package/lib/components/ExcelFile/ExcelToolBar/ExcelToolBar.d.ts +15 -0
  95. package/lib/components/ExcelFile/ImportExcelStyles.d.ts +24 -0
  96. package/lib/components/ExcelFile/Types.d.ts +129 -0
  97. package/lib/components/ExcelFile/index.d.ts +1 -0
  98. package/lib/components/ExpandableMenu/ExpandableMenu.stories.d.ts +7 -0
  99. package/lib/components/FF_Captcha/captcha.stories.d.ts +8 -0
  100. package/lib/components/FileDropzone/FileDropzone.stories.d.ts +8 -0
  101. package/lib/components/Form/Form.stories.d.ts +7 -0
  102. package/lib/components/GridLayout/GridLayout.stories.d.ts +8 -0
  103. package/lib/components/HighlightText/HighlightText.stories.d.ts +6 -0
  104. package/lib/components/Icon/Icon.stories.d.ts +8 -0
  105. package/lib/components/IconButton/IconButton.stories.d.ts +7 -0
  106. package/lib/components/IconRadioGroup/IconRadioGroup.stories.d.ts +7 -0
  107. package/lib/components/Input/Input.stories.d.ts +9 -0
  108. package/lib/components/InputWithDropdown/InputWithDropdown.stories.d.ts +9 -0
  109. package/lib/components/LabelEditTextField/LabelEditTextField.stories.d.ts +13 -0
  110. package/lib/components/LabelEditTextField/types.d.ts +1 -0
  111. package/lib/components/LazyLoad/LazyLoad.stories.d.ts +6 -0
  112. package/lib/components/MachineInputField/MachineInputField.stories.d.ts +6 -0
  113. package/lib/components/MachineInputField/types.d.ts +1 -0
  114. package/lib/components/MenuOption/MenuOption.d.ts +1 -1
  115. package/lib/components/MenuOption/MenuOption.stories.d.ts +16 -0
  116. package/lib/components/MenuOption/types.d.ts +2 -1
  117. package/lib/components/MiniModal/MiniModal.stories.d.ts +10 -0
  118. package/lib/components/MiniModal/types.d.ts +1 -0
  119. package/lib/components/Modal/Modal.stories.d.ts +7 -0
  120. package/lib/components/ModulesChip/ModuleChip.stories.d.ts +6 -0
  121. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  122. package/lib/components/MultiSelect/MultiSelect.stories.d.ts +11 -0
  123. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
  124. package/lib/components/MultiSelect/dropdownTypes.d.ts +1 -0
  125. package/lib/components/NLPInput/NlpInput.d.ts +2 -2
  126. package/lib/components/NLPInput/NlpInput.stories.d.ts +7 -0
  127. package/lib/components/NLPInput/components/NlpDropDown/NlpDropDownType.d.ts +6 -3
  128. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.d.ts +1 -1
  129. package/lib/components/NLPInput/sampleData.d.ts +104 -0
  130. package/lib/components/NLPInput/types.d.ts +80 -0
  131. package/lib/components/Paper/Paper.stories.d.ts +11 -0
  132. package/lib/components/ProgressBar/ProgressBar.d.ts +5 -0
  133. package/lib/components/ProgressBar/index.d.ts +1 -0
  134. package/lib/components/ProgressBar/types.d.ts +12 -0
  135. package/lib/components/RadioButton/RadioButton.stories.d.ts +10 -0
  136. package/lib/components/RadioGroup/RadioGroup.stories.d.ts +9 -0
  137. package/lib/components/Search/Search.stories.d.ts +6 -0
  138. package/lib/components/Select/Select.stories.d.ts +14 -0
  139. package/lib/components/Select/components/Dropdown/Dropdown.d.ts +4 -0
  140. package/lib/components/Select/components/Dropdown/dropdownTypes.d.ts +17 -0
  141. package/lib/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.d.ts +6 -0
  142. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.d.ts +1 -1
  143. package/lib/components/SequentialConnectingBranch/components/Branches/types.d.ts +4 -0
  144. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.d.ts +1 -1
  145. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/types.d.ts +4 -0
  146. package/lib/components/SequentialConnectingBranch/types.d.ts +7 -1
  147. package/lib/components/StateDropdown/StateDropdown.stories.d.ts +10 -0
  148. package/lib/components/StatusButton/StatusButton.stories.d.ts +14 -0
  149. package/lib/components/StatusCard/StatusCard.stories.d.ts +11 -0
  150. package/lib/components/Table/Table.stories.d.ts +13 -0
  151. package/lib/components/TableTree/TableTree.d.ts +2 -2
  152. package/lib/components/TableTree/TableTree.stories.d.ts +7 -0
  153. package/lib/components/TableTree/Utils/getAllChildIds.d.ts +1 -0
  154. package/lib/components/TableTree/types.d.ts +1 -1
  155. package/lib/components/Tabs/Tabs.stories.d.ts +9 -0
  156. package/lib/components/TextArea/Textarea.stories.d.ts +9 -0
  157. package/lib/components/Toast/Toast.stories.d.ts +6 -0
  158. package/lib/components/Toastify/Toastify.stories.d.ts +6 -0
  159. package/lib/components/Toggle/Toggle.stories.d.ts +12 -0
  160. package/lib/components/Tooltip/Tooltip.stories.d.ts +15 -0
  161. package/lib/components/Typography/Typography.stories.d.ts +10 -0
  162. package/lib/components/VariableInput/VariableInput.stories.d.ts +6 -0
  163. package/lib/hooks/useIntersectionObserver.d.ts +9 -0
  164. package/lib/index.d.ts +112 -59
  165. package/lib/index.esm.js +1264 -678
  166. package/lib/index.esm.js.map +1 -1
  167. package/lib/index.js +1265 -678
  168. package/lib/index.js.map +1 -1
  169. package/lib/tsconfig.tsbuildinfo +1 -1
  170. package/lib/utils/checkEmpty/checkEmpty.stories.d.ts +6 -0
  171. package/lib/utils/compareArrays/compareArrays.stories.d.ts +6 -0
  172. package/lib/utils/compareObjects/compareObjects.stories.d.ts +6 -0
  173. package/lib/utils/debounce/debounce.stories.d.ts +6 -0
  174. package/lib/utils/ffID/ffID.stories.d.ts +6 -0
  175. package/lib/utils/find/findAndInsert.d.ts +7 -0
  176. package/lib/utils/find/findAndInsert.stories.d.ts +7 -0
  177. package/lib/utils/findAndInsert/findAndInsert.stories.d.ts +7 -0
  178. package/lib/utils/functionCheck/functionCheck.d.ts +2 -0
  179. package/lib/utils/getEncryptedData/getEncryptedData.stories.d.ts +6 -0
  180. package/lib/utils/getExtension/getExtension.stories.d.ts +6 -0
  181. package/lib/utils/getSequentialPayload/getSequentialPayload.stories.d.ts +10 -0
  182. package/lib/utils/getSequentialPayload/types.d.ts +1 -0
  183. package/lib/utils/throttle/throttle.stories.d.ts +6 -0
  184. package/lib/utils/truncateText/truncateText.stories.d.ts +6 -0
  185. package/package.json +81 -81
  186. package/rollup.config.mjs +67 -67
  187. package/src/StyleGuide/ColorPalette/ColorPalette.scss +62 -62
  188. package/src/StyleGuide/ColorPalette/ColorPalette.stories.tsx +16 -16
  189. package/src/StyleGuide/ColorPalette/ColorPalette.tsx +67 -67
  190. package/src/StyleGuide/ColorPalette/colorPaletteList.ts +299 -294
  191. package/src/StyleGuide/ColorPalette/index.ts +1 -1
  192. package/src/StyleGuide/ColorPalette/types.ts +19 -19
  193. package/src/StyleGuide/Typography/Typography.scss +99 -99
  194. package/src/StyleGuide/Typography/Typography.stories.tsx +16 -16
  195. package/src/StyleGuide/Typography/Typography.tsx +60 -60
  196. package/src/StyleGuide/Typography/TypographyList.ts +3 -3
  197. package/src/StyleGuide/Typography/types.ts +9 -9
  198. package/src/assets/Themes/BaseTheme.scss +299 -281
  199. package/src/assets/Themes/DarkTheme.scss +305 -288
  200. package/src/assets/Themes/Theme.scss +16 -16
  201. package/src/assets/icons/Arrow.svg +4 -4
  202. package/src/assets/icons/Header_preset.svg +18 -18
  203. package/src/assets/icons/accordion_header_icon.svg +10 -10
  204. package/src/assets/icons/active_license_icon.svg +3 -3
  205. package/src/assets/icons/add_archive.svg +9 -9
  206. package/src/assets/icons/add_file.svg +4 -4
  207. package/src/assets/icons/add_label_icon.svg +3 -3
  208. package/src/assets/icons/add_locator.svg +4 -4
  209. package/src/assets/icons/add_testcase.svg +3 -3
  210. package/src/assets/icons/add_user.svg +9 -9
  211. package/src/assets/icons/add_variable.svg +11 -11
  212. package/src/assets/icons/add_variable_icon.svg +4 -4
  213. package/src/assets/icons/ai_search.svg +9 -0
  214. package/src/assets/icons/alert.svg +17 -17
  215. package/src/assets/icons/all_borders.svg +3 -3
  216. package/src/assets/icons/all_projects.svg +3 -3
  217. package/src/assets/icons/android.svg +9 -9
  218. package/src/assets/icons/android_icon.svg +6 -6
  219. package/src/assets/icons/apk_file_type.svg +4 -4
  220. package/src/assets/icons/app_switch.svg +11 -11
  221. package/src/assets/icons/arrow_down.svg +3 -3
  222. package/src/assets/icons/arrow_right.svg +4 -4
  223. package/src/assets/icons/arrow_up.svg +3 -3
  224. package/src/assets/icons/arrows_down_icon.svg +3 -3
  225. package/src/assets/icons/arrows_right_icon.svg +10 -10
  226. package/src/assets/icons/arrows_top_icon.svg +3 -3
  227. package/src/assets/icons/attachment_icon.svg +3 -3
  228. package/src/assets/icons/authorization.svg +4 -4
  229. package/src/assets/icons/authorization_icon.svg +4 -4
  230. package/src/assets/icons/automation_testcase.svg +4 -4
  231. package/src/assets/icons/back_icon.svg +3 -3
  232. package/src/assets/icons/backward.svg +10 -10
  233. package/src/assets/icons/backward_icon.svg +3 -3
  234. package/src/assets/icons/beautify_icon.svg +3 -3
  235. package/src/assets/icons/bold.svg +3 -3
  236. package/src/assets/icons/border_bottom.svg +3 -3
  237. package/src/assets/icons/border_left.svg +3 -3
  238. package/src/assets/icons/border_right.svg +3 -3
  239. package/src/assets/icons/border_top.svg +3 -3
  240. package/src/assets/icons/browser_stack.svg +9 -9
  241. package/src/assets/icons/browserstack_icon.svg +24 -24
  242. package/src/assets/icons/calendar_icon.svg +9 -9
  243. package/src/assets/icons/capture_icon.svg +2 -2
  244. package/src/assets/icons/check_mark.svg +3 -3
  245. package/src/assets/icons/chrome.svg +12 -12
  246. package/src/assets/icons/client_profile.svg +4 -4
  247. package/src/assets/icons/clock_icon.svg +11 -11
  248. package/src/assets/icons/clone_icon.svg +3 -3
  249. package/src/assets/icons/close_pill.svg +3 -3
  250. package/src/assets/icons/cloud_server_host_icon.svg +3 -3
  251. package/src/assets/icons/collapse-icon.svg +6 -6
  252. package/src/assets/icons/compressed_file_type.svg +4 -4
  253. package/src/assets/icons/continue_without_sign.svg +3 -3
  254. package/src/assets/icons/copy-icon.svg +3 -3
  255. package/src/assets/icons/csv_file_type.svg +4 -4
  256. package/src/assets/icons/dashboard_icon.svg +31 -31
  257. package/src/assets/icons/dashboard_mobile_icon.svg +47 -47
  258. package/src/assets/icons/dashboard_web_icon.svg +9 -9
  259. package/src/assets/icons/data_provider.svg +8 -8
  260. package/src/assets/icons/dataset_list.svg +3 -3
  261. package/src/assets/icons/delete.svg +3 -3
  262. package/src/assets/icons/delete_info.svg +17 -17
  263. package/src/assets/icons/depends_on_script.svg +7 -7
  264. package/src/assets/icons/details.svg +3 -3
  265. package/src/assets/icons/double_underline.svg +5 -5
  266. package/src/assets/icons/download-icon.svg +3 -3
  267. package/src/assets/icons/download_file_icon.svg +3 -3
  268. package/src/assets/icons/download_icon.svg +4 -4
  269. package/src/assets/icons/drag_icon.svg +4 -4
  270. package/src/assets/icons/drawer_maximize.svg +6 -6
  271. package/src/assets/icons/dropzone_icon.svg +18 -18
  272. package/src/assets/icons/edge.svg +30 -30
  273. package/src/assets/icons/edit_icon.svg +5 -5
  274. package/src/assets/icons/email_group.svg +3 -3
  275. package/src/assets/icons/error.svg +17 -17
  276. package/src/assets/icons/excel_corner_menu.svg +3 -3
  277. package/src/assets/icons/executions_icon.svg +3 -3
  278. package/src/assets/icons/expand-icon.svg +6 -6
  279. package/src/assets/icons/export.svg +4 -4
  280. package/src/assets/icons/export_collection_icon.svg +13 -13
  281. package/src/assets/icons/eye_closed.svg +3 -3
  282. package/src/assets/icons/eye_open_icon.svg +3 -3
  283. package/src/assets/icons/failed_status_icon.svg +12 -12
  284. package/src/assets/icons/file.svg +11 -11
  285. package/src/assets/icons/fill_color.svg +7 -7
  286. package/src/assets/icons/filter.svg +4 -4
  287. package/src/assets/icons/fire_fox.svg +106 -106
  288. package/src/assets/icons/fireflink_finder_logo.svg +7 -7
  289. package/src/assets/icons/fireflink_icon.svg +4 -4
  290. package/src/assets/icons/fireflink_logo.svg +13 -13
  291. package/src/assets/icons/fireflink_platform.svg +4 -4
  292. package/src/assets/icons/firefox.svg +84 -84
  293. package/src/assets/icons/flaky_status_icon.svg +12 -12
  294. package/src/assets/icons/formate_painter.svg +5 -5
  295. package/src/assets/icons/formula_icon.svg +3 -3
  296. package/src/assets/icons/forward.svg +3 -3
  297. package/src/assets/icons/forward_icon.svg +3 -3
  298. package/src/assets/icons/full_access_icon.svg +4 -4
  299. package/src/assets/icons/gif_file_type.svg +4 -4
  300. package/src/assets/icons/global_variable_icon.svg +4 -4
  301. package/src/assets/icons/hamburger_menu.svg +3 -3
  302. package/src/assets/icons/help_icon.svg +10 -0
  303. package/src/assets/icons/hide_access_icon.svg +3 -3
  304. package/src/assets/icons/hide_icon.svg +9 -9
  305. package/src/assets/icons/history_icon.svg +19 -19
  306. package/src/assets/icons/html_file_type.svg +4 -4
  307. package/src/assets/icons/impactList.svg +6 -6
  308. package/src/assets/icons/import.svg +4 -4
  309. package/src/assets/icons/import_icon.svg +4 -4
  310. package/src/assets/icons/info.svg +17 -17
  311. package/src/assets/icons/info_icon.svg +5 -5
  312. package/src/assets/icons/info_user.svg +5 -5
  313. package/src/assets/icons/internet_explorer.svg +3 -3
  314. package/src/assets/icons/ios_icon.svg +11 -0
  315. package/src/assets/icons/ipk_file_type.svg +4 -4
  316. package/src/assets/icons/italic.svg +3 -3
  317. package/src/assets/icons/jira.svg +3 -3
  318. package/src/assets/icons/jpg_file_type.svg +4 -4
  319. package/src/assets/icons/json_file_type.svg +4 -4
  320. package/src/assets/icons/label_icon.svg +8 -8
  321. package/src/assets/icons/label_plus.svg +3 -3
  322. package/src/assets/icons/labels.svg +8 -8
  323. package/src/assets/icons/lambda_icon.svg +3 -3
  324. package/src/assets/icons/left_arrow_icon.svg +3 -3
  325. package/src/assets/icons/license_expired.svg +20 -20
  326. package/src/assets/icons/license_info.svg +28 -28
  327. package/src/assets/icons/license_warning.svg +10 -10
  328. package/src/assets/icons/link_expired.svg +186 -186
  329. package/src/assets/icons/linked_defects.svg +11 -11
  330. package/src/assets/icons/linux.svg +42 -42
  331. package/src/assets/icons/local.svg +3 -3
  332. package/src/assets/icons/local_variable_icon.svg +4 -4
  333. package/src/assets/icons/logo.svg +17 -17
  334. package/src/assets/icons/mac.svg +9 -9
  335. package/src/assets/icons/machine_disable_icon.svg +18 -18
  336. package/src/assets/icons/machine_enable_icon.svg +10 -10
  337. package/src/assets/icons/manage_apps.svg +3 -3
  338. package/src/assets/icons/manual_locator.svg +7 -7
  339. package/src/assets/icons/manual_testcase.svg +3 -3
  340. package/src/assets/icons/maximize_icon.svg +5 -5
  341. package/src/assets/icons/maximize_script.svg +12 -12
  342. package/src/assets/icons/maximize_tree.svg +3 -3
  343. package/src/assets/icons/minimize_script.svg +5 -5
  344. package/src/assets/icons/mobile_icon.svg +3 -3
  345. package/src/assets/icons/moon_stars.svg +10 -10
  346. package/src/assets/icons/more.svg +10 -10
  347. package/src/assets/icons/move_icon.svg +5 -5
  348. package/src/assets/icons/ms_dynamic.svg +4 -4
  349. package/src/assets/icons/ms_dynamic_icon.svg +15 -15
  350. package/src/assets/icons/nlp_help_icon.svg +3 -3
  351. package/src/assets/icons/no_access_icon.svg +4 -4
  352. package/src/assets/icons/no_border.svg +3 -3
  353. package/src/assets/icons/no_data.svg +13 -13
  354. package/src/assets/icons/no_license_found.svg +22 -22
  355. package/src/assets/icons/notification_icon.svg +3 -3
  356. package/src/assets/icons/opera.svg +9 -9
  357. package/src/assets/icons/parameters.svg +3 -3
  358. package/src/assets/icons/passed_status_icon.svg +12 -12
  359. package/src/assets/icons/pdf_file_type.svg +4 -4
  360. package/src/assets/icons/plus_icon.svg +11 -11
  361. package/src/assets/icons/plus_round_icon.svg +38 -0
  362. package/src/assets/icons/plus_user_icon.svg +3 -3
  363. package/src/assets/icons/png_file_type.svg +4 -4
  364. package/src/assets/icons/pre_post_condition.svg +8 -8
  365. package/src/assets/icons/program_element.svg +8 -8
  366. package/src/assets/icons/project_env_variable_icon.svg +4 -4
  367. package/src/assets/icons/project_status_icon.svg +10 -10
  368. package/src/assets/icons/quick_run_setting_icon.svg +5 -5
  369. package/src/assets/icons/refresh-icon.svg +4 -4
  370. package/src/assets/icons/refresh_icon.svg +4 -4
  371. package/src/assets/icons/reload.svg +3 -3
  372. package/src/assets/icons/remove.svg +11 -11
  373. package/src/assets/icons/remove_user.svg +3 -3
  374. package/src/assets/icons/replace.svg +11 -11
  375. package/src/assets/icons/replace_file.svg +13 -13
  376. package/src/assets/icons/replace_icon.svg +6 -6
  377. package/src/assets/icons/reset-link.svg +52 -52
  378. package/src/assets/icons/right_arrow_icon.svg +4 -4
  379. package/src/assets/icons/rotate_icon.svg +10 -10
  380. package/src/assets/icons/run_automation_scripts_icon.svg +33 -33
  381. package/src/assets/icons/run_icon.svg +26 -26
  382. package/src/assets/icons/run_manual_testcase_icon.svg +4 -4
  383. package/src/assets/icons/safari.svg +93 -93
  384. package/src/assets/icons/safari_icon.svg +12 -12
  385. package/src/assets/icons/sales_force.svg +7 -7
  386. package/src/assets/icons/salesforce_icon.svg +14 -14
  387. package/src/assets/icons/sample_template_first.svg +29 -29
  388. package/src/assets/icons/sample_template_second.svg +47 -47
  389. package/src/assets/icons/sause_lab.svg +3 -3
  390. package/src/assets/icons/save_as_step.svg +3 -3
  391. package/src/assets/icons/search.svg +3 -3
  392. package/src/assets/icons/send_step.svg +4 -4
  393. package/src/assets/icons/skipped_status_icon.svg +12 -12
  394. package/src/assets/icons/standard_template.svg +30 -30
  395. package/src/assets/icons/strike_through.svg +3 -3
  396. package/src/assets/icons/success.svg +17 -17
  397. package/src/assets/icons/suites_icon.svg +3 -3
  398. package/src/assets/icons/sun_icon.svg +10 -10
  399. package/src/assets/icons/swipe_icon.svg +9 -9
  400. package/src/assets/icons/switch_license_icon.svg +123 -123
  401. package/src/assets/icons/system_warning.svg +61 -61
  402. package/src/assets/icons/tap_icon.svg +3 -3
  403. package/src/assets/icons/test_data.svg +5 -5
  404. package/src/assets/icons/test_data_set.svg +7 -7
  405. package/src/assets/icons/text_align_center.svg +3 -3
  406. package/src/assets/icons/text_align_left.svg +3 -3
  407. package/src/assets/icons/text_align_right.svg +3 -3
  408. package/src/assets/icons/text_color.svg +3 -3
  409. package/src/assets/icons/tick_icon.svg +4 -4
  410. package/src/assets/icons/toast_close.svg +3 -3
  411. package/src/assets/icons/txt_file_type.svg +4 -4
  412. package/src/assets/icons/underline.svg +4 -4
  413. package/src/assets/icons/update_icon.svg +3 -3
  414. package/src/assets/icons/user_password_lock.svg +220 -220
  415. package/src/assets/icons/user_profile.svg +3 -3
  416. package/src/assets/icons/user_warning.svg +235 -235
  417. package/src/assets/icons/user_with_system.svg +637 -637
  418. package/src/assets/icons/variable_icon.svg +4 -4
  419. package/src/assets/icons/variable_set.svg +5 -5
  420. package/src/assets/icons/vertical_separator.svg +3 -3
  421. package/src/assets/icons/view_access_icon.svg +4 -4
  422. package/src/assets/icons/view_icon.svg +3 -3
  423. package/src/assets/icons/warning.svg +17 -17
  424. package/src/assets/icons/warning_status_icon.svg +12 -12
  425. package/src/assets/icons/web&mobile_icon.svg +3 -3
  426. package/src/assets/icons/web_icon.svg +3 -3
  427. package/src/assets/icons/web_mobile_icon.svg +29 -29
  428. package/src/assets/icons/web_services_icon.svg +30 -30
  429. package/src/assets/icons/window_maximize.svg +3 -3
  430. package/src/assets/icons/window_minimize.svg +3 -3
  431. package/src/assets/icons/window_restore.svg +4 -4
  432. package/src/assets/icons/windows.svg +10 -10
  433. package/src/assets/icons/wrong_mark.svg +3 -3
  434. package/src/assets/icons/wswb_delete_icon.svg +3 -3
  435. package/src/assets/icons/wswb_plus_icon.svg +4 -4
  436. package/src/assets/icons/xls_file_type.svg +4 -4
  437. package/src/assets/icons/xlsx_file_type.svg +4 -4
  438. package/src/assets/icons/xml_file_type.svg +4 -4
  439. package/src/assets/styles/_colors.scss +151 -151
  440. package/src/assets/styles/_fonts.scss +45 -45
  441. package/src/assets/styles/_mixins.scss +21 -21
  442. package/src/assets/utils/functionUtils.ts +96 -96
  443. package/src/components/Accordion/Accordion.scss +46 -46
  444. package/src/components/Accordion/Accordion.stories.tsx +35 -35
  445. package/src/components/Accordion/Accordion.tsx +68 -68
  446. package/src/components/Accordion/index.ts +1 -1
  447. package/src/components/Accordion/types.ts +40 -40
  448. package/src/components/AddResourceButton/AddButton.scss +36 -36
  449. package/src/components/AddResourceButton/AddButton.stories.tsx +126 -126
  450. package/src/components/AddResourceButton/AddButton.tsx +121 -121
  451. package/src/components/AddResourceButton/ArrowsButton/ArrowsButton.scss +161 -161
  452. package/src/components/AddResourceButton/ArrowsButton/ArrowsButton.tsx +38 -38
  453. package/src/components/AddResourceButton/index.ts +1 -1
  454. package/src/components/AddResourceButton/type.ts +92 -92
  455. package/src/components/AllProjectsDropdown/AllProjectsDropdown.scss +189 -189
  456. package/src/components/AllProjectsDropdown/AllProjectsDropdown.stories.tsx +117 -117
  457. package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +152 -152
  458. package/src/components/AllProjectsDropdown/types.ts +12 -12
  459. package/src/components/AppHeader/AppHeader.scss +214 -214
  460. package/src/components/AppHeader/AppHeader.stories.tsx +553 -553
  461. package/src/components/AppHeader/AppHeader.tsx +197 -197
  462. package/src/components/AppHeader/index.ts +1 -1
  463. package/src/components/AppHeader/types.ts +54 -54
  464. package/src/components/AttachImage/AttachImage.scss +76 -76
  465. package/src/components/AttachImage/AttachImage.stories.tsx +24 -24
  466. package/src/components/AttachImage/AttachImage.tsx +60 -60
  467. package/src/components/AttachImage/index.ts +2 -2
  468. package/src/components/AttachImage/types.ts +26 -26
  469. package/src/components/AttachmentButton/AttachmentButton.scss +9 -9
  470. package/src/components/AttachmentButton/AttachmentButton.stories.tsx +81 -81
  471. package/src/components/AttachmentButton/AttachmentButton.tsx +129 -129
  472. package/src/components/AttachmentButton/types.ts +13 -13
  473. package/src/components/Avatar/Avatar.scss +27 -27
  474. package/src/components/Avatar/Avatar.stories.tsx +76 -76
  475. package/src/components/Avatar/Avatar.tsx +41 -41
  476. package/src/components/Avatar/types.ts +35 -35
  477. package/src/components/Button/Button.scss +155 -155
  478. package/src/components/Button/Button.stories.tsx +81 -81
  479. package/src/components/Button/Button.tsx +73 -73
  480. package/src/components/Button/index.ts +1 -1
  481. package/src/components/Button/types.ts +69 -69
  482. package/src/components/Charts/BarChart/BarChart.scss +69 -69
  483. package/src/components/Charts/BarChart/BarChart.stories.tsx +67 -67
  484. package/src/components/Charts/BarChart/BarChart.tsx +342 -342
  485. package/src/components/Charts/BarChart/types.ts +12 -12
  486. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.scss +164 -164
  487. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.stories.tsx +55 -55
  488. package/src/components/Charts/DashboardDonutChart/DashboardDonutChart.tsx +531 -531
  489. package/src/components/Charts/DashboardDonutChart/types.ts +58 -58
  490. package/src/components/Charts/DonutChart/DonutChart.scss +76 -76
  491. package/src/components/Charts/DonutChart/DonutChart.stories.tsx +30 -30
  492. package/src/components/Charts/DonutChart/DonutChart.tsx +246 -246
  493. package/src/components/Charts/DonutChart/index.ts +1 -1
  494. package/src/components/Charts/DonutChart/type.ts +23 -23
  495. package/src/components/Charts/IconRadialChart/IconRadialChart.scss +25 -25
  496. package/src/components/Charts/IconRadialChart/IconRadialChart.stories.tsx +51 -51
  497. package/src/components/Charts/IconRadialChart/IconRadialChart.tsx +173 -173
  498. package/src/components/Charts/IconRadialChart/types.ts +28 -28
  499. package/src/components/Charts/LineChart/LineChart.scss +92 -92
  500. package/src/components/Charts/LineChart/LineChart.stories.tsx +259 -255
  501. package/src/components/Charts/LineChart/LineChart.tsx +295 -286
  502. package/src/components/Charts/LineChart/index.ts +1 -1
  503. package/src/components/Charts/LineChart/types.ts +30 -29
  504. package/src/components/Charts/MultiRadialChart/MultiRadialChart.scss +86 -86
  505. package/src/components/Charts/MultiRadialChart/MultiRadialChart.stories.tsx +116 -116
  506. package/src/components/Charts/MultiRadialChart/MultiRadialChart.tsx +292 -292
  507. package/src/components/Charts/MultiRadialChart/index.ts +1 -1
  508. package/src/components/Charts/MultiRadialChart/types.ts +25 -25
  509. package/src/components/Charts/PieChart/PieChart.scss +41 -41
  510. package/src/components/Charts/PieChart/PieChart.stories.tsx +46 -46
  511. package/src/components/Charts/PieChart/PieChart.tsx +192 -192
  512. package/src/components/Charts/PieChart/index.ts +1 -1
  513. package/src/components/Charts/PieChart/types.ts +28 -28
  514. package/src/components/Charts/RadialChart/RadialChart.scss +16 -16
  515. package/src/components/Charts/RadialChart/RadialChart.stories.tsx +36 -36
  516. package/src/components/Charts/RadialChart/RadialChart.tsx +180 -180
  517. package/src/components/Charts/RadialChart/index.ts +1 -1
  518. package/src/components/Charts/RadialChart/types.ts +32 -32
  519. package/src/components/Checkbox/Checkbox.scss +148 -146
  520. package/src/components/Checkbox/Checkbox.stories.tsx +78 -123
  521. package/src/components/Checkbox/Checkbox.tsx +57 -58
  522. package/src/components/Checkbox/types.ts +34 -34
  523. package/src/components/Chip/Chip.scss +95 -85
  524. package/src/components/Chip/Chip.stories.tsx +125 -116
  525. package/src/components/Chip/Chip.tsx +39 -35
  526. package/src/components/Chip/index.ts +1 -1
  527. package/src/components/Chip/types.ts +19 -19
  528. package/src/components/Comment/Comments.scss +166 -166
  529. package/src/components/Comment/Comments.stories.tsx +212 -212
  530. package/src/components/Comment/Comments.tsx +51 -51
  531. package/src/components/Comment/comment/Comment.tsx +206 -206
  532. package/src/components/Comment/comment/useNode.ts +51 -51
  533. package/src/components/Comment/index.ts +1 -1
  534. package/src/components/Comment/type.ts +36 -36
  535. package/src/components/{AddVariables/AddVariables.scss → ConditionalDropdown/ConditionalDropdown.scss} +18 -14
  536. package/src/components/{AddVariables/AddVariables.stories.tsx → ConditionalDropdown/ConditionalDropdown.stories.tsx} +147 -82
  537. package/src/components/{AddVariables/AddVariables.tsx → ConditionalDropdown/ConditionalDropdown.tsx} +159 -129
  538. package/src/components/ConditionalDropdown/OptionsDropdown.tsx +44 -0
  539. package/src/components/ConditionalDropdown/index.ts +1 -0
  540. package/src/components/{AddVariables → ConditionalDropdown}/types.ts +160 -103
  541. package/src/components/ConnectingBranch/BranchComponents/MachineInstances.tsx +128 -128
  542. package/src/components/ConnectingBranch/ConnectingBranch.scss +233 -233
  543. package/src/components/ConnectingBranch/ConnectingBranch.stories.tsx +21 -21
  544. package/src/components/ConnectingBranch/ConnectingBranch.tsx +182 -182
  545. package/src/components/ConnectingBranch/data.ts +137 -137
  546. package/src/components/ConnectingBranch/index.ts +1 -1
  547. package/src/components/ConnectingBranch/types.ts +21 -21
  548. package/src/components/CreateVariable/CreateVariableSlider.scss +18 -18
  549. package/src/components/CreateVariable/CreateVariableSlider.stories.tsx +66 -66
  550. package/src/components/CreateVariable/CreateVariableSlider.tsx +95 -95
  551. package/src/components/CreateVariable/index.ts +1 -1
  552. package/src/components/CreateVariable/types.ts +58 -58
  553. package/src/components/DatePicker/DatePicker.scss +413 -413
  554. package/src/components/DatePicker/DatePicker.stories.tsx +193 -193
  555. package/src/components/DatePicker/DatePicker.tsx +502 -502
  556. package/src/components/DatePicker/Timepicker.tsx +372 -372
  557. package/src/components/DatePicker/types.ts +105 -105
  558. package/src/components/DownloadClient/DownloadClient.scss +67 -80
  559. package/src/components/DownloadClient/DownloadClient.stories.tsx +26 -26
  560. package/src/components/DownloadClient/DownloadClient.tsx +90 -81
  561. package/src/components/DownloadClient/type.ts +33 -41
  562. package/src/components/DragAndDrop/DragAndDrop.d.ts +5 -5
  563. package/src/components/DragAndDrop/DragAndDrop.stories.tsx +25 -25
  564. package/src/components/DragAndDrop/DragAndDrop.ts +7 -7
  565. package/src/components/DragAndDrop/DragAndDropList.scss +69 -69
  566. package/src/components/DragAndDrop/DragAndDropList.tsx +151 -151
  567. package/src/components/Drawer/Drawer.scss +139 -139
  568. package/src/components/Drawer/Drawer.stories.tsx +155 -155
  569. package/src/components/Drawer/Drawer.tsx +232 -232
  570. package/src/components/Drawer/Types.ts +157 -157
  571. package/src/components/EditTextField/EditTextField.scss +97 -97
  572. package/src/components/EditTextField/EditTextField.stories.tsx +127 -127
  573. package/src/components/EditTextField/EditTextField.tsx +175 -181
  574. package/src/components/EditTextField/index.ts +1 -1
  575. package/src/components/EditTextField/types.ts +55 -55
  576. package/src/components/Editor/Editor.scss +56 -56
  577. package/src/components/Editor/Editor.stories.tsx +54 -54
  578. package/src/components/Editor/Editor.tsx +250 -250
  579. package/src/components/Editor/VariableDropdown.scss +27 -27
  580. package/src/components/Editor/VariableDropdown.tsx +57 -57
  581. package/src/components/Editor/constants.ts +180 -180
  582. package/src/components/Editor/types.ts +89 -89
  583. package/src/components/Excel/ColorBarSelector/ColorBarSelector.scss +15 -15
  584. package/src/components/Excel/ColorBarSelector/ColorBarSelector.tsx +43 -43
  585. package/src/components/Excel/ExcelContextMenu/ExcelContextMenu.scss +27 -27
  586. package/src/components/Excel/ExcelContextMenu/ExcelContextMenu.tsx +42 -42
  587. package/src/components/Excel/ExcelFile/ExcelFile.scss +69 -68
  588. package/src/components/Excel/ExcelFile/ExcelFile.tsx +507 -491
  589. package/src/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.tsx +143 -131
  590. package/src/components/Excel/ExcelFile/ExcelFileComponents/Cell.tsx +206 -238
  591. package/src/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.tsx +168 -168
  592. package/src/components/Excel/ExcelFile/ExcelFileComponents/Copied.tsx +25 -25
  593. package/src/components/Excel/ExcelFile/ExcelFileComponents/CornerIndicator.tsx +56 -56
  594. package/src/components/Excel/ExcelFile/ExcelFileComponents/DataEditor.tsx +37 -37
  595. package/src/components/Excel/ExcelFile/ExcelFileComponents/DataViewer.tsx +85 -85
  596. package/src/components/Excel/ExcelFile/ExcelFileComponents/FloatingRect.tsx +56 -31
  597. package/src/components/Excel/ExcelFile/ExcelFileComponents/HeaderRow.tsx +5 -5
  598. package/src/components/Excel/ExcelFile/ExcelFileComponents/Row.tsx +5 -5
  599. package/src/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.tsx +154 -154
  600. package/src/components/Excel/ExcelFile/ExcelFileComponents/Selected.tsx +32 -32
  601. package/src/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.scss +146 -146
  602. package/src/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.tsx +479 -479
  603. package/src/components/Excel/ExcelFile/ExcelFileComponents/Table.tsx +19 -19
  604. package/src/components/Excel/ExcelFile/ExcelFileComponents/actions.ts +561 -548
  605. package/src/components/Excel/ExcelFile/ExcelFileComponents/areModelsEqual.ts +18 -18
  606. package/src/components/Excel/ExcelFile/ExcelFileComponents/context.ts +12 -12
  607. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/engine.ts +153 -153
  608. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/formula.ts +31 -31
  609. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/index.ts +2 -2
  610. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/point-graph.ts +152 -152
  611. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/point-hash.ts +10 -10
  612. package/src/components/Excel/ExcelFile/ExcelFileComponents/engine/point-set.ts +69 -69
  613. package/src/components/Excel/ExcelFile/ExcelFileComponents/index.ts +49 -49
  614. package/src/components/Excel/ExcelFile/ExcelFileComponents/matrix.ts +382 -382
  615. package/src/components/Excel/ExcelFile/ExcelFileComponents/point-range.ts +82 -82
  616. package/src/components/Excel/ExcelFile/ExcelFileComponents/point.ts +15 -15
  617. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducer.ts +700 -673
  618. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.ts +886 -819
  619. package/src/components/Excel/ExcelFile/ExcelFileComponents/selection.ts +257 -257
  620. package/src/components/Excel/ExcelFile/ExcelFileComponents/types.ts +266 -255
  621. package/src/components/Excel/ExcelFile/ExcelFileComponents/typings/fast-formula-parser.d.ts +58 -58
  622. package/src/components/Excel/ExcelFile/ExcelFileComponents/use-dispatch.ts +8 -8
  623. package/src/components/Excel/ExcelFile/ExcelFileComponents/use-selector.ts +9 -9
  624. package/src/components/Excel/ExcelFile/ExcelFileComponents/util.ts +172 -172
  625. package/src/components/Excel/ExcelFile.stories.tsx +167 -167
  626. package/src/components/Excel/ExcelToolBar/ExcelToolBar.scss +96 -96
  627. package/src/components/Excel/ExcelToolBar/ExcelToolBar.tsx +414 -397
  628. package/src/components/Excel/Types.ts +196 -196
  629. package/src/components/Excel/dataConversion.ts +196 -173
  630. package/src/components/Excel/index.ts +1 -1
  631. package/src/components/ExpandableMenu/ExpandableMenu.scss +110 -110
  632. package/src/components/ExpandableMenu/ExpandableMenu.stories.tsx +67 -67
  633. package/src/components/ExpandableMenu/ExpandableMenu.tsx +101 -101
  634. package/src/components/ExpandableMenu/index.ts +1 -1
  635. package/src/components/ExpandableMenu/types.ts +34 -34
  636. package/src/components/FF_Captcha/Recaptcha.scss +10 -10
  637. package/src/components/FF_Captcha/Recaptcha.tsx +40 -40
  638. package/src/components/FF_Captcha/captcha.stories.tsx +40 -40
  639. package/src/components/FF_Captcha/types.ts +22 -22
  640. package/src/components/FieldSet/FieldSet.scss +10 -10
  641. package/src/components/FieldSet/FieldSet.stories.tsx +104 -104
  642. package/src/components/FieldSet/FieldSet.tsx +29 -29
  643. package/src/components/FieldSet/index.ts +1 -1
  644. package/src/components/FieldSet/types.ts +8 -8
  645. package/src/components/FileDropzone/Dropzone.tsx +105 -105
  646. package/src/components/FileDropzone/FileDropzone.scss +162 -162
  647. package/src/components/FileDropzone/FileDropzone.stories.tsx +205 -219
  648. package/src/components/FileDropzone/FileDropzone.tsx +164 -144
  649. package/src/components/FileDropzone/FilePreview.tsx +77 -77
  650. package/src/components/FileDropzone/RadioFilePreview.tsx +76 -76
  651. package/src/components/FileDropzone/index.ts +1 -1
  652. package/src/components/FileDropzone/types.ts +198 -198
  653. package/src/components/Form/Form.d.ts +2 -2
  654. package/src/components/Form/Form.scss +158 -158
  655. package/src/components/Form/Form.stories.tsx +508 -508
  656. package/src/components/Form/Form.ts +2 -2
  657. package/src/components/Form/Forms.tsx +39 -41
  658. package/src/components/Form/validation.json +29 -29
  659. package/src/components/GridLayout/GridLayout.scss +69 -69
  660. package/src/components/GridLayout/GridLayout.stories.tsx +90 -90
  661. package/src/components/GridLayout/GridLayout.tsx +39 -39
  662. package/src/components/GridLayout/GridLayoutStory.scss +25 -25
  663. package/src/components/GridLayout/types.ts +84 -84
  664. package/src/components/HighlightText/HighlightText.scss +3 -3
  665. package/src/components/HighlightText/HighlightText.stories.tsx +22 -22
  666. package/src/components/HighlightText/HighlightText.tsx +33 -33
  667. package/src/components/HighlightText/index.ts +1 -1
  668. package/src/components/HighlightText/types.ts +4 -4
  669. package/src/components/Icon/Icon.stories.tsx +65 -65
  670. package/src/components/Icon/Icon.tsx +88 -88
  671. package/src/components/Icon/Icons.scss +50 -50
  672. package/src/components/Icon/iconList.ts +503 -494
  673. package/src/components/Icon/index.ts +1 -1
  674. package/src/components/Icon/types.ts +14 -14
  675. package/src/components/IconButton/IconButton.scss +54 -54
  676. package/src/components/IconButton/IconButton.stories.tsx +34 -34
  677. package/src/components/IconButton/IconButton.tsx +32 -32
  678. package/src/components/IconButton/index.ts +1 -1
  679. package/src/components/IconButton/types.ts +5 -5
  680. package/src/components/IconRadioGroup/IconRadioGroup.scss +64 -64
  681. package/src/components/IconRadioGroup/IconRadioGroup.stories.tsx +108 -108
  682. package/src/components/IconRadioGroup/IconRadioGroup.tsx +73 -73
  683. package/src/components/IconRadioGroup/index.ts +1 -1
  684. package/src/components/IconRadioGroup/type.ts +49 -49
  685. package/src/components/Input/Input.scss +170 -170
  686. package/src/components/Input/Input.stories.tsx +141 -141
  687. package/src/components/Input/Input.tsx +120 -120
  688. package/src/components/Input/types.ts +85 -85
  689. package/src/components/InputWithDropdown/InputWithDropdown.scss +220 -220
  690. package/src/components/InputWithDropdown/InputWithDropdown.stories.tsx +169 -169
  691. package/src/components/InputWithDropdown/InputWithDropdown.tsx +129 -129
  692. package/src/components/InputWithDropdown/index.ts +1 -1
  693. package/src/components/InputWithDropdown/types.ts +113 -113
  694. package/src/components/LabelEditTextField/LabelEditTextField.scss +86 -86
  695. package/src/components/LabelEditTextField/LabelEditTextField.stories.tsx +192 -192
  696. package/src/components/LabelEditTextField/LabelEditTextField.tsx +239 -246
  697. package/src/components/LabelEditTextField/index.ts +1 -1
  698. package/src/components/LabelEditTextField/types.ts +47 -46
  699. package/src/components/LazyLoad/LazyLoad.d.ts +3 -3
  700. package/src/components/LazyLoad/LazyLoad.stories.tsx +33 -33
  701. package/src/components/LazyLoad/LazyLoad.ts +2 -2
  702. package/src/components/LazyLoad/LazyLoading.tsx +19 -19
  703. package/src/components/LazyLoad/index.ts +1 -1
  704. package/src/components/MachineInputField/MachineInputField.scss +55 -59
  705. package/src/components/MachineInputField/MachineInputField.stories.tsx +33 -32
  706. package/src/components/MachineInputField/MachineInputField.tsx +87 -87
  707. package/src/components/MachineInputField/index.ts +1 -1
  708. package/src/components/MachineInputField/types.ts +15 -13
  709. package/src/components/MenuOption/MenuOption.scss +97 -97
  710. package/src/components/MenuOption/MenuOption.stories.tsx +213 -158
  711. package/src/components/MenuOption/MenuOption.tsx +215 -219
  712. package/src/components/MenuOption/types.ts +231 -230
  713. package/src/components/MiniModal/MiniModal.scss +169 -170
  714. package/src/components/MiniModal/MiniModal.stories.tsx +740 -735
  715. package/src/components/MiniModal/MiniModal.tsx +346 -344
  716. package/src/components/MiniModal/index.ts +1 -1
  717. package/src/components/MiniModal/types.ts +124 -123
  718. package/src/components/Modal/Modal.stories.tsx +70 -70
  719. package/src/components/Modal/Modal.tsx +100 -100
  720. package/src/components/Modal/index.tsx +1 -1
  721. package/src/components/Modal/modal.scss +51 -51
  722. package/src/components/Modal/types.ts +43 -43
  723. package/src/components/ModulesChip/ModuleChip.scss +33 -33
  724. package/src/components/ModulesChip/ModuleChip.stories.tsx +41 -41
  725. package/src/components/ModulesChip/ModuleChip.tsx +28 -28
  726. package/src/components/ModulesChip/types.ts +14 -14
  727. package/src/components/MultiSelect/Dropdown.scss +77 -78
  728. package/src/components/MultiSelect/Dropdown.tsx +169 -142
  729. package/src/components/MultiSelect/MultiSelect.scss +247 -246
  730. package/src/components/MultiSelect/MultiSelect.stories.tsx +290 -290
  731. package/src/components/MultiSelect/MultiSelect.tsx +486 -483
  732. package/src/components/MultiSelect/MultiSelectTypes.ts +49 -47
  733. package/src/components/MultiSelect/dropdownTypes.ts +21 -19
  734. package/src/components/MultiSelect/index.ts +1 -1
  735. package/src/components/NLPInput/NLPInput.scss +302 -246
  736. package/src/components/NLPInput/NlpInput.stories.tsx +70 -136
  737. package/src/components/NLPInput/NlpInput.tsx +410 -374
  738. package/src/components/NLPInput/components/NlpDropDown/NlpDropDownType.ts +62 -60
  739. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.scss +134 -83
  740. package/src/components/NLPInput/components/NlpDropDown/NlpDropdown.tsx +320 -180
  741. package/src/components/NLPInput/index.ts +1 -1
  742. package/src/components/NLPInput/sampleData.ts +162 -0
  743. package/src/components/NLPInput/{type.tsx → types.tsx} +136 -124
  744. package/src/components/Paper/Paper.scss +13 -13
  745. package/src/components/Paper/Paper.stories.tsx +77 -77
  746. package/src/components/Paper/Paper.tsx +14 -14
  747. package/src/components/Paper/types.ts +19 -19
  748. package/src/components/PhoneInput/PhoneInput.d.ts +3 -3
  749. package/src/components/PhoneInput/PhoneInput.stories.tsx +95 -95
  750. package/src/components/PhoneInput/PhoneInput.tsx +90 -90
  751. package/src/components/PhoneInput/index.ts +1 -1
  752. package/src/components/PhoneInput/phoneInput.scss +3 -3
  753. package/src/components/PhoneInput/types.ts +10 -10
  754. package/src/components/PopUpModal/PopUpModal.scss +36 -36
  755. package/src/components/PopUpModal/PopUpModal.stories.tsx +67 -67
  756. package/src/components/PopUpModal/PopUpModal.tsx +87 -87
  757. package/src/components/PopUpModal/types.ts +16 -16
  758. package/src/components/ProgressBar/ProgressBar.scss +46 -0
  759. package/src/components/ProgressBar/ProgressBar.stories.tsx +22 -0
  760. package/src/components/ProgressBar/ProgressBar.tsx +61 -0
  761. package/src/components/ProgressBar/index.ts +1 -0
  762. package/src/components/ProgressBar/types.ts +12 -0
  763. package/src/components/RadioButton/RadioButton.scss +106 -106
  764. package/src/components/RadioButton/RadioButton.stories.tsx +43 -43
  765. package/src/components/RadioButton/RadioButton.tsx +41 -41
  766. package/src/components/RadioButton/index.ts +1 -1
  767. package/src/components/RadioButton/radioButtonTypes.tsx +62 -62
  768. package/src/components/RadioGroup/RadioGroup.scss +11 -11
  769. package/src/components/RadioGroup/RadioGroup.stories.tsx +150 -150
  770. package/src/components/RadioGroup/RadioGroup.tsx +49 -49
  771. package/src/components/RadioGroup/index.ts +1 -1
  772. package/src/components/RadioGroup/radioGroupTypes.tsx +96 -96
  773. package/src/components/Search/Search.scss +103 -103
  774. package/src/components/Search/Search.stories.tsx +45 -45
  775. package/src/components/Search/Search.tsx +138 -130
  776. package/src/components/Search/index.ts +1 -1
  777. package/src/components/Search/types.ts +19 -19
  778. package/src/components/Select/Select.scss +213 -213
  779. package/src/components/Select/Select.stories.tsx +355 -355
  780. package/src/components/Select/Select.tsx +278 -278
  781. package/src/components/Select/components/Dropdown.scss +61 -61
  782. package/src/components/Select/components/Dropdown.tsx +140 -140
  783. package/src/components/Select/components/types.ts +24 -24
  784. package/src/components/Select/index.ts +1 -1
  785. package/src/components/Select/types.ts +134 -134
  786. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.scss +128 -128
  787. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.tsx +67 -56
  788. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.tsx +184 -167
  789. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.scss +51 -51
  790. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/AddBrowserModal.tsx +107 -107
  791. package/src/components/SequentialConnectingBranch/components/AddBrowserModal/types.ts +5 -5
  792. package/src/components/SequentialConnectingBranch/components/Branches/Branches.scss +190 -190
  793. package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +324 -236
  794. package/src/components/SequentialConnectingBranch/components/Branches/types.ts +32 -25
  795. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.scss +3 -3
  796. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.tsx +76 -68
  797. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/types.ts +24 -17
  798. package/src/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.scss +31 -31
  799. package/src/components/SequentialConnectingBranch/components/DatasetListModal/DatasetListModal.tsx +85 -85
  800. package/src/components/SequentialConnectingBranch/components/DatasetListModal/types.ts +4 -4
  801. package/src/components/SequentialConnectingBranch/index.ts +1 -1
  802. package/src/components/SequentialConnectingBranch/types.ts +62 -60
  803. package/src/components/StateDropdown/StateDropdown.stories.tsx +104 -104
  804. package/src/components/StateDropdown/StateDropdown.tsx +245 -245
  805. package/src/components/StateDropdown/StateDropdownTypes.tsx +27 -27
  806. package/src/components/StatusButton/StatusButton.scss +90 -90
  807. package/src/components/StatusButton/StatusButton.stories.tsx +91 -91
  808. package/src/components/StatusButton/StatusButton.tsx +46 -46
  809. package/src/components/StatusButton/index.ts +1 -1
  810. package/src/components/StatusButton/types.ts +45 -45
  811. package/src/components/StatusCard/StatusCard.scss +94 -94
  812. package/src/components/StatusCard/StatusCard.stories.tsx +58 -58
  813. package/src/components/StatusCard/StatusCard.tsx +49 -49
  814. package/src/components/StatusCard/index.ts +1 -1
  815. package/src/components/StatusCard/types.ts +10 -10
  816. package/src/components/Table/Table.scss +118 -117
  817. package/src/components/Table/Table.stories.tsx +373 -373
  818. package/src/components/Table/Table.tsx +178 -178
  819. package/src/components/Table/Types.ts +124 -124
  820. package/src/components/Table/index.ts +1 -1
  821. package/src/components/TableTree/Components/TableBody.tsx +37 -35
  822. package/src/components/TableTree/Components/TableCell.tsx +59 -59
  823. package/src/components/TableTree/Components/TableHead.tsx +39 -39
  824. package/src/components/TableTree/Components/TableRow.tsx +37 -37
  825. package/src/components/TableTree/TableTree.scss +205 -205
  826. package/src/components/TableTree/TableTree.stories.tsx +176 -179
  827. package/src/components/TableTree/TableTree.tsx +91 -245
  828. package/src/components/TableTree/TableTreeStories.scss +22 -22
  829. package/src/components/TableTree/Utils/getAllChildIds.ts +14 -12
  830. package/src/components/TableTree/data.ts +367 -322
  831. package/src/components/TableTree/index.ts +1 -1
  832. package/src/components/TableTree/types.ts +68 -68
  833. package/src/components/TableWithAccordion/TableWithAccordion.scss +54 -54
  834. package/src/components/TableWithAccordion/TableWithAccordion.stories.tsx +94 -94
  835. package/src/components/TableWithAccordion/TableWithAccordion.tsx +174 -174
  836. package/src/components/TableWithAccordion/data.ts +36 -36
  837. package/src/components/TableWithAccordion/types.ts +69 -69
  838. package/src/components/Tabs/Tabs.scss +132 -132
  839. package/src/components/Tabs/Tabs.stories.tsx +153 -153
  840. package/src/components/Tabs/Tabs.tsx +71 -71
  841. package/src/components/Tabs/index.ts +1 -1
  842. package/src/components/Tabs/types.ts +48 -48
  843. package/src/components/TextArea/Textarea.scss +144 -144
  844. package/src/components/TextArea/Textarea.stories.tsx +92 -92
  845. package/src/components/TextArea/Textarea.tsx +84 -84
  846. package/src/components/TextArea/Types.ts +82 -82
  847. package/src/components/TextArea/index.tsx +1 -1
  848. package/src/components/ThemeProvider/ThemeProvider.tsx +27 -27
  849. package/src/components/ThemeProvider/index.ts +1 -1
  850. package/src/components/ThemeProvider/types.ts +14 -14
  851. package/src/components/Toast/Toast.scss +121 -121
  852. package/src/components/Toast/Toast.stories.tsx +144 -144
  853. package/src/components/Toast/Toast.tsx +117 -117
  854. package/src/components/Toast/index.ts +1 -1
  855. package/src/components/Toast/types.ts +27 -27
  856. package/src/components/Toastify/Toastify.stories.tsx +71 -71
  857. package/src/components/Toastify/Toastify.tsx +94 -94
  858. package/src/components/Toastify/index.ts +1 -1
  859. package/src/components/Toastify/types.ts +9 -9
  860. package/src/components/Toggle/Toggle.scss +133 -133
  861. package/src/components/Toggle/Toggle.stories.tsx +132 -132
  862. package/src/components/Toggle/Toggle.tsx +96 -96
  863. package/src/components/Toggle/index.ts +1 -1
  864. package/src/components/Toggle/types.ts +43 -43
  865. package/src/components/ToggleSwitch/ToggleSwitch.scss +58 -58
  866. package/src/components/ToggleSwitch/ToggleSwitch.stories.tsx +52 -52
  867. package/src/components/ToggleSwitch/ToggleSwitch.tsx +30 -30
  868. package/src/components/ToggleSwitch/index.ts +1 -1
  869. package/src/components/Tooltip/Tooltip.scss +27 -27
  870. package/src/components/Tooltip/Tooltip.stories.tsx +98 -98
  871. package/src/components/Tooltip/Tooltip.tsx +194 -194
  872. package/src/components/Tooltip/index.ts +1 -1
  873. package/src/components/Tooltip/types.ts +66 -66
  874. package/src/components/Typography/Typography.scss +25 -25
  875. package/src/components/Typography/Typography.stories.tsx +59 -59
  876. package/src/components/Typography/Typography.tsx +41 -41
  877. package/src/components/Typography/index.ts +1 -1
  878. package/src/components/Typography/types.ts +57 -57
  879. package/src/components/VariableInput/VariableInput.scss +127 -127
  880. package/src/components/VariableInput/VariableInput.stories.tsx +32 -32
  881. package/src/components/VariableInput/VariableInput.tsx +352 -352
  882. package/src/components/VariableInput/types.ts +56 -56
  883. package/src/hooks/keyboardevents/useEscKeyEvent.tsx +30 -30
  884. package/src/hooks/useClickOutside.tsx +30 -30
  885. package/src/hooks/useFileDropzone.tsx +275 -275
  886. package/src/hooks/useIntersectionObserver.tsx +56 -0
  887. package/src/hooks/usePortalPosition.tsx +53 -53
  888. package/src/hooks/useTheme.tsx +13 -13
  889. package/src/index.ts +205 -203
  890. package/src/utils/FormatString/FormatString.stories.tsx +58 -58
  891. package/src/utils/FormatString/FormatString.tsx +41 -41
  892. package/src/utils/TableCell/TableCell.ts +16 -16
  893. package/src/utils/capitalize/capitalize.stories.tsx +44 -44
  894. package/src/utils/capitalize/capitalize.tsx +4 -4
  895. package/src/utils/checkDuplicates/CheckDuplicates.stories.tsx +40 -40
  896. package/src/utils/checkDuplicates/checkDuplicates.ts +13 -13
  897. package/src/utils/checkEmpty/checkEmpty.stories.tsx +34 -34
  898. package/src/utils/checkEmpty/checkEmpty.ts +24 -24
  899. package/src/utils/compareArrays/compareArrays.stories.tsx +62 -62
  900. package/src/utils/compareArrays/compareArrays.ts +31 -31
  901. package/src/utils/compareObjects/compareObjects.stories.tsx +51 -51
  902. package/src/utils/compareObjects/compareObjects.ts +53 -53
  903. package/src/utils/debounce/debounce.stories.tsx +81 -81
  904. package/src/utils/debounce/debounce.ts +28 -28
  905. package/src/utils/downloadFile/saveFileFromBlob.stories.tsx +62 -62
  906. package/src/utils/downloadFile/saveFileFromBlob.ts +40 -40
  907. package/src/utils/ffID/ffID.stories.tsx +35 -35
  908. package/src/utils/ffID/ffid.ts +7 -7
  909. package/src/utils/findAndInsert/findAndInsert.stories.tsx +119 -119
  910. package/src/utils/findAndInsert/findAndInsert.ts +49 -49
  911. package/src/utils/functionCheck/functionCheck.ts +8 -0
  912. package/src/utils/getEncryptedData/getEncryptedData.stories.tsx +55 -55
  913. package/src/utils/getEncryptedData/getEncryptedData.ts +8 -8
  914. package/src/utils/getExtension/getExtension.stories.tsx +23 -23
  915. package/src/utils/getExtension/getExtension.ts +28 -28
  916. package/src/utils/getSelectOptionValue/getSelectOptionValue.ts +31 -31
  917. package/src/utils/getSequentialPayload/getSequentialPayload.stories.tsx +72 -72
  918. package/src/utils/getSequentialPayload/getSequentialPayload.ts +16 -16
  919. package/src/utils/getSequentialPayload/types.ts +33 -32
  920. package/src/utils/throttle/throttle.stories.tsx +100 -100
  921. package/src/utils/throttle/throttle.ts +33 -33
  922. package/src/utils/truncateText/truncateText.stories.tsx +37 -37
  923. package/src/utils/truncateText/truncateText.ts +4 -4
  924. package/tsconfig.json +55 -55
  925. package/vite.config.js +14 -14
  926. package/lib/index.css +0 -1
  927. package/lib/index.esm.css +0 -1
  928. package/src/components/AddVariables/index.ts +0 -1
@@ -1,819 +1,886 @@
1
- import { PointRange } from './point-range';
2
- import * as Matrix from './matrix';
3
- import * as Types from './types';
4
- import * as Point from './point';
5
- import {
6
- Selection,
7
- EmptySelection,
8
- RangeSelection,
9
- EntireColumnsSelection,
10
- EntireRowsSelection,
11
- } from './selection';
12
-
13
- export function applyBoldToCells(
14
- currentData: Matrix.Matrix<Types.CellBase<any>>,
15
- selectedRange: PointRange,
16
- ): Matrix.Matrix<Types.CellBase<any>> {
17
- if (!selectedRange) {
18
- return currentData;
19
- }
20
-
21
- const { start, end } = selectedRange;
22
-
23
- let updatedData = currentData;
24
- let anyBold = false;
25
-
26
- for (let row = start.row; row <= end.row; row++) {
27
- for (let col = start.column; col <= end.column; col++) {
28
- const currentCell = Matrix.get({ row, column: col }, updatedData);
29
- if (!currentCell) continue;
30
-
31
- if (currentCell.style?.fontWeight === 'bold') {
32
- anyBold = true;
33
- break;
34
- }
35
- }
36
- if (anyBold) break;
37
- }
38
-
39
- for (let row = start.row; row <= end.row; row++) {
40
- for (let col = start.column; col <= end.column; col++) {
41
- const currentCell = Matrix.get({ row, column: col }, updatedData);
42
- if (!currentCell) continue;
43
-
44
- const updatedCell = {
45
- ...currentCell,
46
- style: {
47
- ...currentCell.style,
48
- fontWeight: anyBold ? 'normal' : 'bold',
49
- },
50
- };
51
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
52
- }
53
- }
54
-
55
- return updatedData;
56
- }
57
-
58
- export function applyItalicToCells(
59
- currentData: Matrix.Matrix<Types.CellBase<any>>,
60
- selectedRange: PointRange
61
- ): Matrix.Matrix<Types.CellBase<any>> {
62
- if (!selectedRange) {
63
- return currentData;
64
- }
65
-
66
- const { start, end } = selectedRange;
67
-
68
- let updatedData = currentData;
69
- let anyItalic = false;
70
-
71
- for (let row = start.row; row <= end.row; row++) {
72
- for (let col = start.column; col <= end.column; col++) {
73
- const currentCell = Matrix.get({ row, column: col }, updatedData);
74
- if (!currentCell) continue;
75
-
76
- if (currentCell.style?.fontStyle === 'italic') {
77
- anyItalic = true;
78
- break;
79
- }
80
- }
81
- if (anyItalic) break;
82
- }
83
-
84
- for (let row = start.row; row <= end.row; row++) {
85
- for (let col = start.column; col <= end.column; col++) {
86
- const currentCell = Matrix.get({ row, column: col }, updatedData);
87
- if (!currentCell) continue;
88
-
89
- const updatedCell = {
90
- ...currentCell,
91
- style: {
92
- ...currentCell.style,
93
- fontStyle: anyItalic ? 'normal' : 'italic',
94
- },
95
- };
96
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
97
- }
98
- }
99
-
100
- return updatedData;
101
- }
102
-
103
- export function applyFontFamily(
104
- currentData: Matrix.Matrix<Types.CellBase<any>>,
105
- selectedRange: PointRange,
106
- value: string
107
- ): Matrix.Matrix<Types.CellBase<any>> {
108
- if (!selectedRange) {
109
- return currentData;
110
- }
111
-
112
- const { start, end } = selectedRange;
113
-
114
- let updatedData = currentData;
115
-
116
- for (let row = start.row; row <= end.row; row++) {
117
- for (let col = start.column; col <= end.column; col++) {
118
- const currentCell = Matrix.get({ row, column: col }, updatedData);
119
-
120
- if (!currentCell) {
121
- continue;
122
- }
123
-
124
- let updatedCell = {
125
- ...currentCell,
126
- style: {
127
- ...currentCell.style,
128
- fontFamily: value,
129
- },
130
- };
131
-
132
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
133
- }
134
- }
135
-
136
- return updatedData;
137
- }
138
-
139
- export function applyFontSize(
140
- currentData: Matrix.Matrix<Types.CellBase<any>>,
141
- selectedRange: PointRange,
142
- value: string
143
- ): Matrix.Matrix<Types.CellBase<any>> {
144
- if (!selectedRange) {
145
- return currentData;
146
- }
147
-
148
- const conversion = Number(value);
149
-
150
- if (isNaN(conversion)) {
151
- return currentData;
152
- }
153
-
154
- const fontSizeInPx = convertPtToPx(conversion);
155
-
156
- const { start, end } = selectedRange;
157
-
158
- let updatedData = currentData;
159
-
160
- for (let row = start.row; row <= end.row; row++) {
161
- for (let col = start.column; col <= end.column; col++) {
162
- const currentCell = Matrix.get({ row, column: col }, updatedData);
163
-
164
- if (!currentCell) {
165
- continue;
166
- }
167
-
168
- let updatedCell = {
169
- ...currentCell,
170
- style: {
171
- ...currentCell.style,
172
- fontSize: fontSizeInPx,
173
- },
174
- };
175
-
176
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
177
- }
178
- }
179
-
180
- return updatedData;
181
- }
182
-
183
- export function applyBorderToCells(
184
- currentData: Matrix.Matrix<Types.CellBase<any>>,
185
- selectedRange: PointRange,
186
- value: string,
187
- color: string
188
- ): Matrix.Matrix<Types.CellBase<any>> {
189
- if (!selectedRange) {
190
- return currentData;
191
- }
192
-
193
- const { start, end } = selectedRange;
194
-
195
- let updatedData = currentData;
196
-
197
- for (let row = start.row; row <= end.row; row++) {
198
- for (let col = start.column; col <= end.column; col++) {
199
- const currentCell = Matrix.get({ row, column: col }, updatedData);
200
-
201
- if (!currentCell) {
202
- continue;
203
- }
204
-
205
- let updatedCell = { ...currentCell };
206
-
207
- switch (value) {
208
- case 'border-all-sides':
209
- updatedCell.style = {
210
- ...currentCell.style,
211
- borderRight: `2px solid ${color}`,
212
- borderLeft: `2px solid ${color}`,
213
- borderTop: `2px solid ${color}`,
214
- borderBottom: `2px solid ${color}`,
215
- };
216
- break;
217
- case 'border-none':
218
- updatedCell.style = {
219
- ...currentCell.style,
220
- borderRight: `1px solid var(--toggle-strip-color)`,
221
- borderLeft: `1px solid var(--toggle-strip-color)`,
222
- borderTop: `1px solid var(--toggle-strip-color)`,
223
- borderBottom: `1px solid var(--toggle-strip-color)`,
224
- };
225
- break;
226
- case 'border-right':
227
- updatedCell.style = {
228
- ...currentCell.style,
229
- borderRight: `2px solid ${color}`,
230
- };
231
- break;
232
- case 'border-left':
233
- updatedCell.style = {
234
- ...currentCell.style,
235
- borderLeft: `2px solid ${color}`,
236
- };
237
- break;
238
- case 'border-top':
239
- updatedCell.style = {
240
- ...currentCell.style,
241
- borderTop: `2px solid ${color}`,
242
- };
243
- break;
244
- case 'border-bottom':
245
- updatedCell.style = {
246
- ...currentCell.style,
247
- borderBottom: `2px solid ${color}`,
248
- };
249
- break;
250
- default:
251
- break;
252
- }
253
-
254
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
255
- }
256
- }
257
-
258
- return updatedData;
259
- }
260
-
261
- export function applyTextAlign(
262
- currentData: Matrix.Matrix<Types.CellBase<any>>,
263
- selectedRange: PointRange,
264
- value: string
265
- ): Matrix.Matrix<Types.CellBase<any>> {
266
- if (!selectedRange) {
267
- return currentData;
268
- }
269
-
270
- const { start, end } = selectedRange;
271
-
272
- let updatedData = currentData;
273
-
274
- for (let row = start.row; row <= end.row; row++) {
275
- for (let col = start.column; col <= end.column; col++) {
276
- const currentCell = Matrix.get({ row, column: col }, updatedData);
277
-
278
- if (!currentCell) {
279
- continue;
280
- }
281
-
282
- let updatedCell = {
283
- ...currentCell,
284
- style: {
285
- ...currentCell.style,
286
- textAlign: value as TextAlign,
287
- },
288
- };
289
-
290
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
291
- }
292
- }
293
-
294
- return updatedData;
295
- }
296
-
297
- export function applyUnderlineToCells(
298
- currentData: Matrix.Matrix<Types.CellBase<any>>,
299
- selectedRange: PointRange,
300
- value: string,
301
- active: boolean
302
- ): Matrix.Matrix<Types.CellBase<any>> {
303
- if (!selectedRange) {
304
- return currentData;
305
- }
306
-
307
- const { start, end } = selectedRange;
308
-
309
- let updatedData = currentData;
310
- let anyUnderlined = false;
311
-
312
- for (let row = start.row; row <= end.row; row++) {
313
- for (let col = start.column; col <= end.column; col++) {
314
- const currentCell = Matrix.get({ row, column: col }, updatedData);
315
- if (!currentCell) continue;
316
-
317
- if (currentCell.style?.textDecoration === 'underline') {
318
- anyUnderlined = true;
319
- break;
320
- }
321
- }
322
- if (anyUnderlined) break;
323
- }
324
-
325
- for (let row = start.row; row <= end.row; row++) {
326
- for (let col = start.column; col <= end.column; col++) {
327
- const currentCell = Matrix.get({ row, column: col }, updatedData);
328
- if (!currentCell) continue;
329
-
330
- let updatedCell;
331
- if (!active || anyUnderlined) {
332
- updatedCell = {
333
- ...currentCell,
334
- style: {
335
- ...currentCell.style,
336
- textDecoration: 'none',
337
- textDecorationStyle: 'solid' as TextDecorationStyle,
338
- },
339
- };
340
- } else {
341
- updatedCell = {
342
- ...currentCell,
343
- style: {
344
- ...currentCell.style,
345
- textDecoration: value === 'double_border' ? 'underline' : value,
346
- textDecorationStyle:
347
- value === 'double_border'
348
- ? 'double'
349
- : ('none' as TextDecorationStyle),
350
- },
351
- };
352
- }
353
-
354
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
355
- }
356
- }
357
-
358
- return updatedData;
359
- }
360
-
361
- export function isValidHexColor(color: string): boolean {
362
- if (color.length !== 6) {
363
- return false;
364
- }
365
-
366
- const hexChars = '0123456789ABCDEFabcdef';
367
- for (let i = 1; i < color.length; i++) {
368
- if (!hexChars.includes(color[i] as string)) {
369
- return false;
370
- }
371
- }
372
-
373
- return true;
374
- }
375
-
376
- export function applyColorToCells(
377
- currentData: Matrix.Matrix<Types.CellBase<any>>,
378
- selectedRange: PointRange | null,
379
- color: string
380
- ): Matrix.Matrix<Types.CellBase<any>> {
381
- if (!selectedRange) {
382
- return currentData;
383
- }
384
-
385
- const { start, end } = selectedRange;
386
-
387
- let updatedData = currentData;
388
-
389
- const isHex = isValidHexColor(color);
390
-
391
- const applyColor = isHex ? `#${color}` : color;
392
-
393
- for (let row = start.row; row <= end.row; row++) {
394
- for (let col = start.column; col <= end.column; col++) {
395
- const currentCell = Matrix.get({ row, column: col }, updatedData);
396
-
397
- if (!currentCell) {
398
- continue;
399
- }
400
-
401
- const updatedCell = {
402
- ...currentCell,
403
- style: {
404
- ...currentCell.style,
405
- color: applyColor,
406
- },
407
- };
408
-
409
- updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
410
- }
411
- }
412
-
413
- return updatedData;
414
- }
415
-
416
- export function applyBackgroundColorToCells(
417
- currentData: Matrix.Matrix<Types.CellBase<any>>,
418
- selectedRange: PointRange | null,
419
- backgroundColor: string
420
- ): Matrix.Matrix<Types.CellBase<any>> {
421
- if (!selectedRange) {
422
- return currentData;
423
- }
424
-
425
- if (selectedRange) {
426
- const { start, end } = selectedRange;
427
-
428
- let updatedData = currentData;
429
-
430
- const isHex = isValidHexColor(backgroundColor);
431
-
432
- const applyColor = isHex ? `#${backgroundColor}` : backgroundColor;
433
-
434
- for (let row = start.row; row <= end.row; row++) {
435
- for (let col = start.column; col <= end.column; col++) {
436
- const currentCell = Matrix.get({ row, column: col }, updatedData);
437
-
438
- if (!currentCell) {
439
- continue;
440
- }
441
-
442
- const updatedCell = {
443
- ...currentCell,
444
- style: {
445
- ...currentCell.style,
446
- backgroundColor: applyColor,
447
- },
448
- };
449
-
450
- updatedData = Matrix.set(
451
- { row, column: col },
452
- updatedCell,
453
- updatedData
454
- );
455
- }
456
- }
457
-
458
- return updatedData;
459
- }
460
- return currentData;
461
- }
462
-
463
- export function applyFormatePainter(
464
- currentData: Matrix.Matrix<Types.CellBase<any>>,
465
- activePoint: Point.Point | null
466
- ): React.CSSProperties | undefined {
467
- if (!activePoint) {
468
- return undefined;
469
- }
470
-
471
- const { row, column } = activePoint;
472
- let updatedData = { ...currentData };
473
-
474
- const currentCell = Matrix.get({ row, column }, updatedData);
475
-
476
- if (currentCell && currentCell.style) {
477
- return currentCell.style;
478
- }
479
-
480
- return undefined;
481
- }
482
-
483
- export function edit(state: Types.StoreState): Types.StoreState {
484
- if (isActiveReadOnly(state)) {
485
- return state;
486
- }
487
- return { ...state, mode: 'edit' };
488
- }
489
-
490
- export function clear(state: Types.StoreState): Types.StoreState {
491
- if (!state.active) {
492
- return state;
493
- }
494
-
495
- const canClearCell = (cell: Types.CellBase | undefined) =>
496
- cell && !cell.readOnly;
497
- const clearCell = (cell: Types.CellBase | undefined) => {
498
- if (!canClearCell(cell)) {
499
- return cell;
500
- }
501
- return Object.assign({}, cell, { value: undefined });
502
- };
503
-
504
- const selectedRange = state.selected.toRange(state.model.data);
505
-
506
- const changes: Types.CommitChanges = [];
507
- let newData = state.model.data;
508
-
509
- for (const point of selectedRange || []) {
510
- const cell = Matrix.get(point, state.model.data);
511
- const clearedCell = clearCell(cell);
512
- changes.push({
513
- prevCell: cell || null,
514
- nextCell: clearedCell || null,
515
- });
516
- newData = Matrix.set(point, clearedCell, newData);
517
- }
518
-
519
- return {
520
- ...state,
521
- ...commit(changes),
522
- };
523
- }
524
-
525
- export function blur(state: Types.StoreState): Types.StoreState {
526
- return { ...state, active: null, selected: new EmptySelection() };
527
- }
528
-
529
- export function view(state: Types.StoreState): Types.StoreState {
530
- return { ...state, mode: 'view' };
531
- }
532
-
533
- export function commit(
534
- changes: Types.CommitChanges
535
- ): Partial<Types.StoreState> {
536
- return { lastCommit: changes };
537
- }
538
-
539
- export const go =
540
- (rowDelta: number, columnDelta: number): KeyDownHandler =>
541
- (state) => {
542
- if (!state.active) {
543
- return;
544
- }
545
- const size = Matrix.getSize(state.model.data);
546
- const newColumn = state.active.column + columnDelta;
547
- const shouldWrap = newColumn >= size.columns;
548
- const nextActive = {
549
- row: state.active.row + rowDelta + (shouldWrap ? 1 : 0),
550
- column: (state.active.column + columnDelta) % size.columns,
551
- };
552
- if (!Matrix.has(nextActive, state.model.data)) {
553
- return { ...state, mode: 'view' };
554
- }
555
- return {
556
- ...state,
557
- active: nextActive,
558
- selected: new RangeSelection(new PointRange(nextActive, nextActive)),
559
- mode: 'view',
560
- };
561
- };
562
-
563
- function convertPtToPx(pt: number): string {
564
- const px = pt * 1.33;
565
- return `${Math.round(px)}px`;
566
- }
567
-
568
- // Key Bindings
569
-
570
- type TextDecorationStyle = 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy';
571
-
572
- type TextAlign = 'left' | 'center' | 'right';
573
-
574
- export type KeyDownHandler = (
575
- state: Types.StoreState,
576
- event: React.KeyboardEvent
577
- ) => Types.StoreState | void;
578
-
579
- type KeyDownHandlers = {
580
- [K in string]: KeyDownHandler | undefined;
581
- };
582
-
583
- const keyDownHandlers: KeyDownHandlers = {
584
- ArrowUp: go(-1, 0),
585
- ArrowDown: go(+1, 0),
586
- ArrowLeft: go(0, -1),
587
- ArrowRight: go(0, +1),
588
- Tab: go(0, +1),
589
- Enter: edit,
590
- Backspace: clear,
591
- Delete: clear,
592
- Escape: blur,
593
- };
594
-
595
- const editKeyDownHandlers: KeyDownHandlers = {
596
- Escape: view,
597
- Tab: keyDownHandlers.Tab,
598
- Enter: keyDownHandlers.ArrowDown,
599
- };
600
-
601
- const editShiftKeyDownHandlers: KeyDownHandlers = {
602
- Tab: go(0, -1),
603
- };
604
-
605
- export enum Direction {
606
- Left = 'Left',
607
- Right = 'Right',
608
- Top = 'Top',
609
- Bottom = 'Bottom',
610
- }
611
-
612
- const shiftKeyDownHandlers: KeyDownHandlers = {
613
- ArrowUp: (state) => ({
614
- ...state,
615
- selected: modifyEdge(
616
- state.selected,
617
- state.active,
618
- state.model.data,
619
- Direction.Top
620
- ),
621
- }),
622
- ArrowDown: (state) => ({
623
- ...state,
624
- selected: modifyEdge(
625
- state.selected,
626
- state.active,
627
- state.model.data,
628
- Direction.Bottom
629
- ),
630
- }),
631
- ArrowLeft: (state) => ({
632
- ...state,
633
- selected: modifyEdge(
634
- state.selected,
635
- state.active,
636
- state.model.data,
637
- Direction.Left
638
- ),
639
- }),
640
- ArrowRight: (state) => ({
641
- ...state,
642
- selected: modifyEdge(
643
- state.selected,
644
- state.active,
645
- state.model.data,
646
- Direction.Right
647
- ),
648
- }),
649
- Tab: go(0, -1),
650
- };
651
-
652
- const shiftMetaKeyDownHandlers: KeyDownHandlers = {};
653
- const metaKeyDownHandlers: KeyDownHandlers = {};
654
-
655
- export function getKeyDownHandler(
656
- state: Types.StoreState,
657
- event: React.KeyboardEvent
658
- ): KeyDownHandler | undefined {
659
- const { key } = event;
660
- let handlers;
661
- if (state.mode === 'edit') {
662
- if (event.shiftKey) {
663
- handlers = editShiftKeyDownHandlers;
664
- } else {
665
- handlers = editKeyDownHandlers;
666
- }
667
- } else if (event.shiftKey && event.metaKey) {
668
- handlers = shiftMetaKeyDownHandlers;
669
- } else if (event.shiftKey) {
670
- handlers = shiftKeyDownHandlers;
671
- } else if (event.metaKey) {
672
- handlers = metaKeyDownHandlers;
673
- } else {
674
- handlers = keyDownHandlers;
675
- }
676
-
677
- return handlers[key];
678
- }
679
-
680
- /** Returns whether the reducer has a handler for the given keydown event */
681
- export function hasKeyDownHandler(
682
- state: Types.StoreState,
683
- event: React.KeyboardEvent
684
- ): boolean {
685
- return getKeyDownHandler(state, event) !== undefined;
686
- }
687
-
688
- /** Returns whether the active cell is read only */
689
- export function isActiveReadOnly(state: Types.StoreState): boolean {
690
- const activeCell = getActive(state);
691
- return Boolean(activeCell?.readOnly);
692
- }
693
-
694
- /** Gets active cell from given state */
695
- export function getActive(state: Types.StoreState): Types.CellBase | null {
696
- const activeCell = state.active && Matrix.get(state.active, state.model.data);
697
- return activeCell || null;
698
- }
699
-
700
- /** Modify given edge according to given active point and data */
701
- export function modifyEdge<T extends Selection>(
702
- selection: T,
703
- active: Point.Point | null,
704
- data: Matrix.Matrix<unknown>,
705
- direction: Direction
706
- ): T {
707
- if (!active) {
708
- return selection;
709
- }
710
- if (selection instanceof RangeSelection) {
711
- const nextSelection = modifyRangeSelectionEdge(
712
- selection,
713
- active,
714
- data,
715
- direction
716
- );
717
- // @ts-expect-error
718
- return nextSelection;
719
- }
720
- if (selection instanceof EntireColumnsSelection) {
721
- // @ts-expect-error
722
- return modifyEntireColumnsSelection(selection, active, data, direction);
723
- }
724
- if (selection instanceof EntireRowsSelection) {
725
- // @ts-expect-error
726
- return modifyEntireRowsSelection(selection, active, data, direction);
727
- }
728
- return selection;
729
- }
730
-
731
- export function modifyRangeSelectionEdge(
732
- rangeSelection: RangeSelection,
733
- active: Point.Point,
734
- data: Matrix.Matrix<unknown>,
735
- edge: Direction
736
- ): RangeSelection {
737
- const field =
738
- edge === Direction.Left || edge === Direction.Right ? 'column' : 'row';
739
-
740
- const key =
741
- edge === Direction.Left || edge === Direction.Top ? 'start' : 'end';
742
- const delta = key === 'start' ? -1 : 1;
743
-
744
- const edgeOffsets = rangeSelection.range.has({
745
- ...active,
746
- [field]: active[field] + delta * -1,
747
- });
748
-
749
- const keyToModify = edgeOffsets ? (key === 'start' ? 'end' : 'start') : key;
750
-
751
- const nextRange = new PointRange(
752
- rangeSelection.range.start,
753
- rangeSelection.range.end
754
- );
755
-
756
- nextRange[keyToModify][field] += delta;
757
-
758
- const nextSelection = new RangeSelection(nextRange).normalizeTo(data);
759
-
760
- return nextSelection;
761
- }
762
-
763
- export function modifyEntireRowsSelection(
764
- selection: EntireRowsSelection,
765
- active: Point.Point,
766
- data: Matrix.Matrix<unknown>,
767
- edge: Direction
768
- ): EntireRowsSelection {
769
- if (edge === Direction.Left || edge === Direction.Right) {
770
- return selection;
771
- }
772
- const delta = edge === Direction.Top ? -1 : 1;
773
- const property = edge === Direction.Top ? 'start' : 'end';
774
- const oppositeProperty = property === 'start' ? 'end' : 'start';
775
- const newSelectionData = { ...selection };
776
- if (
777
- edge === Direction.Top
778
- ? selection.end > active.row
779
- : selection.start < active.row
780
- ) {
781
- newSelectionData[oppositeProperty] = selection[oppositeProperty] + delta;
782
- } else {
783
- newSelectionData[property] = selection[property] + delta;
784
- }
785
- const nextSelection = new EntireRowsSelection(
786
- Math.max(newSelectionData.start, 0),
787
- Math.max(newSelectionData.end, 0)
788
- );
789
- return nextSelection.normalizeTo(data);
790
- }
791
-
792
- export function modifyEntireColumnsSelection(
793
- selection: EntireColumnsSelection,
794
- active: Point.Point,
795
- data: Matrix.Matrix<unknown>,
796
- edge: Direction
797
- ): EntireColumnsSelection {
798
- if (edge === Direction.Top || edge === Direction.Bottom) {
799
- return selection;
800
- }
801
- const delta = edge === Direction.Left ? -1 : 1;
802
- const property = edge === Direction.Left ? 'start' : 'end';
803
- const oppositeProperty = property === 'start' ? 'end' : 'start';
804
- const newSelectionData = { ...selection };
805
- if (
806
- edge === Direction.Left
807
- ? selection.end > active.row
808
- : selection.start < active.row
809
- ) {
810
- newSelectionData[oppositeProperty] = selection[oppositeProperty] + delta;
811
- } else {
812
- newSelectionData[property] = selection[property] + delta;
813
- }
814
- const nextSelection = new EntireColumnsSelection(
815
- Math.max(newSelectionData.start, 0),
816
- Math.max(newSelectionData.end, 0)
817
- );
818
- return nextSelection.normalizeTo(data);
819
- }
1
+ import { PointRange } from './point-range';
2
+ import * as Matrix from './matrix';
3
+ import * as Types from './types';
4
+ import * as Point from './point';
5
+ import {
6
+ Selection,
7
+ EmptySelection,
8
+ RangeSelection,
9
+ EntireColumnsSelection,
10
+ EntireRowsSelection,
11
+ } from './selection';
12
+
13
+ export function applyBoldToCells(
14
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
15
+ selectedRange: PointRange
16
+ ): Matrix.Matrix<Types.CellBase<any>> {
17
+ if (!selectedRange) {
18
+ return currentData;
19
+ }
20
+
21
+ const { start, end } = selectedRange;
22
+
23
+ let updatedData = currentData;
24
+ let anyBold = false;
25
+
26
+ for (let row = start.row; row <= end.row; row++) {
27
+ for (let col = start.column; col <= end.column; col++) {
28
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
29
+ if (!currentCell) continue;
30
+
31
+ if (currentCell.style?.fontWeight === 'bold') {
32
+ anyBold = true;
33
+ break;
34
+ }
35
+ }
36
+ if (anyBold) break;
37
+ }
38
+
39
+ for (let row = start.row; row <= end.row; row++) {
40
+ for (let col = start.column; col <= end.column; col++) {
41
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
42
+ if (!currentCell) continue;
43
+
44
+ const updatedCell = {
45
+ ...currentCell,
46
+ style: {
47
+ ...currentCell.style,
48
+ fontWeight: anyBold ? 'normal' : 'bold',
49
+ },
50
+ };
51
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
52
+ }
53
+ }
54
+
55
+ return updatedData;
56
+ }
57
+
58
+ export function applyItalicToCells(
59
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
60
+ selectedRange: PointRange
61
+ ): Matrix.Matrix<Types.CellBase<any>> {
62
+ if (!selectedRange) {
63
+ return currentData;
64
+ }
65
+
66
+ const { start, end } = selectedRange;
67
+
68
+ let updatedData = currentData;
69
+ let anyItalic = false;
70
+
71
+ for (let row = start.row; row <= end.row; row++) {
72
+ for (let col = start.column; col <= end.column; col++) {
73
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
74
+ if (!currentCell) continue;
75
+
76
+ if (currentCell.style?.fontStyle === 'italic') {
77
+ anyItalic = true;
78
+ break;
79
+ }
80
+ }
81
+ if (anyItalic) break;
82
+ }
83
+
84
+ for (let row = start.row; row <= end.row; row++) {
85
+ for (let col = start.column; col <= end.column; col++) {
86
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
87
+ if (!currentCell) continue;
88
+
89
+ const updatedCell = {
90
+ ...currentCell,
91
+ style: {
92
+ ...currentCell.style,
93
+ fontStyle: anyItalic ? 'normal' : 'italic',
94
+ },
95
+ };
96
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
97
+ }
98
+ }
99
+
100
+ return updatedData;
101
+ }
102
+
103
+ export function applyFontFamily(
104
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
105
+ selectedRange: PointRange,
106
+ value: string
107
+ ): Matrix.Matrix<Types.CellBase<any>> {
108
+ if (!selectedRange) {
109
+ return currentData;
110
+ }
111
+
112
+ const { start, end } = selectedRange;
113
+
114
+ let updatedData = currentData;
115
+
116
+ for (let row = start.row; row <= end.row; row++) {
117
+ for (let col = start.column; col <= end.column; col++) {
118
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
119
+
120
+ if (!currentCell) {
121
+ continue;
122
+ }
123
+
124
+ let updatedCell = {
125
+ ...currentCell,
126
+ style: {
127
+ ...currentCell.style,
128
+ fontFamily: value,
129
+ },
130
+ };
131
+
132
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
133
+ }
134
+ }
135
+
136
+ return updatedData;
137
+ }
138
+
139
+ export function applyFontSize(
140
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
141
+ selectedRange: PointRange,
142
+ value: string
143
+ ): Matrix.Matrix<Types.CellBase<any>> {
144
+ if (!selectedRange) {
145
+ return currentData;
146
+ }
147
+
148
+ const conversion = Number(value);
149
+
150
+ if (isNaN(conversion)) {
151
+ return currentData;
152
+ }
153
+
154
+ const fontSizeInPx = convertPtToPx(conversion);
155
+
156
+ const { start, end } = selectedRange;
157
+
158
+ let updatedData = currentData;
159
+
160
+ for (let row = start.row; row <= end.row; row++) {
161
+ for (let col = start.column; col <= end.column; col++) {
162
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
163
+
164
+ if (!currentCell) {
165
+ continue;
166
+ }
167
+
168
+ let updatedCell = {
169
+ ...currentCell,
170
+ style: {
171
+ ...currentCell.style,
172
+ fontSize: fontSizeInPx,
173
+ },
174
+ };
175
+
176
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
177
+ }
178
+ }
179
+
180
+ return updatedData;
181
+ }
182
+
183
+ export function applyBorderToCells(
184
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
185
+ selectedRange: PointRange,
186
+ value: string,
187
+ color: string
188
+ ): Matrix.Matrix<Types.CellBase<any>> {
189
+ if (!selectedRange) {
190
+ return currentData;
191
+ }
192
+
193
+ const { start, end } = selectedRange;
194
+
195
+ let updatedData = currentData;
196
+
197
+ for (let row = start.row; row <= end.row; row++) {
198
+ for (let col = start.column; col <= end.column; col++) {
199
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
200
+
201
+ if (!currentCell) {
202
+ continue;
203
+ }
204
+
205
+ let updatedCell = { ...currentCell };
206
+
207
+ switch (value) {
208
+ case 'border-all-sides':
209
+ updatedCell.style = {
210
+ ...currentCell.style,
211
+ borderRight: `2px solid ${color}`,
212
+ borderLeft: `2px solid ${color}`,
213
+ borderTop: `2px solid ${color}`,
214
+ borderBottom: `2px solid ${color}`,
215
+ };
216
+ break;
217
+ case 'border-none':
218
+ updatedCell.style = {
219
+ ...currentCell.style,
220
+ borderRight: `1px solid var(--excel-sheet-border)`,
221
+ borderLeft: `1px solid var(--excel-sheet-border)`,
222
+ borderTop: `1px solid var(--excel-sheet-border)`,
223
+ borderBottom: `1px solid var(--excel-sheet-border)`,
224
+ };
225
+ break;
226
+ case 'border-right':
227
+ updatedCell.style = {
228
+ ...currentCell.style,
229
+ borderRight: `2px solid ${color}`,
230
+ };
231
+ break;
232
+ case 'border-left':
233
+ updatedCell.style = {
234
+ ...currentCell.style,
235
+ borderLeft: `2px solid ${color}`,
236
+ };
237
+ break;
238
+ case 'border-top':
239
+ updatedCell.style = {
240
+ ...currentCell.style,
241
+ borderTop: `2px solid ${color}`,
242
+ };
243
+ break;
244
+ case 'border-bottom':
245
+ updatedCell.style = {
246
+ ...currentCell.style,
247
+ borderBottom: `2px solid ${color}`,
248
+ };
249
+ break;
250
+ default:
251
+ break;
252
+ }
253
+
254
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
255
+ }
256
+ }
257
+
258
+ return updatedData;
259
+ }
260
+
261
+ export function applyTextAlign(
262
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
263
+ selectedRange: PointRange,
264
+ value: string
265
+ ): Matrix.Matrix<Types.CellBase<any>> {
266
+ if (!selectedRange) {
267
+ return currentData;
268
+ }
269
+
270
+ const { start, end } = selectedRange;
271
+
272
+ let updatedData = currentData;
273
+
274
+ for (let row = start.row; row <= end.row; row++) {
275
+ for (let col = start.column; col <= end.column; col++) {
276
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
277
+
278
+ if (!currentCell) {
279
+ continue;
280
+ }
281
+
282
+ let updatedCell = {
283
+ ...currentCell,
284
+ style: {
285
+ ...currentCell.style,
286
+ textAlign: value as TextAlign,
287
+ },
288
+ };
289
+
290
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
291
+ }
292
+ }
293
+
294
+ return updatedData;
295
+ }
296
+
297
+ export function applyUnderlineToCells(
298
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
299
+ selectedRange: PointRange,
300
+ value: string,
301
+ active: boolean
302
+ ): Matrix.Matrix<Types.CellBase<any>> {
303
+ if (!selectedRange) {
304
+ return currentData;
305
+ }
306
+
307
+ const { start, end } = selectedRange;
308
+
309
+ let updatedData = currentData;
310
+ let anyUnderlined = false;
311
+
312
+ for (let row = start.row; row <= end.row; row++) {
313
+ for (let col = start.column; col <= end.column; col++) {
314
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
315
+ if (!currentCell) continue;
316
+
317
+ if (currentCell.style?.textDecoration === 'underline') {
318
+ anyUnderlined = true;
319
+ break;
320
+ }
321
+ }
322
+ if (anyUnderlined) break;
323
+ }
324
+
325
+ for (let row = start.row; row <= end.row; row++) {
326
+ for (let col = start.column; col <= end.column; col++) {
327
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
328
+ if (!currentCell) continue;
329
+
330
+ let updatedCell;
331
+ if (!active || anyUnderlined) {
332
+ updatedCell = {
333
+ ...currentCell,
334
+ style: {
335
+ ...currentCell.style,
336
+ textDecoration: 'none solid',
337
+ },
338
+ };
339
+ } else {
340
+ updatedCell = {
341
+ ...currentCell,
342
+ style: {
343
+ ...currentCell.style,
344
+ textDecoration:
345
+ value === 'double_border' ? 'underline double' : value,
346
+ },
347
+ };
348
+ }
349
+
350
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
351
+ }
352
+ }
353
+
354
+ return updatedData;
355
+ }
356
+
357
+ export function isValidHexColor(color: string): boolean {
358
+ if (color.length !== 6) {
359
+ return false;
360
+ }
361
+
362
+ const hexChars = '0123456789ABCDEFabcdef';
363
+ for (let i = 1; i < color.length; i++) {
364
+ if (!hexChars.includes(color[i] as string)) {
365
+ return false;
366
+ }
367
+ }
368
+
369
+ return true;
370
+ }
371
+
372
+ export function applyColorToCells(
373
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
374
+ selectedRange: PointRange | null,
375
+ color: string
376
+ ): Matrix.Matrix<Types.CellBase<any>> {
377
+ if (!selectedRange) {
378
+ return currentData;
379
+ }
380
+
381
+ const { start, end } = selectedRange;
382
+
383
+ let updatedData = currentData;
384
+
385
+ const isHex = isValidHexColor(color);
386
+
387
+ const applyColor = isHex ? `#${color}` : color;
388
+
389
+ for (let row = start.row; row <= end.row; row++) {
390
+ for (let col = start.column; col <= end.column; col++) {
391
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
392
+
393
+ if (!currentCell) {
394
+ continue;
395
+ }
396
+
397
+ const updatedCell = {
398
+ ...currentCell,
399
+ style: {
400
+ ...currentCell.style,
401
+ color: applyColor,
402
+ },
403
+ };
404
+
405
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
406
+ }
407
+ }
408
+
409
+ return updatedData;
410
+ }
411
+
412
+ export function applyBackgroundColorToCells(
413
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
414
+ selectedRange: PointRange | null,
415
+ backgroundColor: string
416
+ ): Matrix.Matrix<Types.CellBase<any>> {
417
+ if (!selectedRange) {
418
+ return currentData;
419
+ }
420
+
421
+ if (selectedRange) {
422
+ const { start, end } = selectedRange;
423
+
424
+ let updatedData = currentData;
425
+
426
+ const isHex = isValidHexColor(backgroundColor);
427
+
428
+ const applyColor = isHex ? `#${backgroundColor}` : backgroundColor;
429
+
430
+ for (let row = start.row; row <= end.row; row++) {
431
+ for (let col = start.column; col <= end.column; col++) {
432
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
433
+
434
+ if (!currentCell) {
435
+ continue;
436
+ }
437
+
438
+ const updatedCell = {
439
+ ...currentCell,
440
+ style: {
441
+ ...currentCell.style,
442
+ backgroundColor: applyColor,
443
+ },
444
+ };
445
+
446
+ updatedData = Matrix.set(
447
+ { row, column: col },
448
+ updatedCell,
449
+ updatedData
450
+ );
451
+ }
452
+ }
453
+
454
+ return updatedData;
455
+ }
456
+ return currentData;
457
+ }
458
+
459
+ export function applyFormatePainter(
460
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
461
+ activePoint: Point.Point | null
462
+ ): React.CSSProperties | undefined {
463
+ if (!activePoint) {
464
+ return undefined;
465
+ }
466
+
467
+ const { row, column } = activePoint;
468
+ let updatedData = { ...currentData };
469
+
470
+ const currentCell = Matrix.get({ row, column }, updatedData);
471
+
472
+ if (currentCell && currentCell.style) {
473
+ return currentCell.style;
474
+ }
475
+
476
+ return undefined;
477
+ }
478
+
479
+ export function dragEndFormatePainter(
480
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
481
+ selectedRange: PointRange | null,
482
+ formattedStyle: Types.formattedStyle
483
+ ): Matrix.Matrix<Types.CellBase<any>> {
484
+ if (!selectedRange || !formattedStyle.open) {
485
+ return currentData;
486
+ }
487
+
488
+ const { start, end } = selectedRange;
489
+ let updatedData = currentData;
490
+
491
+ for (let row = start.row; row <= end.row; row++) {
492
+ for (let col = start.column; col <= end.column; col++) {
493
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
494
+ if (!currentCell) {
495
+ continue;
496
+ }
497
+ const updatedCell = {
498
+ ...currentCell,
499
+ style: formattedStyle.style,
500
+ };
501
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
502
+ }
503
+ }
504
+ return updatedData;
505
+ }
506
+
507
+ export function dragEndAutoFill(
508
+ currentData: Matrix.Matrix<Types.CellBase<any>>,
509
+ selectedRange: PointRange | null,
510
+ cellValue: Types.CellBase,
511
+ activeCell: Point.Point | null
512
+ ): Matrix.Matrix<Types.CellBase<any>> {
513
+ if (!selectedRange) {
514
+ return currentData;
515
+ }
516
+ const { start, end } = selectedRange;
517
+ const rowCount = start.row - end.row;
518
+ const columnCount = start.column - end.column;
519
+ let startPoint = { row: 0, column: 0 };
520
+ let endPoint = { row: 0, column: 0 };
521
+
522
+ if (rowCount > columnCount) {
523
+ startPoint = { row: activeCell?.row ?? 0, column: start.column };
524
+ endPoint = { row: activeCell?.row ?? 0, column: end.column };
525
+ } else {
526
+ startPoint = { row: start.row, column: activeCell?.column ?? 0 };
527
+ endPoint = { row: end.row, column: activeCell?.column ?? 0 };
528
+ }
529
+
530
+ let updatedData = currentData;
531
+
532
+ for (let row = startPoint.row; row <= endPoint.row; row++) {
533
+ for (let col = startPoint.column; col <= endPoint.column; col++) {
534
+ const currentCell = Matrix.get({ row, column: col }, updatedData);
535
+
536
+ if (!currentCell) {
537
+ continue;
538
+ }
539
+
540
+ const updatedCell = {
541
+ ...currentCell,
542
+ style: cellValue.style,
543
+ value: cellValue.value,
544
+ };
545
+
546
+ updatedData = Matrix.set({ row, column: col }, updatedCell, updatedData);
547
+ }
548
+ }
549
+ return updatedData;
550
+ }
551
+
552
+ export function edit(state: Types.StoreState): Types.StoreState {
553
+ if (isActiveReadOnly(state)) {
554
+ return state;
555
+ }
556
+ return { ...state, mode: 'edit' };
557
+ }
558
+
559
+ export function clear(state: Types.StoreState): Types.StoreState {
560
+ if (!state.active) {
561
+ return state;
562
+ }
563
+
564
+ const canClearCell = (cell: Types.CellBase | undefined) =>
565
+ cell && !cell.readOnly;
566
+ const clearCell = (cell: Types.CellBase | undefined) => {
567
+ if (!canClearCell(cell)) {
568
+ return cell;
569
+ }
570
+ return Object.assign({}, cell, { value: undefined });
571
+ };
572
+
573
+ const selectedRange = state.selected.toRange(state.model.data);
574
+
575
+ const changes: Types.CommitChanges = [];
576
+ let newData = state.model.data;
577
+
578
+ for (const point of selectedRange || []) {
579
+ const cell = Matrix.get(point, state.model.data);
580
+ const clearedCell = clearCell(cell);
581
+ changes.push({
582
+ prevCell: cell || null,
583
+ nextCell: clearedCell || null,
584
+ });
585
+ newData = Matrix.set(point, clearedCell, newData);
586
+ }
587
+
588
+ return {
589
+ ...state,
590
+ ...commit(changes),
591
+ };
592
+ }
593
+
594
+ export function blur(state: Types.StoreState): Types.StoreState {
595
+ return { ...state, active: null, selected: new EmptySelection() };
596
+ }
597
+
598
+ export function view(state: Types.StoreState): Types.StoreState {
599
+ return { ...state, mode: 'view' };
600
+ }
601
+
602
+ export function commit(
603
+ changes: Types.CommitChanges
604
+ ): Partial<Types.StoreState> {
605
+ return { lastCommit: changes };
606
+ }
607
+
608
+ export const go =
609
+ (rowDelta: number, columnDelta: number): KeyDownHandler =>
610
+ (state) => {
611
+ if (!state.active) {
612
+ return;
613
+ }
614
+ const size = Matrix.getSize(state.model.data);
615
+ const newColumn = state.active.column + columnDelta;
616
+ const shouldWrap = newColumn >= size.columns;
617
+ const nextActive = {
618
+ row: state.active.row + rowDelta + (shouldWrap ? 1 : 0),
619
+ column: (state.active.column + columnDelta) % size.columns,
620
+ };
621
+ if (!Matrix.has(nextActive, state.model.data)) {
622
+ return { ...state, mode: 'view' };
623
+ }
624
+ return {
625
+ ...state,
626
+ active: nextActive,
627
+ selected: new RangeSelection(new PointRange(nextActive, nextActive)),
628
+ mode: 'view',
629
+ };
630
+ };
631
+
632
+ function convertPtToPx(pt: number): string {
633
+ const px = pt * 1.33;
634
+ return `${Math.round(px)}px`;
635
+ }
636
+
637
+ // Key Bindings
638
+
639
+ type TextAlign = 'left' | 'center' | 'right';
640
+
641
+ export type KeyDownHandler = (
642
+ state: Types.StoreState,
643
+ event: React.KeyboardEvent
644
+ ) => Types.StoreState | void;
645
+
646
+ type KeyDownHandlers = {
647
+ [K in string]: KeyDownHandler | undefined;
648
+ };
649
+
650
+ const keyDownHandlers: KeyDownHandlers = {
651
+ ArrowUp: go(-1, 0),
652
+ ArrowDown: go(+1, 0),
653
+ ArrowLeft: go(0, -1),
654
+ ArrowRight: go(0, +1),
655
+ Tab: go(0, +1),
656
+ Enter: edit,
657
+ Backspace: clear,
658
+ Delete: clear,
659
+ Escape: blur,
660
+ };
661
+
662
+ const editKeyDownHandlers: KeyDownHandlers = {
663
+ Escape: view,
664
+ Tab: keyDownHandlers.Tab,
665
+ Enter: keyDownHandlers.ArrowDown,
666
+ };
667
+
668
+ const editShiftKeyDownHandlers: KeyDownHandlers = {
669
+ Tab: go(0, -1),
670
+ };
671
+
672
+ export enum Direction {
673
+ Left = 'Left',
674
+ Right = 'Right',
675
+ Top = 'Top',
676
+ Bottom = 'Bottom',
677
+ }
678
+
679
+ const shiftKeyDownHandlers: KeyDownHandlers = {
680
+ ArrowUp: (state) => ({
681
+ ...state,
682
+ selected: modifyEdge(
683
+ state.selected,
684
+ state.active,
685
+ state.model.data,
686
+ Direction.Top
687
+ ),
688
+ }),
689
+ ArrowDown: (state) => ({
690
+ ...state,
691
+ selected: modifyEdge(
692
+ state.selected,
693
+ state.active,
694
+ state.model.data,
695
+ Direction.Bottom
696
+ ),
697
+ }),
698
+ ArrowLeft: (state) => ({
699
+ ...state,
700
+ selected: modifyEdge(
701
+ state.selected,
702
+ state.active,
703
+ state.model.data,
704
+ Direction.Left
705
+ ),
706
+ }),
707
+ ArrowRight: (state) => ({
708
+ ...state,
709
+ selected: modifyEdge(
710
+ state.selected,
711
+ state.active,
712
+ state.model.data,
713
+ Direction.Right
714
+ ),
715
+ }),
716
+ Tab: go(0, -1),
717
+ };
718
+
719
+ const shiftMetaKeyDownHandlers: KeyDownHandlers = {};
720
+ const metaKeyDownHandlers: KeyDownHandlers = {};
721
+
722
+ export function getKeyDownHandler(
723
+ state: Types.StoreState,
724
+ event: React.KeyboardEvent
725
+ ): KeyDownHandler | undefined {
726
+ const { key } = event;
727
+ let handlers;
728
+ if (state.mode === 'edit') {
729
+ if (event.shiftKey) {
730
+ handlers = editShiftKeyDownHandlers;
731
+ } else {
732
+ handlers = editKeyDownHandlers;
733
+ }
734
+ } else if (event.shiftKey && event.metaKey) {
735
+ handlers = shiftMetaKeyDownHandlers;
736
+ } else if (event.shiftKey) {
737
+ handlers = shiftKeyDownHandlers;
738
+ } else if (event.metaKey) {
739
+ handlers = metaKeyDownHandlers;
740
+ } else {
741
+ handlers = keyDownHandlers;
742
+ }
743
+
744
+ return handlers[key];
745
+ }
746
+
747
+ /** Returns whether the reducer has a handler for the given keydown event */
748
+ export function hasKeyDownHandler(
749
+ state: Types.StoreState,
750
+ event: React.KeyboardEvent
751
+ ): boolean {
752
+ return getKeyDownHandler(state, event) !== undefined;
753
+ }
754
+
755
+ /** Returns whether the active cell is read only */
756
+ export function isActiveReadOnly(state: Types.StoreState): boolean {
757
+ const activeCell = getActive(state);
758
+ return Boolean(activeCell?.readOnly);
759
+ }
760
+
761
+ /** Gets active cell from given state */
762
+ export function getActive(state: Types.StoreState): Types.CellBase | null {
763
+ const activeCell = state.active && Matrix.get(state.active, state.model.data);
764
+ return activeCell || null;
765
+ }
766
+
767
+ /** Modify given edge according to given active point and data */
768
+ export function modifyEdge<T extends Selection>(
769
+ selection: T,
770
+ active: Point.Point | null,
771
+ data: Matrix.Matrix<unknown>,
772
+ direction: Direction
773
+ ): T {
774
+ if (!active) {
775
+ return selection;
776
+ }
777
+ if (selection instanceof RangeSelection) {
778
+ const nextSelection = modifyRangeSelectionEdge(
779
+ selection,
780
+ active,
781
+ data,
782
+ direction
783
+ );
784
+ // @ts-expect-error
785
+ return nextSelection;
786
+ }
787
+ if (selection instanceof EntireColumnsSelection) {
788
+ // @ts-expect-error
789
+ return modifyEntireColumnsSelection(selection, active, data, direction);
790
+ }
791
+ if (selection instanceof EntireRowsSelection) {
792
+ // @ts-expect-error
793
+ return modifyEntireRowsSelection(selection, active, data, direction);
794
+ }
795
+ return selection;
796
+ }
797
+
798
+ export function modifyRangeSelectionEdge(
799
+ rangeSelection: RangeSelection,
800
+ active: Point.Point,
801
+ data: Matrix.Matrix<unknown>,
802
+ edge: Direction
803
+ ): RangeSelection {
804
+ const field =
805
+ edge === Direction.Left || edge === Direction.Right ? 'column' : 'row';
806
+
807
+ const key =
808
+ edge === Direction.Left || edge === Direction.Top ? 'start' : 'end';
809
+ const delta = key === 'start' ? -1 : 1;
810
+
811
+ const edgeOffsets = rangeSelection.range.has({
812
+ ...active,
813
+ [field]: active[field] + delta * -1,
814
+ });
815
+
816
+ const keyToModify = edgeOffsets ? (key === 'start' ? 'end' : 'start') : key;
817
+
818
+ const nextRange = new PointRange(
819
+ rangeSelection.range.start,
820
+ rangeSelection.range.end
821
+ );
822
+
823
+ nextRange[keyToModify][field] += delta;
824
+
825
+ const nextSelection = new RangeSelection(nextRange).normalizeTo(data);
826
+
827
+ return nextSelection;
828
+ }
829
+
830
+ export function modifyEntireRowsSelection(
831
+ selection: EntireRowsSelection,
832
+ active: Point.Point,
833
+ data: Matrix.Matrix<unknown>,
834
+ edge: Direction
835
+ ): EntireRowsSelection {
836
+ if (edge === Direction.Left || edge === Direction.Right) {
837
+ return selection;
838
+ }
839
+ const delta = edge === Direction.Top ? -1 : 1;
840
+ const property = edge === Direction.Top ? 'start' : 'end';
841
+ const oppositeProperty = property === 'start' ? 'end' : 'start';
842
+ const newSelectionData = { ...selection };
843
+ if (
844
+ edge === Direction.Top
845
+ ? selection.end > active.row
846
+ : selection.start < active.row
847
+ ) {
848
+ newSelectionData[oppositeProperty] = selection[oppositeProperty] + delta;
849
+ } else {
850
+ newSelectionData[property] = selection[property] + delta;
851
+ }
852
+ const nextSelection = new EntireRowsSelection(
853
+ Math.max(newSelectionData.start, 0),
854
+ Math.max(newSelectionData.end, 0)
855
+ );
856
+ return nextSelection.normalizeTo(data);
857
+ }
858
+
859
+ export function modifyEntireColumnsSelection(
860
+ selection: EntireColumnsSelection,
861
+ active: Point.Point,
862
+ data: Matrix.Matrix<unknown>,
863
+ edge: Direction
864
+ ): EntireColumnsSelection {
865
+ if (edge === Direction.Top || edge === Direction.Bottom) {
866
+ return selection;
867
+ }
868
+ const delta = edge === Direction.Left ? -1 : 1;
869
+ const property = edge === Direction.Left ? 'start' : 'end';
870
+ const oppositeProperty = property === 'start' ? 'end' : 'start';
871
+ const newSelectionData = { ...selection };
872
+ if (
873
+ edge === Direction.Left
874
+ ? selection.end > active.row
875
+ : selection.start < active.row
876
+ ) {
877
+ newSelectionData[oppositeProperty] = selection[oppositeProperty] + delta;
878
+ } else {
879
+ newSelectionData[property] = selection[property] + delta;
880
+ }
881
+ const nextSelection = new EntireColumnsSelection(
882
+ Math.max(newSelectionData.start, 0),
883
+ Math.max(newSelectionData.end, 0)
884
+ );
885
+ return nextSelection.normalizeTo(data);
886
+ }