@economic/taco 11.0.0 → 11.0.1-react-v19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
- package/dist/charts/components/Area/AreaChart.d.ts +1 -1
- package/dist/charts/components/Area/AreaChart.js.map +1 -1
- package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
- package/dist/charts/components/Bar/BarChart.d.ts +1 -1
- package/dist/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.d.ts +2 -2
- package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
- package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
- package/dist/charts/components/Donut/DonutChart.d.ts +1 -1
- package/dist/charts/components/Donut/DonutChart.js.map +1 -1
- package/dist/charts/components/Line/LineChart.cjs.map +1 -1
- package/dist/charts/components/Line/LineChart.d.ts +1 -1
- package/dist/charts/components/Line/LineChart.js.map +1 -1
- package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
- package/dist/charts/components/Pie/PieChart.d.ts +1 -1
- package/dist/charts/components/Pie/PieChart.js.map +1 -1
- package/dist/charts/components/Tooltip.cjs.map +1 -1
- package/dist/charts/components/Tooltip.d.ts +1 -1
- package/dist/charts/components/Tooltip.js.map +1 -1
- package/dist/charts/components/types.d.ts +2 -2
- package/dist/components/AlertDialog/AlertDialog.cjs.map +1 -1
- package/dist/components/AlertDialog/AlertDialog.d.ts +1 -1
- package/dist/components/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/Banner/util.cjs.map +1 -1
- package/dist/components/Banner/util.d.ts +2 -1
- package/dist/components/Banner/util.js.map +1 -1
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Combobox/Combobox.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.d.ts +1 -1
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Combobox/useCombobox.cjs.map +1 -1
- package/dist/components/Combobox/useCombobox.d.ts +1 -1
- package/dist/components/Combobox/useCombobox.js.map +1 -1
- package/dist/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +1 -1
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Dialog/components/Content.cjs.map +1 -1
- package/dist/components/Dialog/components/Content.d.ts +2 -2
- package/dist/components/Dialog/components/Content.js.map +1 -1
- package/dist/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts +1 -1
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/useDrawerStack.cjs +1 -1
- package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
- package/dist/components/Drawer/useDrawerStack.js +1 -1
- package/dist/components/Drawer/useDrawerStack.js.map +1 -1
- package/dist/components/Hanger/Hanger.cjs.map +1 -1
- package/dist/components/Hanger/Hanger.d.ts +1 -1
- package/dist/components/Hanger/Hanger.js.map +1 -1
- package/dist/components/Header/components/Agreement/Display.cjs.map +1 -1
- package/dist/components/Header/components/Agreement/Display.d.ts +1 -1
- package/dist/components/Header/components/Agreement/Display.js.map +1 -1
- package/dist/components/Header/components/Agreement/Item.cjs.map +1 -1
- package/dist/components/Header/components/Agreement/Item.d.ts +1 -1
- package/dist/components/Header/components/Agreement/Item.js.map +1 -1
- package/dist/components/Header/components/Link.cjs.map +1 -1
- package/dist/components/Header/components/Link.d.ts +1 -1
- package/dist/components/Header/components/Link.js.map +1 -1
- package/dist/components/Icon/components/AccountPreview.cjs.map +1 -1
- package/dist/components/Icon/components/AccountPreview.js.map +1 -1
- package/dist/components/Icon/components/Accounting.cjs.map +1 -1
- package/dist/components/Icon/components/Accounting.js.map +1 -1
- package/dist/components/Icon/components/AccountingYear.cjs.map +1 -1
- package/dist/components/Icon/components/AccountingYear.js.map +1 -1
- package/dist/components/Icon/components/AccountingYearCancel.cjs.map +1 -1
- package/dist/components/Icon/components/AccountingYearCancel.js.map +1 -1
- package/dist/components/Icon/components/AiChatSolid.cjs.map +1 -1
- package/dist/components/Icon/components/AiChatSolid.js.map +1 -1
- package/dist/components/Icon/components/AiStars.cjs.map +1 -1
- package/dist/components/Icon/components/AiStars.js.map +1 -1
- package/dist/components/Icon/components/ArrowBottom.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowBottom.js.map +1 -1
- package/dist/components/Icon/components/ArrowDown.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowDown.js.map +1 -1
- package/dist/components/Icon/components/ArrowEnd.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowEnd.js.map +1 -1
- package/dist/components/Icon/components/ArrowLeft.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowLeft.js.map +1 -1
- package/dist/components/Icon/components/ArrowRight.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowRight.js.map +1 -1
- package/dist/components/Icon/components/ArrowStart.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowStart.js.map +1 -1
- package/dist/components/Icon/components/ArrowTop.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowTop.js.map +1 -1
- package/dist/components/Icon/components/ArrowUp.cjs.map +1 -1
- package/dist/components/Icon/components/ArrowUp.js.map +1 -1
- package/dist/components/Icon/components/Attach.cjs.map +1 -1
- package/dist/components/Icon/components/Attach.js.map +1 -1
- package/dist/components/Icon/components/AttachAuto.cjs.map +1 -1
- package/dist/components/Icon/components/AttachAuto.js.map +1 -1
- package/dist/components/Icon/components/AttachCancel.cjs.map +1 -1
- package/dist/components/Icon/components/AttachCancel.js.map +1 -1
- package/dist/components/Icon/components/AttachWarning.cjs.map +1 -1
- package/dist/components/Icon/components/AttachWarning.js.map +1 -1
- package/dist/components/Icon/components/Autopay.cjs.map +1 -1
- package/dist/components/Icon/components/Autopay.js.map +1 -1
- package/dist/components/Icon/components/AutopayPaused.cjs.map +1 -1
- package/dist/components/Icon/components/AutopayPaused.js.map +1 -1
- package/dist/components/Icon/components/Autotext.cjs.map +1 -1
- package/dist/components/Icon/components/Autotext.js.map +1 -1
- package/dist/components/Icon/components/AutotextInsert.cjs.map +1 -1
- package/dist/components/Icon/components/AutotextInsert.js.map +1 -1
- package/dist/components/Icon/components/Basic.cjs.map +1 -1
- package/dist/components/Icon/components/Basic.js.map +1 -1
- package/dist/components/Icon/components/BasicTabs.cjs.map +1 -1
- package/dist/components/Icon/components/BasicTabs.js.map +1 -1
- package/dist/components/Icon/components/BellSolid.cjs.map +1 -1
- package/dist/components/Icon/components/BellSolid.js.map +1 -1
- package/dist/components/Icon/components/Book.cjs.map +1 -1
- package/dist/components/Icon/components/Book.js.map +1 -1
- package/dist/components/Icon/components/Booking.cjs.map +1 -1
- package/dist/components/Icon/components/Booking.js.map +1 -1
- package/dist/components/Icon/components/Budget.cjs.map +1 -1
- package/dist/components/Icon/components/Budget.js.map +1 -1
- package/dist/components/Icon/components/Calendar.cjs.map +1 -1
- package/dist/components/Icon/components/Calendar.js.map +1 -1
- package/dist/components/Icon/components/CashAccount.cjs.map +1 -1
- package/dist/components/Icon/components/CashAccount.js.map +1 -1
- package/dist/components/Icon/components/CashReports.cjs.map +1 -1
- package/dist/components/Icon/components/CashReports.js.map +1 -1
- package/dist/components/Icon/components/ChartArea.cjs.map +1 -1
- package/dist/components/Icon/components/ChartArea.js.map +1 -1
- package/dist/components/Icon/components/ChartBar.cjs.map +1 -1
- package/dist/components/Icon/components/ChartBar.js.map +1 -1
- package/dist/components/Icon/components/ChartLine.cjs.map +1 -1
- package/dist/components/Icon/components/ChartLine.js.map +1 -1
- package/dist/components/Icon/components/ChartPie.cjs.map +1 -1
- package/dist/components/Icon/components/ChartPie.js.map +1 -1
- package/dist/components/Icon/components/ChartTable.cjs.map +1 -1
- package/dist/components/Icon/components/ChartTable.js.map +1 -1
- package/dist/components/Icon/components/Chat.cjs.map +1 -1
- package/dist/components/Icon/components/Chat.js.map +1 -1
- package/dist/components/Icon/components/ChatSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ChatSolid.js.map +1 -1
- package/dist/components/Icon/components/ChevronDown.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronDown.js.map +1 -1
- package/dist/components/Icon/components/ChevronDownDouble.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronDownDouble.js.map +1 -1
- package/dist/components/Icon/components/ChevronDownSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronDownSolid.js.map +1 -1
- package/dist/components/Icon/components/ChevronLeft.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronLeft.js.map +1 -1
- package/dist/components/Icon/components/ChevronLeftDouble.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronLeftDouble.js.map +1 -1
- package/dist/components/Icon/components/ChevronLeftSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronLeftSolid.js.map +1 -1
- package/dist/components/Icon/components/ChevronRight.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronRight.js.map +1 -1
- package/dist/components/Icon/components/ChevronRightDouble.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronRightDouble.js.map +1 -1
- package/dist/components/Icon/components/ChevronRightSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronRightSolid.js.map +1 -1
- package/dist/components/Icon/components/ChevronUp.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronUp.js.map +1 -1
- package/dist/components/Icon/components/ChevronUpDouble.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronUpDouble.js.map +1 -1
- package/dist/components/Icon/components/ChevronUpSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ChevronUpSolid.js.map +1 -1
- package/dist/components/Icon/components/CircleInformation.cjs.map +1 -1
- package/dist/components/Icon/components/CircleInformation.js.map +1 -1
- package/dist/components/Icon/components/CircleMinus.cjs.map +1 -1
- package/dist/components/Icon/components/CircleMinus.js.map +1 -1
- package/dist/components/Icon/components/CirclePlus.cjs.map +1 -1
- package/dist/components/Icon/components/CirclePlus.js.map +1 -1
- package/dist/components/Icon/components/CircleQuestionmark.cjs.map +1 -1
- package/dist/components/Icon/components/CircleQuestionmark.js.map +1 -1
- package/dist/components/Icon/components/CircleTick.cjs.map +1 -1
- package/dist/components/Icon/components/CircleTick.js.map +1 -1
- package/dist/components/Icon/components/CircleWarning.cjs.map +1 -1
- package/dist/components/Icon/components/CircleWarning.js.map +1 -1
- package/dist/components/Icon/components/Clamp.cjs.map +1 -1
- package/dist/components/Icon/components/Clamp.js.map +1 -1
- package/dist/components/Icon/components/ClampOpen.cjs.map +1 -1
- package/dist/components/Icon/components/ClampOpen.js.map +1 -1
- package/dist/components/Icon/components/ClickToPay.cjs.map +1 -1
- package/dist/components/Icon/components/ClickToPay.js.map +1 -1
- package/dist/components/Icon/components/Close.cjs.map +1 -1
- package/dist/components/Icon/components/Close.js.map +1 -1
- package/dist/components/Icon/components/ColumnFreeze.cjs.map +1 -1
- package/dist/components/Icon/components/ColumnFreeze.js.map +1 -1
- package/dist/components/Icon/components/ColumnUnfreeze.cjs.map +1 -1
- package/dist/components/Icon/components/ColumnUnfreeze.js.map +1 -1
- package/dist/components/Icon/components/Columns.cjs.map +1 -1
- package/dist/components/Icon/components/Columns.js.map +1 -1
- package/dist/components/Icon/components/ConnectionEnable.cjs.map +1 -1
- package/dist/components/Icon/components/ConnectionEnable.js.map +1 -1
- package/dist/components/Icon/components/ConnectionRevoke.cjs.map +1 -1
- package/dist/components/Icon/components/ConnectionRevoke.js.map +1 -1
- package/dist/components/Icon/components/Contacts.cjs.map +1 -1
- package/dist/components/Icon/components/Contacts.js.map +1 -1
- package/dist/components/Icon/components/Copy.cjs.map +1 -1
- package/dist/components/Icon/components/Copy.js.map +1 -1
- package/dist/components/Icon/components/Courses.cjs.map +1 -1
- package/dist/components/Icon/components/Courses.js.map +1 -1
- package/dist/components/Icon/components/Credit.cjs.map +1 -1
- package/dist/components/Icon/components/Credit.js.map +1 -1
- package/dist/components/Icon/components/Delete.cjs.map +1 -1
- package/dist/components/Icon/components/Delete.js.map +1 -1
- package/dist/components/Icon/components/DeletePermanently.cjs.map +1 -1
- package/dist/components/Icon/components/DeletePermanently.js.map +1 -1
- package/dist/components/Icon/components/Depecriate.cjs.map +1 -1
- package/dist/components/Icon/components/Depecriate.js.map +1 -1
- package/dist/components/Icon/components/Developer.cjs.map +1 -1
- package/dist/components/Icon/components/Developer.js.map +1 -1
- package/dist/components/Icon/components/DistributionTemplate.cjs.map +1 -1
- package/dist/components/Icon/components/DistributionTemplate.js.map +1 -1
- package/dist/components/Icon/components/Document.cjs.map +1 -1
- package/dist/components/Icon/components/Document.js.map +1 -1
- package/dist/components/Icon/components/DocumentApprove.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentApprove.js.map +1 -1
- package/dist/components/Icon/components/DocumentCreateEntry.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentCreateEntry.js.map +1 -1
- package/dist/components/Icon/components/DocumentCut.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentCut.js.map +1 -1
- package/dist/components/Icon/components/DocumentError.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentError.js.map +1 -1
- package/dist/components/Icon/components/DocumentIsolatePage.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentIsolatePage.js.map +1 -1
- package/dist/components/Icon/components/DocumentMerge.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentMerge.js.map +1 -1
- package/dist/components/Icon/components/DocumentMove.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentMove.js.map +1 -1
- package/dist/components/Icon/components/DocumentPreview.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentPreview.js.map +1 -1
- package/dist/components/Icon/components/DocumentReceived.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentReceived.js.map +1 -1
- package/dist/components/Icon/components/DocumentRejectedRequest.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
- package/dist/components/Icon/components/DocumentSigned.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentSigned.js.map +1 -1
- package/dist/components/Icon/components/DocumentSignedSolid.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentSignedSolid.js.map +1 -1
- package/dist/components/Icon/components/DocumentSplit.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentSplit.js.map +1 -1
- package/dist/components/Icon/components/DocumentTime.cjs.map +1 -1
- package/dist/components/Icon/components/DocumentTime.js.map +1 -1
- package/dist/components/Icon/components/Download.cjs.map +1 -1
- package/dist/components/Icon/components/Download.js.map +1 -1
- package/dist/components/Icon/components/Drag.cjs.map +1 -1
- package/dist/components/Icon/components/Drag.js.map +1 -1
- package/dist/components/Icon/components/ECopedia.cjs.map +1 -1
- package/dist/components/Icon/components/ECopedia.js.map +1 -1
- package/dist/components/Icon/components/Edit.cjs.map +1 -1
- package/dist/components/Icon/components/Edit.js.map +1 -1
- package/dist/components/Icon/components/EditSimple.cjs.map +1 -1
- package/dist/components/Icon/components/EditSimple.js.map +1 -1
- package/dist/components/Icon/components/EllipsisHorizontal.cjs.map +1 -1
- package/dist/components/Icon/components/EllipsisHorizontal.js.map +1 -1
- package/dist/components/Icon/components/EllipsisVertical.cjs.map +1 -1
- package/dist/components/Icon/components/EllipsisVertical.js.map +1 -1
- package/dist/components/Icon/components/EntriesOnAccount.cjs.map +1 -1
- package/dist/components/Icon/components/EntriesOnAccount.js.map +1 -1
- package/dist/components/Icon/components/EntriesOpen.cjs.map +1 -1
- package/dist/components/Icon/components/EntriesOpen.js.map +1 -1
- package/dist/components/Icon/components/EntriesWarning.cjs.map +1 -1
- package/dist/components/Icon/components/EntriesWarning.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeCustomerInvoice.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeCustomerPayment.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeJournalEntry.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeManualCustomerInvoice.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeSupplierInvoice.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
- package/dist/components/Icon/components/EntryTypeSupplierPayment.cjs.map +1 -1
- package/dist/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
- package/dist/components/Icon/components/Envelope.cjs.map +1 -1
- package/dist/components/Icon/components/Envelope.js.map +1 -1
- package/dist/components/Icon/components/EnvelopeApproved.cjs.map +1 -1
- package/dist/components/Icon/components/EnvelopeApproved.js.map +1 -1
- package/dist/components/Icon/components/EnvelopeSolid.cjs.map +1 -1
- package/dist/components/Icon/components/EnvelopeSolid.js.map +1 -1
- package/dist/components/Icon/components/ExpandView.cjs.map +1 -1
- package/dist/components/Icon/components/ExpandView.js.map +1 -1
- package/dist/components/Icon/components/Expenses.cjs.map +1 -1
- package/dist/components/Icon/components/Expenses.js.map +1 -1
- package/dist/components/Icon/components/Experiment.cjs.map +1 -1
- package/dist/components/Icon/components/Experiment.js.map +1 -1
- package/dist/components/Icon/components/Export.cjs.map +1 -1
- package/dist/components/Icon/components/Export.js.map +1 -1
- package/dist/components/Icon/components/ExportToExcel.cjs.map +1 -1
- package/dist/components/Icon/components/ExportToExcel.js.map +1 -1
- package/dist/components/Icon/components/ExportToPdf.cjs.map +1 -1
- package/dist/components/Icon/components/ExportToPdf.js.map +1 -1
- package/dist/components/Icon/components/EyeOff.cjs.map +1 -1
- package/dist/components/Icon/components/EyeOff.js.map +1 -1
- package/dist/components/Icon/components/EyeOn.cjs.map +1 -1
- package/dist/components/Icon/components/EyeOn.js.map +1 -1
- package/dist/components/Icon/components/Filter.cjs.map +1 -1
- package/dist/components/Icon/components/Filter.js.map +1 -1
- package/dist/components/Icon/components/FilterSolid.cjs.map +1 -1
- package/dist/components/Icon/components/FilterSolid.js.map +1 -1
- package/dist/components/Icon/components/FontSize.cjs.map +1 -1
- package/dist/components/Icon/components/FontSize.js.map +1 -1
- package/dist/components/Icon/components/GraphSolid.cjs.map +1 -1
- package/dist/components/Icon/components/GraphSolid.js.map +1 -1
- package/dist/components/Icon/components/Hash.cjs.map +1 -1
- package/dist/components/Icon/components/Hash.js.map +1 -1
- package/dist/components/Icon/components/HeightExtraTall.cjs.map +1 -1
- package/dist/components/Icon/components/HeightExtraTall.js.map +1 -1
- package/dist/components/Icon/components/HeightMedium.cjs.map +1 -1
- package/dist/components/Icon/components/HeightMedium.js.map +1 -1
- package/dist/components/Icon/components/HeightShort.cjs.map +1 -1
- package/dist/components/Icon/components/HeightShort.js.map +1 -1
- package/dist/components/Icon/components/HeightTall.cjs.map +1 -1
- package/dist/components/Icon/components/HeightTall.js.map +1 -1
- package/dist/components/Icon/components/House.cjs.map +1 -1
- package/dist/components/Icon/components/House.js.map +1 -1
- package/dist/components/Icon/components/HouseSolid.cjs.map +1 -1
- package/dist/components/Icon/components/HouseSolid.js.map +1 -1
- package/dist/components/Icon/components/Id.cjs.map +1 -1
- package/dist/components/Icon/components/Id.js.map +1 -1
- package/dist/components/Icon/components/Images.cjs.map +1 -1
- package/dist/components/Icon/components/Images.js.map +1 -1
- package/dist/components/Icon/components/Import.cjs.map +1 -1
- package/dist/components/Icon/components/Import.js.map +1 -1
- package/dist/components/Icon/components/Inbox.cjs.map +1 -1
- package/dist/components/Icon/components/Inbox.js.map +1 -1
- package/dist/components/Icon/components/InboxEinvoicing.cjs.map +1 -1
- package/dist/components/Icon/components/InboxEinvoicing.js.map +1 -1
- package/dist/components/Icon/components/InboxScanning.cjs.map +1 -1
- package/dist/components/Icon/components/InboxScanning.js.map +1 -1
- package/dist/components/Icon/components/InboxSmart.cjs.map +1 -1
- package/dist/components/Icon/components/InboxSmart.js.map +1 -1
- package/dist/components/Icon/components/Info.cjs.map +1 -1
- package/dist/components/Icon/components/Info.js.map +1 -1
- package/dist/components/Icon/components/Inventory.cjs.map +1 -1
- package/dist/components/Icon/components/Inventory.js.map +1 -1
- package/dist/components/Icon/components/InventoryMatrix.cjs.map +1 -1
- package/dist/components/Icon/components/InventoryMatrix.js.map +1 -1
- package/dist/components/Icon/components/JournalPro.cjs.map +1 -1
- package/dist/components/Icon/components/JournalPro.js.map +1 -1
- package/dist/components/Icon/components/Layout.cjs.map +1 -1
- package/dist/components/Icon/components/Layout.js.map +1 -1
- package/dist/components/Icon/components/LayoutBoth.cjs.map +1 -1
- package/dist/components/Icon/components/LayoutBoth.js.map +1 -1
- package/dist/components/Icon/components/LayoutFirst.cjs.map +1 -1
- package/dist/components/Icon/components/LayoutFirst.js.map +1 -1
- package/dist/components/Icon/components/LayoutLast.cjs.map +1 -1
- package/dist/components/Icon/components/LayoutLast.js.map +1 -1
- package/dist/components/Icon/components/LayoutNone.cjs.map +1 -1
- package/dist/components/Icon/components/LayoutNone.js.map +1 -1
- package/dist/components/Icon/components/LedgerCard.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCard.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardCustomerReminder.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardManualCustomerInvoice.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardObsoleteStock.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardOpeningEntry.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardReservedEntry.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardShrinkagePilferage.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardStockAdjustment.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
- package/dist/components/Icon/components/LedgerCardTransferredOpeningEntry.cjs.map +1 -1
- package/dist/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
- package/dist/components/Icon/components/Lightbulb.cjs.map +1 -1
- package/dist/components/Icon/components/Lightbulb.js.map +1 -1
- package/dist/components/Icon/components/Line.cjs.map +1 -1
- package/dist/components/Icon/components/Line.js.map +1 -1
- package/dist/components/Icon/components/LinkExternal.cjs.map +1 -1
- package/dist/components/Icon/components/LinkExternal.js.map +1 -1
- package/dist/components/Icon/components/List.cjs.map +1 -1
- package/dist/components/Icon/components/List.js.map +1 -1
- package/dist/components/Icon/components/ListBulleted.cjs.map +1 -1
- package/dist/components/Icon/components/ListBulleted.js.map +1 -1
- package/dist/components/Icon/components/ListSearch.cjs.map +1 -1
- package/dist/components/Icon/components/ListSearch.js.map +1 -1
- package/dist/components/Icon/components/Location.cjs.map +1 -1
- package/dist/components/Icon/components/Location.js.map +1 -1
- package/dist/components/Icon/components/Lock.cjs.map +1 -1
- package/dist/components/Icon/components/Lock.js.map +1 -1
- package/dist/components/Icon/components/LockOpen.cjs.map +1 -1
- package/dist/components/Icon/components/LockOpen.js.map +1 -1
- package/dist/components/Icon/components/Log.cjs.map +1 -1
- package/dist/components/Icon/components/Log.js.map +1 -1
- package/dist/components/Icon/components/LogOut.cjs.map +1 -1
- package/dist/components/Icon/components/LogOut.js.map +1 -1
- package/dist/components/Icon/components/Market.cjs.map +1 -1
- package/dist/components/Icon/components/Market.js.map +1 -1
- package/dist/components/Icon/components/MastercardOs.cjs.map +1 -1
- package/dist/components/Icon/components/MastercardOs.js.map +1 -1
- package/dist/components/Icon/components/MatchAmount.cjs.map +1 -1
- package/dist/components/Icon/components/MatchAmount.js.map +1 -1
- package/dist/components/Icon/components/MatchEntries.cjs.map +1 -1
- package/dist/components/Icon/components/MatchEntries.js.map +1 -1
- package/dist/components/Icon/components/Menu.cjs.map +1 -1
- package/dist/components/Icon/components/Menu.js.map +1 -1
- package/dist/components/Icon/components/Mileage.cjs.map +1 -1
- package/dist/components/Icon/components/Mileage.js.map +1 -1
- package/dist/components/Icon/components/ModalResize.cjs.map +1 -1
- package/dist/components/Icon/components/ModalResize.js.map +1 -1
- package/dist/components/Icon/components/ModalShrink.cjs.map +1 -1
- package/dist/components/Icon/components/ModalShrink.js.map +1 -1
- package/dist/components/Icon/components/More.cjs.map +1 -1
- package/dist/components/Icon/components/More.js.map +1 -1
- package/dist/components/Icon/components/MoreSolid.cjs.map +1 -1
- package/dist/components/Icon/components/MoreSolid.js.map +1 -1
- package/dist/components/Icon/components/Move.cjs.map +1 -1
- package/dist/components/Icon/components/Move.js.map +1 -1
- package/dist/components/Icon/components/NavigationList.cjs.map +1 -1
- package/dist/components/Icon/components/NavigationList.js.map +1 -1
- package/dist/components/Icon/components/Note.cjs.map +1 -1
- package/dist/components/Icon/components/Note.js.map +1 -1
- package/dist/components/Icon/components/NoteFollowUp.cjs.map +1 -1
- package/dist/components/Icon/components/NoteFollowUp.js.map +1 -1
- package/dist/components/Icon/components/NoteRead.cjs.map +1 -1
- package/dist/components/Icon/components/NoteRead.js.map +1 -1
- package/dist/components/Icon/components/NovemberFirst.cjs.map +1 -1
- package/dist/components/Icon/components/NovemberFirst.js.map +1 -1
- package/dist/components/Icon/components/Numbers.cjs.map +1 -1
- package/dist/components/Icon/components/Numbers.js.map +1 -1
- package/dist/components/Icon/components/PartialPaymentScheduled.cjs.map +1 -1
- package/dist/components/Icon/components/PartialPaymentScheduled.js.map +1 -1
- package/dist/components/Icon/components/PartnerApi.cjs.map +1 -1
- package/dist/components/Icon/components/PartnerApi.js.map +1 -1
- package/dist/components/Icon/components/PaymentPaid.cjs.map +1 -1
- package/dist/components/Icon/components/PaymentPaid.js.map +1 -1
- package/dist/components/Icon/components/PaymentUnpaid.cjs.map +1 -1
- package/dist/components/Icon/components/PaymentUnpaid.js.map +1 -1
- package/dist/components/Icon/components/Period.cjs.map +1 -1
- package/dist/components/Icon/components/Period.js.map +1 -1
- package/dist/components/Icon/components/Person.cjs.map +1 -1
- package/dist/components/Icon/components/Person.js.map +1 -1
- package/dist/components/Icon/components/PersonChange.cjs.map +1 -1
- package/dist/components/Icon/components/PersonChange.js.map +1 -1
- package/dist/components/Icon/components/PersonMinus.cjs.map +1 -1
- package/dist/components/Icon/components/PersonMinus.js.map +1 -1
- package/dist/components/Icon/components/PersonPlus.cjs.map +1 -1
- package/dist/components/Icon/components/PersonPlus.js.map +1 -1
- package/dist/components/Icon/components/PersonSolid.cjs.map +1 -1
- package/dist/components/Icon/components/PersonSolid.js.map +1 -1
- package/dist/components/Icon/components/PersonTick.cjs.map +1 -1
- package/dist/components/Icon/components/PersonTick.js.map +1 -1
- package/dist/components/Icon/components/Phone.cjs.map +1 -1
- package/dist/components/Icon/components/Phone.js.map +1 -1
- package/dist/components/Icon/components/PhoneSolid.cjs.map +1 -1
- package/dist/components/Icon/components/PhoneSolid.js.map +1 -1
- package/dist/components/Icon/components/Play.cjs.map +1 -1
- package/dist/components/Icon/components/Play.js.map +1 -1
- package/dist/components/Icon/components/PlusMinus.cjs.map +1 -1
- package/dist/components/Icon/components/PlusMinus.js.map +1 -1
- package/dist/components/Icon/components/Print.cjs.map +1 -1
- package/dist/components/Icon/components/Print.js.map +1 -1
- package/dist/components/Icon/components/ProcessPayment.cjs.map +1 -1
- package/dist/components/Icon/components/ProcessPayment.js.map +1 -1
- package/dist/components/Icon/components/ProductLedgerCard.cjs.map +1 -1
- package/dist/components/Icon/components/ProductLedgerCard.js.map +1 -1
- package/dist/components/Icon/components/Profile.cjs.map +1 -1
- package/dist/components/Icon/components/Profile.js.map +1 -1
- package/dist/components/Icon/components/ProjectCards.cjs.map +1 -1
- package/dist/components/Icon/components/ProjectCards.js.map +1 -1
- package/dist/components/Icon/components/Projects.cjs.map +1 -1
- package/dist/components/Icon/components/Projects.js.map +1 -1
- package/dist/components/Icon/components/QuestionMark.cjs.map +1 -1
- package/dist/components/Icon/components/QuestionMark.js.map +1 -1
- package/dist/components/Icon/components/QuestionMarkBold.cjs.map +1 -1
- package/dist/components/Icon/components/QuestionMarkBold.js.map +1 -1
- package/dist/components/Icon/components/Quicklinks.cjs.map +1 -1
- package/dist/components/Icon/components/Quicklinks.js.map +1 -1
- package/dist/components/Icon/components/RatingBankruptcy.cjs.map +1 -1
- package/dist/components/Icon/components/RatingBankruptcy.js.map +1 -1
- package/dist/components/Icon/components/RatingPaymentProblems.cjs.map +1 -1
- package/dist/components/Icon/components/RatingPaymentProblems.js.map +1 -1
- package/dist/components/Icon/components/Reconciled.cjs.map +1 -1
- package/dist/components/Icon/components/Reconciled.js.map +1 -1
- package/dist/components/Icon/components/Refresh.cjs.map +1 -1
- package/dist/components/Icon/components/Refresh.js.map +1 -1
- package/dist/components/Icon/components/Remove.cjs.map +1 -1
- package/dist/components/Icon/components/Remove.js.map +1 -1
- package/dist/components/Icon/components/Report.cjs.map +1 -1
- package/dist/components/Icon/components/Report.js.map +1 -1
- package/dist/components/Icon/components/ReportSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ReportSolid.js.map +1 -1
- package/dist/components/Icon/components/Restore.cjs.map +1 -1
- package/dist/components/Icon/components/Restore.js.map +1 -1
- package/dist/components/Icon/components/RotateLeft.cjs.map +1 -1
- package/dist/components/Icon/components/RotateLeft.js.map +1 -1
- package/dist/components/Icon/components/RotateRight.cjs.map +1 -1
- package/dist/components/Icon/components/RotateRight.js.map +1 -1
- package/dist/components/Icon/components/Sales.cjs.map +1 -1
- package/dist/components/Icon/components/Sales.js.map +1 -1
- package/dist/components/Icon/components/Search.cjs.map +1 -1
- package/dist/components/Icon/components/Search.js.map +1 -1
- package/dist/components/Icon/components/SearchBold.cjs.map +1 -1
- package/dist/components/Icon/components/SearchBold.js.map +1 -1
- package/dist/components/Icon/components/Secure.cjs.map +1 -1
- package/dist/components/Icon/components/Secure.js.map +1 -1
- package/dist/components/Icon/components/SecureTick.cjs.map +1 -1
- package/dist/components/Icon/components/SecureTick.js.map +1 -1
- package/dist/components/Icon/components/Settings.cjs.map +1 -1
- package/dist/components/Icon/components/Settings.js.map +1 -1
- package/dist/components/Icon/components/SettingsSolid.cjs.map +1 -1
- package/dist/components/Icon/components/SettingsSolid.js.map +1 -1
- package/dist/components/Icon/components/Shortcuts.cjs.map +1 -1
- package/dist/components/Icon/components/Shortcuts.js.map +1 -1
- package/dist/components/Icon/components/ShowAll.cjs.map +1 -1
- package/dist/components/Icon/components/ShowAll.js.map +1 -1
- package/dist/components/Icon/components/ShowLess.cjs.map +1 -1
- package/dist/components/Icon/components/ShowLess.js.map +1 -1
- package/dist/components/Icon/components/ShowMore.cjs.map +1 -1
- package/dist/components/Icon/components/ShowMore.js.map +1 -1
- package/dist/components/Icon/components/ShowTemplate.cjs.map +1 -1
- package/dist/components/Icon/components/ShowTemplate.js.map +1 -1
- package/dist/components/Icon/components/Sliders.cjs.map +1 -1
- package/dist/components/Icon/components/Sliders.js.map +1 -1
- package/dist/components/Icon/components/Smartpay.cjs.map +1 -1
- package/dist/components/Icon/components/Smartpay.js.map +1 -1
- package/dist/components/Icon/components/SortBy.cjs.map +1 -1
- package/dist/components/Icon/components/SortBy.js.map +1 -1
- package/dist/components/Icon/components/Star.cjs.map +1 -1
- package/dist/components/Icon/components/Star.js.map +1 -1
- package/dist/components/Icon/components/StarSolid.cjs.map +1 -1
- package/dist/components/Icon/components/StarSolid.js.map +1 -1
- package/dist/components/Icon/components/Subscriptions.cjs.map +1 -1
- package/dist/components/Icon/components/Subscriptions.js.map +1 -1
- package/dist/components/Icon/components/SystemEntries.cjs.map +1 -1
- package/dist/components/Icon/components/SystemEntries.js.map +1 -1
- package/dist/components/Icon/components/Tag.cjs.map +1 -1
- package/dist/components/Icon/components/Tag.js.map +1 -1
- package/dist/components/Icon/components/TemplateOverride.cjs.map +1 -1
- package/dist/components/Icon/components/TemplateOverride.js.map +1 -1
- package/dist/components/Icon/components/Templates.cjs.map +1 -1
- package/dist/components/Icon/components/Templates.js.map +1 -1
- package/dist/components/Icon/components/ThumbBoth.cjs.map +1 -1
- package/dist/components/Icon/components/ThumbBoth.js.map +1 -1
- package/dist/components/Icon/components/ThumbDown.cjs.map +1 -1
- package/dist/components/Icon/components/ThumbDown.js.map +1 -1
- package/dist/components/Icon/components/ThumbDownSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ThumbDownSolid.js.map +1 -1
- package/dist/components/Icon/components/ThumbUp.cjs.map +1 -1
- package/dist/components/Icon/components/ThumbUp.js.map +1 -1
- package/dist/components/Icon/components/ThumbUpSolid.cjs.map +1 -1
- package/dist/components/Icon/components/ThumbUpSolid.js.map +1 -1
- package/dist/components/Icon/components/Tick.cjs.map +1 -1
- package/dist/components/Icon/components/Tick.js.map +1 -1
- package/dist/components/Icon/components/TickBold.cjs.map +1 -1
- package/dist/components/Icon/components/TickBold.js.map +1 -1
- package/dist/components/Icon/components/Time.cjs.map +1 -1
- package/dist/components/Icon/components/Time.js.map +1 -1
- package/dist/components/Icon/components/Transfer.cjs.map +1 -1
- package/dist/components/Icon/components/Transfer.js.map +1 -1
- package/dist/components/Icon/components/TransferCancel.cjs.map +1 -1
- package/dist/components/Icon/components/TransferCancel.js.map +1 -1
- package/dist/components/Icon/components/TransferLocked.cjs.map +1 -1
- package/dist/components/Icon/components/TransferLocked.js.map +1 -1
- package/dist/components/Icon/components/Undo.cjs.map +1 -1
- package/dist/components/Icon/components/Undo.js.map +1 -1
- package/dist/components/Icon/components/Undock.cjs.map +1 -1
- package/dist/components/Icon/components/Undock.js.map +1 -1
- package/dist/components/Icon/components/Unreconciled.cjs.map +1 -1
- package/dist/components/Icon/components/Unreconciled.js.map +1 -1
- package/dist/components/Icon/components/Wallet.cjs.map +1 -1
- package/dist/components/Icon/components/Wallet.js.map +1 -1
- package/dist/components/Icon/components/Warning.cjs.map +1 -1
- package/dist/components/Icon/components/Warning.js.map +1 -1
- package/dist/components/Icon/components/Webshop.cjs.map +1 -1
- package/dist/components/Icon/components/Webshop.js.map +1 -1
- package/dist/components/Icon/components/Website.cjs.map +1 -1
- package/dist/components/Icon/components/Website.js.map +1 -1
- package/dist/components/Icon/components/Workflow.cjs.map +1 -1
- package/dist/components/Icon/components/Workflow.js.map +1 -1
- package/dist/components/Icon/components/WorkflowTemplateBasic.cjs.map +1 -1
- package/dist/components/Icon/components/WorkflowTemplateBasic.js.map +1 -1
- package/dist/components/Icon/components/Zoom.cjs.map +1 -1
- package/dist/components/Icon/components/Zoom.js.map +1 -1
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.ts +14 -8
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/LegacyComponents/Button/Button.cjs.map +1 -1
- package/dist/components/LegacyComponents/Button/Button.d.ts +13 -13
- package/dist/components/LegacyComponents/Button/Button.js.map +1 -1
- package/dist/components/LegacyComponents/Button/util.cjs.map +1 -1
- package/dist/components/LegacyComponents/Button/util.d.ts +2 -2
- package/dist/components/LegacyComponents/Button/util.js.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.d.ts +15 -15
- package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
- package/dist/components/List/List.cjs.map +1 -1
- package/dist/components/List/List.d.ts +3 -3
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/List/components/Collapsible.cjs.map +1 -1
- package/dist/components/List/components/Collapsible.d.ts +2 -2
- package/dist/components/List/components/Collapsible.js.map +1 -1
- package/dist/components/List/components/Group.cjs.map +1 -1
- package/dist/components/List/components/Group.d.ts +2 -2
- package/dist/components/List/components/Group.js.map +1 -1
- package/dist/components/List/components/Item.cjs.map +1 -1
- package/dist/components/List/components/Item.d.ts +7 -7
- package/dist/components/List/components/Item.js.map +1 -1
- package/dist/components/List/components/Toggle.cjs.map +1 -1
- package/dist/components/List/components/Toggle.js.map +1 -1
- package/dist/components/Listbox/ScrollableList.cjs.map +1 -1
- package/dist/components/Listbox/ScrollableList.d.ts +4 -2
- package/dist/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/components/Listbox/util.cjs.map +1 -1
- package/dist/components/Listbox/util.d.ts +9 -5
- package/dist/components/Listbox/util.js.map +1 -1
- package/dist/components/Menu/Context.cjs.map +1 -1
- package/dist/components/Menu/Context.d.ts +2 -2
- package/dist/components/Menu/Context.js.map +1 -1
- package/dist/components/Menu/Menu.cjs.map +1 -1
- package/dist/components/Menu/Menu.d.ts +1 -1
- package/dist/components/Menu/Menu.js.map +1 -1
- package/dist/components/Menu/components/Content.cjs.map +1 -1
- package/dist/components/Menu/components/Content.js.map +1 -1
- package/dist/components/Menu/components/Item.cjs.map +1 -1
- package/dist/components/Menu/components/Item.d.ts +2 -2
- package/dist/components/Menu/components/Item.js.map +1 -1
- package/dist/components/Menu/components/RadioGroup.cjs.map +1 -1
- package/dist/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/components/Navigation2/components/Group.cjs.map +1 -1
- package/dist/components/Navigation2/components/Group.d.ts +2 -2
- package/dist/components/Navigation2/components/Group.js.map +1 -1
- package/dist/components/Navigation2/components/Link.cjs.map +1 -1
- package/dist/components/Navigation2/components/Link.d.ts +2 -2
- package/dist/components/Navigation2/components/Link.js.map +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.cjs.map +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.js.map +1 -1
- package/dist/components/Pagination/PageNumbers.cjs.map +1 -1
- package/dist/components/Pagination/PageNumbers.d.ts +2 -1
- package/dist/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.d.ts +2 -2
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Progress/Progress.cjs.map +1 -1
- package/dist/components/Progress/Progress.d.ts +1 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/Provider/Provider.cjs.map +1 -1
- package/dist/components/Provider/Provider.d.ts +1 -1
- package/dist/components/Provider/Provider.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/Report/Report.cjs.map +1 -1
- package/dist/components/Report/Report.d.ts +1 -1
- package/dist/components/Report/Report.js.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.d.ts +1 -1
- package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/components/Select/useSelect.cjs.map +1 -1
- package/dist/components/Select/useSelect.d.ts +2 -2
- package/dist/components/Select/useSelect.js.map +1 -1
- package/dist/components/Select2/Select2.cjs +1 -3
- package/dist/components/Select2/Select2.cjs.map +1 -1
- package/dist/components/Select2/Select2.d.ts +5 -5
- package/dist/components/Select2/Select2.js +1 -3
- package/dist/components/Select2/Select2.js.map +1 -1
- package/dist/components/Select2/components/Context.cjs.map +1 -1
- package/dist/components/Select2/components/Context.d.ts +3 -3
- package/dist/components/Select2/components/Context.js.map +1 -1
- package/dist/components/Select2/components/Option.cjs.map +1 -1
- package/dist/components/Select2/components/Option.d.ts +7 -7
- package/dist/components/Select2/components/Option.js.map +1 -1
- package/dist/components/Select2/components/Search.d.ts +7 -4
- package/dist/components/Select2/components/Trigger.cjs +6 -5
- package/dist/components/Select2/components/Trigger.cjs.map +1 -1
- package/dist/components/Select2/components/Trigger.js +6 -5
- package/dist/components/Select2/components/Trigger.js.map +1 -1
- package/dist/components/Select2/types.d.ts +1 -1
- package/dist/components/Table3/Table3.cjs.map +1 -1
- package/dist/components/Table3/Table3.d.ts +1 -1
- package/dist/components/Table3/Table3.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.d.ts +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +2 -1
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.cjs +9 -3
- package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.js +9 -3
- package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -1
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/components/Table3/features/useEditingState.cjs +14 -6
- package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
- package/dist/components/Table3/features/useEditingState.d.ts +24 -6
- package/dist/components/Table3/features/useEditingState.js +14 -6
- package/dist/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/components/Table3/features/useTableEditing.d.ts +28 -7
- package/dist/components/Tabs/components/TabList.cjs.map +1 -1
- package/dist/components/Tabs/components/TabList.js.map +1 -1
- package/dist/components/Tabs/components/Trigger.cjs.map +1 -1
- package/dist/components/Tabs/components/Trigger.d.ts +2 -2
- package/dist/components/Tabs/components/Trigger.js.map +1 -1
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.d.ts +1 -1
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/Toaster.cjs.map +1 -1
- package/dist/components/Toast/Toaster.d.ts +1 -1
- package/dist/components/Toast/Toaster.js.map +1 -1
- package/dist/components/Toast/util.cjs.map +1 -1
- package/dist/components/Toast/util.d.ts +2 -1
- package/dist/components/Toast/util.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Truncate/Truncate.cjs.map +1 -1
- package/dist/components/Truncate/Truncate.d.ts +5 -2
- package/dist/components/Truncate/Truncate.js.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
- package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/hooks/useIntersectionObserver.cjs.map +1 -1
- package/dist/hooks/useIntersectionObserver.d.ts +1 -1
- package/dist/hooks/useIntersectionObserver.js.map +1 -1
- package/dist/hooks/useMergedRef.cjs.map +1 -1
- package/dist/hooks/useMergedRef.js.map +1 -1
- package/dist/hooks/useResizeObserver.cjs.map +1 -1
- package/dist/hooks/useResizeObserver.d.ts +1 -1
- package/dist/hooks/useResizeObserver.js.map +1 -1
- package/dist/primitives/Button.cjs.map +1 -1
- package/dist/primitives/Button.d.ts +2 -2
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/Listbox2/components/Option.d.ts +1 -1
- package/dist/primitives/Sortable/components/Item.cjs.map +1 -1
- package/dist/primitives/Sortable/components/Item.js.map +1 -1
- package/dist/primitives/Table/Core/Table.cjs.map +1 -1
- package/dist/primitives/Table/Core/Table.d.ts +2 -2
- package/dist/primitives/Table/Core/Table.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Menu.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Menu.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/Toolbar.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/primitives/Table/Core/types.d.ts +3 -3
- package/dist/primitives/Table/Core/useTable.cjs.map +1 -1
- package/dist/primitives/Table/Core/useTable.d.ts +4 -4
- package/dist/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/primitives/Table/types.cjs.map +1 -1
- package/dist/primitives/Table/types.d.ts +15 -15
- package/dist/primitives/Table/types.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowSelection.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/types.d.ts +2 -2
- package/dist/primitives/Table/useTableManager/util/setup.cjs +2 -2
- package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.js +2 -2
- package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../../src/primitives/Table/Core/components/Header/Header.tsx"],"sourcesContent":["import type {\n TableMeta as ReactTableMeta,\n ColumnMeta as ReactTableColumnMeta,\n Header as ReactTableHeader,\n ColumnPinningPosition as ReactTableColumnPinningPosition,\n Updater,\n ColumnSizingState,\n} from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '../../../../../components/Tooltip/Tooltip';\nimport type { TableColumnAlignment, TableColumnMenu, TableColumnSortDirection, TableColumnWidth } from '../../../types';\nimport { TableFilterComparator } from '../../../types';\nimport { freezeUptoExternalColumn, isInternalColumn, unfreezeAllExternalColumns } from '../../../useTableManager/util/columns';\n\nimport { HeaderMenu } from './components/Menu';\nimport { Resizer } from './components/Resizer';\nimport { SortIndicator, getSortAttributes } from './components/SortIndicator';\nimport { getIsPinned, useSetInitialColumnSizing } from './util';\n\ntype HeaderContentProps = {\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n isInternalColumnHeader: boolean;\n};\n\nconst HeaderContent = ({ children, tooltip, isInternalColumnHeader }: HeaderContentProps) => {\n if (isInternalColumnHeader || typeof children !== 'string') {\n return <>{children}</>;\n }\n\n return (\n <Tooltip title={String(tooltip ?? children)} placement=\"top\">\n <span className=\"truncate\">{children}</span>\n </Tooltip>\n );\n};\n\nexport type HeaderProps<TType = unknown> = {\n header: ReactTableHeader<TType, unknown>;\n scrollToIndex: (index: number) => void;\n};\n\nexport function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, scrollToIndex } = props;\n\n if (header.column.getIsGrouped()) {\n return null;\n }\n\n const { table } = header.getContext();\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columnMeta = (header.column.columnDef.meta ?? {}) as ReactTableColumnMeta<TType, unknown>;\n\n const isGroup = !!header.subHeaders.length;\n const isPinned = getIsPinned(header);\n\n const canFilter = !header.isPlaceholder && header.column.getCanFilter() && !!table.options.enableColumnFilters;\n const canHide = !header.isPlaceholder && !isGroup && header.column.getCanHide();\n const canMeasureSize = !!table.getRowModel().rows.length;\n const canPin = !header.isPlaceholder && !isGroup && header.column.getCanPin();\n const canResize = !header.isPlaceholder && !isGroup && header.column.getCanResize();\n const canSort = !header.isPlaceholder && !isGroup && header.column.getCanSort();\n const canGoto = canSort && !header.isPlaceholder && !isGroup && tableMeta.rowGoto.isEnabled && !!header.column.getIsSorted();\n\n const hasMenu = !isInternalColumn(header.id) && (canHide || canGoto || canPin || canSort || !!columnMeta.menu);\n\n const sorting = table.getState().sorting;\n const filters = table.getState().columnFilters;\n const search = table.getState().globalFilter;\n\n // passing header or column results in re-renders on scroll, so anything from those objects as memoed props\n const memoedProps: MemoedHeaderProps = {\n align: columnMeta.align,\n canFilter,\n canHide,\n canGoto,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n className: cn('group/header', columnMeta.headerClassName),\n children: flexRender(header.column.columnDef.header, header.getContext()),\n colSpan: header.colSpan,\n customMenu: columnMeta.menu,\n defaultWidth: columnMeta.defaultWidth,\n hasMenu,\n id: header.id,\n isFiltered: header.column.getIsFiltered(),\n index: header.index,\n isGroup,\n isPinned,\n isPlaceholder: header.isPlaceholder,\n offset: header.column.getStart(isPinned),\n parentId: header.column.parent?.id,\n scrollToIndex,\n setRowActiveIndex: tableMeta.rowActive.setRowActiveIndex,\n setColumnSizing: table.setColumnSizing,\n tooltip: columnMeta.tooltip,\n width: table.getState().columnSizing[header.id],\n };\n\n if (header.isPlaceholder) {\n const nextHeader = header.headerGroup.headers[header.index + 1];\n memoedProps.className = cn('!bg-white before:!content-none', memoedProps.className, {\n 'after:!content-none': nextHeader?.isPlaceholder,\n });\n }\n\n if (canFilter) {\n memoedProps.onFilter = () => {\n header.column.setFilterValue({ comparator: TableFilterComparator.Contains });\n };\n }\n\n if (canGoto) {\n memoedProps.onGoto = ((query: string) => tableMeta.rowGoto.handleGoto?.(header.id, query, sorting, filters, search)) as (\n query: string\n ) => Promise<number>;\n }\n\n if (canHide) {\n memoedProps.onHide = header.column.getToggleVisibilityHandler();\n }\n\n if (header.id === '__expansion') {\n memoedProps.isExpanded = table.getIsSomeRowsExpanded();\n }\n\n if (canPin) {\n memoedProps.onPin = (index: number | undefined) => {\n // TODO: this can probably be moved to a feature hook\n table.setColumnPinning(pinningState => {\n return {\n ...pinningState,\n left:\n index === undefined\n ? unfreezeAllExternalColumns(pinningState.left)\n : freezeUptoExternalColumn(\n index,\n table.getAllLeafColumns().map(column => column.id)\n ),\n };\n });\n };\n }\n\n if (canResize) {\n memoedProps.isResizing = header.column.getIsResizing();\n memoedProps.onResize = header.getResizeHandler();\n memoedProps.resetSize = header.column.resetSize;\n }\n\n if (canSort) {\n const handleSortToggle = (sortDirection: TableColumnSortDirection | false) => {\n if (sortDirection === false) {\n header.column.clearSorting();\n } else {\n header.column.toggleSorting(sortDirection === 'desc');\n }\n };\n\n memoedProps.onSort = header.column.getToggleSortingHandler();\n memoedProps.onSortToggle = handleSortToggle;\n memoedProps.sortDirection = header.column.getIsSorted();\n }\n\n return <MemoedHeader key={header.id} {...memoedProps} />;\n}\n\nexport type MemoedHeaderProps = {\n align?: TableColumnAlignment;\n canFilter: boolean;\n canHide: boolean;\n canGoto: boolean;\n canMeasureSize: boolean;\n canPin: boolean;\n canResize: boolean;\n canSort: boolean;\n children: JSX.Element | React.ReactNode;\n className?: string;\n colSpan: number;\n customMenu?: TableColumnMenu;\n defaultWidth?: TableColumnWidth;\n hasMenu: boolean;\n id: string;\n index: number;\n isExpanded?: boolean;\n isFiltered: boolean;\n isGroup: boolean;\n isPinned?: ReactTableColumnPinningPosition;\n isPlaceholder: boolean;\n isResizing?: boolean;\n offset?: number;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onResize?: (event: unknown) => void;\n onSort?: (event: unknown) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n parentId?: string;\n resetSize?: () => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void;\n sortDirection?: TableColumnSortDirection | false;\n tooltip?: string;\n width?: TableColumnWidth;\n};\n\nconst MemoedHeader = React.memo(function MemoedHeader(props: MemoedHeaderProps) {\n const {\n align,\n canFilter,\n canGoto,\n canHide,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n children,\n className,\n colSpan,\n customMenu,\n defaultWidth,\n hasMenu,\n id,\n index,\n isExpanded,\n isFiltered,\n isGroup,\n isPinned,\n isPlaceholder,\n isResizing,\n offset,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onResize: handleResize,\n onSort: handleSort,\n onSortToggle: handleSortToggle,\n resetSize: handleResetSize,\n scrollToIndex,\n setRowActiveIndex,\n setColumnSizing,\n sortDirection,\n tooltip,\n width,\n } = props;\n const [ref, setRef] = React.useState<HTMLTableCellElement | null>(null);\n\n // save column width if none is set\n useSetInitialColumnSizing(id, defaultWidth, width, ref, canMeasureSize, setColumnSizing);\n\n // feature specific styles\n const style: React.CSSProperties = {};\n\n // column groups often span multiple columns\n if (colSpan > 1) {\n style.gridColumn = `span ${colSpan}`;\n }\n\n // pinned columns should be offset from either the left or right\n if (isPinned) {\n style[isPinned] = `${offset}px`;\n }\n\n return (\n <th\n {...getSortAttributes(canSort, handleSort, sortDirection)}\n className={className}\n data-cell-align={isGroup ? 'center' : align}\n data-cell-id={id}\n data-cell-pinned={isPinned || undefined}\n data-taco={\n isGroup ? (isPlaceholder ? 'grouped-column-header-placeholder' : 'grouped-column-header') : 'column-header'\n }\n data-parent-group-id={props.parentId ? props.parentId : undefined}\n data-rows-expanded={isExpanded || undefined}\n style={style}\n ref={setRef}>\n {isPlaceholder ? null : (\n <HeaderContent children={children} tooltip={tooltip} isInternalColumnHeader={!!isInternalColumn(id)} />\n )}\n {sortDirection ? <SortIndicator direction={sortDirection} /> : null}\n {hasMenu ? (\n <HeaderMenu\n canFilter={canFilter}\n canGoto={canGoto}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n className={cn({\n 'ml-auto': align !== 'right',\n 'ml-0': align === 'right',\n })}\n customMenu={customMenu}\n index={index}\n isFiltered={isFiltered}\n onFilter={handleFilter}\n onGoto={handleGoto}\n onHide={handleHide}\n onPin={handlePin}\n onSortToggle={handleSortToggle}\n scrollToIndex={scrollToIndex}\n setRowActiveIndex={setRowActiveIndex}\n sortDirection={sortDirection}\n columnId={id}\n />\n ) : null}\n {canResize ? (\n <Resizer\n headerRef={ref}\n id={id}\n isResizing={isResizing as boolean}\n onResize={handleResize as (event: unknown) => void}\n onResetSize={handleResetSize as () => void}\n setColumnSizing={setColumnSizing}\n width={width}\n />\n ) : null}\n </th>\n );\n});\n"],"names":["React","MemoedHeader"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../../src/primitives/Table/Core/components/Header/Header.tsx"],"sourcesContent":["import type {\n TableMeta as ReactTableMeta,\n ColumnMeta as ReactTableColumnMeta,\n Header as ReactTableHeader,\n ColumnPinningPosition as ReactTableColumnPinningPosition,\n Updater,\n ColumnSizingState,\n} from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '../../../../../components/Tooltip/Tooltip';\nimport type { TableColumnAlignment, TableColumnMenu, TableColumnSortDirection, TableColumnWidth } from '../../../types';\nimport { TableFilterComparator } from '../../../types';\nimport { freezeUptoExternalColumn, isInternalColumn, unfreezeAllExternalColumns } from '../../../useTableManager/util/columns';\n\nimport { HeaderMenu } from './components/Menu';\nimport { Resizer } from './components/Resizer';\nimport { SortIndicator, getSortAttributes } from './components/SortIndicator';\nimport { getIsPinned, useSetInitialColumnSizing } from './util';\n\ntype HeaderContentProps = {\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n isInternalColumnHeader: boolean;\n};\n\nconst HeaderContent = ({ children, tooltip, isInternalColumnHeader }: HeaderContentProps) => {\n if (isInternalColumnHeader || typeof children !== 'string') {\n return <>{children}</>;\n }\n\n return (\n <Tooltip title={String(tooltip ?? children)} placement=\"top\">\n <span className=\"truncate\">{children}</span>\n </Tooltip>\n );\n};\n\nexport type HeaderProps<TType = unknown> = {\n header: ReactTableHeader<TType, unknown>;\n scrollToIndex: (index: number) => void;\n};\n\nexport function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, scrollToIndex } = props;\n\n if (header.column.getIsGrouped()) {\n return null;\n }\n\n const { table } = header.getContext();\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columnMeta = (header.column.columnDef.meta ?? {}) as ReactTableColumnMeta<TType, unknown>;\n\n const isGroup = !!header.subHeaders.length;\n const isPinned = getIsPinned(header);\n\n const canFilter = !header.isPlaceholder && header.column.getCanFilter() && !!table.options.enableColumnFilters;\n const canHide = !header.isPlaceholder && !isGroup && header.column.getCanHide();\n const canMeasureSize = !!table.getRowModel().rows.length;\n const canPin = !header.isPlaceholder && !isGroup && header.column.getCanPin();\n const canResize = !header.isPlaceholder && !isGroup && header.column.getCanResize();\n const canSort = !header.isPlaceholder && !isGroup && header.column.getCanSort();\n const canGoto = canSort && !header.isPlaceholder && !isGroup && tableMeta.rowGoto.isEnabled && !!header.column.getIsSorted();\n\n const hasMenu = !isInternalColumn(header.id) && (canHide || canGoto || canPin || canSort || !!columnMeta.menu);\n\n const sorting = table.getState().sorting;\n const filters = table.getState().columnFilters;\n const search = table.getState().globalFilter;\n\n // passing header or column results in re-renders on scroll, so anything from those objects as memoed props\n const memoedProps: MemoedHeaderProps = {\n align: columnMeta.align,\n canFilter,\n canHide,\n canGoto,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n className: cn('group/header', columnMeta.headerClassName),\n children: flexRender(header.column.columnDef.header, header.getContext()),\n colSpan: header.colSpan,\n customMenu: columnMeta.menu,\n defaultWidth: columnMeta.defaultWidth,\n hasMenu,\n id: header.id,\n isFiltered: header.column.getIsFiltered(),\n index: header.index,\n isGroup,\n isPinned,\n isPlaceholder: header.isPlaceholder,\n offset: header.column.getStart(isPinned),\n parentId: header.column.parent?.id,\n scrollToIndex,\n setRowActiveIndex: tableMeta.rowActive.setRowActiveIndex,\n setColumnSizing: table.setColumnSizing,\n tooltip: columnMeta.tooltip,\n width: table.getState().columnSizing[header.id],\n };\n\n if (header.isPlaceholder) {\n const nextHeader = header.headerGroup.headers[header.index + 1];\n memoedProps.className = cn('!bg-white before:!content-none', memoedProps.className, {\n 'after:!content-none': nextHeader?.isPlaceholder,\n });\n }\n\n if (canFilter) {\n memoedProps.onFilter = () => {\n header.column.setFilterValue({ comparator: TableFilterComparator.Contains });\n };\n }\n\n if (canGoto) {\n memoedProps.onGoto = ((query: string) => tableMeta.rowGoto.handleGoto?.(header.id, query, sorting, filters, search)) as (\n query: string\n ) => Promise<number>;\n }\n\n if (canHide) {\n memoedProps.onHide = header.column.getToggleVisibilityHandler();\n }\n\n if (header.id === '__expansion') {\n memoedProps.isExpanded = table.getIsSomeRowsExpanded();\n }\n\n if (canPin) {\n memoedProps.onPin = (index: number | undefined) => {\n // TODO: this can probably be moved to a feature hook\n table.setColumnPinning(pinningState => {\n return {\n ...pinningState,\n left:\n index === undefined\n ? unfreezeAllExternalColumns(pinningState.left)\n : freezeUptoExternalColumn(\n index,\n table.getAllLeafColumns().map(column => column.id)\n ),\n };\n });\n };\n }\n\n if (canResize) {\n memoedProps.isResizing = header.column.getIsResizing();\n memoedProps.onResize = header.getResizeHandler();\n memoedProps.resetSize = header.column.resetSize;\n }\n\n if (canSort) {\n const handleSortToggle = (sortDirection: TableColumnSortDirection | false) => {\n if (sortDirection === false) {\n header.column.clearSorting();\n } else {\n header.column.toggleSorting(sortDirection === 'desc');\n }\n };\n\n memoedProps.onSort = header.column.getToggleSortingHandler();\n memoedProps.onSortToggle = handleSortToggle;\n memoedProps.sortDirection = header.column.getIsSorted();\n }\n\n return <MemoedHeader key={header.id} {...memoedProps} />;\n}\n\nexport type MemoedHeaderProps = {\n align?: TableColumnAlignment;\n canFilter: boolean;\n canHide: boolean;\n canGoto: boolean;\n canMeasureSize: boolean;\n canPin: boolean;\n canResize: boolean;\n canSort: boolean;\n children: React.JSX.Element | React.ReactNode;\n className?: string;\n colSpan: number;\n customMenu?: TableColumnMenu;\n defaultWidth?: TableColumnWidth;\n hasMenu: boolean;\n id: string;\n index: number;\n isExpanded?: boolean;\n isFiltered: boolean;\n isGroup: boolean;\n isPinned?: ReactTableColumnPinningPosition;\n isPlaceholder: boolean;\n isResizing?: boolean;\n offset?: number;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onResize?: (event: unknown) => void;\n onSort?: (event: unknown) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n parentId?: string;\n resetSize?: () => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void;\n sortDirection?: TableColumnSortDirection | false;\n tooltip?: string;\n width?: TableColumnWidth;\n};\n\nconst MemoedHeader = React.memo(function MemoedHeader(props: MemoedHeaderProps) {\n const {\n align,\n canFilter,\n canGoto,\n canHide,\n canMeasureSize,\n canPin,\n canResize,\n canSort,\n children,\n className,\n colSpan,\n customMenu,\n defaultWidth,\n hasMenu,\n id,\n index,\n isExpanded,\n isFiltered,\n isGroup,\n isPinned,\n isPlaceholder,\n isResizing,\n offset,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onResize: handleResize,\n onSort: handleSort,\n onSortToggle: handleSortToggle,\n resetSize: handleResetSize,\n scrollToIndex,\n setRowActiveIndex,\n setColumnSizing,\n sortDirection,\n tooltip,\n width,\n } = props;\n const [ref, setRef] = React.useState<HTMLTableCellElement | null>(null);\n\n // save column width if none is set\n useSetInitialColumnSizing(id, defaultWidth, width, ref, canMeasureSize, setColumnSizing);\n\n // feature specific styles\n const style: React.CSSProperties = {};\n\n // column groups often span multiple columns\n if (colSpan > 1) {\n style.gridColumn = `span ${colSpan}`;\n }\n\n // pinned columns should be offset from either the left or right\n if (isPinned) {\n style[isPinned] = `${offset}px`;\n }\n\n return (\n <th\n {...getSortAttributes(canSort, handleSort, sortDirection)}\n className={className}\n data-cell-align={isGroup ? 'center' : align}\n data-cell-id={id}\n data-cell-pinned={isPinned || undefined}\n data-taco={\n isGroup ? (isPlaceholder ? 'grouped-column-header-placeholder' : 'grouped-column-header') : 'column-header'\n }\n data-parent-group-id={props.parentId ? props.parentId : undefined}\n data-rows-expanded={isExpanded || undefined}\n style={style}\n ref={setRef}>\n {isPlaceholder ? null : (\n <HeaderContent children={children} tooltip={tooltip} isInternalColumnHeader={!!isInternalColumn(id)} />\n )}\n {sortDirection ? <SortIndicator direction={sortDirection} /> : null}\n {hasMenu ? (\n <HeaderMenu\n canFilter={canFilter}\n canGoto={canGoto}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n className={cn({\n 'ml-auto': align !== 'right',\n 'ml-0': align === 'right',\n })}\n customMenu={customMenu}\n index={index}\n isFiltered={isFiltered}\n onFilter={handleFilter}\n onGoto={handleGoto}\n onHide={handleHide}\n onPin={handlePin}\n onSortToggle={handleSortToggle}\n scrollToIndex={scrollToIndex}\n setRowActiveIndex={setRowActiveIndex}\n sortDirection={sortDirection}\n columnId={id}\n />\n ) : null}\n {canResize ? (\n <Resizer\n headerRef={ref}\n id={id}\n isResizing={isResizing as boolean}\n onResize={handleResize as (event: unknown) => void}\n onResetSize={handleResetSize as () => void}\n setColumnSizing={setColumnSizing}\n width={width}\n />\n ) : null}\n </th>\n );\n});\n"],"names":["React","MemoedHeader"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyIconButton } from '../../../../../../components/LegacyComponents/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport type { PopoverProps } from '../../../../../../components/Popover/Popover';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport type { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nimport { GotoPopover } from './Goto';\n\nexport type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover === 'goto') {\n const handleClosePopover = () => setPopover(undefined);\n\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n // oxlint-disable-next-line no-console\n console.error(e);\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = (props: PopoverProps) => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = (event: React.MouseEvent) => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n // Defer popover open to the next tick so menu close lifecycle can finish first.\n // Without this, the same click can be treated as an outside interaction and close goto immediately.\n const handleClick = () => setTimeout(() => setPopover('goto'));\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={handleClick} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n '-mr-1 justify-end overflow-hidden',\n // sizing\n '!h-6 !min-h-[theme(spacing.6)] !w-0 !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <LegacyIconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["useLocalization","index","props","GotoPopover","MenuPrimitive","LegacyIconButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyIconButton } from '../../../../../../components/LegacyComponents/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport type { PopoverProps } from '../../../../../../components/Popover/Popover';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport type { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nimport { GotoPopover } from './Goto';\n\nexport type HeaderMenuProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'popover'> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover === 'goto') {\n const handleClosePopover = () => setPopover(undefined);\n\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n // oxlint-disable-next-line no-console\n console.error(e);\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = (props: PopoverProps) => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: React.JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = (event: React.MouseEvent) => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n // Defer popover open to the next tick so menu close lifecycle can finish first.\n // Without this, the same click can be treated as an outside interaction and close goto immediately.\n const handleClick = () => setTimeout(() => setPopover('goto'));\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={handleClick} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as React.JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n '-mr-1 justify-end overflow-hidden',\n // sizing\n '!h-6 !min-h-[theme(spacing.6)] !w-0 !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <LegacyIconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["useLocalization","index","props","GotoPopover","MenuPrimitive","LegacyIconButton"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { TableColumnMenu, TableColumnSortDirection } from '../../../../types';
|
|
3
|
-
export type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
3
|
+
export type HeaderMenuProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'popover'> & {
|
|
4
4
|
canFilter: boolean;
|
|
5
5
|
canGoto: boolean;
|
|
6
6
|
canHide: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyIconButton } from '../../../../../../components/LegacyComponents/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport type { PopoverProps } from '../../../../../../components/Popover/Popover';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport type { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nimport { GotoPopover } from './Goto';\n\nexport type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover === 'goto') {\n const handleClosePopover = () => setPopover(undefined);\n\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n // oxlint-disable-next-line no-console\n console.error(e);\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = (props: PopoverProps) => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = (event: React.MouseEvent) => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n // Defer popover open to the next tick so menu close lifecycle can finish first.\n // Without this, the same click can be treated as an outside interaction and close goto immediately.\n const handleClick = () => setTimeout(() => setPopover('goto'));\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={handleClick} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n '-mr-1 justify-end overflow-hidden',\n // sizing\n '!h-6 !min-h-[theme(spacing.6)] !w-0 !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <LegacyIconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["React","index","props","MenuPrimitive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyIconButton } from '../../../../../../components/LegacyComponents/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport type { PopoverProps } from '../../../../../../components/Popover/Popover';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport type { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nimport { GotoPopover } from './Goto';\n\nexport type HeaderMenuProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'popover'> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover === 'goto') {\n const handleClosePopover = () => setPopover(undefined);\n\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n // oxlint-disable-next-line no-console\n console.error(e);\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = (props: PopoverProps) => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: React.JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = (event: React.MouseEvent) => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n // Defer popover open to the next tick so menu close lifecycle can finish first.\n // Without this, the same click can be treated as an outside interaction and close goto immediately.\n const handleClick = () => setTimeout(() => setPopover('goto'));\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={handleClick} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as React.JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n '-mr-1 justify-end overflow-hidden',\n // sizing\n '!h-6 !min-h-[theme(spacing.6)] !w-0 !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <LegacyIconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["React","index","props","MenuPrimitive"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayRow.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useResizeObserver } from '../../../../../../hooks/useResizeObserver';\nimport { isElementInteractive } from '../../../../../../utils/dom';\nimport { useDropTarget } from '../../../../../../utils/hooks/useDropTarget';\nimport { mergeRefs } from '../../../../../../utils/mergeRefs';\nimport type { TableRowWithMetaData } from '../../../../types';\nimport type { TableRowRendererProps } from '../../../types';\nimport { Cell } from '../../Columns/Cell/Cell';\n\nexport type DisplayRowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> &\n TableRowRendererProps<TType> & {\n remeasureDependencies?: React.DependencyList;\n };\n\nexport const DisplayRow = React.memo(\n React.forwardRef<HTMLTableRowElement, DisplayRowProps>(function DisplayRow<TType = unknown>(\n props: DisplayRowProps<TType>,\n externalRef: React.Ref<HTMLTableRowElement>\n ) {\n const {\n children,\n cellRenderer: CellRenderer,\n index,\n measureRow,\n row,\n table,\n remeasureDependencies = [],\n ...otherAttributes\n } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const attributes: any = {\n ...otherAttributes,\n 'data-row-id': row.id,\n 'data-row-index': index,\n tabIndex: -1,\n };\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLTableRowElement>) => {\n const clickedElement = event.target as HTMLElement;\n\n if (!event.currentTarget?.contains(event.target as HTMLElement) || isElementInteractive(clickedElement)) {\n return;\n }\n\n tableMeta.rowClick.handleClick(event, row.original);\n },\n [row.original]\n );\n const handlePointerDown = React.useCallback(() => {\n requestAnimationFrame(() => tableMeta.rowActive.setRowActiveIndex(index));\n }, [index]);\n\n // row active\n if (tableMeta.rowActive.isEnabled) {\n attributes['data-row-active'] = tableMeta.rowActive.rowActiveIndex === index ? true : undefined;\n // we use pointerdown because it let's us picks up clicks on components inside the row, e.g. checkboxes\n attributes.onPointerDown = handlePointerDown;\n }\n\n // row click\n if (tableMeta.rowClick.isEnabled(row.original)) {\n attributes.onClick = handleClick;\n }\n\n // row drag\n if (tableMeta.rowDrag.isEnabled) {\n attributes['aria-grabbed'] = !!tableMeta.rowDrag.dragging[row.id];\n attributes.draggable = true;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n attributes.onDragStart = (event: React.DragEvent): void => {\n let rows = [row];\n\n if (row.getCanSelect()) {\n rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n }\n\n const data = rows.map(row => row.original);\n\n tableMeta.rowDrag.setDragging?.(\n rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {})\n );\n\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'bg-blue-500 text-white rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.append(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n tableMeta.rowDrag.handleRowDrag?.(data, showPlaceholder, setDataTransfer);\n };\n\n attributes.onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n tableMeta.rowDrag.setDragging?.({});\n };\n }\n\n // row drop\n const [isDraggedOver, dropTargetProps] = useDropTarget(event => tableMeta.rowDrop.handleDrop?.(event, row.original));\n\n if (tableMeta.rowDrop.isEnabled) {\n attributes.onDragEnter = dropTargetProps?.onDragEnter;\n attributes.onDragLeave = dropTargetProps?.onDragLeave;\n attributes.onDragOver = dropTargetProps?.onDragOver;\n attributes.onDrop = dropTargetProps?.onDrop;\n attributes['data-row-dragged-over'] = isDraggedOver;\n }\n\n // row grouping\n if (table.options.enableGrouping) {\n attributes['data-row-group'] = row.getIsGrouped() ? true : undefined;\n }\n\n // row selection\n if (row.getCanSelect()) {\n attributes['data-row-selected'] = row.getIsSelected() || row.getIsAllSubRowsSelected() ? true : undefined;\n }\n\n // row expansion\n // When grouping is enabled, a group header row also reports getIsExpanded() === true\n // when its children are visible. Skip the renderer in that case — otherwise row.original\n // (the first child's data) gets rendered as expansion content under the header.\n let expandedRow;\n\n if (tableMeta.rowExpansion.isEnabled && row.getIsExpanded() && !row.getIsGrouped()) {\n attributes['data-row-expanded'] = true;\n expandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(row.original)?.();\n }\n\n const rowMeta = (row.original as TableRowWithMetaData<TType>)._meta;\n\n if (rowMeta?.layout) {\n attributes['data-row-meta-layout'] = rowMeta.layout;\n }\n\n const ref = React.useRef<HTMLTableRowElement>(null);\n const expansionRef = React.useRef<HTMLTableRowElement>(null);\n const expandedRowSize = useResizeObserver(expansionRef, !!expandedRow);\n\n React.useEffect(() => {\n const rowHeight = ref.current?.getBoundingClientRect().height ?? 0;\n const expansionHeight = expansionRef.current?.getBoundingClientRect().height ?? 0;\n\n measureRow(rowHeight + expansionHeight);\n }, [expansionRef.current, expandedRowSize?.height, ...remeasureDependencies]);\n\n const className = cn('group/row', otherAttributes.className, {\n 'hover:cursor-grab': tableMeta.rowDrag.isEnabled && typeof attributes.onClick !== 'function',\n 'hover:cursor-pointer': typeof attributes.onClick === 'function',\n });\n\n const isGrouped = row.getIsGrouped();\n\n const mergedRef = mergeRefs([ref, externalRef]);\n\n return (\n <>\n <tr {...attributes} className={className} ref={mergedRef}>\n {children}\n {row\n .getVisibleCells()\n // Filter out the row actions cell from rendering in Grouped Row\n .filter(cell => !(isGrouped && cell.column.id === '__actions'))\n .map((cell, cellIndex) => (\n <Cell key={cell.id} cell={cell} index={cellIndex} renderer={CellRenderer} />\n ))}\n </tr>\n {expandedRow ? (\n <tr data-row-parent-id={row.id} ref={expansionRef}>\n <td className=\"col-span-full\">{expandedRow}</td>\n </tr>\n ) : null}\n </>\n );\n })\n) as <TType = unknown>(props: DisplayRowProps<TType> & { ref?: React.Ref<HTMLTableRowElement> }) => JSX.Element;\n"],"names":["DisplayRow","isElementInteractive","row","useDropTarget","useResizeObserver","mergeRefs","Cell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DisplayRow.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useResizeObserver } from '../../../../../../hooks/useResizeObserver';\nimport { isElementInteractive } from '../../../../../../utils/dom';\nimport { useDropTarget } from '../../../../../../utils/hooks/useDropTarget';\nimport { mergeRefs } from '../../../../../../utils/mergeRefs';\nimport type { TableRowWithMetaData } from '../../../../types';\nimport type { TableRowRendererProps } from '../../../types';\nimport { Cell } from '../../Columns/Cell/Cell';\n\nexport type DisplayRowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> &\n TableRowRendererProps<TType> & {\n remeasureDependencies?: React.DependencyList;\n };\n\nexport const DisplayRow = React.memo(\n React.forwardRef<HTMLTableRowElement, DisplayRowProps>(function DisplayRow<TType = unknown>(\n props: DisplayRowProps<TType>,\n externalRef: React.Ref<HTMLTableRowElement>\n ) {\n const {\n children,\n cellRenderer: CellRenderer,\n index,\n measureRow,\n row,\n table,\n remeasureDependencies = [],\n ...otherAttributes\n } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const attributes: any = {\n ...otherAttributes,\n 'data-row-id': row.id,\n 'data-row-index': index,\n tabIndex: -1,\n };\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLTableRowElement>) => {\n const clickedElement = event.target as HTMLElement;\n\n if (!event.currentTarget?.contains(event.target as HTMLElement) || isElementInteractive(clickedElement)) {\n return;\n }\n\n tableMeta.rowClick.handleClick(event, row.original);\n },\n [row.original]\n );\n const handlePointerDown = React.useCallback(() => {\n requestAnimationFrame(() => tableMeta.rowActive.setRowActiveIndex(index));\n }, [index]);\n\n // row active\n if (tableMeta.rowActive.isEnabled) {\n attributes['data-row-active'] = tableMeta.rowActive.rowActiveIndex === index ? true : undefined;\n // we use pointerdown because it let's us picks up clicks on components inside the row, e.g. checkboxes\n attributes.onPointerDown = handlePointerDown;\n }\n\n // row click\n if (tableMeta.rowClick.isEnabled(row.original)) {\n attributes.onClick = handleClick;\n }\n\n // row drag\n if (tableMeta.rowDrag.isEnabled) {\n attributes['aria-grabbed'] = !!tableMeta.rowDrag.dragging[row.id];\n attributes.draggable = true;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n attributes.onDragStart = (event: React.DragEvent): void => {\n let rows = [row];\n\n if (row.getCanSelect()) {\n rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n }\n\n const data = rows.map(row => row.original);\n\n tableMeta.rowDrag.setDragging?.(\n rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {})\n );\n\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'bg-blue-500 text-white rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.append(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n tableMeta.rowDrag.handleRowDrag?.(data, showPlaceholder, setDataTransfer);\n };\n\n attributes.onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n tableMeta.rowDrag.setDragging?.({});\n };\n }\n\n // row drop\n const [isDraggedOver, dropTargetProps] = useDropTarget(event => tableMeta.rowDrop.handleDrop?.(event, row.original));\n\n if (tableMeta.rowDrop.isEnabled) {\n attributes.onDragEnter = dropTargetProps?.onDragEnter;\n attributes.onDragLeave = dropTargetProps?.onDragLeave;\n attributes.onDragOver = dropTargetProps?.onDragOver;\n attributes.onDrop = dropTargetProps?.onDrop;\n attributes['data-row-dragged-over'] = isDraggedOver;\n }\n\n // row grouping\n if (table.options.enableGrouping) {\n attributes['data-row-group'] = row.getIsGrouped() ? true : undefined;\n }\n\n // row selection\n if (row.getCanSelect()) {\n attributes['data-row-selected'] = row.getIsSelected() || row.getIsAllSubRowsSelected() ? true : undefined;\n }\n\n // row expansion\n // When grouping is enabled, a group header row also reports getIsExpanded() === true\n // when its children are visible. Skip the renderer in that case — otherwise row.original\n // (the first child's data) gets rendered as expansion content under the header.\n let expandedRow;\n\n if (tableMeta.rowExpansion.isEnabled && row.getIsExpanded() && !row.getIsGrouped()) {\n attributes['data-row-expanded'] = true;\n expandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(row.original)?.();\n }\n\n const rowMeta = (row.original as TableRowWithMetaData<TType>)._meta;\n\n if (rowMeta?.layout) {\n attributes['data-row-meta-layout'] = rowMeta.layout;\n }\n\n const ref = React.useRef<HTMLTableRowElement>(null);\n const expansionRef = React.useRef<HTMLTableRowElement>(null);\n const expandedRowSize = useResizeObserver(expansionRef, !!expandedRow);\n\n React.useEffect(() => {\n const rowHeight = ref.current?.getBoundingClientRect().height ?? 0;\n const expansionHeight = expansionRef.current?.getBoundingClientRect().height ?? 0;\n\n measureRow(rowHeight + expansionHeight);\n }, [expansionRef.current, expandedRowSize?.height, ...remeasureDependencies]);\n\n const className = cn('group/row', otherAttributes.className, {\n 'hover:cursor-grab': tableMeta.rowDrag.isEnabled && typeof attributes.onClick !== 'function',\n 'hover:cursor-pointer': typeof attributes.onClick === 'function',\n });\n\n const isGrouped = row.getIsGrouped();\n\n const mergedRef = mergeRefs([ref, externalRef]);\n\n return (\n <>\n <tr {...attributes} className={className} ref={mergedRef}>\n {children}\n {row\n .getVisibleCells()\n // Filter out the row actions cell from rendering in Grouped Row\n .filter(cell => !(isGrouped && cell.column.id === '__actions'))\n .map((cell, cellIndex) => (\n <Cell key={cell.id} cell={cell} index={cellIndex} renderer={CellRenderer} />\n ))}\n </tr>\n {expandedRow ? (\n <tr data-row-parent-id={row.id} ref={expansionRef}>\n <td className=\"col-span-full\">{expandedRow}</td>\n </tr>\n ) : null}\n </>\n );\n })\n) as <TType = unknown>(props: DisplayRowProps<TType> & { ref?: React.Ref<HTMLTableRowElement> }) => React.JSX.Element;\n"],"names":["DisplayRow","isElementInteractive","row","useDropTarget","useResizeObserver","mergeRefs","Cell"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayRow.js","sources":["../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useResizeObserver } from '../../../../../../hooks/useResizeObserver';\nimport { isElementInteractive } from '../../../../../../utils/dom';\nimport { useDropTarget } from '../../../../../../utils/hooks/useDropTarget';\nimport { mergeRefs } from '../../../../../../utils/mergeRefs';\nimport type { TableRowWithMetaData } from '../../../../types';\nimport type { TableRowRendererProps } from '../../../types';\nimport { Cell } from '../../Columns/Cell/Cell';\n\nexport type DisplayRowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> &\n TableRowRendererProps<TType> & {\n remeasureDependencies?: React.DependencyList;\n };\n\nexport const DisplayRow = React.memo(\n React.forwardRef<HTMLTableRowElement, DisplayRowProps>(function DisplayRow<TType = unknown>(\n props: DisplayRowProps<TType>,\n externalRef: React.Ref<HTMLTableRowElement>\n ) {\n const {\n children,\n cellRenderer: CellRenderer,\n index,\n measureRow,\n row,\n table,\n remeasureDependencies = [],\n ...otherAttributes\n } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const attributes: any = {\n ...otherAttributes,\n 'data-row-id': row.id,\n 'data-row-index': index,\n tabIndex: -1,\n };\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLTableRowElement>) => {\n const clickedElement = event.target as HTMLElement;\n\n if (!event.currentTarget?.contains(event.target as HTMLElement) || isElementInteractive(clickedElement)) {\n return;\n }\n\n tableMeta.rowClick.handleClick(event, row.original);\n },\n [row.original]\n );\n const handlePointerDown = React.useCallback(() => {\n requestAnimationFrame(() => tableMeta.rowActive.setRowActiveIndex(index));\n }, [index]);\n\n // row active\n if (tableMeta.rowActive.isEnabled) {\n attributes['data-row-active'] = tableMeta.rowActive.rowActiveIndex === index ? true : undefined;\n // we use pointerdown because it let's us picks up clicks on components inside the row, e.g. checkboxes\n attributes.onPointerDown = handlePointerDown;\n }\n\n // row click\n if (tableMeta.rowClick.isEnabled(row.original)) {\n attributes.onClick = handleClick;\n }\n\n // row drag\n if (tableMeta.rowDrag.isEnabled) {\n attributes['aria-grabbed'] = !!tableMeta.rowDrag.dragging[row.id];\n attributes.draggable = true;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n attributes.onDragStart = (event: React.DragEvent): void => {\n let rows = [row];\n\n if (row.getCanSelect()) {\n rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n }\n\n const data = rows.map(row => row.original);\n\n tableMeta.rowDrag.setDragging?.(\n rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {})\n );\n\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'bg-blue-500 text-white rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.append(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n tableMeta.rowDrag.handleRowDrag?.(data, showPlaceholder, setDataTransfer);\n };\n\n attributes.onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n tableMeta.rowDrag.setDragging?.({});\n };\n }\n\n // row drop\n const [isDraggedOver, dropTargetProps] = useDropTarget(event => tableMeta.rowDrop.handleDrop?.(event, row.original));\n\n if (tableMeta.rowDrop.isEnabled) {\n attributes.onDragEnter = dropTargetProps?.onDragEnter;\n attributes.onDragLeave = dropTargetProps?.onDragLeave;\n attributes.onDragOver = dropTargetProps?.onDragOver;\n attributes.onDrop = dropTargetProps?.onDrop;\n attributes['data-row-dragged-over'] = isDraggedOver;\n }\n\n // row grouping\n if (table.options.enableGrouping) {\n attributes['data-row-group'] = row.getIsGrouped() ? true : undefined;\n }\n\n // row selection\n if (row.getCanSelect()) {\n attributes['data-row-selected'] = row.getIsSelected() || row.getIsAllSubRowsSelected() ? true : undefined;\n }\n\n // row expansion\n // When grouping is enabled, a group header row also reports getIsExpanded() === true\n // when its children are visible. Skip the renderer in that case — otherwise row.original\n // (the first child's data) gets rendered as expansion content under the header.\n let expandedRow;\n\n if (tableMeta.rowExpansion.isEnabled && row.getIsExpanded() && !row.getIsGrouped()) {\n attributes['data-row-expanded'] = true;\n expandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(row.original)?.();\n }\n\n const rowMeta = (row.original as TableRowWithMetaData<TType>)._meta;\n\n if (rowMeta?.layout) {\n attributes['data-row-meta-layout'] = rowMeta.layout;\n }\n\n const ref = React.useRef<HTMLTableRowElement>(null);\n const expansionRef = React.useRef<HTMLTableRowElement>(null);\n const expandedRowSize = useResizeObserver(expansionRef, !!expandedRow);\n\n React.useEffect(() => {\n const rowHeight = ref.current?.getBoundingClientRect().height ?? 0;\n const expansionHeight = expansionRef.current?.getBoundingClientRect().height ?? 0;\n\n measureRow(rowHeight + expansionHeight);\n }, [expansionRef.current, expandedRowSize?.height, ...remeasureDependencies]);\n\n const className = cn('group/row', otherAttributes.className, {\n 'hover:cursor-grab': tableMeta.rowDrag.isEnabled && typeof attributes.onClick !== 'function',\n 'hover:cursor-pointer': typeof attributes.onClick === 'function',\n });\n\n const isGrouped = row.getIsGrouped();\n\n const mergedRef = mergeRefs([ref, externalRef]);\n\n return (\n <>\n <tr {...attributes} className={className} ref={mergedRef}>\n {children}\n {row\n .getVisibleCells()\n // Filter out the row actions cell from rendering in Grouped Row\n .filter(cell => !(isGrouped && cell.column.id === '__actions'))\n .map((cell, cellIndex) => (\n <Cell key={cell.id} cell={cell} index={cellIndex} renderer={CellRenderer} />\n ))}\n </tr>\n {expandedRow ? (\n <tr data-row-parent-id={row.id} ref={expansionRef}>\n <td className=\"col-span-full\">{expandedRow}</td>\n </tr>\n ) : null}\n </>\n );\n })\n) as <TType = unknown>(props: DisplayRowProps<TType> & { ref?: React.Ref<HTMLTableRowElement> }) => JSX.Element;\n"],"names":["React","DisplayRow","row"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DisplayRow.js","sources":["../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { useResizeObserver } from '../../../../../../hooks/useResizeObserver';\nimport { isElementInteractive } from '../../../../../../utils/dom';\nimport { useDropTarget } from '../../../../../../utils/hooks/useDropTarget';\nimport { mergeRefs } from '../../../../../../utils/mergeRefs';\nimport type { TableRowWithMetaData } from '../../../../types';\nimport type { TableRowRendererProps } from '../../../types';\nimport { Cell } from '../../Columns/Cell/Cell';\n\nexport type DisplayRowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> &\n TableRowRendererProps<TType> & {\n remeasureDependencies?: React.DependencyList;\n };\n\nexport const DisplayRow = React.memo(\n React.forwardRef<HTMLTableRowElement, DisplayRowProps>(function DisplayRow<TType = unknown>(\n props: DisplayRowProps<TType>,\n externalRef: React.Ref<HTMLTableRowElement>\n ) {\n const {\n children,\n cellRenderer: CellRenderer,\n index,\n measureRow,\n row,\n table,\n remeasureDependencies = [],\n ...otherAttributes\n } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const attributes: any = {\n ...otherAttributes,\n 'data-row-id': row.id,\n 'data-row-index': index,\n tabIndex: -1,\n };\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLTableRowElement>) => {\n const clickedElement = event.target as HTMLElement;\n\n if (!event.currentTarget?.contains(event.target as HTMLElement) || isElementInteractive(clickedElement)) {\n return;\n }\n\n tableMeta.rowClick.handleClick(event, row.original);\n },\n [row.original]\n );\n const handlePointerDown = React.useCallback(() => {\n requestAnimationFrame(() => tableMeta.rowActive.setRowActiveIndex(index));\n }, [index]);\n\n // row active\n if (tableMeta.rowActive.isEnabled) {\n attributes['data-row-active'] = tableMeta.rowActive.rowActiveIndex === index ? true : undefined;\n // we use pointerdown because it let's us picks up clicks on components inside the row, e.g. checkboxes\n attributes.onPointerDown = handlePointerDown;\n }\n\n // row click\n if (tableMeta.rowClick.isEnabled(row.original)) {\n attributes.onClick = handleClick;\n }\n\n // row drag\n if (tableMeta.rowDrag.isEnabled) {\n attributes['aria-grabbed'] = !!tableMeta.rowDrag.dragging[row.id];\n attributes.draggable = true;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n attributes.onDragStart = (event: React.DragEvent): void => {\n let rows = [row];\n\n if (row.getCanSelect()) {\n rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n }\n\n const data = rows.map(row => row.original);\n\n tableMeta.rowDrag.setDragging?.(\n rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {})\n );\n\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'bg-blue-500 text-white rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.append(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n tableMeta.rowDrag.handleRowDrag?.(data, showPlaceholder, setDataTransfer);\n };\n\n attributes.onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n tableMeta.rowDrag.setDragging?.({});\n };\n }\n\n // row drop\n const [isDraggedOver, dropTargetProps] = useDropTarget(event => tableMeta.rowDrop.handleDrop?.(event, row.original));\n\n if (tableMeta.rowDrop.isEnabled) {\n attributes.onDragEnter = dropTargetProps?.onDragEnter;\n attributes.onDragLeave = dropTargetProps?.onDragLeave;\n attributes.onDragOver = dropTargetProps?.onDragOver;\n attributes.onDrop = dropTargetProps?.onDrop;\n attributes['data-row-dragged-over'] = isDraggedOver;\n }\n\n // row grouping\n if (table.options.enableGrouping) {\n attributes['data-row-group'] = row.getIsGrouped() ? true : undefined;\n }\n\n // row selection\n if (row.getCanSelect()) {\n attributes['data-row-selected'] = row.getIsSelected() || row.getIsAllSubRowsSelected() ? true : undefined;\n }\n\n // row expansion\n // When grouping is enabled, a group header row also reports getIsExpanded() === true\n // when its children are visible. Skip the renderer in that case — otherwise row.original\n // (the first child's data) gets rendered as expansion content under the header.\n let expandedRow;\n\n if (tableMeta.rowExpansion.isEnabled && row.getIsExpanded() && !row.getIsGrouped()) {\n attributes['data-row-expanded'] = true;\n expandedRow = tableMeta.rowExpansion.rowExpansionRenderer?.(row.original)?.();\n }\n\n const rowMeta = (row.original as TableRowWithMetaData<TType>)._meta;\n\n if (rowMeta?.layout) {\n attributes['data-row-meta-layout'] = rowMeta.layout;\n }\n\n const ref = React.useRef<HTMLTableRowElement>(null);\n const expansionRef = React.useRef<HTMLTableRowElement>(null);\n const expandedRowSize = useResizeObserver(expansionRef, !!expandedRow);\n\n React.useEffect(() => {\n const rowHeight = ref.current?.getBoundingClientRect().height ?? 0;\n const expansionHeight = expansionRef.current?.getBoundingClientRect().height ?? 0;\n\n measureRow(rowHeight + expansionHeight);\n }, [expansionRef.current, expandedRowSize?.height, ...remeasureDependencies]);\n\n const className = cn('group/row', otherAttributes.className, {\n 'hover:cursor-grab': tableMeta.rowDrag.isEnabled && typeof attributes.onClick !== 'function',\n 'hover:cursor-pointer': typeof attributes.onClick === 'function',\n });\n\n const isGrouped = row.getIsGrouped();\n\n const mergedRef = mergeRefs([ref, externalRef]);\n\n return (\n <>\n <tr {...attributes} className={className} ref={mergedRef}>\n {children}\n {row\n .getVisibleCells()\n // Filter out the row actions cell from rendering in Grouped Row\n .filter(cell => !(isGrouped && cell.column.id === '__actions'))\n .map((cell, cellIndex) => (\n <Cell key={cell.id} cell={cell} index={cellIndex} renderer={CellRenderer} />\n ))}\n </tr>\n {expandedRow ? (\n <tr data-row-parent-id={row.id} ref={expansionRef}>\n <td className=\"col-span-full\">{expandedRow}</td>\n </tr>\n ) : null}\n </>\n );\n })\n) as <TType = unknown>(props: DisplayRowProps<TType> & { ref?: React.Ref<HTMLTableRowElement> }) => React.JSX.Element;\n"],"names":["React","DisplayRow","row"],"mappings":";;;;;;;AAiBO,MAAM,aAAaA,eAAM;AAAA,EAC5BA,eAAM,WAAiD,SAASC,YAC5D,OACA,aACF;AACE,UAAM;AAAA,MACF;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAwB,CAAA;AAAA,MACxB,GAAG;AAAA,IAAA,IACH;AACJ,UAAM,YAAY,MAAM,QAAQ;AAEhC,UAAM,aAAkB;AAAA,MACpB,GAAG;AAAA,MACH,eAAe,IAAI;AAAA,MACnB,kBAAkB;AAAA,MAClB,UAAU;AAAA,IAAA;AAGd,UAAM,cAAcD,eAAM;AAAA,MACtB,CAAC,UAAiD;AAC9C,cAAM,iBAAiB,MAAM;AAE7B,YAAI,CAAC,MAAM,eAAe,SAAS,MAAM,MAAqB,KAAK,qBAAqB,cAAc,GAAG;AACrG;AAAA,QACJ;AAEA,kBAAU,SAAS,YAAY,OAAO,IAAI,QAAQ;AAAA,MACtD;AAAA,MACA,CAAC,IAAI,QAAQ;AAAA,IAAA;AAEjB,UAAM,oBAAoBA,eAAM,YAAY,MAAM;AAC9C,4BAAsB,MAAM,UAAU,UAAU,kBAAkB,KAAK,CAAC;AAAA,IAC5E,GAAG,CAAC,KAAK,CAAC;AAGV,QAAI,UAAU,UAAU,WAAW;AAC/B,iBAAW,iBAAiB,IAAI,UAAU,UAAU,mBAAmB,QAAQ,OAAO;AAEtF,iBAAW,gBAAgB;AAAA,IAC/B;AAGA,QAAI,UAAU,SAAS,UAAU,IAAI,QAAQ,GAAG;AAC5C,iBAAW,UAAU;AAAA,IACzB;AAGA,QAAI,UAAU,QAAQ,WAAW;AAC7B,iBAAW,cAAc,IAAI,CAAC,CAAC,UAAU,QAAQ,SAAS,IAAI,EAAE;AAChE,iBAAW,YAAY;AACvB,YAAM,mBAAmB;AAEzB,iBAAW,cAAc,CAAC,UAAiC;AACvD,YAAI,OAAO,CAAC,GAAG;AAEf,YAAI,IAAI,gBAAgB;AACpB,iBAAO,IAAI,kBAAkB,MAAM,oBAAA,EAAsB,OAAO,CAAC,KAAK,GAAG,MAAM,oBAAA,EAAsB,IAAI;AAAA,QAC7G;AAEA,cAAM,OAAO,KAAK,IAAI,CAAAE,SAAOA,KAAI,QAAQ;AAEzC,kBAAU,QAAQ;AAAA,UACd,KAAK,OAAO,CAAC,UAAU,qBAAqB,EAAE,GAAG,UAAU,CAAC,gBAAgB,EAAE,GAAG,KAAA,IAAS,CAAA,CAAE;AAAA,QAAA;AAIhG,cAAM,aAAa,QAAQ,QAAQ,KAAK,UAAU,IAAI,CAAC;AAEvD,cAAM,kBAAkB,CAAC,SAAiB;AACtC,gBAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,gBAAM,KAAK;AACX,gBAAM,YAAY;AAClB,gBAAM,YAAY;AAClB,mBAAS,KAAK,OAAO,KAAK;AAC1B,gBAAM,aAAa,aAAa,OAAO,GAAG,CAAC;AAAA,QAC/C;AAEA,cAAM,kBAAkB,CAAC,SAAiB,MAAM,aAAa,QAAQ,QAAQ,IAAI;AAEjF,kBAAU,QAAQ,gBAAgB,MAAM,iBAAiB,eAAe;AAAA,MAC5E;AAEA,iBAAW,YAAY,MAAY;AAC/B,iBAAS,eAAe,gBAAgB,GAAG,OAAA;AAC3C,kBAAU,QAAQ,cAAc,EAAE;AAAA,MACtC;AAAA,IACJ;AAGA,UAAM,CAAC,eAAe,eAAe,IAAI,cAAc,CAAA,UAAS,UAAU,QAAQ,aAAa,OAAO,IAAI,QAAQ,CAAC;AAEnH,QAAI,UAAU,QAAQ,WAAW;AAC7B,iBAAW,cAAc,iBAAiB;AAC1C,iBAAW,cAAc,iBAAiB;AAC1C,iBAAW,aAAa,iBAAiB;AACzC,iBAAW,SAAS,iBAAiB;AACrC,iBAAW,uBAAuB,IAAI;AAAA,IAC1C;AAGA,QAAI,MAAM,QAAQ,gBAAgB;AAC9B,iBAAW,gBAAgB,IAAI,IAAI,aAAA,IAAiB,OAAO;AAAA,IAC/D;AAGA,QAAI,IAAI,gBAAgB;AACpB,iBAAW,mBAAmB,IAAI,IAAI,cAAA,KAAmB,IAAI,4BAA4B,OAAO;AAAA,IACpG;AAMA,QAAI;AAEJ,QAAI,UAAU,aAAa,aAAa,IAAI,mBAAmB,CAAC,IAAI,gBAAgB;AAChF,iBAAW,mBAAmB,IAAI;AAClC,oBAAc,UAAU,aAAa,uBAAuB,IAAI,QAAQ,IAAA;AAAA,IAC5E;AAEA,UAAM,UAAW,IAAI,SAAyC;AAE9D,QAAI,SAAS,QAAQ;AACjB,iBAAW,sBAAsB,IAAI,QAAQ;AAAA,IACjD;AAEA,UAAM,MAAMF,eAAM,OAA4B,IAAI;AAClD,UAAM,eAAeA,eAAM,OAA4B,IAAI;AAC3D,UAAM,kBAAkB,kBAAkB,cAAc,CAAC,CAAC,WAAW;AAErEA,mBAAM,UAAU,MAAM;AAClB,YAAM,YAAY,IAAI,SAAS,sBAAA,EAAwB,UAAU;AACjE,YAAM,kBAAkB,aAAa,SAAS,sBAAA,EAAwB,UAAU;AAEhF,iBAAW,YAAY,eAAe;AAAA,IAC1C,GAAG,CAAC,aAAa,SAAS,iBAAiB,QAAQ,GAAG,qBAAqB,CAAC;AAE5E,UAAM,YAAY,GAAG,aAAa,gBAAgB,WAAW;AAAA,MACzD,qBAAqB,UAAU,QAAQ,aAAa,OAAO,WAAW,YAAY;AAAA,MAClF,wBAAwB,OAAO,WAAW,YAAY;AAAA,IAAA,CACzD;AAED,UAAM,YAAY,IAAI,aAAA;AAEtB,UAAM,YAAY,UAAU,CAAC,KAAK,WAAW,CAAC;AAE9C,WACIA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAsB,KAAK,UAAA,GAC1C,UACA,IACI,gBAAA,EAEA,OAAO,CAAA,SAAQ,EAAE,aAAa,KAAK,OAAO,OAAO,YAAY,EAC7D,IAAI,CAAC,MAAM,cACRA,+BAAA,cAAC,QAAK,KAAK,KAAK,IAAI,MAAY,OAAO,WAAW,UAAU,aAAA,CAAc,CAC7E,CACT,GACC,cACGA,+BAAA,cAAC,QAAG,sBAAoB,IAAI,IAAI,KAAK,aAAA,GACjCA,+BAAA,cAAC,MAAA,EAAG,WAAU,gBAAA,GAAiB,WAAY,CAC/C,IACA,IACR;AAAA,EAER,CAAC;AACL;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableCustomSettingsRenderer } from '../../../types';\nimport type { useTableReturnValue } from '../../useTable';\n\nimport { Filters } from './components/Filters/Filters';\nimport { Print } from './components/Print/Print';\nimport { Search } from './components/Search/Search';\nimport { Settings } from './components/Settings/Settings';\n\nexport type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n children?: JSX.Element | null;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>) {\n const { children: customTools, table, ...attributes } = props;\n\n if (!isToolbarVisible<TType>(table, !!customTools)) {\n return null;\n }\n\n const canFilter = table.instance.options.enableColumnFilters;\n const canPrint = table.meta.printing.isEnabled;\n const canSettings = canChangeSettings(table.instance, table.props.customSettings);\n const canSearch = table.meta.search.isEnabled;\n\n const id = `${table.id}-toolbar`;\n\n return (\n <>\n <div\n {...attributes}\n id={id}\n className=\"mb-4 flex flex-shrink flex-grow-0 flex-wrap gap-2 print:hidden\"\n data-taco=\"table-toolbar\">\n {table.props.toolbarLeft}\n <div className=\"ml-auto flex flex-shrink-0 items-center gap-2 print:hidden\">\n {customTools}\n {canFilter ? <Filters length={table.meta.length} tableId={table.id} table={table.instance} /> : null}\n {table.props.toolbarRight}\n {canPrint ? <Print table={table.instance} tableId={table.id} tableRef={table.ref} /> : null}\n {canSettings ? (\n <Settings customSettings={table.props.customSettings} id={`${id}-settings`} table={table.instance} />\n ) : null}\n {canSearch ? (\n <Search scrollToIndex={table.renderer.scrollToIndex} table={table.instance} tableRef={table.ref} />\n ) : null}\n </div>\n </div>\n {table.props.toolbarPanel ? <div className=\"mb-4\">{table.props.toolbarPanel}</div> : undefined}\n </>\n );\n}\n\nfunction canChangeSettings<TType = unknown>(table: ReactTable<TType>, customSettings?: TableCustomSettingsRenderer) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n return (\n table.options.enableHiding ||\n tableMeta.columnOrdering.isEnabled ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n typeof customSettings === 'function'\n );\n}\n\nfunction isToolbarVisible<TType = unknown>(table: useTableReturnValue<TType>, customTools: boolean) {\n const hasInternalToolbar =\n customTools ||\n table.instance.options.enableColumnFilters ||\n table.meta.printing.isEnabled ||\n canChangeSettings(table.instance, table.props.customSettings) ||\n table.meta.search.isEnabled;\n\n return hasInternalToolbar || !!table.props.toolbarLeft || !!table.props.toolbarRight;\n}\n"],"names":["Filters","Print","Settings","Search"],"mappings":";;;;;;;AAgBO,SAAS,aAA8B,OAAiC;AAC3E,QAAM,EAAE,UAAU,aAAa,OAAO,GAAG,eAAe;AAExD,MAAI,CAAC,iBAAwB,OAAO,CAAC,CAAC,WAAW,GAAG;AAChD,WAAO;AAAA,EACX;AAEA,QAAM,YAAY,MAAM,SAAS,QAAQ;AACzC,QAAM,WAAW,MAAM,KAAK,SAAS;AACrC,QAAM,cAAc,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc;AAChF,QAAM,YAAY,MAAM,KAAK,OAAO;AAEpC,QAAM,KAAK,GAAG,MAAM,EAAE;AAEtB,SACI,sBAAA,cAAA,MAAA,UAAA,MACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,aAAU;AAAA,IAAA;AAAA,IACT,MAAM,MAAM;AAAA,IACb,sBAAA,cAAC,OAAA,EAAI,WAAU,6DAAA,GACV,aACA,YAAY,sBAAA,cAACA,QAAAA,SAAA,EAAQ,QAAQ,MAAM,KAAK,QAAQ,SAAS,MAAM,IAAI,OAAO,MAAM,UAAU,IAAK,MAC/F,MAAM,MAAM,cACZ,WAAW,sBAAA,cAACC,MAAAA,OAAA,EAAM,OAAO,MAAM,UAAU,SAAS,MAAM,IAAI,UAAU,MAAM,IAAA,CAAK,IAAK,MACtF,cACG,sBAAA,cAACC,SAAAA,YAAS,gBAAgB,MAAM,MAAM,gBAAgB,IAAI,GAAG,EAAE,aAAa,OAAO,MAAM,SAAA,CAAU,IACnG,MACH,YACG,sBAAA,cAACC,OAAAA,QAAA,EAAO,eAAe,MAAM,SAAS,eAAe,OAAO,MAAM,UAAU,UAAU,MAAM,IAAA,CAAK,IACjG,IACR;AAAA,EAAA,GAEH,MAAM,MAAM,eAAe,sBAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GAAQ,MAAM,MAAM,YAAa,IAAS,MACzF;AAER;AAEA,SAAS,kBAAmC,OAA0B,gBAA8C;AAChH,QAAM,YAAY,MAAM,QAAQ;AAEhC,SACI,MAAM,QAAQ,gBACd,UAAU,eAAe,aACzB,UAAU,SAAS,aACnB,UAAU,UAAU,aACpB,OAAO,mBAAmB;AAElC;AAEA,SAAS,iBAAkC,OAAmC,aAAsB;AAChG,QAAM,qBACF,eACA,MAAM,SAAS,QAAQ,uBACvB,MAAM,KAAK,SAAS,aACpB,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc,KAC5D,MAAM,KAAK,OAAO;AAEtB,SAAO,sBAAsB,CAAC,CAAC,MAAM,MAAM,eAAe,CAAC,CAAC,MAAM,MAAM;AAC5E;;"}
|
|
1
|
+
{"version":3,"file":"Toolbar.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableCustomSettingsRenderer } from '../../../types';\nimport type { useTableReturnValue } from '../../useTable';\n\nimport { Filters } from './components/Filters/Filters';\nimport { Print } from './components/Print/Print';\nimport { Search } from './components/Search/Search';\nimport { Settings } from './components/Settings/Settings';\n\nexport type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n children?: React.JSX.Element | null;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>) {\n const { children: customTools, table, ...attributes } = props;\n\n if (!isToolbarVisible<TType>(table, !!customTools)) {\n return null;\n }\n\n const canFilter = table.instance.options.enableColumnFilters;\n const canPrint = table.meta.printing.isEnabled;\n const canSettings = canChangeSettings(table.instance, table.props.customSettings);\n const canSearch = table.meta.search.isEnabled;\n\n const id = `${table.id}-toolbar`;\n\n return (\n <>\n <div\n {...attributes}\n id={id}\n className=\"mb-4 flex flex-shrink flex-grow-0 flex-wrap gap-2 print:hidden\"\n data-taco=\"table-toolbar\">\n {table.props.toolbarLeft}\n <div className=\"ml-auto flex flex-shrink-0 items-center gap-2 print:hidden\">\n {customTools}\n {canFilter ? <Filters length={table.meta.length} tableId={table.id} table={table.instance} /> : null}\n {table.props.toolbarRight}\n {canPrint ? <Print table={table.instance} tableId={table.id} tableRef={table.ref} /> : null}\n {canSettings ? (\n <Settings customSettings={table.props.customSettings} id={`${id}-settings`} table={table.instance} />\n ) : null}\n {canSearch ? (\n <Search scrollToIndex={table.renderer.scrollToIndex} table={table.instance} tableRef={table.ref} />\n ) : null}\n </div>\n </div>\n {table.props.toolbarPanel ? <div className=\"mb-4\">{table.props.toolbarPanel}</div> : undefined}\n </>\n );\n}\n\nfunction canChangeSettings<TType = unknown>(table: ReactTable<TType>, customSettings?: TableCustomSettingsRenderer) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n return (\n table.options.enableHiding ||\n tableMeta.columnOrdering.isEnabled ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n typeof customSettings === 'function'\n );\n}\n\nfunction isToolbarVisible<TType = unknown>(table: useTableReturnValue<TType>, customTools: boolean) {\n const hasInternalToolbar =\n customTools ||\n table.instance.options.enableColumnFilters ||\n table.meta.printing.isEnabled ||\n canChangeSettings(table.instance, table.props.customSettings) ||\n table.meta.search.isEnabled;\n\n return hasInternalToolbar || !!table.props.toolbarLeft || !!table.props.toolbarRight;\n}\n"],"names":["Filters","Print","Settings","Search"],"mappings":";;;;;;;AAgBO,SAAS,aAA8B,OAAiC;AAC3E,QAAM,EAAE,UAAU,aAAa,OAAO,GAAG,eAAe;AAExD,MAAI,CAAC,iBAAwB,OAAO,CAAC,CAAC,WAAW,GAAG;AAChD,WAAO;AAAA,EACX;AAEA,QAAM,YAAY,MAAM,SAAS,QAAQ;AACzC,QAAM,WAAW,MAAM,KAAK,SAAS;AACrC,QAAM,cAAc,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc;AAChF,QAAM,YAAY,MAAM,KAAK,OAAO;AAEpC,QAAM,KAAK,GAAG,MAAM,EAAE;AAEtB,SACI,sBAAA,cAAA,MAAA,UAAA,MACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,aAAU;AAAA,IAAA;AAAA,IACT,MAAM,MAAM;AAAA,IACb,sBAAA,cAAC,OAAA,EAAI,WAAU,6DAAA,GACV,aACA,YAAY,sBAAA,cAACA,QAAAA,SAAA,EAAQ,QAAQ,MAAM,KAAK,QAAQ,SAAS,MAAM,IAAI,OAAO,MAAM,UAAU,IAAK,MAC/F,MAAM,MAAM,cACZ,WAAW,sBAAA,cAACC,MAAAA,OAAA,EAAM,OAAO,MAAM,UAAU,SAAS,MAAM,IAAI,UAAU,MAAM,IAAA,CAAK,IAAK,MACtF,cACG,sBAAA,cAACC,SAAAA,YAAS,gBAAgB,MAAM,MAAM,gBAAgB,IAAI,GAAG,EAAE,aAAa,OAAO,MAAM,SAAA,CAAU,IACnG,MACH,YACG,sBAAA,cAACC,OAAAA,QAAA,EAAO,eAAe,MAAM,SAAS,eAAe,OAAO,MAAM,UAAU,UAAU,MAAM,IAAA,CAAK,IACjG,IACR;AAAA,EAAA,GAEH,MAAM,MAAM,eAAe,sBAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GAAQ,MAAM,MAAM,YAAa,IAAS,MACzF;AAER;AAEA,SAAS,kBAAmC,OAA0B,gBAA8C;AAChH,QAAM,YAAY,MAAM,QAAQ;AAEhC,SACI,MAAM,QAAQ,gBACd,UAAU,eAAe,aACzB,UAAU,SAAS,aACnB,UAAU,UAAU,aACpB,OAAO,mBAAmB;AAElC;AAEA,SAAS,iBAAkC,OAAmC,aAAsB;AAChG,QAAM,qBACF,eACA,MAAM,SAAS,QAAQ,uBACvB,MAAM,KAAK,SAAS,aACpB,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc,KAC5D,MAAM,KAAK,OAAO;AAEtB,SAAO,sBAAsB,CAAC,CAAC,MAAM,MAAM,eAAe,CAAC,CAAC,MAAM,MAAM;AAC5E;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { useTableReturnValue } from '../../useTable';
|
|
3
3
|
export type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
-
children?: JSX.Element | null;
|
|
4
|
+
children?: React.JSX.Element | null;
|
|
5
5
|
table: useTableReturnValue<TType>;
|
|
6
6
|
};
|
|
7
7
|
export declare function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>): React.JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.js","sources":["../../../../../../src/primitives/Table/Core/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableCustomSettingsRenderer } from '../../../types';\nimport type { useTableReturnValue } from '../../useTable';\n\nimport { Filters } from './components/Filters/Filters';\nimport { Print } from './components/Print/Print';\nimport { Search } from './components/Search/Search';\nimport { Settings } from './components/Settings/Settings';\n\nexport type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n children?: JSX.Element | null;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>) {\n const { children: customTools, table, ...attributes } = props;\n\n if (!isToolbarVisible<TType>(table, !!customTools)) {\n return null;\n }\n\n const canFilter = table.instance.options.enableColumnFilters;\n const canPrint = table.meta.printing.isEnabled;\n const canSettings = canChangeSettings(table.instance, table.props.customSettings);\n const canSearch = table.meta.search.isEnabled;\n\n const id = `${table.id}-toolbar`;\n\n return (\n <>\n <div\n {...attributes}\n id={id}\n className=\"mb-4 flex flex-shrink flex-grow-0 flex-wrap gap-2 print:hidden\"\n data-taco=\"table-toolbar\">\n {table.props.toolbarLeft}\n <div className=\"ml-auto flex flex-shrink-0 items-center gap-2 print:hidden\">\n {customTools}\n {canFilter ? <Filters length={table.meta.length} tableId={table.id} table={table.instance} /> : null}\n {table.props.toolbarRight}\n {canPrint ? <Print table={table.instance} tableId={table.id} tableRef={table.ref} /> : null}\n {canSettings ? (\n <Settings customSettings={table.props.customSettings} id={`${id}-settings`} table={table.instance} />\n ) : null}\n {canSearch ? (\n <Search scrollToIndex={table.renderer.scrollToIndex} table={table.instance} tableRef={table.ref} />\n ) : null}\n </div>\n </div>\n {table.props.toolbarPanel ? <div className=\"mb-4\">{table.props.toolbarPanel}</div> : undefined}\n </>\n );\n}\n\nfunction canChangeSettings<TType = unknown>(table: ReactTable<TType>, customSettings?: TableCustomSettingsRenderer) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n return (\n table.options.enableHiding ||\n tableMeta.columnOrdering.isEnabled ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n typeof customSettings === 'function'\n );\n}\n\nfunction isToolbarVisible<TType = unknown>(table: useTableReturnValue<TType>, customTools: boolean) {\n const hasInternalToolbar =\n customTools ||\n table.instance.options.enableColumnFilters ||\n table.meta.printing.isEnabled ||\n canChangeSettings(table.instance, table.props.customSettings) ||\n table.meta.search.isEnabled;\n\n return hasInternalToolbar || !!table.props.toolbarLeft || !!table.props.toolbarRight;\n}\n"],"names":["React"],"mappings":";;;;;AAgBO,SAAS,aAA8B,OAAiC;AAC3E,QAAM,EAAE,UAAU,aAAa,OAAO,GAAG,eAAe;AAExD,MAAI,CAAC,iBAAwB,OAAO,CAAC,CAAC,WAAW,GAAG;AAChD,WAAO;AAAA,EACX;AAEA,QAAM,YAAY,MAAM,SAAS,QAAQ;AACzC,QAAM,WAAW,MAAM,KAAK,SAAS;AACrC,QAAM,cAAc,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc;AAChF,QAAM,YAAY,MAAM,KAAK,OAAO;AAEpC,QAAM,KAAK,GAAG,MAAM,EAAE;AAEtB,SACIA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,aAAU;AAAA,IAAA;AAAA,IACT,MAAM,MAAM;AAAA,IACbA,+BAAA,cAAC,OAAA,EAAI,WAAU,6DAAA,GACV,aACA,YAAYA,+BAAA,cAAC,SAAA,EAAQ,QAAQ,MAAM,KAAK,QAAQ,SAAS,MAAM,IAAI,OAAO,MAAM,UAAU,IAAK,MAC/F,MAAM,MAAM,cACZ,WAAWA,+BAAA,cAAC,OAAA,EAAM,OAAO,MAAM,UAAU,SAAS,MAAM,IAAI,UAAU,MAAM,IAAA,CAAK,IAAK,MACtF,cACGA,+BAAA,cAAC,YAAS,gBAAgB,MAAM,MAAM,gBAAgB,IAAI,GAAG,EAAE,aAAa,OAAO,MAAM,SAAA,CAAU,IACnG,MACH,YACGA,+BAAA,cAAC,QAAA,EAAO,eAAe,MAAM,SAAS,eAAe,OAAO,MAAM,UAAU,UAAU,MAAM,IAAA,CAAK,IACjG,IACR;AAAA,EAAA,GAEH,MAAM,MAAM,eAAeA,+BAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GAAQ,MAAM,MAAM,YAAa,IAAS,MACzF;AAER;AAEA,SAAS,kBAAmC,OAA0B,gBAA8C;AAChH,QAAM,YAAY,MAAM,QAAQ;AAEhC,SACI,MAAM,QAAQ,gBACd,UAAU,eAAe,aACzB,UAAU,SAAS,aACnB,UAAU,UAAU,aACpB,OAAO,mBAAmB;AAElC;AAEA,SAAS,iBAAkC,OAAmC,aAAsB;AAChG,QAAM,qBACF,eACA,MAAM,SAAS,QAAQ,uBACvB,MAAM,KAAK,SAAS,aACpB,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc,KAC5D,MAAM,KAAK,OAAO;AAEtB,SAAO,sBAAsB,CAAC,CAAC,MAAM,MAAM,eAAe,CAAC,CAAC,MAAM,MAAM;AAC5E;"}
|
|
1
|
+
{"version":3,"file":"Toolbar.js","sources":["../../../../../../src/primitives/Table/Core/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableCustomSettingsRenderer } from '../../../types';\nimport type { useTableReturnValue } from '../../useTable';\n\nimport { Filters } from './components/Filters/Filters';\nimport { Print } from './components/Print/Print';\nimport { Search } from './components/Search/Search';\nimport { Settings } from './components/Settings/Settings';\n\nexport type TableToolbarProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n children?: React.JSX.Element | null;\n table: useTableReturnValue<TType>;\n};\n\nexport function TableToolbar<TType = unknown>(props: TableToolbarProps<TType>) {\n const { children: customTools, table, ...attributes } = props;\n\n if (!isToolbarVisible<TType>(table, !!customTools)) {\n return null;\n }\n\n const canFilter = table.instance.options.enableColumnFilters;\n const canPrint = table.meta.printing.isEnabled;\n const canSettings = canChangeSettings(table.instance, table.props.customSettings);\n const canSearch = table.meta.search.isEnabled;\n\n const id = `${table.id}-toolbar`;\n\n return (\n <>\n <div\n {...attributes}\n id={id}\n className=\"mb-4 flex flex-shrink flex-grow-0 flex-wrap gap-2 print:hidden\"\n data-taco=\"table-toolbar\">\n {table.props.toolbarLeft}\n <div className=\"ml-auto flex flex-shrink-0 items-center gap-2 print:hidden\">\n {customTools}\n {canFilter ? <Filters length={table.meta.length} tableId={table.id} table={table.instance} /> : null}\n {table.props.toolbarRight}\n {canPrint ? <Print table={table.instance} tableId={table.id} tableRef={table.ref} /> : null}\n {canSettings ? (\n <Settings customSettings={table.props.customSettings} id={`${id}-settings`} table={table.instance} />\n ) : null}\n {canSearch ? (\n <Search scrollToIndex={table.renderer.scrollToIndex} table={table.instance} tableRef={table.ref} />\n ) : null}\n </div>\n </div>\n {table.props.toolbarPanel ? <div className=\"mb-4\">{table.props.toolbarPanel}</div> : undefined}\n </>\n );\n}\n\nfunction canChangeSettings<TType = unknown>(table: ReactTable<TType>, customSettings?: TableCustomSettingsRenderer) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n return (\n table.options.enableHiding ||\n tableMeta.columnOrdering.isEnabled ||\n tableMeta.fontSize.isEnabled ||\n tableMeta.rowHeight.isEnabled ||\n typeof customSettings === 'function'\n );\n}\n\nfunction isToolbarVisible<TType = unknown>(table: useTableReturnValue<TType>, customTools: boolean) {\n const hasInternalToolbar =\n customTools ||\n table.instance.options.enableColumnFilters ||\n table.meta.printing.isEnabled ||\n canChangeSettings(table.instance, table.props.customSettings) ||\n table.meta.search.isEnabled;\n\n return hasInternalToolbar || !!table.props.toolbarLeft || !!table.props.toolbarRight;\n}\n"],"names":["React"],"mappings":";;;;;AAgBO,SAAS,aAA8B,OAAiC;AAC3E,QAAM,EAAE,UAAU,aAAa,OAAO,GAAG,eAAe;AAExD,MAAI,CAAC,iBAAwB,OAAO,CAAC,CAAC,WAAW,GAAG;AAChD,WAAO;AAAA,EACX;AAEA,QAAM,YAAY,MAAM,SAAS,QAAQ;AACzC,QAAM,WAAW,MAAM,KAAK,SAAS;AACrC,QAAM,cAAc,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc;AAChF,QAAM,YAAY,MAAM,KAAK,OAAO;AAEpC,QAAM,KAAK,GAAG,MAAM,EAAE;AAEtB,SACIA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAU;AAAA,MACV,aAAU;AAAA,IAAA;AAAA,IACT,MAAM,MAAM;AAAA,IACbA,+BAAA,cAAC,OAAA,EAAI,WAAU,6DAAA,GACV,aACA,YAAYA,+BAAA,cAAC,SAAA,EAAQ,QAAQ,MAAM,KAAK,QAAQ,SAAS,MAAM,IAAI,OAAO,MAAM,UAAU,IAAK,MAC/F,MAAM,MAAM,cACZ,WAAWA,+BAAA,cAAC,OAAA,EAAM,OAAO,MAAM,UAAU,SAAS,MAAM,IAAI,UAAU,MAAM,IAAA,CAAK,IAAK,MACtF,cACGA,+BAAA,cAAC,YAAS,gBAAgB,MAAM,MAAM,gBAAgB,IAAI,GAAG,EAAE,aAAa,OAAO,MAAM,SAAA,CAAU,IACnG,MACH,YACGA,+BAAA,cAAC,QAAA,EAAO,eAAe,MAAM,SAAS,eAAe,OAAO,MAAM,UAAU,UAAU,MAAM,IAAA,CAAK,IACjG,IACR;AAAA,EAAA,GAEH,MAAM,MAAM,eAAeA,+BAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GAAQ,MAAM,MAAM,YAAa,IAAS,MACzF;AAER;AAEA,SAAS,kBAAmC,OAA0B,gBAA8C;AAChH,QAAM,YAAY,MAAM,QAAQ;AAEhC,SACI,MAAM,QAAQ,gBACd,UAAU,eAAe,aACzB,UAAU,SAAS,aACnB,UAAU,UAAU,aACpB,OAAO,mBAAmB;AAElC;AAEA,SAAS,iBAAkC,OAAmC,aAAsB;AAChG,QAAM,qBACF,eACA,MAAM,SAAS,QAAQ,uBACvB,MAAM,KAAK,SAAS,aACpB,kBAAkB,MAAM,UAAU,MAAM,MAAM,cAAc,KAC5D,MAAM,KAAK,OAAO;AAEtB,SAAO,sBAAsB,CAAC,CAAC,MAAM,MAAM,eAAe,CAAC,CAAC,MAAM,MAAM;AAC5E;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableRenderer.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n [...rowGroupIndexes].reverse().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["ROW_HEIGHT_ESTIMATES","rows","useVirtualizer","SkeletonRow","Row","defaultRangeExtractor"],"mappings":";;;;;;;;;AAeA,SAAS,0BAA2C,OAA0B;AAC1E,QAAM,YAAY,MAAM,QAAQ;AAChC,MAAI,SAAS;AAEb,MAAI,UAAU,OAAO,WAAW;AAC5B,cAAU;AAAA,EACd;AAEA,MAAI,MAAM,kBAAkB,SAAS,GAAG;AACpC,cAAU,MAAM,gBAAA,EAAkB,SAAS;AAAA,EAC/C;AAEA,MAAI,SAASA,0BAAqB,SAAS;AAE3C,QAAM,aAAa,MAAM,cAAA;AAEzB,MAAI,WAAW,QAAQ;AAEnB,cAAUA,KAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAI,MAAM,WAAW;AAAA,EAClF;AAEA,SAAO;AACX;AAGA,SAAS,oBAAqC,OAA0B;AACpE,QAAM,aAAa,MAAM,cAAA,KAAmB,CAAA;AAC5C,SAAOA,0BAAqB,SAAS,IAAI,WAAW;AACxD;AAGA,MAAM,qBAAqB;AAEpB,SAAS,iBACZ,WACA,OACA,UACA,QACA,uBACF;AACE,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,oBAAoB,CAAC,CAAC,MAAM,SAAA,EAAW,UAAU;AACvD,QAAMC,SAAO,MAAM,cAAA,KAAmB,CAAA;AAGtC,QAAM,iBAAiB,0BAAiC,KAAK;AAG7D,QAAM,qBAAqBD,KAAAA,qBAAqB;AAEhD,QAAM,QAAQ,UAAU,OAAO,aAAa,UAAU,OAAO,2BAA2B,SAASC,OAAK;AAEtG,QAAM,cAAcC,aAAAA,eAAe;AAAA,IAC/B;AAAA,IACA,cAAc,MAAM;AAChB,aAAO,UAAU,UAAU,SAASF,KAAAA,qBAAqB,UAAU,UAAU,MAAM,IAAIA,KAAAA,qBAAqB;AAAA,IAChH;AAAA,IACA,kBAAkB,MAAM,SAAS;AAAA,IACjC,UAAU,UAAU,SAAS,aAAa,QAAQ;AAAA,IAClD;AAAA;AAAA,IAEA;AAAA,IACA,kBAAkB,0BAA0B,KAAK;AAAA,IACjD,YAAY,oBAAoB,KAAK;AAAA,EAAA,CACxC;AAED,QAAM,gBAAgB,MAAM,SAAA,EAAW;AACvC,QAAM,2BAA2B,MAAM,OAAO,KAAK;AAEnD,QAAM,UAAU,MAAM;AAElB,UAAM,UAAU,KAAK,UAAU,aAAa,MAAM;AAElD,QAAI,kBAAkB,QAAS,WAAW,yBAAyB,YAAY,MAAO;AAClF,+BAAyB,UAAU,kBAAkB;AACrD,kBAAY,QAAA;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,YAAY,YAAY,aAAA;AAC9B,QAAM,eAAe,YAAY,gBAAA;AAEjC,QAAM,gBAAgB,MAAM;AAAA,IACxB,CAAC,OAAe,UAAuC,EAAE,OAAO,QAAQ,UAAU,eAAe;AAC7F,YAAM,YAAyC,EAAE,GAAG,SAAS,UAAU,OAAA;AAEvE,UAAI,SAAS,SAAS;AAClB,YAAI,UAAU,GAAG;AACb,sBAAY,eAAe,GAAG,SAAS;AAAA,QAC3C,WAAW,UAAU,QAAQ,GAAG;AAE5B,mBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,QAClD,OAAO;AACH,sBAAY,cAAc,OAAO,OAAO;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,aAAa,QAAQ,SAAS,SAAS,WAAW,KAAK;AAAA,EAAA;AAI5D,QAAM,oBAAoB,qBAAqB,QAAQ,IAAI,IAAI;AAE/D,QAAM,aAAa,qBACZ,aAAa,iBAAiB,GAAG,SAAS,MAAM,aAAa,iBAAiB,GAAG,QAAQ,KAC1F,aAAa,iBAAiB,GAAG;AAGvC,QAAM,CAAC,YAAY,aAAa,IAC5B,aAAa,SAAS,IAChB,CAAC,KAAK,IAAI,GAAG,cAAc,CAAC,GAAG,KAAK,IAAI,GAAG,aAAa,aAAa,aAAa,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,IACzG,CAAC,GAAG,CAAC;AAGf,QAAM,UAAU,MAAM;AAClB,QAAI,uBAAuB;AACvB,oBAAc,uBAAuB,EAAE,OAAO,UAAU,UAAU,QAAQ;AAAA,IAC9E;AAAA,EACJ,GAAG,CAAA,CAAE;AAGL,MAAI,QAAuB,CAAA;AAC3B,MAAI,UAAyC;AAG7C,MAAI,SAAS,MAAM,cAAA,EAAgB,QAAQ;AACvC,YAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,eAAe,OAAO,MAAM,aAAa,IAAI,IAAI;AAAA,MACjD,YAAY,OAAO,MAAM,UAAU,IAAI,IAAI;AAAA,IAAA;AAAA,EAEnD;AAGA,MAAI,OAAO;AACP,cAAU,aAAa,IAAI,CAAA,eAAc;AAErC,UAAI,CAAC,YAAY;AACb,eAAO;AAAA,MACX;AAEA,UAAI;AAEJ,UAAI,UAAU,OAAO,aAAa,UAAU,OAAO,0BAA0B;AACzE,cAAM,mBACD,KAAK,MAAM,WAAW,QAAQ,UAAU,OAAO,QAAQ,IAAI,UAAU,OAAO,WAC7E,UAAU,OAAO;AACrB,cAAM,eAAe,UAAU,OAAO,OAAO,QAAQ,gBAAgB,KAAK;AAE1E,YAAI,eAAe,IAAI;AAInB,gBAAM,YAAY,eAAe,UAAU,OAAO,WAAY,WAAW,QAAQ,UAAU,OAAO;AAClG,gBAAMC,OAAK,SAAS;AAAA,QACxB;AAAA,MACJ,OAAO;AACH,cAAMA,OAAK,WAAW,KAAK;AAAA,MAC/B;AAEA,UAAI,CAAC,KAAK,UAAU;AAEhB,cAAM,cAAc,YAAY,WAAW,KAAK;AAChD,mDAAQE,YAAAA,aAAA,EAAY,KAAK,aAAa,OAAO,WAAW,OAAO,OAAc;AAAA,MACjF;AAEA,YAAM,aAAa,CAAC,cAAsB;AACtC,oBAAY,WAAW,WAAW,OAAO,SAAS;AAAA,MACtD;AAEA,aACI,sBAAA;AAAA,QAACC,IAAAA;AAAAA,QAAA;AAAA,UACG,KAAK,IAAI;AAAA,UACT;AAAA,UACA,OAAO,WAAW;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU,UAAU;AAAA,UACpB,cAAc,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAGpC,CAAC;AAAA,EACL;AAEA,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EAAA;AAER;AAGA,SAAS,0BAA2C,OAA0B;AAC1E,QAAMH,QAAO,MAAM,YAAA,EAAc;AACjC,QAAM,iBAAiB,CAAC,CAAC,MAAM,SAAA,EAAW,SAAS;AAEnD,QAAM,kBAAkB,MAAM,QAAQ,MAAM;AACxC,UAAM,UAAoB,CAAA;AAE1B,QAAI,gBAAgB;AAChB,MAAAA,MAAK,QAAQ,CAAC,KAAK,UAAU;AACzB,YAAI,IAAI,gBAAgB;AACpB,kBAAQ,KAAK,KAAK;AAAA,QACtB;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX,GAAG,CAACA,KAAI,CAAC;AAGT,QAAM,iBAAiB,MAAM;AAAA,IACzB,CAAC,UAAiB;AACd,YAAM,sBACF,CAAC,GAAG,eAAe,EAAE,QAAA,EAAU,KAAK,CAAA,UAAS,MAAM,cAAc,KAAK,KAAK,gBAAgB,CAAC;AAEhG,aAAO,wBAAwB,SACzBI,aAAAA,sBAAsB,KAAK,IAC3B,OAAO,CAAC,qBAAqB,GAAG,QAAQA,aAAAA,sBAAsB,KAAK,GAAG,mBAAmB,CAAC,GAAG,OAAK,CAAC;AAAA,IAC7G;AAAA,IACA,CAAC,eAAe;AAAA,EAAA;AAGpB,SAAO,iBAAiB,iBAAiB;AAC7C;;"}
|
|
1
|
+
{"version":3,"file":"useTableRenderer.cjs","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n [...rowGroupIndexes].reverse().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["ROW_HEIGHT_ESTIMATES","rows","useVirtualizer","SkeletonRow","Row","defaultRangeExtractor"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { CSSProperties, default as React } from 'react';
|
|
|
4
4
|
import { TableRef } from '../../types';
|
|
5
5
|
import { useTableRenderers } from '../types';
|
|
6
6
|
export declare function useTableRenderer<TType = unknown>(renderers: useTableRenderers<TType>, table: ReactTable<TType>, tableRef: React.RefObject<TableRef>, length: number, defaultRowActiveIndex?: number | undefined): {
|
|
7
|
-
rows: (JSX.Element | null)[] | null;
|
|
7
|
+
rows: (React.JSX.Element | null)[] | null;
|
|
8
8
|
style: CSSProperties;
|
|
9
9
|
scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;
|
|
10
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableRenderer.js","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n [...rowGroupIndexes].reverse().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTableRenderer.js","sources":["../../../../../src/primitives/Table/Core/features/useTableRenderer.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions, Range } from '@tanstack/react-virtual';\nimport { useVirtualizer, defaultRangeExtractor } from '@tanstack/react-virtual';\nimport sortBy from 'lodash/sortBy';\nimport without from 'lodash/without';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\n\nimport type { TableRef } from '../../types';\nimport { SkeletonRow } from '../components/Row/BuiltIns/SkeletonRow';\nimport { Row } from '../components/Row/Row';\nimport type { useTableRenderers } from '../types';\nimport { ROW_HEIGHT_ESTIMATES } from '../util/rows';\n\n// scroll padding end is designed to always show half of the next row\nfunction getScrollPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let offset = 2;\n\n if (tableMeta.footer.isEnabled) {\n offset += 1;\n }\n\n if (table.getHeaderGroups().length > 1) {\n offset += table.getHeaderGroups().length - 1;\n }\n\n let height = ROW_HEIGHT_ESTIMATES.medium * offset;\n\n const bottomRows = table.getBottomRows();\n\n if (bottomRows.length) {\n // 1.4 offsets for half rows and also accounts for increased row heights (which is likely in pinned rows)\n height += ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] * 1.4 * bottomRows.length;\n }\n\n return height;\n}\n\n// scroll padding end is designed to always show half of the next row\nfunction getPaddingEndOffset<TType = unknown>(table: ReactTable<TType>) {\n const bottomRows = table.getBottomRows() ?? [];\n return ROW_HEIGHT_ESTIMATES.medium * 1 * bottomRows.length;\n}\n\n// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well\nconst OVERSCAN_ROW_COUNT = 8;\n\nexport function useTableRenderer<TType = unknown>(\n renderers: useTableRenderers<TType>,\n table: ReactTable<TType>,\n tableRef: React.RefObject<TableRef>,\n length: number,\n defaultRowActiveIndex?: number | undefined\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const isTableRowGrouped = !!table.getState().grouping?.length;\n const rows = table.getCenterRows() ?? [];\n\n // row groups\n const rangeExtractor = useRowGroupVirtualisation<TType>(table);\n\n // account for thead and tfoot in the scroll area - both are always medium row height\n const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;\n\n const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;\n\n const virtualiser = useVirtualizer({\n count,\n estimateSize: () => {\n return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;\n },\n getScrollElement: () => tableRef.current,\n overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,\n rangeExtractor,\n // correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list\n scrollPaddingStart,\n scrollPaddingEnd: getScrollPaddingEndOffset(table),\n paddingEnd: getPaddingEndOffset(table),\n });\n\n const expandedState = table.getState().expanded;\n const previousExpandedStateRef = React.useRef(false);\n\n React.useEffect(() => {\n // only remeasure when transitioning between expand all and not expand all\n const isEmpty = JSON.stringify(expandedState) === '{}';\n\n if (expandedState === true || (isEmpty && previousExpandedStateRef.current === true)) {\n previousExpandedStateRef.current = expandedState === true;\n virtualiser.measure();\n }\n }, [expandedState]);\n\n const totalSize = virtualiser.getTotalSize();\n const virtualItems = virtualiser.getVirtualItems();\n\n const scrollToIndex = React.useCallback(\n (index: number, options: ReactVirtualScrollToOptions = { align: 'auto', behavior: 'smooth' }) => {\n const notSmooth: ReactVirtualScrollToOptions = { ...options, behavior: 'auto' };\n\n if (tableRef.current) {\n if (index === 0) {\n virtualiser.scrollToOffset(0, notSmooth);\n } else if (index === count - 1) {\n // sometimes the last row doesn't fully show, so we just force scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n } else {\n virtualiser.scrollToIndex(index, options);\n }\n }\n },\n [virtualItems.length, tableRef.current, totalSize, count]\n );\n\n // use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0\n const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;\n\n const startValue = isTableRowGrouped\n ? (virtualItems[paddingStartIndex]?.start ?? 0) - (virtualItems[paddingStartIndex]?.size ?? 0)\n : virtualItems[paddingStartIndex]?.start;\n\n // styling for offsetting rows - this \"is\" the virtualisation\n const [paddingTop, paddingBottom] =\n virtualItems.length > 0\n ? [Math.max(0, startValue ?? 0), Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0))]\n : [0, 0];\n\n // ensure default active rows are scrolled to\n React.useEffect(() => {\n if (defaultRowActiveIndex) {\n scrollToIndex(defaultRowActiveIndex, { align: 'center', behavior: 'auto' });\n }\n }, []);\n\n // rendered output\n let style: CSSProperties = {};\n let content: (React.JSX.Element | null)[] | null = null;\n\n // bottom rows aren't virtualised (they're sticky) but we need to set the height\n if (count || table.getBottomRows().length) {\n style = {\n height: totalSize,\n paddingBottom: Number.isNaN(paddingBottom) ? 0 : paddingBottom,\n paddingTop: Number.isNaN(paddingTop) ? 0 : paddingTop,\n };\n }\n\n // only render non sticky rows\n if (count) {\n content = virtualItems.map(virtualRow => {\n // there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here\n if (!virtualRow) {\n return null;\n }\n\n let row: ReactTableRow<TType> | undefined;\n\n if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {\n const currentPageIndex =\n (Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize) /\n tableMeta.server.pageSize;\n const pagePosition = tableMeta.server.pages?.indexOf(currentPageIndex) ?? -1;\n\n if (pagePosition > -1) {\n // \"flatten\" row indexes down into the dataloader2 dataset size\n // for example, with a page size of 100...\n // row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)\n const fakeIndex = pagePosition * tableMeta.server.pageSize + (virtualRow.index % tableMeta.server.pageSize);\n row = rows[fakeIndex];\n }\n } else {\n row = rows[virtualRow.index];\n }\n\n if (!row?.original) {\n // Prefix skeleton keys to prevent collision with real data row keys\n const skeletonKey = `skeleton-${virtualRow.index}`;\n return <SkeletonRow key={skeletonKey} index={virtualRow.index} table={table} />;\n }\n\n const measureRow = (rowHeight: number) => {\n virtualiser.resizeItem(virtualRow.index, rowHeight);\n };\n\n return (\n <Row\n key={row.id}\n row={row}\n index={virtualRow.index}\n table={table}\n measureRow={measureRow}\n renderer={renderers.row}\n cellRenderer={renderers.cell}\n />\n );\n });\n }\n\n return {\n rows: content,\n style,\n scrollToIndex,\n };\n}\n\n// support virtualised row groups (where the row group headers are sticky)\nfunction useRowGroupVirtualisation<TType = unknown>(table: ReactTable<TType>) {\n const rows = table.getRowModel().rows;\n const isTableGrouped = !!table.getState().grouping.length;\n\n const rowGroupIndexes = React.useMemo(() => {\n const indexes: number[] = [];\n\n if (isTableGrouped) {\n rows.forEach((row, index) => {\n if (row.getIsGrouped()) {\n indexes.push(index);\n }\n });\n }\n\n return indexes;\n }, [rows]);\n\n // this is taken from the react-virtual docs/examples\n const rangeExtractor = React.useCallback(\n (range: Range) => {\n const activeRowGroupIndex =\n [...rowGroupIndexes].reverse().find(index => range.startIndex >= index) ?? rowGroupIndexes[0];\n\n return activeRowGroupIndex === undefined\n ? defaultRangeExtractor(range)\n : sortBy([activeRowGroupIndex, ...without(defaultRangeExtractor(range), activeRowGroupIndex)], a => a);\n },\n [rowGroupIndexes]\n );\n\n return isTableGrouped ? rangeExtractor : undefined;\n}\n"],"names":["React"],"mappings":"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"}
|
|
@@ -13,11 +13,11 @@ export type TableRowRendererProps<TType = unknown> = {
|
|
|
13
13
|
row: ReactTableRow<TType>;
|
|
14
14
|
table: ReactTable<TType>;
|
|
15
15
|
};
|
|
16
|
-
export type TableRowRenderer<TType = unknown> = <T = TType>(props: TableRowRendererProps<T>) => JSX.Element;
|
|
16
|
+
export type TableRowRenderer<TType = unknown> = <T = TType>(props: TableRowRendererProps<T>) => React.JSX.Element;
|
|
17
17
|
export type TableCellRendererProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {
|
|
18
18
|
cell: ReactTableCell<TType, unknown>;
|
|
19
|
-
cellRef: React.RefObject<HTMLTableCellElement>;
|
|
19
|
+
cellRef: React.RefObject<HTMLTableCellElement | null>;
|
|
20
20
|
index: number;
|
|
21
21
|
isHighlighted: true | 'current' | undefined;
|
|
22
22
|
};
|
|
23
|
-
export type TableCellRenderer<TType = unknown> = <T = TType>(props: TableCellRendererProps<T>) => JSX.Element;
|
|
23
|
+
export type TableCellRenderer<TType = unknown> = <T = TType>(props: TableCellRendererProps<T>) => React.JSX.Element;
|