pixel-react 1.5.4 → 1.5.6

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