@economic/taco 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +1 -3
  2. package/dist/components/Card/Card.d.ts +7 -7
  3. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  5. package/dist/esm/components/Badge/Badge.js.map +1 -1
  6. package/dist/esm/components/Banner/Banner.js.map +1 -1
  7. package/dist/esm/components/Banner/util.js.map +1 -1
  8. package/dist/esm/components/Button/Button.js.map +1 -1
  9. package/dist/esm/components/Button/util.js.map +1 -1
  10. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  11. package/dist/esm/components/Card/Card.js +19 -4
  12. package/dist/esm/components/Card/Card.js.map +1 -1
  13. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  14. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  15. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  16. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  17. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  18. package/dist/esm/components/Dialog/Context.js.map +1 -1
  19. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  20. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  21. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  22. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  23. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  24. package/dist/esm/components/Field/Field.js.map +1 -1
  25. package/dist/esm/components/Form/Form.js.map +1 -1
  26. package/dist/esm/components/Group/Group.js.map +1 -1
  27. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  28. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  29. package/dist/esm/components/Icon/Icon.js.map +1 -1
  30. package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
  31. package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
  32. package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
  33. package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
  34. package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
  35. package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
  36. package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
  37. package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
  38. package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
  39. package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
  40. package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
  41. package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
  42. package/dist/esm/components/Icon/components/Attach.js.map +1 -1
  43. package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
  44. package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
  45. package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
  46. package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
  47. package/dist/esm/components/Icon/components/Basic.js.map +1 -1
  48. package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
  49. package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
  50. package/dist/esm/components/Icon/components/Book.js.map +1 -1
  51. package/dist/esm/components/Icon/components/Booking.js.map +1 -1
  52. package/dist/esm/components/Icon/components/Budget.js.map +1 -1
  53. package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
  54. package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
  55. package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
  56. package/dist/esm/components/Icon/components/Chat.js.map +1 -1
  57. package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
  58. package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
  59. package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
  60. package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
  61. package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
  62. package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  63. package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
  64. package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
  65. package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
  66. package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
  67. package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
  68. package/dist/esm/components/Icon/components/CircleClose.js +6 -6
  69. package/dist/esm/components/Icon/components/CircleClose.js.map +1 -1
  70. package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -1
  71. package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -1
  72. package/dist/esm/components/Icon/components/CircleTick.js.map +1 -1
  73. package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
  74. package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
  75. package/dist/esm/components/Icon/components/Close.js.map +1 -1
  76. package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
  77. package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
  78. package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
  79. package/dist/esm/components/Icon/components/Copy.js.map +1 -1
  80. package/dist/esm/components/Icon/components/Courses.js.map +1 -1
  81. package/dist/esm/components/Icon/components/Credit.js.map +1 -1
  82. package/dist/esm/components/Icon/components/Delete.js.map +1 -1
  83. package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
  84. package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
  85. package/dist/esm/components/Icon/components/Developer.js.map +1 -1
  86. package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
  87. package/dist/esm/components/Icon/components/Document.js.map +1 -1
  88. package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
  89. package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  90. package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
  91. package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
  92. package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  93. package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
  94. package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
  95. package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
  96. package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
  97. package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  98. package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
  99. package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
  100. package/dist/esm/components/Icon/components/Download.js.map +1 -1
  101. package/dist/esm/components/Icon/components/Drag.js.map +1 -1
  102. package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
  103. package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
  104. package/dist/esm/components/Icon/components/Edit.js.map +1 -1
  105. package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  106. package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
  107. package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
  108. package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
  109. package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
  110. package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  111. package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  112. package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  113. package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  114. package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  115. package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  116. package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
  117. package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
  118. package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
  119. package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
  120. package/dist/esm/components/Icon/components/Export.js.map +1 -1
  121. package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
  122. package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
  123. package/dist/esm/components/Icon/components/Filter.js.map +1 -1
  124. package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
  125. package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
  126. package/dist/esm/components/Icon/components/Hash.js.map +1 -1
  127. package/dist/esm/components/Icon/components/Home.js.map +1 -1
  128. package/dist/esm/components/Icon/components/Images.js.map +1 -1
  129. package/dist/esm/components/Icon/components/Import.js.map +1 -1
  130. package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
  131. package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
  132. package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
  133. package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
  134. package/dist/esm/components/Icon/components/Info.js.map +1 -1
  135. package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
  136. package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
  137. package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
  138. package/dist/esm/components/Icon/components/Layout.js.map +1 -1
  139. package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
  140. package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
  141. package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
  142. package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
  143. package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
  144. package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  145. package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  146. package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  147. package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  148. package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  149. package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  150. package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  151. package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  152. package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
  153. package/dist/esm/components/Icon/components/Line.js.map +1 -1
  154. package/dist/esm/components/Icon/components/List.js.map +1 -1
  155. package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
  156. package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
  157. package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
  158. package/dist/esm/components/Icon/components/Log.js.map +1 -1
  159. package/dist/esm/components/Icon/components/Market.js.map +1 -1
  160. package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
  161. package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
  162. package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
  163. package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
  164. package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
  165. package/dist/esm/components/Icon/components/More.js.map +1 -1
  166. package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
  167. package/dist/esm/components/Icon/components/Move.js.map +1 -1
  168. package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
  169. package/dist/esm/components/Icon/components/Note.js.map +1 -1
  170. package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
  171. package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
  172. package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
  173. package/dist/esm/components/Icon/components/Period.js.map +1 -1
  174. package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
  175. package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
  176. package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
  177. package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
  178. package/dist/esm/components/Icon/components/Play.js.map +1 -1
  179. package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
  180. package/dist/esm/components/Icon/components/Print.js.map +1 -1
  181. package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
  182. package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
  183. package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
  184. package/dist/esm/components/Icon/components/Projects.js.map +1 -1
  185. package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
  186. package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
  187. package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  188. package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
  189. package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
  190. package/dist/esm/components/Icon/components/Report.js.map +1 -1
  191. package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
  192. package/dist/esm/components/Icon/components/Restore.js.map +1 -1
  193. package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
  194. package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
  195. package/dist/esm/components/Icon/components/Sales.js.map +1 -1
  196. package/dist/esm/components/Icon/components/Search.js.map +1 -1
  197. package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
  198. package/dist/esm/components/Icon/components/Secure.js.map +1 -1
  199. package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
  200. package/dist/esm/components/Icon/components/Settings.js.map +1 -1
  201. package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
  202. package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
  203. package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
  204. package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
  205. package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
  206. package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
  207. package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
  208. package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
  209. package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
  210. package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
  211. package/dist/esm/components/Icon/components/Star.js.map +1 -1
  212. package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
  213. package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
  214. package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
  215. package/dist/esm/components/Icon/components/Tag.js.map +1 -1
  216. package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
  217. package/dist/esm/components/Icon/components/Templates.js.map +1 -1
  218. package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
  219. package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
  220. package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
  221. package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
  222. package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
  223. package/dist/esm/components/Icon/components/Tick.js.map +1 -1
  224. package/dist/esm/components/Icon/components/Time.js.map +1 -1
  225. package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
  226. package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
  227. package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
  228. package/dist/esm/components/Icon/components/Undock.js.map +1 -1
  229. package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
  230. package/dist/esm/components/Icon/components/Warning.js.map +1 -1
  231. package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
  232. package/dist/esm/components/Icon/components/Website.js.map +1 -1
  233. package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
  234. package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
  235. package/dist/esm/components/Icon/components/index.js.map +1 -1
  236. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  237. package/dist/esm/components/Input/Input.js.map +1 -1
  238. package/dist/esm/components/Input/util.js.map +1 -1
  239. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  240. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  241. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  242. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  243. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  244. package/dist/esm/components/Listbox/util.js.map +1 -1
  245. package/dist/esm/components/Menu/Context.js.map +1 -1
  246. package/dist/esm/components/Menu/Menu.js.map +1 -1
  247. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  248. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  249. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  250. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  251. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  252. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  253. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  254. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  255. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  256. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  257. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  258. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  259. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  260. package/dist/esm/components/Popover/Popover.js.map +1 -1
  261. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  262. package/dist/esm/components/Progress/Progress.js.map +1 -1
  263. package/dist/esm/components/Provider/Provider.js.map +1 -1
  264. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  265. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  266. package/dist/esm/components/Select/Select.js.map +1 -1
  267. package/dist/esm/components/Select/useSelect.js.map +1 -1
  268. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  269. package/dist/esm/components/Switch/Switch.js.map +1 -1
  270. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  271. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  272. package/dist/esm/components/Table/components/Table.js.map +1 -1
  273. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  274. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  275. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  276. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  277. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  278. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  279. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  280. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  281. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  282. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  283. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  284. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  285. package/dist/esm/components/Table/util.js.map +1 -1
  286. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  287. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  288. package/dist/esm/components/Toast/Toast.js.map +1 -1
  289. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  290. package/dist/esm/components/Toast/util.js.map +1 -1
  291. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  292. package/dist/esm/components/Tour/Tour.js.map +1 -1
  293. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  294. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  295. package/dist/esm/primitives/Button.js.map +1 -1
  296. package/dist/esm/utils/date.js.map +1 -1
  297. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  298. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  299. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  300. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  301. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  302. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  303. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  304. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  305. package/dist/esm/utils/input.js.map +1 -1
  306. package/dist/esm/utils/mergeRefs.js.map +1 -1
  307. package/dist/esm/utils/taillwind.js.map +1 -1
  308. package/dist/taco.cjs.development.js +122 -108
  309. package/dist/taco.cjs.development.js.map +1 -1
  310. package/dist/taco.cjs.production.min.js +1 -1
  311. package/dist/taco.cjs.production.min.js.map +1 -1
  312. package/package.json +18 -8
  313. package/types.json +37 -8
