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