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