pixel-react 1.8.4 → 1.8.5

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