@economic/taco 1.1.12 → 1.2.0

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 (364) hide show
  1. package/README.md +82 -82
  2. package/dist/components/Group/Group.d.ts +11 -1
  3. package/dist/components/Toast/Toast.d.ts +2 -2
  4. package/dist/components/Toast/Toaster.d.ts +2 -2
  5. package/dist/esm/components/Accordion/Accordion.js +31 -34
  6. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  7. package/dist/esm/components/Backdrop/Backdrop.js +2 -2
  8. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  9. package/dist/esm/components/Badge/Badge.js +14 -14
  10. package/dist/esm/components/Badge/Badge.js.map +1 -1
  11. package/dist/esm/components/Banner/Banner.js +7 -5
  12. package/dist/esm/components/Banner/Banner.js.map +1 -1
  13. package/dist/esm/components/Banner/util.js.map +1 -1
  14. package/dist/esm/components/Button/Button.js +12 -13
  15. package/dist/esm/components/Button/Button.js.map +1 -1
  16. package/dist/esm/components/Button/util.js.map +1 -1
  17. package/dist/esm/components/Calendar/Calendar.js +56 -71
  18. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  19. package/dist/esm/components/Card/Card.js +13 -12
  20. package/dist/esm/components/Card/Card.js.map +1 -1
  21. package/dist/esm/components/Checkbox/Checkbox.js +15 -18
  22. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  23. package/dist/esm/components/Combobox/Combobox.js +23 -25
  24. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  25. package/dist/esm/components/Combobox/useCombobox.js +12 -13
  26. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  27. package/dist/esm/components/Datepicker/Datepicker.js +48 -52
  28. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  29. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  30. package/dist/esm/components/Dialog/Context.js.map +1 -1
  31. package/dist/esm/components/Dialog/Dialog.js +39 -58
  32. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  33. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  34. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  35. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  36. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  37. package/dist/esm/components/Field/Field.js +10 -12
  38. package/dist/esm/components/Field/Field.js.map +1 -1
  39. package/dist/esm/components/Form/Form.js +6 -8
  40. package/dist/esm/components/Form/Form.js.map +1 -1
  41. package/dist/esm/components/Group/Group.js +4 -1
  42. package/dist/esm/components/Group/Group.js.map +1 -1
  43. package/dist/esm/components/Hanger/Hanger.js +27 -35
  44. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  45. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  46. package/dist/esm/components/Icon/Icon.js.map +1 -1
  47. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  48. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  49. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  50. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  51. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  52. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  53. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  54. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  55. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  56. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  57. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  58. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  59. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  60. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  61. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  62. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  63. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  64. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  65. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  66. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  67. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  68. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  69. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  70. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  71. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  72. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  73. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  74. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  75. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  76. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  77. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  78. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  79. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  80. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  81. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  82. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  83. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  84. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  85. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -1
  86. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -1
  87. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -1
  88. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -1
  89. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  90. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  91. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  92. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  93. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  94. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  95. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  96. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  97. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  98. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  99. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  100. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  101. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  102. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  103. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  104. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  105. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  106. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  107. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  108. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  109. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  110. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  111. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  112. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  113. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  114. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  115. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  116. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  117. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  118. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  119. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  120. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  121. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  122. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  123. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  124. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  125. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  126. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  127. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  128. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  129. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  130. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  131. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  132. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  133. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  134. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  135. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  136. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  137. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  138. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  139. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  140. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  141. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  142. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  143. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  144. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  145. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  146. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  147. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  148. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  149. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  150. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  151. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  152. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  153. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  154. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  155. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  156. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  157. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  158. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  159. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  160. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  161. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  162. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  163. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  164. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  165. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  166. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  167. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  168. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  169. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  170. package/dist/esm/components/Icon/components/List.js.map +1 -1
  171. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  172. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  173. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  174. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  175. package/dist/esm/components/Icon/components/LogOut.js.map +1 -1
  176. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  177. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  178. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  179. package/dist/esm/components/Icon/components/Menu.js.map +1 -1
  180. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  181. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  182. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  183. package/dist/esm/components/Icon/components/More.js.map +1 -1
  184. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  185. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  186. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  187. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  188. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  189. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  190. package/dist/esm/components/Icon/components/Numbers.js.map +1 -1
  191. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  192. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  193. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  194. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  195. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  196. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  197. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  198. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  199. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  200. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  201. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  202. package/dist/esm/components/Icon/components/Profile.js.map +1 -1
  203. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  204. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  205. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  206. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  207. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  208. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  209. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  210. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  211. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  212. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  213. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  214. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  216. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  217. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  218. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  219. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  220. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  221. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  222. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  223. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  224. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  225. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  226. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  227. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  229. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  230. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  231. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  232. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  233. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  234. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  235. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  236. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  237. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  238. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  239. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  240. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  241. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  242. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  243. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  244. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  245. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  246. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  247. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  248. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  249. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  250. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  251. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  252. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  253. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  254. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  255. package/dist/esm/components/Icon/components/index.js.map +1 -1
  256. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  257. package/dist/esm/components/Input/Input.js.map +1 -1
  258. package/dist/esm/components/Input/util.js.map +1 -1
  259. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  260. package/dist/esm/components/Listbox/ScrollableList.js +2 -2
  261. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  262. package/dist/esm/components/Listbox/useListbox.js +3 -2
  263. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  264. package/dist/esm/components/Listbox/useMultiListbox.js +6 -6
  265. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  266. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  267. package/dist/esm/components/Listbox/util.js.map +1 -1
  268. package/dist/esm/components/Menu/Context.js.map +1 -1
  269. package/dist/esm/components/Menu/Menu.js.map +1 -1
  270. package/dist/esm/components/Menu/components/Checkbox.js +1 -1
  271. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  272. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  273. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  274. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  275. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  276. package/dist/esm/components/Menu/components/RadioGroup.js +1 -1
  277. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  278. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  279. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  280. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  281. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  282. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  283. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  284. package/dist/esm/components/Pagination/usePaginationShortcuts.js +4 -5
  285. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  286. package/dist/esm/components/Popover/Popover.js.map +1 -1
  287. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  288. package/dist/esm/components/Progress/Progress.js.map +1 -1
  289. package/dist/esm/components/Provider/Provider.js.map +1 -1
  290. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  291. package/dist/esm/components/SearchInput/SearchInput.js +2 -3
  292. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  293. package/dist/esm/components/Select/Select.js.map +1 -1
  294. package/dist/esm/components/Select/useSelect.js +6 -7
  295. package/dist/esm/components/Select/useSelect.js.map +1 -1
  296. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  297. package/dist/esm/components/Switch/Switch.js.map +1 -1
  298. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  299. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  300. package/dist/esm/components/Table/components/Table.js.map +1 -1
  301. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  302. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +1 -2
  303. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  304. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  305. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  306. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  307. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  308. package/dist/esm/components/Table/hooks/useTable.js +5 -1
  309. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  310. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +11 -12
  311. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  312. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  313. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  314. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  315. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  316. package/dist/esm/components/Table/util.js.map +1 -1
  317. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  318. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  319. package/dist/esm/components/Toast/Toast.js +7 -2
  320. package/dist/esm/components/Toast/Toast.js.map +1 -1
  321. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  322. package/dist/esm/components/Toast/util.js.map +1 -1
  323. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  324. package/dist/esm/components/Tour/Tour.js +1 -2
  325. package/dist/esm/components/Tour/Tour.js.map +1 -1
  326. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  327. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  328. package/dist/esm/index.css +653 -661
  329. package/dist/esm/index.js +2 -2
  330. package/dist/esm/primitives/Button.js.map +1 -1
  331. package/dist/esm/utils/date.js +20 -40
  332. package/dist/esm/utils/date.js.map +1 -1
  333. package/dist/esm/utils/hooks/useBoundingClientRectListener.js +12 -20
  334. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  335. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  336. package/dist/esm/utils/hooks/useDropTarget.js +7 -10
  337. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  338. package/dist/esm/utils/hooks/useListKeyboardNavigation.js +15 -30
  339. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  340. package/dist/esm/utils/hooks/useListScrollTo.js +9 -9
  341. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  342. package/dist/esm/utils/hooks/useOnClickOutside.js +6 -8
  343. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  344. package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
  345. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  346. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  347. package/dist/esm/utils/input.js +1 -1
  348. package/dist/esm/utils/input.js.map +1 -1
  349. package/dist/esm/utils/mergeRefs.js +2 -2
  350. package/dist/esm/utils/mergeRefs.js.map +1 -1
  351. package/dist/esm/utils/taillwind.js.map +1 -1
  352. package/dist/index.css +653 -661
  353. package/dist/taco.cjs.development.js +479 -590
  354. package/dist/taco.cjs.development.js.map +1 -1
  355. package/dist/taco.cjs.production.min.js +1 -1
  356. package/dist/taco.cjs.production.min.js.map +1 -1
  357. package/dist/utils/hooks/useListKeyboardNavigation.d.ts +1 -1
  358. package/dist/utils/tailwind.d.ts +1 -1
  359. package/package.json +5 -5
  360. package/plugins/tailwindcss-aria-attributes.js +73 -73
  361. package/tailwind.config.js +264 -264
  362. package/types.json +10 -3
  363. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +0 -34
  364. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.js","sources":["../../../../../src/components/Table/components/BaseTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { HeaderGroup } from 'react-table';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { InternalBaseTable } from '../types';\r\nimport './Table.css';\r\nimport { Column } from '../util/renderColumn';\r\n\r\nexport const DefaultEmptyState = (): React.ReactNode => null;\r\n\r\nexport const BaseTable = React.forwardRef(function BaseTable(props: InternalBaseTable, ref: React.Ref<HTMLDivElement>) {\r\n const tableRef = useProxiedRef<HTMLDivElement>(ref);\r\n const { autoFocus, children, disableSorting: _, headerGroups, headerRef, bodyRef, ...otherProps } = props;\r\n\r\n React.useEffect(() => {\r\n if (autoFocus && tableRef.current) {\r\n tableRef.current.focus();\r\n }\r\n }, []);\r\n\r\n const className = cn('yt-table flex flex-col focus:yt-focus focus:rounded-sm', props.className);\r\n\r\n return (\r\n <div {...otherProps} role=\"table\" className={className} ref={tableRef}>\r\n <div role=\"rowgroup\" className=\"yt-table__head\" ref={headerRef}>\r\n {headerGroups?.map((headerGroup: HeaderGroup<object>, index: number) => (\r\n <div\r\n key={index}\r\n role=\"row\"\r\n className=\"border-grey-light flex h-auto min-h-[2.5rem] w-full select-none border-t-0 border-b-2 font-bold\"\r\n >\r\n {headerGroup.headers.map((cell: any, index: number) => (\r\n <Column key={index} index={index} cell={cell} />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <div role=\"rowgroup\" className=\"yt-table__body\" ref={bodyRef}>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n});\r\n"],"names":["DefaultEmptyState","BaseTable","React","forwardRef","props","ref","tableRef","useProxiedRef","autoFocus","children","disableSorting","_","headerGroups","headerRef","bodyRef","otherProps","useEffect","current","focus","className","cn","role","map","headerGroup","index","key","headers","cell","Column"],"mappings":";;;;;MAQaA,iBAAiB,GAAG,MAAuB;MAE3CC,SAAS,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,SAAT,CAAmBG,KAAnB,EAA6CC,GAA7C;EACtC,MAAMC,QAAQ,GAAGC,aAAa,CAAiBF,GAAjB,CAA9B;EACA,MAAM;IAAEG,SAAF;IAAaC,QAAb;IAAuBC,cAAc,EAAEC,CAAvC;IAA0CC,YAA1C;IAAwDC,SAAxD;IAAmEC,OAAnE;IAA4E,GAAGC;MAAeX,KAApG;EAEAF,cAAK,CAACc,SAAN,CAAgB;IACZ,IAAIR,SAAS,IAAIF,QAAQ,CAACW,OAA1B,EAAmC;MAC/BX,QAAQ,CAACW,OAAT,CAAiBC,KAAjB;;GAFR,EAIG,EAJH;EAMA,MAAMC,SAAS,GAAGC,EAAE,CAAC,wDAAD,EAA2DhB,KAAK,CAACe,SAAjE,CAApB;EAEA,OACIjB,4BAAA,MAAA,oBAASa;IAAYM,IAAI,EAAC;IAAQF,SAAS,EAAEA;IAAWd,GAAG,EAAEC;IAA7D,EACIJ,4BAAA,MAAA;IAAKmB,IAAI,EAAC;IAAWF,SAAS,EAAC;IAAiBd,GAAG,EAAEQ;GAArD,EACKD,YADL,aACKA,YADL,uBACKA,YAAY,CAAEU,GAAd,CAAkB,CAACC,WAAD,EAAmCC,KAAnC,KACftB,4BAAA,MAAA;IACIuB,GAAG,EAAED;IACLH,IAAI,EAAC;IACLF,SAAS,EAAC;GAHd,EAKKI,WAAW,CAACG,OAAZ,CAAoBJ,GAApB,CAAwB,CAACK,IAAD,EAAYH,KAAZ,KACrBtB,4BAAA,CAAC0B,MAAD;IAAQH,GAAG,EAAED;IAAOA,KAAK,EAAEA;IAAOG,IAAI,EAAEA;GAAxC,CADH,CALL,CADH,CADL,CADJ,EAeIzB,4BAAA,MAAA;IAAKmB,IAAI,EAAC;IAAWF,SAAS,EAAC;IAAiBd,GAAG,EAAES;GAArD,EACKL,QADL,CAfJ,CADJ;AAqBH,CAjCwB;;;;"}
1
+ {"version":3,"file":"BaseTable.js","sources":["../../../../../src/components/Table/components/BaseTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { HeaderGroup } from 'react-table';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { InternalBaseTable } from '../types';\nimport './Table.css';\nimport { Column } from '../util/renderColumn';\n\nexport const DefaultEmptyState = (): React.ReactNode => null;\n\nexport const BaseTable = React.forwardRef(function BaseTable(props: InternalBaseTable, ref: React.Ref<HTMLDivElement>) {\n const tableRef = useProxiedRef<HTMLDivElement>(ref);\n const { autoFocus, children, disableSorting: _, headerGroups, headerRef, bodyRef, ...otherProps } = props;\n\n React.useEffect(() => {\n if (autoFocus && tableRef.current) {\n tableRef.current.focus();\n }\n }, []);\n\n const className = cn('yt-table flex flex-col focus:yt-focus focus:rounded-sm', props.className);\n\n return (\n <div {...otherProps} role=\"table\" className={className} ref={tableRef}>\n <div role=\"rowgroup\" className=\"yt-table__head\" ref={headerRef}>\n {headerGroups?.map((headerGroup: HeaderGroup<object>, index: number) => (\n <div\n key={index}\n role=\"row\"\n className=\"border-grey-light flex h-auto min-h-[2.5rem] w-full select-none border-t-0 border-b-2 font-bold\"\n >\n {headerGroup.headers.map((cell: any, index: number) => (\n <Column key={index} index={index} cell={cell} />\n ))}\n </div>\n ))}\n </div>\n\n <div role=\"rowgroup\" className=\"yt-table__body\" ref={bodyRef}>\n {children}\n </div>\n </div>\n );\n});\n"],"names":["DefaultEmptyState","BaseTable","React","forwardRef","props","ref","tableRef","useProxiedRef","autoFocus","children","disableSorting","_","headerGroups","headerRef","bodyRef","otherProps","useEffect","current","focus","className","cn","role","map","headerGroup","index","key","headers","cell","Column"],"mappings":";;;;;MAQaA,iBAAiB,GAAG,MAAuB;MAE3CC,SAAS,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,SAAT,CAAmBG,KAAnB,EAA6CC,GAA7C;EACtC,MAAMC,QAAQ,GAAGC,aAAa,CAAiBF,GAAjB,CAA9B;EACA,MAAM;IAAEG,SAAF;IAAaC,QAAb;IAAuBC,cAAc,EAAEC,CAAvC;IAA0CC,YAA1C;IAAwDC,SAAxD;IAAmEC,OAAnE;IAA4E,GAAGC;MAAeX,KAApG;EAEAF,cAAK,CAACc,SAAN,CAAgB;IACZ,IAAIR,SAAS,IAAIF,QAAQ,CAACW,OAA1B,EAAmC;MAC/BX,QAAQ,CAACW,OAAT,CAAiBC,KAAjB;;GAFR,EAIG,EAJH;EAMA,MAAMC,SAAS,GAAGC,EAAE,CAAC,wDAAD,EAA2DhB,KAAK,CAACe,SAAjE,CAApB;EAEA,OACIjB,4BAAA,MAAA,oBAASa;IAAYM,IAAI,EAAC;IAAQF,SAAS,EAAEA;IAAWd,GAAG,EAAEC;IAA7D,EACIJ,4BAAA,MAAA;IAAKmB,IAAI,EAAC;IAAWF,SAAS,EAAC;IAAiBd,GAAG,EAAEQ;GAArD,EACKD,YADL,aACKA,YADL,uBACKA,YAAY,CAAEU,GAAd,CAAkB,CAACC,WAAD,EAAmCC,KAAnC,KACftB,4BAAA,MAAA;IACIuB,GAAG,EAAED;IACLH,IAAI,EAAC;IACLF,SAAS,EAAC;GAHd,EAKKI,WAAW,CAACG,OAAZ,CAAoBJ,GAApB,CAAwB,CAACK,IAAD,EAAYH,KAAZ,KACrBtB,4BAAA,CAAC0B,MAAD;IAAQH,GAAG,EAAED;IAAOA,KAAK,EAAEA;IAAOG,IAAI,EAAEA;GAAxC,CADH,CALL,CADH,CADL,CADJ,EAeIzB,4BAAA,MAAA;IAAKmB,IAAI,EAAC;IAAWF,SAAS,EAAC;IAAiBd,GAAG,EAAES;GAArD,EACKL,QADL,CAfJ,CADJ;AAqBH,CAjCwB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedTable.js","sources":["../../../../../src/components/Table/components/PaginatedTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport { ForwardedGenericTableWithStatics, TableProps, TableRef } from '../types';\r\nimport { Table } from './Table';\r\n\r\nexport const PaginatedTable = React.forwardRef(function PaginatedTable<T>(props: TableProps<T>, ref: React.Ref<TableRef>) {\r\n return <Table {...props} disablePagination={false} ref={ref} />;\r\n}) as ForwardedGenericTableWithStatics;\r\n\r\nPaginatedTable.Column = () => null;\r\nPaginatedTable.Group = () => null;\r\n"],"names":["PaginatedTable","React","forwardRef","props","ref","Table","disablePagination","Column","Group"],"mappings":";;;MAIaA,cAAc,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,cAAT,CAA2BG,KAA3B,EAAiDC,GAAjD;EAC3C,OAAOH,4BAAA,CAACI,KAAD,oBAAWF;IAAOG,iBAAiB,EAAE;IAAOF,GAAG,EAAEA;IAAjD,CAAP;AACH,CAF6B;;AAI9BJ,cAAc,CAACO,MAAf,GAAwB,MAAM,IAA9B;;AACAP,cAAc,CAACQ,KAAf,GAAuB,MAAM,IAA7B;;;;"}
1
+ {"version":3,"file":"PaginatedTable.js","sources":["../../../../../src/components/Table/components/PaginatedTable.tsx"],"sourcesContent":["import React from 'react';\nimport { ForwardedGenericTableWithStatics, TableProps, TableRef } from '../types';\nimport { Table } from './Table';\n\nexport const PaginatedTable = React.forwardRef(function PaginatedTable<T>(props: TableProps<T>, ref: React.Ref<TableRef>) {\n return <Table {...props} disablePagination={false} ref={ref} />;\n}) as ForwardedGenericTableWithStatics;\n\nPaginatedTable.Column = () => null;\nPaginatedTable.Group = () => null;\n"],"names":["PaginatedTable","React","forwardRef","props","ref","Table","disablePagination","Column","Group"],"mappings":";;;MAIaA,cAAc,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,cAAT,CAA2BG,KAA3B,EAAiDC,GAAjD;EAC3C,OAAOH,4BAAA,CAACI,KAAD,oBAAWF;IAAOG,iBAAiB,EAAE;IAAOF,GAAG,EAAEA;IAAjD,CAAP;AACH,CAF6B;;AAI9BJ,cAAc,CAACO,MAAf,GAAwB,MAAM,IAA9B;;AACAP,cAAc,CAACQ,KAAf,GAAuB,MAAM,IAA7B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PluginHook } from 'react-table';\r\nimport { TableProps, InternalTableRow, ForwardedGenericTableWithStatics, TableRef } from '../types';\r\nimport { useTable } from '../hooks/useTable';\r\nimport { Pagination } from '../../Pagination/Pagination';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { Row } from '../util/renderRow';\r\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\r\n\r\nexport const Table = React.forwardRef(function Table<T>(\r\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\r\n ref: React.Ref<TableRef>\r\n) {\r\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\r\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\r\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\r\n\r\n let paginationElement;\r\n\r\n if (pagination) {\r\n paginationElement = (\r\n <Pagination\r\n className=\"my-4 w-full\"\r\n length={pagination.length}\r\n pageIndex={pagination.pageIndex}\r\n pageSize={pagination.pageSize}\r\n setPageIndex={pagination.setPageIndex}\r\n setPageSize={pagination.setPageSize}\r\n showPageControls={pagination.length > pagination.pageSize}\r\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {paginationElement}\r\n <BaseTable {...tableProps} ref={tableRef}>\r\n {rows.length\r\n ? rows.map((row: InternalTableRow, index: number) => {\r\n prepareRow(row, index);\r\n return (\r\n <Row\r\n {...rowProps}\r\n key={index}\r\n index={index}\r\n row={row}\r\n instance={instance}\r\n headerGroups={tableProps.headerGroups}\r\n />\r\n );\r\n })\r\n : emptyStateRenderer()}\r\n </BaseTable>\r\n {paginationElement}\r\n </>\r\n );\r\n}) as ForwardedGenericTableWithStatics;\r\n\r\nTable.Column = () => null;\r\nTable.Group = () => null;\r\n"],"names":["Table","React","forwardRef","props","ref","emptyStateRenderer","DefaultEmptyState","otherProps","tableRef","useProxiedRef","rowProps","tableProps","rows","prepareRow","pagination","instance","useTable","paginationElement","Pagination","className","length","pageIndex","pageSize","setPageIndex","setPageSize","showPageControls","dangerouslyHijackGlobalKeyboardNavigation","BaseTable","map","row","index","Row","key","headerGroups","Column","Group"],"mappings":";;;;;;;MASaA,KAAK,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,KAAT,CAClCG,KADkC,EAElCC,GAFkC;EAIlC,MAAM;IAAEC,kBAAkB,GAAGC,iBAAvB;IAA0C,GAAGC;MAAeJ,KAAlE;EACA,MAAMK,QAAQ,GAAQC,aAAa,CAAiBL,GAAjB,CAAnC;EACA,MAAM;IAAEM,QAAF;IAAYC,UAAZ;IAAwBC,IAAxB;IAA8BC,UAA9B;IAA0CC,UAA1C;IAAsDC;MAAaC,QAAQ,CAACT,UAAD,EAAaC,QAAb,CAAjF;EAEA,IAAIS,iBAAJ;;EAEA,IAAIH,UAAJ,EAAgB;IACZG,iBAAiB,GACbhB,4BAAA,CAACiB,UAAD;MACIC,SAAS,EAAC;MACVC,MAAM,EAAEN,UAAU,CAACM;MACnBC,SAAS,EAAEP,UAAU,CAACO;MACtBC,QAAQ,EAAER,UAAU,CAACQ;MACrBC,YAAY,EAAET,UAAU,CAACS;MACzBC,WAAW,EAAEV,UAAU,CAACU;MACxBC,gBAAgB,EAAEX,UAAU,CAACM,MAAX,GAAoBN,UAAU,CAACQ;MACjDI,yCAAyC,EAAEvB,KAAK,CAACuB;KARrD,CADJ;;;EAcJ,OACIzB,4BAAA,wBAAA,MAAA,EACKgB,iBADL,EAEIhB,4BAAA,CAAC0B,SAAD,oBAAehB;IAAYP,GAAG,EAAEI;IAAhC,EACKI,IAAI,CAACQ,MAAL,GACKR,IAAI,CAACgB,GAAL,CAAS,CAACC,GAAD,EAAwBC,KAAxB;IACLjB,UAAU,CAACgB,GAAD,EAAMC,KAAN,CAAV;IACA,OACI7B,4BAAA,CAAC8B,GAAD,oBACQrB;MACJsB,GAAG,EAAEF;MACLA,KAAK,EAAEA;MACPD,GAAG,EAAEA;MACLd,QAAQ,EAAEA;MACVkB,YAAY,EAAEtB,UAAU,CAACsB;MAN7B,CADJ;GAFJ,CADL,GAcK5B,kBAAkB,EAf5B,CAFJ,EAmBKY,iBAnBL,CADJ;AAuBH,CAhDoB;;AAkDrBjB,KAAK,CAACkC,MAAN,GAAe,MAAM,IAArB;;AACAlC,KAAK,CAACmC,KAAN,GAAc,MAAM,IAApB;;;;"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../src/components/Table/components/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { TableProps, InternalTableRow, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { Pagination } from '../../Pagination/Pagination';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\n\nexport const Table = React.forwardRef(function Table<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const { emptyStateRenderer = DefaultEmptyState, ...otherProps } = props;\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\n const { rowProps, tableProps, rows, prepareRow, pagination, instance } = useTable(otherProps, tableRef);\n\n let paginationElement;\n\n if (pagination) {\n paginationElement = (\n <Pagination\n className=\"my-4 w-full\"\n length={pagination.length}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n setPageIndex={pagination.setPageIndex}\n setPageSize={pagination.setPageSize}\n showPageControls={pagination.length > pagination.pageSize}\n dangerouslyHijackGlobalKeyboardNavigation={props.dangerouslyHijackGlobalKeyboardNavigation}\n />\n );\n }\n\n return (\n <>\n {paginationElement}\n <BaseTable {...tableProps} ref={tableRef}>\n {rows.length\n ? rows.map((row: InternalTableRow, index: number) => {\n prepareRow(row, index);\n return (\n <Row\n {...rowProps}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n />\n );\n })\n : emptyStateRenderer()}\n </BaseTable>\n {paginationElement}\n </>\n );\n}) as ForwardedGenericTableWithStatics;\n\nTable.Column = () => null;\nTable.Group = () => null;\n"],"names":["Table","React","forwardRef","props","ref","emptyStateRenderer","DefaultEmptyState","otherProps","tableRef","useProxiedRef","rowProps","tableProps","rows","prepareRow","pagination","instance","useTable","paginationElement","Pagination","className","length","pageIndex","pageSize","setPageIndex","setPageSize","showPageControls","dangerouslyHijackGlobalKeyboardNavigation","BaseTable","map","row","index","Row","key","headerGroups","Column","Group"],"mappings":";;;;;;;MASaA,KAAK,gBAAGC,cAAK,CAACC,UAAN,CAAiB,SAASF,KAAT,CAClCG,KADkC,EAElCC,GAFkC;EAIlC,MAAM;IAAEC,kBAAkB,GAAGC,iBAAvB;IAA0C,GAAGC;MAAeJ,KAAlE;EACA,MAAMK,QAAQ,GAAQC,aAAa,CAAiBL,GAAjB,CAAnC;EACA,MAAM;IAAEM,QAAF;IAAYC,UAAZ;IAAwBC,IAAxB;IAA8BC,UAA9B;IAA0CC,UAA1C;IAAsDC;MAAaC,QAAQ,CAACT,UAAD,EAAaC,QAAb,CAAjF;EAEA,IAAIS,iBAAJ;;EAEA,IAAIH,UAAJ,EAAgB;IACZG,iBAAiB,GACbhB,4BAAA,CAACiB,UAAD;MACIC,SAAS,EAAC;MACVC,MAAM,EAAEN,UAAU,CAACM;MACnBC,SAAS,EAAEP,UAAU,CAACO;MACtBC,QAAQ,EAAER,UAAU,CAACQ;MACrBC,YAAY,EAAET,UAAU,CAACS;MACzBC,WAAW,EAAEV,UAAU,CAACU;MACxBC,gBAAgB,EAAEX,UAAU,CAACM,MAAX,GAAoBN,UAAU,CAACQ;MACjDI,yCAAyC,EAAEvB,KAAK,CAACuB;KARrD,CADJ;;;EAcJ,OACIzB,4BAAA,wBAAA,MAAA,EACKgB,iBADL,EAEIhB,4BAAA,CAAC0B,SAAD,oBAAehB;IAAYP,GAAG,EAAEI;IAAhC,EACKI,IAAI,CAACQ,MAAL,GACKR,IAAI,CAACgB,GAAL,CAAS,CAACC,GAAD,EAAwBC,KAAxB;IACLjB,UAAU,CAACgB,GAAD,EAAMC,KAAN,CAAV;IACA,OACI7B,4BAAA,CAAC8B,GAAD,oBACQrB;MACJsB,GAAG,EAAEF;MACLA,KAAK,EAAEA;MACPD,GAAG,EAAEA;MACLd,QAAQ,EAAEA;MACVkB,YAAY,EAAEtB,UAAU,CAACsB;MAN7B,CADJ;GAFJ,CADL,GAcK5B,kBAAkB,EAf5B,CAFJ,EAmBKY,iBAnBL,CADJ;AAuBH,CAhDoB;;AAkDrBjB,KAAK,CAACkC,MAAN,GAAe,MAAM,IAArB;;AACAlC,KAAK,CAACmC,KAAN,GAAc,MAAM,IAApB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"WindowedTable.js","sources":["../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { PluginHook } from 'react-table';\r\nimport { areEqual, VariableSizeList } from 'react-window';\r\nimport InfiniteLoader from 'react-window-infinite-loader';\r\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\r\nimport { useTable } from '../hooks/useTable';\r\nimport { useBoundingClientRectListener } from '../../../utils/hooks/useBoundingClientRectListener';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { Row } from '../util/renderRow';\r\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\r\nimport { useLocalization } from '../../Provider/Provider';\r\n\r\nconst ROW_HEIGHT = 40;\r\n\r\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\r\n const { texts } = useLocalization();\r\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\r\n const row = rows[index];\r\n const ref = React.useRef<HTMLDivElement>(null);\r\n\r\n React.useEffect(() => {\r\n if (ref?.current) {\r\n setRowHeight(index, ref.current.getBoundingClientRect().height);\r\n }\r\n }, [rowHeights[index]]);\r\n\r\n if (row) {\r\n prepareRow(row, index);\r\n\r\n return (\r\n <Row\r\n {...rowProps}\r\n style={style}\r\n key={index}\r\n index={index}\r\n row={row}\r\n instance={instance}\r\n headerGroups={tableProps.headerGroups}\r\n setRowHeight={setRowHeight}\r\n ref={ref}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"yt-table__row\" role=\"row\" style={style}>\r\n <div className=\"yt-table__cell text-grey-dark\">{texts.table.loading}</div>\r\n </div>\r\n );\r\n}, areEqual);\r\n\r\nconst getAverageRowHeight = (rowHeights = {}) => {\r\n const keys = Object.keys(rowHeights);\r\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\r\n return estimatedHeight / keys.length;\r\n};\r\n\r\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\r\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\r\n ref: React.Ref<TableRef>\r\n) {\r\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\r\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\r\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\r\n\r\n // determine heights for windowing calculations\r\n const headerRef = React.useRef<HTMLDivElement>(null);\r\n const [rowsRef, setRowsRef] = React.useState<any>(null);\r\n const tableDimensions = useBoundingClientRectListener(tableRef);\r\n const headerDimensions = useBoundingClientRectListener(headerRef);\r\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\r\n\r\n // variable row height calculations\r\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\r\n const rowHeights = React.useRef<Record<string, number>>({});\r\n const setRowHeight = React.useCallback((index: number, size: number) => {\r\n if (rowHeights.current[index] !== size) {\r\n rowHeights.current = {\r\n ...rowHeights.current,\r\n [index]: size,\r\n };\r\n\r\n if (rowsRef) {\r\n rowsRef.resetAfterIndex(0);\r\n }\r\n }\r\n }, []);\r\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\r\n\r\n React.useEffect(() => {\r\n if (rowsRef && rowProps.activeIndex !== undefined) {\r\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\r\n }\r\n }, [rowsRef, rowProps.activeIndex]);\r\n\r\n // trigger recalculation of variable row heights if the data changes\r\n React.useEffect(() => {\r\n rowHeights.current = {};\r\n\r\n if (rowsRef) {\r\n rowsRef.resetAfterIndex(0);\r\n }\r\n }, [rows.length]);\r\n\r\n const contentHeight = estimatedRowHeight * props.data.length || 0;\r\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\r\n\r\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\r\n\r\n let list;\r\n\r\n const itemData = {\r\n rows,\r\n setRowHeight,\r\n rowProps,\r\n tableProps,\r\n instance,\r\n prepareRow,\r\n state,\r\n rowHeights: rowHeights.current,\r\n };\r\n\r\n if (height && rows.length) {\r\n const listProps = {\r\n height,\r\n itemData,\r\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\r\n itemSize: getRowHeight,\r\n width: '100%',\r\n };\r\n\r\n if (loadMore && length) {\r\n const isLoaded = (index: number) => !!rows[index];\r\n\r\n list = (\r\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\r\n {({ onItemsRendered, ref }: any) => (\r\n <VariableSizeList\r\n {...listProps}\r\n itemCount={length}\r\n onItemsRendered={onItemsRendered}\r\n ref={list => {\r\n ref(list);\r\n setRowsRef(list);\r\n }}\r\n >\r\n {VariableRow}\r\n </VariableSizeList>\r\n )}\r\n </InfiniteLoader>\r\n );\r\n } else {\r\n list = (\r\n <VariableSizeList\r\n {...listProps}\r\n itemCount={rows.length}\r\n ref={ref => {\r\n setRowsRef(ref);\r\n }}\r\n >\r\n {VariableRow}\r\n </VariableSizeList>\r\n );\r\n }\r\n }\r\n\r\n return (\r\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\r\n {list ? list : emptyStateRenderer()}\r\n </BaseTable>\r\n );\r\n}) as ForwardedGenericTableWithStatics;\r\n\r\nWindowedTable.Column = () => null;\r\nWindowedTable.Group = () => null;\r\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","height","_","texts","useLocalization","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","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","state","useTable","windowed","headerRef","rowsRef","setRowsRef","useState","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","height","_","texts","useLocalization","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","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","state","useTable","windowed","headerRef","rowsRef","setRowsRef","useState","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,6 +1,5 @@
1
1
  import React__default from 'react';
2
2
  import { IconButton } from '../../../IconButton/IconButton.js';
3
- import keycode from 'keycode';
4
3
  import { Menu } from '../../../Menu/Menu.js';
5
4
  import { sanitizeRowProps } from '../../util.js';
6
5
  import { InView } from 'react-intersection-observer';
@@ -86,7 +85,7 @@ const EditModeActions = () => {
86
85
  const listener = event => {
87
86
  var _event$target, _event$target$form;
88
87
 
89
- if (event.keyCode === keycode('escape') && (_event$target = event.target) !== null && _event$target !== void 0 && (_event$target$form = _event$target.form) !== null && _event$target$form !== void 0 && _event$target$form.reset) {
88
+ if (event.key === 'Escape' && (_event$target = event.target) !== null && _event$target !== void 0 && (_event$target$form = _event$target.form) !== null && _event$target$form !== void 0 && _event$target$form.reset) {
90
89
  event.preventDefault();
91
90
  event.target.form.reset();
92
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PluginHook } from 'react-table';\r\nimport { InView } from 'react-intersection-observer';\r\nimport keycode from 'keycode';\r\nimport { sanitizeRowProps } from '../../util';\r\nimport { IconButton } from '../../../IconButton/IconButton';\r\nimport { LocalizationTexts } from '../../../Provider/Provider';\r\nimport { Menu } from '../../../Menu/Menu';\r\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\r\n\r\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\r\n\r\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\r\n return (\r\n !!actions ||\r\n handlers.onRowCreate ||\r\n handlers.onRowCopy ||\r\n handlers.onRowDelete ||\r\n !!inlineEditingUniqueId ||\r\n handlers.onRowEdit\r\n );\r\n};\r\n\r\nconst getActions = (\r\n actions: RowActionHandler<any>[] | undefined,\r\n row: TableRow<any> | undefined = undefined\r\n): [RowAction<any>[], RowAction<any>[]] => {\r\n const primary: RowAction<any>[] = [];\r\n const secondary: RowAction<any>[] = [];\r\n\r\n if (actions) {\r\n let visibleActions = actions.filter(x => !!x);\r\n\r\n if (row) {\r\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\r\n if (action.visible !== undefined) {\r\n if (typeof action.visible === 'function') {\r\n return action.visible(row);\r\n }\r\n\r\n return action.visible;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n visibleActions.forEach((action: RowAction<any>) => {\r\n if (action.showOnRow) {\r\n primary.push(action);\r\n } else {\r\n secondary.push(action);\r\n }\r\n });\r\n }\r\n\r\n return [primary, secondary];\r\n};\r\n\r\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\r\n const [primaryActions, secondaryActions] = getActions(actions);\r\n\r\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\r\n\r\n if (handlers.onRowCreate) {\r\n length++;\r\n }\r\n\r\n if (handlers.onRowCopy) {\r\n length++;\r\n }\r\n\r\n if (handlers.onRowDelete) {\r\n length++;\r\n }\r\n\r\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\r\n length++;\r\n\r\n if (length < 2) {\r\n length++;\r\n }\r\n }\r\n\r\n return length;\r\n};\r\n\r\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\r\n return {\r\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\r\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\r\n onClick: (event: React.MouseEvent<HTMLElement>) => {\r\n action.onClick(row, event);\r\n },\r\n };\r\n};\r\n\r\nconst EditModeActions = () => {\r\n React.useEffect(() => {\r\n const listener = (event: any) => {\r\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\r\n event.preventDefault();\r\n event.target.form.reset();\r\n }\r\n };\r\n\r\n document.addEventListener('keydown', listener);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', listener);\r\n };\r\n }, []);\r\n\r\n return (\r\n <div className={actionGroupClassName}>\r\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\r\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\r\n </div>\r\n );\r\n};\r\n\r\nexport const useRowActions = <T extends {}>(\r\n inlineEditingUniqueId: keyof T | undefined,\r\n handlers: any,\r\n actions: RowActionHandler<T>[] | undefined,\r\n rowExpansionRenderer: any,\r\n texts: LocalizationTexts,\r\n windowed = false\r\n): PluginHook<{}> => {\r\n const inlineEditing = !!inlineEditingUniqueId;\r\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\r\n\r\n const plugin = (hooks: any): void => {\r\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\r\n hooks.visibleColumns.push((columns: any) => [\r\n ...columns,\r\n {\r\n id: '_actions',\r\n className: 'flex justify-end px-1 overflow-visible',\r\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\r\n Cell: ({ row }: any) => {\r\n if (row.isEditing) {\r\n return <EditModeActions />;\r\n }\r\n\r\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\r\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\r\n\r\n const output = (\r\n <>\r\n {handlers.onRowCreate && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"circle-plus\"\r\n aria-label={texts.table.newSubRow}\r\n tooltip={texts.table.newSubRow}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n\r\n if (!row.isExpanded) {\r\n row.toggleRowExpanded();\r\n }\r\n\r\n handlers.onRowCreate(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {(inlineEditing || handlers.onRowEdit) && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"edit\"\r\n aria-label={texts.table.edit}\r\n tooltip={texts.table.edit}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n row.setActive();\r\n\r\n if (inlineEditing) {\r\n row.toggleRowEditing();\r\n } else if (handlers.onRowEdit) {\r\n event.persist();\r\n handlers.onRowEdit(sanitizedRow, event);\r\n }\r\n }}\r\n />\r\n )}\r\n {handlers.onRowCopy && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"copy\"\r\n aria-label={texts.table.copy}\r\n tooltip={texts.table.copy}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n handlers.onRowCopy(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {handlers.onRowDelete && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"delete\"\r\n aria-label={texts.table.del}\r\n tooltip={texts.table.del}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n handlers.onRowDelete(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {primaryActions.map((action: RowAction<T>, index: number) => (\r\n <IconButton\r\n {...getActionProps(action, sanitizedRow)}\r\n key={index}\r\n appearance=\"discrete\"\r\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\r\n tooltip={\r\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\r\n }\r\n />\r\n ))}\r\n {secondaryActions.length ? (\r\n <Menu>\r\n <Menu.Trigger>\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"ellipsis-vertical\"\r\n aria-label={texts.table.actions}\r\n tooltip={texts.table.actions}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n row.setActive();\r\n }}\r\n />\r\n </Menu.Trigger>\r\n <Menu.Content>\r\n {secondaryActions.map((action: RowAction<T>, index: number) => (\r\n <Menu.Item\r\n key={index}\r\n icon={\r\n typeof action.icon === 'function'\r\n ? action.icon(sanitizedRow)\r\n : action.icon\r\n }\r\n {...getActionProps(action, sanitizedRow)}\r\n >\r\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\r\n </Menu.Item>\r\n ))}\r\n </Menu.Content>\r\n </Menu>\r\n ) : null}\r\n </>\r\n );\r\n\r\n if (windowed) {\r\n return <div className={actionGroupClassName}>{output}</div>;\r\n }\r\n\r\n return (\r\n <InView rootMargin=\"100px 0px\">\r\n {({ inView, ref }) => (\r\n <div className={actionGroupClassName} ref={ref}>\r\n {inView ? output : null}\r\n </div>\r\n )}\r\n </InView>\r\n );\r\n },\r\n },\r\n ]);\r\n }\r\n };\r\n plugin.pluginName = 'useRowActions';\r\n return plugin;\r\n};\r\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 { 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.key === '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","key","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","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';\r\nimport { actions, PluginHook } from 'react-table';\r\nimport { Icon } from '../../../Icon/Icon';\r\nimport { RowDragHandler } from '../../types';\r\nimport { sanitizeRowProps } from '../../util';\r\n\r\nconst pluginName = 'useRowDraggable';\r\n\r\nactions.resetRowDragging = 'resetRowDragging';\r\nactions.toggleRowDragging = 'toggleRowDragging';\r\n\r\nfunction reducer(state: any, action: any): object {\r\n if (action.type === actions.init) {\r\n return {\r\n draggingRowIndexPath: null,\r\n ...state,\r\n };\r\n }\r\n\r\n if (action.type === actions.resetRowDragging) {\r\n return {\r\n ...state,\r\n draggingRowIndexPath: null,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleRowDragging) {\r\n const { indexPath } = action;\r\n return {\r\n ...state,\r\n draggingRowIndexPath: indexPath,\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst prepareRow = (row: any, { instance }: any): void => {\r\n row.toggleRowDragging = () => {\r\n if (instance.state.draggingRowIndexPath === row.id) {\r\n instance.dispatch({ type: actions.resetRowDragging });\r\n } else {\r\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\r\n }\r\n };\r\n\r\n if (instance.state.draggingRowIndexPath) {\r\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\r\n } else {\r\n row.isDragging = false;\r\n }\r\n};\r\n\r\nconst visibleColumns = (columns: any) => {\r\n return [\r\n {\r\n id: 'draggable',\r\n className: 'yt-table__cell--draggable flex-col px-0',\r\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\r\n flex: '0 0 20px',\r\n },\r\n ...columns,\r\n ];\r\n};\r\n\r\nconst getRowProps =\r\n (onRowDrag: RowDragHandler<any>) =>\r\n (props: any, { instance, row }: any) => {\r\n const onDragStart = (event: React.DragEvent): void => {\r\n event.persist();\r\n row.toggleRowDragging();\r\n\r\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\r\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\r\n\r\n const showPlaceholder = (placeholder: string) => {\r\n const element = window.document.createElement('div');\r\n element.id = 'yt-table__drag__placeholder';\r\n element.innerText = placeholder;\r\n window.document.body.appendChild(element);\r\n\r\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\r\n event.dataTransfer.setDragImage(element, 0, 20);\r\n }\r\n };\r\n\r\n onRowDrag(data, showPlaceholder, event);\r\n };\r\n\r\n const onDragEnd = (): void => {\r\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\r\n\r\n if (element && element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n\r\n row.toggleRowDragging();\r\n };\r\n\r\n return [\r\n props,\r\n {\r\n draggable: true,\r\n onDragStart,\r\n onDragEnd,\r\n },\r\n ];\r\n };\r\n\r\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\r\n const plugin = (hooks: any): void => {\r\n if (onRowDrag) {\r\n hooks.stateReducers.push(reducer);\r\n hooks.prepareRow.push(prepareRow);\r\n hooks.visibleColumns.push(visibleColumns);\r\n hooks.getRowProps.push(getRowProps(onRowDrag));\r\n }\r\n };\r\n plugin.pluginName = pluginName;\r\n\r\n return plugin;\r\n};\r\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';\r\nimport { actions, PluginHook } from 'react-table';\r\n\r\nconst pluginName = 'useRowEditing';\r\n\r\nactions.resetRowEditing = 'resetRowEditing';\r\nactions.toggleRowEditing = 'toggleRowEditing';\r\nactions.toggleEditing = 'toggleEditing';\r\n\r\nfunction reducer(state: any, action: any): object {\r\n if (action.type === actions.init) {\r\n return {\r\n allowEditing: true,\r\n editingRowUniqueId: null,\r\n ...state,\r\n };\r\n }\r\n\r\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\r\n return {\r\n ...state,\r\n editingRowUniqueId: null,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleRowEditing) {\r\n const { id } = action;\r\n return {\r\n ...state,\r\n editingRowUniqueId: id,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleEditing) {\r\n return {\r\n ...state,\r\n allowEditing: !state.allowEditing,\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n\r\nfunction useInstance(instance: any): void {\r\n const { dispatch } = instance;\r\n\r\n const resetRowEditing = React.useCallback(() => {\r\n dispatch({ type: actions.resetRowEditing });\r\n }, [dispatch]);\r\n\r\n const toggleRowEditing = React.useCallback(\r\n id => {\r\n dispatch({ type: actions.toggleRowEditing, id });\r\n },\r\n [dispatch]\r\n );\r\n\r\n const toggleEditing = React.useCallback(() => {\r\n dispatch({ type: actions.toggleEditing });\r\n }, [dispatch]);\r\n\r\n Object.assign(instance, {\r\n resetRowEditing,\r\n toggleRowEditing,\r\n toggleEditing,\r\n });\r\n}\r\n\r\nconst prepareRow =\r\n <T extends {}>(uniqueId: keyof T) =>\r\n (row: any, { instance }: any): void => {\r\n const id = row.original[uniqueId];\r\n\r\n row.toggleRowEditing = () => {\r\n if (instance.state.editingRowUniqueId === id) {\r\n instance.resetRowEditing();\r\n } else {\r\n instance.toggleRowEditing(id);\r\n }\r\n };\r\n\r\n row.isEditing = row.original._createKey\r\n ? instance.state.editingRowUniqueId === row.original._createKey\r\n : instance.state.editingRowUniqueId === id;\r\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\r\n };\r\n\r\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\r\n const plugin = (hooks: any): void => {\r\n if (uniqueId) {\r\n hooks.stateReducers.push(reducer);\r\n hooks.useInstance.push(useInstance);\r\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\r\n }\r\n };\r\n plugin.pluginName = pluginName;\r\n\r\n return plugin;\r\n};\r\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\r\nimport React from 'react';\r\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\r\nimport { Checkbox } from '../../../Checkbox/Checkbox';\r\nimport { SelectedRowsHandler } from '../../types';\r\n\r\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\r\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\r\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\r\n\r\n return [fromIndex, toIndex];\r\n};\r\n\r\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\r\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\r\n\r\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\r\n const plugin = (hooks: any): void => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n useBaseRowSelect(hooks);\r\n\r\n if (onSelectedRows) {\r\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\r\n onSelectedRows(state => {\r\n const nextState = { ...state };\r\n\r\n if (checked) {\r\n nextState[indexPath] = true;\r\n } else {\r\n delete nextState[indexPath];\r\n }\r\n\r\n return nextState;\r\n });\r\n\r\n const prepareRow = (row: any) => {\r\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\r\n };\r\n\r\n hooks.prepareRow.push(prepareRow);\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const lastSelectedSortedIndex = React.useRef();\r\n\r\n hooks.visibleColumns.push((columns: any) => [\r\n {\r\n id: 'selection',\r\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\r\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\r\n\r\n const onChange = (checked): void => {\r\n if (checked) {\r\n // this intentionally only selects top level rows - sub rows add too much complexity\r\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\r\n } else {\r\n onSelectedRows({});\r\n }\r\n };\r\n\r\n return <Checkbox {...props} onChange={onChange} />;\r\n },\r\n Cell: ({ row, rows }: any) => {\r\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\r\n // row.index refers to the index in the original data, not the current index\r\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\r\n\r\n const onClick = (event: React.MouseEvent): void => {\r\n if (event.shiftKey) {\r\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\r\n\r\n for (let i = fromIndex; i <= toIndex; i++) {\r\n toggleRowSelected(rows[i].id, true);\r\n }\r\n } else {\r\n toggleRowSelected(row.id, !props.checked);\r\n }\r\n\r\n lastSelectedSortedIndex.current = sortedIndex;\r\n };\r\n\r\n return (\r\n <Checkbox\r\n {...props}\r\n className=\"mt-2.5\"\r\n onClick={onClick}\r\n // this is necessary to remove console spam from eslint\r\n onChange={() => false}\r\n />\r\n );\r\n },\r\n flex: '0 0 36px',\r\n className: 'flex-col justify-start !py-0',\r\n },\r\n ...columns,\r\n ]);\r\n }\r\n };\r\n plugin.pluginName = 'useRowSelect';\r\n return plugin;\r\n};\r\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","onChange","_","props","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":";;;;AAAA;;AAMA,MAAMA,aAAa,GAAG,CAACC,YAAD,EAAuBC,UAAvB;EAClB,MAAMC,SAAS,GAAGD,UAAU,GAAGD,YAAb,GAA4BC,UAA5B,GAAyCD,YAA3D;EACA,MAAMG,OAAO,GAAGF,UAAU,GAAGD,YAAb,GAA4BC,UAA5B,GAAyCD,YAAzD;EAEA,OAAO,CAACE,SAAD,EAAYC,OAAZ,CAAP;AACH,CALD;AAQA;;;MAEaC,YAAY,GAAIC,cAAD;EACxB,MAAMC,MAAM,GAAIC,KAAD;;IAEXC,cAAgB,CAACD,KAAD,CAAhB;;IAEA,IAAIF,cAAJ,EAAoB;MAChB,MAAMI,iBAAiB,GAAG,CAACC,SAAD,EAAoBC,OAApB,KACtBN,cAAc,CAACO,KAAK;QAChB,MAAMC,SAAS,GAAG,EAAE,GAAGD;SAAvB;;QAEA,IAAID,OAAJ,EAAa;UACTE,SAAS,CAACH,SAAD,CAAT,GAAuB,IAAvB;SADJ,MAEO;UACH,OAAOG,SAAS,CAACH,SAAD,CAAhB;;;QAGJ,OAAOG,SAAP;OATU,CADlB;;MAaA,MAAMC,UAAU,GAAIC,GAAD;QACfA,GAAG,CAACN,iBAAJ,GAAwB,MAAMA,iBAAiB,CAACM,GAAG,CAACC,EAAL,EAAS,CAACD,GAAG,CAACE,UAAd,CAA/C;OADJ;;MAIAV,KAAK,CAACO,UAAN,CAAiBI,IAAjB,CAAsBJ,UAAtB,EAlBgB;;MAqBhB,MAAMK,uBAAuB,GAAGC,cAAK,CAACC,MAAN,EAAhC;MAEAd,KAAK,CAACe,cAAN,CAAqBJ,IAArB,CAA2BK,OAAD,IAAkB,CACxC;QACIP,EAAE,EAAE,WADR;QAEIQ,MAAM,EAAE,CAAC;UAAEC,6BAAF;UAAiCC;SAAlC;UACJ,MAAM;YAAEC,QAAQ,EAAEC,CAAZ;YAAe,GAAGC;cAAUJ,6BAA6B,EAA/D;;UAEA,MAAME,QAAQ,GAAIhB,OAAD;YACb,IAAIA,OAAJ,EAAa;;cAETN,cAAc,CAACyB,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBC,KAAK,CAACN,IAAI,CAACO,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAAlB,CAAD,CAAd;aAFJ,MAGO;cACH7B,cAAc,CAAC,EAAD,CAAd;;WALR;;UASA,OAAOe,4BAAA,CAACe,QAAD,oBAAcN;YAAOF,QAAQ,EAAEA;YAA/B,CAAP;SAdR;QAgBIS,IAAI,EAAE,CAAC;UAAErB,GAAF;UAAOW;SAAR;UACF,MAAM;YAAEC,QAAQ,EAAEC,CAAZ;YAAe,GAAGC;cAAUd,GAAG,CAACsB,yBAAJ,EAAlC;;UAEA,MAAMC,WAAW,GAAGZ,IAAI,CAACa,SAAL,CAAgBC,CAAD,IAAYA,CAAC,CAACC,KAAF,KAAY1B,GAAG,CAAC0B,KAA3C,CAApB;;UAEA,MAAMC,OAAO,GAAIC,KAAD;YACZ,IAAIA,KAAK,CAACC,QAAV,EAAoB;cAChB,MAAM,CAAC1C,SAAD,EAAYC,OAAZ,IAAuBJ,aAAa,CAACoB,uBAAuB,CAAC0B,OAAxB,IAAmC,CAApC,EAAuCP,WAAvC,CAA1C;;cAEA,KAAK,IAAIQ,CAAC,GAAG5C,SAAb,EAAwB4C,CAAC,IAAI3C,OAA7B,EAAsC2C,CAAC,EAAvC,EAA2C;gBACvCrC,iBAAiB,CAACiB,IAAI,CAACoB,CAAD,CAAJ,CAAQ9B,EAAT,EAAa,IAAb,CAAjB;;aAJR,MAMO;cACHP,iBAAiB,CAACM,GAAG,CAACC,EAAL,EAAS,CAACa,KAAK,CAAClB,OAAhB,CAAjB;;;YAGJQ,uBAAuB,CAAC0B,OAAxB,GAAkCP,WAAlC;WAXJ;;UAcA,OACIlB,4BAAA,CAACe,QAAD,oBACQN;YACJkB,SAAS,EAAC;YACVL,OAAO,EAAEA;;YAETf,QAAQ,EAAE,MAAM;YALpB,CADJ;SAnCR;QA6CIqB,IAAI,EAAE,UA7CV;QA8CID,SAAS,EAAE;OA/CyB,EAiDxC,GAAGxB,OAjDqC,CAA5C;;GA3BR;;EAgFAjB,MAAM,CAAC2C,UAAP,GAAoB,cAApB;EACA,OAAO3C,MAAP;AACH;;;;"}
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","onChange","_","props","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';\r\nimport { v4 as uuid } from 'uuid';\r\nimport set from 'lodash/set';\r\nimport unset from 'lodash/unset';\r\nimport get from 'lodash/get';\r\nimport compact from 'lodash/compact';\r\nimport pullAt from 'lodash/pullAt';\r\n\r\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\r\nimport { Row, RowIndexPath, TableRef } from '../types';\r\n\r\nexport const insertChildTableRow = <TRow,>(\r\n data: Row<TRow>[],\r\n rowIndexPath: RowIndexPath = undefined,\r\n values: any = {}\r\n): [Row<TRow>[], RowIndexPath] => {\r\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\r\n\r\n let childRowIndexPath;\r\n\r\n if (rowIndexPath) {\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\r\n const nextSubRows = currentRow?.subRows ?? [];\r\n\r\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\r\n nextSubRows.unshift(values);\r\n set(nexTRow, path, nextSubRows);\r\n\r\n // rebuild the new id\r\n rowIndexes.push(0);\r\n childRowIndexPath = rowIndexes.join('.');\r\n } else {\r\n nexTRow.unshift(values);\r\n childRowIndexPath = '0';\r\n }\r\n\r\n return [nexTRow, childRowIndexPath];\r\n};\r\n\r\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\r\n const nexTRow = JSON.parse(JSON.stringify(data));\r\n\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n const rootIndex = Number(rowIndexes.shift());\r\n\r\n if (rowIndexes.length) {\r\n // unset\r\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\r\n unset(nexTRow[rootIndex], unsetPath);\r\n\r\n // remove empty value from subRows\r\n rowIndexes.pop();\r\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\r\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\r\n } else {\r\n pullAt(nexTRow, rootIndex);\r\n }\r\n\r\n return nexTRow;\r\n};\r\n\r\nexport type useTableRowCreation<TRow> = {\r\n data: Row<TRow>[];\r\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\r\n remove: (rowIndexPath: RowIndexPath) => void;\r\n isCreating: boolean;\r\n};\r\n\r\nexport const useTableRowCreation = <TRow,>(data: Row<TRow>[], tableRef: React.RefObject<TableRef>): useTableRowCreation<TRow> => {\r\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\r\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\r\n\r\n React.useEffect(() => {\r\n if (activeRowIndexPath !== undefined) {\r\n // keep the same edit key, so that we don't remount the row/form\r\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\r\n\r\n // get the active creation rows parent\r\n const parentId = getParentRowIndexPath(activeRowIndexPath);\r\n\r\n // insert a new empty row in the external data (with the same key)\r\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\r\n\r\n // update and set that row as active, we basically just changed it's position in our internal data\r\n setActiveRowIndexPath(newRowIndexPath);\r\n setInternalData(nexTRow);\r\n\r\n if (tableRef?.current) {\r\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\r\n }\r\n } else {\r\n setInternalData(data);\r\n }\r\n }, [JSON.stringify(data)]);\r\n\r\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\r\n const _createKey = uuid();\r\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\r\n setActiveRowIndexPath(newRowIndexPath);\r\n setInternalData(nexTRow);\r\n\r\n if (tableRef?.current) {\r\n tableRef.current.instance.toggleRowEditing(_createKey);\r\n }\r\n\r\n return newRowIndexPath;\r\n };\r\n\r\n const remove = (rowIndexPath: any): void => {\r\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\r\n setInternalData(nexTRow);\r\n setActiveRowIndexPath(undefined);\r\n };\r\n\r\n return {\r\n data: internalData,\r\n create,\r\n remove,\r\n isCreating: activeRowIndexPath !== undefined,\r\n };\r\n};\r\n"],"names":["insertChildTableRow","data","rowIndexPath","undefined","values","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","internalData","setInternalData","React","useState","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","undefined","values","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","internalData","setInternalData","React","useState","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
@@ -79,7 +79,7 @@ const useTable = (props, ref) => {
79
79
  const {
80
80
  children,
81
81
  data,
82
- dangerouslyHijackGlobalKeyboardNavigation: _1,
82
+ dangerouslyHijackGlobalKeyboardNavigation: _,
83
83
  onRowClick,
84
84
  onRowDrag,
85
85
  onSelectedRows,
@@ -92,6 +92,10 @@ const useTable = (props, ref) => {
92
92
  manualSorting,
93
93
  onSort,
94
94
  sortRules,
95
+ //index
96
+ activeIndex: _1,
97
+ defaultActiveIndex: _2,
98
+ onChangeActiveIndex: _3,
95
99
  // pagination
96
100
  disablePagination = true,
97
101
  length,
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\r\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\r\nimport { sortTypes } from '../util/sortTypes';\r\nimport { useRowEditing } from './plugins/useRowEditing';\r\nimport { useRowActions } from './plugins/useRowActions';\r\nimport { useRowSelect } from './plugins/useRowSelect';\r\nimport {\r\n InternalTable,\r\n InternalTableRow,\r\n PaginationHandler,\r\n RowActiveHandler,\r\n SortHandler,\r\n TableProps,\r\n TableRef,\r\n} from '../types';\r\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\r\nimport { useLocalization } from '../../Provider/Provider';\r\nimport { useRowDraggable } from './plugins/useRowDraggable';\r\nimport { sanitizeRowProps } from '../util';\r\n\r\nconst useTableRowActive = (\r\n activeIndex: number | undefined,\r\n rows: InternalTableRow[],\r\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\r\n handleonRowActive: RowActiveHandler<any> | undefined\r\n) => {\r\n React.useEffect(() => {\r\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\r\n const focusedRow = rows[activeIndex];\r\n if (focusedRow) {\r\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\r\n handleonRowActive(sanitizedFocusedRow);\r\n }\r\n }\r\n }, [activeIndex, rows]);\r\n};\r\n\r\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\r\n const sanitizedInstance = React.useMemo(\r\n () => ({\r\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\r\n toggleHideAllColumns: instance.toggleHideAllColumns,\r\n toggleHideColumn: instance.toggleHideColumn,\r\n toggleEditing: instance.toggleEditing,\r\n toggleRowEditing: instance.toggleRowEditing,\r\n resetRowEditing: instance.resetRowEditing,\r\n toggleRowExpanded: instance.toggleRowExpanded,\r\n toggleSortBy: instance.toggleSortBy,\r\n }),\r\n []\r\n );\r\n\r\n React.useEffect(() => {\r\n if (ref?.current) {\r\n ref.current.instance = sanitizedInstance;\r\n }\r\n }, [ref]);\r\n\r\n return sanitizedInstance;\r\n};\r\n\r\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\r\n React.useEffect(() => {\r\n if (!disablePagination && onPaginate) {\r\n onPaginate(state.pageIndex, state.pageSize);\r\n }\r\n }, [state.pageIndex, state.pageSize]);\r\n};\r\n\r\nconst useTableSortingListener = (\r\n data: any[],\r\n sortedRows: any[],\r\n onSort: SortHandler<any> | undefined,\r\n manualSorting: boolean,\r\n state: any\r\n): void => {\r\n React.useEffect(() => {\r\n if (onSort) {\r\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\r\n\r\n if (manualSorting) {\r\n onSort(sortRules);\r\n } else {\r\n let sortedData;\r\n\r\n if (sortRules.length && sortedRows?.length) {\r\n sortedData = sortedRows.map((row: any) => row.original);\r\n }\r\n\r\n onSort(sortRules, sortedData || data);\r\n }\r\n }\r\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\r\n};\r\n\r\nconst DEFAULT_PAGE_SIZE = 10;\r\n\r\nexport const useTable = <T extends {}>(\r\n props: TableProps<T> & { windowed?: boolean },\r\n ref: React.RefObject<TableRef>\r\n): InternalTable => {\r\n const {\r\n children,\r\n data,\r\n dangerouslyHijackGlobalKeyboardNavigation: _1,\r\n onRowClick,\r\n onRowDrag,\r\n onSelectedRows,\r\n rowClassName,\r\n rowExpansionRenderer,\r\n rowHeight,\r\n selectedRows,\r\n\r\n // sorting\r\n disableSorting,\r\n manualSorting,\r\n onSort,\r\n sortRules,\r\n\r\n // pagination\r\n disablePagination = true,\r\n length,\r\n onPaginate,\r\n pageSize = DEFAULT_PAGE_SIZE,\r\n pageIndex = 0,\r\n\r\n // row editing\r\n inlineEditingUniqueId = undefined,\r\n onRowCreate,\r\n\r\n // actions\r\n actions,\r\n onRowEdit,\r\n onRowCopy,\r\n onRowDelete,\r\n onRowActive,\r\n\r\n windowed = false,\r\n\r\n ...otherProps\r\n } = props;\r\n\r\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\r\n throw new Error(\r\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\r\n );\r\n }\r\n\r\n const { texts } = useLocalization();\r\n const { columns, sortRules: defaultSortRules } = React.useMemo(\r\n () => getColumnsFromChildren(children, rowExpansionRenderer),\r\n [children, rowExpansionRenderer]\r\n );\r\n\r\n const manualPagination = !disablePagination && !!onPaginate && !!length;\r\n\r\n const {\r\n headerGroups,\r\n rows,\r\n sortedRows,\r\n prepareRow: prepareBaseRow,\r\n state,\r\n // pagination\r\n page,\r\n gotoPage,\r\n setPageSize,\r\n ...instance\r\n }: any = useReactTable(\r\n {\r\n columns,\r\n data,\r\n initialState: {\r\n // eslint-disable-next-line\r\n // @ts-ignore: not sure how to type this correctly right now\r\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\r\n pageSize: !disablePagination ? pageSize : undefined,\r\n pageIndex: !disablePagination ? pageIndex : undefined,\r\n },\r\n manualPagination,\r\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\r\n manualSortBy: manualSorting,\r\n disableSortBy: disableSorting,\r\n // most of these resets preventions are needed for editing mode\r\n autoResetExpanded: false,\r\n autoResetSelectedRows: false,\r\n autoResetSortBy: false,\r\n autoResetPage: false,\r\n sortTypes: React.useMemo(() => sortTypes, []),\r\n useControlledState: currentState => {\r\n return React.useMemo(\r\n () => ({\r\n ...currentState,\r\n selectedRowIds: selectedRows || [],\r\n }),\r\n [currentState, selectedRows]\r\n );\r\n },\r\n },\r\n useRowState,\r\n useSortBy,\r\n useExpanded,\r\n usePagination,\r\n useRowSelect(onSelectedRows),\r\n useRowDraggable(onRowDrag),\r\n useRowEditing(inlineEditingUniqueId),\r\n useRowActions(\r\n inlineEditingUniqueId,\r\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\r\n actions,\r\n rowExpansionRenderer,\r\n texts,\r\n windowed\r\n )\r\n );\r\n\r\n useTablePaginationListener(disablePagination, onPaginate, state);\r\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\r\n\r\n const sanitizedInstance = useTableInstance(instance, ref);\r\n\r\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\r\n\r\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\r\n props,\r\n visibleRows,\r\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\r\n ref\r\n );\r\n\r\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\r\n\r\n const prepareRow = React.useCallback(\r\n (row: any, index: number) => {\r\n prepareBaseRow(row);\r\n row.setActive = () => setActiveIndex(index);\r\n },\r\n [prepareBaseRow, setActiveIndex]\r\n );\r\n\r\n return {\r\n rowProps: {\r\n activeIndex,\r\n setActiveIndex,\r\n onRowClick,\r\n rowClassName,\r\n rowExpansionRenderer,\r\n rowHeight,\r\n inlineEditingUniqueId,\r\n },\r\n tableProps: {\r\n ...otherProps,\r\n headerGroups,\r\n onFocus: handleFocus,\r\n onKeyDown: handleKeyDown,\r\n tabIndex: otherProps.tabIndex ?? 0,\r\n },\r\n state,\r\n pagination: !disablePagination\r\n ? {\r\n length: manualPagination && length ? length : data.length,\r\n pageIndex: state.pageIndex,\r\n pageSize: state.pageSize,\r\n setPageIndex: gotoPage,\r\n setPageSize: setPageSize,\r\n }\r\n : null,\r\n rows: visibleRows,\r\n prepareRow,\r\n instance: sanitizedInstance,\r\n };\r\n};\r\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","dangerouslyHijackGlobalKeyboardNavigation","_1","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","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: _,\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 //index\n activeIndex: _1,\n defaultActiveIndex: _2,\n onChangeActiveIndex: _3,\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","dangerouslyHijackGlobalKeyboardNavigation","_","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","_1","defaultActiveIndex","_2","onChangeActiveIndex","_3","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}