pixel-react 1.7.0 → 1.7.1

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