@economic/taco 1.1.0 → 1.1.3

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 (321) hide show
  1. package/README.md +1 -3
  2. package/dist/components/Card/Card.d.ts +7 -7
  3. package/dist/components/Table/hooks/useTable.d.ts +3 -0
  4. package/dist/components/Table/types.d.ts +3 -0
  5. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -2
  6. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  7. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  8. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  9. package/dist/esm/components/Badge/Badge.js.map +1 -1
  10. package/dist/esm/components/Banner/Banner.js.map +1 -1
  11. package/dist/esm/components/Banner/util.js.map +1 -1
  12. package/dist/esm/components/Button/Button.js.map +1 -1
  13. package/dist/esm/components/Button/util.js.map +1 -1
  14. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  15. package/dist/esm/components/Card/Card.js +19 -4
  16. package/dist/esm/components/Card/Card.js.map +1 -1
  17. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  18. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  19. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  20. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  21. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  22. package/dist/esm/components/Dialog/Context.js.map +1 -1
  23. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  24. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  25. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  26. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  27. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  28. package/dist/esm/components/Field/Field.js.map +1 -1
  29. package/dist/esm/components/Form/Form.js.map +1 -1
  30. package/dist/esm/components/Group/Group.js.map +1 -1
  31. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  32. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  33. package/dist/esm/components/Icon/Icon.js.map +1 -1
  34. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  35. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  36. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  37. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  38. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  39. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  40. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  41. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  42. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  43. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  44. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  45. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  46. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  47. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  48. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  49. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  50. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  51. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  52. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  53. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  54. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  55. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  56. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  57. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  58. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  59. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  60. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  61. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  62. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  63. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  64. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  65. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  66. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  67. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  68. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  69. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  70. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  71. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  72. package/dist/esm/components/Icon/components/CircleClose.js +6 -6
  73. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -1
  74. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -1
  75. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -1
  76. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -1
  77. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  78. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  79. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  80. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  81. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  82. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  83. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  84. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  85. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  86. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  87. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  88. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  89. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  90. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  91. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  92. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  93. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  94. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  95. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  96. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  97. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  98. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  99. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  100. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  101. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  102. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  103. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  104. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  105. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  106. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  107. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  108. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  109. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  110. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  111. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  112. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  113. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  114. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  115. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  116. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  117. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  118. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  119. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  120. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  121. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  122. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  123. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  124. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  125. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  126. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  127. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  128. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  129. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  130. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  131. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  132. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  133. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  134. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  135. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  136. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  137. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  138. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  139. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  140. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  141. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  142. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  143. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  144. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  145. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  146. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  147. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  148. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  149. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  150. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  151. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  152. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  153. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  154. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  155. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  156. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  157. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  158. package/dist/esm/components/Icon/components/List.js.map +1 -1
  159. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  160. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  161. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  162. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  163. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  164. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  165. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  166. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  167. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  168. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  169. package/dist/esm/components/Icon/components/More.js.map +1 -1
  170. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  171. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  172. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  173. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  174. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  175. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  176. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  177. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  178. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  179. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  180. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  181. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  182. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  183. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  184. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  185. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  186. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  187. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  188. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  189. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  190. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  191. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  192. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  193. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  194. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  195. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  196. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  197. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  198. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  199. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  200. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  201. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  202. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  203. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  204. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  205. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  206. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  207. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  208. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  209. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  210. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  211. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  212. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  213. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  214. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  216. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  217. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  218. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  219. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  220. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  221. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  222. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  223. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  224. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  225. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  226. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  227. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  229. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  230. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  231. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  232. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  233. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  234. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  235. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  236. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  237. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  238. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  239. package/dist/esm/components/Icon/components/index.js.map +1 -1
  240. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  241. package/dist/esm/components/Input/Input.js.map +1 -1
  242. package/dist/esm/components/Input/util.js.map +1 -1
  243. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  244. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  245. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  246. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  247. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  248. package/dist/esm/components/Listbox/util.js.map +1 -1
  249. package/dist/esm/components/Menu/Context.js.map +1 -1
  250. package/dist/esm/components/Menu/Menu.js.map +1 -1
  251. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  252. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  253. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  254. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  255. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  256. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  257. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  258. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  259. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  260. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  261. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  262. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  263. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  264. package/dist/esm/components/Popover/Popover.js.map +1 -1
  265. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  266. package/dist/esm/components/Progress/Progress.js.map +1 -1
  267. package/dist/esm/components/Provider/Provider.js.map +1 -1
  268. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  269. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  270. package/dist/esm/components/Select/Select.js.map +1 -1
  271. package/dist/esm/components/Select/useSelect.js.map +1 -1
  272. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  273. package/dist/esm/components/Switch/Switch.js.map +1 -1
  274. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  275. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  276. package/dist/esm/components/Table/components/Table.js.map +1 -1
  277. package/dist/esm/components/Table/components/WindowedTable.js +16 -10
  278. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  279. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  280. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  281. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  282. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  283. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  284. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  285. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +8 -3
  286. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  287. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  288. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  289. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  290. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  291. package/dist/esm/components/Table/util.js.map +1 -1
  292. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  293. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  294. package/dist/esm/components/Toast/Toast.js.map +1 -1
  295. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  296. package/dist/esm/components/Toast/util.js.map +1 -1
  297. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  298. package/dist/esm/components/Tour/Tour.js.map +1 -1
  299. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  300. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  301. package/dist/esm/primitives/Button.js.map +1 -1
  302. package/dist/esm/utils/date.js.map +1 -1
  303. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  304. package/dist/esm/utils/hooks/useDraggable.js +0 -1
  305. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  306. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  307. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  308. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  309. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  310. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  311. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  312. package/dist/esm/utils/input.js.map +1 -1
  313. package/dist/esm/utils/mergeRefs.js.map +1 -1
  314. package/dist/esm/utils/taillwind.js.map +1 -1
  315. package/dist/taco.cjs.development.js +147 -124
  316. package/dist/taco.cjs.development.js.map +1 -1
  317. package/dist/taco.cjs.production.min.js +1 -1
  318. package/dist/taco.cjs.production.min.js.map +1 -1
  319. package/package.json +20 -8
  320. package/tailwind.config.js +2 -44
  321. package/types.json +251 -161
