pixel-react 1.6.6 → 1.6.7

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