pixel-react 1.5.4 → 1.5.5

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