pixel-react 1.6.8 → 1.6.9

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