@economic/taco 0.0.11-alpha.0 → 0.0.14-alpha.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/README.md +84 -84
- package/dist/components/{Label/Label.d.ts → Field/Field.d.ts} +9 -9
- package/dist/components/Menu/Menu.d.ts +1 -0
- package/dist/components/Menu/components/Item.d.ts +3 -0
- package/dist/esm/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/Banner/Banner.js +1 -1
- package/dist/esm/components/Banner/Banner.js.map +1 -1
- package/dist/esm/components/Banner/util.js +1 -1
- package/dist/esm/components/Banner/util.js.map +1 -1
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Button/util.js +49 -24
- package/dist/esm/components/Button/util.js.map +1 -1
- package/dist/esm/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/Combobox/useCombobox.js +64 -84
- package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/esm/components/Datepicker/useDatepicker.js +35 -33
- package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/components/Dialog/Context.js +3 -3
- package/dist/esm/components/Dialog/Context.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dialog/components/Content.js +39 -44
- package/dist/esm/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/components/Dialog/components/Drawer.js +3 -3
- package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
- package/dist/esm/components/Dialog/components/Extra.js +2 -2
- package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
- package/dist/esm/components/Dialog/components/Trigger.js +2 -2
- package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
- package/dist/esm/components/{Label/Label.js → Field/Field.js} +3 -3
- package/dist/esm/components/Field/Field.js.map +1 -0
- package/dist/esm/components/Form/Form.js.map +1 -1
- package/dist/esm/components/Group/Group.js.map +1 -1
- package/dist/esm/components/Hanger/Hanger.js.map +1 -1
- package/dist/esm/components/Icon/Icon.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
- package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
- package/dist/esm/components/Icon/components/Attach.js.map +1 -1
- package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
- package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
- package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
- package/dist/esm/components/Icon/components/Basic.js.map +1 -1
- package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
- package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Book.js.map +1 -1
- package/dist/esm/components/Icon/components/Booking.js.map +1 -1
- package/dist/esm/components/Icon/components/Budget.js.map +1 -1
- package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
- package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
- package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
- package/dist/esm/components/Icon/components/Chat.js.map +1 -1
- package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
- package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/Close.js.map +1 -1
- package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
- package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
- package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
- package/dist/esm/components/Icon/components/Copy.js.map +1 -1
- package/dist/esm/components/Icon/components/Courses.js.map +1 -1
- package/dist/esm/components/Icon/components/Credit.js.map +1 -1
- package/dist/esm/components/Icon/components/Delete.js.map +1 -1
- package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
- package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
- package/dist/esm/components/Icon/components/Developer.js.map +1 -1
- package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
- package/dist/esm/components/Icon/components/Document.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
- package/dist/esm/components/Icon/components/Download.js.map +1 -1
- package/dist/esm/components/Icon/components/Drag.js.map +1 -1
- package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
- package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
- package/dist/esm/components/Icon/components/Edit.js.map +1 -1
- package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
- package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
- package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
- package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
- package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
- package/dist/esm/components/Icon/components/Export.js.map +1 -1
- package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
- package/dist/esm/components/Icon/components/ExportToExcelCopy.js.map +1 -1
- package/dist/esm/components/Icon/components/Filter.js.map +1 -1
- package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Hash.js.map +1 -1
- package/dist/esm/components/Icon/components/Home.js.map +1 -1
- package/dist/esm/components/Icon/components/Images.js.map +1 -1
- package/dist/esm/components/Icon/components/Import.js.map +1 -1
- package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
- package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
- package/dist/esm/components/Icon/components/Info.js.map +1 -1
- package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
- package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
- package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
- package/dist/esm/components/Icon/components/Layout.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
- package/dist/esm/components/Icon/components/Line.js.map +1 -1
- package/dist/esm/components/Icon/components/List.js.map +1 -1
- package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
- package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
- package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/Log.js.map +1 -1
- package/dist/esm/components/Icon/components/Market.js.map +1 -1
- package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
- package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
- package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
- package/dist/esm/components/Icon/components/Minus.js.map +1 -1
- package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
- package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
- package/dist/esm/components/Icon/components/More.js.map +1 -1
- package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Move.js.map +1 -1
- package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
- package/dist/esm/components/Icon/components/Note.js.map +1 -1
- package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
- package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
- package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
- package/dist/esm/components/Icon/components/Period.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
- package/dist/esm/components/Icon/components/Play.js.map +1 -1
- package/dist/esm/components/Icon/components/PlusCircle.js.map +1 -1
- package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
- package/dist/esm/components/Icon/components/Print.js.map +1 -1
- package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
- package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
- package/dist/esm/components/Icon/components/Projects.js.map +1 -1
- package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
- package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
- package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
- package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
- package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
- package/dist/esm/components/Icon/components/Report.js.map +1 -1
- package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Restore.js.map +1 -1
- package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
- package/dist/esm/components/Icon/components/Sales.js.map +1 -1
- package/dist/esm/components/Icon/components/Search.js.map +1 -1
- package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
- package/dist/esm/components/Icon/components/Secure.js.map +1 -1
- package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
- package/dist/esm/components/Icon/components/Settings.js.map +1 -1
- package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
- package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
- package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
- package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
- package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
- package/dist/esm/components/Icon/components/Star.js.map +1 -1
- package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
- package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
- package/dist/esm/components/Icon/components/Tag.js.map +1 -1
- package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
- package/dist/esm/components/Icon/components/Templates.js.map +1 -1
- package/dist/esm/components/Icon/components/Thumb.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Tick.js.map +1 -1
- package/dist/esm/components/Icon/components/TickCircle.js.map +1 -1
- package/dist/esm/components/Icon/components/Time.js.map +1 -1
- package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
- package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
- package/dist/esm/components/Icon/components/Undock.js.map +1 -1
- package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
- package/dist/esm/components/Icon/components/Warning.js.map +1 -1
- package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
- package/dist/esm/components/Icon/components/Website.js.map +1 -1
- package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
- package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
- package/dist/esm/components/Icon/components/index.js +4 -4
- package/dist/esm/components/Icon/components/index.js.map +1 -1
- package/dist/esm/components/IconButton/IconButton.js.map +1 -1
- package/dist/esm/components/Input/Input.js.map +1 -1
- package/dist/esm/components/Input/util.js +9 -8
- package/dist/esm/components/Input/util.js.map +1 -1
- package/dist/esm/components/Listbox/Listbox.js.map +1 -1
- package/dist/esm/components/Listbox/ScrollableList.js +63 -82
- package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/esm/components/Listbox/useListbox.js +49 -58
- package/dist/esm/components/Listbox/useListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useMultiListbox.js +63 -91
- package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useTypeahead.js +10 -9
- package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
- package/dist/esm/components/Listbox/util.js +48 -84
- package/dist/esm/components/Listbox/util.js.map +1 -1
- package/dist/esm/components/Menu/Context.js +2 -2
- package/dist/esm/components/Menu/Context.js.map +1 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/components/Checkbox.js +8 -9
- package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
- package/dist/esm/components/Menu/components/Content.js +10 -13
- package/dist/esm/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/components/Menu/components/Header.js +4 -4
- package/dist/esm/components/Menu/components/Header.js.map +1 -1
- package/dist/esm/components/Menu/components/Item.js +59 -43
- package/dist/esm/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/components/Menu/components/Link.js +7 -8
- package/dist/esm/components/Menu/components/Link.js.map +1 -1
- package/dist/esm/components/Menu/components/RadioGroup.js +16 -18
- package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/esm/components/Menu/components/Separator.js +4 -4
- package/dist/esm/components/Menu/components/Separator.js.map +1 -1
- package/dist/esm/components/Menu/components/Trigger.js +5 -5
- package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
- package/dist/esm/components/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/Pagination/PageNumbers.js +23 -28
- package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/usePagination.js +7 -21
- package/dist/esm/components/Pagination/usePagination.js.map +1 -1
- package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
- package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Popover/Primitives.js +27 -30
- package/dist/esm/components/Popover/Primitives.js.map +1 -1
- package/dist/esm/components/Progress/Progress.js.map +1 -1
- package/dist/esm/components/Provider/Provider.js +1 -1
- package/dist/esm/components/Provider/Provider.js.map +1 -1
- package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/useSelect.js +63 -82
- package/dist/esm/components/Select/useSelect.js.map +1 -1
- package/dist/esm/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/components/Switch/Switch.js.map +1 -1
- package/dist/esm/components/Table/components/BaseTable.js +23 -30
- package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
- package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
- package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
- package/dist/esm/components/Table/components/Table.js +18 -25
- package/dist/esm/components/Table/components/Table.js.map +1 -1
- package/dist/esm/components/Table/components/WindowedTable.js +88 -104
- package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +80 -90
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
- package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
- package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTable.js +119 -141
- package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +12 -15
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
- package/dist/esm/components/Table/util/renderColumn.js +10 -10
- package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
- package/dist/esm/components/Table/util/renderRow.js +37 -46
- package/dist/esm/components/Table/util/renderRow.js.map +1 -1
- package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
- package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
- package/dist/esm/components/Table/util/sortTypes.js +23 -31
- package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
- package/dist/esm/components/Table/util.js +29 -41
- package/dist/esm/components/Table/util.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Textarea/Textarea.js.map +1 -1
- package/dist/esm/components/Toast/Toast.js +20 -21
- package/dist/esm/components/Toast/Toast.js.map +1 -1
- package/dist/esm/components/Toast/Toaster.js.map +1 -1
- package/dist/esm/components/Toast/util.js +2 -2
- package/dist/esm/components/Toast/util.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Tour/Tour.js.map +1 -1
- package/dist/esm/components/Treeview/Treeview.js.map +1 -1
- package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/esm/index.css +634 -638
- package/dist/esm/index.js +2 -2
- package/dist/esm/primitives/Button.js +9 -13
- package/dist/esm/primitives/Button.js.map +1 -1
- package/dist/esm/utils/date.js.map +1 -1
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js +12 -20
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/esm/utils/hooks/useDraggable.js +16 -18
- package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
- package/dist/esm/utils/hooks/useDropTarget.js +7 -10
- package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
- package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
- package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
- package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
- package/dist/esm/utils/hooks/useTimer.js +9 -17
- package/dist/esm/utils/hooks/useTimer.js.map +1 -1
- package/dist/esm/utils/input.js +7 -11
- package/dist/esm/utils/input.js.map +1 -1
- package/dist/esm/utils/mergeRefs.js +2 -2
- package/dist/esm/utils/mergeRefs.js.map +1 -1
- package/dist/esm/utils/taillwind.js +2 -2
- package/dist/esm/utils/taillwind.js.map +1 -1
- package/dist/index.css +634 -638
- package/dist/index.d.ts +1 -1
- package/dist/taco.cjs.development.js +1624 -1906
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/plugins/tailwindcss-aria-attributes.js +73 -73
- package/tailwind.config.js +297 -297
- package/types.json +443 -443
- package/dist/esm/components/Label/Label.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n event.persist();\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"plus-circle\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","persist","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PluginHook } from 'react-table';\r\nimport { InView } from 'react-intersection-observer';\r\nimport keycode from 'keycode';\r\nimport { sanitizeRowProps } from '../../util';\r\nimport { IconButton } from '../../../IconButton/IconButton';\r\nimport { LocalizationTexts } from '../../../Provider/Provider';\r\nimport { Menu } from '../../../Menu/Menu';\r\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\r\n\r\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\r\n\r\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\r\n return (\r\n !!actions ||\r\n handlers.onRowCreate ||\r\n handlers.onRowCopy ||\r\n handlers.onRowDelete ||\r\n !!inlineEditingUniqueId ||\r\n handlers.onRowEdit\r\n );\r\n};\r\n\r\nconst getActions = (\r\n actions: RowActionHandler<any>[] | undefined,\r\n row: TableRow<any> | undefined = undefined\r\n): [RowAction<any>[], RowAction<any>[]] => {\r\n const primary: RowAction<any>[] = [];\r\n const secondary: RowAction<any>[] = [];\r\n\r\n if (actions) {\r\n let visibleActions = actions.filter(x => !!x);\r\n\r\n if (row) {\r\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\r\n if (action.visible !== undefined) {\r\n if (typeof action.visible === 'function') {\r\n return action.visible(row);\r\n }\r\n\r\n return action.visible;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n visibleActions.forEach((action: RowAction<any>) => {\r\n if (action.showOnRow) {\r\n primary.push(action);\r\n } else {\r\n secondary.push(action);\r\n }\r\n });\r\n }\r\n\r\n return [primary, secondary];\r\n};\r\n\r\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\r\n const [primaryActions, secondaryActions] = getActions(actions);\r\n\r\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\r\n\r\n if (handlers.onRowCreate) {\r\n length++;\r\n }\r\n\r\n if (handlers.onRowCopy) {\r\n length++;\r\n }\r\n\r\n if (handlers.onRowDelete) {\r\n length++;\r\n }\r\n\r\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\r\n length++;\r\n\r\n if (length < 2) {\r\n length++;\r\n }\r\n }\r\n\r\n return length;\r\n};\r\n\r\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\r\n return {\r\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\r\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\r\n onClick: (event: React.MouseEvent<HTMLElement>) => {\r\n event.persist();\r\n action.onClick(row, event);\r\n },\r\n };\r\n};\r\n\r\nconst EditModeActions = () => {\r\n React.useEffect(() => {\r\n const listener = (event: any) => {\r\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\r\n event.preventDefault();\r\n event.target.form.reset();\r\n }\r\n };\r\n\r\n document.addEventListener('keydown', listener);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', listener);\r\n };\r\n }, []);\r\n\r\n return (\r\n <div className={actionGroupClassName}>\r\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\r\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\r\n </div>\r\n );\r\n};\r\n\r\nexport const useRowActions = <T extends {}>(\r\n inlineEditingUniqueId: keyof T | undefined,\r\n handlers: any,\r\n actions: RowActionHandler<T>[] | undefined,\r\n rowExpansionRenderer: any,\r\n texts: LocalizationTexts,\r\n windowed = false\r\n): PluginHook<{}> => {\r\n const inlineEditing = !!inlineEditingUniqueId;\r\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\r\n\r\n const plugin = (hooks: any): void => {\r\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\r\n hooks.visibleColumns.push((columns: any) => [\r\n ...columns,\r\n {\r\n id: '_actions',\r\n className: 'flex justify-end px-1 overflow-visible',\r\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\r\n Cell: ({ row }: any) => {\r\n if (row.isEditing) {\r\n return <EditModeActions />;\r\n }\r\n\r\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\r\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\r\n\r\n const output = (\r\n <>\r\n {handlers.onRowCreate && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"plus-circle\"\r\n aria-label={texts.table.newSubRow}\r\n tooltip={texts.table.newSubRow}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n\r\n if (!row.isExpanded) {\r\n row.toggleRowExpanded();\r\n }\r\n\r\n handlers.onRowCreate(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {(inlineEditing || handlers.onRowEdit) && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"edit\"\r\n aria-label={texts.table.edit}\r\n tooltip={texts.table.edit}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n row.setActive();\r\n\r\n if (inlineEditing) {\r\n row.toggleRowEditing();\r\n } else if (handlers.onRowEdit) {\r\n event.persist();\r\n handlers.onRowEdit(sanitizedRow, event);\r\n }\r\n }}\r\n />\r\n )}\r\n {handlers.onRowCopy && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"copy\"\r\n aria-label={texts.table.copy}\r\n tooltip={texts.table.copy}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n handlers.onRowCopy(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {handlers.onRowDelete && (\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"delete\"\r\n aria-label={texts.table.del}\r\n tooltip={texts.table.del}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n event.persist();\r\n row.setActive();\r\n handlers.onRowDelete(sanitizedRow, event);\r\n }}\r\n />\r\n )}\r\n {primaryActions.map((action: RowAction<T>, index: number) => (\r\n <IconButton\r\n {...getActionProps(action, sanitizedRow)}\r\n key={index}\r\n appearance=\"discrete\"\r\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\r\n tooltip={\r\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\r\n }\r\n />\r\n ))}\r\n {secondaryActions.length ? (\r\n <Menu>\r\n <Menu.Trigger>\r\n <IconButton\r\n appearance=\"discrete\"\r\n icon=\"ellipsis-vertical\"\r\n aria-label={texts.table.actions}\r\n tooltip={texts.table.actions}\r\n disabled={inlineEditing && !row.canEdit}\r\n onClick={(event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n row.setActive();\r\n }}\r\n />\r\n </Menu.Trigger>\r\n <Menu.Content>\r\n {secondaryActions.map((action: RowAction<T>, index: number) => (\r\n <Menu.Item\r\n key={index}\r\n icon={\r\n typeof action.icon === 'function'\r\n ? action.icon(sanitizedRow)\r\n : action.icon\r\n }\r\n {...getActionProps(action, sanitizedRow)}\r\n >\r\n {action.text}\r\n </Menu.Item>\r\n ))}\r\n </Menu.Content>\r\n </Menu>\r\n ) : null}\r\n </>\r\n );\r\n\r\n if (windowed) {\r\n return <div className={actionGroupClassName}>{output}</div>;\r\n }\r\n\r\n return (\r\n <InView rootMargin=\"100px 0px\">\r\n {({ inView, ref }) => (\r\n <div className={actionGroupClassName} ref={ref}>\r\n {inView ? output : null}\r\n </div>\r\n )}\r\n </InView>\r\n );\r\n },\r\n },\r\n ]);\r\n }\r\n };\r\n plugin.pluginName = 'useRowActions';\r\n return plugin;\r\n};\r\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","persist","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
|
@@ -1,40 +1,42 @@
|
|
1
|
-
import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
import { Icon } from '../../../Icon/Icon.js';
|
4
3
|
import { actions } from 'react-table';
|
5
4
|
import { sanitizeRowProps } from '../../util.js';
|
6
5
|
|
7
|
-
|
6
|
+
const pluginName = 'useRowDraggable';
|
8
7
|
actions.resetRowDragging = 'resetRowDragging';
|
9
8
|
actions.toggleRowDragging = 'toggleRowDragging';
|
10
9
|
|
11
10
|
function reducer(state, action) {
|
12
11
|
if (action.type === actions.init) {
|
13
|
-
return
|
14
|
-
draggingRowIndexPath: null
|
15
|
-
|
12
|
+
return {
|
13
|
+
draggingRowIndexPath: null,
|
14
|
+
...state
|
15
|
+
};
|
16
16
|
}
|
17
17
|
|
18
18
|
if (action.type === actions.resetRowDragging) {
|
19
|
-
return
|
19
|
+
return { ...state,
|
20
20
|
draggingRowIndexPath: null
|
21
|
-
}
|
21
|
+
};
|
22
22
|
}
|
23
23
|
|
24
24
|
if (action.type === actions.toggleRowDragging) {
|
25
|
-
|
26
|
-
|
25
|
+
const {
|
26
|
+
indexPath
|
27
|
+
} = action;
|
28
|
+
return { ...state,
|
27
29
|
draggingRowIndexPath: indexPath
|
28
|
-
}
|
30
|
+
};
|
29
31
|
}
|
30
32
|
|
31
33
|
return state;
|
32
34
|
}
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
row.toggleRowDragging =
|
36
|
+
const prepareRow = (row, {
|
37
|
+
instance
|
38
|
+
}) => {
|
39
|
+
row.toggleRowDragging = () => {
|
38
40
|
if (instance.state.draggingRowIndexPath === row.id) {
|
39
41
|
instance.dispatch({
|
40
42
|
type: actions.resetRowDragging
|
@@ -56,67 +58,61 @@ var prepareRow = function prepareRow(row, _ref) {
|
|
56
58
|
}
|
57
59
|
};
|
58
60
|
|
59
|
-
|
61
|
+
const visibleColumns = columns => {
|
60
62
|
return [{
|
61
63
|
id: 'draggable',
|
62
64
|
className: 'yt-table__cell--draggable flex-col px-0',
|
63
|
-
Cell:
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
});
|
68
|
-
},
|
65
|
+
Cell: () => React__default.createElement(Icon, {
|
66
|
+
name: "drag",
|
67
|
+
className: "text-grey-darkest invisible w-[20px] cursor-grab"
|
68
|
+
}),
|
69
69
|
flex: '0 0 20px'
|
70
|
-
}]
|
70
|
+
}, ...columns];
|
71
71
|
};
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
if (typeof DataTransfer.prototype.setDragImage === 'function') {
|
93
|
-
event.dataTransfer.setDragImage(element, 0, 20);
|
94
|
-
}
|
95
|
-
};
|
96
|
-
|
97
|
-
onRowDrag(data, showPlaceholder, event);
|
73
|
+
const getRowProps = onRowDrag => (props, {
|
74
|
+
instance,
|
75
|
+
row
|
76
|
+
}) => {
|
77
|
+
const onDragStart = event => {
|
78
|
+
event.persist();
|
79
|
+
row.toggleRowDragging();
|
80
|
+
const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];
|
81
|
+
const data = instance.rows.filter(r => indexPaths.includes(r.id)).map(sanitizeRowProps);
|
82
|
+
|
83
|
+
const showPlaceholder = placeholder => {
|
84
|
+
const element = window.document.createElement('div');
|
85
|
+
element.id = 'yt-table__drag__placeholder';
|
86
|
+
element.innerText = placeholder;
|
87
|
+
window.document.body.appendChild(element);
|
88
|
+
|
89
|
+
if (typeof DataTransfer.prototype.setDragImage === 'function') {
|
90
|
+
event.dataTransfer.setDragImage(element, 0, 20);
|
91
|
+
}
|
98
92
|
};
|
99
93
|
|
100
|
-
|
101
|
-
|
94
|
+
onRowDrag(data, showPlaceholder, event);
|
95
|
+
};
|
102
96
|
|
103
|
-
|
104
|
-
|
105
|
-
}
|
97
|
+
const onDragEnd = () => {
|
98
|
+
const element = document.getElementById('yt-table__drag__placeholder');
|
106
99
|
|
107
|
-
|
108
|
-
|
100
|
+
if (element && element.parentNode) {
|
101
|
+
element.parentNode.removeChild(element);
|
102
|
+
}
|
109
103
|
|
110
|
-
|
111
|
-
draggable: true,
|
112
|
-
onDragStart: onDragStart,
|
113
|
-
onDragEnd: onDragEnd
|
114
|
-
}];
|
104
|
+
row.toggleRowDragging();
|
115
105
|
};
|
106
|
+
|
107
|
+
return [props, {
|
108
|
+
draggable: true,
|
109
|
+
onDragStart,
|
110
|
+
onDragEnd
|
111
|
+
}];
|
116
112
|
};
|
117
113
|
|
118
|
-
|
119
|
-
|
114
|
+
const useRowDraggable = onRowDrag => {
|
115
|
+
const plugin = hooks => {
|
120
116
|
if (onRowDrag) {
|
121
117
|
hooks.stateReducers.push(reducer);
|
122
118
|
hooks.prepareRow.push(prepareRow);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"
|
1
|
+
{"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\r\nimport { actions, PluginHook } from 'react-table';\r\nimport { Icon } from '../../../Icon/Icon';\r\nimport { RowDragHandler } from '../../types';\r\nimport { sanitizeRowProps } from '../../util';\r\n\r\nconst pluginName = 'useRowDraggable';\r\n\r\nactions.resetRowDragging = 'resetRowDragging';\r\nactions.toggleRowDragging = 'toggleRowDragging';\r\n\r\nfunction reducer(state: any, action: any): object {\r\n if (action.type === actions.init) {\r\n return {\r\n draggingRowIndexPath: null,\r\n ...state,\r\n };\r\n }\r\n\r\n if (action.type === actions.resetRowDragging) {\r\n return {\r\n ...state,\r\n draggingRowIndexPath: null,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleRowDragging) {\r\n const { indexPath } = action;\r\n return {\r\n ...state,\r\n draggingRowIndexPath: indexPath,\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n\r\nconst prepareRow = (row: any, { instance }: any): void => {\r\n row.toggleRowDragging = () => {\r\n if (instance.state.draggingRowIndexPath === row.id) {\r\n instance.dispatch({ type: actions.resetRowDragging });\r\n } else {\r\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\r\n }\r\n };\r\n\r\n if (instance.state.draggingRowIndexPath) {\r\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\r\n } else {\r\n row.isDragging = false;\r\n }\r\n};\r\n\r\nconst visibleColumns = (columns: any) => {\r\n return [\r\n {\r\n id: 'draggable',\r\n className: 'yt-table__cell--draggable flex-col px-0',\r\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\r\n flex: '0 0 20px',\r\n },\r\n ...columns,\r\n ];\r\n};\r\n\r\nconst getRowProps =\r\n (onRowDrag: RowDragHandler<any>) =>\r\n (props: any, { instance, row }: any) => {\r\n const onDragStart = (event: React.DragEvent): void => {\r\n event.persist();\r\n row.toggleRowDragging();\r\n\r\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\r\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\r\n\r\n const showPlaceholder = (placeholder: string) => {\r\n const element = window.document.createElement('div');\r\n element.id = 'yt-table__drag__placeholder';\r\n element.innerText = placeholder;\r\n window.document.body.appendChild(element);\r\n\r\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\r\n event.dataTransfer.setDragImage(element, 0, 20);\r\n }\r\n };\r\n\r\n onRowDrag(data, showPlaceholder, event);\r\n };\r\n\r\n const onDragEnd = (): void => {\r\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\r\n\r\n if (element && element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n\r\n row.toggleRowDragging();\r\n };\r\n\r\n return [\r\n props,\r\n {\r\n draggable: true,\r\n onDragStart,\r\n onDragEnd,\r\n },\r\n ];\r\n };\r\n\r\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\r\n const plugin = (hooks: any): void => {\r\n if (onRowDrag) {\r\n hooks.stateReducers.push(reducer);\r\n hooks.prepareRow.push(prepareRow);\r\n hooks.visibleColumns.push(visibleColumns);\r\n hooks.getRowProps.push(getRowProps(onRowDrag));\r\n }\r\n };\r\n plugin.pluginName = pluginName;\r\n\r\n return plugin;\r\n};\r\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":";;;;;AAMA,MAAMA,UAAU,GAAG,iBAAnB;AAEAC,OAAO,CAACC,gBAAR,GAA2B,kBAA3B;AACAD,OAAO,CAACE,iBAAR,GAA4B,mBAA5B;;AAEA,SAASC,OAAT,CAAiBC,KAAjB,EAA6BC,MAA7B;AACI,MAAIA,MAAM,CAACC,IAAP,KAAgBN,OAAO,CAACO,IAA5B,EAAkC;AAC9B,WAAO;AACHC,MAAAA,oBAAoB,EAAE,IADnB;AAEH,SAAGJ;AAFA,KAAP;AAIH;;AAED,MAAIC,MAAM,CAACC,IAAP,KAAgBN,OAAO,CAACC,gBAA5B,EAA8C;AAC1C,WAAO,EACH,GAAGG,KADA;AAEHI,MAAAA,oBAAoB,EAAE;AAFnB,KAAP;AAIH;;AAED,MAAIH,MAAM,CAACC,IAAP,KAAgBN,OAAO,CAACE,iBAA5B,EAA+C;AAC3C,UAAM;AAAEO,MAAAA;AAAF,QAAgBJ,MAAtB;AACA,WAAO,EACH,GAAGD,KADA;AAEHI,MAAAA,oBAAoB,EAAEC;AAFnB,KAAP;AAIH;;AAED,SAAOL,KAAP;AACH;;AAED,MAAMM,UAAU,GAAG,CAACC,GAAD,EAAW;AAAEC,EAAAA;AAAF,CAAX;AACfD,EAAAA,GAAG,CAACT,iBAAJ,GAAwB;AACpB,QAAIU,QAAQ,CAACR,KAAT,CAAeI,oBAAf,KAAwCG,GAAG,CAACE,EAAhD,EAAoD;AAChDD,MAAAA,QAAQ,CAACE,QAAT,CAAkB;AAAER,QAAAA,IAAI,EAAEN,OAAO,CAACC;AAAhB,OAAlB;AACH,KAFD,MAEO;AACHW,MAAAA,QAAQ,CAACE,QAAT,CAAkB;AAAER,QAAAA,IAAI,EAAEN,OAAO,CAACE,iBAAhB;AAAmCO,QAAAA,SAAS,EAAEE,GAAG,CAACE;AAAlD,OAAlB;AACH;AACJ,GAND;;AAQA,MAAID,QAAQ,CAACR,KAAT,CAAeI,oBAAnB,EAAyC;AAAA;;AACrCG,IAAAA,GAAG,CAACI,UAAJ,GAAiBH,QAAQ,CAACR,KAAT,CAAeI,oBAAf,KAAwCG,GAAG,CAACE,EAA5C,IAAkD,CAAC,2BAACD,QAAQ,CAACR,KAAT,CAAeY,cAAhB,kDAAC,sBAAgCL,GAAG,CAACE,EAApC,CAAD,CAApE;AACH,GAFD,MAEO;AACHF,IAAAA,GAAG,CAACI,UAAJ,GAAiB,KAAjB;AACH;AACJ,CAdD;;AAgBA,MAAME,cAAc,GAAIC,OAAD;AACnB,SAAO,CACH;AACIL,IAAAA,EAAE,EAAE,WADR;AAEIM,IAAAA,SAAS,EAAE,yCAFf;AAGIC,IAAAA,IAAI,EAAE,MAAMC,4BAAA,CAACC,IAAD;AAAMC,MAAAA,IAAI,EAAC;AAAOJ,MAAAA,SAAS,EAAC;KAA5B,CAHhB;AAIIK,IAAAA,IAAI,EAAE;AAJV,GADG,EAOH,GAAGN,OAPA,CAAP;AASH,CAVD;;AAYA,MAAMO,WAAW,GACZC,SAAD,IACA,CAACC,KAAD,EAAa;AAAEf,EAAAA,QAAF;AAAYD,EAAAA;AAAZ,CAAb;AACI,QAAMiB,WAAW,GAAIC,KAAD;AAChBA,IAAAA,KAAK,CAACC,OAAN;AACAnB,IAAAA,GAAG,CAACT,iBAAJ;AAEA,UAAM6B,UAAU,GAAG,CAACpB,GAAG,CAACE,EAAL,EAAS,GAAGmB,MAAM,CAACC,IAAP,CAAYrB,QAAQ,CAACR,KAAT,CAAeY,cAA3B,CAAZ,CAAnB;AACA,UAAMkB,IAAI,GAAGtB,QAAQ,CAACuB,IAAT,CAAcC,MAAd,CAAsBC,CAAD,IAAYN,UAAU,CAACO,QAAX,CAAoBD,CAAC,CAACxB,EAAtB,CAAjC,EAA4D0B,GAA5D,CAAgEC,gBAAhE,CAAb;;AAEA,UAAMC,eAAe,GAAIC,WAAD;AACpB,YAAMC,OAAO,GAAGC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8B,KAA9B,CAAhB;AACAH,MAAAA,OAAO,CAAC9B,EAAR,GAAa,6BAAb;AACA8B,MAAAA,OAAO,CAACI,SAAR,GAAoBL,WAApB;AACAE,MAAAA,MAAM,CAACC,QAAP,CAAgBG,IAAhB,CAAqBC,WAArB,CAAiCN,OAAjC;;AAEA,UAAI,OAAOO,YAAY,CAACC,SAAb,CAAuBC,YAA9B,KAA+C,UAAnD,EAA+D;AAC3DvB,QAAAA,KAAK,CAACwB,YAAN,CAAmBD,YAAnB,CAAgCT,OAAhC,EAAyC,CAAzC,EAA4C,EAA5C;AACH;AACJ,KATD;;AAWAjB,IAAAA,SAAS,CAACQ,IAAD,EAAOO,eAAP,EAAwBZ,KAAxB,CAAT;AACH,GAnBD;;AAqBA,QAAMyB,SAAS,GAAG;AACd,UAAMX,OAAO,GAAuBE,QAAQ,CAACU,cAAT,CAAwB,6BAAxB,CAApC;;AAEA,QAAIZ,OAAO,IAAIA,OAAO,CAACa,UAAvB,EAAmC;AAC/Bb,MAAAA,OAAO,CAACa,UAAR,CAAmBC,WAAnB,CAA+Bd,OAA/B;AACH;;AAEDhC,IAAAA,GAAG,CAACT,iBAAJ;AACH,GARD;;AAUA,SAAO,CACHyB,KADG,EAEH;AACI+B,IAAAA,SAAS,EAAE,IADf;AAEI9B,IAAAA,WAFJ;AAGI0B,IAAAA;AAHJ,GAFG,CAAP;AAQH,CA1CL;;MA4CaK,eAAe,GAAIjC,SAAD;AAC3B,QAAMkC,MAAM,GAAIC,KAAD;AACX,QAAInC,SAAJ,EAAe;AACXmC,MAAAA,KAAK,CAACC,aAAN,CAAoBC,IAApB,CAAyB5D,OAAzB;AACA0D,MAAAA,KAAK,CAACnD,UAAN,CAAiBqD,IAAjB,CAAsBrD,UAAtB;AACAmD,MAAAA,KAAK,CAAC5C,cAAN,CAAqB8C,IAArB,CAA0B9C,cAA1B;AACA4C,MAAAA,KAAK,CAACpC,WAAN,CAAkBsC,IAAlB,CAAuBtC,WAAW,CAACC,SAAD,CAAlC;AACH;AACJ,GAPD;;AAQAkC,EAAAA,MAAM,CAAC7D,UAAP,GAAoBA,UAApB;AAEA,SAAO6D,MAAP;AACH;;;;"}
|
@@ -1,87 +1,90 @@
|
|
1
|
-
import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
import { actions } from 'react-table';
|
4
3
|
|
5
|
-
|
4
|
+
const pluginName = 'useRowEditing';
|
6
5
|
actions.resetRowEditing = 'resetRowEditing';
|
7
6
|
actions.toggleRowEditing = 'toggleRowEditing';
|
8
7
|
actions.toggleEditing = 'toggleEditing';
|
9
8
|
|
10
9
|
function reducer(state, action) {
|
11
10
|
if (action.type === actions.init) {
|
12
|
-
return
|
11
|
+
return {
|
13
12
|
allowEditing: true,
|
14
|
-
editingRowUniqueId: null
|
15
|
-
|
13
|
+
editingRowUniqueId: null,
|
14
|
+
...state
|
15
|
+
};
|
16
16
|
}
|
17
17
|
|
18
18
|
if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {
|
19
|
-
return
|
19
|
+
return { ...state,
|
20
20
|
editingRowUniqueId: null
|
21
|
-
}
|
21
|
+
};
|
22
22
|
}
|
23
23
|
|
24
24
|
if (action.type === actions.toggleRowEditing) {
|
25
|
-
|
26
|
-
|
25
|
+
const {
|
26
|
+
id
|
27
|
+
} = action;
|
28
|
+
return { ...state,
|
27
29
|
editingRowUniqueId: id
|
28
|
-
}
|
30
|
+
};
|
29
31
|
}
|
30
32
|
|
31
33
|
if (action.type === actions.toggleEditing) {
|
32
|
-
return
|
34
|
+
return { ...state,
|
33
35
|
allowEditing: !state.allowEditing
|
34
|
-
}
|
36
|
+
};
|
35
37
|
}
|
36
38
|
|
37
39
|
return state;
|
38
40
|
}
|
39
41
|
|
40
42
|
function useInstance(instance) {
|
41
|
-
|
42
|
-
|
43
|
+
const {
|
44
|
+
dispatch
|
45
|
+
} = instance;
|
46
|
+
const resetRowEditing = React__default.useCallback(() => {
|
43
47
|
dispatch({
|
44
48
|
type: actions.resetRowEditing
|
45
49
|
});
|
46
50
|
}, [dispatch]);
|
47
|
-
|
51
|
+
const toggleRowEditing = React__default.useCallback(id => {
|
48
52
|
dispatch({
|
49
53
|
type: actions.toggleRowEditing,
|
50
|
-
id
|
54
|
+
id
|
51
55
|
});
|
52
56
|
}, [dispatch]);
|
53
|
-
|
57
|
+
const toggleEditing = React__default.useCallback(() => {
|
54
58
|
dispatch({
|
55
59
|
type: actions.toggleEditing
|
56
60
|
});
|
57
61
|
}, [dispatch]);
|
58
62
|
Object.assign(instance, {
|
59
|
-
resetRowEditing
|
60
|
-
toggleRowEditing
|
61
|
-
toggleEditing
|
63
|
+
resetRowEditing,
|
64
|
+
toggleRowEditing,
|
65
|
+
toggleEditing
|
62
66
|
});
|
63
67
|
}
|
64
68
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
row.toggleRowEditing = function () {
|
71
|
-
if (instance.state.editingRowUniqueId === id) {
|
72
|
-
instance.resetRowEditing();
|
73
|
-
} else {
|
74
|
-
instance.toggleRowEditing(id);
|
75
|
-
}
|
76
|
-
};
|
69
|
+
const prepareRow = uniqueId => (row, {
|
70
|
+
instance
|
71
|
+
}) => {
|
72
|
+
const id = row.original[uniqueId];
|
77
73
|
|
78
|
-
|
79
|
-
|
74
|
+
row.toggleRowEditing = () => {
|
75
|
+
if (instance.state.editingRowUniqueId === id) {
|
76
|
+
instance.resetRowEditing();
|
77
|
+
} else {
|
78
|
+
instance.toggleRowEditing(id);
|
79
|
+
}
|
80
80
|
};
|
81
|
+
|
82
|
+
row.isEditing = row.original._createKey ? instance.state.editingRowUniqueId === row.original._createKey : instance.state.editingRowUniqueId === id;
|
83
|
+
row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);
|
81
84
|
};
|
82
85
|
|
83
|
-
|
84
|
-
|
86
|
+
const useRowEditing = uniqueId => {
|
87
|
+
const plugin = hooks => {
|
85
88
|
if (uniqueId) {
|
86
89
|
hooks.stateReducers.push(reducer);
|
87
90
|
hooks.useInstance.push(useInstance);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"
|
1
|
+
{"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\r\nimport { actions, PluginHook } from 'react-table';\r\n\r\nconst pluginName = 'useRowEditing';\r\n\r\nactions.resetRowEditing = 'resetRowEditing';\r\nactions.toggleRowEditing = 'toggleRowEditing';\r\nactions.toggleEditing = 'toggleEditing';\r\n\r\nfunction reducer(state: any, action: any): object {\r\n if (action.type === actions.init) {\r\n return {\r\n allowEditing: true,\r\n editingRowUniqueId: null,\r\n ...state,\r\n };\r\n }\r\n\r\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\r\n return {\r\n ...state,\r\n editingRowUniqueId: null,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleRowEditing) {\r\n const { id } = action;\r\n return {\r\n ...state,\r\n editingRowUniqueId: id,\r\n };\r\n }\r\n\r\n if (action.type === actions.toggleEditing) {\r\n return {\r\n ...state,\r\n allowEditing: !state.allowEditing,\r\n };\r\n }\r\n\r\n return state;\r\n}\r\n\r\nfunction useInstance(instance: any): void {\r\n const { dispatch } = instance;\r\n\r\n const resetRowEditing = React.useCallback(() => {\r\n dispatch({ type: actions.resetRowEditing });\r\n }, [dispatch]);\r\n\r\n const toggleRowEditing = React.useCallback(\r\n id => {\r\n dispatch({ type: actions.toggleRowEditing, id });\r\n },\r\n [dispatch]\r\n );\r\n\r\n const toggleEditing = React.useCallback(() => {\r\n dispatch({ type: actions.toggleEditing });\r\n }, [dispatch]);\r\n\r\n Object.assign(instance, {\r\n resetRowEditing,\r\n toggleRowEditing,\r\n toggleEditing,\r\n });\r\n}\r\n\r\nconst prepareRow =\r\n <T extends {}>(uniqueId: keyof T) =>\r\n (row: any, { instance }: any): void => {\r\n const id = row.original[uniqueId];\r\n\r\n row.toggleRowEditing = () => {\r\n if (instance.state.editingRowUniqueId === id) {\r\n instance.resetRowEditing();\r\n } else {\r\n instance.toggleRowEditing(id);\r\n }\r\n };\r\n\r\n row.isEditing = row.original._createKey\r\n ? instance.state.editingRowUniqueId === row.original._createKey\r\n : instance.state.editingRowUniqueId === id;\r\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\r\n };\r\n\r\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\r\n const plugin = (hooks: any): void => {\r\n if (uniqueId) {\r\n hooks.stateReducers.push(reducer);\r\n hooks.useInstance.push(useInstance);\r\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\r\n }\r\n };\r\n plugin.pluginName = pluginName;\r\n\r\n return plugin;\r\n};\r\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
|