@@ -93,7 +93,11 @@ var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTabl
93
93
 
94
94
 
95
95
  var headerRef = React__default.useRef(null);
96
- var rowsRef = React__default.useRef(null);
96
+
97
+ var _React$useState = React__default.useState(null),
98
+ rowsRef = _React$useState[0],
99
+ setRowsRef = _React$useState[1];
100
+
97
101
  var tableDimensions = useBoundingClientRectListener(tableRef);
98
102
  var headerDimensions = useBoundingClientRectListener(headerRef);
99
103
  var height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null; // variable row height calculations
@@ -106,8 +110,8 @@ var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTabl
106
110
 
107
111
  rowHeights.current = _extends({}, rowHeights.current, (_extends2 = {}, _extends2[index] = size, _extends2));
108
112
 
109
- if (rowsRef.current) {
110
- rowsRef.current.resetAfterIndex(0);
113
+ if (rowsRef) {
114
+ rowsRef.resetAfterIndex(0);
111
115
  }
112
116
  }
113
117
  }, []);
@@ -115,16 +119,16 @@ var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTabl
115
119
  return rowHeights.current[index] || estimatedRowHeight;
116
120
  }, []);
117
121
  React__default.useEffect(function () {
118
- if (rowsRef && rowsRef.current && rowProps.activeIndex !== undefined) {
119
- rowsRef.current.scrollToItem(rowProps.activeIndex);
122
+ if (rowsRef && rowProps.activeIndex !== undefined) {
123
+ rowsRef.scrollToItem(rowProps.activeIndex, 'start');
120
124
  }
121
- }, [rowProps.activeIndex]); // trigger recalculation of variable row heights if the data changes
125
+ }, [rowsRef, rowProps.activeIndex]); // trigger recalculation of variable row heights if the data changes
122
126
 
123
127
  React__default.useEffect(function () {
124
128
  rowHeights.current = {};
125
129
 
126
- if (rowsRef.current) {
127
- rowsRef.current.resetAfterIndex(0);
130
+ if (rowsRef) {
131
+ rowsRef.resetAfterIndex(0);
128
132
  }
129
133
  }, [rows.length]);
130
134
  var contentHeight = estimatedRowHeight * props.data.length || 0;
@@ -171,14 +175,16 @@ var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTabl
171
175
  ref: function ref(list) {
172
176
  _ref3(list);
173
177
 
174
- rowsRef.current = list;
178
+ setRowsRef(list);
175
179
  }
176
180
  }), VariableRow);