@@ -1 +1 @@
1
- {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":";;;;;;;AAUA,IAAMA,oBAAoB,GAAG,sBAA7B;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,qBAAD,EAA6BC,QAA7B,EAA4CC,OAA5C;AACf,SACI,CAAC,CAACA,OAAF,IACAD,QAAQ,CAACE,WADT,IAEAF,QAAQ,CAACG,SAFT,IAGAH,QAAQ,CAACI,WAHT,IAIA,CAAC,CAACL,qBAJF,IAKAC,QAAQ,CAACK,SANb;AAQH,CATD;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CACfL,OADe,EAEfM,GAFe;MAEfA;AAAAA,IAAAA,MAAiCC;;;AAEjC,MAAMC,OAAO,GAAqB,EAAlC;AACA,MAAMC,SAAS,GAAqB,EAApC;;AAEA,MAAIT,OAAJ,EAAa;AACT,QAAIU,cAAc,GAAGV,OAAO,CAACW,MAAR,CAAe,UAAAC,CAAC;AAAA,aAAI,CAAC,CAACA,CAAN;AAAA,KAAhB,CAArB;;AAEA,QAAIN,GAAJ,EAAS;AACLI,MAAAA,cAAc,GAAGA,cAAc,CAACC,MAAf,CAAsB,UAACE,MAAD;AACnC,YAAIA,MAAM,CAACC,OAAP,KAAmBP,SAAvB,EAAkC;AAC9B,cAAI,OAAOM,MAAM,CAACC,OAAd,KAA0B,UAA9B,EAA0C;AACtC,mBAAOD,MAAM,CAACC,OAAP,CAAeR,GAAf,CAAP;AACH;;AAED,iBAAOO,MAAM,CAACC,OAAd;AACH;;AAED,eAAO,IAAP;AACH,OAVgB,CAAjB;AAWH;;AAEDJ,IAAAA,cAAc,CAACK,OAAf,CAAuB,UAACF,MAAD;AACnB,UAAIA,MAAM,CAACG,SAAX,EAAsB;AAClBR,QAAAA,OAAO,CAACS,IAAR,CAAaJ,MAAb;AACH,OAFD,MAEO;AACHJ,QAAAA,SAAS,CAACQ,IAAV,CAAeJ,MAAf;AACH;AACJ,KAND;AAOH;;AAED,SAAO,CAACL,OAAD,EAAUC,SAAV,CAAP;AACH,CAlCD;;AAoCA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAACpB,qBAAD,EAA6BC,QAA7B,EAA4CC,OAA5C;AACd,oBAA2CK,UAAU,CAACL,OAAD,CAArD;AAAA,MAAOmB,cAAP;AAAA,MAAuBC,gBAAvB;;AAEA,MAAIC,MAAM,GAAGF,cAAc,CAACE,MAAf,IAAyBD,gBAAgB,CAACC,MAAjB,GAA0B,CAA1B,GAA8B,CAAvD,CAAb;;AAEA,MAAItB,QAAQ,CAACE,WAAb,EAA0B;AACtBoB,IAAAA,MAAM;AACT;;AAED,MAAItB,QAAQ,CAACG,SAAb,EAAwB;AACpBmB,IAAAA,MAAM;AACT;;AAED,MAAItB,QAAQ,CAACI,WAAb,EAA0B;AACtBkB,IAAAA,MAAM;AACT;;AAED,MAAI,CAAC,CAACvB,qBAAF,IAA2BC,QAAQ,CAACK,SAAxC,EAAmD;AAC/CiB,IAAAA,MAAM;;AAEN,QAAIA,MAAM,GAAG,CAAb,EAAgB;AACZA,MAAAA,MAAM;AACT;AACJ;;AAED,SAAOA,MAAP;AACH,CA1BD;;AA4BA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACT,MAAD,EAAyBP,GAAzB;AACnB,SAAO;AACH,kBAAc,OAAOO,MAAM,CAACU,OAAd,KAA0B,UAA1B,GAAuCV,MAAM,CAACU,OAAP,CAAejB,GAAf,CAAvC,GAA6DO,MAAM,CAACU,OAD/E;AAEHC,IAAAA,QAAQ,EAAE,OAAOX,MAAM,CAACW,QAAd,KAA2B,UAA3B,GAAwCX,MAAM,CAACW,QAAP,CAAgBlB,GAAhB,CAAxC,GAA+DO,MAAM,CAACW,QAF7E;AAGHC,IAAAA,OAAO,EAAE,iBAACC,KAAD;AACLb,MAAAA,MAAM,CAACY,OAAP,CAAenB,GAAf,EAAoBoB,KAApB;AACH;AALE,GAAP;AAOH,CARD;;AAUA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB;AACpBC,EAAAA,cAAK,CAACC,SAAN,CAAgB;AACZ,QAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACJ,KAAD;;;AACb,UAAIA,KAAK,CAACK,OAAN,KAAkBC,OAAO,CAAC,QAAD,CAAzB,qBAAuCN,KAAK,CAACO,MAA7C,gEAAuC,cAAcC,IAArD,+CAAuC,mBAAoBC,KAA/D,EAAsE;AAClET,QAAAA,KAAK,CAACU,cAAN;AACAV,QAAAA,KAAK,CAACO,MAAN,CAAaC,IAAb,CAAkBC,KAAlB;AACH;AACJ,KALD;;AAOAE,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCR,QAArC;AAEA,WAAO;AACHO,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCT,QAAxC;AACH,KAFD;AAGH,GAbD,EAaG,EAbH;AAeA,SACIF,4BAAA,MAAA;AAAKY,IAAAA,SAAS,EAAE5C;GAAhB,EACIgC,4BAAA,CAACa,UAAD;AAAYC,IAAAA,UAAU,EAAC;AAAUC,IAAAA,IAAI,EAAC;AAAOC,IAAAA,IAAI,EAAC;AAASJ,IAAAA,SAAS,EAAC;GAArE,CADJ,EAEIZ,4BAAA,CAACa,UAAD;AAAYC,IAAAA,UAAU,EAAC;AAAQC,IAAAA,IAAI,EAAC;AAAQC,IAAAA,IAAI,EAAC;GAAjD,CAFJ,CADJ;AAMH,CAtBD;;IAwBaC,aAAa,GAAG,SAAhBA,aAAgB,CACzB/C,qBADyB,EAEzBC,QAFyB,EAGzBC,OAHyB,EAIzB8C,oBAJyB,EAKzBC,KALyB,EAMzBC,QANyB;MAMzBA;AAAAA,IAAAA,WAAW;;;AAEX,MAAMC,aAAa,GAAG,CAAC,CAACnD,qBAAxB;AACA,MAAMoD,aAAa,GAAGhC,SAAS,CAACpB,qBAAD,EAAwBC,QAAxB,EAAkCC,OAAlC,CAA/B;;AAEA,MAAMmD,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AACX,QAAIvD,UAAU,CAACC,qBAAD,EAAwBC,QAAxB,EAAkCC,OAAlC,CAAd,EAA0D;AACtDoD,MAAAA,KAAK,CAACC,cAAN,CAAqBpC,IAArB,CAA0B,UAACqC,OAAD;AAAA,yBACnBA,OADmB,GAEtB;AACIC,UAAAA,EAAE,EAAE,UADR;AAEIf,UAAAA,SAAS,EAAE,wCAFf;AAGIgB,UAAAA,IAAI,iBAAeN,aAAf,sBAHR;AAIIO,UAAAA,IAAI,EAAE;gBAAGnD,WAAAA;;AACL,gBAAIA,GAAG,CAACoD,SAAR,EAAmB;AACf,qBAAO9B,4BAAA,CAACD,eAAD,MAAA,CAAP;AACH;;AAED,gBAAMgC,YAAY,GAAGC,gBAAgB,CAACtD,GAAD,EAAMwC,oBAAN,CAArC;;AACA,+BAA2CzC,UAAU,CAACL,OAAD,EAAU2D,YAAV,CAArD;AAAA,gBAAOxC,cAAP;AAAA,gBAAuBC,gBAAvB;;AAEA,gBAAMyC,MAAM,GACRjC,4BAAA,wBAAA,MAAA,EACK7B,QAAQ,CAACE,WAAT,IACG2B,4BAAA,CAACa,UAAD;AACIC,cAAAA,UAAU,EAAC;AACXC,cAAAA,IAAI,EAAC;4BACOI,KAAK,CAACe,KAAN,CAAYC;AACxBxC,cAAAA,OAAO,EAAEwB,KAAK,CAACe,KAAN,CAAYC;AACrBvC,cAAAA,QAAQ,EAAEyB,aAAa,IAAI,CAAC3C,GAAG,CAAC0D;AAChCvC,cAAAA,OAAO,EAAE,iBAACC,KAAD;AACLA,gBAAAA,KAAK,CAACuC,eAAN;AACAvC,gBAAAA,KAAK,CAACwC,OAAN;AACA5D,gBAAAA,GAAG,CAAC6D,SAAJ;;AAEA,oBAAI,CAAC7D,GAAG,CAAC8D,UAAT,EAAqB;AACjB9D,kBAAAA,GAAG,CAAC+D,iBAAJ;AACH;;AAEDtE,gBAAAA,QAAQ,CAACE,WAAT,CAAqB0D,YAArB,EAAmCjC,KAAnC;AACH;aAhBL,CAFR,EAqBK,CAACuB,aAAa,IAAIlD,QAAQ,CAACK,SAA3B,KACGwB,4BAAA,CAACa,UAAD;AACIC,cAAAA,UAAU,EAAC;AACXC,cAAAA,IAAI,EAAC;4BACOI,KAAK,CAACe,KAAN,CAAYQ;AACxB/C,cAAAA,OAAO,EAAEwB,KAAK,CAACe,KAAN,CAAYQ;AACrB9C,cAAAA,QAAQ,EAAEyB,aAAa,IAAI,CAAC3C,GAAG,CAAC0D;AAChCvC,cAAAA,OAAO,EAAE,iBAACC,KAAD;AACLA,gBAAAA,KAAK,CAACuC,eAAN;AACA3D,gBAAAA,GAAG,CAAC6D,SAAJ;;AAEA,oBAAIlB,aAAJ,EAAmB;AACf3C,kBAAAA,GAAG,CAACiE,gBAAJ;AACH,iBAFD,MAEO,IAAIxE,QAAQ,CAACK,SAAb,EAAwB;AAC3BsB,kBAAAA,KAAK,CAACwC,OAAN;AACAnE,kBAAAA,QAAQ,CAACK,SAAT,CAAmBuD,YAAnB,EAAiCjC,KAAjC;AACH;AACJ;aAhBL,CAtBR,EAyCK3B,QAAQ,CAACG,SAAT,IACG0B,4BAAA,CAACa,UAAD;AACIC,cAAAA,UAAU,EAAC;AACXC,cAAAA,IAAI,EAAC;4BACOI,KAAK,CAACe,KAAN,CAAYU;AACxBjD,cAAAA,OAAO,EAAEwB,KAAK,CAACe,KAAN,CAAYU;AACrBhD,cAAAA,QAAQ,EAAEyB,aAAa,IAAI,CAAC3C,GAAG,CAAC0D;AAChCvC,cAAAA,OAAO,EAAE,iBAACC,KAAD;AACLA,gBAAAA,KAAK,CAACuC,eAAN;AACAvC,gBAAAA,KAAK,CAACwC,OAAN;AACA5D,gBAAAA,GAAG,CAAC6D,SAAJ;AACApE,gBAAAA,QAAQ,CAACG,SAAT,CAAmByD,YAAnB,EAAiCjC,KAAjC;AACH;aAXL,CA1CR,EAwDK3B,QAAQ,CAACI,WAAT,IACGyB,4BAAA,CAACa,UAAD;AACIC,cAAAA,UAAU,EAAC;AACXC,cAAAA,IAAI,EAAC;4BACOI,KAAK,CAACe,KAAN,CAAYW;AACxBlD,cAAAA,OAAO,EAAEwB,KAAK,CAACe,KAAN,CAAYW;AACrBjD,cAAAA,QAAQ,EAAEyB,aAAa,IAAI,CAAC3C,GAAG,CAAC0D;AAChCvC,cAAAA,OAAO,EAAE,iBAACC,KAAD;AACLA,gBAAAA,KAAK,CAACuC,eAAN;AACAvC,gBAAAA,KAAK,CAACwC,OAAN;AACA5D,gBAAAA,GAAG,CAAC6D,SAAJ;AACApE,gBAAAA,QAAQ,CAACI,WAAT,CAAqBwD,YAArB,EAAmCjC,KAAnC;AACH;aAXL,CAzDR,EAuEKP,cAAc,CAACuD,GAAf,CAAmB,UAAC7D,MAAD,EAAuB8D,KAAvB;AAAA,qBAChB/C,4BAAA,CAACa,UAAD,oBACQnB,cAAc,CAACT,MAAD,EAAS8C,YAAT;AAClBiB,gBAAAA,GAAG,EAAED;AACLjC,gBAAAA,UAAU,EAAC;AACXC,gBAAAA,IAAI,EAAE,OAAO9B,MAAM,CAAC8B,IAAd,KAAuB,UAAvB,GAAoC9B,MAAM,CAAC8B,IAAP,CAAYgB,YAAZ,CAApC,GAAgE9C,MAAM,CAAC8B;AAC7EpB,gBAAAA,OAAO,EACH,OAAOV,MAAM,CAACU,OAAd,KAA0B,UAA1B,GAAuCV,MAAM,CAACU,OAAP,CAAeoC,YAAf,CAAvC,GAAsE9C,MAAM,CAACU;gBANrF,CADgB;AAAA,aAAnB,CAvEL,EAkFKH,gBAAgB,CAACC,MAAjB,GACGO,4BAAA,CAACiD,IAAD,MAAA,EACIjD,4BAAA,CAACiD,IAAI,CAACC,OAAN,MAAA,EACIlD,4BAAA,CAACa,UAAD;AACIC,cAAAA,UAAU,EAAC;AACXC,cAAAA,IAAI,EAAC;4BACOI,KAAK,CAACe,KAAN,CAAY9D;AACxBuB,cAAAA,OAAO,EAAEwB,KAAK,CAACe,KAAN,CAAY9D;AACrBwB,cAAAA,QAAQ,EAAEyB,aAAa,IAAI,CAAC3C,GAAG,CAAC0D;AAChCvC,cAAAA,OAAO,EAAE,iBAACC,KAAD;AACLA,gBAAAA,KAAK,CAACuC,eAAN;AACA3D,gBAAAA,GAAG,CAAC6D,SAAJ;AACH;aATL,CADJ,CADJ,EAcIvC,4BAAA,CAACiD,IAAI,CAACE,OAAN,MAAA,EACK3D,gBAAgB,CAACsD,GAAjB,CAAqB,UAAC7D,MAAD,EAAuB8D,KAAvB;AAAA,qBAClB/C,4BAAA,CAACiD,IAAI,CAACG,IAAN;AACIJ,gBAAAA,GAAG,EAAED;AACLhC,gBAAAA,IAAI,EACA,OAAO9B,MAAM,CAAC8B,IAAd,KAAuB,UAAvB,GACM9B,MAAM,CAAC8B,IAAP,CAAYgB,YAAZ,CADN,GAEM9C,MAAM,CAAC8B;iBAEbrB,cAAc,CAACT,MAAD,EAAS8C,YAAT,EAPtB,EASK,OAAO9C,MAAM,CAACoE,IAAd,KAAuB,UAAvB,GAAoCpE,MAAM,CAACoE,IAAP,CAAYtB,YAAZ,CAApC,GAAgE9C,MAAM,CAACoE,IAT5E,CADkB;AAAA,aAArB,CADL,CAdJ,CADH,GA+BG,IAjHR,CADJ;;AAsHA,gBAAIjC,QAAJ,EAAc;AACV,qBAAOpB,4BAAA,MAAA;AAAKY,gBAAAA,SAAS,EAAE5C;eAAhB,EAAuCiE,MAAvC,CAAP;AACH;;AAED,mBACIjC,4BAAA,CAACsD,MAAD;AAAQC,cAAAA,UAAU,EAAC;aAAnB,EACK;AAAA,kBAAGC,MAAH,SAAGA,MAAH;AAAA,kBAAWC,GAAX,SAAWA,GAAX;AAAA,qBACGzD,4BAAA,MAAA;AAAKY,gBAAAA,SAAS,EAAE5C;AAAsByF,gBAAAA,GAAG,EAAEA;eAA3C,EACKD,MAAM,GAAGvB,MAAH,GAAY,IADvB,CADH;AAAA,aADL,CADJ;AASH;AA/IL,SAFsB;AAAA,OAA1B;AAoJH;AACJ,GAvJD;;AAwJAV,EAAAA,MAAM,CAACmC,UAAP,GAAoB,eAApB;AACA,SAAOnC,MAAP;AACH;;;;"}
1
+ {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
1
+ {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
1
+ {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","props","onChange","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","props","onChange","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowCreation.js","sources":["../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, TableRef } from '../types';\n\nexport const insertChildTableRow = <TRow,>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow,>(data: Row<TRow>[], tableRef: React.RefObject<TableRef>): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n"],"names":["insertChildTableRow","data","rowIndexPath","values","undefined","nexTRow","JSON","parse","stringify","childRowIndexPath","rowIndexes","convertRowIndexPathToNumberArray","currentRow","getByRowIndexPath","join","nextSubRows","subRows","path","map","i","unshift","set","push","removeChildTableRow","rootIndex","Number","shift","length","unsetPath","index","unset","pop","setPath","compact","get","pullAt","useTableRowCreation","tableRef","React","useState","internalData","setInternalData","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
1
+ {"version":3,"file":"useRowCreation.js","sources":["../../../../../src/components/Table/hooks/useRowCreation.tsx"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport get from 'lodash/get';\nimport compact from 'lodash/compact';\nimport pullAt from 'lodash/pullAt';\n\nimport { convertRowIndexPathToNumberArray, getByRowIndexPath, getParentRowIndexPath } from '../util/rowIndexPath';\nimport { Row, RowIndexPath, TableRef } from '../types';\n\nexport const insertChildTableRow = <TRow,>(\n data: Row<TRow>[],\n rowIndexPath: RowIndexPath = undefined,\n values: any = {}\n): [Row<TRow>[], RowIndexPath] => {\n const nexTRow: Row<TRow>[] = JSON.parse(JSON.stringify(data));\n\n let childRowIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));\n const nextSubRows = currentRow?.subRows ?? [];\n\n const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';\n nextSubRows.unshift(values);\n set(nexTRow, path, nextSubRows);\n\n // rebuild the new id\n rowIndexes.push(0);\n childRowIndexPath = rowIndexes.join('.');\n } else {\n nexTRow.unshift(values);\n childRowIndexPath = '0';\n }\n\n return [nexTRow, childRowIndexPath];\n};\n\nexport const removeChildTableRow = <TRow,>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow>[] => {\n const nexTRow = JSON.parse(JSON.stringify(data));\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = Number(rowIndexes.shift());\n\n if (rowIndexes.length) {\n // unset\n const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');\n unset(nexTRow[rootIndex], unsetPath);\n\n // remove empty value from subRows\n rowIndexes.pop();\n const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';\n set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));\n } else {\n pullAt(nexTRow, rootIndex);\n }\n\n return nexTRow;\n};\n\nexport type useTableRowCreation<TRow> = {\n data: Row<TRow>[];\n create: (rowIndexPath: RowIndexPath, values?: object | undefined) => RowIndexPath;\n remove: (rowIndexPath: RowIndexPath) => void;\n isCreating: boolean;\n};\n\nexport const useTableRowCreation = <TRow,>(data: Row<TRow>[], tableRef: React.RefObject<TableRef>): useTableRowCreation<TRow> => {\n const [internalData, setInternalData] = React.useState(JSON.parse(JSON.stringify(data)));\n const [activeRowIndexPath, setActiveRowIndexPath] = React.useState<string | undefined>(undefined);\n\n React.useEffect(() => {\n if (activeRowIndexPath !== undefined) {\n // keep the same edit key, so that we don't remount the row/form\n const currentRow: any = getByRowIndexPath(internalData, activeRowIndexPath);\n\n // get the active creation rows parent\n const parentId = getParentRowIndexPath(activeRowIndexPath);\n\n // insert a new empty row in the external data (with the same key)\n const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow);\n\n // update and set that row as active, we basically just changed it's position in our internal data\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(currentRow?._createKey);\n }\n } else {\n setInternalData(data);\n }\n }, [JSON.stringify(data)]);\n\n const create = (rowIndexPath: RowIndexPath = undefined, values: object | undefined = {}): RowIndexPath => {\n const _createKey = uuid();\n const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values, _createKey });\n setActiveRowIndexPath(newRowIndexPath);\n setInternalData(nexTRow);\n\n if (tableRef?.current) {\n tableRef.current.instance.toggleRowEditing(_createKey);\n }\n\n return newRowIndexPath;\n };\n\n const remove = (rowIndexPath: any): void => {\n const nexTRow = removeChildTableRow(internalData, rowIndexPath);\n setInternalData(nexTRow);\n setActiveRowIndexPath(undefined);\n };\n\n return {\n data: internalData,\n create,\n remove,\n isCreating: activeRowIndexPath !== undefined,\n };\n};\n"],"names":["insertChildTableRow","data","rowIndexPath","values","undefined","nexTRow","JSON","parse","stringify","childRowIndexPath","rowIndexes","convertRowIndexPathToNumberArray","currentRow","getByRowIndexPath","join","nextSubRows","subRows","path","map","i","unshift","set","push","removeChildTableRow","rootIndex","Number","shift","length","unsetPath","index","unset","pop","setPath","compact","get","pullAt","useTableRowCreation","tableRef","React","useState","internalData","setInternalData","activeRowIndexPath","setActiveRowIndexPath","useEffect","parentId","getParentRowIndexPath","newRowIndexPath","current","instance","toggleRowEditing","_createKey","create","uuid","remove","isCreating"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Provider';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _1,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // eslint-disable-next-line\n // @ts-ignore: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes, []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","useLocalization","texts","getColumnsFromChildren","columns","defaultSortRules","manualPagination","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","headerGroups","prepareBaseRow","prepareRow","page","gotoPage","setPageSize","visibleRows","useTableKeyboardNavigation","setActiveIndex","handleKeyDown","handleFocus","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Provider';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _1,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // eslint-disable-next-line\n // @ts-ignore: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes, []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","useLocalization","texts","getColumnsFromChildren","columns","defaultSortRules","manualPagination","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","headerGroups","prepareBaseRow","prepareRow","page","gotoPage","setPageSize","visibleRows","useTableKeyboardNavigation","setActiveIndex","handleKeyDown","handleFocus","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableKeyboardNavigation.js","sources":["../../../../../src/components/Table/hooks/useTableKeyboardNavigation.ts"],"sourcesContent":["import React from 'react';\nimport keycode from 'keycode';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { getNextIndexFromKeycode } from '../../../utils/hooks/useListKeyboardNavigation';\nimport { sanitizeRowProps } from '../util';\nimport { TableProps } from '../types';\n\nexport const useTableKeyboardNavigation = <T extends {}>(\n props: TableProps<T>,\n rows: any[],\n rowProps: any,\n ref: React.RefObject<HTMLDivElement>\n): [\n number | undefined,\n (index: number) => void,\n (event: React.KeyboardEvent<HTMLElement>) => void,\n (event: React.FocusEvent<HTMLElement>) => void\n] => {\n const useGlobalKeyboardNavigation = props.dangerouslyHijackGlobalKeyboardNavigation;\n\n const [activeIndex, setActiveIndex] = useControllableState<number | undefined>({\n prop: props.activeIndex,\n defaultProp:\n props.defaultActiveIndex !== undefined ? props.defaultActiveIndex : useGlobalKeyboardNavigation ? 0 : undefined,\n onChange: props.onChangeActiveIndex,\n });\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const isModifierKeyPressed = event.metaKey || event.ctrlKey || event.altKey || event.shiftKey;\n\n if (\n useGlobalKeyboardNavigation &&\n document.activeElement !== ref.current &&\n document.activeElement?.getAttribute('type') !== 'search' &&\n document.activeElement !== document.body\n ) {\n return;\n }\n // abort key handling if other elements inside table are focused and we don't use global keyboard navigation\n if (!useGlobalKeyboardNavigation && document.activeElement !== ref.current) {\n return;\n }\n\n if (activeIndex !== undefined) {\n const currentRow = rows[activeIndex];\n\n if (currentRow) {\n const sanitizedRow = sanitizeRowProps(currentRow, rowProps.rowExpansionRenderer);\n\n if (rowProps.onRowClick && event.keyCode === keycode('enter')) {\n event.preventDefault();\n rowProps.onRowClick(sanitizedRow);\n return;\n }\n\n if (currentRow.toggleRowSelected && event.keyCode === keycode('space')) {\n event.preventDefault();\n currentRow.toggleRowSelected();\n return;\n }\n\n if (currentRow.toggleRowExpanded) {\n if (currentRow.isExpanded && event.keyCode === keycode('left')) {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n } else if (!currentRow.isExpanded && event.keyCode === keycode('right')) {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n }\n }\n\n // inline editing\n if (currentRow.toggleRowEditing) {\n if (currentRow.canEdit && !currentRow.isEditing) {\n if (rowProps.onRowCreate && event.shiftKey && event.keyCode === keycode('n')) {\n event.preventDefault();\n\n if (!currentRow.isExpanded) {\n currentRow.toggleRowExpanded();\n }\n\n rowProps.onRowCreate(sanitizedRow, event);\n return;\n }\n\n if (event.keyCode === keycode('e')) {\n event.preventDefault();\n currentRow.toggleRowEditing();\n return;\n }\n }\n }\n\n if (rowProps.onRowEdit && event.keyCode === keycode('e') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowEdit(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowCopy && event.keyCode === keycode('c') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowCopy(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowDelete && event.keyCode === keycode('delete') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowDelete(sanitizedRow, event);\n return;\n }\n }\n }\n\n const nextIndex = getNextIndexFromKeycode(event.keyCode, rows.length, activeIndex);\n\n if (nextIndex !== undefined) {\n event.preventDefault();\n setActiveIndex(nextIndex);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n if (!useGlobalKeyboardNavigation) {\n onKeyDown(event.nativeEvent);\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown]);\n\n const handleFocus = (): void => {\n if (activeIndex === undefined && rows.length) {\n setActiveIndex(0);\n }\n };\n\n return [activeIndex, setActiveIndex, handleKeyDown, handleFocus];\n};\n"],"names":["useTableKeyboardNavigation","props","rows","rowProps","ref","useGlobalKeyboardNavigation","dangerouslyHijackGlobalKeyboardNavigation","useControllableState","prop","activeIndex","defaultProp","defaultActiveIndex","undefined","onChange","onChangeActiveIndex","setActiveIndex","onKeyDown","event","isModifierKeyPressed","metaKey","ctrlKey","altKey","shiftKey","document","activeElement","current","getAttribute","body","currentRow","sanitizedRow","sanitizeRowProps","rowExpansionRenderer","onRowClick","keyCode","keycode","preventDefault","toggleRowSelected","toggleRowExpanded","isExpanded","toggleRowEditing","canEdit","isEditing","onRowCreate","onRowEdit","onRowCopy","onRowDelete","nextIndex","getNextIndexFromKeycode","length","handleKeyDown","nativeEvent","React","useEffect","window","addEventListener","removeEventListener","handleFocus"],"mappings":"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"}
1
+ {"version":3,"file":"useTableKeyboardNavigation.js","sources":["../../../../../src/components/Table/hooks/useTableKeyboardNavigation.ts"],"sourcesContent":["import React from 'react';\nimport keycode from 'keycode';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { getNextIndexFromKeycode } from '../../../utils/hooks/useListKeyboardNavigation';\nimport { sanitizeRowProps } from '../util';\nimport { TableProps } from '../types';\n\nexport const useTableKeyboardNavigation = <T extends {}>(\n props: TableProps<T>,\n rows: any[],\n rowProps: any,\n ref: React.RefObject<HTMLDivElement>\n): [\n number | undefined,\n (index: number) => void,\n (event: React.KeyboardEvent<HTMLElement>) => void,\n (event: React.FocusEvent<HTMLElement>) => void\n] => {\n const useGlobalKeyboardNavigation = props.dangerouslyHijackGlobalKeyboardNavigation;\n\n const [activeIndex, setActiveIndex] = useControllableState<number | undefined>({\n prop: props.activeIndex,\n defaultProp:\n props.defaultActiveIndex !== undefined ? props.defaultActiveIndex : useGlobalKeyboardNavigation ? 0 : undefined,\n onChange: props.onChangeActiveIndex,\n });\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const isModifierKeyPressed = event.metaKey || event.ctrlKey || event.altKey || event.shiftKey;\n\n if (\n useGlobalKeyboardNavigation &&\n document.activeElement !== ref.current &&\n document.activeElement?.getAttribute('type') !== 'search' &&\n document.activeElement !== document.body\n ) {\n return;\n }\n // abort key handling if other elements inside table are focused and we don't use global keyboard navigation\n if (!useGlobalKeyboardNavigation && document.activeElement !== ref.current) {\n return;\n }\n\n if (activeIndex !== undefined) {\n const currentRow = rows[activeIndex];\n\n if (currentRow) {\n const sanitizedRow = sanitizeRowProps(currentRow, rowProps.rowExpansionRenderer);\n\n if (rowProps.onRowClick && event.keyCode === keycode('enter')) {\n event.preventDefault();\n rowProps.onRowClick(sanitizedRow);\n return;\n }\n\n if (currentRow.toggleRowSelected && event.keyCode === keycode('space')) {\n event.preventDefault();\n currentRow.toggleRowSelected();\n return;\n }\n\n if (currentRow.toggleRowExpanded) {\n if (currentRow.isExpanded && event.keyCode === keycode('left')) {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n } else if (!currentRow.isExpanded && event.keyCode === keycode('right')) {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n }\n }\n\n // inline editing\n if (currentRow.toggleRowEditing) {\n if (currentRow.canEdit && !currentRow.isEditing) {\n if (rowProps.onRowCreate && event.shiftKey && event.keyCode === keycode('n')) {\n event.preventDefault();\n\n if (!currentRow.isExpanded) {\n currentRow.toggleRowExpanded();\n }\n\n rowProps.onRowCreate(sanitizedRow, event);\n return;\n }\n\n if (event.keyCode === keycode('e')) {\n event.preventDefault();\n currentRow.toggleRowEditing();\n return;\n }\n }\n }\n\n if (rowProps.onRowEdit && event.keyCode === keycode('e') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowEdit(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowCopy && event.keyCode === keycode('c') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowCopy(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowDelete && event.keyCode === keycode('delete') && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowDelete(sanitizedRow, event);\n return;\n }\n }\n }\n\n const nextIndex = getNextIndexFromKeycode(event.keyCode, rows.length, activeIndex);\n\n if (nextIndex !== undefined) {\n event.preventDefault();\n setActiveIndex(nextIndex);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n if (!useGlobalKeyboardNavigation) {\n onKeyDown(event.nativeEvent);\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown]);\n\n const handleFocus = (): void => {\n if (activeIndex === undefined && rows.length) {\n setActiveIndex(0);\n }\n };\n\n return [activeIndex, setActiveIndex, handleKeyDown, handleFocus];\n};\n"],"names":["useTableKeyboardNavigation","props","rows","rowProps","ref","useGlobalKeyboardNavigation","dangerouslyHijackGlobalKeyboardNavigation","useControllableState","prop","activeIndex","defaultProp","defaultActiveIndex","undefined","onChange","onChangeActiveIndex","setActiveIndex","onKeyDown","event","isModifierKeyPressed","metaKey","ctrlKey","altKey","shiftKey","document","activeElement","current","getAttribute","body","currentRow","sanitizedRow","sanitizeRowProps","rowExpansionRenderer","onRowClick","keyCode","keycode","preventDefault","toggleRowSelected","toggleRowExpanded","isExpanded","toggleRowEditing","canEdit","isEditing","onRowCreate","onRowEdit","onRowCopy","onRowDelete","nextIndex","getNextIndexFromKeycode","length","handleKeyDown","nativeEvent","React","useEffect","window","addEventListener","removeEventListener","handleFocus"],"mappings":";;;;;;IAOaA,0BAA0B,GAAG,SAA7BA,0BAA6B,CACtCC,KADsC,EAEtCC,IAFsC,EAGtCC,QAHsC,EAItCC,GAJsC;EAWtC,IAAMC,2BAA2B,GAAGJ,KAAK,CAACK,yCAA1C;;EAEA,4BAAsCC,oBAAoB,CAAqB;IAC3EC,IAAI,EAAEP,KAAK,CAACQ,WAD+D;IAE3EC,WAAW,EACPT,KAAK,CAACU,kBAAN,KAA6BC,SAA7B,GAAyCX,KAAK,CAACU,kBAA/C,GAAoEN,2BAA2B,GAAG,CAAH,GAAOO,SAH/B;IAI3EC,QAAQ,EAAEZ,KAAK,CAACa;GAJsC,CAA1D;MAAOL,WAAP;MAAoBM,cAApB;;EAOA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;;;IACd,IAAMC,oBAAoB,GAAGD,KAAK,CAACE,OAAN,IAAiBF,KAAK,CAACG,OAAvB,IAAkCH,KAAK,CAACI,MAAxC,IAAkDJ,KAAK,CAACK,QAArF;;IAEA,IACIjB,2BAA2B,IAC3BkB,QAAQ,CAACC,aAAT,KAA2BpB,GAAG,CAACqB,OAD/B,IAEA,0BAAAF,QAAQ,CAACC,aAAT,gFAAwBE,YAAxB,CAAqC,MAArC,OAAiD,QAFjD,IAGAH,QAAQ,CAACC,aAAT,KAA2BD,QAAQ,CAACI,IAJxC,EAKE;MACE;;;;IAGJ,IAAI,CAACtB,2BAAD,IAAgCkB,QAAQ,CAACC,aAAT,KAA2BpB,GAAG,CAACqB,OAAnE,EAA4E;MACxE;;;IAGJ,IAAIhB,WAAW,KAAKG,SAApB,EAA+B;MAC3B,IAAMgB,UAAU,GAAG1B,IAAI,CAACO,WAAD,CAAvB;;MAEA,IAAImB,UAAJ,EAAgB;QACZ,IAAMC,YAAY,GAAGC,gBAAgB,CAACF,UAAD,EAAazB,QAAQ,CAAC4B,oBAAtB,CAArC;;QAEA,IAAI5B,QAAQ,CAAC6B,UAAT,IAAuBf,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAApD,EAA+D;UAC3DjB,KAAK,CAACkB,cAAN;UACAhC,QAAQ,CAAC6B,UAAT,CAAoBH,YAApB;UACA;;;QAGJ,IAAID,UAAU,CAACQ,iBAAX,IAAgCnB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAA7D,EAAwE;UACpEjB,KAAK,CAACkB,cAAN;UACAP,UAAU,CAACQ,iBAAX;UACA;;;QAGJ,IAAIR,UAAU,CAACS,iBAAf,EAAkC;UAC9B,IAAIT,UAAU,CAACU,UAAX,IAAyBrB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,MAAD,CAAtD,EAAgE;YAC5DjB,KAAK,CAACkB,cAAN;YACAP,UAAU,CAACS,iBAAX;YACA;WAHJ,MAIO,IAAI,CAACT,UAAU,CAACU,UAAZ,IAA0BrB,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,OAAD,CAAvD,EAAkE;YACrEjB,KAAK,CAACkB,cAAN;YACAP,UAAU,CAACS,iBAAX;YACA;;SAvBI;;;QA4BZ,IAAIT,UAAU,CAACW,gBAAf,EAAiC;UAC7B,IAAIX,UAAU,CAACY,OAAX,IAAsB,CAACZ,UAAU,CAACa,SAAtC,EAAiD;YAC7C,IAAItC,QAAQ,CAACuC,WAAT,IAAwBzB,KAAK,CAACK,QAA9B,IAA0CL,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,GAAD,CAAvE,EAA8E;cAC1EjB,KAAK,CAACkB,cAAN;;cAEA,IAAI,CAACP,UAAU,CAACU,UAAhB,EAA4B;gBACxBV,UAAU,CAACS,iBAAX;;;cAGJlC,QAAQ,CAACuC,WAAT,CAAqBb,YAArB,EAAmCZ,KAAnC;cACA;;;YAGJ,IAAIA,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,GAAD,CAA7B,EAAoC;cAChCjB,KAAK,CAACkB,cAAN;cACAP,UAAU,CAACW,gBAAX;cACA;;;;;QAKZ,IAAIpC,QAAQ,CAACwC,SAAT,IAAsB1B,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,GAAD,CAA/C,IAAwD,CAAChB,oBAA7D,EAAmF;UAC/ED,KAAK,CAACkB,cAAN;UACAhC,QAAQ,CAACwC,SAAT,CAAmBd,YAAnB,EAAiCZ,KAAjC;UACA;;;QAGJ,IAAId,QAAQ,CAACyC,SAAT,IAAsB3B,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,GAAD,CAA/C,IAAwD,CAAChB,oBAA7D,EAAmF;UAC/ED,KAAK,CAACkB,cAAN;UACAhC,QAAQ,CAACyC,SAAT,CAAmBf,YAAnB,EAAiCZ,KAAjC;UACA;;;QAGJ,IAAId,QAAQ,CAAC0C,WAAT,IAAwB5B,KAAK,CAACgB,OAAN,KAAkBC,OAAO,CAAC,QAAD,CAAjD,IAA+D,CAAChB,oBAApE,EAA0F;UACtFD,KAAK,CAACkB,cAAN;UACAhC,QAAQ,CAAC0C,WAAT,CAAqBhB,YAArB,EAAmCZ,KAAnC;UACA;;;;;IAKZ,IAAM6B,SAAS,GAAGC,uBAAuB,CAAC9B,KAAK,CAACgB,OAAP,EAAgB/B,IAAI,CAAC8C,MAArB,EAA6BvC,WAA7B,CAAzC;;IAEA,IAAIqC,SAAS,KAAKlC,SAAlB,EAA6B;MACzBK,KAAK,CAACkB,cAAN;MACApB,cAAc,CAAC+B,SAAD,CAAd;;GA5FR;;EAgGA,IAAMG,aAAa,GAAG,SAAhBA,aAAgB,CAAChC,KAAD;IAClB,IAAI,CAACZ,2BAAL,EAAkC;MAC9BW,SAAS,CAACC,KAAK,CAACiC,WAAP,CAAT;;GAFR;;EAMAC,cAAK,CAACC,SAAN,CAAgB;IACZ,IAAI/C,2BAAJ,EAAiC;MAC7BgD,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCtC,SAAnC;;;IAGJ,OAAO;MACH,IAAIX,2BAAJ,EAAiC;QAC7BgD,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsCvC,SAAtC;;KAFR;GALJ,EAUG,CAACA,SAAD,CAVH;;EAYA,IAAMwC,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAI/C,WAAW,KAAKG,SAAhB,IAA6BV,IAAI,CAAC8C,MAAtC,EAA8C;MAC1CjC,cAAc,CAAC,CAAD,CAAd;;GAFR;;EAMA,OAAO,CAACN,WAAD,EAAcM,cAAd,EAA8BkC,aAA9B,EAA6CO,WAA7C,CAAP;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderColumn.js","sources":["../../../../../src/components/Table/util/renderColumn.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../../Icon/Icon';\n\nexport const Column = ({ cell }: any): any => {\n const props = {\n ...cell.getHeaderProps(),\n ...(cell.getSortByToggleProps && cell.getSortByToggleProps({ title: undefined })),\n className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-darkest hover:text-black', cell.className, {\n 'yt-table__cell__group': !!cell.columns,\n 'cursor-pointer': !cell.disableSorting,\n 'justify-start text-left': cell.align === 'left',\n 'justify-end text-right': cell.align === 'right',\n 'justify-center text-center': cell.align === 'center' || !cell.align,\n }),\n style: { ...cell.style, flex: cell.flex },\n };\n\n if (cell.isSorted) {\n props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';\n }\n\n return (\n <div {...props} key={cell.id} data-taco=\"table-column\">\n <span className=\"truncate\">{cell.render('Header')}</span>\n {cell.isSorted ? (\n <Icon name={cell.isSortedDesc ? 'chevron-down-solid' : 'chevron-up-solid'} className=\"-mt-0.5\" />\n ) : null}\n </div>\n );\n};\n"],"names":["Column","cell","props","getHeaderProps","getSortByToggleProps","title","undefined","className","cn","columns","disableSorting","align","style","flex","isSorted","isSortedDesc","React","key","id","render","Icon","name"],"mappings":";;;;;IAIaA,MAAM,GAAG,SAATA,MAAS;MAAGC,YAAAA;;AACrB,MAAMC,KAAK,gBACJD,IAAI,CAACE,cAAL,EADI,EAEHF,IAAI,CAACG,oBAAL,IAA6BH,IAAI,CAACG,oBAAL,CAA0B;AAAEC,IAAAA,KAAK,EAAEC;AAAT,GAA1B,CAF1B;AAGPC,IAAAA,SAAS,EAAEC,EAAE,CAAC,yFAAD,EAA4FP,IAAI,CAACM,SAAjG,EAA4G;AACrH,+BAAyB,CAAC,CAACN,IAAI,CAACQ,OADqF;AAErH,wBAAkB,CAACR,IAAI,CAACS,cAF6F;AAGrH,iCAA2BT,IAAI,CAACU,KAAL,KAAe,MAH2E;AAIrH,gCAA0BV,IAAI,CAACU,KAAL,KAAe,OAJ4E;AAKrH,oCAA8BV,IAAI,CAACU,KAAL,KAAe,QAAf,IAA2B,CAACV,IAAI,CAACU;AALsD,KAA5G,CAHN;AAUPC,IAAAA,KAAK,eAAOX,IAAI,CAACW,KAAZ;AAAmBC,MAAAA,IAAI,EAAEZ,IAAI,CAACY;AAA9B;AAVE,IAAX;;AAaA,MAAIZ,IAAI,CAACa,QAAT,EAAmB;AACfZ,IAAAA,KAAK,CAAC,WAAD,CAAL,GAAqBD,IAAI,CAACc,YAAL,GAAoB,YAApB,GAAmC,WAAxD;AACH;;AAED,SACIC,4BAAA,MAAA,oBAASd;AAAOe,IAAAA,GAAG,EAAEhB,IAAI,CAACiB;iBAAc;IAAxC,EACIF,4BAAA,OAAA;AAAMT,IAAAA,SAAS,EAAC;GAAhB,EAA4BN,IAAI,CAACkB,MAAL,CAAY,QAAZ,CAA5B,CADJ,EAEKlB,IAAI,CAACa,QAAL,GACGE,4BAAA,CAACI,IAAD;AAAMC,IAAAA,IAAI,EAAEpB,IAAI,CAACc,YAAL,GAAoB,oBAApB,GAA2C;AAAoBR,IAAAA,SAAS,EAAC;GAArF,CADH,GAEG,IAJR,CADJ;AAQH;;;;"}
1
+ {"version":3,"file":"renderColumn.js","sources":["../../../../../src/components/Table/util/renderColumn.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../../Icon/Icon';\n\nexport const Column = ({ cell }: any): any => {\n const props = {\n ...cell.getHeaderProps(),\n ...(cell.getSortByToggleProps && cell.getSortByToggleProps({ title: undefined })),\n className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-darkest hover:text-black', cell.className, {\n 'yt-table__cell__group': !!cell.columns,\n 'cursor-pointer': !cell.disableSorting,\n 'justify-start text-left': cell.align === 'left',\n 'justify-end text-right': cell.align === 'right',\n 'justify-center text-center': cell.align === 'center' || !cell.align,\n }),\n style: { ...cell.style, flex: cell.flex },\n };\n\n if (cell.isSorted) {\n props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';\n }\n\n return (\n <div {...props} key={cell.id} data-taco=\"table-column\">\n <span className=\"truncate\">{cell.render('Header')}</span>\n {cell.isSorted ? (\n <Icon name={cell.isSortedDesc ? 'chevron-down-solid' : 'chevron-up-solid'} className=\"-mt-0.5\" />\n ) : null}\n </div>\n );\n};\n"],"names":["Column","cell","props","getHeaderProps","getSortByToggleProps","title","undefined","className","cn","columns","disableSorting","align","style","flex","isSorted","isSortedDesc","React","key","id","render","Icon","name"],"mappings":";;;;;IAIaA,MAAM,GAAG,SAATA,MAAS;MAAGC,YAAAA;;EACrB,IAAMC,KAAK,gBACJD,IAAI,CAACE,cAAL,EADI,EAEHF,IAAI,CAACG,oBAAL,IAA6BH,IAAI,CAACG,oBAAL,CAA0B;IAAEC,KAAK,EAAEC;GAAnC,CAF1B;IAGPC,SAAS,EAAEC,EAAE,CAAC,yFAAD,EAA4FP,IAAI,CAACM,SAAjG,EAA4G;MACrH,yBAAyB,CAAC,CAACN,IAAI,CAACQ,OADqF;MAErH,kBAAkB,CAACR,IAAI,CAACS,cAF6F;MAGrH,2BAA2BT,IAAI,CAACU,KAAL,KAAe,MAH2E;MAIrH,0BAA0BV,IAAI,CAACU,KAAL,KAAe,OAJ4E;MAKrH,8BAA8BV,IAAI,CAACU,KAAL,KAAe,QAAf,IAA2B,CAACV,IAAI,CAACU;KALtD,CAHN;IAUPC,KAAK,eAAOX,IAAI,CAACW,KAAZ;MAAmBC,IAAI,EAAEZ,IAAI,CAACY;;IAVvC;;EAaA,IAAIZ,IAAI,CAACa,QAAT,EAAmB;IACfZ,KAAK,CAAC,WAAD,CAAL,GAAqBD,IAAI,CAACc,YAAL,GAAoB,YAApB,GAAmC,WAAxD;;;EAGJ,OACIC,4BAAA,MAAA,oBAASd;IAAOe,GAAG,EAAEhB,IAAI,CAACiB;iBAAc;IAAxC,EACIF,4BAAA,OAAA;IAAMT,SAAS,EAAC;GAAhB,EAA4BN,IAAI,CAACkB,MAAL,CAAY,QAAZ,CAA5B,CADJ,EAEKlB,IAAI,CAACa,QAAL,GACGE,4BAAA,CAACI,IAAD;IAAMC,IAAI,EAAEpB,IAAI,CAACc,YAAL,GAAoB,oBAApB,GAA2C;IAAoBR,SAAS,EAAC;GAArF,CADH,GAEG,IAJR,CADJ;AAQH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderRow.js","sources":["../../../../../src/components/Table/util/renderRow.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { FocusScope } from '@react-aria/focus';\nimport { InternalTableCell, TableRow } from '../types';\nimport { sanitizeRowProps } from '../util';\n\nconst renderCell = (cell: InternalTableCell, row: TableRow<any>): JSX.Element => {\n const props = {\n ...cell.getCellProps(),\n className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {\n 'justify-start text-left': cell.column.align === 'left',\n 'justify-end text-right': cell.column.align === 'right',\n 'text-center': !cell.column.align,\n }),\n style: {\n ...cell.column.style,\n flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex,\n },\n };\n return (\n <div {...props} role=\"gridcell\" data-taco=\"table-cell\">\n {cell.render('Cell') || null}\n </div>\n );\n};\n\nexport const Row = React.forwardRef(function TableRow({ row, index, instance, headerGroups, ...rowProps }: any, ref: any) {\n const {\n activeIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n setActiveIndex,\n style,\n inlineEditingUniqueId,\n } = rowProps;\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n\n const props = {\n ...row.getRowProps(),\n style: {\n ...style,\n minHeight: rowHeight ? `${rowHeight}px` : undefined,\n paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined,\n },\n className: cn(\n 'yt-table__row border-grey-light flex border-b min-h-[2.5rem] hover:bg-grey-light',\n {\n 'yt-table__row--active bg-grey-light hover:bg-grey-light': activeIndex === index,\n 'yt-table__row--clickable': !!onRowClick,\n 'yt-table__row--dragging': !!row.isDragging,\n 'yt-table__row--editing': !!row.isEditing,\n },\n typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName\n ),\n onClick: onRowClick\n ? (event: React.MouseEvent<HTMLElement>) => {\n if (\n event.target === event.currentTarget ||\n (event.target as HTMLElement).classList.contains('yt-table__cell')\n ) {\n event.preventDefault();\n event.persist();\n setActiveIndex(index);\n onRowClick(sanitizedRow);\n }\n }\n : () => {\n setActiveIndex(index);\n },\n };\n\n let cells = row.cells;\n\n if (row.depth > 0) {\n cells = row.cells.filter((cell: any) => !cell.column.hiddenOnSubRows);\n }\n\n const expandedRow = rowExpansionRenderer && row.isExpanded && <div>{rowExpansionRenderer(sanitizedRow, instance)}</div>;\n const rowContent = React.useMemo(() => {\n return (\n <>\n <FocusScope key={row.original._createKey} contain restoreFocus autoFocus>\n <div {...props} role=\"row\" ref={ref}>\n <input type=\"hidden\" name=\"_rowIndexPath\" value={row.id} />\n <input type=\"hidden\" name=\"_inlineEditingUniqueId\" value={row.original[inlineEditingUniqueId]} />\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n </FocusScope>\n {expandedRow}\n </>\n );\n }, [row.original._createKey]);\n\n if (row.isEditing) {\n return rowContent;\n }\n\n return (\n <>\n <div {...props} role=\"row\" ref={ref}>\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n {expandedRow}\n </>\n );\n});\n"],"names":["renderCell","cell","row","props","getCellProps","className","cn","column","align","style","flex","React","role","render","Row","forwardRef","TableRow","ref","index","instance","rowProps","activeIndex","onRowClick","rowClassName","rowExpansionRenderer","rowHeight","setActiveIndex","inlineEditingUniqueId","sanitizedRow","sanitizeRowProps","getRowProps","minHeight","undefined","paddingLeft","depth","isDragging","isEditing","onClick","event","target","currentTarget","classList","contains","preventDefault","persist","cells","filter","hiddenOnSubRows","expandedRow","isExpanded","rowContent","useMemo","FocusScope","key","original","_createKey","contain","restoreFocus","autoFocus","type","name","value","id","map"],"mappings":"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"}
1
+ {"version":3,"file":"renderRow.js","sources":["../../../../../src/components/Table/util/renderRow.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { FocusScope } from '@react-aria/focus';\nimport { InternalTableCell, TableRow } from '../types';\nimport { sanitizeRowProps } from '../util';\n\nconst renderCell = (cell: InternalTableCell, row: TableRow<any>): JSX.Element => {\n const props = {\n ...cell.getCellProps(),\n className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {\n 'justify-start text-left': cell.column.align === 'left',\n 'justify-end text-right': cell.column.align === 'right',\n 'text-center': !cell.column.align,\n }),\n style: {\n ...cell.column.style,\n flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex,\n },\n };\n return (\n <div {...props} role=\"gridcell\" data-taco=\"table-cell\">\n {cell.render('Cell') || null}\n </div>\n );\n};\n\nexport const Row = React.forwardRef(function TableRow({ row, index, instance, headerGroups, ...rowProps }: any, ref: any) {\n const {\n activeIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n setActiveIndex,\n style,\n inlineEditingUniqueId,\n } = rowProps;\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n\n const props = {\n ...row.getRowProps(),\n style: {\n ...style,\n minHeight: rowHeight ? `${rowHeight}px` : undefined,\n paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined,\n },\n className: cn(\n 'yt-table__row border-grey-light flex border-b min-h-[2.5rem] hover:bg-grey-light',\n {\n 'yt-table__row--active bg-grey-light hover:bg-grey-light': activeIndex === index,\n 'yt-table__row--clickable': !!onRowClick,\n 'yt-table__row--dragging': !!row.isDragging,\n 'yt-table__row--editing': !!row.isEditing,\n },\n typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName\n ),\n onClick: onRowClick\n ? (event: React.MouseEvent<HTMLElement>) => {\n if (\n event.target === event.currentTarget ||\n (event.target as HTMLElement).classList.contains('yt-table__cell')\n ) {\n event.preventDefault();\n event.persist();\n setActiveIndex(index);\n onRowClick(sanitizedRow);\n }\n }\n : () => {\n setActiveIndex(index);\n },\n };\n\n let cells = row.cells;\n\n if (row.depth > 0) {\n cells = row.cells.filter((cell: any) => !cell.column.hiddenOnSubRows);\n }\n\n const expandedRow = rowExpansionRenderer && row.isExpanded && <div>{rowExpansionRenderer(sanitizedRow, instance)}</div>;\n const rowContent = React.useMemo(() => {\n return (\n <>\n <FocusScope key={row.original._createKey} contain restoreFocus autoFocus>\n <div {...props} role=\"row\" ref={ref}>\n <input type=\"hidden\" name=\"_rowIndexPath\" value={row.id} />\n <input type=\"hidden\" name=\"_inlineEditingUniqueId\" value={row.original[inlineEditingUniqueId]} />\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n </FocusScope>\n {expandedRow}\n </>\n );\n }, [row.original._createKey]);\n\n if (row.isEditing) {\n return rowContent;\n }\n\n return (\n <>\n <div {...props} role=\"row\" ref={ref}>\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n {expandedRow}\n </>\n );\n});\n"],"names":["renderCell","cell","row","props","getCellProps","className","cn","column","align","style","flex","React","role","render","Row","forwardRef","TableRow","ref","index","instance","rowProps","activeIndex","onRowClick","rowClassName","rowExpansionRenderer","rowHeight","setActiveIndex","inlineEditingUniqueId","sanitizedRow","sanitizeRowProps","getRowProps","minHeight","undefined","paddingLeft","depth","isDragging","isEditing","onClick","event","target","currentTarget","classList","contains","preventDefault","persist","cells","filter","hiddenOnSubRows","expandedRow","isExpanded","rowContent","useMemo","FocusScope","key","original","_createKey","contain","restoreFocus","autoFocus","type","name","value","id","map"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowIndexPath.js","sources":["../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\nimport { Row, RowIndexPath } from '../types';\n\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\n rowIndexPath?.split('.').map(Number) ?? [];\n\nexport const getByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\n if (!rowIndexPath) {\n return undefined;\n }\n\n const currenTRow = [...data];\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\n\n if (indexes.length) {\n const startIndex = indexes.shift() as number;\n return indexes.reduce((value, index) => value?.subRows?.[index], currenTRow[startIndex]);\n }\n\n return undefined;\n};\n\nexport const setByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\n const nexTRow = [...data];\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = rowIndexes.shift() as number;\n\n if (rowIndexes.length) {\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\n set(nexTRow[rootIndex], path, values);\n } else {\n nexTRow[rootIndex] = values;\n }\n\n return nexTRow;\n};\n\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\n let parentIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n rowIndexes.pop();\n\n if (rowIndexes.length) {\n parentIndexPath = rowIndexes.join('.');\n }\n }\n\n return parentIndexPath;\n};\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;IAGaA,gCAAgC,GAAG,SAAnCA,gCAAmC,CAACC,YAAD;AAAA;;AAAA,kCAC5CA,YAD4C,aAC5CA,YAD4C,uBAC5CA,YAAY,CAAEC,KAAd,CAAoB,GAApB,EAAyBC,GAAzB,CAA6BC,MAA7B,CAD4C,yEACJ,EADI;AAAA;IAGnCC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAOC,IAAP,EAA0BL,YAA1B;AAC7B,MAAI,CAACA,YAAL,EAAmB;AACf,WAAOM,SAAP;AACH;;AAED,MAAMC,UAAU,aAAOF,IAAP,CAAhB;AACA,MAAMG,OAAO,GAAGT,gCAAgC,CAACU,MAAM,CAACT,YAAD,CAAP,CAAhD;;AAEA,MAAIQ,OAAO,CAACE,MAAZ,EAAoB;AAChB,QAAMC,UAAU,GAAGH,OAAO,CAACI,KAAR,EAAnB;AACA,WAAOJ,OAAO,CAACK,MAAR,CAAe,UAACC,KAAD,EAAQC,KAAR;AAAA;;AAAA,aAAkBD,KAAlB,aAAkBA,KAAlB,yCAAkBA,KAAK,CAAEE,OAAzB,mDAAkB,eAAiBD,KAAjB,CAAlB;AAAA,KAAf,EAA0DR,UAAU,CAACI,UAAD,CAApE,CAAP;AACH;;AAED,SAAOL,SAAP;AACH;IAEYW,iBAAiB,GAAG,SAApBA,iBAAoB,CAAOZ,IAAP,EAA0BL,YAA1B,EAAsDkB,MAAtD;AAC7B,MAAMC,OAAO,aAAOd,IAAP,CAAb;AAEA,MAAMe,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;AACA,MAAMqB,SAAS,GAAGD,UAAU,CAACR,KAAX,EAAlB;;AAEA,MAAIQ,UAAU,CAACV,MAAf,EAAuB;AACnB,QAAMY,IAAI,GAAGF,UAAU,CAAClB,GAAX,CAAe,UAAAa,KAAK;AAAA,0BAAeA,KAAf;AAAA,KAApB,EAA6CQ,IAA7C,CAAkD,GAAlD,CAAb;AACAC,IAAAA,GAAG,CAACL,OAAO,CAACE,SAAD,CAAR,EAAqBC,IAArB,EAA2BJ,MAA3B,CAAH;AACH,GAHD,MAGO;AACHC,IAAAA,OAAO,CAACE,SAAD,CAAP,GAAqBH,MAArB;AACH;;AAED,SAAOC,OAAP;AACH;IAEYM,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACzB,YAAD;AACjC,MAAI0B,eAAJ;;AAEA,MAAI1B,YAAJ,EAAkB;AACd,QAAMoB,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;AACAoB,IAAAA,UAAU,CAACO,GAAX;;AAEA,QAAIP,UAAU,CAACV,MAAf,EAAuB;AACnBgB,MAAAA,eAAe,GAAGN,UAAU,CAACG,IAAX,CAAgB,GAAhB,CAAlB;AACH;AACJ;;AAED,SAAOG,eAAP;AACH;;;;"}
1
+ {"version":3,"file":"rowIndexPath.js","sources":["../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\nimport { Row, RowIndexPath } from '../types';\n\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\n rowIndexPath?.split('.').map(Number) ?? [];\n\nexport const getByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\n if (!rowIndexPath) {\n return undefined;\n }\n\n const currenTRow = [...data];\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\n\n if (indexes.length) {\n const startIndex = indexes.shift() as number;\n return indexes.reduce((value, index) => value?.subRows?.[index], currenTRow[startIndex]);\n }\n\n return undefined;\n};\n\nexport const setByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\n const nexTRow = [...data];\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = rowIndexes.shift() as number;\n\n if (rowIndexes.length) {\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\n set(nexTRow[rootIndex], path, values);\n } else {\n nexTRow[rootIndex] = values;\n }\n\n return nexTRow;\n};\n\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\n let parentIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n rowIndexes.pop();\n\n if (rowIndexes.length) {\n parentIndexPath = rowIndexes.join('.');\n }\n }\n\n return parentIndexPath;\n};\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;IAGaA,gCAAgC,GAAG,SAAnCA,gCAAmC,CAACC,YAAD;EAAA;;EAAA,gCAC5CA,YAD4C,aAC5CA,YAD4C,uBAC5CA,YAAY,CAAEC,KAAd,CAAoB,GAApB,EAAyBC,GAAzB,CAA6BC,MAA7B,CAD4C,yEACJ,EADI;AAAA;IAGnCC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAOC,IAAP,EAA0BL,YAA1B;EAC7B,IAAI,CAACA,YAAL,EAAmB;IACf,OAAOM,SAAP;;;EAGJ,IAAMC,UAAU,aAAOF,IAAP,CAAhB;EACA,IAAMG,OAAO,GAAGT,gCAAgC,CAACU,MAAM,CAACT,YAAD,CAAP,CAAhD;;EAEA,IAAIQ,OAAO,CAACE,MAAZ,EAAoB;IAChB,IAAMC,UAAU,GAAGH,OAAO,CAACI,KAAR,EAAnB;IACA,OAAOJ,OAAO,CAACK,MAAR,CAAe,UAACC,KAAD,EAAQC,KAAR;MAAA;;MAAA,OAAkBD,KAAlB,aAAkBA,KAAlB,yCAAkBA,KAAK,CAAEE,OAAzB,mDAAkB,eAAiBD,KAAjB,CAAlB;KAAf,EAA0DR,UAAU,CAACI,UAAD,CAApE,CAAP;;;EAGJ,OAAOL,SAAP;AACH;IAEYW,iBAAiB,GAAG,SAApBA,iBAAoB,CAAOZ,IAAP,EAA0BL,YAA1B,EAAsDkB,MAAtD;EAC7B,IAAMC,OAAO,aAAOd,IAAP,CAAb;EAEA,IAAMe,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;EACA,IAAMqB,SAAS,GAAGD,UAAU,CAACR,KAAX,EAAlB;;EAEA,IAAIQ,UAAU,CAACV,MAAf,EAAuB;IACnB,IAAMY,IAAI,GAAGF,UAAU,CAAClB,GAAX,CAAe,UAAAa,KAAK;MAAA,oBAAeA,KAAf;KAApB,EAA6CQ,IAA7C,CAAkD,GAAlD,CAAb;IACAC,GAAG,CAACL,OAAO,CAACE,SAAD,CAAR,EAAqBC,IAArB,EAA2BJ,MAA3B,CAAH;GAFJ,MAGO;IACHC,OAAO,CAACE,SAAD,CAAP,GAAqBH,MAArB;;;EAGJ,OAAOC,OAAP;AACH;IAEYM,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACzB,YAAD;EACjC,IAAI0B,eAAJ;;EAEA,IAAI1B,YAAJ,EAAkB;IACd,IAAMoB,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;IACAoB,UAAU,CAACO,GAAX;;IAEA,IAAIP,UAAU,CAACV,MAAf,EAAuB;MACnBgB,eAAe,GAAGN,UAAU,CAACG,IAAX,CAAgB,GAAhB,CAAlB;;;;EAIR,OAAOG,eAAP;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sortTypes.js","sources":["../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\n\nconst getTime = (value: any): number | undefined => {\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\n};\n\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\n if (typeof amount === 'number') {\n return amount;\n }\n\n if (amount === null || !amount.length) {\n return undefined;\n }\n\n let value;\n\n if (decimalSeparator === ',') {\n // replace digit seperator then replace decimal separator\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\n } else {\n // replace digit seperator\n value = Number(amount.replace(/,/g, ''));\n }\n\n return Number.isNaN(value) ? undefined : value;\n};\n\nconst getString = (value: any): string | undefined => {\n if (value) {\n return String(value).toLowerCase();\n }\n\n return undefined;\n};\n\nconst guess = (value: any): any => {\n if (typeof value === 'boolean') {\n return !!value;\n }\n\n return isNaN(value) ? getString(value) : Number(value);\n};\n\nconst compareBasic = (a: any, b: any) => {\n // places undefined values first in ascending order instead of descending\n if (a !== undefined && b === undefined) {\n return 1;\n }\n\n return a === b ? 0 : a > b ? 1 : -1;\n};\n\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\n\nexport const sortTypes: Record<SortTypes, SortHandler<any>> = {\n datetime: (rowA, rowB, columnId) => {\n const a = getTime(rowA.values[columnId]);\n const b = getTime(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n string: (rowA, rowB, columnId) => {\n const a = getString(rowA.values[columnId]);\n const b = getString(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n number: (rowA, rowB, columnId) => {\n const a = getNumber(rowA.values[columnId]);\n const b = getNumber(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n boolean: (rowA, rowB, columnId) => {\n const a = !!rowA.values[columnId];\n const b = !!rowB.values[columnId];\n return compareBasic(a, b);\n },\n auto: (rowA, rowB, columnId) => {\n const a = guess(rowA.values[columnId]);\n const b = guess(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n};\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","sortTypes","datetime","rowA","rowB","columnId","values","string","number","auto"],"mappings":"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"}
1
+ {"version":3,"file":"sortTypes.js","sources":["../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\n\nconst getTime = (value: any): number | undefined => {\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\n};\n\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\n if (typeof amount === 'number') {\n return amount;\n }\n\n if (amount === null || !amount.length) {\n return undefined;\n }\n\n let value;\n\n if (decimalSeparator === ',') {\n // replace digit seperator then replace decimal separator\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\n } else {\n // replace digit seperator\n value = Number(amount.replace(/,/g, ''));\n }\n\n return Number.isNaN(value) ? undefined : value;\n};\n\nconst getString = (value: any): string | undefined => {\n if (value) {\n return String(value).toLowerCase();\n }\n\n return undefined;\n};\n\nconst guess = (value: any): any => {\n if (typeof value === 'boolean') {\n return !!value;\n }\n\n return isNaN(value) ? getString(value) : Number(value);\n};\n\nconst compareBasic = (a: any, b: any) => {\n // places undefined values first in ascending order instead of descending\n if (a !== undefined && b === undefined) {\n return 1;\n }\n\n return a === b ? 0 : a > b ? 1 : -1;\n};\n\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\n\nexport const sortTypes: Record<SortTypes, SortHandler<any>> = {\n datetime: (rowA, rowB, columnId) => {\n const a = getTime(rowA.values[columnId]);\n const b = getTime(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n string: (rowA, rowB, columnId) => {\n const a = getString(rowA.values[columnId]);\n const b = getString(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n number: (rowA, rowB, columnId) => {\n const a = getNumber(rowA.values[columnId]);\n const b = getNumber(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n boolean: (rowA, rowB, columnId) => {\n const a = !!rowA.values[columnId];\n const b = !!rowB.values[columnId];\n return compareBasic(a, b);\n },\n auto: (rowA, rowB, columnId) => {\n const a = guess(rowA.values[columnId]);\n const b = guess(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n};\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","sortTypes","datetime","rowA","rowB","columnId","values","string","number","auto"],"mappings":"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"}