pixel-react 1.6.6 → 1.6.8

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