177
181
  });
178
182
  } else {
179
183
  list = React__default.createElement(VariableSizeList, Object.assign({}, listProps, {
180
184
  itemCount: rows.length,
181
- ref: rowsRef
185
+ ref: function ref(_ref4) {
186
+ setRowsRef(_ref4);
187
+ }
182
188
  }), VariableRow);
183
189
  }
184
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WindowedTable.js","sources":["../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../utils/hooks/useBoundingClientRectListener';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Provider';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-dark\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const rowsRef = React.useRef<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef.current) {\n rowsRef.current.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowsRef.current && rowProps.activeIndex !== undefined) {\n rowsRef.current.scrollToItem(rowProps.activeIndex);\n }\n }, [rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef.current) {\n rowsRef.current.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n rowsRef.current = list;\n }}\n >\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList {...listProps} itemCount={rows.length} ref={rowsRef}>\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","useLocalization","texts","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","height","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useProxiedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","useTable","windowed","state","headerRef","rowsRef","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}
1
+ {"version":3,"file":"WindowedTable.js","sources":["../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../utils/hooks/useBoundingClientRectListener';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Provider';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-dark\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","useLocalization","texts","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","height","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useProxiedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","useTable","windowed","state","headerRef","useState","rowsRef","setRowsRef","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
1
+ {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
1
+ {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","props","onChange","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","props","onChange","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowCreation.js","sources":["../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, TableRef } from '../types';\n\nexport const insertChildTableRow = <TRow,>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow,>(data: Row<TRow>[], tableRef: React.RefObject<TableRef>): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n"],"names":["insertChildTableRow","data","rowIndexPath","values","undefined","nexTRow","JSON","parse","stringify","childRowIndexPath","rowIndexes","convertRowIndexPathToNumberArray","currentRow","getByRowIndexPath","join","nextSubRows","subRows","path","map","i","unshift","set","push","removeChildTableRow","rootIndex","Number","shift","length","unsetPath","index","unset","pop","setPath","compact","get","pullAt","useTableRowCreation","tableRef","React","useState","internalData","setInternalData","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
1
+ {"version":3,"file":"useRowCreation.js","sources":["../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, TableRef } from '../types';\n\nexport const insertChildTableRow = <TRow,>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow,>(data: Row<TRow>[], tableRef: React.RefObject<TableRef>): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n"],"names":["insertChildTableRow","data","rowIndexPath","values","undefined","nexTRow","JSON","parse","stringify","childRowIndexPath","rowIndexes","convertRowIndexPathToNumberArray","currentRow","getByRowIndexPath","join","nextSubRows","subRows","path","map","i","unshift","set","push","removeChildTableRow","rootIndex","Number","shift","length","unsetPath","index","unset","pop","setPath","compact","get","pullAt","useTableRowCreation","tableRef","React","useState","internalData","setInternalData","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Provider';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _1,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // eslint-disable-next-line\n // @ts-ignore: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes, []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","useLocalization","texts","getColumnsFromChildren","columns","defaultSortRules","manualPagination","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","headerGroups","prepareBaseRow","prepareRow","page","gotoPage","setPageSize","visibleRows","useTableKeyboardNavigation","setActiveIndex","handleKeyDown","handleFocus","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Provider';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _1,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // eslint-disable-next-line\n // @ts-ignore: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes, []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","useLocalization","texts","getColumnsFromChildren","columns","defaultSortRules","manualPagination","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","headerGroups","prepareBaseRow","prepareRow","page","gotoPage","setPageSize","visibleRows","useTableKeyboardNavigation","setActiveIndex","handleKeyDown","handleFocus","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CACtBC,WADsB,EAEtBC,IAFsB,EAGtBC,oBAHsB,EAItBC,iBAJsB;EAMtBC,cAAK,CAACC,SAAN,CAAgB;IACZ,IAAIL,WAAW,KAAKM,SAAhB,IAA6BL,IAAI,CAACM,MAAlC,IAA4CJ,iBAAhD,EAAmE;MAC/D,IAAMK,UAAU,GAAGP,IAAI,CAACD,WAAD,CAAvB;;MACA,IAAIQ,UAAJ,EAAgB;QACZ,IAAMC,mBAAmB,GAAGC,gBAAgB,CAACF,UAAD,EAAaN,oBAAb,CAA5C;QACAC,iBAAiB,CAACM,mBAAD,CAAjB;;;GALZ,EAQG,CAACT,WAAD,EAAcC,IAAd,CARH;AASH,CAfD;;AAiBA,IAAMU,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,QAAD,EAAgBC,GAAhB;EACrB,IAAMC,iBAAiB,GAAGV,cAAK,CAACW,OAAN,CACtB;IAAA,OAAO;MACHC,qBAAqB,EAAEJ,QAAQ,CAACI,qBAD7B;MAEHC,oBAAoB,EAAEL,QAAQ,CAACK,oBAF5B;MAGHC,gBAAgB,EAAEN,QAAQ,CAACM,gBAHxB;MAIHC,aAAa,EAAEP,QAAQ,CAACO,aAJrB;MAKHC,gBAAgB,EAAER,QAAQ,CAACQ,gBALxB;MAMHC,eAAe,EAAET,QAAQ,CAACS,eANvB;MAOHC,iBAAiB,EAAEV,QAAQ,CAACU,iBAPzB;MAQHC,YAAY,EAAEX,QAAQ,CAACW;KAR3B;GADsB,EAWtB,EAXsB,CAA1B;EAcAnB,cAAK,CAACC,SAAN,CAAgB;IACZ,IAAIQ,GAAJ,aAAIA,GAAJ,eAAIA,GAAG,CAAEW,OAAT,EAAkB;MACdX,GAAG,CAACW,OAAJ,CAAYZ,QAAZ,GAAuBE,iBAAvB;;GAFR,EAIG,CAACD,GAAD,CAJH;EAMA,OAAOC,iBAAP;AACH,CAtBD;;AAwBA,IAAMW,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,iBAAD,EAA6BC,UAA7B,EAAwEC,KAAxE;EAC/BxB,cAAK,CAACC,SAAN,CAAgB;IACZ,IAAI,CAACqB,iBAAD,IAAsBC,UAA1B,EAAsC;MAClCA,UAAU,CAACC,KAAK,CAACC,SAAP,EAAkBD,KAAK,CAACE,QAAxB,CAAV;;GAFR,EAIG,CAACF,KAAK,CAACC,SAAP,EAAkBD,KAAK,CAACE,QAAxB,CAJH;AAKH,CAND;;AAQA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAC5BC,IAD4B,EAE5BC,UAF4B,EAG5BC,MAH4B,EAI5BC,aAJ4B,EAK5BP,KAL4B;EAO5BxB,cAAK,CAACC,SAAN,CAAgB;IACZ,IAAI6B,MAAJ,EAAY;MACR,IAAME,SAAS,GAAGR,KAAK,CAACS,MAAN,CAAaC,GAAb,CAAiB,UAACC,IAAD;QAAA,OAAgB;UAAEC,QAAQ,EAAED,IAAI,CAACE,EAAjB;UAAqBC,IAAI,EAAEH,IAAI,CAACG;SAAhD;OAAjB,CAAlB;;MAEA,IAAIP,aAAJ,EAAmB;QACfD,MAAM,CAACE,SAAD,CAAN;OADJ,MAEO;QACH,IAAIO,UAAJ;;QAEA,IAAIP,SAAS,CAAC7B,MAAV,IAAoB0B,UAApB,aAAoBA,UAApB,eAAoBA,UAAU,CAAE1B,MAApC,EAA4C;UACxCoC,UAAU,GAAGV,UAAU,CAACK,GAAX,CAAe,UAACM,GAAD;YAAA,OAAcA,GAAG,CAACC,QAAlB;WAAf,CAAb;;;QAGJX,MAAM,CAACE,SAAD,EAAYO,UAAU,IAAIX,IAA1B,CAAN;;;GAbZ,EAgBG,CAACE,MAAM,IAAIY,IAAI,CAACC,SAAL,CAAenB,KAAK,CAACS,MAArB,CAAX,EAAyCF,aAAzC,CAhBH;AAiBH,CAxBD;;AA0BA,IAAMa,iBAAiB,GAAG,EAA1B;IAEaC,QAAQ,GAAG,SAAXA,QAAW,CACpBC,KADoB,EAEpBrC,GAFoB;;;MAKhBsC,QADJ,GAuCID,KAvCJ,CACIC,QADJ;MAEInB,IAFJ,GAuCIkB,KAvCJ,CAEIlB,IAFJ;MAIIoB,UAJJ,GAuCIF,KAvCJ,CAIIE,UAJJ;MAKIC,SALJ,GAuCIH,KAvCJ,CAKIG,SALJ;MAMIC,cANJ,GAuCIJ,KAvCJ,CAMII,cANJ;MAOIC,YAPJ,GAuCIL,KAvCJ,CAOIK,YAPJ;MAQIrD,oBARJ,GAuCIgD,KAvCJ,CAQIhD,oBARJ;MASIsD,SATJ,GAuCIN,KAvCJ,CASIM,SATJ;MAUIC,YAVJ,GAuCIP,KAvCJ,CAUIO,YAVJ;MAaIC,cAbJ,GAuCIR,KAvCJ,CAaIQ,cAbJ;MAcIvB,aAdJ,GAuCIe,KAvCJ,CAcIf,aAdJ;MAeID,MAfJ,GAuCIgB,KAvCJ,CAeIhB,MAfJ;MAgBIE,SAhBJ,GAuCIc,KAvCJ,CAgBId,SAhBJ;8BAuCIc,KAvCJ,CAmBIxB,iBAnBJ;MAmBIA,iBAnBJ,sCAmBwB,IAnBxB;MAoBInB,MApBJ,GAuCI2C,KAvCJ,CAoBI3C,MApBJ;MAqBIoB,UArBJ,GAuCIuB,KAvCJ,CAqBIvB,UArBJ;wBAuCIuB,KAvCJ,CAsBIpB,QAtBJ;MAsBIA,QAtBJ,gCAsBekB,iBAtBf;yBAuCIE,KAvCJ,CAuBIrB,SAvBJ;MAuBIA,SAvBJ,iCAuBgB,CAvBhB;8BAuCIqB,KAvCJ,CA0BIS,qBA1BJ;MA0BIA,qBA1BJ,sCA0B4BrD,SA1B5B;MA2BIsD,WA3BJ,GAuCIV,KAvCJ,CA2BIU,WA3BJ;MA8BIC,OA9BJ,GAuCIX,KAvCJ,CA8BIW,OA9BJ;MA+BIC,SA/BJ,GAuCIZ,KAvCJ,CA+BIY,SA/BJ;MAgCIC,SAhCJ,GAuCIb,KAvCJ,CAgCIa,SAhCJ;MAiCIC,WAjCJ,GAuCId,KAvCJ,CAiCIc,WAjCJ;MAkCIC,WAlCJ,GAuCIf,KAvCJ,CAkCIe,WAlCJ;wBAuCIf,KAvCJ,CAoCIgB,QApCJ;MAoCIA,QApCJ,gCAoCe,KApCf;MAsCOC,UAtCP,iCAuCIjB,KAvCJ;;EAyCA,IAAKI,cAAc,IAAI,CAACG,YAApB,IAAsC,CAACH,cAAD,IAAmBG,YAA7D,EAA4E;IACxE,MAAM,IAAIW,KAAJ,CACF,qJADE,CAAN;;;EAKJ,uBAAkBC,eAAe,EAAjC;MAAQC,KAAR,oBAAQA,KAAR;;EACA,qBAAiDlE,cAAK,CAACW,OAAN,CAC7C;IAAA,OAAMwD,sBAAsB,CAACpB,QAAD,EAAWjD,oBAAX,CAA5B;GAD6C,EAE7C,CAACiD,QAAD,EAAWjD,oBAAX,CAF6C,CAAjD;MAAQsE,OAAR,kBAAQA,OAAR;MAA4BC,gBAA5B,kBAAiBrC,SAAjB;;EAKA,IAAMsC,gBAAgB,GAAG,CAAChD,iBAAD,IAAsB,CAAC,CAACC,UAAxB,IAAsC,CAAC,CAACpB,MAAjE;;EAEA,qBAWSoE,UAAa,CAClB;IACIH,OAAO,EAAPA,OADJ;IAEIxC,IAAI,EAAJA,IAFJ;IAGI4C,YAAY,EAAE;;;MAGVvC,MAAM,EAAEwC,oBAAoB,CAACzC,SAAD,CAApB,IAAmCqC,gBAHjC;MAIV3C,QAAQ,EAAE,CAACJ,iBAAD,GAAqBI,QAArB,GAAgCxB,SAJhC;MAKVuB,SAAS,EAAE,CAACH,iBAAD,GAAqBG,SAArB,GAAiCvB;KARpD;IAUIoE,gBAAgB,EAAhBA,gBAVJ;IAWII,SAAS,EAAEJ,gBAAgB,IAAInE,MAApB,GAA6BwE,IAAI,CAACC,IAAL,CAAUzE,MAAM,GAAGuB,QAAnB,CAA7B,GAA4D,CAAC,CAX5E;IAYImD,YAAY,EAAE9C,aAZlB;IAaI+C,aAAa,EAAExB,cAbnB;;IAeIyB,iBAAiB,EAAE,KAfvB;IAgBIC,qBAAqB,EAAE,KAhB3B;IAiBIC,eAAe,EAAE,KAjBrB;IAkBIC,aAAa,EAAE,KAlBnB;IAmBIC,SAAS,EAAEnF,cAAK,CAACW,OAAN,CAAc;MAAA,OAAMwE,SAAN;KAAd,EAA+B,EAA/B,CAnBf;IAoBIC,kBAAkB,EAAE,4BAAAC,YAAY;MAC5B,OAAOrF,cAAK,CAACW,OAAN,CACH;QAAA,oBACO0E,YADP;UAEIC,cAAc,EAAEjC,YAAY,IAAI;;OAHjC,EAKH,CAACgC,YAAD,EAAehC,YAAf,CALG,CAAP;;GAtBU,EA+BlBkC,WA/BkB,EAgClBC,SAhCkB,EAiClBC,WAjCkB,EAkClBC,aAlCkB,EAmClBC,YAAY,CAACzC,cAAD,CAnCM,EAoClB0C,eAAe,CAAC3C,SAAD,CApCG,EAqClB4C,aAAa,CAACtC,qBAAD,CArCK,EAsClBuC,aAAa,CACTvC,qBADS,EAET;IAAEC,WAAW,EAAXA,WAAF;IAAeE,SAAS,EAATA,SAAf;IAA0BC,SAAS,EAATA,SAA1B;IAAqCC,WAAW,EAAXA;GAF5B,EAGTH,OAHS,EAIT3D,oBAJS,EAKToE,KALS,EAMTJ,QANS,CAtCK,CAXtB;MACIiC,YADJ,kBACIA,YADJ;MAEIlG,IAFJ,kBAEIA,IAFJ;MAGIgC,UAHJ,kBAGIA,UAHJ;MAIgBmE,cAJhB,kBAIIC,UAJJ;MAKIzE,KALJ,kBAKIA,KALJ;MAOI0E,IAPJ,kBAOIA,IAPJ;MAQIC,QARJ,kBAQIA,QARJ;MASIC,WATJ,kBASIA,WATJ;MAUO5F,QAVP;;EA2DAa,0BAA0B,CAACC,iBAAD,EAAoBC,UAApB,EAAgCC,KAAhC,CAA1B;EACAG,uBAAuB,CAACC,IAAD,EAAOC,UAAP,EAAmBC,MAAnB,EAA2B,CAAC,CAACC,aAA7B,EAA4CP,KAA5C,CAAvB;EAEA,IAAMd,iBAAiB,GAAGH,gBAAgB,CAACC,QAAD,EAAWC,GAAX,CAA1C;EAEA,IAAM4F,WAAW,GAAG,CAAC/E,iBAAD,IAAsB,CAACgD,gBAAvB,GAA0C4B,IAA1C,GAAiDrG,IAArE;;EAEA,4BAAkEyG,0BAA0B,CACxFxD,KADwF,EAExFuD,WAFwF,EAGxF;IAAErD,UAAU,EAAVA,UAAF;IAAcQ,WAAW,EAAXA,WAAd;IAA2BE,SAAS,EAATA,SAA3B;IAAsCC,SAAS,EAATA,SAAtC;IAAiDC,WAAW,EAAXA,WAAjD;IAA8D9D,oBAAoB,EAApBA;GAH0B,EAIxFW,GAJwF,CAA5F;MAAOb,WAAP;MAAoB2G,cAApB;MAAoCC,aAApC;MAAmDC,WAAnD;;EAOA9G,iBAAiB,CAACC,WAAD,EAAcC,IAAd,EAAoBC,oBAApB,EAA0C+D,WAA1C,CAAjB;EAEA,IAAMoC,UAAU,GAAGjG,cAAK,CAAC0G,WAAN,CACf,UAAClE,GAAD,EAAWmE,KAAX;IACIX,cAAc,CAACxD,GAAD,CAAd;;IACAA,GAAG,CAACoE,SAAJ,GAAgB;MAAA,OAAML,cAAc,CAACI,KAAD,CAApB;KAAhB;GAHW,EAKf,CAACX,cAAD,EAAiBO,cAAjB,CALe,CAAnB;EAQA,OAAO;IACHM,QAAQ,EAAE;MACNjH,WAAW,EAAXA,WADM;MAEN2G,cAAc,EAAdA,cAFM;MAGNvD,UAAU,EAAVA,UAHM;MAING,YAAY,EAAZA,YAJM;MAKNrD,oBAAoB,EAApBA,oBALM;MAMNsD,SAAS,EAATA,SANM;MAONG,qBAAqB,EAArBA;KARD;IAUHuD,UAAU,eACH/C,UADG;MAENgC,YAAY,EAAZA,YAFM;MAGNgB,OAAO,EAAEN,WAHH;MAINO,SAAS,EAAER,aAJL;MAKNS,QAAQ,0BAAElD,UAAU,CAACkD,QAAb,uEAAyB;MAflC;IAiBHzF,KAAK,EAALA,KAjBG;IAkBH0F,UAAU,EAAE,CAAC5F,iBAAD,GACN;MACInB,MAAM,EAAEmE,gBAAgB,IAAInE,MAApB,GAA6BA,MAA7B,GAAsCyB,IAAI,CAACzB,MADvD;MAEIsB,SAAS,EAAED,KAAK,CAACC,SAFrB;MAGIC,QAAQ,EAAEF,KAAK,CAACE,QAHpB;MAIIyF,YAAY,EAAEhB,QAJlB;MAKIC,WAAW,EAAEA;KANX,GAQN,IA1BH;IA2BHvG,IAAI,EAAEwG,WA3BH;IA4BHJ,UAAU,EAAVA,UA5BG;IA6BHzF,QAAQ,EAAEE;GA7Bd;AA+BH;;;;"}
@@ -2,13 +2,18 @@ import React__default from 'react';
2
2
  import keycode from 'keycode';
3
3
  import { getNextIndexFromKeycode } from '../../../utils/hooks/useListKeyboardNavigation.js';
4
4
  import { sanitizeRowProps } from '../util.js';
5
+ import { useControllableState } from '@radix-ui/react-use-controllable-state';
5
6
 
6
7
  var useTableKeyboardNavigation = function useTableKeyboardNavigation(props, rows, rowProps, ref) {
7
8
  var useGlobalKeyboardNavigation = props.dangerouslyHijackGlobalKeyboardNavigation;
8
9
 
9
- var _React$useState = React__default.useState(useGlobalKeyboardNavigation ? 0 : undefined),
10
- activeIndex = _React$useState[0],
11
- setActiveIndex = _React$useState[1];
10
+ var _useControllableState = useControllableState({
11
+ prop: props.activeIndex,
12
+ defaultProp: props.defaultActiveIndex !== undefined ? props.defaultActiveIndex : useGlobalKeyboardNavigation ? 0 : undefined,
13
+ onChange: props.onChangeActiveIndex
14
+ }),
15
+ activeIndex = _useControllableState[0],
16
+ setActiveIndex = _useControllableState[1];
12
17
 
13
18
  var onKeyDown = function onKeyDown(event) {
14
19
  var _document$activeEleme;