pixel-react 1.5.2 → 1.5.4

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