pixel-react 1.7.1 → 1.7.2

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