@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":"EditingControlCell.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingControlCell.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { isDate, isEqual as isEqualDate, isSameDay } from 'date-fns';\nimport React from 'react';\n\nimport { useLazyEffect } from '../../../../../hooks/useLazyEffect';\nimport { getCellAttributes } from '../../../../../primitives/Table/Core/components/Columns/Cell/util';\nimport { RowContext } from '../../../../../primitives/Table/Core/components/Row/RowContext';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport type { TableColumnDataType, TableColumnRendererControl, TableFontSize } from '../../../../../primitives/Table/types';\nimport { getDataTypeProperties } from '../../../../../primitives/Table/useTableManager/util/dataTypes';\nimport * as date from '../../../../../utils/date';\nimport { isElementInsideOrTriggeredFromContainer } from '../../../../../utils/dom';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\nimport { Checkbox } from '../../../../Checkbox/Checkbox';\nimport { Datepicker } from '../../../../Datepicker/Datepicker';\nimport { Field } from '../../../../Field/Field';\nimport { Input } from '../../../../Input/Input';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Switch } from '../../../../Switch/Switch';\n\nimport { RowMoveIndicator } from './Editing/RowMoveIndicator';\nimport { TextareaWithAutosizing } from './Editing/TextareaWithAutosizing';\nimport { useEditingCellAutofocus } from './util';\n\nexport function EditingControlCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, isHighlighted, index } = props;\n const { rowIndex } = React.useContext(RowContext);\n const { table } = cell.getContext();\n const locale = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const type = columnMeta.control ?? 'input';\n const handleFocus = useEditingCellAutofocus<TType>(props);\n const value = cell.getValue();\n const rowChanges = tableMeta.editing.getRowValue(cell.row.id);\n const shouldRunUpdate = React.useRef(false);\n\n // some controls, like select2, should trigger cell changed (validation, updates) as the value changes\n const hasNonTextControl = React.useMemo(() => {\n return (\n typeof type === 'function' &&\n !!cellRef.current?.querySelector('[data-taco=\"Select2\"],[data-taco=\"switch\"],[data-taco=\"checkbox\"]')\n );\n }, [cellRef.current]);\n\n useLazyEffect(() => {\n // Use an effect instead of a change handler to prevent onEditingChange from running with a stale js closure during on-the-fly creation.\n if (hasNonTextControl && shouldRunUpdate.current) {\n tableMeta.editing.onCellChanged(cell, rowIndex, value, true, false);\n shouldRunUpdate.current = false; // prevent risk of infinite loop, in case there'd ever be an updater function with two values that update each other.\n }\n }, [value]);\n\n const handleChange = React.useCallback(\n (nextValue: unknown) => {\n let hasChanged = false;\n\n if (columnMeta.dataType === 'date') {\n hasChanged = !isSameDay(new Date(nextValue as string | Date), new Date(value as string | Date));\n } else if (columnMeta.dataType === 'datetime') {\n hasChanged = !isEqualDate(new Date(nextValue as string | Date), new Date(value as string | Date));\n } else if (columnMeta.dataType === 'time') {\n const next = new Date(nextValue as string | Date);\n const current = new Date(value as string | Date);\n hasChanged = !(next.getHours() === current.getHours() && next.getMinutes() === current.getMinutes());\n } else {\n hasChanged = nextValue !== value;\n }\n\n if (hasChanged) {\n tableMeta.editing.setCellValue(cell, rowIndex, nextValue);\n shouldRunUpdate.current = hasNonTextControl;\n }\n },\n [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value, columnMeta.dataType]\n );\n\n const handleBlur = React.useCallback(\n (event: React.FocusEvent) => {\n if (event && isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {\n return;\n }\n\n requestAnimationFrame(() => {\n tableMeta.editing.toggleDetailedMode(false);\n tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl, true);\n });\n },\n [hasNonTextControl, cell.row.id, JSON.stringify(rowChanges), rowIndex, cell.column.id, cell.row.original]\n );\n\n const error = tableMeta.editing.getCellError<TType>(cell);\n\n const handleExitDetailedMode = React.useCallback(() => {\n tableMeta.editing.onCellChanged(cell, rowIndex, undefined, true, true);\n }, [cell.row.id, JSON.stringify(rowChanges), rowIndex, cell.column.id, cell.row.original]);\n\n const controlProps = {\n dataType: columnMeta.dataType,\n disabled: tableMeta.editing.getRowStatus(cell.row.id) === 'saving',\n fontSize: tableMeta.fontSize.size,\n id: cell.column.id,\n invalid: !!error,\n isDetailedMode: tableMeta.editing.isDetailedMode,\n isTruncated: !!columnMeta.enableTruncate,\n locale: locale.locale,\n onBlur: handleBlur,\n onChange: handleChange,\n onExitDetailedMode: handleExitDetailedMode,\n row: cell.row.original,\n rowPendingChanges: tableMeta.editing.getRowValue(cell.row.id),\n tabIndex: isActiveRow ? 0 : -1,\n toggleDetailedMode: tableMeta.editing.toggleDetailedMode,\n type,\n value,\n };\n\n const cellAttributes = {\n ...getCellAttributes(cell, index, isHighlighted),\n 'data-cell-editing-invalid': error ? true : undefined,\n 'data-taco': 'cell-control',\n onFocus: handleFocus,\n ref: cellRef,\n tabIndex: -1,\n };\n\n return (\n <td {...cellAttributes}>\n <Field invalid={!!error} message={error}>\n <MemoedEditingCell<TType> {...controlProps} />\n </Field>\n {\n // we show row move indicator here within the cell rather than the row because it is\n // an editing only feature, and we don't want to leak editing into the shared row component\n }\n <RowMoveIndicator cell={cell} cellRef={cellRef} isActiveRow={isActiveRow} />\n </td>\n );\n}\n\ntype MemoedEditingCellProps<TType = unknown, TValue = unknown> = {\n dataType?: TableColumnDataType;\n disabled: boolean;\n fontSize: TableFontSize;\n id: string;\n invalid: boolean;\n isDetailedMode: boolean;\n isTruncated: boolean;\n locale: string;\n onBlur: (event: React.FocusEvent) => void;\n onChange: (value: TValue) => void;\n onExitDetailedMode: () => void;\n row: TType;\n rowPendingChanges: Partial<TType> | undefined;\n tabIndex?: number;\n toggleDetailedMode: (detailed: React.SetStateAction<boolean>) => void;\n type: TableColumnRendererControl<TType>;\n value: TValue;\n};\n\nconst MemoedEditingCell = React.memo(function MemoedEditingCell<TType = unknown>(props: MemoedEditingCellProps<TType>) {\n const {\n dataType,\n disabled,\n fontSize,\n id,\n invalid,\n isDetailedMode,\n isTruncated,\n locale,\n onBlur,\n onChange,\n onExitDetailedMode,\n row,\n rowPendingChanges,\n tabIndex = -1,\n toggleDetailedMode,\n type = 'input',\n value,\n } = props;\n const controlRef = React.useRef<HTMLElement>(null);\n const currentValue = row[id as keyof TType];\n const commonProps = {\n disabled,\n onBlur,\n ref: controlRef,\n tabIndex,\n };\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n if (target.readOnly) {\n return;\n }\n\n // prevent active row navigation while in detailed mode\n if (\n isDetailedMode &&\n (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n\n // enter or exit detail mode when pressing enter\n if (event.key === 'Enter') {\n // textareas support shift and enter, don't prevent default in that case\n if (event.shiftKey && isDetailedMode) {\n return;\n }\n\n event.preventDefault();\n\n if (isDetailedMode) {\n target.select?.();\n onExitDetailedMode();\n } else {\n target.setSelectionRange?.(target.value?.length, target.value?.length);\n }\n\n toggleDetailedMode(editing => !editing);\n return;\n }\n\n // reset the value, or exit edit mode when pressing escape\n if (event.key === 'Escape') {\n if (isDetailedMode) {\n event.preventDefault();\n toggleDetailedMode(false);\n\n if (value !== currentValue) {\n props.onChange(currentValue);\n }\n\n // have to let onChange run before selecting, otherwise the value changes\n requestAnimationFrame(() => target.select?.());\n }\n\n return;\n }\n\n // toggle into detailed mode when actually inputting something\n if (!isPressingMetaKey(event) && (/^[a-z0-9]$/i.test(event.key) || event.key === 'Backspace')) {\n toggleDetailedMode(true);\n }\n };\n\n const handlePaste = () => {\n if (!isDetailedMode) {\n toggleDetailedMode(true);\n }\n };\n\n if (typeof type === 'function') {\n const controlFnProps = {\n ...commonProps,\n invalid,\n setValue: onChange,\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => {\n const target = (event.target as HTMLElement) || null;\n // it make sense to handle keydown for the custom edititng controls only if target is either input or textarea\n if (target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')) {\n handleInputKeyDown(event as React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>);\n }\n },\n onPaste: handlePaste,\n value,\n };\n\n return type(controlFnProps, { ...row, ...rowPendingChanges });\n }\n\n if (type === 'switch') {\n return (\n <Switch\n {...commonProps}\n checked={Boolean(value)}\n onChange={onChange}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n />\n );\n }\n\n if (type === 'checkbox') {\n return (\n <Checkbox\n {...commonProps}\n checked={Boolean(value)}\n onChange={onChange}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n />\n );\n }\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (!isDetailedMode) {\n event.target.select();\n }\n };\n\n if (type === 'datepicker') {\n const valueAsDate = date.parse(value as Date | string | undefined);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDate = (event as any).detail as Date;\n\n if (!valueAsDate || !newDate || (isDate(valueAsDate) && isDate(newDate) && !date.isWeakEqual(valueAsDate, newDate))) {\n props.onChange(newDate);\n }\n };\n\n const handleDatepickerInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n\n if (isDetailedMode && event.key === 'Enter') {\n // If the field is empty, save as null before exiting detailed mode\n // This prevents the value from reverting to the previous value\n if (target.value === '') {\n onChange(null);\n } else {\n // When value is not empty, prevent handleInputKeyDown and give full control to Datepicker\n // The datepicker will exit \"detailed mode\" by itself when a valid date change is triggered\n target.select?.();\n return;\n }\n }\n\n handleInputKeyDown(event);\n };\n\n return (\n <Datepicker\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleDatepickerInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n value={valueAsDate}\n />\n );\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const dataTypeProps = getDataTypeProperties(dataType);\n onChange(dataTypeProps.parse?.(event.target.value, locale) ?? event.target.value);\n };\n\n if (type === 'textarea') {\n return (\n <TextareaWithAutosizing\n {...commonProps}\n fontSize={fontSize}\n invalid={invalid}\n isTruncated={isTruncated}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLTextAreaElement>}\n value={String(value ?? '')}\n />\n );\n }\n\n return (\n <Input\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n type={dataType === 'number' ? 'number' : undefined}\n value={dataType === 'number' ? (value as number) : String(value ?? '')}\n />\n );\n}) as <TType = unknown>(props: MemoedEditingCellProps<TType>) => JSX.Element;\n"],"names":["React","isEqualDate","MemoedEditingCell","date.parse","handleChange","date.isWeakEqual"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditingControlCell.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingControlCell.tsx"],"sourcesContent":["import type { TableMeta as ReactTableMeta, ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { isDate, isEqual as isEqualDate, isSameDay } from 'date-fns';\nimport React from 'react';\n\nimport { useLazyEffect } from '../../../../../hooks/useLazyEffect';\nimport { getCellAttributes } from '../../../../../primitives/Table/Core/components/Columns/Cell/util';\nimport { RowContext } from '../../../../../primitives/Table/Core/components/Row/RowContext';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\nimport type { TableColumnDataType, TableColumnRendererControl, TableFontSize } from '../../../../../primitives/Table/types';\nimport { getDataTypeProperties } from '../../../../../primitives/Table/useTableManager/util/dataTypes';\nimport * as date from '../../../../../utils/date';\nimport { isElementInsideOrTriggeredFromContainer } from '../../../../../utils/dom';\nimport { isPressingMetaKey } from '../../../../../utils/keyboard';\nimport { Checkbox } from '../../../../Checkbox/Checkbox';\nimport { Datepicker } from '../../../../Datepicker/Datepicker';\nimport { Field } from '../../../../Field/Field';\nimport { Input } from '../../../../Input/Input';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Switch } from '../../../../Switch/Switch';\n\nimport { RowMoveIndicator } from './Editing/RowMoveIndicator';\nimport { TextareaWithAutosizing } from './Editing/TextareaWithAutosizing';\nimport { useEditingCellAutofocus } from './util';\n\nexport function EditingControlCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, isHighlighted, index } = props;\n const { rowIndex } = React.useContext(RowContext);\n const { table } = cell.getContext();\n const locale = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const type = columnMeta.control ?? 'input';\n const handleFocus = useEditingCellAutofocus<TType>(props);\n const value = cell.getValue();\n const rowChanges = tableMeta.editing.getRowValue(cell.row.id);\n const shouldRunUpdate = React.useRef(false);\n\n // some controls, like select2, should trigger cell changed (validation, updates) as the value changes\n const hasNonTextControl = React.useMemo(() => {\n return (\n typeof type === 'function' &&\n !!cellRef.current?.querySelector('[data-taco=\"Select2\"],[data-taco=\"switch\"],[data-taco=\"checkbox\"]')\n );\n }, [cellRef.current]);\n\n useLazyEffect(() => {\n // Use an effect instead of a change handler to prevent onEditingChange from running with a stale js closure during on-the-fly creation.\n if (hasNonTextControl && shouldRunUpdate.current) {\n tableMeta.editing.onCellChanged(cell, rowIndex, value, true, false);\n shouldRunUpdate.current = false; // prevent risk of infinite loop, in case there'd ever be an updater function with two values that update each other.\n }\n }, [value]);\n\n const handleChange = React.useCallback(\n (nextValue: unknown) => {\n let hasChanged = false;\n\n if (columnMeta.dataType === 'date') {\n hasChanged = !isSameDay(new Date(nextValue as string | Date), new Date(value as string | Date));\n } else if (columnMeta.dataType === 'datetime') {\n hasChanged = !isEqualDate(new Date(nextValue as string | Date), new Date(value as string | Date));\n } else if (columnMeta.dataType === 'time') {\n const next = new Date(nextValue as string | Date);\n const current = new Date(value as string | Date);\n hasChanged = !(next.getHours() === current.getHours() && next.getMinutes() === current.getMinutes());\n } else {\n hasChanged = nextValue !== value;\n }\n\n if (hasChanged) {\n tableMeta.editing.setCellValue(cell, rowIndex, nextValue);\n shouldRunUpdate.current = hasNonTextControl;\n }\n },\n [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value, columnMeta.dataType]\n );\n\n const handleBlur = React.useCallback(\n (event: React.FocusEvent) => {\n if (event && isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {\n return;\n }\n\n requestAnimationFrame(() => {\n tableMeta.editing.toggleDetailedMode(false);\n tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl, true);\n });\n },\n [hasNonTextControl, cell.row.id, JSON.stringify(rowChanges), rowIndex, cell.column.id, cell.row.original]\n );\n\n const error = tableMeta.editing.getCellError<TType>(cell);\n\n const handleExitDetailedMode = React.useCallback(() => {\n tableMeta.editing.onCellChanged(cell, rowIndex, undefined, true, true);\n }, [cell.row.id, JSON.stringify(rowChanges), rowIndex, cell.column.id, cell.row.original]);\n\n const controlProps = {\n dataType: columnMeta.dataType,\n disabled: tableMeta.editing.getRowStatus(cell.row.id) === 'saving',\n fontSize: tableMeta.fontSize.size,\n id: cell.column.id,\n invalid: !!error,\n isDetailedMode: tableMeta.editing.isDetailedMode,\n isTruncated: !!columnMeta.enableTruncate,\n locale: locale.locale,\n onBlur: handleBlur,\n onChange: handleChange,\n onExitDetailedMode: handleExitDetailedMode,\n row: cell.row.original,\n rowPendingChanges: tableMeta.editing.getRowValue(cell.row.id),\n tabIndex: isActiveRow ? 0 : -1,\n toggleDetailedMode: tableMeta.editing.toggleDetailedMode,\n type,\n value,\n };\n\n const cellAttributes = {\n ...getCellAttributes(cell, index, isHighlighted),\n 'data-cell-editing-invalid': error ? true : undefined,\n 'data-taco': 'cell-control',\n onFocus: handleFocus,\n ref: cellRef,\n tabIndex: -1,\n };\n\n return (\n <td {...cellAttributes}>\n <Field invalid={!!error} message={error}>\n <MemoedEditingCell<TType> {...controlProps} />\n </Field>\n {\n // we show row move indicator here within the cell rather than the row because it is\n // an editing only feature, and we don't want to leak editing into the shared row component\n }\n <RowMoveIndicator cell={cell} cellRef={cellRef} isActiveRow={isActiveRow} />\n </td>\n );\n}\n\ntype MemoedEditingCellProps<TType = unknown, TValue = unknown> = {\n dataType?: TableColumnDataType;\n disabled: boolean;\n fontSize: TableFontSize;\n id: string;\n invalid: boolean;\n isDetailedMode: boolean;\n isTruncated: boolean;\n locale: string;\n onBlur: (event: React.FocusEvent) => void;\n onChange: (value: TValue) => void;\n onExitDetailedMode: () => void;\n row: TType;\n rowPendingChanges: Partial<TType> | undefined;\n tabIndex?: number;\n toggleDetailedMode: (detailed: React.SetStateAction<boolean>) => void;\n type: TableColumnRendererControl<TType>;\n value: TValue;\n};\n\nconst MemoedEditingCell = React.memo(function MemoedEditingCell<TType = unknown>(props: MemoedEditingCellProps<TType>) {\n const {\n dataType,\n disabled,\n fontSize,\n id,\n invalid,\n isDetailedMode,\n isTruncated,\n locale,\n onBlur,\n onChange,\n onExitDetailedMode,\n row,\n rowPendingChanges,\n tabIndex = -1,\n toggleDetailedMode,\n type = 'input',\n value,\n } = props;\n const controlRef = React.useRef<HTMLElement>(null);\n const currentValue = row[id as keyof TType];\n const commonProps = {\n disabled,\n onBlur,\n ref: controlRef,\n tabIndex,\n };\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n if (target.readOnly) {\n return;\n }\n\n // prevent active row navigation while in detailed mode\n if (\n isDetailedMode &&\n (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'ArrowLeft' || event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n\n // enter or exit detail mode when pressing enter\n if (event.key === 'Enter') {\n // textareas support shift and enter, don't prevent default in that case\n if (event.shiftKey && isDetailedMode) {\n return;\n }\n\n event.preventDefault();\n\n if (isDetailedMode) {\n target.select?.();\n onExitDetailedMode();\n } else {\n target.setSelectionRange?.(target.value?.length, target.value?.length);\n }\n\n toggleDetailedMode(editing => !editing);\n return;\n }\n\n // reset the value, or exit edit mode when pressing escape\n if (event.key === 'Escape') {\n if (isDetailedMode) {\n event.preventDefault();\n toggleDetailedMode(false);\n\n if (value !== currentValue) {\n props.onChange(currentValue);\n }\n\n // have to let onChange run before selecting, otherwise the value changes\n requestAnimationFrame(() => target.select?.());\n }\n\n return;\n }\n\n // toggle into detailed mode when actually inputting something\n if (!isPressingMetaKey(event) && (/^[a-z0-9]$/i.test(event.key) || event.key === 'Backspace')) {\n toggleDetailedMode(true);\n }\n };\n\n const handlePaste = () => {\n if (!isDetailedMode) {\n toggleDetailedMode(true);\n }\n };\n\n if (typeof type === 'function') {\n const controlFnProps = {\n ...commonProps,\n invalid,\n setValue: onChange,\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => {\n const target = (event.target as HTMLElement) || null;\n // it make sense to handle keydown for the custom edititng controls only if target is either input or textarea\n if (target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')) {\n handleInputKeyDown(event as React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>);\n }\n },\n onPaste: handlePaste,\n value,\n };\n\n return type(controlFnProps, { ...row, ...rowPendingChanges });\n }\n\n if (type === 'switch') {\n return (\n <Switch\n {...commonProps}\n checked={Boolean(value)}\n onChange={onChange}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n />\n );\n }\n\n if (type === 'checkbox') {\n return (\n <Checkbox\n {...commonProps}\n checked={Boolean(value)}\n onChange={onChange}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n />\n );\n }\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (!isDetailedMode) {\n event.target.select();\n }\n };\n\n if (type === 'datepicker') {\n const valueAsDate = date.parse(value as Date | string | undefined);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDate = (event as any).detail as Date;\n\n if (!valueAsDate || !newDate || (isDate(valueAsDate) && isDate(newDate) && !date.isWeakEqual(valueAsDate, newDate))) {\n props.onChange(newDate);\n }\n };\n\n const handleDatepickerInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n\n if (isDetailedMode && event.key === 'Enter') {\n // If the field is empty, save as null before exiting detailed mode\n // This prevents the value from reverting to the previous value\n if (target.value === '') {\n onChange(null);\n } else {\n // When value is not empty, prevent handleInputKeyDown and give full control to Datepicker\n // The datepicker will exit \"detailed mode\" by itself when a valid date change is triggered\n target.select?.();\n return;\n }\n }\n\n handleInputKeyDown(event);\n };\n\n return (\n <Datepicker\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleDatepickerInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n value={valueAsDate}\n />\n );\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const dataTypeProps = getDataTypeProperties(dataType);\n onChange(dataTypeProps.parse?.(event.target.value, locale) ?? event.target.value);\n };\n\n if (type === 'textarea') {\n return (\n <TextareaWithAutosizing\n {...commonProps}\n fontSize={fontSize}\n invalid={invalid}\n isTruncated={isTruncated}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLTextAreaElement>}\n value={String(value ?? '')}\n />\n );\n }\n\n return (\n <Input\n {...commonProps}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleInputKeyDown}\n onPaste={handlePaste}\n ref={controlRef as React.RefObject<HTMLInputElement>}\n type={dataType === 'number' ? 'number' : undefined}\n value={dataType === 'number' ? (value as number) : String(value ?? '')}\n />\n );\n}) as <TType = unknown>(props: MemoedEditingCellProps<TType>) => React.JSX.Element;\n"],"names":["React","isEqualDate","MemoedEditingCell","date.parse","handleChange","date.isWeakEqual"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditingDisplayCell.cjs","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingDisplayCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\n\nimport { useEditingCellAutofocus } from './util';\n\nexport const EditingDisplayCell = React.memo(function EditingDisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const handleFocus = useEditingCellAutofocus<TType>(props);\n return <DisplayCell<TType> {...props} onFocus={handleFocus} tabIndex={-1} />;\n}) as <TType = unknown>(props: TableCellRendererProps<TType>) => JSX.Element;\n"],"names":["EditingDisplayCell","useEditingCellAutofocus","DisplayCell"],"mappings":";;;;;AAOO,MAAM,qBAAqB,MAAM,KAAK,SAASA,oBAAoC,OAAsC;AAC5H,QAAM,cAAcC,KAAAA,wBAA+B,KAAK;AACxD,6CAAQC,YAAAA,aAAA,EAAoB,GAAG,OAAO,SAAS,aAAa,UAAU,IAAI;AAC9E,CAAC;;"}
|
|
1
|
+
{"version":3,"file":"EditingDisplayCell.cjs","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingDisplayCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\n\nimport { useEditingCellAutofocus } from './util';\n\nexport const EditingDisplayCell = React.memo(function EditingDisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const handleFocus = useEditingCellAutofocus<TType>(props);\n return <DisplayCell<TType> {...props} onFocus={handleFocus} tabIndex={-1} />;\n}) as <TType = unknown>(props: TableCellRendererProps<TType>) => React.JSX.Element;\n"],"names":["EditingDisplayCell","useEditingCellAutofocus","DisplayCell"],"mappings":";;;;;AAOO,MAAM,qBAAqB,MAAM,KAAK,SAASA,oBAAoC,OAAsC;AAC5H,QAAM,cAAcC,KAAAA,wBAA+B,KAAK;AACxD,6CAAQC,YAAAA,aAAA,EAAoB,GAAG,OAAO,SAAS,aAAa,UAAU,IAAI;AAC9E,CAAC;;"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
1
2
|
import { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';
|
|
2
|
-
export declare const EditingDisplayCell: <TType = unknown>(props: TableCellRendererProps<TType>) => JSX.Element;
|
|
3
|
+
export declare const EditingDisplayCell: <TType = unknown>(props: TableCellRendererProps<TType>) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditingDisplayCell.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingDisplayCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\n\nimport { useEditingCellAutofocus } from './util';\n\nexport const EditingDisplayCell = React.memo(function EditingDisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const handleFocus = useEditingCellAutofocus<TType>(props);\n return <DisplayCell<TType> {...props} onFocus={handleFocus} tabIndex={-1} />;\n}) as <TType = unknown>(props: TableCellRendererProps<TType>) => JSX.Element;\n"],"names":["React","EditingDisplayCell"],"mappings":";;;AAOO,MAAM,qBAAqBA,eAAM,KAAK,SAASC,oBAAoC,OAAsC;AAC5H,QAAM,cAAc,wBAA+B,KAAK;AACxD,sDAAQ,aAAA,EAAoB,GAAG,OAAO,SAAS,aAAa,UAAU,IAAI;AAC9E,CAAC;"}
|
|
1
|
+
{"version":3,"file":"EditingDisplayCell.js","sources":["../../../../../../src/components/Table3/components/Columns/Cell/EditingDisplayCell.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DisplayCell } from '../../../../../primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell';\nimport type { TableCellRendererProps } from '../../../../../primitives/Table/Core/types';\n\nimport { useEditingCellAutofocus } from './util';\n\nexport const EditingDisplayCell = React.memo(function EditingDisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const handleFocus = useEditingCellAutofocus<TType>(props);\n return <DisplayCell<TType> {...props} onFocus={handleFocus} tabIndex={-1} />;\n}) as <TType = unknown>(props: TableCellRendererProps<TType>) => React.JSX.Element;\n"],"names":["React","EditingDisplayCell"],"mappings":";;;AAOO,MAAM,qBAAqBA,eAAM,KAAK,SAASC,oBAAoC,OAAsC;AAC5H,QAAM,cAAc,wBAA+B,KAAK;AACxD,sDAAQ,aAAA,EAAoB,GAAG,OAAO,SAAS,aAAa,UAAU,IAAI;AAC9E,CAAC;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
|
+
const Button = require("../../../Actions/Button/Button.cjs");
|
|
4
5
|
const Alert$1 = require("../../../Alert/Alert.cjs");
|
|
5
6
|
const Dialog = require("../../../Dialog/Dialog.cjs");
|
|
6
7
|
const Inline = require("../../../Inline/Inline.cjs");
|
|
7
|
-
const Button = require("../../../LegacyComponents/Button/Button.cjs");
|
|
8
8
|
const Localization = require("../../../Provider/Localization.cjs");
|
|
9
9
|
const Tooltip = require("../../../Tooltip/Tooltip.cjs");
|
|
10
10
|
function Alert(props) {
|
|
@@ -65,8 +65,14 @@ function Alert(props) {
|
|
|
65
65
|
row = table.getRow(pendingChangeWithError.rowId).original;
|
|
66
66
|
} catch {
|
|
67
67
|
}
|
|
68
|
+
let label = "";
|
|
69
|
+
if (rowIdentityColumn) {
|
|
70
|
+
label = String(row?.[rowIdentityColumn.id] ?? "");
|
|
71
|
+
} else if (pendingChangeWithError.index !== void 0) {
|
|
72
|
+
label = String(pendingChangeWithError.index + 1);
|
|
73
|
+
}
|
|
68
74
|
links.push(
|
|
69
|
-
/* @__PURE__ */ React.createElement(Tooltip.Tooltip, { key: pendingChangeWithError.rowId, title: tooltip }, /* @__PURE__ */ React.createElement("span", { className: "text-blue", onClick: handleClick, role: "button" },
|
|
75
|
+
/* @__PURE__ */ React.createElement(Tooltip.Tooltip, { key: pendingChangeWithError.rowId, title: tooltip ?? "" }, /* @__PURE__ */ React.createElement("span", { className: "text-blue", onClick: handleClick, role: "button" }, label))
|
|
70
76
|
);
|
|
71
77
|
if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {
|
|
72
78
|
links.push(", ");
|
|
@@ -112,7 +118,7 @@ function Alert(props) {
|
|
|
112
118
|
function FilterResetDialog(props) {
|
|
113
119
|
const { onSubmit: handleSubmit, ...dialogProps } = props;
|
|
114
120
|
const { texts } = Localization.useLocalization();
|
|
115
|
-
return /* @__PURE__ */ React.createElement(Dialog.Dialog, { ...dialogProps, size: "xs" }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Content, { "aria-label": texts.table3.editing.validation.resetFiltersDialog.title }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Title, null, texts.table3.editing.validation.resetFiltersDialog.title), /* @__PURE__ */ React.createElement("p", null, texts.table3.editing.validation.resetFiltersDialog.description), /* @__PURE__ */ React.createElement(Dialog.Dialog.Footer, null, /* @__PURE__ */ React.createElement(Inline.Inline, { spacing: 8, alignInline: "end" }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Close, null, /* @__PURE__ */ React.createElement(Button.
|
|
121
|
+
return /* @__PURE__ */ React.createElement(Dialog.Dialog, { ...dialogProps, size: "xs" }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Content, { "aria-label": texts.table3.editing.validation.resetFiltersDialog.title }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Title, null, texts.table3.editing.validation.resetFiltersDialog.title), /* @__PURE__ */ React.createElement("p", null, texts.table3.editing.validation.resetFiltersDialog.description), /* @__PURE__ */ React.createElement(Dialog.Dialog.Footer, null, /* @__PURE__ */ React.createElement(Inline.Inline, { spacing: 8, alignInline: "end" }, /* @__PURE__ */ React.createElement(Dialog.Dialog.Close, null, /* @__PURE__ */ React.createElement(Button.Button, null, texts.table3.editing.validation.resetFiltersDialog.cancel)), /* @__PURE__ */ React.createElement(Button.Button, { variant: "primary", onClick: handleSubmit }, texts.table3.editing.validation.resetFiltersDialog.confirm)))));
|
|
116
122
|
}
|
|
117
123
|
exports.Alert = Alert;
|
|
118
124
|
//# sourceMappingURL=Alert.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.cjs","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { TableRef } from '../../../../primitives/Table/types';\nimport type { AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { Alert as BaseAlert } from '../../../Alert/Alert';\nimport type { DialogProps } from '../../../Dialog/Dialog';\nimport { Dialog } from '../../../Dialog/Dialog';\nimport { Inline } from '../../../Inline/Inline';\nimport { LegacyButton } from '../../../LegacyComponents/Button/Button';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : pendingChangeWithError.index + 1}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span> {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <LegacyButton>{texts.table3.editing.validation.resetFiltersDialog.cancel}</LegacyButton>\n </Dialog.Close>\n <LegacyButton appearance=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </LegacyButton>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["useLocalization","Tooltip","BaseAlert","Dialog","Inline","LegacyButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Alert.cjs","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { TableRef } from '../../../../primitives/Table/types';\nimport { Button } from '../../../Actions/Button/Button';\nimport type { AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { Alert as BaseAlert } from '../../../Alert/Alert';\nimport type { DialogProps } from '../../../Dialog/Dialog';\nimport { Dialog } from '../../../Dialog/Dialog';\nimport { Inline } from '../../../Inline/Inline';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n if (rowIdentityColumn) {\n label = String(row?.[rowIdentityColumn.id as keyof TType] ?? '');\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span> {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["useLocalization","Tooltip","BaseAlert","Dialog","Inline","Button"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React__default from "react";
|
|
2
|
+
import { Button } from "../../../Actions/Button/Button.js";
|
|
2
3
|
import { Alert as Alert$1 } from "../../../Alert/Alert.js";
|
|
3
4
|
import { Dialog } from "../../../Dialog/Dialog.js";
|
|
4
5
|
import { Inline } from "../../../Inline/Inline.js";
|
|
5
|
-
import { LegacyButton } from "../../../LegacyComponents/Button/Button.js";
|
|
6
6
|
import { useLocalization } from "../../../Provider/Localization.js";
|
|
7
7
|
import { Tooltip } from "../../../Tooltip/Tooltip.js";
|
|
8
8
|
function Alert(props) {
|
|
@@ -63,8 +63,14 @@ function Alert(props) {
|
|
|
63
63
|
row = table.getRow(pendingChangeWithError.rowId).original;
|
|
64
64
|
} catch {
|
|
65
65
|
}
|
|
66
|
+
let label = "";
|
|
67
|
+
if (rowIdentityColumn) {
|
|
68
|
+
label = String(row?.[rowIdentityColumn.id] ?? "");
|
|
69
|
+
} else if (pendingChangeWithError.index !== void 0) {
|
|
70
|
+
label = String(pendingChangeWithError.index + 1);
|
|
71
|
+
}
|
|
66
72
|
links.push(
|
|
67
|
-
/* @__PURE__ */ React__default.createElement(Tooltip, { key: pendingChangeWithError.rowId, title: tooltip }, /* @__PURE__ */ React__default.createElement("span", { className: "text-blue", onClick: handleClick, role: "button" },
|
|
73
|
+
/* @__PURE__ */ React__default.createElement(Tooltip, { key: pendingChangeWithError.rowId, title: tooltip ?? "" }, /* @__PURE__ */ React__default.createElement("span", { className: "text-blue", onClick: handleClick, role: "button" }, label))
|
|
68
74
|
);
|
|
69
75
|
if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {
|
|
70
76
|
links.push(", ");
|
|
@@ -110,7 +116,7 @@ function Alert(props) {
|
|
|
110
116
|
function FilterResetDialog(props) {
|
|
111
117
|
const { onSubmit: handleSubmit, ...dialogProps } = props;
|
|
112
118
|
const { texts } = useLocalization();
|
|
113
|
-
return /* @__PURE__ */ React__default.createElement(Dialog, { ...dialogProps, size: "xs" }, /* @__PURE__ */ React__default.createElement(Dialog.Content, { "aria-label": texts.table3.editing.validation.resetFiltersDialog.title }, /* @__PURE__ */ React__default.createElement(Dialog.Title, null, texts.table3.editing.validation.resetFiltersDialog.title), /* @__PURE__ */ React__default.createElement("p", null, texts.table3.editing.validation.resetFiltersDialog.description), /* @__PURE__ */ React__default.createElement(Dialog.Footer, null, /* @__PURE__ */ React__default.createElement(Inline, { spacing: 8, alignInline: "end" }, /* @__PURE__ */ React__default.createElement(Dialog.Close, null, /* @__PURE__ */ React__default.createElement(
|
|
119
|
+
return /* @__PURE__ */ React__default.createElement(Dialog, { ...dialogProps, size: "xs" }, /* @__PURE__ */ React__default.createElement(Dialog.Content, { "aria-label": texts.table3.editing.validation.resetFiltersDialog.title }, /* @__PURE__ */ React__default.createElement(Dialog.Title, null, texts.table3.editing.validation.resetFiltersDialog.title), /* @__PURE__ */ React__default.createElement("p", null, texts.table3.editing.validation.resetFiltersDialog.description), /* @__PURE__ */ React__default.createElement(Dialog.Footer, null, /* @__PURE__ */ React__default.createElement(Inline, { spacing: 8, alignInline: "end" }, /* @__PURE__ */ React__default.createElement(Dialog.Close, null, /* @__PURE__ */ React__default.createElement(Button, null, texts.table3.editing.validation.resetFiltersDialog.cancel)), /* @__PURE__ */ React__default.createElement(Button, { variant: "primary", onClick: handleSubmit }, texts.table3.editing.validation.resetFiltersDialog.confirm)))));
|
|
114
120
|
}
|
|
115
121
|
export {
|
|
116
122
|
Alert
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { TableRef } from '../../../../primitives/Table/types';\nimport type { AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { Alert as BaseAlert } from '../../../Alert/Alert';\nimport type { DialogProps } from '../../../Dialog/Dialog';\nimport { Dialog } from '../../../Dialog/Dialog';\nimport { Inline } from '../../../Inline/Inline';\nimport { LegacyButton } from '../../../LegacyComponents/Button/Button';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {rowIdentityColumn ? row?.[rowIdentityColumn.id as keyof TType] : pendingChangeWithError.index + 1}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span> {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <LegacyButton>{texts.table3.editing.validation.resetFiltersDialog.cancel}</LegacyButton>\n </Dialog.Close>\n <LegacyButton appearance=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </LegacyButton>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["React","BaseAlert"],"mappings":";;;;;;;AAoBO,SAAS,MAAuB,OAA0B;AAC7D,QAAM,EAAE,eAAe,OAAO,UAAU,GAAG,eAAe;AAC1D,QAAM,EAAE,MAAA,IAAU,gBAAA;AAClB,QAAM,kBAAkB,MAAM,OAAO,QAAQ;AAC7C,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,CAAC,uBAAuB,wBAAwB,IAAIA,eAAM,SAAyB,KAAK;AAE9F,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,eAAM,SAAwB,IAAI;AACpF,QAAM,2BAA2B,UAAU,QAAQ,sBAAA;AAEnD,QAAM,cAAc,MAAM,YAAA,EAAc;AAExC,WAAS,mBAAmB,OAAe;AACvC,WAAO,YAAY,UAAU,CAAA,QAAO,IAAI,OAAO,KAAK;AAAA,EACxD;AAEA,WAAS,YAAY,UAAkB;AACnC,cAAU,UAAU,kBAAkB,QAAQ;AAC9C,kBAAc,UAAU,EAAE,OAAO,SAAA,CAAU;AAE3C,0BAAsB,MAAM;AACxB,YAAM,OAAO,SAAS,SAAS;AAAA,QAC3B;AAAA,MAAA;AAGJ,UAAI,MAAM;AACL,aAAqB,QAAA;AAAA,MAC1B;AAAA,IACJ,CAAC;AAAA,EACL;AAGA,QAAM,SACF,yBAAyB,WAAW,IAAI,gBAAgB,MAAM,WAAW,gBAAgB,MAAM,aACjG,QAAQ,WAAW,OAAO,yBAAyB,MAAM,CAAC;AAG5D,QAAM,QAA2B,CAAA;AACjC,QAAM,iBAAiB,MAAM,sBAAA,EAAwB,IAAI,CAAA,MAAK,EAAE,EAAE;AAClE,QAAM,oBACF,UAAU,uBAAuB,eAAe,SAAS,OAAO,UAAU,mBAAmB,CAAC;AAAA;AAAA,IAExF,MAAM,gBAAgB,KAAK,CAAA,MAAK,EAAE,OAAO,OAAO,UAAU,mBAAmB,CAAC;AAAA,MAC9E;AAEV,2BAAyB,QAAQ,CAAC,wBAAwB,UAAU;AAEhE,QAAI,yBAAyB,SAAS,KAAK,UAAU,yBAAyB,SAAS,GAAG;AAEtF,YAAM,KAAK,IAAI,gBAAgB,MAAM,UAAU,GAAG;AAAA,IACtD;AAEA,UAAM,cAAc,MAAM;AACtB,YAAM,eAAe,mBAAmB,uBAAuB,KAAK;AAEpE,UAAI,eAAe,IAAI;AACnB,oBAAY,YAAY;AAAA,MAC5B,OAAO;AACH,iCAAyB,uBAAuB,KAAK;AAAA,MACzD;AAAA,IACJ;AAEA,QAAI;AAEJ,QAAI,uBAAuB,OAAO,KAAK;AACnC,gBAAU,uBAAuB,OAAO;AAAA,IAC5C,OAAO;AACH,YAAM,yBAAyB,OAAO,KAAK,uBAAuB,OAAO,KAAK,EAAE,CAAC;AACjF,YAAM,aAAa,MAAM,cAAA,EAAgB,KAAK,CAAA,WAAU,OAAO,OAAO,sBAAsB,GAAG,UAAU,MAAM;AAE/G,UAAI,cAAc,wBAAwB;AACtC,kBAAU,GAAG,UAAU,KAAK,uBAAuB,OAAO,MAAM,sBAAsB,CAAC;AAAA,MAC3F;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,YAAM,MAAM,OAAO,uBAAuB,KAAK,EAAE;AAAA,IACrD,QAAQ;AAAA,IAER;AAEA,UAAM;AAAA,MACFA,+BAAA,cAAC,WAAQ,KAAK,uBAAuB,OAAO,OAAO,QAAA,GAC/CA,+BAAA,cAAC,QAAA,EAAK,WAAU,aAAY,SAAS,aAAa,MAAK,SAAA,GAClD,oBAAoB,MAAM,kBAAkB,EAAiB,IAAI,uBAAuB,QAAQ,CACrG,CACJ;AAAA,IAAA;AAIJ,QAAI,yBAAyB,SAAS,KAAK,QAAQ,yBAAyB,SAAS,GAAG;AACpF,YAAM,KAAK,IAAI;AAAA,IACnB;AAAA,EACJ,CAAC;AAGD,QAAM,WAAW,MAAM,WAAW,IAAI,gBAAgB,MAAM,aAAa,gBAAgB,MAAM,eAC1F,MAAM,WAAW,EACjB,IAAI,CAAA,SAAQ;AACT,QAAI,SAAS,YAAY;AACrB,aAAO,mBAAmB,UAAU,MAAM,UAAU,gBAAgB,MAAM;AAAA,IAC9E;AAEA,QAAI,SAAS,SAAS;AAClB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,CAAC;AAEL,QAAM,qBAAqB,MAAM;AAC7B,UAAM,QAAQ;AAEd,UAAM,kBAAA;AACN,UAAM,mBAAA;AAIN,QAAI,OAAO,UAAU,UAAU;AAC3B,2BAAqB,KAAK;AAAA,IAC9B;AAEA,6BAAyB,KAAK;AAAA,EAClC;AAGAA,iBAAM,UAAU,MAAM;AAClB,QAAI,sBAAsB,MAAM;AAC5B;AAAA,IACJ;AAEA,UAAM,eAAe,mBAAmB,iBAAiB;AAEzD,QAAI,eAAe,IAAI;AACnB,kBAAY,YAAY;AACxB,2BAAqB,IAAI;AAAA,IAC7B;AAAA,EACJ,GAAG,CAAC,mBAAmB,WAAW,CAAC;AAEnC,SACIA,+BAAA,cAAAA,eAAA,UAAA,MACIA,+BAAA,cAACC,SAAA,EAAW,GAAG,YAAY,OAAM,WAC7BD,+BAAA,cAAC,QAAA,EAAK,WAAU,YAAA,GAAa,KAAM,GAAO,KAAO,OACrD,GACAA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAM,0BAA0B;AAAA,MAChC,UAAU,MAAM,yBAAyB,KAAK;AAAA,MAC9C,UAAU;AAAA,IAAA;AAAA,EAAA,CAElB;AAER;AAMA,SAAS,kBAAkB,OAA+B;AACtD,QAAM,EAAE,UAAU,cAAc,GAAG,gBAAgB;AACnD,QAAM,EAAE,MAAA,IAAU,gBAAA;AAElB,sDACK,QAAA,EAAQ,GAAG,aAAa,MAAK,QAC1BA,+BAAA,cAAC,OAAO,SAAP,EAAe,cAAY,MAAM,OAAO,QAAQ,WAAW,mBAAmB,MAAA,GAC3EA,+BAAA,cAAC,OAAO,OAAP,MAAc,MAAM,OAAO,QAAQ,WAAW,mBAAmB,KAAM,GACxEA,+BAAA,cAAC,KAAA,MAAG,MAAM,OAAO,QAAQ,WAAW,mBAAmB,WAAY,GACnEA,+BAAA,cAAC,OAAO,QAAP,MACGA,+BAAA,cAAC,QAAA,EAAO,SAAS,GAAG,aAAY,MAAA,GAC5BA,+BAAA,cAAC,OAAO,OAAP,MACGA,+BAAA,cAAC,cAAA,MAAc,MAAM,OAAO,QAAQ,WAAW,mBAAmB,MAAO,CAC7E,GACAA,+BAAA,cAAC,cAAA,EAAa,YAAW,WAAU,SAAS,aAAA,GACvC,MAAM,OAAO,QAAQ,WAAW,mBAAmB,OACxD,CACJ,CACJ,CACJ,CACJ;AAER;"}
|
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../../../../../src/components/Table3/components/Editing/Alert.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport type { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';\nimport React from 'react';\n\nimport type { TableRef } from '../../../../primitives/Table/types';\nimport { Button } from '../../../Actions/Button/Button';\nimport type { AlertProps as BaseAlertProps } from '../../../Alert/Alert';\nimport { Alert as BaseAlert } from '../../../Alert/Alert';\nimport type { DialogProps } from '../../../Dialog/Dialog';\nimport { Dialog } from '../../../Dialog/Dialog';\nimport { Inline } from '../../../Inline/Inline';\nimport { useLocalization } from '../../../Provider/Localization';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\n\ntype AlertProps<TType = unknown> = Omit<BaseAlertProps, 'children'> & {\n scrollToIndex: (index: number, options: ReactVirtualScrollToOptions) => void;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Alert<TType = unknown>(props: AlertProps<TType>) {\n const { scrollToIndex, table, tableRef, ...attributes } = props;\n const { texts } = useLocalization();\n const validationTexts = texts.table3.editing.validation;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const [showFilterResetDialog, setShowFilterResetDialog] = React.useState<string | false>(false);\n // row to scroll to and focus once the filters have been reset and it becomes visible again\n const [pendingFocusRowId, setPendingFocusRowId] = React.useState<string | null>(null);\n const pendingChangesWithErrors = tableMeta.editing.getErrorsShownInAlert<TType>();\n\n const visibleRows = table.getRowModel().rows;\n\n function getVisibleRowIndex(rowId: string) {\n return visibleRows.findIndex(row => row.id === rowId);\n }\n\n function scrollToRow(rowIndex: number) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n scrollToIndex(rowIndex, { align: 'center' });\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n 'tbody > tr[data-row-active=\"true\"] > td[data-cell-editing-invalid=\"true\"]'\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n\n // generate the \"N unsaved entries\" title\n const title = (\n pendingChangesWithErrors.length === 1 ? validationTexts.alert.titleOne : validationTexts.alert.titlePlural\n ).replace('[COUNT]', String(pendingChangesWithErrors.length));\n\n // generate links to each invalid row, to go into the error message\n const links: React.ReactNode[] = [];\n const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);\n const rowIdentityColumn =\n tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor))\n ? // table.getColumn(columName) throw error in strict dev mode. Related thread: https://github.com/TanStack/table/discussions/5505\n table.getAllColumns().find(x => x.id === String(tableMeta.rowIdentityAccessor))\n : undefined;\n\n pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {\n // if appropriate, concatenate the item with the text \"and\"\n if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {\n // Add space before and after `messageAnd` text\n links.push(` ${validationTexts.alert.messageAnd} `);\n }\n\n const handleClick = () => {\n const visibleIndex = getVisibleRowIndex(pendingChangeWithError.rowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n } else {\n setShowFilterResetDialog(pendingChangeWithError.rowId);\n }\n };\n\n let tooltip;\n\n if (pendingChangeWithError.errors.row) {\n tooltip = pendingChangeWithError.errors.row;\n } else {\n const firstCellErrorColumnId = Object.keys(pendingChangeWithError.errors.cells)[0];\n const columnName = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)?.columnDef.meta?.header;\n\n if (columnName && firstCellErrorColumnId) {\n tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;\n }\n }\n\n let row;\n try {\n row = table.getRow(pendingChangeWithError.rowId).original;\n } catch {\n // because of server loading, some rows may not be accessible\n }\n\n // the row identity when there is one, otherwise the 1-based position, which server loading can leave unknown\n let label = '';\n\n if (rowIdentityColumn) {\n label = String(row?.[rowIdentityColumn.id as keyof TType] ?? '');\n } else if (pendingChangeWithError.index !== undefined) {\n label = String(pendingChangeWithError.index + 1);\n }\n\n links.push(\n <Tooltip key={pendingChangeWithError.rowId} title={tooltip ?? ''}>\n <span className=\"text-blue\" onClick={handleClick} role=\"button\">\n {label}\n </span>\n </Tooltip>\n );\n\n // if appropriate, concatenate the item with the text \",\"\n if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {\n links.push(', ');\n }\n });\n\n // generate the \"Row N is incomplete and hasn't been saved\" error message\n const message = (links.length === 1 ? validationTexts.alert.messageOne : validationTexts.alert.messagePlural)\n .split(/(\\[\\w+\\])/)\n .map(part => {\n if (part === '[COLUMN]') {\n return rowIdentityColumn?.columnDef.meta?.header ?? validationTexts.alert.messageRow;\n }\n\n if (part === '[ROW]') {\n return links;\n }\n\n return part;\n });\n\n const handleResetFilters = () => {\n const rowId = showFilterResetDialog;\n\n table.resetGlobalFilter();\n table.resetColumnFilters();\n\n // defer focusing until the row model has re-rendered with the filters cleared,\n // otherwise the row isn't in the model/DOM yet\n if (typeof rowId === 'string') {\n setPendingFocusRowId(rowId);\n }\n\n setShowFilterResetDialog(false);\n };\n\n // once the filters are reset and the previously hidden row is visible again, scroll to and focus it\n React.useEffect(() => {\n if (pendingFocusRowId === null) {\n return;\n }\n\n const visibleIndex = getVisibleRowIndex(pendingFocusRowId);\n\n if (visibleIndex > -1) {\n scrollToRow(visibleIndex);\n setPendingFocusRowId(null);\n }\n }, [pendingFocusRowId, visibleRows]);\n\n return (\n <>\n <BaseAlert {...attributes} state=\"error\">\n <span className=\"font-bold\">{title}</span> {message}\n </BaseAlert>\n <FilterResetDialog\n open={showFilterResetDialog !== false}\n onChange={() => setShowFilterResetDialog(false)}\n onSubmit={handleResetFilters}\n />\n </>\n );\n}\n\ntype FilterResetDialogProps = Omit<DialogProps, 'children'> & {\n onSubmit: () => void;\n};\n\nfunction FilterResetDialog(props: FilterResetDialogProps) {\n const { onSubmit: handleSubmit, ...dialogProps } = props;\n const { texts } = useLocalization();\n\n return (\n <Dialog {...dialogProps} size=\"xs\">\n <Dialog.Content aria-label={texts.table3.editing.validation.resetFiltersDialog.title}>\n <Dialog.Title>{texts.table3.editing.validation.resetFiltersDialog.title}</Dialog.Title>\n <p>{texts.table3.editing.validation.resetFiltersDialog.description}</p>\n <Dialog.Footer>\n <Inline spacing={8} alignInline=\"end\">\n <Dialog.Close>\n <Button>{texts.table3.editing.validation.resetFiltersDialog.cancel}</Button>\n </Dialog.Close>\n <Button variant=\"primary\" onClick={handleSubmit}>\n {texts.table3.editing.validation.resetFiltersDialog.confirm}\n </Button>\n </Inline>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog>\n );\n}\n"],"names":["React","BaseAlert"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporaryRow.cjs","sources":["../../../../../../src/components/Table3/components/Row/Editing/TemporaryRow.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Row } from '../../../../../primitives/Table/Core/components/Row/Row';\nimport type { TableRef } from '../../../../../primitives/Table/types';\nimport { isAriaDirectionKey } from '../../../../../utils/aria';\nimport { isElementTriggeredFromContainer, isElementInsideExternalRelatedOverlay } from '../../../../../utils/dom';\nimport { RENDERERS } from '../../../useTable3';\n\ntype TemporaryRowsProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement>;\n hasScrollbar: boolean;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function TemporaryRows<TType = unknown>(props: TemporaryRowsProps<TType>) {\n return props.table.getBottomRows().map(row => <TemporaryRow<TType> key={row.id} row={row} {...props} />);\n}\n\ntype TemporaryRowProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement>;\n hasScrollbar: boolean;\n row: ReactTableRow<TType>;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nfunction TemporaryRow<TType = unknown>(props: TemporaryRowProps<TType>) {\n const { createRowButtonRef, hasScrollbar, row, table, tableMeta, tableRef } = props;\n\n const handleKeyDown = async (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n const target = event.target as Element;\n\n // Skip handling if the event is from a related dropdown (overlay, e.q. Select2 options dropdown) outside the row\n if (isAriaDirectionKey(event) && isElementInsideExternalRelatedOverlay(target, tableRef)) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (!isElementTriggeredFromContainer(target, event.currentTarget)) {\n const saved = await tableMeta.editing.saveChanges(table);\n\n if (saved) {\n requestAnimationFrame(() => {\n createRowButtonRef.current?.focus();\n });\n }\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n\n // save or discard changes when we leave the row\n await tableMeta.editing.saveChanges(table);\n\n const lastIndex = tableMeta.length - 1;\n tableMeta.rowActive.setRowActiveIndex(lastIndex);\n\n if (tableRef.current) {\n // scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n\n // there's a delay in calculating row heights, so the scrollTop isn't always correct first time - recalculate it\n requestAnimationFrame(() => {\n if (tableRef.current) {\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n }\n });\n }\n }\n };\n\n const className = cn('group/row !sticky z-[22] border-t-2 border-gray-100 print:hidden', {\n 'bottom-[calc(5rem_+_5px)] data-[row-editing-move]:bottom-[calc(5rem_+_5px)]': tableMeta.footer.isEnabled,\n 'bottom-[calc(2.5rem_+_5px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_5px)]': !tableMeta.footer.isEnabled,\n '!border-t border-b': !hasScrollbar,\n });\n\n return (\n <Row<TType>\n key={row.id}\n cellRenderer={RENDERERS.cell}\n index={tableMeta.length}\n measureRow={() => null}\n renderer={RENDERERS.row}\n row={row}\n table={table}\n className={className}\n onKeyDown={handleKeyDown}\n hideInternalColumns\n hideRowActions={!tableMeta.editing.isEditing}\n />\n );\n}\n"],"names":["isAriaDirectionKey","isElementInsideExternalRelatedOverlay","isElementTriggeredFromContainer","Row","RENDERERS"],"mappings":";;;;;;;;AAkBO,SAAS,cAA+B,OAAkC;AAC7E,SAAO,MAAM,MAAM,cAAA,EAAgB,IAAI,CAAA,QAAO,sBAAA,cAAC,cAAA,EAAoB,KAAK,IAAI,IAAI,KAAW,GAAG,OAAO,CAAE;AAC3G;AAWA,SAAS,aAA8B,OAAiC;AACpE,QAAM,EAAE,oBAAoB,cAAc,KAAK,OAAO,WAAW,aAAa;AAE9E,QAAM,gBAAgB,OAAO,UAAoD;AAC7E,UAAM,SAAS,MAAM;AAGrB,QAAIA,KAAAA,mBAAmB,KAAK,KAAKC,IAAAA,sCAAsC,QAAQ,QAAQ,GAAG;AACtF;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,aAAa;AAC3B,YAAM,eAAA;AAEN,UAAI,CAACC,IAAAA,gCAAgC,QAAQ,MAAM,aAAa,GAAG;AAC/D,cAAM,QAAQ,MAAM,UAAU,QAAQ,YAAY,KAAK;AAEvD,YAAI,OAAO;AACP,gCAAsB,MAAM;AACxB,+BAAmB,SAAS,MAAA;AAAA,UAChC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,WAAW,MAAM,QAAQ,WAAW;AAChC,YAAM,eAAA;AACN,YAAM,gBAAA;AAGN,YAAM,UAAU,QAAQ,YAAY,KAAK;AAEzC,YAAM,YAAY,UAAU,SAAS;AACrC,gBAAU,UAAU,kBAAkB,SAAS;AAE/C,UAAI,SAAS,SAAS;AAElB,iBAAS,QAAQ,YAAY,SAAS,QAAQ;AAG9C,8BAAsB,MAAM;AACxB,cAAI,SAAS,SAAS;AAClB,qBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,UAClD;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,GAAG,oEAAoE;AAAA,IACrF,+EAA+E,UAAU,OAAO;AAAA,IAChG,mFAAmF,CAAC,UAAU,OAAO;AAAA,IACrG,sBAAsB,CAAC;AAAA,EAAA,CAC1B;AAED,SACI,sBAAA;AAAA,IAACC,IAAAA;AAAAA,IAAA;AAAA,MACG,KAAK,IAAI;AAAA,MACT,cAAcC,UAAAA,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,UAAUA,UAAAA,UAAU;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,qBAAmB;AAAA,MACnB,gBAAgB,CAAC,UAAU,QAAQ;AAAA,IAAA;AAAA,EAAA;AAG/C;;"}
|
|
1
|
+
{"version":3,"file":"TemporaryRow.cjs","sources":["../../../../../../src/components/Table3/components/Row/Editing/TemporaryRow.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Row } from '../../../../../primitives/Table/Core/components/Row/Row';\nimport type { TableRef } from '../../../../../primitives/Table/types';\nimport { isAriaDirectionKey } from '../../../../../utils/aria';\nimport { isElementTriggeredFromContainer, isElementInsideExternalRelatedOverlay } from '../../../../../utils/dom';\nimport { RENDERERS } from '../../../useTable3';\n\ntype TemporaryRowsProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement | null>;\n hasScrollbar: boolean;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function TemporaryRows<TType = unknown>(props: TemporaryRowsProps<TType>) {\n return props.table.getBottomRows().map(row => <TemporaryRow<TType> key={row.id} row={row} {...props} />);\n}\n\ntype TemporaryRowProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement | null>;\n hasScrollbar: boolean;\n row: ReactTableRow<TType>;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nfunction TemporaryRow<TType = unknown>(props: TemporaryRowProps<TType>) {\n const { createRowButtonRef, hasScrollbar, row, table, tableMeta, tableRef } = props;\n\n const handleKeyDown = async (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n const target = event.target as Element;\n\n // Skip handling if the event is from a related dropdown (overlay, e.q. Select2 options dropdown) outside the row\n if (isAriaDirectionKey(event) && isElementInsideExternalRelatedOverlay(target, tableRef)) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (!isElementTriggeredFromContainer(target, event.currentTarget)) {\n const saved = await tableMeta.editing.saveChanges(table);\n\n if (saved) {\n requestAnimationFrame(() => {\n createRowButtonRef.current?.focus();\n });\n }\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n\n // save or discard changes when we leave the row\n await tableMeta.editing.saveChanges(table);\n\n const lastIndex = tableMeta.length - 1;\n tableMeta.rowActive.setRowActiveIndex(lastIndex);\n\n if (tableRef.current) {\n // scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n\n // there's a delay in calculating row heights, so the scrollTop isn't always correct first time - recalculate it\n requestAnimationFrame(() => {\n if (tableRef.current) {\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n }\n });\n }\n }\n };\n\n const className = cn('group/row !sticky z-[22] border-t-2 border-gray-100 print:hidden', {\n 'bottom-[calc(5rem_+_5px)] data-[row-editing-move]:bottom-[calc(5rem_+_5px)]': tableMeta.footer.isEnabled,\n 'bottom-[calc(2.5rem_+_5px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_5px)]': !tableMeta.footer.isEnabled,\n '!border-t border-b': !hasScrollbar,\n });\n\n return (\n <Row<TType>\n key={row.id}\n cellRenderer={RENDERERS.cell}\n index={tableMeta.length}\n measureRow={() => null}\n renderer={RENDERERS.row}\n row={row}\n table={table}\n className={className}\n onKeyDown={handleKeyDown}\n hideInternalColumns\n hideRowActions={!tableMeta.editing.isEditing}\n />\n );\n}\n"],"names":["isAriaDirectionKey","isElementInsideExternalRelatedOverlay","isElementTriggeredFromContainer","Row","RENDERERS"],"mappings":";;;;;;;;AAkBO,SAAS,cAA+B,OAAkC;AAC7E,SAAO,MAAM,MAAM,cAAA,EAAgB,IAAI,CAAA,QAAO,sBAAA,cAAC,cAAA,EAAoB,KAAK,IAAI,IAAI,KAAW,GAAG,OAAO,CAAE;AAC3G;AAWA,SAAS,aAA8B,OAAiC;AACpE,QAAM,EAAE,oBAAoB,cAAc,KAAK,OAAO,WAAW,aAAa;AAE9E,QAAM,gBAAgB,OAAO,UAAoD;AAC7E,UAAM,SAAS,MAAM;AAGrB,QAAIA,KAAAA,mBAAmB,KAAK,KAAKC,IAAAA,sCAAsC,QAAQ,QAAQ,GAAG;AACtF;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,aAAa;AAC3B,YAAM,eAAA;AAEN,UAAI,CAACC,IAAAA,gCAAgC,QAAQ,MAAM,aAAa,GAAG;AAC/D,cAAM,QAAQ,MAAM,UAAU,QAAQ,YAAY,KAAK;AAEvD,YAAI,OAAO;AACP,gCAAsB,MAAM;AACxB,+BAAmB,SAAS,MAAA;AAAA,UAChC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,WAAW,MAAM,QAAQ,WAAW;AAChC,YAAM,eAAA;AACN,YAAM,gBAAA;AAGN,YAAM,UAAU,QAAQ,YAAY,KAAK;AAEzC,YAAM,YAAY,UAAU,SAAS;AACrC,gBAAU,UAAU,kBAAkB,SAAS;AAE/C,UAAI,SAAS,SAAS;AAElB,iBAAS,QAAQ,YAAY,SAAS,QAAQ;AAG9C,8BAAsB,MAAM;AACxB,cAAI,SAAS,SAAS;AAClB,qBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,UAClD;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,GAAG,oEAAoE;AAAA,IACrF,+EAA+E,UAAU,OAAO;AAAA,IAChG,mFAAmF,CAAC,UAAU,OAAO;AAAA,IACrG,sBAAsB,CAAC;AAAA,EAAA,CAC1B;AAED,SACI,sBAAA;AAAA,IAACC,IAAAA;AAAAA,IAAA;AAAA,MACG,KAAK,IAAI;AAAA,MACT,cAAcC,UAAAA,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,UAAUA,UAAAA,UAAU;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,qBAAmB;AAAA,MACnB,gBAAgB,CAAC,UAAU,QAAQ;AAAA,IAAA;AAAA,EAAA;AAG/C;;"}
|
|
@@ -2,7 +2,7 @@ import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/reac
|
|
|
2
2
|
import { default as React } from 'react';
|
|
3
3
|
import { TableRef } from '../../../../../primitives/Table/types';
|
|
4
4
|
type TemporaryRowsProps<TType = unknown> = {
|
|
5
|
-
createRowButtonRef: React.RefObject<HTMLButtonElement>;
|
|
5
|
+
createRowButtonRef: React.RefObject<HTMLButtonElement | null>;
|
|
6
6
|
hasScrollbar: boolean;
|
|
7
7
|
table: ReactTable<TType>;
|
|
8
8
|
tableMeta: ReactTableMeta<TType>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporaryRow.js","sources":["../../../../../../src/components/Table3/components/Row/Editing/TemporaryRow.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Row } from '../../../../../primitives/Table/Core/components/Row/Row';\nimport type { TableRef } from '../../../../../primitives/Table/types';\nimport { isAriaDirectionKey } from '../../../../../utils/aria';\nimport { isElementTriggeredFromContainer, isElementInsideExternalRelatedOverlay } from '../../../../../utils/dom';\nimport { RENDERERS } from '../../../useTable3';\n\ntype TemporaryRowsProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement>;\n hasScrollbar: boolean;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function TemporaryRows<TType = unknown>(props: TemporaryRowsProps<TType>) {\n return props.table.getBottomRows().map(row => <TemporaryRow<TType> key={row.id} row={row} {...props} />);\n}\n\ntype TemporaryRowProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement>;\n hasScrollbar: boolean;\n row: ReactTableRow<TType>;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nfunction TemporaryRow<TType = unknown>(props: TemporaryRowProps<TType>) {\n const { createRowButtonRef, hasScrollbar, row, table, tableMeta, tableRef } = props;\n\n const handleKeyDown = async (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n const target = event.target as Element;\n\n // Skip handling if the event is from a related dropdown (overlay, e.q. Select2 options dropdown) outside the row\n if (isAriaDirectionKey(event) && isElementInsideExternalRelatedOverlay(target, tableRef)) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (!isElementTriggeredFromContainer(target, event.currentTarget)) {\n const saved = await tableMeta.editing.saveChanges(table);\n\n if (saved) {\n requestAnimationFrame(() => {\n createRowButtonRef.current?.focus();\n });\n }\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n\n // save or discard changes when we leave the row\n await tableMeta.editing.saveChanges(table);\n\n const lastIndex = tableMeta.length - 1;\n tableMeta.rowActive.setRowActiveIndex(lastIndex);\n\n if (tableRef.current) {\n // scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n\n // there's a delay in calculating row heights, so the scrollTop isn't always correct first time - recalculate it\n requestAnimationFrame(() => {\n if (tableRef.current) {\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n }\n });\n }\n }\n };\n\n const className = cn('group/row !sticky z-[22] border-t-2 border-gray-100 print:hidden', {\n 'bottom-[calc(5rem_+_5px)] data-[row-editing-move]:bottom-[calc(5rem_+_5px)]': tableMeta.footer.isEnabled,\n 'bottom-[calc(2.5rem_+_5px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_5px)]': !tableMeta.footer.isEnabled,\n '!border-t border-b': !hasScrollbar,\n });\n\n return (\n <Row<TType>\n key={row.id}\n cellRenderer={RENDERERS.cell}\n index={tableMeta.length}\n measureRow={() => null}\n renderer={RENDERERS.row}\n row={row}\n table={table}\n className={className}\n onKeyDown={handleKeyDown}\n hideInternalColumns\n hideRowActions={!tableMeta.editing.isEditing}\n />\n );\n}\n"],"names":["React"],"mappings":";;;;;;AAkBO,SAAS,cAA+B,OAAkC;AAC7E,SAAO,MAAM,MAAM,cAAA,EAAgB,IAAI,CAAA,QAAOA,+BAAA,cAAC,cAAA,EAAoB,KAAK,IAAI,IAAI,KAAW,GAAG,OAAO,CAAE;AAC3G;AAWA,SAAS,aAA8B,OAAiC;AACpE,QAAM,EAAE,oBAAoB,cAAc,KAAK,OAAO,WAAW,aAAa;AAE9E,QAAM,gBAAgB,OAAO,UAAoD;AAC7E,UAAM,SAAS,MAAM;AAGrB,QAAI,mBAAmB,KAAK,KAAK,sCAAsC,QAAQ,QAAQ,GAAG;AACtF;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,aAAa;AAC3B,YAAM,eAAA;AAEN,UAAI,CAAC,gCAAgC,QAAQ,MAAM,aAAa,GAAG;AAC/D,cAAM,QAAQ,MAAM,UAAU,QAAQ,YAAY,KAAK;AAEvD,YAAI,OAAO;AACP,gCAAsB,MAAM;AACxB,+BAAmB,SAAS,MAAA;AAAA,UAChC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,WAAW,MAAM,QAAQ,WAAW;AAChC,YAAM,eAAA;AACN,YAAM,gBAAA;AAGN,YAAM,UAAU,QAAQ,YAAY,KAAK;AAEzC,YAAM,YAAY,UAAU,SAAS;AACrC,gBAAU,UAAU,kBAAkB,SAAS;AAE/C,UAAI,SAAS,SAAS;AAElB,iBAAS,QAAQ,YAAY,SAAS,QAAQ;AAG9C,8BAAsB,MAAM;AACxB,cAAI,SAAS,SAAS;AAClB,qBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,UAClD;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,GAAG,oEAAoE;AAAA,IACrF,+EAA+E,UAAU,OAAO;AAAA,IAChG,mFAAmF,CAAC,UAAU,OAAO;AAAA,IACrG,sBAAsB,CAAC;AAAA,EAAA,CAC1B;AAED,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAK,IAAI;AAAA,MACT,cAAc,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,UAAU,UAAU;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,qBAAmB;AAAA,MACnB,gBAAgB,CAAC,UAAU,QAAQ;AAAA,IAAA;AAAA,EAAA;AAG/C;"}
|
|
1
|
+
{"version":3,"file":"TemporaryRow.js","sources":["../../../../../../src/components/Table3/components/Row/Editing/TemporaryRow.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { Row } from '../../../../../primitives/Table/Core/components/Row/Row';\nimport type { TableRef } from '../../../../../primitives/Table/types';\nimport { isAriaDirectionKey } from '../../../../../utils/aria';\nimport { isElementTriggeredFromContainer, isElementInsideExternalRelatedOverlay } from '../../../../../utils/dom';\nimport { RENDERERS } from '../../../useTable3';\n\ntype TemporaryRowsProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement | null>;\n hasScrollbar: boolean;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function TemporaryRows<TType = unknown>(props: TemporaryRowsProps<TType>) {\n return props.table.getBottomRows().map(row => <TemporaryRow<TType> key={row.id} row={row} {...props} />);\n}\n\ntype TemporaryRowProps<TType = unknown> = {\n createRowButtonRef: React.RefObject<HTMLButtonElement | null>;\n hasScrollbar: boolean;\n row: ReactTableRow<TType>;\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nfunction TemporaryRow<TType = unknown>(props: TemporaryRowProps<TType>) {\n const { createRowButtonRef, hasScrollbar, row, table, tableMeta, tableRef } = props;\n\n const handleKeyDown = async (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n const target = event.target as Element;\n\n // Skip handling if the event is from a related dropdown (overlay, e.q. Select2 options dropdown) outside the row\n if (isAriaDirectionKey(event) && isElementInsideExternalRelatedOverlay(target, tableRef)) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (!isElementTriggeredFromContainer(target, event.currentTarget)) {\n const saved = await tableMeta.editing.saveChanges(table);\n\n if (saved) {\n requestAnimationFrame(() => {\n createRowButtonRef.current?.focus();\n });\n }\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n\n // save or discard changes when we leave the row\n await tableMeta.editing.saveChanges(table);\n\n const lastIndex = tableMeta.length - 1;\n tableMeta.rowActive.setRowActiveIndex(lastIndex);\n\n if (tableRef.current) {\n // scroll to the bottom\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n\n // there's a delay in calculating row heights, so the scrollTop isn't always correct first time - recalculate it\n requestAnimationFrame(() => {\n if (tableRef.current) {\n tableRef.current.scrollTop = tableRef.current.scrollHeight;\n }\n });\n }\n }\n };\n\n const className = cn('group/row !sticky z-[22] border-t-2 border-gray-100 print:hidden', {\n 'bottom-[calc(5rem_+_5px)] data-[row-editing-move]:bottom-[calc(5rem_+_5px)]': tableMeta.footer.isEnabled,\n 'bottom-[calc(2.5rem_+_5px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_5px)]': !tableMeta.footer.isEnabled,\n '!border-t border-b': !hasScrollbar,\n });\n\n return (\n <Row<TType>\n key={row.id}\n cellRenderer={RENDERERS.cell}\n index={tableMeta.length}\n measureRow={() => null}\n renderer={RENDERERS.row}\n row={row}\n table={table}\n className={className}\n onKeyDown={handleKeyDown}\n hideInternalColumns\n hideRowActions={!tableMeta.editing.isEditing}\n />\n );\n}\n"],"names":["React"],"mappings":";;;;;;AAkBO,SAAS,cAA+B,OAAkC;AAC7E,SAAO,MAAM,MAAM,cAAA,EAAgB,IAAI,CAAA,QAAOA,+BAAA,cAAC,cAAA,EAAoB,KAAK,IAAI,IAAI,KAAW,GAAG,OAAO,CAAE;AAC3G;AAWA,SAAS,aAA8B,OAAiC;AACpE,QAAM,EAAE,oBAAoB,cAAc,KAAK,OAAO,WAAW,aAAa;AAE9E,QAAM,gBAAgB,OAAO,UAAoD;AAC7E,UAAM,SAAS,MAAM;AAGrB,QAAI,mBAAmB,KAAK,KAAK,sCAAsC,QAAQ,QAAQ,GAAG;AACtF;AAAA,IACJ;AAEA,QAAI,MAAM,QAAQ,aAAa;AAC3B,YAAM,eAAA;AAEN,UAAI,CAAC,gCAAgC,QAAQ,MAAM,aAAa,GAAG;AAC/D,cAAM,QAAQ,MAAM,UAAU,QAAQ,YAAY,KAAK;AAEvD,YAAI,OAAO;AACP,gCAAsB,MAAM;AACxB,+BAAmB,SAAS,MAAA;AAAA,UAChC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,WAAW,MAAM,QAAQ,WAAW;AAChC,YAAM,eAAA;AACN,YAAM,gBAAA;AAGN,YAAM,UAAU,QAAQ,YAAY,KAAK;AAEzC,YAAM,YAAY,UAAU,SAAS;AACrC,gBAAU,UAAU,kBAAkB,SAAS;AAE/C,UAAI,SAAS,SAAS;AAElB,iBAAS,QAAQ,YAAY,SAAS,QAAQ;AAG9C,8BAAsB,MAAM;AACxB,cAAI,SAAS,SAAS;AAClB,qBAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA,UAClD;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,GAAG,oEAAoE;AAAA,IACrF,+EAA+E,UAAU,OAAO;AAAA,IAChG,mFAAmF,CAAC,UAAU,OAAO;AAAA,IACrG,sBAAsB,CAAC;AAAA,EAAA,CAC1B;AAED,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAK,IAAI;AAAA,MACT,cAAc,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,UAAU,UAAU;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,qBAAmB;AAAA,MACnB,gBAAgB,CAAC,UAAU,QAAQ;AAAA,IAAA;AAAA,EAAA;AAG/C;"}
|
|
@@ -357,12 +357,20 @@ function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIden
|
|
|
357
357
|
if (!rowsWithErrors.length) {
|
|
358
358
|
return [];
|
|
359
359
|
}
|
|
360
|
-
return rowsWithErrors.filter(hasRowErrorsShownInAlert).
|
|
361
|
-
rowId
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
360
|
+
return rowsWithErrors.filter(hasRowErrorsShownInAlert).flatMap((rowId) => {
|
|
361
|
+
const errors = state.changes.errors[rowId];
|
|
362
|
+
if (!errors) {
|
|
363
|
+
return [];
|
|
364
|
+
}
|
|
365
|
+
return [
|
|
366
|
+
{
|
|
367
|
+
rowId,
|
|
368
|
+
index: state.indexes[rowId],
|
|
369
|
+
changes: state.changes.rows[rowId],
|
|
370
|
+
errors
|
|
371
|
+
}
|
|
372
|
+
];
|
|
373
|
+
});
|
|
366
374
|
}
|
|
367
375
|
function hasSaved() {
|
|
368
376
|
return !!Object.values(state.statuses).filter((status) => status === "saved").length;
|